;;; 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" (("/bi# GNU Guix --- Functional package management for GNU # Copyright © 2022 Ludovic Courtès <ludo@gnu.org> # # 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 <http://www.gnu.org/licenses/>. # # Test 'guix style'. # set -e guix style --version tmpdir="guix-style-$$" trap 'rm -r "$tmpdir"' EXIT tmpfile="$tmpdir/os.scm" mkdir "$tmpdir" cat > "$tmpfile" <<EOF ;;; This is a header with three semicolons. ;;; (define-module (foo bar) #:use-module (guix) #:use-module (gnu)) ;; One blank line and a page break. ;; And now, the OS. (operating-system (host-name "komputilo") (locale "eo_EO.UTF-8") ;; User accounts. (users (cons (user-account (name "alice") (comment "Bob's sister") (group "users") ;; Groups fit on one line. (supplementary-groups '("wheel" "audio" "video"))) %base-user-accounts)) ;; The services. (services (cons (service mcron-service-type) %base-services))) ;; Incomplete package definitions in alphabetical order. (define-public pkg (package (name "bar") (version "2"))) ;; The comment below belongs to the foo package. (define-public pkg (package (name "bar") (version "1"))) ;; Incomplete package definitions in alphabetical order. (define-public pkg (package (name "foo") (version "2"))) EOF cp "$tmpfile" "$tmpfile.bak" initial_hash="$(guix hash "$tmpfile")" guix style -f "$tmpfile" if test "$initial_hash" != "$(guix hash "$tmpfile")" then cat "$tmpfile" diff -u "$tmpfile.bak" "$tmpfile" false fi # Introduce random changes and try again. sed -i "$tmpfile" -e's/ \+/ /g' test "$initial_hash" != "$(guix hash "$tmpfile")" guix style -f "$tmpfile" test "$initial_hash" = "$(guix hash "$tmpfile")" # Swap foo and bar packages. sed -i "$tmpfile" -e 's/"foo"/"bar"/g' sed -i "$tmpfile" -e '0,/"bar"/{s//"foo"/}' test "$initial_hash" != "$(guix hash "$tmpfile")" guix style -fA "$tmpfile" test "$initial_hash" = "$(guix hash "$tmpfile")" 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 \"hello AND world\" would return a file containing the phrase \"Hello, world!\". It supports both AND and OR statements, as well as the NEAR statement to search for the occurrence of words in close proximity to each other. It handles context gracefully, accounting for new lines and paragraph changes. It also has robust support for parsing HTML files.") (license gpl3+))) ;;; search.scm ends here