I have been using xapian-full-alaveteli-1.2.9.7 for some time without any problems...
Environment: OpenBSD 5.6 (amd64 arch) ruby20 Gem xapian-full-alaveteli-1.2.21.1
When I try to run bundle20 install
from my RoR app folder I receive: 'Gem::Installer::ExtensionBuildError':
Installing xapian-full-alaveteli 1.2.21.1 with native extensions.
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
"/usr/local/bin/ruby20" -rubygems /usr/local/lib/ruby/gems/2.0/gems/rake-10.4.2/bin/rake RUBYARCHDIR=/usr/local/lib/ruby/gems/2.0/gems/xapian-full-alaveteli-1.2.21.1/lib RUBYLIBDIR=/usr/local/lib/ruby/gems/2.0/gems/xapian-full-alaveteli-1.2.21.1/lib
tar -xJvf xapian-core-1.2.21.tar.xz
tar: unknown option -- J
usage: tar {crtux}[014578befHhjLmNOoPpqsvwXZz]
[blocking-factor | archive | replstr] [-C directory] [-I file]
[file ...]
tar {-crtux} [-014578eHhjLmNOoPpqvwXZz] [-b blocking-factor]
[-C directory] [-f archive] [-I file] [-s replstr] [file ...]
rake aborted!
The issue is probably due to the fact that OpenBSD doesn't use GNU tar and doesn't support the '-J' flag.
What I did to try to build gem (Full disclosure I don't know that much about Ruby)..
In '/usr/local/lib/ruby/gems/2.0/gems/xapian-full-alaveteli-1.2.21.1':
- Edit 'Rakefile' change ' system! "tar -xJvf #{x}.tar.xz"' to ' system! "tar -xvf #{x}.tar"'
- Edit 'xapian-full.gemspec' remove '.xz' from the archives listed in 's.files' array
- run
unxz *.xz
- run
export CPPFLAGS=-I/usr/local/include
- run
export LDFLAGS=-L/usr/local/lib
- run
gem20 build xapian-full.gemspec
- ran what (I think) 'bundle20' would have ran
"/usr/local/bin/ruby20" -rubygems /usr/local/lib/ruby/gems/2.0/gems/rake-10.4.2/bin/rake RUBYARCHDIR=/usr/local/lib/ruby/gems/2.0/gems/xapian-full-alaveteli-1.2.21.1/lib RUBYLIBDIR=/usr/local/lib/ruby/gems/2.0/gems/xapian-full-alaveteli-1.2.21.1/lib
Then I got:
bin/xapian-replicate.o(.text+0x55d): In function `main':
bin/xapian-replicate.cc:176: undefined reference to `ReplicateTcpClient::ReplicateTcpClient(std::basic_string, std::allocator > const&, int, double, double)'
collect2: ld returned 1 exit status
*** Error 1 in . (Makefile:2231 'bin/xapian-replicate')
*** Error 1 in . (Makefile:3334 'all-recursive')
*** Error 1 in /usr/local/lib/ruby/gems/2.0/gems/xapian-full-alaveteli-1.2.21.1/xapian-core-1.2.21 (Makefile:1503 'all')
rake aborted!
I would like to understand how to build gem 'xapian-full-alaveteli-1.2.21.1' on OpenBSD. Any ideas?
Secondly, I would like to know if the Rakefile could be changed to allow more portable installations?