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.scm656
1 files changed, 322 insertions, 334 deletions
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index f950fa050e..02e393808c 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -33,7 +33,7 @@
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2020, 2021, 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
-;;; Copyright © 2021, 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021, 2022, 2023, 2024 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2021 Léo Le Bouter <lle-bout@zaclys.net>
;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org>
@@ -111,10 +111,6 @@
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages cook)
- #:use-module (gnu packages crates-compression)
- #:use-module (gnu packages crates-io)
- #:use-module (gnu packages crates-vcs)
- #:use-module (gnu packages crates-web)
#:use-module (gnu packages crypto)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
@@ -172,6 +168,8 @@
#:use-module (gnu packages xml)
#:use-module (gnu packages emacs)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages qt)
+ #:use-module (gnu packages rust)
#:use-module (gnu packages sdl)
#:use-module (gnu packages swig)
#:use-module (gnu packages sync)
@@ -187,7 +185,7 @@
(define-public breezy
(package
(name "breezy")
- (version "3.3.9")
+ (version "3.3.11")
(source
(origin
(method url-fetch)
@@ -199,35 +197,41 @@
(snippet '(for-each delete-file (find-files "." "\\pyx.c$")))
(sha256
(base32
- "1n6mqd1iy50537kb4lsr52289yyr1agmkxpchxlhb9682zr8nn62"))))
- (build-system cargo-build-system)
+ "0fxv7ca6qbrj6bvrbfgjrd9ldppa8zq8hc461rikh85c5xg9rjqi"))))
+ (build-system python-build-system)
(arguments
(list
- #:cargo-inputs (list rust-lazy-static-1
- rust-pyo3-0.22
- rust-regex-1)
- #:install-source? #f
#:modules
- '((guix build cargo-build-system)
- ((guix build python-build-system) #:prefix py:)
+ '(((guix build cargo-build-system) #:prefix cargo:)
+ (guix build python-build-system)
(guix build utils))
#:imported-modules
`(,@%cargo-build-system-modules
,@%python-build-system-modules)
#:phases
#~(modify-phases %standard-phases
- (add-after 'unpack 'ensure-no-mtimes-pre-1980
- (assoc-ref py:%standard-phases 'ensure-no-mtimes-pre-1980))
- (add-after 'ensure-no-mtimes-pre-1980 'enable-bytecode-determinism
- (assoc-ref py:%standard-phases 'enable-bytecode-determinism))
- (add-after 'enable-bytecode-determinism 'ensure-no-cythonized-files
- (assoc-ref py:%standard-phases 'ensure-no-cythonized-files))
+ (add-after 'unpack 'prepare-cargo-build-system
+ (lambda args
+ (for-each
+ (lambda (phase)
+ (format #t "Running cargo phase: ~a~%" phase)
+ (apply (assoc-ref cargo:%standard-phases phase)
+ #:cargo-target #$(cargo-triplet)
+ args))
+ '(unpack-rust-crates
+ configure
+ check-for-pregenerated-files
+ patch-cargo-checksums))))
(add-after 'unpack 'patch-test-shebangs
(lambda _
(substitute* (append (find-files "breezy/bzr/tests")
(find-files "breezy/tests"))
(("#!/bin/sh")
(format #f "#!~a" (which "sh"))))))
+ (add-after 'unpack 'relax-gcc-14-strictness
+ (lambda _
+ (setenv "CFLAGS"
+ (string-append "-g -O2 -Wno-error=implicit-function-declaration"))))
(add-before 'build 'adjust-for-python-3.10
(lambda _
(substitute* '("breezy/doc_generate/__init__.py"
@@ -235,24 +239,7 @@
;; AttributeError: module 'datetime' has no attribute 'UTC'
;; This only works for python >= 3.11
(("datetime.UTC") "datetime.timezone.utc"))))
- (replace 'build
- (assoc-ref py:%standard-phases 'build))
- (delete 'check) ;moved after the install phase
- (replace 'install
- (assoc-ref py:%standard-phases 'install))
- (add-after 'install 'add-install-to-pythonpath
- (assoc-ref py:%standard-phases 'add-install-to-pythonpath))
- (add-after 'add-install-to-pythonpath 'add-install-to-path
- (assoc-ref py:%standard-phases 'add-install-to-path))
- (add-after 'add-install-to-path 'install-completion
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bash (string-append out "/share/bash-completion"
- "/completions")))
- (install-file "contrib/bash/brz" bash))))
- (add-after 'add-install-to-path 'wrap
- (assoc-ref py:%standard-phases 'wrap))
- (add-after 'wrap 'check
+ (replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(setenv "BZR_EDITOR" "nano")
@@ -270,35 +257,42 @@
;; Unknown Failure
"-x" "breezy.tests.test_plugins.TestLoadPluginAt.test_compiled_loaded"
"-x" "breezy.tests.test_plugins.TestPlugins.test_plugin_get_path_pyc_only"
- "-x" "breezy.tests.test_selftest.TestActuallyStartBzrSubprocess.test_start_and_stop_bzr_subprocess_send_signal"))))
- (add-before 'strip 'rename-pth-file
- (assoc-ref py:%standard-phases 'rename-pth-file)))))
- (native-inputs (list gettext-minimal
- python-wrapper
- python-cython
- python-setuptools
- python-setuptools-gettext
- python-setuptools-rust
- python-tomli
- python-wheel
- ;; tests
- nano
- python-testtools
- python-packaging
- python-subunit))
- (inputs (list python-configobj
- python-dulwich
- python-fastbencode
- python-fastimport
- python-launchpadlib
- python-merge3
- python-paramiko
- python-gpg
- python-patiencediff
- python-pygithub
- python-pyyaml
- python-tzlocal
- python-urllib3))
+ "-x" "breezy.tests.test_selftest.TestActuallyStartBzrSubprocess.test_start_and_stop_bzr_subprocess_send_signal"
+ ;; AttributeError: module 'paramiko' has no attribute 'DSSKey'
+ "-x" "breezy.tests.test_transport.TestSSHConnections.test_bzr_connect_to_bzr_ssh")))))))
+ (native-inputs
+ (append
+ (list gettext-minimal
+ python-cython-0
+ python-setuptools
+ python-setuptools-gettext
+ python-setuptools-rust
+ python-tomli
+ python-wheel
+ rust
+ `(,rust "cargo")
+ ;; tests
+ nano
+ python-testtools
+ python-packaging
+ python-subunit)
+ (or (and=> (%current-target-system)
+ (compose list make-rust-sysroot))
+ '())))
+ (inputs (cons* python-configobj
+ python-dulwich
+ python-fastbencode
+ python-fastimport
+ python-launchpadlib
+ python-merge3
+ python-paramiko
+ python-gpg
+ python-patiencediff
+ python-pygithub
+ python-pyyaml
+ python-tzlocal
+ python-urllib3
+ (cargo-inputs 'breezy)))
(home-page "https://www.breezy-vcs.org/")
(synopsis "Decentralized revision control system")
(description
@@ -324,14 +318,14 @@ Python 3.3 and later, rather than on Python 2.")
(define-public git-minimal
(package
(name "git-minimal")
- (version "2.50.1")
+ (version "2.51.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/software/scm/git/git-"
version ".tar.xz"))
(sha256
(base32
- "1i4gbin7ah9azaz68j10q9qkdq2bcyv2vm0lvppg3n6bvqv6qgky"))))
+ "0qhbk6wd5iy4pz6skp121kgcc5q64rkybfl7rpaqirf23hjw59v0"))))
(build-system gnu-build-system)
(arguments
(list
@@ -345,9 +339,8 @@ Python 3.3 and later, rather than on Python 2.")
#:disallowed-references (list bash perl)
#:test-target "test"
#:configure-flags
- (if (%current-target-system)
- git-cross-configure-flags
- #~(list))
+ #~(cons "--with-gitconfig=/etc/gitconfig"
+ #$(if (%current-target-system) git-cross-configure-flags #~(list)))
#:make-flags
#~(list "V=1" ;more verbose compilation
(string-append "SHELL_PATH="
@@ -826,7 +819,12 @@ everything from small to very large projects with speed and efficiency.")
version ".tar.xz"))
(sha256
(base32
- "0if0vqn3fj22p95a0125zpgwz3mqfqxqnvwa7fkf7b00wh0c1wyz"))))))
+ "0if0vqn3fj22p95a0125zpgwz3mqfqxqnvwa7fkf7b00wh0c1wyz"))))
+ ;; Temporary measure to prevent unneccessary package rebuilds.
+ (arguments
+ (substitute-keyword-arguments (package-arguments git-minimal)
+ ((#:configure-flags flags #~'())
+ (if (%current-target-system) git-cross-configure-flags #~(list)))))))
(define-public python-klaus
(package
@@ -1039,20 +1037,19 @@ the date of the most recent commit that modified them
(define-public git-spice
(package
(name "git-spice")
- (version "0.11.0")
+ (version "0.15.2")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/abhinav/git-spice")
- (commit (string-append "v" version))))
+ (url "https://github.com/abhinav/git-spice")
+ (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0fgdi0gmax808aazmzl75wny2klfcz5gbs8v82zhifgiza01xzqy"))))
+ (base32 "1cymx784rrdrbhsfacdl30pgimzxfwkjr93cjkh2v37r8dv5145y"))))
(build-system go-build-system)
(arguments
(list
- #:go go-1.24
#:import-path "go.abhg.dev/gs"
#:install-source? #f
#:build-flags
@@ -1063,32 +1060,11 @@ the date of the most recent commit that modified them
;; XXX: Tests failing with various reasons: requiring
;; networking config or write access, or outbound access, check
;; if some of them may be fixed.
- (list "TestAuthenticationFlow_PAT/pat"
- "TestDeviceFlowAuthenticator"
- "TestScript/auth_detect_forge"
- "TestScript/auth_explicit_forge"
- "TestScript/auth_insecure_storage"
- "TestScript/auth_prompt_forge"
- "TestScript/branch_create_below_with_downstack_history"
- "TestScript/branch_create_no_verify"
- "TestScript/branch_onto_two_stacks_with_downstack_history"
- "TestScript/branch_restack_conflict_no_edit"
- "TestScript/branch_split_reassign_submitted"
- "TestScript/branch_submit_.*"
- "TestScript/commit_amend_no_verify"
- "TestScript/commit_create_no_verify"
- "TestScript/commit_split_no_verify"
- "TestScript/downstack_submit"
- "TestScript/issue369_branch_submit_pr_template_cache_.*"
- "TestScript/issue398_repo_sync_many_merged"
- "TestScript/repo_sync_.*"
- "TestScript/stack_edit_inserted_at_bottom_with_.*"
- "TestScript/stack_submit"
- "TestScript/stack_submit_.*"
- "TestScript/submit_update_only"
- "TestScript/upstack_submit_main"
+ (list "TestScript"
+ "TestSelectAuthenticator/oauth_public"
"TestSelectAuthenticator/oauth"
- "TestSelectAuthenticator/oauth_public")
+ "TestAuthenticationFlow_PAT/pat"
+ "TestDeviceFlowAuthenticator")
"|"))
#:phases
#~(modify-phases %standard-phases
@@ -1123,7 +1099,6 @@ the date of the most recent commit that modified them
go-github-com-charmbracelet-bubbles
go-github-com-charmbracelet-bubbletea
go-github-com-charmbracelet-lipgloss
- go-github-com-charmbracelet-log
go-github-com-cli-browser
go-github-com-creack-pty
go-github-com-dustin-go-humanize
@@ -1138,6 +1113,7 @@ the date of the most recent commit that modified them
go-gitlab-com-gitlab-org-api-client-go
go-go-abhg-dev-io-ioutil
go-go-abhg-dev-komplete
+ go-go-abhg-dev-log-silog
go-go-abhg-dev-testing-stub
go-go-uber-org-mock
go-golang-org-x-oauth2
@@ -1156,7 +1132,7 @@ provides an integration with GitHub and GitLab.")
(define-public got
(package
(name "got")
- (version "0.116")
+ (version "0.118.1")
(source (origin
(method url-fetch)
(uri
@@ -1165,7 +1141,7 @@ provides an integration with GitHub and GitLab.")
version ".tar.gz"))
(sha256
(base32
- "1zsdisaqv1q612a7jws9qd8n1gm9ilz5mnprkpgvdhc27gblm9p8"))))
+ "0l56kfq5r9nb4046n63cv1agwjgdggzi31q76p2sjvyy3rwkihbp"))))
(inputs
(list libevent
`(,util-linux "lib")
@@ -1644,7 +1620,6 @@ collaboration using typical untrusted file hosts or services.")
(build-system go-build-system)
(arguments
(list
- #:go go-1.24
#:import-path "github.com/Apteryks/git-repo-go"
#:build-flags
#~(list "-ldflags" (string-append
@@ -1809,7 +1784,7 @@ supports AGit-Flow and lifts the requirement to use a manifest file.")
bash-minimal
openssl
python
- python-docutils
+ python-docutils-0.19
python-markdown
python-pygments
zlib
@@ -1959,16 +1934,19 @@ default) of the repository.")
(define-public python-gitdb
(package
(name "python-gitdb")
- (version "4.0.2")
+ (version "4.0.12")
(source (origin
(method url-fetch)
(uri (pypi-uri "gitdb" version))
(sha256
(base32
- "0l113fphn6msjl3cl3kyf332b6lal7daxdd0nfma0x9ipfb013jr"))))
- (build-system python-build-system)
+ "0wdmzngk870944nc6q5sphzv29jzhgddbh7vzhk366hrbn2izxsy"))))
+ (build-system pyproject-build-system)
(arguments
- `(#:phases (modify-phases %standard-phases
+ ;; One test fails, probably due to low ulimit: ValueError: Expected to
+ ;; write 1000 objects into pack, but received only 0 from iterators.
+ `(#:test-flags '("-k" "not test_pack_writing")
+ #:phases (modify-phases %standard-phases
(add-before 'check 'create-test-repository
(lambda _
(mkdir "/tmp/testrepo")
@@ -1990,16 +1968,15 @@ default) of the repository.")
;; The repository checkout must be a "bare" clone.
(invoke "git" "clone" "--bare" "/tmp/testrepo"
"/tmp/testrepo.git")))
- (replace 'check
+ (add-before 'check 'pre-check
(lambda _
(setenv "GITDB_TEST_GIT_REPO_BASE" "/tmp/testrepo.git")
;; Skip tests that must be run from the gitdb repository.
- (setenv "TRAVIS" "1")
- (invoke "nosetests" "-v"))))))
+ (setenv "TRAVIS" "1"))))))
(propagated-inputs
(list python-smmap))
(native-inputs
- (list git-minimal/pinned python-nose))
+ (list git-minimal/pinned python-pytest python-setuptools python-wheel))
(home-page "https://github.com/gitpython-developers/gitdb")
(synopsis "Python implementation of the Git object database")
(description
@@ -2012,14 +1989,14 @@ allowing to handle large objects with a small memory footprint.")
(define-public python-gitpython
(package
(name "python-gitpython")
- (version "3.1.24")
+ (version "3.1.44")
(source (origin
(method url-fetch)
- (uri (pypi-uri "GitPython" version))
+ (uri (pypi-uri "gitpython" version))
(sha256
(base32
- "1rarp97cpjnhi106k2yhb7kygdyflmlgq0icxv3ggzl4wvszv0yz"))))
- (build-system python-build-system)
+ "0scj4hqk6msyzqvq70wk6583qzwn33w601hvn0c59gskcar30zn8"))))
+ (build-system pyproject-build-system)
(arguments
(list #:tests? #f ;XXX: tests can only be run within the GitPython repository
#:phases
@@ -2034,9 +2011,9 @@ allowing to handle large objects with a small memory footprint.")
(inputs
(list git-minimal/pinned))
(propagated-inputs
- (list python-gitdb python-typing-extensions))
+ (list python-gitdb))
(native-inputs
- (list python-ddt python-nose))
+ (list python-setuptools))
(home-page "https://github.com/gitpython-developers/GitPython")
(synopsis "Python library for interacting with Git repositories")
(description
@@ -2203,7 +2180,7 @@ lot easier.")
(define-public stgit-2
(package
(name "stgit")
- (version "2.4.12")
+ (version "2.5.3")
(source
(origin
(method git-fetch)
@@ -2212,36 +2189,10 @@ lot easier.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0kp3gwmxcjvphg1s0san0vyis8dsdaf02xsflc2b7kkg8m0r0mi3"))
- (modules '((guix build utils)))
- (snippet
- '(begin (substitute* (find-files "." "^Cargo\\.toml$")
- (("\"~([[:digit:]]+(\\.[[:digit:]]+)*)" _ version)
- (string-append "\"^" version)))))))
+ (base32 "0pxhl7fnycs4bx46x9m8v33lsf5hwp0fhqyihlr4sf7ms4b7adsc"))))
(build-system cargo-build-system)
(arguments
- `(#:cargo-inputs (("rust-anstyle" ,rust-anstyle-1)
- ("rust-anyhow" ,rust-anyhow-1)
- ("rust-bstr" ,rust-bstr-1)
- ("rust-bzip2-rs" ,rust-bzip2-rs-0.1)
- ("rust-clap" ,rust-clap-4)
- ("rust-ctrlc" ,rust-ctrlc-3)
- ("rust-curl" ,rust-curl-0.4)
- ("rust-encoding_rs" ,rust-encoding-rs-0.8)
- ("rust-flate2" ,rust-flate2-1)
- ("rust-gix" ,rust-gix-0.66)
- ("rust-indexmap" ,rust-indexmap-2)
- ("rust-is-terminal" ,rust-is-terminal-0.4)
- ("rust-jiff" ,rust-jiff-0.1)
- ("rust-serde" ,rust-serde-1)
- ("rust-serde-json" ,rust-serde-json-1)
- ("rust-strsim" ,rust-strsim-0.10)
- ("rust-tar" ,rust-tar-0.4)
- ("rust-tempfile" ,rust-tempfile-3)
- ("rust-termcolor" ,rust-termcolor-1)
- ("rust-thiserror" ,rust-thiserror-1)
- ("rust-winnow" ,rust-winnow-0.6))
- #:install-source? #f
+ `(#:install-source? #f
#:phases
(modify-phases %standard-phases
(add-after 'build 'build-extras
@@ -2269,7 +2220,7 @@ lot easier.")
perl
texinfo
xmlto))
- (inputs (list openssl zlib curl))
+ (inputs (cons* openssl zlib curl (cargo-inputs 'stgit-2)))
(home-page "https://stacked-git.github.io/")
(synopsis "Stacked Git (StGit) manages Git commits as a stack of patches")
(description "StGit uses a patch stack workflow. Each individual patch
@@ -2294,6 +2245,7 @@ Features include:
(package
(inherit stgit-2)
(name "emacs-stgit")
+ (version "0.17.1") ;from stgit.el
(build-system emacs-build-system)
(arguments
(list
@@ -2301,13 +2253,20 @@ Features include:
#:lisp-directory "contrib"
#:phases
#~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-version-executables
+ (lambda* (#:key inputs #:allow-other-keys)
+ (emacs-substitute-variables "stgit.el"
+ ("stgit-stg-program" (search-input-file inputs "/bin/stg")))
+ (emacs-substitute-variables "stgit.el"
+ ("stgit-git-program" (search-input-file inputs "/bin/git")))))
(add-before 'install-license-files 'leave-lisp-directory
(lambda _
(chdir ".."))))))
+ (inputs (list stgit-2 git))
(synopsis "Emacs major mode for StGit interaction")
(description "This package a interactive tool to interact with git
branches using StGit.")
- (license license:gpl3+)))
+ (license license:gpl2+)))
(define-public stgit
(package
@@ -2757,101 +2716,134 @@ execution of any hook written in any language before every commit.")
(define-public python-pre-commit
(deprecated-package "python-pre-commit" pre-commit))
-(define-public mercurial
- (package
- (name "mercurial")
- (version "6.9.5")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://www.mercurial-scm.org/"
- "release/mercurial-" version ".tar.gz"))
- (patches (search-patches "mercurial-hg-extension-path.patch"))
- (sha256
- (base32
- "1zb5rjqs5z0y900hml0v4wsmv59cdhi50a8kcbjxdp79z7p2mwnk"))))
- (build-system gnu-build-system)
- (arguments
- `(#:make-flags
- (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
- #:phases
- (modify-phases %standard-phases
- (delete 'configure)
- (add-after 'unpack 'patch-tests
- (lambda _
- (substitute* (find-files "tests" "\\.(t|py)$")
- (("/bin/sh")
- (which "sh"))
- (("/usr/bin/env")
- (which "env")))))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (with-directory-excursion "tests"
- ;; The following tests are known to fail.
- (for-each delete-file
- '(;; XXX: This test calls 'run-tests.py --with-hg=
- ;; `which hg`' and fails because there is no hg on
- ;; PATH from before (that's why we are building it!)?
- "test-hghave.t"
+;; XXX: This is a temporary helper to avoid recompiling mercurial/pinned.
+;; If you update mercurial, don't touch it but work around it.
+;; If you update mercurial/pinned, include that in mercurial, and use inheritance
+;; for mercurial/pinned.
+(define mercurial-check-phase
+ #~(lambda* (#:key tests? #:allow-other-keys)
+ (with-directory-excursion "tests"
+ ;; The following tests are known to fail.
+ (for-each delete-file
+ '(;; XXX: This test calls 'run-tests.py --with-hg=
+ ;; `which hg`' and fails because there is no hg on
+ ;; PATH from before (that's why we are building it!)?
+ "test-hghave.t"
+
+ ;; This test is missing a debug line
+ ;; mmapping $TESTTMP/a/.hg/store/00changelog.i (no-pure !)
+ ;; but the relevant output is correct.
+ "test-revlog-mmapindex.t"
- ;; This test is missing a debug line
- ;; mmapping $TESTTMP/a/.hg/store/00changelog.i (no-pure !)
- ;; but the relevant output is correct.
- "test-revlog-mmapindex.t"
+ ;; This test creates a shebang spanning multiple
+ ;; lines which is difficult to substitute. It
+ ;; only tests the test runner itself, which gets
+ ;; thoroughly tested during the check phase anyway.
+ "test-run-tests.t"
- ;; This test creates a shebang spanning multiple
- ;; lines which is difficult to substitute. It
- ;; only tests the test runner itself, which gets
- ;; thoroughly tested during the check phase anyway.
- "test-run-tests.t"
+ ;; These tests fail because the program is not
+ ;; connected to a TTY in the build container.
+ "test-nointerrupt.t"
+ "test-transaction-rollback-on-sigpipe.t"
- ;; These tests fail because the program is not
- ;; connected to a TTY in the build container.
- "test-nointerrupt.t"
- "test-transaction-rollback-on-sigpipe.t"
+ ;; FIXME: This gets killed but does not receive an interrupt.
+ "test-commandserver.t"
- ;; FIXME: This gets killed but does not receive an interrupt.
- "test-commandserver.t"
+ ;; These tests get unexpected warnings about using
+ ;; deprecated functionality in Python, but otherwise
+ ;; succeed; try enabling for later Mercurial versions.
+ "test-demandimport.py"
+ "test-patchbomb-tls.t"
+ ;; Similarly, this gets a more informative error
+ ;; message from Python 3.10 than it expects.
+ "test-http-bad-server.t"
- ;; These tests get unexpected warnings about using
- ;; deprecated functionality in Python, but otherwise
- ;; succeed; try enabling for later Mercurial versions.
- "test-demandimport.py"
- "test-patchbomb-tls.t"
- ;; Similarly, this gets a more informative error
- ;; message from Python 3.10 than it expects.
- "test-http-bad-server.t"
+ ;; Only works when run in a hg-repo, not in an
+ ;; extracted tarball
+ "test-doctest.py"
- ;; Only works when run in a hg-repo, not in an
- ;; extracted tarball
- "test-doctest.py"
+ ;; TODO: the fqaddr() call fails in the build
+ ;; container, causing these server tests to fail.
+ "test-hgwebdir.t"
+ "test-http-branchmap.t"
+ "test-pull-bundle.t"
+ "test-push-http.t"
+ "test-serve.t"
+ "test-subrepo-deep-nested-change.t"
+ "test-subrepo-recursion.t"
+ ;; FIXME: Investigate why it failed.
+ "test-convert-darcs.t"))
+ (when tests?
+ (invoke "./run-tests.py"
+ ;; ‘make check’ does not respect ‘-j’.
+ (string-append "-j" (number->string
+ (parallel-job-count)))
+ ;; The default time-outs are too low for many systems.
+ ;; Raise them generously: Guix enforces its own.
+ "--timeout" "86400"
+ "--slowtimeout" "86400"
+ ;; The test suite takes a long time and produces little
+ ;; output by default. Prevent timeouts due to silence.
+ "-v")))))
- ;; TODO: the fqaddr() call fails in the build
- ;; container, causing these server tests to fail.
- "test-hgwebdir.t"
- "test-http-branchmap.t"
- "test-pull-bundle.t"
- "test-push-http.t"
- "test-serve.t"
- "test-subrepo-deep-nested-change.t"
- "test-subrepo-recursion.t"
- ;; FIXME: Investigate why it failed.
- "test-convert-darcs.t"))
- (when tests?
- (invoke "./run-tests.py"
- ;; ‘make check’ does not respect ‘-j’.
- (string-append "-j" (number->string
- (parallel-job-count)))
- ;; The default time-outs are too low for many systems.
- ;; Raise them generously: Guix enforces its own.
- "--timeout" "86400"
- "--slowtimeout" "86400"
- ;; The test suite takes a long time and produces little
- ;; output by default. Prevent timeouts due to silence.
- "-v"))))))))
+(define-public mercurial
+ (package
+ (name "mercurial")
+ (version "7.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://www.mercurial-scm.org/"
+ "release/mercurial-" version ".tar.gz"))
+ (patches (search-patches "mercurial-hg-extension-path.patch"))
+ (sha256
+ (base32 "1jz54akdnsp5frlbsr2xg71kbp2919v61gkkx7c7bi1q7k421ng8"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:imported-modules `((guix build python-build-system)
+ ,@%default-gnu-imported-modules)
+ #:modules '((guix build gnu-build-system)
+ ((guix build python-build-system) #:prefix py:)
+ (guix build utils))
+ #:make-flags
+ #~(list (string-append "PREFIX=" #$output))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'unpack 'patch-tests
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* (find-files "tests" "\\.(t|py)$")
+ (("/bin/sh")
+ (search-input-file inputs "bin/sh"))
+ (("/usr/bin/env")
+ (search-input-file inputs "bin/env")))))
+ (add-before 'check 'configure-check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (with-directory-excursion "tests"
+ (substitute* "run-tests.py"
+ ;; XXX: Adapt pip call to build daemon chroot.
+ (("b\"install\", b\"\\.\"")
+ "b\"install\", b\"--no-build-isolation\", b\".\"")
+ ;; XXX: Log the actual PYTHONPATH.
+ (("\"PYTHONPATH\"")
+ "\"GUIX_PYTHONPATH\"")))))
+ (add-before 'configure-check 'add-install-to-pythonpath
+ (assoc-ref py:%standard-phases 'add-install-to-pythonpath))
+ (add-after 'install 'wrap
+ (assoc-ref py:%standard-phases 'wrap))
+ (delete 'check)
+ (add-after 'wrap 'check #$mercurial-check-phase)
+ (add-after 'check 'python-sanity-check
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ((assoc-ref py:%standard-phases 'sanity-check)
+ #:inputs `(("sanity-check.py" . ,#$(default-sanity-check.py))
+ ,@inputs)
+ #:outputs outputs))))))
(native-inputs
(list python-docutils
;; The following inputs are only needed to run the tests.
- python-nose unzip which))
+ python-setuptools python-setuptools-scm python-wheel unzip which))
(inputs
(list python-wrapper))
;; Find third-party extensions.
@@ -2867,6 +2859,38 @@ efficiently handles projects of any size and offers an easy and intuitive
interface.")
(license license:gpl2+)))
+(define-public mercurial/pinned
+ (package
+ (inherit mercurial)
+ (version "6.9.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://www.mercurial-scm.org/"
+ "release/mercurial-" version ".tar.gz"))
+ (patches (search-patches "mercurial-hg-extension-path.patch"))
+ (sha256
+ (base32 "1zb5rjqs5z0y900hml0v4wsmv59cdhi50a8kcbjxdp79z7p2mwnk"))))
+ (arguments
+ (list
+ #:make-flags
+ #~(list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'unpack 'patch-tests
+ (lambda _
+ (substitute* (find-files "tests" "\\.(t|py)$")
+ (("/bin/sh")
+ (which "sh"))
+ (("/usr/bin/env")
+ (which "env")))))
+ (replace 'check #$mercurial-check-phase))))
+ (native-inputs
+ (list python-docutils
+ ;; The following inputs are only needed to run the tests.
+ python-nose unzip which))))
+
(define-public python-hg-evolve
(package
(name "python-hg-evolve")
@@ -2951,6 +2975,7 @@ changeset itself; there won't be any extra commits. Either GnuPG or OpenSSL
can be used for signing.")
(license license:gpl2)))) ;per commitsigs.py
+;; XXX: Not maintained since 2019.
(define-public heatwave
(package
(name "heatwave")
@@ -2962,6 +2987,10 @@ can be used for signing.")
(sha256
(base32 "1zzwmb9hvbyswzjgap02rrq8p44hb6xlzk1wd8w01mh2vva0xlx7"))))
(build-system pyproject-build-system)
+ (arguments
+ (list #:tests? #f)) ;no tests in PyPI
+ (native-inputs
+ (list python-setuptools))
(propagated-inputs
(list python-click
python-gitpython
@@ -3024,14 +3053,14 @@ following features:
(define-public subversion
(package
(name "subversion")
- (version "1.14.3")
+ (version "1.14.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://apache/subversion/"
"subversion-" version ".tar.bz2"))
(sha256
(base32
- "0h54l4p2dlk1rm4zm428hi6ij6xpqxqlqmvkhmz5yhq9392zv7ll"))))
+ "18a4avism0a7b1siikkm6v2snhanlmqqzl4p8hspp2vbfvkjk2p7"))))
(build-system gnu-build-system)
(arguments
(list
@@ -3100,6 +3129,20 @@ usage; and its ability to support the needs of a wide variety of users and
projects, from individuals to large-scale enterprise operations.")
(license license:asl2.0)))
+(define-public subversion/pinned
+ (hidden-package
+ (package
+ (inherit subversion)
+ (name "subversion")
+ (version "1.14.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://apache/subversion/"
+ "subversion-" version ".tar.bz2"))
+ (sha256
+ (base32 "0h54l4p2dlk1rm4zm428hi6ij6xpqxqlqmvkhmz5yhq9392zv7ll")))))))
+
(define-public rcs
(package
(name "rcs")
@@ -3816,72 +3859,11 @@ a built-in wiki, built-in file browsing, built-in tickets system, etc.")
(uri (crate-uri "pijul" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1lk261rrk4xy60d4akfn8mrrqxls28kf9mzrjcrxdzbdysml66n5"))
- (snippet
- #~(begin (use-modules (guix build utils))
- (substitute* "Cargo.toml"
- (("\"= ?([[:digit:]]+(\\.[[:digit:]]+)*)" _ version)
- (string-append "\"^" version)))))))
+ (base32 "1lk261rrk4xy60d4akfn8mrrqxls28kf9mzrjcrxdzbdysml66n5"))))
(build-system cargo-build-system)
(arguments
(list
#:install-source? #f
- #:cargo-inputs
- (list rust-anyhow-1
- rust-async-trait-0.1
- rust-atty-0.2
- rust-byteorder-1
- rust-bytes-1
- rust-canonical-path-2
- rust-chrono-0.4
- rust-clap-4
- rust-clap-complete-4
- rust-ctrlc-3
- rust-data-encoding-2
- rust-dateparser-0.1
- rust-dirs-next-2
- rust-edit-0.1
- rust-env-logger-0.8
- rust-futures-0.3
- rust-futures-util-0.3
- rust-git2-0.13
- rust-human-panic-1
- rust-hyper-0.14
- rust-ignore-0.4
- rust-keyring-2
- rust-lazy-static-1
- rust-libpijul-1
- rust-log-0.4
- rust-open-3
- rust-pager-0.16
- rust-path-slash-0.1
- rust-pijul-config-0.0.1
- rust-pijul-identity-0.0.1
- rust-pijul-interaction-0.0.1
- rust-pijul-remote-1
- rust-pijul-repository-0.0.1
- rust-ptree-0.4
- rust-rand-0.8
- rust-regex-1
- rust-reqwest-0.11
- rust-sanakirja-1
- rust-serde-1
- rust-serde-derive-1
- rust-serde-json-1
- rust-tempfile-3
- rust-termcolor-1
- rust-thiserror-1
- rust-thrussh-0.33
- rust-thrussh-config-0.5
- rust-thrussh-keys-0.21
- rust-tokio-1
- rust-toml-0.5
- rust-url-2
- rust-validator-0.15
- rust-whoami-1)
- #:cargo-development-inputs
- (list rust-exitcode-1
- rust-expectrl-0.7)
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'install-extras
@@ -3920,7 +3902,7 @@ a built-in wiki, built-in file browsing, built-in tickets system, etc.")
(list this-package)
'())
(list pkg-config)))
- (inputs (list libsodium openssl))
+ (inputs (cons* libsodium openssl (cargo-inputs 'pijul)))
(home-page "https://nest.pijul.com/pijul/pijul")
(synopsis "Distributed version control system")
(description "This package provides pijul, a sound and fast distributed
@@ -4207,28 +4189,28 @@ will reconstruct the object along its delta-base chain and return it.")
(define-public git-lfs
(package
(name "git-lfs")
- (version "3.6.1")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/git-lfs/git-lfs")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "02819i3sd9qjw89lcpv6rmhfqaxkz1pddqw8havw3ysmcmhmb7yd"))))
+ (version "3.7.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/git-lfs/git-lfs")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1wxx7i29n4gk8s78xq4hacc1ylwi6bq4b6y2bjx8fs9p7z4awnqh"))))
(build-system go-build-system)
(arguments
(list
#:embed-files #~(list "children" "nodes" "text")
- #:import-path "github.com/git-lfs/git-lfs"
+ #:import-path "github.com/git-lfs/git-lfs/v3"
#:install-source? #f
#:test-flags #~(list "-skip" "TestHistoryRewriterUpdatesRefs")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-/bin/sh
(lambda* (#:key inputs #:allow-other-keys)
- (substitute* "src/github.com/git-lfs/git-lfs/lfs/hook.go"
+ (substitute* "src/github.com/git-lfs/git-lfs/v3/lfs/hook.go"
(("/bin/sh")
(search-input-file inputs "bin/sh")))))
;; Only build the man pages if ruby-asciidoctor is available.
@@ -4237,21 +4219,25 @@ will reconstruct the object along its delta-base chain and return it.")
;; Without this, the binary generated in 'build
;; phase won't have any embedded usage-text.
(lambda _
- (with-directory-excursion "src/github.com/git-lfs/git-lfs"
+ (with-directory-excursion "src/github.com/git-lfs/git-lfs/v3"
(invoke "make" "mangen"))))
(add-after 'build 'build-man-pages
(lambda _
- (with-directory-excursion "src/github.com/git-lfs/git-lfs"
+ (with-directory-excursion "src/github.com/git-lfs/git-lfs/v3"
(invoke "make" "man"))))
(add-after 'install 'install-man-pages
(lambda* (#:key outputs #:allow-other-keys)
- (with-directory-excursion "src/github.com/git-lfs/git-lfs/man"
+ (with-directory-excursion "src/github.com/git-lfs/git-lfs/v3/man"
(for-each
(lambda (manpage)
(install-file manpage
(string-append #$output "/share/man/man1")))
(find-files "." "^git-lfs.*\\.1$"))))))
- #~()))))
+ #~())
+ (add-after 'install 'rename-binary
+ (lambda _
+ (with-directory-excursion (string-append #$output "/bin")
+ (rename-file "v3" "git-lfs")))))))
(native-inputs
(append (list git-minimal
go-github-com-avast-retry-go
@@ -4260,6 +4246,7 @@ will reconstruct the object along its delta-base chain and return it.")
go-github-com-git-lfs-go-netrc
go-github-com-git-lfs-pktline
go-github-com-git-lfs-wildmatch-v2
+ go-github-com-golang-groupcache
go-github-com-jmhodges-clock
go-github-com-leonelquinteros-gotext
go-github-com-mattn-go-isatty
@@ -4277,7 +4264,7 @@ will reconstruct the object along its delta-base chain and return it.")
(if (supported-package? ruby-asciidoctor/minimal)
(list ronn-ng ruby-asciidoctor/minimal)
'())))
- (home-page "https://git-lfs.github.com/")
+ (home-page "https://git-lfs.com/")
(synopsis "Git extension for versioning large files")
(description
"Git Large File Storage (LFS) replaces large files such as audio samples,
@@ -4301,6 +4288,7 @@ file contents on a remote server.")
(build-system go-build-system)
(arguments
(list
+ #:go go-1.23
#:import-path "git.sr.ht/~ngraves/lfs-s3"))
(inputs (list git-lfs))
(propagated-inputs
@@ -4609,7 +4597,7 @@ TkDiff is included for browsing and merging your changes.")
(define-public qgit
(package
(name "qgit")
- (version "2.11")
+ (version "2.12")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -4618,12 +4606,20 @@ TkDiff is included for browsing and merging your changes.")
(file-name (git-file-name name version))
(sha256
(base32
- "11948zzszi28js3pbxlss8r85jlb6fizxm8f5ljqk67m5qxk2v0f"))))
+ "16gy1xyn4xa3bjziphcdixbf6qv3bcs81z2k9j6biwpzs1ingkdb"))
+ ;; TODO: Remove this patch in the next update since it is fixed
+ ;; in the next commit.
+ (patches
+ (search-patches "qgit-2.12-fix-search-style.patch"))))
(build-system qt-build-system)
(arguments
- (list #:tests? #f)) ;no tests
+ (list #:qtbase qtbase
+ #:tests? #f)) ;no tests
(propagated-inputs
(list git))
+ (inputs
+ (list qt5compat
+ qtwayland))
(home-page "https://github.com/tibirna/qgit")
(synopsis "Graphical front-end for git")
(description
@@ -4847,7 +4843,7 @@ developer workflow, and project and release management.")
(define-public hut
(package
(name "hut")
- (version "0.6.0")
+ (version "0.7.0")
(source
(origin
(method git-fetch)
@@ -4856,19 +4852,11 @@ developer workflow, and project and release management.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "14cia976i2jdzyzw4wk9fhkh6zqgmb09ryf31ys24smmfcdfxyf1"))
- (modules '((guix build utils)))
- (snippet
- #~(begin
- ;; XXX: Module name has been changed upstream, it's already
- ;; adjusted on master, consider to remove in the next refresh
- ;; cycle.
- (substitute* (find-files "." "\\.go$")
- (("git.sr.ht/~emersion/go-scfg")
- "codeberg.org/emersion/go-scfg"))))))
+ (base32 "0scw4nvm3qpg7l6anhljkixn3g36k03ikg6pl0hs76a3wkf89km5"))))
(build-system go-build-system)
(arguments
(list
+ #:go go-1.23
#:import-path "git.sr.ht/~xenrox/hut"
#:phases
#~(modify-phases %standard-phases