From d5c969ce0c3cb0de0e68551de3db62588fd2c534 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 19 Mar 2017 23:28:27 +0100 Subject: [PATCH] gnu: lsh: Use libc's argp instead of the bundled one. * gnu/packages/ssh.scm (lsh)[arguments] <#:configure-flags>: Add --with-system-argp and CPPFLAGS=-DHAVE_ARGP_PARSE. <#:phases>: In 'pre-configure' phase, modify src/Makefile.in. --- gnu/packages/ssh.scm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index eaa832269d..068e870f93 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -446,7 +446,14 @@ basis for almost any application.") '(;; Skip the `configure' test that checks whether /dev/ptmx & ;; co. work as expected, because it relies on impurities (for ;; instance, /dev/pts may be unavailable in chroots.) - #:configure-flags '("lsh_cv_sys_unix98_ptys=yes") + #:configure-flags '("lsh_cv_sys_unix98_ptys=yes" + + ;; Use glibc's argp rather than the bundled one. + "--with-system-argp" + + ;; 'lsh_argp.h' checks HAVE_ARGP_PARSE but nothing + ;; defines it. + "CPPFLAGS=-DHAVE_ARGP_PARSE") ;; FIXME: Tests won't run in a chroot, presumably because ;; /etc/profile is missing, and thus clients get an empty $PATH @@ -459,6 +466,12 @@ basis for almost any application.") (lambda* (#:key inputs #:allow-other-keys) (let* ((nettle (assoc-ref inputs "nettle")) (sexp-conv (string-append nettle "/bin/sexp-conv"))) + ;; Remove argp from the list of sub-directories; we don't want + ;; to build it, really. + (substitute* "src/Makefile.in" + (("^SUBDIRS = argp") + "SUBDIRS =")) + ;; Make sure 'lsh' and 'lshd' pick 'sexp-conv' in the right place ;; by default. (substitute* "src/environ.h.in"