X-Git-Url: https://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=grml-live;h=d9620d09e89927771c25597767de103769de883b;hp=20b8191347fa2f50df2a2788d8cdaa0f1dc05f75;hb=58742ddcb55768e21dadec102231c97cf7a380c1;hpb=50857d888a8e6c3cafd740b5f4acec23422a2411 diff --git a/grml-live b/grml-live index 20b8191..d9620d0 100755 --- a/grml-live +++ b/grml-live @@ -71,6 +71,8 @@ Usage: $PN [options, see as follows] -U arrange output to be owned by specified username -v specify version number of the release -V increase verbosity in the build process + -w wayback machine, build system using Debian archives + from specified date -z use ZLIB instead of LZMA/XZ compression Usage examples: @@ -311,7 +313,7 @@ copy_addon_file() { # }}} # command line parsing {{{ -while getopts "a:C:c:d:D:e:g:i:I:o:r:s:S:t:U:v:AbBFhnNqQuVz" opt; do +while getopts "a:C:c:d:D:e:g:i:I:o:r:s:S:t:U:v:w:AbBFhnNqQuVz" opt; do case "$opt" in a) ARCH="$OPTARG" ;; A) CLEAN_ARTIFACTS=1 ;; @@ -340,6 +342,7 @@ while getopts "a:C:c:d:D:e:g:i:I:o:r:s:S:t:U:v:AbBFhnNqQuVz" opt; do u) UPDATE=1 ;; U) CHOWN_USER="$OPTARG" ;; V) VERBOSE="-v" ;; + w) export WAYBACK_DATE="$OPTARG" ;; z) SQUASHFS_ZLIB=1 ;; ?) echo "invalid option -$OPTARG" >&2; usage; bailout 1 ;; esac @@ -631,7 +634,11 @@ fi # generate nfsroot configuration for FAI on the fly if [ -z "$FAI_DEBOOTSTRAP" ] ; then - FAI_DEBOOTSTRAP="$SUITE http://ftp.debian.org/debian" + if [ -n "$WAYBACK_DATE" ] ; then + FAI_DEBOOTSTRAP="$SUITE http://snapshot.debian.org/archive/debian/$WAYBACK_DATE/" + else + FAI_DEBOOTSTRAP="$SUITE http://ftp.debian.org/debian" + fi fi if [ -z "$FAI_DEBOOTSTRAP_OPTS" ] ; then @@ -693,7 +700,7 @@ else mount --bind "${OUTPUT}/grml_sources/" "${CHROOT_OUTPUT}/grml-live/sources/" log "Executed FAI command line:" - log "BUILD_ONLY=$BUILD_ONLY BOOTSTRAP_ONLY=$BOOTSTRAP_ONLY GRML_LIVE_CONFIG=$CONFIGDUMP fai $VERBOSE -C $GRML_FAI_CONFIG -s file:///$GRML_FAI_CONFIG/config -c$CLASSES -u $HOSTNAME $FAI_ACTION $CHROOT_OUTPUT $FAI_ARGS" + log "BUILD_ONLY=$BUILD_ONLY BOOTSTRAP_ONLY=$BOOTSTRAP_ONLY GRML_LIVE_CONFIG=$CONFIGDUMP WAYBACK_DATE=$WAYBACK_DATE fai $VERBOSE -C $GRML_FAI_CONFIG -s file:///$GRML_FAI_CONFIG/config -c$CLASSES -u $HOSTNAME $FAI_ACTION $CHROOT_OUTPUT $FAI_ARGS" BUILD_ONLY="$BUILD_ONLY" BOOTSTRAP_ONLY="$BOOTSTRAP_ONLY" GRML_LIVE_CONFIG="$CONFIGDUMP" fai $VERBOSE \ -C "$GRML_FAI_CONFIG" -s "file:///$GRML_FAI_CONFIG/config" -c"$CLASSES" \ -u "$HOSTNAME" "$FAI_ACTION" "$CHROOT_OUTPUT" $FAI_ARGS | tee -a $LOGFILE @@ -809,7 +816,7 @@ else EOF - for package in $(awk '{print $1}' "${CHECKLOG}/package_errors.log") ; do + for package in $(awk '{print $1}' "${CHECKLOG}/package_errors.log" | sed 's;/;\\/;') ; do failure_reason="$(awk "/$package/ {print \$2}" "${CHECKLOG}/package_errors.log")" cat >> "${REPORT_MISSING_PACKAGES}" << EOF @@ -903,13 +910,9 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then # copy _required_ isolinux files if [ -d "${CHROOT_OUTPUT}/usr/lib/ISOLINUX" ] ; then copy_addon_file isolinux.bin /usr/lib/ISOLINUX isolinux - copy_addon_file ifcpu64.c32 /usr/lib/syslinux/modules/bios/ isolinux - copy_addon_file ldlinux.c32 /usr/lib/syslinux/modules/bios/ isolinux - copy_addon_file libcom32.c32 /usr/lib/syslinux/modules/bios/ isolinux - copy_addon_file libgpl.c32 /usr/lib/syslinux/modules/bios/ isolinux - copy_addon_file libmenu.c32 /usr/lib/syslinux/modules/bios/ isolinux - copy_addon_file libutil.c32 /usr/lib/syslinux/modules/bios/ isolinux - copy_addon_file vesamenu.c32 /usr/lib/syslinux/modules/bios/ isolinux + for file in ${CHROOT_OUTPUT}/usr/lib/syslinux/modules/bios/*.c32 ; do + copy_addon_file "$(basename "$file")" /usr/lib/syslinux/modules/bios/ isolinux + done else # syslinux versions <= 3:4.05+dfsg-6+deb8u1 copy_addon_file isolinux.bin /usr/lib/syslinux isolinux copy_addon_file ifcpu64.c32 /usr/lib/syslinux isolinux @@ -1497,6 +1500,10 @@ create_netbootpackage() { cp "${CHROOT_OUTPUT}"/boot/initrd.img-* "$WORKING_DIR"/initrd.img cp "${CHROOT_OUTPUT}/${pxelinux_dir}/pxelinux.0" "${WORKING_DIR}/pxelinux.0" + if [ -r "${CHROOT_OUTPUT}"/usr/lib/syslinux/modules/bios/ldlinux.c32 ] ; then + cp "${CHROOT_OUTPUT}"/usr/lib/syslinux/modules/bios/ldlinux.c32 "${WORKING_DIR}"/ + fi + mkdir -p "${WORKING_DIR}/pxelinux.cfg" if [ -r "${BUILD_OUTPUT}/boot/isolinux/netboot.cfg" ] ; then cp "${BUILD_OUTPUT}/boot/isolinux/netboot.cfg" "${WORKING_DIR}/pxelinux.cfg/default"