[packages/zorba] fix build with libxml2 >= 2.12 and boost >= 1.85

atler atler at pld-linux.org
Wed Jan 22 20:31:02 CET 2025


commit c00dadf585611cc9ab5d091ca8234c8a5d809d87
Author: Jan Palus <atler at pld-linux.org>
Date:   Wed Jan 22 20:12:31 2025 +0100

    fix build with libxml2 >= 2.12 and boost >= 1.85

 boost1.85.patch  | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 libxml2.12.patch |  44 ++++++++++++++++++++++
 zorba.spec       |  12 ++++--
 3 files changed, 161 insertions(+), 4 deletions(-)
---
diff --git a/zorba.spec b/zorba.spec
index 7de89a9..38fbbcb 100644
--- a/zorba.spec
+++ b/zorba.spec
@@ -15,6 +15,8 @@ Patch0:		%{name}-tr1.patch
 Patch1:		%{name}-icu.patch
 Patch2:		%{name}-glibc.patch
 Patch3:		%{name}-includes.patch
+Patch4:		libxml2.12.patch
+Patch5:		boost1.85.patch
 URL:		https://github.com/28msec/zorba
 BuildRequires:	bison >= 2.4
 BuildRequires:	boost-devel >= 1.33
@@ -74,10 +76,12 @@ Pliki nagłówkowe biblioteki zorba.
 
 %prep
 %setup -q
-%patch0 -p1
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
+%patch -P0 -p1
+%patch -P1 -p1
+%patch -P2 -p1
+%patch -P3 -p1
+%patch -P4 -p1
+%patch -P5 -p1
 
 %build
 install -d build
diff --git a/boost1.85.patch b/boost1.85.patch
new file mode 100644
index 0000000..f7e3479
--- /dev/null
+++ b/boost1.85.patch
@@ -0,0 +1,109 @@
+--- zorba-3.1/test/driver/testdriver_mt.cpp.orig	2015-06-16 13:26:38.000000000 +0200
++++ zorba-3.1/test/driver/testdriver_mt.cpp	2025-01-22 20:06:45.077984129 +0100
+@@ -44,9 +44,9 @@
+ #include "testdriver_common.h"
+ 
+ // These are included last because they define the <stdint.h>'s INTMAX_C and UINTMAX_C
++#include <boost/filesystem/directory.hpp>
+ #include <boost/filesystem/operations.hpp>
+ #include <boost/filesystem/path.hpp>
+-#include <boost/filesystem/convenience.hpp>
+ 
+ 
+ namespace fs = boost::filesystem;
+@@ -293,7 +293,7 @@
+   if (!fileStream.good())
+   {
+     fs::path dirPath = filePath;
+-    dirPath = dirPath.remove_leaf();
++    dirPath = dirPath.remove_filename();
+     
+     if (!fs::exists(dirPath.file_string()))
+     {
+@@ -321,7 +321,7 @@
+   if (!fileStream.good())
+   {
+     fs::path dirPath = filePath;
+-    dirPath = dirPath.remove_leaf();
++    dirPath = dirPath.remove_filename();
+     
+     if (!fs::exists(dirPath.generic_string()))
+     {
+@@ -462,10 +462,12 @@
+     relativeQueryFile = queries->theQueryFilenames[queryNo];
+     queryPath = fs::path(queries->theQueriesDir) / (relativeQueryFile);
+ 
++    fs::path tmpPath(queryPath);
++    tmpPath.replace_extension("");
+ #if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+-    std::string testName = fs::change_extension(queryPath, "").file_string();
++    std::string testName = tmpPath.file_string();
+ #else
+-    std::string testName = fs::change_extension(queryPath, "").generic_string();
++    std::string testName = tmpPath.generic_string();
+ #endif
+ 
+     ulong pos = testName.find("Queries");
+@@ -489,7 +491,8 @@
+     // with this query. If the .spec file exists, read its contents to
+     // extract args to be passed to the query (e.g., external var bindings),
+     // exprected errors, or the pathnames of reference-result files.
+-    specPath = fs::change_extension(queryPath, ".spec");
++    specPath = fs::path(queryPath);
++    specPath.replace_extension(".spec");
+     if (fs::exists(specPath))
+     {
+ #if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
+@@ -527,7 +530,7 @@
+       }
+ 
+       fs::path refFilePath = fs::path(queries->theRefsDir) / (relativeRefFile);
+-      refFilePath = fs::change_extension(refFilePath, ".xml.res");
++      refFilePath.replace_extension(".xml.res");
+ 
+       if (fs::exists(refFilePath)) 
+         refFileSpecified = true;
+@@ -540,7 +543,7 @@
+     // previous runs of the query. Finaly, create (if necessary) all the dirs
+     // in the pathname of the result and error files.
+     resultFilePath = fs::path(queries->theResultsDir) / (relativeQueryFile);
+-    resultFilePath = fs::change_extension(resultFilePath, (".res_" + tnoStr));
++    resultFilePath.replace_extension((".res_" + tnoStr));
+ 
+     if (fs::exists(resultFilePath))
+       fs::remove(resultFilePath);
+@@ -550,7 +553,7 @@
+ 
+ #if 0
+     errorFilePath = fs::path(queries->theResultsDir) / (relativeQueryFile);
+-    errorFilePath = fs::change_extension(errorFilePath, (".err_" + tnoStr));
++    errorFilePath.replace_extension((".err_" + tnoStr));
+ 
+     if (fs::exists(errorFilePath))
+       fs::remove(errorFilePath);
+@@ -1090,13 +1093,13 @@
+     {
+       fs::path queryPath = *dirIte;
+ 
+-      if (!fs::is_regular(queryPath))
++      if (!fs::is_regular_file(queryPath))
+       {
+         //std::cerr << "Found non-regular file " << queryPath.string() << std::endl;
+         continue;
+       }
+ 
+-      if (fs::extension(queryPath) != testExtension)
++      if (queryPath.extension().string() != testExtension)
+       {
+         //std::cerr << "Found no-query file " << queryPath.string() << std::endl;
+         continue;
+@@ -1227,7 +1230,8 @@
+   for (long i = 0; i < queries.theNumQueries; i++)
+   {
+     fs::path queryPath = fs::path(pathPrefix) / (queries.theQueryFilenames[i]);
+-    fs::path queryName = fs::change_extension(queryPath, "");
++    fs::path queryName(queryPath);
++    queryName.replace_extension("");
+     bool queryWasKnownToFail = false;
+     if (haveKnownFailures) 
+     {
diff --git a/libxml2.12.patch b/libxml2.12.patch
new file mode 100644
index 0000000..94108f2
--- /dev/null
+++ b/libxml2.12.patch
@@ -0,0 +1,44 @@
+--- zorba-3.1/src/store/naive/loader.h.orig	2015-06-16 13:26:38.000000000 +0200
++++ zorba-3.1/src/store/naive/loader.h	2025-01-22 11:36:28.295406325 +0100
+@@ -19,6 +19,7 @@
+ #include <stack>
+ #include <libxml/parser.h>
+ #include <libxml/xmlstring.h>
++#include <libxml/xmlversion.h>
+ 
+ #include "store/api/item.h"
+ #include "store/api/load_properties.h"
+@@ -111,7 +112,11 @@
+       const zstring& docUri,
+       std::istream& xmlStream) = 0;
+ 
++#if LIBXML_VERSION >= 21200
++  static void error( void *ctx, const xmlError* );
++#else
+   static void error( void *ctx, xmlErrorPtr );
++#endif
+ };
+ 
+ 
+--- zorba-3.1/src/store/naive/loader_fast.cpp.orig	2015-06-16 13:26:38.000000000 +0200
++++ zorba-3.1/src/store/naive/loader_fast.cpp	2025-01-22 11:36:50.828868572 +0100
+@@ -21,6 +21,7 @@
+ #include <iostream>
+ 
+ #include <libxml/xmlmemory.h>
++#include <libxml/xmlversion.h>
+ 
+ #include <zorba/store_consts.h>
+ 
+@@ -100,7 +101,11 @@
+ /*******************************************************************************
+ 
+ ********************************************************************************/
++#if LIBXML_VERSION >= 21200
++void XmlLoader::error(void* ctx, const xmlError* error)
++#else
+ void XmlLoader::error(void* ctx, xmlErrorPtr error)
++#endif
+ {
+   if ( error->level == XML_ERR_NONE )
+     return;
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/zorba.git/commitdiff/c00dadf585611cc9ab5d091ca8234c8a5d809d87



More information about the pld-cvs-commit mailing list