kiwix / libkiwix

Common code base for all Kiwix ports
https://download.kiwix.org/release/libkiwix/
GNU General Public License v3.0
117 stars 55 forks source link

libxapian-dev on Debian Jessie doesn't seem to satisfy (optional) dependency #12

Closed orblivion closed 7 years ago

orblivion commented 7 years ago

I notice that when I build, even having installed libxapian-dev via Debian Jesse, it says that the xapian-core dependency was not satisfied. It built anyway since it's an optional dependency, so perhaps the person writing the README did not notice. Or, maybe Debian Jesse has too old a version of libxapian-dev, such that it doesn't have the pkg-config thing.

legoktm commented 7 years ago

Something like $ pkg-config --modversion xapian-core will tell you whether pkg-config sees the library as installed. I can test on Debian Jessie tomorrow probably.

orblivion commented 7 years ago

I found a separate debian jesse system, installed libxapian-dev, and ran:

$ pkg-config --modversion xapian-core
Package xapian-core was not found in the pkg-config search path.
Perhaps you should add the directory containing `xapian-core.pc'
to the PKG_CONFIG_PATH environment variable
No package 'xapian-core' found
orblivion commented 7 years ago

I may try to build libxapian, seeing as I'm building libzim and libpugiximl anyway. If I can show it to work, perhaps you could add it as a "if you have Debian jesse" section.

mgautierfr commented 7 years ago

What is the xapian version on Debian Jesse ? Xapian 1.4.0 install a xapian-core.pc by default.

Can you run pkg-config --list-all to get the list of all modules ? Maybe the pkg-config xapian file has changed and we have to use another name than xapian-core.

orblivion commented 7 years ago

Version 1.2.19-1+deb8u1: https://packages.debian.org/jessie/libxapian-dev

On this particular Debian Jesse installation, I get:

$ pkg-config --list-all
systemd          systemd - systemd System and Service Manager
python2          Python - Python library
openssl          OpenSSL - Secure Sockets Layer and cryptography libraries and tools
python           Python - Python library
libcrypto        OpenSSL-libcrypto - OpenSSL cryptography library
zlib             zlib - zlib compression library
udev             udev - udev
python-2.7       Python - Python library
bash-completion  bash-completion - programmable completion for the bash shell
libcares         c-ares - asynchronous DNS lookup library
expat            expat - expat XML parser
iso-codes        iso-codes - ISO country, language, script and currency codes and translations
libssl           OpenSSL - Secure Sockets Layer and cryptography libraries
shared-mime-info shared-mime-info - Freedesktop common MIME database
legoktm commented 7 years ago

In Debian unstable (sid/stretch):

root@DebianSid4:~# apt-file list libxapian-dev | grep pc
libxapian-dev: /usr/lib/x86_64-linux-gnu/pkgconfig/xapian-core.pc
root@DebianSid4:~# dpkg -l | grep xapian
ii  libxapian-dev                 1.4.2-1                     amd64        Development files for Xapian search engine library
ii  libxapian30:amd64             1.4.2-1                     amd64        Search engine library
root@DebianSid4:~# pkg-config --modversion xapian-core
1.4.2
legoktm commented 7 years ago

More digging and it appears 1.2.21 is the minimum version with a pkg-config file:

xapian-core (1.2.21-1) unstable; urgency=medium

  * New upstream release:
    + Now provides pkg-config file, packaged in libxapian-dev.
  * debian/rules: It's safe to assume dpkg >= 1.16.1 now, so simplify
    use of dpkg-buildflags.
  * Upstream releases are now bootstrapped with a newer libtool, so
    dh_autoreconf is no longer needed.

 -- Olly Betts <olly@survex.com>  Fri, 22 May 2015 00:17:27 +1200
kelson42 commented 7 years ago

I strongly recommend to require Xapian >= 1.4.2

kelson42 commented 7 years ago

Here there is nothing we can do. We need Xapian 1.4.2 with pc file.

orblivion commented 7 years ago

For the record, I went ahead with building xapian-core (1.4.3) myself rather than using Debian Jesse's version and it's worked out.