From fea1e8af88b4d46c8eb1d07e508815364023a37b Mon Sep 17 00:00:00 2001 From: ensc Date: Tue, 26 Feb 2008 21:27:37 +0000 Subject: [PATCH] moved to advanced branch --- .cvsignore | 1 + Makefile | 8 +- ...structors-for-classes-with-virtual-m.patch | 66 +++ ...mat-string-modifiers-for-size_t-type.patch | 231 ++++++++ fixed-extra-classname-specification.patch | 25 + ...nitialised-usage-of-buffer-attribute.patch | 25 + ...nsition.txt => make-cmake-transition.patch | 495 ++++++++++++++---- sources | 2 +- xmlrpc-c.spec | 32 +- 9 files changed, 766 insertions(+), 119 deletions(-) create mode 100644 added-virtual-destructors-for-classes-with-virtual-m.patch create mode 100644 fixed-broken-format-string-modifiers-for-size_t-type.patch create mode 100644 fixed-extra-classname-specification.patch create mode 100644 fixed-uninitialised-usage-of-buffer-attribute.patch rename 0001-make-cmake-transition.txt => make-cmake-transition.patch (75%) diff --git a/.cvsignore b/.cvsignore index 6b793e7..ccdf8c2 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1,3 @@ xmlrpc-c-*.tgz +xmlrpc-c-*.tar.bz2 x.patch diff --git a/Makefile b/Makefile index a998ca8..a3bd3e8 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ # Makefile for source rpm: xmlrpc-c -# $Id$ +# $Id: Makefile,v 1.1 2005/12/18 18:14:12 ensc Exp $ NAME := xmlrpc-c SPECFILE = $(firstword $(wildcard *.spec)) @@ -19,3 +19,9 @@ MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) endif include $(MAKEFILE_COMMON) + +SVN_BASEVER = 1.13.07 + +svn-sources: + cd $(DESTDIR) . && svn export https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced xmlrpc-c-${SVN_BASEVER} + cd $(DESTDIR) . && tar cjf xmlrpc-c-${SVN_BASEVER}.tar.bz2 xmlrpc-c-${SVN_BASEVER} --owner root --group root diff --git a/added-virtual-destructors-for-classes-with-virtual-m.patch b/added-virtual-destructors-for-classes-with-virtual-m.patch new file mode 100644 index 0000000..e313b34 --- /dev/null +++ b/added-virtual-destructors-for-classes-with-virtual-m.patch @@ -0,0 +1,66 @@ +From 65f37adf3bf79cd61f88004b589ed8a5e6a0e1c0 Mon Sep 17 00:00:00 2001 +From: Enrico Scholz +Date: Mon, 25 Feb 2008 17:52:48 +0100 +Subject: [PATCH] added virtual destructors for classes with virtual methods + +--- + include/xmlrpc-c/registry.hpp | 1 + + include/xmlrpc-c/server_abyss.hpp | 1 + + src/cpp/registry.cpp | 5 +++++ + src/cpp/server_abyss.cpp | 3 +++ + 4 files changed, 10 insertions(+), 0 deletions(-) + +diff --git a/include/xmlrpc-c/registry.hpp b/include/xmlrpc-c/registry.hpp +index 4b2660d..e5e6b5e 100644 +--- a/include/xmlrpc-c/registry.hpp ++++ b/include/xmlrpc-c/registry.hpp +@@ -128,6 +128,7 @@ public: + + class shutdown { + public: ++ virtual ~shutdown(); + virtual void + doit(std::string const& comment, + void * const callInfo) const = 0; +diff --git a/include/xmlrpc-c/server_abyss.hpp b/include/xmlrpc-c/server_abyss.hpp +index d74dacd..2fc9813 100644 +--- a/include/xmlrpc-c/server_abyss.hpp ++++ b/include/xmlrpc-c/server_abyss.hpp +@@ -88,6 +88,7 @@ public: + class shutdown : public xmlrpc_c::registry::shutdown { + public: + shutdown(xmlrpc_c::serverAbyss * const severAbyssP); ++ virtual ~shutdown(); + void doit(std::string const& comment, void * const callInfo) const; + private: + xmlrpc_c::serverAbyss * const serverAbyssP; +diff --git a/src/cpp/registry.cpp b/src/cpp/registry.cpp +index 8f8302b..8edc061 100644 +--- a/src/cpp/registry.cpp ++++ b/src/cpp/registry.cpp +@@ -423,3 +423,8 @@ registry::c_registry() const { + } + + } // namespace ++ ++ ++registry::shutdown::~shutdown() ++{ ++} +diff --git a/src/cpp/server_abyss.cpp b/src/cpp/server_abyss.cpp +index 8c567c4..afc030e 100644 +--- a/src/cpp/server_abyss.cpp ++++ b/src/cpp/server_abyss.cpp +@@ -164,6 +164,9 @@ public: + serverAbyss::shutdown::shutdown(serverAbyss * const serverAbyssP) : + serverAbyssP(serverAbyssP) {} + ++serverAbyss::shutdown::~shutdown() ++{ ++} + + + void +-- +1.5.4.1 + diff --git a/fixed-broken-format-string-modifiers-for-size_t-type.patch b/fixed-broken-format-string-modifiers-for-size_t-type.patch new file mode 100644 index 0000000..1ae51c7 --- /dev/null +++ b/fixed-broken-format-string-modifiers-for-size_t-type.patch @@ -0,0 +1,231 @@ +From 1fa1d1705b07bd6cb1e3022896a12a0e75d55497 Mon Sep 17 00:00:00 2001 +From: Enrico Scholz +Date: Mon, 25 Feb 2008 17:48:25 +0100 +Subject: [PATCH] fixed broken format string modifiers for size_t typed arguments + +--- + lib/abyss/src/socket_unix.c | 4 ++-- + lib/libutil/memblock.c | 2 +- + src/xmlrpc_data.c | 2 +- + src/xmlrpc_datetime.c | 2 +- + src/xmlrpc_decompose.c | 4 ++-- + src/xmlrpc_parse.c | 16 ++++++++-------- + src/xmlrpc_server_abyss.c | 2 +- + src/xmlrpc_string.c | 8 ++++---- + tools/xmlrpc/xmlrpc.c | 2 +- + 9 files changed, 21 insertions(+), 21 deletions(-) + +diff --git a/lib/abyss/src/socket_unix.c b/lib/abyss/src/socket_unix.c +index 7955166..080b0ee 100644 +--- a/lib/abyss/src/socket_unix.c ++++ b/lib/abyss/src/socket_unix.c +@@ -149,8 +149,8 @@ channelWrite(TChannel * const channelP, + fprintf(stderr, "Abyss channel: send() failed. " + "Socket closed.\n"); + else +- fprintf(stderr, "Abyss channel: sent %u bytes: '%.*s'\n", +- rc, rc, &buffer[len-bytesLeft]); ++ fprintf(stderr, "Abyss channel: sent %zu bytes: '%.*s'\n", ++ rc, (int)rc, &buffer[len-bytesLeft]); + } + if (rc <= 0) + /* 0 means connection closed; < 0 means severe error */ +diff --git a/lib/libutil/memblock.c b/lib/libutil/memblock.c +index d79d4ca..25992e8 100644 +--- a/lib/libutil/memblock.c ++++ b/lib/libutil/memblock.c +@@ -73,7 +73,7 @@ xmlrpc_mem_block_init(xmlrpc_env * const envP, + + blockP->_block = (void*) malloc(blockP->_allocated); + if (!blockP->_block) +- xmlrpc_faultf(envP, "Can't allocate %u-byte memory block", ++ xmlrpc_faultf(envP, "Can't allocate %zu-byte memory block", + blockP->_allocated); + } + +diff --git a/src/xmlrpc_data.c b/src/xmlrpc_data.c +index 28827fe..415dd6d 100644 +--- a/src/xmlrpc_data.c ++++ b/src/xmlrpc_data.c +@@ -221,7 +221,7 @@ xmlrpc_read_base64(xmlrpc_env * const envP, + byteStringValue = malloc(size); + if (byteStringValue == NULL) + xmlrpc_env_set_fault_formatted( +- envP, XMLRPC_INTERNAL_ERROR, "Unable to allocate %u bytes " ++ envP, XMLRPC_INTERNAL_ERROR, "Unable to allocate %zu bytes " + "for byte string.", size); + else { + memcpy(byteStringValue, contents, size); +diff --git a/src/xmlrpc_datetime.c b/src/xmlrpc_datetime.c +index 2724586..0cc68a5 100644 +--- a/src/xmlrpc_datetime.c ++++ b/src/xmlrpc_datetime.c +@@ -204,7 +204,7 @@ validateFormat(xmlrpc_env * const envP, + const char * const t) { + + if (strlen(t) != 17) +- xmlrpc_faultf(envP, "%u characters instead of 15.", strlen(t)); ++ xmlrpc_faultf(envP, "%zu characters instead of 15.", strlen(t)); + else if (t[8] != 'T') + xmlrpc_faultf(envP, "9th character is '%c', not 'T'", t[8]); + else { +diff --git a/src/xmlrpc_decompose.c b/src/xmlrpc_decompose.c +index eeb3414..36e62f6 100644 +--- a/src/xmlrpc_decompose.c ++++ b/src/xmlrpc_decompose.c +@@ -712,7 +712,7 @@ buildArrayDecompBranch(xmlrpc_env * const envP, + if (itemCnt >= ARRAY_SIZE(decompNodeP->store.Tarray.itemArray)) + xmlrpc_faultf(envP, "Too many array items in format string. " + "The most items you can have for an array in " +- "a format string is %u.", ++ "a format string is %zu.", + ARRAY_SIZE(decompNodeP->store.Tarray.itemArray)); + else { + struct decompTreeNode * itemNodeP; +@@ -850,7 +850,7 @@ buildStructDecompBranch(xmlrpc_env * const envP, + xmlrpc_faultf(envP, + "Too many structure members in format string. " + "The most members you can specify in " +- "a format string is %u.", ++ "a format string is %zu.", + ARRAY_SIZE(decompNodeP->store.Tstruct.mbrArray)); + else { + struct mbrDecomp * const mbrP = +diff --git a/src/xmlrpc_parse.c b/src/xmlrpc_parse.c +index 77b649d..dfcc29b 100644 +--- a/src/xmlrpc_parse.c ++++ b/src/xmlrpc_parse.c +@@ -43,7 +43,7 @@ + do \ + if (xml_element_children_size(elem) != (count)) \ + XMLRPC_FAIL3(env, XMLRPC_PARSE_ERROR, \ +- "Expected <%s> to have %d children, found %d", \ ++ "Expected <%s> to have %d children, found %zd", \ + xml_element_name(elem), (count), \ + xml_element_children_size(elem)); \ + while (0) +@@ -675,7 +675,7 @@ parseMethodNameElement(xmlrpc_env * const envP, + xmlrpc_env_set_fault_formatted( + envP, XMLRPC_PARSE_ERROR, + "A element should not have children. " +- "This one has %u of them.", xml_element_children_size(nameElemP)); ++ "This one has %zu of them.", xml_element_children_size(nameElemP)); + else { + const char * const cdata = xml_element_cdata(nameElemP); + +@@ -734,7 +734,7 @@ parseCallChildren(xmlrpc_env * const envP, + xmlrpc_env_set_fault_formatted( + envP, XMLRPC_PARSE_ERROR, + " has extraneous children, other than " +- " and . Total child count = %u", ++ " and . Total child count = %zu", + callChildCount); + + if (envP->fault_occurred) +@@ -772,7 +772,7 @@ xmlrpc_parse_call(xmlrpc_env * const envP, + if (xmlLen > xmlrpc_limit_get(XMLRPC_XML_SIZE_LIMIT_ID)) + xmlrpc_env_set_fault_formatted( + envP, XMLRPC_LIMIT_EXCEEDED_ERROR, +- "XML-RPC request too large. Max allowed is %u bytes", ++ "XML-RPC request too large. Max allowed is %zu bytes", + xmlrpc_limit_get(XMLRPC_XML_SIZE_LIMIT_ID)); + else { + xml_element * callElemP; +@@ -849,7 +849,7 @@ parseFaultElement(xmlrpc_env * const envP, + if (xml_element_children_size(faultElement) != 1) + xmlrpc_env_set_fault_formatted( + envP, XMLRPC_PARSE_ERROR, +- " element should have 1 child, but it has %u.", ++ " element should have 1 child, but it has %zu.", + xml_element_children_size(faultElement)); + else { + xml_element * const faultValueP = +@@ -945,7 +945,7 @@ parseMethodResponseElt(xmlrpc_env * const envP, + } else + xmlrpc_env_set_fault_formatted( + envP, XMLRPC_PARSE_ERROR, +- " has %u children, should have 1.", ++ " has %zu children, should have 1.", + xml_element_children_size(methodResponseEltP)); + } + +@@ -984,8 +984,8 @@ xmlrpc_parse_response2(xmlrpc_env * const envP, + if (xmlDataLen > xmlrpc_limit_get(XMLRPC_XML_SIZE_LIMIT_ID)) + xmlrpc_env_set_fault_formatted( + envP, XMLRPC_LIMIT_EXCEEDED_ERROR, +- "XML-RPC response too large. Our limit is %u characters. " +- "We got %u characters", ++ "XML-RPC response too large. Our limit is %zu characters. " ++ "We got %zu characters", + xmlrpc_limit_get(XMLRPC_XML_SIZE_LIMIT_ID), xmlDataLen); + else { + xmlrpc_env env; +diff --git a/src/xmlrpc_server_abyss.c b/src/xmlrpc_server_abyss.c +index 41c319c..e9f0852 100644 +--- a/src/xmlrpc_server_abyss.c ++++ b/src/xmlrpc_server_abyss.c +@@ -388,7 +388,7 @@ processCall(TSession * const abyssSessionP, + if (contentSize > xmlrpc_limit_get(XMLRPC_XML_SIZE_LIMIT_ID)) + xmlrpc_env_set_fault_formatted( + &env, XMLRPC_LIMIT_EXCEEDED_ERROR, +- "XML-RPC request too large (%d bytes)", contentSize); ++ "XML-RPC request too large (%zd bytes)", contentSize); + else { + xmlrpc_mem_block * body; + /* Read XML data off the wire. */ +diff --git a/src/xmlrpc_string.c b/src/xmlrpc_string.c +index 8bf299d..a2a4bf4 100644 +--- a/src/xmlrpc_string.c ++++ b/src/xmlrpc_string.c +@@ -141,7 +141,7 @@ xmlrpc_read_string(xmlrpc_env * const envP, + MALLOCARRAY(stringValue, length + 1); + if (stringValue == NULL) + xmlrpc_faultf(envP, "Unable to allocate space " +- "for %u-character string", length); ++ "for %zu-character string", length); + else { + memcpy(stringValue, contents, length); + stringValue[length] = '\0'; +@@ -189,7 +189,7 @@ copyAndConvertLfToCrlf(xmlrpc_env * const envP, + MALLOCARRAY(dst, dstLen + 1); + if (dst == NULL) + xmlrpc_faultf(envP, "Unable to allocate space " +- "for %u-character string", dstLen + 1); ++ "for %zu-character string", dstLen + 1); + else { + const char * p; /* source pointer */ + char * q; /* destination pointer */ +@@ -370,7 +370,7 @@ xmlrpc_read_string_w(xmlrpc_env * const envP, + wchar_t * stringValue; + MALLOCARRAY(stringValue, length + 1); + if (stringValue == NULL) +- xmlrpc_faultf(envP, "Unable to allocate space for %u-byte string", ++ xmlrpc_faultf(envP, "Unable to allocate space for %zu-byte string", + length); + else { + memcpy(stringValue, wcontents, length * sizeof(wchar_t)); +@@ -422,7 +422,7 @@ wCopyAndConvertLfToCrlf(xmlrpc_env * const envP, + MALLOCARRAY(dst, dstLen + 1); + if (dst == NULL) + xmlrpc_faultf(envP, "Unable to allocate space " +- "for %u-character string", dstLen + 1); ++ "for %zu-character string", dstLen + 1); + else { + const wchar_t * p; /* source pointer */ + wchar_t * q; /* destination pointer */ +diff --git a/tools/xmlrpc/xmlrpc.c b/tools/xmlrpc/xmlrpc.c +index 0e49b06..c2c117f 100644 +--- a/tools/xmlrpc/xmlrpc.c ++++ b/tools/xmlrpc/xmlrpc.c +@@ -266,7 +266,7 @@ buildBytestring(xmlrpc_env * const envP, + + if (valueStringSize / 2 * 2 != valueStringSize) + xmlrpc_faultf(envP, "Hexadecimal text is not an even " +- "number of characters (it is %u characters)", ++ "number of characters (it is %zu characters)", + strlen(valueString)); + else { + size_t const byteStringSize = strlen(valueString)/2; +-- +1.5.4.1 + diff --git a/fixed-extra-classname-specification.patch b/fixed-extra-classname-specification.patch new file mode 100644 index 0000000..c9bfe08 --- /dev/null +++ b/fixed-extra-classname-specification.patch @@ -0,0 +1,25 @@ +From 9aced7f1435d1277ea4aea13790da3691b3dc8e2 Mon Sep 17 00:00:00 2001 +From: Enrico Scholz +Date: Mon, 25 Feb 2008 17:04:17 +0100 +Subject: [PATCH] fixed extra classname specification + +--- + tools/xmlrpc_cpp_proxy/xmlrpcMethod.hpp | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/tools/xmlrpc_cpp_proxy/xmlrpcMethod.hpp b/tools/xmlrpc_cpp_proxy/xmlrpcMethod.hpp +index 24e01a8..2768997 100644 +--- a/tools/xmlrpc_cpp_proxy/xmlrpcMethod.hpp ++++ b/tools/xmlrpc_cpp_proxy/xmlrpcMethod.hpp +@@ -20,7 +20,7 @@ public: + std::string const& help, + xmlrpc_c::value_array const& signatureList); + +- xmlrpcMethod::xmlrpcMethod(xmlrpcMethod const& f); ++ xmlrpcMethod(xmlrpcMethod const& f); + + xmlrpcMethod& operator= (xmlrpcMethod const& f); + +-- +1.5.4.1 + diff --git a/fixed-uninitialised-usage-of-buffer-attribute.patch b/fixed-uninitialised-usage-of-buffer-attribute.patch new file mode 100644 index 0000000..d202739 --- /dev/null +++ b/fixed-uninitialised-usage-of-buffer-attribute.patch @@ -0,0 +1,25 @@ +From d18cb86d6512d374e8a42e046f82e6cc4ceb2c2a Mon Sep 17 00:00:00 2001 +From: Enrico Scholz +Date: Mon, 25 Feb 2008 17:53:27 +0100 +Subject: [PATCH] fixed uninitialised usage of buffer attribute + +--- + src/cpp/base64.cpp | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/cpp/base64.cpp b/src/cpp/base64.cpp +index f9c0dac..1b34618 100644 +--- a/src/cpp/base64.cpp ++++ b/src/cpp/base64.cpp +@@ -39,7 +39,7 @@ unsigned char const table_b2a_base64[] = + + class bitBuffer { + public: +- bitBuffer() : bitsInBuffer(0) {}; ++ bitBuffer() : buffer(0), bitsInBuffer(0) {}; + + void + shiftIn8Bits(unsigned char const newBits) { +-- +1.5.4.1 + diff --git a/0001-make-cmake-transition.txt b/make-cmake-transition.patch similarity index 75% rename from 0001-make-cmake-transition.txt rename to make-cmake-transition.patch index 41e65c1..1fe2ce8 100644 --- a/0001-make-cmake-transition.txt +++ b/make-cmake-transition.patch @@ -1,60 +1,64 @@ -From 0dd5200ebaf39dc37b7fc06e6b793c307b2d648b Mon Sep 17 00:00:00 2001 +From 4b9eeab251125ac197a84df4ec627ab941716e4b Mon Sep 17 00:00:00 2001 From: Enrico Scholz -Date: Sun, 1 Apr 2007 14:30:58 +0200 +Date: Mon, 25 Feb 2008 17:19:20 +0100 Subject: [PATCH] make -> cmake transition --- - CMakeLists.txt | 236 +++++++++++++++++++++++++++ + CMakeLists.txt | 261 +++++++++++++++++++++++++++ cmake/try-attr.cc | 3 + cmake/va-list-is-array.c | 9 + - examples/CMakeLists.txt | 51 ++++++ + examples/CMakeLists.txt | 56 ++++++ examples/config.h | 1 + - examples/cpp/CMakeLists.txt | 20 +++ + examples/cpp/CMakeLists.txt | 24 +++ include/CMakeLists.txt | 3 + - include/xmlrpc-c/CMakeLists.txt | 52 ++++++ - include/xmlrpc-c/config.h.cmake | 8 + + include/xmlrpc-c/CMakeLists.txt | 73 ++++++++ + include/xmlrpc-c/config.h.cmake | 30 +++ lib/CMakeLists.txt | 12 ++ lib/abyss/CMakeLists.txt | 3 + - lib/abyss/src/CMakeLists.txt | 57 +++++++ + lib/abyss/src/CMakeLists.txt | 64 +++++++ lib/abyss/src/xmlrpc_abyss.pc.cmake | 12 ++ lib/curl_transport/CMakeLists.txt | 7 + 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 | 20 +++ + lib/expat/xmltok/CMakeLists.txt | 20 ++ lib/expat/xmltok/xmlrpc_xmltok.pc.cmake | 9 + - lib/libutil/CMakeLists.txt | 22 +++ + lib/libutil/CMakeLists.txt | 24 +++ lib/libutil/xmlrpc_util.pc.cmake | 10 + - lib/libwww_transport/CMakeLists.txt | 4 + + lib/libwww_transport/CMakeLists.txt | 7 + lib/util/CMakeLists.txt | 13 ++ - lib/wininet_transport/CMakeLists.txt | 4 + - src/CMakeLists.txt | 106 ++++++++++++ - src/cpp/CMakeLists.txt | 48 ++++++ + lib/wininet_transport/CMakeLists.txt | 7 + + src/CMakeLists.txt | 107 +++++++++++ + src/cpp/CMakeLists.txt | 60 ++++++ + src/cpp/test/CMakeLists.txt | 17 ++ 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/test/CMakeLists.txt | 27 +++ + src/cpp/xmlrpc_server_pstream++.pc.cmake | 12 ++ + src/test/CMakeLists.txt | 28 +++ 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 ++ - tools/CMakeLists.txt | 9 + + tools/CMakeLists.txt | 10 + tools/binmode-rpc-kit/CMakeLists.txt | 2 + tools/turbocharger/CMakeLists.txt | 1 + tools/xml-rpc-api2cpp/CMakeLists.txt | 15 ++ tools/xmlrpc/CMakeLists.txt | 15 ++ tools/xmlrpc/config.h | 1 + + tools/xmlrpc_cpp_proxy/CMakeLists.txt | 17 ++ tools/xmlrpc_transport/CMakeLists.txt | 9 + tools/xmlrpc_transport/config.h | 1 + transport_config.h.cmake | 16 ++ - version.h.cmake | 2 + - xmlrpc-c-config | 67 ++++++++ - xmlrpc_config.h.cmake | 21 +++ - 50 files changed, 1047 insertions(+), 0 deletions(-) + version.h.cmake | 5 + + xmlrpc-c-config | 74 ++++++++ + xmlrpc_config.h.cmake | 87 +++++++++ + 54 files changed, 1288 insertions(+), 0 deletions(-) create mode 100644 CMakeLists.txt create mode 100644 cmake/try-attr.cc create mode 100644 cmake/va-list-is-array.c @@ -82,11 +86,14 @@ Subject: [PATCH] make -> cmake transition create mode 100644 lib/wininet_transport/CMakeLists.txt create mode 100644 src/CMakeLists.txt create mode 100644 src/cpp/CMakeLists.txt + create mode 100644 src/cpp/test/CMakeLists.txt create mode 100644 src/cpp/xmlrpc++.pc.cmake create mode 100644 src/cpp/xmlrpc_client++.pc.cmake create mode 100644 src/cpp/xmlrpc_cpp.pc.cmake + create mode 100644 src/cpp/xmlrpc_packetsocket.pc.cmake create mode 100644 src/cpp/xmlrpc_server++.pc.cmake create mode 100644 src/cpp/xmlrpc_server_abyss++.pc.cmake + create mode 100644 src/cpp/xmlrpc_server_pstream++.pc.cmake create mode 100644 src/test/CMakeLists.txt create mode 100644 src/xmlrpc.pc.cmake create mode 100644 src/xmlrpc_client.pc.cmake @@ -99,6 +106,7 @@ Subject: [PATCH] make -> cmake transition create mode 100644 tools/xml-rpc-api2cpp/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 create mode 100644 tools/xmlrpc_transport/CMakeLists.txt create mode 100644 tools/xmlrpc_transport/config.h create mode 100644 transport_config.h.cmake @@ -108,20 +116,34 @@ Subject: [PATCH] make -> cmake transition diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 -index 0000000..e4505f7 +index 0000000..642efe9 --- /dev/null +++ b/CMakeLists.txt -@@ -0,0 +1,236 @@ +@@ -0,0 +1,261 @@ +## -*- cmake -*- +project(xmlrpc-c) +include(UsePkgConfig) +include(CheckIncludeFile) +include(CheckFunctionExists) + -+set(XMLRPC_C_VERSION "1.06.23" CACHE STRING "Version of xmlrpc-c") -+set(XMLRPC_C_LIBVERSION "3.6.15") ++set(XMLRPC_C_VERSION_MAJOR "1" CACHE STRING "Version (major) of xmlrpc-c") ++set(XMLRPC_C_VERSION_MINOR "13" CACHE STRING "Version (minor) of xmlrpc-c") ++set(XMLRPC_C_VERSION_POINT "07" CACHE STRING "Version (point) of xmlrpc-c") ++ ++set(XMLRPC_C_VERSION ++ "$XMLRPC_C_VERSION_MAJOR.$XMLRPC_C_VERSION_MINOR.$XMLRPC_C_VERSION_POINT" ++ CACHE STRING "Version of xmlrpc-c") ++ ++set(XMLRPC_C_LIBVERSION "3.13") +set(XMLRPC_C_SOVERSION "3") + ++set(XMLRPC_CXX_LIBVERSION "4.13") ++set(XMLRPC_CXX_SOVERSION "4") ++ ++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}") ++string(REGEX REPLACE "^0+" "" XMLRPC_C_VERSION_POINT_NUM "${XMLRPC_C_VERSION_POINT}") ++ + +macro(ensc_set_bool NAME VALUE DESC) + set(${NAME} ${VALUE} CACHE BOOL ${DESC}) @@ -295,7 +317,18 @@ index 0000000..e4505f7 + +check_include_file(sys/filio.h HAVE_SYS_FILIO_H) +check_include_file(sys/ioctl.h HAVE_SYS_IOCTL_H) -+check_function_exists(setenv HAVE_SETENV) ++check_function_exists(setenv HAVE_SETENV) ++check_function_exists(strcasecmp HAVE_STRCASECMP) ++check_function_exists(_stricmp HAVE__STRICMP) ++check_function_exists(stricmp HAVE_STRICMP) ++check_function_exists(gettimeofday HAVE_GETTIMEOFDAY) ++check_function_exists(setgroups HAVE_SETGROUPS) ++check_function_exists(asprintf HAVE_ASPRINTF) ++check_function_exists(pselect HAVE_PSELECT) ++check_function_exists(wcsncmp HAVE_WCSNCMP) ++check_function_exists(localtime_r HAVE_LOCALTIME_R) ++check_function_exists(gmtime_r HAVE_GMTIME_R) ++ + +configure_file(${xmlrpc-c_SOURCE_DIR}/xmlrpc_config.h.cmake + ${xmlrpc-c_BINARY_DIR}/xmlrpc_config.h @@ -374,10 +407,10 @@ index 0000000..1ad0bab +int main() {} diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt new file mode 100644 -index 0000000..9f18b0d +index 0000000..247b731 --- /dev/null +++ b/examples/CMakeLists.txt -@@ -0,0 +1,51 @@ +@@ -0,0 +1,56 @@ +# -*- cmake -*- + +include_directories(${CMAKE_CURRENT_BINARY_DIR}) @@ -406,12 +439,17 @@ index 0000000..9f18b0d + set(client_LIBS xmlrpc_client) + + ensc_add_example(auth_client c client) -+ ensc_add_example(query-meerkat c client) + ensc_add_example(synch_client c client) + ensc_add_example(xmlrpc_sample_add_client c client) + ensc_add_example(xmlrpc_asynch_client c client) +endif(MUST_BUILD_CLIENT) + ++if(MUST_BUILD_CURL_CLIENT) ++ set(client_LIBS xmlrpc_client) ++ ++ ensc_add_example(interrupted_client c client) ++endif(MUST_BUILD_CURL_CLIENT) ++ +if(ENABLE_CGI_SERVER) + set(cgi_server_LIBS xmlrpc_server_cgi) + @@ -438,10 +476,10 @@ index 0000000..31d5f9b +#include "../xmlrpc_config.h" diff --git a/examples/cpp/CMakeLists.txt b/examples/cpp/CMakeLists.txt new file mode 100644 -index 0000000..9fbea7e +index 0000000..254782b --- /dev/null +++ b/examples/cpp/CMakeLists.txt -@@ -0,0 +1,20 @@ +@@ -0,0 +1,24 @@ +# -*- cmake -*- + +if(ENABLE_ABYSS_SERVER) @@ -452,14 +490,18 @@ index 0000000..9fbea7e + +if(MUST_BUILD_CLIENT) + set(abyss_clientxx_LIBS xmlrpc_client++) -+ set(abyss_clientxx_legacy_LIBS xmlrpc_cpp) + + ensc_add_example(xmlrpc_sample_add_client cpp abyss_clientxx) + ensc_add_example(sample_add_client_complex cpp abyss_clientxx) ++ ensc_add_example(asynch_client cpp abyss_clientxx) + -+ ensc_add_example(meerkat-app-list cpp abyss_clientxx_legacy) ++ ensc_add_example(pstream_client cpp abyss_clientxx) +endif(MUST_BUILD_CLIENT) + ++set(pstream_serverxx_LIBS xmlrpc_server_pstream++) ++ensc_add_example(pstream_inetd_server cpp pstream_serverxx) ++ ++ + +ensc_set_link_exe_flags(${example_TARGETS}) diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt @@ -473,10 +515,10 @@ index 0000000..ebfdba5 +add_subdirectory(xmlrpc-c) diff --git a/include/xmlrpc-c/CMakeLists.txt b/include/xmlrpc-c/CMakeLists.txt new file mode 100644 -index 0000000..b92ccf4 +index 0000000..e4f8073 --- /dev/null +++ b/include/xmlrpc-c/CMakeLists.txt -@@ -0,0 +1,52 @@ +@@ -0,0 +1,73 @@ +# -*- cmake -*- + +macro(ensc_install_symlink src dst) @@ -485,8 +527,17 @@ index 0000000..b92ccf4 + +list(APPEND headers + ${CMAKE_CURRENT_BINARY_DIR}/config.h -+ util.h base.h abyss.h server.h -+ server_abyss.h server_w32httpsys.h oldxmlrpc.h) ++ inttypes.h ++ c_util.h ++ util.h ++ base.h ++ abyss.h ++ abyss_unixsock.h ++ abyss_winsock.h ++ server.h ++ server_abyss.h ++ server_w32httpsys.h ++ oldxmlrpc.h) + +list(APPEND compat_links "oldxmlrpc.h xmlrpc.h") +list(APPEND compat_links "server.h xmlrpc_server.h") @@ -496,21 +547,33 @@ index 0000000..b92ccf4 + +if(ENABLE_CPLUSPLUS) + list(APPEND headers -+ oldcppwrapper.hpp girerr.hpp girmem.hpp base.hpp -+ timeout.hpp xml.hpp registry.hpp server_abyss.hpp) ++ oldcppwrapper.hpp ++ girerr.hpp ++ girmem.hpp ++ base.hpp ++ timeout.hpp ++ xml.hpp ++ registry.hpp ++ server_abyss.hpp ++ packetsocket.hpp ++ server_pstream.hpp) + + list(APPEND compat_links "oldcppwrapper.hpp XmlRpcCpp.h") +endif(ENABLE_CPLUSPLUS) + +if(MUST_BUILD_CLIENT) + list(APPEND headers -+ client.h transport.h client_global.h) ++ client.h ++ transport.h ++ client_global.h) + + list(APPEND compat_links "client.h xmlrpc_client.h") + + if(ENABLE_CPLUSPLUS) + list(APPEND headers -+ client.hpp client_transport.hpp client_simple.hpp) ++ client.hpp ++ client_transport.hpp ++ client_simple.hpp) + endif(ENABLE_CPLUSPLUS) +endif(MUST_BUILD_CLIENT) + @@ -531,18 +594,40 @@ index 0000000..b92ccf4 +endforeach(ln) diff --git a/include/xmlrpc-c/config.h.cmake b/include/xmlrpc-c/config.h.cmake new file mode 100644 -index 0000000..7b95a1d +index 0000000..ee3c015 --- /dev/null +++ b/include/xmlrpc-c/config.h.cmake -@@ -0,0 +1,8 @@ -+/* 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 a Xmlrpc-c user code. +@@ -0,0 +1,30 @@ ++/* --*- c -*-- */ ++#ifndef XMLRPC_C_CONFIG_H_INCLUDED ++#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. ++ ++ This file was created by a make rule. +*/ +#define XMLRPC_HAVE_WCHAR @HAVE_WCHAR_H@ ++#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 ++#else ++ #define XMLRPC_SOCKET int ++ #define XMLRPC_HAVE_TIMEVAL 1 ++ #define XMLRPC_HAVE_TIMESPEC 1 ++#endif ++ ++#endif diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt new file mode 100644 index 0000000..7f8f912 @@ -572,14 +657,18 @@ index 0000000..2358061 +SUBDIRS(src) diff --git a/lib/abyss/src/CMakeLists.txt b/lib/abyss/src/CMakeLists.txt new file mode 100644 -index 0000000..cff8299 +index 0000000..e0373e6 --- /dev/null +++ b/lib/abyss/src/CMakeLists.txt -@@ -0,0 +1,57 @@ +@@ -0,0 +1,64 @@ +## -*- cmake -*- + +set(xmlrpc_abyss_SOURCES + abyss_info.h ++ channel.c ++ channel.h ++ chanswitch.c ++ chanswitch.h + conf.c + conn.c + conn.h @@ -589,8 +678,11 @@ index 0000000..cff8299 + date.h + file.c + file.h ++ handler.c ++ handler.h + http.c -+ http.h ++ http.h ++ init.c + response.c + server.c + server.h @@ -762,19 +854,21 @@ index 0000000..88e7ad8 +Cflags: diff --git a/lib/libutil/CMakeLists.txt b/lib/libutil/CMakeLists.txt new file mode 100644 -index 0000000..5e5d382 +index 0000000..0f9a7f3 --- /dev/null +++ b/lib/libutil/CMakeLists.txt -@@ -0,0 +1,22 @@ +@@ -0,0 +1,24 @@ +# -*- cmake -*- + +add_library(xmlrpc_util SHARED -+ casprintf.c ++ asprintf.c + error.c + make_printable.c + memblock.c -+ resource.c -+ sleep.c) ++ select.c ++ sleep.c ++ time.c ++ utf8.c) + +set_target_properties(xmlrpc_util + PROPERTIES @@ -790,7 +884,7 @@ index 0000000..5e5d382 +ensc_pkgconfig(xmlrpc_util) diff --git a/lib/libutil/xmlrpc_util.pc.cmake b/lib/libutil/xmlrpc_util.pc.cmake new file mode 100644 -index 0000000..98d24f4 +index 0000000..3d2968e --- /dev/null +++ b/lib/libutil/xmlrpc_util.pc.cmake @@ -0,0 +1,10 @@ @@ -803,16 +897,19 @@ index 0000000..98d24f4 +Version: @XMLRPC_C_VERSION@ + +Libs: -L${libdir} -lxmlrpc_util -+Cflags: ++Cflags: -I${includedir} diff --git a/lib/libwww_transport/CMakeLists.txt b/lib/libwww_transport/CMakeLists.txt new file mode 100644 -index 0000000..4744f9c +index 0000000..a494605 --- /dev/null +++ b/lib/libwww_transport/CMakeLists.txt -@@ -0,0 +1,4 @@ +@@ -0,0 +1,7 @@ +# -*- cmake -*- + +if(MUST_BUILD_LIBWWW_CLIENT) ++ list(APPEND transport_SOURCES ++ ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_libwww_transport.c ++ ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_libwww_transport.h) +endif(MUST_BUILD_LIBWWW_CLIENT) diff --git a/lib/util/CMakeLists.txt b/lib/util/CMakeLists.txt new file mode 100644 @@ -835,20 +932,23 @@ index 0000000..be6ded2 +add_library(util STATIC ${util_SOURCES}) diff --git a/lib/wininet_transport/CMakeLists.txt b/lib/wininet_transport/CMakeLists.txt new file mode 100644 -index 0000000..4f7408e +index 0000000..de3501c --- /dev/null +++ b/lib/wininet_transport/CMakeLists.txt -@@ -0,0 +1,4 @@ +@@ -0,0 +1,7 @@ +# -*- cmake -*- + +if(MUST_BUILD_WININET_CLIENT) ++ list(APPEND transport_SOURCES ++ ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_wininet_transport.c ++ ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_wininet_transport.h) +endif(MUST_BUILD_WININET_CLIENT) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 -index 0000000..c96f206 +index 0000000..a820602 --- /dev/null +++ b/src/CMakeLists.txt -@@ -0,0 +1,106 @@ +@@ -0,0 +1,107 @@ +# -*- cmake -*- + +if(ENABLE_LIBXML2_BACKEND) @@ -880,7 +980,7 @@ index 0000000..c96f206 + set(client_curl_CFLAGS ${CURL_CFLAGS}) + set(client_curl_LIBS ${CURL_LINK_FLAGS}) + set(xmlrpc_client_pkgconfig_req libcurl) -+ list(APPEND transport_SOURCES ${curl_srcdir}/xmlrpc_curl_transport.c ${curl_srcdir}/xmlrpc_curl_transport.h) ++ list(APPEND transport_SOURCES ${curl_srcdir}/xmlrpc_curl_transport.c) +endif(MUST_BUILD_CURL_CLIENT) + +set(client_CFLAGS "-I${wininet_srcdir} -I${libwww_srcdir} -I${curl_srcdir} ${client_wininet_CFLAGS} ${client_libwww_CFLAGS} ${client_curl_CFLAGS}") @@ -894,10 +994,11 @@ index 0000000..c96f206 + +### libxmlrpc.so +add_library(xmlrpc SHARED -+ trace.c ${xmlrpc_xml_parser} -+ xmlrpc_data.c xmlrpc_datetime.c xmlrpc_array.c xmlrpc_struct.c -+ xmlrpc_builddecomp.c xmlrpc_parse.c xmlrpc_serialize.c -+ xmlrpc_base64.c xmlrpc_utf8.c xmlrpc_authcookie.c) ++ resource.c trace.c version.c ${xmlrpc_xml_parser} ++ 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) + +set_target_properties(xmlrpc + PROPERTIES @@ -909,7 +1010,7 @@ index 0000000..c96f206 + +### libxmlrpc_client.so +add_library(xmlrpc_client SHARED -+ xmlrpc_client.c xmlrpc_client_global.c ${transport_SOURCES}) ++ xmlrpc_client.c xmlrpc_client_global.c xmlrpc_server_info.c ${transport_SOURCES}) + +target_link_libraries(xmlrpc_client xmlrpc ${client_LIBS}) +set_target_properties(xmlrpc_client @@ -920,7 +1021,7 @@ index 0000000..c96f206 + +### libxmlrpc_server.so +add_library(xmlrpc_server SHARED -+ registry.c system_method.c) ++ registry.c method.c system_method.c) +target_link_libraries(xmlrpc_server xmlrpc) +list(APPEND lib_TARGETS xmlrpc_server) +ensc_pkgconfig(xmlrpc_server) @@ -957,10 +1058,10 @@ index 0000000..c96f206 +enable_testing() diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt new file mode 100644 -index 0000000..9ab2530 +index 0000000..5f5d409 --- /dev/null +++ b/src/cpp/CMakeLists.txt -@@ -0,0 +1,48 @@ +@@ -0,0 +1,60 @@ +# -*- cmake -*- + +####### libxmlrpc++.so @@ -989,13 +1090,25 @@ index 0000000..9ab2530 +list(APPEND lib_TARGETS xmlrpc_server_abyss++) +ensc_pkgconfig(xmlrpc_server_abyss++) + ++####### libxmlrpc_server_pstream++.so ++add_library(xmlrpc_server_pstream++ SHARED server_pstream.cpp) ++target_link_libraries(xmlrpc_server_pstream++ xmlrpc_server++ xmlrpc_packetsocket) ++list(APPEND lib_TARGETS xmlrpc_server_pstream++) ++ensc_pkgconfig(xmlrpc_server_pstream++) ++ ++####### libxmlrpc_packetsocket.so ++add_library(xmlrpc_packetsocket SHARED packetsocket.cpp) ++target_link_libraries(xmlrpc_packetsocket xmlrpc++) ++list(APPEND lib_TARGETS xmlrpc_packetsocket) ++ensc_pkgconfig(xmlrpc_packetsocket) ++ +####### libxmlrpc_client++.so +add_library(xmlrpc_client++ SHARED -+ client.cpp client_simple.cpp curl.cpp libwww.cpp wininet.cpp) ++ client.cpp client_simple.cpp curl.cpp libwww.cpp wininet.cpp pstream.cpp) +set_target_properties(xmlrpc_client++ + PROPERTIES + COMPILE_FLAGS "-I${wininet_srcdir} -I${libwww_srcdir} -I${curl_srcdir}") -+target_link_libraries(xmlrpc_client++ xmlrpc++ xmlrpc_client) ++target_link_libraries(xmlrpc_client++ xmlrpc++ xmlrpc_client xmlrpc_packetsocket) +list(APPEND lib_TARGETS xmlrpc_client++) +ensc_pkgconfig(xmlrpc_client++) + @@ -1007,11 +1120,34 @@ index 0000000..9ab2530 +set_target_properties(${lib_TARGETS} + PROPERTIES + LINK_FLAGS ${XMLRPC_LINKER_FLAGS} -+ VERSION ${XMLRPC_C_LIBVERSION} -+ SOVERSION ${XMLRPC_C_SOVERSION}) ++ VERSION ${XMLRPC_CXX_LIBVERSION} ++ SOVERSION ${XMLRPC_CXX_SOVERSION}) +diff --git a/src/cpp/test/CMakeLists.txt b/src/cpp/test/CMakeLists.txt +new file mode 100644 +index 0000000..5b046b4 +--- /dev/null ++++ b/src/cpp/test/CMakeLists.txt +@@ -0,0 +1,17 @@ ++# -*- cmake -*- ++ ++set(test_SOURCES ++ test.cpp registry.cpp server_abyss.cpp server_pstream.cpp tools.cpp) ++ ++if(MUST_BUILD_CLIENT) ++ list(APPEND test_SOURCES testclient.cpp) ++ list(APPEND test_LIBS xmlrpc_client++) ++else(MUST_BUILD_CLIENT) ++ list(APPEND test_SOURCES testclient_dummy.c) ++endif(MUST_BUILD_CLIENT) ++ ++add_executable(src-test ${test_SOURCES}) ++target_link_libraries(src-test xmlrpc_server_abyss++ util ${test_LIBS}) ++ ++enable_testing() ++add_test(runtests src-test) diff --git a/src/cpp/xmlrpc++.pc.cmake b/src/cpp/xmlrpc++.pc.cmake new file mode 100644 -index 0000000..0bf5dc3 +index 0000000..3bfa992 --- /dev/null +++ b/src/cpp/xmlrpc++.pc.cmake @@ -0,0 +1,12 @@ @@ -1024,12 +1160,12 @@ index 0000000..0bf5dc3 +Description: XMLRPC C++ Base library +Version: @XMLRPC_C_VERSION@ + -+Requires.private: xmlrpc ++Requires.private: xmlrpc xmlrpc_util +Libs: -L${libdir} -lxmlrpc++ +Cflags: -I${includedir} diff --git a/src/cpp/xmlrpc_client++.pc.cmake b/src/cpp/xmlrpc_client++.pc.cmake new file mode 100644 -index 0000000..0357491 +index 0000000..bd6766b --- /dev/null +++ b/src/cpp/xmlrpc_client++.pc.cmake @@ -0,0 +1,12 @@ @@ -1042,12 +1178,12 @@ index 0000000..0357491 +Description: XMLRPC C++ Client library +Version: @XMLRPC_C_VERSION@ + -+Requires.private: xmlrpc++ xmlrpc_client ++Requires.private: xmlrpc++ xmlrpc_client xmlrpc_packetsocket xmlrpc xmlrpc_util +Libs: -L${libdir} -lxmlrpc_client++ +Cflags: -I${includedir} diff --git a/src/cpp/xmlrpc_cpp.pc.cmake b/src/cpp/xmlrpc_cpp.pc.cmake new file mode 100644 -index 0000000..7e21383 +index 0000000..8acc22f --- /dev/null +++ b/src/cpp/xmlrpc_cpp.pc.cmake @@ -0,0 +1,12 @@ @@ -1060,12 +1196,30 @@ index 0000000..7e21383 +Description: XMLRPC CPP library +Version: @XMLRPC_C_VERSION@ + -+Requires.private: xmlrpc xmlrpc_server xmlrpc_client ++Requires.private: xmlrpc xmlrpc_server xmlrpc_util +Libs: -L${libdir} -lxmlrpc_cpp +Cflags: -I${includedir} +diff --git a/src/cpp/xmlrpc_packetsocket.pc.cmake b/src/cpp/xmlrpc_packetsocket.pc.cmake +new file mode 100644 +index 0000000..4a8aedc +--- /dev/null ++++ b/src/cpp/xmlrpc_packetsocket.pc.cmake +@@ -0,0 +1,12 @@ ++bindir=@bindir@ ++prefix=@prefix@ ++libdir=@libdir@ ++includedir=@includedir@ ++ ++Name: xmlrpc_packetsocket ++Description: XMLRPC C++ packsetsocket library ++Version: @XMLRPC_C_VERSION@ ++ ++Requires.private: xmlrpc++ ++Libs: -L${libdir} -lxmlrpc_packetsocket ++Cflags: -I${includedir} diff --git a/src/cpp/xmlrpc_server++.pc.cmake b/src/cpp/xmlrpc_server++.pc.cmake new file mode 100644 -index 0000000..7ddcca8 +index 0000000..c769d54 --- /dev/null +++ b/src/cpp/xmlrpc_server++.pc.cmake @@ -0,0 +1,12 @@ @@ -1078,12 +1232,12 @@ index 0000000..7ddcca8 +Description: XMLRPC C++ Server library +Version: @XMLRPC_C_VERSION@ + -+Requires.private: xmlrpc++ xmlrpc_server ++Requires.private: xmlrpc++ xmlrpc_server xmlrpc xmlrpc_util +Libs: -L${libdir} -lxmlrpc_server++ +Cflags: -I${includedir} diff --git a/src/cpp/xmlrpc_server_abyss++.pc.cmake b/src/cpp/xmlrpc_server_abyss++.pc.cmake new file mode 100644 -index 0000000..f0e4cd0 +index 0000000..b325eff --- /dev/null +++ b/src/cpp/xmlrpc_server_abyss++.pc.cmake @@ -0,0 +1,12 @@ @@ -1096,18 +1250,37 @@ index 0000000..f0e4cd0 +Description: XMLRPC C++ Abyss-Server library +Version: @XMLRPC_C_VERSION@ + -+Requires.private: xmlrpc_server_abyss xmlrpc_server++ ++Requires.private: xmlrpc_server++ xmlrpc_server_abyss xmlrpc++ xmlrpc_abyss xmlrpc_util +Libs: -L${libdir} -lxmlrpc_server_abyss++ +Cflags: -I${includedir} +diff --git a/src/cpp/xmlrpc_server_pstream++.pc.cmake b/src/cpp/xmlrpc_server_pstream++.pc.cmake +new file mode 100644 +index 0000000..da5639d +--- /dev/null ++++ b/src/cpp/xmlrpc_server_pstream++.pc.cmake +@@ -0,0 +1,12 @@ ++bindir=@bindir@ ++prefix=@prefix@ ++libdir=@libdir@ ++includedir=@includedir@ ++ ++Name: xmlrpc_server_pstream++ ++Description: XMLRPC C++ pstream-Server library ++Version: @XMLRPC_C_VERSION@ ++ ++Requires.private: xmlrpc_server++ xmlrpc_packetsocket xmlrpc++ ++Libs: -L${libdir} -lxmlrpc_server_pstream++ ++Cflags: -I${includedir} diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt new file mode 100644 -index 0000000..1ad605b +index 0000000..28d5dae --- /dev/null +++ b/src/test/CMakeLists.txt -@@ -0,0 +1,27 @@ +@@ -0,0 +1,28 @@ +# -*- cmake -*- + +set(test_SOURCES ++ abyss.c abyss.h + test.c cgi.c method_registry.c parse_xml.c serialize.c server_abyss.c + value.c xml_data.c) + @@ -1152,7 +1325,7 @@ index 0000000..4c92f93 +Cflags: -I${includedir} diff --git a/src/xmlrpc_client.pc.cmake b/src/xmlrpc_client.pc.cmake new file mode 100644 -index 0000000..8e74c44 +index 0000000..7f28a15 --- /dev/null +++ b/src/xmlrpc_client.pc.cmake @@ -0,0 +1,12 @@ @@ -1165,12 +1338,12 @@ index 0000000..8e74c44 +Description: XMLRPC client library +Version: @XMLRPC_C_VERSION@ + -+Requires.private: xmlrpc @xmlrpc_client_pkgconfig_req@ ++Requires.private: xmlrpc @xmlrpc_client_pkgconfig_req@ xmlrpc_util +Libs: -L${libdir} -lxmlrpc_client @client_libwww_LIBS@ @client_wininet_LIBS@ +Cflags: -I${includedir} diff --git a/src/xmlrpc_server.pc.cmake b/src/xmlrpc_server.pc.cmake new file mode 100644 -index 0000000..cb7d4cd +index 0000000..d5c334e --- /dev/null +++ b/src/xmlrpc_server.pc.cmake @@ -0,0 +1,12 @@ @@ -1183,12 +1356,12 @@ index 0000000..cb7d4cd +Description: XMLRPC Server library +Version: @XMLRPC_C_VERSION@ + -+Requires.private: xmlrpc ++Requires.private: xmlrpc xmlrpc_util +Libs: -L${libdir} -lxmlrpc_server +Cflags: -I${includedir} diff --git a/src/xmlrpc_server_abyss.pc.cmake b/src/xmlrpc_server_abyss.pc.cmake new file mode 100644 -index 0000000..0357ff9 +index 0000000..48fa0b1 --- /dev/null +++ b/src/xmlrpc_server_abyss.pc.cmake @@ -0,0 +1,12 @@ @@ -1201,12 +1374,12 @@ index 0000000..0357ff9 +Description: XMLRPC Server Abyss library +Version: @XMLRPC_C_VERSION@ + -+Requires.private: xmlrpc_server xmlrpc_abyss ++Requires.private: xmlrpc_server xmlrpc_abyss xmlrpc xmlrpc_util +Libs: -L${libdir} -lxmlrpc_server_abyss +Cflags: -I${includedir} diff --git a/src/xmlrpc_server_cgi.pc.cmake b/src/xmlrpc_server_cgi.pc.cmake new file mode 100644 -index 0000000..8786b75 +index 0000000..4d174ef --- /dev/null +++ b/src/xmlrpc_server_cgi.pc.cmake @@ -0,0 +1,12 @@ @@ -1219,15 +1392,15 @@ index 0000000..8786b75 +Description: XMLRPC CGI-Server library +Version: @XMLRPC_C_VERSION@ + -+Requires.private: xmlrpc_server ++Requires.private: xmlrpc_server xmlrpc xmlrpc_util +Libs: -L${libdir} -lxmlrpc_server_cgi +Cflags: -I${includedir} diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt new file mode 100644 -index 0000000..14010f4 +index 0000000..6187433 --- /dev/null +++ b/tools/CMakeLists.txt -@@ -0,0 +1,9 @@ +@@ -0,0 +1,10 @@ +# -*- cmake -*- + +add_subdirectory(binmode-rpc-kit) @@ -1236,6 +1409,7 @@ index 0000000..14010f4 +add_subdirectory(xmlrpc) +add_subdirectory(xmlrpc_transport) + ++add_subdirectory(xmlrpc_cpp_proxy) +add_subdirectory(xml-rpc-api2cpp ) diff --git a/tools/binmode-rpc-kit/CMakeLists.txt b/tools/binmode-rpc-kit/CMakeLists.txt new file mode 100644 @@ -1301,6 +1475,29 @@ index 0000000..7409aed +++ b/tools/xmlrpc/config.h @@ -0,0 +1 @@ +#include +diff --git a/tools/xmlrpc_cpp_proxy/CMakeLists.txt b/tools/xmlrpc_cpp_proxy/CMakeLists.txt +new file mode 100644 +index 0000000..4166023 +--- /dev/null ++++ b/tools/xmlrpc_cpp_proxy/CMakeLists.txt +@@ -0,0 +1,17 @@ ++# -*- cmake -*- ++ ++add_executable(xmlrpc_cpp_proxy ++ proxyClass.cpp ++ proxyClass.hpp ++ systemProxy.cpp ++ systemProxy.hpp ++ xmlrpcMethod.cpp ++ xmlrpcMethod.hpp ++ xmlrpcType.cpp ++ xmlrpcType.hpp ++ xmlrpc_cpp_proxy.cpp ++) ++target_link_libraries(xmlrpc_cpp_proxy xmlrpc_client++) ++ ++install(TARGETS xmlrpc_cpp_proxy ++ RUNTIME DESTINATION bin) diff --git a/tools/xmlrpc_transport/CMakeLists.txt b/tools/xmlrpc_transport/CMakeLists.txt new file mode 100644 index 0000000..b73d7c0 @@ -1347,18 +1544,21 @@ index 0000000..1ec3cf6 + ; diff --git a/version.h.cmake b/version.h.cmake new file mode 100644 -index 0000000..35beafc +index 0000000..12ab86d --- /dev/null +++ b/version.h.cmake -@@ -0,0 +1,2 @@ +@@ -0,0 +1,5 @@ +/* This file was generated by a make rule */ -+#define XMLRPC_C_VERSION "@XMLRPC_C_VERSION@" ++#define XMLRPC_C_VERSION "@XMLRPC_C_VERSION@" ++#define XMLRPC_VERSION_MAJOR @XMLRPC_C_VERSION_MAJOR_NUM@ ++#define XMLRPC_VERSION_MINOR @XMLRPC_C_VERSION_MINOR_NUM@ ++#define XMLRPC_VERSION_POINT @XMLRPC_C_VERSION_POINT_NUM@ diff --git a/xmlrpc-c-config b/xmlrpc-c-config new file mode 100755 -index 0000000..8f4f51b +index 0000000..971800f --- /dev/null +++ b/xmlrpc-c-config -@@ -0,0 +1,67 @@ +@@ -0,0 +1,74 @@ +#! /bin/sh + +comp= @@ -1367,6 +1567,8 @@ index 0000000..8f4f51b +need_client= +need_server= +need_abyss= ++need_pstream= ++need_packetsocket= + +while test $# -gt 0; do + case $1 in @@ -1375,6 +1577,8 @@ index 0000000..8f4f51b + (cgi-server) comp="$comp xmlrpc_server_cgi";; + (c++2) need_cxx=1;; + (abyss-server) need_abyss=1;; ++ (pstream-server) need_pstream=1;; ++ (packetsocket) need_packetsocket=1;; + (client|libwww-client) need_client=1;; + (--) shift; break;; + (--*) break;; @@ -1396,6 +1600,9 @@ index 0000000..8f4f51b + test -z "$need_server" || comp="$comp xmlrpc_server++" +fi + ++test -z "$need_pstream" || comp="$comp xmlrpc_server_pstream++" ++test -z "$need_packetsocket" || comp="$comp xmlrpc_packetsocket" ++ +dummy_comp=xmlrpc_client + +case $1 in @@ -1428,16 +1635,14 @@ index 0000000..8f4f51b +exec pkg-config "$@" $comp diff --git a/xmlrpc_config.h.cmake b/xmlrpc_config.h.cmake new file mode 100644 -index 0000000..98b37ef +index 0000000..3ba3202 --- /dev/null +++ b/xmlrpc_config.h.cmake -@@ -0,0 +1,21 @@ +@@ -0,0 +1,87 @@ +/* -*- c -*- */ + +#ifndef H_XMLRPC_C_CONFIG_H + -+#cmakedefine HAVE_WCHAR_H -+#cmakedefine HAVE_SETENV +#define HAVE_SYS_IOCTL_H 0@HAVE_SYS_IOCTL_H@ + +#define VA_LIST_IS_ARRAY @VA_LIST_IS_ARRAY@ @@ -1445,14 +1650,82 @@ index 0000000..98b37ef +#define ATTR_UNUSED @ATTR_UNUSED@ +#define DIRECTORY_SEPARATOR "@DIRECTORY_SEPARATOR@" + -+#ifdef HAVE_WCHAR_H -+# define HAVE_UNICODE_WCHAR 1 -+#else -+# define HAVE_UNICODE_WCHAR 0 ++#cmakedefine HAVE_WCHAR_H 1 ++#cmakedefine HAVE_SETENV 1 ++#cmakedefine HAVE_STRCASECMP 1 ++#cmakedefine HAVE__STRICMP 1 ++#cmakedefine HAVE_STRICMP 1 ++#cmakedefine HAVE_GETTIMEOFDAY 1 ++#cmakedefine HAVE_SETGROUPS 1 ++#cmakedefine HAVE_ASPRINTF 1 ++#cmakedefine HAVE_PSELECT 1 ++#cmakedefine HAVE_WCSNCMP 1 ++#cmakedefine HAVE_LOCALTIME_R 1 ++#cmakedefine HAVE_GMTIME_R 1 ++ ++#define HAVE_UNICODE_WCHAR HAVE_WCHAR_H ++ ++/* Xmlrpc-c code uses __inline__ to declare functions that should ++ be compiled as inline code. GNU C recognizes the __inline__ keyword. ++ Others recognize 'inline' or '__inline' or nothing at all to say ++ a function should be inlined. ++ ++ We could make 'configure' simply do a trial compile to figure out ++ which one, but for now, this approximation is easier: ++*/ ++#if (!defined(__GNUC__)) ++ #if (!defined(__inline__)) ++ #if (defined(__sgi) || defined(_AIX) || defined(_MSC_VER)) ++ #define __inline__ __inline ++ #else ++ #define __inline__ ++ #endif ++ #endif +#endif + ++/* MSVCRT means we're using the Microsoft Visual C++ runtime library */ ++ ++#ifdef _MSC_VER ++/* The compiler is Microsoft Visual C++. */ ++ #define MSVCRT _MSC_VER ++#else ++ #define MSVCRT 0 ++#endif ++ ++#if MSVCRT ++ /* The MSVC runtime library _does_ have a 'struct timeval', but it is ++ part of the Winsock interface (along with select(), which is probably ++ its intended use), so isn't intended for use for general timekeeping. ++ */ ++ #define HAVE_TIMEVAL 0 ++ #define HAVE_TIMESPEC 0 ++#else ++ #define HAVE_TIMEVAL 1 ++ /* timespec is Posix.1b. If we need to work on a non-Posix.1b non-Windows ++ system, we'll have to figure out how to make Configure determine this. ++ */ ++ #define HAVE_TIMESPEC 1 ++#endif ++ ++#if defined(_MSC_VER) ++/* Starting with MSVC 8, the runtime library defines various POSIX functions ++ such as strdup() whose names violate the ISO C standard (the standard ++ says the strXXX names are reserved for the standard), but warns you of ++ the standards violation. That warning is 4996, along with other warnings ++ that tell you you're using a function that Microsoft thinks you ++ shouldn't. ++ ++ Well, POSIX is more important than that element of ISO C, so we disable ++ that warning. ++ ++ FYI, msvcrt also defines _strdup(), etc, which doesn't violate the ++ naming standard. But since other environments don't define _strdup(), ++ we can't use it in portable code. ++*/ ++#pragma warning(disable:4996) ++#endif + +#endif -- -1.5.0.5 +1.5.4.1 diff --git a/sources b/sources index bba454f..903a641 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -e519a43145b90e814fcfb0af1db1d91c xmlrpc-1.06.23.tgz +40034fbffbd7d365532dee768c1a8d47 xmlrpc-c-1.13.07.tar.bz2 diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec index 4689509..bb6c49f 100644 --- a/xmlrpc-c.spec +++ b/xmlrpc-c.spec @@ -1,15 +1,26 @@ +%global advanced_branch 1 + %{!?release_func:%global release_func() %1%{?dist}} Summary: A lightweight RPC library based on XML and HTTP Name: xmlrpc-c -Version: 1.06.23 +Version: 1.13.07 Release: %release_func 2 License: BSD/PSF -- see COPYING Group: System Environment/Libraries URL: http://xmlrpc-c.sourceforge.net/ -Source0: http://dl.sourceforge.net/sourceforge/xmlrpc-c/xmlrpc-%version.tgz +%{!?advanced_branch:Source0: http://dl.sourceforge.net/sourceforge/xmlrpc-c/xmlrpc-%version.tgz} +# generated by 'make svn-sources [SVN_BASEVER=%version]'. Unfortunately, +# upstream does not tag versions so we must fetch from the branch and +# check which version was used for it +%{?advanced_branch:Source0: xmlrpc-c-%version.tar.bz2} Patch6: xmlrpc-c-1.06.04-sizet.patch -Patch100: http://ensc.de/xmlrpc-c/0001-make-cmake-transition.txt +Patch100: make-cmake-transition.patch +Patch101: added-virtual-destructors-for-classes-with-virtual-m.patch +Patch102: fixed-broken-format-string-modifiers-for-size_t-type.patch +Patch103: fixed-extra-classname-specification.patch +Patch104: fixed-uninitialised-usage-of-buffer-attribute.patch + BuildRoot: %_tmppath/%name-%version-%release-root #BuildRequires: w3c-libwww-devel BuildRequires: cmake @@ -50,16 +61,20 @@ This package contains some handy XML-RPC demo applications. %prep -%setup -q -n xmlrpc-%version -%patch6 -p1 -b .sizet +%setup -q +#patch6 -p1 -b .sizet %patch100 -p1 +%patch101 -p1 +%patch102 -p1 +%patch103 -p1 +%patch104 -p1 ## not needed... rm doc/{INSTALL,configure_doc} %build -mkdir fedora +mkdir -p fedora cd fedora export CFLAGS="$RPM_OPT_FLAGS" export CXXFLAGS="$RPM_OPT_FLAGS" @@ -111,9 +126,14 @@ rm -rf $RPM_BUILD_ROOT %_bindir/xmlrpc %_bindir/xmlrpc_transport %_bindir/xml-rpc-api2cpp +%_bindir/xmlrpc_cpp_proxy %changelog +* Tue Feb 26 2008 Enrico Scholz - 1.13.07-2 +- moved to advanced branched; rediffed/updated existing cmake patch + and fixed other compilation issues (#369841) + * Mon Feb 18 2008 Fedora Release Engineering - 1.06.23-2 - Autorebuild for GCC 4.3