Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 249843 - app-portage/eix-0.15.2 cannot find eclasses from overlays
Summary: app-portage/eix-0.15.2 cannot find eclasses from overlays
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: High minor
Assignee: Martin Väth
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-12-04 20:20 UTC by Marcin Deranek
Modified: 2009-04-14 20:40 UTC (History)
1 user (show)

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 Marcin Deranek 2008-12-04 20:20:59 UTC
A have a bunch of overlays. One of them has it's own eclass. Additional overlays are defined in /etc/eixrc files as follows:

ADD_OVERLAY="/usr/local/paludis/local /usr/local/paludis/extras"

Bear in mind that I do not use portage - I use paludis. When running update-eix I get the following error:

[ ! -e "$location" ] && die "${1}.eclass could not be found by inherit()"
The die message:
paludis-hooks.eclass could not be found by inherit()

While looking into ebuild.sh we can find:

if [ -n "$PORTDIR_OVERLAY" ]; then
    local overlay
    for overlay in ${PORTDIR_OVERLAY}; do
        ....
        location="${olocation}"
    done
fi
[ ! -e "$location" ] && die "${1}.eclass could not be found by inherit()"

As you can see eclasses are only looked in PORTDIR_OVERLAY paths, but not in ADD_OVERLAY paths. Setting PORTDIR_OVERLAY to the same value as ADD_OVERLAY in /etc/make.conf solves the problem although I would like to be able to do that in /etc/eixrc as I don't use /etc/make.conf. Setting PORTDIR_OVERLAY in /etc/eixrc has no effect.

Reproducible: Always

Steps to Reproduce:
1. Get overlay with own eclass(es)
2. Configure eix to index that overlay through ADD_OVERLAY setting
3. Run update-eix

Actual Results:  
 * ERROR: app-paludis/paludis-hooks-collision-protect-2.5 failed.
 * Call stack:
 *                                    ebuild.sh, line 1861:  Called source '/usr/local/paludis/extras/app-paludis/paludis-hooks-collision-protect/paludis-hooks-collision-protect-2.5.ebuild'
 *   paludis-hooks-collision-protect-2.5.ebuild, line    9:  Called inherit 'paludis-hooks'
 *                                    ebuild.sh, line 1201:  Called die
 * The specific snippet of code:
 *   		[ ! -e "$location" ] && die "${1}.eclass could not be found by inherit()"
 *  The die message:
 *   paludis-hooks.eclass could not be found by inherit()
 * 
 * If you need support, post the topmost build error, and the call stack if relevant.
 * This ebuild is from an overlay: '/usr/local/paludis/extras/'


Expected Results:  
No error
Comment 1 Martin Väth 2008-12-05 10:16:39 UTC
The cache methods ebuild* and ebuild (and thus also the default method for
overlays: parse|ebuild*) _must_ use portage and thus require a correct
/etc/make.conf.

However, AFAIK (I never tried, since I don't use paludis), paludis has its
own directory to store overlay metadata: You can use the corresponding cache
method repo-flat:PATH (or is the paludis format repo-assign:PATH?) with the
corresponding directory for overlays (cf. the description of OVERLY_CACHE_METHOD and CACHE_METHOD in the eix manpage).
Comment 2 Martin Väth 2008-12-07 11:56:57 UTC
I hope that the mentioned paludis cache method can be used;
as a further "workaround" you can just write a wrapper which
sources /etc/eixrc and exports a corresponding PORTDIR_OVERLAY.
Or you can source /etc/eixrc from within /etc/make.conf or vice versa
(or you can source from both a third file) to set the corresponding vars
for both tools simultaneously.

In any case, since the ebuild[*] cache method is portage related,
I do not consider it as a bug if it does not work without an
appropriate /etc/make.conf (or an appropriate environment setting),
therefore closing the bug as invalid.
Comment 3 Martin Väth 2009-04-14 20:40:24 UTC
For related news see the comments to bug 265854