From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark H Weaver Subject: bug#22558: gnupg-2.1.11 on x86_64 failed its tests many times on Hydra Date: Fri, 12 Feb 2016 18:22:46 -0500 Message-ID: <87bn7ltsxl.fsf@netris.org> References: <20160204152848.GA4379@debian> <87r3gs9zvf.fsf@gnu.org> <20160204193649.GA8785@debian> <87d1scxkd6.fsf@netris.org> <878u2ws0se.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:58410) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUN4H-0001k8-U7 for bug-guix@gnu.org; Fri, 12 Feb 2016 18:24:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aUN4D-0007Za-UW for bug-guix@gnu.org; Fri, 12 Feb 2016 18:24:05 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:57421) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUN4D-0007ZQ-QP for bug-guix@gnu.org; Fri, 12 Feb 2016 18:24:01 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84) (envelope-from ) id 1aUN4D-0001qh-Jg for bug-guix@gnu.org; Fri, 12 Feb 2016 18:24:01 -0500 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <878u2ws0se.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Sun, 07 Feb 2016 21:50:09 +0100") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: Eric Bavier , 22558@debbugs.gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Eric Bavier skribis: > >>> > * With 14 test failures. This happened at least twice, on >>> > hydra.gnunet.org. >>> >>> Eric Bavier reported on #guix that it failed to build on his machine >>> twice in a row, with 14 test failures. >> >> I used 'git bisect' on the gnupg repository to narrow the failures >> down. Commit ee87c653bf is the commit that introduces the failures. > > Thanks for digging! Could you report it upstream? I reported it upstream, and now they have a fix in their repo. I've attached a patch to Guix which adds this upstream patch. Eric, would you be willing to test it and see if it fixes the problem for you? Mark --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=0001-gnu-gnupg-Add-upstream-fix-for-test-failures-on-x86_.patch Content-Transfer-Encoding: quoted-printable Content-Description: [PATCH] gnu: gnupg: Add upstream fix for test failures on x86_64 >From bd025179efca777678f39a782f851e07719db05f Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 12 Feb 2016 18:19:05 -0500 Subject: [PATCH] gnu: gnupg: Add upstream fix for test failures on x86_64. Fixes . * gnu/packages/patches/gnupg-simple-query-ignore-status-messages.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. * gnu/packages/gnupg.scm (gnupg)[source]: Add patch. --- gnu-system.am | 1 + gnu/packages/gnupg.scm | 7 +- ...gnupg-simple-query-ignore-status-messages.patch | 142 +++++++++++++++++= ++++ 3 files changed, 148 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/gnupg-simple-query-ignore-status-m= essages.patch diff --git a/gnu-system.am b/gnu-system.am index 9a2988c..3a47e00 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -506,6 +506,7 @@ dist_patch_DATA =3D \ gnu/packages/patches/gmp-arm-asm-nothumb.patch \ gnu/packages/patches/gmp-faulty-test.patch \ gnu/packages/patches/gnucash-price-quotes-perl.patch \ + gnu/packages/patches/gnupg-simple-query-ignore-status-messages.patch \ gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch \ gnu/packages/patches/gobject-introspection-cc.patch \ gnu/packages/patches/gobject-introspection-girepository.patch \ diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index a35e8fc..6cd37bc 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -2,7 +2,7 @@ ;;; Copyright =C2=A9 2012, 2013, 2014, 2015 Ludovic Court=C3=A8s ;;; Copyright =C2=A9 2013, 2015 Andreas Enge ;;; Copyright =C2=A9 2014 Eric Bavier -;;; Copyright =C2=A9 2014, 2015 Mark H Weaver +;;; Copyright =C2=A9 2014, 2015, 2016 Mark H Weaver ;;; Copyright =C2=A9 2015 Paul van der Walt ;;; Copyright =C2=A9 2015, 2016 Efraim Flashner ;;; Copyright =C2=A9 2016 Christopher Allan Webber @@ -206,7 +206,10 @@ compatible to GNU Pth.") ".tar.bz2")) (sha256 (base32 - "06mn2viiwsyq991arh5i5fhr9jyxq2bi0jkdj7ndfisxihngpc5p")))) + "06mn2viiwsyq991arh5i5fhr9jyxq2bi0jkdj7ndfisxihngpc5p")) + (patches + (list (search-patch + "gnupg-simple-query-ignore-status-messages.patch")))= )) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/patches/gnupg-simple-query-ignore-status-messages= .patch b/gnu/packages/patches/gnupg-simple-query-ignore-status-messages.pat= ch new file mode 100644 index 0000000..153f71c --- /dev/null +++ b/gnu/packages/patches/gnupg-simple-query-ignore-status-messages.patch @@ -0,0 +1,142 @@ +Copied from upstream: +http://git.gnupg.org/cgi-bin/gitweb.cgi?p=3Dgnupg.git;a=3Dcommitdiff;h=3Da= cac103ba5772ae738ce5409d17feab80596cde6 + +Fixes: https://debbugs.gnu.org/22558 +Upstream bug: https://bugs.gnupg.org/gnupg/issue2229 + +From acac103ba5772ae738ce5409d17feab80596cde6 Mon Sep 17 00:00:00 2001 +From: "Neal H. Walfield" +Date: Fri, 12 Feb 2016 22:12:21 +0100 +Subject: [PATCH] common: Change simple_query to ignore status messages. + +* common/simple-pwquery.c (simple_query): Ignore status messages. + +-- +Signed-off-by: Neal H. Walfield +GnuPG-bug-id: 2229 +--- + common/simple-pwquery.c | 95 ++++++++++++++++++++++++++++++++++----------= ----- + 1 file changed, 67 insertions(+), 28 deletions(-) + +diff --git a/common/simple-pwquery.c b/common/simple-pwquery.c +index 90d04c0..b2d666c 100644 +--- a/common/simple-pwquery.c ++++ b/common/simple-pwquery.c +@@ -618,6 +618,7 @@ simple_query (const char *query) + int fd =3D -1; + int nread; + char response[500]; ++ int have =3D 0; + int rc; +=20 + rc =3D agent_open (&fd); +@@ -628,40 +629,78 @@ simple_query (const char *query) + if (rc) + goto leave; +=20 +- /* get response */ +- nread =3D readline (fd, response, 499); +- if (nread < 0) +- { +- rc =3D -nread; +- goto leave; +- } +- if (nread < 3) ++ while (1) + { +- rc =3D SPWQ_PROTOCOL_ERROR; +- goto leave; +- } ++ if (! have || ! strchr (response, '\n')) ++ /* get response */ ++ { ++ nread =3D readline (fd, &response[have], ++ sizeof (response) - 1 /* NUL */ - have); ++ if (nread < 0) ++ { ++ rc =3D -nread; ++ goto leave; ++ } ++ have +=3D nread; ++ if (have < 3) ++ { ++ rc =3D SPWQ_PROTOCOL_ERROR; ++ goto leave; ++ } ++ response[have] =3D 0; ++ } +=20 +- if (response[0] =3D=3D 'O' && response[1] =3D=3D 'K') +- /* OK, do nothing. */; +- else if ((nread > 7 && !memcmp (response, "ERR 111", 7) +- && (response[7] =3D=3D ' ' || response[7] =3D=3D '\n') ) +- || ((nread > 4 && !memcmp (response, "ERR ", 4) +- && (strtoul (response+4, NULL, 0) & 0xffff) =3D=3D 99)) ) +- { +- /* 111 is the old Assuan code for canceled which might still +- be in use by old installations. 99 is GPG_ERR_CANCELED as +- used by modern gpg-agents; 0xffff is used to mask out the +- error source. */ ++ if (response[0] =3D=3D 'O' && response[1] =3D=3D 'K') ++ /* OK, do nothing. */; ++ else if ((nread > 7 && !memcmp (response, "ERR 111", 7) ++ && (response[7] =3D=3D ' ' || response[7] =3D=3D '\n') ) ++ || ((nread > 4 && !memcmp (response, "ERR ", 4) ++ && (strtoul (response+4, NULL, 0) & 0xffff) =3D=3D 99= )) ) ++ { ++ /* 111 is the old Assuan code for canceled which might still ++ be in use by old installations. 99 is GPG_ERR_CANCELED as ++ used by modern gpg-agents; 0xffff is used to mask out the ++ error source. */ + #ifdef SPWQ_USE_LOGGING +- log_info (_("canceled by user\n") ); ++ log_info (_("canceled by user\n") ); + #endif +- } +- else +- { ++ } ++ else if (response[0] =3D=3D 'S' && response[1] =3D=3D ' ') ++ { ++ char *nextline; ++ int consumed; ++ ++ nextline =3D strchr (response, '\n'); ++ if (! nextline) ++ /* Point to the NUL. */ ++ nextline =3D &response[have]; ++ else ++ /* Move past the \n. */ ++ nextline ++; ++ ++ consumed =3D (size_t) nextline - (size_t) response; ++ ++ /* Skip any additional newlines. */ ++ while (consumed < have && response[consumed] =3D=3D '\n') ++ consumed ++; ++ ++ have -=3D consumed; ++ ++ if (have) ++ memmove (response, &response[consumed], have + 1); ++ ++ continue; ++ } ++ else ++ { + #ifdef SPWQ_USE_LOGGING +- log_error (_("problem with the agent\n")); ++ log_error (_("problem with the agent (unexpected response \"%s\= "\n"), ++ response); + #endif +- rc =3D SPWQ_ERR_RESPONSE; ++ rc =3D SPWQ_ERR_RESPONSE; ++ } ++ ++ break; + } +=20 + leave: +--=20 +2.6.3 + --=20 2.6.3 --=-=-=--