From c6293bec6830c2507f6c928bf68346581d7778b8 Mon Sep 17 00:00:00 2001 From: Min RK Date: Thu, 13 Jun 2024 09:17:35 +0200 Subject: [PATCH] backport expat patch, remove expat pin --- recipe/meta.yaml | 7 ++- recipe/patches/expat-backport.patch | 70 +++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 4 deletions(-) create mode 100644 recipe/patches/expat-backport.patch diff --git a/recipe/meta.yaml b/recipe/meta.yaml index e86e1bd2..06dd1098 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -28,6 +28,9 @@ source: # https://gitlab.kitware.com/vtk/vtk/-/issues/18365#note_1079278 # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/9987 - patches/9987_try_except_python_import.patch # [not win] + # https://gitlab.kitware.com/vtk/vtk/-/issues/19258 + # https://gitlab.kitware.com/vtk/vtk/-/commit/db8f9efca220c9d16a30958e179abae3379d0011 + - patches/expat-backport.patch build: number: {{ build }} @@ -79,7 +82,6 @@ outputs: - libtiff - jsoncpp - expat - - expat <2.6 # https://gitlab.kitware.com/vtk/vtk/-/issues/19258 - tbb - tbb-devel # temporary pin: mesalib 24 fails @@ -131,9 +133,6 @@ outputs: - libtiff - jsoncpp - expat - # expat run_exports accepts minor revisions - # but vtk is incompatible with 2.6: https://gitlab.kitware.com/vtk/vtk/-/issues/19258 - - libexpat <2.6 - tbb - mesalib >=21.0 # [build_variant == "osmesa"] - libnetcdf diff --git a/recipe/patches/expat-backport.patch b/recipe/patches/expat-backport.patch new file mode 100644 index 00000000..0bf534a0 --- /dev/null +++ b/recipe/patches/expat-backport.patch @@ -0,0 +1,70 @@ +From db8f9efca220c9d16a30958e179abae3379d0011 Mon Sep 17 00:00:00 2001 +From: Ben Boeckel +Date: Mon, 15 Apr 2024 22:22:22 -0400 +Subject: [PATCH] vtkXMLDataParser: track `AppendedData` state explicitly + +Newer `libexpat` doesn't like being given the appended data after the +artificially ended document anymore. Avoid pushing it through to its +parser. + +Fixes: #19258 +--- + IO/XMLParser/vtkXMLDataParser.cxx | 6 +++++- + IO/XMLParser/vtkXMLDataParser.h | 3 +++ + 2 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/IO/XMLParser/vtkXMLDataParser.cxx b/IO/XMLParser/vtkXMLDataParser.cxx +index 1f6006d37c2..7d38092fdd7 100644 +--- a/IO/XMLParser/vtkXMLDataParser.cxx ++++ b/IO/XMLParser/vtkXMLDataParser.cxx +@@ -36,6 +36,7 @@ vtkXMLDataParser::vtkXMLDataParser() + this->RootElement = nullptr; + this->AppendedDataPosition = 0; + this->AppendedDataMatched = 0; ++ this->AppendedDataFound = false; + this->DataStream = nullptr; + this->InlineDataStream = vtkBase64InputStream::New(); + this->AppendedDataStream = vtkBase64InputStream::New(); +@@ -88,6 +89,7 @@ void vtkXMLDataParser::PrintSelf(ostream& os, vtkIndent indent) + { + this->Superclass::PrintSelf(os, indent); + os << indent << "AppendedDataPosition: " << this->AppendedDataPosition << "\n"; ++ os << indent << "AppendedDataFound: " << this->AppendedDataFound << "\n"; + if (this->RootElement) + { + this->RootElement->PrintXML(os, indent); +@@ -214,7 +216,7 @@ int vtkXMLDataParser::ParsingComplete() + // If we have reached the appended data section, we stop parsing. + // This prevents the XML parser from having to walk over the entire + // appended data section. +- if (this->AppendedDataPosition) ++ if (this->AppendedDataPosition || this->AppendedDataFound) + { + return 1; + } +@@ -433,6 +435,8 @@ int vtkXMLDataParser::ParseBuffer(const char* buffer, unsigned int count) + { + return 0; + } ++ ++ this->AppendedDataFound = true; + } + + return 1; +diff --git a/IO/XMLParser/vtkXMLDataParser.h b/IO/XMLParser/vtkXMLDataParser.h +index 1504a4d400b..142bf28327d 100644 +--- a/IO/XMLParser/vtkXMLDataParser.h ++++ b/IO/XMLParser/vtkXMLDataParser.h +@@ -204,6 +204,9 @@ protected: + // How much of the string "