From 432a6ece6bed569bf8abca51dccbb5476c069f88 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 16 Sep 2024 10:12:29 +0200 Subject: gnu: sudo: Use gexps and remove input labels. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/admin.scm (sudo)[arguments]: Use gexps; use ‘search-input-file’ rather than ‘assoc-ref’. [inputs]: Remove labels. Change-Id: I0ea13751c5e34d1ad14035e8c2b8e7e4a7d5f8e1 --- gnu/packages/admin.scm | 135 +++++++++++++++++++++++++------------------------ 1 file changed, 68 insertions(+), 67 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index f842abea78..832834707f 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -2059,77 +2059,78 @@ (define-public sudo (build-system gnu-build-system) (outputs (list "out")) (arguments - `(#:configure-flags - (list (string-append "--docdir=" (assoc-ref %outputs "out") - "/share/doc/" ,name "-" ,version) - - "--with-logpath=/var/log/sudo.log" - "--with-rundir=/var/run/sudo" ; must be cleaned up at boot time - "--with-vardir=/var/db/sudo" - "--with-iologdir=/var/log/sudo-io" - - ;; 'visudo.c' expects _PATH_MV to be defined, but glibc doesn't - ;; provide it. - (string-append "CPPFLAGS=-D_PATH_MV=\\\"" - (assoc-ref %build-inputs "coreutils") - "/bin/mv\\\"") - - ;; When cross-compiling, assume we have a working 'snprintf' and - ;; 'vsnprintf' (which we do, when using glibc). The default - ;; choice fails with undefined references to 'sudo_snprintf' & - ;; co. when linking. - ,@(if (%current-target-system) - '("ac_cv_have_working_snprintf=yes" - "ac_cv_have_working_vsnprintf=yes") - '())) + (list #:configure-flags + #~(list (string-append "--docdir=" #$output + "/share/doc/" #$name "-" #$version) + + "--with-logpath=/var/log/sudo.log" + "--with-rundir=/var/run/sudo" ; must be cleaned up at boot time + "--with-vardir=/var/db/sudo" + "--with-iologdir=/var/log/sudo-io" + + ;; 'visudo.c' expects _PATH_MV to be defined, but glibc doesn't + ;; provide it. + (string-append "CPPFLAGS=-D_PATH_MV=\\\"" + (search-input-file %build-inputs "/bin/mv") + "\\\"") + + ;; When cross-compiling, assume we have a working 'snprintf' and + ;; 'vsnprintf' (which we do, when using glibc). The default + ;; choice fails with undefined references to 'sudo_snprintf' & + ;; co. when linking. + #$@(if (%current-target-system) + '("ac_cv_have_working_snprintf=yes" + "ac_cv_have_working_vsnprintf=yes") + '())) + + ;; Avoid non-determinism; see . + #:parallel-build? #f - ;; Avoid non-determinism; see . - #:parallel-build? #f - - #:phases - (modify-phases %standard-phases - (add-before 'configure 'pre-configure - (lambda _ - (substitute* "src/sudo_usage.h.in" - ;; Do not capture 'configure' arguments since we would - ;; unduly retain references, and also because the - ;; CPPFLAGS above would close the string literal - ;; prematurely. - (("@CONFIGURE_ARGS@") "\"\"")) - (substitute* (find-files "." "Makefile\\.in") - ;; Allow installation as non-root. - (("-o [[:graph:]]+ -g [[:graph:]]+") - "") - ;; Don't try to create /etc/sudoers. - (("^install: (.*)install-sudoers(.*)" _ before after) - (string-append "install: " before after "\n")) - ;; Don't try to create /run/sudo. - (("\\$\\(DESTDIR\\)\\$\\(rundir\\)") - "$(TMPDIR)/dummy") - ;; Install example sudo{,_logsrvd}.conf to the right place. - (("\\$\\(DESTDIR\\)\\$\\(sysconfdir\\)") - "$(DESTDIR)/$(docdir)/examples") - ;; Don't try to create /var/db/sudo. - (("\\$\\(DESTDIR\\)\\$\\(vardir\\)") - "$(TMPDIR)/dummy")) - - ;; ‘Checking existing [/etc/]sudoers file for syntax errors’ is - ;; not the task of the build system, and fails. - (substitute* "plugins/sudoers/Makefile.in" - (("^pre-install:" match) - (string-append match "\ndisabled-" match)))))) - - ;; XXX: The 'testsudoers' test series expects user 'root' to exist, but - ;; the chroot's /etc/passwd doesn't have it. Turn off the tests. - #:tests? #f)) + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'pre-configure + (lambda _ + (substitute* "src/sudo_usage.h.in" + ;; Do not capture 'configure' arguments since we would + ;; unduly retain references, and also because the + ;; CPPFLAGS above would close the string literal + ;; prematurely. + (("@CONFIGURE_ARGS@") + "\"\"")) + (substitute* (find-files "." "Makefile\\.in") + ;; Allow installation as non-root. + (("-o [[:graph:]]+ -g [[:graph:]]+") + "") + ;; Don't try to create /etc/sudoers. + (("^install: (.*)install-sudoers(.*)" _ before + after) + (string-append "install: " before after "\n")) + ;; Don't try to create /run/sudo. + (("\\$\\(DESTDIR\\)\\$\\(rundir\\)") + "$(TMPDIR)/dummy") + ;; Install example sudo{,_logsrvd}.conf to the right place. + (("\\$\\(DESTDIR\\)\\$\\(sysconfdir\\)") + "$(DESTDIR)/$(docdir)/examples") + ;; Don't try to create /var/db/sudo. + (("\\$\\(DESTDIR\\)\\$\\(vardir\\)") + "$(TMPDIR)/dummy")) + + ;; ‘Checking existing [/etc/]sudoers file for syntax errors’ is + ;; not the task of the build system, and fails. + (substitute* "plugins/sudoers/Makefile.in" + (("^pre-install:" match) + (string-append match "\ndisabled-" match)))))) + + ;; XXX: The 'testsudoers' test series expects user 'root' to exist, but + ;; the chroot's /etc/passwd doesn't have it. Turn off the tests. + #:tests? #f)) (native-inputs (list groff)) (inputs - `(("coreutils" ,coreutils) - ,@(if (target-hurd?) - '() - `(("linux-pam" ,linux-pam))) - ("zlib" ,zlib))) + (append (list coreutils zlib) + (if (target-hurd?) + '() + (list linux-pam)))) (home-page "https://www.sudo.ws/") (synopsis "Run commands as root") (description -- cgit v1.2.3