making Ruby 1.9 default

Eric freebsdlists-ruby at
Wed Mar 30 13:40:37 UTC 2011

> 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:

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

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

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
>> checking for DB_AGGRESSIVE in
>> checking for DB_APPEND in
>> checking for DB_ARCH_ABS in
>> checking for DB_ARCH_DATA in
>> checking for DB_ARCH_LOG in
>> checking for DB_AUTO_COMMIT in
>> ---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: 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.o -L. -L/usr/local/lib -Wl,-R/usr/local/lib -L.
>> -rdynamic -Wl,-soname,  -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
>> /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

More information about the freebsd-ruby mailing list