diff mbox series

[meta-oe] gsoap: Upgrade to 2.8.126

Message ID 20230312203851.3252240-1-raj.khem@gmail.com
State New
Headers show
Series [meta-oe] gsoap: Upgrade to 2.8.126 | expand

Commit Message

Khem Raj March 12, 2023, 8:38 p.m. UTC
Fix build with musl while here
Enable IPv6 and C locales at least

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 ...1-Simplify-check-for-gethostbyname_r.patch | 94 +++++++++++++++++++
 .../{gsoap_2.8.124.bb => gsoap_2.8.126.bb}    |  7 +-
 2 files changed, 98 insertions(+), 3 deletions(-)
 create mode 100644 meta-oe/recipes-support/gsoap/gsoap/0001-Simplify-check-for-gethostbyname_r.patch
 rename meta-oe/recipes-support/gsoap/{gsoap_2.8.124.bb => gsoap_2.8.126.bb} (80%)
diff mbox series

Patch

diff --git a/meta-oe/recipes-support/gsoap/gsoap/0001-Simplify-check-for-gethostbyname_r.patch b/meta-oe/recipes-support/gsoap/gsoap/0001-Simplify-check-for-gethostbyname_r.patch
new file mode 100644
index 0000000000..3d12f733f0
--- /dev/null
+++ b/meta-oe/recipes-support/gsoap/gsoap/0001-Simplify-check-for-gethostbyname_r.patch
@@ -0,0 +1,94 @@ 
+From fa923a50790c907725c822b2fc7d63b2da62b4ad Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 12 Mar 2023 13:34:55 -0700
+Subject: [PATCH] Simplify check for gethostbyname_r()
+
+This helps build fix with musl.
+
+Imported from Alpine: https://git.alpinelinux.org/aports/tree/community/gsoap/musl-fixes.patch
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gsoap/stdsoap2.c   |  6 ++----
+ gsoap/stdsoap2.cpp | 10 ++--------
+ 2 files changed, 4 insertions(+), 12 deletions(-)
+
+diff --git a/gsoap/stdsoap2.c b/gsoap/stdsoap2.c
+index 654a1e1..fa31d02 100644
+--- a/gsoap/stdsoap2.c
++++ b/gsoap/stdsoap2.c
+@@ -5463,7 +5463,7 @@ tcp_gethostbyname(struct soap *soap, const char *addr, struct hostent *hostent,
+     hostent = NULL;
+     soap->errnum = h_errno;
+   }
+-#elif (!defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 || defined(__ANDROID__) || defined(FREEBSD) || defined(__FreeBSD__)) && !defined(SUN_OS) && defined(HAVE_GETHOSTBYNAME_R)
++#elif defined(HAVE_GETHOSTBYNAME_R)
+   while ((r = gethostbyname_r(addr, hostent, tmpbuf, tmplen, &hostent, &soap->errnum)) < 0)
+   {
+     if (tmpbuf != soap->tmpbuf)
+@@ -5478,8 +5478,6 @@ tcp_gethostbyname(struct soap *soap, const char *addr, struct hostent *hostent,
+     if (!tmpbuf)
+       break;
+   }
+-#elif defined(HAVE_GETHOSTBYNAME_R)
+-  hostent = gethostbyname_r(addr, hostent, tmpbuf, tmplen, &soap->errnum);
+ #elif defined(VXWORKS)
+   /* vxWorks compatible */
+   /* If the DNS resolver library resolvLib has been configured in the vxWorks
+@@ -23112,7 +23110,7 @@ soap_strerror(struct soap *soap)
+   {
+ #ifndef WIN32
+ # ifdef HAVE_STRERROR_R
+-#  if !defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && ((!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)))
++#  if 1
+     err = strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* XSI-compliant */
+     if (err != 0)
+       soap_strcpy(soap->msgbuf, sizeof(soap->msgbuf), "unknown error");
+diff --git a/gsoap/stdsoap2.cpp b/gsoap/stdsoap2.cpp
+index 654a1e1..5fd5fd6 100644
+--- a/gsoap/stdsoap2.cpp
++++ b/gsoap/stdsoap2.cpp
+@@ -5430,7 +5430,7 @@ tcp_gethostbyname(struct soap *soap, const char *addr, struct hostent *hostent,
+ {
+ #if (defined(_AIX43) || defined(TRU64) || defined(HP_UX)) && defined(HAVE_GETHOSTBYNAME_R)
+   struct hostent_data ht_data;
+-#elif (!defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 || defined(__ANDROID__) || defined(FREEBSD) || defined(__FreeBSD__)) && defined(HAVE_GETHOSTBYNAME_R)
++#elif defined(HAVE_GETHOSTBYNAME_R)
+   int r;
+   char *tmpbuf = soap->tmpbuf;
+   size_t tmplen = sizeof(soap->tmpbuf);
+@@ -5463,7 +5463,7 @@ tcp_gethostbyname(struct soap *soap, const char *addr, struct hostent *hostent,
+     hostent = NULL;
+     soap->errnum = h_errno;
+   }
+-#elif (!defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 || defined(__ANDROID__) || defined(FREEBSD) || defined(__FreeBSD__)) && !defined(SUN_OS) && defined(HAVE_GETHOSTBYNAME_R)
++#elif defined(HAVE_GETHOSTBYNAME_R)
+   while ((r = gethostbyname_r(addr, hostent, tmpbuf, tmplen, &hostent, &soap->errnum)) < 0)
+   {
+     if (tmpbuf != soap->tmpbuf)
+@@ -5478,8 +5478,6 @@ tcp_gethostbyname(struct soap *soap, const char *addr, struct hostent *hostent,
+     if (!tmpbuf)
+       break;
+   }
+-#elif defined(HAVE_GETHOSTBYNAME_R)
+-  hostent = gethostbyname_r(addr, hostent, tmpbuf, tmplen, &soap->errnum);
+ #elif defined(VXWORKS)
+   /* vxWorks compatible */
+   /* If the DNS resolver library resolvLib has been configured in the vxWorks
+@@ -23112,13 +23110,9 @@ soap_strerror(struct soap *soap)
+   {
+ #ifndef WIN32
+ # ifdef HAVE_STRERROR_R
+-#  if !defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && ((!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)))
+     err = strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* XSI-compliant */
+     if (err != 0)
+       soap_strcpy(soap->msgbuf, sizeof(soap->msgbuf), "unknown error");
+-#  else
+-    return strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* GNU-specific */
+-#  endif
+ # else
+     return strerror(err);
+ # endif
+-- 
+2.39.2
+
diff --git a/meta-oe/recipes-support/gsoap/gsoap_2.8.124.bb b/meta-oe/recipes-support/gsoap/gsoap_2.8.126.bb
similarity index 80%
rename from meta-oe/recipes-support/gsoap/gsoap_2.8.124.bb
rename to meta-oe/recipes-support/gsoap/gsoap_2.8.126.bb
index 22e0119798..10c2c3350d 100644
--- a/meta-oe/recipes-support/gsoap/gsoap_2.8.124.bb
+++ b/meta-oe/recipes-support/gsoap/gsoap_2.8.126.bb
@@ -5,9 +5,9 @@  LICENSE = "GPL-2.0-with-OpenSSL-exception"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4f40a941379143186f9602242c3fb729 \
                     file://GPLv2_license.txt;md5=a33672dbe491b6517750a0389063508b"
 
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}2/${BPN}_${PV}.zip \
-           "
-SRC_URI[sha256sum] = "4b798780989338f665ef8e171bbcc422a271004d62d5852666d5eeca33a6a636"
+SRC_URI = "https://prdownloads.sourceforge.net/${BPN}2/${BPN}_${PV}.zip \
+           file://0001-Simplify-check-for-gethostbyname_r.patch"
+SRC_URI[sha256sum] = "b65190ebf8c2517d6fafbdc2000bc7bc650d921a02f4aa53eb1e3df267592c4a"
 
 inherit autotools
 
@@ -15,6 +15,7 @@  BBCLASSEXTEND = "native"
 
 S = "${WORKDIR}/${BPN}-2.8"
 
+EXTRA_OECONF += "--enable-ipv6 --enable-c-locale"
 PARALLEL_MAKE = ""
 
 EXTRA_OEMAKE:class-target = "SOAP=${STAGING_BINDIR_NATIVE}/soapcpp2"