Move squashfs into flavour-specific path
[grml-live.git] / grml-live
index b8a14a6..bea6549 100755 (executable)
--- 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