Search code examples
linuxpackagesphinxarchlinuxre2

Installation sphinx + re2 on Arch Linux


I need to install sphinx with regexp_filter option. I have install re2 package with pacman. In documentation i see that i can compile the sphinx package with --with-re2 option. But when i do this i get error.

checking whether to compile with RE2 library support... configure: error: missing re2 sources

Also i've tried to set make options like here.

--with-re2-libs=/usr/lib/libre2.so --with-re2-includes=/usr/include/re2/

but i've got another error

checking whether to compile with RE2 library support... configure: error: missing re2 headers

Here my output of ls /usr/include/re2

ls /usr/include/re2/
  filtered_re2.h 
  re2.h 
  set.h 
  stringpiece.h 
  variadic_function.h

Have anybody install this? Thanks for all help!


Solution

  • I have found the solution of my problem.

    I just replaced

    --with-re2-libs=/usr/lib/libre2.so --with-re2-includes=/usr/include/re2/
    

    with this

    --with-re2-libs=/usr/lib/ --with-re2-includes=/usr/include/re2/
    

    Here the full pkgbuild file:

    pkgname='sphinx'
    pkgver=2.2.10
    pkgrel=2
    pkgdesc='Free open-source SQL full-text search engine.'
    arch=('i686' 'x86_64')
    url='http://www.sphinxsearch.com/'
    license=('GPL')
    depends=('unixodbc' 'expat' 'libmysqlclient' 'postgresql-libs' 're2')
    optdepends=('postgresql')
    backup=('etc/conf.d/sphinx')
    install='sphinx.install'
    source=("http://sphinxsearch.com/files/${pkgname}-${pkgver}-release.tar.gz"
        'sphinx.conf.d'
        'sphinx.rc.d' 
        'sphinx.service'
        'sphinx.tmpfiles.conf')
    
    build() {
      sed -i '15199,15199 s/x00/x21/' "${srcdir}/${pkgname}-${pkgver}-release/src/searchd.cpp"
    
      cd "${srcdir}/${pkgname}-${pkgver}-release"
      ./configure --prefix=/usr --exec-prefix=/usr --localstatedir=/var/lib/sphinx \
        --sysconfdir=/etc/sphinx --with-pgsql --enable-id64 --with-re2 --with-re2-include=/usr/include/re2 --with-re2-libs=/usr/lib/libre2.so
    
      make
    }
    
    package() {
      cd "${srcdir}/${pkgname}-${pkgver}-release"
    
      make DESTDIR="${pkgdir}" install
    
      for _f in "${pkgdir}/usr/bin/"*; do
        ln -s "/usr/bin/${_f##*/}" "${pkgdir}/usr/bin/sphinx-${_f##*/}"
      done
    
      install -Dm755 "${srcdir}/sphinx.rc.d" "${pkgdir}/etc/rc.d/sphinx"
      install -Dm644 "${srcdir}/sphinx.conf.d" "${pkgdir}/etc/conf.d/sphinx"
      install -Dm644 "${srcdir}/sphinx.service" "${pkgdir}/usr/lib/systemd/system/sphinx.service"
      install -d "${pkgdir}/usr/share/sphinx/lib"
      install -Dm644 api/sphinxapi.php "${pkgdir}/usr/share/sphinx/lib/sphinxapi.php"
      install -Dm644 api/sphinxapi.py "${pkgdir}/usr/share/sphinx/lib/sphinxapi.py"
      install -Dm644 "${srcdir}/sphinx.tmpfiles.conf" "${pkgdir}/usr/lib/tmpfiles.d/sphinx.conf"
    }
    md5sums=('dda52b24d8348fc09e26d8a649a231d2'
             '48e3e1857919d26d5104a48caffb531b'
             'faaa8310af97ff1dbdaf08612e442020'
             'fe06a8aff0520a6f75596ee43d2e5935'
             '22ec4cd0471a1d52702d57d78614b8d8')