From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id ACCC8158089 for ; Fri, 20 Oct 2023 07:35:39 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id F27982BC045; Fri, 20 Oct 2023 07:35:38 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id D3FEF2BC045 for ; Fri, 20 Oct 2023 07:35:38 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id CE20C335CDF for ; Fri, 20 Oct 2023 07:35:37 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 3808111E3 for ; Fri, 20 Oct 2023 07:35:36 +0000 (UTC) From: "Joonas Niilola" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Joonas Niilola" Message-ID: <1697786750.776672faf2298ee0d943293d75289d86b0c05d31.juippis@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: net-libs/gsoap/, net-libs/gsoap/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: net-libs/gsoap/files/gsoap-2.8.130-musl-strerror_r.patch net-libs/gsoap/gsoap-2.8.130-r1.ebuild X-VCS-Directories: net-libs/gsoap/files/ net-libs/gsoap/ X-VCS-Committer: juippis X-VCS-Committer-Name: Joonas Niilola X-VCS-Revision: 776672faf2298ee0d943293d75289d86b0c05d31 X-VCS-Branch: master Date: Fri, 20 Oct 2023 07:35:36 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 4d8522a2-8bf2-453e-9ccb-40a25ed2752a X-Archives-Hash: 40bcd09b4f3585f482ba8aa68fc8e4a2 commit: 776672faf2298ee0d943293d75289d86b0c05d31 Author: Brahmajit Das gmail com> AuthorDate: Wed Sep 13 05:46:59 2023 +0000 Commit: Joonas Niilola gentoo org> CommitDate: Fri Oct 20 07:25:50 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=776672fa net-libs/gsoap: Fix incompatible integer to pointer conversion Closes: https://bugs.gentoo.org/897870 Signed-off-by: Brahmajit Das gmail.com> Closes: https://github.com/gentoo/gentoo/pull/32741 Signed-off-by: Joonas Niilola gentoo.org> .../files/gsoap-2.8.130-musl-strerror_r.patch | 59 +++++++++++++++ net-libs/gsoap/gsoap-2.8.130-r1.ebuild | 83 ++++++++++++++++++++++ 2 files changed, 142 insertions(+) diff --git a/net-libs/gsoap/files/gsoap-2.8.130-musl-strerror_r.patch b/net-libs/gsoap/files/gsoap-2.8.130-musl-strerror_r.patch new file mode 100644 index 000000000000..01a7f82b2348 --- /dev/null +++ b/net-libs/gsoap/files/gsoap-2.8.130-musl-strerror_r.patch @@ -0,0 +1,59 @@ +Bug: https://bugs.gentoo.org/897870 +From: Brahmajit Das +Date: Tue, 12 Sep 2023 17:32:42 +0000 +Subject: [PATCH] Fix incompatible integer to pointer conversion on musl + +musl libc only supports XSI-compliant version of strerror_r. Hence we +need to check if __GLIBC__ is defined or not. + +Also it's incorrectly assumed to use a differnt version of gethostbyname_r than +that's available with glibc or musl libc. Without the extra !defined(__GLIBC__) +the condition goes straight to the following section of the code +``` +#elif defined(HAVE_GETHOSTBYNAME_R) + hostent = gethostbyname_r(addr, hostent, tmpbuf, tmplen, &soap->errnum); +#elif defined(VXWORKS) +``` +Which is not the correct implementation of gethostbyname_r present. + +Signed-off-by: Brahmajit Das +--- a/gsoap/stdsoap2.c ++++ b/gsoap/stdsoap2.c +@@ -23145,7 +23145,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 !defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && ((!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600))) || !defined(__GLIBC__) + err = strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* XSI-compliant */ + if (err != 0) + soap_strcpy(soap->msgbuf, sizeof(soap->msgbuf), "unknown error"); +--- a/gsoap/stdsoap2.cpp ++++ b/gsoap/stdsoap2.cpp +@@ -5457,7 +5457,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(_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) || !defined(__GLIBC__) + int r; + char *tmpbuf = soap->tmpbuf; + size_t tmplen = sizeof(soap->tmpbuf); +@@ -5490,7 +5490,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(__QNX__) && !defined(QNX) && defined(HAVE_GETHOSTBYNAME_R) ++#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(__GLIBC__) && !defined(SUN_OS) && !defined(__QNX__) && !defined(QNX) && defined(HAVE_GETHOSTBYNAME_R) + while ((r = gethostbyname_r(addr, hostent, tmpbuf, tmplen, &hostent, &soap->errnum)) < 0) + { + if (tmpbuf != soap->tmpbuf) +@@ -23145,7 +23145,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 !defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && ((!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600))) || !defined(__GLIBC__) + 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/net-libs/gsoap/gsoap-2.8.130-r1.ebuild b/net-libs/gsoap/gsoap-2.8.130-r1.ebuild new file mode 100644 index 000000000000..32f10b9caae9 --- /dev/null +++ b/net-libs/gsoap/gsoap-2.8.130-r1.ebuild @@ -0,0 +1,83 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools + +MY_P="${PN}-2.8" +DESCRIPTION="A cross-platform open source C and C++ SDK for SOAP/XML Web services" +HOMEPAGE="http://gsoap2.sourceforge.net" +SRC_URI="mirror://sourceforge/gsoap2/gsoap_${PV}.zip" +S="${WORKDIR}/${MY_P}" + +LICENSE="|| ( gSOAP-1.3b GPL-2+-with-openssl-exception ) GPL-2+" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="doc debug examples ipv6 gnutls +ssl" + +RDEPEND=" + sys-libs/zlib + gnutls? ( net-libs/gnutls ) + ssl? ( + dev-libs/openssl:= + ) +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + app-arch/unzip + sys-devel/bison + sys-devel/flex +" + +PATCHES=( + # Enable shared libs (bug #583398) + "${FILESDIR}/${PN}-2.8.130-shared_libs.patch" + # use XSI-compliant version of strerror_r() on musl + "${FILESDIR}/${PN}-2.8.130-musl-strerror_r.patch" +) + +src_prepare() { + default + eautoreconf +} + +src_configure() { + unset YACC LEX + + local myeconfargs=( + # Don't include xlocale.h as it got removed in >=glibc-2.26 + --disable-xlocale + $(use_enable debug) + $(use_enable gnutls) + $(usev ipv6 --enable-ipv6) + $(usev !ssl --disable-ssl) + ) + + econf "${myeconfargs[@]}" +} + +src_install() { + emake DESTDIR="${D}" install + + # Yes, we also install the license-file since + # it contains info about how to apply the licenses. + dodoc *.txt + + docinto html + dodoc changelog.md + + find "${ED}" \( -name "*.a" -o -name "*.la" \) -delete || die + + if use examples; then + insinto /usr/share/${PN}/examples + doins -r gsoap/samples/* + fi + + if use doc; then + docinto html + dodoc -r gsoap/doc/* + fi +}