gnu: gnupg: Update to 2.1.19.
* gnu/packages/gnupg.scm (gnupg): Update to 2.1.19. [arguments]: Add 'patch-test-paths' phase and remove 'set-gnupg-home' phase. Add '--enable-gnupg-builddir-envvar' to #:configure-flags. [source]: Add 'gnupg-2.1-fix-Y2038-test-failure.patch'. * gnu/packages/patches/gnupg-2.1-fix-Y2038-test-failure.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it.
This commit is contained in:
		
							parent
							
								
									c1029f86e3
								
							
						
					
					
						commit
						f11275c9e5
					
				
					 3 changed files with 97 additions and 8 deletions
				
			
		| 
						 | 
					@ -596,6 +596,7 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/gmp-faulty-test.patch			\
 | 
					  %D%/packages/patches/gmp-faulty-test.patch			\
 | 
				
			||||||
  %D%/packages/patches/gnome-tweak-tool-search-paths.patch	\
 | 
					  %D%/packages/patches/gnome-tweak-tool-search-paths.patch	\
 | 
				
			||||||
  %D%/packages/patches/gnucash-price-quotes-perl.patch		\
 | 
					  %D%/packages/patches/gnucash-price-quotes-perl.patch		\
 | 
				
			||||||
 | 
					  %D%/packages/patches/gnupg-2.1-fix-Y2038-test-failure.patch	\
 | 
				
			||||||
  %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \
 | 
					  %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \
 | 
				
			||||||
  %D%/packages/patches/gobject-introspection-cc.patch		\
 | 
					  %D%/packages/patches/gobject-introspection-cc.patch		\
 | 
				
			||||||
  %D%/packages/patches/gobject-introspection-girepository.patch	\
 | 
					  %D%/packages/patches/gobject-introspection-girepository.patch	\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -217,14 +217,15 @@ compatible to GNU Pth.")
 | 
				
			||||||
(define-public gnupg
 | 
					(define-public gnupg
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "gnupg")
 | 
					    (name "gnupg")
 | 
				
			||||||
    (version "2.1.18")
 | 
					    (version "2.1.19")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
 | 
					              (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
 | 
				
			||||||
                                  ".tar.bz2"))
 | 
					                                  ".tar.bz2"))
 | 
				
			||||||
 | 
					              (patches (search-patches "gnupg-2.1-fix-Y2038-test-failure.patch"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "157rrv3ly9j2k0acz43nhiba5hfl6h7048jvj55wwqjmgsmnyk6h"))))
 | 
					                "1w4vccmb5l50lm4yrz9vkdj7whbfvzx543r55362kkj1aqgyvk26"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("pkg-config" ,pkg-config)))
 | 
					     `(("pkg-config" ,pkg-config)))
 | 
				
			||||||
| 
						 | 
					@ -243,7 +244,11 @@ compatible to GNU Pth.")
 | 
				
			||||||
       ("sqlite" ,sqlite)
 | 
					       ("sqlite" ,sqlite)
 | 
				
			||||||
       ("zlib" ,zlib)))
 | 
					       ("zlib" ,zlib)))
 | 
				
			||||||
   (arguments
 | 
					   (arguments
 | 
				
			||||||
    `(#:configure-flags '("--enable-gpg2-is-gpg")
 | 
					    `(#:configure-flags '("--enable-gpg2-is-gpg"
 | 
				
			||||||
 | 
					                          ;; Otherwise, the test suite looks for the `gpg`
 | 
				
			||||||
 | 
					                          ;; executable in its installation directory in
 | 
				
			||||||
 | 
					                          ;; /gnu/store before it has been installed.
 | 
				
			||||||
 | 
					                          "--enable-gnupg-builddir-envvar")
 | 
				
			||||||
      #:phases
 | 
					      #:phases
 | 
				
			||||||
      (modify-phases %standard-phases
 | 
					      (modify-phases %standard-phases
 | 
				
			||||||
        (add-before 'configure 'patch-paths
 | 
					        (add-before 'configure 'patch-paths
 | 
				
			||||||
| 
						 | 
					@ -259,11 +264,27 @@ compatible to GNU Pth.")
 | 
				
			||||||
              (("/usr/bin/env gpgscm")
 | 
					              (("/usr/bin/env gpgscm")
 | 
				
			||||||
               (string-append (getcwd) "/tests/gpgscm/gpgscm")))
 | 
					               (string-append (getcwd) "/tests/gpgscm/gpgscm")))
 | 
				
			||||||
            #t))
 | 
					            #t))
 | 
				
			||||||
        ;; If this variable is undefined, /bin/pwd is invoked.
 | 
					        (add-before 'build 'patch-test-paths
 | 
				
			||||||
        (add-before 'check 'set-gnupg-home
 | 
					          (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
          (lambda _
 | 
					            (let* ((coreutils (assoc-ref inputs "coreutils"))
 | 
				
			||||||
            (setenv "GNUPGHOME" (getcwd))
 | 
					                   (cat (string-append coreutils "/bin/cat"))
 | 
				
			||||||
            #t)))))
 | 
					                   (pwd (string-append coreutils "/bin/pwd"))
 | 
				
			||||||
 | 
					                   (true (string-append coreutils "/bin/true"))
 | 
				
			||||||
 | 
					                   (false (string-append coreutils "/bin/false")))
 | 
				
			||||||
 | 
					              (substitute* '("tests/inittests"
 | 
				
			||||||
 | 
					                             "tests/pkits/inittests"
 | 
				
			||||||
 | 
					                             "tests/Makefile"
 | 
				
			||||||
 | 
					                             "tests/pkits/common.sh"
 | 
				
			||||||
 | 
					                             "tests/pkits/Makefile"
 | 
				
			||||||
 | 
					                            )
 | 
				
			||||||
 | 
					               (("/bin/pwd") pwd))
 | 
				
			||||||
 | 
					              (substitute* "common/t-exectool.c"
 | 
				
			||||||
 | 
					                (("/bin/cat") cat))
 | 
				
			||||||
 | 
					              (substitute* "common/t-exectool.c"
 | 
				
			||||||
 | 
					                (("/bin/true") true))
 | 
				
			||||||
 | 
					              (substitute* "common/t-exectool.c"
 | 
				
			||||||
 | 
					                (("/bin/false") false))
 | 
				
			||||||
 | 
					              #t))))))
 | 
				
			||||||
    (home-page "https://gnupg.org/")
 | 
					    (home-page "https://gnupg.org/")
 | 
				
			||||||
    (synopsis "GNU Privacy Guard")
 | 
					    (synopsis "GNU Privacy Guard")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										67
									
								
								gnu/packages/patches/gnupg-2.1-fix-Y2038-test-failure.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								gnu/packages/patches/gnupg-2.1-fix-Y2038-test-failure.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,67 @@
 | 
				
			||||||
 | 
					Fix a Y2038 test failure on systems where time_t is a signed 32-bit value:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					https://bugs.gnupg.org/gnupg/issue2988
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Patch copied from upstream source repository:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=commit;h=de3838372ae3cdecbd83eea2c53c8e2656d93052
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					From de3838372ae3cdecbd83eea2c53c8e2656d93052 Mon Sep 17 00:00:00 2001
 | 
				
			||||||
 | 
					From: Justus Winter <justus@g10code.com>
 | 
				
			||||||
 | 
					Date: Tue, 7 Mar 2017 12:18:59 +0100
 | 
				
			||||||
 | 
					Subject: [PATCH] tests: Avoid overflowing signed 32 bit time_t.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* tests/openpgp/quick-key-manipulation.scm: Use expiration times in
 | 
				
			||||||
 | 
					the year 2038 instead of 2105 to avoid overflowing 32 bit time_t.
 | 
				
			||||||
 | 
					time_t is used internally to parse the expiraton time from the iso
 | 
				
			||||||
 | 
					timestamp.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GnuPG-bug-id: 2988
 | 
				
			||||||
 | 
					Signed-off-by: Justus Winter <justus@g10code.com>
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					 tests/openpgp/quick-key-manipulation.scm | 15 +++++++++++----
 | 
				
			||||||
 | 
					 1 file changed, 11 insertions(+), 4 deletions(-)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					diff --git a/tests/openpgp/quick-key-manipulation.scm b/tests/openpgp/quick-key-manipulation.scm
 | 
				
			||||||
 | 
					index 10f0bfe21..08ef62613 100755
 | 
				
			||||||
 | 
					--- a/tests/openpgp/quick-key-manipulation.scm
 | 
				
			||||||
 | 
					+++ b/tests/openpgp/quick-key-manipulation.scm
 | 
				
			||||||
 | 
					@@ -125,8 +125,13 @@
 | 
				
			||||||
 | 
					    (default default never)
 | 
				
			||||||
 | 
					    (rsa "sign auth encr" "seconds=600") ;; GPGME uses this
 | 
				
			||||||
 | 
					    (rsa "auth,encr" "2") ;; "without a letter, days is assumed"
 | 
				
			||||||
 | 
					-   (rsa "sign" "2105-01-01") ;; "last year GnuPG can represent is 2105"
 | 
				
			||||||
 | 
					-   (rsa "sign" "21050101T115500") ;; "last year GnuPG can represent is 2105"
 | 
				
			||||||
 | 
					+   ;; Sadly, the timestamp is truncated by the use of time_t on
 | 
				
			||||||
 | 
					+   ;; systems where time_t is a signed 32 bit value.
 | 
				
			||||||
 | 
					+   (rsa "sign" "2038-01-01")      ;; unix millennium
 | 
				
			||||||
 | 
					+   (rsa "sign" "20380101T115500") ;; unix millennium
 | 
				
			||||||
 | 
					+   ;; Once fixed, we can use later timestamps:
 | 
				
			||||||
 | 
					+   ;; (rsa "sign" "2105-01-01")      ;; "last year GnuPG can represent is 2105"
 | 
				
			||||||
 | 
					+   ;; (rsa "sign" "21050101T115500") ;; "last year GnuPG can represent is 2105"
 | 
				
			||||||
 | 
					    (rsa sign "2d")
 | 
				
			||||||
 | 
					    (rsa1024 sign "2w")
 | 
				
			||||||
 | 
					    (rsa2048 encr "2m")
 | 
				
			||||||
 | 
					@@ -157,7 +162,8 @@
 | 
				
			||||||
 | 
					   (lambda (subkey)
 | 
				
			||||||
 | 
					     (assert (= 1 (:alg subkey)))
 | 
				
			||||||
 | 
					     (assert (string-contains? (:cap subkey) "s"))
 | 
				
			||||||
 | 
					-    (assert (time-matches? 4260207600 ;; 2105-01-01
 | 
				
			||||||
 | 
					+    (assert (time-matches? 2145916800    ;; 2038-01-01
 | 
				
			||||||
 | 
					+			   ;; 4260207600 ;; 2105-01-01
 | 
				
			||||||
 | 
					 			   (string->number (:expire subkey))
 | 
				
			||||||
 | 
					 			   ;; This is off by 12h, but I guess it just
 | 
				
			||||||
 | 
					 			   ;; choses the middle of the day.
 | 
				
			||||||
 | 
					@@ -165,7 +171,8 @@
 | 
				
			||||||
 | 
					   (lambda (subkey)
 | 
				
			||||||
 | 
					     (assert (= 1 (:alg subkey)))
 | 
				
			||||||
 | 
					     (assert (string-contains? (:cap subkey) "s"))
 | 
				
			||||||
 | 
					-    (assert (time-matches? 4260254100 ;; UTC 2105-01-01 11:55:00
 | 
				
			||||||
 | 
					+    (assert (time-matches? 2145959700    ;; UTC 2038-01-01 11:55:00
 | 
				
			||||||
 | 
					+			   ;; 4260254100 ;; UTC 2105-01-01 11:55:00
 | 
				
			||||||
 | 
					 			   (string->number (:expire subkey))
 | 
				
			||||||
 | 
					 			   (minutes->seconds 5))))
 | 
				
			||||||
 | 
					   (lambda (subkey)
 | 
				
			||||||
 | 
					-- 
 | 
				
			||||||
 | 
					2.12.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Reference in a new issue