Merge branch 'master' into core-updates
[jackhill/guix/guix.git] / gnu / packages / search.scm
index e176fd1..a87e1e7 100644 (file)
 
 (define-module (gnu packages search)
   #:use-module ((guix licenses)
-                #:select (gpl2 gpl2+ gpl3+ lgpl2.1+ bsd-3 x11))
+                #:select (gpl2 gpl2+ gpl3+ lgpl2.1+ bsd-3 x11 perl-license))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
   #:use-module (gnu packages compression)
@@ -39,6 +40,8 @@
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-web)
+  #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages sphinx)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml))
 (define-public xapian
   (package
     (name "xapian")
-    (version "1.4.5")
+    (version "1.4.15")
     ;; Note: When updating Xapian, remember to update xapian-bindings below.
     (source (origin
               (method url-fetch)
               (uri (string-append "https://oligarchy.co.uk/xapian/" version
                                   "/xapian-core-" version ".tar.xz"))
               (sha256
-               (base32 "0axhqrj202hbll9mcx1qdm8gsqj19216w3z02gyjbycxvr9gkdc5"))))
+               (base32 "1sjhz6vgql801rdgl6vrsjj0vy1mwlkcxjx6nr7h27m031cyjs5i"))))
     (build-system gnu-build-system)
     (inputs `(("zlib" ,zlib)
-              ("util-linux" ,util-linux)))
+              ("util-linux" ,util-linux "lib")))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -91,7 +94,7 @@ rich set of boolean query operators.")
                                   "/xapian-bindings-" version ".tar.xz"))
               (sha256
                (base32
-                "0cwx39764w24xd25w271had4w78lnw1dgz36yvlw1g3i19rqcy34"))))
+                "0364nalvh13c7wzx52mz4gaf8wg1rm17lw75cs8a813rv091ci38"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--with-python3")
@@ -101,14 +104,40 @@ rich set of boolean query operators.")
                             "/lib/python" ,(version-major+minor
                                             (package-version python))
                             "/site-packages/xapian"))))
+    (native-inputs
+     `(("python-sphinx" ,python-sphinx))) ;for documentation
     (inputs
      `(("python" ,python)
-       ("python-sphinx" ,python-sphinx) ; for documentation
        ("xapian" ,xapian)
        ("zlib" ,zlib)))
     (synopsis "Python bindings for the Xapian search engine library")
     (license gpl2+)))
 
+(define-public perl-search-xapian
+  (package
+    (name "perl-search-xapian")
+    (version "1.2.25.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/O/OL/OLLY/"
+                           "Search-Xapian-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0hpa8gi38j0ibq8af6dy69lm1bl5jnq76nsa69dbrzbr88l5m594"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-devel-leak" ,perl-devel-leak)))
+    (inputs
+     `(("xapian" ,xapian)))
+    (home-page "https://metacpan.org/release/Search-Xapian")
+    (synopsis "Perl XS frontend to the Xapian C++ search library")
+    (description
+     "Search::Xapian wraps most methods of most Xapian classes.  The missing
+classes and methods should be added in the future.  It also provides a
+simplified, more 'perlish' interface to some common operations.")
+    (license perl-license)))
+
 (define-public libtocc
   (package
     (name "libtocc")
@@ -126,24 +155,24 @@ rich set of boolean query operators.")
     (inputs `(("unqlite" ,unqlite)))
     (arguments
      `(#:phases (modify-phases %standard-phases
-                  (add-before
-                   'configure 'chdir-source
-                   (lambda _ (chdir "libtocc/src")))
-                  (replace
-                   'check
-                   (lambda _
-                     (with-directory-excursion "../tests"
-                       (and (zero? (system* "./configure"
-                                            (string-append "CONFIG_SHELL="
-                                                           (which "sh"))
-                                            (string-append "SHELL="
-                                                           (which "sh"))
-                                            "CPPFLAGS=-I../src"
-                                            (string-append
-                                             "LDFLAGS=-L../src/.libs "
-                                             "-Wl,-rpath=../src/.libs")))
-                            (zero? (system* "make"))
-                            (zero? (system* "./libtocctests")))))))))
+                  (add-before 'configure 'chdir-source
+                    (lambda _
+                      (chdir "libtocc/src")
+                      #t))
+                  (replace 'check
+                    (lambda _
+                      (with-directory-excursion "../tests"
+                        (invoke "./configure"
+                                (string-append "CONFIG_SHELL="
+                                               (which "sh"))
+                                (string-append "SHELL="
+                                               (which "sh"))
+                                "CPPFLAGS=-I../src"
+                                (string-append
+                                 "LDFLAGS=-L../src/.libs "
+                                 "-Wl,-rpath=../src/.libs"))
+                        (invoke "make")
+                        (invoke "./libtocctests")))))))
     (home-page "https://t-o-c-c.com/")
     (synopsis "Tool for Obsessive Compulsive Classifiers")
     (description
@@ -220,7 +249,7 @@ for parsing HTML files.")
      `(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath="
                                               (assoc-ref %outputs "out")
                                               "/lib"))))
-    (home-page "http://fallabs.com/hyperestraier")
+    (home-page "https://fallabs.com/hyperestraier")
     (synopsis "Full-text search system")
     (description "Hyper Estraier can be used to integrate full-text
 search into applications, using either the provided command line and CGI
@@ -242,7 +271,7 @@ interfaces, or a C API.")
     (home-page "https://pagure.io/mlocate")
     (synopsis "Locate files on the file system")
     (description
-     "mlocate is a locate/updatedb implementation.  The 'm' stands for
+     "mlocate is a locate/updatedb implementation.  The @code{m} stands for
 \"merging\": @code{updatedb} reuses the existing database to avoid rereading
 most of the file system, which makes it faster and does not trash the system
 caches as much.  The locate(1) utility is intended to be completely compatible