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.scm131
1 files changed, 66 insertions, 65 deletions
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 10487c6939..a44c553c71 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
@@ -40,6 +40,7 @@
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2021 François J. <francois-oss@avalenn.eu>
;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 jgart <jgart@dismail.de>
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;;
@@ -657,6 +658,18 @@ everything from small to very large projects with speed and efficiency.")
("perl" ,perl)
("zlib" ,zlib)))))
+(define-public git-minimal/fixed
+ ;; Version that rarely changes, depended on by Graphene/GTK+.
+ (package/inherit git-minimal
+ (version "2.33.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kernel.org/software/scm/git/git-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "0bqz401dyp8wnjj3k5ahrniwk4dalndysqazzwdvv25hqbkacm70"))))))
+
(define-public git2cl
(let ((commit "1d74d4c0d933fc69ed5cec838c73502584dead05"))
(package
@@ -722,12 +735,12 @@ logs to GNU ChangeLog format.")
(git (assoc-ref inputs "git")))
(wrap-program (string-append out "/bin/gl")
`("PATH" ":" prefix (,(string-append git "/bin")))
- `("PYTHONPATH" ":" =
+ `("GUIX_PYTHONPATH" ":" =
(,(string-append out "/lib/python"
,(version-major+minor
(package-version python))
"/site-packages:")
- ,(getenv "PYTHONPATH"))))
+ ,(getenv "GUIX_PYTHONPATH"))))
#t))))))
(native-inputs
`(("git-for-tests" ,git-minimal)))
@@ -774,19 +787,20 @@ to GitHub contributions calendar.")
(define-public libgit2
(package
(name "libgit2")
- (version "1.1.0")
+ (version "1.3.0")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/libgit2/libgit2/"
- "releases/download/v" version
- "/libgit2-" version ".tar.gz"))
+ ;; Since v1.1.1, release artifacts are no longer offered (see:
+ ;; https://github.com/libgit2/libgit2/discussions/5932#discussioncomment-1682729).
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/libgit2/libgit2")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1fjdglkh04qv3b4alg621pxa689i0wlf8m7nf2755zawjr2zhwxd"))
- (patches (search-patches "libgit2-mtime-0.patch"))
- (snippet '(begin
- (delete-file-recursively "deps") #t))
- (modules '((guix build utils)))))
+ "0vgpb2175a5dhqiy1iwywwppahgqhi340i8bsvafjpvkw284vazd"))
+ (modules '((guix build utils)))
+ (snippet '(delete-file-recursively "deps"))))
(build-system cmake-build-system)
(outputs '("out" "debug"))
(arguments
@@ -808,8 +822,7 @@ to GitHub contributions calendar.")
(("#!/bin/sh") (string-append "#!" (which "sh"))))
(substitute* "tests/clar/fs.h"
(("/bin/cp") (which "cp"))
- (("/bin/rm") (which "rm")))
- #t))
+ (("/bin/rm") (which "rm")))))
;; Run checks more verbosely, unless we are cross-compiling.
(replace 'check
(lambda* (#:key (tests? #t) #:allow-other-keys)
@@ -837,23 +850,23 @@ write native speed custom Git applications in any language with bindings.")
;; GPLv2 with linking exception
(license license:gpl2)))
-(define-public libgit2-0.28
+(define-public libgit2-1.1
(package
(inherit libgit2)
- (version "0.28.5")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "https://github.com/libgit2/libgit2/releases/"
- "download/v" version
- "/libgit2-" version ".tar.gz"))
- (sha256
- (base32
- "0hjgpqjjmkciw1i8jqkx9q2vhdc4fc99qajhrj2bq8ziwsp6hyrb"))
- (patches (search-patches "libgit2-mtime-0.patch"))
- (modules '((guix build utils)))
- (snippet '(begin
- (delete-file-recursively "deps") #t))))))
+ (name "libgit2")
+ (version "1.1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/libgit2/libgit2/"
+ "releases/download/v" version
+ "/libgit2-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1fjdglkh04qv3b4alg621pxa689i0wlf8m7nf2755zawjr2zhwxd"))
+ (patches (search-patches "libgit2-mtime-0.patch"))
+ (snippet '(begin
+ (delete-file-recursively "deps") #t))
+ (modules '((guix build utils)))))))
(define-public git-crypt
(package
@@ -1027,7 +1040,7 @@ collaboration using typical untrusted file hosts or services.")
(lambda (file)
(wrap-program (string-append (assoc-ref outputs "out")
"/lib/cgit/filters/" file)
- `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))))
+ `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))))
'("syntax-highlighting.py"
"html-converters/md2html"))
#t)))))
@@ -1084,9 +1097,8 @@ a built-in cache to decrease server I/O pressure.")
(assoc-ref inputs "git") "/bin/git"
"'"))
(("/usr/sbin/sendmail")
- (string-append (assoc-ref inputs "sendmail")
- "/sbin/sendmail")))
- #t)))))
+ (search-input-file inputs
+ "/sbin/sendmail"))))))))
(inputs
`(("git" ,git)
("sendmail" ,sendmail)))
@@ -1473,8 +1485,7 @@ also walk each side of a merge and test those changes individually.")
(delete 'build)
(add-before 'install 'patch-scripts
(lambda* (#:key inputs #:allow-other-keys)
- (let ((perl (string-append (assoc-ref inputs "perl")
- "/bin/perl")))
+ (let ((perl (search-input-file inputs "/bin/perl")))
;; This seems to take care of every shell script that
;; invokes Perl.
(substitute* (find-files "." ".*")
@@ -1511,8 +1522,7 @@ also walk each side of a merge and test those changes individually.")
(substitute* '("src/lib/Gitolite/Hooks/PostUpdate.pm"
"src/lib/Gitolite/Hooks/Update.pm")
(("/usr/bin/perl")
- (string-append (assoc-ref inputs "perl")
- "/bin/perl")))
+ (search-input-file inputs "/bin/perl")))
(substitute* "src/lib/Gitolite/Common.pm"
(("\"ssh-keygen")
@@ -1681,16 +1691,14 @@ visualize your public Git repositories on a web interface.")
;; Ruby and Node tests require node and gem.
"--ignore=tests/languages/node_test.py"
"--ignore=tests/languages/ruby_test.py"
- ;; FIXME: Python tests fail because of distlib version
- ;; mismatch. Even with python-distlib/next it is
- ;; pulling version 0.3.0, while 0.3.1 is required.
- "--ignore=tests/languages/python_test.py" "-k"
+ "-k"
(string-append
;; TODO: these tests fail with AssertionError. It may
;; be possible to fix them.
"not test_install_existing_hooks_no_overwrite"
" and not test_uninstall_restores_legacy_hooks"
- " and not test_installed_from_venv")))))
+ " and not test_installed_from_venv"
+ " and not test_healthy_venv_creator")))))
(add-before 'reset-gzip-timestamps 'make-gz-writable
(lambda* (#:key outputs #:allow-other-keys)
;; Make sure .gz files are writable so that the
@@ -1702,7 +1710,7 @@ visualize your public Git repositories on a web interface.")
`(("git" ,git-minimal)
("python-covdefaults" ,python-covdefaults)
("python-coverage" ,python-coverage)
- ("python-distlib" ,python-distlib/next)
+ ("python-distlib" ,python-distlib)
("python-pytest" ,python-pytest)
("python-pytest-env" ,python-pytest-env)
("python-re-assert" ,python-re-assert)
@@ -1877,10 +1885,8 @@ history. It implements the changeset evolution concept for Mercurial.")
(modify-phases %standard-phases
(add-after 'unpack 'patch-paths
(lambda* (#:key inputs #:allow-other-keys)
- (let ((gpg (string-append (assoc-ref inputs "gnupg")
- "/bin/gpg"))
- (openssl (string-append (assoc-ref inputs "openssl")
- "/bin/openssl")))
+ (let ((gpg (search-input-file inputs "/bin/gpg"))
+ (openssl (search-input-file inputs "/bin/openssl")))
(substitute* "commitsigs.py"
(("b'gpg',") (string-append "b'" gpg "',"))
(("b'openssl',") (string-append "b'" openssl "',")))))))
@@ -2626,10 +2632,8 @@ Features include:
#:builder
(begin
(use-modules (guix build utils))
- (let ((bash (string-append (assoc-ref %build-inputs "bash")
- "/bin/bash"))
- (rclone (string-append (assoc-ref %build-inputs "rclone")
- "/bin/rclone")))
+ (let ((bash (search-input-file %build-inputs "/bin/bash"))
+ (rclone (search-input-file %build-inputs "/bin/rclone")))
(copy-file (string-append (assoc-ref %build-inputs "source")
"/git-annex-remote-rclone")
"git-annex-remote-rclone")
@@ -2651,7 +2655,7 @@ by rclone usable with git-annex.")
(define-public fossil
(package
(name "fossil")
- (version "2.11")
+ (version "2.14")
(source
(origin
(method url-fetch)
@@ -2659,7 +2663,7 @@ by rclone usable with git-annex.")
"https://www.fossil-scm.org/index.html/uv/"
"fossil-src-" version ".tar.gz"))
(sha256
- (base32 "0c9nzx42wxfmym9vf1pnbdb1c7gp7a7zqky60izxsph7w2xh8nix"))
+ (base32 "1fazl117ph5z7xg7h6w7i32sf7rsa67499rg2llsxn3d34hckl5q"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -2855,8 +2859,7 @@ directory full of HOWTOs.")
#t))
(add-before 'install 'patch-git
(lambda* (#:key inputs #:allow-other-keys)
- (let ((git (string-append (assoc-ref inputs "git")
- "/bin/git")))
+ (let ((git (search-input-file inputs "/bin/git")))
(substitute* "bin/git-when-merged"
(("'git'") (string-append "'" git "'")))
#t)))
@@ -2864,7 +2867,7 @@ directory full of HOWTOs.")
(lambda* (#:key outputs #:allow-other-keys)
(wrap-program (string-append (assoc-ref outputs "out")
"/bin/git-when-merged")
- `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))))
+ `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))))
#t)))))
(inputs
`(("git" ,git)
@@ -2900,8 +2903,7 @@ how information about the merge is displayed.")
(delete 'configure)
(add-before 'install 'patch-git
(lambda* (#:key inputs #:allow-other-keys)
- (let ((git (string-append (assoc-ref inputs "git")
- "/bin/git")))
+ (let ((git (search-input-file inputs "/bin/git")))
(substitute* "git-imerge"
(("'git'") (string-append "'" git "'")))
#t)))
@@ -2909,7 +2911,7 @@ how information about the merge is displayed.")
(lambda* (#:key outputs #:allow-other-keys)
(wrap-program (string-append (assoc-ref outputs "out")
"/bin/git-imerge")
- `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))))
+ `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))))
#t)))))
(inputs
`(("git" ,git)
@@ -2954,9 +2956,9 @@ interrupted, published, and collaborated on while in progress.")
(invoke "make" "man"))
#t))
(add-after 'install 'install-man-pages
- (lambda _
+ (lambda* (#:key outputs #:allow-other-keys)
(with-directory-excursion "src/github.com/git-lfs/git-lfs/man"
- (let ((out (assoc-ref %outputs "out")))
+ (let ((out (assoc-ref outputs "out")))
(for-each
(lambda (manpage)
(install-file manpage (string-append out "/share/man/man1")))
@@ -3193,11 +3195,10 @@ defects faster.")
(substitute* "tests/test_main.py"
(("'gita\\\\n'") "'source\\n'")
(("'gita'") "'source'"))
- (invoke (string-append (assoc-ref inputs "git") "/bin/git")
+ (invoke (search-input-file inputs "/bin/git")
"init")
(add-installed-pythonpath inputs outputs)
- (invoke (string-append (assoc-ref inputs "python-pytest")
- "/bin/pytest")
+ (invoke (search-input-file inputs "/bin/pytest")
"-vv" "tests")))
(add-after 'install 'install-shell-completions
(lambda* (#:key outputs #:allow-other-keys)