Merge remote-tracking branch 'origin/master' into core-updates

Conflicts:
	doc/guix.texi
	gnu/local.mk
	gnu/packages/admin.scm
	gnu/packages/base.scm
	gnu/packages/chromium.scm
	gnu/packages/compression.scm
	gnu/packages/databases.scm
	gnu/packages/diffoscope.scm
	gnu/packages/freedesktop.scm
	gnu/packages/gnome.scm
	gnu/packages/gnupg.scm
	gnu/packages/guile.scm
	gnu/packages/inkscape.scm
	gnu/packages/llvm.scm
	gnu/packages/openldap.scm
	gnu/packages/pciutils.scm
	gnu/packages/ruby.scm
	gnu/packages/samba.scm
	gnu/packages/sqlite.scm
	gnu/packages/statistics.scm
	gnu/packages/syndication.scm
	gnu/packages/tex.scm
	gnu/packages/tls.scm
	gnu/packages/version-control.scm
	gnu/packages/xml.scm
	guix/build-system/copy.scm
	guix/scripts/home.scm
This commit is contained in:
Efraim Flashner 2023-01-30 11:33:18 +02:00
commit 4cf1acc7f3
No known key found for this signature in database
GPG key ID: 41AAE7DCCA3D8351
740 changed files with 619028 additions and 314277 deletions

View file

@ -31,7 +31,7 @@
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020, 2021, 2022 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020, 2021, 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
@ -45,6 +45,8 @@
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2022 Dhruvin Gandhi <contact@dhruvin.dev>
;;; Copyright © 2015, 2022 David Thompson <davet@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -69,7 +71,6 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix hg-download)
#:use-module (guix build python-build-system)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
@ -104,6 +105,7 @@
#:use-module (gnu packages image)
#:use-module (gnu packages linux)
#:use-module (gnu packages mail)
#:use-module (gnu packages man)
#:use-module (gnu packages maths)
#:use-module (gnu packages nano)
#:use-module (gnu packages ncurses)
@ -137,7 +139,8 @@
#:use-module (gnu packages tls)
#:use-module (gnu packages)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1))
#:use-module (srfi srfi-1)
#:export (make-gitolite))
(define-public breezy
(package
@ -221,14 +224,14 @@ Python 3.3 and later, rather than on Python 2.")
(define-public git
(package
(name "git")
(version "2.37.3")
(version "2.39.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/software/scm/git/git-"
version ".tar.xz"))
(sha256
(base32
"0yp8hdj0w18jhmmdflzz74z418cw95i08pc22yycyn8nyvbl2il1"))))
(method url-fetch)
(uri (string-append "mirror://kernel.org/software/scm/git/git-"
version ".tar.xz"))
(sha256
(base32
"0qf1wly7zagg23svpv533va5v213y7y3lfw76ldkf35k8w48m8s0"))))
(build-system gnu-build-system)
(native-inputs
`(("native-perl" ,perl)
@ -248,15 +251,12 @@ Python 3.3 and later, rather than on Python 2.")
version ".tar.xz"))
(sha256
(base32
"053lj9wy8y2yr5jzpb0af4w50gz3ckhgc15wqx7is4z6k9a76lww"))))
"0xf7ki90xw77nvmnkw50xaivyfi8jddfq0h8crzi7m9zjs7aa8mm"))))
;; For subtree documentation.
("asciidoc" ,asciidoc)
("docbook2x" ,docbook2x)
("docbook-xsl" ,docbook-xsl)
("libxslt" ,libxslt)
("pkg-config" ,pkg-config)
("texinfo" ,texinfo)
("xmlto" ,xmlto)))
("xmlto" ,xmlto)
("pkg-config" ,pkg-config)))
(inputs
`(("curl" ,curl)
("expat" ,expat)
@ -903,7 +903,7 @@ write native speed custom Git applications in any language with bindings.")
(define-public git-crypt
(package
(name "git-crypt")
(version "0.6.0")
(version "0.7.0")
(source
(origin
(method git-fetch)
@ -912,7 +912,7 @@ write native speed custom Git applications in any language with bindings.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1ba5s0fvmd9hhnfhfsjrm40v0qpxfnwc8vmm55m0k4dryzkzx66q"))))
(base32 "0ymk2z0jfyhycia8hg6wbj2g06m163yzqzanfk172cxb13fa8c26"))))
(build-system gnu-build-system)
(inputs
(list git openssl))
@ -956,7 +956,7 @@ to lock down your entire repository.")
(define-public git-remote-gcrypt
(package
(name "git-remote-gcrypt")
(version "1.4")
(version "1.5")
(source (origin
(method git-fetch)
(uri (git-reference
@ -965,7 +965,7 @@ to lock down your entire repository.")
(file-name (git-file-name name version))
(sha256
(base32
"1x5ca1fi0hyn5w5mnz230x27bqr8j78adnzmlc7cbhzr13q36y5q"))))
"1m1wlbqpqyhh2z0ka3gjs5yabd32nnkzw5hak6czcqrhhkfsqbmv"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
@ -1403,7 +1403,7 @@ manipulate them in various ways.")
(define-public vcsh
(package
(name "vcsh")
(version "1.20190621-4")
(version "2.0.5")
(source
(origin
(method git-fetch)
@ -1412,25 +1412,30 @@ manipulate them in various ways.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1gx5nbqyprgy6picns5hxky3lyzkqfq3xhm614f0wcdi58xrsdh0"))))
(base32 "15lb09c2q261p1pp5r7j9k8389ybrd2q19xhnp1nnha6gs78i4wq"))))
(build-system gnu-build-system)
(native-inputs
(list which))
(list autoconf
automake
;; for man page
ronn-ng
;; for tests
perl
perl-test-harness
perl-shell-command
perl-test-most
;; for bash-completion
pkg-config))
(inputs
(list git perl perl-test-harness perl-shell-command perl-test-most))
(list git))
(arguments
'(#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(add-after 'install 'install-bash-completion
;; As of 1.20190621, zsh completion is installed by default but bash
;; completion is not. Do so manually.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(completions (string-append out "/etc/bash_completion.d")))
(mkdir-p completions)
(copy-file "_vcsh_bash" (string-append completions "/vcsh"))))))
(add-before 'bootstrap 'fix-version-gen
(lambda _
(call-with-output-file ".tarball-version"
(lambda (port)
(display version port))))))
#:make-flags (list (string-append "PREFIX="
(assoc-ref %outputs "out")))
#:test-target "test"))
@ -1480,7 +1485,9 @@ linear. It will test every change between two points in the DAG. It will
also walk each side of a merge and test those changes individually.")
(license (license:x11-style "file://LICENSE")))))
(define-public gitolite
(define* (make-gitolite #:optional (extra-inputs '()))
"Make a gitolite package object with EXTRA-INPUTS added to the binary
wrappers, to be used for optional gitolite extensions."
(package
(name "gitolite")
(version "3.6.12")
@ -1495,91 +1502,89 @@ also walk each side of a merge and test those changes individually.")
(base32 "05xw1pmagvkrbzga5pgl3xk9qyc6b5x73f842454f3w9ijspa8zy"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no tests
#:phases (modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(add-before 'install 'patch-scripts
(lambda* (#:key inputs #:allow-other-keys)
(let ((perl (search-input-file inputs "/bin/perl")))
;; This seems to take care of every shell script that
;; invokes Perl.
(substitute* (find-files ".")
((" perl -")
(string-append " " perl " -")))
(list #:tests? #f ; no tests
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(add-before 'install 'patch-scripts
(lambda* _
;; This seems to take care of every shell script that
;; invokes Perl.
(substitute* (find-files ".")
((" perl -")
(string-append " " #$perl "/bin/perl" " -")))
(substitute* (find-files "src/triggers" ".*")
((" sed ")
(string-append " " (which "sed") " ")))
(substitute* (find-files "src/triggers" ".*")
((" sed ")
(string-append " " #$sed "/bin/sed" " ")))
(substitute*
'("src/triggers/post-compile/update-gitweb-access-list"
"src/triggers/post-compile/ssh-authkeys-split"
"src/triggers/upstream")
((" grep ")
(string-append " " (which "grep") " ")))
(substitute*
'("src/triggers/post-compile/update-gitweb-access-list"
"src/triggers/post-compile/ssh-authkeys-split"
"src/triggers/upstream")
((" grep ")
(string-append " " #$grep "/bin/grep" " ")))
;; Avoid references to the store in authorized_keys.
;; This works because gitolite-shell is in the PATH.
(substitute* "src/triggers/post-compile/ssh-authkeys"
(("\\$glshell \\$user")
"gitolite-shell $user")))))
(add-before 'install 'patch-source
(lambda* (#:key inputs #:allow-other-keys)
;; Gitolite uses cat to test the readability of the
;; pubkey
(substitute* "src/lib/Gitolite/Setup.pm"
(("\"cat ")
(string-append "\"" (which "cat") " "))
(("\"ssh-keygen")
(string-append "\"" (which "ssh-keygen"))))
;; Avoid references to the store in authorized_keys.
;; This works because gitolite-shell is in the PATH.
(substitute* "src/triggers/post-compile/ssh-authkeys"
(("\\$glshell \\$user")
"gitolite-shell $user"))))
(add-before 'install 'patch-source
(lambda* _
;; Gitolite uses cat to test the readability of the
;; pubkey
(substitute* "src/lib/Gitolite/Setup.pm"
(("\"cat ")
(string-append "\"" #$coreutils "/bin/cat" " "))
(("\"ssh-keygen")
(string-append "\"" #$openssh "/bin/ssh-keygen")))
(substitute* '("src/lib/Gitolite/Hooks/PostUpdate.pm"
"src/lib/Gitolite/Hooks/Update.pm")
(("/usr/bin/perl")
(search-input-file inputs "/bin/perl")))
(substitute* '("src/lib/Gitolite/Hooks/PostUpdate.pm"
"src/lib/Gitolite/Hooks/Update.pm")
(("/usr/bin/perl")
(string-append #$perl "/bin/perl")))
(substitute* "src/lib/Gitolite/Common.pm"
(("\"ssh-keygen")
(string-append "\"" (which "ssh-keygen")))
(("\"logger\"")
(string-append "\""
(assoc-ref inputs "inetutils")
"/bin/logger\"")))
(substitute* "src/lib/Gitolite/Common.pm"
(("\"ssh-keygen")
(string-append "\"" #$openssh "/bin/ssh-keygen"))
(("\"logger\"")
(string-append "\"" #$inetutils "/bin/logger\"")))
(substitute* "src/lib/Gitolite/Cache.pm"
(("/usr/sbin/redis-server") "redis-server"))
(substitute* "src/lib/Gitolite/Cache.pm"
(("/usr/sbin/redis-server") "redis-server"))
(substitute* "src/commands/svnserve"
(("/usr/bin/svnserve") "svnserve"))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((output (assoc-ref outputs "out"))
(sharedir (string-append output "/share/gitolite"))
(bindir (string-append output "/bin")))
(mkdir-p sharedir)
(mkdir-p bindir)
(invoke "./install" "-to" sharedir)
;; Create symlinks for executable scripts in /bin.
(for-each (lambda (script)
(symlink (string-append sharedir "/" script)
(string-append bindir "/" script)))
'("gitolite" "gitolite-shell")))))
(add-after 'install 'wrap-scripts
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(coreutils (assoc-ref inputs "coreutils"))
(findutils (assoc-ref inputs "findutils"))
(git (assoc-ref inputs "git")))
(for-each (lambda (file-name)
(wrap-program (string-append out file-name)
`("PATH" ":" prefix
,(map (lambda (dir)
(string-append dir "/bin"))
(list out coreutils findutils git)))))
'("/bin/gitolite" "/bin/gitolite-shell"))))))))
(substitute* "src/commands/svnserve"
(("/usr/bin/svnserve") "svnserve"))))
(replace 'install
(lambda* _
(let* ((sharedir (string-append #$output "/share/gitolite"))
(bindir (string-append #$output "/bin")))
(mkdir-p sharedir)
(mkdir-p bindir)
(invoke "./install" "-to" sharedir)
;; Create symlinks for executable scripts in /bin.
(for-each (lambda (script)
(symlink (string-append sharedir "/" script)
(string-append bindir "/" script)))
'("gitolite" "gitolite-shell")))))
(add-after 'install 'wrap-scripts
(lambda* _
(for-each (lambda (file-name)
(wrap-program (string-append #$output file-name)
`("PATH" ":" prefix
,(map (lambda (dir)
(string-append dir "/bin"))
(list #$output
#$coreutils
#$findutils
#$git
#$@extra-inputs)))))
'("/bin/gitolite" "/bin/gitolite-shell")))))))
(inputs
(list bash-minimal coreutils findutils git inetutils openssh perl))
(append (list bash-minimal coreutils findutils git inetutils openssh perl)
extra-inputs))
(home-page "https://gitolite.com")
(synopsis "Git access control layer")
(description
@ -1587,6 +1592,8 @@ also walk each side of a merge and test those changes individually.")
control to Git repositories.")
(license license:gpl2)))
(define-public gitolite (make-gitolite))
(define-public gitile
(package
(name "gitile")
@ -2231,7 +2238,7 @@ standards-compliant ChangeLog entries based on the changes that it detects.")
(define-public diffstat
(package
(name "diffstat")
(version "1.64")
(version "1.65")
(source (origin
(method url-fetch)
(uri
@ -2242,7 +2249,7 @@ standards-compliant ChangeLog entries based on the changes that it detects.")
"diffstat-" version ".tgz")))
(sha256
(base32
"1z7pwcv48fjnhxrjcsjdy83x8b9ckl582mbbds90a79fkn6y7bmq"))))
"12m2aysq6syw83bn4gqhpm284a2ran8w6m8pja2wvsvdj8j79wlc"))))
(build-system gnu-build-system)
(home-page "https://invisible-island.net/diffstat/")
(synopsis "Make histograms from the output of @command{diff}")
@ -2387,82 +2394,6 @@ 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 license:gpl3+)))
(define-public reposurgeon
(package
(name "reposurgeon")
(version "3.43")
(source (origin
(method url-fetch)
(uri (string-append "http://www.catb.org/~esr/" name "/"
name "-" version ".tar.xz"))
(sha256
(base32
"1af0z14wcm4bk5a9ysinbwq2fp3lf5f7i8mvwh7286hr3fnagcaz"))
(patches (search-patches
"reposurgeon-add-missing-docbook-files.patch"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
(list "ECHO=echo"
(string-append "target=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(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$")
(("docbook/docbookx.dtd")
(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"))
#t)))))
(inputs
`(("python" ,python-wrapper)
("tzdata" ,tzdata)))
(native-inputs
(list ;; For building documentation.
asciidoc
docbook-xml
docbook-xsl
libxml2
xmlto
;; For tests.
cvs
git
mercurial
subversion))
(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 license:bsd-2 license:bsd-3))))
(define-public tig
(package
(name "tig")
@ -2720,25 +2651,20 @@ by rclone usable with git-annex.")
(define-public fossil
(package
(name "fossil")
(version "2.18")
(version "2.20")
(source
(origin
(method url-fetch)
(uri (string-append
"https://www.fossil-scm.org/home/tarball/"
"84f25d7eb10c0714109d69bb2809abfa8b4b5c3d73b151a5b10df724dacd46d8"
"210e89a0597f225f49722b096cf5563bf193e920e02a9bd38503a906deacd416"
"/fossil-src-" version ".tar.gz"))
;; XXX: Currently the above hash must be manually updated.
(sha256
(base32 "0cq7677p84nnbfvk2dsh3c3y900gslw3zaw8iipfq932vmf1s31h"))
(base32 "08g7img88n2nwcdkpzmg4aqbp2iy40nllgas53502dspm97ym4h8"))
(modules '((guix build utils)))
(snippet
'(begin
(delete-file-recursively "compat")
;; Disable obsolete SQLite feature check; remove for 2.19.
(substitute* "tools/sqlcompattest.c"
((".*\"ENABLE_JSON1\".*")
""))))))
'(delete-file-recursively "compat"))))
(build-system gnu-build-system)
(native-inputs
(list tcl ;for configuration only
@ -3458,3 +3384,69 @@ Git project instead of @command{git filter-branch}.")
"Gitlint is a Git commit message linter written in Python: it checks your
commit messages for style.")
(license license:expat)))
(define-public hut
(package
(name "hut")
(version "0.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://git.sr.ht/~emersion/hut")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0ybngrwwmkm00dlkdhvkfcvcjhp5xzs8fh90zqr0h12ssqx9pll3"))))
(build-system go-build-system)
(arguments
(list
#:import-path "git.sr.ht/~emersion/hut"
#:phases
#~(modify-phases %standard-phases
(replace 'build
(lambda* (#:key import-path #:allow-other-keys)
(with-directory-excursion (string-append "src/" import-path)
;; The flags are copied from (guix build go-build-system).
(setenv "CGO_LDFLAGS" "-s -w")
(invoke "make" "all" "GOFLAGS=-v -x"))))
(replace 'install
(lambda* (#:key import-path #:allow-other-keys)
(with-directory-excursion (string-append "src/" import-path)
(invoke "make" "install"
(string-append "PREFIX=" #$output))))))))
(native-inputs
(list scdoc))
(inputs
(list go-git-sr-ht-emersion-go-scfg
go-git-sr-ht-emersion-gqlclient
go-github-com-juju-ansiterm
go-github-com-spf13-cobra
go-golang-org-x-oauth2
go-golang-org-x-term))
(home-page "https://git.sr.ht/~emersion/hut")
(synopsis "CLI tool for sr.ht")
(description "@command{hut} is a CLI tool for
@uref{https://sr.ht/~sircmpwn/sourcehut/, sr.ht}. It helps you interact with
sr.ht's public services:
@table @asis
@item builds
submit and manage build jobs
@item git
create, and manage git repositories and artifacts
@item hg
list Mercurial repositories
@item lists
manage mailing lists and patches
@item meta
manage PGP, and SSH keys
@item pages
publish and manage hosted websites
@item paste
create and manage pastes
@item todo
create and manage trackers, tickets
@item graphql
interact with GraphQL APIs directly
@end table")
(license license:agpl3)))