I'm using ADD_OVERLAY="/usr/local/overlays/science" at /etc/eixrc and at the same time I don't add that overlay to PORTDIR_OVERLAY since I want to follow changes there but I don't want to install packages from there. During eix-update I see lot's of errors like this: Ebuild failed with status 1 Reading 82% Could not properly execute /usr/local/overlays/science/sys-cluster/libmthca/libmthca-1.0.5.ebuild Reading 82% * * ERROR: sys-cluster/libnes-0.5 failed. * Call stack: * ebuild.sh, line 1872: Called _source_ebuild * ebuild.sh, line 1811: Called source '/usr/local/overlays/science/sys-cluster/libnes/libnes-0.5.ebuild' * libnes-0.5.ebuild, line 10: Called inherit 'openib' * ebuild.sh, line 1211: Called die * The specific snippet of code: * [ ! -e "$location" ] && die "${1}.eclass could not be found by inherit()" * The die message: * openib.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/overlays/science/' * I think it's good idea if eix will take overlay's eclasses into account and work in such cases too. I have eix-0.15.6 installed.
The cache methods ebuild* and ebuild essentially just call portage to execute the ebuilds. Portage will not do what you want unless PORTDIR_OVERLAY is set to include that overlay. There is no way around this. The appropriate solution for you is to write a wrapper for update-eix which exports PORTDIR_OVERLAY including that overlay. The only "solution" of update-eix would be to be smarter as the user and do exactly the same by some heuristic, but all these heurstics can have undesired side effects and lead to other problems. Another solution which works "by accident" is to use the cache method ebuild (instead of ebuild*), e.g. set OVERLAY_CACHE_METHOD='parse|ebuild' or CACHE_METHOD='/usr/local/overlays/science parse|ebuild'. The cache method "ebuild" works on a "higher" level of portage, and portage is smart enough on this level to extend PORTDIR_OVERLAY temporarily. Since I doubt that a solution without undesired side effects exists on the eix side, I set this bug to "can't fix".
Probably eix could catch some common errors and suggest user change his cache method... but I'm not sure here. Thank you Martin.
eix of current svn trunk (>=eix-0.15.7) now sets/modifies the PORTDIR_OVERLAY environment variable according to added/excluded overlays before executing the ebuild. If this causes undesired side effects, the feature can be switched off by EXPORT_PORTDIR_OVERLAY=false