[packages/xmlrpc-c] - updated to 1.60.05 + GCC 15 fix

hawk hawk at pld-linux.org
Sat Aug 16 12:19:04 CEST 2025


commit 7b67e5ba25d5188266823efa8a07f7733b45f2ed
Author: Marcin Krol <hawk at tld-linux.org>
Date:   Sat Aug 16 12:18:22 2025 +0200

    - updated to 1.60.05 + GCC 15 fix

 xmlrpc-c-30x-redirect.patch |  22 +----
 xmlrpc-c-format.patch       |  11 ---
 xmlrpc-c-libxml2.patch      | 216 --------------------------------------------
 xmlrpc-c.spec               |  11 +--
 4 files changed, 8 insertions(+), 252 deletions(-)
---
diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec
index 76ab05e..53db8ca 100644
--- a/xmlrpc-c.spec
+++ b/xmlrpc-c.spec
@@ -1,8 +1,8 @@
 Summary:	XML-RPC C library - an implementation of the xmlrpc protocol
 Summary(pl.UTF-8):	Biblioteka XML-RPC C - implementacja protokołu xmlrpc
 Name:		xmlrpc-c
-Version:	1.43.08
-Release:	2
+Version:	1.60.05
+Release:	1
 License:	XML-RPC for C License (BSD-like)
 Group:		Libraries
 # for feature versions:
@@ -11,12 +11,10 @@ Group:		Libraries
 # and check which version was used for it.
 # for "super stable" versions:
 Source0:	https://downloads.sourceforge.net/xmlrpc-c/%{name}-%{version}.tgz
-# Source0-md5:	8df27727547c4831fa858bf5059b6f7c
+# Source0-md5:	643abc5b51929400bbb0ceb4c34f2dc4
 Patch0:		%{name}-fastdep.patch
 Patch1:		%{name}-soname.patch
 Patch2:		%{name}-cflags.patch
-Patch3:		%{name}-format.patch
-Patch4:		%{name}-libxml2.patch
 # patches 10+ come from Fedora (cmake patch is updated from original version)
 Patch10:	%{name}-cmake.patch
 Patch11:	%{name}-printf-size_t.patch
@@ -278,14 +276,13 @@ XML-RPC.
 %patch -P12 -p1
 %patch -P14 -p1
 %patch -P1 -p1
-%patch -P3 -p1
-%patch -P4 -p1
 
 %build
 mkdir -p build
 cd build
 %cmake .. \
 	-D_lib:STRING=%{_lib} \
+	-DCMAKE_C_FLAGS="-std=gnu17" \
 	-DCMAKE_C_FLAGS_RELEASE="-DNDEBUG" \
 	-DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG" \
 	-DMUST_BUILD_CURL_CLIENT:BOOL=ON \
diff --git a/xmlrpc-c-30x-redirect.patch b/xmlrpc-c-30x-redirect.patch
index a2d4446..537eea0 100644
--- a/xmlrpc-c-30x-redirect.patch
+++ b/xmlrpc-c-30x-redirect.patch
@@ -1,17 +1,6 @@
-From 255ebf4b1204124123971a3bb27741cccbb51692 Mon Sep 17 00:00:00 2001
-From: Enrico Scholz <enrico.scholz at informatik.tu-chemnitz.de>
-Date: Thu, 29 Jul 2010 19:25:32 +0200
-Subject: [PATCH 5/8] allow 30x redirections
-
----
- 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
---- a/lib/curl_transport/curltransaction.c
-+++ b/lib/curl_transport/curltransaction.c
-@@ -600,6 +600,10 @@ setupCurlSession(xmlrpc_env *               const envP,
+--- xmlrpc-c-1.60.05/lib/curl_transport/curltransaction.c	2023-12-26 20:30:28.000000000 +0100
++++ xmlrpc-c-1.60.05/lib/curl_transport/curltransaction.c	2025-08-16 12:09:40.451572875 +0200
+@@ -709,6 +709,10 @@
      curl_easy_setopt(curlSessionP, CURLOPT_POST, 1);
      curl_easy_setopt(curlSessionP, CURLOPT_URL, transP->serverUrl);
  
@@ -21,7 +10,4 @@ index 0f76fc2..6292aee 100644
 +
      XMLRPC_MEMBLOCK_APPEND(char, envP, transP->postDataP, "\0", 1);
      if (!envP->fault_occurred) {
-         curl_easy_setopt(curlSessionP, CURLOPT_POSTFIELDS, 
--- 
-1.7.10.4
-
+         curl_easy_setopt(curlSessionP, CURLOPT_POSTFIELDS,
diff --git a/xmlrpc-c-format.patch b/xmlrpc-c-format.patch
deleted file mode 100644
index 7241f69..0000000
--- a/xmlrpc-c-format.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- xmlrpc-c/src/xmlrpc_server_abyss.c.orig	2013-03-03 16:31:13.000000000 +0100
-+++ xmlrpc-c/src/xmlrpc_server_abyss.c	2013-03-03 19:05:39.913991242 +0100
-@@ -776,7 +776,7 @@
-         ServerInit2(abyssServerP, &error);
- 
-         if (error) {
--            xmlrpc_faultf(envP, error);
-+            xmlrpc_faultf(envP, "%s", error);
-             xmlrpc_strfree(error);
-         }
-     }
diff --git a/xmlrpc-c-libxml2.patch b/xmlrpc-c-libxml2.patch
deleted file mode 100644
index e7f4e5c..0000000
--- a/xmlrpc-c-libxml2.patch
+++ /dev/null
@@ -1,216 +0,0 @@
---- xmlrpc-c-1.43.08/src/xmlrpc_libxml2.c.orig	2016-11-17 04:06:10.000000000 +0100
-+++ xmlrpc-c-1.43.08/src/xmlrpc_libxml2.c	2024-10-27 09:43:13.526853095 +0100
-@@ -47,10 +47,10 @@
- #include "xmlparser.h"
- 
- struct _xml_element {
--    xml_element * parentP;
-+    struct _xml_element * parentP;
-     const char * name;
--    xmlrpc_mem_block cdata;    /* char */
--    xmlrpc_mem_block children; /* xml_element* */
-+    xmlrpc_mem_block * cdataP;    /* char */
-+    xmlrpc_mem_block * childrenP; /* xml_element* */
- };
- 
- #define XMLRPC_ASSERT_ELEM_OK(elem) \
-@@ -97,81 +97,78 @@ xmlElementNew(xmlrpc_env * const envP,
- -----------------------------------------------------------------------------*/
- 
-     xml_element * retval;
--    bool nameIsValid;
--    bool cdataIsValid;
--    bool childrenAreValid;
-+    int name_valid, cdata_valid, children_valid;
- 
-     XMLRPC_ASSERT_ENV_OK(envP);
--    assert(name != NULL);
-+    XMLRPC_ASSERT(name != NULL);
- 
-     /* Set up our error-handling preconditions. */
-     retval = NULL;
--    nameIsValid = cdataIsValid = childrenAreValid = false;
-+    name_valid = cdata_valid = children_valid = 0;
- 
--    MALLOCVAR(retval);
-+    /* Allocate our xml_element structure. */
-+    retval = (xml_element*) malloc(sizeof(xml_element));
-     XMLRPC_FAIL_IF_NULL(retval, envP, XMLRPC_INTERNAL_ERROR,
-                         "Couldn't allocate memory for XML element");
- 
-+    /* Set our parent field to NULL. */
-     retval->parentP = NULL;
--    
-+
-     /* Copy over the element name. */
--    retval->name = strdup(name);
-+    retval->name = xmlrpc_strdupnull(name);
-     XMLRPC_FAIL_IF_NULL(retval->name, envP, XMLRPC_INTERNAL_ERROR,
-                         "Couldn't allocate memory for XML element");
--    nameIsValid = true;
-+    name_valid = 1;
- 
--    /* Initialize a block to hold our CDATA. */
--    XMLRPC_TYPED_MEM_BLOCK_INIT(char, envP, &retval->cdata, 0);
-+    retval->cdataP = XMLRPC_MEMBLOCK_NEW(char, envP, 0);
-     XMLRPC_FAIL_IF_FAULT(envP);
--    cdataIsValid = true;
-+    cdata_valid = 1;
- 
--    /* Initialize a block to hold our child elements. */
--    XMLRPC_TYPED_MEM_BLOCK_INIT(xml_element *, envP, &retval->children, 0);
-+    retval->childrenP = XMLRPC_MEMBLOCK_NEW(xml_element *, envP, 0);
-     XMLRPC_FAIL_IF_FAULT(envP);
--    childrenAreValid = true;
-+    children_valid = 1;
- 
--cleanup:
-+ cleanup:
-     if (envP->fault_occurred) {
-         if (retval) {
--            if (nameIsValid)
-+            if (name_valid)
-                 xmlrpc_strfree(retval->name);
--            if (cdataIsValid)
--                xmlrpc_mem_block_clean(&retval->cdata);
--            if (childrenAreValid)
--                xmlrpc_mem_block_clean(&retval->children);
-+            if (cdata_valid)
-+                XMLRPC_MEMBLOCK_FREE(char, retval->cdataP);
-+            if (children_valid)
-+                XMLRPC_MEMBLOCK_FREE(xml_element *, retval->childrenP);
-             free(retval);
-         }
--        retval = NULL;
-+        return NULL;
-+    } else {
-+        return retval;
-     }
--    return retval;
- }
- 
- 
- 
- void
- xml_element_free(xml_element * const elemP) {
--/*----------------------------------------------------------------------------
--  Blow away an existing element & all of its child elements.
-------------------------------------------------------------------------------*/
--    xmlrpc_mem_block * children;
--    unsigned int size;
--    unsigned int i;
-+
-+    xmlrpc_mem_block * childrenP;
-+    size_t size, i;
-     xml_element ** contents;
- 
-     XMLRPC_ASSERT_ELEM_OK(elemP);
- 
-     xmlrpc_strfree(elemP->name);
-     elemP->name = XMLRPC_BAD_POINTER;
--    xmlrpc_mem_block_clean(&elemP->cdata);
-+
-+    XMLRPC_MEMBLOCK_FREE(char, elemP->cdataP);
- 
-     /* Deallocate all of our children recursively. */
--    children = &elemP->children;
--    contents = XMLRPC_TYPED_MEM_BLOCK_CONTENTS(xml_element *, children);
--    size = XMLRPC_TYPED_MEM_BLOCK_SIZE(xml_element *, children);
-+    childrenP = elemP->childrenP;
-+    contents = XMLRPC_MEMBLOCK_CONTENTS(xml_element *, childrenP);
-+    size = XMLRPC_MEMBLOCK_SIZE(xml_element *, childrenP);
-     for (i = 0; i < size; ++i)
-         xml_element_free(contents[i]);
- 
--    xmlrpc_mem_block_clean(&elemP->children);
-+    XMLRPC_MEMBLOCK_FREE(xml_element *, elemP->childrenP);
- 
-     free(elemP);
- }
-@@ -198,7 +195,8 @@ xml_element_cdata_size(const xml_element
-        has been called!
-     */
-     XMLRPC_ASSERT_ELEM_OK(elemP);
--    return XMLRPC_TYPED_MEM_BLOCK_SIZE(char, &elemP->cdata) - 1;
-+
-+    return XMLRPC_MEMBLOCK_SIZE(char, elemP->cdataP) - 1;
- }
- 
- 
-@@ -206,7 +204,8 @@ xml_element_cdata_size(const xml_element
- const char *
- xml_element_cdata(const xml_element * const elemP) {
-     XMLRPC_ASSERT_ELEM_OK(elemP);
--    return XMLRPC_TYPED_MEM_BLOCK_CONTENTS(char, &elemP->cdata);
-+
-+    return XMLRPC_TYPED_MEM_BLOCK_CONTENTS(const char, elemP->cdataP);
- }
- 
- 
-@@ -214,7 +213,8 @@ xml_element_cdata(const xml_element * co
- unsigned int
- xml_element_children_size(const xml_element * const elemP) {
-     XMLRPC_ASSERT_ELEM_OK(elemP);
--    return XMLRPC_TYPED_MEM_BLOCK_SIZE(xml_element *, &elemP->children);
-+
-+    return XMLRPC_MEMBLOCK_SIZE(xml_element *, elemP->childrenP);
- }
- 
- 
-@@ -222,7 +222,7 @@ xml_element_children_size(const xml_elem
- xml_element **
- xml_element_children(const xml_element * const elemP) {
-     XMLRPC_ASSERT_ELEM_OK(elemP);
--    return XMLRPC_TYPED_MEM_BLOCK_CONTENTS(xml_element *, &elemP->children);
-+    return XMLRPC_MEMBLOCK_CONTENTS(xml_element *, elemP->childrenP);
- }
- 
- 
-@@ -239,9 +239,9 @@ xmlElementAppendCdata(xmlrpc_env *  cons
- 				      size_t        const size) {
- 
-     XMLRPC_ASSERT_ENV_OK(envP);
--    XMLRPC_ASSERT_ELEM_OK(elemP);    
-+    XMLRPC_ASSERT_ELEM_OK(elemP);
- 
--    XMLRPC_TYPED_MEM_BLOCK_APPEND(char, envP, &elemP->cdata, cdata, size);
-+    XMLRPC_MEMBLOCK_APPEND(char, envP, elemP->cdataP, cdata, size);
- }
- 
- 
-@@ -259,10 +259,9 @@ xmlElementAppendChild(xmlrpc_env *  cons
-     XMLRPC_ASSERT_ENV_OK(envP);
-     XMLRPC_ASSERT_ELEM_OK(elemP);
-     XMLRPC_ASSERT_ELEM_OK(childP);
--    assert(childP->parentP == NULL);
-+    XMLRPC_ASSERT(childP->parentP == NULL);
- 
--    XMLRPC_TYPED_MEM_BLOCK_APPEND(xml_element *, envP, &elemP->children,
--                                  &childP, 1);
-+    XMLRPC_MEMBLOCK_APPEND(xml_element *, envP, elemP->childrenP, &childP, 1);
-     if (!envP->fault_occurred)
-         childP->parentP = elemP;
-     else
-@@ -428,7 +427,7 @@ static xmlSAXHandler const saxHandler =
- 
- 
- static void
--removeDocSizeLimit(xmlParserCtx * const parserP ATTR_UNUSED) {
-+removeDocSizeLimit(xmlParserCtxt * const parserP ATTR_UNUSED) {
- /*----------------------------------------------------------------------------
-    Set up *parserP to accept a document of any size.
- 
-@@ -453,11 +452,11 @@ removeDocSizeLimit(xmlParserCtx * const
- static void
- createParser(xmlrpc_env *    const envP,
-              ParseContext *  const contextP,
--             xmlParserCtx ** const parserPP) {
-+             xmlParserCtxt ** const parserPP) {
- /*----------------------------------------------------------------------------
-    Create an appropriate Libxml2 parser for our purpose.
- -----------------------------------------------------------------------------*/
--    xmlParserCtx * parserP;
-+    xmlParserCtxt * parserP;
- 
-     parserP = xmlCreatePushParserCtxt((xmlSAXHandler *)&saxHandler, contextP,
-                                         NULL, 0, NULL);
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/xmlrpc-c.git/commitdiff/7b67e5ba25d5188266823efa8a07f7733b45f2ed



More information about the pld-cvs-commit mailing list