Update to 1.48.0

Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
This commit is contained in:
Igor Gnatenko 2016-12-18 12:54:48 +01:00
parent e0d259d271
commit 5c1623f34b
18 changed files with 1955 additions and 2582 deletions

2
.gitignore vendored
View File

@ -1 +1,3 @@
/xmlrpc-c-1.32.5.tar.xz
/xmlrpc-c-1.47.1.tar.xz
/xmlrpc-c-1.48.0.tar.xz

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,34 @@
From 3c84b3078c8d55ad9e24dc1dc28a2c9fd311933f Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <i.gnatenko.brain@gmail.com>
Date: Sat, 17 Dec 2016 10:28:31 +0100
Subject: [PATCH 1/3] xmlrpc_server_abyss: use va_args properly
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
../src/xmlrpc_server_abyss.c: In function createServer:
../src/xmlrpc_server_abyss.c:783:13: error: format not a string literal and no format arguments [-Werror=format-security]
xmlrpc_faultf(envP, error);
^~~~~~~~~~~~~
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
---
src/xmlrpc_server_abyss.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/xmlrpc_server_abyss.c b/src/xmlrpc_server_abyss.c
index 8aacb4b5..58f5ba04 100644
--- a/src/xmlrpc_server_abyss.c
+++ b/src/xmlrpc_server_abyss.c
@@ -780,7 +780,7 @@ createServer(xmlrpc_env * const envP,
ServerInit2(abyssServerP, &error);
if (error) {
- xmlrpc_faultf(envP, error);
+ xmlrpc_faultf(envP, "%s", error);
xmlrpc_strfree(error);
}
}
--
2.11.0

View File

@ -1,7 +1,7 @@
From 4d3bbc5d59418666a5fc91c8fe3e301ee9c89b32 Mon Sep 17 00:00:00 2001
From c6e5d65bf18760b339abb9deaa2169f428e5c969 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 3/8] Use proper datatypes for 'long long'
Subject: [PATCH 2/3] 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
@ -16,13 +16,13 @@ It is arguable whether 'int_least64_t' (and 'int_least32_t')
would be a better choice for 'int64_t' (and 'int32_t'), but
for now, the patch uses datatypes with exact widths.
---
include/xmlrpc-c/base.h | 7 ++++---
lib/libutil/string_number.c | 1 +
src/cpp/param_list.cpp | 8 ++++----
3 files changed, 9 insertions(+), 7 deletions(-)
include/xmlrpc-c/base.h | 7 ++++---
lib/libutil/string_number.c | 1 +
src/cpp/param_list.cpp | 2 +-
3 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/include/xmlrpc-c/base.h b/include/xmlrpc-c/base.h
index cdc9161..cbdf3d0 100644
index e74e2c51..90f2c918 100644
--- a/include/xmlrpc-c/base.h
+++ b/include/xmlrpc-c/base.h
@@ -5,6 +5,7 @@
@ -31,9 +31,9 @@ index cdc9161..cbdf3d0 100644
#include <stdarg.h>
+#include <stdint.h>
#include <time.h>
#include <xmlrpc-c/c_util.h>
#include <xmlrpc-c/c_util.h> /* For XMLRPC_DLLEXPORT */
#include <xmlrpc-c/util.h>
@@ -50,9 +51,9 @@ xmlrpc_version(unsigned int * const majorP,
@@ -73,9 +74,9 @@ xmlrpc_version(unsigned int * const majorP,
typedef signed int xmlrpc_int;
/* An integer of the type defined by XML-RPC <int>; i.e. 32 bit */
@ -45,7 +45,7 @@ index cdc9161..cbdf3d0 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
@@ -89,7 +90,7 @@ typedef int xmlrpc_socket;
@@ -112,7 +113,7 @@ typedef int xmlrpc_socket;
#define XMLRPC_INT32_MAX 0x7fffffff
#define XMLRPC_INT32_MIN (-XMLRPC_INT32_MAX - 1)
@ -55,7 +55,7 @@ index cdc9161..cbdf3d0 100644
diff --git a/lib/libutil/string_number.c b/lib/libutil/string_number.c
index 1c284af..a7e78ad 100644
index 1c284afd..a7e78ad7 100644
--- a/lib/libutil/string_number.c
+++ b/lib/libutil/string_number.c
@@ -6,6 +6,7 @@
@ -67,23 +67,9 @@ index 1c284af..a7e78ad 100644
#include <xmlrpc-c/base.h>
diff --git a/src/cpp/param_list.cpp b/src/cpp/param_list.cpp
index 67c636b..60f7df9 100644
index 1f7ae41f..60f7df9b 100644
--- a/src/cpp/param_list.cpp
+++ b/src/cpp/param_list.cpp
@@ -265,10 +265,10 @@ paramList::getNil(unsigned int const paramNumber) const {
-long long
+xmlrpc_int64
paramList::getI8(unsigned int const paramNumber,
- long long const minimum,
- long long const maximum) const {
+ xmlrpc_int64 const minimum,
+ xmlrpc_int64 const maximum) const {
if (paramNumber >= this->paramVector.size())
throw(fault("Not enough parameters", fault::CODE_TYPE));
@@ -277,7 +277,7 @@ paramList::getI8(unsigned int const paramNumber,
throw(fault("Parameter that is supposed to be 64-bit integer is not",
fault::CODE_TYPE));
@ -94,5 +80,5 @@ index 67c636b..60f7df9 100644
if (longlongvalue < minimum)
--
1.7.4
2.11.0

View File

@ -0,0 +1,178 @@
From 28dac71bb97a32867575110087f4bd2184d9cfbb Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <i.gnatenko.brain@gmail.com>
Date: Sun, 18 Dec 2016 15:48:02 +0100
Subject: [PATCH 2/3] build: use Requires.private in pkgconfig and reduce
number of requires
* if we put dependencies into requires, end-user library is linked
against all of them automatically which is not best idea
* pkg-config automatically does dependency resolving automatically,
so we don't really need to write ton of requires
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
---
lib/abyss++/meson.build | 2 +-
lib/abyss/src/meson.build | 2 +-
lib/expat/meson.build | 2 +-
lib/libutil++/meson.build | 2 +-
lib/openssl/meson.build | 2 +-
src/cpp/meson.build | 8 ++++----
src/meson.build | 10 +++++-----
7 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/lib/abyss++/meson.build b/lib/abyss++/meson.build
index 01aa2449..ff79f661 100644
--- a/lib/abyss++/meson.build
+++ b/lib/abyss++/meson.build
@@ -36,7 +36,7 @@ pkgg.generate(
name : 'xmlrpc_abyss++',
description : 'Xmlrpc-c Abyss HTTP C++ library',
version : meson.project_version(),
- requires : ['xmlrpc_abyss', 'xmlrpc_util++'],
+ requires_private : ['xmlrpc_abyss', 'xmlrpc_util++'],
libraries : libxmlrpc_abysspp,
install : true,
)
diff --git a/lib/abyss/src/meson.build b/lib/abyss/src/meson.build
index 747e3ac4..32ecdfca 100644
--- a/lib/abyss/src/meson.build
+++ b/lib/abyss/src/meson.build
@@ -61,6 +61,6 @@ pkgg.generate(
description : 'Xmlrpc-c Abyss HTTP C library',
version : meson.project_version(),
libraries : libxmlrpc_abyss,
- requires : 'xmlrpc_util',
+ requires_private : 'xmlrpc_util',
install : true,
)
diff --git a/lib/expat/meson.build b/lib/expat/meson.build
index 893f36d6..df9ca84c 100644
--- a/lib/expat/meson.build
+++ b/lib/expat/meson.build
@@ -6,7 +6,7 @@ pkgg.generate(
name : 'xmlrpc_expat',
description : 'Xmlrpc-c XML parsing library',
version : meson.project_version(),
- requires: 'xmlrpc_util',
+ requires_private: 'xmlrpc_util',
libraries : [
libxmlrpc_xmlparse,
libxmlrpc_xmltok,
diff --git a/lib/libutil++/meson.build b/lib/libutil++/meson.build
index 2463ec3d..9764c08d 100644
--- a/lib/libutil++/meson.build
+++ b/lib/libutil++/meson.build
@@ -22,7 +22,7 @@ pkgg.generate(
name : 'xmlrpc_util++',
description : 'Xmlrpc-c C++ utility functions library',
version : meson.project_version(),
- requires : 'xmlrpc_util',
+ requires_private : 'xmlrpc_util',
libraries : libxmlrpc_utilpp,
install : true,
)
diff --git a/lib/openssl/meson.build b/lib/openssl/meson.build
index f83f57ac..f65a4dc1 100644
--- a/lib/openssl/meson.build
+++ b/lib/openssl/meson.build
@@ -21,7 +21,7 @@ pkgg.generate(
name : 'xmlrpc_openssl',
description : 'Openssl convenience function from Xmlrpc-c package',
version : meson.project_version(),
- requires : 'xmlrpc_util',
+ requires_private : 'xmlrpc_util',
libraries : libxmlrpc_openssl,
install : true,
)
diff --git a/src/cpp/meson.build b/src/cpp/meson.build
index 68d6ac66..5152a9a8 100644
--- a/src/cpp/meson.build
+++ b/src/cpp/meson.build
@@ -43,7 +43,7 @@ pkgg.generate(
name : 'xmlrpc++',
description : 'Xmlrpc-c basic XML-RPC C++ library',
version : meson.project_version(),
- requires : ['xmlrpc', 'xmlrpc_util'],
+ requires_private : ['xmlrpc', 'xmlrpc_util++'],
libraries : libxmlrpcpp,
install : true,
)
@@ -68,7 +68,7 @@ pkgg.generate(
name : 'xmlrpc_server++',
description : 'Xmlrpc-c XML-RPC server C++ library',
version : meson.project_version(),
- requires : ['xmlrpc++', 'xmlrpc', 'xmlrpc_server', 'xmlrpc_util++', 'xmlrpc_util'],
+ requires_private : ['xmlrpc++', 'xmlrpc_server'],
libraries : libxmlrpc_serverpp,
install : true,
)
@@ -98,7 +98,7 @@ if get_option('abyss-server')
name : 'xmlrpc_server_abyss++',
description : 'Xmlrpc-c Abyss XML-RPC server C++ library',
version : meson.project_version(),
- requires : ['xmlrpc++', 'xmlrpc', 'xmlrpc_server++', 'xmlrpc_abyss', 'xmlrpc_util++', 'xmlrpc_util'],
+ requires_private : ['xmlrpc_abyss++', 'xmlrpc_server++', 'xmlrpc_server_abyss'],
libraries : libxmlrpc_server_abysspp,
install : true,
)
@@ -165,7 +165,7 @@ if build_xmlrpc_pstream
name : 'xmlrpc_server_pstream',
description : 'Xmlrpc-c packet-stream XML-RPC server library',
version : meson.project_version(),
- requires : ['xmlrpc++', 'xmlrpc', 'xmlrpc_server++', 'xmlrpc_util++', 'xmlrpc_util'],
+ requires_private : ['xmlrpc++', 'xmlrpc_server++'],
libraries : [libxmlrpc_server_pstreampp, libxmlrpc_packetsocket],
install : true,
)
diff --git a/src/meson.build b/src/meson.build
index 3d7ded3c..3d76b2e3 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -52,7 +52,7 @@ pkgg.generate(
name : 'xmlrpc',
description : 'Xmlrpc-c basic XML-RPC library',
version : meson.project_version(),
- requires : ['xmlrpc_util', xmlrpc_pkgconfig_req],
+ requires_private : xmlrpc_pkgconfig_req,
libraries : libxmlrpc,
install : true,
)
@@ -81,7 +81,7 @@ pkgg.generate(
name : 'xmlrpc_server',
description : 'Xmlrpc-c XML-RPC server library',
version : meson.project_version(),
- requires : ['xmlrpc', 'xmlrpc_util'],
+ requires_private : ['xmlrpc', 'xmlrpc_util'],
libraries : libxmlrpc_server,
install : true,
)
@@ -112,7 +112,7 @@ if get_option('abyss-server')
name : 'xmlrpc_server_abyss',
description : 'Xmlrpc-c Abyss XML-RPC server library',
version : meson.project_version(),
- requires : ['xmlrpc', 'xmlrpc_server', 'xmlrpc_abyss', 'xmlrpc_util'],
+ requires_private : ['xmlrpc', 'xmlrpc_server', 'xmlrpc_abyss', 'xmlrpc_util'],
libraries : libxmlrpc_server_abyss,
install : true,
)
@@ -142,7 +142,7 @@ if get_option('cgi-server')
name : 'xmlrpc_server_cgi',
description : 'Xmlrpc-c CGI XML-RPC server library',
version : meson.project_version(),
- requires : ['xmlrpc', 'xmlrpc_server', 'xmlrpc_util'],
+ requires_private : ['xmlrpc', 'xmlrpc_server', 'xmlrpc_util'],
libraries : libxmlrpc_server_cgi,
install : true,
)
@@ -178,7 +178,7 @@ if build_client
name : 'xmlrpc_client',
description : 'Xmlrpc-c XML-RPC client library',
version : meson.project_version(),
- requires : ['xmlrpc', 'xmlrpc_util'],
+ requires_private : ['xmlrpc', 'xmlrpc_util'],
libraries : libxmlrpc_client,
install : true,
)
--
2.11.0

View File

@ -1,17 +1,17 @@
From 255ebf4b1204124123971a3bb27741cccbb51692 Mon Sep 17 00:00:00 2001
From 5a63ce269e597d0ca490f4c96c029a24c756e471 Mon Sep 17 00:00:00 2001
From: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Date: Thu, 29 Jul 2010 19:25:32 +0200
Subject: [PATCH 5/8] allow 30x redirections
Subject: [PATCH 3/3] allow 30x redirections
---
lib/curl_transport/curltransaction.c | 4 ++++
lib/curl_transport/curltransaction.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/lib/curl_transport/curltransaction.c b/lib/curl_transport/curltransaction.c
index 0f76fc2..6292aee 100644
index f0aafae8..b5392a9f 100644
--- a/lib/curl_transport/curltransaction.c
+++ b/lib/curl_transport/curltransaction.c
@@ -600,6 +600,10 @@ setupCurlSession(xmlrpc_env * const envP,
@@ -671,6 +671,10 @@ setupCurlSession(xmlrpc_env * const envP,
curl_easy_setopt(curlSessionP, CURLOPT_POST, 1);
curl_easy_setopt(curlSessionP, CURLOPT_URL, transP->serverUrl);
@ -23,5 +23,5 @@ index 0f76fc2..6292aee 100644
if (!envP->fault_occurred) {
curl_easy_setopt(curlSessionP, CURLOPT_POSTFIELDS,
--
1.7.10.4
2.11.0

View File

@ -0,0 +1,19 @@
From fb2977567eb12b7bec00767cb7b900d0ecd9f131 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <i.gnatenko.brain@gmail.com>
Date: Mon, 19 Dec 2016 21:33:47 +0100
Subject: [PATCH 3/3] chmod +x xml-rpc-api2txt
It's script which is installing into $bindir, so it must be executable.
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
---
tools/xml-rpc-api2txt/xml-rpc-api2txt | 0
1 file changed, 0 insertions(+), 0 deletions(-)
mode change 100644 => 100755 tools/xml-rpc-api2txt/xml-rpc-api2txt
diff --git a/tools/xml-rpc-api2txt/xml-rpc-api2txt b/tools/xml-rpc-api2txt/xml-rpc-api2txt
old mode 100644
new mode 100755
--
2.11.0

104
dfs.cc
View File

@ -1,104 +0,0 @@
/* --*- c++ -*--
* Copyright (C) 2010 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 3 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <string>
#include <list>
#include <map>
#include <iostream>
class node {
public:
node(std::string const &name) : name_(name) {}
void add_child(class node *n)
{
children_.push_back(n);
}
void dfs(std::list<std::string> &res);
bool visited;
private:
std::string const name_;
std::list<class node *> children_;
};
void node::dfs(std::list<std::string> &res)
{
std::list<class node *>::iterator i;
visited = true;
for (i = children_.begin(); i != children_.end(); ++i) {
if ((*i)->visited)
continue;
(*i)->dfs(res);
}
res.push_front(name_);
}
int main(void)
{
std::map<std::string, class node *> nodes;
for (;;) {
std::string name;
class node *cur_node;
std::cin >> name;
if (!std::cin.good())
break;
if (nodes.find(name) == nodes.end())
nodes[name] = new node(name);
cur_node = nodes[name];
while (std::cin.good()) {
std::cin >> name;
if (name == "##")
break;
if (nodes.find(name) == nodes.end())
nodes[name] = new node(name);
cur_node->add_child(nodes[name]);
}
}
typedef std::map<std::string, class node *>::iterator node_iterator;
for (node_iterator n = nodes.begin(); n != nodes.end(); ++n) {
for (node_iterator m = nodes.begin();
m != nodes.end(); ++m)
m->second->visited = false;
std::list<std::string> res(nodes.size());
n->second->dfs(res);
for (std::list<std::string>::const_iterator i = res.begin();
i != res.end(); ++i)
std::cout << *i << " ";
std::cout << std::endl;
}
}

View File

@ -1,57 +0,0 @@
#! /bin/bash
# Copyright (C) 2010 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
## Usage: dso-fixup <build-root> <libdir> <pattern> <libs>*
BR=$1
LIBDIR=$2
PATTERN=$3
shift 3
for i; do
echo -n $(basename "$i")' '
readelf -d $i | sed "\\!(NEEDED).*${PATTERN}!"'s/[^:]\+: \[\(.*\)\]/\1/p;d' | xargs echo -n
echo " ##"
done | ./depsort | while read lib deps; do
link=$BR$LIBDIR/${lib%.so.*}.so
test -L "$link" || {
echo "bad file '$link'" >&2
exit 1
}
set -- $deps
test $# -ne 0 || continue
rm -f $link
{
echo '/* GNU ld script */'
echo -n "INPUT($LIBDIR/$lib"
d=
if test "$#" -gt 0; then
echo -n " AS_NEEDED("
for i; do
echo -n "$d$LIBDIR/$i"
d=' '
done
echo -n ")"
fi
echo ")"
} > "$link"
chmod 0644 "$link"
done

View File

@ -1 +0,0 @@
2451

View File

@ -1 +1 @@
5c8a328f52e4f010d1ea3b56ae685874 xmlrpc-c-1.32.5.tar.xz
SHA512 (xmlrpc-c-1.48.0.tar.xz) = 7457a508ae20d9e3b75015335982a2176890db75c8101afbd0bb34b3f7dbe534e4cdffb6e5907bb0588c56901028f4df25fb7b0d51d9e3a2e0548c55550cdcd4

View File

@ -1,2 +0,0 @@
http://xmlrpc-c.svn.sourceforge.net/viewvc/xmlrpc-c/advanced/
revision=([0-9]+)

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +0,0 @@
diff --git a/src/xmlrpc_server_abyss.c b/src/xmlrpc_server_abyss.c
index 614f64b..998290f 100644
--- a/src/xmlrpc_server_abyss.c
+++ b/src/xmlrpc_server_abyss.c
@@ -776,7 +776,7 @@ createServer(xmlrpc_env * const envP,
ServerInit2(abyssServerP, &error);
if (error) {
- xmlrpc_faultf(envP, error);
+ xmlrpc_faultf(envP, "%s", error);
xmlrpc_strfree(error);
}
}

View File

@ -1,32 +0,0 @@
From df68067713ab58bf14ac1e75eace9fac45dba7d9 Mon Sep 17 00:00:00 2001
From: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Date: Thu, 30 Dec 2010 20:44:06 +0100
Subject: [PATCH 8/8] include missing <xmlrpc-c/string_int.h>
gives
| /tmp/xmlrpc-c/src/xmlrpc_libxml2.c: In function 'end_element':
| /tmp/xmlrpc-c/src/xmlrpc_libxml2.c:303:2: warning: implicit declaration of function 'xmlrpc_streq'
| ...
| ../src/libxmlrpc.so.3.25: undefined reference to `xmlrpc_streq'
else.
---
src/xmlrpc_libxml2.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/src/xmlrpc_libxml2.c b/src/xmlrpc_libxml2.c
index 57ae06b..ef073d4 100644
--- a/src/xmlrpc_libxml2.c
+++ b/src/xmlrpc_libxml2.c
@@ -38,6 +38,7 @@
#include "xmlrpc-c/base.h"
#include "xmlrpc-c/base_int.h"
+#include "xmlrpc-c/string_int.h"
#include "xmlrpc-c/xmlparser.h"
/* Define the contents of our internal structure. */
--
1.7.3.4

View File

@ -1,34 +0,0 @@
--- xmlrpc-c-1.32.5/src/cpp/base64.cpp~ 2010-05-21 00:52:29.000000000 +0200
+++ xmlrpc-c-1.32.5/src/cpp/base64.cpp 2016-02-16 08:37:43.874552656 +0100
@@ -15,14 +15,14 @@
namespace {
char const table_a2b_base64[] = {
- -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
- -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
- -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,62, -1,-1,-1,63,
- 52,53,54,55, 56,57,58,59, 60,61,-1,-1, -1, 0,-1,-1, /* Note PAD->0 */
- -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11,12,13,14,
- 15,16,17,18, 19,20,21,22, 23,24,25,-1, -1,-1,-1,-1,
- -1,26,27,28, 29,30,31,32, 33,34,35,36, 37,38,39,40,
- 41,42,43,44, 45,46,47,48, 49,50,51,-1, -1,-1,-1,-1
+ 64,64,64,64, 64,64,64,64, 64,64,64,64, 64,64,64,64,
+ 64,64,64,64, 64,64,64,64, 64,64,64,64, 64,64,64,64,
+ 64,64,64,64, 64,64,64,64, 64,64,64,62, 64,64,64,63,
+ 52,53,54,55, 56,57,58,59, 60,61,64,64, 64, 0,64,64, /* Note PAD->0 */
+ 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11,12,13,14,
+ 15,16,17,18, 19,20,21,22, 23,24,25,64, 64,64,64,64,
+ 64,26,27,28, 29,30,31,32, 33,34,35,36, 37,38,39,40,
+ 41,42,43,44, 45,46,47,48, 49,50,51,64, 64,64,64,64
};
char const base64Pad('=');
@@ -210,7 +210,7 @@
buffer.discardResidue();
} else {
unsigned int const tableIndex(thisChar);
- if (table_a2b_base64[tableIndex] == -1)
+ if (table_a2b_base64[tableIndex] == 64)
throwf("Contains non-base64 character "
"with ASCII code 0x%02x", thisChar);

View File

@ -1,28 +0,0 @@
From 6affc342b968ec042d9efe84ca0ea40c8d88e8bf 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 4/5] 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 59cb6ab..3c75010 100644
--- a/lib/curl_transport/curltransaction.c
+++ b/lib/curl_transport/curltransaction.c
@@ -641,6 +641,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.7.1.1

View File

@ -1,73 +1,76 @@
%global advanced_branch 1
%global svnrev 2451
%global advanced_branch 1
%{!?release_func:%global release_func() %%{?prerelease:0.}%1%%{?prerelease:.%%prerelease}%%{?dist}}
# Upstream libxml2 backend is completely broken since 2015
# https://sourceforge.net/p/xmlrpc-c/patches/49/
%bcond_with libxml2
Summary: A lightweight RPC library based on XML and HTTP
Name: xmlrpc-c
Version: 1.32.5
Release: %release_func 1909.svn%svnrev
# See COPYING for details.
Name: xmlrpc-c
Version: 1.48.0
Release: 1%{?dist}
Summary: A lightweight RPC library based on XML and HTTP
# See doc/COPYING for details.
# The Python 1.5.2 license used by a few files is just BSD.
License: BSD and MIT
Group: System Environment/Libraries
URL: http://xmlrpc-c.sourceforge.net/
%{!?advanced_branch:Source0: http://dl.sourceforge.net/sourceforge/xmlrpc-c/xmlrpc-%version.tgz}
License: BSD and MIT
URL: http://xmlrpc-c.sourceforge.net/
%{!?advanced_branch:Source0: http://dl.sourceforge.net/sourceforge/xmlrpc-c/xmlrpc-%version.tgz}
# generated by 'make svn-sources [SVN_VER=%version SVN_REV=%svnrev]'. 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.xz}
%{?advanced_branch:Source0: xmlrpc-c-%version.tar.xz}
Source100: dfs.cc
Source101: dso-fixup
# Upstreamable patches
Patch101: 0001-xmlrpc_server_abyss-use-va_args-properly.patch
Patch102: 0002-Use-proper-datatypes-for-long-long.patch
Patch103: 0003-allow-30x-redirections.patch
#Patch104: xmlrpc-c-printf-size_t.patch
#Patch105: xmlrpc-c-check-vasprintf-return-value.patch
Patch100: xmlrpc-c-cmake.patch
Patch102: xmlrpc-c-printf-size_t.patch
Patch105: xmlrpc-c-longlong.patch
Patch107: xmlrpc-c-uninit-curl.patch
Patch108: xmlrpc-c-30x-redirect.patch
Patch109: xmlrpc-c-check-vasprintf-return-value.patch
Patch110: xmlrpc-c-include-string_int.h.patch
Patch111: xmlrpc-c-format-security-warning.patch
Patch112: xmlrpc-c-int-to-char-conversion.patch
# Meson buildsystem, see https://blogs.gnome.org/ignatenko/2016/12/17/meson-%E2%99%A5-xmlrpc-c/
Patch1001: 0001-add-meson-buildsystem-definitions.patch
Patch1002: 0002-build-use-Requires.private-in-pkgconfig-and-reduce-n.patch
Patch1003: 0003-chmod-x-xml-rpc-api2txt.patch
BuildRoot: %_tmppath/%name-%version-%release-root
BuildRequires: cmake
BuildRequires: curl-devel libxml2-devel readline-devel ncurses-devel
BuildRequires: meson >= 0.36.0
BuildRequires: gcc
BuildRequires: gcc-c++
%if %{with libxml2}
BuildRequires: pkgconfig(libxml-2.0)
%else
# upstream has its own fork of expat
Provides: bundled(expat)
%endif
BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(libcurl)
BuildRequires: readline-devel
BuildRequires: ncurses-devel
%package c++
Summary: C++ libraries for xmlrpc-c
Group: System Environment/Libraries
Requires: %name%{?_isa} = %version-%release
Summary: C++ libraries for xmlrpc-c
Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
%package client
Summary: C client libraries for xmlrpc-c
Group: System Environment/Libraries
Requires: %name%{?_isa} = %version-%release
Summary: C client libraries for xmlrpc-c
Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
%package client++
Summary: C++ client libraries for xmlrpc-c
Group: System Environment/Libraries
Requires: %name%{?_isa} = %version-%release
Requires: %name-c++%{?_isa} = %version-%release
Requires: %name-client%{?_isa} = %version-%release
Summary: C++ client libraries for xmlrpc-c
Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: %{name}-c++%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: %{name}-client%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
%package devel
Summary: Development files for xmlrpc-c based programs
Group: Development/Libraries
Requires: %name%{?_isa} = %version-%release
Requires: %name-c++%{?_isa} = %version-%release
Requires: %name-client%{?_isa} = %version-%release
Requires: %name-client++%{?_isa} = %version-%release
Summary: Development files for xmlrpc-c based programs
Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: %{name}-c++%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: %{name}-client%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: %{name}-client++%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
%package apps
Summary: Sample XML-RPC applications
Group: Applications/Internet
Requires: %name%{?_isa} = %version-%release
Requires: %name-c++%{?_isa} = %version-%release
Requires: %name-client%{?_isa} = %version-%release
Requires: %name-client++%{?_isa} = %version-%release
Summary: Sample XML-RPC applications
Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: %{name}-c++%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: %{name}-client%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: %{name}-client++%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
%description
@ -117,72 +120,14 @@ This package contains some handy XML-RPC demo applications.
%prep
%setup -q
%patch100 -p1
%patch102 -p1
%patch105 -p1
%patch107 -p1
%patch108 -p1
%patch109 -p1
%patch110 -p1
%patch111 -p1
%patch112 -p1
## not needed...
rm doc/{INSTALL,configure_doc}
%autosetup -p1
%build
mkdir -p build
cd build
export CFLAGS="$RPM_OPT_FLAGS -Wno-uninitialized -Wno-unknown-pragmas"
export CXXFLAGS="$RPM_OPT_FLAGS"
export LDFLAGS="-Wl,-as-needed"
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 \
-DENABLE_TOOLS:BOOL=ON
make VERBOSE=1 %{?_smp_mflags}
%__cxx $RPM_OPT_FLAGS %SOURCE100 -o depsort
%meson %{?with_libxml2:-Dlibxml2-backend=true}
%meson_build
%install
rm -rf $RPM_BUILD_ROOT
cd build
make install DESTDIR=$RPM_BUILD_ROOT
chmod +x $RPM_BUILD_ROOT%_libdir/*.so
%SOURCE101 "$RPM_BUILD_ROOT" "%_libdir" 'libxmlrpc' $RPM_BUILD_ROOT%_libdir/libxmlrpc*.so.[0-9]
%check
unset PKG_CONFIG_PATH
export PKG_CONFIG_LIBDIR=$RPM_BUILD_ROOT%_libdir/pkgconfig:%_libdir/pkgconfig:%_datadir/pkgconfig
PATH=$RPM_BUILD_ROOT%_bindir:$PATH
_e() {
echo "\$ $@"
"$@"
}
set +x
_e xmlrpc-c-config --help
for comp in c++ cgi-server server-util abyss-server client libwww-client; do
for opt in '--version' '--libs' 'c++2 --libs' 'c++ --libs --static'; do
_e xmlrpc-c-config "$comp" $opt
done
done
set -x
%clean
rm -rf $RPM_BUILD_ROOT
%meson_install
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
@ -196,56 +141,60 @@ rm -rf $RPM_BUILD_ROOT
%post client++ -p /sbin/ldconfig
%postun client++ -p /sbin/ldconfig
%files
%defattr(-,root,root,-)
%doc doc/*
%_libdir/*.so.3*
%exclude %_libdir/libxmlrpc_client.so*
%license doc/COPYING lib/abyss/license.txt
%doc doc/CREDITS doc/HISTORY
%if ! %{with libxml2}
%{_libdir}/libxmlrpc_xml*.so.*
%endif
%{_libdir}/libxmlrpc_openssl.so.*
%{_libdir}/libxmlrpc.so.*
%{_libdir}/libxmlrpc_util.so.*
%{_libdir}/libxmlrpc_abyss.so.*
%{_libdir}/libxmlrpc_server.so.*
%{_libdir}/libxmlrpc_server_abyss.so.*
%{_libdir}/libxmlrpc_server_cgi.so.*
%files client
%defattr(-,root,root,-)
%_libdir/libxmlrpc_client.so.*
%{_libdir}/libxmlrpc_client.so.*
%files c++
%defattr(-,root,root,-)
%_libdir/*.so.8*
%exclude %_libdir/libxmlrpc_client++.so*
%{_libdir}/libxmlrpc_cpp.so.*
%{_libdir}/libxmlrpc++.so.*
%{_libdir}/libxmlrpc_util++.so.*
%{_libdir}/libxmlrpc_abyss++.so.*
%{_libdir}/libxmlrpc_server++.so.*
%{_libdir}/libxmlrpc_server_abyss++.so.*
%{_libdir}/libxmlrpc_server_cgi++.so.*
%{_libdir}/libxmlrpc_packetsocket.so.*
%{_libdir}/libxmlrpc_server_pstream++.so.*
%files client++
%defattr(-,root,root,-)
%_libdir/libxmlrpc_client++.so.*
%{_libdir}/libxmlrpc_client++.so.*
%files devel
%defattr(-,root,root,-)
%_bindir/xmlrpc-c-config
%_includedir/xmlrpc-c
%_includedir/*.h
%_libdir/pkgconfig/*.pc
%_libdir/*.so
%{_bindir}/xmlrpc-c-config
%{_includedir}/xmlrpc-c/
%{_includedir}/*.h
%{_libdir}/pkgconfig/xmlrpc*.pc
%{_libdir}/libxmlrpc*.so
%files apps
%defattr(-,root,root,-)
%doc tools/xmlrpc/xmlrpc.html
%{_bindir}/xmlrpc_parsecall
%{_bindir}/xmlrpc
%{_bindir}/xmlrpc_transport
%doc tools/xmlrpc_transport/xmlrpc_transport.html
%_mandir/man1/*
%_bindir/xmlrpc
%_bindir/xmlrpc_transport
%_bindir/xml-rpc-api2cpp
%_bindir/xmlrpc_cpp_proxy
%_bindir/xmlrpc_pstream
%_bindir/xmlrpc_parsecall
%exclude %_bindir/xml-rpc-api2txt
%{_bindir}/xml-rpc-api2cpp
%{_mandir}/man1/xml-rpc-api2cpp.1*
%{_bindir}/xml-rpc-api2txt
%{_mandir}/man1/xml-rpc-api2txt.1*
%{_bindir}/xmlrpc_cpp_proxy
%{_bindir}/xmlrpc_pstream
%changelog
* Sun Dec 18 2016 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 1.48.0-1
- Update to 1.48.0
* Tue Feb 16 2016 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.32.5-1909.svn2451
- Add patch for conversion from int to usnigned char
- Resolves: rhbz#1308254