Patchwork [1/1] gnu: gnupg: Update to 2.1.16.

login
register
mail settings
Submitter Leo Famulari
Date Nov. 19, 2016, 6:32 p.m.
Message ID <bb22c993e12071beaafbceeb08415a20452b664c.1479580353.git.leo@famulari.name>
Download mbox | patch
Permalink /patch/17591/
State New
Headers show

Comments

Leo Famulari - Nov. 19, 2016, 6:32 p.m.
* gnu/packages/gnupg.scm (gnupg): Update to 2.1.16.
[native-inputs]: Add autoconf, automake, and gettext-minimal.
[arguments]: Patch more files in 'patch-paths' phase, and run it after
'patch-source-shebangs'. Add 'bootstrap' phase. Remove 'set-home' phase.
---
 gnu/packages/gnupg.scm | 31 ++++++++++++++++++-------------
 1 file changed, 18 insertions(+), 13 deletions(-)
Efraim Flashner - Nov. 19, 2016, 10:41 p.m.
Looks like they forgot to bootstrap it then.

Built fine for me :).
Leo Famulari - Nov. 19, 2016, 11:09 p.m.
On Sun, Nov 20, 2016 at 12:41:31AM +0200, Efraim Flashner wrote:
> Looks like they forgot to bootstrap it then.

Because I altered two Makefile.am files in the 'patch-paths' phase, I
had to re-do the bootstrap in order for the Makefiles to be regenerated.

I'm not an expert on Autotools. Does anyone know if there is a better
way?

> Built fine for me :).

Okay, thanks for checking!
Leo Famulari - Nov. 19, 2016, 11:10 p.m.
On Sun, Nov 20, 2016 at 12:41:31AM +0200, Efraim Flashner wrote:
> Looks like they forgot to bootstrap it then.
> 
> Built fine for me :).

This GPG prints the following warning when I use it:

gpg: NOTE: THIS IS A DEVELOPMENT VERSION!
gpg: It is only intended for test purposes and should NOT be
gpg: used in a production environment or with production keys!

So, I think it needs some more work. I'll look into it later tonight.
Mathieu Lirzin - Nov. 19, 2016, 11:31 p.m.
Hi,

Leo Famulari <leo@famulari.name> writes:

> On Sun, Nov 20, 2016 at 12:41:31AM +0200, Efraim Flashner wrote:
>> Looks like they forgot to bootstrap it then.
>
> Because I altered two Makefile.am files in the 'patch-paths' phase, I
> had to re-do the bootstrap in order for the Makefiles to be regenerated.
>
> I'm not an expert on Autotools. Does anyone know if there is a better
> way?

I have not tried but unless some weird issue, I think you can safely
replace "/bin/pwd" directly in the generated Makefile(s) instead of the
Makefile.am sources.

This should fix the Autotools dependency and the warning.
Leo Famulari - Nov. 20, 2016, 5:56 a.m.
On Sun, Nov 20, 2016 at 12:31:30AM +0100, Mathieu Lirzin wrote:
> Hi,
> 
> Leo Famulari <leo@famulari.name> writes:
> 
> > On Sun, Nov 20, 2016 at 12:41:31AM +0200, Efraim Flashner wrote:
> >> Looks like they forgot to bootstrap it then.
> >
> > Because I altered two Makefile.am files in the 'patch-paths' phase, I
> > had to re-do the bootstrap in order for the Makefiles to be regenerated.
> >
> > I'm not an expert on Autotools. Does anyone know if there is a better
> > way?
> 
> I have not tried but unless some weird issue, I think you can safely
> replace "/bin/pwd" directly in the generated Makefile(s) instead of the
> Makefile.am sources.
> 
> This should fix the Autotools dependency and the warning.

I read a bit more and learned about $GNUPGHOME. `/bin/pwd/` is only
invoked if that variable is unset, so I set it in the test suite, and
it works for me.

And the problem with $HOME not existing, worked around by the set-home
phase, was apparently fixed in:

https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=commitdiff;h=38d369de13acb95208a0ed8d1cf82ac19173688f;hp=fde9fa81d3d3b25a929b532cc1960d9d9f454a0c

Which I learned about here:

https://anonscm.debian.org/git/pkg-gnupg/gnupg2.git/commit/?id=bbcd4f60e834c79454d1eaf4adf052f8ff545f99

Pushed as 764c5662211793d381b6c4a85f6a1ef4ad353c3f

Patch

diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index fccaa97..ea9a646 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -30,6 +30,7 @@ 
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages)
   #:use-module (gnu packages adns)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages openldap)
   #:use-module (gnu packages perl)
@@ -39,6 +40,7 @@ 
   #:use-module (gnu packages readline)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages databases)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
@@ -213,17 +215,21 @@  compatible to GNU Pth.")
 (define-public gnupg
   (package
     (name "gnupg")
-    (version "2.1.15")
+    (version "2.1.16")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
                                   ".tar.bz2"))
               (sha256
                (base32
-                "1pgz02gd84ab94w4xdg67p9z8kvkyr9d523bvcxxd2hviwh1m362"))))
+                "0i483m9q032a0s50f1izb213g4h5i7pcgn395m6hvl3sg2kadfa9"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)
+       ;; For bootstrapping
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("gettext" ,gettext-minimal)))
     (inputs
      `(("adns" ,adns)
        ("bzip2" ,bzip2)
@@ -243,27 +249,26 @@  compatible to GNU Pth.")
     `(#:configure-flags '("--enable-gpg2-is-gpg")
       #:phases
       (modify-phases %standard-phases
-        (add-before 'configure 'patch-paths
+        (add-after 'patch-source-shebangs 'patch-paths
           (lambda* (#:key inputs #:allow-other-keys)
-            (substitute* "tests/openpgp/defs.inc"
+            (substitute* '("tests/inittests"
+                           "tests/pkits/inittests"
+                           "tests/pkits/Makefile.am"
+                           "tests/pkits/common.sh"
+                           "tests/Makefile.am")
               (("/bin/pwd") (which "pwd")))
             (substitute* "scd/scdaemon.c"
               (("\"(libpcsclite\\.so[^\"]*)\"" _ name)
                (string-append "\"" (assoc-ref inputs "pcsc-lite")
                               "/lib/" name "\"")))
             #t))
+        (add-before 'configure 'bootstrap
+          (lambda _ (zero? (system* "autoreconf" "-vfi"))))
         (add-after 'build 'patch-scheme-tests
           (lambda _
             (substitute* (find-files "tests" ".\\.scm$")
               (("/usr/bin/env gpgscm")
-               (string-append (getcwd) "/tests/gpgscm/gpgscm")))))
-        (add-before 'check 'set-home
-          ;; Some tests require write access to $HOME, otherwise leading to
-          ;; 'failed to create directory /homeless-shelter/.asy' error.
-          ;; TODO Try removing this phase for GnuPG 2.1.16.
-          (lambda _
-            (setenv "HOME" "/tmp")
-            #t)))))
+               (string-append (getcwd) "/tests/gpgscm/gpgscm"))))))))
     (home-page "https://gnupg.org/")
     (synopsis "GNU Privacy Guard")
     (description