The latest changes from 3/30/10 to autotools.eclass (addition of auto-detect for 1.10 and 1.11) has a bug. has_version is used which respects ROOT. In this particular case, I think this is wrong and we want to be looking at / and not ROOT even if ROOT is not /. This fixes stage1 builds which otherwise fail when /tmp/stage1root does not yet have autoconf installed yet. Fix in the link below - please ignore the silly quote tweaks that git seems to do - it is the last diff that is important: http://github.com/funtoo/portage/commit/b0e2972f164d25c81b7303af053ee6e49781e6e5 Symptoms without fix and ROOT set to /tmp/stage1root: (This affects all ebuilds that happen to call eautoreconf): * Applying udev-135-security-backport-from-141.diff ... [ ok ] * Running eautoreconf in '/var/tmp/portage/sys-fs/udev-135-r10/work/udev-135' ... * ERROR: sys-fs/udev-135-r10 failed: * Cannot find the latest automake! Tried 1.11 1.10 * * Call stack: * ebuild.sh, line 48: Called src_unpack * environment, line 3635: Called eautoreconf * environment, line 1162: Called eaclocal * environment, line 1097: Called autotools_run_tool 'aclocal' * environment, line 610: Called die * The specific snippet of code: * [[ ${WANT_AUTOMAKE} == "latest" ]] && die "Cannot find the latest automake! Tried ${_LATEST_AUTOMAKE}"; * * If you need support, post the output of 'emerge --info =sys-fs/udev-135-r10', * the complete build log and the output of 'emerge -pqv =sys-fs/udev-135-r10'. * The complete build log is located at '/var/tmp/portage/sys-fs/udev-135-r10/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/sys-fs/udev-135-r10/temp/environment'. * S: '/var/tmp/portage/sys-fs/udev-135-r10/work/udev-135' Best Regards, Daniel Reproducible: Always
committed now in in rev 1.97. Can you please link to a actual raw patches rather than just github? They don't offer any way to get a straight patch short of cloning the repo and extracting it yourself. For this patch it was simple, but I've been given larger ones where it's a PITA to do manually. (And you can't copy and paste because their line numbers get brought in. P.S. Re the quotes, check your editor for UTF8 mangling, the quotes there are actually UTF8 chars ;-).
Seems like github might want to add a feature to extract a standard patch from the commit page, but I'll keep that in mind for future bug reports. yep, I'll need to look into what vim is doing. default vim config. Thanks for applying this to the Gentoo tree. -Daniel
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=81f5aea4dedb55fdc18723a93ee2ba5d39b3053b commit 81f5aea4dedb55fdc18723a93ee2ba5d39b3053b Author: Sam James <sam@gentoo.org> AuthorDate: 2022-04-29 01:42:11 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2022-04-30 19:13:32 +0000 autotools.eclass: drop ROOT=/ in has_version call Noticed when doing a read-through of the eclass (which is how I noticed c8e74a7dfe477dea008548553141f083c5d03782 too). Forcing ROOT=/ is, at best, going to confuse matters, and at worst, do entirely the wrong thing. In EAPI 5 and 6, we had --host-root (which we use in the eclass), and in EAPI 7+, we have -b/-d (which we use in the eclass too). The ROOT= setting was there for pre-EAPI 5 times. The aforementioned toggles (--host-root and then later on, -b/-d) are the correct methods to specify (B)ROOT for has_version. Using one of those with ROOT= have undefined behaviour, so drop it. Bug: https://bugs.gentoo.org/312687 Thanks-to: James Le Cuirot <chewi@gentoo.org> Thanks-to: Ulrich Müller <ulm@gentoo.org> Signed-off-by: Sam James <sam@gentoo.org> eclass/autotools.eclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)