gnu: Update URLs for sourceforge.net.
[jackhill/guix/guix.git] / gnu / packages / version-control.scm
index 1edf9f8..58bcaad 100644 (file)
@@ -1,12 +1,12 @@
 ;;; 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 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
-;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
+;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com>
 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 
 (define-module (gnu packages version-control)
   #:use-module ((guix licenses)
-                #:select (asl2.0 bsd-2
+                #:select (asl2.0 bsd-2 bsd-3
                           gpl1+ gpl2 gpl2+ gpl3+ lgpl2.1
-                          x11-style))
+                          public-domain x11-style))
+  #:use-module (guix utils)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
-  #:use-module (guix build utils)
   #:use-module (gnu packages apr)
   #:use-module (gnu packages autotools)
-  #:use-module (gnu packages asciidoc)
+  #:use-module (gnu packages documentation)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages cook)
 (define-public bazaar
   (package
     (name "bazaar")
-    (version "2.6.0")
+    (version "2.7.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "https://launchpad.net/bzr/2.6/" version
+      (uri (string-append "https://launchpad.net/bzr/"
+                          (version-major+minor version) "/" version
                           "/+download/bzr-" version ".tar.gz"))
       (sha256
        (base32
-        "1c6sj77h5f97qimjc14kr532kgc0jk3wq778xrkqi0pbh9qpk509"))))
+        "1cysix5k3wa6y7jjck3ckq3abls4gvz570s0v0hxv805nwki4i8d"))))
     (build-system python-build-system)
     (inputs
      ;; Note: 'tools/packaging/lp-upload-release' and 'tools/weavemerge.sh'
@@ -111,14 +112,14 @@ as well as the classic centralized workflow.")
   ;; Keep in sync with 'git-manpages'!
   (package
    (name "git")
-   (version "2.6.3")
+   (version "2.9.1")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://kernel.org/software/scm/git/git-"
                                 version ".tar.xz"))
             (sha256
              (base32
-              "18vxb5fmwmrps504m23a4xdl29m7ibca3hmz0mn9jc38sz9y95yn"))))
+              "18l2jb4bkp9ljz6p2aviwzxqyzza9z3v6h1pnkz7kjf1fay61zp8"))))
    (build-system gnu-build-system)
    (native-inputs
     `(("native-perl" ,perl)
@@ -147,7 +148,12 @@ as well as the classic centralized workflow.")
               "svn"                               ; git-svn
               "gui"))                             ; gitk, git gui
    (arguments
-    `(#:make-flags `("V=1") ; more verbose compilation
+    `(#:make-flags `("V=1"                        ;more verbose compilation
+
+                     ;; By default 'make install' creates hard links for
+                     ;; things in 'libexec/git-core', which leads to huge
+                     ;; nars; see <http://bugs.gnu.org/21949>.
+                     "NO_INSTALL_HARDLINKS=indeed")
       #:test-target "test"
       #:tests? #f ; FIXME: Many tests are failing
 
@@ -259,6 +265,7 @@ as well as the classic centralized workflow.")
     ;; FIXME: This variable designates a single file; it is not a search path.
     (list (search-path-specification
            (variable "GIT_SSL_CAINFO")
+           (file-type 'regular)
            (files '("etc/ssl/certs/ca-certificates.crt")))))
 
    (synopsis "Distributed version control system")
@@ -285,7 +292,7 @@ everything from small to very large projects with speed and efficiency.")
                     version ".tar.xz"))
               (sha256
                (base32
-                "1d7jb4pyln0prgxpxkfiy2l6ragsjzsyqyxbssbchdvl145gj8xf"))))
+                "1v9icsf85vvrrg7fakm91d11q23rvnh6dq4b4c4ya8v95z00mg8p"))))
     (build-system trivial-build-system)
     (arguments
      '(#:modules ((guix build utils))
@@ -317,7 +324,7 @@ command.")))
 (define-public libgit2
   (package
     (name "libgit2")
-    (version "0.23.3")
+    (version "0.24.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/libgit2/libgit2/"
@@ -325,7 +332,7 @@ command.")))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1bhyzw9b7xr1vj24hgbwbfjw2wiaigiklccsdvd8r4kmcr180p1d"))))
+                "1ppyfwxc276d2p2pwbzlmvs2bkgng425rl8k2rf9nsq66jxqq6b0"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
@@ -344,7 +351,7 @@ command.")))
     (inputs
      `(("libssh2" ,libssh2)
        ("libcurl" ,curl)
-       ("python" ,python)
+       ("python" ,python-wrapper)
        ("openssl" ,openssl)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -357,17 +364,78 @@ write native speed custom Git applications in any language with bindings.")
     ;; GPLv2 with linking exception
     (license gpl2)))
 
+(define-public cgit
+  (package
+    (name "cgit")
+    (version "1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://git.zx2c4.com/cgit/snapshot/cgit-"
+                    version ".tar.xz"))
+              (sha256
+               (base32
+                "0kbh835p7dl4h88qv55fyfh1za09cgnqh63rii325w9215hm95x8"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f ; XXX: fail to build the in-source git.
+       #:test-target "test"
+       #:make-flags '("CC=gcc" "SHELL_PATH=sh")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'unpack-git
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Unpack the source of git into the 'git' directory.
+             (zero? (system*
+                     "tar" "--strip-components=1" "-C" "git" "-xf"
+                     (assoc-ref inputs "git:src")))))
+         (delete 'configure) ; no configure script
+         (add-after 'build 'build-man
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (zero? (apply system* `("make" ,@make-flags "doc-man")))))
+         (replace 'install
+           (lambda* (#:key make-flags outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (and (zero? (apply system*
+                                  `("make" ,@make-flags
+                                    ,(string-append "prefix=" out)
+                                    ,(string-append
+                                      "CGIT_SCRIPT_PATH=" out "/share/cgit")
+                                    "install" "install-man")))
+                    ;; Move the platform-dependent 'cgit.cgi' into lib
+                    ;; to get it stripped.
+                    (rename-file (string-append out "/share/cgit/cgit.cgi")
+                                 (string-append out "/lib/cgit/cgit.cgi"))
+                    #t)))))))
+    (native-inputs
+     ;; For building manpage.
+     `(("asciidoc" ,asciidoc)
+       ("docbook-xml" ,docbook-xml)
+       ("docbook-xsl" ,docbook-xsl)
+       ("xmllint" ,libxml2)
+       ("xsltprot" ,libxslt)))
+    (inputs
+     `(("git:src" ,(package-source git))
+       ("openssl" ,openssl)
+       ("zlib" ,zlib)))
+    (home-page "https://git.zx2c4.com/cgit/")
+    (synopsis "Web frontend for git repositories")
+    (description
+     "CGit is an attempt to create a fast web interface for the Git SCM, using
+a built-in cache to decrease server I/O pressure.")
+    (license gpl2)))
+
 (define-public shflags
   (package
     (name "shflags")
-    (version "1.0.3")
+    (version "1.2.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://shflags.googlecode.com/files/"
-                                  "shflags-" version ".tgz"))
+              (uri (string-append "https://github.com/kward/shflags/archive/v"
+                                  version ".tar.gz"))
               (sha256
                (base32
-                "08laxhf1hifh3w4j0hri5ppcklaqz0mnkmbaz8j0wxih29vi8slm"))))
+                "0zxw12haylaq60a335xlqcs4afw2zrgwqymmpw0m21r51w6irdmr"))))
     (build-system trivial-build-system)
     (native-inputs `(("tar" ,tar)
                      ("gzip" ,gzip)))
@@ -389,7 +457,7 @@ write native speed custom Git applications in any language with bindings.")
                        (copy-file "src/shflags"
                                   (string-append srcdir "/shflags"))
                        #t)))))
-    (home-page "https://code.google.com/p/shflags/")
+    (home-page "https://github.com/kward/shflags")
     (synopsis "Command-line flags library for shell scripts")
     (description
      "Shell Flags (shFlags) is a library written to greatly simplify the
@@ -411,7 +479,7 @@ will work.")
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/nvie/gitflow/")
-                    (commit "15aab26")))
+                    (commit "15aab26490facf285acef56cb5d61025eacb3a69")))
               (sha256
                (base32
                 "01fs97q76fdfnvmrh2cyjhywcs3pykf1dg58sy0frflnsdzs6prx"))))
@@ -445,10 +513,10 @@ lot easier.")
     (license bsd-2)))
 
 (define-public git-test-sequence
-  (let ((commit "48e5a2f"))
+  (let ((commit "48e5a2f5a13a5f30452647237e23362b459b9c76"))
     (package
       (name "git-test-sequence")
-      (version (string-append "20140312." commit))
+      (version (string-append "20140312." (string-take commit 7)))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
@@ -482,19 +550,16 @@ also walk each side of a merge and test those changes individually.")
 (define-public gitolite
   (package
     (name "gitolite")
-    (version "3.6.2")
+    (version "3.6.5")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://github.com/sitaramc/gitolite/archive/v"
                     version ".tar.gz"))
               (file-name (string-append name "-" version ".tar.gz"))
-              ;; Commit ed807a4 upstream
-              (patches
-               (list (search-patch "gitolite-openssh-6.8-compat.patch")))
               (sha256
                (base32
-                "1gsgzi9ayb4rablki3mqr11b0h8db4xg43df660marfpacmkfb01"))))
+                "0xpqg04gyr4dhdhxx5lbk61lwwd5ml32530bigg2qy663icngwqm"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f ; no tests
@@ -541,14 +606,14 @@ control to Git repositories.")
 (define-public mercurial
   (package
     (name "mercurial")
-    (version "3.2.4")
+    (version "3.8.4")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://mercurial.selenic.com/release/mercurial-"
-                                 version ".tar.gz"))
+             (uri (string-append "https://www.mercurial-scm.org/"
+                                 "release/mercurial-" version ".tar.gz"))
              (sha256
               (base32
-               "1g7nfvapxj5k44dyp0p08v37s0zmrj2vl0rjgfd8297x0afidm08"))))
+               "19ixvxgifx48lxp9vdmsf88nnjsxl035ahmp3iw1vyilkpqkwbjb"))))
     (build-system python-build-system)
     (arguments
      `(;; Restrict to Python 2, as Python 3 would require
@@ -557,7 +622,7 @@ control to Git repositories.")
        ;; FIXME: Disabled tests because they require the nose unit
        ;; testing framework: https://nose.readthedocs.org/en/latest/ .
        #:tests? #f))
-    (home-page "http://mercurial.selenic.com")
+    (home-page "https://www.mercurial-scm.org/")
     (synopsis "Decentralized version control system")
     (description
      "Mercurial is a free, distributed source control management tool.
@@ -568,14 +633,14 @@ and offers an easy and intuitive interface.")
 (define-public neon
   (package
     (name "neon")
-    (version "0.30.0")
+    (version "0.30.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "http://www.webdav.org/neon/neon-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "1hlhg5w505jxdvaf7bq17057f6a48dry981g7lp2gwrhbp5wyqi9"))))
+               "1pawhk02x728xn396a1kcivy9gqm94srmgad6ymr9l0qvk02dih0"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("perl" ,perl)
@@ -616,14 +681,14 @@ property manipulation.")
 (define-public subversion
   (package
     (name "subversion")
-    (version "1.8.15")
+    (version "1.8.16")
     (source (origin
              (method url-fetch)
              (uri (string-append "http://archive.apache.org/dist/subversion/"
                                  "subversion-" version ".tar.bz2"))
              (sha256
               (base32
-               "0b68rjy1sjd66nqcswrm1bhda3vk2ngkgs6drcanmzbcd3vs366g"))))
+               "0imkxn25n6sbcgfldrx4z29npjprb1lxjm5fb89q4297161nx3zi"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (alist-cons-after
@@ -786,8 +851,8 @@ masters from remote CVS hosts.")
                "094pjwshvazlgagc254in2xvrp93vhcj0kb5ms17qs7sch99x9z2"))))
     (build-system gnu-build-system)
     (inputs `(("perl" ,perl)
-              ("inetutils" ,inetutils)     ; for `hostname', used in the tests
-              ("emacs" ,emacs-no-x)))      ; for `ctags'
+              ("inetutils" ,inetutils))) ; for `hostname', used in the tests
+    (native-inputs `(("emacs" ,emacs-minimal))) ; for `ctags'
     (home-page "http://www.gnu.org/software/vc-dwim/")
     (synopsis "Version-control-agnostic ChangeLog diff and commit tool")
     (description
@@ -831,8 +896,8 @@ large, complex patch files.")
               (sha256
                (base32
                 "0bkw6fjh20ppvn54smv05461lm1vcwvn02avx941c4acafmkl1cm"))
-              (patches (list (search-patch "cssc-gets-undeclared.patch")
-                             (search-patch "cssc-missing-include.patch")))))
+              (patches (search-patches "cssc-gets-undeclared.patch"
+                                       "cssc-missing-include.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases (alist-cons-before
@@ -870,16 +935,16 @@ accessed and migrated on modern systems.")
     (version "4.24")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://sourceforge/aegis/aegis-"
-                                  version ".tar.gz"))
+              (uri (string-append "mirror://sourceforge/aegis/aegis/" version
+                                  "/aegis-" version ".tar.gz"))
               (sha256
                (base32
                 "18s86ssarfmc4l17gbpzybca29m5wa37cbaimdji8czlcry3mcjl"))
-            (patches (list (search-patch "aegis-perl-tempdir1.patch")
-                           (search-patch "aegis-perl-tempdir2.patch")
-                           (search-patch "aegis-test-fixup-1.patch")
-                           (search-patch "aegis-test-fixup-2.patch")
-                           (search-patch "aegis-constness-error.patch")))))
+            (patches (search-patches "aegis-perl-tempdir1.patch"
+                                     "aegis-perl-tempdir2.patch"
+                                     "aegis-test-fixup-1.patch"
+                                     "aegis-test-fixup-2.patch"
+                                     "aegis-constness-error.patch"))))
     (build-system gnu-build-system)
     (inputs
      `(("e2fsprogs" ,e2fsprogs)
@@ -948,6 +1013,58 @@ as possible.  Resolution of contention for source files, a major headache for
 any project with more than one developer, is one of Aegis's major functions.")
     (license gpl3+)))
 
+(define-public reposurgeon
+  (package
+    (name "reposurgeon")
+    (version "3.37")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.catb.org/~esr/" name "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "14asjg4xy3mhh5z0r3k7c1wv9y803j2zfq32g5q5m95sf7yzygan"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ;no test suite distributed
+       #:make-flags
+       (list (string-append "target=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'build 'fix-docbook
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* (find-files "." "\\.xml$")
+               (("docbook/docbookx.dtd")
+                (string-append (assoc-ref inputs "docbook-xml")
+                               "/xml/dtd/docbook/docbookx.dtd")))
+             #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)))
+    (native-inputs
+     `(("asciidoc" ,asciidoc)
+       ("docbook-xml" ,docbook-xml-4.1.2)
+       ("docbook-xsl" ,docbook-xsl)
+       ("libxml2" ,libxml2)
+       ("xmlto" ,xmlto)))
+    (home-page "http://www.catb.org/~esr/reposurgeon/")
+    (synopsis "Edit version-control repository history")
+    (description "Reposurgeon enables risky operations that version-control
+systems don't want to let you do, such as editing past comments and metadata
+and removing commits.  It works with any version control system that can
+export and import Git fast-import streams, including Git, Mercurial, Fossil,
+Bazaar, CVS, RCS, and Src.  It can also read Subversion dump files directly
+and can thus be used to script production of very high-quality conversions
+from Subversion to any supported Distributed Version Control System (DVCS).")
+    ;; Most files are distributed under bsd-2, except 'repocutter' which is
+    ;; under bsd-3.
+    (license (list bsd-2 bsd-3))))
+
 (define-public tig
   (package
     (name "tig")
@@ -977,7 +1094,7 @@ output of the 'git' command.")
 (define-public findnewest
   (package
     (name "findnewest")
-    (version "0.2")
+    (version "0.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -985,7 +1102,7 @@ output of the 'git' command.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "0zlflad568y203yc5ynf1nxi2szn2pmbf1lvz6yk77kjyrpw7zxg"))))
+                "1ydis4y0amkgfr4y60sn076f1l41ya2kn89kfd9fqf44f9ccgb5r"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -1004,7 +1121,7 @@ modification time.")
 (define-public myrepos
   (package
     (name "myrepos")
-    (version "1.20151022")
+    (version "1.20160123")
     (source
      (origin
        (method url-fetch)
@@ -1013,7 +1130,7 @@ modification time.")
              version ".tar.gz"))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0c93lqsngpsxsca7nygk4qhidr40ijgih86q81x1mfcwbs0gbds8"))))
+        (base32 "1723cg5haplz2w9dwdzp6ds1ip33cx3awmj4wnb0h4yq171v5lqk"))))
     (build-system gnu-build-system)
     (inputs
      `(("perl" ,perl)))
@@ -1044,18 +1161,94 @@ Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.")
                (base32
                 "196g3jkaybjx11nbr51n0cjps3wjzb145ab76y717diqvvxp5v4r"))))
     (build-system python-build-system)
+    (arguments `(#:python ,python-2))
     (native-inputs
-     `(("python-setuptools" ,python-setuptools)
+     `(("python2-setuptools" ,python2-setuptools)
        ;; for the tests
-       ("python-six" ,python-six)))
+       ("python2-six" ,python2-six)))
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil-2)
-       ("python-futures" ,python-futures)
-       ("python-rauth" ,python-rauth)
-       ("python-swiftclient" ,python-swiftclient)))
+     `(("python2-dateutil" ,python2-dateutil-2)
+       ("python2-futures" ,python2-futures)
+       ("python2-rauth" ,python2-rauth)
+       ("python2-swiftclient" ,python2-swiftclient)))
     (home-page "https://github.com/Schnouki/git-annex-remote-hubic/")
     (synopsis "Use hubic as a git-annex remote")
     (description
      "This package allows you to use your hubic account as a \"special
 repository\" with git-annex.")
     (license gpl3+)))
+
+(define-public fossil
+  (package
+    (name "fossil")
+    (version "1.34")
+    (source
+     (origin
+       (method url-fetch)
+       ;; Upstream source affected by
+       ;; http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20962
+       (uri (string-append
+             "https://web.archive.org/web/20160402202958/"
+             "https://www.fossil-scm.org/download/fossil-src-"
+             version ".tar.gz"))
+       (sha256
+        (base32
+         "17x4vgjcfihwmq195qg32irp50panvjqfpvhqydfvv4ghwzbi9jk"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Commit 0a2ebe57 on 2015-08-03 18:35:53 changed output formatting
+           ;; for some commands, but affected tests were not updated.  Use
+           ;; substitute here, which is more concise than patching.
+           (substitute* "test/clean.test"
+             (("NEW ") "NEW    "))
+           (substitute* '("test/revert.test" "test/mv-rm.test")
+             (("REVERTED:") "REVERT  ")
+             (("DELETE:")   "DELETE  ")
+             (("UNMANAGE:") "UNMANAGE "))
+           ;; Fix use of __DATE__ and __TIME__
+           (substitute* "src/main.c"
+             (("Compiled on %s %s") "Compiled")
+             (("__DATE__, __TIME__, ") ""))
+           #t))
+       (patches (list (search-patch "fossil-test-fixes.patch")))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("tcl" ,tcl)                     ;for configuration only
+       ("which" ,which)                 ;for tests only
+       ("ed" ,ed)))                     ;ditto
+    (inputs
+     `(("openssl" ,openssl)
+       ("zlib" ,zlib)
+       ("sqlite" ,sqlite)))
+    (arguments
+     `(#:configure-flags (list "--with-openssl=auto"
+                               "--disable-internal-sqlite")
+       #:test-target "test"
+       #:phases (modify-phases %standard-phases
+                  (replace 'configure
+                    (lambda* (#:key outputs (configure-flags '())
+                                    #:allow-other-keys)
+                      ;; The 'configure' script is not an autoconf script and
+                      ;; chokes on unrecognized options.
+                      (zero? (apply system*
+                                    "./configure"
+                                    (string-append "--prefix="
+                                                   (assoc-ref outputs "out"))
+                                    configure-flags))))
+                  (add-before 'check 'test-setup
+                    (lambda _
+                      (setenv "USER" "guix")
+                      (setenv "TZ" "UTC")
+                      ;; Fixing the th1 test would require many backports, so
+                      ;; just disable for now.
+                      (delete-file "test/th1.test")
+                      #t)))))
+    (home-page "https://fossil-scm.org")
+    (synopsis "Software configuration management system")
+    (description
+     "Fossil is a distributed source control management system which supports
+access and administration over HTTP CGI or via a built-in HTTP server.  It has
+a built-in wiki, built-in file browsing, built-in tickets system, etc.")
+    (license (list public-domain        ;src/miniz.c, src/shell.c
+                   bsd-2))))