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
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue