[Xapian-devel] Contributing to Xapian

Olly Betts olly at survex.com
Mon Dec 8 05:41:11 GMT 2014

On Sun, Dec 07, 2014 at 11:47:01PM -0500, Manu Gupta wrote:
> I am on Debian verson 7.7, GCC 4.7.2 and make 3.8.1.
> I cloned the code :
> git clone https://github.com/v-hasu/xapian
> git checkout gsoc2014-evaluation
> rm xapian-letor/nobootstrap
> ./bootstrap
> ./configure --no-documentation
> make CXXFLAGS='-w'

Please don't inhibit warnings - fix them instead!

> ranker.cc: In member function 'std::string Xapian::Ranker::get_cwd()':
> ranker.cc:80:36: error: 'getcwd' was not declared in this scope

This will be because the header which declares getcwd() isn't included.

But in fact none of the calls to getcwd() in xapian-letor are actually
needed - relative paths are interpreted relative to the current
directory.  So the better fix is to eliminate these calls.

I've pointed this out in a patch review previously, but it sounds
like the didn't all get fixed.

> I am also trying Hanxiao's method but am not able to find aclocal / libtool
> / autoconf / autoheader / automake --add-missing  in my os. Can you tell me
> which packages do I need to install ?

You should simply remove the .nobootstrap file if you want to do letor

The whole point of bootstrap is to run tools such as these for you in a
reproducible way, and then configure the subdirectories such that they
use each other where appropriate - you want to be building xapian-letor
against the xapian-core in the same source tree, which Hanxiao's
commands don't set up.

> One option might be, I can try solving this error one by one in a branch of
> mine to get xapian-letor to a stage where it can be built directly and we
> will no longer require a .nobootstrap option while I get familiar with the
> code base too. What thoughts do you have on this?

Letor has extra dependencies compared to the rest of the tree (libsvm
currently IIRC, but probably more in future when more ML approaches are
added) - if we bootstrap it by default, then everyone wanting to work
with Xapian from git has to install all of those, or else touch the
.nobootstrap file.

It's really a question of what the better default is - at least at
present, I think it's more sensible for those who want to do letor
development to have to delete a file rather than for everyone else to
have to create it.


More information about the Xapian-devel mailing list