From daeb5cc5842cf1b9fb85e8c7972f2923350c5cc7 Mon Sep 17 00:00:00 2001 From: Martin Whitaker Date: Fri, 2 Mar 2018 23:30:01 +0000 Subject: Add support for 32-bit EFI. --- build_all.sh | 2 +- build_one.sh | 9 ++++++++- config/build.cfg | 7 ++++++- update_bootloader_files.sh | 15 +++++++++------ 4 files changed, 24 insertions(+), 9 deletions(-) diff --git a/build_all.sh b/build_all.sh index 2d3d222..078cd04 100755 --- a/build_all.sh +++ b/build_all.sh @@ -10,8 +10,8 @@ desktops[i586]="Xfce" desktops[x86_64]="GNOME Plasma Xfce" -./update_bootloader_files.sh for arch in $archs; do + ./update_bootloader_files.sh $arch for desktop in ${desktops[$arch]}; do sudo -u draklive sudo /usr/sbin/draklive --clean --all --define arch=$arch --define desktop=$desktop sudo -u bcd mkdir -p /home/bcd/public_html/isos/trial-builds/Mageia-${release}-LiveDVD-${desktop}-${arch}-DVD diff --git a/build_one.sh b/build_one.sh index f71e1c1..be6bac9 100755 --- a/build_one.sh +++ b/build_one.sh @@ -1,5 +1,12 @@ #!/bin/sh -./update_bootloader_files.sh +arch=$(grep arch config/settings.cfg | sed s/arch=//) +for arg in $*; do + value=${arg#arch=} + if [ $value != $arg ]; then + arch=$value + fi +done +./update_bootloader_files.sh $arch draklive='perl -I ../drakiso/lib ../drakiso/draklive' if [ $# -gt 0 ] ; then $draklive $* diff --git a/config/build.cfg b/config/build.cfg index c0c9cc2..97373b2 100644 --- a/config/build.cfg +++ b/config/build.cfg @@ -433,7 +433,12 @@ my $_l = { ], mbr_boot_img => 'bootloader/images/boot_hybrid.img', eltorito_img => 'bootloader/images/eltorito.img', - bootx64_efi => 'bootloader/images/bootx64.efi', + if_($arch eq 'i586', + boot_efi => 'bootloader/images/bootia32.efi' + ), + if_($arch eq 'x86_64', + boot_efi => 'bootloader/images/bootx64.efi' + ), }, mount => MGA::DrakISO::Mounts::volatile_squash_union($use_modules), }; diff --git a/update_bootloader_files.sh b/update_bootloader_files.sh index 6cfdd8b..fb66e7b 100755 --- a/update_bootloader_files.sh +++ b/update_bootloader_files.sh @@ -1,18 +1,21 @@ #!/bin/sh repository=$(grep repository config/settings.cfg | sed s/repository=//) -echo "Fetching bootloader files from $repository" +if [ $# -eq 0 ]; then + arch=$(grep arch config/settings.cfg | sed s/arch=//) +else + arch=$1 +fi +echo "Fetching $arch bootloader files from $repository" # Remove old files rm -rf bootloader -# The 64-bit packge contains everything we need. The non-UEFI grub2 images -# are built for i386, and everything else should be architecture-independent -path=`ls -1v $repository/x86_64/media/core/{release,updates}/drakiso-bootloader-files*.rpm 2> /dev/null | tail -1` +path=`ls -1v $repository/$arch/media/core/{release,updates}/drakiso-bootloader-files*.rpm 2> /dev/null | tail -1` if [ -z $path ] ; then - echo "ERROR: couldn't find drakiso-bootloader-files RPM in $repository." + echo "ERROR: couldn't find $arch drakiso-bootloader-files RPM in $repository." exit 1 else - echo "Extracting bootloader files from repository." + echo "Extracting $arch bootloader files from repository." rpm2cpio $path | cpio -idm --quiet if [ $? -ne 0 ] ; then echo "ERROR: failed to extract files from archive." -- cgit v1.2.1