Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 506596

Summary: app-portage/eix calls /usr/$(get_libdir)/portage/bin/ebuild.sh
Product: Portage Development Reporter: Luke-Jr <luke-jr+gentoobugs>
Component: Third-Party ToolsAssignee: Martin Väth <martin>
Status: RESOLVED FIXED    
Severity: normal CC: axs, proxy-maint, thican, xmw
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 506276    

Description Luke-Jr 2014-04-02 19:33:19 UTC
app-portage/eix, when scanning overlays (ie, no portage metadata), attempts to execute ebuilds with /usr/libx32/portage/bin/ebuild.sh, but sys-apps/portage installs ebuild.sh to /usr/lib instead of /usr/libx32

I'm not sure which one is right, but they need to match for eix to work properly.
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2014-04-03 14:49:49 UTC
You'll have to figure out which gets it right and then blame it on the one that gets it wrong. Until then we have no bug.
Comment 2 Luke-Jr 2014-04-03 20:05:31 UTC
(In reply to Jeroen Roovers from comment #1)
> You'll have to figure out which gets it right and then blame it on the one
> that gets it wrong. Until then we have no bug.

That's something the Portage and EIX authors need to decide.
Comment 3 Jeroen Roovers (RETIRED) gentoo-dev 2014-04-04 14:08:11 UTC
You still haven't explained the actual problem.
Comment 4 Luke-Jr 2014-04-04 21:41:25 UTC
The question is, does ebuild.sh belong at (on a x32 system):
/usr/libx32/portage/bin/ebuild.sh
or
/usr/lib/portage/bin/ebuild.sh

If libx32, then portage is broken. if lib, then eix is broken.
Comment 5 Martin Väth 2014-04-04 22:33:35 UTC
Wherever portage decides to put ebuild.sh, it is right by definition:

Calling ebuild.sh is undocumented, and eix uses it only for the cache method ebuild*, because it is much quicker than calling ebuild - but obviously this is a hack in eix.

The path to ebuild.sh is determined by eix variable EIX_EBUILD_SH (and thus can be changed e.g. by setting this variable in the environment or in /etc/eixrc); its default value is determined in the eix ebuild by:
--with-ebuild-sh-default="/usr/$(get_libdir)/portage/bin/ebuild.sh"

Do I understand correctly that $(get_libdir) should be changed to lib on all systems? Or is this only a x32 peculiarity?
Comment 6 Luke-Jr 2014-04-05 01:10:53 UTC
x32 uses /usr/libx32 for all compiled libraries, similar to how amd64 uses /usr/lib64 for all compiled libraries.

# ls /usr/lib            
debug  gcc  portage  python-exec  systemd  tmpfiles.d

Obviously Python and Portage are not compiled, so I'm not sure what is expected.
Comment 7 SpanKY gentoo-dev 2014-05-06 20:14:14 UTC
exit needs to use /usr/lib/portage/bin/ebuild.sh regardless of the default ABI.  that is how portage installs its files.  that it works on current amd64 systems is an accident.
Comment 8 Martin Väth 2014-05-09 13:13:30 UTC
closing since eix-0.30.2 with the fix is in the tree
Comment 9 Martin Väth 2014-08-03 17:56:18 UTC
*** Bug 518942 has been marked as a duplicate of this bug. ***