if i use `repoman commit` in a package dir and the ../../eclass/ does not exist, repoman simply says: $ repoman commit -m '...' RepoMan scours the neighborhood... !!! getFetchMap(): aux_get() error reading net-misc/openntpd-3.9_p1-r1; aborting. Unable to generate manifest. this really should say "eclass/xxx missing" since the ebuild needs xxx ...
Doesn't it produce a die message from ebuild.sh? It's supposed to do something like this: * ERROR: net-misc/openntpd-3.9_p1-r1 failed (depend phase): * foo.eclass could not be found by inherit() * * Call stack: * ebuild.sh, line 1998: Called source '/usr/local/portage/net-misc/openntpd/openntpd-3.9_p1-r1.ebuild' * openntpd-3.9_p1-r1.ebuild, line 5: Called inherit 'foo' * ebuild.sh, line 1379: Called die * The specific snippet of code: * [ ! -e "$location" ] && die "${1}.eclass could not be found by inherit()" * * If you need support, post the output of 'emerge --info =net-misc/openntpd-3.9_p1-r1', * the complete build log and the output of 'emerge -pqv =net-misc/openntpd-3.9_p1-r1'. * This ebuild is from an overlay: '/usr/local/portage/' * S: '/var/tmp/portage/net-misc/openntpd-3.9_p1-r1/work/openntpd-3.9_p1' !!! getFetchMap(): aux_get() error reading net-misc/openntpd-3.9_p1-r1; aborting. Unable to generate manifest. Anyway, if necessary I guess we can probe the ebuild for an inherit call, and use that to know about missing eclasses that are inherited directly (though it's complex if inherits are conditional, not to mention indirect inherits).
Oh, now I see why you didn't get a die message. There's a portdbapi._have_root_eclass_dir variable that makes it skip execution of the ebuild if the eclass dir is missing. We can add an informative message there, and maybe tweak the logic some.
This is fixed in git: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=dee9b51ee32e9d49794f737d6e3d014ec8a3d683
This is fixed in 2.1.9.43 and 2.2.0_alpha27.