summaryrefslogtreecommitdiff
path: root/gnu/packages/version-control.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/version-control.scm')
-rw-r--r--gnu/packages/version-control.scm57
1 files changed, 44 insertions, 13 deletions
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 4da8e33e04..b6ba524766 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -145,6 +145,10 @@ changes to project files over time. It supports both a distributed workflow
as well as the classic centralized workflow.")
(license license:gpl2+)))
+(define git-cross-configure-flags
+ '("ac_cv_fread_reads_directories=yes"
+ "ac_cv_snprintf_returns_bogus=no"))
+
(define-public git
(package
(name "git")
@@ -161,6 +165,10 @@ as well as the classic centralized workflow.")
(build-system gnu-build-system)
(native-inputs
`(("native-perl" ,perl)
+ ;; Add bash-minimal explicitly to ensure it comes before bash-for-tests,
+ ;; see <https://bugs.gnu.org/39513>.
+ ("bash" ,bash-minimal)
+ ("bash-for-tests" ,bash)
("gettext" ,gettext-minimal)
("git-manpages"
,(origin
@@ -183,10 +191,6 @@ as well as the classic centralized workflow.")
("python" ,python) ; for git-p4
("zlib" ,zlib)
- ;; Note: we keep this in inputs rather than native-inputs to work around
- ;; a problem in 'patch-shebangs'; see <https://bugs.gnu.org/31952>.
- ("bash-for-tests" ,bash)
-
;; For PCRE support in git grep (USE_LIBPCRE2).
("pcre" ,pcre2)
@@ -239,7 +243,10 @@ as well as the classic centralized workflow.")
;; absolute file name to 'wish'.
#:configure-flags (list (string-append "--with-tcltk="
(assoc-ref %build-inputs "tk")
- "/bin/wish8.6")) ; XXX
+ "/bin/wish8.6") ; XXX
+ ,@(if (%current-target-system)
+ git-cross-configure-flags
+ '()))
#:modules ((srfi srfi-1)
(srfi srfi-26)
@@ -256,6 +263,15 @@ as well as the classic centralized workflow.")
(remove (cut string-prefix? bash-full <>) path)
":"))
#t)))
+ ;; Add cross curl-config script to PATH when cross-compiling.
+ ,@(if (%current-target-system)
+ '((add-before 'configure 'add-cross-curl-config
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "PATH"
+ (string-append (assoc-ref inputs "curl") "/bin:"
+ (getenv "PATH")))
+ #t)))
+ '())
(add-after 'configure 'patch-makefiles
(lambda _
(substitute* "Makefile"
@@ -516,20 +532,24 @@ everything from small to very large projects with speed and efficiency.")
((#:make-flags flags)
`(delete "USE_LIBPCRE2=yes" ,flags))
((#:configure-flags flags)
- ''())
+ `(list
+ ,@(if (%current-target-system)
+ git-cross-configure-flags
+ '())))
((#:disallowed-references lst '())
`(,perl ,@lst))))
(outputs '("out"))
(native-inputs
- `(("native-perl" ,perl)
+ `(("bash" ,bash-minimal)
+ ("bash-for-tests" ,bash)
+ ("native-perl" ,perl)
("gettext" ,gettext-minimal)))
(inputs
`(("curl" ,curl) ;for HTTP(S) access
("expat" ,expat) ;for 'git push' over HTTP(S)
("openssl" ,openssl)
("perl" ,perl)
- ("zlib" ,zlib)
- ("bash-for-tests" ,bash)))))
+ ("zlib" ,zlib)))))
(define-public gitless
(package
@@ -631,8 +651,15 @@ on @command{git}, and use any regular Git hosting service.")
(build-system cmake-build-system)
(outputs '("out" "debug"))
(arguments
- `(#:configure-flags '("-DUSE_NTLMCLIENT=OFF" ;TODO: package this
- "-DREGEX_BACKEND=pcre2")
+ `(#:configure-flags
+ (list "-DUSE_NTLMCLIENT=OFF" ;TODO: package this
+ "-DREGEX_BACKEND=pcre2"
+ ,@(if (%current-target-system)
+ `((string-append
+ "-DPKG_CONFIG_EXECUTABLE="
+ (assoc-ref %build-inputs "pkg-config")
+ "/bin/" ,(%current-target-system) "-pkg-config"))
+ '()))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-pcre2-reference
@@ -655,9 +682,13 @@ on @command{git}, and use any regular Git hosting service.")
(lambda _
(for-each make-file-writable (find-files "."))
#t))
- ;; Run checks more verbosely.
+ ;; Run checks more verbosely, unless we are cross-compiling.
(replace 'check
- (lambda _ (invoke "./libgit2_clar" "-v" "-Q"))))))
+ (lambda* (#:key (tests? #t) #:allow-other-keys)
+ (if tests?
+ (invoke "./libgit2_clar" "-v" "-Q")
+ ;; Tests may be disabled if cross-compiling.
+ (format #t "Test suite not run.~%")))))))
(inputs
`(("libssh2" ,libssh2)))
(native-inputs