已开启
update to version 1.64.04 #47
Funda Wang创建于 10月3日
update to version 1.64.04 #47
已开启
共 6 个文件变更+54-321
| @@ -297,7 +297,7 @@ new file mode 100644 | |||
| 297 | index 00000000..daa91fce | 297 | index 00000000..daa91fce |
| 298 | --- /dev/null | 298 | --- /dev/null |
| 299 | +++ b/lib/abyss/src/meson.build | 299 | +++ b/lib/abyss/src/meson.build |
| 300 | -@@ -0,0 +1,65 @@ | 300 | +@@ -0,0 +1,66 @@ |
| 301 | +abyss_deps = [socket] | 301 | +abyss_deps = [socket] |
| 302 | +if host_machine.system() == 'windows' | 302 | +if host_machine.system() == 'windows' |
| 303 | + abyss_socket = 'socket_win.c' | 303 | + abyss_socket = 'socket_win.c' |
| @@ -330,6 +330,7 @@ index 00000000..daa91fce | |||
| 330 | + 'date.c', | 330 | + 'date.c', |
| 331 | + 'file.c', | 331 | + 'file.c', |
| 332 | + 'handler.c', | 332 | + 'handler.c', |
| 333 | ++ 'html.c', | ||
| 333 | + 'http.c', | 334 | + 'http.c', |
| 334 | + 'init.c', | 335 | + 'init.c', |
| 335 | + 'response.c', | 336 | + 'response.c', |
| @@ -1,274 +0,0 @@ | |||
| 1 | -Conflict:context adapt | ||
| 2 | -add build config for meson | ||
| 3 | -Reference:https://sourceforge.net/p/xmlrpc-c/code/3342/ | ||
| 4 | - | ||
| 5 | -diff -Nur xmlrpc-c-code-r3341-trunk/lib/abyss/src/handler.c xmlrpc-c-code-r3342-trunk/lib/abyss/src/handler.c | ||
| 6 | ---- xmlrpc-c-code-r3341-trunk/lib/abyss/src/handler.c 2025-02-13 12:38:42.000000000 +0800 | ||
| 7 | -+++ xmlrpc-c-code-r3342-trunk/lib/abyss/src/handler.c 2026-07-27 07:53:17.000000000 +0800 | ||
| 8 | -@@ -36,6 +36,7 @@ | ||
| 9 | - #include "file.h" | ||
| 10 | - #include "conn.h" | ||
| 11 | - #include "http.h" | ||
| 12 | -+#include "html.h" | ||
| 13 | - #include "date.h" | ||
| 14 | - #include "abyss_info.h" | ||
| 15 | - | ||
| 16 | -@@ -291,11 +292,15 @@ | ||
| 17 | - "------------------------------------" | ||
| 18 | - "--------------------------------------------\r\n"); | ||
| 19 | - } else { | ||
| 20 | -+ const char * const escapedUri = html_escapedForHtml(uri); | ||
| 21 | -+ | ||
| 22 | - sprintf(z, "<HTML><HEAD><TITLE>Index of %s</TITLE></HEAD><BODY>" | ||
| 23 | - "<H1>Index of %s</H1><PRE>", | ||
| 24 | -- uri, uri); | ||
| 25 | -+ escapedUri, escapedUri); | ||
| 26 | - strcat(z, "Name Size " | ||
| 27 | - "Date-Time Type<HR WIDTH=100%>\r\n"); | ||
| 28 | -+ | ||
| 29 | -+ xmlrpc_strfree(escapedUri); | ||
| 30 | - } | ||
| 31 | - | ||
| 32 | - HTTPWriteBodyChunk(sessionP, z, strlen(z)); | ||
| 33 | -@@ -304,6 +309,37 @@ | ||
| 34 | - | ||
| 35 | - | ||
| 36 | - static void | ||
| 37 | -+formatHtmlForDirEntry(char * const buffer, | ||
| 38 | -+ const char * const name, | ||
| 39 | -+ int const attrib, | ||
| 40 | -+ const char * const z1, | ||
| 41 | -+ const char * const z2, | ||
| 42 | -+ const char * const z3, | ||
| 43 | -+ const char * const z4, | ||
| 44 | -+ const char * const p) { | ||
| 45 | -+ | ||
| 46 | -+ const char * const escapedName = html_escapedForHtml(name); | ||
| 47 | -+ const char * const escapedZ1 = html_escapedForHtml(z1); | ||
| 48 | -+ const char * const escapedZ2 = html_escapedForHtml(z2); | ||
| 49 | -+ const char * const escapedZ3 = html_escapedForHtml(z3); | ||
| 50 | -+ const char * const escapedZ4 = html_escapedForHtml(z4); | ||
| 51 | -+ const char * const escapedP = html_escapedForHtml(p); | ||
| 52 | -+ | ||
| 53 | -+ sprintf(buffer, "<A HREF=\"%s%s\">%s</A>%s %s %s %s\r\n", | ||
| 54 | -+ escapedName, attrib & A_SUBDIR ? "/" : "", | ||
| 55 | -+ escapedZ1, escapedP, escapedZ3, escapedZ2, escapedZ4); | ||
| 56 | -+ | ||
| 57 | -+ xmlrpc_strfree(escapedP); | ||
| 58 | -+ xmlrpc_strfree(escapedZ1); | ||
| 59 | -+ xmlrpc_strfree(escapedZ2); | ||
| 60 | -+ xmlrpc_strfree(escapedZ3); | ||
| 61 | -+ xmlrpc_strfree(escapedZ4); | ||
| 62 | -+ xmlrpc_strfree(escapedName); | ||
| 63 | -+} | ||
| 64 | -+ | ||
| 65 | -+ | ||
| 66 | -+ | ||
| 67 | -+static void | ||
| 68 | - sendDirectoryDocument(TList * const listP, | ||
| 69 | - bool const ascending, | ||
| 70 | - uint16_t const sort, | ||
| 71 | -@@ -405,9 +441,7 @@ | ||
| 72 | - if (text) | ||
| 73 | - sprintf(z, "%s%s %s %s %s\r\n", z1, p, z3, z2, z4); | ||
| 74 | - else | ||
| 75 | -- sprintf(z, "<A HREF=\"%s%s\">%s</A>%s %s %s %s\r\n", | ||
| 76 | -- fi->name, fi->attrib & A_SUBDIR ? "/" : "", | ||
| 77 | -- z1, p, z3, z2, z4); | ||
| 78 | -+ formatHtmlForDirEntry(z, fi->name, fi->attrib, z1, z2, z3, z4, p); | ||
| 79 | - | ||
| 80 | - HTTPWriteBodyChunk(sessionP, z, strlen(z)); | ||
| 81 | - } | ||
| 82 | -diff -Nur xmlrpc-c-code-r3341-trunk/lib/abyss/src/html.c xmlrpc-c-code-r3342-trunk/lib/abyss/src/html.c | ||
| 83 | ---- xmlrpc-c-code-r3341-trunk/lib/abyss/src/html.c 1970-01-01 08:00:00.000000000 +0800 | ||
| 84 | -+++ xmlrpc-c-code-r3342-trunk/lib/abyss/src/html.c 2026-07-27 07:53:17.000000000 +0800 | ||
| 85 | -@@ -0,0 +1,89 @@ | ||
| 86 | -+/*============================================================================= | ||
| 87 | -+ html | ||
| 88 | -+=============================================================================== | ||
| 89 | -+ This module contains utilities for processing HTML. | ||
| 90 | -+=============================================================================*/ | ||
| 91 | -+ | ||
| 92 | -+#include <assert.h> | ||
| 93 | -+#include <stdlib.h> | ||
| 94 | -+ | ||
| 95 | -+#include <xmlrpc-c/string_int.h> | ||
| 96 | -+ | ||
| 97 | -+#include "html.h" | ||
| 98 | -+ | ||
| 99 | -+ | ||
| 100 | -+ | ||
| 101 | -+static void | ||
| 102 | -+insertCharEntity(char * const buffer, | ||
| 103 | -+ unsigned int * const cursorP, | ||
| 104 | -+ const char * const name) { | ||
| 105 | -+ | ||
| 106 | -+ size_t i; | ||
| 107 | -+ | ||
| 108 | -+ buffer[(*cursorP)++] = '&'; | ||
| 109 | -+ | ||
| 110 | -+ for (i = 0; i < strlen(name); ++i) | ||
| 111 | -+ buffer[(*cursorP)++] = name[i]; | ||
| 112 | -+ | ||
| 113 | -+ buffer[(*cursorP)++] = ';'; | ||
| 114 | -+} | ||
| 115 | -+ | ||
| 116 | -+ | ||
| 117 | -+ | ||
| 118 | -+const char * | ||
| 119 | -+html_escapedForHtml(const char * const plainText) { | ||
| 120 | -+/*---------------------------------------------------------------------------- | ||
| 121 | -+ The text 'plainText' with HTML control characters replaced with | ||
| 122 | -+ HTML character entities so that the result can be used inside an HTML | ||
| 123 | -+ document without any chance of interfering with HTML controls. | ||
| 124 | -+ | ||
| 125 | -+ In particular, we substitute one of the following for each associated | ||
| 126 | -+ character: | ||
| 127 | -+ | ||
| 128 | -+ & | ||
| 129 | -+ < | ||
| 130 | -+ > | ||
| 131 | -+ " | ||
| 132 | -+ ' | ||
| 133 | -+ | ||
| 134 | -+ We return newly malloced storage or a constant if we can't get allocate | ||
| 135 | -+ enough, like 'xmlrpc_strdupsol', which must be freed with 'xmlrpc_strfree'. | ||
| 136 | -+-----------------------------------------------------------------------------*/ | ||
| 137 | -+ | ||
| 138 | -+ size_t const maxPossibleReturnSz = strlen(plainText) * 6 + 1; | ||
| 139 | -+ | ||
| 140 | -+ const char * retval; | ||
| 141 | -+ char * buffer; /* malloc'ed */ | ||
| 142 | -+ | ||
| 143 | -+ buffer = malloc(maxPossibleReturnSz); | ||
| 144 | -+ | ||
| 145 | -+ if (!buffer) | ||
| 146 | -+ retval = xmlrpc_strnomemval(); | ||
| 147 | -+ else { | ||
| 148 | -+ unsigned int inCursor, outCursor; | ||
| 149 | -+ | ||
| 150 | -+ for (inCursor = 0, outCursor = 0; | ||
| 151 | -+ inCursor < strlen(plainText); | ||
| 152 | -+ ++inCursor) { | ||
| 153 | -+ | ||
| 154 | -+ switch (plainText[inCursor]) { | ||
| 155 | -+ case '&': insertCharEntity(buffer, &outCursor, "amp"); break; | ||
| 156 | -+ case '<': insertCharEntity(buffer, &outCursor, "lt"); break; | ||
| 157 | -+ case '>': insertCharEntity(buffer, &outCursor, "gt"); break; | ||
| 158 | -+ case '"': insertCharEntity(buffer, &outCursor, "quot"); break; | ||
| 159 | -+ case '\'': insertCharEntity(buffer, &outCursor, "apos"); break; | ||
| 160 | -+ default: | ||
| 161 | -+ buffer[outCursor++] = plainText[inCursor]; | ||
| 162 | -+ } | ||
| 163 | -+ } | ||
| 164 | -+ | ||
| 165 | -+ buffer[outCursor++] = '\0'; /* string-terminating NUL */ | ||
| 166 | -+ | ||
| 167 | -+ assert(outCursor <= maxPossibleReturnSz); | ||
| 168 | -+ | ||
| 169 | -+ retval = buffer; | ||
| 170 | -+ } | ||
| 171 | -+ return retval; | ||
| 172 | -+} | ||
| 173 | -+ | ||
| 174 | -+ | ||
| 175 | -diff -Nur xmlrpc-c-code-r3341-trunk/lib/abyss/src/html.h xmlrpc-c-code-r3342-trunk/lib/abyss/src/html.h | ||
| 176 | ---- xmlrpc-c-code-r3341-trunk/lib/abyss/src/html.h 1970-01-01 08:00:00.000000000 +0800 | ||
| 177 | -+++ xmlrpc-c-code-r3342-trunk/lib/abyss/src/html.h 2026-07-27 07:53:17.000000000 +0800 | ||
| 178 | -@@ -0,0 +1,7 @@ | ||
| 179 | -+#ifndef HTML_H_INCLUDED | ||
| 180 | -+#define HTML_H_INCLUDED | ||
| 181 | -+ | ||
| 182 | -+const char * | ||
| 183 | -+html_escapedForHtml(const char * const plainText); | ||
| 184 | -+ | ||
| 185 | -+#endif | ||
| 186 | -diff -Nur xmlrpc-c-code-r3341-trunk/lib/abyss/src/Makefile xmlrpc-c-code-r3342-trunk/lib/abyss/src/Makefile | ||
| 187 | ---- xmlrpc-c-code-r3341-trunk/lib/abyss/src/Makefile 2025-09-23 02:35:26.000000000 +0800 | ||
| 188 | -+++ xmlrpc-c-code-r3342-trunk/lib/abyss/src/Makefile 2026-07-27 07:53:17.000000000 +0800 | ||
| 189 | -@@ -49,6 +49,7 @@ | ||
| 190 | - date \ | ||
| 191 | - file \ | ||
| 192 | - handler \ | ||
| 193 | -+ html \ | ||
| 194 | - http \ | ||
| 195 | - init \ | ||
| 196 | - response \ | ||
| 197 | -diff -Nur xmlrpc-c-code-r3341-trunk/lib/abyss/src/meson.build xmlrpc-c-code-r3342-trunk/lib/abyss/src/meson.build | ||
| 198 | ---- xmlrpc-c-code-r3341-trunk/lib/abyss/src/meson.build 2025-09-23 02:35:26.000000000 +0800 | ||
| 199 | -+++ xmlrpc-c-code-r3342-trunk/lib/abyss/src/meson.build 2026-07-27 07:53:17.000000000 +0800 | ||
| 200 | -@@ -30,6 +30,7 @@ | ||
| 201 | - 'date.c', | ||
| 202 | - 'file.c', | ||
| 203 | - 'handler.c', | ||
| 204 | -+ 'html.c', | ||
| 205 | - 'http.c', | ||
| 206 | - 'init.c', | ||
| 207 | - 'response.c', | ||
| 208 | -diff -Nur xmlrpc-c-code-r3341-trunk/lib/abyss/src/response.c xmlrpc-c-code-r3342-trunk/lib/abyss/src/response.c | ||
| 209 | ---- xmlrpc-c-code-r3341-trunk/lib/abyss/src/response.c 2022-08-11 08:46:02.000000000 +0800 | ||
| 210 | -+++ xmlrpc-c-code-r3342-trunk/lib/abyss/src/response.c 2026-07-27 07:53:17.000000000 +0800 | ||
| 211 | -@@ -34,6 +34,7 @@ | ||
| 212 | - #include "data.h" | ||
| 213 | - #include "abyss_info.h" | ||
| 214 | - #include "http.h" | ||
| 215 | -+#include "html.h" | ||
| 216 | - | ||
| 217 | - | ||
| 218 | - | ||
| 219 | -@@ -41,6 +42,8 @@ | ||
| 220 | - ResponseError2(TSession * const sessionP, | ||
| 221 | - const char * const explanation) { | ||
| 222 | - | ||
| 223 | -+ const char * const escapedExplanation = html_escapedForHtml(explanation); | ||
| 224 | -+ | ||
| 225 | - const char * errorDocument; | ||
| 226 | - | ||
| 227 | - ResponseAddField(sessionP, "Content-type", "text/html"); | ||
| 228 | -@@ -54,12 +57,14 @@ | ||
| 229 | - "<P>%s</P>" SERVER_HTML_INFO | ||
| 230 | - "</BODY>" | ||
| 231 | - "</HTML>", | ||
| 232 | -- sessionP->status, sessionP->status, explanation); | ||
| 233 | -+ sessionP->status, sessionP->status, escapedExplanation); | ||
| 234 | - | ||
| 235 | - ConnWrite(sessionP->connP, errorDocument, strlen(errorDocument), | ||
| 236 | - CONN_EXPECT_NOTHING); | ||
| 237 | - | ||
| 238 | - xmlrpc_strfree(errorDocument); | ||
| 239 | -+ | ||
| 240 | -+ xmlrpc_strfree(escapedExplanation); | ||
| 241 | - } | ||
| 242 | - | ||
| 243 | - | ||
| 244 | -diff -Nur xmlrpc-c-code-r3341-trunk/src/abyss_handler.c xmlrpc-c-code-r3342-trunk/src/abyss_handler.c | ||
| 245 | ---- xmlrpc-c-code-r3341-trunk/src/abyss_handler.c 2025-08-02 01:52:09.000000000 +0800 | ||
| 246 | -+++ xmlrpc-c-code-r3342-trunk/src/abyss_handler.c 2026-07-27 07:53:17.000000000 +0800 | ||
| 247 | -@@ -611,7 +611,7 @@ | ||
| 248 | - abyss_bool | ||
| 249 | - xmlrpc_serverAbyssDefaultUriHandler(TSession * const sessionP) { | ||
| 250 | - /*---------------------------------------------------------------------------- | ||
| 251 | -- This is an Abyss default handler. It return a 404 Not Found for all | ||
| 252 | -+ This is an Abyss default handler. It returns a 404 Not Found for all | ||
| 253 | - requests. | ||
| 254 | - -----------------------------------------------------------------------------*/ | ||
| 255 | - const TRequestInfo * requestInfoP; | ||
| 256 | -diff -Nur xmlrpc-c-code-r3341-trunk/src/xmlrpc_serialize.c xmlrpc-c-code-r3342-trunk/src/xmlrpc_serialize.c | ||
| 257 | ---- xmlrpc-c-code-r3341-trunk/src/xmlrpc_serialize.c 2020-06-08 05:33:24.000000000 +0800 | ||
| 258 | -+++ xmlrpc-c-code-r3342-trunk/src/xmlrpc_serialize.c 2026-07-27 07:53:17.000000000 +0800 | ||
| 259 | -@@ -157,11 +157,10 @@ | ||
| 260 | - | ||
| 261 | - 
 is known in XML as a "character reference." | ||
| 262 | - | ||
| 263 | -- We assume chars[] is is ASCII. That isn't right -- we should | ||
| 264 | -- handle all valid UTF-8. Someday, we must do something more complex | ||
| 265 | -- and copy over multibyte characters verbatim. (The code here could | ||
| 266 | -- erroneously find that e.g. the 2nd byte of a UTF-8 character is a | ||
| 267 | -- CR). | ||
| 268 | -+ We assume chars[] is ASCII. That isn't right -- we should handle all valid | ||
| 269 | -+ UTF-8. Someday, we must do something more complex and copy over multibyte | ||
| 270 | -+ characters verbatim. (The code here could erroneously find that e.g. the | ||
| 271 | -+ 2nd byte of a UTF-8 character is a CR). | ||
| 272 | - -----------------------------------------------------------------------------*/ | ||
| 273 | - xmlrpc_mem_block * outputP; | ||
| 274 | - size_t outputSize; | ||
| @@ -1,33 +1,33 @@ | |||
| 1 | -From 3f08142848632e4760bec07534adf5f300ffd95c Mon Sep 17 00:00:00 2001 | 1 | +From 3f08142848632e4760bec07534adf5f300ffd95c Mon Sep 17 00:00:00 2001 |
| 2 | -From: Sebastian Pipping <sebastian@pipping.org> | 2 | +From: Sebastian Pipping <sebastian@pipping.org> |
| 3 | -Date: Tue, 4 Aug 2026 19:17:52 +0200 | 3 | +Date: Tue, 4 Aug 2026 19:17:52 +0200 |
| 4 | -Subject: [PATCH 1/7] Changes: Drop an unintended blank line | 4 | +Subject: [PATCH 1/7] Changes: Drop an unintended blank line |
| 5 | - | 5 | + |
| 6 | -Conflict:context adapt | 6 | +Conflict:context adapt |
| 7 | -remove code not exist from expat/lib/xcsinc.c expat/lib/xmlparse.c | 7 | +remove code not exist from expat/lib/xcsinc.c expat/lib/xmlparse.c |
| 8 | -remove doc | 8 | +remove doc |
| 9 | -remove change of test | 9 | +remove change of test |
| 10 | -Reference:https://github.com/libexpat/libexpat/commit/27c6536c2bfa857b6678b1038d14f43fd65a4aa6.patch | 10 | +Reference:https://github.com/libexpat/libexpat/commit/27c6536c2bfa857b6678b1038d14f43fd65a4aa6.patch |
| 11 | ---- | 11 | +--- |
| 12 | - lib/expat/xmltok/xmltok.c | 5 +++-- | 12 | + lib/expat/xmltok/xmltok.c | 5 +++-- |
| 13 | - 1 file changed, 3 insertions(+), 2 deletions(-) | 13 | + 1 file changed, 3 insertions(+), 2 deletions(-) |
| 14 | - | 14 | + |
| 15 | -diff --git a/lib/expat/xmltok/xmltok.c b/lib/expat/xmltok/xmltok.c | 15 | +diff --git a/lib/expat/xmltok/xmltok.c b/lib/expat/xmltok/xmltok.c |
| 16 | -index 7b31fbb..4f4d904 100644 | 16 | +index 7b31fbb..4f4d904 100644 |
| 17 | ---- a/lib/expat/xmltok/xmltok.c | 17 | +--- a/lib/expat/xmltok/xmltok.c |
| 18 | -+++ b/lib/expat/xmltok/xmltok.c | 18 | ++++ b/lib/expat/xmltok/xmltok.c |
| 19 | -@@ -549,9 +549,10 @@ void E ## toUtf16(const ENCODING *enc ATTR_UNUSED, \ | 19 | +@@ -549,9 +549,10 @@ void E ## toUtf16(const ENCODING *enc ATTR_UNUSED, \ |
| 20 | - const char **fromP, const char *fromLim, \ | 20 | + const char **fromP, const char *fromLim, \ |
| 21 | - unsigned short **toP, const unsigned short *toLim) \ | 21 | + unsigned short **toP, const unsigned short *toLim) \ |
| 22 | - { \ | 22 | + { \ |
| 23 | -- /* Avoid copying first half only of surrogate */ \ | 23 | +- /* Avoid copying first half only of surrogate */ \ |
| 24 | -+ /* Avoid copying the first half (2 bytes) of surrogate pairs (4 bytes) */ \ | 24 | ++ /* Avoid copying the first half (2 bytes) of surrogate pairs (4 bytes) */ \ |
| 25 | - if (fromLim - *fromP > ((toLim - *toP) << 1) \ | 25 | + if (fromLim - *fromP > ((toLim - *toP) << 1) \ |
| 26 | -- && (GET_HI(fromLim - 2) & 0xF8) == 0xD8) \ | 26 | +- && (GET_HI(fromLim - 2) & 0xF8) == 0xD8) \ |
| 27 | -+ && /* are the last two bytes a high surrogate (0xD800-0xDBFF)? */ \ | 27 | ++ && /* are the last two bytes a high surrogate (0xD800-0xDBFF)? */ \ |
| 28 | -+ (GET_HI(fromLim - 2) & 0xFC) == 0xD8) \ | 28 | ++ (GET_HI(fromLim - 2) & 0xFC) == 0xD8) \ |
| 29 | - fromLim -= 2; \ | 29 | + fromLim -= 2; \ |
| 30 | - for (; *fromP != fromLim && *toP != toLim; *fromP += 2) \ | 30 | + for (; *fromP != fromLim && *toP != toLim; *fromP += 2) \ |
| 31 | - *(*toP)++ = (GET_HI(*fromP) << 8) | GET_LO(*fromP); \ | 31 | + *(*toP)++ = (GET_HI(*fromP) << 8) | GET_LO(*fromP); \ |
| 32 | --- | 32 | +-- |
| 33 | -2.43.0 | 33 | +2.43.0 |
Binary files do not support preview
| @@ -1,20 +1,24 @@ | |||
| 1 | Name: xmlrpc-c | 1 | Name: xmlrpc-c |
| 2 | -Version: 1.64.03 | 2 | +Version: 1.64.04 |
| 3 | -Release: 3 | 3 | +Release: 1 |
| 4 | Summary: Library implementing XML-based Remote Procedure Calls | 4 | Summary: Library implementing XML-based Remote Procedure Calls |
| 5 | -License: BSD and MIT | 5 | +License: BSD-3-Clause |
| 6 | -URL: http://xmlrpc-c.sourceforge.net/ | 6 | +URL: https://xmlrpc-c.sourceforge.net/ |
| 7 | -Source0: https://sourceforge.net/projects/xmlrpc-c/files/Xmlrpc-c%20Super%20Stable/%version/xmlrpc-%version.tgz | 7 | +Source0: https://downloads.sourceforge.net/sourceforge/xmlrpc-c/xmlrpc-c-%{version}.tgz |
| 8 | 8 | ||
| 9 | Patch0003: backport-0001-add-meson-buildsystem-definitions.patch | 9 | Patch0003: backport-0001-add-meson-buildsystem-definitions.patch |
| 10 | Patch0004: backport-0002-chmod-x-xml-rpc-api2txt.patch | 10 | Patch0004: backport-0002-chmod-x-xml-rpc-api2txt.patch |
| 11 | Patch0005: backport-CVE-2024-45490-lib-Reject-negative-len-for-XML_ParseBuffer.patch | 11 | Patch0005: backport-CVE-2024-45490-lib-Reject-negative-len-for-XML_ParseBuffer.patch |
| 12 | Patch0006: backport-CVE-2024-45491-lib-Detect-integer-overflow-in-dtdCopy.patch | 12 | Patch0006: backport-CVE-2024-45491-lib-Detect-integer-overflow-in-dtdCopy.patch |
| 13 | -Patch0007: backport-CVE-2026-15928.patch | 13 | +Patch0007: backport-CVE-2026-72522.patch |
| 14 | -Patch0008: backport-CVE-2026-72522.patch | ||
| 15 | 14 | ||
| 16 | -BuildRequires: git-core meson >= 0.36.0 gcc gcc-c++ ncurses-devel | 15 | +BuildRequires: meson >= 0.36.0 |
| 17 | -BuildRequires: libcurl-devel readline-devel pkgconfig(openssl) | 16 | +BuildRequires: gcc |
| 17 | +BuildRequires: pkgconfig(libcurl) | ||
| 18 | +BuildRequires: pkgconfig(libxml-2.0) | ||
| 19 | +BuildRequires: pkgconfig(openssl) | ||
| 20 | +BuildRequires: ncurses-devel | ||
| 21 | +BuildRequires: readline-devel | ||
| 18 | 22 | ||
| 19 | Provides: xmlrpc-c-c++ = %{version}-%{release} xmlrpc-c-c++%{?_isa} = %{version}-%{release} | 23 | Provides: xmlrpc-c-c++ = %{version}-%{release} xmlrpc-c-c++%{?_isa} = %{version}-%{release} |
| 20 | Obsoletes: xmlrpc-c-c++ < %{version}-%{release} | 24 | Obsoletes: xmlrpc-c-c++ < %{version}-%{release} |
| @@ -28,8 +32,6 @@ Obsoletes: xmlrpc-c-client++ < %{version}-%{release} | |||
| 28 | Provides: xmlrpc-c-apps = %{version}-%{release} xmlrpc-c-apps%{?_isa} = %{version}-%{release} | 32 | Provides: xmlrpc-c-apps = %{version}-%{release} xmlrpc-c-apps%{?_isa} = %{version}-%{release} |
| 29 | Obsoletes: xmlrpc-c-apps < %{version}-%{release} | 33 | Obsoletes: xmlrpc-c-apps < %{version}-%{release} |
| 30 | 34 | ||
| 31 | -Provides: bundled(expat) | ||
| 32 | - | ||
| 33 | %description | 35 | %description |
| 34 | XML-RPC is a quick-and-easy way to make procedure calls | 36 | XML-RPC is a quick-and-easy way to make procedure calls |
| 35 | over the Internet. It converts the procedure call into | 37 | over the Internet. It converts the procedure call into |
| @@ -46,10 +48,10 @@ Header files for xmlrpc-c. | |||
| 46 | %package_help | 48 | %package_help |
| 47 | 49 | ||
| 48 | %prep | 50 | %prep |
| 49 | -%autosetup -n xmlrpc-%{version} -p1 | 51 | +%autosetup -n xmlrpc-c-%{version} -p1 |
| 50 | 52 | ||
| 51 | %build | 53 | %build |
| 52 | -%meson | 54 | +%meson -Dlibxml2-backend=true |
| 53 | %meson_build | 55 | %meson_build |
| 54 | 56 | ||
| 55 | %install | 57 | %install |
| @@ -74,6 +76,10 @@ Header files for xmlrpc-c. | |||
| 74 | %{_mandir}/man1/* | 76 | %{_mandir}/man1/* |
| 75 | 77 | ||
| 76 | %changelog | 78 | %changelog |
| 79 | +* Fri Oct 02 2026 Funda Wang <fundawang@yeah.net> - 1.64.04-1 | ||
| 80 | +- update to 1.64.04 | ||
| 81 | +- build with external libxml2 per next version series of upstream | ||
| 82 | + | ||
| 77 | * Tue Sep 08 2026 zhouyihang <zhouyihang_z@163.com> - 1.64.03-3 | 83 | * Tue Sep 08 2026 zhouyihang <zhouyihang_z@163.com> - 1.64.03-3 |
| 78 | - Type:CVE | 84 | - Type:CVE |
| 79 | - CVE:CVE-2026-72522 | 85 | - CVE:CVE-2026-72522 |