Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 329497 - dev-ruby/parsetree-3.0.5-r{1,2} fails if already installed
Summary: dev-ruby/parsetree-3.0.5-r{1,2} fails if already installed
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: All Linux
: High normal
Assignee: Gentoo Ruby Team
URL:
Whiteboard:
Keywords:
: 331533 340383 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-07-22 21:45 UTC by David Leverton
Modified: 2010-12-27 21:05 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log (dev-ruby:parsetree-3.0.5-r2:20101218-120353.log,2.26 KB, text/plain)
2010-12-18 12:06 UTC, Paweł Hajdan, Jr. (RETIRED)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description David Leverton 2010-07-22 21:45:41 UTC
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)
Comment 1 Michael Weber (RETIRED) gentoo-dev 2010-07-23 08:36:16 UTC
Hello David,

please provide the full build.log and environment files plus the output of `emerge --info`

Thanks Michael
Comment 2 Hans de Graaff gentoo-dev Security 2010-07-24 10:53:46 UTC
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/...]
Comment 3 David Leverton 2010-07-24 11:11:03 UTC
(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
Comment 4 Hans de Graaff gentoo-dev Security 2010-08-26 06:41:25 UTC
(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.
Comment 5 Hans de Graaff gentoo-dev Security 2010-08-28 13:31:10 UTC
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?
Comment 6 David Leverton 2010-08-28 15:54:24 UTC
(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)?)
Comment 7 Hans de Graaff gentoo-dev Security 2010-08-29 11:55:14 UTC
(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.

Comment 8 Hans de Graaff gentoo-dev Security 2010-08-29 13:13:25 UTC
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.
Comment 9 Hans de Graaff gentoo-dev Security 2010-08-29 18:34:58 UTC
*** Bug 331533 has been marked as a duplicate of this bug. ***
Comment 10 Hans de Graaff gentoo-dev Security 2010-10-11 17:37:14 UTC
*** Bug 340383 has been marked as a duplicate of this bug. ***
Comment 11 Paweł Hajdan, Jr. (RETIRED) gentoo-dev 2010-12-18 12:06:28 UTC
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
Comment 12 Hans de Graaff gentoo-dev Security 2010-12-18 12:50:44 UTC
(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.
Comment 13 Hans de Graaff gentoo-dev Security 2010-12-27 21:05:36 UTC
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.