xapian porting to Interix / conclusion
Eric Lindblad
geirfuglaps at yahoo.com
Tue Sep 15 02:52:26 BST 2015
Report by Eric Lindblad 14-09-2015
http://www.ericlindblad.blogspot.com
cf: http://permalink.gmane.org/gmane.comp.search.xapian.general/9880
The 'gmake check' compile error on xapian-core-1.2.21/tests/api_backend.cc was resolved by the modification (at the suggestion of a mailing-list member) of the offending string from "q.OP_PHRASE" to "Xapian::Query::OP_PHRASE".
'gmake check' results
./apitest backend none: 57 tests passed, 1 failed.
./apitest backend inmemory: 220 tests passed, 6 failed, 8 skipped.
./apitest backend flint: 293 tests passed, 5 failed, 2 skipped.
./apitest backend multi_flint: 153 tests passed, 2 failed, 5 skipped.
./apitest backend remoteprog_flint: 137 tests passed, 82 failed, 2 skipped.
./apitest backend remotetcp_flint: 199 tests passed, 20 failed, 2 skipped.
./apitest total: 1059 tests passed, 116 failed, 19 skipped.
FAIL: apitest
FAIL: internaltest
PASS: stemtest
FAIL: queryparsertest
PASS: termgentest
resolverelativepath1 ... ok
PASS: unittest
The disabling of brass and chert backends (the same mailing-list member noting that compile of
1.2.x with just flint support being of somewhat limited use) was due to an earlier encountered
'ambiguous overload' error on brass_check.cc & chert_check.cc.
The above test was performed on a machine without network access.
With the define for 'htons' on Interix located in /dev/fs/C/SFU/usr/include/arpa/inet.h
the addition of '#include <arpa/inet.h>' in xapian-core-1.2.21/net/tcplclient.cc allowed
for remote's compile on Interix. Typically, at least on my Slackware box, the define is
located in /usr/include/netinet/in.h.
Replication introduced in 1.1.x series (and present in the 1.2.x series) requiring the remote backend, prevented me from compiling flint w/out remote; the xapian-core-1.0.23 compile w/out the remote backend demonstrated that it was feasible to run xapian under Interix.
If Microsoft Corp. would recant on their decision effective as of Windows 8.1 to discontinue enabling for Interix, it might be a suitable platform for xapian, albeit possibly with some restrictions on bindings.
SFU Interix 3.5 (modified) setup and dependencies (libuuid-1.0.3 patched and zlib --static) here:
http://permalink.gmane.org/gmane.comp.search.xapian.general/9862
script for compile
#!/bin/ksh
CC=/opt/gcc.3.3/bin/gcc
CXX=/opt/gcc.3.3/bin/g++
PKGNAM=xapian-core
VERSION=${VERSION:-1.2.21}
cd tmp/xapian-core-1.2.21/BUILD
env CFLAGS="-D_ALL_SOURCE -D_REENTRANT -I/usr/local/include" \
CXXFLAGS="-D_ALL_SOURCE -D_REENTRANT -I/usr/local/include" \
LDFLAGS="-L/usr/local/lib" \
../configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/man \
--docdir=/usr/doc/$PKGNAM-$VERSION \
--disable-static \
--disable-backend-brass \
--disable-backend-chert
More information about the Xapian-discuss
mailing list