X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/8843373322b2d1a95175c578659fb1521461ef6a..189be331acfda1c242a9c85fca8d2a0356742f48:/gnu/packages/version-control.scm diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 7c9b049849..83b11ddd97 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -1,22 +1,23 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Nikita Karetnikov ;;; Copyright © 2013 Cyril Roelandt -;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2013, 2014 Andreas Enge ;;; Copyright © 2015, 2016 Mathieu Lirzin ;;; Copyright © 2014, 2015, 2016 Mark H Weaver ;;; Copyright © 2014, 2016 Eric Bavier -;;; Copyright © 2015, 2016, 2017 Efraim Flashner +;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2015 Kyle Meyer ;;; Copyright © 2015, 2017 Ricardo Wurmus ;;; Copyright © 2016, 2017 Leo Famulari -;;; Copyright © 2016, 2017 ng0 -;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2016, 2017, 2018 ng0 +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Vasile Dumitrascu ;;; Copyright © 2017 Clément Lassieur ;;; Copyright © 2017 André ;;; Copyright © 2017 Marius Bakke ;;; Copyright © 2017 Stefan Reichör +;;; Copyright © 2017 Oleg Pykhalov ;;; ;;; This file is part of GNU Guix. ;;; @@ -50,6 +51,7 @@ #:use-module (gnu packages documentation) #:use-module (gnu packages base) #:use-module (gnu packages bison) + #:use-module (gnu packages boost) #:use-module (gnu packages cook) #:use-module (gnu packages curl) #:use-module (gnu packages docbook) @@ -57,26 +59,37 @@ #:use-module (gnu packages file) #:use-module (gnu packages flex) #:use-module (gnu packages gettext) + #:use-module (gnu packages gl) #:use-module (gnu packages groff) #:use-module (gnu packages haskell) + #:use-module (gnu packages haskell-check) + #:use-module (gnu packages haskell-crypto) + #:use-module (gnu packages haskell-web) + #:use-module (gnu packages image) #:use-module (gnu packages java) #:use-module (gnu packages linux) + #:use-module (gnu packages maths) #:use-module (gnu packages nano) #:use-module (gnu packages ncurses) #:use-module (gnu packages ssh) #:use-module (gnu packages web) #:use-module (gnu packages openstack) + #:use-module (gnu packages pcre) #:use-module (gnu packages perl) + #:use-module (gnu packages perl-check) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages readline) #:use-module (gnu packages databases) #:use-module (gnu packages admin) #:use-module (gnu packages xml) #:use-module (gnu packages emacs) #:use-module (gnu packages compression) + #:use-module (gnu packages sdl) #:use-module (gnu packages swig) #:use-module (gnu packages tcl) + #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module (gnu packages) #:use-module (ice-9 match) @@ -92,6 +105,7 @@ (uri (string-append "https://launchpad.net/bzr/" (version-major+minor version) "/" version "/+download/bzr-" version ".tar.gz")) + (patches (search-patches "bazaar-CVE-2017-14176.patch")) (sha256 (base32 "1cysix5k3wa6y7jjck3ckq3abls4gvz570s0v0hxv805nwki4i8d")))) @@ -124,14 +138,14 @@ as well as the classic centralized workflow.") (name "git") ;; XXX When updating Git, check if the special 'git:src' input to cgit needs ;; to be updated as well. - (version "2.14.2") + (version "2.16.2") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "18f70gfzwqd210806hmf94blcd7yv5h9ka6xqkpd2jhijqwp5sah")))) + "05y7480f2p7fkncbhf08zz56jbykcp0ia5gl6y3djs0lsa5mfq2m")))) (build-system gnu-build-system) (native-inputs `(("native-perl" ,perl) @@ -143,9 +157,8 @@ as well as the classic centralized workflow.") "mirror://kernel.org/software/scm/git/git-manpages-" version ".tar.xz")) (sha256 - (base32 - "1z05a7hxxndyby3dbj3gaw91sjwmky5d1yph96jmj0fhx78m1lvd")))))) + "01fbmfsqcv7jmyh80yg3fv5jwv78zvxys9b0fd6bdcy89h9ybvj2")))))) (inputs `(("curl" ,curl) ("expat" ,expat) @@ -182,6 +195,9 @@ as well as the classic centralized workflow.") "NO_INSTALL_HARDLINKS=indeed") #:test-target "test" + ;; Tests fail randomly when parallel: . + #:parallel-tests? #f + ;; The explicit --with-tcltk forces the build system to hardcode the ;; absolute file name to 'wish'. #:configure-flags (list (string-append "--with-tcltk=" @@ -237,6 +253,13 @@ as well as the classic centralized workflow.") ;; FIXME: Some hooks fail with "basename: command not found". ;; See 't/trash directory.t9164.../svn-hook.log'. (delete-file "t/t9164-git-svn-dcommit-concurrent.sh") + + ;; XXX: These tests fail intermittently for unknown reasons: + ;; . + (for-each delete-file + '("t/t9128-git-svn-cmd-branch.sh" + "t/t9167-git-svn-cmd-branch-subproject.sh" + "t/t9141-git-svn-multiple-branches.sh")) #t)) (add-after 'install 'install-shell-completion (lambda* (#:key outputs #:allow-other-keys) @@ -363,8 +386,12 @@ everything from small to very large projects with speed and efficiency.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1fdk9yhwvl1w1z71ykzcvgh4nsf8scxcbclz5anh98zpplmhmisa")) - (patches (search-patches "libgit2-0.25.1-mtime-0.patch")))) + "1b3figbhp5l83vd37vq6j2narrq4yl9pfw6mw0px0dzb1hz3jqka")) + (patches (search-patches "libgit2-0.25.1-mtime-0.patch")) + + ;; Remove bundled software. + (snippet '(delete-file-recursively "deps")) + (modules '((guix build utils))))) (build-system cmake-build-system) (outputs '("out" "debug")) (arguments @@ -384,7 +411,7 @@ everything from small to very large projects with speed and efficiency.") (lambda _ (zero? (system* "./libgit2_clar" "-v" "-Q"))))))) (inputs `(("libssh2" ,libssh2) - ("libcurl" ,curl) + ("http-parser" ,http-parser) ("python" ,python-wrapper))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -512,6 +539,18 @@ collaboration using typical untrusted file hosts or services.") (zero? (system* "tar" "--strip-components=1" "-C" "git" "-xf" (assoc-ref inputs "git:src"))))) + (add-after 'unpack 'patch-absolute-file-names + (lambda* (#:key inputs #:allow-other-keys) + (define (quoted-file-name input path) + (string-append "\"" input path "\"")) + (substitute* "ui-snapshot.c" + (("\"gzip\"") + (quoted-file-name (assoc-ref inputs "gzip") "/bin/gzip")) + (("\"bzip2\"") + (quoted-file-name (assoc-ref inputs "bzip2") "/bin/bzip2")) + (("\"xz\"") + (quoted-file-name (assoc-ref inputs "xz") "/bin/xz"))) + #t)) (delete 'configure) ; no configure script (add-after 'build 'build-man (lambda* (#:key make-flags #:allow-other-keys) @@ -532,7 +571,10 @@ collaboration using typical untrusted file hosts or services.") #t))))))) (native-inputs ;; For building manpage. - `(("asciidoc" ,asciidoc))) + `(("asciidoc" ,asciidoc) + ("gzip" ,gzip) + ("bzip2" ,bzip2) + ("xz" ,xz))) (inputs `(;; Cgit directly accesses some internal Git interfaces that changed in ;; Git 2.12. Try removing this special input and using the source of the @@ -540,10 +582,10 @@ collaboration using typical untrusted file hosts or services.") ("git:src" ,(origin (method url-fetch) - (uri "mirror://kernel.org/software/scm/git/git-2.10.4.tar.xz") + (uri "mirror://kernel.org/software/scm/git/git-2.10.5.tar.xz") (sha256 (base32 - "1pni4mgih5w42813dxljl61s7xmcpdnar34d9m4548hzpljjyd4l")))) + "1r2aa19gnrvm2y4fqcvpw1g9l72n48axqmpgv18s6d0y2p72vhzj")))) ("openssl" ,openssl) ("zlib" ,zlib))) (home-page "https://git.zx2c4.com/cgit/") @@ -594,35 +636,30 @@ default) of the repository.") (define-public shflags (package (name "shflags") - (version "1.2.0") + (version "1.2.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/kward/shflags/archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0zxw12haylaq60a335xlqcs4afw2zrgwqymmpw0m21r51w6irdmr")))) - (build-system trivial-build-system) + "1h9xfrwwdhzflipfwdcgcc3y7zapdslnyk1rg5y8jm7k144rfrs4")))) + (build-system gnu-build-system) (native-inputs `(("tar" ,tar) ("gzip" ,gzip))) (arguments - `(#:modules ((guix build utils)) - #:builder (begin - (use-modules (guix build utils)) - (let* ((source (assoc-ref %build-inputs "source")) - (tar (assoc-ref %build-inputs "tar")) - (gzip (assoc-ref %build-inputs "gzip")) - (output (assoc-ref %outputs "out")) - (srcdir (string-append output "/src"))) - (begin - (setenv "PATH" (string-append gzip "/bin")) - (system* (string-append tar "/bin/tar") "xzf" - source) - (chdir ,(string-append name "-" version)) - (mkdir-p srcdir) - (copy-file "src/shflags" - (string-append srcdir "/shflags")) - #t))))) + `(#:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (delete 'configure) ; nothing to configure + (delete 'build) ; nothing to build + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (src (string-append out "/src"))) + (install-file "shflags" src) + #t)))))) (home-page "https://github.com/kward/shflags") (synopsis "Command-line flags library for shell scripts") (description @@ -851,14 +888,14 @@ control to Git repositories.") (define-public mercurial (package (name "mercurial") - (version "4.2.3") + (version "4.4.1") (source (origin (method url-fetch) (uri (string-append "https://www.mercurial-scm.org/" "release/mercurial-" version ".tar.gz")) (sha256 (base32 - "1b7p3z8lin6hyyzkskskp065qnyfxid2yxnjygni0n4yv33qz404")))) + "0ik2ypzxjr6vpcghxvn39a73gw52629n7vwak04gnbycsq95aalg")))) (build-system python-build-system) (arguments `(;; Restrict to Python 2, as Python 3 would require @@ -1141,7 +1178,7 @@ standards-compliant ChangeLog entries based on the changes that it detects.") (base32 "1vjmda2zfjxg0qkaj8hfqa8g6bfwnn1ja8696rxrjgqq4w69wd95")))) (build-system gnu-build-system) - (home-page "http://invisible-island.net/diffstat/") + (home-page "https://invisible-island.net/diffstat/") (synopsis "Make histograms from the output of @command{diff}") (description "Diffstat reads the output of @command{diff} and displays a histogram of @@ -1276,22 +1313,33 @@ any project with more than one developer, is one of Aegis's major functions.") (define-public reposurgeon (package (name "reposurgeon") - (version "3.37") + (version "3.43") (source (origin (method url-fetch) (uri (string-append "http://www.catb.org/~esr/" name "/" name "-" version ".tar.xz")) (sha256 (base32 - "14asjg4xy3mhh5z0r3k7c1wv9y803j2zfq32g5q5m95sf7yzygan")))) + "1af0z14wcm4bk5a9ysinbwq2fp3lf5f7i8mvwh7286hr3fnagcaz")) + (patches (search-patches + "reposurgeon-add-missing-docbook-files.patch")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ;no test suite distributed - #:make-flags - (list (string-append "target=" (assoc-ref %outputs "out"))) + `(#:make-flags + (list "ECHO=echo" + (string-append "target=" (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases - (delete 'configure) + (add-after 'unpack 'patch-inputs + (lambda* (#:key inputs #:allow-other-keys) + (let ((tzdata (assoc-ref inputs "tzdata"))) + (substitute* "reposurgeon" + (("/usr/share/zoneinfo") + (string-append tzdata "/share/zoneinfo"))) + (substitute* "test/svn-to-svn" + (("/bin/echo") "echo")) + #t))) + (delete 'configure) ; no configure script (add-before 'build 'fix-docbook (lambda* (#:key inputs #:allow-other-keys) (substitute* (find-files "." "\\.xml$") @@ -1299,19 +1347,32 @@ any project with more than one developer, is one of Aegis's major functions.") (string-append (assoc-ref inputs "docbook-xml") "/xml/dtd/docbook/docbookx.dtd"))) #t)) + (add-before 'check 'set-up-test-environment + (lambda* (#:key inputs #:allow-other-keys) + (let ((tzdata (assoc-ref inputs "tzdata"))) + (setenv "TZDIR" (string-append tzdata "/share/zoneinfo")) + #t))) (add-after 'install 'install-emacs-data (lambda* (#:key outputs #:allow-other-keys) (install-file "reposurgeon-mode.el" (string-append (assoc-ref outputs "out") "/share/emacs/site-lisp"))))))) (inputs - `(("python" ,python-wrapper))) + `(("python" ,python-wrapper) + ("tzdata" ,tzdata))) (native-inputs - `(("asciidoc" ,asciidoc) - ("docbook-xml" ,docbook-xml-4.1.2) + `( ;; For building documentation. + ("asciidoc" ,asciidoc) + ("docbook-xml" ,docbook-xml) ("docbook-xsl" ,docbook-xsl) ("libxml2" ,libxml2) - ("xmlto" ,xmlto))) + ("xmlto" ,xmlto) + + ;; For tests. + ("cvs" ,cvs) + ("git" ,git) + ("mercurial" ,mercurial) + ("subversion" ,subversion))) (home-page "http://www.catb.org/~esr/reposurgeon/") (synopsis "Edit version-control repository history") (description "Reposurgeon enables risky operations that version-control @@ -1328,15 +1389,15 @@ from Subversion to any supported Distributed Version Control System (DVCS).") (define-public tig (package (name "tig") - (version "2.2") + (version "2.3.0") (source (origin (method url-fetch) (uri (string-append - "http://jonas.nitro.dk/tig/releases/tig-" - version ".tar.gz")) + "https://github.com/jonas/tig/releases/download/tig-" + version "/tig-" version ".tar.gz")) (sha256 (base32 - "0k3m894vfkgkj7xbr0j6ph91351dl6id5f0hk2ksjp5lmg9i6llg")))) + "1vf02snz8qiiqiyqss1z63rzzmwbrc9agcgh21jdq13rja306vv8")))) (build-system gnu-build-system) (native-inputs `(("asciidoc" ,asciidoc) @@ -1351,8 +1412,8 @@ from Subversion to any supported Distributed Version Control System (DVCS).") (lambda _ (zero? (system* "make" "install-doc"))))) #:tests? #f)) ; tests require access to /dev/tty - ;;`(#:test-target "test")) - (home-page "http://jonas.nitro.dk/tig/") + ;; #:test-target "test")) + (home-page "https://jonas.github.io/tig/") (synopsis "Ncurses-based text user interface for Git") (description "Tig is an ncurses text user interface for Git, primarily intended as @@ -1373,11 +1434,6 @@ output of the 'git' command.") (base32 "1ydis4y0amkgfr4y60sn076f1l41ya2kn89kfd9fqf44f9ccgb5r")))) (build-system gnu-build-system) - (arguments - '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vfi"))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake))) (home-page "https://github.com/0-wiz-0/findnewest/releases") @@ -1390,7 +1446,7 @@ modification time.") (define-public myrepos (package (name "myrepos") - (version "1.20170129") + (version "1.20171231") (source (origin (method git-fetch) @@ -1399,7 +1455,7 @@ modification time.") (commit version))) (file-name (string-append name "-" version "-checkout")) (sha256 - (base32 "15i9bs2i25l7ibv530ghy8280kklcgm5kr6j86s7iwcqqckd0czp")))) + (base32 "10q7lpx152xnkk701fscn4dq99q9znnmv3bc2482khhjg7z8rps0")))) (build-system gnu-build-system) (inputs `(("perl" ,perl))) @@ -1449,7 +1505,7 @@ repository\" with git-annex.") (define-public fossil (package (name "fossil") - (version "2.2") + (version "2.5") (source (origin (method url-fetch) @@ -1463,7 +1519,7 @@ repository\" with git-annex.") "fossil-src-" version ".tar.gz"))) (sha256 (base32 - "0wfgacfg29dkl0c3l1rp5ji0kraa64gcbg5lh8p4m7mqdqcq53wv")))) + "1lxawkhr1ki9fqw8076fxib2b1w673449yzb6vxjshqzh5h77c7r")))) (build-system gnu-build-system) (native-inputs `(("tcl" ,tcl) ;for configuration only @@ -1505,14 +1561,14 @@ a built-in wiki, built-in file browsing, built-in tickets system, etc.") (define-public stagit (package (name "stagit") - (version "0.5") + (version "0.7.2") (source (origin (method url-fetch) (uri (string-append "https://dl.2f30.org/releases/" name "-" version ".tar.gz")) (sha256 (base32 - "0ym1dwzn2z23hcg53qh1m1g5pfibrfnnlp3sm3z1v4mhz0pgaj56")))) + "1m3s9g1z9szbjrhm8sic91xh6f2bfpi56rskdkqd5wc4wdycpyi5")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; No tests @@ -1536,7 +1592,7 @@ be served with a HTTP file server of your choice.") (define-public darcs (package (name "darcs") - (version "2.12.4") + (version "2.12.5") (source (origin (method url-fetch) @@ -1544,7 +1600,7 @@ be served with a HTTP file server of your choice.") "darcs-" version ".tar.gz")) (sha256 (base32 - "0jfwiwl5k8wspciq1kpmvh5yap4japrf97s9pvhcybxxhaj3ds28")) + "0lrm0sal5pl453mkqn8b9fc9l7lwinc140iqihya9g17bk408nrm")) (modules '((guix build utils))) ;; Remove time-dependent code for reproducibility. (snippet @@ -1559,8 +1615,10 @@ be served with a HTTP file server of your choice.") (arguments `(#:configure-flags '("-fpkgconfig" "-fcurl" "-flibiconv" "-fthreaded" "-fnetwork-uri" "-fhttp" "--flag=executable" - "--flag=library") - #:tests? #f)) ; 20 failing shell tests out of over 400 + "--flag=library" + "--allow-newer=shelly") + ;; FIXME: darcs is not compatible with the latest QuickCheck + #:tests? #f)) (inputs `(("ghc-cmdargs" ,ghc-cmdargs) ("ghc-split" ,ghc-split) @@ -1578,7 +1636,6 @@ be served with a HTTP file server of your choice.") ("ghc-bytestring-builder" ,ghc-bytestring-builder) ("ghc-cryptohash" ,ghc-cryptohash) ("ghc-data-ordlist" ,ghc-data-ordlist) - ("ghc-directory" ,ghc-directory) ("ghc-fgl" ,ghc-fgl) ("ghc-system-filepath" ,ghc-system-filepath) ("ghc-graphviz" ,ghc-graphviz) @@ -1589,7 +1646,6 @@ be served with a HTTP file server of your choice.") ("ghc-mtl" ,ghc-mtl) ("ghc-old-time" ,ghc-old-time) ("ghc-parsec" ,ghc-parsec) - ("ghc-process" ,ghc-process) ("ghc-random" ,ghc-random) ("ghc-regex-applicative" ,ghc-regex-applicative) ("ghc-regex-compat-tdfa" ,ghc-regex-compat-tdfa) @@ -1703,3 +1759,42 @@ network protocols, and core version control algorithms.") `(("java-javaewah" ,java-javaewah) ("java-jsch" ,java-jsch) ("java-slf4j-api" ,java-slf4j-api))))) + +(define-public gource + (package + (name "gource") + (version "0.47") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/acaudwell/Gource/releases/download" + "/gource-" version "/gource-" version ".tar.gz")) + (sha256 + (base32 + "1llqwdnfa1pff8bxk27qsqff1fcg0a9kfdib0rn7p28vl21n1cgj")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list (string-append "--with-boost-libdir=" + (assoc-ref %build-inputs "boost") + "/lib")))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("boost" ,boost) + ("ftgl" ,ftgl) + ("glew" ,glew) + ("glm" ,glm) + ("glu" ,glu) + ("libpng" ,libpng) + ("mesa" ,mesa) + ("pcre" ,pcre) + ("sdl-union" ,(sdl-union (list sdl2 sdl2-image))))) + (home-page "http://gource.io/") + (synopsis "3D visualisation tool for source control repositories") + (description "@code{gource} provides a software version control +visualization. The repository is displayed as a tree where the root of the +repository is the centre, directories are branches and files are leaves. +Contributors to the source code appear and disappear as they contribute to +specific files and directories.") + (license license:gpl3+)))