moved to advanced branch

This commit is contained in:
ensc 2008-02-26 21:27:37 +00:00
parent 01ef5a9f94
commit fea1e8af88
9 changed files with 766 additions and 119 deletions

View File

@ -1,2 +1,3 @@
xmlrpc-c-*.tgz
xmlrpc-c-*.tar.bz2
x.patch

View File

@ -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

View File

@ -0,0 +1,66 @@
From 65f37adf3bf79cd61f88004b589ed8a5e6a0e1c0 Mon Sep 17 00:00:00 2001
From: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
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

View File

@ -0,0 +1,231 @@
From 1fa1d1705b07bd6cb1e3022896a12a0e75d55497 Mon Sep 17 00:00:00 2001
From: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
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 <methodName> 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,
"<methodCall> has extraneous children, other than "
- "<methodName> and <params>. Total child count = %u",
+ "<methodName> and <params>. 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,
- "<fault> element should have 1 child, but it has %u.",
+ "<fault> 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,
- "<methodResponse> has %u children, should have 1.",
+ "<methodResponse> 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

View File

@ -0,0 +1,25 @@
From 9aced7f1435d1277ea4aea13790da3691b3dc8e2 Mon Sep 17 00:00:00 2001
From: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
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

View File

@ -0,0 +1,25 @@
From d18cb86d6512d374e8a42e046f82e6cc4ceb2c2a Mon Sep 17 00:00:00 2001
From: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
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

View File

@ -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 <enrico.scholz@informatik.tu-chemnitz.de>
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 <xmlrpc-c/...> 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 <xmlrpc-c/...> 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 <winsock.h>. Anyone who
+ uses XMLRPC_SOCKET on a WIN32 system must #include
+ <winsock.h>
+ */
+ #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 <xmlrpc_config.h>
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

View File

@ -1 +1 @@
e519a43145b90e814fcfb0af1db1d91c xmlrpc-1.06.23.tgz
40034fbffbd7d365532dee768c1a8d47 xmlrpc-c-1.13.07.tar.bz2

View File

@ -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 <enrico.scholz@informatik.tu-chemnitz.de> - 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 <rel-eng@fedoraproject.org> - 1.06.23-2
- Autorebuild for GCC 4.3