;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
;;; 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, 2020 Kyle Meyer <kyle@kyleam.com>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2018, 2020, 2021 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 © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017, 2020 EuAndreh <eu@euandre.org>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
+;;; Copyright © 2021 Léo Le Bouter <lle-bout@zaclys.net>
+;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org>
+;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages gnome)
#:use-module (gnu packages golang)
#:use-module (gnu packages groff)
#:use-module (gnu packages guile)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
(define-public git
(package
(name "git")
- (version "2.29.2")
+ (version "2.31.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/software/scm/git/git-"
version ".tar.xz"))
(sha256
(base32
- "1h87yv117ypnc0yi86941089c14n91gixk8b6shj2y35prp47z7j"))))
+ "10367n5sv4nsgaxy486pbp7nscx34vjk8vrb06jm9ffm8ix42qcz"))))
(build-system gnu-build-system)
(native-inputs
`(("native-perl" ,perl)
version ".tar.xz"))
(sha256
(base32
- "14npkg9rnp2yclsx5p622qpm6byzfy5k5wb209vkmm5r60m4mm72"))))
+ "00n7vbfmd3ywgjksgwrszwj0l2niba64qkaq07ra4p8mawy483ax"))))
;; For subtree documentation.
("asciidoc" ,asciidoc-py3)
("docbook-xsl" ,docbook-xsl)
- ("xmlto" ,xmlto)))
+ ("xmlto" ,xmlto)
+ ("pkg-config" ,pkg-config)))
(inputs
`(("curl" ,curl)
("expat" ,expat)
;; For 'git gui', 'gitk', and 'git citool'.
("tcl" ,tcl)
- ("tk" ,tk)))
+ ("tk" ,tk)
+
+ ;; For 'git-credential-libsecret'
+ ("glib" ,glib)
+ ("libsecret" ,libsecret)))
(outputs '("out" ; the core
"send-email" ; for git-send-email
"svn" ; git-svn
"credential-netrc" ; git-credential-netrc
+ "credential-libsecret" ; git-credential-libsecret
"subtree" ; git-subtree
"gui")) ; gitk, git gui
(arguments
#:modules ((srfi srfi-1)
(srfi srfi-26)
+ ((guix build gnu-build-system) #:prefix gnu:)
,@%gnu-build-system-modules)
#:phases
(modify-phases %standard-phases
`("PERL5LIB" ":" prefix
(,(string-append (assoc-ref outputs "out") "/share/perl5"))))
#t)))
+ (add-after 'install 'install-credential-libsecret
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((libsecret (assoc-ref outputs "credential-libsecret")))
+ (with-directory-excursion "contrib/credential/libsecret"
+ ((assoc-ref gnu:%standard-phases 'build))
+ (install-file "git-credential-libsecret"
+ (string-append libsecret "/bin"))
+ #t))))
(add-after 'install 'install-subtree
(lambda* (#:key outputs #:allow-other-keys)
(let ((subtree (assoc-ref outputs "subtree")))
(delete 'install-man-pages)
(delete 'install-subtree)
(delete 'install-credential-netrc)
+ (delete 'install-credential-libsecret)
(add-after 'install 'remove-unusable-perl-commands
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
("perl" ,perl)
("zlib" ,zlib)))))
+(define-public git2cl
+ (let ((commit "1d74d4c0d933fc69ed5cec838c73502584dead05"))
+ (package
+ (name "git2cl")
+ (version (string-append "20120919." (string-take commit 7)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.nongnu.org/git/git2cl.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0wnnbm2sjvfj0qrksj89jlnl69miwl0vk3wrrvgvpclgys3na2g1"))))
+ (build-system copy-build-system)
+ (inputs
+ `(("perl" ,perl)))
+ (arguments
+ `(#:install-plan '(("git2cl" "bin/git2cl"))))
+ (home-page "https://savannah.nongnu.org/projects/git2cl")
+ (synopsis "Convert Git logs to GNU ChangeLog format")
+ (description "@code{git2cl} is a command line tool for converting Git
+logs to GNU ChangeLog format.")
+ (license license:gpl2+))))
+
(define-public gitless
(package
(name "gitless")
(define-public stgit
(package
(name "stgit")
- (version "0.23")
+ (version "1.0")
(source
(origin
(method git-fetch)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0bgxgsd6nj6gkk74c56vrjsyr7j19jrj6cx2ma6f7b20wriznhd5"))))
+ (base32 "0dixgvjlsk3xisj8blzdhh0nphm5zqkjbj081wgsba52z4zq1y0q"))))
(build-system python-build-system)
(native-inputs
`(("perl" ,perl)))
(define-public mercurial
(package
(name "mercurial")
- (version "5.5.1")
+ (version "5.6.1")
(source (origin
(method url-fetch)
(uri (string-append "https://www.mercurial-scm.org/"
"release/mercurial-" version ".tar.gz"))
(sha256
(base32
- "0x08yjs26j88kh1bvl2g3r24lnfc023ry3i1cxfq6haray6sv5ag"))))
+ "1bgz8f1a7lnmh6lzcvwg6q1yx6i7yibhwy06l4k55i04957jap75"))))
(build-system python-build-system)
(arguments
`(#:phases
"tests/test-run-tests.t"
"tests/test-transplant.t")
(("/bin/sh")
- (which "sh")))
- #t))
+ (which "sh")))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(with-directory-excursion "tests"
;; PATH from before (that's why we are building it!)?
"test-hghave.t"
- ;; FIXME: Why does this fail in the build container, but
- ;; not in 'guix environment -C' (even without /bin/sh)?
+ ;; 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"
"--slowtimeout" "86400"
;; The test suite takes a long time and produces little
;; output by default. Prevent timeouts due to silence.
- "-v"))
- #t))))))
+ "-v"))))))))
;; The following inputs are only needed to run the tests.
(native-inputs
`(("python-nose" ,python-nose)
(define-public neon
(package
(name "neon")
- (version "0.30.2")
+ (version "0.31.2")
(source (origin
(method url-fetch)
- (uri (string-append "http://www.webdav.org/neon/neon-"
+ (uri (string-append "https://notroj.github.io/neon/neon-"
version ".tar.gz"))
(sha256
(base32
- "1jpvczcx658vimqm7c8my2q41fnmjaf1j03g7bsli6rjxk6xh2yv"))))
+ "0y46dbhiblcvg8k41bdydr3fivghwk73z040ki5825d24ynf67ng"))))
(build-system gnu-build-system)
(native-inputs
`(("perl" ,perl)
;; https://sourceware.org/bugzilla/show_bug.cgi?id=16475
#:tests? #f
#:configure-flags '("--enable-shared"
+ "--disable-static"
;; requires libgnutils-config, deprecated
;; in gnutls 2.8.
; "--with-ssl=gnutls")))
"--with-ssl=openssl")))
- (home-page "http://www.webdav.org/neon/")
+ (home-page "https://notroj.github.io/neon/")
(synopsis "HTTP and WebDAV client library")
(description
"Neon is an HTTP and WebDAV client library, with a C interface and the
(define-public subversion
(package
(name "subversion")
- (version "1.14.0")
+ (version "1.14.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://apache/subversion/"
"subversion-" version ".tar.bz2"))
(sha256
(base32
- "00i1f88snlpcnsycpn6r315h6792l5nkr2p5k6kq6yprz4cf5a3b"))))
+ "1ag1hvcm9q92kgalzbbgcsq9clxnzmbj9nciz9lmabjx4lyajp9c"))))
(build-system gnu-build-system)
(arguments
'(#:parallel-tests? #f ; TODO Seems to cause test failures on
(define-public cvs-fast-export
(package
(name "cvs-fast-export")
- (version "1.55")
+ (version "1.56")
(source (origin
(method url-fetch)
(uri (string-append "http://www.catb.org/~esr/cvs-fast-export/"
"cvs-fast-export-" version ".tar.gz"))
(sha256
(base32
- "06y2myhhv2ap08bq7d7shq0b7lq6wgznwrpz6622xq66cxkf2n5g"))))
+ "058bzp3npng48ascls943m16kgvrl0h197a10brf7mvx8zpfc7sc"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(define-public diffstat
(package
(name "diffstat")
- (version "1.63")
+ (version "1.64")
(source (origin
(method url-fetch)
(uri
"diffstat-" version ".tgz")))
(sha256
(base32
- "0vyw200s5dv1257pmrh6c6fdkmw3slyz5szpqfx916xr04sdbpby"))))
+ "1z7pwcv48fjnhxrjcsjdy83x8b9ckl582mbbds90a79fkn6y7bmq"))))
(build-system gnu-build-system)
(home-page "https://invisible-island.net/diffstat/")
(synopsis "Make histograms from the output of @command{diff}")
(define-public tig
(package
(name "tig")
- (version "2.5.1")
+ (version "2.5.3")
(source (origin
(method url-fetch)
(uri (string-append
version "/tig-" version ".tar.gz"))
(sha256
(base32
- "0r4y9hyvpkplaxrzslws3asz652d83qh3bjwvmp8assga8s5s3ah"))))
+ "1p1575yh4daxjifywxkd0hgyfwciylqcm2qakawvwn6mk620ca75"))))
(build-system gnu-build-system)
(native-inputs
`(("asciidoc" ,asciidoc)
(define-public grokmirror
(package
(name "grokmirror")
- (version "2.0.5")
+ (version "2.0.8")
(source
(origin
(method git-fetch)
(commit (string-append "v" version))))
(file-name (string-append name "-" version "-checkout"))
(sha256
- (base32 "006ar3kc6fw1sq300ar9np4a63qzzsdama6cv30wh65v5mqw1mnv"))))
+ (base32 "0zfiwjw02df3mzpawp9jx61iwp0nhcf6y03cs8022l0hkvc7blbr"))))
(build-system python-build-system)
(arguments
`(#:tests? #f ; no test suite
(define-public b4
(package
(name "b4")
- (version "0.6.1")
+ (version "0.6.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "b4" version))
(sha256
- (base32 "01qid6mvddikcdpf2ihsyn8x3z5j2n64g0ip9pqbx42hrc50pmcz"))))
+ (base32 "1j904dy9cwxl85k2ngc498q5cdnqwsmw3jibjr1m55w8aqdck68z"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Fixes issue with dependency requirements being too strict. See upstream commit:
+ ;; https://git.kernel.org/pub/scm/utils/b4/b4.git/commit/?id=31348a14afdb1d39e7faf9576eaddea1ced76e19
+ (substitute* "setup.py"
+ (("~=") ">="))
+ #t))))
(build-system python-build-system)
(arguments '(#:tests? #f)) ; No tests.
(inputs
(define-public git-lfs
(package
(name "git-lfs")
- (version "2.11.0")
+ (version "2.13.3")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "05qd96bn2cl7gn5qarbcv6scdpj28qiwdfzalamqk5jjiidpmng5"))))
+ "0r7dmqhkhz91d3n7qfpny483x8f1n88yya22j2fvx75rgg33z2sg"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/git-lfs/git-lfs"
(license license:asl2.0)))
(define-public gita
- (let ((commit "62eb3d69874f75bdd6f95743e57315bc59890f70")
+ (let ((commit "e41b504dca90a25e9be27f296da7ce22e5782893")
(revision "1"))
(package
(name "gita")
- (version (git-version "0.10.10" revision commit))
+ (version (git-version "0.12.9" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "1jn5wnmjbdrrgz9fif7s81pv3g92q0wjcqy5qxl77kjy7iv0kpfp"))))
+ "1k03zgcbhl91cgyh4k7ywyjp00y63q4bqbimncqh5b3lni8l8j5l"))))
(build-system python-build-system)
(native-inputs
`(("git" ,git) ;for tests
If several repos are related, it helps to see their status together.")
(license license:expat))))
+
+(define-public ghq
+ (package
+ (name "ghq")
+ (version "1.1.7")
+ (home-page "https://github.com/x-motemen/ghq")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "155sfmhmh4ia3iinm1s8fk7fxyn5dxdryad9xkbg7mr3i3ikqjwh"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:install-source? #f
+ #:import-path "github.com/x-motemen/ghq"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-completions
+ (lambda* (#:key outputs import-path #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bash-completion (string-append out "/etc/bash_completion.d"))
+ (zsh-completion (string-append out "/share/zsh/site-functions")))
+ (with-directory-excursion (string-append "src/" import-path)
+ (mkdir-p bash-completion)
+ (copy-file "misc/bash/_ghq"
+ (string-append bash-completion "/ghq"))
+ (mkdir-p zsh-completion)
+ (copy-file "misc/zsh/_ghq"
+ (string-append zsh-completion "/_ghq"))))
+ #t)))))
+ (native-inputs
+ `(("git" ,git-minimal)))
+ (inputs
+ `(("github.com/songmu/gitconfig" ,go-github-com-songmu-gitconfig)
+ ("github.com/mattn/go-isatty" ,go-github-com-mattn-go-isatty)
+ ("github.com/motemen/go-colorine" ,go-github-com-motemen-go-colorine)
+ ("github.com/saracen/walker" ,go-github-com-saracen-walker)
+ ("github.com/urfave/cli/v2" ,go-github-com-urfave-cli-v2)
+ ("golang.org/x/net/html" ,go-golang-org-x-net-html)
+ ("golang.org/x/sync/errgroup" ,go-golang.org-x-sync-errgroup)))
+ (synopsis "Manage remote repository clones")
+ (description
+ "@code{ghq} provides a way to organize remote repository clones, like
+@code{go get} does. When you clone a remote repository by @code{ghq get}, ghq
+makes a directory under a specific root directory (by default @file{~/ghq})
+using the remote repository URL's host and path.")
+ (license license:expat)))