X-Git-Url: https://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=grml-live;h=bea65498292bdd81b99f957ae8e0739f8c4072d9;hp=b8a14a6da43b990afd3be58a1be92149d149cf0c;hb=1684dab78f944c3b8d6d97841174ea3afd8699ae;hpb=07dc67604d96b16ea8322102cf437928e0fcd144 diff --git a/grml-live b/grml-live index b8a14a6..bea6549 100755 --- a/grml-live +++ b/grml-live @@ -543,7 +543,7 @@ if [ -n "$EXTRACT_ISO_NAME" ]; then eend 1 bailout 1 fi - unsquashfs -d "${CHROOT_OUTPUT}" "${mountpoint}"/live/*.squashfs ; rc=$? + unsquashfs -d "${CHROOT_OUTPUT}" "${mountpoint}"/live/*/*.squashfs ; rc=$? umount "$mountpoint" rmdir "$mountpoint" if [ "$rc" != 0 ]; then @@ -883,7 +883,7 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then if ! [ -d "${BUILD_OUTPUT}/boot/grub" ] ; then mkdir -p "${BUILD_OUTPUT}/boot/grub" fi - cp ${TEMPLATE_DIRECTORY}/boot/grub/* "$BUILD_OUTPUT"/boot/grub/ + cp -a ${TEMPLATE_DIRECTORY}/boot/grub/* "$BUILD_OUTPUT"/boot/grub/ # copy grub files from target cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/*-pc/*.mod "${BUILD_OUTPUT}"/boot/grub/ @@ -929,7 +929,7 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then # adjust all variables in the templates with the according distribution information for file in "${BUILD_OUTPUT}"/boot/isolinux/*.cfg "${BUILD_OUTPUT}"/boot/isolinux/*.msg \ "${BUILD_OUTPUT}"/boot/grub/* ; do - if [ -r "${file}" ] ; then + if [ -r "${file}" ] && [ -f "${file}" ] ; then sed -i "s/%ARCH%/$ARCH/g" "${file}" sed -i "s/%DATE%/$DATE/g" "${file}" sed -i "s/%DISTRI_INFO%/$DISTRI_INFO/g" "${file}" @@ -951,6 +951,14 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then fi done + for param in ARCH DATE DISTRI_INFO DISTRI_NAME DISTRI_SPLASH GRML_NAME SQUASHFS_NAME \ + RELEASE_INFO SHORT_NAME VERSION ; do + for file in $(find "${BUILD_OUTPUT}" -name "*%$param%*") ; do + value="$(eval echo '$'"$param")" + mv ${file} ${file/\%${param}\%/$value} + done + done + # adjust bootsplash accordingly but make sure the string has the according lenght SQUASHFS_NAME="$(cut_string 20 "$SQUASHFS_NAME")" SQUASHFS_NAME="$(extend_string_end 20 "$SQUASHFS_NAME")" @@ -1075,7 +1083,7 @@ elif [ -n "$SKIP_MKSQUASHFS" ] ; then log "Skipping stage 'squashfs' as requested via option -q or -N" ewarn "Skipping stage 'squashfs' as requested via option -q or -N" ; eend 0 else - [ -d "$BUILD_OUTPUT"/live ] || mkdir "$BUILD_OUTPUT"/live + mkdir -p "$BUILD_OUTPUT"/live/"${GRML_NAME}"/ # make sure we don't leave (even an empty) base.tgz: [ -f "$CHROOT_OUTPUT/base.tgz" ] && rm -f "$CHROOT_OUTPUT/base.tgz" @@ -1124,11 +1132,11 @@ else [ -n "$SQUASHFS_INFO_MSG" ] && SQUASHFS_INFO_MSG="using options: $SQUASHFS_INFO_MSG" einfo "Squashfs build information: running binary $SQUASHFS_BINARY $SQUASHFS_INFO_MSG" - log "$SQUASHFS_BINARY $CHROOT_OUTPUT/ $BUILD_OUTPUT/live/${GRML_NAME}.squashfs -noappend $SQUASHFS_OPTIONS" + log "$SQUASHFS_BINARY $CHROOT_OUTPUT/ $BUILD_OUTPUT/live/${GRML_NAME}/${GRML_NAME}.squashfs -noappend $SQUASHFS_OPTIONS" - if $SQUASHFS_BINARY $CHROOT_OUTPUT/ $BUILD_OUTPUT/live/"${GRML_NAME}".squashfs \ + if $SQUASHFS_BINARY $CHROOT_OUTPUT/ $BUILD_OUTPUT/live/"${GRML_NAME}"/"${GRML_NAME}".squashfs \ -noappend $SQUASHFS_OPTIONS 2>"${SQUASHFS_STDERR}" ; then - echo "${GRML_NAME}.squashfs" > $BUILD_OUTPUT/live/filesystem.module + echo "${GRML_NAME}.squashfs" > $BUILD_OUTPUT/live/"${GRML_NAME}"/filesystem.module log "Finished execution of stage 'squashfs' [$(date)]" einfo "Finished execution of stage 'squashfs'" ; eend 0 else @@ -1205,24 +1213,21 @@ else eindent if ! dpkg --compare-versions $(dpkg-query -W -f='${Version}\n' xorriso 2>/dev/null) gt-nl 1.1.6-1 ; then - log "Disabling (U)EFI boot support since xorriso version is not recent enough." - ewarn "Disabling (U)EFI boot support since xorriso version is not recent enough." ; eend 0 + log "Disabling (U)EFI boot support because xorriso version is too old." + ewarn "Disabling (U)EFI boot support because xorriso version is too old." ; eend 0 else - log "xorriso with -eltorito-alt-boot present, enabling (U)EFI boot support." - einfo "xorriso with -eltorito-alt-boot present, enabling (U)EFI boot support." ; eend 0 - - if [ -r "${CHROOT_OUTPUT}/var/lib/grml_live_efi.img" ] ; then - einfo "Found /var/lib/grml_live_efi.img - moving to /boot/efi.img for ISO." - log "Found /var/lib/grml_live_efi.img - moving to /boot/efi.img for ISO." - mv "${CHROOT_OUTPUT}/var/lib/grml_live_efi.img" "${BUILD_OUTPUT}/boot/efi.img" + if [ -r "${CHROOT_OUTPUT}/boot/efi.img" ] ; then + einfo "Found /boot/efi.img - using for ISO." + log "Found /boot/efi.img - using for ISO." + cp "${CHROOT_OUTPUT}/boot/efi.img" "${BUILD_OUTPUT}/boot/efi.img" eend $? fi - if [ -r "${CHROOT_OUTPUT}/var/lib/grml_live_bootx64.efi" ] ; then - einfo "Found /var/lib/grml_live_bootx64.efi - moving to /efi/boot/bootx64.efi for ISO" - log "Found /var/lib/grml_live_bootx64.efi - moving to /efi/boot/bootx64.efi for ISO" + if [ -r "${CHROOT_OUTPUT}/boot/bootx64.efi" ] ; then + einfo "Found /boot/bootx64.efi - using as /efi/boot/bootx64.efi for ISO." + log "Found /boot/bootx64.efi - using as /efi/boot/bootx64.efi for ISO." mkdir -p "${BUILD_OUTPUT}/efi/boot/" - mv "${CHROOT_OUTPUT}/var/lib/grml_live_bootx64.efi" "${BUILD_OUTPUT}/efi/boot/bootx64.efi" + cp "${CHROOT_OUTPUT}/boot/bootx64.efi" "${BUILD_OUTPUT}/efi/boot/bootx64.efi" eend $? fi @@ -1231,6 +1236,9 @@ else log "/boot/efi.img found and amd64 architecture present, extending boot arguments." BOOT_ARGS="$BOOT_ARGS -boot-info-table -eltorito-alt-boot -e boot/efi.img -no-emul-boot" eend $? + else + log "Disabling (U)EFI boot support because /boot/efi.img is missing." + ewarn "Disabling (U)EFI boot support because /boot/efi.img is missing." ; eend 0 fi fi @@ -1379,15 +1387,13 @@ create_netbootpackage() { cp "${CHROOT_OUTPUT}"/boot/initrd.img-* "$WORKING_DIR"/initrd.img cp "${CHROOT_OUTPUT}"/usr/lib/syslinux/pxelinux.0 "${WORKING_DIR}/pxelinux.0" + mkdir -p "${WORKING_DIR}/pxelinux.cfg" if [ -r "${BUILD_OUTPUT}/boot/isolinux/netboot.cfg" ] ; then - mkdir -p "${WORKING_DIR}/pxelinux.cfg/default" cp "${BUILD_OUTPUT}/boot/isolinux/netboot.cfg" "${WORKING_DIR}/pxelinux.cfg/default" else ewarn "File ${BUILD_OUTPUT}/boot/isolinux/netboot.cfg not found." ; eend 0 fi - mkdir -p "${WORKING_DIR}/pxelinux.cfg" - if tar -C "$OUTPUTDIR" -jcf "${OUTPUT_FILE}" "grml_netboot_package_${GRML_NAME}_${VERSION}" ; then sha1sum "${OUTPUT_FILE}" > "${OUTPUT_FILE}.sha1" einfo "Generated netboot package ${OUTPUT_FILE}" ; eend 0