[PATCH] gnu: git: Add credential-libsecret output.

DoneSubmitted by Léo Le Bouter.
Details
2 participants
  • Chris Marusich
  • Léo Le Bouter
Owner
unassigned
Severity
normal
L
L
Léo Le Bouter wrote on 2 Feb 00:35 +0100
(address . guix-patches@gnu.org)(name . Léo Le Bouter)(address . lle-bout@zaclys.net)
20210201233518.31176-1-lle-bout@zaclys.net
* gnu/packages/version-control.scm (git):[native-inputs]: Add pkg-config.[inputs]: Add glib and libsecret.[outputs]: Add "credential-libsecret".[arguments]: Add 'install-credential-libsecret phase to #:phases to build andinstall "git-credential-libsecret" to "credential-libsecret" output.--- gnu/packages/version-control.scm | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-)
Toggle diff (65 lines)diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scmindex 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")))-- 2.30.0
C
C
Chris Marusich wrote on 22 Feb 02:10 +0100
(name . Léo Le Bouter)(address . lle-bout@zaclys.net)(address . 46247-close@debbugs.gnu.org)
87zgzw6h6j.fsf@gmail.com
Hi Léo,
I've committed this, with minor changes, asc53ee79c4ce187b185a070977f69ad9d4fb55179.
Léo Le Bouter <lle-bout@zaclys.net> writes:
Toggle quote (8 lines)> + (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 to19783b9f553e433743fd695302df8cac4ec91ae1, which at the time was thelatest commit on master). Unfortunately, it caused git-minimal to failto build:
Toggle snippet (20 lines)./pre-inst-env guix build git
...
starting phase `install-credential-libsecret'make: pkg-config: No such file or directorymake: pkg-config: No such file or directorygcc -g -O2 -o git-credential-libsecret.o -c git-credential-libsecret.cgit-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 1command "make" "-j" "2" failed with status 2builder for `/gnu/store/fwfv6k7jl8f77awgvs0lg3dnlx85nxd9-git-minimal-2.30.1.drv' failed with exit code 1build of /gnu/store/fwfv6k7jl8f77awgvs0lg3dnlx85nxd9-git-minimal-2.30.1.drv failedView 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
The same command (./pre-inst-env guix build git) succeeded on commit19783b9f553e433743fd695302df8cac4ec91ae1.
The problem was that git-minimal inherits the arguments (thus thephases) 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. Myunderstanding is that all successful phases should still be returning#t, as described below, so please take care to always return #t at theend of every phase:
https://lists.gnu.org/archive/html/guix-devel/2018-01/msg00353.htmlhttps://lists.gnu.org/archive/html/guix-devel/2018-05/msg00369.html
Thank you for the contribution! I hope it streamlines your workflow!
-- Chris
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAmAzBIQACgkQ3UCaFdgiRp1aJRAA0+lFgRzaAWto6r3SwVYPJ5DfqBnktCODLWpYOzwE7JrfRHyS9dgukE/+0kT3P1Fkl9MQiOcRQP0BDfC31MHfUqzkk3GB8nu9ZFLoBTwUjnLB2DLJXhfW/zgKGedegOopNEmTNZp5OIjzaBMsUPNYPNnDbJLdABkmt1A7QcFx4fawZeJOvLeBRwzR9IoxxuEHZpoVJqT0outjEBoDHGF6w1i/Ov8VwBBd1sChl7yYGbUFsRQNaGiwPdIwYtclYvnkNJzTJcr6tKQTxzXnEjuxDRhUtoxgXUZoEpZ95FXj29usuZK/PeHYDvPjenWlqwRRu1Td4WJoyKHnJrVseDlcC2yQ68h8BaQLvjm9GCf5qbiQkT+tKqFsXFAoYkDjIfVoHW//QZp+HynUX/Zt1hLjLJZBkrF4fmzTTRhwpX4XgTlk2Eo/pxFXRqS8CGEkeodd9VmrcOFSQFvoE6LOd5gKiaxkzJp6INtsBnRVIIW7jwOdaTWEiu4/i2enP15dldiBL2B8NIpPEmJdouefVdDyijrg3GTalMc45aNtWXKIlfphMmUpvHwEIVhRdYVsSiq6GqOAGwBAM+MYqnfBh02lHXgunGuprBmI2OF4WBjbT5cNLZVdvf1pIBr7J3mwV4emZUbw1VYmNn7+nJYCOIlvRI3Yc75M5X4KB+YR14bpFzo==vMm6-----END PGP SIGNATURE-----
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send email to 46247@debbugs.gnu.org