X-Git-Url: https://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=grml-live;h=c5c225018d6afaec58404ae074662cc7c26c4b1c;hp=1d3f9ed4039cc28cdd649d41cd89bb9d47c43b71;hb=7fe3cdb15aca0a8f4412d234964dd2fb4705e9d8;hpb=4a12fc717a25eab6871a3beeb10e4353710e463b diff --git a/grml-live b/grml-live index 1d3f9ed..c5c2250 100755 --- a/grml-live +++ b/grml-live @@ -893,9 +893,18 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then fi # copy _required_ isolinux files - for file in ifcpu64.c32 isolinux.bin vesamenu.c32; do - copy_addon_file "${file}" /usr/lib/syslinux isolinux - done + 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 libutil.c32 /usr/lib/syslinux/modules/bios/ isolinux + copy_addon_file vesamenu.c32 /usr/lib/syslinux/modules/bios/ isolinux + 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 + copy_addon_file vesamenu.c32 /usr/lib/syslinux isolinux + fi # *always* copy files to output directory so the variables # get adjusted according to the build. @@ -913,8 +922,16 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then copy_addon_file ipxe.lkrn /usr/lib/ipxe addons copy_addon_file pci.ids /usr/share/misc addons copy_addon_file memtest86+.bin /boot addons + + # since syslinux(-common) v3:6.03~pre1+dfsg-4 the files are in a + # different directory :( + if [ -d "${CHROOT_OUTPUT}/usr/lib/syslinux/modules/bios/" ] ; then + syslinux_modules_dir=/usr/lib/syslinux/modules/bios/ + else + syslinux_modules_dir=/usr/lib/syslinux + fi for file in memdisk chain.c32 hdt.c32 mboot.c32 menu.c32; do - copy_addon_file "${file}" /usr/lib/syslinux addons + copy_addon_file "${file}" "${syslinux_modules_dir}" addons done # make memtest filename FAT16/8.3 compatible @@ -958,7 +975,7 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then echo "source /boot/grub/footer.cfg" >> "${BUILD_OUTPUT}"/boot/grub/loopback.cfg # copy grub files from target - mkdir -p ${BUILD_OUTPUT}"/boot/grub/i386-pc/ + mkdir -p "${BUILD_OUTPUT}"/boot/grub/i386-pc/ cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/*-pc/*.mod "${BUILD_OUTPUT}"/boot/grub/i386-pc/ cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/*-pc/*.o "${BUILD_OUTPUT}"/boot/grub/i386-pc/ cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/*-pc/*.lst "${BUILD_OUTPUT}"/boot/grub/i386-pc/ @@ -966,6 +983,10 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then cp -a "${CHROOT_OUTPUT}"/boot/grub/core.img "${BUILD_OUTPUT}"/boot/grub/ cp -a "${CHROOT_OUTPUT}"/boot/grub/grub.img "${BUILD_OUTPUT}"/boot/grub/ + # copy modules for UEFI grub + mkdir -p "${BUILD_OUTPUT}"/boot/grub/x86_64-efi/ + cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/x86_64-efi/*.{mod,lst} "${BUILD_OUTPUT}"/boot/grub/x86_64-efi/ + if ! [ -d "${TEMPLATE_DIRECTORY}"/GRML ] ; then log "Error: ${TEMPLATE_DIRECTORY}/GRML does not exist. Exiting." eerror "Error: ${TEMPLATE_DIRECTORY}/GRML does not exist. Exiting." ; eend 1 @@ -1436,10 +1457,18 @@ create_netbootpackage() { mkdir -p "$NETBOOT" - if ! [ -r "${CHROOT_OUTPUT}/usr/lib/syslinux/pxelinux.0" ] ; then - ewarn "File /usr/lib/syslinux/pxelinux.0 not found in build chroot." ; eend 0 + # since syslinux v3:6.03~pre1+dfsg-4 the pxelinux.0 has been split into a + # separate pxelinux package + if [ -d "${CHROOT_OUTPUT}/usr/lib/PXELINUX/" ] ; then + local pxelinux_dir=/usr/lib/PXELINUX + else + local pxelinux_dir=/usr/lib/syslinux + fi + + if ! [ -r "${CHROOT_OUTPUT}/${pxelinux_dir}/pxelinux.0" ] ; then + ewarn "File ${pxelinux_dir}/pxelinux.0 not found in build chroot." ; eend 0 eindent - einfo "Install syslinux[-common] package in chroot to get a netboot package." + einfo "Install syslinux[-common]/pxelinux package in chroot to get a netboot package." eoutdent return 0 fi @@ -1451,7 +1480,7 @@ create_netbootpackage() { 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" + cp "${CHROOT_OUTPUT}/${pxelinux_dir}/pxelinux.0" "${WORKING_DIR}/pxelinux.0" mkdir -p "${WORKING_DIR}/pxelinux.cfg" if [ -r "${BUILD_OUTPUT}/boot/isolinux/netboot.cfg" ] ; then