;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
+;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Adam Massmann <massmannak@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
#:select (gpl2 gpl2+ gpl3+ lgpl2.1+ bsd-3 x11))
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix utils)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system python)
#:use-module (gnu packages)
#:use-module (gnu packages compression)
#:use-module (gnu packages check)
#:use-module (gnu packages databases)
+ #:use-module (gnu packages freedesktop)
#:use-module (gnu packages linux)
#:use-module (gnu packages perl)
+ #: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 web)
+ #:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml))
(define-public xapian
(package
(name "xapian")
- (version "1.4.4")
+ (version "1.4.11")
+ ;; 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 "1n9j2w2as0flih3hgim7gprfxsx6gimijs91rxsjsi8shjlqbad6"))))
+ (base32 "01xwqljnp5afjf9097lyfbqc6x5bcqszfdkn9l1j86imwbrv45lz"))))
(build-system gnu-build-system)
(inputs `(("zlib" ,zlib)
("util-linux" ,util-linux)))
;; getaddrinfo(). This does not work in the build environment,
;; so exclude those tests. See HACKING for the list of targets.
(lambda _
- (zero? (system* "make"
- "check-inmemory"
- "check-remoteprog"
- ;"check-remotetcp"
- "check-multi"
- "check-glass"
- "check-chert")))))))
+ (invoke "make"
+ "check-inmemory"
+ "check-remoteprog"
+ ;"check-remotetcp"
+ "check-multi"
+ "check-glass"
+ "check-chert"))))))
(synopsis "Search Engine Library")
(description
"Xapian is a highly adaptable toolkit which allows developers to easily
(home-page "https://xapian.org/")
(license (list gpl2+ bsd-3 x11))))
+(define-public python-xapian-bindings
+ (package (inherit xapian)
+ (name "python-xapian-bindings")
+ (version (package-version xapian))
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://oligarchy.co.uk/xapian/" version
+ "/xapian-bindings-" version ".tar.xz"))
+ (sha256
+ (base32
+ "13bi2vr5d39ys49nlwmsv64ik5pdwkz28bh08hyylrhanb45d8wx"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags '("--with-python3")
+ #:make-flags
+ (list (string-append "pkgpylibdir="
+ (assoc-ref %outputs "out")
+ "/lib/python" ,(version-major+minor
+ (package-version python))
+ "/site-packages/xapian"))))
+ (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 libtocc
(package
(name "libtocc")
(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")))))))))
- (home-page "http://t-o-c-c.com/")
+ (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
"libtocc is the engine of the Tocc project, a tag-based file management
(add-after
'unpack 'chdir-source
(lambda _ (chdir "cli/src"))))))
- (home-page "http://t-o-c-c.com/")
+ (home-page "https://t-o-c-c.com/")
(synopsis "Command-line interface to libtocc")
(description
"Tocc is a tag-based file management system. This package contains the
;; building: xpdf, catdoc, MP3::Tag, Spreadsheet::ParseExcel,
;; HTML::Entities.
(inputs
- `(("libxml" ,libxml2)
- ("zlib" ,zlib)
- ("perl" ,perl)
+ `(("perl" ,perl)
("perl-uri" ,perl-uri)
("perl-html-parser" ,perl-html-parser)
("perl-html-tagset" ,perl-html-tagset)
("perl-mime-types" ,perl-mime-types)))
(arguments
- `(#:phases (modify-phases %standard-phases
+ `(;; XXX: This fails to build with zlib (API mismatch) and tests fail
+ ;; with libxml2, so disable both.
+ #:configure-flags (list (string-append "--without-zlib")
+ (string-append "--without-libxml2"))
+ #:phases (modify-phases %standard-phases
(add-after 'install 'wrap-programs
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")))
search the generated indexes.")
(license gpl2+))) ;with exception
+(define-public xapers
+ (package
+ (name "xapers")
+ (version "0.8.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://finestructure.net/xapers/releases/xapers-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0ykz6hn3qj46w3c99d6q0pi5ncq2894simcl7vapv047zm3cylmd"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("poppler" ,poppler)
+ ("python-urwid" ,python-urwid)
+ ("xclip" ,xclip)
+ ("xdg-utils" ,xdg-utils)))
+ (inputs
+ `(("python-latexcodec" ,python-latexcodec)
+ ("python-pybtex" ,python-pybtex)
+ ("python-pycurl" ,python-pycurl)
+ ("python-pyyaml" ,python-pyyaml)
+ ("python-six" ,python-six)
+ ("python-xapian-bindings" ,python-xapian-bindings)))
+ (arguments
+ `(#:modules ((ice-9 rdelim)
+ (guix build python-build-system)
+ (guix build utils))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-doc
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (define (purge-term-support input output)
+ (let loop ((line (read-line input)))
+ (if (string-prefix? "if [[ \"$term\"" line)
+ (begin (display "eval \"$cmd\"\n" output)
+ #t)
+ (begin (display (string-append line "\n") output)
+ (loop (read-line input))))))
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (adder-out (string-append bin "/xapers-adder"))
+ (man1 (string-append out "/share/man/man1")))
+ (install-file "man/man1/xapers.1" man1)
+ (install-file "man/man1/xapers-adder.1" man1)
+ ;; below is equivalent to setting --no-term option
+ ;; permanently on; this is desirable to avoid imposing
+ ;; an x-terminal installation on the user but breaks
+ ;; some potential xapers-adder uses like auto browser
+ ;; pdf handler, but user could instead still use
+ ;; e.g. "xterm -e xapers-adder %F" for same use.
+ ;; alternatively we could propagate xterm as an input
+ ;; and replace 'x-terminal-emulator' with 'xterm'
+ (call-with-input-file "bin/xapers-adder"
+ (lambda (input)
+ (call-with-output-file adder-out
+ (lambda (output)
+ (purge-term-support input output)))))
+ (chmod adder-out #o555)))))))
+ (home-page "https://finestructure.net/xapers/")
+ (synopsis "Personal document indexing system")
+ (description
+ "Xapers is a personal document indexing system,
+geared towards academic journal articles build on the Xapian search engine.
+Think of it as your own personal document search engine, or a local cache of
+online libraries. It provides fast search of document text and
+bibliographic data and simple document and bibtex retrieval.")
+ (license gpl3+)))
+
;;; search.scm ends here