[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
01/01: Merge branch 'staging' into core-updates
From: |
guix-commits |
Subject: |
01/01: Merge branch 'staging' into core-updates |
Date: |
Thu, 8 Sep 2022 15:23:11 -0400 (EDT) |
mbakke pushed a commit to branch core-updates
in repository guix.
commit 884548b476f2ee27c01cb0c9ad93c0cf9d33fa5e
Merge: 0e30579845 fa894b3f4d
Author: Marius Bakke <marius@gnu.org>
AuthorDate: Thu Sep 8 21:12:52 2022 +0200
Merge branch 'staging' into core-updates
.dir-locals.el | 14 +
Makefile.am | 4 -
doc/contributing.texi | 15 +-
doc/guix.texi | 31 +-
etc/news.scm | 7 +
etc/teams.scm.in | 12 +
gnu/build/file-systems.scm | 15 +-
gnu/build/linux-boot.scm | 18 +-
gnu/build/shepherd.scm | 3 +-
gnu/image.scm | 19 +-
gnu/local.mk | 13 +-
gnu/machine/digital-ocean.scm | 3 +-
gnu/packages/admin.scm | 6 +-
gnu/packages/algebra.scm | 50 +-
gnu/packages/aux-files/linux-libre/5.18-arm.conf | 10437 ---
gnu/packages/aux-files/linux-libre/5.18-arm64.conf | 10888 ---
gnu/packages/aux-files/linux-libre/5.18-i686.conf | 11361 ---
.../aux-files/linux-libre/5.18-x86_64.conf | 11468 ---
gnu/packages/benchmark.scm | 51 +-
gnu/packages/bioconductor.scm | 10 +-
gnu/packages/bioinformatics.scm | 2 +
gnu/packages/browser-extensions.scm | 4 +-
gnu/packages/c.scm | 22 +
gnu/packages/check.scm | 4 +-
gnu/packages/chez.scm | 211 +-
gnu/packages/chromium.scm | 6 +-
gnu/packages/containers.scm | 78 +-
gnu/packages/cpp.scm | 4 +-
gnu/packages/crates-io.scm | 1275 +-
gnu/packages/databases.scm | 18 +-
gnu/packages/dictionaries.scm | 6 +-
gnu/packages/diffoscope.scm | 2 -
gnu/packages/disk.scm | 8 +-
gnu/packages/elixir.scm | 4 +-
gnu/packages/emacs-xyz.scm | 207 +-
gnu/packages/engineering.scm | 92 +
gnu/packages/erlang.scm | 4 +-
gnu/packages/fonts.scm | 8 +-
gnu/packages/fpga.scm | 32 +
gnu/packages/game-development.scm | 53 -
gnu/packages/games.scm | 97 +
gnu/packages/geo.scm | 180 +-
gnu/packages/gl.scm | 39 -
gnu/packages/gnome.scm | 35 +-
gnu/packages/gnunet.scm | 54 +-
gnu/packages/gnustep.scm | 35 +
gnu/packages/golang.scm | 23 +
gnu/packages/graphics.scm | 172 +-
gnu/packages/gstreamer.scm | 3 +-
gnu/packages/gtk.scm | 4 +-
gnu/packages/guile-xyz.scm | 119 +-
gnu/packages/image-viewers.scm | 37 +-
gnu/packages/kde-frameworks.scm | 10 +-
gnu/packages/less.scm | 10 +-
gnu/packages/linux.scm | 162 +-
gnu/packages/lisp-check.scm | 76 +-
gnu/packages/lisp-xyz.scm | 436 +-
gnu/packages/lisp.scm | 59 +
gnu/packages/llvm.scm | 119 +-
gnu/packages/mail.scm | 73 +
gnu/packages/man.scm | 39 +-
gnu/packages/messaging.scm | 3 -
gnu/packages/monitoring.scm | 6 +-
gnu/packages/mono.scm | 175 -
gnu/packages/music.scm | 6 +-
gnu/packages/networking.scm | 4 +-
gnu/packages/ntp.scm | 4 +-
gnu/packages/ocaml.scm | 33 +
gnu/packages/orange.scm | 2 +-
gnu/packages/package-management.scm | 27 +-
gnu/packages/password-utils.scm | 51 +-
gnu/packages/patches/chez-scheme-bin-sh.patch | 76 +
gnu/packages/patches/mono-mdoc-timestamping.patch | 15 -
gnu/packages/patches/polkit-disable-systemd.patch | 30 +
.../patches/python-apsw-3.39.2.1-test-fix.patch | 27 +
.../racket-backport-8.6-cross-install.patch | 126 +
.../racket-backport-8.6-docindex-write.patch | 36 +
.../patches/racket-backport-8.6-hurd.patch | 609 +
gnu/packages/patches/racket-backport-8.6-zuo.patch | 481 +
.../patches/racket-chez-scheme-bin-sh.patch | 76 +
...h-via-rktio.patch => racket-rktio-bin-sh.patch} | 60 +-
gnu/packages/patches/racket-zuo-bin-sh.patch | 74 +
.../patches/rust-openssl-sys-no-vendor.patch | 7 +-
.../patches/stex-copy-from-immutable-store.patch | 41 +
gnu/packages/patches/turbovnc-custom-paths.patch | 299 +
.../patches/turbovnc-find-system-packages.patch | 51 +
gnu/packages/polkit.scm | 40 +-
gnu/packages/python-compression.scm | 8 +-
gnu/packages/python-science.scm | 4 +-
gnu/packages/python-xyz.scm | 103 +-
gnu/packages/python.scm | 2 +-
gnu/packages/qt.scm | 316 +-
gnu/packages/racket.scm | 240 +-
gnu/packages/ruby.scm | 42 +
gnu/packages/rust-apps.scm | 31 +
gnu/packages/sdl.scm | 41 -
gnu/packages/shellutils.scm | 25 +
gnu/packages/sqlite.scm | 12 +
gnu/packages/statistics.scm | 45 +
gnu/packages/tcl.scm | 2 +-
gnu/packages/terminals.scm | 4 +-
gnu/packages/tex.scm | 134 +-
gnu/packages/text-editors.scm | 10 +-
gnu/packages/tls.scm | 2 +-
gnu/packages/version-control.scm | 31 +-
gnu/packages/video.scm | 19 +-
gnu/packages/vim.scm | 28 +
gnu/packages/vnc.scm | 193 +
gnu/packages/webkit.scm | 1 +
gnu/packages/wm.scm | 4 +-
gnu/packages/xfce.scm | 4 +-
gnu/services/base.scm | 2 +-
gnu/services/desktop.scm | 6 +-
gnu/services/web.scm | 7 +-
gnu/system/image.scm | 3 +-
gnu/system/images/novena.scm | 6 +-
gnu/system/images/pine64.scm | 6 +-
gnu/system/images/pinebook-pro.scm | 9 +-
gnu/system/images/rock64.scm | 8 +-
gnu/tests/dict.scm | 3 +-
guix/build/profiles.scm | 7 +-
guix/build/syscalls.scm | 116 +-
guix/import/gnome.scm | 15 +-
guix/platform.scm | 2 +-
guix/read-print.scm | 59 +-
guix/search-paths.scm | 20 +-
guix/store.scm | 69 +-
po/doc/guix-cookbook.fr.po | 6 +-
po/doc/guix-manual.de.po | 24798 +++---
po/doc/guix-manual.es.po | 24423 +++---
po/doc/guix-manual.fr.po | 81214 ++++++++++++++-----
po/doc/guix-manual.pt_BR.po | 23556 +++---
po/doc/guix-manual.ru.po | 23914 +++---
po/doc/guix-manual.zh_CN.po | 51207 ++++++++----
po/guix/bn.po | 659 +-
po/guix/cs.po | 661 +-
po/guix/da.po | 665 +-
po/guix/de.po | 742 +-
po/guix/eo.po | 665 +-
po/guix/es.po | 671 +-
po/guix/fa.po | 661 +-
po/guix/fi.po | 659 +-
po/guix/fr.po | 666 +-
po/guix/hu.po | 665 +-
po/guix/it.po | 731 +-
po/guix/ja.po | 659 +-
po/guix/ko.po | 661 +-
po/guix/nl.po | 666 +-
po/guix/oc.po | 659 +-
po/guix/pl.po | 660 +-
po/guix/pt_BR.po | 666 +-
po/guix/ru.po | 661 +-
po/guix/si.po | 659 +-
po/guix/sk.po | 745 +-
po/guix/sr.po | 665 +-
po/guix/sv.po | 664 +-
po/guix/ta.po | 664 +-
po/guix/tr.po | 661 +-
po/guix/uk.po | 659 +-
po/guix/vi.po | 665 +-
po/guix/zh_CN.po | 660 +-
po/packages/da.po | 4886 +-
po/packages/de.po | 4877 +-
po/packages/eo.po | 4877 +-
po/packages/es.po | 4877 +-
po/packages/fa.po | 4877 +-
po/packages/fi.po | 4877 +-
po/packages/fr.po | 5955 +-
po/packages/hu.po | 4877 +-
po/packages/it.po | 4877 +-
po/packages/ko.po | 4877 +-
po/packages/nl.po | 4877 +-
po/packages/oc.po | 4877 +-
po/packages/pl.po | 4877 +-
po/packages/pt_BR.po | 4877 +-
po/packages/sk.po | 4877 +-
po/packages/sr.po | 4877 +-
po/packages/tr.po | 4877 +-
po/packages/zh_CN.po | 4877 +-
tests/guix-describe.sh | 4 +-
tests/guix-shell.sh | 10 +
tests/guix-system.sh | 29 +-
tests/read-print.scm | 3 +
183 files changed, 202324 insertions(+), 186077 deletions(-)
diff --cc gnu/packages/databases.scm
index 57467135a6,84aa0f5ebc..cd7bf5e8f0
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@@ -3540,19 -3540,23 +3540,23 @@@ PickleShare."
(define-public python-apsw
(package
(name "python-apsw")
- (version "3.39.2.0")
+ (version "3.39.2.1")
+ ;; The compressed release has fetching functionality disabled.
(source
(origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/rogerbinns/apsw")
- (commit version)))
- (file-name (git-file-name name version))
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/rogerbinns/apsw/releases/download/"
+ version "/apsw-" version ".zip"))
(sha256
(base32
- "0q7fnk8n3m5mpjzh6xyhj409k8sacdbjsfis98my9c50fdn5sr7y"))))
+ "06x3qgg71xz8l3kz8gz04wkfp5f6zfrg476a4mm1c5hikqyw6ykj"))
+ ;; Cherry-picked from upstream, remove when bumping to 3.39.3.
+ (patches
+ (search-patches "python-apsw-3.39.2.1-test-fix.patch"))))
(build-system python-build-system)
+ (native-inputs (list unzip))
- (inputs (list sqlite-next)) ;SQLite 3.39 required.
+ (inputs (list sqlite))
(arguments
(list #:phases
#~(modify-phases %standard-phases
diff --cc gnu/packages/polkit.scm
index b63635618b,a5c1b0dc98..6fe7824a57
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@@ -60,82 -59,45 +60,96 @@@
(name "polkit")
(version "121")
(source (origin
- (method url-fetch)
- (uri (string-append
- "https://www.freedesktop.org/software/polkit/releases/"
- name "-" version ".tar.gz"))
- (patches (search-patches "polkit-disable-systemd.patch"))
- (sha256
- (base32
- "1apz3bh7nbpmlp1cr00pb8z8wp0c7yb23ninb959jz3r38saxiwx"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; Disable a test that requires Python, D-Bus and a few
- ;; libraries and fails with "ERROR: timed out waiting for bus
- ;; process to terminate".
- (substitute* "test/meson.build"
- (("subdir\\('polkitbackend'\\)")
- ""))
- ;; Look up actions and rules from /etc/polkit ...
- (substitute* "src/polkitbackend/meson.build"
- (("'-DPACKAGE_SYSCONF_DIR=.*,")
- "'-DPACKAGE_SYSCONF_DIR=\"/etc\"',"))
- (substitute*
"src/polkitbackend/polkitbackendinteractiveauthority.c"
- (("PACKAGE_DATA_DIR \"/polkit-1/actions\"")
- "PACKAGE_SYSCONF_DIR \"/polkit-1/actions\""))
- ;; ... but install package files below the prefix.
- (substitute* "meson.build"
- (("pk_sysconfdir = get_option\\('sysconfdir'\\)")
- "pk_sysconfdir = get_option('prefix') + '/etc'"))
- ;; Set the setuid helper's real location.
- (substitute* "src/polkitagent/polkitagentsession.c"
- (("PACKAGE_PREFIX \"/lib/polkit-1/polkit-agent-helper-1\"")
- "\"/run/setuid-programs/polkit-agent-helper-1\""))))))
+ (method url-fetch)
+ (uri (string-append
+ "https://www.freedesktop.org/software/polkit/releases/"
+ name "-" version ".tar.gz"))
++ (patches (search-patches "polkit-disable-systemd.patch"))
+ (sha256
+ (base32
- "1apz3bh7nbpmlp1cr00pb8z8wp0c7yb23ninb959jz3r38saxiwx"))))
++ "1apz3bh7nbpmlp1cr00pb8z8wp0c7yb23ninb959jz3r38saxiwx"))
++ (modules '((guix build utils)))
++ (snippet
++ '(begin
++ ;; This is so that the default example rules files can be
++ ;; installed along the package; otherwise it would fail
++ ;; attempting to write to /etc. Unlike with GNU Autotools,
++ ;; Meson can't override the pkgsysconfdir value at install
++ ;; time; instead, we rewrite the pkgsysconfdir references
++ ;; in the build system to point to #$output/etc.
++ ;; Look up actions and rules from /etc/polkit ...
++ (substitute* "src/polkitbackend/meson.build"
++ (("'-DPACKAGE_SYSCONF_DIR=.*,")
++ "'-DPACKAGE_SYSCONF_DIR=\"/etc\"',"))
++ (substitute*
"src/polkitbackend/polkitbackendinteractiveauthority.c"
++ (("PACKAGE_DATA_DIR \"/polkit-1/actions\"")
++ "PACKAGE_SYSCONF_DIR \"/polkit-1/actions\""))
++ ;; ... but install package files below the prefix.
++ (substitute* "meson.build"
++ (("pk_sysconfdir = get_option\\('sysconfdir'\\)")
++ "pk_sysconfdir = get_option('prefix') + '/etc'"))
++ ;; Set the setuid helper's real location.
++ (substitute* "src/polkitagent/polkitagentsession.c"
++ (("PACKAGE_PREFIX
\"/lib/polkit-1/polkit-agent-helper-1\"")
++ "\"/run/setuid-programs/polkit-agent-helper-1\""))))))
(build-system meson-build-system)
+ (arguments
+ (list
+ #:imported-modules `(,@%meson-build-system-modules
+ (guix build syscalls))
+ #:modules '((guix build meson-build-system)
+ (guix build syscalls)
+ (guix build utils)
+ (ice-9 match))
+ #:configure-flags
+ #~(list "--sysconfdir=/etc"
++ "-Dsession_tracking=libelogind"
+ "-Dman=true"
+ "-Dtests=true"
+ ;; Work around cross-compilation failure. The build system
+ ;; probes for the _target_ gobject-introspection, but if we
+ ;; change it to native, Meson fails with:
+ ;; ERROR: Pkg-config binary for machine
+ ;; MachineChoice.BUILD not found, giving up.
+ ;; Just disable introspection for now.
+ #$@(if (%current-target-system)
+ '("-Dintrospection=false")
+ '()))
+ #:phases
+ #~(modify-phases %standard-phases
- (add-after 'unpack 'adjust-install-time-etc-directory
- ;; This is so that the default example rules files can be
- ;; installed along the package; otherwise it would fail attempting
- ;; to write to /etc. Unlike with GNU Autotools, Meson can't
- ;; override the pkgsysconfdir value at install time; instead, we
- ;; rewrite the pkgsysconfdir references in the build system to
- ;; point to #$output/etc.
- (lambda _
- (substitute* "meson.build"
- (("pk_sysconfdir = get_option\\('sysconfdir')")
- (format #f "pk_sysconfdir = '~a'"
- (string-append #$output "/etc"))))))
+ (add-before 'check 'patch-bash
+ (lambda _
+ (substitute* (list "subprojects/mocklibc-1.0/bin/mocklibc"
+ (string-append "../polkit-v." #$version
+ "/test/data/etc/passwd")
+ (string-append "../polkit-v." #$version
+ "/test/data/etc/polkit-1"
+ "/rules.d/10-testing.rules"))
+ (("/bin/(bash|false|true)" _ command)
+ (which command)))))
+ (replace 'check
+ (lambda* (#:key tests? test-options #:allow-other-keys)
+ (when tests?
+ ;; Run the test suite through tini to ensure signals are
+ ;; properly handled and zombie processes reaped.
+ (match (primitive-fork)
+ (0 ;child process
+ (set-child-subreaper!)
+ ;; Use tini so that signals are properly handled and
+ ;; doubly-forked processes get reaped; otherwise,
+ ;; python-dbusmock would waste time polling for the dbus
+ ;; processes it spawns to be reaped, in vain.
+ (apply execlp "tini" "--"
+ "meson" "--" "test" "-t" "0" "--print-errorlogs"
+ test-options))
+ (pid
+ (match (waitpid pid)
+ ((_ . status)
+ (unless (zero? status)
+ (error "`meson test' exited with status"
+ status))))))))))))
(inputs
- (list elogind
- expat
- linux-pam
- mozjs-91
- nspr))
+ (list duktape expat elogind linux-pam nspr))
(propagated-inputs
(list glib)) ;required by polkit-gobject-1.pc
(native-inputs
diff --cc gnu/packages/version-control.scm
index 54ad585c75,08bd80b586..813037a421
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@@ -220,141 -220,140 +220,141 @@@ Python 3.3 and later, rather than on Py
(define-public git
(package
- (name "git")
- (version "2.37.3")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://kernel.org/software/scm/git/git-"
- version ".tar.xz"))
- (sha256
- (base32
- "0yp8hdj0w18jhmmdflzz74z418cw95i08pc22yycyn8nyvbl2il1"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("native-perl" ,perl)
- ;; Add bash-minimal explicitly to ensure it comes before bash-for-tests,
- ;; see <https://bugs.gnu.org/39513>.
- ("bash" ,bash-minimal)
- ("bash-for-tests" ,bash)
- ("gettext" ,gettext-minimal)
- ;; To build the man pages from the git sources, we would need a
dependency
- ;; on a full XML tool chain, and building it actually takes ages. So we
- ;; use this lazy approach and use released tarball.
- ("git-manpages"
- ,(origin
- (method url-fetch)
- (uri (string-append
- "mirror://kernel.org/software/scm/git/git-manpages-"
- version ".tar.xz"))
- (sha256
- (base32
- "053lj9wy8y2yr5jzpb0af4w50gz3ckhgc15wqx7is4z6k9a76lww"))))
- ;; For subtree documentation.
- ("asciidoc" ,asciidoc)
- ("docbook-xsl" ,docbook-xsl)
- ("xmlto" ,xmlto)
- ("pkg-config" ,pkg-config)))
- (inputs
- `(("curl" ,curl)
- ("expat" ,expat)
- ("openssl" ,openssl)
- ("perl" ,perl)
- ("python" ,python) ; for git-p4
- ("zlib" ,zlib)
-
- ;; For PCRE support in git grep (USE_LIBPCRE2).
- ("pcre" ,pcre2)
-
- ;; For 'gitweb.cgi'.
- ("perl-cgi" ,perl-cgi)
-
- ;; For 'git-svn'.
- ("subversion" ,subversion)
- ("perl-term-readkey" ,perl-term-readkey)
-
- ;; For 'git-send-email'.
- ("perl-authen-sasl" ,perl-authen-sasl)
- ("perl-net-smtp-ssl" ,perl-net-smtp-ssl)
- ("perl-io-socket-ssl" ,perl-io-socket-ssl)
-
- ;; For 'git gui', 'gitk', and 'git citool'.
- ("tcl" ,tcl)
- ("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
- `(#:make-flags `("V=1" ;more verbose compilation
-
- ,(string-append "SHELL_PATH="
- (assoc-ref %build-inputs "bash")
- "/bin/sh")
-
- ;; Tests require a bash with completion support.
- ,(string-append "TEST_SHELL_PATH="
- (assoc-ref %build-inputs
"bash-for-tests")
- "/bin/bash")
-
- "USE_LIBPCRE2=yes"
-
- ;; By default 'make install' creates hard links for
- ;; things in 'libexec/git-core', which leads to huge
- ;; nars; see <https://bugs.gnu.org/21949>.
- "NO_INSTALL_HARDLINKS=indeed")
-
- ;; Make sure the full bash does not end up in the final closure.
- #:disallowed-references (,bash)
-
- #:test-target "test"
-
- ;; The explicit --with-tcltk forces the build system to hardcode the
- ;; absolute file name to 'wish'.
- #:configure-flags (list (string-append "--with-tcltk="
- (assoc-ref %build-inputs "tk")
- "/bin/wish8.6") ; XXX
- ,@(if (%current-target-system)
- git-cross-configure-flags
- '()))
-
- #:modules ((srfi srfi-1)
- (srfi srfi-26)
- ((guix build gnu-build-system) #:prefix gnu:)
- ,@%gnu-build-system-modules)
- #:phases
- (modify-phases %standard-phases
- ,@(if (%current-target-system)
- ;; The git build system assumes build == host
- `((add-after 'unpack 'use-host-uname_S
- (lambda _
- (substitute* "config.mak.uname"
- (("uname_S := .*" all)
- (if (equal? ,(%current-target-system) "i586-pc-gnu")
- "uname_S := GNU\n"
- all)))
- #t)))
- ;; We do not have bash-for-tests when cross-compiling.
- `((add-after 'unpack 'modify-PATH
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((path (string-split (getenv "PATH") #\:))
- (bash-full (assoc-ref inputs "bash-for-tests")))
- ;; Drop the test bash from PATH so that (which "sh") and
- ;; similar does the right thing.
- (setenv "PATH" (string-join
- (remove (cut string-prefix? bash-full
<>) path)
- ":"))
- #t)))))
- ;; Add cross curl-config script to PATH when cross-compiling.
- ,@(if (%current-target-system)
- '((add-before 'configure 'add-cross-curl-config
+ (name "git")
- (version "2.37.2")
++ (version "2.37.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kernel.org/software/scm/git/git-"
+ version ".tar.xz"))
+ (sha256
+ (base32
- "00xhdm086bxm4v2p8m7ra7vf9kwdppw4l2n3vakfff253j19qg8w"))))
++ "0yp8hdj0w18jhmmdflzz74z418cw95i08pc22yycyn8nyvbl2il1"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("native-perl" ,perl)
+ ;; Add bash-minimal explicitly to ensure it comes before
bash-for-tests,
+ ;; see <https://bugs.gnu.org/39513>.
+ ("bash" ,bash-minimal)
+ ("bash-for-tests" ,bash)
+ ("gettext" ,gettext-minimal)
+ ;; To build the man pages from the git sources, we would need a
dependency
+ ;; on a full XML tool chain, and building it actually takes ages. So
we
+ ;; use this lazy approach and use released tarball.
+ ("git-manpages"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://kernel.org/software/scm/git/git-manpages-"
+ version ".tar.xz"))
+ (sha256
+ (base32
- "1zhn91fzyyz890a5hm0bvs0vnhy8c81q1fhsk2gfwbbh73z161nz"))))
++ "053lj9wy8y2yr5jzpb0af4w50gz3ckhgc15wqx7is4z6k9a76lww"))))
+ ;; For subtree documentation.
+ ("asciidoc" ,asciidoc)
+ ("docbook2x" ,docbook2x)
+ ("docbook-xsl" ,docbook-xsl)
+ ("libxslt" ,libxslt)
+ ("pkg-config" ,pkg-config)
+ ("texinfo" ,texinfo)
+ ("xmlto" ,xmlto)))
+ (inputs
+ `(("curl" ,curl)
+ ("expat" ,expat)
+ ("openssl" ,openssl)
+ ("perl" ,perl)
+ ("python" ,python) ; for git-p4
+ ("zlib" ,zlib)
+
+ ;; For PCRE support in git grep (USE_LIBPCRE2).
+ ("pcre" ,pcre2)
+
+ ;; For 'gitweb.cgi'.
+ ("perl-cgi" ,perl-cgi)
+
+ ;; For 'git-svn'.
+ ("subversion" ,subversion)
+ ("perl-term-readkey" ,perl-term-readkey)
+
+ ;; For 'git-send-email'.
+ ("perl-authen-sasl" ,perl-authen-sasl)
+ ("perl-net-smtp-ssl" ,perl-net-smtp-ssl)
+ ("perl-io-socket-ssl" ,perl-io-socket-ssl)
+
+ ;; For 'git gui', 'gitk', and 'git citool'.
+ ("tcl" ,tcl)
+ ("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
+ `(#:make-flags `("V=1" ;more verbose compilation
+
+ ,(string-append "SHELL_PATH="
+ (assoc-ref %build-inputs "bash")
+ "/bin/sh")
+
+ ;; Tests require a bash with completion support.
+ ,(string-append "TEST_SHELL_PATH="
+ (assoc-ref %build-inputs
"bash-for-tests")
+ "/bin/bash")
+
+ "USE_LIBPCRE2=yes"
+
+ ;; By default 'make install' creates hard links for
+ ;; things in 'libexec/git-core', which leads to huge
+ ;; nars; see <https://bugs.gnu.org/21949>.
+ "NO_INSTALL_HARDLINKS=indeed")
+
+ ;; Make sure the full bash does not end up in the final closure.
+ #:disallowed-references (,bash)
+
+ #:test-target "test"
+
+ ;; The explicit --with-tcltk forces the build system to hardcode the
+ ;; absolute file name to 'wish'.
+ #:configure-flags (list (string-append "--with-tcltk="
+ (assoc-ref %build-inputs "tk")
+ "/bin/wish8.6") ; XXX
+ ,@(if (%current-target-system)
+ git-cross-configure-flags
+ '()))
+
+ #:modules ((srfi srfi-1)
+ (srfi srfi-26)
+ ((guix build gnu-build-system) #:prefix gnu:)
+ ,@%gnu-build-system-modules)
+ #:phases
+ (modify-phases %standard-phases
+ ,@(if (%current-target-system)
+ ;; The git build system assumes build == host
+ `((add-after 'unpack 'use-host-uname_S
+ (lambda _
+ (substitute* "config.mak.uname"
+ (("uname_S := .*" all)
+ (if (equal? ,(%current-target-system) "i586-pc-gnu")
+ "uname_S := GNU\n"
+ all))))))
+ ;; We do not have bash-for-tests when cross-compiling.
+ `((add-after 'unpack 'modify-PATH
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((path (string-split (getenv "PATH") #\:))
+ (bash-full (assoc-ref inputs "bash-for-tests")))
+ ;; Drop the test bash from PATH so that (which "sh")
and
+ ;; similar does the right thing.
+ (setenv "PATH" (string-join
+ (remove (cut string-prefix? bash-full
<>) path)
+ ":")))))))
+ ;; Add cross curl-config script to PATH when cross-compiling.
+ ,@(if (%current-target-system)
+ '((add-before 'configure 'add-cross-curl-config
(lambda* (#:key inputs #:allow-other-keys)
(setenv "PATH"
(string-append (assoc-ref inputs "curl") "/bin:"