;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2016, 2019 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2015, 2018 Kyle Meyer <kyle@kyleam.com>
+;;; Copyright © 2015, 2018, 2020 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2015, 2017, 2018, 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017, 2018 Nikita <nikita@n0.is>
;;; Copyright © 2020 John D. Boy <jboy@bius.moe>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
+ #:use-module (guix hg-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (gnu packages flex)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
+ #:use-module (gnu packages golang)
#:use-module (gnu packages groff)
#:use-module (gnu packages guile)
#:use-module (gnu packages image)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-check)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages readline)
(define-public git
(package
(name "git")
- (version "2.28.0")
+ (version "2.29.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/software/scm/git/git-"
version ".tar.xz"))
(sha256
(base32
- "17a311vzimqn1glc9d7x82rhb1mb81m5rr4g8xji8idaafid39fz"))))
+ "1h87yv117ypnc0yi86941089c14n91gixk8b6shj2y35prp47z7j"))))
(build-system gnu-build-system)
(native-inputs
`(("native-perl" ,perl)
version ".tar.xz"))
(sha256
(base32
- "1dvwq0py8a2ywmgc5pzdlsj3608s7r9wyba292728fcs3yj7ynk6"))))
+ "14npkg9rnp2yclsx5p622qpm6byzfy5k5wb209vkmm5r60m4mm72"))))
;; For subtree documentation.
("asciidoc" ,asciidoc-py3)
("docbook-xsl" ,docbook-xsl)
(delete 'install-man-pages)
(delete 'install-subtree)
(delete 'install-credential-netrc)
- (add-before 'check 'delete-svn-test
- (lambda _
- ;; This test cannot run since we are not building 'git-svn'.
- (delete-file "t/t9020-remote-svn.sh")
- #t))
(add-after 'install 'remove-unusable-perl-commands
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(define-public gitolite
(package
(name "gitolite")
- (version "3.6.11")
+ (version "3.6.12")
(source
(origin
(method git-fetch)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1rkj7gknwjlc5ij9w39zf5mr647bm45la57yjczydmvrb8c56yrh"))))
+ (base32 "05xw1pmagvkrbzga5pgl3xk9qyc6b5x73f842454f3w9ijspa8zy"))))
(build-system gnu-build-system)
(arguments
- '(#:tests? #f ; no tests
+ '(#:tests? #f ; no tests
#:phases (modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(define-public pre-commit
(package
(name "pre-commit")
- (version "2.6.0")
+ (version "2.8.1")
(source
(origin
;; No tests in the PyPI tarball.
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "144hcnz8vz07nkx7hk8a3ac822186ardwxa8jnl6s8qvm5ip92f2"))))
+ (base32 "0b3ks6viccq3n4p8i8zgfd40vp1k5nkhmmlz7p4nxcdizw8zxgn8"))))
(build-system python-build-system)
(arguments
`(#:phases
" and not test_run_a_ruby_hook"
" and not test_run_ruby_hook_with_disable_shared_gems"
" and not test_run_versioned_ruby_hook"
- ;; Disable Cargo tests
+ ;; Disable Cargo tests.
" and not test_additional_rust_cli_dependencies_installed"
" and not test_additional_rust_lib_dependencies_installed"
" and not test_local_rust_additional_dependencies"
" and not test_rust_hook"
+ ;; Disable dotnet tests.
+ " and not test_dotnet_hook"
+ ;; Disable nodejs tests.
+ " and not test_unhealthy_if_system_node_goes_missing"
+ " and not test_installs_without_links_outside_env"
+ " and not test_healthy_system_node"
;; Disable python2 test.
" and not test_switch_language_versions_doesnt_clobber"
;; These tests try to open a network socket.
" and not test_too_new_version"
" and not test_try_repo_uncommitted_changes"
" and not test_versions_ok"
- ;; This test tries to activate a virtualenv
+ ;; This test tries to activate a virtualenv.
" and not test_healthy_venv_creator"
;; Fatal error: Not a Git repository.
" and not test_all_cmds"
" and not test_try_repo"
- ;; No module named 'pip._internal.cli.main'
+ ;; No module named 'pip._internal.cli.main'.
" and not test_additional_dependencies_roll_forward"
- ; Assertion errors
+ ;; Assertion errors.
" and not test_install_existing_hooks_no_overwrite"
" and not test_uninstall_restores_legacy_hooks"))))
(add-before 'reset-gzip-timestamps 'make-files-writable
(find-files out "\\.gz$"))
#t))))))
(native-inputs
- `(("git" ,git)
- ("python-pytest" ,python-pytest)))
- (inputs
+ `(("git" ,git-minimal)
+ ("python-pytest" ,python-pytest)
+ ("python-re-assert" ,python-re-assert)))
+ ;; Propagate because pre-commit is also used as a module.
+ (propagated-inputs
`(("python-cfgv" ,python-cfgv)
("python-identify" ,python-identify)
("python-nodeenv" ,python-nodeenv)
execution of any hook written in any language before every commit.")
(license license:expat)))
-(define (mercurial-patch name revision hash)
- (origin
- (method url-fetch)
- (uri (string-append "https://www.mercurial-scm.org/repo/hg/raw-rev/" revision))
- (file-name (string-append "mercurial-" name ".patch"))
- (sha256 (base32 hash))))
-
-(define %mercurial-patches
- (list
- ;; These three patches fixes compatibility with the updated gzip module
- ;; in Python 3.8.2: <https://bz.mercurial-scm.org/show_bug.cgi?id=6284>.
- (mercurial-patch "python-mtime" "6c36a521572edf3a79ee567b118469b3192037cc"
- "0bmm7y40r8s081ws2sjvn1v8kvyfan4a97jl0fhdh7yc2pzxlzqq")
- (mercurial-patch "indent-gzip" "a23b859ad17dd0a5b9bb37846b69b5e30f99c44c"
- "1spscv9dgqv38m7h1liki93ax6w97gxayg17fr7wr6acjdfccpr9")
- (mercurial-patch "python-gzip" "b7ca03dff14c63d64ad7bfa36a2d0a36a6b62253"
- "0p88ffhx0kk21ssrsb156ffhpcb7g8mkwwkmq49qpmbm5ag2paf0")
- ;; This fixes an incompatibility with os.isfile in Python 3.8:
- ;; <https://bz.mercurial-scm.org/show_bug.cgi?id=6287>.
- (mercurial-patch "os-isfile" "6a8738dc4a019da4c9df5c26961aa09d45ce1c68"
- "0lr069m12kzrkmr1pmhaxg5lxmdwxabsza61qp1i1q70g7sy8lvy")))
-
(define-public mercurial
(package
(name "mercurial")
- (version "5.3.1")
+ (version "5.5.1")
(source (origin
(method url-fetch)
(uri (string-append "https://www.mercurial-scm.org/"
"release/mercurial-" version ".tar.gz"))
- (patches %mercurial-patches)
(sha256
(base32
- "1nbjpzjrzgql4hrvslpxwbcgn885ikq6ba1yb4w6p78rw9nzkhgp"))))
+ "0x08yjs26j88kh1bvl2g3r24lnfc023ry3i1cxfq6haray6sv5ag"))))
(build-system python-build-system)
(arguments
`(#:phases
;; not in 'guix environment -C' (even without /bin/sh)?
"test-nointerrupt.t"
+ ;; FIXME: This gets killed but does not receive an interrupt.
+ "test-commandserver.t"
+
+ ;; 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"
and offers an easy and intuitive interface.")
(license license:gpl2+)))
+(define-public python-hg-evolve
+ (package
+ (name "python-hg-evolve")
+ (version "10.0.1")
+ (source
+ (origin
+ (method hg-fetch)
+ (uri (hg-reference
+ (url "https://www.mercurial-scm.org/repo/evolve")
+ (changeset version)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1lz407373lfam9n02gq0l0rc2sjvn0m96kbzy93ipia3ika8fa68"))))
+ (build-system python-build-system)
+ (arguments
+ ;; Tests need mercurial source code.
+ '(#:tests? #f))
+ (propagated-inputs
+ `(("mercurial" ,mercurial)))
+ (home-page "https://www.mercurial-scm.org/doc/evolution/")
+ (synopsis "Flexible evolution of Mercurial history")
+ (description "Evolve is a Mercurial extension for faster and safer mutable
+history. It implements the changeset evolution concept for Mercurial.")
+ (license license:gpl2)))
+
(define-public neon
(package
(name "neon")
(define-public rcs
(package
(name "rcs")
- (version "5.9.4")
+ (version "5.10.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/rcs/rcs-"
version ".tar.xz"))
(sha256
(base32
- "1zsx7bb0rgvvvisiy4zlixf56ay8wbd9qqqcp1a1g0m1gl6mlg86"))
- (patches (search-patches "rcs-5.9.4-noreturn.patch"))))
+ "1if5pa4iip2p70gljm54nggfdnsfjxa4cqz8fpj07lvsijary39s"))
+ (patches (search-patches "rcs-5.10.0-no-stdin.patch"))))
(build-system gnu-build-system)
(native-inputs `(("ed" ,ed)))
- (arguments
- `(#:phases (modify-phases %standard-phases
- (add-before 'check 'disable-t810
- ;; See https://savannah.gnu.org/bugs/index.php?52288
- ;; Back-porting the fix is non-trivial, so disable for now.
- (lambda _
- (substitute* "tests/Makefile"
- ((" t810 \\\\\n") ""))
- #t)))))
(home-page "https://www.gnu.org/software/rcs/")
(synopsis "Per-file local revision control system")
(description
(define-public vc-dwim
(package
(name "vc-dwim")
- (version "1.9")
+ (version "1.10")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/vc-dwim/vc-dwim-"
version ".tar.xz"))
(sha256
(base32
- "0mf1dd7wdqxsm4fcfinfd7iadzarmzvg747pbsbi32qpavpk8gdf"))))
+ "0am6axxdvkm2vwgg0gjrd930yv4dlsdbf0rdv0zh5bhy1ir64rph"))))
(build-system gnu-build-system)
(inputs `(("perl" ,perl)))
(native-inputs
Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.")
(license license:gpl2+)))
+(define-public grokmirror
+ (package
+ (name "grokmirror")
+ (version "2.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url (string-append "https://git.kernel.org/pub/scm/"
+ "utils/grokmirror/grokmirror.git"))
+ (commit (string-append "v" version))))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32 "1cs43vf87x8x5k5ncgiwiclc92a1dvxpg2z6lh6psaiip808gylp"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f ; no test suite
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-manpages
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((man (string-append (assoc-ref outputs "out")
+ "/man/man1/")))
+ (mkdir-p man)
+ (for-each (lambda (file) (install-file file man))
+ (find-files "." "\\.1$")))
+ #t)))))
+ (propagated-inputs
+ `(("python-requests" ,python-requests)))
+ (home-page
+ "https://git.kernel.org/pub/scm/utils/grokmirror/grokmirror.git")
+ (synopsis "Framework to smartly mirror git repositories")
+ (description "Grokmirror enables replicating large git repository
+collections efficiently. Mirrors decide to clone and update repositories
+based on a manifest file published by servers.")
+ (license license:gpl3+)))
+
+(define-public b4
+ (package
+ (name "b4")
+ (version "0.5.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.kernel.org/pub/scm/utils/b4/b4.git")
+ (commit (string-append "v" version))))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32 "1w11fiyspyncz2m7njrjfylgzch4azi7560ngd8i733wvjjhg3mj"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f ; No tests.
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-manpages
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((man (string-append (assoc-ref outputs "out")
+ "/man/man5/")))
+ (mkdir-p man)
+ (for-each (lambda (file) (install-file file man))
+ (find-files "man" "\\.[1-8]$")))
+ #t)))))
+ (inputs
+ `(("python-requests" ,python-requests)))
+ (home-page "https://git.kernel.org/pub/scm/utils/b4/b4.git")
+ (synopsis "Tool for working with patches in public-inbox archives")
+ (description
+ "The @code{b4} command is designed to make it easier to participate in
+patch-based workflows for projects that have public-inbox archives.
+
+Features include:
+@itemize
+@item downloading a thread's mbox given a message ID
+@item processing an mbox so that is ready to be fed to @code{git-am}
+@item creating templated replies for processed patches and pull requests
+@item submitting cryptographic attestation for patches.
+@end itemize")
+ (license license:gpl2+)))
+
(define-public git-annex-remote-rclone
(package
(name "git-annex-remote-rclone")
(define-public git-lfs
(package
(name "git-lfs")
- (version "2.7.2")
+ (version "2.11.0")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "1nf40rbdz901vsahg5cm09pznpina6wimmxl0lmh8pn0mi51yzvc"))))
+ "05qd96bn2cl7gn5qarbcv6scdpj28qiwdfzalamqk5jjiidpmng5"))))
(build-system go-build-system)
(arguments
- '(#:import-path "github.com/git-lfs/git-lfs"))
+ `(#:import-path "github.com/git-lfs/git-lfs"
+ #:install-source? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'man-gen
+ ;; 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"
+ (invoke "make" "mangen"))))
+ (add-after 'build 'build-man-pages
+ (lambda _
+ (with-directory-excursion "src/github.com/git-lfs/git-lfs"
+ (invoke "make" "man"))
+ #t))
+ (add-after 'install 'install-man-pages
+ (lambda _
+ (with-directory-excursion "src/github.com/git-lfs/git-lfs/man"
+ (let ((out (assoc-ref %outputs "out")))
+ (for-each
+ (lambda (manpage)
+ (install-file manpage (string-append out "/share/man/man1")))
+ (find-files "." "^git-lfs.*\\.1$"))))
+ #t)))))
+ ;; make `ronn` available during build for man page generation
+ (native-inputs `(("ronn-ng" ,ronn-ng)))
(home-page "https://git-lfs.github.com/")
(synopsis "Git extension for versioning large files")
(description
for historians.")
(home-page "https://www.gnu.org/software/gnu-arch/")
(license license:gpl2))) ;version 2 only
+
+(define-public go-github-go-git
+ (package
+ (name "go-github-go-git")
+ (version "5.1.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/go-git/go-git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1vkcmhh2qq8c38sjbnzf0wvg2rzr19wssaq177bsvrjwj1xz1qbs"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:tests? #f ;requires network connection
+ #:import-path "github.com/go-git/go-git/v5"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'setup
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((git (assoc-ref inputs "git"))
+ (git-bin (string-append (assoc-ref inputs "git") "/bin"))
+ (git-exe (string-append git-bin "/git")))
+ (setenv "GIT_DIST_PATH=" git)
+ (setenv "GIT_EXEC_PATH=" git-bin)
+ (setenv "HOME" (getcwd))
+ (invoke git-exe "config" "--global" "user.email" "gha@example.com")
+ (invoke git-exe "config" "--global" "user.name" "GitHub Actions")
+ #t)
+ #t)))))
+ (native-inputs
+ `(("go-github-com-emirpasic-gods" ,go-github-com-emirpasic-gods)
+ ("go-github-com-go-git-gcfg" ,go-github-com-go-git-gcfg)
+ ("go-github-com-go-git-go-billy" ,go-github-com-go-git-go-billy)
+ ("go-github-com-imdario-mergo" ,go-github-com-imdario-mergo)
+ ("go-github-com-jbenet-go-context" ,go-github-com-jbenet-go-context)
+ ("go-github-com-kevinburke-ssh-config" ,go-github-com-kevinburke-ssh-config)
+ ("go-github-com-mitchellh-go-homedir" ,go-github-com-mitchellh-go-homedir)
+ ("go-github-com-sergi-go-diff" ,go-github-com-sergi-go-diff)
+ ("go-github-com-xanzy-ssh-agentf" ,go-github-com-xanzy-ssh-agent)
+ ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
+ ("go-golang-org-x-net" ,go-golang-org-x-net)
+ ("go-gopkg-in-warnings" ,go-gopkg-in-warnings)
+ ("go-github-com-go-git-go-git-fixtures" ,go-github-com-go-git-go-git-fixtures)
+ ("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)
+ ("go-github-com-alcortesm-tgz" ,go-github-com-alcortesm-tgz)
+ ("go-golang-org-x-text" ,go-golang-org-x-text)
+ ("git" ,git)))
+ (home-page "https://github.com/go-git/")
+ (synopsis "Git implementation library")
+ (description "This package provides a Git implementation library.")
+ (license license:asl2.0)))