;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Mark H Weaver ;;; Copyright © 2015 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu packages search) #:use-module ((guix licenses) #:select (gpl2+ gpl3+ bsd-3 x11)) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (gnu packages compression) #:use-module (gnu packages check) #:use-module (gnu packages databases) #:use-module (gnu packages linux) #:export (xapian)) (define-public xapian (package (name "xapian") (version "1.2.21") (source (origin (method url-fetch) (uri (string-append "http://oligarchy.co.uk/xapian/" version "/xapian-core-" version ".tar.xz")) (sha256 (base32 "0grd2s6gf8yzqwdaa50g57j9d81mxkrrpkyldm2shgyizdc8gx33")))) (build-system gnu-build-system) (inputs `(("zlib" ,zlib) ("util-linux" ,util-linux))) (arguments `(#:phases (alist-cons-after 'unpack 'patch-remotetcp-harness (lambda _ (substitute* "tests/harness/backendmanager_remotetcp.cc" (("/bin/sh") (which "bash")))) %standard-phases))) (synopsis "Search Engine Library") (description "Xapian is a highly adaptable toolkit which allows developers to easily add advanced indexing and search facilities to their own applications. It supports the Probabilistic Information Retrieval model and also supports a rich set of boolean query operators.") (home-page "http://xapian.org/") (license (list gpl2+ bsd-3 x11)))) (define-public libtocc (package (name "libtocc") (version "1.0.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/aidin36/tocc/releases/download/" "v" version "/tocc-" version ".tar.gz")) (sha256 (base32 "1kd2jd74m8ksc8s7hh0haz0q0c3n0mr39bbky262kk4l58f1g068")))) (build-system gnu-build-system) (native-inputs `(("catch" ,catch-framework))) (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/") (synopsis "Tool for Obsessive Compulsive Classifiers") (description "libtocc is the engine of the Tocc project, a tag-based file management system. The goal of Tocc is to provide a better system for classifying files that is more flexible than classic file systems that are based on a tree of files and directories.") (license gpl3+))) (define-public tocc (package (name "tocc") (version (package-version libtocc)) (source (package-source libtocc)) (build-system gnu-build-system) (inputs `(("libtocc" ,libtocc) ("unqlite" ,unqlite))) (arguments `(#:tests? #f ;No tests #:phases (modify-phases %standard-phases (add-after 'unpack 'chdir-source (lambda _ (chdir "cli/src")))))) (home-page "http://t-o-c-c.com/") (synopsis "Command-line interface to libtocc") (description "Tocc is a tag-based file management system. This package contains the command line tool for interacting with libtocc.") (license gpl3+))) (define-public bool (package (name "bool") (version "0.2.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/bool/bool-" version ".tar.xz")) (sha256 (base32 "1frdmgrmb509fxbdpsxxw3lvvwv7xm1pavqrqgm4jg698iix6xfw")))) (build-system gnu-build-system) (home-page "https://www.gnu.org/software/bool") (synopsis "Finding text and HTML files that match boolean expressions") (description "GNU Bool is a utility to perform text searches on files using Boolean expressions. For example, a search for \"h2023-08-20services: Define 'for-home'....Ludovic Courtès ing for new lines and paragraph changes. It also has robust support for parsing HTML files.") (license gpl3+))) ;;; search.scm ends here