summaryrefslogtreecommitdiffstats
path: root/src/dist/libiquity.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/dist/libiquity.sh')
-rw-r--r--src/dist/libiquity.sh70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/dist/libiquity.sh b/src/dist/libiquity.sh
new file mode 100644
index 0000000..dfd774d
--- /dev/null
+++ b/src/dist/libiquity.sh
@@ -0,0 +1,70 @@
+# Libiquity 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_libiquity_get_name()
+{
+ printf 'Libiquity'
+ return 0
+}
+
+dist_libiquity_get_mirrors()
+{
+ cat <<-EOF
+ http://files.libiquity.com/pub/libreboot/
+ Libiquity, USA
+ EOF
+ return 0
+}
+
+dist_libiquity_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
+ 'libiquity-20150501')
+ # This version had unique ROM organization.
+ # Let's not bother supporting it.
+ continue
+ ;;
+ taurinus-201506*)
+ sums='SHA512SUMS'
+ archive="./rom/libreboot_${version}_${board}"
+ archive="${archive}.tar.xz"
+ ;;
+ *)
+ sums='SHA512SUMS'
+ archive="./rom/grub/libreboot_${version}"
+ archive="${archive}_grub_${board}.tar.xz"
+ ;;
+ esac
+ if ${dl} "${mirror}/${version}/${sums}" | \
+ grep -F " ${archive}" >/dev/null 2>&1; then
+ versions="${versions} ${version}"
+ fi
+ done <<-EOF
+ $(${dl} "${mirror}/Manifest")
+ EOF
+
+ printf '%s ' ${versions}
+ return 0
+}