diff options
Diffstat (limited to 'src/dist/libreboot.sh')
-rw-r--r-- | src/dist/libreboot.sh | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/src/dist/libreboot.sh b/src/dist/libreboot.sh new file mode 100644 index 0000000..4691422 --- /dev/null +++ b/src/dist/libreboot.sh @@ -0,0 +1,85 @@ +# Libreboot project firmware distribution +# +# Copyright (C) 2015 Patrick "P. J." McDermott +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +dist_libreboot_get_name() +{ + printf 'Libreboot project' + return 0 +} + +dist_libreboot_get_mirrors() +{ + cat <<-EOF + http://mirrors.mit.edu/libreboot/ + MIT, USA + http://www.mirrorservice.org/sites/libreboot.org/release/ + University of Kent, UK + http://elgrande74.net/libreboot/ + elgrande74.net, France + http://mirror.linux.ro/libreboot/ + linux.ro, Romania + http://ginette.swordarmor.fr/libreboot/ + swordarmor.fr, France + http://libreboot.nedson.net/ + nedson.net, Canada + http://mirror.helium.in-berlin.de/libreboot/ + in-berlin.de, Germany + http://mirror.se.partyvan.eu/pub/libreboot/ + partyvan.eu, Sweden + EOF + return 0 +} + +dist_libreboot_get_versions() +{ + local mirror="${1}" + local board="${2}" + shift 2 + local dl="${WGET} -q -O -" + local version= + local versions='' + + while read -r version; do + case "${version}" in + 201[34]* | 20150[1-4]*) + # These versions had ROMs in X60_binary.tar.gz, + # libreboot_bin.tar.gz, or libreboot_bin.tar.xz + # files. These are unsupported for now. + continue + ;; + '20150518') + sums='sha512sums.txt' + archive="./rom/libreboot_${version}_${board}" + archive="${archive}.tar.xz" + ;; + *) + sums='SHA512SUMS' + archive="./rom/libreboot_${version}_${board}" + archive="${archive}.tar.xz" + ;; + esac + if ${dl} "${mirror}/${version}/${sums}" | \ + grep -F " ${archive}" >/dev/null 2>&1; then + versions="${versions} ${version}" + fi + done <<-EOF + 20150518 $(: Hardcode this list until a manifest is available) + EOF + + printf '%s ' ${versions} + return 0 +} |