From f96417f8154dcd7480439e687cda41309372b9fa Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Sun, 7 Aug 2011 13:02:09 +0200 Subject: [PATCH 01/77] tagged for f16 make sure that curl-devel with CURLOPT_GSSAPI_DELEGATION is used --- xmlrpc-c.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index 21c5ab0..05e1494 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -6,7 +6,7 @@ Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c Version: 1.27.3 -Release: %release_func 1700.svn%svnrev +Release: %release_func 1600.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. License: BSD and MIT @@ -43,6 +43,8 @@ Requires: %name%{?_isa} = %version-%release Summary: C client libraries for xmlrpc-c Group: System Environment/Libraries Requires: %name%{?_isa} = %version-%release +# we need a CURLOPT_GSSAPI_DELEGATION patched libcurl +BuildConflicts: curl-devel < 7.21.7-2 %package client++ Summary: C++ client libraries for xmlrpc-c @@ -235,7 +237,7 @@ rm -rf $RPM_BUILD_ROOT %changelog -* Sun Aug 7 2011 Enrico Scholz - 1.27.3-1700.svn2145 +* Sun Aug 7 2011 Enrico Scholz - 1.27.3-1600.svn2145 - updated to 1.27.3 * Mon Jun 27 2011 Enrico Scholz - 1.27.0-1600.svn2145 From 4f60fe20633d34110733da3d3913a0d1eb2ac414 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Mon, 8 Aug 2011 00:12:00 +0200 Subject: [PATCH 02/77] rebuilt with correct check for libcurl-devel --- xmlrpc-c.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index ae5762a..e7335a3 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -6,7 +6,7 @@ Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c Version: 1.27.4 -Release: %release_func 1600.svn%svnrev +Release: %release_func 1601.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. License: BSD and MIT @@ -44,7 +44,7 @@ Summary: C client libraries for xmlrpc-c Group: System Environment/Libraries Requires: %name%{?_isa} = %version-%release # we need a CURLOPT_GSSAPI_DELEGATION patched libcurl -BuildConflicts: curl-devel < 7.21.7-2 +BuildConflicts: libcurl-devel < 7.21.7-2 %package client++ Summary: C++ client libraries for xmlrpc-c @@ -237,6 +237,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Mon Aug 8 2011 Enrico Scholz - 1.27.4-1601.svn2171 +- rebuilt with correct check for libcurl-devel + * Sun Aug 7 2011 Enrico Scholz - 1.27.4-1600.svn2171 - updated to 1.27.4 From 066519debf77760a9b749fd14eb68d2851991c83 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Mon, 3 Oct 2011 20:54:24 +0200 Subject: [PATCH 03/77] fixed error handling when transfering too large files (#741980) --- xmlrpc-c-struct-serialize.patch | 29 +++++++++++++++++++++++++++++ xmlrpc-c.spec | 7 ++++++- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 xmlrpc-c-struct-serialize.patch diff --git a/xmlrpc-c-struct-serialize.patch b/xmlrpc-c-struct-serialize.patch new file mode 100644 index 0000000..cba3b50 --- /dev/null +++ b/xmlrpc-c-struct-serialize.patch @@ -0,0 +1,29 @@ +From 9b65c6488a51d36513b9315c11dfb42f319079ac Mon Sep 17 00:00:00 2001 +From: Enrico Scholz +Date: Mon, 3 Oct 2011 20:49:57 +0200 +Subject: [PATCH] xmlrpc_serialize: check for faults before appending + + +fixes https://bugzilla.redhat.com/show_bug.cgi?id=741980 which was +caused by transmitting too large files within a structure. +--- + src/xmlrpc_serialize.c | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/src/xmlrpc_serialize.c b/src/xmlrpc_serialize.c +index 78bbc10..e0d9376 100644 +--- a/src/xmlrpc_serialize.c ++++ b/src/xmlrpc_serialize.c +@@ -370,7 +370,8 @@ serializeStruct(xmlrpc_env * const envP, + memberKeyP, memberValueP, dialect); + } + } +- addString(envP, outputP, ""); ++ if (!envP->fault_occurred) ++ addString(envP, outputP, ""); + } + } + } +-- +1.7.6 + diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index 7c0d4f6..d9ebd6f 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -6,7 +6,7 @@ Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c Version: 1.27.5 -Release: %release_func 1700.svn%svnrev +Release: %release_func 1701.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. License: BSD and MIT @@ -28,6 +28,7 @@ Patch107: xmlrpc-c-uninit-curl.patch Patch108: xmlrpc-c-30x-redirect.patch Patch109: xmlrpc-c-check-vasprintf-return-value.patch Patch110: xmlrpc-c-include-string_int.h.patch +Patch111: xmlrpc-c-struct-serialize.patch BuildRoot: %_tmppath/%name-%version-%release-root @@ -117,6 +118,7 @@ This package contains some handy XML-RPC demo applications. %patch108 -p1 %patch109 -p1 %patch110 -p1 +%patch111 -p1 ## not needed... rm doc/{INSTALL,configure_doc} @@ -235,6 +237,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Mon Oct 3 2011 Enrico Scholz - 1.27.5-1701.svn2185 +- fixed error handling when transfering too large files (#741980) + * Sat Aug 27 2011 Enrico Scholz - 1.27.5-1700.svn2185 - updated to 1.27.5 From e009ec58bbc5cef3080384d77bf652a9cc5689f7 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Mon, 3 Oct 2011 20:57:02 +0200 Subject: [PATCH 04/77] fixed error handling when transfering too large files (#741980) --- xmlrpc-c-struct-serialize.patch | 29 +++++++++++++++++++++++++++++ xmlrpc-c.spec | 7 ++++++- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 xmlrpc-c-struct-serialize.patch diff --git a/xmlrpc-c-struct-serialize.patch b/xmlrpc-c-struct-serialize.patch new file mode 100644 index 0000000..cba3b50 --- /dev/null +++ b/xmlrpc-c-struct-serialize.patch @@ -0,0 +1,29 @@ +From 9b65c6488a51d36513b9315c11dfb42f319079ac Mon Sep 17 00:00:00 2001 +From: Enrico Scholz +Date: Mon, 3 Oct 2011 20:49:57 +0200 +Subject: [PATCH] xmlrpc_serialize: check for faults before appending + + +fixes https://bugzilla.redhat.com/show_bug.cgi?id=741980 which was +caused by transmitting too large files within a structure. +--- + src/xmlrpc_serialize.c | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/src/xmlrpc_serialize.c b/src/xmlrpc_serialize.c +index 78bbc10..e0d9376 100644 +--- a/src/xmlrpc_serialize.c ++++ b/src/xmlrpc_serialize.c +@@ -370,7 +370,8 @@ serializeStruct(xmlrpc_env * const envP, + memberKeyP, memberValueP, dialect); + } + } +- addString(envP, outputP, ""); ++ if (!envP->fault_occurred) ++ addString(envP, outputP, ""); + } + } + } +-- +1.7.6 + diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index 4bbe91a..4d8c923 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -6,7 +6,7 @@ Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c Version: 1.27.5 -Release: %release_func 1600.svn%svnrev +Release: %release_func 1601.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. License: BSD and MIT @@ -28,6 +28,7 @@ Patch107: xmlrpc-c-uninit-curl.patch Patch108: xmlrpc-c-30x-redirect.patch Patch109: xmlrpc-c-check-vasprintf-return-value.patch Patch110: xmlrpc-c-include-string_int.h.patch +Patch111: xmlrpc-c-struct-serialize.patch BuildRoot: %_tmppath/%name-%version-%release-root @@ -119,6 +120,7 @@ This package contains some handy XML-RPC demo applications. %patch108 -p1 %patch109 -p1 %patch110 -p1 +%patch111 -p1 ## not needed... rm doc/{INSTALL,configure_doc} @@ -237,6 +239,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Mon Oct 3 2011 Enrico Scholz - 1.27.5-1601.svn2185 +- fixed error handling when transfering too large files (#741980) + * Sat Aug 27 2011 Enrico Scholz - 1.27.5-1600.svn2185 - updated to 1.27.5 From 0c94a1bf13f44ef54d4693cf3c0115078af13826 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Mon, 3 Oct 2011 21:27:23 +0200 Subject: [PATCH 05/77] updated to 1.28.1 --- .gitignore | 10 +--------- lastver | 2 +- sources | 2 +- xmlrpc-c-cmake.patch | 34 ++++++++++++++++++++++------------ xmlrpc-c-printf-size_t.patch | 34 +++++++++++++++++----------------- xmlrpc-c.spec | 9 ++++++--- 6 files changed, 48 insertions(+), 43 deletions(-) diff --git a/.gitignore b/.gitignore index b3cba2a..60a3704 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1 @@ -/xmlrpc-c-1.24.4.tar.xz -/xmlrpc-c-1.25.0.tar.xz -/xmlrpc-c-1.25.1.tar.xz -/xmlrpc-c-1.26.0.tar.xz -/xmlrpc-c-1.26.3.tar.xz -/xmlrpc-c-1.27.0.tar.xz -/xmlrpc-c-1.27.3.tar.xz -/xmlrpc-c-1.27.4.tar.xz -/xmlrpc-c-1.27.5.tar.xz +/xmlrpc-c-1.28.1.tar.xz diff --git a/lastver b/lastver index 10a3282..d29eb8e 100644 --- a/lastver +++ b/lastver @@ -1 +1 @@ -2182 +2203 diff --git a/sources b/sources index 3f8f8cb..ff12b74 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -0c22580e707bd91be2478e93ea8bce72 xmlrpc-c-1.27.5.tar.xz +64461b02285792e9623f0af522c301f5 xmlrpc-c-1.28.1.tar.xz diff --git a/xmlrpc-c-cmake.patch b/xmlrpc-c-cmake.patch index c030e2d..c4daf65 100644 --- a/xmlrpc-c-cmake.patch +++ b/xmlrpc-c-cmake.patch @@ -1,14 +1,14 @@ -From 83e2c5826ba8500c15ea3532fcf421da6e04bd82 Mon Sep 17 00:00:00 2001 +From 668427e2d8fff3e6b51b6bb3ca8339e47a472a04 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Sat, 5 Apr 2008 10:55:02 +0200 -Subject: [PATCH 1/8] make -> cmake transition +Subject: [PATCH 1/9] make -> cmake transition cmake: updated --- CMakeLists.txt | 288 +++++++++++++++++++++++++++ cmake/try-attr.cc | 3 + cmake/va-list-is-array.c | 9 + - examples/CMakeLists.txt | 62 ++++++ + examples/CMakeLists.txt | 63 ++++++ examples/config.h | 1 + examples/cpp/CMakeLists.txt | 34 +++ include/CMakeLists.txt | 3 + @@ -62,8 +62,8 @@ cmake: updated transport_config.h.cmake | 16 ++ version.h.cmake | 5 + xmlrpc-c-config | 105 ++++++++++ - xmlrpc_config.h.cmake | 156 +++++++++++++++ - 58 files changed, 1546 insertions(+), 0 deletions(-) + xmlrpc_config.h.cmake | 165 +++++++++++++++ + 58 files changed, 1556 insertions(+), 0 deletions(-) create mode 100644 CMakeLists.txt create mode 100644 cmake/try-attr.cc create mode 100644 cmake/va-list-is-array.c @@ -125,7 +125,7 @@ cmake: updated diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 -index 0000000..69c14dc +index 0000000..2d83ce2 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,288 @@ @@ -143,8 +143,8 @@ index 0000000..69c14dc + + +set(XMLRPC_C_VERSION_MAJOR "1" CACHE STRING "Version (major) of xmlrpc-c") -+set(XMLRPC_C_VERSION_MINOR "27" CACHE STRING "Version (minor) of xmlrpc-c") -+set(XMLRPC_C_VERSION_POINT "5" CACHE STRING "Version (point) of xmlrpc-c") ++set(XMLRPC_C_VERSION_MINOR "28" CACHE STRING "Version (minor) of xmlrpc-c") ++set(XMLRPC_C_VERSION_POINT "1" CACHE STRING "Version (point) of xmlrpc-c") + +set(XMLRPC_C_VERSION + "${XMLRPC_C_VERSION_MAJOR}.${XMLRPC_C_VERSION_MINOR}.${XMLRPC_C_VERSION_POINT}" @@ -443,10 +443,10 @@ index 0000000..1ad0bab +int main() {} diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt new file mode 100644 -index 0000000..30d0db5 +index 0000000..4011f11 --- /dev/null +++ b/examples/CMakeLists.txt -@@ -0,0 +1,62 @@ +@@ -0,0 +1,63 @@ +# -*- cmake -*- + +include_directories(${CMAKE_CURRENT_BINARY_DIR}) @@ -473,6 +473,7 @@ index 0000000..30d0db5 +set(base_LIBS xmlrpc) +ensc_add_example(json c base) +ensc_add_example(gen_sample_add_xml c base) ++ensc_add_example(parse_xml c base) + +if(MUST_BUILD_CLIENT) + set(client_LIBS xmlrpc_client) @@ -1857,10 +1858,10 @@ index 0000000..50577fd +exec pkg-config "$@" $comp diff --git a/xmlrpc_config.h.cmake b/xmlrpc_config.h.cmake new file mode 100644 -index 0000000..9594e69 +index 0000000..a1f56aa --- /dev/null +++ b/xmlrpc_config.h.cmake -@@ -0,0 +1,156 @@ +@@ -0,0 +1,165 @@ +/* -*- c -*- */ + +#ifndef H_XMLRPC_C_CONFIG_H @@ -2015,6 +2016,15 @@ index 0000000..9594e69 +#define XMLRPC_INT64 int64_t +#define XMLRPC_PRId64 PRId64 + ++/* S_IRUSR is POSIX, defined in Some old BSD systems and Windows ++ systems have S_IREAD instead. Most Unix today (2011) has both. In 2011, ++ Android has S_IRUSR and not S_IREAD. ++ ++ We're ignoring S_IREAD now to see if anyone misses it. If there are still ++ users that need it, we can handle it here. ++*/ ++#define XMLRPC_S_IWUSR S_IWUSR ++#define XMLRPC_S_IRUSR S_IRUSR + +#endif -- diff --git a/xmlrpc-c-printf-size_t.patch b/xmlrpc-c-printf-size_t.patch index 831c590..420b213 100644 --- a/xmlrpc-c-printf-size_t.patch +++ b/xmlrpc-c-printf-size_t.patch @@ -1,11 +1,11 @@ -From c06a722a77198ae42fb79b67d185556ac6c1e246 Mon Sep 17 00:00:00 2001 +From 25a777bb0ee2e2ee17d87006f76b3cea5d15a9f7 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Mon, 25 Feb 2008 17:48:25 +0100 -Subject: [PATCH 2/7] fixed broken format string modifiers +Subject: [PATCH 2/9] fixed broken format string modifiers --- - examples/json.c | 4 ++-- - tools/xmlrpc_pstream/xmlrpc_pstream.cpp | 2 +- + examples/json.c | 4 ++-- + examples/parse_xml.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/json.c b/examples/json.c @@ -30,19 +30,19 @@ index 89fe82b..91ea50d 100644 XMLRPC_MEMBLOCK_CONTENTS(char, &out)); XMLRPC_MEMBLOCK_CLEAN(char, &out); -diff --git a/tools/xmlrpc_pstream/xmlrpc_pstream.cpp b/tools/xmlrpc_pstream/xmlrpc_pstream.cpp -index 1417708..0d6ec11 100644 ---- a/tools/xmlrpc_pstream/xmlrpc_pstream.cpp -+++ b/tools/xmlrpc_pstream/xmlrpc_pstream.cpp -@@ -103,7 +103,7 @@ bytestringValFromParm(string const& valueString) { +diff --git a/examples/parse_xml.c b/examples/parse_xml.c +index 2e6c508..4f6c308 100644 +--- a/examples/parse_xml.c ++++ b/examples/parse_xml.c +@@ -58,7 +58,7 @@ describeXmlElement(const xml_element * const elemP, + printf("%sXML element type: '%s'\n", + prefix, xml_element_name(elemP)); - if (valueString.length() / 2 * 2 != valueString.length()) - throwf("Hexadecimal text is not an even " -- "number of characters (it is %u characters)", -+ "number of characters (it is %zu characters)", - valueString.length()); - else { - vector byteString(valueString.length() / 2); +- printf("%sNumber of child elements: %u\n", ++ printf("%sNumber of child elements: %zu\n", + prefix, xml_element_children_size(elemP)); + + for (i = 0; i < xml_element_children_size(elemP); ++i) { -- -1.7.2.3 +1.7.6 diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index d9ebd6f..90f4b15 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -1,12 +1,12 @@ %global advanced_branch 1 -%global svnrev 2185 +%global svnrev 2203 %{!?release_func:%global release_func() %%{?prerelease:0.}%1%%{?prerelease:.%%prerelease}%%{?dist}} Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c -Version: 1.27.5 -Release: %release_func 1701.svn%svnrev +Version: 1.28.1 +Release: %release_func 1700.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. License: BSD and MIT @@ -237,6 +237,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Mon Oct 3 2011 Enrico Scholz - 1.28.1-1700.svn2203 +- updated to 1.28.1 + * Mon Oct 3 2011 Enrico Scholz - 1.27.5-1701.svn2185 - fixed error handling when transfering too large files (#741980) From 2de78492998c6c07b0ed1d9858981117d75c8062 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Wed, 4 Jan 2012 13:22:04 +0100 Subject: [PATCH 06/77] updated to 1.29.0 rediffed some patches; removed 'struct-serialize' patch which was applied upstream in 1.28.2 --- .gitignore | 2 +- lastver | 2 +- sources | 2 +- xmlrpc-c-cmake.patch | 6 +++--- xmlrpc-c-struct-serialize.patch | 29 ----------------------------- xmlrpc-c.spec | 9 +++++---- 6 files changed, 11 insertions(+), 39 deletions(-) delete mode 100644 xmlrpc-c-struct-serialize.patch diff --git a/.gitignore b/.gitignore index 60a3704..83e998a 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -/xmlrpc-c-1.28.1.tar.xz +/xmlrpc-c-1.29.0.tar.xz diff --git a/lastver b/lastver index d29eb8e..f9bef4a 100644 --- a/lastver +++ b/lastver @@ -1 +1 @@ -2203 +2233 diff --git a/sources b/sources index ff12b74..3206f68 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -64461b02285792e9623f0af522c301f5 xmlrpc-c-1.28.1.tar.xz +43d36b8255c0aca641cc60d7796ca29f xmlrpc-c-1.29.0.tar.xz diff --git a/xmlrpc-c-cmake.patch b/xmlrpc-c-cmake.patch index c4daf65..65f924c 100644 --- a/xmlrpc-c-cmake.patch +++ b/xmlrpc-c-cmake.patch @@ -1,7 +1,7 @@ From 668427e2d8fff3e6b51b6bb3ca8339e47a472a04 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Sat, 5 Apr 2008 10:55:02 +0200 -Subject: [PATCH 1/9] make -> cmake transition +Subject: [PATCH] make -> cmake transition cmake: updated --- @@ -143,8 +143,8 @@ index 0000000..2d83ce2 + + +set(XMLRPC_C_VERSION_MAJOR "1" CACHE STRING "Version (major) of xmlrpc-c") -+set(XMLRPC_C_VERSION_MINOR "28" CACHE STRING "Version (minor) of xmlrpc-c") -+set(XMLRPC_C_VERSION_POINT "1" CACHE STRING "Version (point) of xmlrpc-c") ++set(XMLRPC_C_VERSION_MINOR "29" CACHE STRING "Version (minor) of xmlrpc-c") ++set(XMLRPC_C_VERSION_POINT "0" CACHE STRING "Version (point) of xmlrpc-c") + +set(XMLRPC_C_VERSION + "${XMLRPC_C_VERSION_MAJOR}.${XMLRPC_C_VERSION_MINOR}.${XMLRPC_C_VERSION_POINT}" diff --git a/xmlrpc-c-struct-serialize.patch b/xmlrpc-c-struct-serialize.patch deleted file mode 100644 index cba3b50..0000000 --- a/xmlrpc-c-struct-serialize.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 9b65c6488a51d36513b9315c11dfb42f319079ac Mon Sep 17 00:00:00 2001 -From: Enrico Scholz -Date: Mon, 3 Oct 2011 20:49:57 +0200 -Subject: [PATCH] xmlrpc_serialize: check for faults before appending - - -fixes https://bugzilla.redhat.com/show_bug.cgi?id=741980 which was -caused by transmitting too large files within a structure. ---- - src/xmlrpc_serialize.c | 3 ++- - 1 files changed, 2 insertions(+), 1 deletions(-) - -diff --git a/src/xmlrpc_serialize.c b/src/xmlrpc_serialize.c -index 78bbc10..e0d9376 100644 ---- a/src/xmlrpc_serialize.c -+++ b/src/xmlrpc_serialize.c -@@ -370,7 +370,8 @@ serializeStruct(xmlrpc_env * const envP, - memberKeyP, memberValueP, dialect); - } - } -- addString(envP, outputP, ""); -+ if (!envP->fault_occurred) -+ addString(envP, outputP, ""); - } - } - } --- -1.7.6 - diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index 90f4b15..55f59e3 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -1,11 +1,11 @@ %global advanced_branch 1 -%global svnrev 2203 +%global svnrev 2233 %{!?release_func:%global release_func() %%{?prerelease:0.}%1%%{?prerelease:.%%prerelease}%%{?dist}} Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c -Version: 1.28.1 +Version: 1.29.0 Release: %release_func 1700.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. @@ -28,7 +28,6 @@ Patch107: xmlrpc-c-uninit-curl.patch Patch108: xmlrpc-c-30x-redirect.patch Patch109: xmlrpc-c-check-vasprintf-return-value.patch Patch110: xmlrpc-c-include-string_int.h.patch -Patch111: xmlrpc-c-struct-serialize.patch BuildRoot: %_tmppath/%name-%version-%release-root @@ -118,7 +117,6 @@ This package contains some handy XML-RPC demo applications. %patch108 -p1 %patch109 -p1 %patch110 -p1 -%patch111 -p1 ## not needed... rm doc/{INSTALL,configure_doc} @@ -237,6 +235,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Wed Jan 4 2012 Enrico Scholz - 1.29.0-1700.svn2233 +- updated to 1.29.0 + * Mon Oct 3 2011 Enrico Scholz - 1.28.1-1700.svn2203 - updated to 1.28.1 From c70bcc1acbdafd9b73d37c5a1802738b4eb0faf5 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Wed, 4 Jan 2012 13:39:57 +0100 Subject: [PATCH 07/77] updated to 1.27.7 backported fix for "doesn't accept 'b/f' to mean boolean false" --- .gitignore | 10 +--------- lastver | 2 +- sources | 2 +- xmlrpc-boolean-meaning.patch | 21 +++++++++++++++++++++ xmlrpc-c.spec | 13 +++++++++++-- 5 files changed, 35 insertions(+), 13 deletions(-) create mode 100644 xmlrpc-boolean-meaning.patch diff --git a/.gitignore b/.gitignore index b3cba2a..f906829 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1 @@ -/xmlrpc-c-1.24.4.tar.xz -/xmlrpc-c-1.25.0.tar.xz -/xmlrpc-c-1.25.1.tar.xz -/xmlrpc-c-1.26.0.tar.xz -/xmlrpc-c-1.26.3.tar.xz -/xmlrpc-c-1.27.0.tar.xz -/xmlrpc-c-1.27.3.tar.xz -/xmlrpc-c-1.27.4.tar.xz -/xmlrpc-c-1.27.5.tar.xz +/xmlrpc-c-1.27.7.tar.xz diff --git a/lastver b/lastver index 10a3282..f9bef4a 100644 --- a/lastver +++ b/lastver @@ -1 +1 @@ -2182 +2233 diff --git a/sources b/sources index 3f8f8cb..a5209ff 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -0c22580e707bd91be2478e93ea8bce72 xmlrpc-c-1.27.5.tar.xz +2805f07ba44ceb0d66eacd948884d2f4 xmlrpc-c-1.27.7.tar.xz diff --git a/xmlrpc-boolean-meaning.patch b/xmlrpc-boolean-meaning.patch new file mode 100644 index 0000000..abb581b --- /dev/null +++ b/xmlrpc-boolean-meaning.patch @@ -0,0 +1,21 @@ +commit 2764e9684ec9284cf86ad602505cb03ea77a2ad2 +Author: giraffedata +Date: Sat Dec 10 21:13:10 2011 +0000 + + Fix bug: doesn't accept 'b/f' to mean boolean false + + git-svn-id: https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/trunk@2224 adbb7d4b-a73a-0410-a071-c5f57c452bd4 + +diff --git a/tools/xmlrpc/xmlrpc.c b/tools/xmlrpc/xmlrpc.c +index 06da3e5..3f24431 100644 +--- a/tools/xmlrpc/xmlrpc.c ++++ b/tools/xmlrpc/xmlrpc.c +@@ -352,7 +352,7 @@ buildBool(xmlrpc_env * const envP, + + if (streq(valueString, "t") || streq(valueString, "true")) + *paramPP = xmlrpc_bool_new(envP, true); +- else if (streq(valueString, "f") == 0 || streq(valueString, "false")) ++ else if (streq(valueString, "f") || streq(valueString, "false")) + *paramPP = xmlrpc_bool_new(envP, false); + else + setError(envP, "Boolean argument has unrecognized value '%s'. " diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index 4d8c923..1435cd3 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -5,8 +5,8 @@ Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c -Version: 1.27.5 -Release: %release_func 1601.svn%svnrev +Version: 1.27.7 +Release: %release_func 1600.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. License: BSD and MIT @@ -21,6 +21,8 @@ URL: http://xmlrpc-c.sourceforge.net/ Source100: dfs.cc Source101: dso-fixup +Patch0: xmlrpc-boolean-meaning.patch + Patch100: xmlrpc-c-cmake.patch Patch102: xmlrpc-c-printf-size_t.patch Patch105: xmlrpc-c-longlong.patch @@ -113,6 +115,9 @@ This package contains some handy XML-RPC demo applications. %prep %setup -q + +%patch0 -p1 + %patch100 -p1 %patch102 -p1 %patch105 -p1 @@ -239,6 +244,10 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Wed Jan 4 2012 Enrico Scholz - 1.27.7-1600.svn2185 +- updated to 1.27.7; only build fixes not affecting us +- backported fix for "doesn't accept 'b/f' to mean boolean false" + * Mon Oct 3 2011 Enrico Scholz - 1.27.5-1601.svn2185 - fixed error handling when transfering too large files (#741980) From 8f316e074696082b10b482769c35c5fdacb1815d Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Tue, 28 Feb 2012 14:38:23 -0600 Subject: [PATCH 08/77] - Rebuilt for c++ ABI breakage --- xmlrpc-c.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index 55f59e3..fc59bcb 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -6,7 +6,7 @@ Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c Version: 1.29.0 -Release: %release_func 1700.svn%svnrev +Release: %release_func 1701.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. License: BSD and MIT @@ -235,6 +235,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Tue Feb 28 2012 Fedora Release Engineering - 1.29.0-1701.svn2233 +- Rebuilt for c++ ABI breakage + * Wed Jan 4 2012 Enrico Scholz - 1.29.0-1700.svn2233 - updated to 1.29.0 From 839b0f0f508df7a8b269fb5de01c0db27e802e92 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Thu, 5 Apr 2012 13:10:16 +0200 Subject: [PATCH 09/77] updated to 1.30.1 --- .gitignore | 2 +- lastver | 2 +- sources | 2 +- xmlrpc-c-cmake.patch | 93 +++++++++++++++++++++++++++++++------------- xmlrpc-c.spec | 8 +++- 5 files changed, 74 insertions(+), 33 deletions(-) diff --git a/.gitignore b/.gitignore index 83e998a..0080a79 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -/xmlrpc-c-1.29.0.tar.xz +/xmlrpc-c-1.30.1.tar.xz diff --git a/lastver b/lastver index f9bef4a..3e263d2 100644 --- a/lastver +++ b/lastver @@ -1 +1 @@ -2233 +2298 diff --git a/sources b/sources index 3206f68..982fec7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -43d36b8255c0aca641cc60d7796ca29f xmlrpc-c-1.29.0.tar.xz +d7e53ee09b03fe5768bc3d9c70da1b73 xmlrpc-c-1.30.1.tar.xz diff --git a/xmlrpc-c-cmake.patch b/xmlrpc-c-cmake.patch index 65f924c..6a80eb2 100644 --- a/xmlrpc-c-cmake.patch +++ b/xmlrpc-c-cmake.patch @@ -1,7 +1,7 @@ -From 668427e2d8fff3e6b51b6bb3ca8339e47a472a04 Mon Sep 17 00:00:00 2001 +From b7d3b22233f50a881972720c42c3ae0226e4f63d Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Sat, 5 Apr 2008 10:55:02 +0200 -Subject: [PATCH] make -> cmake transition +Subject: [PATCH 1/8] make -> cmake transition cmake: updated --- @@ -47,12 +47,13 @@ cmake: updated src/xmlrpc_server_abyss.pc.cmake | 12 + src/xmlrpc_server_cgi.pc.cmake | 12 + test/CMakeLists.txt | 39 ++++ - tools/CMakeLists.txt | 21 ++ + tools/CMakeLists.txt | 22 ++ tools/binmode-rpc-kit/CMakeLists.txt | 1 + tools/lib/CMakeLists.txt | 1 + tools/turbocharger/CMakeLists.txt | 1 + tools/xml-rpc-api2cpp/CMakeLists.txt | 15 ++ tools/xml-rpc-api2txt/CMakeLists.txt | 7 + + tools/xml/CMakeLists.txt | 16 ++ tools/xmlrpc/CMakeLists.txt | 17 ++ tools/xmlrpc/config.h | 1 + tools/xmlrpc_cpp_proxy/CMakeLists.txt | 17 ++ @@ -62,8 +63,8 @@ cmake: updated transport_config.h.cmake | 16 ++ version.h.cmake | 5 + xmlrpc-c-config | 105 ++++++++++ - xmlrpc_config.h.cmake | 165 +++++++++++++++ - 58 files changed, 1556 insertions(+), 0 deletions(-) + xmlrpc_config.h.cmake | 177 ++++++++++++++++ + 59 files changed, 1585 insertions(+), 0 deletions(-) create mode 100644 CMakeLists.txt create mode 100644 cmake/try-attr.cc create mode 100644 cmake/va-list-is-array.c @@ -112,6 +113,7 @@ cmake: updated create mode 100644 tools/turbocharger/CMakeLists.txt create mode 100644 tools/xml-rpc-api2cpp/CMakeLists.txt create mode 100644 tools/xml-rpc-api2txt/CMakeLists.txt + create mode 100644 tools/xml/CMakeLists.txt create mode 100644 tools/xmlrpc/CMakeLists.txt create mode 100644 tools/xmlrpc/config.h create mode 100644 tools/xmlrpc_cpp_proxy/CMakeLists.txt @@ -125,7 +127,7 @@ cmake: updated diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 -index 0000000..2d83ce2 +index 0000000..080b866 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,288 @@ @@ -143,8 +145,8 @@ index 0000000..2d83ce2 + + +set(XMLRPC_C_VERSION_MAJOR "1" CACHE STRING "Version (major) of xmlrpc-c") -+set(XMLRPC_C_VERSION_MINOR "29" CACHE STRING "Version (minor) of xmlrpc-c") -+set(XMLRPC_C_VERSION_POINT "0" CACHE STRING "Version (point) of xmlrpc-c") ++set(XMLRPC_C_VERSION_MINOR "30" CACHE STRING "Version (minor) of xmlrpc-c") ++set(XMLRPC_C_VERSION_POINT "1" CACHE STRING "Version (point) of xmlrpc-c") + +set(XMLRPC_C_VERSION + "${XMLRPC_C_VERSION_MAJOR}.${XMLRPC_C_VERSION_MINOR}.${XMLRPC_C_VERSION_POINT}" @@ -279,19 +281,19 @@ index 0000000..2d83ce2 + +########### + -+set(ENABLE_TOOLS 0 CACHE BOOL "Build the tools") +pkg_check_modules(NCURSES ncurses) +find_library(READLINE readline) + -+if (ENABLE_TOOLS) -+ message(STATUS "Building tools") -+ if (MUST_BUILD_LIBWWW_CLIENT OR MUST_BUILD_WININET_CLIENT OR MUST_BUILD_CURL_CLIENT) -+ if (NCURSES_FOUND AND READLINE) -+ set(BUILD_XMLRPC_PSTREAM 1) -+ message(STATUS "Building xmlrpc_pstream tool") -+ endif() -+ set(BUILD_TOOLS 1) ++if (MUST_BUILD_LIBWWW_CLIENT OR MUST_BUILD_WININET_CLIENT OR MUST_BUILD_CURL_CLIENT) ++ if (NCURSES_FOUND AND READLINE) ++ set(BUILD_XMLRPC_PSTREAM 1) ++ message(STATUS "Building xmlrpc_pstream tool") + endif() ++ message(STATUS "Tools will be built") ++ set(BUILD_TOOLS 1) ++else() ++ message(STATUS "Tools will not be built") ++ set(BUILD_TOOLS 0) +endif() + +#### tests @@ -648,7 +650,7 @@ index 0000000..b9386b8 +endforeach(ln) diff --git a/include/xmlrpc-c/config.h.cmake b/include/xmlrpc-c/config.h.cmake new file mode 100644 -index 0000000..80892e5 +index 0000000..8398370 --- /dev/null +++ b/include/xmlrpc-c/config.h.cmake @@ -0,0 +1,32 @@ @@ -667,7 +669,7 @@ index 0000000..80892e5 + This file was created by a make rule. +*/ +#define XMLRPC_HAVE_WCHAR @HAVE_WCHAR_H@ -+#ifdef WIN32 ++#ifdef _WIN32 + /* SOCKET is a type defined by . Anyone who + uses XMLRPC_SOCKET on a WIN32 system must #include + @@ -1029,7 +1031,7 @@ index 0000000..17535ab +endif(MUST_BUILD_WININET_CLIENT) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 -index 0000000..4f760bc +index 0000000..e3635d2 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,121 @@ @@ -1125,7 +1127,7 @@ index 0000000..4f760bc +### libxmlrpc_server_abyss.so +if(ENABLE_ABYSS_SERVER) + add_library(xmlrpc_server_abyss SHARED -+ xmlrpc_server_abyss.c) ++ xmlrpc_server_abyss.c abyss_handler.c) + target_link_libraries(xmlrpc_server_abyss xmlrpc_abyss xmlrpc_server) + list(APPEND lib_TARGETS xmlrpc_server_abyss) + ensc_pkgconfig(xmlrpc_server_abyss) @@ -1535,15 +1537,16 @@ index 0000000..fdc6869 +add_test(runtests src-test) diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt new file mode 100644 -index 0000000..0bc45a9 +index 0000000..cd2a6d7 --- /dev/null +++ b/tools/CMakeLists.txt -@@ -0,0 +1,21 @@ +@@ -0,0 +1,22 @@ +# -*- cmake -*- + +add_subdirectory(lib) +add_subdirectory(binmode-rpc-kit) +add_subdirectory(turbocharger) ++add_subdirectory(xml) + +if (MUST_BUILD_CLIENT) + add_subdirectory(xmlrpc) @@ -1615,6 +1618,28 @@ index 0000000..5b01824 + +install(FILES xml-rpc-api2txt.1 + DESTINATION ${mandir}/man1) +diff --git a/tools/xml/CMakeLists.txt b/tools/xml/CMakeLists.txt +new file mode 100644 +index 0000000..0bab80c +--- /dev/null ++++ b/tools/xml/CMakeLists.txt +@@ -0,0 +1,16 @@ ++# -*- cmake -*- ++ ++add_executable(xmlrpc_parsecall ++ xmlrpc_parsecall.c ++ ../lib/dumpvalue.c) ++ ++target_link_libraries(xmlrpc_parsecall ++ xmlrpc ++ util) ++ ++install(TARGETS xmlrpc_parsecall ++ DESTINATION ${_bin}) ++ ++include_directories(../lib/include) ++ ++ensc_set_link_exe_flags(xmlrpc_parsecall) diff --git a/tools/xmlrpc/CMakeLists.txt b/tools/xmlrpc/CMakeLists.txt new file mode 100644 index 0000000..da01ec3 @@ -1858,10 +1883,10 @@ index 0000000..50577fd +exec pkg-config "$@" $comp diff --git a/xmlrpc_config.h.cmake b/xmlrpc_config.h.cmake new file mode 100644 -index 0000000..a1f56aa +index 0000000..561afdc --- /dev/null +++ b/xmlrpc_config.h.cmake -@@ -0,0 +1,165 @@ +@@ -0,0 +1,177 @@ +/* -*- c -*- */ + +#ifndef H_XMLRPC_C_CONFIG_H @@ -2013,6 +2038,11 @@ index 0000000..a1f56aa + #define XMLRPC_STRTOULL _strtoui64 /* Windows MSVC */ +#endif + ++#if MSVCRT ++ #define snprintf _snprintf ++ #define popen _popen ++#endif ++ +#define XMLRPC_INT64 int64_t +#define XMLRPC_PRId64 PRId64 + @@ -2020,13 +2050,20 @@ index 0000000..a1f56aa + systems have S_IREAD instead. Most Unix today (2011) has both. In 2011, + Android has S_IRUSR and not S_IREAD. + ++ Some Windows has _S_IREAD. ++ + We're ignoring S_IREAD now to see if anyone misses it. If there are still + users that need it, we can handle it here. +*/ -+#define XMLRPC_S_IWUSR S_IWUSR -+#define XMLRPC_S_IRUSR S_IRUSR ++#if MSVCRT ++ #define XMLRPC_S_IWUSR _S_IWRITE ++ #define XMLRPC_S_IRUSR _S_IREAD ++#else ++ #define XMLRPC_S_IWUSR S_IWUSR ++ #define XMLRPC_S_IRUSR S_IRUSR ++#endif + +#endif -- -1.7.6 +1.7.7.6 diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index fc59bcb..4260005 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -1,11 +1,11 @@ %global advanced_branch 1 -%global svnrev 2233 +%global svnrev 2298 %{!?release_func:%global release_func() %%{?prerelease:0.}%1%%{?prerelease:.%%prerelease}%%{?dist}} Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c -Version: 1.29.0 +Version: 1.30.1 Release: %release_func 1701.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. @@ -230,11 +230,15 @@ rm -rf $RPM_BUILD_ROOT %_bindir/xml-rpc-api2cpp %_bindir/xmlrpc_cpp_proxy %_bindir/xmlrpc_pstream +%_bindir/xmlrpc_parsecall %exclude %_bindir/xml-rpc-api2txt %changelog +* Thu Apr 5 2012 Enrico Scholz - 1.30.1-1701.svn2298 +- updated to 1.30.1 + * Tue Feb 28 2012 Fedora Release Engineering - 1.29.0-1701.svn2233 - Rebuilt for c++ ABI breakage From c23389e32586d948ca8a1c3255f03e19f2ff03ed Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Thu, 5 Apr 2012 13:11:22 +0200 Subject: [PATCH 10/77] updated release --- xmlrpc-c.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index 4260005..a1ae933 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -6,7 +6,7 @@ Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c Version: 1.30.1 -Release: %release_func 1701.svn%svnrev +Release: %release_func 1800.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. License: BSD and MIT @@ -236,7 +236,7 @@ rm -rf $RPM_BUILD_ROOT %changelog -* Thu Apr 5 2012 Enrico Scholz - 1.30.1-1701.svn2298 +* Thu Apr 5 2012 Enrico Scholz - 1.30.1-1800.svn2298 - updated to 1.30.1 * Tue Feb 28 2012 Fedora Release Engineering - 1.29.0-1701.svn2233 From b6b7ab61c43df23f76805ab93d96cc2c738b90f3 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Sat, 12 May 2012 11:05:27 +0200 Subject: [PATCH 11/77] updated to 1.30.4 --- .gitignore | 2 +- lastver | 2 +- sources | 2 +- xmlrpc-c-cmake.patch | 20 +++++++++++--------- xmlrpc-c.spec | 9 ++++++--- 5 files changed, 20 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index 0080a79..5d89aa3 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -/xmlrpc-c-1.30.1.tar.xz +/xmlrpc-c-1.30.4.tar.xz diff --git a/lastver b/lastver index 3e263d2..dd26e61 100644 --- a/lastver +++ b/lastver @@ -1 +1 @@ -2298 +2318 diff --git a/sources b/sources index 982fec7..33f9419 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -d7e53ee09b03fe5768bc3d9c70da1b73 xmlrpc-c-1.30.1.tar.xz +e04d4db00a29c47db2c5d641a7936929 xmlrpc-c-1.30.4.tar.xz diff --git a/xmlrpc-c-cmake.patch b/xmlrpc-c-cmake.patch index 6a80eb2..a759b54 100644 --- a/xmlrpc-c-cmake.patch +++ b/xmlrpc-c-cmake.patch @@ -1,4 +1,4 @@ -From b7d3b22233f50a881972720c42c3ae0226e4f63d Mon Sep 17 00:00:00 2001 +From c86fa6d2bef36617385aebda3ee55da9a782b4d1 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Sat, 5 Apr 2008 10:55:02 +0200 Subject: [PATCH 1/8] make -> cmake transition @@ -13,7 +13,7 @@ cmake: updated examples/cpp/CMakeLists.txt | 34 +++ include/CMakeLists.txt | 3 + include/xmlrpc-c/CMakeLists.txt | 74 +++++++ - include/xmlrpc-c/config.h.cmake | 32 +++ + include/xmlrpc-c/config.h.cmake | 34 +++ lib/CMakeLists.txt | 12 + lib/abyss/CMakeLists.txt | 3 + lib/abyss/src/CMakeLists.txt | 70 +++++++ @@ -64,7 +64,7 @@ cmake: updated version.h.cmake | 5 + xmlrpc-c-config | 105 ++++++++++ xmlrpc_config.h.cmake | 177 ++++++++++++++++ - 59 files changed, 1585 insertions(+), 0 deletions(-) + 59 files changed, 1587 insertions(+), 0 deletions(-) create mode 100644 CMakeLists.txt create mode 100644 cmake/try-attr.cc create mode 100644 cmake/va-list-is-array.c @@ -127,7 +127,7 @@ cmake: updated diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 -index 0000000..080b866 +index 0000000..f2f114c --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,288 @@ @@ -146,7 +146,7 @@ index 0000000..080b866 + +set(XMLRPC_C_VERSION_MAJOR "1" CACHE STRING "Version (major) of xmlrpc-c") +set(XMLRPC_C_VERSION_MINOR "30" CACHE STRING "Version (minor) of xmlrpc-c") -+set(XMLRPC_C_VERSION_POINT "1" CACHE STRING "Version (point) of xmlrpc-c") ++set(XMLRPC_C_VERSION_POINT "4" CACHE STRING "Version (point) of xmlrpc-c") + +set(XMLRPC_C_VERSION + "${XMLRPC_C_VERSION_MAJOR}.${XMLRPC_C_VERSION_MINOR}.${XMLRPC_C_VERSION_POINT}" @@ -155,8 +155,8 @@ index 0000000..080b866 +set(XMLRPC_C_LIBVERSION "3.${XMLRPC_C_VERSION_MINOR}") +set(XMLRPC_C_SOVERSION "3") + -+set(XMLRPC_CXX_LIBVERSION "7.${XMLRPC_C_VERSION_MINOR}") -+set(XMLRPC_CXX_SOVERSION "7") ++set(XMLRPC_CXX_LIBVERSION "8.${XMLRPC_C_VERSION_MINOR}") ++set(XMLRPC_CXX_SOVERSION "8") + +string(REGEX REPLACE "^0+" "" XMLRPC_C_VERSION_MAJOR_NUM "${XMLRPC_C_VERSION_MAJOR}") +string(REGEX REPLACE "^0+" "" XMLRPC_C_VERSION_MINOR_NUM "${XMLRPC_C_VERSION_MINOR}") @@ -650,10 +650,10 @@ index 0000000..b9386b8 +endforeach(ln) diff --git a/include/xmlrpc-c/config.h.cmake b/include/xmlrpc-c/config.h.cmake new file mode 100644 -index 0000000..8398370 +index 0000000..48f64be --- /dev/null +++ b/include/xmlrpc-c/config.h.cmake -@@ -0,0 +1,32 @@ +@@ -0,0 +1,34 @@ +/* --*- c -*-- */ +#ifndef XMLRPC_C_CONFIG_H_INCLUDED +#define XMLRPC_C_CONFIG_H_INCLUDED @@ -678,11 +678,13 @@ index 0000000..8398370 + #define XMLRPC_HAVE_TIMEVAL 0 + #define XMLRPC_HAVE_TIMESPEC 0 + #define XMLRPC_HAVE_PTHREAD 0 ++ #define XMLRPC_HAVE_WINTHREAD 1 +#else + #define XMLRPC_SOCKET int + #define XMLRPC_HAVE_TIMEVAL 1 + #define XMLRPC_HAVE_TIMESPEC 1 + #define XMLRPC_HAVE_PTHREAD 1 ++ #define XMLRPC_HAVE_WINTHREAD 0 +#endif + +#endif diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index a1ae933..9262263 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -1,11 +1,11 @@ %global advanced_branch 1 -%global svnrev 2298 +%global svnrev 2318 %{!?release_func:%global release_func() %%{?prerelease:0.}%1%%{?prerelease:.%%prerelease}%%{?dist}} Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c -Version: 1.30.1 +Version: 1.30.4 Release: %release_func 1800.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. @@ -202,7 +202,7 @@ rm -rf $RPM_BUILD_ROOT %files c++ %defattr(-,root,root,-) -%_libdir/*.so.7* +%_libdir/*.so.8* %exclude %_libdir/libxmlrpc_client++.so* @@ -236,6 +236,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Sat May 12 2012 Enrico Scholz - 1.30.4-1800.svn2318 +- updated to 1.30.4 + * Thu Apr 5 2012 Enrico Scholz - 1.30.1-1800.svn2298 - updated to 1.30.1 From 37ab753dec1298adb725e530234686d129153a4d Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Sat, 26 May 2012 12:23:12 +0200 Subject: [PATCH 12/77] updated to 1.30.5 --- .gitignore | 2 +- lastver | 2 +- sources | 2 +- xmlrpc-c-cmake.patch | 2 +- xmlrpc-c.spec | 7 +++++-- 5 files changed, 9 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 5d89aa3..7ef7e88 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -/xmlrpc-c-1.30.4.tar.xz +/xmlrpc-c-1.30.5.tar.xz diff --git a/lastver b/lastver index dd26e61..e2eb349 100644 --- a/lastver +++ b/lastver @@ -1 +1 @@ -2318 +2324 diff --git a/sources b/sources index 33f9419..edbd03c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -e04d4db00a29c47db2c5d641a7936929 xmlrpc-c-1.30.4.tar.xz +cce7ab8c1d459659907384f946c7e342 xmlrpc-c-1.30.5.tar.xz diff --git a/xmlrpc-c-cmake.patch b/xmlrpc-c-cmake.patch index a759b54..26851ab 100644 --- a/xmlrpc-c-cmake.patch +++ b/xmlrpc-c-cmake.patch @@ -146,7 +146,7 @@ index 0000000..f2f114c + +set(XMLRPC_C_VERSION_MAJOR "1" CACHE STRING "Version (major) of xmlrpc-c") +set(XMLRPC_C_VERSION_MINOR "30" CACHE STRING "Version (minor) of xmlrpc-c") -+set(XMLRPC_C_VERSION_POINT "4" CACHE STRING "Version (point) of xmlrpc-c") ++set(XMLRPC_C_VERSION_POINT "5" CACHE STRING "Version (point) of xmlrpc-c") + +set(XMLRPC_C_VERSION + "${XMLRPC_C_VERSION_MAJOR}.${XMLRPC_C_VERSION_MINOR}.${XMLRPC_C_VERSION_POINT}" diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index 9262263..3290831 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -1,11 +1,11 @@ %global advanced_branch 1 -%global svnrev 2318 +%global svnrev 2324 %{!?release_func:%global release_func() %%{?prerelease:0.}%1%%{?prerelease:.%%prerelease}%%{?dist}} Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c -Version: 1.30.4 +Version: 1.30.5 Release: %release_func 1800.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. @@ -236,6 +236,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Sat May 26 2012 Enrico Scholz - 1.30.5-1800.svn2324 +- updated to 1.30.5 (IPv6 server fixes) + * Sat May 12 2012 Enrico Scholz - 1.30.4-1800.svn2318 - updated to 1.30.4 From 422854b729895dd01491d17f8fedbfacbbb81332 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Sat, 26 May 2012 12:31:24 +0200 Subject: [PATCH 13/77] backported IPv6 server related patch --- ipv6-parse.patch | 22 ++++++++++++++++++++++ xmlrpc-c.spec | 7 ++++++- 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 ipv6-parse.patch diff --git a/ipv6-parse.patch b/ipv6-parse.patch new file mode 100644 index 0000000..35e443a --- /dev/null +++ b/ipv6-parse.patch @@ -0,0 +1,22 @@ +commit 2b92ed9855f4decbab5ba46d0cbf491f3fd6044b +Author: giraffedata +Date: Sat May 19 02:06:59 2012 +0000 + + Fix parsing of host/port with colons in host portion + + [backported] + git-svn-id: https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/trunk@2323 adbb7d4b-a73a-0410-a071-c5f57c452bd4 + +diff --git a/lib/abyss/src/http.c b/lib/abyss/src/http.c +index 096d93e..6b03e4c 100644 +--- a/lib/abyss/src/http.c ++++ b/lib/abyss/src/http.c +@@ -527,7 +527,7 @@ parseHostPort(const char * const hostport, + + buffer = strdup(hostport); + +- colonPos = strchr(buffer, ':'); ++ colonPos = strrchr(buffer, ':'); + if (colonPos) { + const char * p; + uint32_t port; diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index 1435cd3..0bedd52 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -6,7 +6,7 @@ Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c Version: 1.27.7 -Release: %release_func 1600.svn%svnrev +Release: %release_func 1601.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. License: BSD and MIT @@ -22,6 +22,7 @@ Source100: dfs.cc Source101: dso-fixup Patch0: xmlrpc-boolean-meaning.patch +Patch2: ipv6-parse.patch Patch100: xmlrpc-c-cmake.patch Patch102: xmlrpc-c-printf-size_t.patch @@ -117,6 +118,7 @@ This package contains some handy XML-RPC demo applications. %setup -q %patch0 -p1 +%patch2 -p1 %patch100 -p1 %patch102 -p1 @@ -244,6 +246,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Sat May 26 2012 Enrico Scholz - 1.27.7-1601.svn2185 +- backported IPv6 server related patch + * Wed Jan 4 2012 Enrico Scholz - 1.27.7-1600.svn2185 - updated to 1.27.7; only build fixes not affecting us - backported fix for "doesn't accept 'b/f' to mean boolean false" From 3a4dd52146a9f56cc3f531c258df323867f099c1 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Wed, 6 Jun 2012 21:13:31 +0200 Subject: [PATCH 14/77] backported "Fix double free of memory with failed xmlrpc_parse_value()" patch --- fix-double-free.patch | 105 ++++++++++++++++++++++++++++++++++++++++++ xmlrpc-c.spec | 8 +++- 2 files changed, 112 insertions(+), 1 deletion(-) create mode 100644 fix-double-free.patch diff --git a/fix-double-free.patch b/fix-double-free.patch new file mode 100644 index 0000000..e0f8ab0 --- /dev/null +++ b/fix-double-free.patch @@ -0,0 +1,105 @@ +commit dc129ae656085855cf126e81183001a5c50fdd77 +Author: giraffedata +Date: Sat May 26 21:00:19 2012 +0000 + + Fix double free of memory with failed xmlrpc_parse_value() + + git-svn-id: https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/trunk@2327 adbb7d4b-a73a-0410-a071-c5f57c452bd4 + +diff --git a/src/xmlrpc_decompose.c b/src/xmlrpc_decompose.c +index 6323a26..4a77426 100644 +--- a/src/xmlrpc_decompose.c ++++ b/src/xmlrpc_decompose.c +@@ -165,37 +165,33 @@ struct decompTreeNode { + + /* prototype for recursive calls */ + static void +-releaseDecomposition(const struct decompTreeNode * const decompRootP, +- bool const oldstyleMemMgmt); ++releaseDecomposition(const struct decompTreeNode * const decompRootP); + + + static void +-releaseDecompArray(struct arrayDecomp const arrayDecomp, +- bool const oldstyleMemMgmt) { ++releaseDecompArray(struct arrayDecomp const arrayDecomp) { + + unsigned int i; + for (i = 0; i < arrayDecomp.itemCnt; ++i) { +- releaseDecomposition(arrayDecomp.itemArray[i], oldstyleMemMgmt); ++ releaseDecomposition(arrayDecomp.itemArray[i]); + } + } + + ++ + static void +-releaseDecompStruct(struct structDecomp const structDecomp, +- bool const oldstyleMemMgmt) { ++releaseDecompStruct(struct structDecomp const structDecomp) { + + unsigned int i; + for (i = 0; i < structDecomp.mbrCnt; ++i) { +- releaseDecomposition(structDecomp.mbrArray[i].decompTreeP, +- oldstyleMemMgmt); ++ releaseDecomposition(structDecomp.mbrArray[i].decompTreeP); + } + } + + + + static void +-releaseDecomposition(const struct decompTreeNode * const decompRootP, +- bool const oldstyleMemMgmt) { ++releaseDecomposition(const struct decompTreeNode * const decompRootP) { + /*---------------------------------------------------------------------------- + Assuming that Caller has decomposed something according to 'decompRootP', + release whatever resources the decomposed information occupies. +@@ -236,10 +232,10 @@ releaseDecomposition(const struct decompTreeNode * const decompRootP, + xmlrpc_DECREF(*decompRootP->store.TstructVal.valueP); + break; + case '(': +- releaseDecompArray(decompRootP->store.Tarray, oldstyleMemMgmt); ++ releaseDecompArray(decompRootP->store.Tarray); + break; + case '{': +- releaseDecompStruct(decompRootP->store.Tstruct, oldstyleMemMgmt); ++ releaseDecompStruct(decompRootP->store.Tstruct); + break; + } + } +@@ -310,11 +306,12 @@ parsearray(xmlrpc_env * const envP, + } + } + if (envP->fault_occurred) { +- /* Release the items we completed before we failed. */ +- unsigned int i; +- for (i = 0; i < doneCnt; ++i) +- releaseDecomposition(arrayDecomp.itemArray[i], +- oldstyleMemMgmt); ++ if (!oldstyleMemMgmt) { ++ /* Release the items we completed before we failed. */ ++ unsigned int i; ++ for (i = 0; i < doneCnt; ++i) ++ releaseDecomposition(arrayDecomp.itemArray[i]); ++ } + } + } + } +@@ -351,10 +348,12 @@ parsestruct(xmlrpc_env * const envP, + } + + if (envP->fault_occurred) { +- unsigned int i; +- for (i = 0; i < doneCount; ++i) +- releaseDecomposition(structDecomp.mbrArray[i].decompTreeP, +- oldstyleMemMgmt); ++ if (!oldstyleMemMgmt) { ++ /* Release the items we completed before we failed. */ ++ unsigned int i; ++ for (i = 0; i < doneCount; ++i) ++ releaseDecomposition(structDecomp.mbrArray[i].decompTreeP); ++ } + } + } + diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index 0bedd52..12ace72 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -6,7 +6,7 @@ Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c Version: 1.27.7 -Release: %release_func 1601.svn%svnrev +Release: %release_func 1602.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. License: BSD and MIT @@ -23,6 +23,7 @@ Source101: dso-fixup Patch0: xmlrpc-boolean-meaning.patch Patch2: ipv6-parse.patch +Patch3: fix-double-free.patch Patch100: xmlrpc-c-cmake.patch Patch102: xmlrpc-c-printf-size_t.patch @@ -119,6 +120,7 @@ This package contains some handy XML-RPC demo applications. %patch0 -p1 %patch2 -p1 +%patch3 -p1 %patch100 -p1 %patch102 -p1 @@ -246,6 +248,10 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Wed Jun 6 2012 Enrico Scholz - 1.27.7-1602.svn2185 +- backported "Fix double free of memory with failed xmlrpc_parse_value()" + patch + * Sat May 26 2012 Enrico Scholz - 1.27.7-1601.svn2185 - backported IPv6 server related patch From 0e9394f400a845969f5eae00fb6bfc4f550f978a Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Wed, 6 Jun 2012 21:23:19 +0200 Subject: [PATCH 15/77] updated to 1.30.6 --- .gitignore | 2 +- lastver | 2 +- sources | 2 +- xmlrpc-c-cmake.patch | 2 +- xmlrpc-c.spec | 7 +++++-- 5 files changed, 9 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 7ef7e88..a893827 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -/xmlrpc-c-1.30.5.tar.xz +/xmlrpc-c-1.30.6.tar.xz diff --git a/lastver b/lastver index e2eb349..ffcd151 100644 --- a/lastver +++ b/lastver @@ -1 +1 @@ -2324 +2328 diff --git a/sources b/sources index edbd03c..1c209cf 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -cce7ab8c1d459659907384f946c7e342 xmlrpc-c-1.30.5.tar.xz +547b4240059d2e0988f84314a3cabf60 xmlrpc-c-1.30.6.tar.xz diff --git a/xmlrpc-c-cmake.patch b/xmlrpc-c-cmake.patch index 26851ab..cbb712b 100644 --- a/xmlrpc-c-cmake.patch +++ b/xmlrpc-c-cmake.patch @@ -146,7 +146,7 @@ index 0000000..f2f114c + +set(XMLRPC_C_VERSION_MAJOR "1" CACHE STRING "Version (major) of xmlrpc-c") +set(XMLRPC_C_VERSION_MINOR "30" CACHE STRING "Version (minor) of xmlrpc-c") -+set(XMLRPC_C_VERSION_POINT "5" CACHE STRING "Version (point) of xmlrpc-c") ++set(XMLRPC_C_VERSION_POINT "6" CACHE STRING "Version (point) of xmlrpc-c") + +set(XMLRPC_C_VERSION + "${XMLRPC_C_VERSION_MAJOR}.${XMLRPC_C_VERSION_MINOR}.${XMLRPC_C_VERSION_POINT}" diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index 3290831..b1e310c 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -1,11 +1,11 @@ %global advanced_branch 1 -%global svnrev 2324 +%global svnrev 2328 %{!?release_func:%global release_func() %%{?prerelease:0.}%1%%{?prerelease:.%%prerelease}%%{?dist}} Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c -Version: 1.30.5 +Version: 1.30.6 Release: %release_func 1800.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. @@ -236,6 +236,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Wed Jun 6 2012 Enrico Scholz - 1.30.6-1800.svn2328 +- updated to 1.30.6 + * Sat May 26 2012 Enrico Scholz - 1.30.5-1800.svn2324 - updated to 1.30.5 (IPv6 server fixes) From cd8280011f9855bcdb8cf1ff18079e7fd4ffce6f Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Sun, 1 Jul 2012 14:16:54 +0200 Subject: [PATCH 16/77] updated to 1.31.0 --- .gitignore | 1 + lastver | 2 +- sources | 2 +- xmlrpc-c-30x-redirect.patch | 16 ++--- xmlrpc-c-cmake.patch | 137 +++++++++++++++++++++++++----------- xmlrpc-c.spec | 7 +- 6 files changed, 113 insertions(+), 52 deletions(-) diff --git a/.gitignore b/.gitignore index a893827..bce1b2a 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /xmlrpc-c-1.30.6.tar.xz +/xmlrpc-c-1.31.0.tar.xz diff --git a/lastver b/lastver index ffcd151..a9a9a2a 100644 --- a/lastver +++ b/lastver @@ -1 +1 @@ -2328 +2365 diff --git a/sources b/sources index 1c209cf..b0940d3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -547b4240059d2e0988f84314a3cabf60 xmlrpc-c-1.30.6.tar.xz +590e54981d832fbeb86f42313c47e022 xmlrpc-c-1.31.0.tar.xz diff --git a/xmlrpc-c-30x-redirect.patch b/xmlrpc-c-30x-redirect.patch index 1d3df7a..a2d4446 100644 --- a/xmlrpc-c-30x-redirect.patch +++ b/xmlrpc-c-30x-redirect.patch @@ -1,27 +1,27 @@ -From 07f7798d0b6c9b187dd6bfa567be74a224baf1fb Mon Sep 17 00:00:00 2001 +From 255ebf4b1204124123971a3bb27741cccbb51692 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Thu, 29 Jul 2010 19:25:32 +0200 -Subject: [PATCH 5/5] allow 30x redirections +Subject: [PATCH 5/8] allow 30x redirections --- lib/curl_transport/curltransaction.c | 4 ++++ - 1 files changed, 4 insertions(+), 0 deletions(-) + 1 file changed, 4 insertions(+) diff --git a/lib/curl_transport/curltransaction.c b/lib/curl_transport/curltransaction.c -index 3c75010..e1cfc64 100644 +index 0f76fc2..6292aee 100644 --- a/lib/curl_transport/curltransaction.c +++ b/lib/curl_transport/curltransaction.c -@@ -495,6 +495,10 @@ setupCurlSession(xmlrpc_env * const envP, +@@ -600,6 +600,10 @@ setupCurlSession(xmlrpc_env * const envP, curl_easy_setopt(curlSessionP, CURLOPT_POST, 1); - curl_easy_setopt(curlSessionP, CURLOPT_URL, curlTransactionP->serverUrl); + curl_easy_setopt(curlSessionP, CURLOPT_URL, transP->serverUrl); + curl_easy_setopt(curlSessionP, CURLOPT_FOLLOWLOCATION, 1); + curl_easy_setopt(curlSessionP, CURLOPT_MAXREDIRS, (long)10); + curl_easy_setopt(curlSessionP, CURLOPT_POSTREDIR, CURL_REDIR_POST_ALL); + - XMLRPC_MEMBLOCK_APPEND(char, envP, callXmlP, "\0", 1); + XMLRPC_MEMBLOCK_APPEND(char, envP, transP->postDataP, "\0", 1); if (!envP->fault_occurred) { curl_easy_setopt(curlSessionP, CURLOPT_POSTFIELDS, -- -1.7.1.1 +1.7.10.4 diff --git a/xmlrpc-c-cmake.patch b/xmlrpc-c-cmake.patch index cbb712b..828137d 100644 --- a/xmlrpc-c-cmake.patch +++ b/xmlrpc-c-cmake.patch @@ -1,29 +1,29 @@ -From c86fa6d2bef36617385aebda3ee55da9a782b4d1 Mon Sep 17 00:00:00 2001 +From 26a4d5168bb69474c3cc304f90592d37bf0be8fe Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Sat, 5 Apr 2008 10:55:02 +0200 Subject: [PATCH 1/8] make -> cmake transition cmake: updated --- - CMakeLists.txt | 288 +++++++++++++++++++++++++++ + CMakeLists.txt | 290 +++++++++++++++++++++++++++ cmake/try-attr.cc | 3 + cmake/va-list-is-array.c | 9 + - examples/CMakeLists.txt | 63 ++++++ + examples/CMakeLists.txt | 68 +++++++ examples/config.h | 1 + - examples/cpp/CMakeLists.txt | 34 +++ + examples/cpp/CMakeLists.txt | 34 ++++ include/CMakeLists.txt | 3 + include/xmlrpc-c/CMakeLists.txt | 74 +++++++ - include/xmlrpc-c/config.h.cmake | 34 +++ - lib/CMakeLists.txt | 12 + + include/xmlrpc-c/config.h.cmake | 34 ++++ + lib/CMakeLists.txt | 12 ++ lib/abyss/CMakeLists.txt | 3 + lib/abyss/src/CMakeLists.txt | 70 +++++++ - lib/abyss/src/xmlrpc_abyss.pc.cmake | 12 + + lib/abyss/src/xmlrpc_abyss.pc.cmake | 12 ++ lib/curl_transport/CMakeLists.txt | 20 ++ lib/expat/CMakeLists.txt | 9 + lib/expat/gennmtab/CMakeLists.txt | 3 + lib/expat/xmlparse/CMakeLists.txt | 7 + - lib/expat/xmlparse/xmlrpc_xmlparse.pc.cmake | 12 + - lib/expat/xmltok/CMakeLists.txt | 23 ++ + lib/expat/xmlparse/xmlrpc_xmlparse.pc.cmake | 12 ++ + lib/expat/xmltok/CMakeLists.txt | 23 +++ lib/expat/xmltok/xmlrpc_xmltok.pc.cmake | 9 + lib/libutil/CMakeLists.txt | 26 +++ lib/libutil/xmlrpc_util.pc.cmake | 10 + @@ -33,20 +33,21 @@ cmake: updated src/CMakeLists.txt | 121 +++++++++++ src/cpp/CMakeLists.txt | 70 +++++++ src/cpp/test/CMakeLists.txt | 18 ++ - src/cpp/xmlrpc++.pc.cmake | 12 + - src/cpp/xmlrpc_client++.pc.cmake | 12 + - src/cpp/xmlrpc_cpp.pc.cmake | 12 + - src/cpp/xmlrpc_packetsocket.pc.cmake | 12 + - src/cpp/xmlrpc_server++.pc.cmake | 12 + - src/cpp/xmlrpc_server_abyss++.pc.cmake | 12 + - src/cpp/xmlrpc_server_cgi++.pc.cmake | 12 + - src/cpp/xmlrpc_server_pstream++.pc.cmake | 12 + - src/xmlrpc.pc.cmake | 12 + - src/xmlrpc_client.pc.cmake | 12 + - src/xmlrpc_server.pc.cmake | 12 + - src/xmlrpc_server_abyss.pc.cmake | 12 + - src/xmlrpc_server_cgi.pc.cmake | 12 + - test/CMakeLists.txt | 39 ++++ + src/cpp/xmlrpc++.pc.cmake | 12 ++ + src/cpp/xmlrpc_client++.pc.cmake | 12 ++ + src/cpp/xmlrpc_cpp.pc.cmake | 12 ++ + src/cpp/xmlrpc_packetsocket.pc.cmake | 12 ++ + src/cpp/xmlrpc_server++.pc.cmake | 12 ++ + src/cpp/xmlrpc_server_abyss++.pc.cmake | 12 ++ + src/cpp/xmlrpc_server_cgi++.pc.cmake | 12 ++ + src/cpp/xmlrpc_server_pstream++.pc.cmake | 12 ++ + src/xmlrpc.pc.cmake | 12 ++ + src/xmlrpc_client.pc.cmake | 12 ++ + src/xmlrpc_server.pc.cmake | 12 ++ + src/xmlrpc_server_abyss.pc.cmake | 12 ++ + src/xmlrpc_server_cgi.pc.cmake | 12 ++ + test/CMakeLists.txt | 41 ++++ + test/cpp/CMakeLists.txt | 34 ++++ tools/CMakeLists.txt | 22 ++ tools/binmode-rpc-kit/CMakeLists.txt | 1 + tools/lib/CMakeLists.txt | 1 + @@ -63,8 +64,8 @@ cmake: updated transport_config.h.cmake | 16 ++ version.h.cmake | 5 + xmlrpc-c-config | 105 ++++++++++ - xmlrpc_config.h.cmake | 177 ++++++++++++++++ - 59 files changed, 1587 insertions(+), 0 deletions(-) + xmlrpc_config.h.cmake | 183 +++++++++++++++++ + 60 files changed, 1636 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 cmake/try-attr.cc create mode 100644 cmake/va-list-is-array.c @@ -107,6 +108,7 @@ cmake: updated create mode 100644 src/xmlrpc_server_abyss.pc.cmake create mode 100644 src/xmlrpc_server_cgi.pc.cmake create mode 100644 test/CMakeLists.txt + create mode 100644 test/cpp/CMakeLists.txt create mode 100644 tools/CMakeLists.txt create mode 100644 tools/binmode-rpc-kit/CMakeLists.txt create mode 100644 tools/lib/CMakeLists.txt @@ -127,10 +129,10 @@ cmake: updated diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 -index 0000000..f2f114c +index 0000000..2876dea --- /dev/null +++ b/CMakeLists.txt -@@ -0,0 +1,288 @@ +@@ -0,0 +1,290 @@ +## -*- cmake -*- +project(xmlrpc-c) +include(FindPkgConfig) @@ -145,8 +147,8 @@ index 0000000..f2f114c + + +set(XMLRPC_C_VERSION_MAJOR "1" CACHE STRING "Version (major) of xmlrpc-c") -+set(XMLRPC_C_VERSION_MINOR "30" CACHE STRING "Version (minor) of xmlrpc-c") -+set(XMLRPC_C_VERSION_POINT "6" CACHE STRING "Version (point) of xmlrpc-c") ++set(XMLRPC_C_VERSION_MINOR "31" CACHE STRING "Version (minor) of xmlrpc-c") ++set(XMLRPC_C_VERSION_POINT "0" CACHE STRING "Version (point) of xmlrpc-c") + +set(XMLRPC_C_VERSION + "${XMLRPC_C_VERSION_MAJOR}.${XMLRPC_C_VERSION_MINOR}.${XMLRPC_C_VERSION_POINT}" @@ -209,6 +211,8 @@ index 0000000..f2f114c + set(tmp 0) + endif(WININET_CONFIG_EXECUTABLE) + endif(DEFINED MUST_BUILD_WININET_CLIENT) ++ ++ set(MSVCRT yes) +else(WIN32) + set(tmp 0) +endif(WIN32) @@ -445,10 +449,10 @@ index 0000000..1ad0bab +int main() {} diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt new file mode 100644 -index 0000000..4011f11 +index 0000000..1535adf --- /dev/null +++ b/examples/CMakeLists.txt -@@ -0,0 +1,63 @@ +@@ -0,0 +1,68 @@ +# -*- cmake -*- + +include_directories(${CMAKE_CURRENT_BINARY_DIR}) @@ -490,7 +494,9 @@ index 0000000..4011f11 +if(MUST_BUILD_CURL_CLIENT) + set(client_LIBS xmlrpc_client) + -+ ensc_add_example(interrupted_client c client) ++ if(NOT DEFINED MSVCRT) ++ ensc_add_example(interrupted_client c client) ++ endif(NOT DEFINED MSVCRT) +endif(MUST_BUILD_CURL_CLIENT) + +if(ENABLE_CGI_SERVER) @@ -503,12 +509,15 @@ index 0000000..4011f11 + set(abyss_server_LIBS xmlrpc_server_abyss) + + ensc_add_example(compound_value_server c abyss_server) -+ ensc_add_example(interrupted_server c abyss_server) + ensc_add_example(xmlrpc_inetd_server c abyss_server) + ensc_add_example(xmlrpc_socket_server c abyss_server) + ensc_add_example(xmlrpc_loop_server c abyss_server) + ensc_add_example(xmlrpc_sample_add_server c abyss_server) + ensc_add_example(xmlrpc_server_validatee c abyss_server) ++ ++ if(NOT DEFINED MSVCRT) ++ ensc_add_example(interrupted_server c abyss_server) ++ endif(NOT DEFINED MSVCRT) +endif(ENABLE_ABYSS_SERVER) + +ensc_set_link_exe_flags(${example_TARGETS}) @@ -1033,7 +1042,7 @@ index 0000000..17535ab +endif(MUST_BUILD_WININET_CLIENT) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 -index 0000000..e3635d2 +index 0000000..f51e15b --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,121 @@ @@ -1097,7 +1106,7 @@ index 0000000..e3635d2 + xmlrpc_data.c xmlrpc_datetime.c xmlrpc_string.c + xmlrpc_array.c xmlrpc_struct.c + xmlrpc_build.c xmlrpc_decompose.c xmlrpc_parse.c xmlrpc_serialize.c -+ xmlrpc_base64.c xmlrpc_authcookie.c) ++ xmlrpc_authcookie.c) + +set_target_properties(xmlrpc + PROPERTIES @@ -1494,10 +1503,10 @@ index 0000000..748b550 +Cflags: -I${includedir} diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 -index 0000000..fdc6869 +index 0000000..e712382 --- /dev/null +++ b/test/CMakeLists.txt -@@ -0,0 +1,39 @@ +@@ -0,0 +1,41 @@ +# -*- cmake -*- + +set(test_SOURCES @@ -1537,6 +1546,48 @@ index 0000000..fdc6869 + +enable_testing() +add_test(runtests src-test) ++ ++add_subdirectory(cpp) +diff --git a/test/cpp/CMakeLists.txt b/test/cpp/CMakeLists.txt +new file mode 100644 +index 0000000..15a7c3a +--- /dev/null ++++ b/test/cpp/CMakeLists.txt +@@ -0,0 +1,34 @@ ++# -*- cmake -*- ++ ++set(testcpp_SOURCES ++ test.cpp ++ base64.cpp ++ registry.cpp ++ server_abyss.cpp ++ server_pstream.cpp ++ tools.cpp ++ value.cpp ++ xml.cpp) ++ ++if(MUST_BUILD_CLIENT) ++ list(APPEND testcpp_SOURCES testclient.cpp) ++ list(APPEND testcpp_LIBS xmlrpc_client++) ++else(MUST_BUILD_CLIENT) ++ list(APPEND testcpp_SOURCES testclient_dummy.c) ++endif(MUST_BUILD_CLIENT) ++ ++if(DEFINED MSVCRT) ++ list(APPEND testcpp_SOURCES ${CMAKE_SOURCE_DIR}/Windows/socketpair.cpp) ++endif(DEFINED MSVCRT) ++ ++add_executable(src-testcpp ${testcpp_SOURCES}) ++target_link_libraries(src-testcpp ++ xmlrpc++ ++ xmlrpc_server++ ++ xmlrpc_server_abyss++ ++ xmlrpc_server_pstream++ ++ xmlrpc_cpp ++ util ${testcpp_LIBS}) ++ ++enable_testing() ++add_test(runtests src-testcpp) diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt new file mode 100644 index 0000000..cd2a6d7 @@ -1885,10 +1936,10 @@ index 0000000..50577fd +exec pkg-config "$@" $comp diff --git a/xmlrpc_config.h.cmake b/xmlrpc_config.h.cmake new file mode 100644 -index 0000000..561afdc +index 0000000..9eff724 --- /dev/null +++ b/xmlrpc_config.h.cmake -@@ -0,0 +1,177 @@ +@@ -0,0 +1,183 @@ +/* -*- c -*- */ + +#ifndef H_XMLRPC_C_CONFIG_H @@ -2065,7 +2116,13 @@ index 0000000..561afdc + #define XMLRPC_S_IRUSR S_IRUSR +#endif + ++#if MSVCRT ++ #define XMLRPC_CHDIR _chdir ++#else ++ #define XMLRPC_CHDIR chdir ++#endif ++ +#endif -- -1.7.7.6 +1.7.10.4 diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index b1e310c..347d834 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -1,11 +1,11 @@ %global advanced_branch 1 -%global svnrev 2328 +%global svnrev 2365 %{!?release_func:%global release_func() %%{?prerelease:0.}%1%%{?prerelease:.%%prerelease}%%{?dist}} Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c -Version: 1.30.6 +Version: 1.31.0 Release: %release_func 1800.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. @@ -236,6 +236,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Sun Jul 1 2012 Enrico Scholz - 1.31.0-1800.svn2365 +- updated to 1.31.0 + * Wed Jun 6 2012 Enrico Scholz - 1.30.6-1800.svn2328 - updated to 1.30.6 From 6a4ed1f50d88be5daa7794f131e17c9184207f5f Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Sun, 22 Jul 2012 00:54:32 -0500 Subject: [PATCH 17/77] - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild --- xmlrpc-c.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index 347d834..1bb9fb1 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -6,7 +6,7 @@ Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c Version: 1.31.0 -Release: %release_func 1800.svn%svnrev +Release: %release_func 1801.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. License: BSD and MIT @@ -236,6 +236,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Sun Jul 22 2012 Fedora Release Engineering - 1.31.0-1801.svn2365 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + * Sun Jul 1 2012 Enrico Scholz - 1.31.0-1800.svn2365 - updated to 1.31.0 From e9e8624ee7f16e9491bcf746968059c61b65ead0 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Sun, 26 Aug 2012 16:33:15 +0200 Subject: [PATCH 18/77] updated to 1.31.4 --- .gitignore | 3 +-- lastver | 2 +- sources | 2 +- xmlrpc-c-cmake.patch | 2 +- xmlrpc-c.spec | 9 ++++++--- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index bce1b2a..71a92e1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -/xmlrpc-c-1.30.6.tar.xz -/xmlrpc-c-1.31.0.tar.xz +/xmlrpc-c-1.31.4.tar.xz diff --git a/lastver b/lastver index a9a9a2a..1b4f1c3 100644 --- a/lastver +++ b/lastver @@ -1 +1 @@ -2365 +2386 diff --git a/sources b/sources index b0940d3..b2047dc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -590e54981d832fbeb86f42313c47e022 xmlrpc-c-1.31.0.tar.xz +9df3de00efadd5feb92c5c05a3dbffd9 xmlrpc-c-1.31.4.tar.xz diff --git a/xmlrpc-c-cmake.patch b/xmlrpc-c-cmake.patch index 828137d..d0a6fb9 100644 --- a/xmlrpc-c-cmake.patch +++ b/xmlrpc-c-cmake.patch @@ -148,7 +148,7 @@ index 0000000..2876dea + +set(XMLRPC_C_VERSION_MAJOR "1" CACHE STRING "Version (major) of xmlrpc-c") +set(XMLRPC_C_VERSION_MINOR "31" CACHE STRING "Version (minor) of xmlrpc-c") -+set(XMLRPC_C_VERSION_POINT "0" CACHE STRING "Version (point) of xmlrpc-c") ++set(XMLRPC_C_VERSION_POINT "4" CACHE STRING "Version (point) of xmlrpc-c") + +set(XMLRPC_C_VERSION + "${XMLRPC_C_VERSION_MAJOR}.${XMLRPC_C_VERSION_MINOR}.${XMLRPC_C_VERSION_POINT}" diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index 1bb9fb1..345d68e 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -1,12 +1,12 @@ %global advanced_branch 1 -%global svnrev 2365 +%global svnrev 2386 %{!?release_func:%global release_func() %%{?prerelease:0.}%1%%{?prerelease:.%%prerelease}%%{?dist}} Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c -Version: 1.31.0 -Release: %release_func 1801.svn%svnrev +Version: 1.31.4 +Release: %release_func 1900.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. License: BSD and MIT @@ -236,6 +236,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Sun Aug 26 2012 Enrico Scholz - 1.31.4-1900.svn2386 +- updated to 1.31.4 + * Sun Jul 22 2012 Fedora Release Engineering - 1.31.0-1801.svn2365 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild From 27fe80a4958960492a024198007f6007638fb1ae Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Sun, 26 Aug 2012 16:51:46 +0200 Subject: [PATCH 19/77] forward-ported patch from stable branch which fixes exception handling on invalid utf-8 strings --- fix-string-exceptions.patch | 23 +++++++++++++++++++++++ xmlrpc-c.spec | 8 +++++++- 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 fix-string-exceptions.patch diff --git a/fix-string-exceptions.patch b/fix-string-exceptions.patch new file mode 100644 index 0000000..794505d --- /dev/null +++ b/fix-string-exceptions.patch @@ -0,0 +1,23 @@ +commit e843bfc560ec7baabf9f88421ecdd1826e9fb578 +Author: giraffedata +Date: Wed Aug 22 03:18:22 2012 +0000 + + Release 1.25.19 + + git-svn-id: https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/stable@2385 adbb7d4b-a73a-0410-a071-c5f57c452bd4 + +diff --git a/src/xmlrpc_string.c b/src/xmlrpc_string.c +index ac9a1f5..9496bfa 100644 +--- a/src/xmlrpc_string.c ++++ b/src/xmlrpc_string.c +@@ -673,6 +673,10 @@ stringNew(xmlrpc_env * const envP, + + xmlrpc_value * valP; + ++ // hack to work around old-style exception cleanup in ++ // convert_params() in xmlrpc_parse.c. ++ valP = NULL; ++ + xmlrpc_validate_utf8(envP, value, length); + + if (!envP->fault_occurred) { diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index 12ace72..4af08f5 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -6,7 +6,7 @@ Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c Version: 1.27.7 -Release: %release_func 1602.svn%svnrev +Release: %release_func 1603.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. License: BSD and MIT @@ -24,6 +24,7 @@ Source101: dso-fixup Patch0: xmlrpc-boolean-meaning.patch Patch2: ipv6-parse.patch Patch3: fix-double-free.patch +Patch4: fix-string-exceptions.patch Patch100: xmlrpc-c-cmake.patch Patch102: xmlrpc-c-printf-size_t.patch @@ -121,6 +122,7 @@ This package contains some handy XML-RPC demo applications. %patch0 -p1 %patch2 -p1 %patch3 -p1 +%patch4 -p1 %patch100 -p1 %patch102 -p1 @@ -248,6 +250,10 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Sun Aug 26 2012 Enrico Scholz - 1.27.7-1603.svn2185 +- forward-ported patch from stable branch which fixes exception + handling on invalid utf-8 strings + * Wed Jun 6 2012 Enrico Scholz - 1.27.7-1602.svn2185 - backported "Fix double free of memory with failed xmlrpc_parse_value()" patch From 923c039adb103a6effd48267f1d6cb40770229ab Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Sat, 6 Oct 2012 12:39:58 +0200 Subject: [PATCH 20/77] updated to 1.32.1 --- .gitignore | 1 + lastver | 2 +- sources | 2 +- xmlrpc-c-cmake.patch | 4 ++-- xmlrpc-c.spec | 8 +++++--- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 71a92e1..02e4d42 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /xmlrpc-c-1.31.4.tar.xz +/xmlrpc-c-1.32.1.tar.xz diff --git a/lastver b/lastver index 1b4f1c3..49ce078 100644 --- a/lastver +++ b/lastver @@ -1 +1 @@ -2386 +2413 diff --git a/sources b/sources index b2047dc..bc28936 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -9df3de00efadd5feb92c5c05a3dbffd9 xmlrpc-c-1.31.4.tar.xz +3fb3aee58dc47c76235600192b0c952e xmlrpc-c-1.32.1.tar.xz diff --git a/xmlrpc-c-cmake.patch b/xmlrpc-c-cmake.patch index d0a6fb9..87ac3fd 100644 --- a/xmlrpc-c-cmake.patch +++ b/xmlrpc-c-cmake.patch @@ -147,8 +147,8 @@ index 0000000..2876dea + + +set(XMLRPC_C_VERSION_MAJOR "1" CACHE STRING "Version (major) of xmlrpc-c") -+set(XMLRPC_C_VERSION_MINOR "31" CACHE STRING "Version (minor) of xmlrpc-c") -+set(XMLRPC_C_VERSION_POINT "4" CACHE STRING "Version (point) of xmlrpc-c") ++set(XMLRPC_C_VERSION_MINOR "32" CACHE STRING "Version (minor) of xmlrpc-c") ++set(XMLRPC_C_VERSION_POINT "1" CACHE STRING "Version (point) of xmlrpc-c") + +set(XMLRPC_C_VERSION + "${XMLRPC_C_VERSION_MAJOR}.${XMLRPC_C_VERSION_MINOR}.${XMLRPC_C_VERSION_POINT}" diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index 345d68e..03e16fa 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -1,11 +1,11 @@ %global advanced_branch 1 -%global svnrev 2386 +%global svnrev 2413 %{!?release_func:%global release_func() %%{?prerelease:0.}%1%%{?prerelease:.%%prerelease}%%{?dist}} Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c -Version: 1.31.4 +Version: 1.32.1 Release: %release_func 1900.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. @@ -236,6 +236,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Sat Oct 6 2012 Enrico Scholz - 1.32.1-1900.svn2413 +- updated to 1.32.1 + * Sun Aug 26 2012 Enrico Scholz - 1.31.4-1900.svn2386 - updated to 1.31.4 @@ -454,6 +457,5 @@ rm -rf $RPM_BUILD_ROOT - fixed gcc4.1 build issues - removed static libraries when there exists a corresponding dynamic one - * Tue Aug 2 2005 Enrico Scholz - 1.03.02-1 - Initial build. From 8fe97bfc1307ac1683b19357471f2c11c10689b7 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Sun, 21 Oct 2012 13:31:51 +0200 Subject: [PATCH 21/77] updated to 1.32.2 --- .gitignore | 3 +-- lastver | 2 +- sources | 2 +- xmlrpc-c-cmake.patch | 2 +- xmlrpc-c.spec | 7 +++++-- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 02e4d42..eef61d9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -/xmlrpc-c-1.31.4.tar.xz -/xmlrpc-c-1.32.1.tar.xz +/xmlrpc-c-1.32.2.tar.xz diff --git a/lastver b/lastver index 49ce078..51d5790 100644 --- a/lastver +++ b/lastver @@ -1 +1 @@ -2413 +2434 diff --git a/sources b/sources index bc28936..e674b34 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -3fb3aee58dc47c76235600192b0c952e xmlrpc-c-1.32.1.tar.xz +be65da6596262606a9c67fd5df68ba97 xmlrpc-c-1.32.2.tar.xz diff --git a/xmlrpc-c-cmake.patch b/xmlrpc-c-cmake.patch index 87ac3fd..1d83677 100644 --- a/xmlrpc-c-cmake.patch +++ b/xmlrpc-c-cmake.patch @@ -148,7 +148,7 @@ index 0000000..2876dea + +set(XMLRPC_C_VERSION_MAJOR "1" CACHE STRING "Version (major) of xmlrpc-c") +set(XMLRPC_C_VERSION_MINOR "32" CACHE STRING "Version (minor) of xmlrpc-c") -+set(XMLRPC_C_VERSION_POINT "1" CACHE STRING "Version (point) of xmlrpc-c") ++set(XMLRPC_C_VERSION_POINT "2" CACHE STRING "Version (point) of xmlrpc-c") + +set(XMLRPC_C_VERSION + "${XMLRPC_C_VERSION_MAJOR}.${XMLRPC_C_VERSION_MINOR}.${XMLRPC_C_VERSION_POINT}" diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index 03e16fa..fbcacd9 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -1,11 +1,11 @@ %global advanced_branch 1 -%global svnrev 2413 +%global svnrev 2434 %{!?release_func:%global release_func() %%{?prerelease:0.}%1%%{?prerelease:.%%prerelease}%%{?dist}} Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c -Version: 1.32.1 +Version: 1.32.2 Release: %release_func 1900.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. @@ -236,6 +236,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Sun Oct 21 2012 Enrico Scholz - 1.32.2-1900.svn2434 +- updated to 1.32.2 + * Sat Oct 6 2012 Enrico Scholz - 1.32.1-1900.svn2413 - updated to 1.32.1 From 0c24ea03853e90de4b5c615ef5e5290e0839a3a8 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Sun, 9 Dec 2012 13:32:27 +0100 Subject: [PATCH 22/77] forward ported two patches from stable branch - fixes interruption with libcurl transport - fixes parsing error of 64 bit integers - fixes libxml2 related memory leak --- release-1.25.20.patch | 69 +++++++++++++++++++++++++++++++++++++++++++ release-1.25.21.patch | 59 ++++++++++++++++++++++++++++++++++++ xmlrpc-c.spec | 12 +++++++- 3 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 release-1.25.20.patch create mode 100644 release-1.25.21.patch diff --git a/release-1.25.20.patch b/release-1.25.20.patch new file mode 100644 index 0000000..315514b --- /dev/null +++ b/release-1.25.20.patch @@ -0,0 +1,69 @@ +From 1c76aa8abeaef8273f637324e43de78677535833 Mon Sep 17 00:00:00 2001 +From: giraffedata +Date: Fri, 19 Oct 2012 19:47:27 +0000 +Subject: Release 1.25.20 + +git-svn-id: https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/stable@2435 adbb7d4b-a73a-0410-a071-c5f57c452bd4 +--- + lib/curl_transport/xmlrpc_curl_transport.c | 23 ++++++++++++++++++++--- + version.mk | 2 +- + 2 Dateien geändert, 21 Zeilen hinzugefügt(+), 4 Zeilen entfernt(-) + +diff --git a/lib/curl_transport/xmlrpc_curl_transport.c b/lib/curl_transport/xmlrpc_curl_transport.c +index c48b927..96a403e 100644 +--- a/lib/curl_transport/xmlrpc_curl_transport.c ++++ b/lib/curl_transport/xmlrpc_curl_transport.c +@@ -1170,6 +1170,16 @@ createRpc(xmlrpc_env * const envP, + if (rpcP == NULL) + xmlrpc_faultf(envP, "Couldn't allocate memory for rpc object"); + else { ++ curlt_progressFn * curlProgressFn; ++ ++ if (progress || clientTransportP->interruptP) ++ curlProgressFn = &curlTransactionProgress; ++ else { ++ /* There's nothing for curlTransactionProgress() to do, so save ++ the time and complexity of calling it. ++ */ ++ curlProgressFn = NULL; ++ } + rpcP->transportP = clientTransportP; + rpcP->curlSessionP = curlSessionP; + rpcP->callInfoP = callInfoP; +@@ -1186,7 +1196,7 @@ createRpc(xmlrpc_env * const envP, + &clientTransportP->curlSetupStuff, + rpcP, + complete ? &finishRpcCurlTransaction : NULL, +- progress ? &curlTransactionProgress : NULL, ++ curlProgressFn, + &rpcP->curlTransactionP); + if (!envP->fault_occurred) { + if (envP->fault_occurred) +@@ -1296,15 +1306,22 @@ curlTransactionProgress(void * const context, + + assert(rpcP); + assert(transportP); +- assert(rpcP->progress); + + progressData.response.total = dlTotal; + progressData.response.now = dlNow; + progressData.call.total = ulTotal; + progressData.call.now = ulNow; + +- rpcP->progress(rpcP->callInfoP, progressData); ++ if (rpcP->progress) { ++ struct xmlrpc_progress_data progressData; ++ ++ progressData.response.total = dlTotal; ++ progressData.response.now = dlNow; ++ progressData.call.total = ulTotal; ++ progressData.call.now = ulNow; + ++ rpcP->progress(rpcP->callInfoP, progressData); ++ } + if (transportP->interruptP) + *abortP = *transportP->interruptP; + else +-- +1.7.11.7 + diff --git a/release-1.25.21.patch b/release-1.25.21.patch new file mode 100644 index 0000000..09eae01 --- /dev/null +++ b/release-1.25.21.patch @@ -0,0 +1,59 @@ +From c880196664ca3902cbf8fd806a58a9e9f362abb0 Mon Sep 17 00:00:00 2001 +From: giraffedata +Date: Thu, 29 Nov 2012 04:37:55 +0000 +Subject: Release 1.25.21 + +git-svn-id: https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/stable@2452 adbb7d4b-a73a-0410-a071-c5f57c452bd4 +--- + lib/abyss/src/channel.c | 2 +- + src/method.c | 1 + + src/xmlrpc_libxml2.c | 6 ++++-- + version.mk | 2 +- + 4 Dateien geändert, 7 Zeilen hinzugefügt(+), 4 Zeilen entfernt(-) + +diff --git a/lib/abyss/src/channel.c b/lib/abyss/src/channel.c +index 5044e23..5454bd0 100644 +--- a/lib/abyss/src/channel.c ++++ b/lib/abyss/src/channel.c +@@ -181,7 +181,7 @@ void + ChannelInterrupt(TChannel * const channelP) { + + if (ChannelTraceIsActive) +- fprintf(stderr, "Interrupting channel waits"); ++ fprintf(stderr, "Interrupting channel waits\n"); + + (*channelP->vtbl.interrupt)(channelP); + } +diff --git a/src/method.c b/src/method.c +index 467bbbe..e375e5f 100644 +--- a/src/method.c ++++ b/src/method.c +@@ -54,6 +54,7 @@ translateTypeSpecifierToName(xmlrpc_env * const envP, + case 'S': *typeNameP = "struct"; break; + case 'A': *typeNameP = "array"; break; + case 'n': *typeNameP = "nil"; break; ++ case 'I': *typeNameP = "i8"; break; + default: + xmlrpc_faultf(envP, + "Method registry contains invalid signature " +diff --git a/src/xmlrpc_libxml2.c b/src/xmlrpc_libxml2.c +index 3df6231..574af86 100644 +--- a/src/xmlrpc_libxml2.c ++++ b/src/xmlrpc_libxml2.c +@@ -422,9 +422,11 @@ xml_parse(xmlrpc_env * const envP, + *resultPP = context.root; + + cleanup: +- if (parser) ++ if (parser) { ++ if (parser->myDoc) ++ xmlFreeDoc(parser->myDoc); + xmlFreeParserCtxt(parser); +- ++ } + if (envP->fault_occurred) { + if (context.root) + xml_element_free(context.root); +-- +1.7.11.7 + diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index 4af08f5..c7ff7cb 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -6,7 +6,7 @@ Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c Version: 1.27.7 -Release: %release_func 1603.svn%svnrev +Release: %release_func 1604.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. License: BSD and MIT @@ -25,6 +25,8 @@ Patch0: xmlrpc-boolean-meaning.patch Patch2: ipv6-parse.patch Patch3: fix-double-free.patch Patch4: fix-string-exceptions.patch +Patch5: release-1.25.20.patch +Patch6: release-1.25.21.patch Patch100: xmlrpc-c-cmake.patch Patch102: xmlrpc-c-printf-size_t.patch @@ -123,6 +125,8 @@ This package contains some handy XML-RPC demo applications. %patch2 -p1 %patch3 -p1 %patch4 -p1 +%patch5 -p1 +%patch6 -p1 %patch100 -p1 %patch102 -p1 @@ -250,6 +254,12 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Sun Dec 9 2012 Enrico Scholz - 1.27.7-1604.svn2185 +- forward ported two patches from stable branch +- fixes interruption with libcurl transport +- fixes parsing error of 64 bit integers +- fixes libxml2 related memory leak + * Sun Aug 26 2012 Enrico Scholz - 1.27.7-1603.svn2185 - forward-ported patch from stable branch which fixes exception handling on invalid utf-8 strings From 846941c22268195253ad70c055dcceb7dd88ac2c Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Sun, 9 Dec 2012 13:36:25 +0100 Subject: [PATCH 23/77] updated to 1.32.5 --- .gitignore | 2 +- lastver | 2 +- sources | 2 +- xmlrpc-c-cmake.patch | 2 +- xmlrpc-c.spec | 7 +++++-- 5 files changed, 9 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index eef61d9..3a36f38 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -/xmlrpc-c-1.32.2.tar.xz +/xmlrpc-c-1.32.5.tar.xz diff --git a/lastver b/lastver index 51d5790..0b0d24a 100644 --- a/lastver +++ b/lastver @@ -1 +1 @@ -2434 +2451 diff --git a/sources b/sources index e674b34..0161d65 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -be65da6596262606a9c67fd5df68ba97 xmlrpc-c-1.32.2.tar.xz +5c8a328f52e4f010d1ea3b56ae685874 xmlrpc-c-1.32.5.tar.xz diff --git a/xmlrpc-c-cmake.patch b/xmlrpc-c-cmake.patch index 1d83677..6d544fb 100644 --- a/xmlrpc-c-cmake.patch +++ b/xmlrpc-c-cmake.patch @@ -148,7 +148,7 @@ index 0000000..2876dea + +set(XMLRPC_C_VERSION_MAJOR "1" CACHE STRING "Version (major) of xmlrpc-c") +set(XMLRPC_C_VERSION_MINOR "32" CACHE STRING "Version (minor) of xmlrpc-c") -+set(XMLRPC_C_VERSION_POINT "2" CACHE STRING "Version (point) of xmlrpc-c") ++set(XMLRPC_C_VERSION_POINT "5" CACHE STRING "Version (point) of xmlrpc-c") + +set(XMLRPC_C_VERSION + "${XMLRPC_C_VERSION_MAJOR}.${XMLRPC_C_VERSION_MINOR}.${XMLRPC_C_VERSION_POINT}" diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index fbcacd9..07f2ccd 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -1,11 +1,11 @@ %global advanced_branch 1 -%global svnrev 2434 +%global svnrev 2451 %{!?release_func:%global release_func() %%{?prerelease:0.}%1%%{?prerelease:.%%prerelease}%%{?dist}} Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c -Version: 1.32.2 +Version: 1.32.5 Release: %release_func 1900.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. @@ -236,6 +236,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Sun Dec 9 2012 Enrico Scholz - 1.32.5-1900.svn2451 +- updated to 1.32.5 + * Sun Oct 21 2012 Enrico Scholz - 1.32.2-1900.svn2434 - updated to 1.32.2 From c6d591656fb8823f998e247af29d442ebd6868ae Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Thu, 14 Feb 2013 21:50:55 -0600 Subject: [PATCH 24/77] - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild --- xmlrpc-c.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index 07f2ccd..6c3e413 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -6,7 +6,7 @@ Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c Version: 1.32.5 -Release: %release_func 1900.svn%svnrev +Release: %release_func 1901.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. License: BSD and MIT @@ -236,6 +236,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Fri Feb 15 2013 Fedora Release Engineering - 1.32.5-1901.svn2451 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + * Sun Dec 9 2012 Enrico Scholz - 1.32.5-1900.svn2451 - updated to 1.32.5 From 0df88c01acbbd44309574313d5784186b6626bc3 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Thu, 25 Apr 2013 10:12:46 +0200 Subject: [PATCH 25/77] Add missing inter-package dependencies - Rename fedora directory to build --- xmlrpc-c.spec | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index 6c3e413..128b185 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -6,7 +6,7 @@ Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c Version: 1.32.5 -Release: %release_func 1901.svn%svnrev +Release: %release_func 1902.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. License: BSD and MIT @@ -48,6 +48,8 @@ Requires: %name%{?_isa} = %version-%release Summary: C++ client libraries for xmlrpc-c Group: System Environment/Libraries Requires: %name%{?_isa} = %version-%release +Requires: %name-c++%{?_isa} = %version-%release +Requires: %name-client%{?_isa} = %version-%release %package devel Summary: Development files for xmlrpc-c based programs @@ -60,6 +62,10 @@ Requires: %name-client++%{?_isa} = %version-%release %package apps Summary: Sample XML-RPC applications Group: Applications/Internet +Requires: %name%{?_isa} = %version-%release +Requires: %name-c++%{?_isa} = %version-%release +Requires: %name-client%{?_isa} = %version-%release +Requires: %name-client++%{?_isa} = %version-%release %description @@ -123,8 +129,8 @@ rm doc/{INSTALL,configure_doc} %build -mkdir -p fedora -cd fedora +mkdir -p build +cd build export CFLAGS="$RPM_OPT_FLAGS -Wno-uninitialized -Wno-unknown-pragmas" export CXXFLAGS="$RPM_OPT_FLAGS" export LDFLAGS="-Wl,-as-needed" @@ -142,7 +148,7 @@ make VERBOSE=1 %{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT -cd fedora +cd build make install DESTDIR=$RPM_BUILD_ROOT chmod +x $RPM_BUILD_ROOT%_libdir/*.so @@ -236,6 +242,10 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Thu Apr 25 2013 Mikolaj Izdebski - 1.32.5-1902.svn2451 +- Add missing inter-package dependencies +- Rename fedora directory to build + * Fri Feb 15 2013 Fedora Release Engineering - 1.32.5-1901.svn2451 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild From 83cd9f838a6615771bdb0ccbbd2842dac4afb3d0 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Sun, 4 Aug 2013 03:31:33 -0500 Subject: [PATCH 26/77] - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild --- xmlrpc-c.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index 128b185..8822001 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -6,7 +6,7 @@ Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c Version: 1.32.5 -Release: %release_func 1902.svn%svnrev +Release: %release_func 1903.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. License: BSD and MIT @@ -242,6 +242,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Sun Aug 04 2013 Fedora Release Engineering - 1.32.5-1903.svn2451 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + * Thu Apr 25 2013 Mikolaj Izdebski - 1.32.5-1902.svn2451 - Add missing inter-package dependencies - Rename fedora directory to build From d2a7787f4aedb6e80674caa06d4b8d7e41e2acc6 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Fri, 28 Mar 2014 15:56:12 +0100 Subject: [PATCH 27/77] Add patch to silence format-security compiler warning - Resolves: rhbz#1037399 --- xmlrpc-c-format-security-warning.patch | 13 +++++++++++++ xmlrpc-c.spec | 8 +++++++- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 xmlrpc-c-format-security-warning.patch diff --git a/xmlrpc-c-format-security-warning.patch b/xmlrpc-c-format-security-warning.patch new file mode 100644 index 0000000..b8feb45 --- /dev/null +++ b/xmlrpc-c-format-security-warning.patch @@ -0,0 +1,13 @@ +diff --git a/src/xmlrpc_server_abyss.c b/src/xmlrpc_server_abyss.c +index 614f64b..998290f 100644 +--- a/src/xmlrpc_server_abyss.c ++++ b/src/xmlrpc_server_abyss.c +@@ -776,7 +776,7 @@ createServer(xmlrpc_env * const envP, + ServerInit2(abyssServerP, &error); + + if (error) { +- xmlrpc_faultf(envP, error); ++ xmlrpc_faultf(envP, "%s", error); + xmlrpc_strfree(error); + } + } diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index 8822001..8ec3d38 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -6,7 +6,7 @@ Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c Version: 1.32.5 -Release: %release_func 1903.svn%svnrev +Release: %release_func 1904.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. License: BSD and MIT @@ -28,6 +28,7 @@ Patch107: xmlrpc-c-uninit-curl.patch Patch108: xmlrpc-c-30x-redirect.patch Patch109: xmlrpc-c-check-vasprintf-return-value.patch Patch110: xmlrpc-c-include-string_int.h.patch +Patch111: xmlrpc-c-format-security-warning.patch BuildRoot: %_tmppath/%name-%version-%release-root @@ -123,6 +124,7 @@ This package contains some handy XML-RPC demo applications. %patch108 -p1 %patch109 -p1 %patch110 -p1 +%patch111 -p1 ## not needed... rm doc/{INSTALL,configure_doc} @@ -242,6 +244,10 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Fri Mar 28 2014 Mikolaj Izdebski - 1.32.5-1904.svn2451 +- Add patch to silence format-security compiler warning +- Resolves: rhbz#1037399 + * Sun Aug 04 2013 Fedora Release Engineering - 1.32.5-1903.svn2451 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild From 68118b90af30d0631265092605da205e53cd3330 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Sun, 8 Jun 2014 01:08:05 -0500 Subject: [PATCH 28/77] - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild --- xmlrpc-c.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index 8ec3d38..8c42349 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -6,7 +6,7 @@ Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c Version: 1.32.5 -Release: %release_func 1904.svn%svnrev +Release: %release_func 1905.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. License: BSD and MIT @@ -244,6 +244,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Sun Jun 08 2014 Fedora Release Engineering - 1.32.5-1905.svn2451 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + * Fri Mar 28 2014 Mikolaj Izdebski - 1.32.5-1904.svn2451 - Add patch to silence format-security compiler warning - Resolves: rhbz#1037399 From 7fb8589d8d8a8c1490b794ea33dcaa7204e79916 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 18 Aug 2014 10:15:30 +0000 Subject: [PATCH 29/77] - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild --- xmlrpc-c.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index 8c42349..7b905ee 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -6,7 +6,7 @@ Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c Version: 1.32.5 -Release: %release_func 1905.svn%svnrev +Release: %release_func 1906.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. License: BSD and MIT @@ -244,6 +244,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Mon Aug 18 2014 Fedora Release Engineering - 1.32.5-1906.svn2451 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + * Sun Jun 08 2014 Fedora Release Engineering - 1.32.5-1905.svn2451 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild From e293c8a88d0be6b01e90fd780bb3a05c0a51e7d7 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Sat, 2 May 2015 18:43:41 +0200 Subject: [PATCH 30/77] Rebuilt for GCC 5 C++11 ABI change --- xmlrpc-c.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index 7b905ee..e5cc4e3 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -6,7 +6,7 @@ Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c Version: 1.32.5 -Release: %release_func 1906.svn%svnrev +Release: %release_func 1907.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. License: BSD and MIT @@ -244,6 +244,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Sat May 02 2015 Kalev Lember - 1.32.5-1907.svn2451 +- Rebuilt for GCC 5 C++11 ABI change + * Mon Aug 18 2014 Fedora Release Engineering - 1.32.5-1906.svn2451 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild From a87a379e51ea13a9ce7be54b04d9965474668abb Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Fri, 19 Jun 2015 04:09:33 +0000 Subject: [PATCH 31/77] - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild --- xmlrpc-c.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index e5cc4e3..f763843 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -6,7 +6,7 @@ Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c Version: 1.32.5 -Release: %release_func 1907.svn%svnrev +Release: %release_func 1908.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. License: BSD and MIT @@ -244,6 +244,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Fri Jun 19 2015 Fedora Release Engineering - 1.32.5-1908.svn2451 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + * Sat May 02 2015 Kalev Lember - 1.32.5-1907.svn2451 - Rebuilt for GCC 5 C++11 ABI change From 9b508d46df6e3ffa789f897e7704a04b355894c6 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 5 Feb 2016 03:36:37 +0000 Subject: [PATCH 32/77] - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild --- xmlrpc-c.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index f763843..f45d172 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -6,7 +6,7 @@ Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c Version: 1.32.5 -Release: %release_func 1908.svn%svnrev +Release: %release_func 1909.svn%svnrev # See COPYING for details. # The Python 1.5.2 license used by a few files is just BSD. License: BSD and MIT @@ -244,6 +244,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Fri Feb 05 2016 Fedora Release Engineering - 1.32.5-1909.svn2451 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + * Fri Jun 19 2015 Fedora Release Engineering - 1.32.5-1908.svn2451 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild From e0d259d27132f58dd58c7a0ea8d05d820772bdcc Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Tue, 16 Feb 2016 08:42:13 +0100 Subject: [PATCH 33/77] Add patch for conversion from int to usnigned char --- xmlrpc-c-int-to-char-conversion.patch | 34 +++++++++++++++++++++++++++ xmlrpc-c.spec | 6 +++++ 2 files changed, 40 insertions(+) create mode 100644 xmlrpc-c-int-to-char-conversion.patch diff --git a/xmlrpc-c-int-to-char-conversion.patch b/xmlrpc-c-int-to-char-conversion.patch new file mode 100644 index 0000000..e396105 --- /dev/null +++ b/xmlrpc-c-int-to-char-conversion.patch @@ -0,0 +1,34 @@ +--- xmlrpc-c-1.32.5/src/cpp/base64.cpp~ 2010-05-21 00:52:29.000000000 +0200 ++++ xmlrpc-c-1.32.5/src/cpp/base64.cpp 2016-02-16 08:37:43.874552656 +0100 +@@ -15,14 +15,14 @@ + namespace { + + char const table_a2b_base64[] = { +- -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, +- -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, +- -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,62, -1,-1,-1,63, +- 52,53,54,55, 56,57,58,59, 60,61,-1,-1, -1, 0,-1,-1, /* Note PAD->0 */ +- -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11,12,13,14, +- 15,16,17,18, 19,20,21,22, 23,24,25,-1, -1,-1,-1,-1, +- -1,26,27,28, 29,30,31,32, 33,34,35,36, 37,38,39,40, +- 41,42,43,44, 45,46,47,48, 49,50,51,-1, -1,-1,-1,-1 ++ 64,64,64,64, 64,64,64,64, 64,64,64,64, 64,64,64,64, ++ 64,64,64,64, 64,64,64,64, 64,64,64,64, 64,64,64,64, ++ 64,64,64,64, 64,64,64,64, 64,64,64,62, 64,64,64,63, ++ 52,53,54,55, 56,57,58,59, 60,61,64,64, 64, 0,64,64, /* Note PAD->0 */ ++ 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11,12,13,14, ++ 15,16,17,18, 19,20,21,22, 23,24,25,64, 64,64,64,64, ++ 64,26,27,28, 29,30,31,32, 33,34,35,36, 37,38,39,40, ++ 41,42,43,44, 45,46,47,48, 49,50,51,64, 64,64,64,64 + }; + + char const base64Pad('='); +@@ -210,7 +210,7 @@ + buffer.discardResidue(); + } else { + unsigned int const tableIndex(thisChar); +- if (table_a2b_base64[tableIndex] == -1) ++ if (table_a2b_base64[tableIndex] == 64) + throwf("Contains non-base64 character " + "with ASCII code 0x%02x", thisChar); + diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index f45d172..8b9dffc 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -29,6 +29,7 @@ Patch108: xmlrpc-c-30x-redirect.patch Patch109: xmlrpc-c-check-vasprintf-return-value.patch Patch110: xmlrpc-c-include-string_int.h.patch Patch111: xmlrpc-c-format-security-warning.patch +Patch112: xmlrpc-c-int-to-char-conversion.patch BuildRoot: %_tmppath/%name-%version-%release-root @@ -125,6 +126,7 @@ This package contains some handy XML-RPC demo applications. %patch109 -p1 %patch110 -p1 %patch111 -p1 +%patch112 -p1 ## not needed... rm doc/{INSTALL,configure_doc} @@ -244,6 +246,10 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Tue Feb 16 2016 Mikolaj Izdebski - 1.32.5-1909.svn2451 +- Add patch for conversion from int to usnigned char +- Resolves: rhbz#1308254 + * Fri Feb 05 2016 Fedora Release Engineering - 1.32.5-1909.svn2451 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild From 5c1623f34be7a86ae01a4debe478b6a2078cb79d Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Sun, 18 Dec 2016 12:54:48 +0100 Subject: [PATCH 34/77] Update to 1.48.0 Signed-off-by: Igor Gnatenko --- .gitignore | 2 + 0001-add-meson-buildsystem-definitions.patch | 1604 +++++++++++++ ...pc_server_abyss-use-va_args-properly.patch | 34 + ...2-Use-proper-datatypes-for-long-long.patch | 40 +- ...es.private-in-pkgconfig-and-reduce-n.patch | 178 ++ ...patch => 0003-allow-30x-redirections.patch | 12 +- 0003-chmod-x-xml-rpc-api2txt.patch | 19 + dfs.cc | 104 - dso-fixup | 57 - lastver | 1 - sources | 2 +- verinfo | 2 - xmlrpc-c-cmake.patch | 2128 ----------------- xmlrpc-c-format-security-warning.patch | 13 - xmlrpc-c-include-string_int.h.patch | 32 - xmlrpc-c-int-to-char-conversion.patch | 34 - xmlrpc-c-uninit-curl.patch | 28 - xmlrpc-c.spec | 247 +- 18 files changed, 1955 insertions(+), 2582 deletions(-) create mode 100644 0001-add-meson-buildsystem-definitions.patch create mode 100644 0001-xmlrpc_server_abyss-use-va_args-properly.patch rename xmlrpc-c-longlong.patch => 0002-Use-proper-datatypes-for-long-long.patch (71%) create mode 100644 0002-build-use-Requires.private-in-pkgconfig-and-reduce-n.patch rename xmlrpc-c-30x-redirect.patch => 0003-allow-30x-redirections.patch (76%) create mode 100644 0003-chmod-x-xml-rpc-api2txt.patch delete mode 100644 dfs.cc delete mode 100755 dso-fixup delete mode 100644 lastver delete mode 100644 verinfo delete mode 100644 xmlrpc-c-cmake.patch delete mode 100644 xmlrpc-c-format-security-warning.patch delete mode 100644 xmlrpc-c-include-string_int.h.patch delete mode 100644 xmlrpc-c-int-to-char-conversion.patch delete mode 100644 xmlrpc-c-uninit-curl.patch diff --git a/.gitignore b/.gitignore index 3a36f38..bace32d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ /xmlrpc-c-1.32.5.tar.xz +/xmlrpc-c-1.47.1.tar.xz +/xmlrpc-c-1.48.0.tar.xz diff --git a/0001-add-meson-buildsystem-definitions.patch b/0001-add-meson-buildsystem-definitions.patch new file mode 100644 index 0000000..2882e1a --- /dev/null +++ b/0001-add-meson-buildsystem-definitions.patch @@ -0,0 +1,1604 @@ +From 4eba7df6c51307be0383c6428950cabd0733a47b Mon Sep 17 00:00:00 2001 +From: Igor Gnatenko +Date: Sun, 18 Dec 2016 10:24:31 +0100 +Subject: [PATCH 1/3] add meson buildsystem definitions + +Signed-off-by: Igor Gnatenko +--- + include/meson.build | 3 + + include/xmlrpc-c/config.h.in | 41 ++++++++ + include/xmlrpc-c/lnsfr.sh | 9 ++ + include/xmlrpc-c/meson.build | 87 +++++++++++++++ + lib/abyss++/meson.build | 42 ++++++++ + lib/abyss/meson.build | 1 + + lib/abyss/src/meson.build | 66 ++++++++++++ + lib/curl_transport/meson.build | 16 +++ + lib/expat/gennmtab/meson.build | 4 + + lib/expat/meson.build | 15 +++ + lib/expat/xmlparse/meson.build | 21 ++++ + lib/expat/xmltok/meson.build | 32 ++++++ + lib/libutil++/meson.build | 28 +++++ + lib/libutil/meson.build | 41 ++++++++ + lib/meson.build | 27 +++++ + lib/openssl/meson.build | 27 +++++ + lib/util/meson.build | 20 ++++ + meson.build | 209 +++++++++++++++++++++++++++++++++++++ + meson_options.txt | 12 +++ + src/cpp/meson.build | 199 +++++++++++++++++++++++++++++++++++ + src/meson.build | 189 +++++++++++++++++++++++++++++++++ + tools/lib/meson.build | 5 + + tools/meson.build | 14 +++ + tools/xml-rpc-api2cpp/meson.build | 19 ++++ + tools/xml-rpc-api2txt/meson.build | 2 + + tools/xml/meson.build | 15 +++ + tools/xmlrpc/meson.build | 20 ++++ + tools/xmlrpc_cpp_proxy/meson.build | 18 ++++ + tools/xmlrpc_pstream/meson.build | 19 ++++ + tools/xmlrpc_transport/meson.build | 17 +++ + transport_config.h.in | 4 + + xmlrpc-c-config | 114 ++++++++++++++++++++ + 32 files changed, 1336 insertions(+) + create mode 100644 include/meson.build + create mode 100644 include/xmlrpc-c/config.h.in + create mode 100755 include/xmlrpc-c/lnsfr.sh + create mode 100644 include/xmlrpc-c/meson.build + create mode 100644 lib/abyss++/meson.build + create mode 100644 lib/abyss/meson.build + create mode 100644 lib/abyss/src/meson.build + create mode 100644 lib/curl_transport/meson.build + create mode 100644 lib/expat/gennmtab/meson.build + create mode 100644 lib/expat/meson.build + create mode 100644 lib/expat/xmlparse/meson.build + create mode 100644 lib/expat/xmltok/meson.build + create mode 100644 lib/libutil++/meson.build + create mode 100644 lib/libutil/meson.build + create mode 100644 lib/meson.build + create mode 100644 lib/openssl/meson.build + create mode 100644 lib/util/meson.build + create mode 100644 meson.build + create mode 100644 meson_options.txt + create mode 100644 src/cpp/meson.build + create mode 100644 src/meson.build + create mode 100644 tools/lib/meson.build + create mode 100644 tools/meson.build + create mode 100644 tools/xml-rpc-api2cpp/meson.build + create mode 100644 tools/xml-rpc-api2txt/meson.build + create mode 100644 tools/xml/meson.build + create mode 100644 tools/xmlrpc/meson.build + create mode 100644 tools/xmlrpc_cpp_proxy/meson.build + create mode 100644 tools/xmlrpc_pstream/meson.build + create mode 100644 tools/xmlrpc_transport/meson.build + create mode 100644 transport_config.h.in + create mode 100755 xmlrpc-c-config + +diff --git a/include/meson.build b/include/meson.build +new file mode 100644 +index 00000000..ec0964c0 +--- /dev/null ++++ b/include/meson.build +@@ -0,0 +1,3 @@ ++hdr_incdir = include_directories('.') ++ ++subdir('xmlrpc-c') +diff --git a/include/xmlrpc-c/config.h.in b/include/xmlrpc-c/config.h.in +new file mode 100644 +index 00000000..e8a633e7 +--- /dev/null ++++ b/include/xmlrpc-c/config.h.in +@@ -0,0 +1,41 @@ ++#ifndef XMLRPC_C_CONFIG_H_INCULDED ++#define XMLRPC_C_CONFIG_H_INCLUDED ++ ++/* This file, part of XML-RPC For C/C++, is meant to ++ define characteristics of this particular installation ++ that the other header files need in ++ order to compile correctly when #included in Xmlrpc-c ++ user code. ++ ++ Those header files #include this one. ++*/ ++#define XMLRPC_HAVE_WCHAR @HAVE_WCHAR_H_DEFINE@ ++#ifdef _WIN32 ++ /* SOCKET is a type defined by . Anyone who ++ uses XMLRPC_SOCKET on a WIN32 system must #include ++ ++ */ ++ #define XMLRPC_SOCKET SOCKET ++ #define XMLRPC_HAVE_TIMEVAL 0 ++ #define XMLRPC_HAVE_TIMESPEC 0 ++ #define XMLRPC_HAVE_PTHREAD 0 ++ #define XMLRPC_HAVE_WINTHREAD 1 ++#else ++ #define XMLRPC_SOCKET int ++ #define XMLRPC_HAVE_TIMEVAL 1 ++ #define XMLRPC_HAVE_TIMESPEC 1 ++ #define XMLRPC_HAVE_PTHREAD 1 ++ #define XMLRPC_HAVE_WINTHREAD 0 ++#endif ++ ++#if defined(_MSC_VER) ++ /* Newer MSVC has long long, but MSVC 6 does not */ ++ #define XMLRPC_INT64 __int64 ++ #define XMLRPC_PRId64 "I64" ++ #define XMLRPC_INT32 __int32 ++#else ++ #define XMLRPC_INT64 long long ++ #define XMLRPC_PRId64 "lld" ++ #define XMLRPC_INT32 int ++#endif ++#endif +diff --git a/include/xmlrpc-c/lnsfr.sh b/include/xmlrpc-c/lnsfr.sh +new file mode 100755 +index 00000000..83f231b7 +--- /dev/null ++++ b/include/xmlrpc-c/lnsfr.sh +@@ -0,0 +1,9 @@ ++#!/bin/sh -efu ++ ++if [ "$#" != 2 ]; then ++ exit 1 ++fi ++ ++tgt="$1"; shift ++src="$1"; shift ++ln -sfr "${DESTDIR}${tgt}" "${DESTDIR}${src}" +diff --git a/include/xmlrpc-c/meson.build b/include/xmlrpc-c/meson.build +new file mode 100644 +index 00000000..2fe3cb90 +--- /dev/null ++++ b/include/xmlrpc-c/meson.build +@@ -0,0 +1,87 @@ ++config_h = configure_file(input : 'config.h.in', ++ output : 'config.h', ++ configuration : conf) ++ ++compat_links = [ ++ [ 'oldxmlrpc.h', 'xmlrpc.h' ], ++ [ 'server.h', 'xmlrpc_server.h' ], ++ [ 'server_abyss.h', 'xmlrpc_abyss.h' ], ++ [ 'server_w32httpsys.h', 'xmlrpc_server_w32httpsys.h' ], ++] ++ ++hdrs = [ ++ join_paths(meson.current_build_dir(), 'config.h'), # config_h, ++ 'inttypes.h', ++ 'c_util.h', ++ 'util.h', ++ 'base.h', ++ 'json.h', ++ 'abyss.h', ++ 'abyss_unixsock.h', ++ 'abyss_winsock.h', ++ 'server.h', ++ 'server_abyss.h', ++ 'server_w32httpsys.h', ++ 'oldxmlrpc.h', ++] ++if get_option('cplusplus') ++ hdrs += [ ++ 'oldcppwrapper.hpp', ++ 'girerr.hpp', ++ 'girmem.hpp', ++ 'base.hpp', ++ 'base64.hpp', ++ 'timeout.hpp', ++ 'xml.hpp', ++ 'registry.hpp', ++ 'server_abyss.hpp', ++ 'packetsocket.hpp', ++ 'server_pstream.hpp', ++ 'AbyssEnvironment.hpp', ++ 'AbyssServer.hpp', ++ 'abyss_reqhandler_xmlrpc.hpp', ++ 'AbyssChanSwitch.hpp', ++ 'AbyssChanSwitchUnix.hpp', ++ ] ++ compat_links += [ ++ ['oldcppwrapper.hpp', 'XmlRpcCpp.h'], ++ ] ++endif ++if build_client ++ hdrs += [ ++ 'client.h', ++ 'transport.h', ++ 'client_global.h', ++ ] ++ compat_links += [ ++ ['client.h', 'xmlrpc_client.h'], ++ ] ++ if get_option('cplusplus') ++ hdrs += [ ++ 'client.hpp', ++ 'client_transport.hpp', ++ 'client_simple.hpp', ++ ] ++ endif ++endif ++if get_option('cgi-server') ++ hdrs += [ ++ 'server_cgi.h', ++ ] ++ compat_links += [ ++ ['server_cgi.h', 'xmlrpc_cgi.h'], ++ ] ++endif ++if openssl.found() ++ hdrs += [ ++ 'openssl_thread.h', ++ ] ++endif ++ ++install_headers(hdrs, subdir : meson.project_name()) ++# Install old names of header files for backward compatibility ++foreach compat_link : compat_links ++ tgt = join_paths(get_option('prefix'), get_option('includedir'), meson.project_name(), compat_link[0]) ++ src = join_paths(get_option('prefix'), get_option('includedir'), compat_link[1]) ++ meson.add_install_script('lnsfr.sh', tgt, src) ++endforeach +diff --git a/lib/abyss++/meson.build b/lib/abyss++/meson.build +new file mode 100644 +index 00000000..01aa2449 +--- /dev/null ++++ b/lib/abyss++/meson.build +@@ -0,0 +1,42 @@ ++if host_machine.system() == 'windows' ++ abysspp_chan_switch = 'AbyssChanSwitchWin.cpp' ++else ++ abysspp_chan_switch = ['AbyssChanSwitchUnix.cpp'] ++ if openssl.found() ++ abysspp_chan_switch += ['AbyssChanSwitchOpenSsl.cpp'] ++ endif ++endif ++ ++libxmlrpc_abysspp = library( ++ 'xmlrpc_abyss++', ++ sources : [ ++ 'AbyssServer.cpp', ++ 'AbyssChanSwitch.cpp', ++ 'AbyssEnvironment.cpp', ++ abysspp_chan_switch, ++ ], ++ include_directories : [ ++ top_incdir, ++ hdr_incdir, ++ util_incdir, ++ ], ++ link_with : [ ++ libxmlrpc_abyss, ++ libxmlrpc_utilpp, ++ ], ++ dependencies : [ ++ socket, ++ ], ++ soversion : 8, ++ version : '8.@0@'.format(version_minor), ++ install : true, ++) ++ ++pkgg.generate( ++ name : 'xmlrpc_abyss++', ++ description : 'Xmlrpc-c Abyss HTTP C++ library', ++ version : meson.project_version(), ++ requires : ['xmlrpc_abyss', 'xmlrpc_util++'], ++ libraries : libxmlrpc_abysspp, ++ install : true, ++) +diff --git a/lib/abyss/meson.build b/lib/abyss/meson.build +new file mode 100644 +index 00000000..9537275d +--- /dev/null ++++ b/lib/abyss/meson.build +@@ -0,0 +1 @@ ++subdir('src') +diff --git a/lib/abyss/src/meson.build b/lib/abyss/src/meson.build +new file mode 100644 +index 00000000..747e3ac4 +--- /dev/null ++++ b/lib/abyss/src/meson.build +@@ -0,0 +1,66 @@ ++abyss_deps = [socket] ++if host_machine.system() == 'windows' ++ abyss_socket = 'socket_win.c' ++ abyss_thread = 'thread_windows.c' ++ abyss_deps += [threads] ++else ++ abyss_socket = ['socket_unix.c'] ++ if openssl.found() ++ abyss_socket += ['socket_openssl.c'] ++ abyss_deps += [openssl] ++ endif ++ abyss_socket += ['sockutil.c'] ++ ++ if get_option('abyss-threads') ++ abyss_thread = 'thread_pthread.c' ++ abyss_deps += [threads] ++ else ++ abyss_thread = 'thread_fork.c' ++ endif ++endif ++ ++libxmlrpc_abyss = library( ++ 'xmlrpc_abyss', ++ sources : [ ++ 'channel.c', ++ 'chanswitch.c', ++ 'conf.c', ++ 'conn.c', ++ 'data.c', ++ 'date.c', ++ 'file.c', ++ 'handler.c', ++ 'http.c', ++ 'init.c', ++ 'response.c', ++ 'server.c', ++ 'session.c', ++ 'sessionReadRequest.c', ++ 'socket.c', ++ abyss_socket, ++ 'token.c', ++ abyss_thread, ++ 'trace.c', ++ ], ++ include_directories : [ ++ top_incdir, ++ hdr_incdir, ++ util_incdir, ++ ], ++ link_with : [ ++ libxmlrpc_util, ++ ], ++ dependencies : abyss_deps, ++ soversion : 3, ++ version : '3.@0@'.format(version_minor), ++ install : true, ++) ++ ++pkgg.generate( ++ name : 'xmlrpc_abyss', ++ description : 'Xmlrpc-c Abyss HTTP C library', ++ version : meson.project_version(), ++ libraries : libxmlrpc_abyss, ++ requires : 'xmlrpc_util', ++ install : true, ++) +diff --git a/lib/curl_transport/meson.build b/lib/curl_transport/meson.build +new file mode 100644 +index 00000000..f5ff3040 +--- /dev/null ++++ b/lib/curl_transport/meson.build +@@ -0,0 +1,16 @@ ++libcurl = dependency('libcurl') ++if libcurl.version().version_compare('<7.16.0') ++ xmlrpc_curl_cargs = ['-DNEED_CURL_TYPES_H'] ++else ++ xmlrpc_curl_cargs = [] ++endif ++xmlrpc_curl_transport = declare_dependency( ++ include_directories : include_directories('.'), ++ sources : [ ++ 'xmlrpc_curl_transport.c', ++ 'curltransaction.c', ++ 'curlmulti.c', ++ ], ++ compile_args : xmlrpc_curl_cargs, ++ dependencies : libcurl, ++) +diff --git a/lib/expat/gennmtab/meson.build b/lib/expat/gennmtab/meson.build +new file mode 100644 +index 00000000..94764c22 +--- /dev/null ++++ b/lib/expat/gennmtab/meson.build +@@ -0,0 +1,4 @@ ++gennmtab = executable( ++ 'gennmtab', 'gennmtab.c', ++ include_directories : top_incdir, ++) +diff --git a/lib/expat/meson.build b/lib/expat/meson.build +new file mode 100644 +index 00000000..893f36d6 +--- /dev/null ++++ b/lib/expat/meson.build +@@ -0,0 +1,15 @@ ++subdir('gennmtab') ++subdir('xmltok') ++subdir('xmlparse') ++ ++pkgg.generate( ++ name : 'xmlrpc_expat', ++ description : 'Xmlrpc-c XML parsing library', ++ version : meson.project_version(), ++ requires: 'xmlrpc_util', ++ libraries : [ ++ libxmlrpc_xmlparse, ++ libxmlrpc_xmltok, ++ ], ++ install : true, ++) +diff --git a/lib/expat/xmlparse/meson.build b/lib/expat/xmlparse/meson.build +new file mode 100644 +index 00000000..39c0bf26 +--- /dev/null ++++ b/lib/expat/xmlparse/meson.build +@@ -0,0 +1,21 @@ ++xmlparse_incdir = include_directories('.') ++ ++libxmlrpc_xmlparse = library( ++ 'xmlrpc_xmlparse', ++ sources : [ ++ 'xmlparse.c', ++ ], ++ include_directories : [ ++ top_incdir, ++ hdr_incdir, ++ util_incdir, ++ xmltok_incdir, ++ ], ++ link_with : [ ++ libxmlrpc_util, ++ libxmlrpc_xmltok, ++ ], ++ soversion : '3', ++ version : '3.@0@'.format(version_minor), ++ install : true, ++) +diff --git a/lib/expat/xmltok/meson.build b/lib/expat/xmltok/meson.build +new file mode 100644 +index 00000000..6629719c +--- /dev/null ++++ b/lib/expat/xmltok/meson.build +@@ -0,0 +1,32 @@ ++nametab = custom_target( ++ 'nametab.h', ++ output : 'nametab.h', ++ command : gennmtab, ++ capture : true, ++) ++ ++if host_machine.endian() == 'big' ++ xmltok_endian_flag = '-DXML_BYTE_ORDER=21' ++else ++ xmltok_endian_flag = '-DXML_BYTE_ORDER=12' ++endif ++ ++libxmlrpc_xmltok = library( ++ 'xmlrpc_xmltok', ++ sources : [ ++ 'xmltok.c', ++ 'xmlrole.c', ++ nametab, ++ ], ++ include_directories : [ ++ top_incdir, ++ hdr_incdir, ++ util_incdir, ++ ], ++ c_args : [xmltok_endian_flag], ++ soversion : '3', ++ version : '3.@0@'.format(version_minor), ++ install : true, ++) ++ ++xmltok_incdir = include_directories('.') +diff --git a/lib/libutil++/meson.build b/lib/libutil++/meson.build +new file mode 100644 +index 00000000..2463ec3d +--- /dev/null ++++ b/lib/libutil++/meson.build +@@ -0,0 +1,28 @@ ++libxmlrpc_utilpp = library( ++ 'xmlrpc_util++', ++ sources : [ ++ 'Lock.cpp', ++ 'base64.cpp', ++ 'env_wrap.cpp', ++ 'girerr.cpp', ++ 'girmem.cpp', ++ ], ++ include_directories : [ ++ top_incdir, ++ hdr_incdir, ++ util_incdir, ++ ], ++ link_with : libxmlrpc_util, ++ soversion : '8', ++ version : '8.@0@'.format(version_minor), ++ install : true, ++) ++ ++pkgg.generate( ++ name : 'xmlrpc_util++', ++ description : 'Xmlrpc-c C++ utility functions library', ++ version : meson.project_version(), ++ requires : 'xmlrpc_util', ++ libraries : libxmlrpc_utilpp, ++ install : true, ++) +diff --git a/lib/libutil/meson.build b/lib/libutil/meson.build +new file mode 100644 +index 00000000..bb1cc67d +--- /dev/null ++++ b/lib/libutil/meson.build +@@ -0,0 +1,41 @@ ++# FIXME: it's default already to 1 in xmlrpc_config.h ++util_lock_pthread = ['lock_pthread.c'] ++# TODO: handle mscvrt.dll properly ++util_lock_windows = [] # lock_windows.c ++ ++libxmlrpc_util = library( ++ 'xmlrpc_util', ++ sources : [ ++ 'asprintf.c', ++ 'base64.c', ++ 'error.c', ++ 'lock_platform.c', ++ util_lock_pthread, ++ util_lock_windows, ++ 'lock_none.c', ++ 'make_printable.c', ++ 'memblock.c', ++ 'mempool.c', ++ 'select.c', ++ 'sleep.c', ++ 'string_number.c', ++ 'time.c', ++ 'utf8.c', ++ ], ++ include_directories : [ ++ top_incdir, ++ hdr_incdir, ++ util_incdir, ++ ], ++ soversion : 4, ++ version : '4.@0@'.format(version_minor), ++ install : true, ++) ++ ++pkgg.generate( ++ name : 'xmlrpc_util', ++ description : 'Xmlrpc-c utility functions library', ++ version : meson.project_version(), ++ libraries : libxmlrpc_util, ++ install : true, ++) +diff --git a/lib/meson.build b/lib/meson.build +new file mode 100644 +index 00000000..e78c1f83 +--- /dev/null ++++ b/lib/meson.build +@@ -0,0 +1,27 @@ ++subdir('util') ++subdir('libutil') ++if get_option('cplusplus') ++ subdir('libutil++') ++endif ++if get_option('abyss-server') ++ subdir('abyss') ++ if get_option('cplusplus') ++ subdir('abyss++') ++ endif ++endif ++if get_option('wininet-client') ++ subdir('wininet_transport') ++endif ++if get_option('curl-client') ++ subdir('curl_transport') ++endif ++if get_option('libwww-client') ++ subdir('libwww_transport') ++endif ++if not get_option('libxml2-backend') ++ subdir('expat') ++endif ++ ++if openssl.found() ++ subdir('openssl') ++endif +diff --git a/lib/openssl/meson.build b/lib/openssl/meson.build +new file mode 100644 +index 00000000..f83f57ac +--- /dev/null ++++ b/lib/openssl/meson.build +@@ -0,0 +1,27 @@ ++libxmlrpc_openssl = library( ++ 'xmlrpc_openssl', ++ sources : [ ++ 'xmlrpc_openssl_thread.c', ++ ], ++ include_directories : [ ++ top_incdir, ++ hdr_incdir, ++ util_incdir, ++ ], ++ link_with : [ ++ libxmlrpc_util, ++ ], ++ dependencies : openssl, ++ soversion : '1', ++ version : '1.@0@'.format(version_minor), ++ install : true, ++) ++ ++pkgg.generate( ++ name : 'xmlrpc_openssl', ++ description : 'Openssl convenience function from Xmlrpc-c package', ++ version : meson.project_version(), ++ requires : 'xmlrpc_util', ++ libraries : libxmlrpc_openssl, ++ install : true, ++) +diff --git a/lib/util/meson.build b/lib/util/meson.build +new file mode 100644 +index 00000000..4cae4926 +--- /dev/null ++++ b/lib/util/meson.build +@@ -0,0 +1,20 @@ ++util_incdir = include_directories('include') ++util_casprintf_dep = declare_dependency( ++ include_directories : util_incdir, ++ sources : 'casprintf.c', ++) ++util_dep = declare_dependency( ++ dependencies : util_casprintf_dep, ++ sources : [ ++ 'cmdline_parser.c', ++ 'getoptx.c', ++ 'string_parser.c', ++ 'stripcaseeq.c', ++ ], ++) ++if get_option('cplusplus') ++ util_cpp_dep = declare_dependency( ++ dependencies : util_dep, ++ sources : 'cmdline_parser_cpp.cpp', ++ ) ++endif +diff --git a/meson.build b/meson.build +new file mode 100644 +index 00000000..028a5791 +--- /dev/null ++++ b/meson.build +@@ -0,0 +1,209 @@ ++project('xmlrpc-c', 'c', ++ version : '1.47.99', ++ default_options : [ ++ 'b_asneeded=true', ++ 'b_lundef=true', ++ 'warning_level=1', ++ ], ++ meson_version : '>=0.36.0') ++ ++version_array = meson.project_version().split('.') ++version_major = version_array[0].to_int() ++version_minor = version_array[1].to_int() ++version_point = version_array[2].to_int() ++ ++# version.h ++version_conf = configuration_data() ++version_conf.set_quoted('XMLRPC_C_VERSION', meson.project_version()) ++version_conf.set('XMLRPC_VERSION_MAJOR', version_major) ++version_conf.set('XMLRPC_VERSION_MINOR', version_minor) ++version_conf.set('XMLRPC_VERSION_POINT', version_point) ++configure_file(output : 'version.h', configuration : version_conf) ++ ++if get_option('wininet-client') or get_option('libwww-client') ++ error('only curl-client is implemented yet') ++endif ++ ++if get_option('cplusplus') ++ add_languages('cpp') ++endif ++ ++cc = meson.get_compiler('c') ++cxx = meson.get_compiler('cpp') ++ ++optflags = [ ++ '-Wno-uninitialized', ++ '-Wundef', ++ '-Wno-unknown-pragmas', ++] ++cflags = [ ++ '-Wmissing-declarations', ++ '-Wstrict-prototypes', ++ '-Wmissing-prototypes', ++ '-Wimplicit', ++] + optflags ++cxxflags = [ ++ '-Wsynth', ++] + optflags ++foreach cflag : cflags ++ if cc.has_argument(cflag) ++ add_project_arguments(cflag, language : 'c') ++ endif ++endforeach ++foreach cxxflag : cxxflags ++ if cxx.has_argument(cxxflag) ++ add_project_arguments(cxxflag, language : 'cpp') ++ endif ++endforeach ++ ++pkgg = import('pkgconfig') ++ ++if not cc.has_function('vsnprintf') ++ error('your C library does not provide vsnprintf') ++endif ++if not cc.has_header('stdarg.h') ++ error('stdarg.h is required to build this library') ++endif ++ ++conf = configuration_data() ++ ++check_headers = [ ++ 'wchar.h', ++ 'sys/filio.h', # Needed by Abyss on Solaris ++ 'sys/ioctl.h', # Needed by Abyss on Solaris ++ 'sys/select.h', ++] ++check_functions = [ ++ 'wcsncmp', # Unicode function needed by test suites ++ 'setgroups', # CygWin doesn't provide setgroups ++ 'asprintf', ++ 'setenv', ++ 'strtoll', ++ 'strtoull', ++ 'strtoq', ++ 'strtouq', ++ '__strtoll', ++ '__strtoull', ++ '_strtoui64', ++ 'pselect', # uclib doesn't have pselect ++ 'gettimeofday', # Windows doesn't have gettimeofday ++ 'localtime_r', # Windows doesn't have localtime_r ++ 'gmtime_r', # Windows doesn't have gmtime_r ++ 'strcasecmp', # Windows doesn't have strcasecmp ++ 'stricmp', ++ '_stricmp', ++] ++ ++foreach hdr : check_headers ++ if cc.has_header(hdr) ++ conf.set('HAVE_@0@_DEFINE'.format(hdr.to_upper().underscorify()), 1) ++ else ++ conf.set('HAVE_@0@_DEFINE'.format(hdr.to_upper().underscorify()), 0) ++ endif ++endforeach ++foreach func : check_functions ++ if cc.has_function(func) ++ conf.set('HAVE_@0@_DEFINE'.format(func.to_upper()), 1) ++ else ++ conf.set('HAVE_@0@_DEFINE'.format(func.to_upper()), 0) ++ endif ++endforeach ++ ++if not cc.compiles(''' ++#include ++ ++int ++main () ++{ ++ va_list list1, list2; ++ list1 = list2; ++ return 0; ++} ++ ''') ++ conf.set('VA_LIST_IS_ARRAY_DEFINE', 1) ++else ++ conf.set('VA_LIST_IS_ARRAY_DEFINE', 0) ++endif ++ ++if cc.compiles('int x __attribute__((__unused__));') ++ conf.set('ATTR_UNUSED', '__attribute__((__unused__))') ++else ++ conf.set('ATTR_UNUSED', '') ++endif ++ ++if host_machine.system() == 'windows' ++ conf.set('DIRECTORY_SEPARATOR', '\\') ++else ++ conf.set('DIRECTORY_SEPARATOR', '/') ++endif ++ ++openssl = dependency('openssl', required : false) ++if openssl.found() ++ conf.set('HAVE_OPENSSL_DEFINE', 1) ++else ++ conf.set('HAVE_OPENSSL_DEFINE', 0) ++endif ++ ++if get_option('libwww-ssl') ++ conf.set('HAVE_LIBWWW_SSL_DEFINE', 1) ++else ++ conf.set('HAVE_LIBWWW_SSL_DEFINE', 0) ++endif ++ ++configure_file(input : 'xmlrpc_config.h.in', output : 'xmlrpc_config.h', configuration : conf) ++ ++ncurses = cc.find_library('ncurses', required : false) ++readline = cc.find_library('readline', required : false) ++ ++build_xmlrpc_pstream = false ++ ++if not get_option('wininet-client') and not get_option('curl-client') and not get_option('libwww-client') ++ build_client = false ++ build_tools = false ++ message('We are not building any client XML transport, therefore WE WILL NOT BUILD THE CLIENT LIBRARY') ++else ++ build_client = true ++ if ncurses.found() and readline.found() ++ build_xmlrpc_pstream = true ++ endif ++ build_tools = true ++ # transport_config.h ++ transport_conf = configuration_data() ++ if get_option('wininet-client') ++ transport_conf.set('MUST_BUILD_WININET_CLIENT', 1) ++ transport_conf.set_quoted('XMLRPC_DEFAULT_TRANSPORT', 'wininet') ++ else ++ transport_conf.set('MUST_BUILD_WININET_CLIENT', 0) ++ endif ++ if get_option('curl-client') ++ transport_conf.set('MUST_BUILD_CURL_CLIENT', 1) ++ transport_conf.set_quoted('XMLRPC_DEFAULT_TRANSPORT', 'curl') ++ else ++ transport_conf.set('MUST_BUILD_CURL_CLIENT', 0) ++ endif ++ if get_option('libwww-client') ++ transport_conf.set('MUST_BUILD_LIBWWW_CLIENT', 1) ++ transport_conf.set_quoted('XMLRPC_DEFAULT_TRANSPORT', 'libwww') ++ else ++ transport_conf.set('MUST_BUILD_LIBWWW_CLIENT', 0) ++ endif ++ configure_file(input : 'transport_config.h.in', output : 'transport_config.h', configuration : transport_conf) ++endif ++ ++threads = dependency('threads') ++socket = cc.find_library('socket', required : false) ++ ++if get_option('libxml2-backend') ++ libxml2 = dependency('libxml-2.0') ++endif ++ ++top_incdir = include_directories('.') ++ ++subdir('include') ++subdir('lib') ++subdir('src') ++if build_tools ++ subdir('tools') ++endif ++ ++install_data('xmlrpc-c-config', install_dir : get_option('bindir')) +diff --git a/meson_options.txt b/meson_options.txt +new file mode 100644 +index 00000000..822e91e7 +--- /dev/null ++++ b/meson_options.txt +@@ -0,0 +1,12 @@ ++option('wininet-client', type : 'boolean', value : false, description : 'Build the Wininet client XML transport') ++option('curl-client', type : 'boolean', value : true, description : 'Build the Curl client XML transport') ++option('libwww-client', type : 'boolean', value : false, description : 'Build the Libwww client XML transport') ++ ++option('abyss-server', type : 'boolean', value : true, description : 'Build the Abyss server module') ++option('abyss-threads', type: 'boolean', value : true, description : 'Use fork in Abyss instead of pthreads') ++option('cgi-server', type : 'boolean', value : true, description : 'Build the CGI server module') ++ ++option('cplusplus', type : 'boolean', value : true, description : 'Build the C++ wrapper classes or tools') ++ ++option('libwww-ssl', type : 'boolean', value : false, description : 'Use SSL with libwww') ++option('libxml2-backend', type : 'boolean', value : false, description : 'Use libxml2 instead of built-in expat') +diff --git a/src/cpp/meson.build b/src/cpp/meson.build +new file mode 100644 +index 00000000..68d6ac66 +--- /dev/null ++++ b/src/cpp/meson.build +@@ -0,0 +1,199 @@ ++libxmlrpc_cpp = library( ++ 'xmlrpc_cpp', ++ sources : [ ++ 'XmlRpcCpp.cpp', ++ ], ++ include_directories : [ ++ hdr_incdir, ++ ], ++ link_with : [ ++ libxmlrpc, ++ libxmlrpc_util, ++ libxmlrpc_server, ++ ], ++ soversion : 8, ++ version : '8.@0@'.format(version_minor), ++ install : true, ++) ++ ++libxmlrpcpp = library( ++ 'xmlrpc++', ++ sources : [ ++ 'fault.cpp', ++ 'global.cpp', ++ 'outcome.cpp', ++ 'param_list.cpp', ++ 'value.cpp', ++ 'xml.cpp', ++ ], ++ include_directories : [ ++ top_incdir, ++ hdr_incdir, ++ util_incdir, ++ ], ++ link_with : [ ++ libxmlrpc, ++ libxmlrpc_utilpp, ++ ], ++ soversion : 8, ++ version : '8.@0@'.format(version_minor), ++ install : true, ++) ++pkgg.generate( ++ name : 'xmlrpc++', ++ description : 'Xmlrpc-c basic XML-RPC C++ library', ++ version : meson.project_version(), ++ requires : ['xmlrpc', 'xmlrpc_util'], ++ libraries : libxmlrpcpp, ++ install : true, ++) ++ ++libxmlrpc_serverpp = library( ++ 'xmlrpc_server++', ++ sources : [ ++ 'registry.cpp', ++ ], ++ include_directories : [ ++ hdr_incdir, ++ ], ++ link_with : [ ++ libxmlrpcpp, ++ libxmlrpc_server, ++ ], ++ soversion : 8, ++ version : '8.@0@'.format(version_minor), ++ install : true, ++) ++pkgg.generate( ++ name : 'xmlrpc_server++', ++ description : 'Xmlrpc-c XML-RPC server C++ library', ++ version : meson.project_version(), ++ requires : ['xmlrpc++', 'xmlrpc', 'xmlrpc_server', 'xmlrpc_util++', 'xmlrpc_util'], ++ libraries : libxmlrpc_serverpp, ++ install : true, ++) ++ ++if get_option('abyss-server') ++ libxmlrpc_server_abysspp = library( ++ 'xmlrpc_server_abyss++', ++ sources : [ ++ 'server_abyss.cpp', ++ 'abyss_reqhandler_xmlrpc.cpp', ++ ], ++ include_directories : [ ++ top_incdir, ++ hdr_incdir, ++ util_incdir, ++ ], ++ link_with : [ ++ libxmlrpc_abysspp, ++ libxmlrpc_serverpp, ++ libxmlrpc_server_abyss, ++ ], ++ soversion : 8, ++ version : '8.@0@'.format(version_minor), ++ install : true, ++ ) ++ pkgg.generate( ++ name : 'xmlrpc_server_abyss++', ++ description : 'Xmlrpc-c Abyss XML-RPC server C++ library', ++ version : meson.project_version(), ++ requires : ['xmlrpc++', 'xmlrpc', 'xmlrpc_server++', 'xmlrpc_abyss', 'xmlrpc_util++', 'xmlrpc_util'], ++ libraries : libxmlrpc_server_abysspp, ++ install : true, ++ ) ++endif ++ ++if get_option('cgi-server') ++ libxmlrpc_server_cgipp = library( ++ 'xmlrpc_server_cgi++', ++ sources : [ ++ 'server_cgi.cpp', ++ ], ++ include_directories : [ ++ top_incdir, ++ hdr_incdir, ++ ], ++ link_with : [ ++ libxmlrpc_serverpp, ++ ], ++ soversion : 8, ++ version : '8.@0@'.format(version_minor), ++ install : true, ++ ) ++endif ++ ++libxmlrpc_packetsocket = library( ++ 'xmlrpc_packetsocket', ++ sources : [ ++ 'packetsocket.cpp', ++ ], ++ include_directories : [ ++ top_incdir, ++ hdr_incdir, ++ util_incdir, ++ ], ++ link_with : [ ++ libxmlrpcpp, ++ ], ++ soversion : 8, ++ version : '8.@0@'.format(version_minor), ++ install : true, ++) ++ ++if build_xmlrpc_pstream ++ libxmlrpc_server_pstreampp = library( ++ 'xmlrpc_server_pstream++', ++ sources : [ ++ 'server_pstream_conn.cpp', ++ 'server_pstream.cpp', ++ ], ++ include_directories : [ ++ top_incdir, ++ hdr_incdir, ++ ], ++ link_with : [ ++ libxmlrpcpp, ++ libxmlrpc_serverpp, ++ libxmlrpc_packetsocket, ++ ], ++ soversion : 8, ++ version : '8.@0@'.format(version_minor), ++ install : true, ++ ) ++ pkgg.generate( ++ name : 'xmlrpc_server_pstream', ++ description : 'Xmlrpc-c packet-stream XML-RPC server library', ++ version : meson.project_version(), ++ requires : ['xmlrpc++', 'xmlrpc', 'xmlrpc_server++', 'xmlrpc_util++', 'xmlrpc_util'], ++ libraries : [libxmlrpc_server_pstreampp, libxmlrpc_packetsocket], ++ install : true, ++ ) ++endif ++ ++if build_client ++ libxmlrpc_clientpp = library( ++ 'xmlrpc_client++', ++ sources : [ ++ 'client.cpp', ++ 'client_simple.cpp', ++ 'curl.cpp', ++ 'libwww.cpp', ++ 'wininet.cpp', ++ 'pstream.cpp', ++ ], ++ include_directories : [ ++ top_incdir, ++ hdr_incdir, ++ util_incdir, ++ ], ++ link_with : [ ++ libxmlrpcpp, ++ libxmlrpc_client, ++ libxmlrpc_packetsocket, ++ ], ++ soversion : 8, ++ version : '8.@0@'.format(version_minor), ++ install : true, ++ ) ++endif +diff --git a/src/meson.build b/src/meson.build +new file mode 100644 +index 00000000..3d7ded3c +--- /dev/null ++++ b/src/meson.build +@@ -0,0 +1,189 @@ ++xmlrpc_deps = [] ++xmlrpc_incs = [] ++xmlrpc_libs = [] ++# TODO: handle clients ++ ++if get_option('libxml2-backend') ++ xmlrpc_xml_parser = 'xmlrpc_libxml2.c' ++ xmlrpc_deps += [libxml2] ++ xmlrpc_pkgconfig_req = 'libxml-2.0' ++else ++ xmlrpc_xml_parser = 'xmlrpc_expat.c' ++ xmlrpc_incs += [xmlparse_incdir] ++ xmlrpc_libs += [libxmlrpc_xmlparse] ++ xmlrpc_pkgconfig_req = 'xmlrpc_expat' ++endif ++ ++libxmlrpc = library( ++ 'xmlrpc', ++ sources : [ ++ 'base_global.c', ++ 'double.c', ++ 'json.c', ++ 'parse_datetime.c', ++ 'parse_value.c', ++ 'resource.c', ++ 'trace.c', ++ 'version.c', ++ 'xmlrpc_data.c', ++ 'xmlrpc_datetime.c', ++ 'xmlrpc_string.c', ++ 'xmlrpc_array.c', ++ 'xmlrpc_struct.c', ++ 'xmlrpc_build.c', ++ 'xmlrpc_decompose.c', ++ xmlrpc_xml_parser, ++ 'xmlrpc_parse.c', ++ 'xmlrpc_serialize.c', ++ 'xmlrpc_authcookie.c', ++ ], ++ include_directories : [ ++ top_incdir, ++ hdr_incdir, ++ util_incdir, ++ ] + xmlrpc_incs, ++ link_with : xmlrpc_libs, ++ dependencies : xmlrpc_deps, ++ soversion : 3, ++ version : '3.@0@'.format(version_minor), ++ install : true, ++) ++pkgg.generate( ++ name : 'xmlrpc', ++ description : 'Xmlrpc-c basic XML-RPC library', ++ version : meson.project_version(), ++ requires : ['xmlrpc_util', xmlrpc_pkgconfig_req], ++ libraries : libxmlrpc, ++ install : true, ++) ++ ++libxmlrpc_server = library( ++ 'xmlrpc_server', ++ sources : [ ++ 'registry.c', ++ 'method.c', ++ 'system_method.c', ++ ], ++ include_directories : [ ++ top_incdir, ++ hdr_incdir, ++ util_incdir, ++ ], ++ link_with : [ ++ libxmlrpc, ++ libxmlrpc_util, ++ ], ++ soversion : 3, ++ version : '3.@0@'.format(version_minor), ++ install : true, ++) ++pkgg.generate( ++ name : 'xmlrpc_server', ++ description : 'Xmlrpc-c XML-RPC server library', ++ version : meson.project_version(), ++ requires : ['xmlrpc', 'xmlrpc_util'], ++ libraries : libxmlrpc_server, ++ install : true, ++) ++ ++if get_option('abyss-server') ++ libxmlrpc_server_abyss = library( ++ 'xmlrpc_server_abyss', ++ sources : [ ++ 'xmlrpc_server_abyss.c', ++ 'abyss_handler.c', ++ ], ++ include_directories : [ ++ top_incdir, ++ hdr_incdir, ++ util_incdir, ++ ], ++ link_with : [ ++ libxmlrpc, ++ libxmlrpc_server, ++ libxmlrpc_abyss, ++ libxmlrpc_util, ++ ], ++ soversion : 3, ++ version : '3.@0@'.format(version_minor), ++ install : true, ++ ) ++ pkgg.generate( ++ name : 'xmlrpc_server_abyss', ++ description : 'Xmlrpc-c Abyss XML-RPC server library', ++ version : meson.project_version(), ++ requires : ['xmlrpc', 'xmlrpc_server', 'xmlrpc_abyss', 'xmlrpc_util'], ++ libraries : libxmlrpc_server_abyss, ++ install : true, ++ ) ++endif ++ ++if get_option('cgi-server') ++ libxmlrpc_server_cgi = library( ++ 'xmlrpc_server_cgi', ++ sources : [ ++ 'xmlrpc_server_cgi.c', ++ ], ++ include_directories : [ ++ top_incdir, ++ hdr_incdir, ++ util_incdir, ++ ], ++ link_with : [ ++ libxmlrpc, ++ libxmlrpc_server, ++ libxmlrpc_util, ++ ], ++ soversion : 3, ++ version : '3.@0@'.format(version_minor), ++ install : true, ++ ) ++ pkgg.generate( ++ name : 'xmlrpc_server_cgi', ++ description : 'Xmlrpc-c CGI XML-RPC server library', ++ version : meson.project_version(), ++ requires : ['xmlrpc', 'xmlrpc_server', 'xmlrpc_util'], ++ libraries : libxmlrpc_server_cgi, ++ install : true, ++ ) ++endif ++ ++if build_client ++ xmlrpc_client_transports = [] ++ if get_option('curl-client') ++ xmlrpc_client_transports += [xmlrpc_curl_transport] ++ endif ++ libxmlrpc_client = library( ++ 'xmlrpc_client', ++ sources : [ ++ 'xmlrpc_client.c', ++ 'xmlrpc_client_global.c', ++ 'xmlrpc_server_info.c', ++ ], ++ include_directories : [ ++ top_incdir, ++ hdr_incdir, ++ util_incdir, ++ ], ++ link_with : [ ++ libxmlrpc, ++ libxmlrpc_util, ++ ], ++ dependencies : xmlrpc_client_transports, ++ soversion : 3, ++ version : '3.@0@'.format(version_minor), ++ install : true, ++ ) ++ pkgg.generate( ++ name : 'xmlrpc_client', ++ description : 'Xmlrpc-c XML-RPC client library', ++ version : meson.project_version(), ++ requires : ['xmlrpc', 'xmlrpc_util'], ++ libraries : libxmlrpc_client, ++ install : true, ++ ) ++endif ++ ++if get_option('cplusplus') ++ subdir('cpp') ++endif +diff --git a/tools/lib/meson.build b/tools/lib/meson.build +new file mode 100644 +index 00000000..fc6929b8 +--- /dev/null ++++ b/tools/lib/meson.build +@@ -0,0 +1,5 @@ ++dumpvalue = declare_dependency( ++ include_directories : include_directories('include'), ++ sources : 'dumpvalue.c', ++ link_with : [libxmlrpc_util, libxmlrpc], ++) +diff --git a/tools/meson.build b/tools/meson.build +new file mode 100644 +index 00000000..39f73a3e +--- /dev/null ++++ b/tools/meson.build +@@ -0,0 +1,14 @@ ++subdir('lib') ++subdir('xml') ++if build_client ++ subdir('xmlrpc') ++ subdir('xmlrpc_transport') ++ if get_option('cplusplus') ++ subdir('xml-rpc-api2cpp') ++ subdir('xml-rpc-api2txt') ++ subdir('xmlrpc_cpp_proxy') ++ if build_xmlrpc_pstream ++ subdir('xmlrpc_pstream') ++ endif ++ endif ++endif +diff --git a/tools/xml-rpc-api2cpp/meson.build b/tools/xml-rpc-api2cpp/meson.build +new file mode 100644 +index 00000000..ce5fcd20 +--- /dev/null ++++ b/tools/xml-rpc-api2cpp/meson.build +@@ -0,0 +1,19 @@ ++executable( ++ 'xml-rpc-api2cpp', ++ sources : [ ++ 'xml-rpc-api2cpp.cpp', ++ 'DataType.cpp', ++ 'XmlRpcFunction.cpp', ++ 'XmlRpcClass.cpp', ++ 'SystemProxy.cpp', ++ ], ++ include_directories : [ ++ hdr_incdir, ++ ], ++ link_with : [ ++ libxmlrpc_client, ++ libxmlrpc_cpp, ++ ], ++ install : true, ++) ++install_man('xml-rpc-api2cpp.1') +diff --git a/tools/xml-rpc-api2txt/meson.build b/tools/xml-rpc-api2txt/meson.build +new file mode 100644 +index 00000000..2a0a61e8 +--- /dev/null ++++ b/tools/xml-rpc-api2txt/meson.build +@@ -0,0 +1,2 @@ ++install_data('xml-rpc-api2txt', install_dir : get_option('bindir')) ++install_man('xml-rpc-api2txt.1') +diff --git a/tools/xml/meson.build b/tools/xml/meson.build +new file mode 100644 +index 00000000..2d856c60 +--- /dev/null ++++ b/tools/xml/meson.build +@@ -0,0 +1,15 @@ ++executable( ++ 'xmlrpc_parsecall', ++ sources : [ ++ 'xmlrpc_parsecall.c', ++ ], ++ dependencies : [ ++ util_casprintf_dep, ++ dumpvalue, ++ ], ++ include_directories : [ ++ top_incdir, ++ hdr_incdir, ++ ], ++ install : true, ++) +diff --git a/tools/xmlrpc/meson.build b/tools/xmlrpc/meson.build +new file mode 100644 +index 00000000..e1e8d552 +--- /dev/null ++++ b/tools/xmlrpc/meson.build +@@ -0,0 +1,20 @@ ++executable( ++ 'xmlrpc', ++ sources : [ ++ 'xmlrpc.c', ++ ], ++ dependencies : [ ++ dumpvalue, ++ util_dep, ++ ], ++ include_directories : [ ++ top_incdir, ++ hdr_incdir, ++ util_incdir, ++ ], ++ link_with : [ ++ libxmlrpc, ++ libxmlrpc_client, ++ ], ++ install : true, ++) +diff --git a/tools/xmlrpc_cpp_proxy/meson.build b/tools/xmlrpc_cpp_proxy/meson.build +new file mode 100644 +index 00000000..66ebd575 +--- /dev/null ++++ b/tools/xmlrpc_cpp_proxy/meson.build +@@ -0,0 +1,18 @@ ++executable( ++ 'xmlrpc_cpp_proxy', ++ sources : [ ++ 'xmlrpc_cpp_proxy.cpp', ++ 'xmlrpcMethod.cpp', ++ 'xmlrpcType.cpp', ++ 'proxyClass.cpp', ++ 'systemProxy.cpp', ++ ], ++ include_directories : [ ++ hdr_incdir, ++ ], ++ link_with : [ ++ libxmlrpcpp, ++ libxmlrpc_clientpp, ++ ], ++ install : true, ++) +diff --git a/tools/xmlrpc_pstream/meson.build b/tools/xmlrpc_pstream/meson.build +new file mode 100644 +index 00000000..6ee5e7d7 +--- /dev/null ++++ b/tools/xmlrpc_pstream/meson.build +@@ -0,0 +1,19 @@ ++executable( ++ 'xmlrpc_pstream', ++ sources : [ ++ 'xmlrpc_pstream.cpp', ++ ], ++ dependencies : [ ++ dumpvalue, ++ util_cpp_dep, ++ readline, ++ ], ++ include_directories : [ ++ top_incdir, ++ hdr_incdir, ++ ], ++ link_with : [ ++ libxmlrpc_clientpp, ++ ], ++ install : true, ++) +diff --git a/tools/xmlrpc_transport/meson.build b/tools/xmlrpc_transport/meson.build +new file mode 100644 +index 00000000..9d7d0afd +--- /dev/null ++++ b/tools/xmlrpc_transport/meson.build +@@ -0,0 +1,17 @@ ++executable( ++ 'xmlrpc_transport', ++ sources : [ ++ 'xmlrpc_transport.c', ++ ], ++ dependencies : [ ++ util_dep, ++ ], ++ include_directories : [ ++ top_incdir, ++ hdr_incdir, ++ ], ++ link_with : [ ++ libxmlrpc_client, ++ ], ++ install : true, ++) +diff --git a/transport_config.h.in b/transport_config.h.in +new file mode 100644 +index 00000000..687fdaf2 +--- /dev/null ++++ b/transport_config.h.in +@@ -0,0 +1,4 @@ ++#define MUST_BUILD_WININET_CLIENT @MUST_BUILD_WININET_CLIENT@ ++#define MUST_BUILD_CURL_CLIENT @MUST_BUILD_CURL_CLIENT@ ++#define MUST_BUILD_LIBWWW_CLIENT @MUST_BUILD_LIBWWW_CLIENT@ ++static const char * const XMLRPC_DEFAULT_TRANSPORT = @XMLRPC_DEFAULT_TRANSPORT@; +diff --git a/xmlrpc-c-config b/xmlrpc-c-config +new file mode 100755 +index 00000000..25f95194 +--- /dev/null ++++ b/xmlrpc-c-config +@@ -0,0 +1,114 @@ ++#!/bin/sh ++ ++comp= ++ ++need_cxx= ++need_client= ++need_server= ++need_abyss_server= ++need_pstream= ++need_packetsocket= ++need_cgi= ++need_abyss= ++need_openssl= ++ ++show_help() { ++ cat < ...