Message ID | 20210201233518.31176-1-lle-bout@zaclys.net |
---|---|
State | Accepted |
Headers | show |
Series | [bug#46247] gnu: git: Add credential-libsecret output. | expand |
Context | Check | Description |
---|---|---|
cbaines/submitting builds | success | |
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/issue | success | View issue |
Hi Léo, I've committed this, with minor changes, as c53ee79c4ce187b185a070977f69ad9d4fb55179. Léo Le Bouter <lle-bout@zaclys.net> writes: > + (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")))))) A few days ago, I tested your patch (applied to 19783b9f553e433743fd695302df8cac4ec91ae1, which at the time was the latest commit on master). Unfortunately, it caused git-minimal to fail to build: --8<---------------cut here---------------start------------->8--- ./pre-inst-env guix build git ... starting phase `install-credential-libsecret' make: pkg-config: No such file or directory make: pkg-config: No such file or directory gcc -g -O2 -o git-credential-libsecret.o -c git-credential-libsecret.c git-credential-libsecret.c:29:10: fatal error: glib.h: No such file or directory #include <glib.h> ^~~~~~~~ compilation terminated. make: *** [Makefile:19: git-credential-libsecret.o] Error 1 command "make" "-j" "2" failed with status 2 builder for `/gnu/store/fwfv6k7jl8f77awgvs0lg3dnlx85nxd9-git-minimal-2.30.1.drv' failed with exit code 1 build of /gnu/store/fwfv6k7jl8f77awgvs0lg3dnlx85nxd9-git-minimal-2.30.1.drv failed View build log at '/var/log/guix/drvs/fw/fv6k7jl8f77awgvs0lg3dnlx85nxd9-git-minimal-2.30.1.drv.bz2'. guix build: error: build of `/gnu/store/fwfv6k7jl8f77awgvs0lg3dnlx85nxd9-git-minimal-2.30.1.drv' failed --8<---------------cut here---------------end--------------->8--- The same command (./pre-inst-env guix build git) succeeded on commit 19783b9f553e433743fd695302df8cac4ec91ae1. The problem was that git-minimal inherits the arguments (thus the phases) from git, so it needs to also delete the newly added phase: (delete 'build-subtree) (delete 'split) (delete 'install-man-pages) (delete 'install-subtree) (delete 'install-credential-netrc) (delete 'install-credential-libsecret) I also took the liberty of adding #t at the end of the new phase. My understanding is that all successful phases should still be returning #t, as described below, so please take care to always return #t at the end of every phase: https://lists.gnu.org/archive/html/guix-devel/2018-01/msg00353.html https://lists.gnu.org/archive/html/guix-devel/2018-05/msg00369.html Thank you for the contribution! I hope it streamlines your workflow!
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index afbae86772..f78714da57 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -81,6 +81,8 @@ #: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) @@ -194,7 +196,8 @@ as well as the classic centralized workflow.") ;; For subtree documentation. ("asciidoc" ,asciidoc-py3) ("docbook-xsl" ,docbook-xsl) - ("xmlto" ,xmlto))) + ("xmlto" ,xmlto) + ("pkg-config" ,pkg-config))) (inputs `(("curl" ,curl) ("expat" ,expat) @@ -220,11 +223,16 @@ as well as the classic centralized workflow.") ;; 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 @@ -262,6 +270,7 @@ as well as the classic centralized workflow.") #:modules ((srfi srfi-1) (srfi srfi-26) + ((guix build gnu-build-system) #:prefix gnu:) ,@%gnu-build-system-modules) #:phases (modify-phases %standard-phases @@ -389,6 +398,13 @@ as well as the classic centralized workflow.") `("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")))))) (add-after 'install 'install-subtree (lambda* (#:key outputs #:allow-other-keys) (let ((subtree (assoc-ref outputs "subtree")))