From a2e170c19497ae9c54492b738a50bb97183dd321 Mon Sep 17 00:00:00 2001 From: udeved Date: Sun, 9 Oct 2016 09:08:30 +0200 Subject: [PATCH] buildiso: adopt syslinux-theme changes --- Makefile | 9 ++++++++ data/efiboot/loader.conf | 2 ++ data/efiboot/miso-dvd.conf | 5 +++++ data/efiboot/miso-usb.conf | 5 +++++ lib/util-iso-boot.sh | 46 +++++++++++++++++++------------------- lib/util-iso.sh | 2 +- 6 files changed, 45 insertions(+), 24 deletions(-) create mode 100644 data/efiboot/loader.conf create mode 100755 data/efiboot/miso-dvd.conf create mode 100644 data/efiboot/miso-usb.conf diff --git a/Makefile b/Makefile index 0576c92..507ae05 100644 --- a/Makefile +++ b/Makefile @@ -78,6 +78,11 @@ SHARED_ISO = \ data/pacman-mhwd.conf \ data/profile.conf.example +EFI_ISO = \ + data/efiboot/loader.conf \ + data/efiboot/miso-dvd.conf \ + data/efiboot/miso-usb.conf + CPIOHOOKS = \ initcpio/hooks/miso \ initcpio/hooks/miso_overlayfs \ @@ -187,6 +192,9 @@ install_iso: install -dm0755 $(DESTDIR)$(PREFIX)/share/manjaro-tools install -m0644 ${SHARED_ISO} $(DESTDIR)$(PREFIX)/share/manjaro-tools + install -dm0755 $(DESTDIR)$(PREFIX)/share/manjaro-tools/efiboot + install -m0644 ${EFI_ISO} $(DESTDIR)$(PREFIX)/share/manjaro-tools/efiboot + install -dm0755 $(DESTDIR)$(PREFIX)/share/man/man1 gzip -c man/buildiso.1 > $(DESTDIR)$(PREFIX)/share/man/man1/buildiso.1.gz gzip -c man/deployiso.1 > $(DESTDIR)$(PREFIX)/share/man/man1/deployiso.1.gz @@ -228,6 +236,7 @@ uninstall_iso: for f in ${LIST_ISO}; do rm -f $(DESTDIR)$(SYSCONFDIR)/manjaro-tools/iso.list.d/$$f; done for f in ${BIN_ISO}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$f; done for f in ${SHARED_ISO}; do rm -f $(DESTDIR)$(PREFIX)/share/manjaro-tools/$$f; done + for f in ${EFI_ISO}; do rm -f $(DESTDIR)$(PREFIX)/share/manjaro-tools/efiboot/$$f; done for f in ${LIBS_ISO}; do rm -f $(DESTDIR)$(PREFIX)/lib/manjaro-tools/$$f; done for f in ${CPIOHOOKS}; do rm -f $(DESTDIR)$(PREFIX)/lib/initcpio/hooks/$$f; done diff --git a/data/efiboot/loader.conf b/data/efiboot/loader.conf new file mode 100644 index 0000000..41ddb4e --- /dev/null +++ b/data/efiboot/loader.conf @@ -0,0 +1,2 @@ +timeout 3 +default @ISO_NAME@-x86_64 diff --git a/data/efiboot/miso-dvd.conf b/data/efiboot/miso-dvd.conf new file mode 100755 index 0000000..8e988f7 --- /dev/null +++ b/data/efiboot/miso-dvd.conf @@ -0,0 +1,5 @@ +title @DIST_NAME@ Linux x86_64 UEFI DVD (@DRV@) +linux /EFI/miso/vmlinuz.efi +initrd /EFI/miso/intel_ucode.img +initrd /EFI/miso/initramfs.img +options misobasedir=@ISO_NAME@ misolabel=@ISO_LABEL@ nouveau.modeset=1 i915.modeset=1 radeon.modeset=1 logo.nologo overlay=@DRV@ nonfree=@SWITCH@ @BOOT_ARGS@ diff --git a/data/efiboot/miso-usb.conf b/data/efiboot/miso-usb.conf new file mode 100644 index 0000000..b02fc8e --- /dev/null +++ b/data/efiboot/miso-usb.conf @@ -0,0 +1,5 @@ +title @DIST_NAME@ Linux x86_64 UEFI USB (@DRV@) +linux /@ISO_NAME@/boot/x86_64/vmlinuz +initrd /@ISO_NAME@/boot/intel_ucode.img +initrd /@ISO_NAME@/boot/x86_64/initramfs.img +options misobasedir=@ISO_NAME@ misolabel=@ISO_LABEL@ nouveau.modeset=1 i915.modeset=1 radeon.modeset=1 logo.nologo overlay=@DRV@ nonfree=@SWITCH@ @BOOT_ARGS@ diff --git a/lib/util-iso-boot.sh b/lib/util-iso-boot.sh index 82e92c7..c698b37 100644 --- a/lib/util-iso-boot.sh +++ b/lib/util-iso-boot.sh @@ -65,13 +65,17 @@ is_intel_ucode(){ } copy_efi_shell(){ - msg2 "Copying efi shell ..." - cp $1${DATADIR}/efi_shell/*.efi $2/ + for f in $1${DATADIR}/efi_shell/*.efi;do + msg2 "Copying efi shell ..." + [[ -f $f ]] && cp $f $2/ + done } copy_efi_shell_conf(){ - msg2 "Copying efi shell loader entries ..." - cp $1${DATADIR}/efi_shell/*.conf $2/ + for f in cp $1${DATADIR}/efi_shell/*.conf;do + msg2 "Copying efi shell loader entries ..." + [[ -f $f ]] && cp $f $2/ + done } copy_ucode(){ @@ -90,7 +94,7 @@ copy_boot_images(){ prepare_efi_loader_conf(){ prepare_dir "$1" - sed "s|%ISO_NAME%|${iso_name}|g" ${run_dir}/shared/efiboot/loader.conf > $1/loader.conf + sed "s|%ISO_NAME%|${iso_name}|g" ${DATADIR}/efiboot/loader.conf > $1/loader.conf } gen_boot_args(){ @@ -101,9 +105,11 @@ gen_boot_args(){ echo ${args[@]} } -set_efi_loader_entry_conf(){ +vars_to_boot_conf(){ sed -e "s|@ISO_NAME@|${iso_name}|g" \ -e "s|@ISO_LABEL@|${iso_label}|g" \ + -e "s|@DIST_NAME@|${dist_name}|g" \ + -e "s|@ARCH@|${target_arch}|g" \ -e "s|@DRV@|$2|g" \ -e "s|@SWITCH@|$3|g" \ -e "s|@BOOT_ARGS@|$(gen_boot_args)|g" \ @@ -113,30 +119,24 @@ set_efi_loader_entry_conf(){ prepare_loader_entry(){ local drv='free' switch="no" prepare_dir "$1/loader/entries" - cp ${run_dir}/shared/efiboot/miso-x86_64-$2.conf $1/loader/entries/${iso_name}-x86_64.conf - set_efi_loader_entry_conf "$1/loader/entries/${iso_name}-x86_64.conf" "$drv" "$switch" + cp ${DATADIR}/efiboot/miso-$2.conf $1/loader/entries/${iso_name}-x86_64.conf + vars_to_boot_conf "$1/loader/entries/${iso_name}-x86_64.conf" "$drv" "$switch" if ${nonfree_mhwd};then drv='nonfree' switch="yes" - cp ${run_dir}/shared/efiboot/miso-x86_64-$2.conf $1/loader/entries/${iso_name}-x86_64-nonfree.conf - set_efi_loader_entry_conf "$1/loader/entries/${iso_name}-x86_64-nonfree.conf" "$drv" "$switch" + cp ${DATADIR}/efiboot/miso-$2.conf $1/loader/entries/${iso_name}-x86_64-nonfree.conf + vars_to_boot_conf "$1/loader/entries/${iso_name}-x86_64-nonfree.conf" "$drv" "$switch" fi } prepare_syslinux(){ - local syslinux=${run_dir}/shared/syslinux - msg2 "Copying syslinux theme ..." - cp ${syslinux}/{*.{jpg,tr,hlp,tlk},bootlogo,languages,init} $2 - for conf in ${syslinux}/*.cfg ${syslinux}/*.msg; do - msg2 "Copying %s ..." "${conf##*/}" - sed "s|@ARCH@|${target_arch}|g; - s|@DIST_NAME@|${dist_name}|g - s|@ISO_NAME@|${iso_name}|g; - s|@ISO_LABEL@|${iso_label}|g; - s|@BOOT_ARGS@|$(gen_boot_args)|g;" ${conf} > $2/${conf##*/} - done - + local syslinux=/usr/lib/syslinux/bios msg2 "Copying syslinux binaries ..." - cp $1/{*.c32,lpxelinux.0,memdisk,{isolinux,isohdpfx}.bin} $2 + cp ${syslinux}/{*.c32,lpxelinux.0,memdisk,{isolinux,isohdpfx}.bin} $1 + msg2 "Copying syslinux theme ..." + cp ${DATADIR}/syslinux-theme/* $1 + for conf in ${syslinux}/*.cfg; do + vars_to_boot_conf "$1/${conf##*/}" + done } write_isomounts(){ diff --git a/lib/util-iso.sh b/lib/util-iso.sh index 29df39a..9255612 100644 --- a/lib/util-iso.sh +++ b/lib/util-iso.sh @@ -371,7 +371,7 @@ make_syslinux() { msg "Prepare [%s/iso/syslinux]" "${iso_name}" local syslinux=${work_dir}/iso/syslinux mkdir -p ${syslinux} - prepare_syslinux "${work_dir}/live-image/usr/lib/syslinux/bios" "${syslinux}" + prepare_syslinux "${syslinux}" mkdir -p ${syslinux}/hdt gzip -c -9 ${work_dir}/root-image/usr/share/hwdata/pci.ids > ${syslinux}/hdt/pciids.gz gzip -c -9 ${work_dir}/live-image/usr/lib/modules/*-MANJARO/modules.alias > ${syslinux}/hdt/modalias.gz