Giter VIP home page Giter VIP logo

xapian-full's Introduction

xapian-full-alaveteli

This is a gem containing the Xapian Ruby bindings, together with a build of xapian-core. These are compiled natively on installation and installed in the lib/ directory - the file there is a placeholder, but should reflect the current version.

Updating

The process for updating the gem is as follows:

  • Update the Rakefile:
    • ver should match the Xapian version
    • sha256 should match the hash for each Xapian archive.
  • Clear the lib directory.
  • Run rake compile to download the Xapian bindings for the version specified and compiles:
    • lib/xapian.rb Ruby Xapian bindings
    • lib/_xapian.{so,bundle} shared library for the current platform.
  • Run rake test to check the Xapian bindings can be loaded in Ruby.
  • Update xapian-full.gemspec:
    • s.version should be the Xapian version, followed by the iteration of the gem, e.g. 1.4.11.1
    • s.file will need updating to reflect the new archive file names
    • s.date and s.authors should be updated appropriately
    • s.required_ruby_version may need updating, consult the Xapian release notes for any changes.
  • Run gem build xapian-full.gemspec and push to Rubygems.
  • Make sure any code using the bindings has been updated to reflect any changes.

xapian-full's People

Contributors

crowbot avatar gbp avatar kalbasit avatar rex1fernando avatar rlane avatar robinhouston avatar sagepe avatar sebbacon avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

wuatanabe gbp

xapian-full's Issues

Compiling gem under Ruby 3.0 is broken

Error returned multiple times:

error: '__declspec' attributes are not enabled; use '-fdeclspec' or '-fms-extensions' to enable support for __declspec attributes

Bumping to Xapian 1.4.21 works.

Gem::Installer::ExtensionBuildError on OpenBSD

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?

Installing on Windows

Hi - I've been attempting to install this on Windows. The problem is that as a standard there isn't a 'tar' equivalent on windows.

I've downloaded a gnu-compatible tar.exe, but it's pretty old and it doesn't support the -J option

Is it possible to alter the install package so that the code is supplied as .tar files (as opposed to .tar.xz) and change the Rakefile accordingly so that it doesn't use the J option?

I do have a method of manuallyconverting .xz to .tar, but any time I run the 'gem install' command the Rakefile is overwritten - so I lose any changes I attempt.

Any help gratefully received!

Thanks - Steve

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.