package/gnmupg2: build fixes
Hello All!
This series fixes two build issues with gnupg2:
- build failure with musl (missing #include),
- really not running tests in cross-compilation.
Regards,
Yann E. MORIN.
The following changes since commit 4cb010a5f1773d11c0dadcb3ac5ffa6e154fa113:
package/libhdhomerun: new package (2015-12-16 22:11:33 +0100)
are available in the git repository at:
git://git.busybox.net/~ymorin/git/buildroot yem/gnupg2
for you to fetch changes up to c7dd2e8bb5db5e326a7a4e7cb3611b8a0eea0e68:
package/gnupg2: really do not run tests in cross-compilation (2015-12-16 22:42:36 +0100)
----------------------------------------------------------------
Yann E. MORIN (2):
package/gnupg2: fix build with musl package/gnupg2: really do not run tests in cross-compilation
.../0000-silence-git-when-not-in-git-tree.patch | 26 +++++++++++++++ package/gnupg2/0001-fix-pth-config-usage.patch | 29 ++++++++-------- package/gnupg2/0002-missing-include.patch | 15 +++++++++ package/gnupg2/0003-dont-run-tests.patch | 39 ++++++++++++++++++++++ package/gnupg2/gnupg2.mk | 4 +++ 5 files changed, 97 insertions(+), 16 deletions(-) create mode 100644 package/gnupg2/0000-silence-git-when-not-in-git-tree.patch create mode 100644 package/gnupg2/0002-missing-include.patch create mode 100644 package/gnupg2/0003-dont-run-tests.patch
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 1/2 package/gnupg2: fix build with musl
Add a missing include to get select().
Fixes:
http://autobuild.buildroot.org/results/8b2/8b282f546dc36f4bf9c25721cdf922c7a7ba340b/ http://autobuild.buildroot.org/results/dc1/dc192255b1fcae18db8b98e65309e5c1493bdbc1/ http://autobuild.buildroot.org/results/4c0/4c0ab2b28500a28945da3f4df742d8c2e2f21cd0/ ...
--- package/gnupg2/0002-missing-include.patch | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 package/gnupg2/0002-missing-include.patch
package/gnupg2/0002-missing-include.patch new file +15 -0
@@ -0,0 +1,15 @@ +tools/watchgnupg: select() is from sys/select.h + +Signed-off-by: "Yann E. MORIN" <[email protected]> + +diff -durN gnupg2-2.0.29.orig/tools/watchgnupg.c gnupg2-2.0.29/tools/watchgnupg.c +--- gnupg2-2.0.29.orig/tools/watchgnupg.c 2015-09-08 14:39:24.000000000 +0200 ++++ gnupg2-2.0.29/tools/watchgnupg.c 2015-12-16 18:17:17.758057787 +0100 +@@ -32,6 +32,7 @@ + #include <sys/un.h> + #include <fcntl.h> + #include <time.h> ++#include <sys/select.h> + + #define PGM "watchgnupg" +
Signature · 1 line
1.9.1
PATCH 2/2 package/gnupg2: really do not run tests in cross-compilation
In reply to Yann E. MORINgnupg2 still tries to run test even if it tries to avoid it in cross-compilation.
Really disable running the tests.
Since that requires a complete autoreconf, the existing patch against configure is turned into a patch against the m4 macro.
since we autoreconf, we slightly patch configure.ac to not emit git errors on stderr because it is not in a git tree.
--- .../0000-silence-git-when-not-in-git-tree.patch | 26 +++++++++++++++ package/gnupg2/0001-fix-pth-config-usage.patch | 29 ++++++++-------- package/gnupg2/0003-dont-run-tests.patch | 39 ++++++++++++++++++++++ package/gnupg2/gnupg2.mk | 4 +++ 4 files changed, 82 insertions(+), 16 deletions(-) create mode 100644 package/gnupg2/0000-silence-git-when-not-in-git-tree.patch create mode 100644 package/gnupg2/0003-dont-run-tests.patch
package/gnupg2/0000-silence-git-when-not-in-git-tree.patch new file +26 -0
@@ -0,0 +1,26 @@ +configure: silence autoreconf when not in a git tree + +When autoreconfiguring ourside of a git tree, the output is verbose +with git errors. + +Silence that by consigning stderr to oblivion. + +Signed-off-by: "Yann E. MORIN" <[email protected]> + +diff -durN gnupg2-2.0.29.orig/configure.ac gnupg2-2.0.29/configure.ac +--- gnupg2-2.0.29.orig/configure.ac 2015-09-08 14:39:24.000000000 +0200 ++++ gnupg2-2.0.29/configure.ac 2015-12-16 18:34:47.099493863 +0100 +@@ -33,11 +33,11 @@ + # flag indicating a development version (mym4_isgit). Note that the + # m4 processing is done by autoconf and not during the configure run. + m4_define([mym4_revision], +- m4_esyscmd([git rev-parse --short HEAD | tr -d '\n\r'])) ++ m4_esyscmd([git rev-parse --short HEAD 2>/dev/null | tr -d '\n\r'])) + m4_define([mym4_revision_dec], + m4_esyscmd_s([echo $((0x$(echo ]mym4_revision[|head -c 4)))])) + m4_define([mym4_betastring], +- m4_esyscmd_s([git describe --match 'gnupg-2.[0-9].*[0-9]' --long|\ ++ m4_esyscmd_s([git describe --match 'gnupg-2.[0-9].*[0-9]' --long 2>/dev/null |\ + awk -F- '$3!=0{print"-beta"$3}'])) + m4_define([mym4_isgit],m4_if(mym4_betastring,[],[no],[yes])) + m4_define([mym4_full_version],[mym4_version[]mym4_betastring])
package/gnupg2/0001-fix-pth-config-usage.patch +13 -16
@@ -6,22 +6,19 @@ original one when reporting the version number. This patch to gnupg2's configure script adjusts the version checking to support this difference, since Buildroot uses pth-config from pthsem. -We patch directly the configure script, because triggering the entire -autoreconf dance for just a one byte change in the configure script -seems a bit silly. - Signed-off-by: Thomas Petazzoni <[email protected]> +[yann.morin.1998 at free.fr: adapt to patch m4 macro for autoreconfiguring] +Signed-off-by: "Yann E. MORIN" <[email protected]> -Index: b/configure -=================================================================== ---- a/configure -+++ b/configure -@@ -8346,7 +8346,7 @@ - tmp=1.3.7 - if test "$PTH_CONFIG" != "no"; then +diff -durN gnupg2-2.0.29.orig/m4/gnupg-pth.m4 gnupg2-2.0.29/m4/gnupg-pth.m4 +--- gnupg2-2.0.29.orig/m4/gnupg-pth.m4 2015-09-08 14:39:24.000000000 +0200 ++++ gnupg2-2.0.29/m4/gnupg-pth.m4 2015-12-16 18:30:54.336513493 +0100 +@@ -17,7 +17,7 @@ + # Taken and modified from the m4 macros which come with Pth. + AC_DEFUN([GNUPG_PTH_VERSION_CHECK], + [ +- _pth_version=`$PTH_CONFIG --version | awk 'NR==1 {print [$]3}'` ++ _pth_version=`$PTH_CONFIG --version | awk 'NR==1 {print [$]2}'` + _req_version="ifelse([$1],,1.2.0,$1)" -- _pth_version=`$PTH_CONFIG --version | awk 'NR==1 {print $3}'` -+ _pth_version=`$PTH_CONFIG --version | awk 'NR==1 {print $2}'` - _req_version="$tmp" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTH - version >= $_req_version" >&5 + AC_MSG_CHECKING(for PTH - version >= $_req_version)
package/gnupg2/0003-dont-run-tests.patch new file +39 -0
@@ -0,0 +1,39 @@ +tests: really don't run tests in cross-compilation + +Signed-off-by: "Yann E. MORIN" <[email protected]> + +diff -durN gnupg2-2.0.29.orig/tests/Makefile.am gnupg2-2.0.29/tests/Makefile.am +--- gnupg2-2.0.29.orig/tests/Makefile.am 2015-09-08 14:39:24.000000000 +0200 ++++ gnupg2-2.0.29/tests/Makefile.am 2015-12-16 18:27:55.778227183 +0100 +@@ -64,6 +64,7 @@ + asschk_SOURCES = asschk.c + + ++if RUN_GPG_TESTS + all-local: inittests.stamp + + clean-local: +@@ -72,4 +73,5 @@ + inittests.stamp: inittests + srcdir=$(srcdir) $(TESTS_ENVIRONMENT) $(srcdir)/inittests + echo timestamp >./inittests.stamp ++endif # RUN_GPG_TESTS + +diff -durN gnupg2-2.0.29.orig/tests/pkits/Makefile.am gnupg2-2.0.29/tests/pkits/Makefile.am +--- gnupg2-2.0.29.orig/tests/pkits/Makefile.am 2015-09-01 08:52:21.000000000 +0200 ++++ gnupg2-2.0.29/tests/pkits/Makefile.am 2015-12-16 18:44:06.422655594 +0100 +@@ -52,6 +52,7 @@ + + DISTCLEANFILES = pubring.kbx~ random_seed + ++if RUN_GPG_TESTS + all-local: inittests.stamp + + clean-local: +@@ -71,5 +72,5 @@ + elif test $$? -eq 77; then echo "- SKIP $$tst"; \ + fi; \ + done +- ++endif # RUN_GPG_TESTS +
package/gnupg2/gnupg2.mk +4 -0
@@ -11,6 +11,10 @@ GNUPG2_LICENSE = GPLv3+ GNUPG2_LICENSE_FILES = COPYING GNUPG2_DEPENDENCIES = zlib libgpg-error libgcrypt libassuan libksba libpthsem \ $(if $(BR2_PACKAGE_LIBICONV),libiconv) + +# Patching configure.ac and m4 macros, as well as Makefile.am +GNUPG2_AUTORECONF = YES + GNUPG2_CONF_OPTS = \ --disable-rpath --disable-regex --disable-doc \ --with-libgpg-error-prefix=$(STAGING_DIR)/usr \
Signature · 1 line
1.9.1
PATCH 2/2 package/gnupg2: really do not run tests in cross-compilation
Quoted 5 lines · Yann E. MORIN
gnupg2 still tries to run test even if it tries to avoid it in cross-compilation.
Really disable running the tests.
Quoted 8 lines
Since that requires a complete autoreconf, the existing patch against configure is turned into a patch against the m4 macro.
since we autoreconf, we slightly patch configure.ac to not emit git errors on stderr because it is not in a git tree.
Signed-off-by "Yann E. MORIN" <[email protected]>Cc Thomas Petazzoni <[email protected]>
but minor nits.
Quoted 2 lines
--- .../0000-silence-git-when-not-in-git-tree.patch | 26 +++++++++++++++
I would have prefered to renumber the patches rather than adding a 0000. And
anyway it's not necessary to add it as the first patch, you can add it as a 0004 as well.
Quoted 13 lines
package/gnupg2/0001-fix-pth-config-usage.patch | 29 ++++++++-------- package/gnupg2/0003-dont-run-tests.patch | 39 ++++++++++++++++++++++ package/gnupg2/gnupg2.mk | 4 +++ 4 files changed, 82 insertions(+), 16 deletions(-) create mode 100644 package/gnupg2/0000-silence-git-when-not-in-git-tree.patch create mode 100644 package/gnupg2/0003-dont-run-tests.patchpackage/gnupg2/0000-silence-git-when-not-in-git-tree.patch new file +0
-0
package/gnupg2/0000-silence-git-when-not-in-git-tree.patch line 8
Quoted 8 lines
package/gnupg2/0000-silence-git-when-not-in-git-tree.patch new file +8
-0@@ -0,0 +1,26 @@ +configure: silence autoreconf when not in a git tree + +When autoreconfiguring ourside of a git tree, the output is verbose +with git errors. + +Silence that by consigning stderr to oblivion. + +Signed-off-by: "Yann E. MORIN" <[email protected]>
Is this upstreamable?
Regards,
Arnout
Quoted 18 lines
package/gnupg2/0000-silence-git-when-not-in-git-tree.patch new file +18
-0+ +diff -durN gnupg2-2.0.29.orig/configure.ac gnupg2-2.0.29/configure.ac +--- gnupg2-2.0.29.orig/configure.ac 2015-09-08 14:39:24.000000000 +0200 ++++ gnupg2-2.0.29/configure.ac 2015-12-16 18:34:47.099493863 +0100 +@@ -33,11 +33,11 @@ + # flag indicating a development version (mym4_isgit). Note that the + # m4 processing is done by autoconf and not during the configure run. + m4_define([mym4_revision], +- m4_esyscmd([git rev-parse --short HEAD | tr -d '\n\r'])) ++ m4_esyscmd([git rev-parse --short HEAD 2>/dev/null | tr -d '\n\r'])) + m4_define([mym4_revision_dec], + m4_esyscmd_s([echo $((0x$(echo ]mym4_revision[|head -c 4)))])) + m4_define([mym4_betastring], +- m4_esyscmd_s([git describe --match 'gnupg-2.[0-9].*[0-9]' --long|\ ++ m4_esyscmd_s([git describe --match 'gnupg-2.[0-9].*[0-9]' --long 2>/dev/null |\ + awk -F- '$3!=0{print"-beta"$3}'])) + m4_define([mym4_isgit],m4_if(mym4_betastring,[],[no],[yes])) + m4_define([mym4_full_version],[mym4_version[]mym4_betastring])
[snip]
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
Yann,
Quoted 3 lines · Yann E. MORIN
Yann E. MORIN (2):
package/gnupg2: fix build with musl package/gnupg2: really do not run tests in cross-compilation
Both applied. On patch 2, as suggested by Arnout, I have renamed patch 0000 to 0004.
As suggested by Arnout as well, please submit the patches upstream :-)
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com