From bb2c7e2e13ac30b81bcbe12a792cb5f0a3a26c07 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 8 Jan 2022 02:29:50 +0100 Subject: gnu: man-db: Use G-expressions. * gnu/packages/man.scm (man-db)[arguments]: Rewrite as G-expressions. --- gnu/packages/man.scm | 128 ++++++++++++++++++++++++++------------------------- 1 file changed, 65 insertions(+), 63 deletions(-) diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index 53ffc4ac62..d9e8b07471 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2015, 2016 Ricardo Wurmus ;;; Copyright © 2015 Alex Kost ;;; Copyright © 2015, 2016, 2020 Efraim Flashner -;;; Copyright © 2017–2021 Tobias Geerinckx-Rice +;;; Copyright © 2017–2022 Tobias Geerinckx-Rice ;;; Copyright © 2018, 2019 Rutger Helling ;;; Copyright © 2018, 2019 Marius Bakke ;;; Copyright © 2020 Vincent Legoll @@ -27,6 +27,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages man) + #:use-module (guix gexp) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix git-download) #:use-module (guix download) @@ -134,70 +135,71 @@ (define-public man-db "0mk7n7yn6scy785jhg1j14b3q9l0cgvpry49r0ldjsnizbnrjv5n")))) (build-system gnu-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'patch-source-shebangs 'patch-test-shebangs - (lambda* (#:key outputs #:allow-other-keys) - ;; Patch shebangs in test scripts. - (let ((out (assoc-ref outputs "out"))) - (for-each (lambda (file) - (substitute* file - (("#! /bin/sh") - (string-append "#!" (which "sh"))))) - (remove file-is-directory? - (find-files "src/tests" ".*"))) - #t))) - (add-after 'unpack 'patch-absolute-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "src/man.c" - (("\"iconv\"") - (string-append "\"" (which "iconv") "\""))) - ;; Embed an absolute reference to "preconv", otherwise it - ;; falls back to searching in PATH and ultimately fails - ;; to render unicode data (see ). - (substitute* "lib/encodings.c" - (("groff_preconv = NULL") - (string-append "groff_preconv = \"" - (assoc-ref inputs "groff-minimal") - "/bin/preconv\""))) - #t))) - #:configure-flags - (let ((groff (assoc-ref %build-inputs "groff")) - (groff-minimal (assoc-ref %build-inputs "groff-minimal")) - (less (assoc-ref %build-inputs "less")) - (gzip (assoc-ref %build-inputs "gzip")) - (bzip2 (assoc-ref %build-inputs "bzip2")) - (xz (assoc-ref %build-inputs "xz")) - (util (assoc-ref %build-inputs "util-linux"))) - ;; Invoke groff, less, gzip, bzip2, and xz directly from the store. - (append (list ;; Disable setuid man user. - "--disable-setuid" - ;; Don't constrain ownership of system-wide cache files. - ;; Otherwise creating the manpage database fails with - ;; man-db > 2.7.5. - "--disable-cache-owner" - (string-append "--with-pager=" less "/bin/less") - (string-append "--with-gzip=" gzip "/bin/gzip") - (string-append "--with-bzip2=" bzip2 "/bin/gzip") - (string-append "--with-xz=" xz "/bin/xz") - (string-append "--with-col=" util "/bin/col") - ;; The default systemd directories ignore --prefix. - (string-append "--with-systemdsystemunitdir=" - %output "/lib/systemd/system") - (string-append "--with-systemdtmpfilesdir=" - %output "/lib/tmpfiles.d")) - (map (lambda (prog) - (string-append "--with-" prog "=" groff-minimal - "/bin/" prog)) - '("nroff" "eqn" "neqn" "tbl" "refer" "pic")))) + (list #:phases + #~(modify-phases %standard-phases + (add-after 'patch-source-shebangs 'patch-test-shebangs + (lambda* (#:key outputs #:allow-other-keys) + ;; Patch shebangs in test scripts. + (let ((out (assoc-ref outputs "out"))) + (for-each (lambda (file) + (substitute* file + (("#! /bin/sh") + (string-append "#!" (which "sh"))))) + (remove file-is-directory? + (find-files "src/tests" ".*"))) + #t))) + (add-after 'unpack 'patch-absolute-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/man.c" + (("\"iconv\"") + (string-append "\"" (which "iconv") "\""))) + ;; Embed an absolute reference to "preconv", otherwise it + ;; falls back to searching in PATH and ultimately fails + ;; to render unicode data (see ). + (substitute* "lib/encodings.c" + (("groff_preconv = NULL") + (string-append "groff_preconv = \"" + (assoc-ref inputs "groff-minimal") + "/bin/preconv\""))) + #t))) + #:configure-flags + #~(let ((groff (assoc-ref %build-inputs "groff")) + (groff-minimal (assoc-ref %build-inputs "groff-minimal")) + (less (assoc-ref %build-inputs "less")) + (gzip (assoc-ref %build-inputs "gzip")) + (bzip2 (assoc-ref %build-inputs "bzip2")) + (xz (assoc-ref %build-inputs "xz")) + (util (assoc-ref %build-inputs "util-linux"))) + ;; Invoke groff, less, gzip, bzip2, & xz directly from the store. + (append (list ;; Disable setuid man user. + "--disable-setuid" + ;; Don't constrain ownership of system-wide cache files. + ;; Otherwise creating the manpage database fails with + ;; man-db > 2.7.5. + "--disable-cache-owner" + (string-append "--with-pager=" less "/bin/less") + (string-append "--with-gzip=" gzip "/bin/gzip") + (string-append "--with-bzip2=" bzip2 "/bin/gzip") + (string-append "--with-xz=" xz "/bin/xz") + (string-append "--with-col=" util "/bin/col") + ;; The default systemd directories ignore --prefix. + (string-append "--with-systemdsystemunitdir=" + %output "/lib/systemd/system") + (string-append "--with-systemdtmpfilesdir=" + %output "/lib/tmpfiles.d")) + (map (lambda (prog) + (string-append "--with-" prog "=" groff-minimal + "/bin/" prog)) + '("nroff" "eqn" "neqn" "tbl" "refer" "pic")))) - ;; At run time we should refer to GROFF-MINIMAL, not GROFF (the latter - ;; pulls in Perl.) - #:disallowed-references (,groff) + ;; At run time we should refer to GROFF-MINIMAL, not GROFF (the latter + ;; pulls in Perl.) + #:disallowed-references + (list groff) - #:modules ((guix build gnu-build-system) - (guix build utils) - (srfi srfi-1)))) + #:modules '((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1)))) (native-inputs (list pkg-config flex groff)) ;needed at build time (troff, grops, soelim, etc.) (inputs -- cgit v1.2.3