Refactor the non-cd-booting code
we've already got code to copy the d-i images into a handy place for users. Move it into a common function and reference that for all the arches affected.
This commit is contained in:
parent
8ab1d6933c
commit
b6b7c3801a
|
@ -40,47 +40,9 @@ add_mkisofs_opt $CDDIR/../$N.mkisofs_opts "-J -joliet-long"
|
||||||
# Exit if this is not CD#1/DVD#1
|
# Exit if this is not CD#1/DVD#1
|
||||||
if [ $NN != 1 ] ; then exit 0; fi
|
if [ $NN != 1 ] ; then exit 0; fi
|
||||||
|
|
||||||
# Armel/armhf is currently not bootable directly from CD, and there's
|
# This arch is currently not bootable directly from CD, and there's
|
||||||
# not a lot we can do about that. But add the needed files in the
|
# not a lot we can do about that. But add the needed files in the
|
||||||
# right place so that users can find them, at least:
|
# right place so that users can find them, at least
|
||||||
#
|
copy_arch_images
|
||||||
# kernel(s)
|
|
||||||
# initramfs
|
|
||||||
# DTBs
|
|
||||||
# etc...
|
|
||||||
#
|
|
||||||
# The best wasy to find all the files is to parse d-i's MANIFEST file
|
|
||||||
# and work from there.
|
|
||||||
mkdir -p $CDDIR/$INSTALLDIR
|
|
||||||
cd $CDDIR/$INSTALLDIR
|
|
||||||
|
|
||||||
if [ ! "$DI_WWW_HOME" ];then
|
|
||||||
if [ ! "$DI_DIR" ];then
|
|
||||||
DI_DIR="$MIRROR/dists/$DI_DIST/main/installer-$ARCH/current/images"
|
|
||||||
fi
|
|
||||||
cp "$DI_DIR/MANIFEST" MANIFEST
|
|
||||||
else
|
|
||||||
$WGET "$DI_WWW_HOME/MANIFEST" -O MANIFEST
|
|
||||||
fi
|
|
||||||
|
|
||||||
for image in $(awk '{print $1}' MANIFEST); do
|
|
||||||
if [ ! -e "$image" ]; then
|
|
||||||
dir=$(dirname $image)
|
|
||||||
mkdir -p $dir
|
|
||||||
if [ -n "$LOCAL" -a -f "${LOCALDEBS:-$MIRROR}/dists/$DI_DIST/local/installer-$ARCH/current/images/$image" ]; then
|
|
||||||
cp "${LOCALDEBS:-$MIRROR}/dists/$DI_DIST/local/installer-$ARCH/current/images/$image" "$image"
|
|
||||||
elif [ ! "$DI_WWW_HOME" ];then
|
|
||||||
if [ ! "$DI_DIR" ];then
|
|
||||||
DI_DIR="$MIRROR/dists/$DI_DIST/main/installer-$ARCH/current/images"
|
|
||||||
fi
|
|
||||||
cp -a "$DI_DIR/$image" "$image"
|
|
||||||
else
|
|
||||||
$WGET --no-parent -r -nH --cut-dirs=3 "$DI_WWW_HOME/$image"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Clean up in case we had to use $WGET :-(
|
|
||||||
find . -name 'index.html*' -delete
|
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
|
@ -26,46 +26,7 @@ if [ $N != 1 ]; then
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Mips is currently not bootable directly from CD, and there's
|
# This arch is currently not bootable directly from CD, and there's
|
||||||
# not a lot we can do about that. But add the needed files in the
|
# not a lot we can do about that. But add the needed files in the
|
||||||
# right place so that users can find them, at least:
|
# right place so that users can find them, at least
|
||||||
#
|
copy_arch_images
|
||||||
# kernel(s)
|
|
||||||
# initramfs
|
|
||||||
# etc...
|
|
||||||
#
|
|
||||||
# The best wasy to find all the files is to parse d-i's MANIFEST file
|
|
||||||
# and work from there.
|
|
||||||
mkdir -p $CDDIR/$INSTALLDIR
|
|
||||||
cd $CDDIR/$INSTALLDIR
|
|
||||||
|
|
||||||
if [ ! "$DI_WWW_HOME" ];then
|
|
||||||
if [ ! "$DI_DIR" ];then
|
|
||||||
DI_DIR="$MIRROR/dists/$DI_DIST/main/installer-$ARCH/current/images"
|
|
||||||
fi
|
|
||||||
cp "$DI_DIR/MANIFEST" MANIFEST
|
|
||||||
else
|
|
||||||
$WGET "$DI_WWW_HOME/MANIFEST" -O MANIFEST
|
|
||||||
fi
|
|
||||||
|
|
||||||
for image in $(awk '{print $1}' MANIFEST); do
|
|
||||||
if [ ! -e "$image" ]; then
|
|
||||||
dir=$(dirname $image)
|
|
||||||
mkdir -p $dir
|
|
||||||
if [ -n "$LOCAL" -a -f "${LOCALDEBS:-$MIRROR}/dists/$DI_DIST/local/installer-$ARCH/current/images/$image" ]; then
|
|
||||||
cp "${LOCALDEBS:-$MIRROR}/dists/$DI_DIST/local/installer-$ARCH/current/images/$image" "$image"
|
|
||||||
elif [ ! "$DI_WWW_HOME" ];then
|
|
||||||
if [ ! "$DI_DIR" ];then
|
|
||||||
DI_DIR="$MIRROR/dists/$DI_DIST/main/installer-$ARCH/current/images"
|
|
||||||
fi
|
|
||||||
cp -a "$DI_DIR/$image" "$image"
|
|
||||||
else
|
|
||||||
$WGET --no-parent -r -nH --cut-dirs=3 "$DI_WWW_HOME/$image"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Clean up in case we had to use $WGET :-(
|
|
||||||
find . -name 'index.html*' -delete
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ if [ "$DI_WWW_HOME" = "default" ];then
|
||||||
try_di_image_cache
|
try_di_image_cache
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Mips64el is currently not bootable in stretch, so bail out here
|
# This arch is currently not bootable directly from CD, and there's
|
||||||
echo "Mips64el booting disabled, check Sledge"
|
# not a lot we can do about that. But add the needed files in the
|
||||||
exit 0
|
# right place so that users can find them, at least
|
||||||
|
copy_arch_images
|
||||||
|
|
|
@ -24,52 +24,7 @@ cd $CDROOT/..
|
||||||
|
|
||||||
add_mkisofs_opt $CDROOT/../$N.mkisofs_opts "-J -joliet-long"
|
add_mkisofs_opt $CDROOT/../$N.mkisofs_opts "-J -joliet-long"
|
||||||
|
|
||||||
# Mipsel is currently not bootable in stretch, so bail out here
|
# This arch is currently not bootable directly from CD, and there's
|
||||||
echo "Mipsel booting disabled, check with Sledge or fjp"
|
# not a lot we can do about that. But add the needed files in the
|
||||||
exit 0
|
# right place so that users can find them, at least
|
||||||
|
copy_arch_images
|
||||||
# Only disks 1 bootable
|
|
||||||
if [ $NN != 1 ]; then
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
DELODEB=$(find_pkg_file delo)
|
|
||||||
if [ -z "$DELODEB" ] ; then
|
|
||||||
echo "ERROR: the delo package is required." >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
(dpkg --fsys-tarfile "$MIRROR/$DELODEB" | \
|
|
||||||
tar xf - -C . ./boot/delo.2nd)
|
|
||||||
mkdir -p $CDROOT/boot
|
|
||||||
mv boot/delo.2nd $CDROOT/boot/delo.2nd
|
|
||||||
|
|
||||||
if [ -n "$ARCHIVE_EXTRACTED_SOURCES" ]; then
|
|
||||||
echo $DELODEB >> $CDDIR/../$N.pkgs_extracted
|
|
||||||
find_pkg_file delo source >> $CDDIR/../$N.pkgs_extracted
|
|
||||||
fi
|
|
||||||
|
|
||||||
install -m 644 -D $BASEDIR/data/stretch/delo.conf "$CDROOT"/etc/delo.conf
|
|
||||||
|
|
||||||
if [ ! "$DI_WWW_HOME" ];then
|
|
||||||
if [ ! "$DI_DIR" ];then
|
|
||||||
DI_DIR="$MIRROR/dists/$DI_DIST/main/installer-$ARCH/current/images/decstation/cdrom/"
|
|
||||||
if [ ! -e $DI_DIR ] ; then
|
|
||||||
DI_DIR="$MIRROR/dists/$DI_DIST/main/installer-$ARCH/current/images/cdrom/"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
DI_DIR="."
|
|
||||||
$WGET "$DI_WWW_HOME" -O di.dir
|
|
||||||
r3k=$(sed -n 's/.*a href="\(vmlinux-.*-r3k-kn02\)".*/\1/ip' di.dir)
|
|
||||||
r4k=$(sed -n 's/.*a href="\(vmlinux-.*-r4k-kn04\)".*/\1/ip' di.dir)
|
|
||||||
$WGET "$DI_WWW_HOME/$r3k" -O vmlinux-x-r3k-kn02
|
|
||||||
$WGET "$DI_WWW_HOME/$r4k" -O vmlinux-x-r4k-kn04
|
|
||||||
$WGET "$DI_WWW_HOME/initrd.gz"
|
|
||||||
fi
|
|
||||||
cp "$DI_DIR"/initrd.gz "$CDROOT/boot/initrd.gz"
|
|
||||||
cp "$DI_DIR"/vmlinux-*-r3k-kn02 "$CDROOT/boot/vmlinux-r3k-kn02"
|
|
||||||
cp "$DI_DIR"/vmlinux-*-r4k-kn04 "$CDROOT/boot/vmlinux-r4k-kn04"
|
|
||||||
|
|
||||||
add_mkisofs_opt $CDROOT/../$N.mkisofs_opts "-mipsel-boot boot/delo.2nd"
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
|
|
|
@ -104,6 +104,51 @@ try_di_image_cache() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# This arch is currently not bootable directly from CD, and there's
|
||||||
|
# not a lot we can do about that. But add the needed files in the
|
||||||
|
# right place so that users can find them, at least:
|
||||||
|
#
|
||||||
|
# kernel(s)
|
||||||
|
# initramfs
|
||||||
|
# DTBs
|
||||||
|
# etc...
|
||||||
|
#
|
||||||
|
# The best wasy to find all the files is to parse d-i's MANIFEST file
|
||||||
|
# and work from there.
|
||||||
|
copy_arch_images() {
|
||||||
|
mkdir -p $CDDIR/$INSTALLDIR
|
||||||
|
cd $CDDIR/$INSTALLDIR
|
||||||
|
|
||||||
|
if [ ! "$DI_WWW_HOME" ];then
|
||||||
|
if [ ! "$DI_DIR" ];then
|
||||||
|
DI_DIR="$MIRROR/dists/$DI_DIST/main/installer-$ARCH/current/images"
|
||||||
|
fi
|
||||||
|
cp "$DI_DIR/MANIFEST" MANIFEST
|
||||||
|
else
|
||||||
|
$WGET "$DI_WWW_HOME/MANIFEST" -O MANIFEST
|
||||||
|
fi
|
||||||
|
|
||||||
|
for image in $(awk '{print $1}' MANIFEST); do
|
||||||
|
if [ ! -e "$image" ]; then
|
||||||
|
dir=$(dirname $image)
|
||||||
|
mkdir -p $dir
|
||||||
|
if [ -n "$LOCAL" -a -f "${LOCALDEBS:-$MIRROR}/dists/$DI_DIST/local/installer-$ARCH/current/images/$image" ]; then
|
||||||
|
cp "${LOCALDEBS:-$MIRROR}/dists/$DI_DIST/local/installer-$ARCH/current/images/$image" "$image"
|
||||||
|
elif [ ! "$DI_WWW_HOME" ];then
|
||||||
|
if [ ! "$DI_DIR" ];then
|
||||||
|
DI_DIR="$MIRROR/dists/$DI_DIST/main/installer-$ARCH/current/images"
|
||||||
|
fi
|
||||||
|
cp -a "$DI_DIR/$image" "$image"
|
||||||
|
else
|
||||||
|
$WGET --no-parent -r -nH --cut-dirs=3 "$DI_WWW_HOME/$image"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Clean up in case we had to use $WGET :-(
|
||||||
|
find . -name 'index.html*' -delete
|
||||||
|
}
|
||||||
|
|
||||||
# Grab the xorriso version and turn it into a number we can use
|
# Grab the xorriso version and turn it into a number we can use
|
||||||
xorriso_version() {
|
xorriso_version() {
|
||||||
$MKISOFS --version 2>&1 | awk '
|
$MKISOFS --version 2>&1 | awk '
|
||||||
|
|
Loading…
Reference in New Issue