I've tried to install DBD::CSV using g-cpan. After working around some initial issues described here: http://forums.gentoo.org/viewtopic-t-822042-highlight-.html g-cpan failed to fetch the source tarball. The URL that portage tried to fetch was invalid - the filename should end with a .tgz instead of .tar.gz for this particular module. The URL was invalid because perl-module.eclass assumed it to be 'tar.gz' in absence of MODULE_A set in the ebuild generated by g-cpan. I have developed a patch for g-cpan that fixes this problem - it checks if the tarball extension for the CPAN module is '.tgz' - if yes it adds MODULE_A=${P}.tgz to the generated ebuild. The patch is attached. I'm not sure however if this is the most clean way to fix this - maybe a better solution would be for perl-modules.eclass to use a MODULE_EXTENSION variable to generate the MODULE_A instead of using a hardcoded 'tar.gz' ? Reproducible: Always Steps to Reproduce: 1. g-cpan -i DBD::CSV 2. 3. Actual Results: * Copying /var/tmp/g-cpan/.cpan/sources/authors/id/H/HM/HMBRAND/DBD-CSV-0.28.tgz to /usr/portage/distfiles * Ebuild generated for DBD-CSV >>> Downloading 'http://gentoo.mirror.pw.edu.pl/distfiles/DBD-CSV-0.28.tar.gz' --2010-04-04 01:41:09-- http://gentoo.mirror.pw.edu.pl/distfiles/DBD-CSV-0.28.tar.gz Translacja gentoo.mirror.pw.edu.pl... 194.29.128.2 Łączenie się z gentoo.mirror.pw.edu.pl|194.29.128.2|:80... połączono. Żądanie HTTP wysłano, oczekiwanie na odpowiedź... 404 Not Found 2010-04-04 01:41:14 BŁĄD 404: Not Found. >>> Downloading 'http://search.cpan.org/CPAN/authors/id/H/HM/HMBRAND//DBD-CSV-0.28.tar.gz' --2010-04-04 01:41:14-- http://search.cpan.org/CPAN/authors/id/H/HM/HMBRAND//DBD-CSV-0.28.tar.gz Translacja search.cpan.org... 194.106.223.155 Łączenie się z search.cpan.org|194.106.223.155|:80... połączono. Żądanie HTTP wysłano, oczekiwanie na odpowiedź... 302 Found Lokalizacja: http://ftp.man.poznan.pl/pub/CPAN/authors/id/H/HM/HMBRAND//DBD-CSV-0.28.tar.gz [podążanie] --2010-04-04 01:41:20-- http://ftp.man.poznan.pl/pub/CPAN/authors/id/H/HM/HMBRAND//DBD-CSV-0.28.tar.gz Translacja ftp.man.poznan.pl... 150.254.186.34, 2001:808:0:9::1 Łączenie się z ftp.man.poznan.pl|150.254.186.34|:80... połączono. Żądanie HTTP wysłano, oczekiwanie na odpowiedź... 404 Not Found 2010-04-04 01:41:25 BŁĄD 404: Not Found. >>> Downloading 'http://www.cpan.org/authors/id/H/HM/HMBRAND//DBD-CSV-0.28.tar.gz' --2010-04-04 01:41:25-- http://www.cpan.org/authors/id/H/HM/HMBRAND//DBD-CSV-0.28.tar.gz Translacja www.cpan.org... 207.171.7.177 Łączenie się z www.cpan.org|207.171.7.177|:80... połączono. Żądanie HTTP wysłano, oczekiwanie na odpowiedź... 404 Not Found 2010-04-04 01:41:31 BŁĄD 404: Not Found. !!! Couldn't download 'DBD-CSV-0.28.tar.gz'. Aborting. !!! Fetch failed for DBD-CSV-0.28.tar.gz, can't update Manifest * Calling emerge for DBD-CSV * Calling: emerge DBD-CSV * IMPORTANT: 3 news items need reading for repository 'gentoo'. * Use eselect news to read news items. Calculating dependencies... done! >>> Verifying ebuild manifests !!! Manifest file not found: '/var/paludis/repositories/cpan/perl-gcpan/DBD-CSV/Manifest' * IMPORTANT: 3 news items need reading for repository 'gentoo'. * Use eselect news to read news items. * Cleaning temporary space 4pll00555 profiles # Expected Results: The CPAN module should download and build. 4pll00555 profiles # paludis --info paludis 0.46.0 Paludis build information: Compiler: CXX: x86_64-pc-linux-gnu-g++ 4.4.3 CXXFLAGS: -O2 -pipe -march=nocona LDFLAGS: -Wl,--as-needed DATE: 2010-04-03T05:27:39+0200 Libraries: C++ Library: GNU libstdc++ 20100121 Paths: DATADIR: /usr/share LIBDIR: /usr/lib64 LIBEXECDIR: /usr/libexec SYSCONFDIR: /etc PYTHONINSTALLDIR: RUBYINSTALLDIR: /usr/lib64/ruby/site_ruby/1.8/x86_64-linux System: Linux 4pll00555 2.6.34-rc2-t61 #1 SMP PREEMPT Sun Mar 21 14:27:00 CET 2010 x86_64 Intel(R) Core(TM)2 Duo CPU T7300 @ 2.00GHz GenuineIntel GNU/Linux Reduced Privs: reduced_uid: 101 reduced_uid->name: paludisbuild reduced_uid->dir: /var/tmp/paludis reduced_gid: 407 reduced_gid->name: paludisbuild Environment: Format: paludis Config dir: /etc/paludis World file: /var/db/pkg/world Repository layman: format: unavailable location: /var/paludis/repositories/layman sync: tar+http://git.exherbo.org/layman_repositories.tar.bz2 sync_options: Repository installed-virtuals: format: installed_virtuals root: / Repository virtuals: format: virtuals Repository gentoo: format: ebuild location: /usr/portage builddir: /var/tmp/paludis cache: /usr/portage/metadata/cache distdir: /usr/portage/distfiles eapi_when_unknown: 0 eapi_when_unspecified: 0 eclassdirs: /usr/portage/eclass layout: traditional names_cache: /var/cache/paludis/names newsdir: /usr/portage/metadata/news profile_eapi_when_unspecified: 0 profile_layout: traditional profiles: /usr/portage/profiles/default/linux/amd64/10.0/desktop securitydir: /usr/portage/metadata/glsa setsdir: /usr/portage/sets sync: rsync://gentoo.prz.rzeszow.pl/gentoo-portage tar+http://gentoo.prz.rzeszow.pl/snapshots/portage-latest.tar.lzma sync_options: use_manifest: use write_cache: /var/empty Package information: app-admin/eselect-compiler: (none) app-shells/bash: 4.1_p2-r1 dev-java/java-config: 2.1.10 dev-lang/python: 2.4.4-r13 2.5.4-r2 2.6.5-r1 3.1.2-r1 dev-python/pycrypto: (none) dev-util/ccache: (none) dev-util/cmake: 2.8.1 dev-util/confcache: (none) sys-apps/baselayout: 2.0.1 sys-apps/openrc: 0.6.1-r1 sys-apps/sandbox: 2.2 sys-devel/autoconf: 2.13 2.65 sys-devel/automake: 1.10.3 1.11.1 1.5 1.7.9-r2 1.8.5-r3 1.9.6-r3 sys-devel/binutils: 2.20.1 sys-devel/gcc: 4.1.2 4.4.3 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.6b virtual/os-headers: 2.6.33 (for sys-kernel/linux-headers::installed)
Created attachment 226491 [details] The log from a failed g-cpan run
Created attachment 226497 [details, diff] Generate MODULE_A for CPAN modules with .tgz tarball extension
Bug report QA messages: * Please use full package qualifiers (e.g. "sys-apps/portage", not just "portage") in bug report titles, at the beginning ideally, in the future. Thank you!
Implemented a variant of your idea in g-cpan now. Committed to git, will be in next release.