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
# during build, so check for the file:
INITRD="$(ls $CHROOT_OUTPUT/boot/initrd* 2>/dev/null| grep -v '.bak$' | sort -r | head -1)"
if [ -n "$INITRD" ] ; then
- cp $INITRD "$BUILD_OUTPUT"/boot/"${SHORT_NAME}"/initrd.gz
+ cp $INITRD "$BUILD_OUTPUT"/boot/"${SHORT_NAME}"/initrd.img
find $CHROOT_OUTPUT/boot/ -name initrd\*.bak -exec rm {} \;
else
log "Error: No initrd found inside $CHROOT_OUTPUT/boot/ - Exiting"
KERNEL_IMAGE="$(ls $CHROOT_OUTPUT/boot/vmlinuz* 2>/dev/null | sort -r | head -1)"
if [ -n "$KERNEL_IMAGE" ] ; then
- cp "$KERNEL_IMAGE" "$BUILD_OUTPUT"/boot/"${SHORT_NAME}"/linux26
+ cp "$KERNEL_IMAGE" "$BUILD_OUTPUT"/boot/"${SHORT_NAME}"/vmlinuz
else
log "Error: No kernel found inside $CHROOT_OUTPUT/boot/ - Exiting"
eerror "Error: No kernel found inside $CHROOT_OUTPUT/boot/ - Exiting" ; eend 1
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/
# 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}"
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")"
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"
[ -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
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
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
mkdir -p "$WORKING_DIR"
- cp "${CHROOT_OUTPUT}"/boot/vmlinuz-* "$WORKING_DIR"/linux26
+ cp "${CHROOT_OUTPUT}"/boot/vmlinuz-* "$WORKING_DIR"/vmlinuz
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