Pull two fixes from upstream to make it build.

This commit is contained in:
Tomas Mraz 2017-03-24 17:24:14 +01:00
parent 170553d6b2
commit 55ccc3f503
2 changed files with 152 additions and 1 deletions

View File

@ -68,6 +68,118 @@ diff -up gnupg-2.1.19/dirmngr/Makefile.in.build gnupg-2.1.19/dirmngr/Makefile.in
$(LIBGCRYPT_CFLAGS) $(GPG_ERROR_CFLAGS) $(LIBGCRYPT_CFLAGS) $(GPG_ERROR_CFLAGS)
t_ldap_parse_uri_LDADD = $(ldaplibs) $(t_common_ldadd) $(DNSLIBS) t_ldap_parse_uri_LDADD = $(ldaplibs) $(t_common_ldadd) $(DNSLIBS)
diff -up gnupg-2.1.19/tests/gpgscm/scheme.c.build gnupg-2.1.19/tests/gpgscm/scheme.c
--- gnupg-2.1.19/tests/gpgscm/scheme.c.build 2017-03-01 14:04:33.000000000 +0100
+++ gnupg-2.1.19/tests/gpgscm/scheme.c 2017-03-24 17:22:38.305054344 +0100
@@ -113,41 +113,29 @@ static const char *strlwr(char *s) {
-/* Support for immediate values.
- *
- * Immediate values are tagged with IMMEDIATE_TAG, which is neither
- * used in types, nor in pointer values.
- *
- * XXX: Currently, we only use this to tag pointers in vectors. */
-#define IMMEDIATE_TAG 1
-#define is_immediate(p) ((pointer) ((uintptr_t) (p) & IMMEDIATE_TAG))
-#define set_immediate(p) ((pointer) ((uintptr_t) (p) | IMMEDIATE_TAG))
-#define clr_immediate(p) ((pointer) ((uintptr_t) (p) & ~IMMEDIATE_TAG))
-
-
-
+/* All types have the LSB set. The garbage collector takes advantage
+ * of that to identify types. */
enum scheme_types {
- T_STRING=1 << 1, /* Do not use the lsb, it is used for
- * immediate values. */
- T_NUMBER=2 << 1,
- T_SYMBOL=3 << 1,
- T_PROC=4 << 1,
- T_PAIR=5 << 1,
- T_CLOSURE=6 << 1,
- T_CONTINUATION=7 << 1,
- T_FOREIGN=8 << 1,
- T_CHARACTER=9 << 1,
- T_PORT=10 << 1,
- T_VECTOR=11 << 1,
- T_MACRO=12 << 1,
- T_PROMISE=13 << 1,
- T_ENVIRONMENT=14 << 1,
- T_FOREIGN_OBJECT=15 << 1,
- T_BOOLEAN=16 << 1,
- T_NIL=17 << 1,
- T_EOF_OBJ=18 << 1,
- T_SINK=19 << 1,
- T_LAST_SYSTEM_TYPE=19 << 1
+ T_STRING = 1 << 1 | 1,
+ T_NUMBER = 2 << 1 | 1,
+ T_SYMBOL = 3 << 1 | 1,
+ T_PROC = 4 << 1 | 1,
+ T_PAIR = 5 << 1 | 1,
+ T_CLOSURE = 6 << 1 | 1,
+ T_CONTINUATION = 7 << 1 | 1,
+ T_FOREIGN = 8 << 1 | 1,
+ T_CHARACTER = 9 << 1 | 1,
+ T_PORT = 10 << 1 | 1,
+ T_VECTOR = 11 << 1 | 1,
+ T_MACRO = 12 << 1 | 1,
+ T_PROMISE = 13 << 1 | 1,
+ T_ENVIRONMENT = 14 << 1 | 1,
+ T_FOREIGN_OBJECT = 15 << 1 | 1,
+ T_BOOLEAN = 16 << 1 | 1,
+ T_NIL = 17 << 1 | 1,
+ T_EOF_OBJ = 18 << 1 | 1,
+ T_SINK = 19 << 1 | 1,
+ T_LAST_SYSTEM_TYPE = 19 << 1 | 1
};
static const char *
@@ -1357,20 +1345,20 @@ INTERFACE static void fill_vector(pointe
size_t i;
assert (is_vector (vec));
for(i = 0; i < vector_length(vec); i++) {
- vec->_object._vector._elements[i] = set_immediate(obj);
+ vec->_object._vector._elements[i] = obj;
}
}
INTERFACE static pointer vector_elem(pointer vec, int ielem) {
assert (is_vector (vec));
assert (ielem < vector_length(vec));
- return clr_immediate(vec->_object._vector._elements[ielem]);
+ return vec->_object._vector._elements[ielem];
}
INTERFACE static pointer set_vector_elem(pointer vec, int ielem, pointer a) {
assert (is_vector (vec));
assert (ielem < vector_length(vec));
- vec->_object._vector._elements[ielem] = set_immediate(a);
+ vec->_object._vector._elements[ielem] = a;
return a;
}
@@ -1572,7 +1560,7 @@ E2: setmark(p);
if(is_vector(p)) {
int i;
for (i = 0; i < vector_length(p); i++) {
- mark(clr_immediate(p->_object._vector._elements[i]));
+ mark(p->_object._vector._elements[i]);
}
}
#if SHOW_ERROR_LINE
@@ -1673,8 +1661,9 @@ static void gc(scheme *sc, pointer a, po
for (i = sc->last_cell_seg; i >= 0; i--) {
p = sc->cell_seg[i] + CELL_SEGSIZE;
while (--p >= sc->cell_seg[i]) {
- if (typeflag(p) & IMMEDIATE_TAG)
- continue;
+ if ((typeflag(p) & 1) == 0)
+ /* All types have the LSB set. This is not a typeflag. */
+ continue;
if (is_mark(p)) {
clrmark(p);
} else {
diff -up gnupg-2.1.19/tests/openpgp/Makefile.am.build gnupg-2.1.19/tests/openpgp/Makefile.am diff -up gnupg-2.1.19/tests/openpgp/Makefile.am.build gnupg-2.1.19/tests/openpgp/Makefile.am
--- gnupg-2.1.19/tests/openpgp/Makefile.am.build 2017-03-01 14:04:33.000000000 +0100 --- gnupg-2.1.19/tests/openpgp/Makefile.am.build 2017-03-01 14:04:33.000000000 +0100
+++ gnupg-2.1.19/tests/openpgp/Makefile.am 2017-03-15 18:41:09.899078597 +0100 +++ gnupg-2.1.19/tests/openpgp/Makefile.am 2017-03-15 18:41:09.899078597 +0100
@ -90,3 +202,42 @@ diff -up gnupg-2.1.19/tests/openpgp/Makefile.in.build gnupg-2.1.19/tests/openpgp
gpgtar.scm \ gpgtar.scm \
use-exact-key.scm \ use-exact-key.scm \
default-key.scm \ default-key.scm \
diff -up gnupg-2.1.19/tests/openpgp/quick-key-manipulation.scm.build gnupg-2.1.19/tests/openpgp/quick-key-manipulation.scm
--- gnupg-2.1.19/tests/openpgp/quick-key-manipulation.scm.build 2017-03-01 14:04:33.000000000 +0100
+++ gnupg-2.1.19/tests/openpgp/quick-key-manipulation.scm 2017-03-24 17:23:01.123587702 +0100
@@ -123,8 +123,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")
@@ -155,7 +160,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.
@@ -163,7 +169,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)

View File

@ -210,7 +210,7 @@ fi
%changelog %changelog
* Wed Mar 15 2017 Tomáš Mráz <tmraz@redhat.com> - 2.1.19-1 * Fri Mar 24 2017 Tomáš Mráz <tmraz@redhat.com> - 2.1.19-1
- upgrade to 2.1.19 - upgrade to 2.1.19
- shorten time waiting on gpg-agent/dirmngr to start by exponential - shorten time waiting on gpg-agent/dirmngr to start by exponential
backoff (#1431749) backoff (#1431749)