Skip to contentSkip to conversation

Misc autobuilder fixes

PATCH Superseded Thomas Petazzoni 2 participants 8 messages Dec 27, 2014

lore
Share & tools
lore
#0 lore raw

v2 cover Misc autobuilder fixes

Hello,

Second version of the libxmlrpc/xerces fixes. Changes since v1:

- Drop patches that were merged.

- Add hash file for libxmlrpc, as suggested by Yann.

Thomas

Thomas Petazzoni (3):
libxmlrpc: bump to 1.25.30 and add hash file
libxmlrpc: improve curl-config patch
xerces: make sure to use the cross-compiled curl

 .../libxmlrpc/0004-use-correct-curl-config.patch   | 82 ++++++++++++++++++++--
 package/libxmlrpc/libxmlrpc.hash                   |  2 +
 package/libxmlrpc/libxmlrpc.mk                     | 11 ++-
 package/xerces/xerces.mk                           |  2 +-
 4 files changed, 90 insertions(+), 7 deletions(-)
 create mode 100644 package/libxmlrpc/libxmlrpc.hash
Signature · 1 line
2.1.0
#1 lore raw

PATCH v2 1/3 libxmlrpc: bump to 1.25.30 and add hash file

This commit bumps libxmlrpc to the latest available stable version, and adds a hash file.

---
 package/libxmlrpc/libxmlrpc.hash | 2 ++
 package/libxmlrpc/libxmlrpc.mk   | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)
 create mode 100644 package/libxmlrpc/libxmlrpc.hash
package/libxmlrpc/libxmlrpc.hash new file +2 -0
new file mode 100644
index 0000000..d37fcfc
@@ -0,0 +1,2 @@
+# Locally computed
+sha256 8ae6ed4ec57d50ed132b1150fc5258346eef3e291501a564f14fa97586902f98 xmlrpc-c-1.25.30.tgz
package/libxmlrpc/libxmlrpc.mk +1 -1
index a8e8aa3..1b771e2 100644
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBXMLRPC_VERSION = 1.25.26
+LIBXMLRPC_VERSION = 1.25.30
 LIBXMLRPC_SOURCE = xmlrpc-c-$(LIBXMLRPC_VERSION).tgz
 LIBXMLRPC_SITE = http://downloads.sourceforge.net/project/xmlrpc-c/Xmlrpc-c%20Super%20Stable/$(LIBXMLRPC_VERSION)
 LIBXMLRPC_LICENSE = BSD-3c (xml-rpc main code and abyss web server), BSD like (lib/expat), Python 1.5.2 license (parts of xmlrpc_base64.c)
Signature · 1 line
2.1.0
#2 lore raw

PATCH v2 1/3 libxmlrpc: bump to 1.25.30 and add hash file

Thomas, All,

On 2014-12-27 17:25 +0100, Thomas Petazzoni spake thusly:

Quoted 4 lines

This commit bumps libxmlrpc to the latest available stable version, and adds a hash file.

Hash manually verified to be OK.

Regards,
Yann E. MORIN.

Quoted 34 lines
---
 package/libxmlrpc/libxmlrpc.hash | 2 ++
 package/libxmlrpc/libxmlrpc.mk   | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)
 create mode 100644 package/libxmlrpc/libxmlrpc.hash
package/libxmlrpc/libxmlrpc.hash new file +2 -0
new file mode 100644
index 0000000..d37fcfc
@@ -0,0 +1,2 @@
+# Locally computed
+sha256 8ae6ed4ec57d50ed132b1150fc5258346eef3e291501a564f14fa97586902f98 xmlrpc-c-1.25.30.tgz
package/libxmlrpc/libxmlrpc.mk +1 -1
index a8e8aa3..1b771e2 100644
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBXMLRPC_VERSION = 1.25.26
+LIBXMLRPC_VERSION = 1.25.30
 LIBXMLRPC_SOURCE = xmlrpc-c-$(LIBXMLRPC_VERSION).tgz
 LIBXMLRPC_SITE = http://downloads.sourceforge.net/project/xmlrpc-c/Xmlrpc-c%20Super%20Stable/$(LIBXMLRPC_VERSION)
 LIBXMLRPC_LICENSE = BSD-3c (xml-rpc main code and abyss web server), BSD like (lib/expat), Python 1.5.2 license (parts of xmlrpc_base64.c)
Signature · 6 lines
2.1.0

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 13 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.  |
'------------------------------^-------^------------------^--------------------'
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20141227/2c30368e/attachment.asc>
#3 lore raw

PATCH v2 2/3 libxmlrpc: improve curl-config patch

In reply to Thomas Petazzoni

The curl-config patch that makes sure to not use curl-config from the PATH but the curl-config program specified at configure time was forgetting a number of other places. So we change the strategy, and make the configure.in script define a $CURL_CONFIG variable that can be used in Makefiles where appropriate.

This means we need to run autoconf (but not AUTORECONF = YES since the package uses autoconf but not automake).

This fixes build failures in cases where a curl-config program is in the PATH. Fixes:

http://autobuild.buildroot.org/results/06b/06b7eada721483eb57adde147768a1f306b7d0d7/
(and many similar ones)

---
 .../libxmlrpc/0004-use-correct-curl-config.patch   | 82 ++++++++++++++++++++--
 package/libxmlrpc/libxmlrpc.mk                     |  9 ++-
 2 files changed, 86 insertions(+), 5 deletions(-)
package/libxmlrpc/0004-use-correct-curl-config.patch +78 -4
index ada0bd2..c0646d3 100644
@@ -1,9 +1,10 @@
 Use correct curl-config program
 
-Instead of calling again curl-config in src/Makefile (which ends up
+Instead of calling directly curl-config in src/Makefile (which ends up
 calling the wrong curl-config: the one in the PATH instead of the one
-pointed at by the environment variables at configure time), let's use
-the CURL_LDADD variable which was computed at configure time.
+pointed at by the environment variables at configure time), let's
+define a CURL_CONFIG variable that contains the path to the proper
+curl-config program, and use it where appropriate.
 
 Signed-off-by: Thomas Petazzoni <[email protected]>
 
@@ -16,7 +17,80 @@ Index: b/src/Makefile
    TRANSPORT_MODS += blddir/lib/curl_transport/curlmulti
    TRANSPORT_MODS += blddir/lib/curl_transport/lock_pthread
 -  TRANSPORT_LIBDEP += $(shell curl-config --libs)
-+  TRANSPORT_LIBDEP += $(CURL_LDADD)
++  TRANSPORT_LIBDEP += $(shell $CURL_CONFIG --libs)
  endif
  ifeq ($(MUST_BUILD_LIBWWW_CLIENT),yes)
    TRANSPORT_MODS += blddir/lib/libwww_transport/xmlrpc_libwww_transport
+Index: b/config.mk.in
+===================================================================
+--- a/config.mk.in
++++ b/config.mk.in
+@@ -32,6 +32,7 @@
+ LSOCKET = @LSOCKET@
+ WININET_LDADD = @WININET_LDADD@
+ WININET_LIBDIR = @WININET_LIBDIR@
++CURL_CONFIG = @CURL_CONFIG@
+ CURL_LDADD = @CURL_LDADD@
+ CURL_LIBDIR = @CURL_LIBDIR@
+ LIBWWW_LDADD = @LIBWWW_LDADD@
+Index: b/configure.in
+===================================================================
+--- a/configure.in
++++ b/configure.in
+@@ -550,6 +550,8 @@
+     dnl So we don't do any check now.  If we find out there's a problem with
+     dnl older Curls, we will revisit that.
+ 
++    AC_SUBST(CURL_CONFIG)
++
+     CURL_LDADD=$($CURL_CONFIG --libs)
+     AC_SUBST(CURL_LDADD)
+ 
+Index: b/lib/curl_transport/Makefile
+===================================================================
+--- a/lib/curl_transport/Makefile
++++ b/lib/curl_transport/Makefile
+@@ -29,7 +29,7 @@
+ 
+ $(SRCDIR)/common.mk: srcdir blddir
+ 
+-CURL_VERSION := $(shell curl-config --vernum)
++CURL_VERSION := $(shell $CURL_CONFIG --vernum)
+ 
+ # Some time at or before Curl 7.12, <curl/types.h> became an empty file
+ # (no-op).  Some time after Curl 7.18, <curl/types.h> ceased to exist.
+@@ -43,7 +43,7 @@
+   CFLAGS_LOCAL += -DNEED_CURL_TYPES_H
+ endif
+ 
+-CURL_INCLUDES := $(shell curl-config --cflags)
++CURL_INCLUDES := $(shell $CURL_CONFIG --cflags)
+ # We expect that curl-config --cflags just gives us -I options, because
+ # we need just the -I options for 'make dep'.  Plus, it's scary to think
+ # of what any other compiler flag would do to our compile.
+Index: b/src/cpp/test/Makefile
+===================================================================
+--- a/src/cpp/test/Makefile
++++ b/src/cpp/test/Makefile
+@@ -20,7 +20,7 @@
+ LIBS := $(shell $(XMLRPC_C_CONFIG) client --ldadd)
+ 
+ ifeq ($(MUST_BUILD_CURL_CLIENT),yes)
+-  LIBS += $(shell curl-config --libs)
++  LIBS += $(shell $CURL_CONFIG --libs)
+ endif
+ ifeq ($(MUST_BUILD_LIBWWW_CLIENT),yes)
+   LIBS += $(shell libwww-config --libs)
+Index: b/tools/common.mk
+===================================================================
+--- a/tools/common.mk
++++ b/tools/common.mk
+@@ -15,7 +15,7 @@
+   CLIENT_LDLIBS += $(shell libwww-config --libs)
+ endif
+ ifeq ($(MUST_BUILD_CURL_CLIENT),yes)
+-  CLIENT_LDLIBS += $(shell curl-config --libs)
++  CLIENT_LDLIBS += $(shell $CURL_CONFIG --libs)
+ endif
+ ifeq ($(MUST_BUILD_WININET_CLIENT),yes)
+   CLIENT_LDLIBS += $(shell wininet-config --libs)
package/libxmlrpc/libxmlrpc.mk +8 -1
index 1b771e2..c3788d6 100644
@@ -10,10 +10,17 @@ LIBXMLRPC_SITE = http://downloads.sourceforge.net/project/xmlrpc-c/Xmlrpc-c%20Su
 LIBXMLRPC_LICENSE = BSD-3c (xml-rpc main code and abyss web server), BSD like (lib/expat), Python 1.5.2 license (parts of xmlrpc_base64.c)
 LIBXMLRPC_LICENSE_FILES = doc/COPYING
 LIBXMLRPC_INSTALL_STAGING = YES
-LIBXMLRPC_DEPENDENCIES = libcurl
+LIBXMLRPC_DEPENDENCIES = libcurl host-autoconf
 LIBXMLRPC_CONFIG_SCRIPTS = xmlrpc-c-config
 LIBXMLRPC_MAKE = $(MAKE1)
 
+# Using autoconf, not automake, so we cannot use AUTORECONF = YES.
+define LIBXMLRPC_RUN_AUTOCONF
+       cd $(@D); $(HOST_DIR)/usr/bin/autoconf
+endef
+
+LIBXMLRPC_PRE_CONFIGURE_HOOKS += LIBXMLRPC_RUN_AUTOCONF
+
 LIBXMLRPC_CONF_OPTS = \
 	$(if $(BR2_USE_WCHAR),,ac_cv_header_wchar_h=no) \
 	$(if $(BR2_INSTALL_LIBSTDCPP),,--disable-cplusplus) \
Signature · 1 line
2.1.0
#4 lore raw

PATCH v2 2/3 libxmlrpc: improve curl-config patch

Thomas, All,

On 2014-12-27 17:25 +0100, Thomas Petazzoni spake thusly:

Quoted 9 lines

The curl-config patch that makes sure to not use curl-config from the PATH but the curl-config program specified at configure time was forgetting a number of other places. So we change the strategy, and make the configure.in script define a $CURL_CONFIG variable that can be used in Makefiles where appropriate.

This means we need to run autoconf (but not AUTORECONF = YES since the package uses autoconf but not automake).

Quoted 7 lines

This fixes build failures in cases where a curl-config program is in the PATH. Fixes:

http://autobuild.buildroot.org/results/06b/06b7eada721483eb57adde147768a1f306b7d0d7/
(and many similar ones)

[tested against one of the autobuild failures, although I was not able to reproduce it beforehand]

Regards,
Yann E. MORIN.

Quoted 135 lines
---
 .../libxmlrpc/0004-use-correct-curl-config.patch   | 82 ++++++++++++++++++++--
 package/libxmlrpc/libxmlrpc.mk                     |  9 ++-
 2 files changed, 86 insertions(+), 5 deletions(-)
package/libxmlrpc/0004-use-correct-curl-config.patch +78 -4
index ada0bd2..c0646d3 100644
@@ -1,9 +1,10 @@
 Use correct curl-config program
 
-Instead of calling again curl-config in src/Makefile (which ends up
+Instead of calling directly curl-config in src/Makefile (which ends up
 calling the wrong curl-config: the one in the PATH instead of the one
-pointed at by the environment variables at configure time), let's use
-the CURL_LDADD variable which was computed at configure time.
+pointed at by the environment variables at configure time), let's
+define a CURL_CONFIG variable that contains the path to the proper
+curl-config program, and use it where appropriate.
 
 Signed-off-by: Thomas Petazzoni <[email protected]>
 
@@ -16,7 +17,80 @@ Index: b/src/Makefile
    TRANSPORT_MODS += blddir/lib/curl_transport/curlmulti
    TRANSPORT_MODS += blddir/lib/curl_transport/lock_pthread
 -  TRANSPORT_LIBDEP += $(shell curl-config --libs)
-+  TRANSPORT_LIBDEP += $(CURL_LDADD)
++  TRANSPORT_LIBDEP += $(shell $CURL_CONFIG --libs)
  endif
  ifeq ($(MUST_BUILD_LIBWWW_CLIENT),yes)
    TRANSPORT_MODS += blddir/lib/libwww_transport/xmlrpc_libwww_transport
+Index: b/config.mk.in
+===================================================================
+--- a/config.mk.in
++++ b/config.mk.in
+@@ -32,6 +32,7 @@
+ LSOCKET = @LSOCKET@
+ WININET_LDADD = @WININET_LDADD@
+ WININET_LIBDIR = @WININET_LIBDIR@
++CURL_CONFIG = @CURL_CONFIG@
+ CURL_LDADD = @CURL_LDADD@
+ CURL_LIBDIR = @CURL_LIBDIR@
+ LIBWWW_LDADD = @LIBWWW_LDADD@
+Index: b/configure.in
+===================================================================
+--- a/configure.in
++++ b/configure.in
+@@ -550,6 +550,8 @@
+     dnl So we don't do any check now.  If we find out there's a problem with
+     dnl older Curls, we will revisit that.
+ 
++    AC_SUBST(CURL_CONFIG)
++
+     CURL_LDADD=$($CURL_CONFIG --libs)
+     AC_SUBST(CURL_LDADD)
+ 
+Index: b/lib/curl_transport/Makefile
+===================================================================
+--- a/lib/curl_transport/Makefile
++++ b/lib/curl_transport/Makefile
+@@ -29,7 +29,7 @@
+ 
+ $(SRCDIR)/common.mk: srcdir blddir
+ 
+-CURL_VERSION := $(shell curl-config --vernum)
++CURL_VERSION := $(shell $CURL_CONFIG --vernum)
+ 
+ # Some time at or before Curl 7.12, <curl/types.h> became an empty file
+ # (no-op).  Some time after Curl 7.18, <curl/types.h> ceased to exist.
+@@ -43,7 +43,7 @@
+   CFLAGS_LOCAL += -DNEED_CURL_TYPES_H
+ endif
+ 
+-CURL_INCLUDES := $(shell curl-config --cflags)
++CURL_INCLUDES := $(shell $CURL_CONFIG --cflags)
+ # We expect that curl-config --cflags just gives us -I options, because
+ # we need just the -I options for 'make dep'.  Plus, it's scary to think
+ # of what any other compiler flag would do to our compile.
+Index: b/src/cpp/test/Makefile
+===================================================================
+--- a/src/cpp/test/Makefile
++++ b/src/cpp/test/Makefile
+@@ -20,7 +20,7 @@
+ LIBS := $(shell $(XMLRPC_C_CONFIG) client --ldadd)
+ 
+ ifeq ($(MUST_BUILD_CURL_CLIENT),yes)
+-  LIBS += $(shell curl-config --libs)
++  LIBS += $(shell $CURL_CONFIG --libs)
+ endif
+ ifeq ($(MUST_BUILD_LIBWWW_CLIENT),yes)
+   LIBS += $(shell libwww-config --libs)
+Index: b/tools/common.mk
+===================================================================
+--- a/tools/common.mk
++++ b/tools/common.mk
+@@ -15,7 +15,7 @@
+   CLIENT_LDLIBS += $(shell libwww-config --libs)
+ endif
+ ifeq ($(MUST_BUILD_CURL_CLIENT),yes)
+-  CLIENT_LDLIBS += $(shell curl-config --libs)
++  CLIENT_LDLIBS += $(shell $CURL_CONFIG --libs)
+ endif
+ ifeq ($(MUST_BUILD_WININET_CLIENT),yes)
+   CLIENT_LDLIBS += $(shell wininet-config --libs)
package/libxmlrpc/libxmlrpc.mk +8 -1
index 1b771e2..c3788d6 100644
@@ -10,10 +10,17 @@ LIBXMLRPC_SITE = http://downloads.sourceforge.net/project/xmlrpc-c/Xmlrpc-c%20Su
 LIBXMLRPC_LICENSE = BSD-3c (xml-rpc main code and abyss web server), BSD like (lib/expat), Python 1.5.2 license (parts of xmlrpc_base64.c)
 LIBXMLRPC_LICENSE_FILES = doc/COPYING
 LIBXMLRPC_INSTALL_STAGING = YES
-LIBXMLRPC_DEPENDENCIES = libcurl
+LIBXMLRPC_DEPENDENCIES = libcurl host-autoconf
 LIBXMLRPC_CONFIG_SCRIPTS = xmlrpc-c-config
 LIBXMLRPC_MAKE = $(MAKE1)
 
+# Using autoconf, not automake, so we cannot use AUTORECONF = YES.
+define LIBXMLRPC_RUN_AUTOCONF
+       cd $(@D); $(HOST_DIR)/usr/bin/autoconf
+endef
+
+LIBXMLRPC_PRE_CONFIGURE_HOOKS += LIBXMLRPC_RUN_AUTOCONF
+
 LIBXMLRPC_CONF_OPTS = \
 	$(if $(BR2_USE_WCHAR),,ac_cv_header_wchar_h=no) \
 	$(if $(BR2_INSTALL_LIBSTDCPP),,--disable-cplusplus) \
Signature · 6 lines
2.1.0

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
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.  |
'------------------------------^-------^------------------^--------------------'
#5 lore raw

PATCH v2 3/3 xerces: make sure to use the cross-compiled curl

In reply to Thomas Petazzoni

When curl support is enabled in xerces, and a host curl is available on the system, it might try to use it, so this patch adds --with-curl= to the configure options to explicitly indicate where is the curl library to use.

Should fix:

http://autobuild.buildroot.org/results/c3c/c3c6be45d0f764fb931a46dbf1509ccf2916ecbf/

(We were not able to reproduce specifically this problem, but another similar problem, where curl was detected, but considered as non-working because of the compilation failure of a test program.)

---
 package/xerces/xerces.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
package/xerces/xerces.mk +1 -1
index 36955e3..9b2bb81 100644
@@ -20,7 +20,7 @@ XERCES_DEPENDENCIES += libiconv
 endif
 
 ifeq ($(BR2_PACKAGE_LIBCURL),y)
-XERCES_CONF_OPTS += --enable-netaccessor-curl
+XERCES_CONF_OPTS += --enable-netaccessor-curl --with-curl=$(STAGING_DIR)/usr/lib
 XERCES_DEPENDENCIES += libcurl
 else
 XERCES_CONF_OPTS += --disable-network
Signature · 1 line
2.1.0
#6 lore raw

PATCH v2 3/3 xerces: make sure to use the cross-compiled curl

Thomas, All,

On 2014-12-27 17:25 +0100, Thomas Petazzoni spake thusly:

Quoted 7 lines

When curl support is enabled in xerces, and a host curl is available on the system, it might try to use it, so this patch adds --with-curl= to the configure options to explicitly indicate where is the curl library to use.

Should fix:

Quoted 7 lines

http://autobuild.buildroot.org/results/c3c/c3c6be45d0f764fb931a46dbf1509ccf2916ecbf/

(We were not able to reproduce specifically this problem, but another similar problem, where curl was detected, but considered as non-working because of the compilation failure of a test program.)

Regards,
Yann E. MORIN.

Quoted 24 lines
---
 package/xerces/xerces.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
package/xerces/xerces.mk +1 -1
index 36955e3..9b2bb81 100644
@@ -20,7 +20,7 @@ XERCES_DEPENDENCIES += libiconv
 endif
 
 ifeq ($(BR2_PACKAGE_LIBCURL),y)
-XERCES_CONF_OPTS += --enable-netaccessor-curl
+XERCES_CONF_OPTS += --enable-netaccessor-curl --with-curl=$(STAGING_DIR)/usr/lib
 XERCES_DEPENDENCIES += libcurl
 else
 XERCES_CONF_OPTS += --disable-network
Signature · 6 lines
2.1.0

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
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.  |
'------------------------------^-------^------------------^--------------------'
#7 lore raw

v2 cover Misc autobuilder fixes

In reply to Thomas Petazzoni

Hello,

Quoted 4 lines · Thomas Petazzoni

Thomas Petazzoni (3):
libxmlrpc: bump to 1.25.30 and add hash file
libxmlrpc: improve curl-config patch
xerces: make sure to use the cross-compiled curl

Patches applied. Thanks Yann for the review/acks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com