New release.
I've added this to cvs masked, I've had to make quite a few changes because the setup.rb changed. ruby@ it would be great if some of you could test this before I unmask it.
I've just installed it. The warning about ruby18_with_gems can probably be dropped by now, this refers to stuff that has left the tree for quite some time. One problem so far: $ gem outdated Updating metadata for 5 gems from http://gems.rubyforge.org ..... complete ERROR: While executing gem ... (NoMethodError) undefined method `<=>' for nil:NilClass
As already mentioned on IRC my problem with gem is most likely caused by me aborting the gem cache using Ctrl-C. After refreshing the cache things work as expected.
Interesing gotcha with rubygems 0.9.5: Gem.cache.search('rails', '~>1.2.0') now returns to results for me instead of just the installed rails 1.2.6 version, because suddenly 'rails' also matches 'rails_analyzer' which I've got installed (and which has version 1.4.0...). Using a regexp fixes this, e.g. Gem.cache.search(/^rails$/, '~>1.2.0').
So I've just downgraded to rubygems-0.9.4-r2 because rubygems 0.9.5 suddenly could no longer find YAML in my rails project and I actually need to do work on this machine today. My verdict: by no means ready to be unmasked, sadly.
Ok, 1.0.1 is now in the tree to test, I've left it package masked for now.
Same problem with YAML with 1.0.1. I'm using YAML in a rake task in a rails project. I can fix that with a "require 'yaml'" in the task file, but this is still a regression from 0.9.4. After fixing this, when running 'rake' in a rails project I'm getting the wonderful: /home/graaff/projects/wvwo/git/test/mocks/test/time.rb:5: undefined method `cattr_accessor' for Time:Class (NoMethodError) from /home/graaff/projects/wvwo/git/test/mocks/test/time.rb:3:in `class_eval' from /home/graaff/projects/wvwo/git/test/mocks/test/time.rb:3 from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require' from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require' from /usr/lib64/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/core_ext/time.rb:2 from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require' from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require' from /usr/lib64/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/core_ext.rb:1 ... 23 levels... from /usr/lib64/ruby/gems/1.8/gems/rake-0.7.3/lib/rake/rake_test_loader.rb:5:in `load' from /usr/lib64/ruby/gems/1.8/gems/rake-0.7.3/lib/rake/rake_test_loader.rb:5 from /usr/lib64/ruby/gems/1.8/gems/rake-0.7.3/lib/rake/rake_test_loader.rb:5:in `each' from /usr/lib64/ruby/gems/1.8/gems/rake-0.7.3/lib/rake/rake_test_loader.rb:5 My best guess right now is that this has something to do with load order?
Just checked some of my other rails projects... Again running rake to run tests and specs: /usr/lib64/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/dependencies.rb:263:in `load_missing_constant': uninitialized constant Spec::VERSION::REV (NameError) from /usr/lib64/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/dependencies.rb:452:in `const_missing' from /home/graaff/projects/winkwaves/vsnu/vendor/plugins/rspec_on_rails/lib/spec/rails/version.rb:13 from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require' from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require' from /usr/lib64/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/dependencies.rb:495:in `require' from /usr/lib64/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/dependencies.rb:342:in `new_constants_in' from /usr/lib64/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/dependencies.rb:495:in `require' from /home/graaff/projects/winkwaves/vsnu/vendor/plugins/rspec_on_rails/lib/spec/rails.rb:16 A few ruby-only projects with rspec seem to work fine, but they don't have external dependencies either.
Seems it was unmasked already, fails though: >>> Install rubygems-1.0.1 into /var/tmp/portage/dev-ruby/rubygems-1.0.1/image/ category dev-ruby ACCESS DENIED mkdir: /usr/lib64/ruby/gems/1.8/cache ACCESS DENIED mkdir: /usr/lib64/ruby/gems ACCESS DENIED mkdir: /usr/lib64/ruby/gems/1.8/doc ACCESS DENIED mkdir: /usr/lib64/ruby/gems ACCESS DENIED mkdir: /usr/lib64/ruby/gems/1.8/gems ACCESS DENIED mkdir: /usr/lib64/ruby/gems ACCESS DENIED mkdir: /usr/lib64/ruby/gems/1.8/specifications ACCESS DENIED mkdir: /usr/lib64/ruby/gems ACCESS DENIED mkdir: /usr/lib64/ruby/gems/1.8/cache ACCESS DENIED mkdir: /usr/lib64/ruby/gems ACCESS DENIED mkdir: /usr/lib64/ruby/gems/1.8/doc ACCESS DENIED mkdir: /usr/lib64/ruby/gems ACCESS DENIED mkdir: /usr/lib64/ruby/gems/1.8/gems ACCESS DENIED mkdir: /usr/lib64/ruby/gems ACCESS DENIED mkdir: /usr/lib64/ruby/gems/1.8/specifications ACCESS DENIED mkdir: /usr/lib64/ruby/gems This seems to help (0.9.4-r2 does it like that) but I'm not sure it's the proper fix. - export GEM_HOME="/usr/$(get_libdir)/ruby/gems/${ver}" + export GEM_HOME="${D}/usr/$(get_libdir)/ruby/gems/${ver}"
(In reply to comment #9) > ACCESS DENIED mkdir: /usr/lib64/ruby/gems/1.8/gems > This seems to help (0.9.4-r2 does it like that) but I'm not sure it's the > proper fix. > - export GEM_HOME="/usr/$(get_libdir)/ruby/gems/${ver}" > + export GEM_HOME="${D}/usr/$(get_libdir)/ruby/gems/${ver}" > Setting GEM_HOME like that was for installing a gem at the same time, which we no longer have to do. Could you give me a clue as to which part of src_install is going to wrong place for you, your emerge info if you're still using portage, otherwise the nearest equivalent, and I guess, what version of ruby you're using. Thanks
(In reply to comment #10) > Could you give me a clue as to which part of src_install is going to wrong This one: ${RUBY} setup.rb $myconf --prefix="${D}" || die "setup.rb install failed" If you want me to trace what part of setup.rb that is, please hint, I have no ruby knowledge :) BTW it seems to happen only if those dirs don't exist on the system yet, i.e. no gems installed yet. Upgrades and reinstalls are fine. Either it ignores prefix for some mkdirs, or ruby tries to create those itself? > place for you, your emerge info if you're still using portage, otherwise the > nearest equivalent, and I guess, what version of ruby you're using. "STILL" using portage? pfft $ emerge --info Portage 2.1.4 (default-linux/amd64/2007.0/desktop, gcc-4.2.2, glibc-2.7-r1, 2.6.23-gentoo-r5 x86_64) ================================================================= System uname: 2.6.23-gentoo-r5 x86_64 AMD Athlon(tm) 64 Processor 3000+ Timestamp of tree: Unknown distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] ccache version 2.4 [enabled] app-shells/bash: 3.2_p33 dev-java/java-config: 1.3.7, 2.1.3 dev-lang/python: 2.5.1-r5 dev-util/ccache: 2.4-r7 sys-apps/baselayout: 1.12.11.1 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.61-r1 sys-devel/automake: 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 sys-devel/binutils: 2.18-r1 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.24 virtual/os-headers: 2.6.23-r3 ACCEPT_KEYWORDS="amd64 ~amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -march=athlon64 -msse3 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /opt/openjms/config /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config /var/lib/hsqldb" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-O2 -march=athlon64 -msse3 -pipe" DISTDIR="/data/distfiles" EMERGE_DEFAULT_OPTS="--with-bdeps y" FEATURES="assume-digests ccache collision-protect cvs distlocks parallel-fetch sandbox sfperms strict unmerge-orphans userfetch userpriv usersandbox" GENTOO_MIRRORS="ftp://ftp.upc.cz/mirrors/gentoo-mirror http://gentoo.osuosl.org" LANG="en_US.utf8" LDFLAGS="-Wl,--as-needed" LINGUAS="en cs" MAKEOPTS="-j2" 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 --filter=H_**/files/digest-*" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/portage/local/layman/mozilla /usr/portage/local/layman/openrc /usr/portage/local/crossdev /proj/gentoo/java/java-overlay /proj/gentoo/java/java-experimental /usr/portage/local/caster" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="3dnow 3dnowext 7zip X a52 aac acl acpi alsa amd64 amr apache2 audiofile bash-completion berkdb bitmap-fonts bluetooth branding bsf bzip2 cairo caps cdr cjk cli cracklib crypt cups curl dbus djvu dri dts dvd dvdr dvdread dvi emboss encode evo fam ffmpeg fftw firefox flac fontconfig fortran gdbm ggi gif gmp gpm gstreamer gtk hal iconv icq idn ipv6 isdnlog java java5 javascript jmf jpeg kde kdeenablefinal kdehiddenvisibility kerberos kipi ladspa lcms ldap libnotify libsamplerate lm_sensors lua lzo mad maildir matroska mbox midi mikmod mmx mmxext mozdevelop moznoirc mp3 mpeg mplayer mudflap musicbrainz ncurses nls nptl nptlonly nsplugin ntfs nvidia ogg openal opengl openmp oscar pam pcre pdf perl png pppd python qt3 qt3support qt4 quicktime readline reflection reiserfs rtc ruby sdl seamonkey session slang sockets soundtouch speex spell spl sqlite sse sse2 ssl svg t1lib tcl tcpd tetex threads tiff tk truetype truetype-fonts type1-fonts unicode usb v4l vamp vorbis webdav xcb xcomposite xine xml xorg xosd xulrunner xv xvid zlib" ALSA_CARDS="emu10k1" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd 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 dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so 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" LINGUAS="en cs" USERLAND="GNU" VIDEO_CARDS="nvidia nv vesa fbdev v4l" Unset: CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS ruby is 1.8.6_p111-r1
(In reply to comment #11) > > If you want me to trace what part of setup.rb that is, please hint, I have no > ruby knowledge :) > > BTW it seems to happen only if those dirs don't exist on the system yet, i.e. > no gems installed yet. Upgrades and reinstalls are fine. Either it ignores > prefix for some mkdirs, or ruby tries to create those itself? Thanks, that should help me track it down
(In reply to comment #10) > (In reply to comment #9) > > ACCESS DENIED mkdir: /usr/lib64/ruby/gems/1.8/gems > > > This seems to help (0.9.4-r2 does it like that) but I'm not sure it's the > > proper fix. > > - export GEM_HOME="/usr/$(get_libdir)/ruby/gems/${ver}" > > + export GEM_HOME="${D}/usr/$(get_libdir)/ruby/gems/${ver}" > > > > Setting GEM_HOME like that was for installing a gem at the same time, which we > no longer have to do. Or maybe it wasn't. setup.rb is requiring the rubygems it's installing, which is making sure all the right GEM_HOME directories exist. I've changed this back in CVS, thanks
Fixed this :) - export GEM_HOME="{$D}/usr/$(get_libdir)/ruby/gems/${ver}" + export GEM_HOME="${D}/usr/$(get_libdir)/ruby/gems/${ver}"
That's my last commit for the day then, since I also didn't commit when I said I did. thanks for fixing it.
The problem still exists with version 1.2.0. I got ACCESS DENIED mkdir: /usr/lib64/ruby/gems/1.8/cache ACCESS DENIED mkdir: /usr/lib64/ruby/gems ... When I created the directories by hand, the installation worked fine.