I'm going to assume this is a problem with my system, but I can't figure out what to remerge/unmerge to fix the issue. g-cpan fails to build any modules, with the error message "No Make or Build file detected" being the culprit. However, it will merge an empty module and unmerge any previous instance. Merging dev-perl/* modules from the normal tree works fine, so it doesn't seem to actually be an issue with the perl eclasses. Output is as follows: netresponse-test ~ # g-cpan -i Exception::Base -CPAN: File::HomeDir loaded ok (v0.69) CPAN: Storable loaded ok (v2.18) Going to read /var/tmp/g-cpan/.cpan/Metadata Database was generated on Thu, 11 Dec 2008 23:26:56 GMT * Ebuild already exists for Exception-Base (perl-gcpan/Exception-Base) Calculating dependencies... done! >>> Verifying ebuild Manifests... >>> Emerging (1 of 1) perl-gcpan/Exception-Base-0.21 to / * Exception-Base-0.21.tar.gz RMD160 SHA1 SHA256 size ;-) ... [ ok ] * checking ebuild checksums ;-) ... [ ok ] * checking auxfile checksums ;-) ... [ ok ] * checking miscfile checksums ;-) ... [ ok ] * checking Exception-Base-0.21.tar.gz ;-) ... [ ok ] >>> Unpacking source... >>> Unpacking Exception-Base-0.21.tar.gz to /var/tmp/portage/perl-gcpan/Exception-Base-0.21/work >>> Source unpacked. >>> Compiling source in /var/tmp/portage/perl-gcpan/Exception-Base-0.21/work ... * No Make or Build file detected... >>> Source compiled. >>> Test phase [not enabled]: perl-gcpan/Exception-Base-0.21 >>> Install Exception-Base-0.21 into /var/tmp/portage/perl-gcpan/Exception-Base-0.21/image/ category perl-gcpan * Cleaning out stray man files >>> Completed installing Exception-Base-0.21 into /var/tmp/portage/perl-gcpan/Exception-Base-0.21/image/ * checking 0 files for package collisions >>> Merging perl-gcpan/Exception-Base-0.21 to / >>> Safely unmerging already-installed instance... No package files given... Grabbing a set. >>> Original instance of package unmerged safely. * Man pages are not installed for most modules now. * Please use perldoc instead. >>> perl-gcpan/Exception-Base-0.21 merged. >>> No packages selected for removal by clean >>> Auto-cleaning packages... >>> No outdated packages were found on your system. * GNU info directory index is up-to-date. It looks like its searching for the Build and/or Make file in the work directory, instead of the source directory. Reproducible: Always Steps to Reproduce: 1. Run g-cpan -i Perl::Module 2. 3.
Please paste your emerge --info output and your "emerge -pv g-cpan" output.
dylanv@netresponse-test ~ $ sudo emerge --info Password: Portage 2.1.4.5 (default/linux/x86/2008.0, gcc-4.1.2, glibc-2.6.1-r0, 2.6.22-gentoo-r9 i686) ================================================================= System uname: 2.6.22-gentoo-r9 i686 Intel(R) Xeon(TM) CPU 2.80GHz Timestamp of tree: Thu, 11 Dec 2008 20:21:02 +0000 app-shells/bash: 3.2_p33 dev-java/java-config: 1.3.7-r1, 2.1.6 dev-lang/python: 2.4.4-r13, 2.5.2-r7 dev-python/pycrypto: 2.0.1-r6 sys-apps/baselayout: 1.12.11.1 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.61-r2 sys-devel/automake: 1.7.9-r1, 1.9.6-r2, 1.10.1-r1 sys-devel/binutils: 2.18-r3 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.26 virtual/os-headers: 2.6.23-r3 ACCEPT_KEYWORDS="x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=pentium4 -fomit-frame-pointer -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/udev/rules.d" CXXFLAGS="-O2 -march=pentium4 -fomit-frame-pointer -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="distlocks metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://gentoo.llarian.net/" LDFLAGS="-Wl,-O1" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage /usr/local/perl-experimental /txlogic/portage" SYNC="rsync://gentoo.llarian.net/gentoo-portage" USE="acl apache2 berkdb bzip2 cli cracklib crypt dba dri gd gdbm gif gpm iconv innodb isdnlog jpeg mbox midi mmx mudflap ncurses nls no-htdocs nptl nptlonly openmp pam pcre perl png pppd python readline reflection session snmp spl sse sse2 ssl sysfs tiff unicode x86 xml xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="fbdev glint i810 intel mach64 mga neomagic nv r128 radeon savage sis tdfx trident vesa vga via vmware voodoo" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS dylanv@netresponse-test ~ $ sudo emerge -pv g-cpan These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] app-portage/g-cpan-0.15.0-r1 0 kB Total: 1 package (1 reinstall), Size of downloads: 0 kB
I've tracked it down to this bug: http://bugs.gentoo.org/show_bug.cgi?id=176630 ${S} is being set to the archive dir, plus a string of random characters, so the workdir isn't being found. The patch included in bug 176630 solves the problem, but I have the latest Gentoo::CPAN module available (does not include the patch), and it is definitely still broken in some environments.
Same here, looks like removing the S-Var fixes it. But i don't know what side-effects it might have.. Why does g-cpan even set the S to these string including a version number? Looks like that again the best practice here: "Including version numbers in SRC_URI and S" http://www.gentoo.org/proj/en/devrel/handbook/handbook.xml?part=2&chap=3#doc_chap1
Good find, Dylan. The patch provided in that bug report works for me. I was able to install a couple modules with g-cpan once again.
Should be fixed in g-cpan r226, will be released soon.