This commit is contained in:
ensc 2009-11-21 14:02:54 +00:00
parent d7ed89aac1
commit b888d17ff0
10 changed files with 374 additions and 128 deletions

View File

@ -1 +1 @@
xmlrpc-c-1.16.6.tar.bz2
xmlrpc-c-1.20.3.tar.bz2

View File

@ -1 +1 @@
1.16.06
1.20.03

View File

@ -1 +1 @@
8389b0e11d93a61d9bd130f0cb77eaa4 xmlrpc-c-1.16.6.tar.bz2
d987c3d989ca1a4774ce12fada437238 xmlrpc-c-1.20.3.tar.bz2

View File

@ -1,36 +1,36 @@
From d446ef878fb5984180ecf15a961af9550ae4f1c8 Mon Sep 17 00:00:00 2001
From afe99001ee31f4cf827fc6aee0b2088bd4e7b85b Mon Sep 17 00:00:00 2001
From: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Date: Sat, 5 Apr 2008 10:55:02 +0200
Subject: [PATCH] make -> cmake transition
Subject: [PATCH 1/6] make -> cmake transition
---
CMakeLists.txt | 254 +++++++++++++++++++++++++++
CMakeLists.txt | 275 +++++++++++++++++++++++++++
cmake/try-attr.cc | 3 +
cmake/va-list-is-array.c | 9 +
examples/CMakeLists.txt | 57 ++++++
examples/config.h | 1 +
examples/cpp/CMakeLists.txt | 30 +++
examples/cpp/CMakeLists.txt | 34 ++++
include/CMakeLists.txt | 3 +
include/xmlrpc-c/CMakeLists.txt | 73 ++++++++
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 | 64 +++++++
lib/abyss/src/CMakeLists.txt | 66 +++++++
lib/abyss/src/xmlrpc_abyss.pc.cmake | 12 ++
lib/curl_transport/CMakeLists.txt | 20 ++
lib/expat/CMakeLists.txt | 9 +
lib/expat/gennmtab/CMakeLists.txt | 3 +
lib/expat/xmlparse/CMakeLists.txt | 7 +
lib/expat/xmlparse/xmlrpc_xmlparse.pc.cmake | 12 ++
lib/expat/xmltok/CMakeLists.txt | 20 ++
lib/expat/xmltok/CMakeLists.txt | 22 ++
lib/expat/xmltok/xmlrpc_xmltok.pc.cmake | 9 +
lib/libutil/CMakeLists.txt | 24 +++
lib/libutil/CMakeLists.txt | 25 +++
lib/libutil/xmlrpc_util.pc.cmake | 10 +
lib/libwww_transport/CMakeLists.txt | 7 +
lib/util/CMakeLists.txt | 17 ++
lib/wininet_transport/CMakeLists.txt | 7 +
src/CMakeLists.txt | 121 +++++++++++++
src/cpp/CMakeLists.txt | 70 ++++++++
src/CMakeLists.txt | 121 ++++++++++++
src/cpp/CMakeLists.txt | 70 +++++++
src/cpp/test/CMakeLists.txt | 17 ++
src/cpp/xmlrpc++.pc.cmake | 12 ++
src/cpp/xmlrpc_client++.pc.cmake | 12 ++
@ -46,22 +46,23 @@ Subject: [PATCH] make -> cmake transition
src/xmlrpc_server.pc.cmake | 12 ++
src/xmlrpc_server_abyss.pc.cmake | 12 ++
src/xmlrpc_server_cgi.pc.cmake | 12 ++
tools/CMakeLists.txt | 12 ++
tools/CMakeLists.txt | 21 ++
tools/binmode-rpc-kit/CMakeLists.txt | 2 +
tools/lib/CMakefiles.txt | 1 +
tools/turbocharger/CMakeLists.txt | 1 +
tools/xml-rpc-api2cpp/CMakeLists.txt | 15 ++
tools/xml-rpc-api2txt/CMakeLists.txt | 7 +
tools/xmlrpc/CMakeLists.txt | 17 ++
tools/xmlrpc/config.h | 1 +
tools/xmlrpc_cpp_proxy/CMakeLists.txt | 17 ++
tools/xmlrpc_pstream/CMakefiles.txt | 6 +
tools/xmlrpc_pstream/CMakeLists.txt | 16 ++
tools/xmlrpc_transport/CMakeLists.txt | 9 +
tools/xmlrpc_transport/config.h | 1 +
transport_config.h.cmake | 16 ++
version.h.cmake | 5 +
xmlrpc-c-config | 80 +++++++++
xmlrpc_config.h.cmake | 99 +++++++++++
57 files changed, 1379 insertions(+), 0 deletions(-)
xmlrpc-c-config | 108 +++++++++++
xmlrpc_config.h.cmake | 105 ++++++++++
58 files changed, 1469 insertions(+), 0 deletions(-)
create mode 100644 CMakeLists.txt
create mode 100644 cmake/try-attr.cc
create mode 100644 cmake/va-list-is-array.c
@ -109,10 +110,11 @@ Subject: [PATCH] make -> cmake transition
create mode 100644 tools/lib/CMakefiles.txt
create mode 100644 tools/turbocharger/CMakeLists.txt
create mode 100644 tools/xml-rpc-api2cpp/CMakeLists.txt
create mode 100644 tools/xml-rpc-api2txt/CMakeLists.txt
create mode 100644 tools/xmlrpc/CMakeLists.txt
create mode 100644 tools/xmlrpc/config.h
create mode 100644 tools/xmlrpc_cpp_proxy/CMakeLists.txt
create mode 100644 tools/xmlrpc_pstream/CMakefiles.txt
create mode 100644 tools/xmlrpc_pstream/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
@ -122,19 +124,22 @@ Subject: [PATCH] make -> cmake transition
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..800f7fd
index 0000000..f64b143
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,254 @@
@@ -0,0 +1,275 @@
+## -*- cmake -*-
+project(xmlrpc-c)
+include(FindPkgConfig)
+include(CheckIncludeFile)
+include(CheckFunctionExists)
+
+cmake_minimum_required(VERSION 2.6)
+
+
+set(XMLRPC_C_VERSION_MAJOR "1" CACHE STRING "Version (major) of xmlrpc-c")
+set(XMLRPC_C_VERSION_MINOR "16" CACHE STRING "Version (minor) of xmlrpc-c")
+set(XMLRPC_C_VERSION_POINT "6" CACHE STRING "Version (point) of xmlrpc-c")
+set(XMLRPC_C_VERSION_MINOR "20" CACHE STRING "Version (minor) of xmlrpc-c")
+set(XMLRPC_C_VERSION_POINT "03" CACHE STRING "Version (point) of xmlrpc-c")
+
+set(XMLRPC_C_VERSION
+ "${XMLRPC_C_VERSION_MAJOR}.${XMLRPC_C_VERSION_MINOR}.${XMLRPC_C_VERSION_POINT}"
@ -143,8 +148,8 @@ index 0000000..800f7fd
+set(XMLRPC_C_LIBVERSION "3.${XMLRPC_C_VERSION_MINOR}")
+set(XMLRPC_C_SOVERSION "3")
+
+set(XMLRPC_CXX_LIBVERSION "4.${XMLRPC_C_VERSION_MINOR}")
+set(XMLRPC_CXX_SOVERSION "4")
+set(XMLRPC_CXX_LIBVERSION "6.${XMLRPC_C_VERSION_MINOR}")
+set(XMLRPC_CXX_SOVERSION "6")
+
+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}")
@ -184,7 +189,6 @@ index 0000000..800f7fd
+ endif(NOT MUST_BUILD_LIBWWW_CLIENT)
+endmacro(ensc_set_link_exe_flags)
+
+
+###########
+if(WIN32)
+ find_program(WININET_CONFIG_EXECUTABLE wininet-config)
@ -264,10 +268,26 @@ index 0000000..800f7fd
+ pkg_check_modules(LIBXML2 libxml-2.0)
+
+ if(LIBXML2_FOUND)
+ set(libxml_pkgconfig libxml-2.0) # TODO: enhance more alternative modules
+ set(libxml_pkgconfig libxml-2.0) # TODO: add more alternative modules
+ endif(LIBXML2_FOUND)
+endif(ENABLE_LIBXML2_BACKEND)
+
+###########
+
+set(ENABLE_TOOLS 0 CACHE BOOL "Build the tools")
+pkg_check_modules(NCURSES ncurses)
+find_library(READLINE readline)
+
+if (ENABLE_TOOLS)
+ message(STATUS "Building tools")
+ if (MUST_BUILD_LIBWWW_CLIENT OR MUST_BUILD_WININET_CLIENT OR MUST_BUILD_CURL_CLIENT)
+ if (NCURSES_FOUND AND READLINE)
+ set(BUILD_XMLRPC_PSTREAM 1)
+ message(STATUS "Building xmlrpc_pstream tool")
+ endif()
+ set(BUILD_TOOLS 1)
+ endif()
+endif()
+
+#### <wchar.h> tests
+check_include_file(wchar.h _have_wchar_h)
@ -379,7 +399,10 @@ index 0000000..800f7fd
+add_subdirectory(examples)
+add_subdirectory(include)
+add_subdirectory(src)
+add_subdirectory(tools)
+
+if (BUILD_TOOLS)
+ add_subdirectory(tools)
+endif()
diff --git a/cmake/try-attr.cc b/cmake/try-attr.cc
new file mode 100644
index 0000000..4668c5b
@ -476,16 +499,19 @@ 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..f27edbb
index 0000000..093a75d
--- /dev/null
+++ b/examples/cpp/CMakeLists.txt
@@ -0,0 +1,30 @@
@@ -0,0 +1,34 @@
+# -*- cmake -*-
+
+if(ENABLE_ABYSS_SERVER)
+ set(abyss_serverxx_LIBS xmlrpc_server_abyss++)
+
+ ensc_add_example(xmlrpc_inetd_server cpp abyss_serverxx)
+ ensc_add_example(xmlrpc_loop_server cpp abyss_serverxx)
+ ensc_add_example(xmlrpc_sample_add_server cpp abyss_serverxx)
+ ensc_add_example(callinfo_abyss_server cpp abyss_serverxx)
+endif(ENABLE_ABYSS_SERVER)
+
+if (ENABLE_CGI_SERVER)
@ -506,6 +532,7 @@ index 0000000..f27edbb
+
+set(pstream_serverxx_LIBS xmlrpc_server_pstream++)
+ensc_add_example(pstream_inetd_server cpp pstream_serverxx)
+ensc_add_example(pstream_serial_server cpp pstream_serverxx)
+
+
+
@ -663,10 +690,10 @@ 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..e0373e6
index 0000000..e7f89bf
--- /dev/null
+++ b/lib/abyss/src/CMakeLists.txt
@@ -0,0 +1,64 @@
@@ -0,0 +1,66 @@
+## -*- cmake -*-
+
+set(xmlrpc_abyss_SOURCES
@ -704,6 +731,8 @@ index 0000000..e0373e6
+ trace.c
+ trace.h)
+
+add_definitions(-D_UNIX)
+
+if(ENABLE_ABYSS_THREADS)
+ list(APPEND xmlrpc_abyss_SOURCES thread_pthread.c)
+else(ENABLE_ABYSS_THREADS)
@ -832,14 +861,16 @@ index 0000000..5b2a7e4
+Cflags:
diff --git a/lib/expat/xmltok/CMakeLists.txt b/lib/expat/xmltok/CMakeLists.txt
new file mode 100644
index 0000000..c3247ad
index 0000000..359c4e4
--- /dev/null
+++ b/lib/expat/xmltok/CMakeLists.txt
@@ -0,0 +1,20 @@
@@ -0,0 +1,22 @@
+# -*- cmake -*-
+
+include_directories(${CMAKE_CURRENT_BINARY_DIR})
+
+add_definitions(-DXML_BYTE_ORDER=0)
+
+add_library(xmlrpc_xmltok STATIC
+ xmltok.c xmlrole.c ${CMAKE_CURRENT_BINARY_DIR}/nametab.h)
+
@ -873,14 +904,15 @@ index 0000000..88e7ad8
+Cflags:
diff --git a/lib/libutil/CMakeLists.txt b/lib/libutil/CMakeLists.txt
new file mode 100644
index 0000000..0f9a7f3
index 0000000..06136db
--- /dev/null
+++ b/lib/libutil/CMakeLists.txt
@@ -0,0 +1,24 @@
@@ -0,0 +1,25 @@
+# -*- cmake -*-
+
+add_library(xmlrpc_util SHARED
+ asprintf.c
+ base64.c
+ error.c
+ make_printable.c
+ memblock.c
@ -968,7 +1000,7 @@ index 0000000..17535ab
+endif(MUST_BUILD_WININET_CLIENT)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 0000000..8490f9d
index 0000000..4c03b5b
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,121 @@
@ -1027,7 +1059,7 @@ index 0000000..8490f9d
+
+### libxmlrpc.so
+add_library(xmlrpc SHARED
+ double.c parse_value.c resource.c trace.c version.c
+ double.c parse_datetime.c parse_value.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
@ -1095,7 +1127,7 @@ index 0000000..8490f9d
+enable_testing()
diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt
new file mode 100644
index 0000000..8bfe077
index 0000000..345c5ac
--- /dev/null
+++ b/src/cpp/CMakeLists.txt
@@ -0,0 +1,70 @@
@ -1138,7 +1170,7 @@ index 0000000..8bfe077
+endif(ENABLE_CGI_SERVER)
+
+####### libxmlrpc_server_pstream++.so
+add_library(xmlrpc_server_pstream++ SHARED server_pstream.cpp)
+add_library(xmlrpc_server_pstream++ SHARED server_pstream.cpp server_pstream_conn)
+target_link_libraries(xmlrpc_server_pstream++ xmlrpc_server++ xmlrpc_packetsocket)
+list(APPEND lib_TARGETS xmlrpc_server_pstream++)
+ensc_pkgconfig(xmlrpc_server_pstream++)
@ -1471,22 +1503,31 @@ index 0000000..4d174ef
+Cflags: -I${includedir}
diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
new file mode 100644
index 0000000..750fed4
index 0000000..0bc45a9
--- /dev/null
+++ b/tools/CMakeLists.txt
@@ -0,0 +1,12 @@
@@ -0,0 +1,21 @@
+# -*- cmake -*-
+
+add_subdirectory(lib)
+
+add_subdirectory(binmode-rpc-kit)
+add_subdirectory(turbocharger)
+
+add_subdirectory(xmlrpc)
+add_subdirectory(xmlrpc_transport)
+if (MUST_BUILD_CLIENT)
+ add_subdirectory(xmlrpc)
+ add_subdirectory(xmlrpc_transport)
+
+add_subdirectory(xmlrpc_cpp_proxy)
+add_subdirectory(xml-rpc-api2cpp )
+
+ if (ENABLE_CPLUSPLUS)
+ add_subdirectory(xml-rpc-api2cpp)
+ add_subdirectory(xml-rpc-api2txt)
+ add_subdirectory(xmlrpc_cpp_proxy)
+
+ if (BUILD_XMLRPC_PSTREAM AND ENABLE_CGI_SERVER)
+ add_subdirectory(xmlrpc_pstream)
+ endif()
+ endif()
+endif()
diff --git a/tools/binmode-rpc-kit/CMakeLists.txt b/tools/binmode-rpc-kit/CMakeLists.txt
new file mode 100644
index 0000000..a707c75
@ -1511,7 +1552,7 @@ index 0000000..342423d
+# -*- cmake -*-
diff --git a/tools/xml-rpc-api2cpp/CMakeLists.txt b/tools/xml-rpc-api2cpp/CMakeLists.txt
new file mode 100644
index 0000000..c759dec
index 0000000..1e9134a
--- /dev/null
+++ b/tools/xml-rpc-api2cpp/CMakeLists.txt
@@ -0,0 +1,15 @@
@ -1523,13 +1564,26 @@ index 0000000..c759dec
+ XmlRpcFunction.cpp
+ XmlRpcClass.cpp
+ SystemProxy.cpp)
+target_link_libraries(xml-rpc-api2cpp xmlrpc_cpp xmlrpc_client xmlrpc_server)
+target_link_libraries(xml-rpc-api2cpp xmlrpc_cpp xmlrpc_client)
+
+install(TARGETS xml-rpc-api2cpp
+ RUNTIME DESTINATION bin)
+
+install(FILES xml-rpc-api2cpp.1
+ DESTINATION ${mandir}/man1)
diff --git a/tools/xml-rpc-api2txt/CMakeLists.txt b/tools/xml-rpc-api2txt/CMakeLists.txt
new file mode 100644
index 0000000..5b01824
--- /dev/null
+++ b/tools/xml-rpc-api2txt/CMakeLists.txt
@@ -0,0 +1,7 @@
+# -*- cmake -*-
+
+install(PROGRAMS xml-rpc-api2txt
+ DESTINATION ${bindir})
+
+install(FILES xml-rpc-api2txt.1
+ DESTINATION ${mandir}/man1)
diff --git a/tools/xmlrpc/CMakeLists.txt b/tools/xmlrpc/CMakeLists.txt
new file mode 100644
index 0000000..da01ec3
@ -1583,18 +1637,28 @@ index 0000000..4166023
+
+install(TARGETS xmlrpc_cpp_proxy
+ RUNTIME DESTINATION bin)
diff --git a/tools/xmlrpc_pstream/CMakefiles.txt b/tools/xmlrpc_pstream/CMakefiles.txt
diff --git a/tools/xmlrpc_pstream/CMakeLists.txt b/tools/xmlrpc_pstream/CMakeLists.txt
new file mode 100644
index 0000000..67ae8c5
index 0000000..b277bc8
--- /dev/null
+++ b/tools/xmlrpc_pstream/CMakefiles.txt
@@ -0,0 +1,6 @@
+++ b/tools/xmlrpc_pstream/CMakeLists.txt
@@ -0,0 +1,16 @@
+# -*- cmake -*-
+
+add_executable(xmlrpc_pstream
+ xmlrpc_pstream.cpp
+ ${tools_lib_SOURCES})
+target_link_libraries(xmlrpc_pstream readline util)
+ ../lib/dumpvalue.c)
+
+target_link_libraries(xmlrpc_pstream
+ ${READLINE}
+ ${NCURSES_LIBRARIES}
+ xmlrpc_client++
+ util)
+
+include_directories(../lib/include)
+
+install(TARGETS xmlrpc_pstream
+ RUNTIME DESTINATION bin)
diff --git a/tools/xmlrpc_transport/CMakeLists.txt b/tools/xmlrpc_transport/CMakeLists.txt
new file mode 100644
index 0000000..b73d7c0
@ -1641,7 +1705,7 @@ index 0000000..1ec3cf6
+ ;
diff --git a/version.h.cmake b/version.h.cmake
new file mode 100644
index 0000000..12ab86d
index 0000000..0c964a3
--- /dev/null
+++ b/version.h.cmake
@@ -0,0 +1,5 @@
@ -1652,10 +1716,10 @@ index 0000000..12ab86d
+#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..c32555e
index 0000000..327fad7
--- /dev/null
+++ b/xmlrpc-c-config
@@ -0,0 +1,80 @@
@@ -0,0 +1,108 @@
+#! /bin/sh
+
+comp=
@ -1668,6 +1732,33 @@ index 0000000..c32555e
+need_packetsocket=
+need_cgi=
+
+show_help() {
+ cat <<EOF
+Usage: xmlrpc-c-config <feature> ... <option> ...
+
+The features are:
+ c++ legacy C++ wrapper API
+ c++2 modern C++ API
+ client client functions
+ cgi-server CGI-based server functions
+ abyss-server ABYSS-based server functions
+ pstream-server pstream-based server functions
+ server-util basic server functions (implied by *-server)
+
+Options are:
+ --version The version number of the package
+ --features List all features (aka modules) currently installed
+ --cflags C compiler flags to use when '#include'ing package headers
+ --libs Libraries and flags to use when linking programs normally
+ --ldadd Libraries to use with automake
+ --ldflags Flags to use with automake & libtool
+ --prefix The prefix under which the package was installed
+EOF
+ exit $1
+}
+
+test $# -ne 0 || show_help 1 >&2
+
+while test $# -gt 0; do
+ case $1 in
+ (c++) comp="$comp xmlrpc_cpp";;
@ -1678,6 +1769,7 @@ index 0000000..c32555e
+ (pstream-server) need_pstream=1;;
+ (packetsocket) need_packetsocket=1;;
+ (client|libwww-client) need_client=1;;
+ (--help) show_help 0;;
+ (--) shift; break;;
+ (--*) break;;
+ (*)
@ -1738,10 +1830,10 @@ index 0000000..c32555e
+exec pkg-config "$@" $comp
diff --git a/xmlrpc_config.h.cmake b/xmlrpc_config.h.cmake
new file mode 100644
index 0000000..1c9ece8
index 0000000..e4454e8
--- /dev/null
+++ b/xmlrpc_config.h.cmake
@@ -0,0 +1,99 @@
@@ -0,0 +1,105 @@
+/* -*- c -*- */
+
+#ifndef H_XMLRPC_C_CONFIG_H
@ -1822,6 +1914,12 @@ index 0000000..1c9ece8
+ #define HAVE_REGEX 1
+#endif
+
+#if MSVCRT
+ #define XMLRPC_SOCKETPAIR xmlrpc_win32_socketpair
+#else
+ #define XMLRPC_SOCKETPAIR socketpair
+#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
@ -1842,5 +1940,5 @@ index 0000000..1c9ece8
+
+#endif
--
1.6.0.4
1.6.5.2

View File

@ -1,7 +1,7 @@
From c589ecbb9258837fa8825a004b98bf8a46b2381c Mon Sep 17 00:00:00 2001
From fceba968292c52b67e331384206652350d5331ea Mon Sep 17 00:00:00 2001
From: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Date: Sat, 5 Apr 2008 11:41:34 +0200
Subject: [PATCH] Use proper datatypes for 'long long'
Subject: [PATCH 3/6] Use proper datatypes for 'long long'
xmlrpc-c uses 'long long' at some places (e.g. in printf
statements with PRId64) under the assumption that it has a
@ -22,7 +22,7 @@ for now, the patch uses datatypes with exact widths.
3 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/include/xmlrpc-c/base.h b/include/xmlrpc-c/base.h
index 6cf1fc8..886d39b 100644
index a768b70..0069fc2 100644
--- a/include/xmlrpc-c/base.h
+++ b/include/xmlrpc-c/base.h
@@ -5,7 +5,9 @@
@ -34,8 +34,8 @@ index 6cf1fc8..886d39b 100644
+#include <stdint.h>
#include <xmlrpc-c/util.h>
#include <xmlrpc-c/config.h>
/* Defines XMLRPC_HAVE_WCHAR, XMLRPC_INT64 */
@@ -36,9 +38,9 @@ extern unsigned int const xmlrpc_version_point;
/* Defines XMLRPC_HAVE_WCHAR, XMLRPC_INT64, XMLRPC_HAVE_TIMEVAL */
@@ -40,9 +42,9 @@ extern unsigned int const xmlrpc_version_point;
typedef signed int xmlrpc_int;
/* An integer of the type defined by XML-RPC <int>; i.e. 32 bit */
@ -47,7 +47,7 @@ index 6cf1fc8..886d39b 100644
/* An integer of the type defined by "XML-RPC" <i8>; i.e. 64 bit */
typedef int xmlrpc_bool;
/* A boolean (of the type defined by XML-RPC <boolean>, but there's
@@ -113,7 +115,7 @@ extern xmlrpc_type xmlrpc_value_type (xmlrpc_value* const value);
@@ -130,7 +132,7 @@ extern xmlrpc_type xmlrpc_value_type (xmlrpc_value* const value);
xmlrpc_value *
xmlrpc_int_new(xmlrpc_env * const envP,
@ -56,7 +56,7 @@ index 6cf1fc8..886d39b 100644
xmlrpc_value *
xmlrpc_i8_new(xmlrpc_env * const envP,
@@ -122,7 +124,7 @@ xmlrpc_i8_new(xmlrpc_env * const envP,
@@ -139,7 +141,7 @@ xmlrpc_i8_new(xmlrpc_env * const envP,
void
xmlrpc_read_int(xmlrpc_env * const envP,
const xmlrpc_value * const valueP,
@ -93,7 +93,7 @@ index 67c636b..60f7df9 100644
if (longlongvalue < minimum)
diff --git a/src/cpp/value.cpp b/src/cpp/value.cpp
index ff3a011..9f2f88e 100644
index e952a5f..fa2e5ce 100644
--- a/src/cpp/value.cpp
+++ b/src/cpp/value.cpp
@@ -265,7 +265,7 @@ value_int::value_int(xmlrpc_c::value const baseValue) {
@ -106,5 +106,5 @@ index ff3a011..9f2f88e 100644
xmlrpc_read_int(&env.env_c, this->cValueP, &retval);
--
1.6.0.4
1.6.5.2

View File

@ -1,12 +1,15 @@
From f9eeb8d7996aa84456bd4ce1f17d71f7d65fc4da Mon Sep 17 00:00:00 2001
From 39c5b1cac226afa9dd5511fc55886691473fc730 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
Subject: [PATCH 2/6] fixed broken format string modifiers for size_t typed arguments
---
lib/abyss/src/socket_unix.c | 4 ++--
lib/libutil/memblock.c | 2 +-
lib/libutil/utf8.c | 4 ++--
src/cpp/packetsocket.cpp | 6 +++---
src/cpp/server_cgi.cpp | 2 +-
src/parse_datetime.c | 2 +-
src/xmlrpc_data.c | 2 +-
src/xmlrpc_datetime.c | 2 +-
src/xmlrpc_decompose.c | 4 ++--
@ -14,7 +17,8 @@ Subject: [PATCH] fixed broken format string modifiers for size_t typed arguments
src/xmlrpc_server_abyss.c | 2 +-
src/xmlrpc_string.c | 8 ++++----
tools/xmlrpc/xmlrpc.c | 2 +-
10 files changed, 18 insertions(+), 18 deletions(-)
tools/xmlrpc_pstream/xmlrpc_pstream.cpp | 2 +-
14 files changed, 25 insertions(+), 25 deletions(-)
diff --git a/lib/abyss/src/socket_unix.c b/lib/abyss/src/socket_unix.c
index 3da48cc..51a32a7 100644
@ -32,10 +36,10 @@ index 3da48cc..51a32a7 100644
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
index 0026ec3..b96cb89 100644
--- a/lib/libutil/memblock.c
+++ b/lib/libutil/memblock.c
@@ -73,7 +73,7 @@ xmlrpc_mem_block_init(xmlrpc_env * const envP,
@@ -74,7 +74,7 @@ xmlrpc_mem_block_init(xmlrpc_env * const envP,
blockP->_block = (void*) malloc(blockP->_allocated);
if (!blockP->_block)
@ -44,8 +48,54 @@ index d79d4ca..25992e8 100644
blockP->_allocated);
}
diff --git a/lib/libutil/utf8.c b/lib/libutil/utf8.c
index 520c292..d7a211e 100644
--- a/lib/libutil/utf8.c
+++ b/lib/libutil/utf8.c
@@ -277,8 +277,8 @@ decode_utf8(xmlrpc_env * const envP,
if (utf8Cursor + length > utf8_len) {
xmlrpc_env_set_fault_formatted(
envP, XMLRPC_INVALID_UTF8_ERROR,
- "Invalid UTF-8 sequence indicates a %u-byte sequence "
- "when only %u bytes are left in the string",
+ "Invalid UTF-8 sequence indicates a %zu-byte sequence "
+ "when only %zu bytes are left in the string",
length, utf8_len - utf8Cursor);
} else {
decodeMultibyte(envP, &utf8_data[utf8Cursor], length, &wc);
diff --git a/src/cpp/packetsocket.cpp b/src/cpp/packetsocket.cpp
index bed2385..8cf55e6 100644
--- a/src/cpp/packetsocket.cpp
+++ b/src/cpp/packetsocket.cpp
@@ -307,7 +307,7 @@ packet::initialize(const unsigned char * const data,
this->bytes = reinterpret_cast<unsigned char *>(malloc(dataLength));
if (this->bytes == NULL)
- throwf("Can't get storage for a %u-byte packet.", dataLength);
+ throwf("Can't get storage for a %zu-byte packet.", dataLength);
this->allocSize = dataLength;
@@ -359,7 +359,7 @@ packet::addData(const unsigned char * const data,
realloc(this->bytes, neededSize));
if (this->bytes == NULL)
- throwf("Can't get storage for a %u-byte packet.", neededSize);
+ throwf("Can't get storage for a %zu-byte packet.", neededSize);
memcpy(this->bytes + this->length, data, dataLength);
@@ -610,7 +610,7 @@ packetSocket_impl::verifyNothingAccumulated() {
if (this->inPacket)
throwf("Stream socket closed in the middle of a packet "
- "(%u bytes of packet received; no END marker to mark "
+ "(%zu bytes of packet received; no END marker to mark "
"end of packet)", this->packetAccumP->getLength());
}
diff --git a/src/cpp/server_cgi.cpp b/src/cpp/server_cgi.cpp
index 5b8e9ef..15996a0 100644
index c476dae..65518c7 100644
--- a/src/cpp/server_cgi.cpp
+++ b/src/cpp/server_cgi.cpp
@@ -241,7 +241,7 @@ writeNormalHttpResp(FILE * const fileP,
@ -57,8 +107,21 @@ index 5b8e9ef..15996a0 100644
fprintf(fileP, "\n");
// HTTP body
diff --git a/src/parse_datetime.c b/src/parse_datetime.c
index f764c6e..5f91494 100644
--- a/src/parse_datetime.c
+++ b/src/parse_datetime.c
@@ -375,7 +375,7 @@ validateFormatNoRegex(xmlrpc_env * const envP,
if (strlen(dt) < 17)
xmlrpc_env_set_fault_formatted(
envP, XMLRPC_PARSE_ERROR,
- "Invalid length of %u of datetime. "
+ "Invalid length of %zu of datetime. "
"Must be at least 17 characters",
strlen(dt));
else {
diff --git a/src/xmlrpc_data.c b/src/xmlrpc_data.c
index 28827fe..415dd6d 100644
index 2a6baea..c9fd75c 100644
--- a/src/xmlrpc_data.c
+++ b/src/xmlrpc_data.c
@@ -221,7 +221,7 @@ xmlrpc_read_base64(xmlrpc_env * const envP,
@ -71,15 +134,15 @@ index 28827fe..415dd6d 100644
else {
memcpy(byteStringValue, contents, size);
diff --git a/src/xmlrpc_datetime.c b/src/xmlrpc_datetime.c
index a4b6454..b7a08e2 100644
index e7160ac..f129671 100644
--- a/src/xmlrpc_datetime.c
+++ b/src/xmlrpc_datetime.c
@@ -428,7 +428,7 @@ validateFormat(xmlrpc_env * const envP,
@@ -468,7 +468,7 @@ validateFormat(xmlrpc_env * const envP,
if (strlen(dt) < 17)
xmlrpc_env_set_fault_formatted(
envP, XMLRPC_PARSE_ERROR,
- "Invalid length of %u of datetime. "
+ "Invalid length of %zu of datetime. "
xmlrpc_faultf(envP,
- "Invalid length of %u of datetime string. "
+ "Invalid length of %zu of datetime string. "
"Must be at least 17 characters",
strlen(dt));
else {
@ -106,10 +169,10 @@ index eeb3414..36e62f6 100644
else {
struct mbrDecomp * const mbrP =
diff --git a/src/xmlrpc_parse.c b/src/xmlrpc_parse.c
index 43d9d54..6638654 100644
index 980e7cd..a7dd973 100644
--- a/src/xmlrpc_parse.c
+++ b/src/xmlrpc_parse.c
@@ -44,7 +44,7 @@
@@ -46,7 +46,7 @@
do \
if (xml_element_children_size(elem) != (count)) \
XMLRPC_FAIL3(env, XMLRPC_PARSE_ERROR, \
@ -118,7 +181,7 @@ index 43d9d54..6638654 100644
xml_element_name(elem), (count), \
xml_element_children_size(elem)); \
while (0)
@@ -293,7 +293,7 @@ xmlrpc_parse_call(xmlrpc_env * const envP,
@@ -295,7 +295,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,
@ -127,7 +190,7 @@ index 43d9d54..6638654 100644
xmlrpc_limit_get(XMLRPC_XML_SIZE_LIMIT_ID));
else {
xml_element * callElemP;
@@ -545,8 +545,8 @@ xmlrpc_parse_response2(xmlrpc_env * const envP,
@@ -547,8 +547,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,
@ -139,10 +202,10 @@ index 43d9d54..6638654 100644
else {
xmlrpc_env env;
diff --git a/src/xmlrpc_server_abyss.c b/src/xmlrpc_server_abyss.c
index 64cd133..551298a 100644
index 4c8262d..6e2be53 100644
--- a/src/xmlrpc_server_abyss.c
+++ b/src/xmlrpc_server_abyss.c
@@ -464,7 +464,7 @@ processCall(TSession * const abyssSessionP,
@@ -485,7 +485,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,
@ -152,7 +215,7 @@ index 64cd133..551298a 100644
xmlrpc_mem_block * body;
/* Read XML data off the wire. */
diff --git a/src/xmlrpc_string.c b/src/xmlrpc_string.c
index 8bf299d..8354b42 100644
index 93ac6d0..f51fba7 100644
--- a/src/xmlrpc_string.c
+++ b/src/xmlrpc_string.c
@@ -141,7 +141,7 @@ xmlrpc_read_string(xmlrpc_env * const envP,
@ -192,10 +255,10 @@ index 8bf299d..8354b42 100644
const wchar_t * p; /* source pointer */
wchar_t * q; /* destination pointer */
diff --git a/tools/xmlrpc/xmlrpc.c b/tools/xmlrpc/xmlrpc.c
index 1bdc44c..c4e0618 100644
index 2cf4fee..93255f3 100644
--- a/tools/xmlrpc/xmlrpc.c
+++ b/tools/xmlrpc/xmlrpc.c
@@ -268,7 +268,7 @@ buildBytestring(xmlrpc_env * const envP,
@@ -295,7 +295,7 @@ buildBytestring(xmlrpc_env * const envP,
if (valueStringSize / 2 * 2 != valueStringSize)
xmlrpc_faultf(envP, "Hexadecimal text is not an even "
@ -204,6 +267,19 @@ index 1bdc44c..c4e0618 100644
strlen(valueString));
else {
size_t const byteStringSize = strlen(valueString)/2;
--
1.6.0.4
diff --git a/tools/xmlrpc_pstream/xmlrpc_pstream.cpp b/tools/xmlrpc_pstream/xmlrpc_pstream.cpp
index 1417708..0d6ec11 100644
--- a/tools/xmlrpc_pstream/xmlrpc_pstream.cpp
+++ b/tools/xmlrpc_pstream/xmlrpc_pstream.cpp
@@ -103,7 +103,7 @@ bytestringValFromParm(string const& valueString) {
if (valueString.length() / 2 * 2 != valueString.length())
throwf("Hexadecimal text is not an even "
- "number of characters (it is %u characters)",
+ "number of characters (it is %zu characters)",
valueString.length());
else {
vector<unsigned char> byteString(valueString.length() / 2);
--
1.6.5.2

View File

@ -0,0 +1,28 @@
From fa520fd88d776435c90e054601dddf06f7077254 Mon Sep 17 00:00:00 2001
From: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Date: Sat, 21 Nov 2009 14:12:41 +0100
Subject: [PATCH 5/6] fixed unitialized variable
Reported by Nikola Pajkovsky <npajkovs AT redhat.com>:
Problem shows up only when you compiled xmlrpc with nss and try to
connect to server with wrong certificate.
---
lib/curl_transport/curltransaction.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/lib/curl_transport/curltransaction.c b/lib/curl_transport/curltransaction.c
index bf7fa99..4239385 100644
--- a/lib/curl_transport/curltransaction.c
+++ b/lib/curl_transport/curltransaction.c
@@ -555,6 +555,7 @@ curlTransaction_create(xmlrpc_env * const envP,
curlTransactionP->curlSessionP = curlSessionP;
curlTransactionP->userContextP = userContextP;
curlTransactionP->progress = progress;
+ curlTransactionP->curlError[0] = '\0';
curlTransactionP->serverUrl = strdup(serverP->serverUrl);
if (curlTransactionP->serverUrl == NULL)
--
1.6.5.2

View File

@ -1,7 +1,7 @@
From 9ea7a544eef6498ea061696a594c50acc137ab40 Mon Sep 17 00:00:00 2001
From 009465f70f4941968f0f8abbbc7e0ba9252f68b5 Mon Sep 17 00:00:00 2001
From: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Date: Sat, 15 Nov 2008 12:07:25 +0100
Subject: [PATCH] 'va_list' param must be non-const
Subject: [PATCH 4/6] 'va_list' param must be non-const
vasprintf(3) uses a non-const 'va_list ap' parameter.
Hence, do not accept a 'const' on in the wrapper function.
@ -11,7 +11,7 @@ Hence, do not accept a 'const' on in the wrapper function.
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/xmlrpc-c/util.h b/include/xmlrpc-c/util.h
index 5b6e4f5..9387ef7 100644
index 30689bc..777ee01 100644
--- a/include/xmlrpc-c/util.h
+++ b/include/xmlrpc-c/util.h
@@ -140,7 +140,7 @@ void
@ -24,10 +24,10 @@ index 5b6e4f5..9387ef7 100644
/* The same as the above, but using a printf-style format string. */
void
diff --git a/lib/libutil/error.c b/lib/libutil/error.c
index fd964d0..b182308 100644
index 02e66c9..1e0ab12 100644
--- a/lib/libutil/error.c
+++ b/lib/libutil/error.c
@@ -86,7 +86,7 @@ void
@@ -88,7 +88,7 @@ void
xmlrpc_set_fault_formatted_v(xmlrpc_env * const envP,
int const code,
const char * const format,
@ -37,5 +37,5 @@ index fd964d0..b182308 100644
const char * faultDescription;
--
1.6.0.4
1.6.5.2

View File

@ -0,0 +1,29 @@
From 6e9ccf34512f878be1a98a6b007aa338e891180e Mon Sep 17 00:00:00 2001
From: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Date: Sat, 21 Nov 2009 14:21:13 +0100
Subject: [PATCH 6/6] added option to make curl verbose
With this patch, when the $XMLRPC_TRACE_CURL environment variable is
set, verbose curl output/debugging will be enabled. Based upon a
patch from John Dennis <jdennis AT redhat.com>
---
lib/curl_transport/curltransaction.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/lib/curl_transport/curltransaction.c b/lib/curl_transport/curltransaction.c
index 4239385..9089d04 100644
--- a/lib/curl_transport/curltransaction.c
+++ b/lib/curl_transport/curltransaction.c
@@ -503,6 +503,9 @@ setupCurlSession(xmlrpc_env * const envP,
curl_easy_setopt(curlSessionP, CURLOPT_SSL_CIPHER_LIST,
curlSetupP->sslCipherList);
+ if (getenv("XMLRPC_TRACE_CURL"))
+ curl_easy_setopt(curlSessionP, CURLOPT_VERBOSE, 1l);
+
if (curlSetupP->timeout)
setCurlTimeout(curlSessionP, curlSetupP->timeout);
--
1.6.5.2

View File

@ -1,12 +1,12 @@
%global advanced_branch 1
%global svnrev 1582
%global svnrev 1841
%{!?release_func:%global release_func() %1%{?dist}}
Summary: A lightweight RPC library based on XML and HTTP
Name: xmlrpc-c
Version: 1.16.6
Release: %release_func 3.%svnrev
Version: 1.20.3
Release: %release_func 1.%svnrev
# See COPYING for details.
# The Python 1.5.2 license used by a few files is just BSD.
License: BSD and MIT
@ -21,6 +21,8 @@ Patch100: xmlrpc-c-cmake.patch
Patch102: xmlrpc-c-printf-size_t.patch
Patch105: xmlrpc-c-longlong.patch
Patch106: xmlrpc-c-va_list.patch
Patch107: xmlrpc-c-uninit-curl.patch
Patch108: xmlrpc-c-verbose-curl.patch
BuildRoot: %_tmppath/%name-%version-%release-root
@ -107,6 +109,8 @@ This package contains some handy XML-RPC demo applications.
%patch102 -p1
%patch105 -p1
%patch106 -p1
%patch107 -p1
%patch108 -p1
## not needed...
rm doc/{INSTALL,configure_doc}
@ -117,12 +121,14 @@ mkdir -p fedora
cd fedora
export CFLAGS="$RPM_OPT_FLAGS"
export CXXFLAGS="$RPM_OPT_FLAGS"
export LDFLAGS="-Wl,-as-needed"
cmake .. \
-D_lib:STRING=%_lib \
-DMUST_BUILD_CURL_CLIENT:BOOL=ON \
-DMUST_BUILD_LIBWWW_CLIENT:BOOL=OFF \
-DCMAKE_INSTALL_PREFIX:PATH=%_prefix \
-DBUILD_SHARED_LIBS:BOOL=ON
-DBUILD_SHARED_LIBS:BOOL=ON \
-DENABLE_TOOLS:BOOL=ON
make VERBOSE=1 %{?_smp_mflags}
@ -178,7 +184,7 @@ rm -rf $RPM_BUILD_ROOT
%files c++
%defattr(-,root,root,-)
%_libdir/*.so.4*
%_libdir/*.so.6*
%exclude %_libdir/libxmlrpc_client++.so*
@ -205,9 +211,18 @@ rm -rf $RPM_BUILD_ROOT
%_bindir/xmlrpc_transport
%_bindir/xml-rpc-api2cpp
%_bindir/xmlrpc_cpp_proxy
%_bindir/xmlrpc_pstream
%exclude %_bindir/xml-rpc-api2txt
%changelog
* Sat Nov 21 2009 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 1.20.3-1.1841
- updated to rev1841
- rediffed patches
- added patch fix handling of wrong certificates (Nikola Pajkovsky)
- added support for $XMLRPC_TRACE_CURL env (John Dennis)
* Mon Jul 27 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.16.6-3.1582
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild