Hi,

I tried to install libxml-ruby 0.3.8 gem on my Ubuntu Linux box
without success.  The installation apparently succeeded with no errors, 
but 'gem check -t libxml-ruby' fails with the message

  /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:27:in
  `gem_original_require': no such file to load -- xml/libxml_so
  (LoadError)

It seems that RubyGem expects the source directory for extensions to be
different from where they are installed (typically 'lib/'), but the
current libxml-ruby gem uses 'ext/' for both.

Consequently, the following happens with 'gem install';
Note that 'gem install' runs 'extconf.rb' in 'ext/xml/' and then 
'make; make install; make clean':

1. The file 'ext/xml/libxml_so.so' compiles fine.

2. Because RUBYARCHDIR is 'ext/xml/', 'make install' does nothing.
   # N.B. gem overwrites RUBYLIBDIR and RUBYARCHDIR to the value of
   # 'require_path' field in the gem spec just before 'make' is run.

3. gem finally runs 'make clean' and 'ext/xml/libxml_so.so' is removed.

Attached is a patch that fixes the problem.  It essentially

- creates 'lib/xml' directory;
- sets the gem spec 'require_path' field to 'lib/xml' (in place of
  'ext/xml');
- moves 'ext/xml/libxml.rb' to 'lib/xml' directory; and
- installs libxml_so.so in 'lib/xml' upon 'gem install'.

My environment is: Ubuntu Linux 6.06 / RubyGem 0.9.0 / Ruby 1.8.4

Masashi Shimbo

Attachment: libxml-ruby-0.3.8.diff
Description: Binary data

_______________________________________________
libxml-devel mailing list
libxml-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/libxml-devel

Reply via email to