Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 312687 - latest autotools.eclass has_version fix to fix non-/ ROOT builds
Summary: latest autotools.eclass has_version fix to fix non-/ ROOT builds
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Eclasses (show other bugs)
Hardware: All Linux
: High major (vote)
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-04-01 18:08 UTC by Daniel Robbins
Modified: 2023-12-27 19:44 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Daniel Robbins 2010-04-01 18:08:30 UTC
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
Comment 1 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2010-04-01 21:45:39 UTC
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 ;-).
Comment 2 Daniel Robbins 2010-04-01 21:47:58 UTC
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
Comment 3 Larry the Git Cow gentoo-dev 2022-04-30 19:13:48 UTC
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(-)