summaryrefslogtreecommitdiff
path: root/dev-libs/xmlrpc-c
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2025-04-08 08:43:12 +0100
committerV3n3RiX <venerix@koprulu.sector>2025-04-08 08:43:12 +0100
commite81d2dd033df3a61b874a9a37f951ca05eead86f (patch)
tree82bfb1314b75b6c04de41a378a4838b7a18b0d68 /dev-libs/xmlrpc-c
parent288d9455931660abb6dfa534a78d45c7fb901477 (diff)
gentoo auto-resync : 08:04:2025 - 08:43:11
Diffstat (limited to 'dev-libs/xmlrpc-c')
-rw-r--r--dev-libs/xmlrpc-c/Manifest2
-rw-r--r--dev-libs/xmlrpc-c/files/xmlrpc-c-1.59.03-use-system-expat.patch229
-rw-r--r--dev-libs/xmlrpc-c/xmlrpc-c-1.59.03-r2.ebuild90
3 files changed, 321 insertions, 0 deletions
diff --git a/dev-libs/xmlrpc-c/Manifest b/dev-libs/xmlrpc-c/Manifest
index 805c3c64a033..911a1b21e9fd 100644
--- a/dev-libs/xmlrpc-c/Manifest
+++ b/dev-libs/xmlrpc-c/Manifest
@@ -1,11 +1,13 @@
AUX xmlrpc-c-1.51.06-pkg-config-libxml2.patch 3488 BLAKE2B 498c4654bf5733b2457d5c156f46504dcadaa1befa4e4ff51bd014c4a529f2d3ea76ccc3dc5f0b30f7b6ff32f827148ae9827eca4041c07d8a8b71316cecae27 SHA512 3990ef576e1ce313efaeb0829b72decf94a97e4390b74bbc23a680727d451d64a1b7ca55210f9b2df980bf4ab110e0f091d3f33fabd4a1f61b5ee0e54cdec6b9
AUX xmlrpc-c-1.51.06-pkg-config-openssl.patch 1264 BLAKE2B 035b1635abe42ce91a5c8ea277067e1fb935644186dfc5775c579e98b973f88714a63a4543e1373060a98bdc485f76957361fee0e22bbc8a74a5bf541349375d SHA512 a2a5a65dbf84b0494b3e204b438a149db65a2aeb62baeee5564c8f2373f67690b783fd48c2219c66fe88444fd0c9c6ecf1f8447cfe61f7078eb678619f025366
AUX xmlrpc-c-1.54.06-wformat-security.patch 1107 BLAKE2B 4572a031c01f018af7fe8281429d8a43c93a07f9af0cae47d1f5c2e1b4cf0aac98c0a3d00bce7ff4964b61d9f1c4b2a265379f5efcf49ccb60c4207bcccafd34 SHA512 5ecaea4f875261b9c108840779554505fead02011b5fbf6387a01335cbcd5169e2f76b491806efabdb418c0dee9977f15856470099e3464ec039bf8dada9b9ec
+AUX xmlrpc-c-1.59.03-use-system-expat.patch 7591 BLAKE2B 083684f61e0448ee34b724edf97c349927f0f1360af94cbbbccac3ab0311ec1bc564b4160632281711180c51f75ede0469951dd3ffe3a2a6e71f993acc491944 SHA512 23252a55b648fb9637f7575df82646e7ee50aacea2b0161b961468c11c29a304cb92c6f144f162dea33d9af009594e4c745598197c779dbd46b9d53a4ccf7499
DIST xmlrpc-c-1.54.05.tgz 933228 BLAKE2B 50d73fe22454f04ffebf11d4b88986eaac571d107abce4e04244ad0b74469fc5233178967e3dd832a8525514912e4f835fa1ce13c439caf918a2b2d0c05021a0 SHA512 81bf8f398e9cb73b421907d8e304b9a6dc8da931f573f7296457486ade432f4a00a94b6850391690f7b229928f785522e5852db8aca68cb462c71d139e4f27b1
DIST xmlrpc-c-1.54.06.tgz 933199 BLAKE2B 1286323b59aa4d77fe2f8b04fef18d9a448d29a7fa23aad143418e62c92ac6a5156bb61ee58e0df4b0667e73a9170663b02b42fac94b38df71fc789d13e929e0 SHA512 0e8c920ccf04c78947bc66f7210b62c153ba185183c181461584772885690a3bb09dcf63d69c5b0f1f76a96f162a2a0eba6268e7210dda42561f59bec8008733
DIST xmlrpc-c-1.59.03.tgz 935404 BLAKE2B 7a8d2ea19fe698538747d8b5735eb3247dec0c0ef87204cdec3a2aa051581e2d23b1a7b41673ff422c69474c5a4f24243945d5474c30beafc59235bc60c2cad5 SHA512 10b984421e7f4a7c1434b03f542ba1c9f9027ae72ed6022aca5efee55fc630b0f630f1ca5193fd2477c743ffd994c199064b15b73d1b019004f1f8e36cbd6921
EBUILD xmlrpc-c-1.54.05-r3.ebuild 2204 BLAKE2B 4ef32f4fe04c85df0543a13512ad11a3af771e3513f95a15ded1959cb7357f585dccecde9b954bdc227d715485b2835741343282996897ee4d54b0b5e0066e8e SHA512 ad05a2eaa789587dc2d655cb38ded02c3adb3d4713ac75e884c3df784bcc1cb4f3d471f775857b666a1e018b2b092f6521d99b645c5272268267eba2ba7f412c
EBUILD xmlrpc-c-1.54.06-r1.ebuild 2283 BLAKE2B a688d712820b6082fe289a8659128a09873adf5e459a380def352be8846a2b20ff75bc8dd882be13a9c5113dbd9c7176663a6b18595c91d8278b62189cffe1c0 SHA512 c706028d8607b7b55138db695a91510418b103126aa06007946d3468c205415026730bc4b39b9629ffc33242fe96cf248968c62168afddf062f9fe55066aabb4
EBUILD xmlrpc-c-1.59.03-r1.ebuild 2196 BLAKE2B fc5542e8e926e8b51038e55e003e77687458d945dc3d6170a42f40385610ce0cf549878880281e2d673322d7176e69cc483c680f5df2d854ec78165226c50c29 SHA512 f9eec5bb4e73506fb3783270bf41a78ecbe91ae4a4dba440fe08e2055a73eee39f317f8405c653055febfd37392e5957c806d98f4b00361cb63da84057045c3e
+EBUILD xmlrpc-c-1.59.03-r2.ebuild 2274 BLAKE2B e04d1ddb4f9fbf625718378d2a2cdd781ebda6f6481c4dd55a5b9188ea381717d2a338ff1718497b5ad3e1944b27c03bacaea85e67bc0c419a1c9bf80e6fc871 SHA512 23a717465dc8e2aab1678e2635b0f644494a609b7c48693b1184889247bb893b785f5f81dbec9ce015d5663d1df449d17524bafdb97e43476d261f738f022f76
EBUILD xmlrpc-c-1.59.03.ebuild 2124 BLAKE2B ea772608cc214af161971af9ce79b62873e097828738d6053ead554dc566affd2e30baf5aa7a5ddcc40e6c5e40df77ffd1e4fa41d5d3ad01e925a36de405956d SHA512 2914fb35bf01dc91b957c261910a2d61fdccb52267d7e71179e5399c636e9fe4f1335bd60deb66713421fd82e16837b1f7671799b9b5d7363c2c14bd9dea7dc2
MISC metadata.xml 548 BLAKE2B c471932a7dc9bfd7557572a122f5715bd3dab51a3c4d3510dd110077e94f7f03cfcdbd063f5241f3920c5cd871ab9b7b8b6b9beba0d9eedd8d75356095b8191d SHA512 180c83cc1781b2631a10a71e3bd6d99fda2d3e07fcf53aa1b17176b3d935f0f91bb41b3b7f9455ba5eef8d517cc4a6c8f4a87aaaabe58d1d93bf59823d4cc078
diff --git a/dev-libs/xmlrpc-c/files/xmlrpc-c-1.59.03-use-system-expat.patch b/dev-libs/xmlrpc-c/files/xmlrpc-c-1.59.03-use-system-expat.patch
new file mode 100644
index 000000000000..df25189042e5
--- /dev/null
+++ b/dev-libs/xmlrpc-c/files/xmlrpc-c-1.59.03-use-system-expat.patch
@@ -0,0 +1,229 @@
+From 5d276a95a6953c51ed4fd20cabc6eab3808755e5 Mon Sep 17 00:00:00 2001
+From: Sebastian Pipping <sebastian@pipping.org>
+Date: Sun, 6 Apr 2025 02:19:15 +0200
+Subject: [PATCH] Use system libexpat rather than bundled lib/expat/ for
+ security
+
+---
+ common.mk | 31 +------------------------------
+ config.mk.in | 1 +
+ lib/Makefile | 3 ---
+ src/Makefile | 8 +++-----
+ src/cpp/Makefile | 6 ++----
+ src/xmlrpc_expat.c | 18 ++++++++++--------
+ xmlrpc-c-config.test.main | 6 ++----
+ 7 files changed, 19 insertions(+), 54 deletions(-)
+
+diff --git a/common.mk b/common.mk
+index e6e79a0..4f8b8b7 100644
+--- a/common.mk
++++ b/common.mk
+@@ -216,22 +216,6 @@ LIBXMLRPC_SERVER_CGI_A = $(BLDDIR)/src/libxmlrpc_server_cgi.a
+
+ endif
+
+-LIBXMLRPC_XMLTOK_DIR = $(BLDDIR)/lib/expat/xmltok
+-
+-ifneq ($(OMIT_XMLTOK_LIB_RULE),Y)
+-LIBXMLRPC_XMLTOK = \
+- $(call shliblefn, $(LIBXMLRPC_XMLTOK_DIR)/libxmlrpc_xmltok)
+-LIBXMLRPC_XMLTOK_A = $(LIBXMLRPC_XMLTOK_DIR)/libxmlrpc_xmltok.a
+-endif
+-
+-LIBXMLRPC_XMLPARSE_DIR = $(BLDDIR)/lib/expat/xmlparse
+-
+-ifneq ($(OMIT_XMLPARSE_LIB_RULE),Y)
+-LIBXMLRPC_XMLPARSE = \
+- $(call shliblefn, $(LIBXMLRPC_XMLPARSE_DIR)/libxmlrpc_xmlparse)
+-LIBXMLRPC_XMLPARSE_A = $(LIBXMLRPC_XMLPARSE_DIR)/libxmlrpc_xmlparse.a
+-endif
+-
+ LIBXMLRPC_ABYSS_DIR = $(BLDDIR)/lib/abyss/src
+
+ ifneq ($(OMIT_ABYSS_LIB_RULE),Y)
+@@ -270,16 +254,11 @@ LIBXMLRPC_SERVER_PSTREAMPP = \
+ $(call shliblefn, $(BLDDIR)/src/cpp/libxmlrpc_server_pstream++)
+ LIBXMLRPC_SERVER_PSTREAMPP_A = $(BLDDIR)/src/cpp/libxmlrpc_server_pstream++.a
+
+-# LIBXMLRPC_XML is the list of Xmlrpc-c libraries we need to parse
+-# XML. If we're using an external library to parse XML, this is null.
+ # LDLIBS_XML is the corresponding -L/-l options
+
+ ifneq ($(ENABLE_LIBXML2_BACKEND),yes)
+ # We're using the internal Expat XML parser
+- LIBXMLRPC_XML = $(LIBXMLRPC_XMLPARSE) $(LIBXMLRPC_XMLTOK)
+- LDLIBS_XML = \
+- -L$(BLDDIR)/lib/expat/xmlparse -lxmlrpc_xmlparse \
+- -L$(BLDDIR)/lib/expat/xmltok -lxmlrpc_xmltok
++ LDLIBS_XML = $(shell $(PKG_CONFIG) --libs expat)
+ else
+ LDLIBS_XML = $(shell xml2-config --libs)
+ endif
+@@ -472,14 +451,6 @@ $(LIBXMLRPC_UTILPP) $(LIBXMLRPC_UTILPP_A) : FORCE
+ $(MAKE) -C $(dir $@) -f $(SRCDIR)/lib/libutil++/Makefile \
+ $(notdir $@)
+
+-$(LIBXMLRPC_XMLPARSE) $(LIBXMLRPC_XMLPARSE_A) : FORCE
+- $(MAKE) -C $(dir $@) -f $(SRCDIR)/lib/expat/xmlparse/Makefile \
+- $(notdir $@)
+-
+-$(LIBXMLRPC_XMLTOK) $(LIBXMLRPC_XMLTOK_A) : FORCE
+- $(MAKE) -C $(dir $@) -f $(SRCDIR)/lib/expat/xmltok/Makefile \
+- $(notdir $@)
+-
+ $(LIBXMLRPC_ABYSS) $(LIBXMLRPC_ABYSS_A): FORCE
+ $(MAKE) -C $(dir $@) -f $(SRCDIR)/lib/abyss/src/Makefile \
+ $(notdir $@)
+diff --git a/config.mk.in b/config.mk.in
+index 725c063..5251c85 100644
+--- a/config.mk.in
++++ b/config.mk.in
+@@ -52,6 +52,7 @@ CXX = @CXX@
+ CCLD = $(CC)
+ CXXLD = $(CXX)
+ AR = @AR@
++PKG_CONFIG = pkg-config
+ RANLIB = @RANLIB@
+ LN_S = ln -s
+ INSTALL = $(SRCDIR)/install-sh
+diff --git a/lib/Makefile b/lib/Makefile
+index c0e7889..b573ed5 100644
+--- a/lib/Makefile
++++ b/lib/Makefile
+@@ -28,9 +28,6 @@ endif
+ ifeq ($(MUST_BUILD_LIBWWW_CLIENT),yes)
+ SUBDIRS += libwww_transport
+ endif
+-ifneq ($(ENABLE_LIBXML2_BACKEND),yes)
+- SUBDIRS += expat
+-endif
+
+ ifeq ($(HAVE_OPENSSL),Y)
+ SUBDIRS += openssl
+diff --git a/src/Makefile b/src/Makefile
+index acd04dd..75ffafb 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -73,10 +73,8 @@ ifeq ($(ENABLE_LIBXML2_BACKEND),yes)
+ XML_PKGCONFIG_REQ = libxml-2.0
+ else
+ XMLRPC_XML_PARSER = xmlrpc_expat
+- XML_PARSER_LIBDEP = \
+- -Lblddir/lib/expat/xmlparse -lxmlrpc_xmlparse \
+- -Lblddir/lib/expat/xmltok -lxmlrpc_xmltok
+- XML_PARSER_LIBDEP_DEP = $(LIBXMLRPC_XMLPARSE) $(LIBXMLRPC_XMLTOK)
++ XML_PARSER_LIBDEP = $(shell $(PKG_CONFIG) expat --libs)
++ XML_PARSER_LIBDEP_DEP =
+ XML_PKGCONFIG_REQ = xmlrpc_expat
+ endif
+
+@@ -278,7 +276,7 @@ BASIC_INCLUDES = \
+ ifeq ($(ENABLE_LIBXML2_BACKEND),yes)
+ LIBXML_INCLUDES = $(shell xml2-config --cflags)
+ else
+- LIBXML_INCLUDES = -Isrcdir/lib/expat/xmlparse
++ LIBXML_INCLUDES = $(shell $(PKG_CONFIG) --cflags expat)
+ endif
+
+ $(LIBXMLRPC_MODS:%=%.o) \
+diff --git a/src/cpp/Makefile b/src/cpp/Makefile
+index 184b254..986af46 100644
+--- a/src/cpp/Makefile
++++ b/src/cpp/Makefile
+@@ -44,3 +44,3 @@ DEP_SOURCES = *.cpp
+ else
+- LIBXML_INCLUDES = -Isrcdir/lib/expat/xmlparse
++ LIBXML_INCLUDES = $(shell $(PKG_CONFIG) --cflags expat)
+ endif
+@@ -51,5 +51,3 @@ DEP_SOURCES = *.cpp
+ else
+- XML_PARSER_LIBDEP = \
+- -L$(BLDDIR)/lib/expat/xmlparse -lxmlrpc_xmlparse \
+- -L$(BLDDIR)/lib/expat/xmltok -lxmlrpc_xmltok
++ XML_PARSER_LIBDEP = $(shell $(PKG_CONFIG) --libs expat)
+ endif
+diff --git a/src/xmlrpc_expat.c b/src/xmlrpc_expat.c
+index 30fae15..2e01ec3 100644
+--- a/src/xmlrpc_expat.c
++++ b/src/xmlrpc_expat.c
+@@ -6,7 +6,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+
+-#include <xmlparse.h> /* Expat */
++#include <expat.h>
+
+ #include "bool.h"
+
+@@ -419,18 +419,18 @@ createParser(xmlrpc_env * const envP,
+ -----------------------------------------------------------------------------*/
+ XML_Parser parser;
+
+- parser = xmlrpc_XML_ParserCreate(NULL);
++ parser = XML_ParserCreate(NULL);
+ if (parser == NULL)
+ xmlrpc_faultf(envP, "Could not create expat parser");
+ else {
+ initParseContext(contextP, memPoolP);
+
+- xmlrpc_XML_SetUserData(parser, contextP);
+- xmlrpc_XML_SetElementHandler(
++ XML_SetUserData(parser, contextP);
++ XML_SetElementHandler(
+ parser,
+ (XML_StartElementHandler) startElement,
+ (XML_EndElementHandler) endElement);
+- xmlrpc_XML_SetCharacterDataHandler(
++ XML_SetCharacterDataHandler(
+ parser,
+ (XML_CharacterDataHandler) characterData);
+ }
+@@ -445,7 +445,7 @@ destroyParser(XML_Parser const parser,
+
+ termParseContext(contextP);
+
+- xmlrpc_XML_ParserFree(parser);
++ XML_ParserFree(parser);
+ }
+
+
+@@ -483,15 +483,17 @@ xml_parse(xmlrpc_env * const envP,
+ if (!envP->fault_occurred) {
+ bool ok;
+
+- ok = xmlrpc_XML_Parse(parser, xmlData, xmlDataLen, 1);
++ ok = XML_Parse(parser, xmlData, xmlDataLen, 1);
+ /* sets 'context', *envP */
+ if (!ok) {
+ /* Expat failed on its own to parse it -- this is not an error
+ that our handlers detected.
+ */
++ const enum XML_Error error_code = XML_GetErrorCode(parser);
++ const char * const error_string = (error_code == XML_ERROR_NONE) ? NULL : XML_ErrorString(error_code);
+ xmlrpc_env_set_fault(
+ envP, XMLRPC_PARSE_ERROR,
+- xmlrpc_XML_GetErrorString(parser));
++ error_string);
+ if (!context.env.fault_occurred) {
+ /* Have to clean up what our handlers built before Expat
+ barfed.
+diff --git a/xmlrpc-c-config.test.main b/xmlrpc-c-config.test.main
+index d184534..0e53b12 100644
+--- a/xmlrpc-c-config.test.main
++++ b/xmlrpc-c-config.test.main
+@@ -22,10 +22,8 @@ packetsocket_lib=
+ if test "${ENABLE_LIBXML2_BACKEND}" = "yes"; then
+ LIBXML=`xml2-config --libs`
+ else
+- LIBXML="${BLDDIR}/lib/expat/xmlparse/libxmlrpc_xmlparse.a"
+- sopath="${BLDDIR}/lib/expat/xmlparse:$sopath"
+- LIBXML="${LIBXML} ${BLDDIR}/lib/expat/xmltok/libxmlrpc_xmltok.a"
+- sopath="${BLDDIR}/lib/expat/xmltok:$sopath"
++ [ -n "${PKG_CONFIG}" ] || PKG_CONFIG=pkg-config
++ LIBXML=`${PKG_CONFIG} --libs expat`
+ fi
+
+ needCpp=no
+--
+2.48.1
+
diff --git a/dev-libs/xmlrpc-c/xmlrpc-c-1.59.03-r2.ebuild b/dev-libs/xmlrpc-c/xmlrpc-c-1.59.03-r2.ebuild
new file mode 100644
index 000000000000..ed0f2fcb69a7
--- /dev/null
+++ b/dev-libs/xmlrpc-c/xmlrpc-c-1.59.03-r2.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools toolchain-funcs
+
+# Upstream maintains 3 release channels: https://xmlrpc-c.sourceforge.net/release.html
+# 1. Only the "Super Stable" series is released as a tarball
+# 2. SVN tagging of releases seems spotty: https://svn.code.sf.net/p/xmlrpc-c/code/release_number/
+# Because of this, we are following the "Super Stable" release channel
+
+DESCRIPTION="A lightweight RPC library based on XML and HTTP"
+HOMEPAGE="https://xmlrpc-c.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tgz"
+
+LICENSE="BSD"
+SLOT="0/4.59"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-solaris"
+IUSE="abyss +cgi +curl +cxx +libxml2 static-libs threads test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="test? ( abyss curl cxx )"
+
+RDEPEND="
+ dev-libs/openssl:=
+ sys-libs/ncurses:=
+ sys-libs/readline:=
+ curl? ( net-misc/curl )
+ libxml2? ( dev-libs/libxml2 )
+"
+DEPEND="${RDEPEND}"
+
+# configure calls curl-config, hence curl in BDEPEND
+BDEPEND="
+ virtual/pkgconfig
+ curl? ( net-misc/curl )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.51.06-pkg-config-libxml2.patch
+ "${FILESDIR}"/${PN}-1.51.06-pkg-config-openssl.patch
+ "${FILESDIR}"/${PN}-1.59.03-use-system-expat.patch
+)
+
+pkg_setup() {
+ use curl || ewarn "Curl support disabled: No client library will be built"
+}
+
+src_prepare() {
+ rm -R lib/expat/ || die
+
+ default
+
+ sed -i \
+ -e "/CFLAGS_COMMON/s|-g -O3$||" \
+ -e "/CXXFLAGS_COMMON/s|-g$||" \
+ common.mk || die
+ eautoconf
+}
+
+src_configure() {
+ tc-export PKG_CONFIG
+
+ econf \
+ --disable-libwww-client \
+ --disable-wininet-client \
+ --without-libwww-ssl \
+ $(use_enable abyss abyss-server) \
+ $(use_enable cgi cgi-server) \
+ $(use_enable curl curl-client) \
+ $(use_enable cxx cplusplus) \
+ $(use_enable libxml2 libxml2-backend) \
+ $(use_enable threads abyss-threads)
+}
+
+src_compile() {
+ default
+
+ # Tools building is broken in this release
+ #use tools && emake -rC "${S}"/tools
+}
+
+src_install() {
+ default
+
+ use static-libs || find "${D}" -type f -name \*.a -delete
+
+ # Tools building is broken in this release
+ #use tools && emake DESTDIR="${D}" -rC "${S}"/tools install
+}