Not sure if this was introduced with perl 5.8.3, but Module/Build/Compat.pm version 0.19 incorrectly interprets the INSTALLDIRS=vendor argument (sent via perl-module.eclass) due to an incorrect line that has been fixed in the latest (later?) versions of Module::Build (I don't know exactly which version it was fixed in, but it's fixed in 0.22 which is the current version). Reproducible: Always Steps to Reproduce: 1. Emerge a module that requires Module::Build (e.g. g-cpan.pl DateTime::Locale) 2. Watch it fail with "Invalid file descriptor" during the emerge since "INSTALLDIRS=vendor" becomes "core" Actual Results: The emerge failed due to the line in Module/Build/Compat.pm (version 0.19): INSTALLDIRS => sub {local $_ = shift; 'installdirs=' . /^perl$/ ? 'core' : $_ }, Which should be (and is in version 0.22): INSTALLDIRS => sub {local $_ = shift; 'installdirs=' . (/^perl$/ ? 'core' : $_) }, Expected Results: successfully installed. After creating ebuild for module-build-0.22 (and emerging it), g-cpan.pl DateTime::Locale successfully installs. Ebuild for module-build-0.22 will be attached momentarily.
Created attachment 24071 [details] module-build-0.22.ebuild Here is re-named ebuild (no changes necessary from module-build-0.19.ebuild).
There's a slight mess in terms of dependencies for non-x86 archs with this. I am getting in contact with the archs that are in trouble (ppc and alpha, as it were) and trying to straighten it out. As soon as this happens, I'll bump the version to 0.22
Ugh... fixed all dependencies. Repoman is 100% clean now on all archs. Bumped revision in CVS. Please test. Tim, thanks for the report!