From 2411277306c1572addd2d43be539e7164c6bb753 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 23 Jun 2018 15:04:29 +0200 Subject: gnu: git: Update to 2.18.0. * gnu/packages/version-control.scm (git): Update to 2.18.0. [inputs]: Add BASH. [arguments]: In #:make-flags, define SHELL_PATH and TEST_SHELL_PATH. Add #:disallowed-references. Drop /bin/sh substitution from Makefile. Add phase to prevent the new BASH from ending up in PATH. --- gnu/packages/version-control.scm | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 3980db756a..7971892082 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -53,6 +53,7 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages documentation) #:use-module (gnu packages base) + #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages boost) #:use-module (gnu packages check) @@ -144,14 +145,14 @@ as well as the classic centralized workflow.") (name "git") ;; XXX When updating Git, check if the special 'git:src' input to cgit needs ;; to be updated as well. - (version "2.17.1") + (version "2.18.0") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "0pm6bdnrrm165k3krnazxcxadifk2gqi30awlbcf9fism1x6w4vr")))) + "14hfwfkrci829a9316hnvkglnqqw1p03cw9k56p4fcb078wbwh4b")))) (build-system gnu-build-system) (native-inputs `(("native-perl" ,perl) @@ -164,7 +165,7 @@ as well as the classic centralized workflow.") version ".tar.xz")) (sha256 (base32 - "0m7grrwsqaihdgcgaicxiy4rlqjpa75n5wl6hi2qhi33xa34gmc3")))))) + "15k04s9pcc5wkmlfa8x99nbgczjbx0c91767ciqmjy9kwsavxqws")))))) (inputs `(("curl" ,curl) ("expat" ,expat) @@ -173,6 +174,10 @@ as well as the classic centralized workflow.") ("python" ,python-2) ; CAVEAT: incompatible with python-3 according to INSTALL ("zlib" ,zlib) + ;; Note: we keep this in inputs rather than native-inputs to work around + ;; a problem in 'patch-shebangs'; see . + ("bash-for-tests" ,bash) + ;; For 'gitweb.cgi' ("perl-cgi" ,perl-cgi) @@ -196,10 +201,23 @@ as well as the classic centralized workflow.") (arguments `(#:make-flags `("V=1" ;more verbose compilation + ,(string-append "SHELL_PATH=" + (assoc-ref %build-inputs "bash") + "/bin/sh") + + ;; Tests require a bash with completion support. + ,(string-append "TEST_SHELL_PATH=" + (assoc-ref %build-inputs "bash-for-tests") + "/bin/bash") + ;; By default 'make install' creates hard links for ;; things in 'libexec/git-core', which leads to huge ;; nars; see . "NO_INSTALL_HARDLINKS=indeed") + + ;; Make sure the full bash does not end up in the final closure. + #:disallowed-references (,bash) + #:test-target "test" ;; Tests fail randomly when parallel: . @@ -212,13 +230,23 @@ as well as the classic centralized workflow.") "/bin/wish8.6")) ; XXX #:modules ((srfi srfi-1) + (srfi srfi-26) ,@%gnu-build-system-modules) #:phases (modify-phases %standard-phases + (add-after 'unpack 'modify-PATH + (lambda* (#:key inputs #:allow-other-keys) + (let ((path (string-split (getenv "PATH") #\:)) + (bash-full (assoc-ref inputs "bash-for-tests"))) + ;; Drop the test bash from PATH so that (which "sh") and + ;; similar does the right thing. + (setenv "PATH" (string-join + (remove (cut string-prefix? bash-full <>) path) + ":")) + #t))) (add-after 'configure 'patch-makefiles (lambda _ (substitute* "Makefile" - (("/bin/sh") (which "sh")) (("/usr/bin/perl") (which "perl")) (("/usr/bin/python") (which "python"))) #t)) -- cgit 1.4.1