# xapian-bindings includes ... bindings for the following:
# C# - Mono C# 3.0.6.0 and 4.2.1.0 (.NET 2 or later via SWIG)
# Java >= 1.6 (Java 6 or later via SWIG)
# Lua >= 5.1
# Perl >= 5.8.3
# PHP >= 8.0 (PHP 5 and 7 are supported up to Xapian 1.4.21)
# Python 2 >= 2.7
# Python 3 >= 3.3
# Ruby >= 2.1
# Tcl >= 8.5
# Erlang
# Get the source
cd
test -f installed/xapian-bindings-1.4.23.tar.xz &&
mv -f installed/xapian-bindings-1.4.23.tar.xz .
test ! -f xapian-bindings-1.4.23.tar.xz &&
wget https://oligarchy.co.uk/xapian/1.4.23/xapian-bindings-1.4.23.tar.xz
# Verify the source with sha256sum:
echo "e0bc8cc0ecf0568549c50b51fd59e4cffb5318d6f202afcd4465855ef5f33f\
7d xapian-bindings-1.4.23.tar.xz" | sha256sum -c
# Extract the source
mkdir -p -m 0700 ~/src
cd ~/src
find -maxdepth 1 -type d -name "xapian-bindings-*" -exec rm -r {} \;
tar xJvf ~/xapian-bindings-1.4.23.tar.xz
cd xapian-bindings-1.4.23
test $UID = 0 && chown -R root:root .
# Configure the build for 64-bit
test $(uname -m) = 'x86_64' &&
./configure --prefix=/usr --docdir=/usr/doc/xapian-bindings-1.4.23 \
--libdir=/usr/lib64 --mandir=/usr/man LUA_INC=/usr/local/include
# Configure the build for anything else
test $(uname -m) != 'x86_64' &&
./configure --prefix=/usr --docdir=/usr/doc/xapian-bindings-1.4.23 \
--mandir=/usr/man
# Build it
make
# Check the build (can take a very long time)
make check
# Become root to install
su
# Remove the Slackware package, if there is one
test -x /sbin/removepkg && /sbin/removepkg xapian-core
# Install it
make install
ldconfig
# Become your non-root user again
exit
# Save the source for later
cd
mkdir -p -m 0700 installed
rm -f installed/xapian-bindings-*.tar.*
mv xapian-bindings-1.4.23.tar.xz installed/
# If you ever want to uninstall xapian-core, this should do it:
# ('make uninstall' as root should do it, the rest is just in case)
# (proofread this before blindly running it in case I made a typo)
cd
su
test -d src/xapian-bindings-* && ( cd src/xapian-bindings-* ; make uninstall )
( cd /usr/bin
rm -f copydatabase quest simpleexpand simpleindex simplesearch xapian-* )
find /usr/doc -maxdepth 1 -type d -name "xapian-bindings-*" -exec rm -r {} \;
test -d /usr/include/xapian && rm -r /usr/include/xapian
for pfx in /usr/lib /usr/lib64; do
( cd $pfx
test -d ${pfx}/cmake/xapian && rm -r ${pfx}/cmake/xapian
rm -f ${pfx}/libxapian.* ${pfx}/pkgconfig/xapian-core.pc )
done
( cd /usr/man/man1
rm -f copydatabase.1 quest.1 xapian-*.1 )
test -d /usr/share/xapian-core && rm -r /usr/share/xapian-core
rm -f /usr/include/xapian.h /usr/share/aclocal/xapian.m4
ldconfig
exit
find ~/src -maxdepth 1 -type d -name "xapian-bindings-*" -exec rm -r {} \;
rm -f ~/installed/xapian-bindings-*.tar.*