From: Ian Campbell ian.campb...@citrix.com
In mg-debian-installer-update:
- Expand the list of (suite,arch) combinations which don't exist and
move it to the top.
- Tweak the backports.org handling to allow it to be specified on a
per (suite,arch) basis, and specify it only for (wheezy,armhf)
since it is not currently needed for jessie. Make the
initramfs-tools fetching conditional too.
- Only extract backports-dtbs if they are present in the package.
- Handle arm64.
- Collect the correct armhf kernel for Jessie onwards (vexpress
removed from path).
Have mg-debian-installer-update-all fetch arm64 too.
Signed-off-by: Ian Campbell ian.campb...@citrix.com
[wei: wrap lines]
Signed-off-by: Wei Liu wei.l...@citrix.com
---
Osstest/Debian.pm | 2 +-
mg-debian-installer-update | 67 --
mg-debian-installer-update-all | 2 +-
ts-host-install| 4 +--
4 files changed, 49 insertions(+), 26 deletions(-)
diff --git a/Osstest/Debian.pm b/Osstest/Debian.pm
index 7c652f7..26363af 100644
--- a/Osstest/Debian.pm
+++ b/Osstest/Debian.pm
@@ -862,7 +862,7 @@ END
foreach my $kp (keys %{ $ho-{Flags} }) {
# Backwards compatibility
$kp = need-kernel-deb-wheezy-backports if $kp eq
need-kernel-deb-armmp;
- $kp =~ s/need-kernel-deb-$ho-{Suite}// or next;
+ $kp =~ s/need-kernel-deb-$ho-{Suite}-// or next;
my $kern = $d_i/$kp.deb;
my $kurl = create_webfile($ho, kernel, sub {
diff --git a/mg-debian-installer-update b/mg-debian-installer-update
index f21f216..750258d 100755
--- a/mg-debian-installer-update
+++ b/mg-debian-installer-update
@@ -38,20 +38,29 @@ fetch () {
}
case ${suite}_${arch} in
+lenny_armhf|squeeze_armhf|lenny_arm64|squeeze_arm64|wheezy_arm64)
+# No such thing.
+exit 0
+;;
*_i386|*_amd64)
src=$sbase/main/installer-$arch/current/images/netboot/
files=debian-installer/$arch/initrd.gz:initrd.gz
debian-installer/$arch/linux:linux xen/vmlinuz:vmlinuz-xen
xen/initrd.gz:initrd.gz-xen
;;
-lenny_armhf|squeeze_armhf)
-# No such thing.
-exit 0
+*_arm64)
+src=$sbase/main/installer-$arch/current/images/netboot/
+files=debian-installer/$arch/initrd.gz:initrd.gz \
+ debian-installer/$arch/linux:linux
;;
-*_armhf)
+wheezy_armhf)
# Use the vexpress image, we are going to bash in our own
# kernel+modules anyway.
src=$sbase/main/installer-$arch/current/images/vexpress/netboot
files='initrd.gz' # no kernel -- needs a newer kernel
;;
+*_armhf)
+src=$sbase/main/installer-$arch/current/images/netboot
+files='vmlinuz initrd.gz'
+ ;;
esac
pfile=$sbase/non-free/binary-$arch/Packages.gz
@@ -89,28 +98,40 @@ for p in $packages; do
rm -rf x
done
-# armhf requires a newer kernel than was in Wheezy for most
-# platforms. Construct something suitable from the latest kernel in
-# wheezy-backports.
-if [ $arch = armhf ]; then
+# Some platforms require a newer kernel than is in Debian. Construct
+# something suitable from the latest kernel ($bpok=flavour) in
+# backports.
+case $suite_$arch in
+wheezy_armhf) bpok=armmp; need_initramfs=y;;
+esac
+if [ x$bpok != x ]; then
bp=$sbase-backports
-pfile=$bp/main/binary-armhf/Packages.gz
+pfile=$bp/main/binary-$arch/Packages.gz
fetch $pfile Packages.gz
-# Newer kernel often needs a newer initramfs-tools. Make that available
-echo 2 collecting backports initramfs-tools
-pkgfile=`zcat Packages.gz | grep-dctrl -PX initramfs-tools -nsFilename |
sort -n -r | head -n1`
-rc=$?
-set -e
-if [ $rc != 0 ]; then fail initramfs-tools package not found; fi
-fetch $site/$pkgfile initramfs-tools.deb
+if [ x$need_initramfs = xy ]; then
+# Newer kernel often needs a newer initramfs-tools. Make that
+# available
+echo 2 collecting backports initramfs-tools
+pkgfile=`zcat Packages.gz \
+ | grep-dctrl -PX initramfs-tools -nsFilename \
+ | sort -n -r | head -n1`
+rc=$?
+set -e
+if [ $rc -ne 0 ] || [ x$pkgfile = x ]; then
+ fail initramfs-tools package not found;
+ fi
+fetch $site/$pkgfile initramfs-tools.deb
+fi
set +e
echo 2 collecting backports kernel
# Be careful to pickup the actual kernel package from the 'linux'
# source and not a meta package from 'linux-latest'
-pkgfile=`zcat Packages.gz | grep-dctrl -S linux | grep-dctrl -Pe
^linux-image-.*-armmp$ -nsFilename | sort -n -r | head -n1`
+pkgfile=`zcat Packages.gz | grep-dctrl -S linux \
+ | grep-dctrl -Pe ^linux-image-.*-${bpok}$ -nsFilename \
+ | sort -n -r | head -n1`
rc=$?
set -e
if [ $rc != 0 ]; then fail backports kernel package not found; fi
@@