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

  • Done
  • quality assurance status badge
Details
2 participants
  • Chris Marusich
  • Léo Le Bouter
Owner
unassigned
Submitted by
Léo Le Bouter
Severity
normal
L
L
Léo Le Bouter wrote on 2 Feb 2021 00:35
(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 and
install "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.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")))
--
2.30.0
C
C
Chris Marusich wrote on 22 Feb 2021 02:10
(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, as
c53ee79c4ce187b185a070977f69ad9d4fb55179.

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 to
19783b9f553e433743fd695302df8cac4ec91ae1, which at the time was the
latest commit on master). Unfortunately, it caused git-minimal to fail
to build:

Toggle snippet (20 lines)
./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

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:


Thank you for the contribution! I hope it streamlines your workflow!

--
Chris
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAmAzBIQACgkQ3UCaFdgi
Rp1aJRAA0+lFgRzaAWto6r3SwVYPJ5DfqBnktCODLWpYOzwE7JrfRHyS9dgukE/+
0kT3P1Fkl9MQiOcRQP0BDfC31MHfUqzkk3GB8nu9ZFLoBTwUjnLB2DLJXhfW/zgK
GedegOopNEmTNZp5OIjzaBMsUPNYPNnDbJLdABkmt1A7QcFx4fawZeJOvLeBRwzR
9IoxxuEHZpoVJqT0outjEBoDHGF6w1i/Ov8VwBBd1sChl7yYGbUFsRQNaGiwPdIw
YtclYvnkNJzTJcr6tKQTxzXnEjuxDRhUtoxgXUZoEpZ95FXj29usuZK/PeHYDvPj
enWlqwRRu1Td4WJoyKHnJrVseDlcC2yQ68h8BaQLvjm9GCf5qbiQkT+tKqFsXFAo
YkDjIfVoHW//QZp+HynUX/Zt1hLjLJZBkrF4fmzTTRhwpX4XgTlk2Eo/pxFXRqS8
CGEkeodd9VmrcOFSQFvoE6LOd5gKiaxkzJp6INtsBnRVIIW7jwOdaTWEiu4/i2en
P15dldiBL2B8NIpPEmJdouefVdDyijrg3GTalMc45aNtWXKIlfphMmUpvHwEIVhR
dYVsSiq6GqOAGwBAM+MYqnfBh02lHXgunGuprBmI2OF4WBjbT5cNLZVdvf1pIBr7
J3mwV4emZUbw1VYmNn7+nJYCOIlvRI3Yc75M5X4KB+YR14bpFzo=
=vMm6
-----END PGP SIGNATURE-----

?
Your comment

This issue is archived.

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

To respond to this issue using the mumi CLI, first switch to it
mumi current 46247
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch