The problem is that when the ebuild tries to prebuild the RubyInline modules, RubyInline finds them already present in the Ruby library path and doesn't rebuild them, then the cp out of the temp directory fails because the files it's looking for don't exist: * Running compile phase for ruby18 ... cp: cannot stat `/var/tmp/paludis/dev-ruby-parsetree-3.0.5-r1/temp//ruby18/.ruby_inline/*.so': No such file or directory !!! ERROR in dev-ruby/parsetree-3.0.5-r1::gentoo: !!! In each_ruby_compile at line 1349 !!! (no message provided)
Hello David, please provide the full build.log and environment files plus the output of `emerge --info` Thanks Michael
I don't even seem to get that far... BTW, no need for the build log or emerge --info, it won't tell us anything useful in addition to what you already provided. >>> Compiling source in /var/tmp/portage/dev-ruby/parsetree-3.0.5-r1/work ... * Running compile phase for ruby18 ... * Running compile phase for ree18 ... * Running compile phase for all ... (in /var/tmp/portage/dev-ruby/parsetree-3.0.5-r1/work/all/parsetree-3.0.5) Couldn't read /.rubyforge/user-config.yml. Run `rubyforge setup`. rm -r coverage rm -r doc rm -r pkg /usr/bin/ruby18 -w -I../../RubyInline/dev/lib:../../sexp_processor/dev/lib:../../ZenTest/dev/lib:lib:lib:bin:test:. -e 'require "rubygems"; require "minitest/autorun"; require "test/test_unified_ruby.rb"; require "test/test_parse_tree_extensions.rb"; require "test/test_parse_tree.rb"' -- /usr/lib64/ruby/gems/1.8/gems/RubyInline-3.8.4/lib/inline.rb:128:in `mkdir': No such file or directory - (Errno::ENOENT) from /usr/lib64/ruby/gems/1.8/gems/RubyInline-3.8.4/lib/inline.rb:128:in `rootdir' from /usr/lib64/ruby/gems/1.8/gems/RubyInline-3.8.4/lib/inline.rb:137:in `directory' from /usr/lib64/ruby/gems/1.8/gems/RubyInline-3.8.4/lib/inline.rb:380:in `so_name' from /usr/lib64/ruby/gems/1.8/gems/RubyInline-3.8.4/lib/inline.rb:503:in `load_cache' from /usr/lib64/ruby/gems/1.8/gems/RubyInline-3.8.4/lib/inline.rb:831:in `inline' from ./lib/parse_tree.rb:250 from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from ./test/test_parse_tree_extensions.rb:2 from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from -e:1 rake aborted! Command failed with status (1): [/usr/bin/ruby18 -w -I../../RubyInline/dev/...]
(In reply to comment #2) > I don't even seem to get that far... Is that with USE=doc? I get initially-similar output (pasted below) if I enable that, although for me it goes on to succeed. With USE=-doc, src_compile only outputs the "Running compile phase for ..." einfos. >>> Starting src_compile * Running compile phase for ruby18 ... * Running compile phase for all ... (in /var/tmp/paludis/dev-ruby-parsetree-3.0.5-r1/work/all/parsetree-3.0.5) error loading "/usr/lib64/ruby/gems/1.8/gems/hoe-2.5.0/lib/hoe/rubyforge.rb": no such file to load -- rubyforge. skipping... error loading "/usr/lib64/ruby/gems/1.8/gems/hoe-2.5.0/lib/hoe/gemcutter.rb": Could not find RubyGem gemcutter (>= 0) . skipping... error loading "/usr/lib64/ruby/gems/1.8/gems/hoe-2.5.0/lib/hoe/rubyforge.rb": no such file to load -- rubyforge. skipping... error loading "/usr/lib64/ruby/gems/1.8/gems/hoe-2.5.0/lib/hoe/gemcutter.rb": Could not find RubyGem gemcutter (>= 0) . skipping... warning: couldn't activate the rubyforge plugin, skipping warning: couldn't activate the gemcutter plugin, skipping rm -r doc rm -r pkg /usr/bin/ruby18 -w -I../../RubyInline/dev/lib:../../sexp_processor/dev/lib:../../ZenTest/dev/lib:lib:lib:ext:bin:test -e 'require "rubygems"; require "minitest/autorun"; require "test/test_parse_tree_extensions.rb"; require "test/test_unified_ruby.rb"; require "test/test_parse_tree.rb"' nuking /var/tmp/paludis/dev-ruby-parsetree-3.0.5-r1/temp/.ruby_inline Loaded suite -e Started ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ Finished in 0.887603 seconds. 704 tests, 3411 assertions, 0 failures, 0 errors, 0 skips rm -r doc parse_tree_extensions.rb: c...c. lib/parse_tree_extensions.rb:34:26: ':' not followed by identifier or operator c.c.. gauntlet_parsetree.rb: c...... unified_ruby.rb: m....... lib/unified_ruby.rb:78:24: ':' not followed by identifier or operator ... lib/unified_ruby.rb:168:35: ':' not followed by identifier or operator lib/unified_ruby.rb:176:39: ':' not followed by identifier or operator ..............c...c.c. parse_tree.rb: c.c.c.......c.. pt_testcase.rb: c.c............... test/pt_testcase.rb:357:47: ':' not followed by identifier or operator test/pt_testcase.rb:358:47: ':' not followed by identifier or operator test/pt_testcase.rb:362:49: ':' not followed by identifier or operator test/pt_testcase.rb:363:49: ':' not followed by identifier or operator test/pt_testcase.rb:510:49: ':' not followed by identifier or operator test/pt_testcase.rb:518:49: ':' not followed by identifier or operator test/pt_testcase.rb:518:60: ':' not followed by identifier or operator test/pt_testcase.rb:622:49: ':' not followed by identifier or operator test/pt_testcase.rb:629:49: ':' not followed by identifier or operator test/pt_testcase.rb:629:60: ':' not followed by identifier or operator test/pt_testcase.rb:777:51: ':' not followed by identifier or operator test/pt_testcase.rb:784:42: ':' not followed by identifier or operator test/pt_testcase.rb:799:49: ':' not followed by identifier or operator test/pt_testcase.rb:1473:50: ':' not followed by identifier or operator test/pt_testcase.rb:1496:57: ':' not followed by identifier or operator test/pt_testcase.rb:1525:63: ':' not followed by identifier or operator test/pt_testcase.rb:1535:60: ':' not followed by identifier or operator test/pt_testcase.rb:1540:62: ':' not followed by identifier or operator test/pt_testcase.rb:1550:62: ':' not followed by identifier or operator test/pt_testcase.rb:1556:62: ':' not followed by identifier or operator test/pt_testcase.rb:1556:73: ':' not followed by identifier or operator test/pt_testcase.rb:1566:53: ':' not followed by identifier or operator test/pt_testcase.rb:1570:53: ':' not followed by identifier or operator test/pt_testcase.rb:1581:54: ':' not followed by identifier or operator test/pt_testcase.rb:1584:56: ':' not followed by identifier or operator test/pt_testcase.rb:1592:56: ':' not followed by identifier or operator test/pt_testcase.rb:1596:56: ':' not followed by identifier or operator test/pt_testcase.rb:1596:67: ':' not followed by identifier or operator test/pt_testcase.rb:1604:53: ':' not followed by identifier or operator test/pt_testcase.rb:1608:53: ':' not followed by identifier or operator test/pt_testcase.rb:1648:56: ':' not followed by identifier or operator test/pt_testcase.rb:1658:55: ':' not followed by identifier or operator test/pt_testcase.rb:1663:55: ':' not followed by identifier or operator test/pt_testcase.rb:1673:55: ':' not followed by identifier or operator test/pt_testcase.rb:1679:55: ':' not followed by identifier or operator test/pt_testcase.rb:1679:66: ':' not followed by identifier or operator test/pt_testcase.rb:1689:49: ':' not followed by identifier or operator test/pt_testcase.rb:1693:49: ':' not followed by identifier or operator test/pt_testcase.rb:1704:49: ':' not followed by identifier or operator test/pt_testcase.rb:1707:49: ':' not followed by identifier or operator test/pt_testcase.rb:1715:45: ':' not followed by identifier or operator test/pt_testcase.rb:1718:45: ':' not followed by identifier or operator test/pt_testcase.rb:1798:49: ':' not followed by identifier or operator test/pt_testcase.rb:1802:49: ':' not followed by identifier or operator test/pt_testcase.rb:2764:61: ':' not followed by identifier or operator test/pt_testcase.rb:2771:39: ':' not followed by identifier or operator test/pt_testcase.rb:2775:65: ':' not followed by identifier or operator test/pt_testcase.rb:2782:68: ':' not followed by identifier or operator test/pt_testcase.rb:2884:45: ':' not followed by identifier or operator test/pt_testcase.rb:2885:46: ':' not followed by identifier or operator test/pt_testcase.rb:3041:68: ':' not followed by identifier or operator test/pt_testcase.rb:3044:72: ':' not followed by identifier or operator test/pt_testcase.rb:3260:58: ':' not followed by identifier or operator test/pt_testcase.rb:3262:58: ':' not followed by identifier or operator test/pt_testcase.rb:3268:64: ':' not followed by identifier or operator test/pt_testcase.rb:3270:64: ':' not followed by identifier or operator test/pt_testcase.rb:3279:58: ':' not followed by identifier or operator test/pt_testcase.rb:3281:58: ':' not followed by identifier or operator test/pt_testcase.rb:3287:64: ':' not followed by identifier or operator test/pt_testcase.rb:3289:64: ':' not followed by identifier or operator test/pt_testcase.rb:3302:68: ':' not followed by identifier or operator test/pt_testcase.rb:3304:68: ':' not followed by identifier or operator test/pt_testcase.rb:3310:74: ':' not followed by identifier or operator test/pt_testcase.rb:3320:46: ':' not followed by identifier or operator test/pt_testcase.rb:3322:46: ':' not followed by identifier or operator test/pt_testcase.rb:3329:44: ':' not followed by identifier or operator test/pt_testcase.rb:3333:58: ':' not followed by identifier or operator test/pt_testcase.rb:3333:65: ':' not followed by identifier or operator test/pt_testcase.rb:3335:60: ':' not followed by identifier or operator test/pt_testcase.rb:3335:67: ':' not followed by identifier or operator test/pt_testcase.rb:3752:46: ':' not followed by identifier or operator test/pt_testcase.rb:3755:46: ':' not followed by identifier or operator test_parse_tree_extensions.rb: c......... test_unified_ruby.rb: c... something.rb: c....... test_parse_tree.rb: c..c.c....... test/test_parse_tree.rb:110:48: ':' not followed by identifier or operator ..c... History.txt: Manifest.txt: README.txt: Generating HTML... Diagrams: ........... Files: 12 Classes: 21 Modules: 1 Methods: 103 Elapsed: 10.622s >>> Done src_compile
(In reply to comment #3) > Is that with USE=doc? Yes. An added path caused the whole test -> compile dependency chain to fire when building the documentation. Now fixed in parsetree-3.0.5-r2.
I've just fixed a bug in ruby-inline where it did not include the proper linker flags when building the shared object. This is fixed in dev-ruby/ruby-inline-3.8.2-r2. Could you try to upgrade to that and then try to rebuild dev-ruby/parsetree to see if this problem is fixed by that?
(In reply to comment #5) > I've just fixed a bug in ruby-inline where it did not include the proper linker > flags when building the shared object. This is fixed in > dev-ruby/ruby-inline-3.8.2-r2. Could you try to upgrade to that and then try to > rebuild dev-ruby/parsetree to see if this problem is fixed by that? > Doesn't seem to make a difference. I think the solution would involve making the existing prebuilt extensions "invisible" somehow, so that RubyInline will rebuild them, but I don't know how that would be done. (BTW, seems the parsetree part of bug 299367 attachment 239869 [details, diff] didn't get committed, mind fixing that while you're here, or should I mention it on that bug (I don't have permission to reopen it)?)
(In reply to comment #6) > (BTW, seems the parsetree part of bug 299367 attachment 239869 [details, diff] didn't get > committed, mind fixing that while you're here, or should I mention it on that > bug (I don't have permission to reopen it)?) I've now done that locally and now I'm at the same point where you are: the compile phase no longer runs as expected.
I've added the fixes from bug 299367 and I've simplified the build system so that we don't need to muck any further with HOME. For a real fix I'm currently thinking in the line of changing the signature of the C code inside ParseTree in a way that is dependent on PVR or Time.now. We should probably dynamically patch the C code for that.
*** Bug 331533 has been marked as a duplicate of this bug. ***
*** Bug 340383 has been marked as a duplicate of this bug. ***
Created attachment 257493 [details] build.log -r2 also fails for me when re-emerging Portage 2.1.9.24 (default/linux/x86/10.0/developer, gcc-4.4.4, glibc-2.11.2-r3, 2.6.35-gentoo-r4 i686) ================================================================= System uname: Linux-2.6.35-gentoo-r4-i686-Intel-R-_Core-TM-2_Duo_CPU_P8700_@_2.53GHz-with-gentoo-1.12.14 Timestamp of tree: Fri, 17 Dec 2010 18:00:01 +0000 app-shells/bash: 4.1_p7 dev-java/java-config: 2.1.11-r1 dev-lang/python: 2.6.6-r1, 3.1.2-r4 dev-util/cmake: 2.8.1-r2 sys-apps/baselayout: 1.12.14-r1 sys-apps/sandbox: 2.4 sys-devel/autoconf: 2.65-r1 sys-devel/automake: 1.9.6-r3, 1.10.3, 1.11.1 sys-devel/binutils: 2.20.1-r1 sys-devel/gcc: 4.4.4-r2 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.10 sys-devel/make: 3.81-r2 virtual/os-headers: 2.6.30-r1 (sys-kernel/linux-headers) ACCEPT_KEYWORDS="x86" ACCEPT_LICENSE="* -@EULA spin-educational AdobeFlash-10.1" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=i686 -pipe -ggdb3" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/X11/xkb /var/lib/hsqldb /var/qmail/alias /var/qmail/control" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-O2 -march=i686 -pipe -ggdb3" DISTDIR="/usr/portage/distfiles" FEATURES="assume-digests binpkg-logs collision-protect distlocks fixlafiles fixpackages multilib-strict news parallel-fetch protect-owned sandbox sfperms splitdebug strict test test-fail-continue unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox" GENTOO_MIRRORS="http://distfiles.gentoo.org" LDFLAGS="-Wl,--hash-style=gnu -Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" 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" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X a52 aac acl acpi alsa berkdb bzip2 cairo cdr cli consolekit cracklib crypt cups cxx dbus dri dts dvd dvdr emacs emboss encode exif fam firefox flac fortran gdbm gif gnutls gtk hal iconv jpeg lcms libnotify mad mbox mikmod mng modules mp3 mp4 mpeg mudflap ncurses nls nptl nptlonly nss ogg opengl openmp pam pango pcre pdf perl png ppds pppd python qt3support readline sdl secure-delete session snmp spell sqlite ssl startup-notification subversion svg sysfs tcb tcpd tiff toolkit-scroll-bars truetype unicode usb vorbis x264 x86 xcb xft xinerama xml xorg xulrunner xv xvid zlib" ALSA_CARDS="ens1371" 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 cgi cgid 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" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev keyboard vmmouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" PHP_TARGETS="php5-2" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="vmware vesa vga" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
(In reply to comment #11) > Created an attachment (id=257493) [details] > build.log > > -r2 also fails for me when re-emerging Yes, comment 8 already indicates that one bug got fixed, but not the other.
The "can't install twice" problem should now be fixed with parsetree 3.0.6. This introduces a dynamic C method name that is exported as part of ParseTree to foil the caching strategy employed by RubyInline.