unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#46247] [PATCH] gnu: git: Add credential-libsecret output.
@ 2021-02-01 23:35 guix-patches--- via
  2021-02-22  1:10 ` bug#46247: " Chris Marusich
  0 siblings, 1 reply; 2+ messages in thread
From: guix-patches--- via @ 2021-02-01 23:35 UTC (permalink / raw)
  To: 46247

* 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(-)

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





^ permalink raw reply related	[flat|nested] 2+ messages in thread

* bug#46247: [PATCH] gnu: git: Add credential-libsecret output.
  2021-02-01 23:35 [bug#46247] [PATCH] gnu: git: Add credential-libsecret output guix-patches--- via
@ 2021-02-22  1:10 ` Chris Marusich
  0 siblings, 0 replies; 2+ messages in thread
From: Chris Marusich @ 2021-02-22  1:10 UTC (permalink / raw)
  To: Léo Le Bouter; +Cc: 46247-close

[-- Attachment #1: Type: text/plain, Size: 2766 bytes --]

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!

-- 
Chris

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-02-22  1:11 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-01 23:35 [bug#46247] [PATCH] gnu: git: Add credential-libsecret output guix-patches--- via
2021-02-22  1:10 ` bug#46247: " Chris Marusich

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).