Date: Wed, 30 Mar 2011 14:40:14 +0000 From: Eric <freebsdlists-ruby@chillibear.com> To: Steve Wills <swills@FreeBSD.org> Cc: knu@FreeBSD.org, freebsd-ruby@FreeBSD.org Subject: Re: making Ruby 1.9 default Message-ID: <C9B8F14E.1E41B%freebsdlists-ruby@chillibear.com> In-Reply-To: <4D8ABBD7.8050706@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
> Please see the attached patch. This should get us past ruby-bdb and > allow portupgrade to work with Ruby 1.9. > > Steve I couldn't fetch from the source given in your patch: fetch: https://download.github.com/knu-ruby-bdb-v0.6.5-8-g6feba54.tar.gz: Not Found However I obtained a copy of that git commit thus: fetch -o /usr/ports/distfiles/ruby/knu-ruby-bdb-v0.6.5-8-g6feba54.tar.gz http://github.com/knu/ruby-bdb/tarball/6feba54 I was then able build and install ruby-bdb without issue as long as I specified 'NOPORTDOCS', since the docs appear to be incomplete in the source I downloaded. Portupgrade does then successfully build/install, although bombs out with: /usr/local/lib/ruby/site_ruby/1.9/pkgmisc.rb:110:in `<module:LIBC>': uninitialized constant DL::Importable (NameError) When run. I've not looked deeper yet, as ever other bits of life being hectic! My thanks to both you and Knu for all the effort on this. > On 03/20/11 13:27, Eric wrote: >> [SNIP] >> >>>> Portupgrade is a bit of a problem. Perhaps it's due to my patches, but >>>> at the moment I can't get databases/ruby-bdb to build with RUBY_VER == >>>> 1.9. If I could get past that, I could test the above PR. I wonder if >>>> anyone else has the same issue. >>>> >>> >>> It does not work with 1.9. I submitted some pacthes to fix it, but it's >>> not enough to get it build. IIRC, there were some other problems knu@ >>> mentioned. >> >> I've been having a bit of a play myself for the last couple of hours, but >> without any real luck. It does appear that getting the bdb bindings working >> with Ruby 1.9 is the first major blocker to pass to get portupgrade working. >> >> The existing /usr/ports/databases/ruby-bdb fails (at least at first) because >> it can't find a 'features' library that is required in src/extconf.rb. >> There is actually a 'features.rb' in the src directory, which might be what >> it's after. Hardcoding (perhaps require is getting muddled) to this file >> does gets extconf.rb generating the following: >> >> jail# ruby extconf.rb >> checking for db_version() in -ldb-4.7... yes >> checking for rb_frame_this_func() in ruby.h... yes >> checking for rb_block_proc() in ruby.h... yes >> checking for rb_io_stdio_file() in ruby.h... yes >> checking for rb_block_call() in ruby.h... yes >> checking for Array#insert... yes >> checking for Array#values_at... yes >> checking for rb_io_t in ruby.h,rubyio.h... yes >> checking for DB_AFTER in db.h...no >> checking for DB_AGGRESSIVE in db.h...no >> checking for DB_APPEND in db.h...no >> checking for DB_ARCH_ABS in db.h...no >> checking for DB_ARCH_DATA in db.h...no >> checking for DB_ARCH_LOG in db.h...no >> checking for DB_AUTO_COMMIT in db.h...no >> ---etc--- >> >> Lots more "NOs", then the Makefile within 'src' is created. Returning back >> up to the top directory and trying a 'make install' (or doing it from the >> work dir) still fails. >> >> I've also been trying the gem from here: https://github.com/espace/bdb which >> explicitly mentions working with Ruby 1.9.1 (fork off the original code). >> Worth noting for others that this gem only looks for db-4.7, db-4.6 db-4.5, >> db-4.4, db-4.3 and db-4.2. I believe the default USE_BDB is 4.1. The other >> thing is the path to db.h is hardcoded in the ext/extconf.rb to db_header = >> "/usr/local/include/db.h", so you may need to tweak that. >> >> I've not managed to get that gem to build via the ports system or more >> manually via the 'gem19 install' command. Although with the above tweaks >> taken into account 'cd'ing into >> /usr/local/lib/ruby/gems/1.9/gems/bdb-0.0.2/ext and running the extconf.rb >> and resultant Makefile doesn't error: >> >> jail# make install >> cc -shared -o bdb.so bdb.o -L. -L/usr/local/lib -Wl,-R/usr/local/lib -L. >> -rdynamic -Wl,-soname,bdb.so -Wl,-R -Wl,/usr/local/lib -L/usr/local/lib >> -lruby19 -ldb-4.7 -lcrypt -lm -L/usr/local/lib >> -rpath=/usr/lib:/usr/local/lib -pthread -lc >> /usr/bin/install -c -o root -g wheel -m 0755 bdb.so >> /usr/local/lib/ruby/gems/1.9/gems/bdb-0.0.2/lib >> >> I'm afraid I'm getting to the slightly randomly prodding stuff stage - I'm >> not a big C person (*the shame* - I know) >> >> Sorry not much of use I know, anyone a bit more knowledgeable got some >> ideas? >> >> Regards >> >> Eric >>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?C9B8F14E.1E41B%freebsdlists-ruby>