diff --git a/0001-xmlrpc_server_abyss-use-va_args-properly.patch b/0001-xmlrpc_server_abyss-use-va_args-properly.patch new file mode 100644 index 0000000000000000000000000000000000000000..814091635b1b5152444364689dd4ebee7909ebd6 --- /dev/null +++ b/0001-xmlrpc_server_abyss-use-va_args-properly.patch @@ -0,0 +1,34 @@ +From 03a2f7040c9b863f881b1d7e531fd84b9af23d07 Mon Sep 17 00:00:00 2001 +From: Igor Gnatenko +Date: Sat, 17 Dec 2016 10:28:31 +0100 +Subject: [PATCH] xmlrpc_server_abyss: use va_args properly +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +../src/xmlrpc_server_abyss.c: In function ‘createServer’: +../src/xmlrpc_server_abyss.c:783:13: error: format not a string literal and no format arguments [-Werror=format-security] + xmlrpc_faultf(envP, error); + ^~~~~~~~~~~~~ + +Signed-off-by: Igor Gnatenko +--- + src/xmlrpc_server_abyss.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/xmlrpc_server_abyss.c b/src/xmlrpc_server_abyss.c +index 8aacb4b5..58f5ba04 100644 +--- a/src/xmlrpc_server_abyss.c ++++ b/src/xmlrpc_server_abyss.c +@@ -780,7 +780,7 @@ createServer(xmlrpc_env * const envP, + ServerInit2(abyssServerP, &error); + + if (error) { +- xmlrpc_faultf(envP, error); ++ xmlrpc_faultf(envP, "%s", error); + xmlrpc_strfree(error); + } + } +-- +2.11.0 + diff --git a/0002-build-with-openssl.patch b/0002-build-with-openssl.patch new file mode 100644 index 0000000000000000000000000000000000000000..4c93d7e8be26517b1474328c326b10d79d2dbcd7 --- /dev/null +++ b/0002-build-with-openssl.patch @@ -0,0 +1,39 @@ +From 94a67f08ce1480ebc5439b7c52e47d82da2b03a0 Mon Sep 17 00:00:00 2001 +From: Chunmei Xu +Date: Fri, 15 Apr 2022 16:06:41 +0800 +Subject: [PATCH] build with openssl + +Signed-off-by: Chunmei Xu +--- + configure | 1 + + lib/Makefile | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/configure b/configure +index 472723a..c38ff89 100755 +--- a/configure ++++ b/configure +@@ -633,6 +633,7 @@ have_xml2_config + HAVE_LIBWWW_SSL_DEFINE + HAVE_ABYSS_OPENSSL_DEFINE + MUST_BUILD_ABYSS_OPENSSL ++HAVE_OPENSSL + OPENSSL_CFLAGS + OPENSSL_LDADD + CURL_LIBDIR +diff --git a/lib/Makefile b/lib/Makefile +index c0e7889..ba30d69 100644 +--- a/lib/Makefile ++++ b/lib/Makefile +@@ -32,7 +32,7 @@ ifneq ($(ENABLE_LIBXML2_BACKEND),yes) + SUBDIRS += expat + endif + +-ifeq ($(HAVE_OPENSSL),Y) ++ifeq ($(HAVE_OPENSSL),yes) + SUBDIRS += openssl + endif + +-- +2.34.1 + diff --git a/xmlrpc-c-1.54.05.tgz b/xmlrpc-c-1.54.05.tgz new file mode 100644 index 0000000000000000000000000000000000000000..2a5b00f00e40e2c0aa65c1af2d492e9117eaa043 Binary files /dev/null and b/xmlrpc-c-1.54.05.tgz differ diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec new file mode 100644 index 0000000000000000000000000000000000000000..674110889c460e287e5927372d418d30594b6179 --- /dev/null +++ b/xmlrpc-c.spec @@ -0,0 +1,180 @@ +%define anolis_release 1 + +Name: xmlrpc-c +Version: 1.54.05 +Release: %{anolis_release}%{?dist} +Summary: Lightweight RPC library based on XML and HTTP +# See doc/COPYING for details. +# The Python 1.5.2 license used by a few files is just BSD. +License: BSD and MIT +URL: http://xmlrpc-c.sourceforge.net/ +Source0: https://nchc.dl.sourceforge.net/project/xmlrpc-c/Xmlrpc-c%20Super%20Stable/%{version}/xmlrpc-c-%{version}.tgz + +Patch1: 0001-xmlrpc_server_abyss-use-va_args-properly.patch +# enable openssl +Patch2: 0002-build-with-openssl.patch + +BuildRequires: git-core +BuildRequires: meson >= 0.36.0 +BuildRequires: gcc +BuildRequires: gcc-c++ +Provides: bundled(expat) +BuildRequires: pkgconfig(openssl) +BuildRequires: pkgconfig(libcurl) +BuildRequires: readline-devel +BuildRequires: ncurses-devel +BuildRequires: libcurl-devel + +%package c++ +Summary: C++ libraries for xmlrpc-c +Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release} + +%package client +Summary: C client libraries for xmlrpc-c +Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release} + +%package client++ +Summary: C++ client libraries for xmlrpc-c +Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: %{name}-c++ = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: %{name}-client = %{?epoch:%{epoch}:}%{version}-%{release} + +%package devel +Summary: Development files for xmlrpc-c based programs +Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: %{name}-c++ = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: %{name}-client = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: %{name}-client++ = %{?epoch:%{epoch}:}%{version}-%{release} + +%package apps +Summary: Sample XML-RPC applications +Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: %{name}-c++ = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: %{name}-client = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: %{name}-client++ = %{?epoch:%{epoch}:}%{version}-%{release} + + +%description +XML-RPC is a quick-and-easy way to make procedure calls over the +Internet. It converts the procedure call into XML document, sends it +to a remote server using HTTP, and gets back the response as XML. + +This library provides a modular implementation of XML-RPC for C. + + +%description c++ +XML-RPC is a quick-and-easy way to make procedure calls over the +Internet. It converts the procedure call into XML document, sends it +to a remote server using HTTP, and gets back the response as XML. + +This library provides a modular implementation of XML-RPC for C++. + + +%description client +XML-RPC is a quick-and-easy way to make procedure calls over the +Internet. It converts the procedure call into XML document, sends it +to a remote server using HTTP, and gets back the response as XML. + +This library provides a modular implementation of XML-RPC for C +clients. + +%description client++ +XML-RPC is a quick-and-easy way to make procedure calls over the +Internet. It converts the procedure call into XML document, sends it +to a remote server using HTTP, and gets back the response as XML. + +This library provides a modular implementation of XML-RPC for C++ +clients. + + +%description devel +Static libraries and header files for writing XML-RPC applications in +C and C++. + + +%description apps +XML-RPC is a quick-and-easy way to make procedure calls over the +Internet. It converts the procedure call into XML document, sends it +to a remote server using HTTP, and gets back the response as XML. + +This package contains some handy XML-RPC demo applications. + + +%prep +%autosetup -Sgit + +%build +%configure +%make_build + +# Parallel builds trigger issues +pushd tools +make +popd + +%install +%make_install +pushd tools +%make_install +popd + +# remove static library +find %{buildroot} -name "*.a" -delete + +%ldconfig_scriptlets +%ldconfig_scriptlets client +%ldconfig_scriptlets c++ +%ldconfig_scriptlets client++ + +%files +%license doc/COPYING lib/abyss/license.txt +%doc doc/CREDITS doc/HISTORY +%{_libdir}/libxmlrpc_xml*.so.* +%{_libdir}/libxmlrpc_openssl.so.* +%{_libdir}/libxmlrpc.so.* +%{_libdir}/libxmlrpc_util.so.* +%{_libdir}/libxmlrpc_abyss.so.* +%{_libdir}/libxmlrpc_server.so.* +%{_libdir}/libxmlrpc_server_abyss.so.* +%{_libdir}/libxmlrpc_server_cgi.so.* + +%files client +%{_libdir}/libxmlrpc_client.so.* + +%files c++ +%{_libdir}/libxmlrpc_cpp.so.* +%{_libdir}/libxmlrpc++.so.* +%{_libdir}/libxmlrpc_util++.so.* +%{_libdir}/libxmlrpc_abyss++.so.* +%{_libdir}/libxmlrpc_server++.so.* +%{_libdir}/libxmlrpc_server_abyss++.so.* +%{_libdir}/libxmlrpc_server_cgi++.so.* +%{_libdir}/libxmlrpc_packetsocket.so.* +%{_libdir}/libxmlrpc_server_pstream++.so.* + +%files client++ +%{_libdir}/libxmlrpc_client++.so.* + +%files devel +%{_bindir}/xmlrpc-c-config +%{_includedir}/xmlrpc-c/ +%{_includedir}/*.h +%{_libdir}/pkgconfig/xmlrpc*.pc +%{_libdir}/libxmlrpc*.so + +%files apps +%{_bindir}/xmlrpc_parsecall +%{_bindir}/xmlrpc +%{_bindir}/xmlrpc_transport +%doc tools/xmlrpc_transport/xmlrpc_transport.html +%{_bindir}/xml-rpc-api2cpp +%{_mandir}/man1/xml-rpc-api2cpp.1* +%{_bindir}/xml-rpc-api2txt +%{_mandir}/man1/xml-rpc-api2txt.1* +%{_bindir}/xmlrpc_cpp_proxy +%{_bindir}/xmlrpc_pstream +%{_bindir}/xmlrpc_dumpserver + +%changelog +* Fri Apr 15 2022 Chunmei Xu - 1.54.05-1 +- init from upstream