diff options
author | Nicolas Graves <ngraves@ngraves.fr> | 2025-06-22 18:59:21 +0200 |
---|---|---|
committer | Sharlatan Hellseher <sharlatanus@gmail.com> | 2025-07-06 01:26:43 +0100 |
commit | 82553b3cca47f5289a345f7f6776c2294f2f0ba7 (patch) | |
tree | e13369efb2008a7d4169a6fadbddcac7575ab2da | |
parent | a59bfcfc901d4bc0c485155a6967b6d6a638e3ad (diff) |
gnu: recoll: Update to 1.43.2.
* gnu/packages/search.scm (recoll): Update to 1.43.2.
[build-system]: Switch to meson-build-system.
[arguments]{configured-flags}: Switch to meson-build-system.
{phases}: Replace phase 'set-LDFLAGS by 'patchelf (LDFLAGS doesn't
seem to have any influence in this setup, only patchelf seems to fix
the rpath) ; refresh phase 'wrap-filters in a more modern and
readable style.
{imported-modules, modules}: Add required ones.
[native-inputs]: Add patchelf, remove which.
-rw-r--r-- | gnu/packages/search.scm | 93 |
1 files changed, 49 insertions, 44 deletions
diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm index aab4d90fc2..c0e3654fd8 100644 --- a/gnu/packages/search.scm +++ b/gnu/packages/search.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2023 David Pflug <david@pflug.io> ;;; Copyright © 2024, 2025 Ashish SHUKLA <ashish.is@lostca.se> ;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus@gmail.com> +;;; Copyright © 2025 Nicolas Graves <ngraves@ngraves.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -53,6 +54,7 @@ #:use-module (gnu packages check) #:use-module (gnu packages databases) #:use-module (gnu packages ebook) + #:use-module (gnu packages elf) #:use-module (gnu packages freedesktop) #:use-module (gnu packages file) #:use-module (gnu packages gawk) @@ -384,67 +386,70 @@ Search Engine. It is written in C and based on GTK3.") (define-public recoll (package (name "recoll") - (version "1.37.5") + (version "1.43.2") (source (origin (method url-fetch) (uri (string-append "https://www.recoll.org/recoll-" version ".tar.gz")) (sha256 - (base32 "0m9ibpa27xrngk31kxhgqv878knw2xpigckx8pqvfzmfvqr81zdy")))) - (build-system gnu-build-system) + (base32 "0c9p4vphysf7mfn7c6260a1fdlra0pp037s3i9f4p3m6gf9dgc0m")))) + (build-system meson-build-system) (arguments (list + #:imported-modules + `((guix build gremlin) + ,@%meson-build-system-modules) + #:modules + '((guix build meson-build-system) + (guix build utils) + (guix build gremlin) + (ice-9 match)) #:configure-flags - #~(list "--disable-webkit" - "--disable-python-module" - "--without-systemd" - "--with-inotify" - "--enable-recollq" - (string-append "QMAKEPATH=" #$(this-package-input "qtbase") - "/bin/qmake")) + #~(list "-Dwebkit=false" + "-Dpython-module=false" + "-Dsystemd=false" + "-Dinotify=false" + "-Drecollq=true") #:phases #~(modify-phases %standard-phases - (add-before 'configure 'set-LDFLAGS + ;; XXX: Missing runpath item. + (add-before 'shrink-runpath 'patchelf (lambda _ - (setenv "LDFLAGS" (string-append "-Wl,-rpath=" #$output "/lib")))) + (let ((binary (string-append #$output "/bin/recoll"))) + (invoke "patchelf" "--set-rpath" + (string-join (cons* (string-append #$output "/lib") + (file-runpath binary)) + ":") + binary)))) (add-after 'unpack 'patch-default-data-dir (lambda _ (substitute* "python/recoll/recoll/rclconfig.py" (("/opt/local") #$output)))) (add-after 'install 'wrap-filters (lambda* (#:key inputs #:allow-other-keys) - (let ((mapping - '(("rclps" - "poppler") - ("rclpdf.py" - "poppler") - ("rclpurple" - "gawk") - ("rcllyx" - "libiconv") - ("rcltex" - "libiconv") - ("rclkwd" - "unzip" "gzip" "tar" "libxslt") - ("rclman" - "groff") - ("rclgaim" - "gawk" "libiconv") - ("rclaptosidman" - "sed") - ("rclscribus" - "grep" "gawk" "sed")))) + (let ((target (string-append #$output "/share/recoll/filters/"))) (for-each - (lambda (program packages) - (wrap-program (string-append #$output "/share/recoll/filters/" program) - `("PATH" ":" prefix - ,(map (lambda (i) - (string-append (assoc-ref inputs i) "/bin")) - packages)))) - (map car mapping) - (map cdr mapping)) - - (wrap-program (string-append #$output "/share/recoll/filters/rclimg") + (match-lambda + ((program . binaries) + (wrap-program (string-append target program) + `("PATH" ":" prefix + ,(map (lambda (bin) + (dirname + (search-input-file + inputs + (string-append "/bin/" bin)))) + binaries))))) + '(("rclps" . ("pdftotext")) + ("rclpdf.py" . ("pdftotext")) + ("rclpurple" . ("gawk")) + ("rcllyx" . ("iconv")) + ("rcltex" . ("iconv")) + ("rclkwd" . ("unzip" "gzip" "tar" "xsltproc")) + ("rclman" . ("groff")) + ("rclgaim" . ("gawk" "iconv")) + ("rclaptosidman" . ("sed")) + ("rclscribus" . ("grep" "gawk" "sed")))) + (wrap-program (string-append target "rclimg") `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB")))))))))) (inputs @@ -470,7 +475,7 @@ Search Engine. It is written in C and based on GTK3.") sed tar)) (native-inputs - (list pkg-config qttools-5 which)) + (list patchelf pkg-config qttools-5)) (home-page "https://www.recoll.org") (synopsis "Find documents based on their contents or file names") (description "Recoll finds documents based on their contents as well as |