The way the current refind ebuild shuffles around the list of filesystems does word-splitting on strings meant to stay together. So, in my case, the emake invocation in src_compile looks like: emake 'ARCH=x86_64' 'CC=x86_64-pc-linux-gnu-gcc' 'AS=x86_64-pc-linux-gnu-as' 'LD=x86_64-pc-linux-gnu-ld' 'AR=x86_64-pc-linux-gnu-ar' 'RANLIB=x86_64-pc-linux-gnu-ranlib' 'OBJCOPY=x86_64-pc-linux-gnu-objcopy' 'GNUEFILIB=/usr/lib64' 'EFILIB=/usr/lib64' 'EFICRT0=/usr/lib64' 'EDK2BASE=' 'EDK2_DRIVER_BASENAMES=btrfs_gnuefi' 'ext2_gnuefi' 'ext4_gnuefi' 'iso9660_gnuefi' 'ntfs_gnuefi' 'FILESYSTEMS=btrfs_gnuefi' 'ext2_gnuefi' 'ext4_gnuefi' 'iso9660_gnuefi' 'ntfs_gnuefi' 'FILESYSTEMS_GNUEFI=btrfs_gnuefi' 'ext2_gnuefi' 'ext4_gnuefi' 'iso9660_gnuefi' 'ntfs_gnuefi' all_gnuefi whereas the obviously intended (and presumably correct) invocation (see ebuild starting @ line 68) is: emake 'ARCH=x86_64' 'CC=x86_64-pc-linux-gnu-gcc' 'AS=x86_64-pc-linux-gnu-as' 'LD=x86_64-pc-linux-gnu-ld' 'AR=x86_64-pc-linux-gnu-ar' 'RANLIB=x86_64-pc-linux-gnu-ranlib' 'OBJCOPY=x86_64-pc-linux-gnu-objcopy' 'GNUEFILIB=/usr/lib64' 'EFILIB=/usr/lib64' 'EFICRT0=/usr/lib64' 'EDK2BASE=' 'EDK2_DRIVER_BASENAMES=btrfs_gnuefi ext2_gnuefi ext4_gnuefi iso9660_gnuefi ntfs_gnuefi' 'FILESYSTEMS=btrfs_gnuefi ext2_gnuefi ext4_gnuefi iso9660_gnuefi ntfs_gnuefi' 'FILESYSTEMS_GNUEFI=btrfs_gnuefi ext2_gnuefi ext4_gnuefi iso9660_gnuefi ntfs_gnuefi' all_gnuefi make -j20 -l7 ARCH=x86_64 CC=x86_64-pc-linux-gnu-gcc AS=x86_64-pc-linux-gnu-as LD=x86_64-pc-linux-gnu-ld AR=x86_64-pc-linux-gnu-ar RANLIB=x86_64-pc-linux-gnu-ranlib OBJCOPY=x86_64-pc-linux-gnu-objcopy GNUEFILIB=/usr/lib64 EFILIB=/usr/lib64 EFICRT0=/usr/lib64 EDK2BASE= 'EDK2_DRIVER_BASENAMES=btrfs_gnuefi ext2_gnuefi ext4_gnuefi iso9660_gnuefi ntfs_gnuefi' 'FILESYSTEMS=btrfs_gnuefi ext2_gnuefi ext4_gnuefi iso9660_gnuefi ntfs_gnuefi' 'FILESYSTEMS_GNUEFI=btrfs_gnuefi ext2_gnuefi ext4_gnuefi iso9660_gnuefi ntfs_gnuefi' all_gnuefi Reproducible: Always Steps to Reproduce: USE="btrfs ext2" emerge =sys-boot/refind-0.12.0-r1 Actual Results: MAKEOPTS=-j1 FEATURES=-ccache USE="btrfs ext2" ebuild /usr/portage/sys-boot/refind/refind-0.12.0-r1.ebuild clean compile * refind-src-0.12.0.tar.gz BLAKE2B SHA512 size ;-) ... [ ok ] * checking ebuild checksums ;-) ... [ ok ] * checking auxfile checksums ;-) ... [ ok ] * checking miscfile checksums ;-) ... [ ok ] >>> Unpacking source... >>> Unpacking refind-src-0.12.0.tar.gz to /var/tmp/portage/sys-boot/refind-0.12.0-r1/work >>> Source unpacked in /var/tmp/portage/sys-boot/refind-0.12.0-r1/work >>> Preparing source in /var/tmp/portage/sys-boot/refind-0.12.0-r1/work/refind-0.12.0 ... * Applying makefile.patch ... [ ok ] * Applying refind-0.12.0-gcc10.patch ... [ ok ] >>> Source prepared. >>> Configuring source in /var/tmp/portage/sys-boot/refind-0.12.0-r1/work/refind-0.12.0 ... >>> Source configured. >>> Compiling source in /var/tmp/portage/sys-boot/refind-0.12.0-r1/work/refind-0.12.0 ... make -j1 ARCH=x86_64 CC=x86_64-pc-linux-gnu-gcc AS=x86_64-pc-linux-gnu-as LD=x86_64-pc-linux-gnu-ld AR=x86_64-pc-linux-gnu-ar RANLIB=x86_64-pc-linux-gnu-ranlib OBJCOPY=x86_64-pc-linux-gnu-objcopy GNUEFILIB=/usr/lib64 EFILIB=/usr/lib64 EFICRT0=/usr/lib64 EDK2BASE= EDK2_DRIVER_BASENAMES=btrfs_gnuefi ext2_gnuefi ext4_gnuefi iso9660_gnuefi ntfs_gnuefi FILESYSTEMS=btrfs_gnuefi ext2_gnuefi ext4_gnuefi iso9660_gnuefi ntfs_gnuefi FILESYSTEMS_GNUEFI=btrfs_gnuefi ext2_gnuefi ext4_gnuefi iso9660_gnuefi ntfs_gnuefi all_gnuefi make: *** No rule to make target 'ext2_gnuefi'. Stop. * ERROR: sys-boot/refind-0.12.0-r1::gentoo failed (compile phase): * emake failed * * If you need support, post the output of `emerge --info '=sys-boot/refind-0.12.0-r1::gentoo'`, * the complete build log and the output of `emerge -pqv '=sys-boot/refind-0.12.0-r1::gentoo'`. * The complete build log is located at '/var/tmp/portage/sys-boot/refind-0.12.0-r1/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/sys-boot/refind-0.12.0-r1/temp/environment'. * Working directory: '/var/tmp/portage/sys-boot/refind-0.12.0-r1/work/refind-0.12.0' * S: '/var/tmp/portage/sys-boot/refind-0.12.0-r1/work/refind-0.12.0' Expected Results: enlightenment and free candy Don't "@" me bro... see patch forthcoming ;)
Created attachment 680140 [details, diff] Possible fix to #762379 "${foo[@]}" -> "${foo[*]}" so we don't turn emake arguments with spaces into multiple arguments
This is possibly/probably related to the new Bash (5.1) which changed behaviour (possibly fixing a bug).
Hey Greg ! Thank you for submitting this issue, and the patch. Would you like to make a PR on GitHub? I can do it myself if you prefer, but the change will then be under my name when you did the job…
Sure, can do.
OK, after various technical difficulties I'm ready to give up and suggest you do the deed, Stéphane. Sorry, it's been ages since I've put in a gentoo PR and a number of new conventions have crystallized. Nothing wrong with wiki---just would rather take my time figuring out some .gnupg technicalities and other new best practices you probably know like the back of your hand. Otherwise I'm probably rushing to screw up a PR that will need correction while an unknown number of gentooers mask or overlay, waiting for this trivial patch. I can figure stuff out on my own time and forgo this tiny smidgen of glory :)
No problem, Greg, I’ll do it. I’m rather busy at the moment, but will try to find a bit of time in the coming days.
*** Bug 764854 has been marked as a duplicate of this bug. ***
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8ea14599e99ef09450ea4abd40a1a4de598ce109 commit 8ea14599e99ef09450ea4abd40a1a4de598ce109 Author: Sam James <sam@gentoo.org> AuthorDate: 2021-01-10 18:29:50 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2021-01-10 18:30:00 +0000 sys-boot/refind: fix build with Bash 5.1 Reported-by: Greg Turner <gmt@be-evil.net> Closes: https://bugs.gentoo.org/762379 Package-Manager: Portage-3.0.12, Repoman-3.0.2 Signed-off-by: Sam James <sam@gentoo.org> sys-boot/refind/refind-0.11.4.ebuild | 8 ++++---- sys-boot/refind/refind-0.12.0-r1.ebuild | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-)