From 6b314d2ebb48580b60d746d569184eb4dbdfe604 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Thu, 14 Nov 2024 22:31:01 +0100 Subject: [PATCH 01/41] Update to 6.32.08 --- root.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/root.spec b/root.spec index 2a8e296..99a1259 100644 --- a/root.spec +++ b/root.spec @@ -24,7 +24,7 @@ %global __provides_exclude_from ^%{python3_sitearch}/lib.*\\.so$ Name: root -Version: 6.32.06 +Version: 6.32.08 %global libversion %(cut -d. -f 1-2 <<< %{version}) Release: 1%{?dist} Summary: Numerical data analysis framework @@ -3584,6 +3584,9 @@ fi %endif %changelog +* Thu Nov 14 2024 Mattias Ellert - 6.32.08-1 +- Update to 6.32.08 + * Mon Sep 23 2024 Mattias Ellert - 6.32.06-1 - Update to 6.32.06 - Split out ROOT 7 dependent parts of root-browsable to a separate package diff --git a/sources b/sources index 03824b4..afea219 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (root-6.32.06.tar.xz) = 2588dc266fe71a612fbcc3a261372a80848334ee1e4bc606df4599d707d6c30ca665cd6d919b59902f404e276ea35923cc320bef0c9c5856ecea0626a2df9158 +SHA512 (root-6.32.08.tar.xz) = 268f68745bcf545aff5b3ad4208e8b6b373800da3885cc3d7a8083a6b4ab8c92788a4da0163b3344c24cd62e50a7b74319bc65ee519de4e53f4394330687a2be SHA512 (root-testfiles.tar.xz) = 945aef1a0cf5af672d4ab84b0ac00b76118e93008ff72447658ee82d9e955a1540af3ff7126e701418872f1d91b92ee96d4985840a519036c42732023a13f00f From cac5562c15443d18842254eb8b9f8307718573b6 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 27 Nov 2024 14:35:57 +0000 Subject: [PATCH 02/41] Rebuild for libarrow 18 --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 99a1259..9a0316e 100644 --- a/root.spec +++ b/root.spec @@ -26,7 +26,7 @@ Name: root Version: 6.32.08 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -3584,6 +3584,9 @@ fi %endif %changelog +* Wed Nov 27 2024 Richard W.M. Jones - 6.32.08-2 +- Rebuild for libarrow 18 + * Thu Nov 14 2024 Mattias Ellert - 6.32.08-1 - Update to 6.32.08 From 75f062bccd02b4f92a9d9b5c8dc84dce6b6461b4 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Thu, 26 Dec 2024 10:59:52 +0100 Subject: [PATCH 03/41] Update to 6.34.02 Build CLAD plugin Removed package: root-roofit-dataframe-helpers --- root-Fix-compilation-on-s390x.patch | 38 +++ root-Make-DCLAD_SOURCE_DIR-option-work.patch | 66 ++++ ...-allow-any-openssl-3.x-with-civetweb.patch | 30 -- root-stress.patch | 32 -- root-tmva-sofie-Fix-Tile-operator.patch | 79 +++++ root-write-array.patch | 125 ------- root.spec | 310 ++++++++++-------- sources | 3 +- 8 files changed, 351 insertions(+), 332 deletions(-) create mode 100644 root-Fix-compilation-on-s390x.patch create mode 100644 root-Make-DCLAD_SOURCE_DIR-option-work.patch delete mode 100644 root-allow-any-openssl-3.x-with-civetweb.patch delete mode 100644 root-stress.patch create mode 100644 root-tmva-sofie-Fix-Tile-operator.patch delete mode 100644 root-write-array.patch diff --git a/root-Fix-compilation-on-s390x.patch b/root-Fix-compilation-on-s390x.patch new file mode 100644 index 0000000..be89d3f --- /dev/null +++ b/root-Fix-compilation-on-s390x.patch @@ -0,0 +1,38 @@ +From 67e3b45b5d346a779533636397e28b1c48a21070 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Mon, 16 Dec 2024 15:32:21 +0100 +Subject: [PATCH] Fix compilation on s390x + +There were changes to the code but the big endian code was not updated +to match the changes in the little endian code. +--- + tmva/sofie_parsers/src/RModelParser_ONNX.cxx | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/tmva/sofie_parsers/src/RModelParser_ONNX.cxx b/tmva/sofie_parsers/src/RModelParser_ONNX.cxx +index 81a4b23697..1415e06e0f 100644 +--- a/tmva/sofie_parsers/src/RModelParser_ONNX.cxx ++++ b/tmva/sofie_parsers/src/RModelParser_ONNX.cxx +@@ -131,9 +131,9 @@ std::shared_ptr GetInitializedTensorData(onnx::TensorProto * tensorproto, + #ifdef R__BYTESWAP + std::memcpy(data.get(), tensorproto->raw_data().c_str(), length * sizeof(T)); + #else +- for (std::size_t k = 0; k < fLength; ++k) +- (reinterpret_cast(data.get()))[k] = +- Rbswap_32((reinterpret_cast(tensorproto->raw_data().c_str()))[k]); ++ for (std::size_t k = 0; k < length; ++k) ++ (reinterpret_cast::value_type *>(data.get()))[k] = ++ RByteSwap::bswap((reinterpret_cast::value_type *>(tensorproto->raw_data().c_str()))[k]); + #endif + } else { + ExtractDataFromTP::Copy(tensorproto, data.get()); +@@ -628,4 +628,4 @@ void RModelParser_ONNX::ParseONNXGraph(RModel & rmodel, const onnx::GraphProto & + + } // namespace SOFIE + } // namespace Experimental +-} // namespace TMVA +\ No newline at end of file ++} // namespace TMVA +-- +2.47.1 + diff --git a/root-Make-DCLAD_SOURCE_DIR-option-work.patch b/root-Make-DCLAD_SOURCE_DIR-option-work.patch new file mode 100644 index 0000000..a4aaada --- /dev/null +++ b/root-Make-DCLAD_SOURCE_DIR-option-work.patch @@ -0,0 +1,66 @@ +From 7d5ae0dcfbf770cc3943cc25283bf2d39329d9f3 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Mon, 16 Dec 2024 15:48:42 +0100 +Subject: [PATCH] Make -DCLAD_SOURCE_DIR option work + +Using the -DCLAD_SOURCE_DIR currently does not disable the git checkout. +From the cmake documentation for ExternalProject_Add: + +Note: If a download method is specified, any existing contents of the +source directory may be deleted. Only the URL download method checks +whether this directory is either missing or empty before initiating +the download, stopping with an error if it is not empty. All other +download methods silently discard any previous contents of the source +directory. + +Currently cmake deletes the source directory defined by +-DCLAD_SOURCE_DIR and then tries to recreate it using a git checkout, +but fails if there is no network available: + +Cloning into 'clad-1.7'... +fatal: unable to access 'https://github.com/vgvassilev/clad.git/': Could not resolve host: github.com +Cloning into 'clad-1.7'... +fatal: unable to access 'https://github.com/vgvassilev/clad.git/': Could not resolve host: github.com +Cloning into 'clad-1.7'... +fatal: unable to access 'https://github.com/vgvassilev/clad.git/': Could not resolve host: github.com +Had to git clone more than once: 3 times. +CMake Error at redhat-linux-build/interpreter/cling/tools/plugins/clad/clad-prefix/tmp/clad-gitclone.cmake:50 (message): + Failed to clone repository: 'https://github.com/vgvassilev/clad.git' + +The attempt to disable the git checkout by setting the +DOWNLOAD_COMMAND option to an empty string is not working. + +This commit fixes the issue by only defining the GIT_REPOSITORY and +GIT_TAG options when CLAD_SOURCE_DIR is not defined. +--- + interpreter/cling/tools/plugins/clad/CMakeLists.txt | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/interpreter/cling/tools/plugins/clad/CMakeLists.txt b/interpreter/cling/tools/plugins/clad/CMakeLists.txt +index ba5f09786c..3c70d00a10 100644 +--- a/interpreter/cling/tools/plugins/clad/CMakeLists.txt ++++ b/interpreter/cling/tools/plugins/clad/CMakeLists.txt +@@ -68,8 +68,10 @@ set(_clad_extra_settings + # If the CLAD_SOURCE_DIR variable is defined in the CMake configuration, we're + # skipping the download of the repository and use the passed directory. + if (DEFINED CLAD_SOURCE_DIR) +- list(APPEND _clad_extra_settings DOWNLOAD_COMMAND "") + list(APPEND _clad_extra_settings SOURCE_DIR ${CLAD_SOURCE_DIR}) ++else() ++ list(APPEND _clad_extra_settings GIT_REPOSITORY https://github.com/vgvassilev/clad.git) ++ list(APPEND _clad_extra_settings GIT_TAG v1.7) + endif() + + #list(APPEND _clad_patches_list "patch1.patch" "patch2.patch") +@@ -82,8 +84,6 @@ endif() + + ExternalProject_Add( + clad +- GIT_REPOSITORY https://github.com/vgvassilev/clad.git +- GIT_TAG v1.7 + UPDATE_COMMAND "" + PATCH_COMMAND ${_clad_patch_command} + CMAKE_ARGS -G ${CMAKE_GENERATOR} +-- +2.47.1 + diff --git a/root-allow-any-openssl-3.x-with-civetweb.patch b/root-allow-any-openssl-3.x-with-civetweb.patch deleted file mode 100644 index 05e2a64..0000000 --- a/root-allow-any-openssl-3.x-with-civetweb.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 6952dd5ca51e7be8a8ae74b446ac268949f5f383 Mon Sep 17 00:00:00 2001 -From: Sergey Linev -Date: Mon, 10 Jun 2024 09:19:47 +0200 -Subject: [PATCH] [http] Allow to use any of openssl 3.x with civetweb - -civetweb was designed when only openssl 3.0 was existing. -Therefore name of define is `OPENSSL_API_3_0` -Meanwhile there is openssl 3.1 and 3.2. -While seems to be there is no changes in API both can -be used with civetweb. ---- - net/http/CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/net/http/CMakeLists.txt b/net/http/CMakeLists.txt -index 02d7514400..6ef98a604b 100644 ---- a/net/http/CMakeLists.txt -+++ b/net/http/CMakeLists.txt -@@ -78,7 +78,7 @@ if(ssl) - MESSAGE(STATUS "Use SSL API VERSION 1.1 for civetweb") - target_compile_definitions(RHTTP PUBLIC -DOPENSSL_API_1_1) - set(link_ssl ON) -- elseif((${ssl_major} EQUAL "3") AND ((${ssl_minor} EQUAL "0") OR (${ssl_minor} EQUAL "1"))) -+ elseif(${ssl_major} EQUAL "3") - MESSAGE(STATUS "Use SSL API VERSION 3.${ssl_minor} for civetweb") - target_compile_definitions(RHTTP PUBLIC -DOPENSSL_API_3_0) - set(link_ssl ON) --- -2.45.2 - diff --git a/root-stress.patch b/root-stress.patch deleted file mode 100644 index bf7f468..0000000 --- a/root-stress.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 706c94ca916387287f7459c984d61439e52c1aba Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Sun, 2 Jun 2024 06:19:43 +0200 -Subject: [PATCH] Adjust stressGraphics.ref - ---- - test/stressGraphics.ref | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/test/stressGraphics.ref b/test/stressGraphics.ref -index 37077a2fb9..9d5cd0352d 100644 ---- a/test/stressGraphics.ref -+++ b/test/stressGraphics.ref -@@ -7,13 +7,13 @@ Test# PS1Ref# PS1Err# PDFRef# PDFErr# JPGRef# JPGErr# PNGRef# PN - 6 430 50 12669 50 9558 100 5325 700 471 50 - 7 4980 50 13893 50 16143 1300 12230 500 5011 70 - 8 5442 80 13473 50 18430 700 12398 300 5469 80 -- 9 9253 100 14377 100 19851 2400 12199 900 9283 100 -+ 9 9253 100 14377 150 19851 2400 12199 900 9283 100 - 10 8863 70 13645 100 24343 1100 23278 1700 8894 70 - 11 12971 100 14444 50 34063 2000 32033 1200 12864 150 - 12 7674 100 13533 50 83557 3000 38505 4000 7720 150 - 13 5600 400 13242 300 16881 400 15063 800 5638 400 - 14 14190539 4000000 12926 100 23076 9500 25987 3000 14190704 4000000 -- 15 15690 5000 17179 200 23076 9500 14232 1000 10437 5000 -+ 15 15690 5000 17179 200 23076 9500 14232 1500 10437 5000 - 16 28072 400 23287 200 44462 11000 30062 5000 38007 400 - 17 20444 400 21520 150 27511 11000 16867 600 20721 400 - 18 15894 100 19305 200 27187 10300 15925 350 15925 100 --- -2.45.1 - diff --git a/root-tmva-sofie-Fix-Tile-operator.patch b/root-tmva-sofie-Fix-Tile-operator.patch new file mode 100644 index 0000000..1bf2667 --- /dev/null +++ b/root-tmva-sofie-Fix-Tile-operator.patch @@ -0,0 +1,79 @@ +From ef1f3bba9059cd2e61d7de5f46fbfc26c4746ebc Mon Sep 17 00:00:00 2001 +From: moneta +Date: Thu, 19 Dec 2024 15:22:37 +0100 +Subject: [PATCH] [tmva][sofie] Fix Tile operator + +Fix the casting of the input repeats vector data of the Tile operator. +The type of data should be int64_t and not size_t +The previous code could have some issue when the size of size_t is 32 bits +--- + tmva/sofie/inc/TMVA/ROperator_Tile.hxx | 31 ++++++++++++++++---------- + 1 file changed, 19 insertions(+), 12 deletions(-) + +diff --git a/tmva/sofie/inc/TMVA/ROperator_Tile.hxx b/tmva/sofie/inc/TMVA/ROperator_Tile.hxx +index 869cd55d9a439..3686db1e0914a 100644 +--- a/tmva/sofie/inc/TMVA/ROperator_Tile.hxx ++++ b/tmva/sofie/inc/TMVA/ROperator_Tile.hxx +@@ -51,12 +51,17 @@ public: + } + fShapeInput=model.GetTensorShape(fNInput); + +- // Retrieve the data pointer for the repeats tensor ++ // if repeats vector is not initialized we cannot deduce shape of output ++ // not support for time being this case ++ if (!model.IsInitializedTensor(fNRepeats)) { ++ throw std::runtime_error("TMVA SOFIE Tile Op: non-initialized repeats input is not supported"); ++ } ++ ++ // Retrieve the data pointer for the repeats tensor + auto repptr = model.GetInitializedTensorData(fNRepeats); + // Cast the raw pointer to the appropriate type (size_t*) +- auto repeat_shape = static_cast(repptr.get()); +- +- if (repeat_shape == nullptr) { ++ auto repeats_data = static_cast(repptr.get()); ++ if (repeats_data == nullptr) { + throw std::runtime_error("Failed to retrieve the data for the repeats tensor."); + } + // Get the shape of the repeats tensor to determine the number of elements +@@ -66,12 +71,18 @@ public: + throw std::runtime_error("Repeats tensor is not 1D."); + } + size_t num_elements = repeats_shape[0]; +- // Convert the data to a vector +- std::vector repeats_vector(repeat_shape, repeat_shape + num_elements); ++ // Convert the data to a vector of size_t ++ std::vector repeats_vector(num_elements); ++ std::copy(repeats_data, repeats_data + num_elements, repeats_vector.begin()); ++ + + fShapeY = ShapeInference({fShapeInput,repeats_vector})[0]; + + model.AddIntermediateTensor(fNY, model.GetTensorType(fNInput), fShapeY); ++ ++ if (model.Verbose()) ++ std::cout << "Tile: " << fNInput << " " << ConvertShapeToString(fShapeInput) << " -> " << fNY << " with shape " << ConvertShapeToString(fShapeY) ++ << " given repeats " << ConvertShapeToString(repeats_vector) << std::endl; + } + + std::string Generate(std::string OpName){ +@@ -89,17 +100,13 @@ public: + std::string output = "tensor_" + fNY; + out << "///-------- Tile operator\n"; + out << "{\n"; // add scope to re-use same names +- out << "std::vector input_shape = " << ConvertShapeToString(fShapeInput) << ";\n"; +- std::vector repeats = fShapeY; +- for (size_t i = 0; i < repeats.size(); i++) +- repeats[i] /= fShapeInput[i]; ++ out << "const int input_shape[" << fShapeInput.size() << "] = " << ConvertShapeToString(fShapeInput) << ";\n"; + +- out << "std::vector repeats = " << ConvertShapeToString(repeats) << ";\n"; + out << "int inputLength = " << ConvertShapeToLength(fShapeInput) << ";\n"; + out << "int s = 1;\n"; + // loop from inverse dim order + out << "for (int i = " << fShapeInput.size()-1 << "; i >=0; i--) {\n"; +- out << SP << "int r = repeats[i];\n"; ++ out << SP << "int r = tensor_" << fNRepeats << "[i];\n"; + // we cannot exclude case where repeats=1 since we need offset + //out << SP << "if (r == 1 && i < " << fShapeInput.size()-1 << ") continue;\n"; + out << SP << "int i_offset = 0, o_offset = 0;\n"; diff --git a/root-write-array.patch b/root-write-array.patch deleted file mode 100644 index 30b5945..0000000 --- a/root-write-array.patch +++ /dev/null @@ -1,125 +0,0 @@ -From a7be6f726b13a7ccf1c46dec35f53520781159df Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Fri, 7 Jun 2024 06:49:39 +0200 -Subject: [PATCH] Put back check for n = 0 - ---- - io/io/src/TBufferFile.cxx | 25 ++++++++++++++++++++++++- - 1 file changed, 24 insertions(+), 1 deletion(-) - -diff --git a/io/io/src/TBufferFile.cxx b/io/io/src/TBufferFile.cxx -index 81e0f95e02..b5b7ef9831 100644 ---- a/io/io/src/TBufferFile.cxx -+++ b/io/io/src/TBufferFile.cxx -@@ -1948,6 +1948,8 @@ void TBufferFile::WriteArrayDouble32(const Double_t *d, Int_t n, TStreamerElemen - - void TBufferFile::WriteFastArray(const Bool_t *b, Long64_t n) - { -+ if (n == 0) return; -+ - constexpr Int_t dataWidth = static_cast(sizeof(UChar_t)); - const Int_t maxElements = (std::numeric_limits::max() - Length())/dataWidth; - if (n < 0 || n > maxElements) -@@ -1974,6 +1976,8 @@ void TBufferFile::WriteFastArray(const Bool_t *b, Long64_t n) - - void TBufferFile::WriteFastArray(const Char_t *c, Long64_t n) - { -+ if (n == 0) return; -+ - constexpr Int_t dataWidth = static_cast(sizeof(Char_t)); - const Int_t maxElements = (std::numeric_limits::max() - Length())/dataWidth; - if (n < 0 || n > maxElements) -@@ -1995,6 +1999,8 @@ void TBufferFile::WriteFastArray(const Char_t *c, Long64_t n) - - void TBufferFile::WriteFastArrayString(const Char_t *c, Long64_t n) - { -+ if (n == 0) return; -+ - constexpr Int_t dataWidth = static_cast(sizeof(Char_t)); - const Int_t maxElements = (std::numeric_limits::max() - Length())/dataWidth; - if (n < 0 || n > maxElements) -@@ -2023,6 +2029,8 @@ void TBufferFile::WriteFastArrayString(const Char_t *c, Long64_t n) - - void TBufferFile::WriteFastArray(const Short_t *h, Long64_t n) - { -+ if (n == 0) return; -+ - constexpr Int_t dataWidth = static_cast(sizeof(Short_t)); - const Int_t maxElements = (std::numeric_limits::max() - Length())/dataWidth; - if (n < 0 || n > maxElements) -@@ -2054,7 +2062,8 @@ void TBufferFile::WriteFastArray(const Short_t *h, Long64_t n) - - void TBufferFile::WriteFastArray(const Int_t *ii, Long64_t n) - { -- -+ if (n == 0) return; -+ - constexpr Int_t dataWidth = 4; - const Int_t maxElements = (std::numeric_limits::max() - Length())/dataWidth; - if (n < 0 || n > maxElements) -@@ -2086,6 +2095,8 @@ void TBufferFile::WriteFastArray(const Int_t *ii, Long64_t n) - - void TBufferFile::WriteFastArray(const Long_t *ll, Long64_t n) - { -+ if (n == 0) return; -+ - constexpr Int_t dataWidth = 8; - const Int_t maxElements = (std::numeric_limits::max() - Length())/dataWidth; - if (n < 0 || n > maxElements) -@@ -2108,6 +2119,8 @@ void TBufferFile::WriteFastArray(const Long_t *ll, Long64_t n) - - void TBufferFile::WriteFastArray(const ULong_t *ll, Long64_t n) - { -+ if (n == 0) return; -+ - constexpr Int_t dataWidth = 8; - const Int_t maxElements = (std::numeric_limits::max() - Length())/dataWidth; - if (n < 0 || n > maxElements) -@@ -2128,6 +2141,8 @@ void TBufferFile::WriteFastArray(const ULong_t *ll, Long64_t n) - - void TBufferFile::WriteFastArray(const Long64_t *ll, Long64_t n) - { -+ if (n == 0) return; -+ - constexpr Int_t dataWidth = static_cast(sizeof(Long64_t)); - const Int_t maxElements = (std::numeric_limits::max() - Length())/dataWidth; - if (n < 0 || n > maxElements) -@@ -2154,6 +2169,8 @@ void TBufferFile::WriteFastArray(const Long64_t *ll, Long64_t n) - - void TBufferFile::WriteFastArray(const Float_t *f, Long64_t n) - { -+ if (n == 0) return; -+ - constexpr Int_t dataWidth = static_cast(sizeof(Float_t)); - const Int_t maxElements = (std::numeric_limits::max() - Length())/dataWidth; - if (n < 0 || n > maxElements) -@@ -2185,6 +2202,8 @@ void TBufferFile::WriteFastArray(const Float_t *f, Long64_t n) - - void TBufferFile::WriteFastArray(const Double_t *d, Long64_t n) - { -+ if (n == 0) return; -+ - constexpr Int_t dataWidth = static_cast(sizeof(Double_t)); - const Int_t maxElements = (std::numeric_limits::max() - Length())/dataWidth; - if (n < 0 || n > maxElements) -@@ -2212,6 +2231,8 @@ void TBufferFile::WriteFastArray(const Double_t *d, Long64_t n) - - void TBufferFile::WriteFastArrayFloat16(const Float_t *f, Long64_t n, TStreamerElement *ele) - { -+ if (n == 0) return; -+ - constexpr Int_t dataWidth = static_cast(sizeof(Float_t)); - const Int_t maxElements = (std::numeric_limits::max() - Length())/dataWidth; - if (n < 0 || n > maxElements) -@@ -2270,6 +2291,8 @@ void TBufferFile::WriteFastArrayFloat16(const Float_t *f, Long64_t n, TStreamerE - - void TBufferFile::WriteFastArrayDouble32(const Double_t *d, Long64_t n, TStreamerElement *ele) - { -+ if (n == 0) return; -+ - constexpr Int_t dataWidth = static_cast(sizeof(Float_t)); - const Int_t maxElements = (std::numeric_limits::max() - Length())/dataWidth; - if (n < 0 || n > maxElements) --- -2.45.2 - diff --git a/root.spec b/root.spec index 9a0316e..b00cbc1 100644 --- a/root.spec +++ b/root.spec @@ -24,9 +24,9 @@ %global __provides_exclude_from ^%{python3_sitearch}/lib.*\\.so$ Name: root -Version: 6.32.08 +Version: 6.34.02 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -49,6 +49,9 @@ Source6: application-x-root.png Source7: JupyROOT-on-EPEL # Script to generate Source0 Source8: %{name}-get-src.sh +# Clad is a source-transformation automatic differentiation (AD) +# library for C++, implemented as a plugin for the Clang compiler +Source9: https://github.com/vgvassilev/clad/archive/v1.7/clad-1.7.tar.gz # Use system fonts Patch0: %{name}-fontconfig.patch # Reduce memory usage during linking on ARM and x86 by generating @@ -61,15 +64,15 @@ Patch2: %{name}-dont-install-minicern.patch Patch3: %{name}-no-export-python-modules.patch # Run some test on 32 bit that upstream has disabled Patch4: %{name}-32bit-tests.patch -# Adjust stress graphics reference -# https://github.com/root-project/root/pull/15735 -Patch5: %{name}-stress.patch -# Avoid segmentation fault on ix86 -# https://github.com/root-project/root/issues/15738 -# https://github.com/root-project/root/pull/15780 -Patch6: %{name}-write-array.patch -# Backport build fix from upstream -Patch7: %{name}-allow-any-openssl-3.x-with-civetweb.patch +# Fix compilation of TMVA SOFIE parser on s390x +# https://github.com/root-project/root/pull/17307 +Patch5: %{name}-Fix-compilation-on-s390x.patch +# Make -DCLAD_SOURCE_DIR option work +# https://github.com/root-project/root/pull/17308 +Patch6: %{name}-Make-DCLAD_SOURCE_DIR-option-work.patch +# Fix segmentation fault during testing on ix86 +# https://github.com/root-project/root/pull/17314 +Patch7: %{name}-tmva-sofie-Fix-Tile-operator.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -1267,6 +1270,8 @@ Requires: %{name}-roofit-batchcompute%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} # Package split / Library split (from roofit) Obsoletes: %{name}-roofit < 6.20.00 +# Dataframe helpers are now part of core +Obsoletes: %{name}-roofit-dataframe-helpers < 6.34.00 %description roofit-core The RooFit packages provide a toolkit for modeling the expected @@ -1329,28 +1334,6 @@ multiple times for different vector instuction set architectures and the optimal code is executed during runtime, as a result of an automatic hardware detection mechanism that this library contains. -%if %{dataframe} -%package roofit-dataframe-helpers -Summary: RooFit DaraFrame helpers -License: BSD-2-Clause -Requires: %{name}-core%{?_isa} = %{version}-%{release} - -%description roofit-dataframe-helpers -The RooFit packages provide a toolkit for modeling the expected -distribution of events in a physics analysis. Models can be used to -perform likelihood fits, produce plots, and generate "toy Monte -Carlo" samples for various studies. The RooFit tools are integrated -with the object-oriented and interactive ROOT graphical environment. - -RooFit has been developed for the BaBar collaboration, a high energy -physics experiment at the Stanford Linear Accelerator Center, and is -primarily targeted to the high-energy physicists using the ROOT -analysis environment, but the general nature of the package make it -suitable for adoption in different disciplines as well. - -This package contains DaraFrame helper classes for RooFit -%endif - %package roofit-hs3 Summary: RooFit HS3 License: BSD-2-Clause @@ -1937,7 +1920,7 @@ This package contains utility functions for ntuples. %endif %prep -%setup -q -a 1 +%setup -q -a 1 -a 9 %patch -P0 -p1 %patch -P1 -p1 @@ -1987,9 +1970,11 @@ rm etc/notebook/JsMVA/css/*.min.css install -p -m 644 %{SOURCE7} bindings/jupyroot %build +%if %{?fedora}%{!?fedora:0} == 40 # This package triggers a fault in LLVM when LTO is enabled. Until LLVM # is analyzed and fixed, disable LTO %define _lto_cflags %{nil} +%endif unset QTDIR unset QTLIB @@ -2009,9 +1994,8 @@ done -DCMAKE_INSTALL_PYTHONDIR:PATH=%{python3_sitearch} \ -DCMAKE_INSTALL_SYSCONFDIR:PATH=%{_datadir}/%{name} \ -DCMAKE_INSTALL_DOCDIR:PATH=%{_pkgdocdir} \ - -DPython3_EXECUTABLE=%{__python3} \ + -DPython3_EXECUTABLE:PATH=%{__python3} \ -Dgnuinstall:BOOL=ON \ - -Dbuiltin_afterimage:BOOL=ON \ -Dbuiltin_cfitsio:BOOL=OFF \ -Dbuiltin_clang:BOOL=ON \ -Dbuiltin_cling:BOOL=ON \ @@ -2054,11 +2038,10 @@ done -Dccache:BOOL=OFF \ -Ddistcc:BOOL=OFF \ -Dcefweb:BOOL=OFF \ - -Dclad:BOOL=OFF \ + -Dclad:BOOL=ON \ + -DCLAD_SOURCE_DIR:PATH=${PWD}/clad-1.7 \ -Dcocoa:BOOL=OFF \ -Dcuda:BOOL=OFF \ - -Dcudnn:BOOL=OFF \ - -Dcxxmodules:BOOL=OFF \ -Ddaos:BOOL=OFF \ %if %{dataframe} -Ddataframe:BOOL=ON \ @@ -2074,7 +2057,10 @@ done -Dfitsio:BOOL=ON \ -Dfortran:BOOL=ON \ -Dgdml:BOOL=ON \ + -Dgeom:BOOL=ON \ + -Dgeombuilder:BOOL=ON \ -Dgviz:BOOL=ON \ + -Dhtml:BOOL=ON \ -Dhttp:BOOL=ON \ -Dimt:BOOL=ON \ -Dlibcxx:BOOL=OFF \ @@ -2129,6 +2115,7 @@ done -Dssl:BOOL=ON \ -Dtmva:BOOL=ON \ -Dtmva-cpu:BOOL=ON \ + -Dtmva-cudnn:BOOL=OFF \ -Dtmva-gpu:BOOL=OFF \ -Dtmva-pymva:BOOL=ON \ -Dtmva-rmva:BOOL=ON \ @@ -2137,6 +2124,7 @@ done %else -Dtmva-sofie:BOOL=OFF \ %endif + -Dtpython:BOOL=ON \ -Dunfold:BOOL=ON \ -Dunuran:BOOL=ON \ %if %{?fedora}%{!?fedora:0} @@ -2154,6 +2142,7 @@ done -Dxrootd:BOOL=ON \ -Dfail-on-missing:BOOL=ON \ -Dtesting:BOOL=ON \ + -Dtestsupport:BOOL=ON \ -Dtest_distrdf_pyspark:BOOL=OFF \ -Dtest_distrdf_dask:BOOL=OFF \ -Dclingtest:BOOL=OFF \ @@ -2274,7 +2263,6 @@ sed -e 's!/usr/bin/env /usr/bin/python.*!%{__python3}!' \ -i %{buildroot}%{_bindir}/rootdrawtree sed -e 's!/usr/bin/env python!%{__python3}!' \ -i %{buildroot}%{_datadir}/%{name}/dictpch/makepch.py \ - %{buildroot}%{_pkgdocdir}/tutorials/histfactory/example.py \ %{buildroot}%{_pkgdocdir}/tutorials/histfactory/makeQuickModel.py \ %{buildroot}%{_pkgdocdir}/tutorials/tmva/keras/ApplicationClassificationKeras.py \ %{buildroot}%{_pkgdocdir}/tutorials/tmva/keras/ApplicationRegressionKeras.py \ @@ -2293,7 +2281,6 @@ rm %{buildroot}%{_bindir}/setxrd* rm %{buildroot}%{_bindir}/thisroot* rm %{buildroot}%{_pkgdocdir}/INSTALL rm %{buildroot}%{_pkgdocdir}/README.CXXMODULES.md -rm %{buildroot}%{_pkgdocdir}/README.MONALISA # Only used on Windows rm %{buildroot}%{_datadir}/%{name}/macros/fileopen.C @@ -2303,13 +2290,11 @@ pushd %{buildroot}%{_datadir}/%{name}/plugins rm TGLManager/P020_TGWin32GLManager.C rm TGLManager/P030_TGOSXGLManager.C rm TProofMgr/P010_TXProofMgr.C -rm TProofMonSender/P010_TProofMonSenderML.C rm TProofServ/P010_TXProofServ.C rm TSlave/P010_TXSlave.C rm TSQLServer/P040_TOracleServer.C rm TVirtualGeoConverter/P010_TGeoVGConverter.C rm TVirtualGLImp/P020_TGWin32GL.C -rm TVirtualMonitoringWriter/P010_TMonaLisaWriter.C rm TVirtualX/P030_TGWin32.C rm TVirtualX/P050_TGQuartz.C rmdir TProofMgr @@ -2408,7 +2393,7 @@ popd # root://eospublic.cern.ch//eos/opendata/cms/derived-data/ # AOD2NanoAODOutreachTool/Run2012BC_DoubleMuParked_Muons.root # -# - gtest-tree-treeplayer-test-treeprocessormt-remotefiles +# - gtest-tree-treeplayer-treeprocessormt-remotefiles # - tutorial-dataframe-df103_NanoAODHiggsAnalysis(-py)? # reads input data over network: # root://eospublic.cern.ch//eos/root-eos/cms_opendata_2012_nanoaod/ @@ -2438,20 +2423,20 @@ popd # reads input data over network # http://root.cern.ch/files/tutorials/GlobalLandTemperaturesByCity.csv # -# - gtest-net-davix-test-RRawFileDavix +# - gtest-net-davix-RRawFileDavix # reads input file over network # http://root.cern.ch/files/davix.test # -# - gtest-net-netxng-test-RRawFileNetXNG +# - gtest-net-netxng-RRawFileNetXNG # reads input file over network # root://eospublic.cern.ch/eos/root-eos/xrootd.test # -# - gtest-net-netxng-test-TNetXNGFileTest +# - gtest-net-netxng-TNetXNGFileTest # reads input file over network # root://eospublic.cern.ch/eos/root-eos/h1/dstarmb.root # -# - gtest-tmva-tmva-test-rreader -# - gtest-tmva-tmva-test-rstandardscaler +# - gtest-tmva-tmva-rreader +# - gtest-tmva-tmva-rstandardscaler # - tutorial-tmva-tmva003_RReader # - tutorial-tmva-tmva004_RStandardScaler # reads input data over network @@ -2484,7 +2469,7 @@ tutorial-multicore-imt101_parTreeProcessing|\ tutorial-dataframe-df..._SQlite|\ tutorial-dataframe-df033_Describe-py|\ tutorial-dataframe-df102_NanoAODDimuonAnalysis|\ -gtest-tree-treeplayer-test-treeprocessormt-remotefiles|\ +gtest-tree-treeplayer-treeprocessormt-remotefiles|\ tutorial-dataframe-df103_NanoAODHiggsAnalysis|\ tutorial-dataframe-df104_HiggsToTwoPhotons-py|\ tutorial-dataframe-df105_WBosonAnalysis-py|\ @@ -2496,11 +2481,11 @@ tutorial-v7-ntuple-ntpl003_lhcbOpenData|\ tutorial-v7-ntuple-ntpl004_dimuon|\ tutorial-v7-ntuple-ntpl008_import|\ tutorial-v7-ntuple-ntpl011_global_temperatures|\ -gtest-net-davix-test-RRawFileDavix|\ -gtest-net-netxng-test-RRawFileNetXNG|\ -gtest-net-netxng-test-TNetXNGFileTest|\ -gtest-tmva-tmva-test-rreader|\ -gtest-tmva-tmva-test-rstandardscaler|\ +gtest-net-davix-RRawFileDavix|\ +gtest-net-netxng-RRawFileNetXNG|\ +gtest-net-netxng-TNetXNGFileTest|\ +gtest-tmva-tmva-rreader|\ +gtest-tmva-tmva-rstandardscaler|\ tutorial-tmva-tmva003_RReader|\ tutorial-tmva-tmva004_RStandardScaler|\ tutorial-tmva-tmva103_Application|\ @@ -2510,6 +2495,42 @@ tutorial-pyroot-pyroot004_NumbaDeclare-py|\ pyunittests-pyroot-numbadeclare|\ test-webgui-ping" +# gtest-roofit-roofit-vectorisedPDFs-testLandau: +# Expected equality of these values: +# nFarOff +# Which is: 1 +# 0u +# Which is: 0 +# +# test-stressgraphics-firefox-skip3d: +# requires firefox... +# +# gtest-tree-treeplayer-treetreeplayertestUnit: +# segmentation fault +# +# tutorial-webcanv-fonts_ttf.cxx: +# Requires web graphics +# +# tutorial-roofit-rf617_simulation_based_inference_multidimensional-py: +# from sklearn.neural_network import MLPClassifier +# +# tutorial-roofit-rf618_mixture_models-py: +# import xgboost as xgb +excluded="${excluded}|\ +gtest-roofit-roofit-vectorisedPDFs-testLandau|\ +test-stressgraphics-firefox-skip3d|\ +gtest-tree-treeplayer-treetreeplayertestUnit|\ +tutorial-webcanv-fonts_ttf.cxx|\ +tutorial-roofit-rf617_simulation_based_inference_multidimensional-py|\ +tutorial-roofit-rf618_mixture_models-py" + +# Test using tensorflow and torch +# Disabled for Python >= 3.12, but must be excluded for Python < 3.12 +excluded="${excluded}|\ +pyunittests-bindings-pyroot-pythonizations-batchgen|\ +test-import-tensorflow|\ +test-import-torch" + %if ! %{pandas} # - test-import-pandas # - tutorial-dataframe-df026_AsNumpyArrays-py @@ -2524,14 +2545,10 @@ tutorial-roofit-rf409_NumPyPandasToRooFit-py" %endif %ifarch %{ix86} -# - gtest-tree-dataframe-test-dataframe-concurrency +# - gtest-tree-dataframe-dataframe-concurrency # "There's already an active task arena." -# -# - gtest-tree-dataframe-test-dataframe-simple -# free(): invalid pointer excluded="${excluded}|\ -gtest-tree-dataframe-test-dataframe-concurrency|\ -gtest-tree-dataframe-test-dataframe-simple" +gtest-tree-dataframe-dataframe-concurrency" %endif %ifarch aarch64 @@ -2543,60 +2560,62 @@ tutorial-tmva-RBatchGenerator_filters_vectors-py" %endif %ifarch %{power64} -# - test-stressgraphics(-interpreted) -# *** stack smashing detected ***: terminated -# # - tutorial-roostats-IntervalExamples-py # *** Break *** segmentation violation excluded="${excluded}|\ -test-stressgraphics|\ +gtest-tree-ntuple-v7-ntuple-evolution|\ tutorial-roostats-IntervalExamples-py" %endif %ifarch s390x -# - gtest-roofit-roofitcore-test-testNaNPacker -# - gtest-roofit-roofitcore-test-testLikelihoodGradientJob +# - gtest-roofit-roofitcore-testNaNPacker +# - gtest-roofit-roofitcore-testLikelihoodGradientJob # Uses "Packed NaN" feature, not implemented for big endian. excluded="${excluded}|\ -gtest-roofit-roofitcore-test-testNaNPacker|\ -gtest-roofit-roofitcore-test-testLikelihoodGradientJob" +gtest-roofit-roofitcore-testNaNPacker|\ +gtest-roofit-roofitcore-testLikelihoodGradientJob" -# - gtest-core-dictgen-test-dictgen-base -# - gtest-tree-dataframe-test-dataframe-unified-constructor +# - gtest-core-dictgen-dictgen-base +# - gtest-tmva-sofie-TestCustomModelsFromONNX +# - gtest-tree-dataframe-dataframe-unified-constructor # -# - gtest-tree-dataframe-test-datasource-ntuple -# - gtest-tree-ntuple-v7-test-ntuple-basics -# - gtest-tree-ntuple-v7-test-ntuple-bulk -# - gtest-tree-ntuple-v7-test-ntuple-compat -# - gtest-tree-ntuple-v7-test-ntuple-endian -# - gtest-tree-ntuple-v7-test-ntuple-extended -# - gtest-tree-ntuple-v7-test-ntuple-friends -# - gtest-tree-ntuple-v7-test-ntuple-merger -# - gtest-tree-ntuple-v7-test-ntuple-minifile -# - gtest-tree-ntuple-v7-test-ntuple-modelext -# - gtest-tree-ntuple-v7-test-ntuple-packing -# - gtest-tree-ntuple-v7-test-ntuple-parallel-writer -# - gtest-tree-ntuple-v7-test-ntuple-project -# - gtest-tree-ntuple-v7-test-ntuple-serialize -# - gtest-tree-ntuple-v7-test-ntuple-show -# - gtest-tree-ntuple-v7-test-ntuple-storage -# - gtest-tree-ntuple-v7-test-ntuple-storage-daos -# - gtest-tree-ntuple-v7-test-ntuple-types -# - gtest-tree-ntuple-v7-test-ntuple-view -# - gtest-tree-ntuple-v7-test-rfield-class -# - gtest-tree-ntuple-v7-test-rfield-variant -# - gtest-tree-ntuple-v7-test-rfield-vector -# - gtest-tree-ntupleutil-v7-test-ntuple-importer -# - gtest-tree-ntupleutil-v7-test-ntuple-inspector +# - gtest-tree-dataframe-datasource-ntuple +# - gtest-tree-ntuple-v7-ntuple-basics +# - gtest-tree-ntuple-v7-ntuple-bulk +# - gtest-tree-ntuple-v7-ntuple-cast +# - gtest-tree-ntuple-v7-ntuple-compat +# - gtest-tree-ntuple-v7-ntuple-extended +# - gtest-tree-ntuple-v7-ntuple-friends +# - gtest-tree-ntuple-v7-ntuple-index +# - gtest-tree-ntuple-v7-ntuple-merger +# - gtest-tree-ntuple-v7-ntuple-model +# - gtest-tree-ntuple-v7-ntuple-modelext +# - gtest-tree-ntuple-v7-ntuple-multi-column +# - gtest-tree-ntuple-v7-ntuple-packing +# - gtest-tree-ntuple-v7-ntuple-parallel-writer +# - gtest-tree-ntuple-v7-ntuple-project +# - gtest-tree-ntuple-v7-ntuple-processor +# - gtest-tree-ntuple-v7-ntuple-show +# - gtest-tree-ntuple-v7-ntuple-storage +# - gtest-tree-ntuple-v7-ntuple-storage-daos +# - gtest-tree-ntuple-v7-ntuple-types +# - gtest-tree-ntuple-v7-ntuple-view +# - gtest-tree-ntuple-v7-rfield-class +# - gtest-tree-ntuple-v7-rfield-streamer +# - gtest-tree-ntuple-v7-rfield-variant +# - gtest-tree-ntuple-v7-rfield-vector +# - gtest-tree-ntupleutil-v7-ntuple-importer +# - gtest-tree-ntupleutil-v7-ntuple-inspector # https://github.com/root-project/root/issues/12426 # -# - pyunittests-distrdf-unit-backend-test-graph-caching -# - pyunittests-pyroot-pyz-rtensor -# - pyunittests-pyroot-pyz-stl-vector +# - pyunittests-bindings-experimental-distrdf-backend-distrdf-unit-backend-graph-caching +# - pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-rtensor +# - pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-stl-vector # - tutorial-dataframe-df006_ranges-py # - tutorial-fit-combinedFit-py # - tutorial-fit-NumericalMinimization-py # - tutorial-math-exampleFunction-py +# - tutorial-pyroot-hsum-py # - tutorial-rcanvas-rbox-py # https://github.com/root-project/root/issues/12429 # @@ -2608,39 +2627,44 @@ gtest-roofit-roofitcore-test-testLikelihoodGradientJob" # - test-stresshistogram # - test-stresshistogram-interpreted excluded="${excluded}|\ -gtest-core-dictgen-test-dictgen-base|\ -gtest-tree-dataframe-test-dataframe-unified-constructor|\ -gtest-tree-dataframe-test-datasource-ntuple|\ -gtest-tree-ntuple-v7-test-ntuple-basics|\ -gtest-tree-ntuple-v7-test-ntuple-bulk|\ -gtest-tree-ntuple-v7-test-ntuple-compat|\ -gtest-tree-ntuple-v7-test-ntuple-endian|\ -gtest-tree-ntuple-v7-test-ntuple-extended|\ -gtest-tree-ntuple-v7-test-ntuple-friends|\ -gtest-tree-ntuple-v7-test-ntuple-merger|\ -gtest-tree-ntuple-v7-test-ntuple-minifile|\ -gtest-tree-ntuple-v7-test-ntuple-modelext|\ -gtest-tree-ntuple-v7-test-ntuple-packing|\ -gtest-tree-ntuple-v7-test-ntuple-parallel-writer|\ -gtest-tree-ntuple-v7-test-ntuple-project|\ -gtest-tree-ntuple-v7-test-ntuple-serialize|\ -gtest-tree-ntuple-v7-test-ntuple-show|\ -gtest-tree-ntuple-v7-test-ntuple-storage|\ -gtest-tree-ntuple-v7-test-ntuple-storage-daos|\ -gtest-tree-ntuple-v7-test-ntuple-types|\ -gtest-tree-ntuple-v7-test-ntuple-view|\ -gtest-tree-ntuple-v7-test-rfield-class|\ -gtest-tree-ntuple-v7-test-rfield-variant|\ -gtest-tree-ntuple-v7-test-rfield-vector|\ -gtest-tree-ntupleutil-v7-test-ntuple-importer|\ -gtest-tree-ntupleutil-v7-test-ntuple-inspector|\ -pyunittests-distrdf-unit-backend-test-graph-caching|\ -pyunittests-pyroot-pyz-rtensor|\ -pyunittests-pyroot-pyz-stl-vector|\ +gtest-core-dictgen-dictgen-base|\ +gtest-tmva-sofie-TestCustomModelsFromONNX|\ +gtest-tree-dataframe-dataframe-unified-constructor|\ +gtest-tree-dataframe-datasource-ntuple|\ +gtest-tree-ntuple-v7-ntuple-basics|\ +gtest-tree-ntuple-v7-ntuple-bulk|\ +gtest-tree-ntuple-v7-ntuple-cast|\ +gtest-tree-ntuple-v7-ntuple-compat|\ +gtest-tree-ntuple-v7-ntuple-extended|\ +gtest-tree-ntuple-v7-ntuple-friends|\ +gtest-tree-ntuple-v7-ntuple-index|\ +gtest-tree-ntuple-v7-ntuple-merger|\ +gtest-tree-ntuple-v7-ntuple-model\$\$|\ +gtest-tree-ntuple-v7-ntuple-modelext|\ +gtest-tree-ntuple-v7-ntuple-multi-column|\ +gtest-tree-ntuple-v7-ntuple-packing|\ +gtest-tree-ntuple-v7-ntuple-parallel-writer|\ +gtest-tree-ntuple-v7-ntuple-project|\ +gtest-tree-ntuple-v7-ntuple-processor|\ +gtest-tree-ntuple-v7-ntuple-show|\ +gtest-tree-ntuple-v7-ntuple-storage\$\$|\ +gtest-tree-ntuple-v7-ntuple-storage-daos|\ +gtest-tree-ntuple-v7-ntuple-types|\ +gtest-tree-ntuple-v7-ntuple-view|\ +gtest-tree-ntuple-v7-rfield-class|\ +gtest-tree-ntuple-v7-rfield-streamer|\ +gtest-tree-ntuple-v7-rfield-variant|\ +gtest-tree-ntuple-v7-rfield-vector|\ +gtest-tree-ntupleutil-v7-ntuple-importer|\ +gtest-tree-ntupleutil-v7-ntuple-inspector|\ +pyunittests-bindings-experimental-distrdf-backend-distrdf-unit-backend-graph-caching|\ +pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-rtensor|\ +pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-stl-vector|\ tutorial-dataframe-df006_ranges-py|\ tutorial-fit-combinedFit-py|\ tutorial-fit-NumericalMinimization-py|\ tutorial-math-exampleFunction-py|\ +tutorial-pyroot-hsum-py|\ tutorial-rcanvas-rbox-py|\ tutorial-tree-drawsparse|\ test-stresshistofit\$\$|\ @@ -2653,9 +2677,9 @@ test-stresshistogram-interpreted" %ifarch aarch64 %{power64} s390x # Fails with gcc 14 on aarch64, ppc64le and s390x # https://github.com/root-project/root/issues/14446 -# - gtest-math-matrix-test-testMatrixTSparse +# - gtest-math-matrix-testMatrixTSparse excluded="${excluded}|\ -gtest-math-matrix-test-testMatrixTSparse" +gtest-math-matrix-testMatrixTSparse" %endif %endif @@ -2803,6 +2827,7 @@ fi %{_datadir}/%{name}/system.rootauthrc %{_datadir}/%{name}/system.rootdaemonrc %{_datadir}/%{name}/system.rootrc +%{_datadir}/%{name}/valgrind-root.supp %{_datadir}/%{name}/valgrind-root-python.supp %{_mandir}/man1/system.rootdaemonrc.1* %dir %{_datadir}/%{name}/cmake @@ -3254,9 +3279,7 @@ fi %files proof -f includelist-proof-proof %{_bindir}/proofserv %{_bindir}/proofserv.exe -%{_bindir}/xpdtest %{_mandir}/man1/proofserv.1* -%{_mandir}/man1/xpdtest.1* %{_libdir}/%{name}/libProof.* %{_libdir}/%{name}/libProof_rdict.pcm %{_datadir}/%{name}/plugins/TChain/P010_TProofChain.C @@ -3265,7 +3288,6 @@ fi %{_datadir}/%{name}/plugins/TProof/P020_TProofSuperMaster.C %{_datadir}/%{name}/plugins/TProof/P030_TProofLite.C %{_datadir}/%{name}/plugins/TProof/P040_TProof.C -%{_datadir}/%{name}/valgrind-root.supp %files proof-bench -f includelist-proof-proofbench %{_libdir}/%{name}/libProofBench.* @@ -3315,12 +3337,6 @@ fi %{_libdir}/%{name}/libRooBatchCompute.* %{_libdir}/%{name}/libRooBatchCompute_* -%if %{dataframe} -%files roofit-dataframe-helpers -f includelist-roofit-RDataFrameHelpers -%{_libdir}/%{name}/libRooFitRDataFrameHelpers.* -%{_libdir}/%{name}/libRooFitRDataFrameHelpers_rdict.pcm -%endif - %files roofit-hs3 -f includelist-roofit-hs3 %{_libdir}/%{name}/libRooFitHS3.* %{_libdir}/%{name}/libRooFitHS3_rdict.pcm @@ -3397,30 +3413,31 @@ fi %dir %{_includedir}/%{name}/TMVA/DNN/CNN %dir %{_includedir}/%{name}/TMVA/DNN/RNN %license tmva/doc/LICENSE -%exclude %{_includedir}/%{name}/TMVA/RBatchGenerator.hxx -%exclude %{_includedir}/%{name}/TMVA/RBatchLoader.hxx %exclude %{_includedir}/%{name}/TMVA/RBDT.hxx -%exclude %{_includedir}/%{name}/TMVA/RChunkLoader.hxx %exclude %{_includedir}/%{name}/TMVA/RInferenceUtils.hxx %exclude %{_includedir}/%{name}/TMVA/RReader.hxx %exclude %{_includedir}/%{name}/TMVA/RSofieReader.hxx %exclude %{_includedir}/%{name}/TMVA/RStandardScaler.hxx %exclude %{_includedir}/%{name}/TMVA/RTensorUtils.hxx +%exclude %{_includedir}/%{name}/TMVA/BatchGenerator/RBatchGenerator.hxx +%exclude %{_includedir}/%{name}/TMVA/BatchGenerator/RBatchLoader.hxx +%exclude %{_includedir}/%{name}/TMVA/BatchGenerator/RChunkLoader.hxx %if %{dataframe} %files tmva-utils %{_libdir}/%{name}/libTMVAUtils.* %{_libdir}/%{name}/libTMVAUtils_rdict.pcm %dir %{_includedir}/%{name}/TMVA -%{_includedir}/%{name}/TMVA/RBatchGenerator.hxx -%{_includedir}/%{name}/TMVA/RBatchLoader.hxx %{_includedir}/%{name}/TMVA/RBDT.hxx -%{_includedir}/%{name}/TMVA/RChunkLoader.hxx %{_includedir}/%{name}/TMVA/RInferenceUtils.hxx %{_includedir}/%{name}/TMVA/RReader.hxx %{_includedir}/%{name}/TMVA/RSofieReader.hxx %{_includedir}/%{name}/TMVA/RStandardScaler.hxx %{_includedir}/%{name}/TMVA/RTensorUtils.hxx +%dir %{_includedir}/%{name}/TMVA/BatchGenerator +%{_includedir}/%{name}/TMVA/BatchGenerator/RBatchGenerator.hxx +%{_includedir}/%{name}/TMVA/BatchGenerator/RBatchLoader.hxx +%{_includedir}/%{name}/TMVA/BatchGenerator/RChunkLoader.hxx %endif %files tmva-python -f includelist-tmva-pymva @@ -3584,6 +3601,11 @@ fi %endif %changelog +* Wed Dec 25 2024 Mattias Ellert - 6.34.02-1 +- Update to 6.34.02 +- Build CLAD plugin +- Removed package: root-roofit-dataframe-helpers + * Wed Nov 27 2024 Richard W.M. Jones - 6.32.08-2 - Rebuild for libarrow 18 diff --git a/sources b/sources index afea219..c6afe84 100644 --- a/sources +++ b/sources @@ -1,2 +1,3 @@ -SHA512 (root-6.32.08.tar.xz) = 268f68745bcf545aff5b3ad4208e8b6b373800da3885cc3d7a8083a6b4ab8c92788a4da0163b3344c24cd62e50a7b74319bc65ee519de4e53f4394330687a2be +SHA512 (root-6.34.02.tar.xz) = 565218eb073ecec509851c99c9ac018bb9de1abae4be023fe2862e28aa967a4a353d77fce1b8173fea87ed17b943bcd2bbce69a55573a1686f138a6495612fa5 SHA512 (root-testfiles.tar.xz) = 945aef1a0cf5af672d4ab84b0ac00b76118e93008ff72447658ee82d9e955a1540af3ff7126e701418872f1d91b92ee96d4985840a519036c42732023a13f00f +SHA512 (clad-1.7.tar.gz) = ff9856ed4901625b4c31bc4b5ac97f464667f58c567caaab8b2a2567de4e0908ff0fffbb566fe728fc6184d3d6bc156bbabacf24d83009e36b2956d535171066 From 8d9fc44478f580646c938ca338aad05290c20d6c Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sun, 12 Jan 2025 10:48:54 +0100 Subject: [PATCH 04/41] Adjust stressGraphics.ref Build for EPEL 10 Disable the R interface for EPEL 10 (R not yet abailable) Enable uring support for EPEL 9 (supported in kernel since RHEL 9.3) --- root-Adjust-test-stressGraphics.ref.patch | 39 ++++++++++ root.spec | 92 ++++++++++++++++++----- 2 files changed, 113 insertions(+), 18 deletions(-) create mode 100644 root-Adjust-test-stressGraphics.ref.patch diff --git a/root-Adjust-test-stressGraphics.ref.patch b/root-Adjust-test-stressGraphics.ref.patch new file mode 100644 index 0000000..92db744 --- /dev/null +++ b/root-Adjust-test-stressGraphics.ref.patch @@ -0,0 +1,39 @@ +From b0f07c642c8edb62788f8519dcdb322f99395661 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Thu, 9 Jan 2025 21:44:14 +0100 +Subject: [PATCH] Adjust test/stressGraphics.ref + +One of the tests fails with just a few bytes on latest Fedora +releases. Failures can be seen for both test-stressgraphics and +test-stressgraphics-interpreted. Failures are reported for sizes being +201, 202 or 203 bytes larger than the reference, with thw limit +currently set to 200 bytes. + +Test 19: TGaxis 3 (Time on axis)................................... OK + PDF output......................................... 19 FAILED + Result = 42723 + Reference = 42926 + Error = 203 (was 200) + JPG output................................................ OK + PNG output................................................ OK + C file result............................................. OK +--- + test/stressGraphics.ref | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/test/stressGraphics.ref b/test/stressGraphics.ref +index 28ac0b9b7b..e1382d2d45 100644 +--- a/test/stressGraphics.ref ++++ b/test/stressGraphics.ref +@@ -17,7 +17,7 @@ Test# PS1Ref# PS1Err# PDFRef# PDFErr# JPGRef# JPGErr# PNGRef# PN + 16 28072 400 23287 200 44462 11000 30062 5000 38007 400 + 17 20444 400 21520 150 27511 11000 16867 600 20721 400 + 18 15894 100 19305 200 27187 10300 15925 350 15925 100 +- 19 22521 300 42926 200 43868 17000 19232 11000 22729 300 ++ 19 22521 300 42926 250 43868 17000 19232 11000 22729 300 + 20 3664 600 14437 150 19824 6300 10396 900 4220 600 + 21 17608 600 13900 150 49440 6300 37586 9000 5938 600 + 22 4866 600 14162 100 30889 10050 21311 1800 4845 600 +-- +2.47.1 + diff --git a/root.spec b/root.spec index b00cbc1..431d547 100644 --- a/root.spec +++ b/root.spec @@ -20,13 +20,20 @@ %global pandas 0 %endif +%if %{?rhel}%{!?rhel:0} == 10 +# R not yet available in EPEL 10 +%global rrr 0 +%else +%global rrr 1 +%endif + # Do not generate autoprovides for Python modules %global __provides_exclude_from ^%{python3_sitearch}/lib.*\\.so$ Name: root Version: 6.34.02 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -73,6 +80,9 @@ Patch6: %{name}-Make-DCLAD_SOURCE_DIR-option-work.patch # Fix segmentation fault during testing on ix86 # https://github.com/root-project/root/pull/17314 Patch7: %{name}-tmva-sofie-Fix-Tile-operator.patch +# Adjust test/stressGraphics.ref +# https://github.com/root-project/root/pull/17398 +Patch8: %{name}-Adjust-test-stressGraphics.ref.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -134,8 +144,10 @@ BuildRequires: xrootd-client-devel >= 1:5.0.0 BuildRequires: cfitsio-devel # Davix version >= 0.6.4, but not between 0.6.8 and 0.7.0 BuildRequires: davix-devel >= 0.7.1 +%if %{rrr} BuildRequires: R-Rcpp-devel BuildRequires: R-RInside-devel +%endif BuildRequires: readline-devel BuildRequires: tbb-devel >= 2020 BuildRequires: libuuid-devel @@ -146,9 +158,10 @@ BuildRequires: flexiblas-devel %if ! %{bundlejson} BuildRequires: json-devel >= 3.9 %endif -%if %{?fedora}%{!?fedora:0} -# Disable uring in EPEL 8 and 9 (liburing is available, -# but uring not supported by the kernel) +%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 9 +# Disable uring in EPEL 8 (liburing is available, +# but uring not supported by the RHEL 8 kernel) +# Supported by the RHEL kernel since RHEL 9.3 BuildRequires: liburing-devel %endif %if %{tmvasofieparser} @@ -425,6 +438,7 @@ A layer on top of RDataFrame to enable distributed computations. It is a port of the previously known PyRDF python package. %endif +%if %{rrr} %package r Summary: R interface for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -451,6 +465,7 @@ Requires: %{name}-r%{?_isa} = %{version}-%{release} %description r-tools This package contains a minimizer module for ROOT that uses the ROOT R interface. +%endif %package genetic Summary: Genetic algorithms for ROOT @@ -476,6 +491,7 @@ This package contains a library for defining geometries in ROOT. Summary: Geometry builder library for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-geom%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} Requires: %{name}-gui%{?_isa} = %{version}-%{release} Requires: %{name}-gui-ged%{?_isa} = %{version}-%{release} # Package split (geom-builder and geom-painter from geom) @@ -524,6 +540,8 @@ This package contains the 2-dimensional graphics library for ROOT. Summary: AfterImage graphics renderer for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-postscript%{?_isa} = %{version}-%{release} Requires: %{name}-gui%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} @@ -630,6 +648,7 @@ This package contains a library for defining event displays in ROOT. Summary: GL renderer for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-asimage%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} Requires: %{name}-graf3d-csg%{?_isa} = %{version}-%{release} @@ -822,7 +841,7 @@ from marked up sources. %package io Summary: Input/output of ROOT objects Requires: %{name}-core%{?_isa} = %{version}-%{release} -%if %{?fedora}%{!?fedora:0} +%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 9 Requires: liburing-devel %endif @@ -913,6 +932,7 @@ Requires: %{name}-core%{?_isa} = %{version}-%{release} # Dynamic dependencies Requires: %{name}-mathmore%{?_isa} = %{version}-%{release} Requires: %{name}-minuit%{?_isa} = %{version}-%{release} +Requires: %{name}-minuit2%{?_isa} = %{version}-%{release} %description mathcore This package contains the MathCore library for ROOT. @@ -1100,6 +1120,7 @@ This package contains the ROOT networking library. %package net-rpdutils Summary: Authentication utilities used by xproofd Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-net%{?_isa} = %{version}-%{release} %description net-rpdutils This package contains authentication utilities used by xproofd. @@ -1201,6 +1222,7 @@ Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-net%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} Requires: %{name}-proof%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} @@ -1266,7 +1288,10 @@ Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} Requires: %{name}-matrix%{?_isa} = %{version}-%{release} Requires: %{name}-minuit%{?_isa} = %{version}-%{release} +Requires: %{name}-minuit2%{?_isa} = %{version}-%{release} Requires: %{name}-roofit-batchcompute%{?_isa} = %{version}-%{release} +Requires: %{name}-roofit-multiprocess%{?_isa} = %{version}-%{release} +Requires: %{name}-roofit-zmq%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} # Package split / Library split (from roofit) Obsoletes: %{name}-roofit < 6.20.00 @@ -1317,9 +1342,6 @@ This package contains RooFit classes that use the mathmore library. Summary: Optimized computation functions for PDFs License: BSD-2-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-multiproc%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_isa} = %{version}-%{release} %description roofit-batchcompute While fitting, a significant amount of time and processing power is @@ -1344,7 +1366,6 @@ Requires: %{name}-matrix%{?_isa} = %{version}-%{release} Requires: %{name}-roofit%{?_isa} = %{version}-%{release} Requires: %{name}-roofit-core%{?_isa} = %{version}-%{release} Requires: %{name}-roofit-jsoninterface%{?_isa} = %{version}-%{release} -Requires: %{name}-roostats%{?_isa} = %{version}-%{release} %description roofit-hs3 When using RooFit, statistical models can be conveniently handled and @@ -1425,6 +1446,7 @@ Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-io-xmlparser%{?_isa} = %{version}-%{release} Requires: %{name}-roofit%{?_isa} = %{version}-%{release} Requires: %{name}-roofit-core%{?_isa} = %{version}-%{release} +Requires: %{name}-roofit-jsoninterface%{?_isa} = %{version}-%{release} Requires: %{name}-roostats%{?_isa} = %{version}-%{release} %description hist-factory @@ -1437,6 +1459,7 @@ Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} Requires: %{name}-gui%{?_isa} = %{version}-%{release} +Requires: %{name}-gui-fitpanel%{?_isa} = %{version}-%{release} Requires: %{name}-gui-ged%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-hist-factory%{?_isa} = %{version}-%{release} @@ -1447,6 +1470,7 @@ Requires: %{name}-roofit%{?_isa} = %{version}-%{release} Requires: %{name}-roofit-core%{?_isa} = %{version}-%{release} Requires: %{name}-roofit-hs3%{?_isa} = %{version}-%{release} Requires: %{name}-roostats%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} %description xroofit The RooFit packages provide a toolkit for modeling the expected @@ -1571,6 +1595,7 @@ Requires: python%{python3_pkgversion}-numpy %description tmva-python Python integration with TMVA. +%if %{rrr} %package tmva-r Summary: Toolkit for multivariate data analysis (R) License: BSD-3-Clause @@ -1581,11 +1606,13 @@ Requires: %{name}-tmva%{?_isa} = %{version}-%{release} %description tmva-r R integration with TMVA. +%endif %package tmva-sofie Summary: ROOT/TMVA SOFIE (System for Optimized Fast Inference code Emit) License: BSD-3-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} %description tmva-sofie ROOT/TMVA SOFIE (System for Optimized Fast Inference code Emit) @@ -1617,6 +1644,7 @@ Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-io-xml%{?_isa} = %{version}-%{release} Requires: %{name}-matrix%{?_isa} = %{version}-%{release} Requires: %{name}-tmva%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} Requires: %{name}-tree-viewer%{?_isa} = %{version}-%{release} %description tmva-gui @@ -1718,6 +1746,7 @@ written in python. %package gui-webdisplay Summary: Web display for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} Requires: %{name}-net%{?_isa} = %{version}-%{release} Requires: %{name}-net-http%{?_isa} = %{version}-%{release} @@ -1755,6 +1784,7 @@ Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-net-http%{?_isa} = %{version}-%{release} %description gui-webgui6 This package provides a Web based GUI for ROOT. @@ -1794,6 +1824,7 @@ This package contains the ROOT file browser (RBrowser) and browser widgets. Summary: Geometry web viewer library for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-geom%{?_isa} = %{version}-%{release} +Requires: %{name}-geom-painter%{?_isa} = %{version}-%{release} Requires: %{name}-graf3d-csg%{?_isa} = %{version}-%{release} Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} @@ -1821,9 +1852,10 @@ This package contains graphics primitives for ROOT 7 Summary: Event display library for ROOT (ROOT 7) Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-geom%{?_isa} = %{version}-%{release} +Requires: %{name}-geom-webviewer%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} Requires: %{name}-graf3d-csg%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-browserv7%{?_isa} = %{version}-%{release} Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} @@ -1878,6 +1910,7 @@ This package contains a canvas painter extension for ROOT 7 Summary: GUI element for fits in ROOT (ROOT 7) Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpadv7%{?_isa} = %{version}-%{release} Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} @@ -1913,6 +1946,9 @@ This package contains an ntuple extension for ROOT 7. %package tree-ntuple-utils Summary: Ntuple utility library (ROOT 7) Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} Requires: %{name}-tree-ntuple%{?_isa} = %{version}-%{release} %description tree-ntuple-utils @@ -1930,6 +1966,7 @@ This package contains utility functions for ntuples. %patch -P5 -p1 %patch -P6 -p1 %patch -P7 -p1 +%patch -P8 -p1 # Remove bundled sources in order to be sure they are not used # * afterimage @@ -1970,7 +2007,7 @@ rm etc/notebook/JsMVA/css/*.min.css install -p -m 644 %{SOURCE7} bindings/jupyroot %build -%if %{?fedora}%{!?fedora:0} == 40 +%if %{?fedora}%{!?fedora:0} == 40 || %{?rhel}%{!?rhel:0} == 10 # This package triggers a fault in LLVM when LTO is enabled. Until LLVM # is analyzed and fixed, disable LTO %define _lto_cflags %{nil} @@ -2086,7 +2123,11 @@ done %else -Dqt6web:BOOL=OFF \ %endif +%if %{rrr} -Dr:BOOL=ON \ +%else + -Dr:BOOL=OFF \ +%endif %if %{roofit} -Droofit:BOOL=ON \ %if %{?fedora}%{!?fedora:0} >= 40 @@ -2118,7 +2159,11 @@ done -Dtmva-cudnn:BOOL=OFF \ -Dtmva-gpu:BOOL=OFF \ -Dtmva-pymva:BOOL=ON \ +%if %{rrr} -Dtmva-rmva:BOOL=ON \ +%else + -Dtmva-rmva:BOOL=OFF \ +%endif %if %{tmvasofieparser} -Dtmva-sofie:BOOL=ON \ %else @@ -2127,7 +2172,7 @@ done -Dtpython:BOOL=ON \ -Dunfold:BOOL=ON \ -Dunuran:BOOL=ON \ -%if %{?fedora}%{!?fedora:0} +%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 9 -During:BOOL=ON \ %else -During:BOOL=OFF \ @@ -2287,6 +2332,9 @@ rm %{buildroot}%{_datadir}/%{name}/macros/fileopen.C # Remove plugin definitions for non-built and obsolete plugins pushd %{buildroot}%{_datadir}/%{name}/plugins +%if ! %{rrr} +rm ROOT@@Math@@Minimizer/P090_RMinimizer.C +%endif rm TGLManager/P020_TGWin32GLManager.C rm TGLManager/P030_TGOSXGLManager.C rm TProofMgr/P010_TXProofMgr.C @@ -2673,15 +2721,13 @@ test-stresshistogram\$\$|\ test-stresshistogram-interpreted" %endif -%if %{?fedora}%{!?fedora:0} >= 40 -%ifarch aarch64 %{power64} s390x -# Fails with gcc 14 on aarch64, ppc64le and s390x +%if %{?fedora}%{!?fedora:0} >= 40 || %{?rhel}%{!?rhel:0} >= 10 +# Fails with gcc 14 on aarch64, ppc64le and s390x (on EPEL 10 also x86_64) # https://github.com/root-project/root/issues/14446 # - gtest-math-matrix-testMatrixTSparse excluded="${excluded}|\ gtest-math-matrix-testMatrixTSparse" %endif -%endif # Filter out parts of tests that require remote network access # RNTuple.StdAtomic fails on ix86 (different alignment 64 bit (non)atomic) @@ -2910,6 +2956,7 @@ fi %{python3_sitelib}/DistRDF-*.dist-info %endif +%if %{rrr} %files r -f includelist-bindings-r %{_libdir}/%{name}/libRInterface.* %{_libdir}/%{name}/libRInterface_rdict.pcm @@ -2919,6 +2966,7 @@ fi %{_libdir}/%{name}/libRtools.* %{_libdir}/%{name}/libRtools_rdict.pcm %{_datadir}/%{name}/plugins/ROOT@@Math@@Minimizer/P090_RMinimizer.C +%endif %files genetic -f includelist-math-genetic %{_libdir}/%{name}/libGenetic.* @@ -3444,9 +3492,11 @@ fi %{_libdir}/%{name}/libPyMVA.* %{_libdir}/%{name}/libPyMVA_rdict.pcm +%if %{rrr} %files tmva-r -f includelist-tmva-rmva %{_libdir}/%{name}/libRMVA.* %{_libdir}/%{name}/libRMVA_rdict.pcm +%endif %files tmva-sofie -f includelist-tmva-sofie %{_libdir}/%{name}/libROOTTMVASofie.* @@ -3601,6 +3651,12 @@ fi %endif %changelog +* Sun Jan 12 2025 Mattias Ellert - 6.34.02-2 +- Adjust stressGraphics.ref +- Build for EPEL 10 +- Disable the R interface for EPEL 10 (R not yet abailable) +- Enable uring support for EPEL 9 (supported in kernel since RHEL 9.3) + * Wed Dec 25 2024 Mattias Ellert - 6.34.02-1 - Update to 6.34.02 - Build CLAD plugin @@ -3654,7 +3710,7 @@ fi * Sat Jun 08 2024 Mattias Ellert - 6.32.00-2 - Python 3.13 compatibility -* Mon Jun 03 2024 Mattias Ellert - 6.32.00-1 +* Mon Jun 03 2024 Mattias Ellert - 6.32.00-1 - Update to 6.32.00 - Drop EPEL 8 build (now requires Python >= 3.7 and tbb >= 2020) - Dropped patches: 12 @@ -3681,7 +3737,7 @@ fi * Mon Mar 25 2024 Mattias Ellert - 6.30.04-2 - Support StandardSymbolsPS.otf -* Wed Jan 31 2024 Mattias Ellert - 6.30.04-1 +* Wed Jan 31 2024 Mattias Ellert - 6.30.04-1 - Update to 6.30.04 - Drop patch root-adjust-test-for-failures-on-aarch64-ppc64le-s390x.patch (accepted upstrem) From 745e82c601a72e0f3a419549894a9fac3194c568 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Wed, 15 Jan 2025 06:32:29 +0100 Subject: [PATCH 05/41] Don't add dependencies on root-roofit-multiprocess and root-roofit-zmq to root-roofit-core for EPEL builds --- root.spec | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/root.spec b/root.spec index 431d547..dca3376 100644 --- a/root.spec +++ b/root.spec @@ -27,13 +27,19 @@ %global rrr 1 %endif +%if %{?fedora}%{!?fedora:0} >= 40 +%global roofitmp 1 +%else +%global roofitmp 0 +%endif + # Do not generate autoprovides for Python modules %global __provides_exclude_from ^%{python3_sitearch}/lib.*\\.so$ Name: root Version: 6.34.02 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 3%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -171,7 +177,7 @@ BuildRequires: protobuf-devel >= 3.0 BuildRequires: libarrow-devel %endif %if %{roofit} -%if %{?fedora}%{!?fedora:0} >= 40 +%if %{roofitmp} # Required for roofit-multiprocess # Requires new zeromq with zmq_ppoll BuildRequires: zeromq-devel >= 4.3.5 @@ -410,7 +416,7 @@ Requires: %{name}-core = %{version}-%{release} # notebook package was merged with JupyROOT package Provides: %{name}-notebook = %{version}-%{release} Obsoletes: %{name}-notebook < 6.32.00 -Requires: js-jsroot >= 7.7 +Requires: js-jsroot >= 7.8 %if %{?fedora}%{!?fedora:0} # jupyter-notebook not available in RHEL/EPEL # some functionality missing @@ -1148,7 +1154,7 @@ access to http based storage such as webdav and S3. Summary: HTTP server extension for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: js-jsroot >= 7.7 +Requires: js-jsroot >= 7.8 # Library split (net-httpsniff from net-http) Obsoletes: %{name}-net-http < 6.14.00 @@ -1290,8 +1296,10 @@ Requires: %{name}-matrix%{?_isa} = %{version}-%{release} Requires: %{name}-minuit%{?_isa} = %{version}-%{release} Requires: %{name}-minuit2%{?_isa} = %{version}-%{release} Requires: %{name}-roofit-batchcompute%{?_isa} = %{version}-%{release} +%if %{roofitmp} Requires: %{name}-roofit-multiprocess%{?_isa} = %{version}-%{release} Requires: %{name}-roofit-zmq%{?_isa} = %{version}-%{release} +%endif Requires: %{name}-tree%{?_isa} = %{version}-%{release} # Package split / Library split (from roofit) Obsoletes: %{name}-roofit < 6.20.00 @@ -1395,7 +1403,7 @@ suitable for adoption in different disciplines as well. This package contains the JSON interface to RooFit. -%if %{?fedora}%{!?fedora:0} >= 40 +%if %{roofitmp} %package roofit-multiprocess Summary: Multi-process support for RooFit License: BSD-2-Clause @@ -2130,7 +2138,7 @@ done %endif %if %{roofit} -Droofit:BOOL=ON \ -%if %{?fedora}%{!?fedora:0} >= 40 +%if %{roofitmp} -Droofit_multiprocess:BOOL=ON \ %else -Droofit_multiprocess:BOOL=OFF \ @@ -3397,7 +3405,7 @@ fi %{_libdir}/%{name}/libRooFitJSONInterface_rdict.pcm %dir %{_includedir}/%{name}/RooFit -%if %{?fedora}%{!?fedora:0} >= 40 +%if %{roofitmp} %files roofit-multiprocess -f includelist-roofit-multiprocess %{_libdir}/%{name}/libRooFitMultiProcess.* %dir %{_includedir}/%{name}/RooFit @@ -3651,6 +3659,10 @@ fi %endif %changelog +* Wed Jan 15 2025 Mattias Ellert - 6.34.02-3 +- Don't add dependencies on root-roofit-multiprocess and root-roofit-zmq + to root-roofit-core for EPEL builds + * Sun Jan 12 2025 Mattias Ellert - 6.34.02-2 - Adjust stressGraphics.ref - Build for EPEL 10 From 2ad57ba760241d470f7bceebe3bc728b9edfe7d3 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 18 Jan 2025 22:37:32 +0000 Subject: [PATCH 06/41] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index dca3376..5e7d337 100644 --- a/root.spec +++ b/root.spec @@ -39,7 +39,7 @@ Name: root Version: 6.34.02 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 3%{?dist} +Release: 4%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -3659,6 +3659,9 @@ fi %endif %changelog +* Sat Jan 18 2025 Fedora Release Engineering - 6.34.02-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Wed Jan 15 2025 Mattias Ellert - 6.34.02-3 - Don't add dependencies on root-roofit-multiprocess and root-roofit-zmq to root-roofit-core for EPEL builds From 3487b3a0607005a2c68a7ba59a4ecc790ea51dbd Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Fri, 31 Jan 2025 13:22:57 +0100 Subject: [PATCH 07/41] Apply patches to fix build with gcc 15 Enable roofit-multiprocess for EPEL 10 (dependencies available) Rebuild for pythia8 8.3.13 --- root-Add-a-missing-include-to-RTensor.patch | 26 +++++++ ...ing-include-to-RVirtualCanvasPainter.patch | 26 +++++++ root-Fix-out-of-bounds-error-in-pyroot.patch | 52 ++++++++++++++ ...-and-conflicting-function-declaratio.patch | 44 ++++++++++++ ...x-Debug-Assertion-Failure-in-libGpad.patch | 30 ++++++++ ...kport-fix-for-compilation-issue-with.patch | 41 +++++++++++ root.spec | 69 ++++++++++++++----- 7 files changed, 271 insertions(+), 17 deletions(-) create mode 100644 root-Add-a-missing-include-to-RTensor.patch create mode 100644 root-Add-a-missing-include-to-RVirtualCanvasPainter.patch create mode 100644 root-Fix-out-of-bounds-error-in-pyroot.patch create mode 100644 root-Remove-redundant-and-conflicting-function-declaratio.patch create mode 100644 root-gpad-Fix-Debug-Assertion-Failure-in-libGpad.patch create mode 100644 root-llvm-project-Backport-fix-for-compilation-issue-with.patch diff --git a/root-Add-a-missing-include-to-RTensor.patch b/root-Add-a-missing-include-to-RTensor.patch new file mode 100644 index 0000000..e5fbd5b --- /dev/null +++ b/root-Add-a-missing-include-to-RTensor.patch @@ -0,0 +1,26 @@ +From cfc922131c8a977e14c6611ed991f0889b0c47c8 Mon Sep 17 00:00:00 2001 +From: Stephan Hageboeck +Date: Fri, 17 Jan 2025 10:35:37 +0100 +Subject: [PATCH 2/2] Add a missing include to RTensor. + +In gcc-15, needs to be included to use fixed-size integer +types. +--- + tmva/tmva/inc/TMVA/RTensor.hxx | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tmva/tmva/inc/TMVA/RTensor.hxx b/tmva/tmva/inc/TMVA/RTensor.hxx +index ad152f219a..795cc70689 100644 +--- a/tmva/tmva/inc/TMVA/RTensor.hxx ++++ b/tmva/tmva/inc/TMVA/RTensor.hxx +@@ -3,6 +3,7 @@ + + #include + #include // std::size_t ++#include + #include // std::runtime_error + #include // std::stringstream + #include // std::shared_ptr +-- +2.48.0 + diff --git a/root-Add-a-missing-include-to-RVirtualCanvasPainter.patch b/root-Add-a-missing-include-to-RVirtualCanvasPainter.patch new file mode 100644 index 0000000..4acfae1 --- /dev/null +++ b/root-Add-a-missing-include-to-RVirtualCanvasPainter.patch @@ -0,0 +1,26 @@ +From 2884f67f5a145ef5d2ba1f8050b2b1a543d97881 Mon Sep 17 00:00:00 2001 +From: Stephan Hageboeck +Date: Fri, 17 Jan 2025 10:32:04 +0100 +Subject: [PATCH 1/2] Add a missing include to RVirtualCanvasPainter. + +In gcc-15, needs to be included when fixed-size integer types +are used. +--- + graf2d/gpadv7/inc/ROOT/RVirtualCanvasPainter.hxx | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/graf2d/gpadv7/inc/ROOT/RVirtualCanvasPainter.hxx b/graf2d/gpadv7/inc/ROOT/RVirtualCanvasPainter.hxx +index be2a467280..f5f255ec48 100644 +--- a/graf2d/gpadv7/inc/ROOT/RVirtualCanvasPainter.hxx ++++ b/graf2d/gpadv7/inc/ROOT/RVirtualCanvasPainter.hxx +@@ -9,6 +9,7 @@ + #ifndef ROOT7_RVirtualCanvasPainter + #define ROOT7_RVirtualCanvasPainter + ++#include + #include + #include + #include +-- +2.48.0 + diff --git a/root-Fix-out-of-bounds-error-in-pyroot.patch b/root-Fix-out-of-bounds-error-in-pyroot.patch new file mode 100644 index 0000000..4a1611e --- /dev/null +++ b/root-Fix-out-of-bounds-error-in-pyroot.patch @@ -0,0 +1,52 @@ +From 4bece824e886f84b7b05e08baea3762d02f892d6 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Wed, 29 Jan 2025 00:31:31 +0100 +Subject: [PATCH] Fix out-of-bounds error in pyroot + + 526/1416 Test #63: pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-tf-pycallables ..........................***Failed 75.51 sec +test_callable (tf_pycallables.TF1.test_callable) +Test function provided as callable ... /usr/include/c++/15/bits/stl_bvector.h:1134: std::vector::reference std::vector::operator[](size_type) [with _Alloc = std::allocator; reference = std::vector::reference; size_type = long unsigned int]: Assertion '__n < this->size()' failed. + *** Break *** abort + +=========================================================== +The lines below might hint at the cause of the crash. If you see question +marks as part of the stack trace, try to recompile with debugging information +enabled and export CLING_DEBUG=1 environment variable before running. +You may get help by asking at the ROOT forum https://root.cern/forum +preferably using the command (.forum bug) in the ROOT prompt. +Only if you are really convinced it is a bug in ROOT then please submit a +report at https://root.cern/bugs or (preferably) using the command (.gh bug) in +the ROOT prompt. Please post the ENTIRE stack trace +from above as an attachment in addition to anything else +that might help us fixing this issue. +=========================================================== + #10 0x00007f6bcac7fea4 in __pthread_kill_implementation () from /lib64/libc.so.6 + #11 0x00007f6bcac264de in raise () from /lib64/libc.so.6 + #12 0x00007f6bcac0e350 in abort () from /lib64/libc.so.6 + #13 0x00007f6bc9a0be02 in std::__glibcxx_assert_fail(char const*, int, char const*, char const*) () from /lib64/libstdc++.so.6 + #14 0x00007f6bb9b15257 in std::vector >::operator[](unsigned long) [clone .part.0] [clone .lto_priv.0] (__n=, this=) at /usr/include/c++/15/bits/stl_bvector.h:1134 + #15 0x00007f6bb9bab976 in std::vector >::operator[] (this=, __n=0) at /usr/include/c++/15/bits/stl_bvector.h:201 + #16 CPyCppyy::Utility::ConstructCallbackPreamble (retType="Double_t", argtypes=..., code=Python Exception : list index out of range + #17 0x00007f6bb9b389e0 in PyFunction_AsCPointer (pyobject=, pyobject +entry=0x7f6bb8f838c0, rettype="Double_t", signature="(Double_t*,Double_t*)") at /builddir/build/BUILD/root-6.34.02-build/root-6.34.02/bindings/pyroot/cppyy/CPyCppyy/src/Converters.cxx:2713 + #18 0x00007f6bb9b39851 in CPyCppyy::(anonymous namespace)::FunctionPointerConverter::SetArg (this=0x55eb25d61d40, pyobject=0x7f6bb8f838c0, para=..., ctxt=0x7ffc484855c0) at /builddir/build/BUILD/root-6.34.02-build/root-6.34.02/bindings/pyroot/cppyy/CPyCppyy/src/Converters.cxx:2768 +--- + bindings/pyroot/cppyy/CPyCppyy/src/Utility.cxx | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/bindings/pyroot/cppyy/CPyCppyy/src/Utility.cxx b/bindings/pyroot/cppyy/CPyCppyy/src/Utility.cxx +index 7cfb76032a..2741caeb32 100644 +--- a/bindings/pyroot/cppyy/CPyCppyy/src/Utility.cxx ++++ b/bindings/pyroot/cppyy/CPyCppyy/src/Utility.cxx +@@ -645,7 +645,7 @@ void CPyCppyy::Utility::ConstructCallbackPreamble(const std::string& retType, + << retType << "\"), CPyCppyy::DestroyConverter};\n"; + std::vector arg_is_ptr; + if (nArgs) { +- arg_is_ptr.reserve(nArgs); ++ arg_is_ptr.resize(nArgs); + code << " CPYCPPYY_STATIC std::vector>> argcvs;\n" + << " if (argcvs.empty()) {\n" + << " argcvs.reserve(" << nArgs << ");\n"; +-- +2.48.1 + diff --git a/root-Remove-redundant-and-conflicting-function-declaratio.patch b/root-Remove-redundant-and-conflicting-function-declaratio.patch new file mode 100644 index 0000000..54a9e32 --- /dev/null +++ b/root-Remove-redundant-and-conflicting-function-declaratio.patch @@ -0,0 +1,44 @@ +From d28f5ac3a6947e13b30325bc2b373cff2fcda276 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Sun, 19 Jan 2025 13:57:25 +0100 +Subject: [PATCH] Remove redundant (and conflicting) function declarations + +The function fchtak() is implemented earlier in the same file. There +is therefore no need to declare the function later in the same file. +The later declarations redefines the function with an empty parameter +list, which conflicts with the original definition. + +The function stat() is defined by including . The +following daclaration redefines the function with an empty parameter +list, which conflicts with the original definition. +--- + misc/minicern/src/cernlib.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/misc/minicern/src/cernlib.c b/misc/minicern/src/cernlib.c +index b882db2d90..98f7282ce6 100644 +--- a/misc/minicern/src/cernlib.c ++++ b/misc/minicern/src/cernlib.c +@@ -172,8 +172,8 @@ int cfstati_(char *fname, int *info, int *lgname) + #endif + { + struct stat buf; +- char *ptname, *fchtak(); +- int istat=-1, stat(); ++ char *ptname; ++ int istat = -1; + ptname = fchtak(fname,*lgname); + if (ptname == ((void *)0)) return -1; + istat = stat(ptname, &buf); +@@ -226,7 +226,7 @@ void cfopei_(int *lundes, int *medium, int *nwrec, int *mode, int *nbuf, + char *ftext, int *astat, int *lgtx) + #endif + { +- char *pttext, *fchtak(); ++ char *pttext; + int flags = 0; + int fildes; + int perm; +-- +2.48.1 + diff --git a/root-gpad-Fix-Debug-Assertion-Failure-in-libGpad.patch b/root-gpad-Fix-Debug-Assertion-Failure-in-libGpad.patch new file mode 100644 index 0000000..2c2147a --- /dev/null +++ b/root-gpad-Fix-Debug-Assertion-Failure-in-libGpad.patch @@ -0,0 +1,30 @@ +From 456d5421706525974d4804e0e1a7880afd7df4fb Mon Sep 17 00:00:00 2001 +From: Bertrand Bellenot +Date: Wed, 11 Dec 2024 14:49:52 +0100 +Subject: [PATCH] [gpad] Fix Debug Assertion Failure in libGpad + +Fix the following error in Debug mode with Runtime Check on Windows: +Debug Assertion Failed! +Epression: vector subscript out of range +--- + graf2d/gpad/src/TPad.cxx | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/graf2d/gpad/src/TPad.cxx b/graf2d/gpad/src/TPad.cxx +index 9c907335f3..dd5abeba91 100644 +--- a/graf2d/gpad/src/TPad.cxx ++++ b/graf2d/gpad/src/TPad.cxx +@@ -3435,8 +3435,8 @@ void TPad::FillCollideGridTH1(TObject *o) + else y2l = fUymin; + } + y2 = (Int_t)((y2l-fY1)/ys); +- for (j=y1; j<=y2; j++) { +- NotFree(x1, j); ++ for (j=y1; jGetBinLowEdge(i); +-- +2.48.1 + diff --git a/root-llvm-project-Backport-fix-for-compilation-issue-with.patch b/root-llvm-project-Backport-fix-for-compilation-issue-with.patch new file mode 100644 index 0000000..c51d4d3 --- /dev/null +++ b/root-llvm-project-Backport-fix-for-compilation-issue-with.patch @@ -0,0 +1,41 @@ +From 60da0f7f5971c86407898408abf540c5a43d2d10 Mon Sep 17 00:00:00 2001 +From: Devajith Valaparambil Sreeramaswamy + +Date: Fri, 24 Jan 2025 09:36:13 +0100 +Subject: [PATCH] [llvm-project] Backport fix for compilation issue with gcc-15 + +Update the LLVM tag with the following commits: +2468812ca0d9 UPSTREAM: Add missing include to X86MCTargetDesc.h (#123320) +ed4f96704966 UPSTREAM: [ADT] Add `` to SmallVector (#101761) +--- + interpreter/llvm-project/llvm/include/llvm/ADT/SmallVector.h | 1 + + .../llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/interpreter/llvm-project/llvm/include/llvm/ADT/SmallVector.h b/interpreter/llvm-project/llvm/include/llvm/ADT/SmallVector.h +index 09676d792d..17444147b1 100644 +--- a/interpreter/llvm-project/llvm/include/llvm/ADT/SmallVector.h ++++ b/interpreter/llvm-project/llvm/include/llvm/ADT/SmallVector.h +@@ -19,6 +19,7 @@ + #include + #include + #include ++#include + #include + #include + #include +diff --git a/interpreter/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h b/interpreter/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h +index 437a7bd6ff..fd7d794849 100644 +--- a/interpreter/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h ++++ b/interpreter/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h +@@ -13,6 +13,7 @@ + #ifndef LLVM_LIB_TARGET_X86_MCTARGETDESC_X86MCTARGETDESC_H + #define LLVM_LIB_TARGET_X86_MCTARGETDESC_X86MCTARGETDESC_H + ++#include + #include + #include + +-- +2.48.1 + diff --git a/root.spec b/root.spec index 5e7d337..8e8b13f 100644 --- a/root.spec +++ b/root.spec @@ -27,7 +27,7 @@ %global rrr 1 %endif -%if %{?fedora}%{!?fedora:0} >= 40 +%if %{?fedora}%{!?fedora:0} >= 40 || %{?rhel}%{!?rhel:0} >= 10 %global roofitmp 1 %else %global roofitmp 0 @@ -39,7 +39,7 @@ Name: root Version: 6.34.02 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 4%{?dist} +Release: 5%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -89,6 +89,22 @@ Patch7: %{name}-tmva-sofie-Fix-Tile-operator.patch # Adjust test/stressGraphics.ref # https://github.com/root-project/root/pull/17398 Patch8: %{name}-Adjust-test-stressGraphics.ref.patch +# Fix out of bounds error reported with gcc 15 +# https://github.com/root-project/root/pull/17249 +Patch9: %{name}-gpad-Fix-Debug-Assertion-Failure-in-libGpad.patch +# Missing includes for compiling with gcc 15 +# https://github.com/root-project/root/pull/17443 +Patch10: %{name}-Add-a-missing-include-to-RVirtualCanvasPainter.patch +Patch11: %{name}-Add-a-missing-include-to-RTensor.patch +# Conflicting declarations (gcc 15) +# https://github.com/root-project/root/pull/17455 +Patch12: %{name}-Remove-redundant-and-conflicting-function-declaratio.patch +# Missing includes for compiling with gcc 15 +# https://github.com/root-project/root/pull/17510 +Patch13: %{name}-llvm-project-Backport-fix-for-compilation-issue-with.patch +# Fix out of bounds errors reported with gcc 15 +# https://github.com/root-project/root/pull/17551 +Patch14: %{name}-Fix-out-of-bounds-error-in-pyroot.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -1975,6 +1991,12 @@ This package contains utility functions for ntuples. %patch -P6 -p1 %patch -P7 -p1 %patch -P8 -p1 +%patch -P9 -p1 +%patch -P10 -p1 +%patch -P11 -p1 +%patch -P12 -p1 +%patch -P13 -p1 +%patch -P14 -p1 # Remove bundled sources in order to be sure they are not used # * afterimage @@ -2558,12 +2580,12 @@ test-webgui-ping" # 0u # Which is: 0 # -# test-stressgraphics-firefox-skip3d: -# requires firefox... -# # gtest-tree-treeplayer-treetreeplayertestUnit: # segmentation fault # +# test-stressgraphics-firefox-skip3d: +# requires firefox... +# # tutorial-webcanv-fonts_ttf.cxx: # Requires web graphics # @@ -2574,8 +2596,8 @@ test-webgui-ping" # import xgboost as xgb excluded="${excluded}|\ gtest-roofit-roofit-vectorisedPDFs-testLandau|\ -test-stressgraphics-firefox-skip3d|\ gtest-tree-treeplayer-treetreeplayertestUnit|\ +test-stressgraphics-firefox-skip3d|\ tutorial-webcanv-fonts_ttf.cxx|\ tutorial-roofit-rf617_simulation_based_inference_multidimensional-py|\ tutorial-roofit-rf618_mixture_models-py" @@ -2607,20 +2629,18 @@ excluded="${excluded}|\ gtest-tree-dataframe-dataframe-concurrency" %endif -%ifarch aarch64 -# - tutorial-tmva-RBatchGenerator_filters_vectors-py -# Randomly segfaults -# *** Break *** segmentation violation -excluded="${excluded}|\ -tutorial-tmva-RBatchGenerator_filters_vectors-py" -%endif - %ifarch %{power64} # - tutorial-roostats-IntervalExamples-py # *** Break *** segmentation violation excluded="${excluded}|\ -gtest-tree-ntuple-v7-ntuple-evolution|\ tutorial-roostats-IntervalExamples-py" + +%if %{?fedora}%{!?fedora:0} >= 42 +# - gtest-tree-ntuple-v7-ntuple-evolution +# waitpid() failed +excluded="${excluded}|\ +gtest-tree-ntuple-v7-ntuple-evolution" +%endif %endif %ifarch s390x @@ -2649,8 +2669,8 @@ gtest-roofit-roofitcore-testLikelihoodGradientJob" # - gtest-tree-ntuple-v7-ntuple-multi-column # - gtest-tree-ntuple-v7-ntuple-packing # - gtest-tree-ntuple-v7-ntuple-parallel-writer -# - gtest-tree-ntuple-v7-ntuple-project # - gtest-tree-ntuple-v7-ntuple-processor +# - gtest-tree-ntuple-v7-ntuple-project # - gtest-tree-ntuple-v7-ntuple-show # - gtest-tree-ntuple-v7-ntuple-storage # - gtest-tree-ntuple-v7-ntuple-storage-daos @@ -2700,8 +2720,8 @@ gtest-tree-ntuple-v7-ntuple-modelext|\ gtest-tree-ntuple-v7-ntuple-multi-column|\ gtest-tree-ntuple-v7-ntuple-packing|\ gtest-tree-ntuple-v7-ntuple-parallel-writer|\ -gtest-tree-ntuple-v7-ntuple-project|\ gtest-tree-ntuple-v7-ntuple-processor|\ +gtest-tree-ntuple-v7-ntuple-project|\ gtest-tree-ntuple-v7-ntuple-show|\ gtest-tree-ntuple-v7-ntuple-storage\$\$|\ gtest-tree-ntuple-v7-ntuple-storage-daos|\ @@ -2737,6 +2757,16 @@ excluded="${excluded}|\ gtest-math-matrix-testMatrixTSparse" %endif +%if %{?fedora}%{!?fedora:0} >= 42 +# Fail with gcc 15 due to changes in std::hash templates +# - tutorial-roofit-*-py +# - tutorial-roostats-*-py +# https://github.com/root-project/root/issues/17456 +excluded="${excluded}|\ +tutorial-roofit-.*-py|\ +tutorial-roostats-.*-py" +%endif + # Filter out parts of tests that require remote network access # RNTuple.StdAtomic fails on ix86 (different alignment 64 bit (non)atomic) # TClingDataMemberInfo.Offset fails on s390x @@ -3659,6 +3689,11 @@ fi %endif %changelog +* Fri Jan 31 2025 Mattias Ellert - 6.34.02-5 +- Apply patches to fix build with gcc 15 +- Enable roofit-multiprocess for EPEL 10 (dependencies available) +- Rebuild for pythia8 8.3.13 + * Sat Jan 18 2025 Fedora Release Engineering - 6.34.02-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 02870ffba16dcadae0a4e149a4f2c191057c4592 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Sat, 1 Feb 2025 19:57:12 +0100 Subject: [PATCH 08/41] Add explicit BR: libxcrypt-devel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Björn Esser --- root.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 8e8b13f..54165c3 100644 --- a/root.spec +++ b/root.spec @@ -39,7 +39,7 @@ Name: root Version: 6.34.02 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 5%{?dist} +Release: 6%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -143,6 +143,7 @@ BuildRequires: unixODBC-devel BuildRequires: libGL-devel BuildRequires: libGLU-devel BuildRequires: libpq-devel +BuildRequires: libxcrypt-devel BuildRequires: python%{python3_pkgversion}-devel >= 3.7 BuildRequires: python%{python3_pkgversion}-setuptools BuildRequires: python%{python3_pkgversion}-numpy @@ -3689,6 +3690,9 @@ fi %endif %changelog +* Sat Feb 01 2025 Björn Esser - 6.34.02-6 +- Add explicit BR: libxcrypt-devel + * Fri Jan 31 2025 Mattias Ellert - 6.34.02-5 - Apply patches to fix build with gcc 15 - Enable roofit-multiprocess for EPEL 10 (dependencies available) From b1bbc0fadf36cb3c461617b215a41f7b8ea1a0ed Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sun, 2 Feb 2025 13:48:38 -0700 Subject: [PATCH 09/41] Rebuild with gsl 2.8 --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 54165c3..78298b2 100644 --- a/root.spec +++ b/root.spec @@ -39,7 +39,7 @@ Name: root Version: 6.34.02 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 6%{?dist} +Release: 7%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -3690,6 +3690,9 @@ fi %endif %changelog +* Sun Feb 02 2025 Orion Poplawski - 6.34.02-7 +- Rebuild with gsl 2.8 + * Sat Feb 01 2025 Björn Esser - 6.34.02-6 - Add explicit BR: libxcrypt-devel From 71b6707207dd15f30022c8f640b747cd2c999095 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Thu, 13 Feb 2025 21:44:04 -0500 Subject: [PATCH 10/41] Rebuilt for libarrow 19 --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 78298b2..cf6ddbd 100644 --- a/root.spec +++ b/root.spec @@ -39,7 +39,7 @@ Name: root Version: 6.34.02 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 7%{?dist} +Release: 8%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -3690,6 +3690,9 @@ fi %endif %changelog +* Fri Feb 14 2025 Benjamin A. Beasley - 6.34.02-8 +- Rebuilt for libarrow 19 + * Sun Feb 02 2025 Orion Poplawski - 6.34.02-7 - Rebuild with gsl 2.8 From 40be88f67c48e55030b894eaaf0b7ee5d8f5ea89 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Fri, 14 Feb 2025 22:05:06 +0100 Subject: [PATCH 11/41] Update to 6.34.04 Drop patches accepted upstream or previously backported --- root-Add-a-missing-include-to-RTensor.patch | 26 ------ ...ing-include-to-RVirtualCanvasPainter.patch | 26 ------ root-Fix-compilation-on-s390x.patch | 38 --------- root-Make-DCLAD_SOURCE_DIR-option-work.patch | 66 ---------------- ...-and-conflicting-function-declaratio.patch | 44 ----------- ...kport-fix-for-compilation-issue-with.patch | 41 ---------- root-tmva-sofie-Fix-Tile-operator.patch | 79 ------------------- root.spec | 46 +++-------- sources | 2 +- 9 files changed, 14 insertions(+), 354 deletions(-) delete mode 100644 root-Add-a-missing-include-to-RTensor.patch delete mode 100644 root-Add-a-missing-include-to-RVirtualCanvasPainter.patch delete mode 100644 root-Fix-compilation-on-s390x.patch delete mode 100644 root-Make-DCLAD_SOURCE_DIR-option-work.patch delete mode 100644 root-Remove-redundant-and-conflicting-function-declaratio.patch delete mode 100644 root-llvm-project-Backport-fix-for-compilation-issue-with.patch delete mode 100644 root-tmva-sofie-Fix-Tile-operator.patch diff --git a/root-Add-a-missing-include-to-RTensor.patch b/root-Add-a-missing-include-to-RTensor.patch deleted file mode 100644 index e5fbd5b..0000000 --- a/root-Add-a-missing-include-to-RTensor.patch +++ /dev/null @@ -1,26 +0,0 @@ -From cfc922131c8a977e14c6611ed991f0889b0c47c8 Mon Sep 17 00:00:00 2001 -From: Stephan Hageboeck -Date: Fri, 17 Jan 2025 10:35:37 +0100 -Subject: [PATCH 2/2] Add a missing include to RTensor. - -In gcc-15, needs to be included to use fixed-size integer -types. ---- - tmva/tmva/inc/TMVA/RTensor.hxx | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/tmva/tmva/inc/TMVA/RTensor.hxx b/tmva/tmva/inc/TMVA/RTensor.hxx -index ad152f219a..795cc70689 100644 ---- a/tmva/tmva/inc/TMVA/RTensor.hxx -+++ b/tmva/tmva/inc/TMVA/RTensor.hxx -@@ -3,6 +3,7 @@ - - #include - #include // std::size_t -+#include - #include // std::runtime_error - #include // std::stringstream - #include // std::shared_ptr --- -2.48.0 - diff --git a/root-Add-a-missing-include-to-RVirtualCanvasPainter.patch b/root-Add-a-missing-include-to-RVirtualCanvasPainter.patch deleted file mode 100644 index 4acfae1..0000000 --- a/root-Add-a-missing-include-to-RVirtualCanvasPainter.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 2884f67f5a145ef5d2ba1f8050b2b1a543d97881 Mon Sep 17 00:00:00 2001 -From: Stephan Hageboeck -Date: Fri, 17 Jan 2025 10:32:04 +0100 -Subject: [PATCH 1/2] Add a missing include to RVirtualCanvasPainter. - -In gcc-15, needs to be included when fixed-size integer types -are used. ---- - graf2d/gpadv7/inc/ROOT/RVirtualCanvasPainter.hxx | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/graf2d/gpadv7/inc/ROOT/RVirtualCanvasPainter.hxx b/graf2d/gpadv7/inc/ROOT/RVirtualCanvasPainter.hxx -index be2a467280..f5f255ec48 100644 ---- a/graf2d/gpadv7/inc/ROOT/RVirtualCanvasPainter.hxx -+++ b/graf2d/gpadv7/inc/ROOT/RVirtualCanvasPainter.hxx -@@ -9,6 +9,7 @@ - #ifndef ROOT7_RVirtualCanvasPainter - #define ROOT7_RVirtualCanvasPainter - -+#include - #include - #include - #include --- -2.48.0 - diff --git a/root-Fix-compilation-on-s390x.patch b/root-Fix-compilation-on-s390x.patch deleted file mode 100644 index be89d3f..0000000 --- a/root-Fix-compilation-on-s390x.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 67e3b45b5d346a779533636397e28b1c48a21070 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Mon, 16 Dec 2024 15:32:21 +0100 -Subject: [PATCH] Fix compilation on s390x - -There were changes to the code but the big endian code was not updated -to match the changes in the little endian code. ---- - tmva/sofie_parsers/src/RModelParser_ONNX.cxx | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/tmva/sofie_parsers/src/RModelParser_ONNX.cxx b/tmva/sofie_parsers/src/RModelParser_ONNX.cxx -index 81a4b23697..1415e06e0f 100644 ---- a/tmva/sofie_parsers/src/RModelParser_ONNX.cxx -+++ b/tmva/sofie_parsers/src/RModelParser_ONNX.cxx -@@ -131,9 +131,9 @@ std::shared_ptr GetInitializedTensorData(onnx::TensorProto * tensorproto, - #ifdef R__BYTESWAP - std::memcpy(data.get(), tensorproto->raw_data().c_str(), length * sizeof(T)); - #else -- for (std::size_t k = 0; k < fLength; ++k) -- (reinterpret_cast(data.get()))[k] = -- Rbswap_32((reinterpret_cast(tensorproto->raw_data().c_str()))[k]); -+ for (std::size_t k = 0; k < length; ++k) -+ (reinterpret_cast::value_type *>(data.get()))[k] = -+ RByteSwap::bswap((reinterpret_cast::value_type *>(tensorproto->raw_data().c_str()))[k]); - #endif - } else { - ExtractDataFromTP::Copy(tensorproto, data.get()); -@@ -628,4 +628,4 @@ void RModelParser_ONNX::ParseONNXGraph(RModel & rmodel, const onnx::GraphProto & - - } // namespace SOFIE - } // namespace Experimental --} // namespace TMVA -\ No newline at end of file -+} // namespace TMVA --- -2.47.1 - diff --git a/root-Make-DCLAD_SOURCE_DIR-option-work.patch b/root-Make-DCLAD_SOURCE_DIR-option-work.patch deleted file mode 100644 index a4aaada..0000000 --- a/root-Make-DCLAD_SOURCE_DIR-option-work.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 7d5ae0dcfbf770cc3943cc25283bf2d39329d9f3 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Mon, 16 Dec 2024 15:48:42 +0100 -Subject: [PATCH] Make -DCLAD_SOURCE_DIR option work - -Using the -DCLAD_SOURCE_DIR currently does not disable the git checkout. -From the cmake documentation for ExternalProject_Add: - -Note: If a download method is specified, any existing contents of the -source directory may be deleted. Only the URL download method checks -whether this directory is either missing or empty before initiating -the download, stopping with an error if it is not empty. All other -download methods silently discard any previous contents of the source -directory. - -Currently cmake deletes the source directory defined by --DCLAD_SOURCE_DIR and then tries to recreate it using a git checkout, -but fails if there is no network available: - -Cloning into 'clad-1.7'... -fatal: unable to access 'https://github.com/vgvassilev/clad.git/': Could not resolve host: github.com -Cloning into 'clad-1.7'... -fatal: unable to access 'https://github.com/vgvassilev/clad.git/': Could not resolve host: github.com -Cloning into 'clad-1.7'... -fatal: unable to access 'https://github.com/vgvassilev/clad.git/': Could not resolve host: github.com -Had to git clone more than once: 3 times. -CMake Error at redhat-linux-build/interpreter/cling/tools/plugins/clad/clad-prefix/tmp/clad-gitclone.cmake:50 (message): - Failed to clone repository: 'https://github.com/vgvassilev/clad.git' - -The attempt to disable the git checkout by setting the -DOWNLOAD_COMMAND option to an empty string is not working. - -This commit fixes the issue by only defining the GIT_REPOSITORY and -GIT_TAG options when CLAD_SOURCE_DIR is not defined. ---- - interpreter/cling/tools/plugins/clad/CMakeLists.txt | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/interpreter/cling/tools/plugins/clad/CMakeLists.txt b/interpreter/cling/tools/plugins/clad/CMakeLists.txt -index ba5f09786c..3c70d00a10 100644 ---- a/interpreter/cling/tools/plugins/clad/CMakeLists.txt -+++ b/interpreter/cling/tools/plugins/clad/CMakeLists.txt -@@ -68,8 +68,10 @@ set(_clad_extra_settings - # If the CLAD_SOURCE_DIR variable is defined in the CMake configuration, we're - # skipping the download of the repository and use the passed directory. - if (DEFINED CLAD_SOURCE_DIR) -- list(APPEND _clad_extra_settings DOWNLOAD_COMMAND "") - list(APPEND _clad_extra_settings SOURCE_DIR ${CLAD_SOURCE_DIR}) -+else() -+ list(APPEND _clad_extra_settings GIT_REPOSITORY https://github.com/vgvassilev/clad.git) -+ list(APPEND _clad_extra_settings GIT_TAG v1.7) - endif() - - #list(APPEND _clad_patches_list "patch1.patch" "patch2.patch") -@@ -82,8 +84,6 @@ endif() - - ExternalProject_Add( - clad -- GIT_REPOSITORY https://github.com/vgvassilev/clad.git -- GIT_TAG v1.7 - UPDATE_COMMAND "" - PATCH_COMMAND ${_clad_patch_command} - CMAKE_ARGS -G ${CMAKE_GENERATOR} --- -2.47.1 - diff --git a/root-Remove-redundant-and-conflicting-function-declaratio.patch b/root-Remove-redundant-and-conflicting-function-declaratio.patch deleted file mode 100644 index 54a9e32..0000000 --- a/root-Remove-redundant-and-conflicting-function-declaratio.patch +++ /dev/null @@ -1,44 +0,0 @@ -From d28f5ac3a6947e13b30325bc2b373cff2fcda276 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Sun, 19 Jan 2025 13:57:25 +0100 -Subject: [PATCH] Remove redundant (and conflicting) function declarations - -The function fchtak() is implemented earlier in the same file. There -is therefore no need to declare the function later in the same file. -The later declarations redefines the function with an empty parameter -list, which conflicts with the original definition. - -The function stat() is defined by including . The -following daclaration redefines the function with an empty parameter -list, which conflicts with the original definition. ---- - misc/minicern/src/cernlib.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/misc/minicern/src/cernlib.c b/misc/minicern/src/cernlib.c -index b882db2d90..98f7282ce6 100644 ---- a/misc/minicern/src/cernlib.c -+++ b/misc/minicern/src/cernlib.c -@@ -172,8 +172,8 @@ int cfstati_(char *fname, int *info, int *lgname) - #endif - { - struct stat buf; -- char *ptname, *fchtak(); -- int istat=-1, stat(); -+ char *ptname; -+ int istat = -1; - ptname = fchtak(fname,*lgname); - if (ptname == ((void *)0)) return -1; - istat = stat(ptname, &buf); -@@ -226,7 +226,7 @@ void cfopei_(int *lundes, int *medium, int *nwrec, int *mode, int *nbuf, - char *ftext, int *astat, int *lgtx) - #endif - { -- char *pttext, *fchtak(); -+ char *pttext; - int flags = 0; - int fildes; - int perm; --- -2.48.1 - diff --git a/root-llvm-project-Backport-fix-for-compilation-issue-with.patch b/root-llvm-project-Backport-fix-for-compilation-issue-with.patch deleted file mode 100644 index c51d4d3..0000000 --- a/root-llvm-project-Backport-fix-for-compilation-issue-with.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 60da0f7f5971c86407898408abf540c5a43d2d10 Mon Sep 17 00:00:00 2001 -From: Devajith Valaparambil Sreeramaswamy - -Date: Fri, 24 Jan 2025 09:36:13 +0100 -Subject: [PATCH] [llvm-project] Backport fix for compilation issue with gcc-15 - -Update the LLVM tag with the following commits: -2468812ca0d9 UPSTREAM: Add missing include to X86MCTargetDesc.h (#123320) -ed4f96704966 UPSTREAM: [ADT] Add `` to SmallVector (#101761) ---- - interpreter/llvm-project/llvm/include/llvm/ADT/SmallVector.h | 1 + - .../llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/interpreter/llvm-project/llvm/include/llvm/ADT/SmallVector.h b/interpreter/llvm-project/llvm/include/llvm/ADT/SmallVector.h -index 09676d792d..17444147b1 100644 ---- a/interpreter/llvm-project/llvm/include/llvm/ADT/SmallVector.h -+++ b/interpreter/llvm-project/llvm/include/llvm/ADT/SmallVector.h -@@ -19,6 +19,7 @@ - #include - #include - #include -+#include - #include - #include - #include -diff --git a/interpreter/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h b/interpreter/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h -index 437a7bd6ff..fd7d794849 100644 ---- a/interpreter/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h -+++ b/interpreter/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h -@@ -13,6 +13,7 @@ - #ifndef LLVM_LIB_TARGET_X86_MCTARGETDESC_X86MCTARGETDESC_H - #define LLVM_LIB_TARGET_X86_MCTARGETDESC_X86MCTARGETDESC_H - -+#include - #include - #include - --- -2.48.1 - diff --git a/root-tmva-sofie-Fix-Tile-operator.patch b/root-tmva-sofie-Fix-Tile-operator.patch deleted file mode 100644 index 1bf2667..0000000 --- a/root-tmva-sofie-Fix-Tile-operator.patch +++ /dev/null @@ -1,79 +0,0 @@ -From ef1f3bba9059cd2e61d7de5f46fbfc26c4746ebc Mon Sep 17 00:00:00 2001 -From: moneta -Date: Thu, 19 Dec 2024 15:22:37 +0100 -Subject: [PATCH] [tmva][sofie] Fix Tile operator - -Fix the casting of the input repeats vector data of the Tile operator. -The type of data should be int64_t and not size_t -The previous code could have some issue when the size of size_t is 32 bits ---- - tmva/sofie/inc/TMVA/ROperator_Tile.hxx | 31 ++++++++++++++++---------- - 1 file changed, 19 insertions(+), 12 deletions(-) - -diff --git a/tmva/sofie/inc/TMVA/ROperator_Tile.hxx b/tmva/sofie/inc/TMVA/ROperator_Tile.hxx -index 869cd55d9a439..3686db1e0914a 100644 ---- a/tmva/sofie/inc/TMVA/ROperator_Tile.hxx -+++ b/tmva/sofie/inc/TMVA/ROperator_Tile.hxx -@@ -51,12 +51,17 @@ public: - } - fShapeInput=model.GetTensorShape(fNInput); - -- // Retrieve the data pointer for the repeats tensor -+ // if repeats vector is not initialized we cannot deduce shape of output -+ // not support for time being this case -+ if (!model.IsInitializedTensor(fNRepeats)) { -+ throw std::runtime_error("TMVA SOFIE Tile Op: non-initialized repeats input is not supported"); -+ } -+ -+ // Retrieve the data pointer for the repeats tensor - auto repptr = model.GetInitializedTensorData(fNRepeats); - // Cast the raw pointer to the appropriate type (size_t*) -- auto repeat_shape = static_cast(repptr.get()); -- -- if (repeat_shape == nullptr) { -+ auto repeats_data = static_cast(repptr.get()); -+ if (repeats_data == nullptr) { - throw std::runtime_error("Failed to retrieve the data for the repeats tensor."); - } - // Get the shape of the repeats tensor to determine the number of elements -@@ -66,12 +71,18 @@ public: - throw std::runtime_error("Repeats tensor is not 1D."); - } - size_t num_elements = repeats_shape[0]; -- // Convert the data to a vector -- std::vector repeats_vector(repeat_shape, repeat_shape + num_elements); -+ // Convert the data to a vector of size_t -+ std::vector repeats_vector(num_elements); -+ std::copy(repeats_data, repeats_data + num_elements, repeats_vector.begin()); -+ - - fShapeY = ShapeInference({fShapeInput,repeats_vector})[0]; - - model.AddIntermediateTensor(fNY, model.GetTensorType(fNInput), fShapeY); -+ -+ if (model.Verbose()) -+ std::cout << "Tile: " << fNInput << " " << ConvertShapeToString(fShapeInput) << " -> " << fNY << " with shape " << ConvertShapeToString(fShapeY) -+ << " given repeats " << ConvertShapeToString(repeats_vector) << std::endl; - } - - std::string Generate(std::string OpName){ -@@ -89,17 +100,13 @@ public: - std::string output = "tensor_" + fNY; - out << "///-------- Tile operator\n"; - out << "{\n"; // add scope to re-use same names -- out << "std::vector input_shape = " << ConvertShapeToString(fShapeInput) << ";\n"; -- std::vector repeats = fShapeY; -- for (size_t i = 0; i < repeats.size(); i++) -- repeats[i] /= fShapeInput[i]; -+ out << "const int input_shape[" << fShapeInput.size() << "] = " << ConvertShapeToString(fShapeInput) << ";\n"; - -- out << "std::vector repeats = " << ConvertShapeToString(repeats) << ";\n"; - out << "int inputLength = " << ConvertShapeToLength(fShapeInput) << ";\n"; - out << "int s = 1;\n"; - // loop from inverse dim order - out << "for (int i = " << fShapeInput.size()-1 << "; i >=0; i--) {\n"; -- out << SP << "int r = repeats[i];\n"; -+ out << SP << "int r = tensor_" << fNRepeats << "[i];\n"; - // we cannot exclude case where repeats=1 since we need offset - //out << SP << "if (r == 1 && i < " << fShapeInput.size()-1 << ") continue;\n"; - out << SP << "int i_offset = 0, o_offset = 0;\n"; diff --git a/root.spec b/root.spec index cf6ddbd..4629e7d 100644 --- a/root.spec +++ b/root.spec @@ -37,9 +37,9 @@ %global __provides_exclude_from ^%{python3_sitearch}/lib.*\\.so$ Name: root -Version: 6.34.02 +Version: 6.34.04 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 8%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -77,34 +77,15 @@ Patch2: %{name}-dont-install-minicern.patch Patch3: %{name}-no-export-python-modules.patch # Run some test on 32 bit that upstream has disabled Patch4: %{name}-32bit-tests.patch -# Fix compilation of TMVA SOFIE parser on s390x -# https://github.com/root-project/root/pull/17307 -Patch5: %{name}-Fix-compilation-on-s390x.patch -# Make -DCLAD_SOURCE_DIR option work -# https://github.com/root-project/root/pull/17308 -Patch6: %{name}-Make-DCLAD_SOURCE_DIR-option-work.patch -# Fix segmentation fault during testing on ix86 -# https://github.com/root-project/root/pull/17314 -Patch7: %{name}-tmva-sofie-Fix-Tile-operator.patch # Adjust test/stressGraphics.ref # https://github.com/root-project/root/pull/17398 -Patch8: %{name}-Adjust-test-stressGraphics.ref.patch +Patch5: %{name}-Adjust-test-stressGraphics.ref.patch # Fix out of bounds error reported with gcc 15 # https://github.com/root-project/root/pull/17249 -Patch9: %{name}-gpad-Fix-Debug-Assertion-Failure-in-libGpad.patch -# Missing includes for compiling with gcc 15 -# https://github.com/root-project/root/pull/17443 -Patch10: %{name}-Add-a-missing-include-to-RVirtualCanvasPainter.patch -Patch11: %{name}-Add-a-missing-include-to-RTensor.patch -# Conflicting declarations (gcc 15) -# https://github.com/root-project/root/pull/17455 -Patch12: %{name}-Remove-redundant-and-conflicting-function-declaratio.patch -# Missing includes for compiling with gcc 15 -# https://github.com/root-project/root/pull/17510 -Patch13: %{name}-llvm-project-Backport-fix-for-compilation-issue-with.patch +Patch6: %{name}-gpad-Fix-Debug-Assertion-Failure-in-libGpad.patch # Fix out of bounds errors reported with gcc 15 # https://github.com/root-project/root/pull/17551 -Patch14: %{name}-Fix-out-of-bounds-error-in-pyroot.patch +Patch7: %{name}-Fix-out-of-bounds-error-in-pyroot.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -143,7 +124,7 @@ BuildRequires: unixODBC-devel BuildRequires: libGL-devel BuildRequires: libGLU-devel BuildRequires: libpq-devel -BuildRequires: libxcrypt-devel +BuildRequires: libxcrypt-devel BuildRequires: python%{python3_pkgversion}-devel >= 3.7 BuildRequires: python%{python3_pkgversion}-setuptools BuildRequires: python%{python3_pkgversion}-numpy @@ -1991,13 +1972,6 @@ This package contains utility functions for ntuples. %patch -P5 -p1 %patch -P6 -p1 %patch -P7 -p1 -%patch -P8 -p1 -%patch -P9 -p1 -%patch -P10 -p1 -%patch -P11 -p1 -%patch -P12 -p1 -%patch -P13 -p1 -%patch -P14 -p1 # Remove bundled sources in order to be sure they are not used # * afterimage @@ -2581,8 +2555,9 @@ test-webgui-ping" # 0u # Which is: 0 # +# gtest-tree-treeplayer-ttreeindex-clone # gtest-tree-treeplayer-treetreeplayertestUnit: -# segmentation fault +# Randomly fail - can't open file that was just created - race condition? # # test-stressgraphics-firefox-skip3d: # requires firefox... @@ -2597,6 +2572,7 @@ test-webgui-ping" # import xgboost as xgb excluded="${excluded}|\ gtest-roofit-roofit-vectorisedPDFs-testLandau|\ +gtest-tree-treeplayer-ttreeindex-clone|\ gtest-tree-treeplayer-treetreeplayertestUnit|\ test-stressgraphics-firefox-skip3d|\ tutorial-webcanv-fonts_ttf.cxx|\ @@ -3690,6 +3666,10 @@ fi %endif %changelog +* Fri Feb 14 2025 Mattias Ellert - 6.34.04-1 +- Update to 6.34.04 +- Drop patches accepted upstream or previously backported + * Fri Feb 14 2025 Benjamin A. Beasley - 6.34.02-8 - Rebuilt for libarrow 19 diff --git a/sources b/sources index c6afe84..4269611 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (root-6.34.02.tar.xz) = 565218eb073ecec509851c99c9ac018bb9de1abae4be023fe2862e28aa967a4a353d77fce1b8173fea87ed17b943bcd2bbce69a55573a1686f138a6495612fa5 +SHA512 (root-6.34.04.tar.xz) = fc13e3efc6254b817f48c0009e70943890f8e6b10efcee54c4113293ded1b0e202e3ef635e2150e5f359da6426c6a48b4456dfe7900740b7beaa73c23fa69fb7 SHA512 (root-testfiles.tar.xz) = 945aef1a0cf5af672d4ab84b0ac00b76118e93008ff72447658ee82d9e955a1540af3ff7126e701418872f1d91b92ee96d4985840a519036c42732023a13f00f SHA512 (clad-1.7.tar.gz) = ff9856ed4901625b4c31bc4b5ac97f464667f58c567caaab8b2a2567de4e0908ff0fffbb566fe728fc6184d3d6bc156bbabacf24d83009e36b2956d535171066 From 450c67721aa4e1fa7cf2955ef73414d4aede4c8a Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Wed, 19 Feb 2025 08:36:52 +0100 Subject: [PATCH 12/41] Fix roofit/roostats test failures with gcc 15 --- ...h_not_enabled-to-names-from-std-name.patch | 35 +++++++++++++++++++ root.spec | 19 +++++----- 2 files changed, 43 insertions(+), 11 deletions(-) create mode 100644 root-PyROOT-Add-__hash_not_enabled-to-names-from-std-name.patch diff --git a/root-PyROOT-Add-__hash_not_enabled-to-names-from-std-name.patch b/root-PyROOT-Add-__hash_not_enabled-to-names-from-std-name.patch new file mode 100644 index 0000000..0b2803d --- /dev/null +++ b/root-PyROOT-Add-__hash_not_enabled-to-names-from-std-name.patch @@ -0,0 +1,35 @@ +From 3280847501bfb354a3a9ff1e023c8fd3b74548f4 Mon Sep 17 00:00:00 2001 +From: Stephan Hageboeck +Date: Wed, 12 Feb 2025 14:42:43 +0100 +Subject: [PATCH] [PyROOT] Add __hash_not_enabled to names from std namespace. + +With gcc-15, the lookups of std::hash lead to the following error: +input_line_50:1:16: error: explicit instantiation of 'std::__hash_not_enabled' + must occur in namespace 'std' +template class __hash_not_enabled; + +Adding this class to the list of names that require "std::" fixes the +error. + +Fix #17456. +--- + .../cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/bindings/pyroot/cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx b/bindings/pyroot/cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx +index 3aa6704a0b..08972d1460 100644 +--- a/bindings/pyroot/cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx ++++ b/bindings/pyroot/cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx +@@ -275,7 +275,8 @@ public: + "slice_array", "slice", "stack", "string", "strstream", "strstreambuf", + "time_get_byname", "time_get", "time_put_byname", "time_put", "unary_function", + "unary_negate", "unique_ptr", "underflow_error", "unordered_map", "unordered_multimap", +- "unordered_multiset", "unordered_set", "valarray", "vector", "weak_ptr", "wstring"}; ++ "unordered_multiset", "unordered_set", "valarray", "vector", "weak_ptr", "wstring", ++ "__hash_not_enabled"}; + for (auto& name : stl_names) + gSTLNames.insert(name); + +-- +2.48.1 + diff --git a/root.spec b/root.spec index 4629e7d..1d622b4 100644 --- a/root.spec +++ b/root.spec @@ -39,7 +39,7 @@ Name: root Version: 6.34.04 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -86,6 +86,9 @@ Patch6: %{name}-gpad-Fix-Debug-Assertion-Failure-in-libGpad.patch # Fix out of bounds errors reported with gcc 15 # https://github.com/root-project/root/pull/17551 Patch7: %{name}-Fix-out-of-bounds-error-in-pyroot.patch +# Fix roofit/roostats test failures with gcc 15 +# https://github.com/root-project/root/pull/17702 +Patch8: %{name}-PyROOT-Add-__hash_not_enabled-to-names-from-std-name.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -1972,6 +1975,7 @@ This package contains utility functions for ntuples. %patch -P5 -p1 %patch -P6 -p1 %patch -P7 -p1 +%patch -P8 -p1 # Remove bundled sources in order to be sure they are not used # * afterimage @@ -2734,16 +2738,6 @@ excluded="${excluded}|\ gtest-math-matrix-testMatrixTSparse" %endif -%if %{?fedora}%{!?fedora:0} >= 42 -# Fail with gcc 15 due to changes in std::hash templates -# - tutorial-roofit-*-py -# - tutorial-roostats-*-py -# https://github.com/root-project/root/issues/17456 -excluded="${excluded}|\ -tutorial-roofit-.*-py|\ -tutorial-roostats-.*-py" -%endif - # Filter out parts of tests that require remote network access # RNTuple.StdAtomic fails on ix86 (different alignment 64 bit (non)atomic) # TClingDataMemberInfo.Offset fails on s390x @@ -3666,6 +3660,9 @@ fi %endif %changelog +* Wed Feb 19 2025 Mattias Ellert - 6.34.04-2 +- Fix roofit/roostats test failures with gcc 15 + * Fri Feb 14 2025 Mattias Ellert - 6.34.04-1 - Update to 6.34.04 - Drop patches accepted upstream or previously backported From fe8a030c521f75f6d2ff98536c1ac92b4287b89a Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Mon, 31 Mar 2025 15:19:04 +0200 Subject: [PATCH 13/41] Update to 6.34.06 Drop patches accepted upstream or previously backported --- root-Fix-out-of-bounds-error-in-pyroot.patch | 52 ---------------- ...h_not_enabled-to-names-from-std-name.patch | 35 ----------- ...h-the-geometries-from-EOS-and-not-fr.patch | 60 +++++++++++++++++++ ...x-Debug-Assertion-Failure-in-libGpad.patch | 30 ---------- root-testfiles.sh | 7 --- root.spec | 52 ++++------------ sources | 4 +- 7 files changed, 73 insertions(+), 167 deletions(-) delete mode 100644 root-Fix-out-of-bounds-error-in-pyroot.patch delete mode 100644 root-PyROOT-Add-__hash_not_enabled-to-names-from-std-name.patch create mode 100644 root-Revert-test-Fetch-the-geometries-from-EOS-and-not-fr.patch delete mode 100644 root-gpad-Fix-Debug-Assertion-Failure-in-libGpad.patch diff --git a/root-Fix-out-of-bounds-error-in-pyroot.patch b/root-Fix-out-of-bounds-error-in-pyroot.patch deleted file mode 100644 index 4a1611e..0000000 --- a/root-Fix-out-of-bounds-error-in-pyroot.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 4bece824e886f84b7b05e08baea3762d02f892d6 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Wed, 29 Jan 2025 00:31:31 +0100 -Subject: [PATCH] Fix out-of-bounds error in pyroot - - 526/1416 Test #63: pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-tf-pycallables ..........................***Failed 75.51 sec -test_callable (tf_pycallables.TF1.test_callable) -Test function provided as callable ... /usr/include/c++/15/bits/stl_bvector.h:1134: std::vector::reference std::vector::operator[](size_type) [with _Alloc = std::allocator; reference = std::vector::reference; size_type = long unsigned int]: Assertion '__n < this->size()' failed. - *** Break *** abort - -=========================================================== -The lines below might hint at the cause of the crash. If you see question -marks as part of the stack trace, try to recompile with debugging information -enabled and export CLING_DEBUG=1 environment variable before running. -You may get help by asking at the ROOT forum https://root.cern/forum -preferably using the command (.forum bug) in the ROOT prompt. -Only if you are really convinced it is a bug in ROOT then please submit a -report at https://root.cern/bugs or (preferably) using the command (.gh bug) in -the ROOT prompt. Please post the ENTIRE stack trace -from above as an attachment in addition to anything else -that might help us fixing this issue. -=========================================================== - #10 0x00007f6bcac7fea4 in __pthread_kill_implementation () from /lib64/libc.so.6 - #11 0x00007f6bcac264de in raise () from /lib64/libc.so.6 - #12 0x00007f6bcac0e350 in abort () from /lib64/libc.so.6 - #13 0x00007f6bc9a0be02 in std::__glibcxx_assert_fail(char const*, int, char const*, char const*) () from /lib64/libstdc++.so.6 - #14 0x00007f6bb9b15257 in std::vector >::operator[](unsigned long) [clone .part.0] [clone .lto_priv.0] (__n=, this=) at /usr/include/c++/15/bits/stl_bvector.h:1134 - #15 0x00007f6bb9bab976 in std::vector >::operator[] (this=, __n=0) at /usr/include/c++/15/bits/stl_bvector.h:201 - #16 CPyCppyy::Utility::ConstructCallbackPreamble (retType="Double_t", argtypes=..., code=Python Exception : list index out of range - #17 0x00007f6bb9b389e0 in PyFunction_AsCPointer (pyobject=, pyobject -entry=0x7f6bb8f838c0, rettype="Double_t", signature="(Double_t*,Double_t*)") at /builddir/build/BUILD/root-6.34.02-build/root-6.34.02/bindings/pyroot/cppyy/CPyCppyy/src/Converters.cxx:2713 - #18 0x00007f6bb9b39851 in CPyCppyy::(anonymous namespace)::FunctionPointerConverter::SetArg (this=0x55eb25d61d40, pyobject=0x7f6bb8f838c0, para=..., ctxt=0x7ffc484855c0) at /builddir/build/BUILD/root-6.34.02-build/root-6.34.02/bindings/pyroot/cppyy/CPyCppyy/src/Converters.cxx:2768 ---- - bindings/pyroot/cppyy/CPyCppyy/src/Utility.cxx | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/bindings/pyroot/cppyy/CPyCppyy/src/Utility.cxx b/bindings/pyroot/cppyy/CPyCppyy/src/Utility.cxx -index 7cfb76032a..2741caeb32 100644 ---- a/bindings/pyroot/cppyy/CPyCppyy/src/Utility.cxx -+++ b/bindings/pyroot/cppyy/CPyCppyy/src/Utility.cxx -@@ -645,7 +645,7 @@ void CPyCppyy::Utility::ConstructCallbackPreamble(const std::string& retType, - << retType << "\"), CPyCppyy::DestroyConverter};\n"; - std::vector arg_is_ptr; - if (nArgs) { -- arg_is_ptr.reserve(nArgs); -+ arg_is_ptr.resize(nArgs); - code << " CPYCPPYY_STATIC std::vector>> argcvs;\n" - << " if (argcvs.empty()) {\n" - << " argcvs.reserve(" << nArgs << ");\n"; --- -2.48.1 - diff --git a/root-PyROOT-Add-__hash_not_enabled-to-names-from-std-name.patch b/root-PyROOT-Add-__hash_not_enabled-to-names-from-std-name.patch deleted file mode 100644 index 0b2803d..0000000 --- a/root-PyROOT-Add-__hash_not_enabled-to-names-from-std-name.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 3280847501bfb354a3a9ff1e023c8fd3b74548f4 Mon Sep 17 00:00:00 2001 -From: Stephan Hageboeck -Date: Wed, 12 Feb 2025 14:42:43 +0100 -Subject: [PATCH] [PyROOT] Add __hash_not_enabled to names from std namespace. - -With gcc-15, the lookups of std::hash lead to the following error: -input_line_50:1:16: error: explicit instantiation of 'std::__hash_not_enabled' - must occur in namespace 'std' -template class __hash_not_enabled; - -Adding this class to the list of names that require "std::" fixes the -error. - -Fix #17456. ---- - .../cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/bindings/pyroot/cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx b/bindings/pyroot/cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx -index 3aa6704a0b..08972d1460 100644 ---- a/bindings/pyroot/cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx -+++ b/bindings/pyroot/cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx -@@ -275,7 +275,8 @@ public: - "slice_array", "slice", "stack", "string", "strstream", "strstreambuf", - "time_get_byname", "time_get", "time_put_byname", "time_put", "unary_function", - "unary_negate", "unique_ptr", "underflow_error", "unordered_map", "unordered_multimap", -- "unordered_multiset", "unordered_set", "valarray", "vector", "weak_ptr", "wstring"}; -+ "unordered_multiset", "unordered_set", "valarray", "vector", "weak_ptr", "wstring", -+ "__hash_not_enabled"}; - for (auto& name : stl_names) - gSTLNames.insert(name); - --- -2.48.1 - diff --git a/root-Revert-test-Fetch-the-geometries-from-EOS-and-not-fr.patch b/root-Revert-test-Fetch-the-geometries-from-EOS-and-not-fr.patch new file mode 100644 index 0000000..a45ae41 --- /dev/null +++ b/root-Revert-test-Fetch-the-geometries-from-EOS-and-not-fr.patch @@ -0,0 +1,60 @@ +From 4da50ef374cd231163dff77493f9367cd62583d9 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Sun, 30 Mar 2025 21:23:14 +0200 +Subject: [PATCH] Revert "[test] Fetch the geometries from EOS and not from the + website" + +This reverts commit a8a879ce252e45405452db38d9178c7883582a7d. +--- + test/stressGeometry.cxx | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/test/stressGeometry.cxx b/test/stressGeometry.cxx +index 7fb6bf97e7..f8d78f4f54 100644 +--- a/test/stressGeometry.cxx ++++ b/test/stressGeometry.cxx +@@ -1,6 +1,6 @@ + // Program to check a TGeo geometry + // The first time you run this program, the geometry files will be taken +-// from /eos/root-eos/testfiles/ (previously from http://root.cern/files) ++// from http://root.cern/files + // + // How the program works + // If the file _ref.root does not exist, it is generated. The file +@@ -274,13 +274,13 @@ void stressGeometry(const char *exp="*", Bool_t generate_ref=kFALSE, Bool_t vecg + delete gGeoManager; + gGeoManager = 0; + } +- TGeoManager::Import(Form("root://eospublic.cern.ch//eos/root-eos/testfiles/%s",fname.Data())); ++ TGeoManager::Import(Form("http://root.cern/files/%s",fname.Data())); + if (!gGeoManager) return; + if (vecgeom) TVirtualGeoConverter::Instance()->ConvertGeometry(); + + fname = TString::Format("files/%s_ref_%d.root", exps[i],versions[i]); + +- if (gen_ref || !TFile::Open(Form("root://eospublic.cern.ch//eos/root-eos/testfiles//%s_ref_%d.root",exps[i],versions[i]),"CACHEREAD")) { ++ if (gen_ref || !TFile::Open(Form("http://root.cern/files/%s_ref_%d.root",exps[i],versions[i]),"CACHEREAD")) { + if (!gen_ref) fprintf(stderr,"File: %s does not exist, generating it\n", fname.Data()); + else fprintf(stderr,"Generating reference file %s\n", fname.Data()); + WriteRef(i); +@@ -320,7 +320,7 @@ void ReadRef(Int_t kexp) { + TFile *f = 0; + //use ref_[version[i]] files + if (!gen_ref) +- fname = TString::Format("root://eospublic.cern.ch//eos/root-eos/testfiles//%s_ref_%d.root", exps[kexp],versions[kexp]); ++ fname = TString::Format("http://root.cern/files/%s_ref_%d.root", exps[kexp],versions[kexp]); + else + fname.Format("files/%s_ref_%d.root", exps[kexp],versions[kexp]); + +@@ -546,7 +546,7 @@ void InspectDiff(const char* exp="alice",Long64_t ientry=-1) { + Float_t rad = 0.; + TString fname(TString::Format("%s.root",exp)); + if (gSystem->AccessPathName(fname)) { +- TGeoManager::Import(Form("root://eospublic.cern.ch//eos/root-eos/testfiles//%s",fname.Data())); ++ TGeoManager::Import(Form("http://root.cern/files/%s",fname.Data())); + } else { + TGeoManager::Import(fname); + } +-- +2.49.0 + diff --git a/root-gpad-Fix-Debug-Assertion-Failure-in-libGpad.patch b/root-gpad-Fix-Debug-Assertion-Failure-in-libGpad.patch deleted file mode 100644 index 2c2147a..0000000 --- a/root-gpad-Fix-Debug-Assertion-Failure-in-libGpad.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 456d5421706525974d4804e0e1a7880afd7df4fb Mon Sep 17 00:00:00 2001 -From: Bertrand Bellenot -Date: Wed, 11 Dec 2024 14:49:52 +0100 -Subject: [PATCH] [gpad] Fix Debug Assertion Failure in libGpad - -Fix the following error in Debug mode with Runtime Check on Windows: -Debug Assertion Failed! -Epression: vector subscript out of range ---- - graf2d/gpad/src/TPad.cxx | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/graf2d/gpad/src/TPad.cxx b/graf2d/gpad/src/TPad.cxx -index 9c907335f3..dd5abeba91 100644 ---- a/graf2d/gpad/src/TPad.cxx -+++ b/graf2d/gpad/src/TPad.cxx -@@ -3435,8 +3435,8 @@ void TPad::FillCollideGridTH1(TObject *o) - else y2l = fUymin; - } - y2 = (Int_t)((y2l-fY1)/ys); -- for (j=y1; j<=y2; j++) { -- NotFree(x1, j); -+ for (j=y1; jGetBinLowEdge(i); --- -2.48.1 - diff --git a/root-testfiles.sh b/root-testfiles.sh index db4d721..c2451e9 100755 --- a/root-testfiles.sh +++ b/root-testfiles.sh @@ -72,14 +72,7 @@ wget -N ${SITE}/tesla.root wget -N ${SITE}/wa91_ref_3.root wget -N ${SITE}/wa91.root -wget -N ${SITE}/AtlasGraphs.root wget -N ${SITE}/europe.root -wget -N ${SITE}/Higgs_data.root -wget -N ${SITE}/linearIO.root -wget -N ${SITE}/stressHistogram.5.18.00.root -wget -N ${SITE}/tmva_class_example.root -wget -N ${SITE}/tmva_multiclass_example.root -wget -N ${SITE}/tmva_reg_example.root wget -N ${SITE}/usa.root for f in *.root ; do ln -s $f $f.ROOT.cachefile ; done diff --git a/root.spec b/root.spec index 1d622b4..b54fbd5 100644 --- a/root.spec +++ b/root.spec @@ -37,9 +37,9 @@ %global __provides_exclude_from ^%{python3_sitearch}/lib.*\\.so$ Name: root -Version: 6.34.04 +Version: 6.34.06 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -80,22 +80,13 @@ Patch4: %{name}-32bit-tests.patch # Adjust test/stressGraphics.ref # https://github.com/root-project/root/pull/17398 Patch5: %{name}-Adjust-test-stressGraphics.ref.patch -# Fix out of bounds error reported with gcc 15 -# https://github.com/root-project/root/pull/17249 -Patch6: %{name}-gpad-Fix-Debug-Assertion-Failure-in-libGpad.patch -# Fix out of bounds errors reported with gcc 15 -# https://github.com/root-project/root/pull/17551 -Patch7: %{name}-Fix-out-of-bounds-error-in-pyroot.patch -# Fix roofit/roostats test failures with gcc 15 -# https://github.com/root-project/root/pull/17702 -Patch8: %{name}-PyROOT-Add-__hash_not_enabled-to-names-from-std-name.patch +# Revert test change that breaks the test +Patch6: %{name}-Revert-test-Fetch-the-geometries-from-EOS-and-not-fr.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran BuildRequires: make -# root on Linux requires cmake 3.16 -# but 3.19 is needed for flexiblas support -BuildRequires: cmake >= 3.19 +BuildRequires: cmake >= 3.20 BuildRequires: libX11-devel BuildRequires: libXpm-devel BuildRequires: libXft-devel @@ -165,12 +156,7 @@ BuildRequires: flexiblas-devel %if ! %{bundlejson} BuildRequires: json-devel >= 3.9 %endif -%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 9 -# Disable uring in EPEL 8 (liburing is available, -# but uring not supported by the RHEL 8 kernel) -# Supported by the RHEL kernel since RHEL 9.3 BuildRequires: liburing-devel -%endif %if %{tmvasofieparser} BuildRequires: protobuf-devel >= 3.0 %endif @@ -848,9 +834,7 @@ from marked up sources. %package io Summary: Input/output of ROOT objects Requires: %{name}-core%{?_isa} = %{version}-%{release} -%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 9 Requires: liburing-devel -%endif %description io This package provides I/O routines for ROOT objects. @@ -1974,8 +1958,6 @@ This package contains utility functions for ntuples. %patch -P4 -p1 %patch -P5 -p1 %patch -P6 -p1 -%patch -P7 -p1 -%patch -P8 -p1 # Remove bundled sources in order to be sure they are not used # * afterimage @@ -2181,11 +2163,7 @@ done -Dtpython:BOOL=ON \ -Dunfold:BOOL=ON \ -Dunuran:BOOL=ON \ -%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 9 -During:BOOL=ON \ -%else - -During:BOOL=OFF \ -%endif -Dvc:BOOL=OFF \ -Dvdt:BOOL=OFF \ -Dveccore:BOOL=OFF \ @@ -2408,20 +2386,8 @@ ln -s ../../files files popd pushd runtutorials ln -s ../../files files -for x in df014_CsvDataSource_MuRun2010B_cpp.csv \ - df014_CsvDataSource_MuRun2010B_py.csv \ - df015_CsvDataSource_MuRun2010B.csv ; do - ln -sf ../../files/tutorials/df014_CsvDataSource_MuRun2010B.csv $x -done -popd -pushd tmva/tmva/test -ln -s ../../../../files files -popd -pushd tmva/tmva/test/DNN -ln -s ../../../../../files files -popd -pushd tmva/tmva/test/envelope -ln -s ../../../../../files files +ln -s ../../files/tutorials/df014_CsvDataSource_MuRun2010B.csv CsvDataSource_MuRun2010B.csv +ln -s ../../files/usa.root usa.root popd # Exclude some tests that can not be run @@ -3660,6 +3626,10 @@ fi %endif %changelog +* Fri Mar 28 2025 Mattias Ellert - 6.34.06-1 +- Update to 6.34.06 +- Drop patches accepted upstream or previously backported + * Wed Feb 19 2025 Mattias Ellert - 6.34.04-2 - Fix roofit/roostats test failures with gcc 15 diff --git a/sources b/sources index 4269611..47e0594 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (root-6.34.04.tar.xz) = fc13e3efc6254b817f48c0009e70943890f8e6b10efcee54c4113293ded1b0e202e3ef635e2150e5f359da6426c6a48b4456dfe7900740b7beaa73c23fa69fb7 -SHA512 (root-testfiles.tar.xz) = 945aef1a0cf5af672d4ab84b0ac00b76118e93008ff72447658ee82d9e955a1540af3ff7126e701418872f1d91b92ee96d4985840a519036c42732023a13f00f +SHA512 (root-6.34.06.tar.xz) = 9a22f8a143a8e23f2bfcd19bf23450e55359e9a73972450d25a0e4932cc11bd32473b5bd76c31ad0d1841d7767ccc3ffaf8ca02ef507384bb5fe1c21540144f6 +SHA512 (root-testfiles.tar.xz) = 4bb7f8ca00b1427ba49f6428e9cfe5908a2ffdd2ce4134d3bc169a0629198352b5500fe0cf92c121d148e5af41f7016c96038a77794a4d37d94e6ec0a9d75670 SHA512 (clad-1.7.tar.gz) = ff9856ed4901625b4c31bc4b5ac97f464667f58c567caaab8b2a2567de4e0908ff0fffbb566fe728fc6184d3d6bc156bbabacf24d83009e36b2956d535171066 From 920e7b25758bfd961c166ae8a12445c4ed047d6b Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Thu, 17 Apr 2025 23:39:33 +0200 Subject: [PATCH 14/41] Update to 6.34.08 --- root.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/root.spec b/root.spec index b54fbd5..0608aa9 100644 --- a/root.spec +++ b/root.spec @@ -37,7 +37,7 @@ %global __provides_exclude_from ^%{python3_sitearch}/lib.*\\.so$ Name: root -Version: 6.34.06 +Version: 6.34.08 %global libversion %(cut -d. -f 1-2 <<< %{version}) Release: 1%{?dist} Summary: Numerical data analysis framework @@ -3626,6 +3626,9 @@ fi %endif %changelog +* Thu Apr 17 2025 Mattias Ellert - 6.34.08-1 +- Update to 6.34.08 + * Fri Mar 28 2025 Mattias Ellert - 6.34.06-1 - Update to 6.34.06 - Drop patches accepted upstream or previously backported diff --git a/sources b/sources index 47e0594..99610a2 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (root-6.34.06.tar.xz) = 9a22f8a143a8e23f2bfcd19bf23450e55359e9a73972450d25a0e4932cc11bd32473b5bd76c31ad0d1841d7767ccc3ffaf8ca02ef507384bb5fe1c21540144f6 +SHA512 (root-6.34.08.tar.xz) = 58699d441555a82f9c2d00fc33719786bc5e4925060122f5e7fb46df28feec1d4047987b4badb20b19c484b13229b173bd110d25b1f3d426d70039847d879299 SHA512 (root-testfiles.tar.xz) = 4bb7f8ca00b1427ba49f6428e9cfe5908a2ffdd2ce4134d3bc169a0629198352b5500fe0cf92c121d148e5af41f7016c96038a77794a4d37d94e6ec0a9d75670 SHA512 (clad-1.7.tar.gz) = ff9856ed4901625b4c31bc4b5ac97f464667f58c567caaab8b2a2567de4e0908ff0fffbb566fe728fc6184d3d6bc156bbabacf24d83009e36b2956d535171066 From aaf51a11c7f70455c6280e665fee7fe7ea282a81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki=20=C3=9Acar?= Date: Fri, 18 Apr 2025 13:19:10 +0200 Subject: [PATCH 15/41] R-maint-sig mass rebuild --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 0608aa9..1115c26 100644 --- a/root.spec +++ b/root.spec @@ -39,7 +39,7 @@ Name: root Version: 6.34.08 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -3626,6 +3626,9 @@ fi %endif %changelog +* Fri Apr 18 2025 Iñaki Úcar - 6.34.08-2 +- R-maint-sig mass rebuild + * Thu Apr 17 2025 Mattias Ellert - 6.34.08-1 - Update to 6.34.08 From ab1aa62b4549a46783007935c11fa3c5fc4a5c59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki=20=C3=9Acar?= Date: Fri, 18 Apr 2025 20:42:27 +0200 Subject: [PATCH 16/41] R-maint-sig mass rebuild --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 1115c26..6b8f195 100644 --- a/root.spec +++ b/root.spec @@ -39,7 +39,7 @@ Name: root Version: 6.34.08 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 3%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -3626,6 +3626,9 @@ fi %endif %changelog +* Fri Apr 18 2025 Iñaki Úcar - 6.34.08-3 +- R-maint-sig mass rebuild + * Fri Apr 18 2025 Iñaki Úcar - 6.34.08-2 - R-maint-sig mass rebuild From 593e7462664d0472fdae7140139498e4e72e71a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki=20=C3=9Acar?= Date: Fri, 18 Apr 2025 22:02:09 +0200 Subject: [PATCH 17/41] R-maint-sig mass rebuild --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 6b8f195..db5b1df 100644 --- a/root.spec +++ b/root.spec @@ -39,7 +39,7 @@ Name: root Version: 6.34.08 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 3%{?dist} +Release: 4%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -3626,6 +3626,9 @@ fi %endif %changelog +* Fri Apr 18 2025 Iñaki Úcar - 6.34.08-4 +- R-maint-sig mass rebuild + * Fri Apr 18 2025 Iñaki Úcar - 6.34.08-3 - R-maint-sig mass rebuild From 5a7661342949a9958f16f25e8d2788a32bd725ca Mon Sep 17 00:00:00 2001 From: Python Maint Date: Tue, 3 Jun 2025 15:33:23 +0200 Subject: [PATCH 18/41] Rebuilt for Python 3.14 --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index db5b1df..7ee247a 100644 --- a/root.spec +++ b/root.spec @@ -39,7 +39,7 @@ Name: root Version: 6.34.08 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 4%{?dist} +Release: 5%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -3626,6 +3626,9 @@ fi %endif %changelog +* Tue Jun 03 2025 Python Maint - 6.34.08-5 +- Rebuilt for Python 3.14 + * Fri Apr 18 2025 Iñaki Úcar - 6.34.08-4 - R-maint-sig mass rebuild From 6edd65804f16c17f662f76cc952fcf0e89bfb3ab Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Mon, 9 Jun 2025 14:00:51 +0200 Subject: [PATCH 19/41] Update to 6.36.00 Enable the R interface for EPEL 10.1 Removed subpackages: root-gui-qt5webdisplay, -hist-draw, -histv7 and -html New subpackage: root-roofit-codegen --- root-Adjust-test-stressGraphics.ref.patch | 42 +- root-Fix-test-for-32-bit-architectures.patch | 55 ++ root-Ignore-warnings-from-uring-IO.patch | 64 +++ ...t-link-to-LLVM-libraries-in-parallel.patch | 47 ++ root-Update-release-number.patch | 25 + root-Use-size_t-for-offset.patch | 60 +++ root.spec | 487 ++++++++---------- sources | 4 +- 8 files changed, 493 insertions(+), 291 deletions(-) create mode 100644 root-Fix-test-for-32-bit-architectures.patch create mode 100644 root-Ignore-warnings-from-uring-IO.patch create mode 100644 root-Save-memory-Do-not-link-to-LLVM-libraries-in-parallel.patch create mode 100644 root-Update-release-number.patch create mode 100644 root-Use-size_t-for-offset.patch diff --git a/root-Adjust-test-stressGraphics.ref.patch b/root-Adjust-test-stressGraphics.ref.patch index 92db744..6f8e6e4 100644 --- a/root-Adjust-test-stressGraphics.ref.patch +++ b/root-Adjust-test-stressGraphics.ref.patch @@ -1,19 +1,13 @@ -From b0f07c642c8edb62788f8519dcdb322f99395661 Mon Sep 17 00:00:00 2001 +From 81286803e7791377ae75f40e9c65f8928ad8fe31 Mon Sep 17 00:00:00 2001 From: Mattias Ellert -Date: Thu, 9 Jan 2025 21:44:14 +0100 +Date: Fri, 30 May 2025 05:31:08 +0200 Subject: [PATCH] Adjust test/stressGraphics.ref -One of the tests fails with just a few bytes on latest Fedora -releases. Failures can be seen for both test-stressgraphics and -test-stressgraphics-interpreted. Failures are reported for sizes being -201, 202 or 203 bytes larger than the reference, with thw limit -currently set to 200 bytes. - -Test 19: TGaxis 3 (Time on axis)................................... OK - PDF output......................................... 19 FAILED - Result = 42723 - Reference = 42926 - Error = 203 (was 200) +Test 37: TScatter with TPolyMarker test............................ OK + PDF output......................................... 37 FAILED + Result = 22236 + Reference = 22560 + Error = 324 (was 300) JPG output................................................ OK PNG output................................................ OK C file result............................................. OK @@ -22,18 +16,18 @@ Test 19: TGaxis 3 (Time on axis)................................... OK 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/stressGraphics.ref b/test/stressGraphics.ref -index 28ac0b9b7b..e1382d2d45 100644 +index a894796951..a8746db4df 100644 --- a/test/stressGraphics.ref +++ b/test/stressGraphics.ref -@@ -17,7 +17,7 @@ Test# PS1Ref# PS1Err# PDFRef# PDFErr# JPGRef# JPGErr# PNGRef# PN - 16 28072 400 23287 200 44462 11000 30062 5000 38007 400 - 17 20444 400 21520 150 27511 11000 16867 600 20721 400 - 18 15894 100 19305 200 27187 10300 15925 350 15925 100 -- 19 22521 300 42926 200 43868 17000 19232 11000 22729 300 -+ 19 22521 300 42926 250 43868 17000 19232 11000 22729 300 - 20 3664 600 14437 150 19824 6300 10396 900 4220 600 - 21 17608 600 13900 150 49440 6300 37586 9000 5938 600 - 22 4866 600 14162 100 30889 10050 21311 1800 4845 600 +@@ -35,7 +35,7 @@ Test# PS1Ref# PS1Err# PDFRef# PDFErr# JPGRef# JPGErr# PNGRef# PN + 34 3304592 100 712308 3000 62688 19000 123056 7000 3396789 1000 + 35 3954 100 14654 300 17378 7800 9629 2000 3794 200 + 36 9073 100 22150 300 27691 7800 20712 2000 9157 200 +- 37 17800 200 22560 300 28599 7800 42618 2000 17600 200 ++ 37 17800 200 22560 400 28599 7800 42618 2000 17600 200 + 38 12926 200 24304 300 24021 6800 12637 2000 12584 200 + 39 29664 200 19354 300 23024 6500 12821 2000 31317 200 + 40 46000 400 23482 300 38792 8500 30458 4000 46000 400 -- -2.47.1 +2.49.0 diff --git a/root-Fix-test-for-32-bit-architectures.patch b/root-Fix-test-for-32-bit-architectures.patch new file mode 100644 index 0000000..5da0477 --- /dev/null +++ b/root-Fix-test-for-32-bit-architectures.patch @@ -0,0 +1,55 @@ +From 9efe32d0f0e89624d7cf5efeca9cf151d9d0b220 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Tue, 3 Jun 2025 19:57:31 +0200 +Subject: [PATCH] Fix test for 32 bit architectures + +[ RUN ] TypeReflectionTest.GetSizeOfType +/builddir/build/BUILD/root-6.36.00-build/root-6.36.00/interpreter/CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp:79: Failure +Expected equality of these values: + Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[4])) + Which is: 12 + 16 +[ FAILED ] TypeReflectionTest.GetSizeOfType (23 ms) + +[ RUN ] ScopeReflectionTest.SizeOf +/builddir/build/BUILD/root-6.36.00-build/root-6.36.00/interpreter/CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp:161: Failure +Expected equality of these values: + Cpp::SizeOf(Decls[7]) + Which is: 12 + (size_t)16 + Which is: 16 +[ FAILED ] ScopeReflectionTest.SizeOf (26 ms) +--- + .../CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp | 2 +- + .../CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/interpreter/CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp b/interpreter/CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp +index 0b39080859..14122c6498 100644 +--- a/interpreter/CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp ++++ b/interpreter/CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp +@@ -158,7 +158,7 @@ TEST(ScopeReflectionTest, SizeOf) { + EXPECT_EQ(Cpp::SizeOf(Decls[4]), (size_t)0); + EXPECT_EQ(Cpp::SizeOf(Decls[5]), (size_t)1); + EXPECT_EQ(Cpp::SizeOf(Decls[6]), (size_t)4); +- EXPECT_EQ(Cpp::SizeOf(Decls[7]), (size_t)16); ++ EXPECT_EQ(Cpp::SizeOf(Decls[7]), (size_t) (sizeof(size_t) == 4 ? 12 : 16)); + } + + +diff --git a/interpreter/CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp b/interpreter/CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp +index a3e482596d..8f7bc01ebe 100644 +--- a/interpreter/CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp ++++ b/interpreter/CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp +@@ -77,7 +77,7 @@ TEST(TypeReflectionTest, GetSizeOfType) { + EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[1])), 1); + EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[2])), 4); + EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[3])), 8); +- EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[4])), 16); ++ EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[4])), sizeof(size_t) == 4 ? 12 : 16); + EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetTypeFromScope(Decls[5])), 0); + EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[6])), + sizeof(intptr_t)); +-- +2.49.0 + diff --git a/root-Ignore-warnings-from-uring-IO.patch b/root-Ignore-warnings-from-uring-IO.patch new file mode 100644 index 0000000..6183dff --- /dev/null +++ b/root-Ignore-warnings-from-uring-IO.patch @@ -0,0 +1,64 @@ +From 1c0b441b9e23ac6a0b7b239a9e06b5caa263cf60 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Sat, 7 Jun 2025 16:57:52 +0200 +Subject: [PATCH] Ignore warnings from uring IO + +Tests randomly fail because the uring memory is exhausted. + +Here are some examples: + +[ RUN ] RNTuple.RandomAccess +.../root-6.36.00/core/testsupport/src/TestSupport.cxx:79: Failure +Failed +Received unexpected diagnostic of severity 2000 at 'RIoUring' reading 'io_uring is unexpectedly not available because: +Failed to allocate memory for the smallest possible io_uring instance. 'memlock' memory has been exhausted for this user'. +Suppress those using ROOT/TestSupport.hxx +.../root-6.36.00/core/testsupport/src/TestSupport.cxx:79: Failure +Failed +Received unexpected diagnostic of severity 2000 at 'RRawFileUnix' reading 'io_uring setup failed, falling back to blocking I/O in ReadV'. +Suppress those using ROOT/TestSupport.hxx +[ FAILED ] RNTuple.RandomAccess (20472 ms) + +[ RUN ] RNTupleDSTest.ChainMT +.../root-6.34.08/core/testsupport/src/TestSupport.cxx:79: Failure +Failed +Received unexpected diagnostic of severity 2000 at 'RIoUring' reading 'io_uring is unexpectedly not available because: +Failed to allocate memory for the smallest possible io_uring instance. 'memlock' memory has been exhausted for this user'. +Suppress those using ROOT/TestSupport.hxx +.../root-6.34.08/core/testsupport/src/TestSupport.cxx:79: Failure +Failed +Received unexpected diagnostic of severity 2000 at 'RRawFileUnix' reading 'io_uring setup failed, falling back to blocking I/O in ReadV'. +Suppress those using ROOT/TestSupport.hxx +[ FAILED ] RNTupleDSTest.ChainMT (1004 ms) +--- + core/testsupport/src/TestSupport.cxx | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/core/testsupport/src/TestSupport.cxx b/core/testsupport/src/TestSupport.cxx +index 9889a432f4..c7ee440746 100644 +--- a/core/testsupport/src/TestSupport.cxx ++++ b/core/testsupport/src/TestSupport.cxx +@@ -76,6 +76,20 @@ static struct ForbidDiagnostics { + return; + } + ++ if (level == kWarning ++ && strcmp(location, "RIoUring") == 0 ++ && strcmp(msg, "io_uring is unexpectedly not available because:\nFailed to allocate memory for the smallest possible io_uring instance. 'memlock' memory has been exhausted for this user") == 0) { ++ std::cerr << "Warning in " << location << " " << msg << std::endl; ++ return; ++ } ++ ++ if (level == kWarning ++ && strcmp(location, "RRawFileUnix") == 0 ++ && strcmp(msg, "io_uring setup failed, falling back to blocking I/O in ReadV") == 0) { ++ std::cerr << "Warning in " << location << " " << msg << std::endl; ++ return; ++ } ++ + FAIL() << "Received unexpected diagnostic of severity " + << level + << " at '" << location << "' reading '" << msg << "'.\n" +-- +2.49.0 + diff --git a/root-Save-memory-Do-not-link-to-LLVM-libraries-in-parallel.patch b/root-Save-memory-Do-not-link-to-LLVM-libraries-in-parallel.patch new file mode 100644 index 0000000..875cf05 --- /dev/null +++ b/root-Save-memory-Do-not-link-to-LLVM-libraries-in-parallel.patch @@ -0,0 +1,47 @@ +From e59ece55e4eead85b2b6fd8c6ddc2dfa179f0d09 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Mon, 2 Jun 2025 21:22:39 +0200 +Subject: [PATCH] Save memory. Do not link to LLVM libraries in parallel + +--- + core/clingutils/test/CMakeLists.txt | 3 +++ + interpreter/CppInterOp/unittests/CppInterOp/CMakeLists.txt | 6 ++++++ + 2 files changed, 9 insertions(+) + +diff --git a/core/clingutils/test/CMakeLists.txt b/core/clingutils/test/CMakeLists.txt +index 15cc3ff48a..f62735e972 100644 +--- a/core/clingutils/test/CMakeLists.txt ++++ b/core/clingutils/test/CMakeLists.txt +@@ -31,3 +31,6 @@ if(NOT builtin_clang) + endif() + + ROOT_ADD_UNITTEST_DIR(Core RIO ${CLING_LIBRARIES} $) ++ ++# Save memory. Do not link to LLVM libraries in parallel ++add_dependencies(coreclingutilstestUnit CppInterOpTests) +diff --git a/interpreter/CppInterOp/unittests/CppInterOp/CMakeLists.txt b/interpreter/CppInterOp/unittests/CppInterOp/CMakeLists.txt +index 0ba35053fd..c6440cf301 100644 +--- a/interpreter/CppInterOp/unittests/CppInterOp/CMakeLists.txt ++++ b/interpreter/CppInterOp/unittests/CppInterOp/CMakeLists.txt +@@ -65,6 +65,9 @@ target_link_libraries(CppInterOpTests + clangCppInterOp + ) + ++# Save memory. Do not link to LLVM libraries in parallel ++add_dependencies(CppInterOpTests DynamicLibraryManagerTests) ++ + set_output_directory(CppInterOpTests + BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${EXTRA_PATH_TEST_BINARIES} + LIBRARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${EXTRA_PATH_TEST_BINARIES} +@@ -116,5 +119,8 @@ set_output_directory(DynamicLibraryManagerTests + + add_dependencies(DynamicLibraryManagerTests TestSharedLib) + ++# Save memory. Do not link to LLVM libraries in parallel ++add_dependencies(DynamicLibraryManagerTests Cling) ++ + #export_executable_symbols_for_plugins(TestSharedLib) + add_subdirectory(TestSharedLib) +-- +2.49.0 + diff --git a/root-Update-release-number.patch b/root-Update-release-number.patch new file mode 100644 index 0000000..c9f05cd --- /dev/null +++ b/root-Update-release-number.patch @@ -0,0 +1,25 @@ +From 0ad965c6a2ed651e4a933434735fbe1c6bf32c1c Mon Sep 17 00:00:00 2001 +From: Danilo Piparo +Date: Mon, 26 May 2025 10:05:26 +0200 +Subject: [PATCH] Update release number + +--- + core/foundation/inc/ROOT/RVersion.hxx | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/core/foundation/inc/ROOT/RVersion.hxx b/core/foundation/inc/ROOT/RVersion.hxx +index 365a371b2a..d5a3623747 100644 +--- a/core/foundation/inc/ROOT/RVersion.hxx ++++ b/core/foundation/inc/ROOT/RVersion.hxx +@@ -4,7 +4,7 @@ + /* Update on release: */ + #define ROOT_VERSION_MAJOR 6 + #define ROOT_VERSION_MINOR 36 +-#define ROOT_VERSION_PATCH 00 ++#define ROOT_VERSION_PATCH 0 + #define ROOT_RELEASE_DATE "May 26 2025" + + /* Don't change the lines below. */ +-- +2.49.0 + diff --git a/root-Use-size_t-for-offset.patch b/root-Use-size_t-for-offset.patch new file mode 100644 index 0000000..49d3ab5 --- /dev/null +++ b/root-Use-size_t-for-offset.patch @@ -0,0 +1,60 @@ +From 7bfd27ac478356e7c718b18b5eb3a3b277b833d1 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Tue, 3 Jun 2025 06:49:27 +0200 +Subject: [PATCH] Use size_t for offset + +[ RUN ] VariableReflectionTest.StaticConstExprDatamember +/builddir/build/BUILD/root-6.36.00/interpreter/CppInterOp/unittests/CppInterOp/VariableReflectionTest.cpp:545: Failure +Expected equality of these values: + 3 + *(int*)offset + Which is: 0 +/builddir/build/BUILD/root-6.36.00/interpreter/CppInterOp/unittests/CppInterOp/VariableReflectionTest.cpp:561: Failure +Expected equality of these values: + 5 + *(int*)offset + Which is: 0 +/builddir/build/BUILD/root-6.36.00/interpreter/CppInterOp/unittests/CppInterOp/VariableReflectionTest.cpp:580: Failure +Expected equality of these values: + 2 + *(int*)offset + Which is: 0 +[ FAILED ] VariableReflectionTest.StaticConstExprDatamember (9 ms) +--- + .../unittests/CppInterOp/VariableReflectionTest.cpp | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/interpreter/CppInterOp/unittests/CppInterOp/VariableReflectionTest.cpp b/interpreter/CppInterOp/unittests/CppInterOp/VariableReflectionTest.cpp +index 26dad4f25c..571ae5cd5d 100644 +--- a/interpreter/CppInterOp/unittests/CppInterOp/VariableReflectionTest.cpp ++++ b/interpreter/CppInterOp/unittests/CppInterOp/VariableReflectionTest.cpp +@@ -552,7 +552,7 @@ TEST(VariableReflectionTest, StaticConstExprDatamember) { + EXPECT_EQ(datamembers.size(), 1); + + intptr_t offset = Cpp::GetVariableOffset(datamembers[0]); +- EXPECT_EQ(3, *(int*)offset); ++ EXPECT_EQ(3, *(size_t*)offset); + + ASTContext& C = Interp->getCI()->getASTContext(); + std::vector template_args = { +@@ -568,7 +568,7 @@ TEST(VariableReflectionTest, StaticConstExprDatamember) { + EXPECT_EQ(datamembers.size(), 1); + + offset = Cpp::GetVariableOffset(datamembers[0]); +- EXPECT_EQ(5, *(int*)offset); ++ EXPECT_EQ(5, *(size_t*)offset); + + std::vector ele_template_args = { + {C.IntTy.getAsOpaquePtr()}, {C.FloatTy.getAsOpaquePtr()}}; +@@ -587,7 +587,7 @@ TEST(VariableReflectionTest, StaticConstExprDatamember) { + EXPECT_EQ(datamembers.size(), 1); + + offset = Cpp::GetVariableOffset(datamembers[0]); +- EXPECT_EQ(2, *(int*)offset); ++ EXPECT_EQ(2, *(size_t*)offset); + } + + TEST(VariableReflectionTest, GetEnumConstantDatamembers) { +-- +2.49.0 + diff --git a/root.spec b/root.spec index 7ee247a..c999668 100644 --- a/root.spec +++ b/root.spec @@ -20,8 +20,8 @@ %global pandas 0 %endif -%if %{?rhel}%{!?rhel:0} == 10 -# R not yet available in EPEL 10 +%if "%{?dist}" == ".el10_0" +# R not available in EPEL 10.0 %global rrr 0 %else %global rrr 1 @@ -37,9 +37,9 @@ %global __provides_exclude_from ^%{python3_sitearch}/lib.*\\.so$ Name: root -Version: 6.34.08 +Version: 6.36.00 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 5%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -64,7 +64,7 @@ Source7: JupyROOT-on-EPEL Source8: %{name}-get-src.sh # Clad is a source-transformation automatic differentiation (AD) # library for C++, implemented as a plugin for the Clang compiler -Source9: https://github.com/vgvassilev/clad/archive/v1.7/clad-1.7.tar.gz +Source9: https://github.com/vgvassilev/clad/archive/v1.9/clad-1.9.tar.gz # Use system fonts Patch0: %{name}-fontconfig.patch # Reduce memory usage during linking on ARM and x86 by generating @@ -78,10 +78,24 @@ Patch3: %{name}-no-export-python-modules.patch # Run some test on 32 bit that upstream has disabled Patch4: %{name}-32bit-tests.patch # Adjust test/stressGraphics.ref -# https://github.com/root-project/root/pull/17398 +# https://github.com/root-project/root/pull/18989 Patch5: %{name}-Adjust-test-stressGraphics.ref.patch # Revert test change that breaks the test Patch6: %{name}-Revert-test-Fetch-the-geometries-from-EOS-and-not-fr.patch +# Ignore warnings from uring IO +# https://github.com/root-project/root/pull/18994 +Patch7: %{name}-Ignore-warnings-from-uring-IO.patch +# Preserve memory during parallel build +# https://github.com/root-project/root/pull/18991 +Patch8: %{name}-Save-memory-Do-not-link-to-LLVM-libraries-in-parallel.patch +# Fix Big Endian test failure +# https://github.com/root-project/root/pull/18992 +Patch9: %{name}-Use-size_t-for-offset.patch +# Fix 32 bit test failure +# https://github.com/root-project/root/pull/18993 +Patch10: %{name}-Fix-test-for-32-bit-architectures.patch +# Remove extra 0 in release number +Patch11: %{name}-Update-release-number.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -122,10 +136,6 @@ BuildRequires: libxcrypt-devel BuildRequires: python%{python3_pkgversion}-devel >= 3.7 BuildRequires: python%{python3_pkgversion}-setuptools BuildRequires: python%{python3_pkgversion}-numpy -%ifarch %{qt5_qtwebengine_arches} -BuildRequires: qt5-qtbase-devel -BuildRequires: qt5-qtwebengine-devel -%endif %ifarch %{qt6_qtwebengine_arches} BuildRequires: qt6-qtbase-devel BuildRequires: qt6-qtwebengine-devel @@ -321,6 +331,10 @@ Obsoletes: %{name}-montecarlo-vmc < 6.26.00 Obsoletes: %{name}-doc < 6.26.00 Obsoletes: %{name}-io-gfal < 6.30.00 Obsoletes: %{name}-roofit-common < 6.30.00 +Obsoletes: %{name}-gui-qt5webdisplay < 6.36.00 +Obsoletes: %{name}-hist-draw < 6.36.00 +Obsoletes: %{name}-histv7 < 6.36.00 +Obsoletes: %{name}-html < 6.36.00 %description core This package contains the core libraries used by ROOT: libCore, libNew, @@ -821,16 +835,6 @@ Requires: %{name}-hist%{?_isa} = %{version}-%{release} %description spectrum-painter This package contains a painter of spectra for ROOT. -%package html -Summary: HTML documentation generator for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: graphviz - -%description html -This package contains classes to automatically extract documentation -from marked up sources. - %package io Summary: Input/output of ROOT objects Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1278,7 +1282,6 @@ Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} Requires: %{name}-matrix%{?_isa} = %{version}-%{release} -Requires: %{name}-minuit%{?_isa} = %{version}-%{release} Requires: %{name}-minuit2%{?_isa} = %{version}-%{release} Requires: %{name}-roofit-batchcompute%{?_isa} = %{version}-%{release} %if %{roofitmp} @@ -1388,6 +1391,18 @@ suitable for adoption in different disciplines as well. This package contains the JSON interface to RooFit. +%package roofit-codegen +Summary: Code generation support for RooFit +License: BSD-2-Clause +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-hist-factory%{?_isa} = %{version}-%{release} +Requires: %{name}-roofit%{?_isa} = %{version}-%{release} +Requires: %{name}-roofit-core%{?_isa} = %{version}-%{release} + +%description roofit-codegen +This package contains a library providing classes that implement +code generation support for RooFit. + %if %{roofitmp} %package roofit-multiprocess Summary: Multi-process support for RooFit @@ -1397,7 +1412,7 @@ Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-roofit-zmq%{?_isa} = %{version}-%{release} %description roofit-multiprocess -This package contains a library providing classes that implements +This package contains a library providing classes that implement mult-process support for RooFit. %package roofit-zmq @@ -1432,14 +1447,11 @@ RooFit. %package hist-factory Summary: RooFit PDFs from ROOT histograms Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-io-xmlparser%{?_isa} = %{version}-%{release} Requires: %{name}-roofit%{?_isa} = %{version}-%{release} Requires: %{name}-roofit-core%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit-jsoninterface%{?_isa} = %{version}-%{release} Requires: %{name}-roostats%{?_isa} = %{version}-%{release} %description hist-factory @@ -1747,17 +1759,6 @@ Requires: %{name}-net-http%{?_isa} = %{version}-%{release} %description gui-webdisplay This package contains a web display extension for ROOT. -%ifarch %{qt5_qtwebengine_arches} -%package gui-qt5webdisplay -Summary: Qt5 Web display -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} -Requires: %{name}-net-http%{?_isa} = %{version}-%{release} - -%description gui-qt5webdisplay -This package contains a Qt5 web display extension for ROOT. -%endif - %ifarch %{qt6_qtwebengine_arches} %package gui-qt6webdisplay Summary: Qt6 Web display @@ -1868,7 +1869,6 @@ Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpadv7%{?_isa} = %{version}-%{release} Requires: %{name}-gui-browsable%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-hist-draw%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} Requires: %{name}-tree-ntuple%{?_isa} = %{version}-%{release} # Package split (gui-browsable-v7 from gui-browsable) @@ -1913,21 +1913,6 @@ Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} This package contains a library to show a pop-up dialog when fitting various kinds of data. -%package histv7 -Summary: Histogram library for ROOT (ROOT 7) -Requires: %{name}-core%{?_isa} = %{version}-%{release} - -%description histv7 -This package contains a library for histogramming in ROOT 7. - -%package hist-draw -Summary: Histogram drawing (ROOT 7) -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpadv7%{?_isa} = %{version}-%{release} - -%description hist-draw -This package contains an histogram drawing extension for ROOT 7. - %package tree-ntuple Summary: Ntuple (ROOT 7) Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1958,6 +1943,11 @@ This package contains utility functions for ntuples. %patch -P4 -p1 %patch -P5 -p1 %patch -P6 -p1 +%patch -P7 -p1 +%patch -P8 -p1 +%patch -P9 -p1 +%patch -P10 -p1 +%patch -P11 -p1 # Remove bundled sources in order to be sure they are not used # * afterimage @@ -1994,11 +1984,14 @@ rm -rf js/[^f]* js/files/draw.htm js/files/online.htm rm etc/notebook/JsMVA/js/*.min.js rm etc/notebook/JsMVA/css/*.min.css +# Remove executable permissions from source file +chmod -x interpreter/CppInterOp/lib/Interpreter/CppInterOp.cpp + # Additional documentation install -p -m 644 %{SOURCE7} bindings/jupyroot %build -%if %{?fedora}%{!?fedora:0} == 40 || %{?rhel}%{!?rhel:0} == 10 +%if %{?rhel}%{!?rhel:0} == 10 # This package triggers a fault in LLVM when LTO is enabled. Until LLVM # is analyzed and fixed, disable LTO %define _lto_cflags %{nil} @@ -2032,10 +2025,12 @@ done -Dbuiltin_fftw3:BOOL=OFF \ -Dbuiltin_freetype:BOOL=OFF \ -Dbuiltin_ftgl:BOOL=OFF \ + -Dbuiltin_gif:BOOL=OFF \ -Dbuiltin_gl2ps:BOOL=OFF \ -Dbuiltin_glew:BOOL=OFF \ -Dbuiltin_gsl:BOOL=OFF \ -Dbuiltin_gtest:BOOL=OFF \ + -Dbuiltin_jpeg:BOOL=OFF \ -Dbuiltin_llvm:BOOL=ON \ -Dbuiltin_lz4:BOOL=OFF \ -Dbuiltin_lzma:BOOL=OFF \ @@ -2047,6 +2042,7 @@ done -Dbuiltin_openssl:BOOL=OFF \ -Dbuiltin_openui5:BOOL=ON \ -Dbuiltin_pcre:BOOL=OFF \ + -Dbuiltin_png:BOOL=OFF \ -Dbuiltin_tbb:BOOL=OFF \ -Dbuiltin_unuran:BOOL=OFF \ -Dbuiltin_vc:BOOL=OFF \ @@ -2063,11 +2059,12 @@ done -Darrow:BOOL=OFF \ %endif -Dasimage:BOOL=ON \ + -Dasimage_tiff:BOOL=ON \ -Dccache:BOOL=OFF \ -Ddistcc:BOOL=OFF \ -Dcefweb:BOOL=OFF \ -Dclad:BOOL=ON \ - -DCLAD_SOURCE_DIR:PATH=${PWD}/clad-1.7 \ + -DCLAD_SOURCE_DIR:PATH=${PWD}/clad-1.9 \ -Dcocoa:BOOL=OFF \ -Dcuda:BOOL=OFF \ -Ddaos:BOOL=OFF \ @@ -2088,7 +2085,6 @@ done -Dgeom:BOOL=ON \ -Dgeombuilder:BOOL=ON \ -Dgviz:BOOL=ON \ - -Dhtml:BOOL=ON \ -Dhttp:BOOL=ON \ -Dimt:BOOL=ON \ -Dlibcxx:BOOL=OFF \ @@ -2104,11 +2100,6 @@ done -Dproof:BOOL=ON \ -Dpyroot:BOOL=ON \ -Dpythia8:BOOL=ON \ -%ifarch %{qt5_qtwebengine_arches} - -Dqt5web:BOOL=ON \ -%else - -Dqt5web:BOOL=OFF \ -%endif %ifarch %{qt6_qtwebengine_arches} -Dqt6web:BOOL=ON \ %else @@ -2277,8 +2268,10 @@ jupyter notebook "\$@" EOF # Avoid /usr/bin/env shebangs (and adapt cli to cmdLineUtils location) -sed -e 's!/usr/bin/env bash!/bin/bash!' -i %{buildroot}%{_bindir}/root-config -sed -e 's!/usr/bin/env /usr/bin/python.*!%{__python3}!' \ +sed -e 's!/usr/bin/env bash!/bin/bash!' \ + -i %{buildroot}%{_bindir}/root-config \ + %{buildroot}%{_bindir}/rootssh +sed -e 's!/usr/bin/env python3!%{__python3}!' \ -e '/import sys/d' \ -e '/import cmdLineUtils/iimport sys' \ -e '/import cmdLineUtils/isys.path.insert(0, "%{_datadir}/%{name}/cli")' \ @@ -2291,17 +2284,10 @@ sed -e 's!/usr/bin/env /usr/bin/python.*!%{__python3}!' \ %{buildroot}%{_bindir}/rootprint \ %{buildroot}%{_bindir}/rootrm \ %{buildroot}%{_bindir}/rootslimtree -sed -e 's!/usr/bin/env /usr/bin/python.*!%{__python3}!' \ +sed -e 's!/usr/bin/env python3!%{__python3}!' \ -i %{buildroot}%{_bindir}/rootdrawtree sed -e 's!/usr/bin/env python!%{__python3}!' \ - -i %{buildroot}%{_datadir}/%{name}/dictpch/makepch.py \ - %{buildroot}%{_pkgdocdir}/tutorials/histfactory/makeQuickModel.py \ - %{buildroot}%{_pkgdocdir}/tutorials/tmva/keras/ApplicationClassificationKeras.py \ - %{buildroot}%{_pkgdocdir}/tutorials/tmva/keras/ApplicationRegressionKeras.py \ - %{buildroot}%{_pkgdocdir}/tutorials/tmva/keras/ClassificationKeras.py \ - %{buildroot}%{_pkgdocdir}/tutorials/tmva/keras/GenerateModel.py \ - %{buildroot}%{_pkgdocdir}/tutorials/tmva/keras/MulticlassKeras.py \ - %{buildroot}%{_pkgdocdir}/tutorials/tmva/keras/RegressionKeras.py + -i %{buildroot}%{_datadir}/%{name}/dictpch/makepch.py sed -e 's!/usr/bin/python!%{__python3}!' \ -i %{buildroot}%{_datadir}/%{name}/pdg_table_update.py @@ -2313,6 +2299,11 @@ rm %{buildroot}%{_bindir}/setxrd* rm %{buildroot}%{_bindir}/thisroot* rm %{buildroot}%{_pkgdocdir}/INSTALL rm %{buildroot}%{_pkgdocdir}/README.CXXMODULES.md +rm -rf %{buildroot}%{_includedir}/clang +rm -rf %{buildroot}%{_includedir}/clang-c +rm -rf %{buildroot}/usr/lib/cmake/CppInterOp +rm %{buildroot}/usr/lib/libclangCppInterOp.a +rm -rf %{buildroot}%{_datadir}/%{name}/html # Only used on Windows rm %{buildroot}%{_datadir}/%{name}/macros/fileopen.C @@ -2395,54 +2386,47 @@ popd # - test-stressIOPlugins-* # requires network access (by design since they test the remote file IO) # -# - tutorial-dataframe-df101_h1Analysis -# - tutorial-tree-run_h1analysis -# - tutorial-multicore-imt001_parBranchProcessing -# - tutorial-multicore-mp103_processSelector -# - tutorial-multicore-mp104_processH1 -# - tutorial-multicore-mp105_processEntryList +# - tutorial-analysis-dataframe-df101_h1Analysis +# - tutorial-analysis-tree-run_h1analysis +# - tutorial-legacy-multicore-mp104_processH1 # requires network access: http://root.cern.ch/files/h1/ # -# - tutorial-multicore-imt101_parTreeProcessing +# - tutorial-io-tree-imt_parTreeProcessing # requires input data: http://root.cern.ch/files/tp_process_imt.root (707 MB) # -# - tutorial-dataframe-df###_SQlite* +# - tutorial-analysis-dataframe-df###_SQlite* # reads sqlite data over network: # http://root.cern.ch/files/root_download_stats.sqlite # -# - tutorial-dataframe-df033_Describe-py -# - tutorial-dataframe-df102_NanoAODDimuonAnalysis(-py)? +# - tutorial-analysis-dataframe-df033_Describe-py +# - tutorial-analysis-dataframe-df102_NanoAODDimuonAnalysis(-py)? # reads input data over network: # root://eospublic.cern.ch//eos/opendata/cms/derived-data/ # AOD2NanoAODOutreachTool/Run2012BC_DoubleMuParked_Muons.root # # - gtest-tree-treeplayer-treeprocessormt-remotefiles -# - tutorial-dataframe-df103_NanoAODHiggsAnalysis(-py)? +# - tutorial-analysis-dataframe-df103_NanoAODHiggsAnalysis(-py)? # reads input data over network: # root://eospublic.cern.ch//eos/root-eos/cms_opendata_2012_nanoaod/ # -# - tutorial-dataframe-df104_HiggsToTwoPhotons-py -# - tutorial-dataframe-df105_WBosonAnalysis-py -# - tutorial-dataframe-df106_HiggsToFourLeptons(-py) -# - tutorial-dataframe-df107_SingleTopAnalysis-py -# - tutorial-rcanvas-df104-py -# - tutorial-rcanvas-df105-py +# - tutorial-analysis-dataframe-df104_HiggsToTwoPhotons-py +# - tutorial-analysis-dataframe-df105_WBosonAnalysis-py +# - tutorial-analysis-dataframe-df106_HiggsToFourLeptons(-py) +# - tutorial-analysis-dataframe-df107_SingleTopAnalysis-py +# - tutorial-experimental-rcanvas-df104-py +# - tutorial-experimental-rcanvas-df105-py # reads input data over network: # root://eospublic.cern.ch//eos/opendata/atlas/OutreachDatasets/2020-01-22/ # -# - tutorial-v7-ntuple-ntpl003_lhcbOpenData -# reads input data over network -# http://root.cern.ch/files/LHCb/lhcb_B2HHH_MagnetUp.root (425 MB) -# -# - tutorial-v7-ntuple-ntpl004_dimuon +# - tutorial-io-ntuple-ntpl004_dimuon # reads input data over network # http://root.cern.ch/files/NanoAOD_DoubleMuon_CMS2011OpenData.root (1.5 GB) # -# - tutorial-v7-ntuple-ntpl008_import +# - tutorial-io-ntuple-ntpl008_import # reads input data over network # http://root.cern.ch/files/HiggsTauTauReduced/GluGluToHToTauTau.root (20 MB) # -# - tutorial-v7-ntuple-ntpl011_global_temperatures +# - tutorial-io-ntuple-ntpl011_global_temperatures # reads input data over network # http://root.cern.ch/files/tutorials/GlobalLandTemperaturesByCity.csv # @@ -2455,67 +2439,41 @@ popd # root://eospublic.cern.ch/eos/root-eos/xrootd.test # # - gtest-net-netxng-TNetXNGFileTest +# - tutorial-analysis-parallel-mp_processSelector # reads input file over network # root://eospublic.cern.ch/eos/root-eos/h1/dstarmb.root # -# - gtest-tmva-tmva-rreader -# - gtest-tmva-tmva-rstandardscaler -# - tutorial-tmva-tmva003_RReader -# - tutorial-tmva-tmva004_RStandardScaler -# reads input data over network -# http://root.cern.ch/files/tmva_class_example.root -# # - tutorial-tmva-tmva103_Application # reads input data over network -# http://root.cern/files/tmva101.root -# -# - tutorial-tmva-RBatchGenerator_NumPy-py -# reads input data over network -# http://root.cern/files/Higgs_data.root -# -# - test-import-numba -# - tutorial-pyroot-pyroot004_NumbaDeclare-py -# - pyunittests-pyroot-numbadeclare -# these tests require the numba python module which is not available +# root://eospublic.cern.ch/eos/root-eos/cms_opendata_2012_nanoaod/SMHiggsToZZTo4L.root # # - test-webgui-ping # error: Cannot display window in native excluded="\ test-stressIOPlugins|\ -tutorial-dataframe-df101_h1Analysis|\ -tutorial-tree-run_h1analysis|\ -tutorial-multicore-imt001_parBranchProcessing|\ -tutorial-multicore-mp103_processSelector|\ -tutorial-multicore-mp104_processH1|\ -tutorial-multicore-mp105_processEntryList|\ -tutorial-multicore-imt101_parTreeProcessing|\ -tutorial-dataframe-df..._SQlite|\ -tutorial-dataframe-df033_Describe-py|\ -tutorial-dataframe-df102_NanoAODDimuonAnalysis|\ +tutorial-analysis-dataframe-df101_h1Analysis|\ +tutorial-analysis-tree-run_h1analysis|\ +tutorial-legacy-multicore-mp104_processH1|\ +tutorial-io-tree-imt_parTreeProcessing|\ +tutorial-analysis-dataframe-df..._SQlite|\ +tutorial-analysis-dataframe-df033_Describe-py|\ +tutorial-analysis-dataframe-df102_NanoAODDimuonAnalysis|\ gtest-tree-treeplayer-treeprocessormt-remotefiles|\ -tutorial-dataframe-df103_NanoAODHiggsAnalysis|\ -tutorial-dataframe-df104_HiggsToTwoPhotons-py|\ -tutorial-dataframe-df105_WBosonAnalysis-py|\ -tutorial-dataframe-df106_HiggsToFourLeptons|\ -tutorial-dataframe-df107_SingleTopAnalysis-py|\ -tutorial-rcanvas-df104-py|\ -tutorial-rcanvas-df105-py|\ -tutorial-v7-ntuple-ntpl003_lhcbOpenData|\ -tutorial-v7-ntuple-ntpl004_dimuon|\ -tutorial-v7-ntuple-ntpl008_import|\ -tutorial-v7-ntuple-ntpl011_global_temperatures|\ +tutorial-analysis-dataframe-df103_NanoAODHiggsAnalysis|\ +tutorial-analysis-dataframe-df104_HiggsToTwoPhotons-py|\ +tutorial-analysis-dataframe-df105_WBosonAnalysis-py|\ +tutorial-analysis-dataframe-df106_HiggsToFourLeptons|\ +tutorial-analysis-dataframe-df107_SingleTopAnalysis-py|\ +tutorial-experimental-rcanvas-df104-py|\ +tutorial-experimental-rcanvas-df105-py|\ +tutorial-io-ntuple-ntpl004_dimuon|\ +tutorial-io-ntuple-ntpl008_import|\ +tutorial-io-ntuple-ntpl011_global_temperatures|\ gtest-net-davix-RRawFileDavix|\ gtest-net-netxng-RRawFileNetXNG|\ gtest-net-netxng-TNetXNGFileTest|\ -gtest-tmva-tmva-rreader|\ -gtest-tmva-tmva-rstandardscaler|\ -tutorial-tmva-tmva003_RReader|\ -tutorial-tmva-tmva004_RStandardScaler|\ +tutorial-analysis-parallel-mp_processSelector|\ tutorial-tmva-tmva103_Application|\ -tutorial-tmva-RBatchGenerator_NumPy-py|\ -test-import-numba|\ -tutorial-pyroot-pyroot004_NumbaDeclare-py|\ -pyunittests-pyroot-numbadeclare|\ test-webgui-ping" # gtest-roofit-roofit-vectorisedPDFs-testLandau: @@ -2532,61 +2490,50 @@ test-webgui-ping" # test-stressgraphics-firefox-skip3d: # requires firefox... # -# tutorial-webcanv-fonts_ttf.cxx: +# tutorial-visualisation-webcanv-fonts_ttf.cxx: # Requires web graphics -# -# tutorial-roofit-rf617_simulation_based_inference_multidimensional-py: -# from sklearn.neural_network import MLPClassifier -# -# tutorial-roofit-rf618_mixture_models-py: -# import xgboost as xgb excluded="${excluded}|\ gtest-roofit-roofit-vectorisedPDFs-testLandau|\ gtest-tree-treeplayer-ttreeindex-clone|\ gtest-tree-treeplayer-treetreeplayertestUnit|\ test-stressgraphics-firefox-skip3d|\ -tutorial-webcanv-fonts_ttf.cxx|\ -tutorial-roofit-rf617_simulation_based_inference_multidimensional-py|\ -tutorial-roofit-rf618_mixture_models-py" - -# Test using tensorflow and torch -# Disabled for Python >= 3.12, but must be excluded for Python < 3.12 -excluded="${excluded}|\ -pyunittests-bindings-pyroot-pythonizations-batchgen|\ -test-import-tensorflow|\ -test-import-torch" - -%if ! %{pandas} -# - test-import-pandas -# - tutorial-dataframe-df026_AsNumpyArrays-py -# - tutorial-dataframe-df035_RDFFromPandas-py -# - tutorial-roofit-rf409_NumPyPandasToRooFit-py -# Requires the pandas python module not (yet) available in RHEL/EPEL 9 -excluded="${excluded}|\ -test-import-pandas|\ -tutorial-dataframe-df026_AsNumpyArrays-py|\ -tutorial-dataframe-df035_RDFFromPandas-py|\ -tutorial-roofit-rf409_NumPyPandasToRooFit-py" -%endif +tutorial-visualisation-webcanv-fonts_ttf.cxx" %ifarch %{ix86} # - gtest-tree-dataframe-dataframe-concurrency # "There's already an active task arena." +# +# - gtest-hist-hist-TFormulaGradientTests|\ +# out of memory +# +# - pyunittests-bindings-pyroot-pythonizations-pyroot-array-numpy-views +# ValueError: buffer is smaller than requested size excluded="${excluded}|\ -gtest-tree-dataframe-dataframe-concurrency" +gtest-tree-dataframe-dataframe-concurrency|\ +gtest-hist-hist-TFormulaGradientTests|\ +pyunittests-bindings-pyroot-pythonizations-pyroot-array-numpy-views" %endif %ifarch %{power64} -# - tutorial-roostats-IntervalExamples-py +# - tutorial-roofit-roostats-IntervalExamples-py # *** Break *** segmentation violation excluded="${excluded}|\ -tutorial-roostats-IntervalExamples-py" +tutorial-roofit-roostats-IntervalExamples-py" %if %{?fedora}%{!?fedora:0} >= 42 -# - gtest-tree-ntuple-v7-ntuple-evolution +# - gtest-tree-ntuple-ntuple-emulated +# - gtest-tree-ntuple-ntuple-evolution # waitpid() failed excluded="${excluded}|\ -gtest-tree-ntuple-v7-ntuple-evolution" +gtest-tree-ntuple-ntuple-emulated|\ +gtest-tree-ntuple-ntuple-evolution" +%endif + +%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 10 +# tutorial-roofit-roostats-StandardBayesianMCMCDemo-py +# - ZeroDivisionError: float division by zero +excluded="${excluded}|\ +tutorial-roofit-roostats-StandardBayesianMCMCDemo-py" %endif %endif @@ -2602,49 +2549,47 @@ gtest-roofit-roofitcore-testLikelihoodGradientJob" # - gtest-tmva-sofie-TestCustomModelsFromONNX # - gtest-tree-dataframe-dataframe-unified-constructor # -# - gtest-tree-dataframe-datasource-ntuple -# - gtest-tree-ntuple-v7-ntuple-basics -# - gtest-tree-ntuple-v7-ntuple-bulk -# - gtest-tree-ntuple-v7-ntuple-cast -# - gtest-tree-ntuple-v7-ntuple-compat -# - gtest-tree-ntuple-v7-ntuple-extended -# - gtest-tree-ntuple-v7-ntuple-friends -# - gtest-tree-ntuple-v7-ntuple-index -# - gtest-tree-ntuple-v7-ntuple-merger -# - gtest-tree-ntuple-v7-ntuple-model -# - gtest-tree-ntuple-v7-ntuple-modelext -# - gtest-tree-ntuple-v7-ntuple-multi-column -# - gtest-tree-ntuple-v7-ntuple-packing -# - gtest-tree-ntuple-v7-ntuple-parallel-writer -# - gtest-tree-ntuple-v7-ntuple-processor -# - gtest-tree-ntuple-v7-ntuple-project -# - gtest-tree-ntuple-v7-ntuple-show -# - gtest-tree-ntuple-v7-ntuple-storage -# - gtest-tree-ntuple-v7-ntuple-storage-daos -# - gtest-tree-ntuple-v7-ntuple-types -# - gtest-tree-ntuple-v7-ntuple-view -# - gtest-tree-ntuple-v7-rfield-class -# - gtest-tree-ntuple-v7-rfield-streamer -# - gtest-tree-ntuple-v7-rfield-variant -# - gtest-tree-ntuple-v7-rfield-vector +# - gtest-tree-ntuple-ntuple-basics +# - gtest-tree-ntuple-ntuple-bulk +# - gtest-tree-ntuple-ntuple-cast +# - gtest-tree-ntuple-ntuple-compat +# - gtest-tree-ntuple-ntuple-extended +# - gtest-tree-ntuple-ntuple-join-table +# - gtest-tree-ntuple-ntuple-largefile2 +# - gtest-tree-ntuple-ntuple-merger +# - gtest-tree-ntuple-ntuple-model +# - gtest-tree-ntuple-ntuple-modelext +# - gtest-tree-ntuple-ntuple-multi-column +# - gtest-tree-ntuple-ntuple-packing +# - gtest-tree-ntuple-ntuple-parallel-writer +# - gtest-tree-ntuple-ntuple-processor +# - gtest-tree-ntuple-ntuple-processor-chain +# - gtest-tree-ntuple-ntuple-processor-join +# - gtest-tree-ntuple-ntuple-project +# - gtest-tree-ntuple-ntuple-show +# - gtest-tree-ntuple-ntuple-storage +# - gtest-tree-ntuple-ntuple-storage-daos +# - gtest-tree-ntuple-ntuple-types +# - gtest-tree-ntuple-ntuple-view +# - gtest-tree-ntuple-rfield-class +# - gtest-tree-ntuple-rfield-streamer +# - gtest-tree-ntuple-rfield-variant +# - gtest-tree-ntuple-rfield-vector # - gtest-tree-ntupleutil-v7-ntuple-importer # - gtest-tree-ntupleutil-v7-ntuple-inspector # https://github.com/root-project/root/issues/12426 # -# - pyunittests-bindings-experimental-distrdf-backend-distrdf-unit-backend-graph-caching +# - pyunittests-bindings-distrdf-backend-distrdf-unit-backend-graph-caching # - pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-rtensor # - pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-stl-vector -# - tutorial-dataframe-df006_ranges-py -# - tutorial-fit-combinedFit-py -# - tutorial-fit-NumericalMinimization-py +# - tutorial-analysis-dataframe-df006_ranges-py +# - tutorial-experimental-rcanvas-rbox-py +# - tutorial-hist-hist007_TH1_liveupdate-py # - tutorial-math-exampleFunction-py -# - tutorial-pyroot-hsum-py -# - tutorial-rcanvas-rbox-py +# - tutorial-math-fit-combinedFit-py +# - tutorial-math-fit-NumericalMinimization-py # https://github.com/root-project/root/issues/12429 # -# - tutorial-tree-drawsparse -# https://github.com/root-project/root/issues/12431 -# # - test-stresshistofit # - test-stresshistofit-interpreted # - test-stresshistogram @@ -2652,60 +2597,84 @@ gtest-roofit-roofitcore-testLikelihoodGradientJob" excluded="${excluded}|\ gtest-core-dictgen-dictgen-base|\ gtest-tmva-sofie-TestCustomModelsFromONNX|\ +gtest-tree-dataframe-dataframe-snapshot-ntuple|\ gtest-tree-dataframe-dataframe-unified-constructor|\ gtest-tree-dataframe-datasource-ntuple|\ -gtest-tree-ntuple-v7-ntuple-basics|\ -gtest-tree-ntuple-v7-ntuple-bulk|\ -gtest-tree-ntuple-v7-ntuple-cast|\ -gtest-tree-ntuple-v7-ntuple-compat|\ -gtest-tree-ntuple-v7-ntuple-extended|\ -gtest-tree-ntuple-v7-ntuple-friends|\ -gtest-tree-ntuple-v7-ntuple-index|\ -gtest-tree-ntuple-v7-ntuple-merger|\ -gtest-tree-ntuple-v7-ntuple-model\$\$|\ -gtest-tree-ntuple-v7-ntuple-modelext|\ -gtest-tree-ntuple-v7-ntuple-multi-column|\ -gtest-tree-ntuple-v7-ntuple-packing|\ -gtest-tree-ntuple-v7-ntuple-parallel-writer|\ -gtest-tree-ntuple-v7-ntuple-processor|\ -gtest-tree-ntuple-v7-ntuple-project|\ -gtest-tree-ntuple-v7-ntuple-show|\ -gtest-tree-ntuple-v7-ntuple-storage\$\$|\ -gtest-tree-ntuple-v7-ntuple-storage-daos|\ -gtest-tree-ntuple-v7-ntuple-types|\ -gtest-tree-ntuple-v7-ntuple-view|\ -gtest-tree-ntuple-v7-rfield-class|\ -gtest-tree-ntuple-v7-rfield-streamer|\ -gtest-tree-ntuple-v7-rfield-variant|\ -gtest-tree-ntuple-v7-rfield-vector|\ +gtest-tree-ntuple-ntuple-basics|\ +gtest-tree-ntuple-ntuple-bulk|\ +gtest-tree-ntuple-ntuple-cast|\ +gtest-tree-ntuple-ntuple-compat|\ +gtest-tree-ntuple-ntuple-extended|\ +gtest-tree-ntuple-ntuple-join-table|\ +gtest-tree-ntuple-ntuple-largefile2|\ +gtest-tree-ntuple-ntuple-merger|\ +gtest-tree-ntuple-ntuple-model\$\$|\ +gtest-tree-ntuple-ntuple-modelext|\ +gtest-tree-ntuple-ntuple-multi-column|\ +gtest-tree-ntuple-ntuple-packing|\ +gtest-tree-ntuple-ntuple-parallel-writer|\ +gtest-tree-ntuple-ntuple-processor\$\$|\ +gtest-tree-ntuple-ntuple-processor-chain|\ +gtest-tree-ntuple-ntuple-processor-join|\ +gtest-tree-ntuple-ntuple-project|\ +gtest-tree-ntuple-ntuple-show|\ +gtest-tree-ntuple-ntuple-storage\$\$|\ +gtest-tree-ntuple-ntuple-storage-daos|\ +gtest-tree-ntuple-ntuple-types|\ +gtest-tree-ntuple-ntuple-view|\ +gtest-tree-ntuple-rfield-class|\ +gtest-tree-ntuple-rfield-streamer|\ +gtest-tree-ntuple-rfield-variant|\ +gtest-tree-ntuple-rfield-vector|\ gtest-tree-ntupleutil-v7-ntuple-importer|\ gtest-tree-ntupleutil-v7-ntuple-inspector|\ -pyunittests-bindings-experimental-distrdf-backend-distrdf-unit-backend-graph-caching|\ +pyunittests-bindings-distrdf-backend-distrdf-unit-backend-graph-caching|\ pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-rtensor|\ pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-stl-vector|\ -tutorial-dataframe-df006_ranges-py|\ -tutorial-fit-combinedFit-py|\ -tutorial-fit-NumericalMinimization-py|\ +tutorial-analysis-dataframe-df006_ranges-py|\ +tutorial-experimental-rcanvas-rbox-py|\ +tutorial-hist-hist007_TH1_liveupdate-py|\ tutorial-math-exampleFunction-py|\ -tutorial-pyroot-hsum-py|\ -tutorial-rcanvas-rbox-py|\ -tutorial-tree-drawsparse|\ +tutorial-math-fit-combinedFit-py|\ +tutorial-math-fit-NumericalMinimization-py|\ test-stresshistofit\$\$|\ test-stresshistofit-interpreted|\ test-stresshistogram\$\$|\ test-stresshistogram-interpreted" %endif -%if %{?fedora}%{!?fedora:0} >= 40 || %{?rhel}%{!?rhel:0} >= 10 # Fails with gcc 14 on aarch64, ppc64le and s390x (on EPEL 10 also x86_64) # https://github.com/root-project/root/issues/14446 # - gtest-math-matrix-testMatrixTSparse +%if %{?fedora}%{!?fedora:0} >= 40 +%ifarch aarch64 %{power64} s390x +excluded="${excluded}|\ +gtest-math-matrix-testMatrixTSparse" +%endif +%endif +%if %{?rhel}%{!?rhel:0} >= 10 excluded="${excluded}|\ gtest-math-matrix-testMatrixTSparse" %endif +%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 10 +# - https://github.com/root-project/root/issues/18995 +excluded="${excluded}|\ +gtest-tree-tree-testTTreeRegressions" +%endif + +%if %{?fedora}%{!?fedora:0} >= 43 +# Failures due to reference counting changes in Python 3.14 +# - https://github.com/root-project/root/issues/18988 +# - https://docs.python.org/3.14/whatsnew/3.14.html +excluded="${excluded}|\ +pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-rdataframe-makenumpy|\ +pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-rvec-asrvec" +%endif + # Filter out parts of tests that require remote network access # RNTuple.StdAtomic fails on ix86 (different alignment 64 bit (non)atomic) +# InterpreterTest.Evaluate fails on s390x # TClingDataMemberInfo.Offset fails on s390x # https://github.com/root-project/root/issues/14512 GTEST_FILTER=-\ @@ -2713,6 +2682,7 @@ GTEST_FILTER=-\ RNTuple.StdAtomic:\ %endif %ifarch s390x +InterpreterTest.Evaluate:\ TClingDataMemberInfo.Offset:\ %endif RCsvDS.Remote:\ @@ -3103,11 +3073,6 @@ fi %{_libdir}/%{name}/libSpectrumPainter.* %{_libdir}/%{name}/libSpectrumPainter_rdict.pcm -%files html -f includelist-html -%{_libdir}/%{name}/libHtml.* -%{_libdir}/%{name}/libHtml_rdict.pcm -%{_datadir}/%{name}/html - %files io -f includelist-io-io %{_libdir}/%{name}/libRIO.* %{_datadir}/%{name}/plugins/TArchiveFile/P010_TZIPFile.C @@ -3195,8 +3160,6 @@ fi %{_libdir}/%{name}/libMinuit2_rdict.pcm %dir %{_includedir}/%{name}/Minuit2 %{_datadir}/%{name}/plugins/ROOT@@Math@@Minimizer/P010_Minuit2Minimizer.C -%{_datadir}/%{name}/plugins/TVirtualFitter/P030_TFitterMinuit.C -%{_datadir}/%{name}/plugins/TVirtualFitter/P040_TFitterFumili.C %files mlp -f includelist-math-mlp %{_libdir}/%{name}/libMLP.* @@ -3364,14 +3327,16 @@ fi %{_libdir}/%{name}/libRooFitHS3.* %{_libdir}/%{name}/libRooFitHS3_rdict.pcm %dir %{_includedir}/%{name}/RooFitHS3 -%{_datadir}/%{name}/RooFitHS3_wsexportkeys.json -%{_datadir}/%{name}/RooFitHS3_wsfactoryexpressions.json %files roofit-jsoninterface -f includelist-roofit-jsoninterface %{_libdir}/%{name}/libRooFitJSONInterface.* %{_libdir}/%{name}/libRooFitJSONInterface_rdict.pcm %dir %{_includedir}/%{name}/RooFit +%files roofit-codegen -f includelist-roofit-codegen +%{_libdir}/%{name}/libRooFitCodegen.* +%{_libdir}/%{name}/libRooFitCodegen_rdict.pcm + %if %{roofitmp} %files roofit-multiprocess -f includelist-roofit-multiprocess %{_libdir}/%{name}/libRooFitMultiProcess.* @@ -3538,11 +3503,6 @@ fi %{_datadir}/%{name}/runfirefox.sh %{_datadir}/%{name}/ui5 -%ifarch %{qt5_qtwebengine_arches} -%files gui-qt5webdisplay -%{_libdir}/%{name}/libROOTQt5WebDisplay.* -%endif - %ifarch %{qt6_qtwebengine_arches} %files gui-qt6webdisplay %{_libdir}/%{name}/libROOTQt6WebDisplay.* @@ -3590,7 +3550,6 @@ fi %{_libdir}/%{name}/libROOTEve_rdict.pcm %files gui-browsable-v7 -%{_libdir}/%{name}/libROOTHistDrawProvider.* %{_libdir}/%{name}/libROOTLeafDraw7Provider.* %{_libdir}/%{name}/libROOTNTupleBrowseProvider.* %{_libdir}/%{name}/libROOTNTupleDraw6Provider.* @@ -3607,14 +3566,6 @@ fi %{_libdir}/%{name}/libROOTFitPanelv7.* %{_libdir}/%{name}/libROOTFitPanelv7_rdict.pcm -%files histv7 -f includelist-hist-histv7 -%{_libdir}/%{name}/libROOTHist.* -%{_libdir}/%{name}/libROOTHist_rdict.pcm - -%files hist-draw -f includelist-hist-histdrawv7 -%{_libdir}/%{name}/libROOTHistDraw.* -%{_libdir}/%{name}/libROOTHistDraw_rdict.pcm - %files tree-ntuple -f includelist-tree-ntuple %{_libdir}/%{name}/libROOTNTuple.* %{_libdir}/%{name}/libROOTNTuple_rdict.pcm @@ -3626,6 +3577,12 @@ fi %endif %changelog +* Sat Jun 07 2025 Mattias Ellert - 6.36.00-1 +- Update to 6.36.00 +- Enable the R interface for EPEL 10.1 +- Removed subpackages: root-gui-qt5webdisplay, -hist-draw, -histv7 and -html +- New subpackage: root-roofit-codegen + * Tue Jun 03 2025 Python Maint - 6.34.08-5 - Rebuilt for Python 3.14 diff --git a/sources b/sources index 99610a2..a6bdda4 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (root-6.34.08.tar.xz) = 58699d441555a82f9c2d00fc33719786bc5e4925060122f5e7fb46df28feec1d4047987b4badb20b19c484b13229b173bd110d25b1f3d426d70039847d879299 +SHA512 (root-6.36.00.tar.xz) = 2030961b001494a177b96540711940bb8f11fbcf624edfe3282bd7c2c0ad1ef60ed6a5cac9799dfae0d40f21f33728e6ab906f3da95589412dee592aebfbf4f4 SHA512 (root-testfiles.tar.xz) = 4bb7f8ca00b1427ba49f6428e9cfe5908a2ffdd2ce4134d3bc169a0629198352b5500fe0cf92c121d148e5af41f7016c96038a77794a4d37d94e6ec0a9d75670 -SHA512 (clad-1.7.tar.gz) = ff9856ed4901625b4c31bc4b5ac97f464667f58c567caaab8b2a2567de4e0908ff0fffbb566fe728fc6184d3d6bc156bbabacf24d83009e36b2956d535171066 +SHA512 (clad-1.9.tar.gz) = df0569f12e3381e9285639eee927d9effb2812765caad2d281c41f6673828ab28b7bf8143ae9686090649cf889e757cfead58baa47e907de468185125a4d772c From 0afdff9faefb7bec445e963dd6ce46b4fd90db27 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sat, 21 Jun 2025 05:38:04 +0200 Subject: [PATCH 20/41] Add root-tree-ntuple and root-tree-ntuple-utils dependensies to root-core (listed in root-config --libs) Rename root-fonts package to root-font-files Add optional test dependency python3-pandas now available in EPEL 10 Add dependency jupyter-notebook to root-jupyroot for EPEL 10.1 and later Fix Python 3.14 refcount issues in tests --- root-Fix-test-for-32-bit-architectures.patch | 24 +++--- root-Ignore-warnings-from-uring-IO.patch | 30 ++++---- ...ference-refcount-values-for-Python-3.patch | 66 ++++++++++++++++ ...erence-refcount-values-for-Python-3x.patch | 44 +++++++++++ root.spec | 77 +++++++++++-------- 5 files changed, 181 insertions(+), 60 deletions(-) create mode 100644 root-Python-Update-reference-refcount-values-for-Python-3.patch create mode 100644 root-Python-Update-reference-refcount-values-for-Python-3x.patch diff --git a/root-Fix-test-for-32-bit-architectures.patch b/root-Fix-test-for-32-bit-architectures.patch index 5da0477..879e3df 100644 --- a/root-Fix-test-for-32-bit-architectures.patch +++ b/root-Fix-test-for-32-bit-architectures.patch @@ -1,6 +1,6 @@ -From 9efe32d0f0e89624d7cf5efeca9cf151d9d0b220 Mon Sep 17 00:00:00 2001 +From 8f08aac1c5d356352d2bd24b05dcdd092d3ca864 Mon Sep 17 00:00:00 2001 From: Mattias Ellert -Date: Tue, 3 Jun 2025 19:57:31 +0200 +Date: Thu, 19 Jun 2025 13:28:24 +0200 Subject: [PATCH] Fix test for 32 bit architectures [ RUN ] TypeReflectionTest.GetSizeOfType @@ -20,33 +20,35 @@ Expected equality of these values: Which is: 16 [ FAILED ] ScopeReflectionTest.SizeOf (26 ms) --- - .../CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp | 2 +- - .../CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) + .../CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp | 3 ++- + .../CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp | 3 ++- + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/interpreter/CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp b/interpreter/CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp -index 0b39080859..14122c6498 100644 +index 0b39080859..d490d0833c 100644 --- a/interpreter/CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp +++ b/interpreter/CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp -@@ -158,7 +158,7 @@ TEST(ScopeReflectionTest, SizeOf) { +@@ -158,7 +158,8 @@ TEST(ScopeReflectionTest, SizeOf) { EXPECT_EQ(Cpp::SizeOf(Decls[4]), (size_t)0); EXPECT_EQ(Cpp::SizeOf(Decls[5]), (size_t)1); EXPECT_EQ(Cpp::SizeOf(Decls[6]), (size_t)4); - EXPECT_EQ(Cpp::SizeOf(Decls[7]), (size_t)16); -+ EXPECT_EQ(Cpp::SizeOf(Decls[7]), (size_t) (sizeof(size_t) == 4 ? 12 : 16)); ++ struct B {short a; double b;}; ++ EXPECT_EQ(Cpp::SizeOf(Decls[7]), sizeof(B)); } diff --git a/interpreter/CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp b/interpreter/CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp -index a3e482596d..8f7bc01ebe 100644 +index a3e482596d..28cc32f166 100644 --- a/interpreter/CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp +++ b/interpreter/CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp -@@ -77,7 +77,7 @@ TEST(TypeReflectionTest, GetSizeOfType) { +@@ -77,7 +77,8 @@ TEST(TypeReflectionTest, GetSizeOfType) { EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[1])), 1); EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[2])), 4); EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[3])), 8); - EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[4])), 16); -+ EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[4])), sizeof(size_t) == 4 ? 12 : 16); ++ struct B {int a; double b;}; ++ EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[4])), sizeof(B)); EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetTypeFromScope(Decls[5])), 0); EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[6])), sizeof(intptr_t)); diff --git a/root-Ignore-warnings-from-uring-IO.patch b/root-Ignore-warnings-from-uring-IO.patch index 6183dff..2208534 100644 --- a/root-Ignore-warnings-from-uring-IO.patch +++ b/root-Ignore-warnings-from-uring-IO.patch @@ -1,6 +1,6 @@ -From 1c0b441b9e23ac6a0b7b239a9e06b5caa263cf60 Mon Sep 17 00:00:00 2001 +From f4ac6bf20278c19c88cf98f6062ecfad86b87378 Mon Sep 17 00:00:00 2001 From: Mattias Ellert -Date: Sat, 7 Jun 2025 16:57:52 +0200 +Date: Thu, 19 Jun 2025 14:02:31 +0200 Subject: [PATCH] Ignore warnings from uring IO Tests randomly fail because the uring memory is exhausted. @@ -31,29 +31,27 @@ Received unexpected diagnostic of severity 2000 at 'RRawFileUnix' reading 'io_ur Suppress those using ROOT/TestSupport.hxx [ FAILED ] RNTupleDSTest.ChainMT (1004 ms) --- - core/testsupport/src/TestSupport.cxx | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) + core/testsupport/src/TestSupport.cxx | 12 ++++++++++++ + 1 file changed, 12 insertions(+) diff --git a/core/testsupport/src/TestSupport.cxx b/core/testsupport/src/TestSupport.cxx -index 9889a432f4..c7ee440746 100644 +index 9889a432f4..4c3395ef16 100644 --- a/core/testsupport/src/TestSupport.cxx +++ b/core/testsupport/src/TestSupport.cxx -@@ -76,6 +76,20 @@ static struct ForbidDiagnostics { +@@ -76,6 +76,18 @@ static struct ForbidDiagnostics { return; } -+ if (level == kWarning -+ && strcmp(location, "RIoUring") == 0 -+ && strcmp(msg, "io_uring is unexpectedly not available because:\nFailed to allocate memory for the smallest possible io_uring instance. 'memlock' memory has been exhausted for this user") == 0) { -+ std::cerr << "Warning in " << location << " " << msg << std::endl; -+ return; ++ if (level == kWarning && strcmp(location, "RIoUring") == 0 && ++ strstr(msg, "io_uring is unexpectedly not available because:") != nullptr) { ++ std::cerr << "Warning in " << location << " " << msg << std::endl; ++ return; + } + -+ if (level == kWarning -+ && strcmp(location, "RRawFileUnix") == 0 -+ && strcmp(msg, "io_uring setup failed, falling back to blocking I/O in ReadV") == 0) { -+ std::cerr << "Warning in " << location << " " << msg << std::endl; -+ return; ++ if (level == kWarning && strcmp(location, "RRawFileUnix") == 0 && ++ strcmp(msg, "io_uring setup failed, falling back to blocking I/O in ReadV") == 0) { ++ std::cerr << "Warning in " << location << " " << msg << std::endl; ++ return; + } + FAIL() << "Received unexpected diagnostic of severity " diff --git a/root-Python-Update-reference-refcount-values-for-Python-3.patch b/root-Python-Update-reference-refcount-values-for-Python-3.patch new file mode 100644 index 0000000..fd341ee --- /dev/null +++ b/root-Python-Update-reference-refcount-values-for-Python-3.patch @@ -0,0 +1,66 @@ +From f26668d48bfc75e9c176f7981e51ddc3b5ed7895 Mon Sep 17 00:00:00 2001 +From: Jonas Rembser +Date: Wed, 11 Jun 2025 14:15:07 +0200 +Subject: [PATCH] [Python] Update reference refcount values for Python 3.14 + compatibility + +Closes: #18988. +--- + .../pyroot/pythonizations/test/rdataframe_makenumpy.py | 9 ++++++++- + bindings/pyroot/pythonizations/test/rvec_asrvec.py | 10 +++++++--- + 2 files changed, 15 insertions(+), 4 deletions(-) + +diff --git a/bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py b/bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py +index 072148aeb6..c7da723523 100644 +--- a/bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py ++++ b/bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py +@@ -75,10 +75,17 @@ class DataFrameFromNumpy(unittest.TestCase): + def test_refcount(self): + """ + Check refcounts of associated PyObjects ++ ++ In case of Python <=3.14, we expect a refcount of 2 for the data dict, ++ because the call to sys.getrefcount creates a second reference by ++ itself. Starting from Python 3.14, we expect a refcount of 1 because ++ there were changes to the interpreter to avoid some unnecessary ref ++ counts. See also: ++ https://docs.python.org/3.14/whatsnew/3.14.html#whatsnew314-refcount + """ + data = {"x": np.array([1, 2, 3], dtype="float32")} + gc.collect() +- self.assertEqual(sys.getrefcount(data), 2) ++ self.assertEqual(sys.getrefcount(data), 1 + int(sys.version_info < (3, 14))) + self.assertEqual(sys.getrefcount(data["x"]), 2) + + df = ROOT.RDF.FromNumpy(data) +diff --git a/bindings/pyroot/pythonizations/test/rvec_asrvec.py b/bindings/pyroot/pythonizations/test/rvec_asrvec.py +index 5e6c820705..9d3a294bf1 100644 +--- a/bindings/pyroot/pythonizations/test/rvec_asrvec.py ++++ b/bindings/pyroot/pythonizations/test/rvec_asrvec.py +@@ -123,8 +123,12 @@ class AsRVec(unittest.TestCase): + """ + Test reference count of returned RVec + +- We expect a refcount of 2 for the RVec because the call to sys.getrefcount +- creates a second reference by itself. ++ In case of Python <=3.14, we expect a refcount of 2 for the RVec ++ because the call to sys.getrefcount creates a second reference by ++ itself. Starting from Python 3.14, we expect a refcount of 1 because ++ there were changes to the interpreter to avoid some unnecessary ref ++ counts. See also: ++ https://docs.python.org/3.14/whatsnew/3.14.html#whatsnew314-refcount + We attach the adopted pyobject to the RVec and increase the refcount of the + numpy array. After deletion of the rvec, the refcount of the numpy array + is decreased. +@@ -132,7 +136,7 @@ class AsRVec(unittest.TestCase): + np_obj = np.array([1, 2]) + rvec = ROOT.VecOps.AsRVec(np_obj) + gc.collect() +- self.assertEqual(sys.getrefcount(rvec), 2) ++ self.assertEqual(sys.getrefcount(rvec), 1 + int(sys.version_info < (3, 14))) + self.assertEqual(sys.getrefcount(np_obj), 3) + del rvec + gc.collect() +-- +2.49.0 + diff --git a/root-Python-Update-reference-refcount-values-for-Python-3x.patch b/root-Python-Update-reference-refcount-values-for-Python-3x.patch new file mode 100644 index 0000000..ecb27dc --- /dev/null +++ b/root-Python-Update-reference-refcount-values-for-Python-3x.patch @@ -0,0 +1,44 @@ +From 530d925f9832fe5fd1469ebf145f85227cfce1d4 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Fri, 20 Jun 2025 07:21:05 +0200 +Subject: [PATCH] [Python] Update reference refcount values for Python 3.14 + compatibility + +--- + bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py | 2 +- + bindings/pyroot/pythonizations/test/rvec_asrvec.py | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py b/bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py +index c7da723523..fc0f88155a 100644 +--- a/bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py ++++ b/bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py +@@ -90,7 +90,7 @@ class DataFrameFromNumpy(unittest.TestCase): + + df = ROOT.RDF.FromNumpy(data) + gc.collect() +- self.assertEqual(sys.getrefcount(df), 2) ++ self.assertEqual(sys.getrefcount(df), 1 + int(sys.version_info < (3, 14))) + + self.assertEqual(sys.getrefcount(data["x"]), 3) + +diff --git a/bindings/pyroot/pythonizations/test/rvec_asrvec.py b/bindings/pyroot/pythonizations/test/rvec_asrvec.py +index 9d3a294bf1..f489da826e 100644 +--- a/bindings/pyroot/pythonizations/test/rvec_asrvec.py ++++ b/bindings/pyroot/pythonizations/test/rvec_asrvec.py +@@ -137,10 +137,10 @@ class AsRVec(unittest.TestCase): + rvec = ROOT.VecOps.AsRVec(np_obj) + gc.collect() + self.assertEqual(sys.getrefcount(rvec), 1 + int(sys.version_info < (3, 14))) +- self.assertEqual(sys.getrefcount(np_obj), 3) ++ self.assertEqual(sys.getrefcount(np_obj), 2 + int(sys.version_info < (3, 14))) + del rvec + gc.collect() +- self.assertEqual(sys.getrefcount(np_obj), 2) ++ self.assertEqual(sys.getrefcount(np_obj), 1 + int(sys.version_info < (3, 14))) + + + if __name__ == "__main__": +-- +2.49.0 + diff --git a/root.spec b/root.spec index c999668..5ef8c6a 100644 --- a/root.spec +++ b/root.spec @@ -10,7 +10,7 @@ %global bundlejson 0 -%if %{?fedora}%{!?fedora:0} +%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 10 %ifarch %{ix86} %{arm} %global pandas 0 %else @@ -39,7 +39,7 @@ Name: root Version: 6.36.00 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -96,6 +96,11 @@ Patch9: %{name}-Use-size_t-for-offset.patch Patch10: %{name}-Fix-test-for-32-bit-architectures.patch # Remove extra 0 in release number Patch11: %{name}-Update-release-number.patch +# https://github.com/root-project/root/issues/18988 +# https://github.com/root-project/root/pull/19014 +# https://github.com/root-project/root/pull/19107 +Patch12: %{name}-Python-Update-reference-refcount-values-for-Python-3.patch +Patch13: %{name}-Python-Update-reference-refcount-values-for-Python-3x.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -248,14 +253,17 @@ Requires: %{name}-core = %{version}-%{release} %description icons This package contains icons used by the ROOT GUI. -%package fonts +%package font-files Summary: ROOT font collection BuildArch: noarch # STIX version 0.9 only License: OFL-1.1 Requires: %{name}-core = %{version}-%{release} +# Package renamed +Provides: %{name}-fonts = %{version}-%{release} +Obsoletes: %{name}-fonts < 6.36.00-2 -%description fonts +%description font-files This package contains fonts used by ROOT that are not available in Fedora. In particular it contains STIX version 0.9 that is used by TMathText. @@ -270,7 +278,7 @@ This package contains the tutorial scripts and test suite for ROOT. %package core Summary: ROOT core libraries License: LGPL-2.1-or-later AND LGPL-2.0-or-later AND ISC AND MIT AND NCSA -Requires: %{name}-fonts = %{version}-%{release} +Requires: %{name}-font-files = %{version}-%{release} Requires: %{name}-icons = %{version}-%{release} # Dynamic dependencies Requires: %{name}-cling%{?_isa} = %{version}-%{release} @@ -294,6 +302,10 @@ Requires: %{name}-tree%{?_isa} = %{version}-%{release} %if %{dataframe} Requires: %{name}-tree-dataframe%{?_isa} = %{version}-%{release} %endif +Requires: %{name}-tree-ntuple%{?_isa} = %{version}-%{release} +%if %{root7} +Requires: %{name}-tree-ntuple-utils%{?_isa} = %{version}-%{release} +%endif Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} Requires: %{name}-vecops%{?_isa} = %{version}-%{release} # To resolve dependency in installed ROOTConfig.cmake @@ -417,8 +429,8 @@ Requires: %{name}-core = %{version}-%{release} # notebook package was merged with JupyROOT package Provides: %{name}-notebook = %{version}-%{release} Obsoletes: %{name}-notebook < 6.32.00 -Requires: js-jsroot >= 7.8 -%if %{?fedora}%{!?fedora:0} +Requires: js-jsroot >= 7.9 +%if %{?fedora}%{!?fedora:0} || ( %{?rhel}%{!?rhel:0} >= 10 && "%{?dist}" != ".el10_0" ) # jupyter-notebook not available in RHEL/EPEL # some functionality missing Requires: jupyter-notebook @@ -1143,7 +1155,7 @@ access to http based storage such as webdav and S3. Summary: HTTP server extension for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: js-jsroot >= 7.8 +Requires: js-jsroot >= 7.9 # Library split (net-httpsniff from net-http) Obsoletes: %{name}-net-http < 6.14.00 @@ -1672,9 +1684,7 @@ Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} -%if %{root7} Requires: %{name}-tree-ntuple%{?_isa} = %{version}-%{release} -%endif Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} Requires: %{name}-vecops%{?_isa} = %{version}-%{release} # Library split (tree-dataframe and vecops from tree-player) @@ -1826,6 +1836,14 @@ Requires: %{name}-io%{?_isa} = %{version}-%{release} %description geom-webviewer This package contains a library for viewing geometries in a web GUI. +%package tree-ntuple +Summary: The new ROOT n-tuple class +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} + +%description tree-ntuple +This package contains the new ROOT n-tuple class (RNTuple). + %if %{root7} %package graf-gpadv7 Summary: Canvas and pad library for ROOT (ROOT 7) @@ -1913,14 +1931,6 @@ Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} This package contains a library to show a pop-up dialog when fitting various kinds of data. -%package tree-ntuple -Summary: Ntuple (ROOT 7) -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} - -%description tree-ntuple -This package contains an ntuple extension for ROOT 7. - %package tree-ntuple-utils Summary: Ntuple utility library (ROOT 7) Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1948,6 +1958,8 @@ This package contains utility functions for ntuples. %patch -P9 -p1 %patch -P10 -p1 %patch -P11 -p1 +%patch -P12 -p1 +%patch -P13 -p1 # Remove bundled sources in order to be sure they are not used # * afterimage @@ -2663,15 +2675,6 @@ excluded="${excluded}|\ gtest-tree-tree-testTTreeRegressions" %endif -%if %{?fedora}%{!?fedora:0} >= 43 -# Failures due to reference counting changes in Python 3.14 -# - https://github.com/root-project/root/issues/18988 -# - https://docs.python.org/3.14/whatsnew/3.14.html -excluded="${excluded}|\ -pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-rdataframe-makenumpy|\ -pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-rvec-asrvec" -%endif - # Filter out parts of tests that require remote network access # RNTuple.StdAtomic fails on ix86 (different alignment 64 bit (non)atomic) # InterpreterTest.Evaluate fails on s390x @@ -2784,7 +2787,7 @@ fi %files icons %{_datadir}/%{name}/icons -%files fonts +%files font-files %{_datadir}/%{name}/fonts %files tutorial @@ -3536,6 +3539,11 @@ fi %{_libdir}/%{name}/libROOTGeomViewer_rdict.pcm %{_datadir}/%{name}/plugins/TVirtualGeoPainter/P020_RGeoPainter.C +%files tree-ntuple -f includelist-tree-ntuple +%{_libdir}/%{name}/libROOTNTuple.* +%{_libdir}/%{name}/libROOTNTuple_rdict.pcm +%dir %{_includedir}/%{name}/ROOT/libdaos_mock + %if %{root7} %files graf-gpadv7 -f includelist-graf2d-gpadv7 %{_libdir}/%{name}/libROOTGpadv7.* @@ -3566,17 +3574,20 @@ fi %{_libdir}/%{name}/libROOTFitPanelv7.* %{_libdir}/%{name}/libROOTFitPanelv7_rdict.pcm -%files tree-ntuple -f includelist-tree-ntuple -%{_libdir}/%{name}/libROOTNTuple.* -%{_libdir}/%{name}/libROOTNTuple_rdict.pcm -%dir %{_includedir}/%{name}/ROOT/libdaos_mock - %files tree-ntuple-utils -f includelist-tree-ntupleutil %{_libdir}/%{name}/libROOTNTupleUtil.* %{_libdir}/%{name}/libROOTNTupleUtil_rdict.pcm %endif %changelog +* Sat Jun 21 2025 Mattias Ellert - 6.36.00-2 +- Add root-tree-ntuple and root-tree-ntuple-utils dependensies to root-core + (listed in root-config --libs) +- Rename root-fonts package to root-font-files +- Add optional test dependency python3-pandas now available in EPEL 10 +- Add dependency jupyter-notebook to root-jupyroot for EPEL 10.1 and later +- Fix Python 3.14 refcount issues in tests + * Sat Jun 07 2025 Mattias Ellert - 6.36.00-1 - Update to 6.36.00 - Enable the R interface for EPEL 10.1 From 2726b64fa0cbe095e3ea39eb737c9617ee506a55 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Thu, 10 Jul 2025 19:21:27 -0400 Subject: [PATCH 21/41] Rebuilt for libarrow 20 Signed-off-by: Stephen Gallagher --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 5ef8c6a..5f5f785 100644 --- a/root.spec +++ b/root.spec @@ -39,7 +39,7 @@ Name: root Version: 6.36.00 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 3%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -3580,6 +3580,9 @@ fi %endif %changelog +* Thu Jul 10 2025 Stephen Gallagher - 6.36.00-3 +- Rebuilt for libarrow 20 + * Sat Jun 21 2025 Mattias Ellert - 6.36.00-2 - Add root-tree-ntuple and root-tree-ntuple-utils dependensies to root-core (listed in root-config --libs) From 3a74b8b61031092540cb0b4280d4e1099de2d010 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sun, 13 Jul 2025 07:11:20 +0200 Subject: [PATCH 22/41] Update to 6.36.02 --- root-Update-release-number.patch | 25 ----------- root.spec | 74 +++++++++++++++++--------------- sources | 2 +- 3 files changed, 40 insertions(+), 61 deletions(-) delete mode 100644 root-Update-release-number.patch diff --git a/root-Update-release-number.patch b/root-Update-release-number.patch deleted file mode 100644 index c9f05cd..0000000 --- a/root-Update-release-number.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 0ad965c6a2ed651e4a933434735fbe1c6bf32c1c Mon Sep 17 00:00:00 2001 -From: Danilo Piparo -Date: Mon, 26 May 2025 10:05:26 +0200 -Subject: [PATCH] Update release number - ---- - core/foundation/inc/ROOT/RVersion.hxx | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/core/foundation/inc/ROOT/RVersion.hxx b/core/foundation/inc/ROOT/RVersion.hxx -index 365a371b2a..d5a3623747 100644 ---- a/core/foundation/inc/ROOT/RVersion.hxx -+++ b/core/foundation/inc/ROOT/RVersion.hxx -@@ -4,7 +4,7 @@ - /* Update on release: */ - #define ROOT_VERSION_MAJOR 6 - #define ROOT_VERSION_MINOR 36 --#define ROOT_VERSION_PATCH 00 -+#define ROOT_VERSION_PATCH 0 - #define ROOT_RELEASE_DATE "May 26 2025" - - /* Don't change the lines below. */ --- -2.49.0 - diff --git a/root.spec b/root.spec index 5f5f785..0f6e4b9 100644 --- a/root.spec +++ b/root.spec @@ -37,9 +37,9 @@ %global __provides_exclude_from ^%{python3_sitearch}/lib.*\\.so$ Name: root -Version: 6.36.00 +Version: 6.36.02 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 3%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -94,13 +94,11 @@ Patch9: %{name}-Use-size_t-for-offset.patch # Fix 32 bit test failure # https://github.com/root-project/root/pull/18993 Patch10: %{name}-Fix-test-for-32-bit-architectures.patch -# Remove extra 0 in release number -Patch11: %{name}-Update-release-number.patch # https://github.com/root-project/root/issues/18988 # https://github.com/root-project/root/pull/19014 # https://github.com/root-project/root/pull/19107 -Patch12: %{name}-Python-Update-reference-refcount-values-for-Python-3.patch -Patch13: %{name}-Python-Update-reference-refcount-values-for-Python-3x.patch +Patch11: %{name}-Python-Update-reference-refcount-values-for-Python-3.patch +Patch12: %{name}-Python-Update-reference-refcount-values-for-Python-3x.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -1516,6 +1514,8 @@ provides a thin client (interface) to MySQL servers. Using this client, one can obtain information from a MySQL database into the ROOT environment. +This package is deprecated and will be removed in the next release of ROOT. + %package sql-odbc Summary: ODBC plugin for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1526,6 +1526,8 @@ This package contains the ODBC (Open DataBase Connectivity) plugin for ROOT, that allows transparent access to any kind of database that supports the ODBC protocol. +This package is deprecated and will be removed in the next release of ROOT. + %package sql-sqlite Summary: Sqlite client plugin for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1548,6 +1550,8 @@ provides a thin client (interface) to PostGreSQL servers. Using this client, one can obtain information from a PostGreSQL database into the ROOT environment. +This package is deprecated and will be removed in the next release of ROOT. + %package tmva Summary: Toolkit for multivariate data analysis License: BSD-3-Clause @@ -1959,7 +1963,6 @@ This package contains utility functions for ntuples. %patch -P10 -p1 %patch -P11 -p1 %patch -P12 -p1 -%patch -P13 -p1 # Remove bundled sources in order to be sure they are not used # * afterimage @@ -2461,6 +2464,12 @@ popd # # - test-webgui-ping # error: Cannot display window in native +# +# - test-stressgraphics-firefox-skip3d: +# requires firefox... +# +# - tutorial-visualisation-webcanv-fonts_ttf.cxx: +# Requires web graphics excluded="\ test-stressIOPlugins|\ tutorial-analysis-dataframe-df101_h1Analysis|\ @@ -2486,42 +2495,27 @@ gtest-net-netxng-RRawFileNetXNG|\ gtest-net-netxng-TNetXNGFileTest|\ tutorial-analysis-parallel-mp_processSelector|\ tutorial-tmva-tmva103_Application|\ -test-webgui-ping" - -# gtest-roofit-roofit-vectorisedPDFs-testLandau: -# Expected equality of these values: -# nFarOff -# Which is: 1 -# 0u -# Which is: 0 -# -# gtest-tree-treeplayer-ttreeindex-clone -# gtest-tree-treeplayer-treetreeplayertestUnit: -# Randomly fail - can't open file that was just created - race condition? -# -# test-stressgraphics-firefox-skip3d: -# requires firefox... -# -# tutorial-visualisation-webcanv-fonts_ttf.cxx: -# Requires web graphics -excluded="${excluded}|\ -gtest-roofit-roofit-vectorisedPDFs-testLandau|\ -gtest-tree-treeplayer-ttreeindex-clone|\ -gtest-tree-treeplayer-treetreeplayertestUnit|\ +test-webgui-ping|\ test-stressgraphics-firefox-skip3d|\ tutorial-visualisation-webcanv-fonts_ttf.cxx" +# Duplicated tests +# https://github.com/root-project/root/issues/19346 +# - gtest-tree-treeplayer-ttreeindex-clone +# - gtest-tree-treeplayer-ttreeindex-getlistoffriends +# - gtest-tree-treeplayer-ttreereader-friends +excluded="${excluded}|\ +gtest-tree-treeplayer-ttreeindex-clone|\ +gtest-tree-treeplayer-ttreeindex-getlistoffriends|\ +gtest-tree-treeplayer-ttreereader-friends" + %ifarch %{ix86} -# - gtest-tree-dataframe-dataframe-concurrency -# "There's already an active task arena." -# -# - gtest-hist-hist-TFormulaGradientTests|\ +# - gtest-hist-hist-TFormulaGradientTests # out of memory # # - pyunittests-bindings-pyroot-pythonizations-pyroot-array-numpy-views # ValueError: buffer is smaller than requested size excluded="${excluded}|\ -gtest-tree-dataframe-dataframe-concurrency|\ gtest-hist-hist-TFormulaGradientTests|\ pyunittests-bindings-pyroot-pythonizations-pyroot-array-numpy-views" %endif @@ -2532,7 +2526,7 @@ pyunittests-bindings-pyroot-pythonizations-pyroot-array-numpy-views" excluded="${excluded}|\ tutorial-roofit-roostats-IntervalExamples-py" -%if %{?fedora}%{!?fedora:0} >= 42 +%if %{?fedora}%{!?fedora:0} == 42 # - gtest-tree-ntuple-ntuple-emulated # - gtest-tree-ntuple-ntuple-evolution # waitpid() failed @@ -2547,6 +2541,12 @@ gtest-tree-ntuple-ntuple-evolution" excluded="${excluded}|\ tutorial-roofit-roostats-StandardBayesianMCMCDemo-py" %endif + +%if %{?rhel}%{!?rhel:0} >= 10 +excluded="${excluded}|\ +test-stressgraphics\$\$|\ +test-stressgraphics-interpreted" +%endif %endif %ifarch s390x @@ -2687,6 +2687,7 @@ RNTuple.StdAtomic:\ %ifarch s390x InterpreterTest.Evaluate:\ TClingDataMemberInfo.Offset:\ +TTreeReaderBasic.LorentzVector32:\ %endif RCsvDS.Remote:\ RNTuple.OpenHTTP:\ @@ -3580,6 +3581,9 @@ fi %endif %changelog +* Sun Jul 13 2025 Mattias Ellert - 6.36.02-1 +- Update to 6.36.02 + * Thu Jul 10 2025 Stephen Gallagher - 6.36.00-3 - Rebuilt for libarrow 20 diff --git a/sources b/sources index a6bdda4..1a7800f 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (root-6.36.00.tar.xz) = 2030961b001494a177b96540711940bb8f11fbcf624edfe3282bd7c2c0ad1ef60ed6a5cac9799dfae0d40f21f33728e6ab906f3da95589412dee592aebfbf4f4 +SHA512 (root-6.36.02.tar.xz) = 9c64aa5e7a6bd24a9584024c14700f0c56885b58880bda3e6a78a4db05fc5b980ae0823b5c7aaa3a83dfded36a2cfd0302c798d23a30012418833efa1efbebe8 SHA512 (root-testfiles.tar.xz) = 4bb7f8ca00b1427ba49f6428e9cfe5908a2ffdd2ce4134d3bc169a0629198352b5500fe0cf92c121d148e5af41f7016c96038a77794a4d37d94e6ec0a9d75670 SHA512 (clad-1.9.tar.gz) = df0569f12e3381e9285639eee927d9effb2812765caad2d281c41f6673828ab28b7bf8143ae9686090649cf889e757cfead58baa47e907de468185125a4d772c From e076764de0887f00a97cf07ed0e61636861d1227 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sun, 13 Jul 2025 18:59:06 +0200 Subject: [PATCH 23/41] Disable two failing test for rawhide ppc64le --- root.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 0f6e4b9..9b5c023 100644 --- a/root.spec +++ b/root.spec @@ -2526,7 +2526,7 @@ pyunittests-bindings-pyroot-pythonizations-pyroot-array-numpy-views" excluded="${excluded}|\ tutorial-roofit-roostats-IntervalExamples-py" -%if %{?fedora}%{!?fedora:0} == 42 +%if %{?fedora}%{!?fedora:0} >= 42 # - gtest-tree-ntuple-ntuple-emulated # - gtest-tree-ntuple-ntuple-evolution # waitpid() failed From f25bdb09311e1b26761b2740d90c28c6b65ab946 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 25 Jul 2025 12:04:15 +0000 Subject: [PATCH 24/41] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 9b5c023..9914e68 100644 --- a/root.spec +++ b/root.spec @@ -39,7 +39,7 @@ Name: root Version: 6.36.02 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -3581,6 +3581,9 @@ fi %endif %changelog +* Fri Jul 25 2025 Fedora Release Engineering - 6.36.02-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Sun Jul 13 2025 Mattias Ellert - 6.36.02-1 - Update to 6.36.02 From e4856607de1547b83046e27e3fdbcd9262150239 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Wed, 13 Aug 2025 11:00:08 -0600 Subject: [PATCH 25/41] Rebuild for libarrow 21 --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 9914e68..d50e9a8 100644 --- a/root.spec +++ b/root.spec @@ -39,7 +39,7 @@ Name: root Version: 6.36.02 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 3%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -3581,6 +3581,9 @@ fi %endif %changelog +* Wed Aug 13 2025 Orion Poplawski - 6.36.02-3 +- Rebuild for libarrow 21 + * Fri Jul 25 2025 Fedora Release Engineering - 6.36.02-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From 146af4880192f2dee65a877f50a171759ce61287 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 15 Aug 2025 15:16:09 +0200 Subject: [PATCH 26/41] Rebuilt for Python 3.14.0rc2 bytecode --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index d50e9a8..17f683a 100644 --- a/root.spec +++ b/root.spec @@ -39,7 +39,7 @@ Name: root Version: 6.36.02 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 3%{?dist} +Release: 4%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -3581,6 +3581,9 @@ fi %endif %changelog +* Fri Aug 15 2025 Python Maint - 6.36.02-4 +- Rebuilt for Python 3.14.0rc2 bytecode + * Wed Aug 13 2025 Orion Poplawski - 6.36.02-3 - Rebuild for libarrow 21 From 3d242ce0250358f8bb9df917116dc03dee58649c Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Mon, 18 Aug 2025 07:36:23 -0600 Subject: [PATCH 27/41] Rebuild for libarrow 21 --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 17f683a..8b5495a 100644 --- a/root.spec +++ b/root.spec @@ -39,7 +39,7 @@ Name: root Version: 6.36.02 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 4%{?dist} +Release: 5%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -3581,6 +3581,9 @@ fi %endif %changelog +* Mon Aug 18 2025 Orion Poplawski - 6.36.02-5 +- Rebuild for libarrow 21 + * Fri Aug 15 2025 Python Maint - 6.36.02-4 - Rebuilt for Python 3.14.0rc2 bytecode From cb90d9590dd34bd01e30893406b66054b4a42067 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Wed, 20 Aug 2025 06:32:28 +0200 Subject: [PATCH 28/41] Support libarrow 21 --- root-df-Support-libarrow-21.patch | 44 +++++++++++++++++++++++++++++++ root.spec | 22 ++++++++-------- 2 files changed, 55 insertions(+), 11 deletions(-) create mode 100644 root-df-Support-libarrow-21.patch diff --git a/root-df-Support-libarrow-21.patch b/root-df-Support-libarrow-21.patch new file mode 100644 index 0000000..445b33b --- /dev/null +++ b/root-df-Support-libarrow-21.patch @@ -0,0 +1,44 @@ +From 076bdd3f47431d5e3d90837512a4678fadc07ce8 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Wed, 20 Aug 2025 00:28:07 +0200 +Subject: [PATCH] [df] Support libarrow 21 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +arrow::internal::GenericToStatus → arrow::ToStatus +--- + tree/dataframe/test/datasource_arrow.cxx | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/tree/dataframe/test/datasource_arrow.cxx b/tree/dataframe/test/datasource_arrow.cxx +index 05493baa3d4..8bbcd5ff70d 100644 +--- a/tree/dataframe/test/datasource_arrow.cxx ++++ b/tree/dataframe/test/datasource_arrow.cxx +@@ -12,6 +12,7 @@ + #include + #include + #include ++#include + #if defined(__GNUC__) + #pragma GCC diagnostic pop + #endif +@@ -21,9 +22,15 @@ + #include + using namespace arrow; + ++#if ARRAY_VERSION_MAJOR >= 21 ++#define ASSERT_OK(expr) \ ++ for (::arrow::Status _st = ::arrow::ToStatus((expr)); !_st.ok();) \ ++ FAIL() << "'" ARROW_STRINGIFY(expr) "' failed with " << _st.ToString() ++#else + #define ASSERT_OK(expr) \ + for (::arrow::Status _st = ::arrow::internal::GenericToStatus((expr)); !_st.ok();) \ + FAIL() << "'" ARROW_STRINGIFY(expr) "' failed with " << _st.ToString() ++#endif + + // Copied from arrow/testing/builder.h + template +-- +2.50.1 + diff --git a/root.spec b/root.spec index 8b5495a..aba7438 100644 --- a/root.spec +++ b/root.spec @@ -39,7 +39,7 @@ Name: root Version: 6.36.02 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 5%{?dist} +Release: 6%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -99,6 +99,8 @@ Patch10: %{name}-Fix-test-for-32-bit-architectures.patch # https://github.com/root-project/root/pull/19107 Patch11: %{name}-Python-Update-reference-refcount-values-for-Python-3.patch Patch12: %{name}-Python-Update-reference-refcount-values-for-Python-3x.patch +# https://github.com/root-project/root/pull/19689 +Patch13: %{name}-df-Support-libarrow-21.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -1963,6 +1965,7 @@ This package contains utility functions for ntuples. %patch -P10 -p1 %patch -P11 -p1 %patch -P12 -p1 +%patch -P13 -p1 # Remove bundled sources in order to be sure they are not used # * afterimage @@ -2395,6 +2398,7 @@ ln -s ../../files files ln -s ../../files/tutorials/df014_CsvDataSource_MuRun2010B.csv CsvDataSource_MuRun2010B.csv ln -s ../../files/usa.root usa.root popd +popd # Exclude some tests that can not be run # @@ -2680,7 +2684,7 @@ gtest-tree-tree-testTTreeRegressions" # InterpreterTest.Evaluate fails on s390x # TClingDataMemberInfo.Offset fails on s390x # https://github.com/root-project/root/issues/14512 -GTEST_FILTER=-\ +export GTEST_FILTER=-\ %ifarch %{ix86} RNTuple.StdAtomic:\ %endif @@ -2696,15 +2700,8 @@ RSqliteDS.Davix:\ TChainParsing.DoubleSlash:\ TChainParsing.RemoteGlob:\ TFile.ReadWithoutGlobalRegistrationNet:\ -TFile.ReadWithoutGlobalRegistrationWeb \ -%if ! %{pandas} -ROOTTEST_IGNORE_PANDAS_PY3=1 \ -%endif -ROOTTEST_IGNORE_NUMBA_PY3=1 \ -ROOTTEST_IGNORE_JUPYTER_PY3=1 \ -make test ARGS="%{?_smp_mflags} --output-on-failure -E \"${excluded}\"" - -popd +TFile.ReadWithoutGlobalRegistrationWeb +%ctest -- -E "${excluded}" %pretrans net-http -p path = "%{_datadir}/%{name}/js" @@ -3581,6 +3578,9 @@ fi %endif %changelog +* Tue Aug 19 2025 Mattias Ellert - 6.36.02-6 +- Support libarrow 21 + * Mon Aug 18 2025 Orion Poplawski - 6.36.02-5 - Rebuild for libarrow 21 From c3014d3347e99c16b504984b9a27a3a66695878b Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Wed, 20 Aug 2025 08:19:57 +0200 Subject: [PATCH 29/41] Fix typo in patch --- root-df-Support-libarrow-21.patch | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/root-df-Support-libarrow-21.patch b/root-df-Support-libarrow-21.patch index 445b33b..a82683d 100644 --- a/root-df-Support-libarrow-21.patch +++ b/root-df-Support-libarrow-21.patch @@ -1,6 +1,6 @@ -From 076bdd3f47431d5e3d90837512a4678fadc07ce8 Mon Sep 17 00:00:00 2001 +From 4bfc8d1ff53b398c8e5bd879ca32ead4321b844a Mon Sep 17 00:00:00 2001 From: Mattias Ellert -Date: Wed, 20 Aug 2025 00:28:07 +0200 +Date: Wed, 20 Aug 2025 08:17:16 +0200 Subject: [PATCH] [df] Support libarrow 21 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -12,7 +12,7 @@ arrow::internal::GenericToStatus → arrow::ToStatus 1 file changed, 7 insertions(+) diff --git a/tree/dataframe/test/datasource_arrow.cxx b/tree/dataframe/test/datasource_arrow.cxx -index 05493baa3d4..8bbcd5ff70d 100644 +index 05493baa3d4..73749b59afc 100644 --- a/tree/dataframe/test/datasource_arrow.cxx +++ b/tree/dataframe/test/datasource_arrow.cxx @@ -12,6 +12,7 @@ @@ -27,7 +27,7 @@ index 05493baa3d4..8bbcd5ff70d 100644 #include using namespace arrow; -+#if ARRAY_VERSION_MAJOR >= 21 ++#if ARROW_VERSION_MAJOR >= 21 +#define ASSERT_OK(expr) \ + for (::arrow::Status _st = ::arrow::ToStatus((expr)); !_st.ok();) \ + FAIL() << "'" ARROW_STRINGIFY(expr) "' failed with " << _st.ToString() From 895043f78c6763f979e6fdfe9c5d8971063023a4 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Wed, 20 Aug 2025 15:39:40 -0600 Subject: [PATCH 30/41] Rebuild for tbb 2022.2.0 --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index aba7438..1bf54c5 100644 --- a/root.spec +++ b/root.spec @@ -39,7 +39,7 @@ Name: root Version: 6.36.02 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 6%{?dist} +Release: 7%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -3578,6 +3578,9 @@ fi %endif %changelog +* Wed Aug 20 2025 Jerry James - 6.36.02-7 +- Rebuild for tbb 2022.2.0 + * Tue Aug 19 2025 Mattias Ellert - 6.36.02-6 - Support libarrow 21 From 18473dc6e6b17b1e09a8d6896bf1a8c2e23aafea Mon Sep 17 00:00:00 2001 From: Jerry James Date: Wed, 20 Aug 2025 15:39:40 -0600 Subject: [PATCH 31/41] Rebuild for tbb 2022.2.0 --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 17f683a..28c79b7 100644 --- a/root.spec +++ b/root.spec @@ -39,7 +39,7 @@ Name: root Version: 6.36.02 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 4%{?dist} +Release: 5%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -3581,6 +3581,9 @@ fi %endif %changelog +* Wed Aug 20 2025 Jerry James - 6.36.02-5 +- Rebuild for tbb 2022.2.0 + * Fri Aug 15 2025 Python Maint - 6.36.02-4 - Rebuilt for Python 3.14.0rc2 bytecode From da1ca8ff8fa0341599f6a3c29ae59a04e84ff0ad Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Thu, 28 Aug 2025 06:37:03 +0200 Subject: [PATCH 32/41] Update sources --- sources | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources b/sources index 1a7800f..17b366b 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (root-6.36.02.tar.xz) = 9c64aa5e7a6bd24a9584024c14700f0c56885b58880bda3e6a78a4db05fc5b980ae0823b5c7aaa3a83dfded36a2cfd0302c798d23a30012418833efa1efbebe8 +SHA512 (root-6.36.04.tar.xz) = d8798d777f308e59ebb3429323895757ca9538499dbb1989d70b3a01c2122b2a01911b0e7da673d7a9fc40acd49fdbf6a5b4341266c1b68a8a88d9f904e7919b SHA512 (root-testfiles.tar.xz) = 4bb7f8ca00b1427ba49f6428e9cfe5908a2ffdd2ce4134d3bc169a0629198352b5500fe0cf92c121d148e5af41f7016c96038a77794a4d37d94e6ec0a9d75670 SHA512 (clad-1.9.tar.gz) = df0569f12e3381e9285639eee927d9effb2812765caad2d281c41f6673828ab28b7bf8143ae9686090649cf889e757cfead58baa47e907de468185125a4d772c From 84f092c91de687e69580f2a411133949ec8a000e Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 19 Sep 2025 14:53:54 +0200 Subject: [PATCH 33/41] Rebuilt for Python 3.14.0rc3 bytecode --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 84efcc3..bd7f0a7 100644 --- a/root.spec +++ b/root.spec @@ -39,7 +39,7 @@ Name: root Version: 6.36.04 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -3575,6 +3575,9 @@ fi %endif %changelog +* Fri Sep 19 2025 Python Maint - 6.36.04-2 +- Rebuilt for Python 3.14.0rc3 bytecode + * Mon Aug 25 2025 Mattias Ellert - 6.36.04-1 - Update to 6.36.04 From f287293ea9bc3f93bf7691440897f1b097c380d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= Date: Thu, 9 Oct 2025 17:11:17 +0200 Subject: [PATCH 34/41] - Rebuilt for new graphviz --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index bd7f0a7..8484955 100644 --- a/root.spec +++ b/root.spec @@ -39,7 +39,7 @@ Name: root Version: 6.36.04 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 3%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -3575,6 +3575,9 @@ fi %endif %changelog +* Thu Oct 09 2025 Jaroslav Škarvada - 6.36.04-3 +- Rebuilt for new graphviz + * Fri Sep 19 2025 Python Maint - 6.36.04-2 - Rebuilt for Python 3.14.0rc3 bytecode From 32ec236e955265c886eee8014b026ce27f9ef8b1 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Wed, 29 Oct 2025 09:28:19 -0400 Subject: [PATCH 35/41] Rebuild for libarrow 22 Signed-off-by: Stephen Gallagher --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 8484955..030c783 100644 --- a/root.spec +++ b/root.spec @@ -39,7 +39,7 @@ Name: root Version: 6.36.04 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 3%{?dist} +Release: 4%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -3575,6 +3575,9 @@ fi %endif %changelog +* Wed Oct 29 2025 Stephen Gallagher - 6.36.04-4 +- Rebuild for libarrow 22 + * Thu Oct 09 2025 Jaroslav Škarvada - 6.36.04-3 - Rebuilt for new graphviz From bbcab50659a25731ca475a38e406352af7ed9108 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Tue, 9 Dec 2025 20:53:49 +0100 Subject: [PATCH 36/41] Update to 6.38.00 Removed subpackages: root-proof, root-proof-bench, root-proof-player, root-proof-sessionviewer, root-sql-mysql, root-sql-odbc, root-sql-pgsql New subpackages: root-geom-checker, root-gui-treemap, root-tree-ntuple-browse, root-histv7 JsMVA python (sub)module dropped from python3-root package Compile minuit2 with Open MP support Dropped patches: 7 New patches: 4 --- root-Adjust-test-stressGraphics.ref.patch | 62 ++- ...OverflowError-from-RDF-pythonization.patch | 41 -- root-Fix-a-numpy-test-for-32-bit-archs.patch | 32 ++ root-Fix-test-for-32-bit-architectures.patch | 57 -- ...Geom-Add-missing-includes-of-TMath.h.patch | 63 +++ root-Ignore-warnings-from-uring-IO.patch | 62 --- ...ference-refcount-values-for-Python-3.patch | 66 --- ...erence-refcount-values-for-Python-3x.patch | 44 -- ...t-link-to-LLVM-libraries-in-parallel.patch | 16 +- root-Use-size_t-for-offset.patch | 60 --- ...tdated-IsSmall-helper-function-in-te.patch | 34 ++ root-df-Support-libarrow-21.patch | 44 -- root-fontconfig.patch | 93 ++-- root-no-export-python-modules.patch | 44 +- ...size-of-long-RVec-instances-in-RVec-.patch | 135 +++++ root.spec | 503 +++++++----------- sources | 4 +- 17 files changed, 564 insertions(+), 796 deletions(-) delete mode 100644 root-Avoid-OverflowError-from-RDF-pythonization.patch create mode 100644 root-Fix-a-numpy-test-for-32-bit-archs.patch delete mode 100644 root-Fix-test-for-32-bit-architectures.patch create mode 100644 root-Geom-Add-missing-includes-of-TMath.h.patch delete mode 100644 root-Ignore-warnings-from-uring-IO.patch delete mode 100644 root-Python-Update-reference-refcount-values-for-Python-3.patch delete mode 100644 root-Python-Update-reference-refcount-values-for-Python-3x.patch delete mode 100644 root-Use-size_t-for-offset.patch create mode 100644 root-VecOps-Remove-outdated-IsSmall-helper-function-in-te.patch delete mode 100644 root-df-Support-libarrow-21.patch create mode 100644 root-vecops-Adaptive-size-of-long-RVec-instances-in-RVec-.patch diff --git a/root-Adjust-test-stressGraphics.ref.patch b/root-Adjust-test-stressGraphics.ref.patch index 6f8e6e4..b4c5871 100644 --- a/root-Adjust-test-stressGraphics.ref.patch +++ b/root-Adjust-test-stressGraphics.ref.patch @@ -1,33 +1,49 @@ -From 81286803e7791377ae75f40e9c65f8928ad8fe31 Mon Sep 17 00:00:00 2001 +From f7bfa429deb9dbae9058998888bbcaa84af0ca08 Mon Sep 17 00:00:00 2001 From: Mattias Ellert -Date: Fri, 30 May 2025 05:31:08 +0200 +Date: Tue, 2 Dec 2025 05:33:31 +0100 Subject: [PATCH] Adjust test/stressGraphics.ref -Test 37: TScatter with TPolyMarker test............................ OK - PDF output......................................... 37 FAILED - Result = 22236 - Reference = 22560 - Error = 324 (was 300) - JPG output................................................ OK - PNG output................................................ OK - C file result............................................. OK --- - test/stressGraphics.ref | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) + test/stressGraphics.ref | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/test/stressGraphics.ref b/test/stressGraphics.ref -index a894796951..a8746db4df 100644 +index 2498ec6d755..4520a5ab113 100644 --- a/test/stressGraphics.ref +++ b/test/stressGraphics.ref -@@ -35,7 +35,7 @@ Test# PS1Ref# PS1Err# PDFRef# PDFErr# JPGRef# JPGErr# PNGRef# PN - 34 3304592 100 712308 3000 62688 19000 123056 7000 3396789 1000 - 35 3954 100 14654 300 17378 7800 9629 2000 3794 200 - 36 9073 100 22150 300 27691 7800 20712 2000 9157 200 -- 37 17800 200 22560 300 28599 7800 42618 2000 17600 200 -+ 37 17800 200 22560 400 28599 7800 42618 2000 17600 200 - 38 12926 200 24304 300 24021 6800 12637 2000 12584 200 - 39 29664 200 19354 300 23024 6500 12821 2000 31317 200 - 40 46000 400 23482 300 38792 8500 30458 4000 46000 400 +@@ -10,11 +10,11 @@ Test# PS1Ref# PS1Err# PDFRef# PDFErr# JPGRef# JPGErr# PNGRef# PN + 9 9253 100 14377 150 19851 2400 12199 900 9283 100 + 10 8863 70 13645 100 24343 1100 23278 1700 8894 70 + 11 12971 100 14750 50 34063 2000 32033 1200 13070 150 +- 12 7674 100 13533 50 83557 3000 38505 4000 7720 150 +- 13 5600 400 13242 300 16881 400 15063 800 5638 400 ++ 12 7674 100 13533 100 83557 3000 38505 4000 7720 150 ++ 13 5600 400 13242 400 16881 400 15063 800 5638 400 + 14 14190539 4000000 12926 100 23076 9500 25987 3000 14190704 4000000 + 15 15690 5000 17179 200 23076 9500 14232 1500 10437 5000 +- 16 28072 400 23520 200 44462 11000 30062 5000 38007 400 ++ 16 28072 400 23520 250 44462 11000 30062 5000 38007 400 + 17 20444 400 21520 150 27511 11000 16867 600 20721 400 + 18 15894 100 19305 200 27187 10300 15925 350 15925 100 + 19 22521 300 42926 250 43868 17000 19232 11000 22729 300 +@@ -44,7 +44,7 @@ Test# PS1Ref# PS1Err# PDFRef# PDFErr# JPGRef# JPGErr# PNGRef# PN + 43 207729 750 87126 750 76094 38000 54717 11000 210497 800 + 44 401670 6500 156361 2000 62719 34100 45592 14000 410114 6500 + 45 566142 5000 225206 2000 65828 31800 53934 6500 573396 5000 +- 46 3738751 35000 1292739 12000 60580 9900 133547 3500 3783013 35000 ++ 46 3738751 35000 1292739 13000 60580 9900 133547 3500 3783013 35000 + 47 1466028 9000 853193 50000 38425 13500 91242 18100 1463263 7500 + 48 38312 200 56877 750 36524 11800 119641 8000 38121 200 + 49 19556 1000 31967 1000 36859 10000 37602 8000 19900 3000 +@@ -53,7 +53,7 @@ Test# PS1Ref# PS1Err# PDFRef# PDFErr# JPGRef# JPGErr# PNGRef# PN + 52 270825 10000 115500 1000 45496 11000 34685 5000 272950 10000 + 53 15025 3000 29289 500 42525 11300 33336 3900 14787 4000 + 54 254604 5000 383258 7000 55666 30400 46534 6500 259594 7000 +- 55 4846 150 14075 150 33239 600 25303 500 4877 150 ++ 55 4846 150 14075 200 33239 600 25303 500 4877 150 + 56 1435879 150000 12837 100 25830 100 365000 15000 1085792 250000 + 57 5884 500 16577 200 40706 14000 30026 4000 5884 500 + 58 5723 700 15720 200 32236 11000 16916 3200 5670 800 -- -2.49.0 +2.52.0 diff --git a/root-Avoid-OverflowError-from-RDF-pythonization.patch b/root-Avoid-OverflowError-from-RDF-pythonization.patch deleted file mode 100644 index 7ac90a6..0000000 --- a/root-Avoid-OverflowError-from-RDF-pythonization.patch +++ /dev/null @@ -1,41 +0,0 @@ -From c3a9293a08fecb288cdd09b399c9c2808923e617 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Wed, 27 Aug 2025 17:09:12 +0200 -Subject: [PATCH] Avoid OverflowError from RDF pythonization - -Fixes test failures on 32 bit intel ix86. - -The following tests FAILED: - 62 - pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-rdataframe-makenumpy (Failed) python python_runtime_deps - 1257 - tutorial-analysis-dataframe-df032_RDFFromNumpy-py (Failed) python_runtime_deps tutorial - -1259/1470 Test #1257: tutorial-analysis-dataframe-df032_RDFFromNumpy-py .............................................***Failed 1.14 sec -Traceback (most recent call last): - File ".../tutorials/analysis/dataframe/df032_RDFFromNumpy.py", line 23, in - df = ROOT.RDF.FromNumpy({'x': x, 'y': y}) - File ".../redhat-linux-build/lib/ROOT/_facade.py", line 349, in MakeNumpyDataFrameCopy - return _MakeNumpyDataFrame(np_dict) - File ".../redhat-linux-build/lib/ROOT/_pythonization/_rdataframe.py", line 601, in _MakeNumpyDataFrame - return ROOT.Internal.RDF.MakeRVecDataFrame(ROOT.__ROOT_Internal.MakePyDeleter(key), *args) - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^ -OverflowError: Python int too large to convert to C long ---- - .../pythonizations/python/ROOT/_pythonization/_rdataframe.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py b/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py -index d5cade59805..f9bb2771a73 100644 ---- a/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py -+++ b/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py -@@ -584,7 +584,7 @@ def _MakeNumpyDataFrame(np_dict): - - namespace __ROOT_Internal { - -- inline std::function MakePyDeleter(std::intptr_t ptr) { -+ inline std::function MakePyDeleter(std::uintptr_t ptr) { - PyObject *obj = reinterpret_cast(ptr); - Py_INCREF(obj); - return [obj](){ Py_DECREF(obj); }; --- -2.51.0 - diff --git a/root-Fix-a-numpy-test-for-32-bit-archs.patch b/root-Fix-a-numpy-test-for-32-bit-archs.patch new file mode 100644 index 0000000..5e095f3 --- /dev/null +++ b/root-Fix-a-numpy-test-for-32-bit-archs.patch @@ -0,0 +1,32 @@ +From 40f8cd0adeb7257778c789e1ae639f260780402b Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Sun, 7 Dec 2025 19:30:55 +0100 +Subject: [PATCH] Fix a numpy test for 32 bit archs + +The default dtype used in numpy array is "int". This type has +different sizes on 32 and 64 bit architectures. The test tries to use +the numpy array as a Long64_t dataframe. On 32 bit architectures this +results in an error. + +This commit explicitly changes the numpy array's dtype to "int64" to +match the Long64_t dataframe type on all architectyres. +--- + bindings/pyroot/pythonizations/test/rdataframe_misc.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/bindings/pyroot/pythonizations/test/rdataframe_misc.py b/bindings/pyroot/pythonizations/test/rdataframe_misc.py +index 1a1efd21b3e..150828613b3 100644 +--- a/bindings/pyroot/pythonizations/test/rdataframe_misc.py ++++ b/bindings/pyroot/pythonizations/test/rdataframe_misc.py +@@ -132,7 +132,7 @@ class RDataFrameMisc(unittest.TestCase): + return + out_path = "dataframe_misc_regression_gh20291.root" + try: +- x, y = numpy.array([1, 2, 3]), numpy.array([4, 5, 6]) ++ x, y = numpy.array([1, 2, 3], dtype='int64'), numpy.array([4, 5, 6], dtype='int64') + df = ROOT.RDF.FromNumpy({"x": x, "y": y}) + + df.Snapshot("tree", out_path) +-- +2.52.0 + diff --git a/root-Fix-test-for-32-bit-architectures.patch b/root-Fix-test-for-32-bit-architectures.patch deleted file mode 100644 index 879e3df..0000000 --- a/root-Fix-test-for-32-bit-architectures.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 8f08aac1c5d356352d2bd24b05dcdd092d3ca864 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Thu, 19 Jun 2025 13:28:24 +0200 -Subject: [PATCH] Fix test for 32 bit architectures - -[ RUN ] TypeReflectionTest.GetSizeOfType -/builddir/build/BUILD/root-6.36.00-build/root-6.36.00/interpreter/CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp:79: Failure -Expected equality of these values: - Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[4])) - Which is: 12 - 16 -[ FAILED ] TypeReflectionTest.GetSizeOfType (23 ms) - -[ RUN ] ScopeReflectionTest.SizeOf -/builddir/build/BUILD/root-6.36.00-build/root-6.36.00/interpreter/CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp:161: Failure -Expected equality of these values: - Cpp::SizeOf(Decls[7]) - Which is: 12 - (size_t)16 - Which is: 16 -[ FAILED ] ScopeReflectionTest.SizeOf (26 ms) ---- - .../CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp | 3 ++- - .../CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp | 3 ++- - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/interpreter/CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp b/interpreter/CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp -index 0b39080859..d490d0833c 100644 ---- a/interpreter/CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp -+++ b/interpreter/CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp -@@ -158,7 +158,8 @@ TEST(ScopeReflectionTest, SizeOf) { - EXPECT_EQ(Cpp::SizeOf(Decls[4]), (size_t)0); - EXPECT_EQ(Cpp::SizeOf(Decls[5]), (size_t)1); - EXPECT_EQ(Cpp::SizeOf(Decls[6]), (size_t)4); -- EXPECT_EQ(Cpp::SizeOf(Decls[7]), (size_t)16); -+ struct B {short a; double b;}; -+ EXPECT_EQ(Cpp::SizeOf(Decls[7]), sizeof(B)); - } - - -diff --git a/interpreter/CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp b/interpreter/CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp -index a3e482596d..28cc32f166 100644 ---- a/interpreter/CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp -+++ b/interpreter/CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp -@@ -77,7 +77,8 @@ TEST(TypeReflectionTest, GetSizeOfType) { - EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[1])), 1); - EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[2])), 4); - EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[3])), 8); -- EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[4])), 16); -+ struct B {int a; double b;}; -+ EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[4])), sizeof(B)); - EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetTypeFromScope(Decls[5])), 0); - EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[6])), - sizeof(intptr_t)); --- -2.49.0 - diff --git a/root-Geom-Add-missing-includes-of-TMath.h.patch b/root-Geom-Add-missing-includes-of-TMath.h.patch new file mode 100644 index 0000000..966d8da --- /dev/null +++ b/root-Geom-Add-missing-includes-of-TMath.h.patch @@ -0,0 +1,63 @@ +From 0e1e1f0ba1908ae1020337ed7ec0565bf979b92c Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Tue, 2 Dec 2025 04:57:30 +0100 +Subject: [PATCH] [Geom] Add missing includes of TMath.h + +--- + geom/geombuilder/src/TGeoParaEditor.cxx | 1 + + geom/geombuilder/src/TGeoPconEditor.cxx | 1 + + geom/geombuilder/src/TGeoPgonEditor.cxx | 1 + + geom/geombuilder/src/TGeoTrapEditor.cxx | 1 + + 4 files changed, 4 insertions(+) + +diff --git a/geom/geombuilder/src/TGeoParaEditor.cxx b/geom/geombuilder/src/TGeoParaEditor.cxx +index fdc344ba4d2..bd173607d2c 100644 +--- a/geom/geombuilder/src/TGeoParaEditor.cxx ++++ b/geom/geombuilder/src/TGeoParaEditor.cxx +@@ -27,6 +27,7 @@ Editor for a TGeoPara. + #include "TVirtualGeoPainter.h" + #include "TVirtualPad.h" + #include "TView.h" ++#include "TMath.h" + #include "TGButton.h" + #include "TGTextEntry.h" + #include "TGNumberEntry.h" +diff --git a/geom/geombuilder/src/TGeoPconEditor.cxx b/geom/geombuilder/src/TGeoPconEditor.cxx +index a66359853be..50598d2cb90 100644 +--- a/geom/geombuilder/src/TGeoPconEditor.cxx ++++ b/geom/geombuilder/src/TGeoPconEditor.cxx +@@ -27,6 +27,7 @@ Editor for a TGeoPcon. + #include "TVirtualGeoPainter.h" + #include "TVirtualPad.h" + #include "TView.h" ++#include "TMath.h" + #include "TGCanvas.h" + #include "TGButton.h" + #include "TGTextEntry.h" +diff --git a/geom/geombuilder/src/TGeoPgonEditor.cxx b/geom/geombuilder/src/TGeoPgonEditor.cxx +index 949d0045a66..33638d66b2b 100644 +--- a/geom/geombuilder/src/TGeoPgonEditor.cxx ++++ b/geom/geombuilder/src/TGeoPgonEditor.cxx +@@ -27,6 +27,7 @@ Editor for a TGeoPgon. + #include "TVirtualGeoPainter.h" + #include "TVirtualPad.h" + #include "TView.h" ++#include "TMath.h" + #include "TGTextEntry.h" + #include "TGNumberEntry.h" + #include "TGLabel.h" +diff --git a/geom/geombuilder/src/TGeoTrapEditor.cxx b/geom/geombuilder/src/TGeoTrapEditor.cxx +index d9c2916d075..459e0191117 100644 +--- a/geom/geombuilder/src/TGeoTrapEditor.cxx ++++ b/geom/geombuilder/src/TGeoTrapEditor.cxx +@@ -27,6 +27,7 @@ Editor for a TGeoTrap. + #include "TVirtualGeoPainter.h" + #include "TVirtualPad.h" + #include "TView.h" ++#include "TMath.h" + #include "TGButton.h" + #include "TGTextEntry.h" + #include "TGNumberEntry.h" +-- +2.52.0 + diff --git a/root-Ignore-warnings-from-uring-IO.patch b/root-Ignore-warnings-from-uring-IO.patch deleted file mode 100644 index 2208534..0000000 --- a/root-Ignore-warnings-from-uring-IO.patch +++ /dev/null @@ -1,62 +0,0 @@ -From f4ac6bf20278c19c88cf98f6062ecfad86b87378 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Thu, 19 Jun 2025 14:02:31 +0200 -Subject: [PATCH] Ignore warnings from uring IO - -Tests randomly fail because the uring memory is exhausted. - -Here are some examples: - -[ RUN ] RNTuple.RandomAccess -.../root-6.36.00/core/testsupport/src/TestSupport.cxx:79: Failure -Failed -Received unexpected diagnostic of severity 2000 at 'RIoUring' reading 'io_uring is unexpectedly not available because: -Failed to allocate memory for the smallest possible io_uring instance. 'memlock' memory has been exhausted for this user'. -Suppress those using ROOT/TestSupport.hxx -.../root-6.36.00/core/testsupport/src/TestSupport.cxx:79: Failure -Failed -Received unexpected diagnostic of severity 2000 at 'RRawFileUnix' reading 'io_uring setup failed, falling back to blocking I/O in ReadV'. -Suppress those using ROOT/TestSupport.hxx -[ FAILED ] RNTuple.RandomAccess (20472 ms) - -[ RUN ] RNTupleDSTest.ChainMT -.../root-6.34.08/core/testsupport/src/TestSupport.cxx:79: Failure -Failed -Received unexpected diagnostic of severity 2000 at 'RIoUring' reading 'io_uring is unexpectedly not available because: -Failed to allocate memory for the smallest possible io_uring instance. 'memlock' memory has been exhausted for this user'. -Suppress those using ROOT/TestSupport.hxx -.../root-6.34.08/core/testsupport/src/TestSupport.cxx:79: Failure -Failed -Received unexpected diagnostic of severity 2000 at 'RRawFileUnix' reading 'io_uring setup failed, falling back to blocking I/O in ReadV'. -Suppress those using ROOT/TestSupport.hxx -[ FAILED ] RNTupleDSTest.ChainMT (1004 ms) ---- - core/testsupport/src/TestSupport.cxx | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/core/testsupport/src/TestSupport.cxx b/core/testsupport/src/TestSupport.cxx -index 9889a432f4..4c3395ef16 100644 ---- a/core/testsupport/src/TestSupport.cxx -+++ b/core/testsupport/src/TestSupport.cxx -@@ -76,6 +76,18 @@ static struct ForbidDiagnostics { - return; - } - -+ if (level == kWarning && strcmp(location, "RIoUring") == 0 && -+ strstr(msg, "io_uring is unexpectedly not available because:") != nullptr) { -+ std::cerr << "Warning in " << location << " " << msg << std::endl; -+ return; -+ } -+ -+ if (level == kWarning && strcmp(location, "RRawFileUnix") == 0 && -+ strcmp(msg, "io_uring setup failed, falling back to blocking I/O in ReadV") == 0) { -+ std::cerr << "Warning in " << location << " " << msg << std::endl; -+ return; -+ } -+ - FAIL() << "Received unexpected diagnostic of severity " - << level - << " at '" << location << "' reading '" << msg << "'.\n" --- -2.49.0 - diff --git a/root-Python-Update-reference-refcount-values-for-Python-3.patch b/root-Python-Update-reference-refcount-values-for-Python-3.patch deleted file mode 100644 index fd341ee..0000000 --- a/root-Python-Update-reference-refcount-values-for-Python-3.patch +++ /dev/null @@ -1,66 +0,0 @@ -From f26668d48bfc75e9c176f7981e51ddc3b5ed7895 Mon Sep 17 00:00:00 2001 -From: Jonas Rembser -Date: Wed, 11 Jun 2025 14:15:07 +0200 -Subject: [PATCH] [Python] Update reference refcount values for Python 3.14 - compatibility - -Closes: #18988. ---- - .../pyroot/pythonizations/test/rdataframe_makenumpy.py | 9 ++++++++- - bindings/pyroot/pythonizations/test/rvec_asrvec.py | 10 +++++++--- - 2 files changed, 15 insertions(+), 4 deletions(-) - -diff --git a/bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py b/bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py -index 072148aeb6..c7da723523 100644 ---- a/bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py -+++ b/bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py -@@ -75,10 +75,17 @@ class DataFrameFromNumpy(unittest.TestCase): - def test_refcount(self): - """ - Check refcounts of associated PyObjects -+ -+ In case of Python <=3.14, we expect a refcount of 2 for the data dict, -+ because the call to sys.getrefcount creates a second reference by -+ itself. Starting from Python 3.14, we expect a refcount of 1 because -+ there were changes to the interpreter to avoid some unnecessary ref -+ counts. See also: -+ https://docs.python.org/3.14/whatsnew/3.14.html#whatsnew314-refcount - """ - data = {"x": np.array([1, 2, 3], dtype="float32")} - gc.collect() -- self.assertEqual(sys.getrefcount(data), 2) -+ self.assertEqual(sys.getrefcount(data), 1 + int(sys.version_info < (3, 14))) - self.assertEqual(sys.getrefcount(data["x"]), 2) - - df = ROOT.RDF.FromNumpy(data) -diff --git a/bindings/pyroot/pythonizations/test/rvec_asrvec.py b/bindings/pyroot/pythonizations/test/rvec_asrvec.py -index 5e6c820705..9d3a294bf1 100644 ---- a/bindings/pyroot/pythonizations/test/rvec_asrvec.py -+++ b/bindings/pyroot/pythonizations/test/rvec_asrvec.py -@@ -123,8 +123,12 @@ class AsRVec(unittest.TestCase): - """ - Test reference count of returned RVec - -- We expect a refcount of 2 for the RVec because the call to sys.getrefcount -- creates a second reference by itself. -+ In case of Python <=3.14, we expect a refcount of 2 for the RVec -+ because the call to sys.getrefcount creates a second reference by -+ itself. Starting from Python 3.14, we expect a refcount of 1 because -+ there were changes to the interpreter to avoid some unnecessary ref -+ counts. See also: -+ https://docs.python.org/3.14/whatsnew/3.14.html#whatsnew314-refcount - We attach the adopted pyobject to the RVec and increase the refcount of the - numpy array. After deletion of the rvec, the refcount of the numpy array - is decreased. -@@ -132,7 +136,7 @@ class AsRVec(unittest.TestCase): - np_obj = np.array([1, 2]) - rvec = ROOT.VecOps.AsRVec(np_obj) - gc.collect() -- self.assertEqual(sys.getrefcount(rvec), 2) -+ self.assertEqual(sys.getrefcount(rvec), 1 + int(sys.version_info < (3, 14))) - self.assertEqual(sys.getrefcount(np_obj), 3) - del rvec - gc.collect() --- -2.49.0 - diff --git a/root-Python-Update-reference-refcount-values-for-Python-3x.patch b/root-Python-Update-reference-refcount-values-for-Python-3x.patch deleted file mode 100644 index ecb27dc..0000000 --- a/root-Python-Update-reference-refcount-values-for-Python-3x.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 530d925f9832fe5fd1469ebf145f85227cfce1d4 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Fri, 20 Jun 2025 07:21:05 +0200 -Subject: [PATCH] [Python] Update reference refcount values for Python 3.14 - compatibility - ---- - bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py | 2 +- - bindings/pyroot/pythonizations/test/rvec_asrvec.py | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py b/bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py -index c7da723523..fc0f88155a 100644 ---- a/bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py -+++ b/bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py -@@ -90,7 +90,7 @@ class DataFrameFromNumpy(unittest.TestCase): - - df = ROOT.RDF.FromNumpy(data) - gc.collect() -- self.assertEqual(sys.getrefcount(df), 2) -+ self.assertEqual(sys.getrefcount(df), 1 + int(sys.version_info < (3, 14))) - - self.assertEqual(sys.getrefcount(data["x"]), 3) - -diff --git a/bindings/pyroot/pythonizations/test/rvec_asrvec.py b/bindings/pyroot/pythonizations/test/rvec_asrvec.py -index 9d3a294bf1..f489da826e 100644 ---- a/bindings/pyroot/pythonizations/test/rvec_asrvec.py -+++ b/bindings/pyroot/pythonizations/test/rvec_asrvec.py -@@ -137,10 +137,10 @@ class AsRVec(unittest.TestCase): - rvec = ROOT.VecOps.AsRVec(np_obj) - gc.collect() - self.assertEqual(sys.getrefcount(rvec), 1 + int(sys.version_info < (3, 14))) -- self.assertEqual(sys.getrefcount(np_obj), 3) -+ self.assertEqual(sys.getrefcount(np_obj), 2 + int(sys.version_info < (3, 14))) - del rvec - gc.collect() -- self.assertEqual(sys.getrefcount(np_obj), 2) -+ self.assertEqual(sys.getrefcount(np_obj), 1 + int(sys.version_info < (3, 14))) - - - if __name__ == "__main__": --- -2.49.0 - diff --git a/root-Save-memory-Do-not-link-to-LLVM-libraries-in-parallel.patch b/root-Save-memory-Do-not-link-to-LLVM-libraries-in-parallel.patch index 875cf05..4d5587f 100644 --- a/root-Save-memory-Do-not-link-to-LLVM-libraries-in-parallel.patch +++ b/root-Save-memory-Do-not-link-to-LLVM-libraries-in-parallel.patch @@ -1,4 +1,4 @@ -From e59ece55e4eead85b2b6fd8c6ddc2dfa179f0d09 Mon Sep 17 00:00:00 2001 +From 98a5042a02dd7c1aaa9fbd5e54c8620c6b72484f Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Mon, 2 Jun 2025 21:22:39 +0200 Subject: [PATCH] Save memory. Do not link to LLVM libraries in parallel @@ -9,21 +9,21 @@ Subject: [PATCH] Save memory. Do not link to LLVM libraries in parallel 2 files changed, 9 insertions(+) diff --git a/core/clingutils/test/CMakeLists.txt b/core/clingutils/test/CMakeLists.txt -index 15cc3ff48a..f62735e972 100644 +index a6c7aedac99..90ac0139c24 100644 --- a/core/clingutils/test/CMakeLists.txt +++ b/core/clingutils/test/CMakeLists.txt -@@ -31,3 +31,6 @@ if(NOT builtin_clang) +@@ -36,3 +36,6 @@ if(NOT builtin_clang) endif() - ROOT_ADD_UNITTEST_DIR(Core RIO ${CLING_LIBRARIES} $) + ROOT_ADD_UNITTEST_DIR(Core ${CLING_LIBRARIES} $) + +# Save memory. Do not link to LLVM libraries in parallel +add_dependencies(coreclingutilstestUnit CppInterOpTests) diff --git a/interpreter/CppInterOp/unittests/CppInterOp/CMakeLists.txt b/interpreter/CppInterOp/unittests/CppInterOp/CMakeLists.txt -index 0ba35053fd..c6440cf301 100644 +index 4b4b43bdd29..a028802fedc 100644 --- a/interpreter/CppInterOp/unittests/CppInterOp/CMakeLists.txt +++ b/interpreter/CppInterOp/unittests/CppInterOp/CMakeLists.txt -@@ -65,6 +65,9 @@ target_link_libraries(CppInterOpTests +@@ -66,6 +66,9 @@ target_link_libraries(CppInterOpTests clangCppInterOp ) @@ -33,7 +33,7 @@ index 0ba35053fd..c6440cf301 100644 set_output_directory(CppInterOpTests BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${EXTRA_PATH_TEST_BINARIES} LIBRARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${EXTRA_PATH_TEST_BINARIES} -@@ -116,5 +119,8 @@ set_output_directory(DynamicLibraryManagerTests +@@ -129,5 +132,8 @@ set_output_directory(DynamicLibraryManagerTests add_dependencies(DynamicLibraryManagerTests TestSharedLib) @@ -43,5 +43,5 @@ index 0ba35053fd..c6440cf301 100644 #export_executable_symbols_for_plugins(TestSharedLib) add_subdirectory(TestSharedLib) -- -2.49.0 +2.52.0 diff --git a/root-Use-size_t-for-offset.patch b/root-Use-size_t-for-offset.patch deleted file mode 100644 index 49d3ab5..0000000 --- a/root-Use-size_t-for-offset.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 7bfd27ac478356e7c718b18b5eb3a3b277b833d1 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Tue, 3 Jun 2025 06:49:27 +0200 -Subject: [PATCH] Use size_t for offset - -[ RUN ] VariableReflectionTest.StaticConstExprDatamember -/builddir/build/BUILD/root-6.36.00/interpreter/CppInterOp/unittests/CppInterOp/VariableReflectionTest.cpp:545: Failure -Expected equality of these values: - 3 - *(int*)offset - Which is: 0 -/builddir/build/BUILD/root-6.36.00/interpreter/CppInterOp/unittests/CppInterOp/VariableReflectionTest.cpp:561: Failure -Expected equality of these values: - 5 - *(int*)offset - Which is: 0 -/builddir/build/BUILD/root-6.36.00/interpreter/CppInterOp/unittests/CppInterOp/VariableReflectionTest.cpp:580: Failure -Expected equality of these values: - 2 - *(int*)offset - Which is: 0 -[ FAILED ] VariableReflectionTest.StaticConstExprDatamember (9 ms) ---- - .../unittests/CppInterOp/VariableReflectionTest.cpp | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/interpreter/CppInterOp/unittests/CppInterOp/VariableReflectionTest.cpp b/interpreter/CppInterOp/unittests/CppInterOp/VariableReflectionTest.cpp -index 26dad4f25c..571ae5cd5d 100644 ---- a/interpreter/CppInterOp/unittests/CppInterOp/VariableReflectionTest.cpp -+++ b/interpreter/CppInterOp/unittests/CppInterOp/VariableReflectionTest.cpp -@@ -552,7 +552,7 @@ TEST(VariableReflectionTest, StaticConstExprDatamember) { - EXPECT_EQ(datamembers.size(), 1); - - intptr_t offset = Cpp::GetVariableOffset(datamembers[0]); -- EXPECT_EQ(3, *(int*)offset); -+ EXPECT_EQ(3, *(size_t*)offset); - - ASTContext& C = Interp->getCI()->getASTContext(); - std::vector template_args = { -@@ -568,7 +568,7 @@ TEST(VariableReflectionTest, StaticConstExprDatamember) { - EXPECT_EQ(datamembers.size(), 1); - - offset = Cpp::GetVariableOffset(datamembers[0]); -- EXPECT_EQ(5, *(int*)offset); -+ EXPECT_EQ(5, *(size_t*)offset); - - std::vector ele_template_args = { - {C.IntTy.getAsOpaquePtr()}, {C.FloatTy.getAsOpaquePtr()}}; -@@ -587,7 +587,7 @@ TEST(VariableReflectionTest, StaticConstExprDatamember) { - EXPECT_EQ(datamembers.size(), 1); - - offset = Cpp::GetVariableOffset(datamembers[0]); -- EXPECT_EQ(2, *(int*)offset); -+ EXPECT_EQ(2, *(size_t*)offset); - } - - TEST(VariableReflectionTest, GetEnumConstantDatamembers) { --- -2.49.0 - diff --git a/root-VecOps-Remove-outdated-IsSmall-helper-function-in-te.patch b/root-VecOps-Remove-outdated-IsSmall-helper-function-in-te.patch new file mode 100644 index 0000000..58ba414 --- /dev/null +++ b/root-VecOps-Remove-outdated-IsSmall-helper-function-in-te.patch @@ -0,0 +1,34 @@ +From fd18e83ae79760f7e8cca6f28b6d0f89d912b152 Mon Sep 17 00:00:00 2001 +From: Jonas Rembser +Date: Wed, 26 Nov 2025 12:40:03 +0100 +Subject: [PATCH] [VecOps] Remove outdated `IsSmall` helper function in tests + +The commit 2605710bea7b1 changed from using the `ROOT::Detail::VecOps::` +namespace explicitly for `IsSmall` to a `using` statement. However, +there was also a remnant `IsSmall` function with an outdated +implementation in the test file itself, which we can now remove. +--- + math/vecops/test/vecops_rvec.cxx | 7 ------- + 1 file changed, 7 deletions(-) + +diff --git a/math/vecops/test/vecops_rvec.cxx b/math/vecops/test/vecops_rvec.cxx +index 034f06ca211..432c673a553 100644 +--- a/math/vecops/test/vecops_rvec.cxx ++++ b/math/vecops/test/vecops_rvec.cxx +@@ -1493,13 +1493,6 @@ TEST(VecOps, Construct) + EXPECT_TRUE(fourVects[2] == ref2); + } + +-bool IsSmall(const RVec &v) +-{ +- // the first array element is right after the 3 data members of SmallVectorBase +- return reinterpret_cast(v.begin()) - reinterpret_cast(&v) == +- sizeof(void *) + 2 * sizeof(int); +-} +- + // this is a regression test for https://github.com/root-project/root/issues/6796 + TEST(VecOps, MemoryAdoptionAndClear) + { +-- +2.52.0 + diff --git a/root-df-Support-libarrow-21.patch b/root-df-Support-libarrow-21.patch deleted file mode 100644 index a82683d..0000000 --- a/root-df-Support-libarrow-21.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 4bfc8d1ff53b398c8e5bd879ca32ead4321b844a Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Wed, 20 Aug 2025 08:17:16 +0200 -Subject: [PATCH] [df] Support libarrow 21 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -arrow::internal::GenericToStatus → arrow::ToStatus ---- - tree/dataframe/test/datasource_arrow.cxx | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/tree/dataframe/test/datasource_arrow.cxx b/tree/dataframe/test/datasource_arrow.cxx -index 05493baa3d4..73749b59afc 100644 ---- a/tree/dataframe/test/datasource_arrow.cxx -+++ b/tree/dataframe/test/datasource_arrow.cxx -@@ -12,6 +12,7 @@ - #include - #include - #include -+#include - #if defined(__GNUC__) - #pragma GCC diagnostic pop - #endif -@@ -21,9 +22,15 @@ - #include - using namespace arrow; - -+#if ARROW_VERSION_MAJOR >= 21 -+#define ASSERT_OK(expr) \ -+ for (::arrow::Status _st = ::arrow::ToStatus((expr)); !_st.ok();) \ -+ FAIL() << "'" ARROW_STRINGIFY(expr) "' failed with " << _st.ToString() -+#else - #define ASSERT_OK(expr) \ - for (::arrow::Status _st = ::arrow::internal::GenericToStatus((expr)); !_st.ok();) \ - FAIL() << "'" ARROW_STRINGIFY(expr) "' failed with " << _st.ToString() -+#endif - - // Copied from arrow/testing/builder.h - template --- -2.50.1 - diff --git a/root-fontconfig.patch b/root-fontconfig.patch index 185b1c4..b2c4e99 100644 --- a/root-fontconfig.patch +++ b/root-fontconfig.patch @@ -1,4 +1,4 @@ -From c5f13cb25c3b803346d1a6cac483badbcf2ced62 Mon Sep 17 00:00:00 2001 +From b5735870eb7e65a8c840643540a0676ab40697e0 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sat, 11 May 2024 20:09:47 +0200 Subject: [PATCH] Use system fonts via fontconfig @@ -15,14 +15,13 @@ Subject: [PATCH] Use system fonts via fontconfig graf3d/gl/CMakeLists.txt | 1 + graf3d/gl/src/TGLFontManager.cxx | 123 ++++++++++- graf3d/gl/src/TGLText.cxx | 56 +++-- - gui/gui/src/TGApplication.cxx | 10 +- - 12 files changed, 494 insertions(+), 201 deletions(-) + 11 files changed, 493 insertions(+), 192 deletions(-) diff --git a/core/base/src/TApplication.cxx b/core/base/src/TApplication.cxx -index 992713264a..32bfc0bbb9 100644 +index f0d2124a8f6..41ad4c73020 100644 --- a/core/base/src/TApplication.cxx +++ b/core/base/src/TApplication.cxx -@@ -251,18 +251,12 @@ void TApplication::InitializeGraphics(Bool_t only_web) +@@ -253,18 +253,12 @@ void TApplication::InitializeGraphics(Bool_t only_web) LoadGraphicsLibs(); // Try to load TrueType font renderer. Only try to load if not in batch @@ -43,7 +42,7 @@ index 992713264a..32bfc0bbb9 100644 if (gClassTable->GetDict("TGX11TTF")) { // in principle we should not have linked anything against libGX11TTF // but with ACLiC this can happen, initialize TGX11TTF by hand -@@ -276,7 +270,6 @@ void TApplication::InitializeGraphics(Bool_t only_web) +@@ -278,7 +272,6 @@ void TApplication::InitializeGraphics(Bool_t only_web) } } #endif @@ -52,10 +51,10 @@ index 992713264a..32bfc0bbb9 100644 if (!only_web || !fAppImp) { diff --git a/graf2d/asimage/CMakeLists.txt b/graf2d/asimage/CMakeLists.txt -index 31114ad45d..be95419491 100644 +index b5ccf983473..8ee57c1fac0 100644 --- a/graf2d/asimage/CMakeLists.txt +++ b/graf2d/asimage/CMakeLists.txt -@@ -30,6 +30,7 @@ ROOT_STANDARD_LIBRARY_PACKAGE(ASImage +@@ -28,6 +28,7 @@ ROOT_STANDARD_LIBRARY_PACKAGE(ASImage ${FREETYPE_LIBRARIES} ${X11_LIBRARIES} ZLIB::ZLIB @@ -64,7 +63,7 @@ index 31114ad45d..be95419491 100644 Core Graf diff --git a/graf2d/asimage/src/TASImage.cxx b/graf2d/asimage/src/TASImage.cxx -index 7e046f4724..137265bd4a 100644 +index 6ea60a78801..e85d804b7ec 100644 --- a/graf2d/asimage/src/TASImage.cxx +++ b/graf2d/asimage/src/TASImage.cxx @@ -117,6 +117,8 @@ extern "C" { @@ -76,7 +75,7 @@ index 7e046f4724..137265bd4a 100644 // auxiliary functions for general polygon filling #include "TASPolyUtils.c" -@@ -2595,11 +2597,88 @@ void TASImage::DrawText(Int_t x, Int_t y, const char *text, Int_t size, +@@ -2620,11 +2622,88 @@ void TASImage::DrawText(Int_t x, Int_t y, const char *text, Int_t size, // This is for backward compatibility... if (fn.Last('/') == 0) fn = fn(1, fn.Length() - 1); @@ -170,7 +169,7 @@ index 7e046f4724..137265bd4a 100644 if (fn.EndsWith(".pfa") || fn.EndsWith(".PFA") || fn.EndsWith(".pfb") || fn.EndsWith(".PFB") || fn.EndsWith(".ttf") || fn.EndsWith(".TTF") || fn.EndsWith(".otf") || fn.EndsWith(".OTF")) { ttfont = kTRUE; -@@ -2623,7 +2702,7 @@ void TASImage::DrawText(Int_t x, Int_t y, const char *text, Int_t size, +@@ -2648,7 +2727,7 @@ void TASImage::DrawText(Int_t x, Int_t y, const char *text, Int_t size, return; } @@ -180,7 +179,7 @@ index 7e046f4724..137265bd4a 100644 if (!font) { font = get_asfont(gFontManager, "fixed", 0, size, ASF_GuessWho); diff --git a/graf2d/graf/CMakeLists.txt b/graf2d/graf/CMakeLists.txt -index d7d1b77c21..c4ebb994a4 100644 +index d7d1b77c21a..c4ebb994a4a 100644 --- a/graf2d/graf/CMakeLists.txt +++ b/graf2d/graf/CMakeLists.txt @@ -91,6 +91,7 @@ ROOT_STANDARD_LIBRARY_PACKAGE(Graf @@ -192,7 +191,7 @@ index d7d1b77c21..c4ebb994a4 100644 Hist Matrix diff --git a/graf2d/graf/inc/TTF.h b/graf2d/graf/inc/TTF.h -index 0bef9dcb95..ea96fe47ce 100644 +index 864ce06b4f0..050796d1ded 100644 --- a/graf2d/graf/inc/TTF.h +++ b/graf2d/graf/inc/TTF.h @@ -76,9 +76,10 @@ protected: @@ -208,7 +207,7 @@ index 0bef9dcb95..ea96fe47ce 100644 static TTF::TTGlyph fgGlyphs[kMaxGlyphs]; ///< glyphs static Bool_t fgHinting; ///< use hinting (true by default) diff --git a/graf2d/graf/src/TTF.cxx b/graf2d/graf/src/TTF.cxx -index ca38ed1f9c..8f1d62686b 100644 +index 758bb98c192..7b1b06cd0ed 100644 --- a/graf2d/graf/src/TTF.cxx +++ b/graf2d/graf/src/TTF.cxx @@ -25,6 +25,8 @@ Interface to the freetype 2 library. @@ -233,7 +232,7 @@ index ca38ed1f9c..8f1d62686b 100644 FT_Matrix *TTF::fgRotMatrix = nullptr; FT_Library TTF::fgLibrary; FT_BBox TTF::fgCBox; -@@ -72,6 +75,11 @@ void TTF::Init() +@@ -71,6 +74,11 @@ void TTF::Init() return; } @@ -245,7 +244,7 @@ index ca38ed1f9c..8f1d62686b 100644 // load default font (arialbd) SetTextFont(62); } -@@ -109,12 +117,15 @@ Short_t TTF::CharToUnicode(UInt_t code) +@@ -108,12 +116,15 @@ Short_t TTF::CharToUnicode(UInt_t code) charmap = fgFace[fgCurFontIdx]->charmaps[i]; platform = charmap->platform_id; encoding = charmap->encoding_id; @@ -265,7 +264,7 @@ index ca38ed1f9c..8f1d62686b 100644 { fgCharMap[fgCurFontIdx] = charmap; if (FT_Set_Charmap(fgFace[fgCurFontIdx], fgCharMap[fgCurFontIdx])) -@@ -387,21 +398,145 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic) +@@ -392,21 +403,145 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic) } const char *basename = gSystem->BaseName(fontname); @@ -423,7 +422,7 @@ index ca38ed1f9c..8f1d62686b 100644 } } -@@ -411,28 +546,13 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic) +@@ -416,28 +551,13 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic) kTTMaxFonts); Warning("TTF::SetTextFont", "using default font %s", fgFontName[0]); fgCurFontIdx = 0; // use font 0 (default font, set in ctor) @@ -437,7 +436,7 @@ index ca38ed1f9c..8f1d62686b 100644 - char *ttfont = gSystem->Which(ttpath, fontname, kReadPermission); - - if (!ttfont) { -- Error("TTF::SetTextFont", "font file %s not found in path", fontname); +- Error("TTF::SetTextFont", "font file %s not found in path %s", fontname, ttpath); - if (fgFontCount) { - Warning("TTF::SetTextFont", "using default font %s", fgFontName[0]); - fgCurFontIdx = 0; // use font 0 (default font, set in ctor) @@ -454,7 +453,7 @@ index ca38ed1f9c..8f1d62686b 100644 Error("TTF::SetTextFont", "error loading font %s", ttfont); delete [] ttfont; if (tface) FT_Done_Face(tface); -@@ -448,19 +568,20 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic) +@@ -453,19 +573,20 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic) delete [] ttfont; fgFontName[fgFontCount] = StrDup(basename); @@ -478,7 +477,7 @@ index ca38ed1f9c..8f1d62686b 100644 } return 0; -@@ -489,70 +610,50 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic) +@@ -494,70 +615,50 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic) void TTF::SetTextFont(Font_t fontnumber) { @@ -588,7 +587,7 @@ index ca38ed1f9c..8f1d62686b 100644 //////////////////////////////////////////////////////////////////////////////// diff --git a/graf2d/postscript/CMakeLists.txt b/graf2d/postscript/CMakeLists.txt -index eb091bbb39..a05023a3f4 100644 +index eb091bbb396..a05023a3f41 100644 --- a/graf2d/postscript/CMakeLists.txt +++ b/graf2d/postscript/CMakeLists.txt @@ -27,6 +27,7 @@ ROOT_STANDARD_LIBRARY_PACKAGE(Postscript @@ -600,7 +599,7 @@ index eb091bbb39..a05023a3f4 100644 Graf ) diff --git a/graf2d/postscript/src/TPostScript.cxx b/graf2d/postscript/src/TPostScript.cxx -index 09ea7ffa9c..180fd5e3c1 100644 +index df9e3ae16ea..1e353e1ca53 100644 --- a/graf2d/postscript/src/TPostScript.cxx +++ b/graf2d/postscript/src/TPostScript.cxx @@ -234,6 +234,7 @@ To change the color model use `gStyle->SetColorModelPS(c)`. @@ -611,7 +610,7 @@ index 09ea7ffa9c..180fd5e3c1 100644 #include "strlcpy.h" #include "snprintf.h" -@@ -1585,56 +1586,60 @@ Bool_t TPostScript::FontEmbedType42(const char *filename) +@@ -1584,56 +1585,60 @@ Bool_t TPostScript::FontEmbedType42(const char *filename) void TPostScript::FontEmbed(void) { @@ -715,7 +714,7 @@ index 09ea7ffa9c..180fd5e3c1 100644 } else { if (FontEmbedType2(ttfont)) { // nothing -@@ -1643,12 +1648,13 @@ void TPostScript::FontEmbed(void) +@@ -1642,12 +1647,13 @@ void TPostScript::FontEmbed(void) } else if(FontEmbedType42(ttfont)) { // nothing } else { @@ -733,7 +732,7 @@ index 09ea7ffa9c..180fd5e3c1 100644 } } PrintStr("%%IncludeResource: font Times-Roman@"); -@@ -2837,10 +2843,10 @@ void TPostScript::Text(Double_t xx, Double_t yy, const wchar_t *chars) +@@ -2836,10 +2842,10 @@ void TPostScript::Text(Double_t xx, Double_t yy, const wchar_t *chars) { "Root.PSFont.9", "/FreeMonoOblique" }, { "Root.PSFont.10", "/FreeMonoBold" }, { "Root.PSFont.11", "/FreeMonoBoldOblique" }, @@ -748,10 +747,10 @@ index 09ea7ffa9c..180fd5e3c1 100644 { "Root.PSFont.STIXGenIt", "/STIXGeneral-Italic" }, { "Root.PSFont.STIXGenBd", "/STIXGeneral-Bold" }, diff --git a/graf3d/gl/CMakeLists.txt b/graf3d/gl/CMakeLists.txt -index a874da9e1d..5454469606 100644 +index e759473ca0f..c453397fc52 100644 --- a/graf3d/gl/CMakeLists.txt +++ b/graf3d/gl/CMakeLists.txt -@@ -208,6 +208,7 @@ ROOT_STANDARD_LIBRARY_PACKAGE(RGL +@@ -211,6 +211,7 @@ ROOT_STANDARD_LIBRARY_PACKAGE(RGL ${GL2PS_LIBRARIES} ${X11_LIBRARIES} RGlew @@ -760,7 +759,7 @@ index a874da9e1d..5454469606 100644 Hist Gui diff --git a/graf3d/gl/src/TGLFontManager.cxx b/graf3d/gl/src/TGLFontManager.cxx -index 776e9d286f..c4134c5980 100644 +index 58ea1188d59..647642de615 100644 --- a/graf3d/gl/src/TGLFontManager.cxx +++ b/graf3d/gl/src/TGLFontManager.cxx @@ -36,6 +36,7 @@ @@ -771,7 +770,7 @@ index 776e9d286f..c4134c5980 100644 /** \class TGLFont \ingroup opengl -@@ -450,16 +451,120 @@ void TGLFontManager::RegisterFont(Int_t sizeIn, Int_t fileID, TGLFont::EMode mod +@@ -448,16 +449,120 @@ void TGLFontManager::RegisterFont(Int_t sizeIn, Int_t fileID, TGLFont::EMode mod FontMap_i it = fFontMap.find(TGLFont(size, fileID, mode)); if (it == fFontMap.end()) { @@ -902,7 +901,7 @@ index 776e9d286f..c4134c5980 100644 FTFont* ftfont = 0; switch (mode) diff --git a/graf3d/gl/src/TGLText.cxx b/graf3d/gl/src/TGLText.cxx -index f84f5193d2..8a672c787c 100644 +index 2ed3ee0917a..03feb0ee0a4 100644 --- a/graf3d/gl/src/TGLText.cxx +++ b/graf3d/gl/src/TGLText.cxx @@ -32,6 +32,8 @@ @@ -914,7 +913,7 @@ index f84f5193d2..8a672c787c 100644 #define FTGL_BITMAP 0 #define FTGL_PIXMAP 1 #define FTGL_OUTLINE 2 -@@ -176,27 +178,35 @@ void TGLText::SetGLTextFont(Font_t fontnumber) +@@ -175,27 +177,35 @@ void TGLText::SetGLTextFont(Font_t fontnumber) { int fontid = fontnumber / 10; @@ -971,7 +970,7 @@ index f84f5193d2..8a672c787c 100644 if (fGLTextFont) delete fGLTextFont; -@@ -204,7 +214,9 @@ void TGLText::SetGLTextFont(Font_t fontnumber) +@@ -203,7 +213,9 @@ void TGLText::SetGLTextFont(Font_t fontnumber) fGLTextFont = new FTGLPolygonFont(ttfont); @@ -982,32 +981,6 @@ index f84f5193d2..8a672c787c 100644 Error("SetGLTextFont","Cannot set FTGL::FaceSize"); - delete [] ttfont; } -diff --git a/gui/gui/src/TGApplication.cxx b/gui/gui/src/TGApplication.cxx -index 72d7dbbf95..73a44fdd7f 100644 ---- a/gui/gui/src/TGApplication.cxx -+++ b/gui/gui/src/TGApplication.cxx -@@ -81,20 +81,12 @@ TGApplication::TGApplication(const char *appClassName, - gROOT->SetBatch(kFALSE); - - if (strcmp(appClassName, "proofserv")) { -- const char *ttpath = gEnv->GetValue("Root.TTFontPath", -- TROOT::GetTTFFontDir()); -- char *ttfont = gSystem->Which(ttpath, "arialbd.ttf", kReadPermission); -- // Added by cholm for use of DFSG - fonts - based on fix by Kevin -- if (!ttfont) -- ttfont = gSystem->Which(ttpath, "FreeSansBold.ttf", kReadPermission); -- if (ttfont && gEnv->GetValue("Root.UseTTFonts", 1)) { -+ if (gEnv->GetValue("Root.UseTTFonts", 1)) { - TPluginHandler *h; - if ((h = gROOT->GetPluginManager()->FindHandler("TVirtualX", "x11ttf"))) - if (h->LoadPlugin() == -1) - Info("TGApplication", "no TTF support"); - } -- -- delete [] ttfont; - } - - // Create the canvas colors early so they are allocated before -- -2.45.0 +2.52.0 diff --git a/root-no-export-python-modules.patch b/root-no-export-python-modules.patch index be22620..cb56d35 100644 --- a/root-no-export-python-modules.patch +++ b/root-no-export-python-modules.patch @@ -1,16 +1,38 @@ ---- root-6.32.00/bindings/pyroot/pythonizations/CMakeLists.txt 2024-05-28 06:06:46.000000000 +0200 -+++ root-6.32.00/bindings/pyroot/pythonizations/CMakeLists.txt 2024-05-29 09:47:08.960324940 +0200 -@@ -189,11 +189,10 @@ - # Create meta-target PyROOT3 (INTERFACE library) - # Export of targets are not supported for custom targets(add_custom_targets()) - add_library(PyROOT INTERFACE) +From e0dec6edd0678c2c52aaeb2f3645378ffeaa2d73 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Thu, 4 Dec 2025 23:13:28 +0100 +Subject: [PATCH] Dont export Python modules + +--- + bindings/pyroot/pythonizations/CMakeLists.txt | 8 +------- + 1 file changed, 1 insertion(+), 7 deletions(-) + +diff --git a/bindings/pyroot/pythonizations/CMakeLists.txt b/bindings/pyroot/pythonizations/CMakeLists.txt +index 1230f18ca47..2df4b733320 100644 +--- a/bindings/pyroot/pythonizations/CMakeLists.txt ++++ b/bindings/pyroot/pythonizations/CMakeLists.txt +@@ -202,11 +202,6 @@ foreach(py_source ${py_sources}) + COMMENT "Compiling PyROOT source ${py_source} for Python ${Python3_VERSION}") + endforeach() + +-# Create meta-target PyROOT3 (INTERFACE library) +-# Export of targets are not supported for custom targets(add_custom_targets()) +-add_library(PyROOT INTERFACE) -target_link_libraries(PyROOT INTERFACE cppyy_backend cppyy ROOTPythonizations) -+target_link_libraries(PyROOT INTERFACE cppyy_backend cppyy) +- + # Define library output directories for build and install trees + set(pymoduledir_build "${localruntimedir}/ROOT") + set(pymoduledir_install "${CMAKE_INSTALL_PYTHONDIR}/ROOT") +@@ -231,8 +226,7 @@ if(NOT MSVC) + endif() # Install library -install(TARGETS ${libname} EXPORT ${CMAKE_PROJECT_NAME}Exports -- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT libraries -+install(TARGETS ${libname} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT libraries - LIBRARY DESTINATION ${CMAKE_INSTALL_PYTHONDIR} COMPONENT libraries - ARCHIVE DESTINATION ${CMAKE_INSTALL_PYTHONDIR} COMPONENT libraries) +- RUNTIME DESTINATION ${pymoduledir_install} COMPONENT libraries ++install(TARGETS ${libname} RUNTIME DESTINATION ${pymoduledir_install} COMPONENT libraries + LIBRARY DESTINATION ${pymoduledir_install} COMPONENT libraries + ARCHIVE DESTINATION ${pymoduledir_install} COMPONENT libraries) +-- +2.52.0 + diff --git a/root-vecops-Adaptive-size-of-long-RVec-instances-in-RVec-.patch b/root-vecops-Adaptive-size-of-long-RVec-instances-in-RVec-.patch new file mode 100644 index 0000000..369ce3e --- /dev/null +++ b/root-vecops-Adaptive-size-of-long-RVec-instances-in-RVec-.patch @@ -0,0 +1,135 @@ +From 44c501ac9fdb9049783d9738a9603eec572f52f0 Mon Sep 17 00:00:00 2001 +From: Jonas Rembser +Date: Wed, 26 Nov 2025 18:11:25 +0100 +Subject: [PATCH] [vecops] Adaptive size of long RVec instances in RVec test + +For the tests to make sense, some vectors need to be longer than the +maximum small vector size. This maximum size is compiler and +architecture dependent. For `RVec` on ARM64 with gcc 14, the +small vector capacity turns out to be 60, which is larger than the +current test vector size of 18. + +Therefore, the test is refactored to adapt the large vector size +automatically, according to the maximum small vector size. +--- + math/vecops/test/vecops_rvec.cxx | 81 +++++++++++++++++++++++++------- + 1 file changed, 63 insertions(+), 18 deletions(-) + +diff --git a/math/vecops/test/vecops_rvec.cxx b/math/vecops/test/vecops_rvec.cxx +index 432c673a553..8cbe36ee6d8 100644 +--- a/math/vecops/test/vecops_rvec.cxx ++++ b/math/vecops/test/vecops_rvec.cxx +@@ -1672,15 +1672,35 @@ TEST_P(VecOpsSwap, BothSmallVectors) + + TEST_P(VecOpsSwap, BothRegularVectors) + { +- RVec fixed_vreg1{1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3}; +- RVec fixed_vreg2{4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6}; +- RVec fixed_vreg3{7, 8, 9, 7, 8, 9, 7, 8, 9, 7, 8, 9, 7, 8, 9, 7, 8, 9, 7}; ++ constexpr std::size_t smallVecSize = ROOT::Internal::VecOps::RVecInlineStorageSize::value; ++ ++ // The number of elemens in the large RVecs will be the smallest multiple of ++ // three that larger than smallVecSize. ++ constexpr int nCycle = 3; ++ constexpr std::size_t nElems = ((smallVecSize / nCycle) + 1) * nCycle; ++ ++ RVec fixed_vreg1(nElems); ++ RVec fixed_vreg2(nElems); ++ RVec fixed_vreg3(nElems + 1); + RVec fixed_vmocksmall{0, 7}; + +- RVec vreg1{1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3}; +- RVec vreg2{4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6}; +- RVec vreg3{7, 8, 9, 7, 8, 9, 7, 8, 9, 7, 8, 9, 7, 8, 9, 7, 8, 9, 7}; +- RVec vmocksmall{0, 7, 8, 9, 7, 8, 9, 7, 8, 9, 7, 8, 7, 8, 9, 7, 8, 9}; ++ RVec vreg1(nElems); ++ RVec vreg2(nElems); ++ RVec vreg3(nElems + 1); ++ RVec vmocksmall(nElems + 1); ++ ++ for (std::size_t i = 0; i < nElems; ++i) { ++ vreg1[i] = (i % nCycle) + 1; ++ vreg2[i] = vreg1[i] + nCycle; ++ vreg3[i] = vreg2[i] + nCycle; ++ fixed_vreg1[i] = vreg1[i]; ++ fixed_vreg2[i] = vreg2[i]; ++ fixed_vreg3[i] = vreg3[i]; ++ vmocksmall[i + 1] = vreg3[i]; ++ } ++ fixed_vreg3[nElems] = fixed_vreg3[0]; ++ vreg3[nElems] = vreg3[0]; ++ + vmocksmall.erase(vmocksmall.begin() + 2, vmocksmall.end()); + // vmocksmall is a regular vector of size 2 + +@@ -1798,11 +1818,22 @@ TEST_P(VecOpsSwap, BothAdoptingVectors) + // in cases where ROOT::VecOps::swap produces 1 regular and 1 adopting vector + TEST_P(VecOpsSwap, SmallRegularVectors) + { ++ constexpr std::size_t smallVecSize = ROOT::Internal::VecOps::RVecInlineStorageSize::value; ++ ++ // The number of elemens in the large RVecs will be the smallest multiple of ++ // three that larger than smallVecSize. ++ constexpr int nCycle = 3; ++ constexpr std::size_t nElems1 = ((smallVecSize / nCycle) + 1) * nCycle; ++ constexpr std::size_t nElems2 = nElems1 + nCycle; // some vectors should be larger than others ++ + RVec fixed_vsmall{1, 2, 3}; + RVec fixed_vreg1{4, 5, 6}; + RVec fixed_vreg2{7, 8}; + RVec fixed_vreg3{9, 10, 11, 12, 13, 14}; +- RVec fixed_vreg4{15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30}; ++ RVec fixed_vreg4(nElems1); ++ for (std::size_t i = 0; i < nElems1; ++i) { ++ fixed_vreg4[i] = i + 15; ++ } + + // need multiple hard copies since after swap of a small and a regular, + // there is no fixed policy whether 2 regular vectors are produced or 1 small and 1 regular +@@ -1815,19 +1846,33 @@ TEST_P(VecOpsSwap, SmallRegularVectors) + RVec vsmall7{1, 2, 3}; + RVec vsmall8{1, 2, 3}; + +- RVec vreg1{4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6}; +- vreg1.erase(vreg1.begin() + 3, vreg1.end()); // regular vector of size 3 +- RVec vreg10{4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6}; ++ RVec vreg1; ++ RVec vreg10; ++ RVec vreg2{7, 8}; ++ RVec vreg20{7, 8}; ++ RVec vreg3{9, 10, 11, 12, 13, 14}; ++ RVec vreg30{9, 10, 11, 12, 13, 14}; ++ RVec vreg4(nElems1); ++ ++ for (std::size_t i = 0; i < nElems2; ++i) { ++ double val = (i % nCycle) + 4; ++ vreg1.push_back(val); ++ vreg10.push_back(vreg1.back()); ++ vreg2.push_back(val); ++ vreg20.push_back(vreg2.back()); ++ vreg3.push_back(val); ++ vreg30.push_back(vreg3.back()); ++ } ++ for (std::size_t i = 0; i < nElems1; ++i) { ++ vreg4[i] = i + 15; ++ } ++ ++ vreg1.erase(vreg1.begin() + 3, vreg1.end()); // regular vector of size 3 + vreg10.erase(vreg10.begin() + 3, vreg10.end()); // regular vector of size 3 +- RVec vreg2{7, 8, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6}; +- vreg2.erase(vreg2.begin() + 2, vreg2.end()); // regular vector of size 2 +- RVec vreg20{7, 8, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6}; ++ vreg2.erase(vreg2.begin() + 2, vreg2.end()); // regular vector of size 2 + vreg20.erase(vreg20.begin() + 2, vreg20.end()); // regular vector of size 2 +- RVec vreg3{9, 10, 11, 12, 13, 14, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6}; +- vreg3.erase(vreg3.begin() + 6, vreg3.end()); // regular vector of size 6 +- RVec vreg30{9, 10, 11, 12, 13, 14, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6}; ++ vreg3.erase(vreg3.begin() + 6, vreg3.end()); // regular vector of size 6 + vreg30.erase(vreg30.begin() + 6, vreg30.end()); // regular vector of size 6 +- RVec vreg4{15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30}; + // vreg4 is a regular vector that cannot "fit" to small vector + + // verify that initially vectors are not small +-- +2.52.0 + diff --git a/root.spec b/root.spec index 030c783..87599a4 100644 --- a/root.spec +++ b/root.spec @@ -37,9 +37,9 @@ %global __provides_exclude_from ^%{python3_sitearch}/lib.*\\.so$ Name: root -Version: 6.36.04 +Version: 6.38.00 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 4%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -64,7 +64,7 @@ Source7: JupyROOT-on-EPEL Source8: %{name}-get-src.sh # Clad is a source-transformation automatic differentiation (AD) # library for C++, implemented as a plugin for the Clang compiler -Source9: https://github.com/vgvassilev/clad/archive/v1.9/clad-1.9.tar.gz +Source9: https://github.com/vgvassilev/clad/archive/v2.2/clad-2.2.tar.gz # Use system fonts Patch0: %{name}-fontconfig.patch # Reduce memory usage during linking on ARM and x86 by generating @@ -78,31 +78,22 @@ Patch3: %{name}-no-export-python-modules.patch # Run some test on 32 bit that upstream has disabled Patch4: %{name}-32bit-tests.patch # Adjust test/stressGraphics.ref -# https://github.com/root-project/root/pull/18989 +# https://github.com/root-project/root/pull/30667 Patch5: %{name}-Adjust-test-stressGraphics.ref.patch # Revert test change that breaks the test Patch6: %{name}-Revert-test-Fetch-the-geometries-from-EOS-and-not-fr.patch -# Ignore warnings from uring IO -# https://github.com/root-project/root/pull/18994 -Patch7: %{name}-Ignore-warnings-from-uring-IO.patch # Preserve memory during parallel build # https://github.com/root-project/root/pull/18991 -Patch8: %{name}-Save-memory-Do-not-link-to-LLVM-libraries-in-parallel.patch -# Fix Big Endian test failure -# https://github.com/root-project/root/pull/18992 -Patch9: %{name}-Use-size_t-for-offset.patch -# Fix 32 bit test failure -# https://github.com/root-project/root/pull/18993 -Patch10: %{name}-Fix-test-for-32-bit-architectures.patch -# https://github.com/root-project/root/issues/18988 -# https://github.com/root-project/root/pull/19014 -# https://github.com/root-project/root/pull/19107 -Patch11: %{name}-Python-Update-reference-refcount-values-for-Python-3.patch -Patch12: %{name}-Python-Update-reference-refcount-values-for-Python-3x.patch -# https://github.com/root-project/root/pull/19689 -Patch13: %{name}-df-Support-libarrow-21.patch -# https://github.com/root-project/root/pull/19764 -Patch14: %{name}-Avoid-OverflowError-from-RDF-pythonization.patch +Patch7: %{name}-Save-memory-Do-not-link-to-LLVM-libraries-in-parallel.patch +# Add missing includes of TMath.h +# https://github.com/root-project/root/pull/20601 +Patch8: %{name}-Geom-Add-missing-includes-of-TMath.h.patch +# Fix numpy vs dataframe type mismatch om ix86 +# https://github.com/root-project/root/pull/20668 +Patch9: %{name}-Fix-a-numpy-test-for-32-bit-archs.patch +# Backport a test fix from upstream +Patch10: %{name}-VecOps-Remove-outdated-IsSmall-helper-function-in-te.patch +Patch11: %{name}-vecops-Adaptive-size-of-long-RVec-instances-in-RVec-.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -133,12 +124,9 @@ BuildRequires: libxml2-devel BuildRequires: fftw-devel BuildRequires: gsl-devel BuildRequires: unuran-devel -BuildRequires: mariadb-connector-c-devel BuildRequires: sqlite-devel -BuildRequires: unixODBC-devel BuildRequires: libGL-devel BuildRequires: libGLU-devel -BuildRequires: libpq-devel BuildRequires: libxcrypt-devel BuildRequires: python%{python3_pkgversion}-devel >= 3.7 BuildRequires: python%{python3_pkgversion}-setuptools @@ -148,10 +136,6 @@ BuildRequires: qt6-qtbase-devel BuildRequires: qt6-qtwebengine-devel %endif BuildRequires: openssl-devel -%if %{?fedora}%{!?fedora:0} >= 41 -# Needed by civetweb.c in root-net-http -BuildRequires: openssl-devel-engine -%endif BuildRequires: libtool-ltdl-devel BuildRequires: desktop-file-utils BuildRequires: dcap-devel @@ -191,8 +175,6 @@ BuildRequires: cppzmq-devel %if %{pandas} BuildRequires: python%{python3_pkgversion}-pandas %endif -BuildRequires: python%{python3_pkgversion}-rcssmin -BuildRequires: uglify-js3 BuildRequires: perl-generators BuildRequires: gtest-devel BuildRequires: gmock-devel @@ -214,6 +196,7 @@ Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} Requires: %{name}-multiproc%{?_isa} = %{version}-%{release} Requires: %{name}-net%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} +Requires: %{name}-tree-ntuple%{?_isa} = %{version}-%{release} Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} Requires: hicolor-icon-theme Obsoletes: emacs-%{name} < 5.34.28 @@ -229,9 +212,7 @@ the bulk of the data. Included are histogramming methods in an arbitrary number of dimensions, curve fitting, function evaluation, minimization, graphics and visualization classes to allow the easy setup of an analysis system that can query and process the data -interactively or in batch mode, as well as a general parallel -processing framework, PROOF, that can considerably speed up an -analysis. +interactively or in batch mode. Thanks to the built-in C++ interpreter cling, the command, the scripting and the programming language are all C++. The interpreter @@ -305,9 +286,7 @@ Requires: %{name}-tree%{?_isa} = %{version}-%{release} Requires: %{name}-tree-dataframe%{?_isa} = %{version}-%{release} %endif Requires: %{name}-tree-ntuple%{?_isa} = %{version}-%{release} -%if %{root7} Requires: %{name}-tree-ntuple-utils%{?_isa} = %{version}-%{release} -%endif Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} Requires: %{name}-vecops%{?_isa} = %{version}-%{release} # To resolve dependency in installed ROOTConfig.cmake @@ -328,6 +307,7 @@ Requires: font(droidsansfallback) Obsoletes: %{name}-ruby < 6.00.00 Obsoletes: %{name}-vdt < 6.10.00 Obsoletes: %{name}-proof-pq2 < 6.16.00 +Obsoletes: %{name}-proofd < 6.16.00 Obsoletes: %{name}-rootd < 6.16.00 Obsoletes: %{name}-geocad < 6.18.00 Obsoletes: %{name}-graf-qt < 6.18.00 @@ -340,6 +320,7 @@ Obsoletes: %{name}-net-globus < 6.18.00 Obsoletes: %{name}-net-ldap < 6.18.00 Obsoletes: %{name}-net-krb5 < 6.18.00 Obsoletes: %{name}-table < 6.18.00 +Obsoletes: %{name}-xproof < 6.22.08-2 Obsoletes: %{name}-memstat < 6.26.00 Obsoletes: %{name}-montecarlo-vmc < 6.26.00 Obsoletes: %{name}-doc < 6.26.00 @@ -347,8 +328,14 @@ Obsoletes: %{name}-io-gfal < 6.30.00 Obsoletes: %{name}-roofit-common < 6.30.00 Obsoletes: %{name}-gui-qt5webdisplay < 6.36.00 Obsoletes: %{name}-hist-draw < 6.36.00 -Obsoletes: %{name}-histv7 < 6.36.00 Obsoletes: %{name}-html < 6.36.00 +Obsoletes: %{name}-proof < 6.38.00 +Obsoletes: %{name}-proof-bench < 6.38.00 +Obsoletes: %{name}-proof-player < 6.38.00 +Obsoletes: %{name}-proof-sessionviewer < 6.38.00 +Obsoletes: %{name}-sql-mysql < 6.38.00 +Obsoletes: %{name}-sql-odbc < 6.38.00 +Obsoletes: %{name}-sql-pgsql < 6.38.00 %description core This package contains the core libraries used by ROOT: libCore, libNew, @@ -414,8 +401,6 @@ Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} # Package split (tpython from Python bindings) Obsoletes: python%{python3_pkgversion}-%{name} < 6.22.00 -# JsMVA python module is now a submodule of ROOT python module -Provides: python%{python3_pkgversion}-jsmva = %{version}-%{release} Obsoletes: python%{python3_pkgversion}-jsmva < 6.32.00 %description -n python%{python3_pkgversion}-%{name} @@ -431,7 +416,7 @@ Requires: %{name}-core = %{version}-%{release} # notebook package was merged with JupyROOT package Provides: %{name}-notebook = %{version}-%{release} Obsoletes: %{name}-notebook < 6.32.00 -Requires: js-jsroot >= 7.9 +Requires: js-jsroot >= 7.10 %if %{?fedora}%{!?fedora:0} || ( %{?rhel}%{!?rhel:0} >= 10 && "%{?dist}" != ".el10_0" ) # jupyter-notebook not available in RHEL/EPEL # some functionality missing @@ -521,8 +506,8 @@ Obsoletes: %{name}-geom < 6.28.00 %description geom-builder This package contains a library for building geometries in ROOT. -%package geom-painter -Summary: Geometry painter library for ROOT +%package geom-checker +Summary: Geometry checker library for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-geom%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} @@ -531,6 +516,17 @@ Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} + +%description geom-checker +This package contains a library for checking geometries in ROOT. + +%package geom-painter +Summary: Geometry painter library for ROOT +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-geom%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} # Package split (geom-builder and geom-painter from geom) Obsoletes: %{name}-geom < 6.28.00 @@ -716,6 +712,8 @@ Requires: %{name}-graf%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Requires: %{name}-tree-ntuple%{?_isa} = %{version}-%{release} +Requires: %{name}-tree-ntuple-browse%{?_isa} = %{version}-%{release} # Dynamic dependencies Requires: %{name}-graf-x11%{?_isa} = %{version}-%{release} Requires: %{name}-gui-ged%{?_isa} = %{version}-%{release} @@ -797,6 +795,14 @@ Recorded events are: All the recorded events from one session are stored in one TFile and can be replayed again anytime. +%package gui-treemap +Summary: GUI element for tree maps in ROOT +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} + +%description gui-treemap +This package contains a library to show tree maps in the ROOT GUI. + %package hbook Summary: Hbook library for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -940,7 +946,6 @@ Summary: Core mathematics library for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} # Dynamic dependencies Requires: %{name}-mathmore%{?_isa} = %{version}-%{release} -Requires: %{name}-minuit%{?_isa} = %{version}-%{release} Requires: %{name}-minuit2%{?_isa} = %{version}-%{release} %description mathcore @@ -1127,17 +1132,16 @@ Requires: %{name}-io%{?_isa} = %{version}-%{release} This package contains the ROOT networking library. %package net-rpdutils -Summary: Authentication utilities used by xproofd +Summary: Authentication utilities used by rootd Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-net%{?_isa} = %{version}-%{release} %description net-rpdutils -This package contains authentication utilities used by xproofd. +This package contains authentication utilities used by rootd. %package net-auth Summary: Authentication extension for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-net%{?_isa} = %{version}-%{release} %description net-auth @@ -1155,9 +1159,11 @@ access to http based storage such as webdav and S3. %package net-http Summary: HTTP server extension for ROOT +# The system civetweb is not compiled with websocket support +Provides: bundled(civetweb) Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: js-jsroot >= 7.9 +Requires: js-jsroot >= 7.10 # Library split (net-httpsniff from net-http) Obsoletes: %{name}-net-http < 6.14.00 @@ -1191,71 +1197,6 @@ Requires: %{name}-net%{?_isa} = %{version}-%{release} This package contains the NetX extension for ROOT, i.e. a client for the xrootd server. Only the new (NetXNG) version is provided. -%package proof -Summary: PROOF extension for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} -Obsoletes: %{name}-clarens < 5.34.01 -Obsoletes: %{name}-peac < 5.34.01 -# Package split (proof-player from proof) -Obsoletes: %{name}-proof < 6.14.00 -Obsoletes: %{name}-proofd < 6.16.00 -Obsoletes: %{name}-xproof < 6.22.08-2 - -%description proof -This package contains the proof extension for ROOT. This provides a -client to use in a PROOF environment. - -%package proof-bench -Summary: PROOF benchmarking -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-proof%{?_isa} = %{version}-%{release} -Requires: %{name}-proof-player%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} - -%description proof-bench -This package contains the steering class for PROOF benchmarks. - -%package proof-player -Summary: PROOF player extension for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-proof%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} -# Package split (proof-player from proof) -Obsoletes: %{name}-proof < 6.14.00 - -%description proof-player -This package contains the proof player extension for ROOT. - -%package proof-sessionviewer -Summary: GUI to browse an interactive PROOF session -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-gui%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-proof%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} - -%description proof-sessionviewer -This package contains a library for browsing an interactive PROOF -session in ROOT. - %if %{roofit} %package roofit Summary: ROOT extension for modeling expected distributions - toolkit @@ -1507,31 +1448,6 @@ suitable for adoption in different disciplines as well. This package contains extra tools for RooFit projects. %endif -%package sql-mysql -Summary: MySQL client plugin for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_isa} = %{version}-%{release} - -%description sql-mysql -This package contains the MySQL plugin for ROOT. This plugin -provides a thin client (interface) to MySQL servers. Using this -client, one can obtain information from a MySQL database into the -ROOT environment. - -This package is deprecated and will be removed in the next release of ROOT. - -%package sql-odbc -Summary: ODBC plugin for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_isa} = %{version}-%{release} - -%description sql-odbc -This package contains the ODBC (Open DataBase Connectivity) plugin -for ROOT, that allows transparent access to any kind of database that -supports the ODBC protocol. - -This package is deprecated and will be removed in the next release of ROOT. - %package sql-sqlite Summary: Sqlite client plugin for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1543,19 +1459,6 @@ provides a thin client (interface) to sqlite servers. Using this client, one can obtain information from a sqlite database into the ROOT environment. -%package sql-pgsql -Summary: PostgreSQL client plugin for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_isa} = %{version}-%{release} - -%description sql-pgsql -This package contains the PostGreSQL plugin for ROOT. This plugin -provides a thin client (interface) to PostGreSQL servers. Using this -client, one can obtain information from a PostGreSQL database into the -ROOT environment. - -This package is deprecated and will be removed in the next release of ROOT. - %package tmva Summary: Toolkit for multivariate data analysis License: BSD-3-Clause @@ -1615,6 +1518,7 @@ License: BSD-3-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-tmva%{?_isa} = %{version}-%{release} Requires: %{name}-tmva-sofie%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} Requires: python%{python3_pkgversion}-numpy %description tmva-python @@ -1805,9 +1709,12 @@ This package provides a Web based GUI for ROOT. Summary: ROOT GUI browsable providers Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-geom%{?_isa} = %{version}-%{release} +Requires: %{name}-gui-treemap%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} +Requires: %{name}-tree-ntuple%{?_isa} = %{version}-%{release} +Requires: %{name}-tree-ntuple-browse%{?_isa} = %{version}-%{release} # Package split (gui-browsable-v7 from gui-browsable) Obsoletes: %{name}-gui-browsable < 6.32.06 @@ -1852,6 +1759,31 @@ Requires: %{name}-io%{?_isa} = %{version}-%{release} %description tree-ntuple This package contains the new ROOT n-tuple class (RNTuple). +%package tree-ntuple-browse +Summary: N-Tuple browsing library for ROOT +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-gui-treemap%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-tree-ntuple%{?_isa} = %{version}-%{release} +Requires: %{name}-tree-ntuple-utils%{?_isa} = %{version}-%{release} + +%description tree-ntuple-browse +This package contains a library for browsing n-tuples. + +%package tree-ntuple-utils +Summary: Ntuple utility library +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} +Requires: %{name}-tree-ntuple%{?_isa} = %{version}-%{release} + +%description tree-ntuple-utils +This package contains utility functions for ntuples. + %if %{root7} %package graf-gpadv7 Summary: Canvas and pad library for ROOT (ROOT 7) @@ -1894,9 +1826,11 @@ Summary: Additional ROOT GUI browsable providers (ROOT 7) Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpadv7%{?_isa} = %{version}-%{release} Requires: %{name}-gui-browsable%{?_isa} = %{version}-%{release} +Requires: %{name}-gui-treemap%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} Requires: %{name}-tree-ntuple%{?_isa} = %{version}-%{release} +Requires: %{name}-tree-ntuple-browse%{?_isa} = %{version}-%{release} # Package split (gui-browsable-v7 from gui-browsable) Obsoletes: %{name}-gui-browsable < 6.32.06 @@ -1939,16 +1873,12 @@ Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} This package contains a library to show a pop-up dialog when fitting various kinds of data. -%package tree-ntuple-utils -Summary: Ntuple utility library (ROOT 7) +%package histv7 +Summary: Histogram library for ROOT 7 Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-ntuple%{?_isa} = %{version}-%{release} -%description tree-ntuple-utils -This package contains utility functions for ntuples. +%description histv7 +This package contains a library for histogramming in ROOT 7. %endif %prep @@ -1966,9 +1896,6 @@ This package contains utility functions for ntuples. %patch -P9 -p1 %patch -P10 -p1 %patch -P11 -p1 -%patch -P12 -p1 -%patch -P13 -p1 -%patch -P14 -p1 # Remove bundled sources in order to be sure they are not used # * afterimage @@ -1994,20 +1921,11 @@ rm core/lzma/src/*.tar.gz rm graf3d/gl/src/gl2ps.cxx graf3d/gl/src/gl2ps/gl2ps.h # * unuran rm math/unuran/src/*.tar.gz -# * xrootd-private-devel headers -rm -rf proof/xrdinc/* # * x11 extension headers rm -rf graf2d/x11/inc/X11 # * jsroot rm -rf js/[^f]* js/files/draw.htm js/files/online.htm -# Remove pre-minified script and style files -rm etc/notebook/JsMVA/js/*.min.js -rm etc/notebook/JsMVA/css/*.min.css - -# Remove executable permissions from source file -chmod -x interpreter/CppInterOp/lib/Interpreter/CppInterOp.cpp - # Additional documentation install -p -m 644 %{SOURCE7} bindings/jupyroot @@ -2022,14 +1940,6 @@ unset QTDIR unset QTLIB unset QTINC -# Minify script and style files -for s in etc/notebook/JsMVA/js/*.js ; do - uglifyjs-3 ${s} -c -m -o ${s%.js}.min.js -done -for s in etc/notebook/JsMVA/css/*.css ; do - python3 -m rcssmin < ${s} > ${s%.css}.min.css -done - %cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \ -DCMAKE_INSTALL_LIBDIR:PATH=%{_libdir}/%{name} \ @@ -2039,6 +1949,7 @@ done -DPython3_EXECUTABLE:PATH=%{__python3} \ -Dgnuinstall:BOOL=ON \ -Dbuiltin_cfitsio:BOOL=OFF \ + -Dbuiltin_civetweb:BOOL=ON \ -Dbuiltin_clang:BOOL=ON \ -Dbuiltin_cling:BOOL=ON \ -Dbuiltin_cppzmq:BOOL=OFF \ @@ -2084,8 +1995,9 @@ done -Dccache:BOOL=OFF \ -Ddistcc:BOOL=OFF \ -Dcefweb:BOOL=OFF \ + -Dcheck_connection:BOOL=OFF \ -Dclad:BOOL=ON \ - -DCLAD_SOURCE_DIR:PATH=${PWD}/clad-1.9 \ + -DCLAD_SOURCE_DIR:PATH=${PWD}/clad-2.2 \ -Dcocoa:BOOL=OFF \ -Dcuda:BOOL=OFF \ -Ddaos:BOOL=OFF \ @@ -2097,6 +2009,8 @@ done -Ddavix:BOOL=ON \ -Ddcache:BOOL=ON \ -Ddev:BOOL=OFF \ + -Dexperimental_adaptivecpp=OFF \ + -Dexperimental_genvectorx=OFF \ -Dfcgi:BOOL=ON \ -Dfftw3:BOOL=ON \ -DFIREFOX_EXECUTABLE:PATH=/usr/bin/firefox \ @@ -2112,13 +2026,9 @@ done -Dmathmore:BOOL=ON \ -Dmemory_termination:BOOL=OFF \ -Dminuit2_mpi:BOOL=OFF \ - -Dminuit2_omp:BOOL=OFF \ + -Dminuit2_omp:BOOL=ON \ -Dmpi:BOOL=OFF \ - -Dmysql:BOOL=ON \ - -Dodbc:BOOL=ON \ -Dopengl:BOOL=ON \ - -Dpgsql:BOOL=ON \ - -Dproof:BOOL=ON \ -Dpyroot:BOOL=ON \ -Dpythia8:BOOL=ON \ %ifarch %{qt6_qtwebengine_arches} @@ -2148,7 +2058,6 @@ done %else -Droot7:BOOL=OFF \ %endif - -Drpath:BOOL=OFF \ -Druby:BOOL=OFF \ -Druntime_cxxmodules:BOOL=OFF \ -Dshadowpw:BOOL=ON \ @@ -2157,6 +2066,7 @@ done -Dspectrum:BOOL=ON \ -Dsqlite:BOOL=ON \ -Dssl:BOOL=ON \ + -Dthisroot_scripts:BOOL=OFF \ -Dtmva:BOOL=ON \ -Dtmva-cpu:BOOL=ON \ -Dtmva-cudnn:BOOL=OFF \ @@ -2227,8 +2137,8 @@ mv %{buildroot}%{_libdir}/%{name}/*-gdb.py \ %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name} # Fix python extension suffix -mv %{buildroot}%{python3_sitearch}/libROOTPythonizations.so \ - %{buildroot}%{python3_sitearch}/libROOTPythonizations%{python3_ext_suffix} +mv %{buildroot}%{python3_sitearch}/ROOT/libROOTPythonizations.so \ + %{buildroot}%{python3_sitearch}/ROOT/libROOTPythonizations%{python3_ext_suffix} # Move noarch python modules to sitelib if [ "%{python3_sitelib}" != "%{python3_sitearch}" ] ; then @@ -2273,6 +2183,7 @@ rm -rf %{buildroot}%{_datadir}/%{name}/notebook/custom rm -rf %{buildroot}%{_datadir}/%{name}/notebook/html rm -rf %{buildroot}%{_datadir}/%{name}/notebook/kernels rm %{buildroot}%{_datadir}/%{name}/notebook/jupyter_notebook_config.py +rmdir %{buildroot}%{_datadir}/%{name}/notebook # Replace the rootnb.exe wrapper with a simpler one cat > %{buildroot}%{_bindir}/rootnb.exe << EOF @@ -2313,17 +2224,9 @@ sed -e 's!/usr/bin/python!%{__python3}!' \ -i %{buildroot}%{_datadir}/%{name}/pdg_table_update.py # Remove some junk -rm %{buildroot}%{_datadir}/%{name}/proof/*.sample -rm -rf %{buildroot}%{_datadir}/%{name}/proof/utils rm %{buildroot}%{_datadir}/%{name}/root.desktop -rm %{buildroot}%{_bindir}/setxrd* -rm %{buildroot}%{_bindir}/thisroot* rm %{buildroot}%{_pkgdocdir}/INSTALL rm %{buildroot}%{_pkgdocdir}/README.CXXMODULES.md -rm -rf %{buildroot}%{_includedir}/clang -rm -rf %{buildroot}%{_includedir}/clang-c -rm -rf %{buildroot}/usr/lib/cmake/CppInterOp -rm %{buildroot}/usr/lib/libclangCppInterOp.a rm -rf %{buildroot}%{_datadir}/%{name}/html # Only used on Windows @@ -2336,17 +2239,10 @@ rm ROOT@@Math@@Minimizer/P090_RMinimizer.C %endif rm TGLManager/P020_TGWin32GLManager.C rm TGLManager/P030_TGOSXGLManager.C -rm TProofMgr/P010_TXProofMgr.C -rm TProofServ/P010_TXProofServ.C -rm TSlave/P010_TXSlave.C -rm TSQLServer/P040_TOracleServer.C rm TVirtualGeoConverter/P010_TGeoVGConverter.C rm TVirtualGLImp/P020_TGWin32GL.C rm TVirtualX/P030_TGWin32.C rm TVirtualX/P050_TGQuartz.C -rmdir TProofMgr -rmdir TProofServ -rmdir TSlave rmdir TVirtualGeoConverter popd @@ -2435,8 +2331,8 @@ popd # - tutorial-analysis-dataframe-df105_WBosonAnalysis-py # - tutorial-analysis-dataframe-df106_HiggsToFourLeptons(-py) # - tutorial-analysis-dataframe-df107_SingleTopAnalysis-py -# - tutorial-experimental-rcanvas-df104-py -# - tutorial-experimental-rcanvas-df105-py +# - tutorial-visualisation-rcanvas-df104-py +# - tutorial-visualisation-rcanvas-df105-py # reads input data over network: # root://eospublic.cern.ch//eos/opendata/atlas/OutreachDatasets/2020-01-22/ # @@ -2465,7 +2361,7 @@ popd # reads input file over network # root://eospublic.cern.ch/eos/root-eos/h1/dstarmb.root # -# - tutorial-tmva-tmva103_Application +# - tutorial-machine_learning-tmva100_DataPreparation-py # reads input data over network # root://eospublic.cern.ch/eos/root-eos/cms_opendata_2012_nanoaod/SMHiggsToZZTo4L.root # @@ -2475,6 +2371,9 @@ popd # - test-stressgraphics-firefox-skip3d: # requires firefox... # +# - test-stressgraphics-svg +# Font metric differences +# # - tutorial-visualisation-webcanv-fonts_ttf.cxx: # Requires web graphics excluded="\ @@ -2492,8 +2391,8 @@ tutorial-analysis-dataframe-df104_HiggsToTwoPhotons-py|\ tutorial-analysis-dataframe-df105_WBosonAnalysis-py|\ tutorial-analysis-dataframe-df106_HiggsToFourLeptons|\ tutorial-analysis-dataframe-df107_SingleTopAnalysis-py|\ -tutorial-experimental-rcanvas-df104-py|\ -tutorial-experimental-rcanvas-df105-py|\ +tutorial-visualisation-rcanvas-df104-py|\ +tutorial-visualisation-rcanvas-df105-py|\ tutorial-io-ntuple-ntpl004_dimuon|\ tutorial-io-ntuple-ntpl008_import|\ tutorial-io-ntuple-ntpl011_global_temperatures|\ @@ -2501,52 +2400,39 @@ gtest-net-davix-RRawFileDavix|\ gtest-net-netxng-RRawFileNetXNG|\ gtest-net-netxng-TNetXNGFileTest|\ tutorial-analysis-parallel-mp_processSelector|\ -tutorial-tmva-tmva103_Application|\ +tutorial-machine_learning-tmva100_DataPreparation-py|\ test-webgui-ping|\ test-stressgraphics-firefox-skip3d|\ +test-stressgraphics-svg|\ tutorial-visualisation-webcanv-fonts_ttf.cxx" -# Duplicated tests -# https://github.com/root-project/root/issues/19346 -# - gtest-tree-treeplayer-ttreeindex-clone -# - gtest-tree-treeplayer-ttreeindex-getlistoffriends -# - gtest-tree-treeplayer-ttreereader-friends -excluded="${excluded}|\ -gtest-tree-treeplayer-ttreeindex-clone|\ -gtest-tree-treeplayer-ttreeindex-getlistoffriends|\ -gtest-tree-treeplayer-ttreereader-friends" - %ifarch %{ix86} # - gtest-hist-hist-TFormulaGradientTests # out of memory # # - pyunittests-bindings-pyroot-pythonizations-pyroot-array-numpy-views # ValueError: buffer is smaller than requested size +# +# - tmva-sofie-test-TestCustomModelsFromONNX +# Expected equality of these values: +# output.size() +# Which is: 1000 +# sizeof(Slice_Neg::output) / sizeof(float) +# Which is: 900 excluded="${excluded}|\ gtest-hist-hist-TFormulaGradientTests|\ -pyunittests-bindings-pyroot-pythonizations-pyroot-array-numpy-views" +pyunittests-bindings-pyroot-pythonizations-pyroot-array-numpy-views|\ +tmva-sofie-test-TestCustomModelsFromONNX\$\$" %endif %ifarch %{power64} -# - tutorial-roofit-roostats-IntervalExamples-py -# *** Break *** segmentation violation -excluded="${excluded}|\ -tutorial-roofit-roostats-IntervalExamples-py" - %if %{?fedora}%{!?fedora:0} >= 42 # - gtest-tree-ntuple-ntuple-emulated -# - gtest-tree-ntuple-ntuple-evolution +# - gtest-tree-ntuple-ntuple-evolution-shape # waitpid() failed excluded="${excluded}|\ gtest-tree-ntuple-ntuple-emulated|\ -gtest-tree-ntuple-ntuple-evolution" -%endif - -%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 10 -# tutorial-roofit-roostats-StandardBayesianMCMCDemo-py -# - ZeroDivisionError: float division by zero -excluded="${excluded}|\ -tutorial-roofit-roostats-StandardBayesianMCMCDemo-py" +gtest-tree-ntuple-ntuple-evolution-shape" %endif %endif @@ -2559,13 +2445,16 @@ gtest-roofit-roofitcore-testNaNPacker|\ gtest-roofit-roofitcore-testLikelihoodGradientJob" # - gtest-core-dictgen-dictgen-base -# - gtest-tmva-sofie-TestCustomModelsFromONNX +# - gtest-tree-dataframe-dataframe-concurrency +# - gtest-tree-dataframe-dataframe-snapshot-ntuple # - gtest-tree-dataframe-dataframe-unified-constructor -# +# - gtest-tree-dataframe-dataframe-vary +# - gtest-tree-dataframe-datasource-ntuple # - gtest-tree-ntuple-ntuple-basics # - gtest-tree-ntuple-ntuple-bulk # - gtest-tree-ntuple-ntuple-cast # - gtest-tree-ntuple-ntuple-compat +# - gtest-tree-ntuple-ntuple-evolution-type # - gtest-tree-ntuple-ntuple-extended # - gtest-tree-ntuple-ntuple-join-table # - gtest-tree-ntuple-ntuple-largefile2 @@ -2588,19 +2477,22 @@ gtest-roofit-roofitcore-testLikelihoodGradientJob" # - gtest-tree-ntuple-rfield-streamer # - gtest-tree-ntuple-rfield-variant # - gtest-tree-ntuple-rfield-vector -# - gtest-tree-ntupleutil-v7-ntuple-importer -# - gtest-tree-ntupleutil-v7-ntuple-inspector +# - gtest-tree-ntupleutil-ntuple-importer +# - gtest-tree-ntupleutil-ntuple-inspector +# - gtest-tree-tree-testTTreeRegressions # https://github.com/root-project/root/issues/12426 # # - pyunittests-bindings-distrdf-backend-distrdf-unit-backend-graph-caching # - pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-rtensor # - pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-stl-vector +# - pyunittests-io-io-rfile-py +# - tmva-sofie-test-TestCustomModelsFromONNX # - tutorial-analysis-dataframe-df006_ranges-py -# - tutorial-experimental-rcanvas-rbox-py # - tutorial-hist-hist007_TH1_liveupdate-py # - tutorial-math-exampleFunction-py # - tutorial-math-fit-combinedFit-py # - tutorial-math-fit-NumericalMinimization-py +# - tutorial-visualisation-rcanvas-rbox-py # https://github.com/root-project/root/issues/12429 # # - test-stresshistofit @@ -2609,14 +2501,16 @@ gtest-roofit-roofitcore-testLikelihoodGradientJob" # - test-stresshistogram-interpreted excluded="${excluded}|\ gtest-core-dictgen-dictgen-base|\ -gtest-tmva-sofie-TestCustomModelsFromONNX|\ +gtest-tree-dataframe-dataframe-concurrency|\ gtest-tree-dataframe-dataframe-snapshot-ntuple|\ gtest-tree-dataframe-dataframe-unified-constructor|\ +gtest-tree-dataframe-dataframe-vary|\ gtest-tree-dataframe-datasource-ntuple|\ gtest-tree-ntuple-ntuple-basics|\ gtest-tree-ntuple-ntuple-bulk|\ gtest-tree-ntuple-ntuple-cast|\ gtest-tree-ntuple-ntuple-compat|\ +gtest-tree-ntuple-ntuple-evolution-type|\ gtest-tree-ntuple-ntuple-extended|\ gtest-tree-ntuple-ntuple-join-table|\ gtest-tree-ntuple-ntuple-largefile2|\ @@ -2639,17 +2533,20 @@ gtest-tree-ntuple-rfield-class|\ gtest-tree-ntuple-rfield-streamer|\ gtest-tree-ntuple-rfield-variant|\ gtest-tree-ntuple-rfield-vector|\ -gtest-tree-ntupleutil-v7-ntuple-importer|\ -gtest-tree-ntupleutil-v7-ntuple-inspector|\ +gtest-tree-ntupleutil-ntuple-importer|\ +gtest-tree-ntupleutil-ntuple-inspector|\ +gtest-tree-tree-testTTreeRegressions|\ pyunittests-bindings-distrdf-backend-distrdf-unit-backend-graph-caching|\ pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-rtensor|\ pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-stl-vector|\ +pyunittests-io-io-rfile-py|\ +tmva-sofie-test-TestCustomModelsFromONNX|\ tutorial-analysis-dataframe-df006_ranges-py|\ -tutorial-experimental-rcanvas-rbox-py|\ tutorial-hist-hist007_TH1_liveupdate-py|\ tutorial-math-exampleFunction-py|\ tutorial-math-fit-combinedFit-py|\ tutorial-math-fit-NumericalMinimization-py|\ +tutorial-visualisation-rcanvas-rbox-py|\ test-stresshistofit\$\$|\ test-stresshistofit-interpreted|\ test-stresshistogram\$\$|\ @@ -2670,17 +2567,14 @@ excluded="${excluded}|\ gtest-math-matrix-testMatrixTSparse" %endif -%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 10 -# - https://github.com/root-project/root/issues/18995 -excluded="${excluded}|\ -gtest-tree-tree-testTTreeRegressions" -%endif - # Filter out parts of tests that require remote network access # RNTuple.StdAtomic fails on ix86 (different alignment 64 bit (non)atomic) # InterpreterTest.Evaluate fails on s390x # TClingDataMemberInfo.Offset fails on s390x # https://github.com/root-project/root/issues/14512 +# TTreeRegressions.PrintClustersRounding +# relies on specific versions of compression libraries +# https://github.com/root-project/root/issues/18995 export GTEST_FILTER=-\ %ifarch %{ix86} RNTuple.StdAtomic:\ @@ -2691,13 +2585,15 @@ TClingDataMemberInfo.Offset:\ TTreeReaderBasic.LorentzVector32:\ %endif RCsvDS.Remote:\ +RFile.RemoteRead:\ RNTuple.OpenHTTP:\ RRawFile.Remote:\ RSqliteDS.Davix:\ TChainParsing.DoubleSlash:\ TChainParsing.RemoteGlob:\ TFile.ReadWithoutGlobalRegistrationNet:\ -TFile.ReadWithoutGlobalRegistrationWeb +TFile.ReadWithoutGlobalRegistrationWeb:\ +TTreeRegressions.PrintClustersRounding %ctest -- -E "${excluded}" %pretrans net-http -p @@ -2764,6 +2660,8 @@ fi %{_bindir}/hadd %{_bindir}/root %{_bindir}/root.exe +%{_bindir}/rootbrowse +%{_bindir}/rootls %{_bindir}/rootn.exe %{_bindir}/rootreadspeed %{_bindir}/roots @@ -2846,6 +2744,7 @@ fi %{_pkgdocdir}/LICENSE %doc %{_pkgdocdir}/DEVELOPMENT.md %doc %{_pkgdocdir}/ReleaseNotes +%doc %{_pkgdocdir}/root_citation.bib %license LICENSE LGPL2_1.txt %files multiproc -f includelist-core-multiproc @@ -2874,14 +2773,9 @@ fi %files -n python%{python3_pkgversion}-%{name} -f includelist-bindings-pyroot %{python3_sitearch}/cppyy -%{python3_sitearch}/cppyy_backend %{python3_sitearch}/ROOT %{python3_sitearch}/ROOT-*.dist-info -%{python3_sitearch}/libcppyy.so -%{python3_sitearch}/libcppyy_backend.so -%{python3_sitearch}/libROOTPythonizations%{python3_ext_suffix} -%{_libdir}/%{name}/libcppyy.* -%{_libdir}/%{name}/libcppyy_backend.* +%{_libdir}/%{name}/libCPyCppyy.* %dir %{_includedir}/%{name}/CPyCppyy %files -n python%{python3_pkgversion}-jupyroot @@ -2889,7 +2783,6 @@ fi %{python3_sitelib}/JupyROOT-*.dist-info %{_datadir}/jupyter/kernels/python%{python3_pkgversion}-jupyroot %{_bindir}/rootnb.exe -%{_datadir}/%{name}/notebook %doc bindings/jupyroot/README.md %doc bindings/jupyroot/JupyROOT-on-EPEL @@ -3044,6 +2937,10 @@ fi %{_libdir}/%{name}/libRecorder.* %{_libdir}/%{name}/libRecorder_rdict.pcm +%files gui-treemap -f includelist-gui-treemap +%{_libdir}/%{name}/libROOTTreeMap.* +%{_libdir}/%{name}/libROOTTreeMap_rdict.pcm + %files hbook -f includelist-hist-hbook %{_bindir}/g2root %{_bindir}/h2root @@ -3085,7 +2982,6 @@ fi %files io-sql -f includelist-io-sql %{_libdir}/%{name}/libSQLIO.* %{_libdir}/%{name}/libSQLIO_rdict.pcm -%{_datadir}/%{name}/plugins/TFile/P090_TSQLFile.C %files io-xml -f includelist-io-xml %{_libdir}/%{name}/libXMLIO.* @@ -3260,44 +3156,6 @@ fi %{_datadir}/%{name}/plugins/TSystem/P040_TXNetSystem.C %{_datadir}/%{name}/plugins/ROOT@@Internal@@RRawFile/P020_RRawFileNetXNG.C -%files proof -f includelist-proof-proof -%{_bindir}/proofserv -%{_bindir}/proofserv.exe -%{_mandir}/man1/proofserv.1* -%{_libdir}/%{name}/libProof.* -%{_libdir}/%{name}/libProof_rdict.pcm -%{_datadir}/%{name}/plugins/TChain/P010_TProofChain.C -%{_datadir}/%{name}/plugins/TDataSetManager/P010_TDataSetManagerFile.C -%{_datadir}/%{name}/plugins/TProof/P010_TProofCondor.C -%{_datadir}/%{name}/plugins/TProof/P020_TProofSuperMaster.C -%{_datadir}/%{name}/plugins/TProof/P030_TProofLite.C -%{_datadir}/%{name}/plugins/TProof/P040_TProof.C - -%files proof-bench -f includelist-proof-proofbench -%{_libdir}/%{name}/libProofBench.* -%{_libdir}/%{name}/libProofBench_rdict.pcm -%{_datadir}/%{name}/proof - -%files proof-player -f includelist-proof-proofplayer -%{_libdir}/%{name}/libProofDraw.* -%{_libdir}/%{name}/libProofDraw_rdict.pcm -%{_libdir}/%{name}/libProofPlayer.* -%{_libdir}/%{name}/libProofPlayer_rdict.pcm -%{_datadir}/%{name}/plugins/TProofMonSender/P020_TProofMonSenderSQL.C -%{_datadir}/%{name}/plugins/TVirtualProofPlayer/P010_TProofPlayer.C -%{_datadir}/%{name}/plugins/TVirtualProofPlayer/P020_TProofPlayerRemote.C -%{_datadir}/%{name}/plugins/TVirtualProofPlayer/P030_TProofPlayerLocal.C -%{_datadir}/%{name}/plugins/TVirtualProofPlayer/P040_TProofPlayerSlave.C -%{_datadir}/%{name}/plugins/TVirtualProofPlayer/P050_TProofPlayerSuperMaster.C -%{_datadir}/%{name}/plugins/TVirtualProofPlayer/P060_TProofPlayerLite.C - -%files proof-sessionviewer -f includelist-gui-sessionviewer -%{_libdir}/%{name}/libSessionViewer.* -%{_libdir}/%{name}/libSessionViewer_rdict.pcm -%{_datadir}/%{name}/plugins/TProofProgressDialog/P010_TProofProgressDialog.C -%{_datadir}/%{name}/plugins/TProofProgressLog/P010_TProofProgressLog.C -%{_datadir}/%{name}/plugins/TSessionViewer/P010_TSessionViewer.C - %if %{roofit} %files roofit -f includelist-roofit-roofit %{_libdir}/%{name}/libRooFit.* @@ -3368,26 +3226,11 @@ fi %dir %{_includedir}/%{name}/RooFit/xRooFit %endif -%files sql-mysql -f includelist-sql-mysql -%{_libdir}/%{name}/libRMySQL.* -%{_libdir}/%{name}/libRMySQL_rdict.pcm -%{_datadir}/%{name}/plugins/TSQLServer/P010_TMySQLServer.C - -%files sql-odbc -f includelist-sql-odbc -%{_libdir}/%{name}/libRODBC.* -%{_libdir}/%{name}/libRODBC_rdict.pcm -%{_datadir}/%{name}/plugins/TSQLServer/P050_TODBCServer.C - %files sql-sqlite -f includelist-sql-sqlite %{_libdir}/%{name}/libRSQLite.* %{_libdir}/%{name}/libRSQLite_rdict.pcm %{_datadir}/%{name}/plugins/TSQLServer/P060_TSQLiteServer.C -%files sql-pgsql -f includelist-sql-pgsql -%{_libdir}/%{name}/libPgSQL.* -%{_libdir}/%{name}/libPgSQL_rdict.pcm -%{_datadir}/%{name}/plugins/TSQLServer/P020_TPgSQLServer.C - %files tmva -f includelist-tmva-tmva %{_libdir}/%{name}/libTMVA.* %{_libdir}/%{name}/libTMVA_rdict.pcm @@ -3407,6 +3250,7 @@ fi %exclude %{_includedir}/%{name}/TMVA/RTensorUtils.hxx %exclude %{_includedir}/%{name}/TMVA/BatchGenerator/RBatchGenerator.hxx %exclude %{_includedir}/%{name}/TMVA/BatchGenerator/RBatchLoader.hxx +%exclude %{_includedir}/%{name}/TMVA/BatchGenerator/RChunkConstructor.hxx %exclude %{_includedir}/%{name}/TMVA/BatchGenerator/RChunkLoader.hxx %if %{dataframe} @@ -3423,6 +3267,7 @@ fi %dir %{_includedir}/%{name}/TMVA/BatchGenerator %{_includedir}/%{name}/TMVA/BatchGenerator/RBatchGenerator.hxx %{_includedir}/%{name}/TMVA/BatchGenerator/RBatchLoader.hxx +%{_includedir}/%{name}/TMVA/BatchGenerator/RChunkConstructor.hxx %{_includedir}/%{name}/TMVA/BatchGenerator/RChunkLoader.hxx %endif @@ -3483,11 +3328,9 @@ fi %{_libdir}/%{name}/libUnfold_rdict.pcm %files cli -%{_bindir}/rootbrowse %{_bindir}/rootcp %{_bindir}/rootdrawtree %{_bindir}/rooteventselector -%{_bindir}/rootls %{_bindir}/rootmkdir %{_bindir}/rootmv %{_bindir}/rootprint @@ -3518,6 +3361,8 @@ fi %{_libdir}/%{name}/libROOTBranchBrowseProvider.* %{_libdir}/%{name}/libROOTGeoBrowseProvider.* %{_libdir}/%{name}/libROOTLeafDraw6Provider.* +%{_libdir}/%{name}/libROOTNTupleBrowseProvider.* +%{_libdir}/%{name}/libROOTNTupleDraw6Provider.* %{_libdir}/%{name}/libROOTObjectDraw6Provider.* %files gui-browserv7 -f includelist-gui-browserv7 @@ -3529,6 +3374,11 @@ fi %{_libdir}/%{name}/libROOTBrowserWidgets.* %{_datadir}/%{name}/plugins/TBrowserImp/P030_RWebBrowserImp.C +%files geom-checker -f includelist-geom-geomchecker +%{_libdir}/%{name}/libGeomChecker.* +%{_libdir}/%{name}/libGeomChecker_rdict.pcm +%{_datadir}/%{name}/plugins/TVirtualGeoChecker/P010_TGeoChecker.C + %files geom-webviewer -f includelist-geom-webviewer %{_libdir}/%{name}/libROOTGeomViewer.* %{_libdir}/%{name}/libROOTGeomViewer_rdict.pcm @@ -3539,6 +3389,14 @@ fi %{_libdir}/%{name}/libROOTNTuple_rdict.pcm %dir %{_includedir}/%{name}/ROOT/libdaos_mock +%files tree-ntuple-browse -f includelist-tree-ntuplebrowse +%{_libdir}/%{name}/libROOTNTupleBrowse.* +%{_libdir}/%{name}/libROOTNTupleBrowse_rdict.pcm + +%files tree-ntuple-utils -f includelist-tree-ntupleutil +%{_libdir}/%{name}/libROOTNTupleUtil.* +%{_libdir}/%{name}/libROOTNTupleUtil_rdict.pcm + %if %{root7} %files graf-gpadv7 -f includelist-graf2d-gpadv7 %{_libdir}/%{name}/libROOTGpadv7.* @@ -3554,8 +3412,6 @@ fi %files gui-browsable-v7 %{_libdir}/%{name}/libROOTLeafDraw7Provider.* -%{_libdir}/%{name}/libROOTNTupleBrowseProvider.* -%{_libdir}/%{name}/libROOTNTupleDraw6Provider.* %{_libdir}/%{name}/libROOTNTupleDraw7Provider.* %{_libdir}/%{name}/libROOTObjectDraw7Provider.* @@ -3569,12 +3425,23 @@ fi %{_libdir}/%{name}/libROOTFitPanelv7.* %{_libdir}/%{name}/libROOTFitPanelv7_rdict.pcm -%files tree-ntuple-utils -f includelist-tree-ntupleutil -%{_libdir}/%{name}/libROOTNTupleUtil.* -%{_libdir}/%{name}/libROOTNTupleUtil_rdict.pcm +%files histv7 -f includelist-hist-histv7 +%{_libdir}/%{name}/libROOTHist.* +%{_libdir}/%{name}/libROOTHist_rdict.pcm %endif %changelog +* Tue Dec 09 2025 Mattias Ellert - 6.38.00-1 +- Update to 6.38.00 +- Removed subpackages: root-proof, root-proof-bench, root-proof-player, + root-proof-sessionviewer, root-sql-mysql, root-sql-odbc, root-sql-pgsql +- New subpackages: root-geom-checker, root-gui-treemap, + root-tree-ntuple-browse, root-histv7 +- JsMVA python (sub)module dropped from python3-root package +- Compile minuit2 with Open MP support +- Dropped patches: 7 +- New patches: 4 + * Wed Oct 29 2025 Stephen Gallagher - 6.36.04-4 - Rebuild for libarrow 22 diff --git a/sources b/sources index 17b366b..98e90e5 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (root-6.36.04.tar.xz) = d8798d777f308e59ebb3429323895757ca9538499dbb1989d70b3a01c2122b2a01911b0e7da673d7a9fc40acd49fdbf6a5b4341266c1b68a8a88d9f904e7919b +SHA512 (root-6.38.00.tar.xz) = 7c452b509e8171a0cbb7c102a3d4c07333fc8535f1b2c2ab0b9f7434604f098989a78bb71c41039dd41dbbd3438ea8703939826092f075d9d730b6b53c84ac55 SHA512 (root-testfiles.tar.xz) = 4bb7f8ca00b1427ba49f6428e9cfe5908a2ffdd2ce4134d3bc169a0629198352b5500fe0cf92c121d148e5af41f7016c96038a77794a4d37d94e6ec0a9d75670 -SHA512 (clad-1.9.tar.gz) = df0569f12e3381e9285639eee927d9effb2812765caad2d281c41f6673828ab28b7bf8143ae9686090649cf889e757cfead58baa47e907de468185125a4d772c +SHA512 (clad-2.2.tar.gz) = 6f76d706a829901fc0fcdb38b5ddad6ea8ad9186ea48a4b6b585fc62974a2cda11b96a448c25daaba0586962d6428773e7ab751236c6afa72a91d12f30f2d05e From bdcedb0537a0d54cdf6dbd091ed2d84e385f361f Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sat, 13 Dec 2025 12:55:11 +0100 Subject: [PATCH 37/41] Skip RPATH using -DCMAKE_SKIP_INSTALL_RPATH:BOOL=ON (replaces previously used root specific -Drpath:BOOL=OFF no longer available) Backport fixes to python module Rebuild for pythia8 8.3.16 --- ...e-related-to-finding-CPyCppyy-API-he.patch | 109 ++++++++++++++++++ ...now-irrelevant-load_cpp_backend-call.patch | 46 ++++++++ root.spec | 14 ++- 3 files changed, 168 insertions(+), 1 deletion(-) create mode 100644 root-cppyy-Remove-code-related-to-finding-CPyCppyy-API-he.patch create mode 100644 root-cppyy-Remove-now-irrelevant-load_cpp_backend-call.patch diff --git a/root-cppyy-Remove-code-related-to-finding-CPyCppyy-API-he.patch b/root-cppyy-Remove-code-related-to-finding-CPyCppyy-API-he.patch new file mode 100644 index 0000000..882247f --- /dev/null +++ b/root-cppyy-Remove-code-related-to-finding-CPyCppyy-API-he.patch @@ -0,0 +1,109 @@ +From 251de0f8b237ce041df4960f831fe4a1fade6d92 Mon Sep 17 00:00:00 2001 +From: Jonas Rembser +Date: Sat, 6 Dec 2025 17:39:40 +0100 +Subject: [PATCH] [cppyy] Remove code related to finding CPyCppyy API header + path + +This is not needed for ROOT, because the CPyCppyy API headers are +installed with the other ROOT headers anyway, and ROOT knows where to +find them already. +--- + .../cppyy/cppyy/python/cppyy/__init__.py | 82 ------------------- + 1 file changed, 82 deletions(-) + +diff --git a/bindings/pyroot/cppyy/cppyy/python/cppyy/__init__.py b/bindings/pyroot/cppyy/cppyy/python/cppyy/__init__.py +index 68e3c49e5fe..c8dd458bfdd 100644 +--- a/bindings/pyroot/cppyy/cppyy/python/cppyy/__init__.py ++++ b/bindings/pyroot/cppyy/cppyy/python/cppyy/__init__.py +@@ -297,88 +297,6 @@ elif ispypy: + if os.path.exists(apipath) and os.path.exists(os.path.join(apipath, 'Python.h')): + add_include_path(apipath) + +-# add access to extra headers for dispatcher (CPyCppyy only (?)) +-if not ispypy: +- try: +- apipath_extra = os.environ['CPPYY_API_PATH'] +- if os.path.basename(apipath_extra) == 'CPyCppyy': +- apipath_extra = os.path.dirname(apipath_extra) +- except KeyError: +- apipath_extra = None +- +- if apipath_extra is None: +- try: +- if 0x30a0000 <= sys.hexversion: +- import importlib.metadata as m +- +- for p in m.files('CPyCppyy'): +- if p.match('API.h'): +- ape = p.locate() +- break +- del p, m +- else: +- import pkg_resources as pr +- +- d = pr.get_distribution('CPyCppyy') +- for line in d.get_metadata_lines('RECORD'): +- if 'API.h' in line: +- ape = os.path.join(d.location, line[0:line.find(',')]) +- break +- del line, d, pr +- +- if os.path.exists(ape): +- apipath_extra = os.path.dirname(os.path.dirname(ape)) +- del ape +- except Exception: +- pass +- +- if apipath_extra is None: +- ldversion = sysconfig.get_config_var('LDVERSION') +- if not ldversion: +- ldversion = sys.version[:3] +- +- apipath_extra = os.path.join(os.path.dirname(apipath), 'site', 'python'+ldversion) +- if not os.path.exists(os.path.join(apipath_extra, 'CPyCppyy')): +- import glob +- import platform +- +- if platform.system() == "Windows": +- # Install locations are handled differently on Windows +- import libcppyy +- +- ape = os.path.dirname(libcppyy.__file__) +- else: +- import cppyy.libcppyy as libcppyy +- +- ape = os.path.dirname(libcppyy.__file__) +- # a "normal" structure finds the include directory up to 3 levels up, +- # ie. dropping lib/pythonx.y[md]/site-packages +- for i in range(3): +- if os.path.exists(os.path.join(ape, 'include')): +- break +- ape = os.path.dirname(ape) +- +- ape = os.path.join(ape, 'include') +- if os.path.exists(os.path.join(ape, 'CPyCppyy')): +- apipath_extra = ape +- else: +- # add back pythonx.y or site/pythonx.y if present +- for p in glob.glob(os.path.join(ape, 'python'+sys.version[:3]+'*'))+\ +- glob.glob(os.path.join(ape, '*', 'python'+sys.version[:3]+'*')): +- if os.path.exists(os.path.join(p, 'CPyCppyy')): +- apipath_extra = p +- break +- +- if apipath_extra.lower() != 'none': +- if not os.path.exists(os.path.join(apipath_extra, 'CPyCppyy')): +- warnings.warn("CPyCppyy API not found (tried: %s); " +- "set CPPYY_API_PATH envar to the 'CPyCppyy' API directory to fix" +- % apipath_extra) +- else: +- add_include_path(apipath_extra) +- +- del apipath_extra +- + if os.getenv('CONDA_PREFIX'): + # MacOS, Linux + include_path = os.path.join(os.getenv('CONDA_PREFIX'), 'include') +-- +2.52.0 + diff --git a/root-cppyy-Remove-now-irrelevant-load_cpp_backend-call.patch b/root-cppyy-Remove-now-irrelevant-load_cpp_backend-call.patch new file mode 100644 index 0000000..a79c861 --- /dev/null +++ b/root-cppyy-Remove-now-irrelevant-load_cpp_backend-call.patch @@ -0,0 +1,46 @@ +From f4577e76a5dc23842d6be0a82df804f71fc820ef Mon Sep 17 00:00:00 2001 +From: Jonas Rembser +Date: Mon, 1 Dec 2025 16:51:36 +0100 +Subject: [PATCH] [cppyy] Remove now irrelevant `load_cpp_backend()` call + +As we don't have a separate `cppyy_backend` anymore (neither as a Python +package, nor as a shared library), trying to load the backend library +will always give an exception that will be caught as an `ImportError`. + +It would be cleaner if this code branch is not even taken. +--- + .../cppyy/cppyy/python/cppyy/_cpython_cppyy.py | 12 ------------ + 1 file changed, 12 deletions(-) + +diff --git a/bindings/pyroot/cppyy/cppyy/python/cppyy/_cpython_cppyy.py b/bindings/pyroot/cppyy/cppyy/python/cppyy/_cpython_cppyy.py +index bac078ea7c9..f98a34a697c 100644 +--- a/bindings/pyroot/cppyy/cppyy/python/cppyy/_cpython_cppyy.py ++++ b/bindings/pyroot/cppyy/cppyy/python/cppyy/_cpython_cppyy.py +@@ -19,24 +19,12 @@ __all__ = [ + '_end_capture_stderr' + ] + +-# First load the dependency libraries of the backend, then pull in the libcppyy +-# extension module. If the backed can't be loaded, it was probably linked +-# statically into the extension module, so we don't error out at this point. +-try: +- from cppyy_backend import loader +- c = loader.load_cpp_backend() +-except ImportError: +- c = None +- + if platform.system() == "Windows": + # On Windows, the library has to be searched without prefix + import libcppyy as _backend + else: + import cppyy.libcppyy as _backend + +-if c is not None: +- _backend._cpp_backend = c +- + # explicitly expose APIs from libcppyy + _w = ctypes.CDLL(_backend.__file__, ctypes.RTLD_GLOBAL) + +-- +2.52.0 + diff --git a/root.spec b/root.spec index 87599a4..53ba016 100644 --- a/root.spec +++ b/root.spec @@ -39,7 +39,7 @@ Name: root Version: 6.38.00 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -94,6 +94,9 @@ Patch9: %{name}-Fix-a-numpy-test-for-32-bit-archs.patch # Backport a test fix from upstream Patch10: %{name}-VecOps-Remove-outdated-IsSmall-helper-function-in-te.patch Patch11: %{name}-vecops-Adaptive-size-of-long-RVec-instances-in-RVec-.patch +# Backport fixes to python module +Patch12: root-cppyy-Remove-now-irrelevant-load_cpp_backend-call.patch +Patch13: root-cppyy-Remove-code-related-to-finding-CPyCppyy-API-he.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -1896,6 +1899,8 @@ This package contains a library for histogramming in ROOT 7. %patch -P9 -p1 %patch -P10 -p1 %patch -P11 -p1 +%patch -P12 -p1 +%patch -P13 -p1 # Remove bundled sources in order to be sure they are not used # * afterimage @@ -1946,6 +1951,7 @@ unset QTINC -DCMAKE_INSTALL_PYTHONDIR:PATH=%{python3_sitearch} \ -DCMAKE_INSTALL_SYSCONFDIR:PATH=%{_datadir}/%{name} \ -DCMAKE_INSTALL_DOCDIR:PATH=%{_pkgdocdir} \ + -DCMAKE_SKIP_INSTALL_RPATH:BOOL=ON \ -DPython3_EXECUTABLE:PATH=%{__python3} \ -Dgnuinstall:BOOL=ON \ -Dbuiltin_cfitsio:BOOL=OFF \ @@ -3431,6 +3437,12 @@ fi %endif %changelog +* Thu Dec 11 2025 Mattias Ellert - 6.38.00-2 +- Skip RPATH using -DCMAKE_SKIP_INSTALL_RPATH:BOOL=ON (replaces + previously used root specific -Drpath:BOOL=OFF no longer available) +- Backport fixes to python module +- Rebuild for pythia8 8.3.16 + * Tue Dec 09 2025 Mattias Ellert - 6.38.00-1 - Update to 6.38.00 - Removed subpackages: root-proof, root-proof-bench, root-proof-player, From 64acc88ed18cb79b3caa678ea22c6a9b2ba36f61 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Thu, 18 Dec 2025 13:08:34 +0100 Subject: [PATCH 38/41] Don't install the python modules twice Fix Requires and Provides in the python3-root rpm --- ...n-t-install-the-python-modules-twice.patch | 70 +++++++++++++++++++ root-no-export-python-modules.patch | 19 ++++- root.spec | 18 +++-- 3 files changed, 101 insertions(+), 6 deletions(-) create mode 100644 root-PyROOT-Don-t-install-the-python-modules-twice.patch diff --git a/root-PyROOT-Don-t-install-the-python-modules-twice.patch b/root-PyROOT-Don-t-install-the-python-modules-twice.patch new file mode 100644 index 0000000..608765d --- /dev/null +++ b/root-PyROOT-Don-t-install-the-python-modules-twice.patch @@ -0,0 +1,70 @@ +From f09b4ce027b31dcd19ea8a398c35c5dfbcc0507f Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Thu, 18 Dec 2025 11:49:12 +0100 +Subject: [PATCH] [PyROOT] Don't install the python modules twice + +The binary python modules were moved one directory level down into the +ROOT and cppyy directories, so that they reside alongside the python +files in the same directories. The install rule for the python files +must therefore be extended to exclude the binary modules (PATTERN *.so +EXCLUDE) so that these are not installed a second time overwriting the +files installed by the install rule for the binary modules with another +copy with the wrong file permissions. + +Also use the no-version option for the cppyy binary module as is +already done for the pythonization binary module, since it is now +installed in the python directory. Before it was installed in the +library directory with an unversioned symlink in the python directory. +--- + bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt | 2 +- + bindings/pyroot/cppyy/cppyy/CMakeLists.txt | 5 +++-- + bindings/pyroot/pythonizations/CMakeLists.txt | 3 ++- + 3 files changed, 6 insertions(+), 4 deletions(-) + +diff --git a/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt b/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt +index bb48c032974..065a89348ff 100644 +--- a/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt ++++ b/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt +@@ -73,7 +73,7 @@ endif() + add_library(cppyy SHARED src/CPyCppyyPyModule.cxx) + + # Set the suffix to '.so' and the prefix to 'lib' +-set_target_properties(cppyy PROPERTIES ${ROOT_LIBRARY_PROPERTIES} ++set_target_properties(cppyy PROPERTIES ${ROOT_LIBRARY_PROPERTIES_NO_VERSION} + LIBRARY_OUTPUT_DIRECTORY ${localruntimedir}/cppyy) + if(MSVC) + target_link_libraries(cppyy PRIVATE CPyCppyy) +diff --git a/bindings/pyroot/cppyy/cppyy/CMakeLists.txt b/bindings/pyroot/cppyy/cppyy/CMakeLists.txt +index 3a29b4525f7..842ad12df97 100644 +--- a/bindings/pyroot/cppyy/cppyy/CMakeLists.txt ++++ b/bindings/pyroot/cppyy/cppyy/CMakeLists.txt +@@ -31,8 +31,9 @@ endforeach() + # Install Python sources and bytecode + install(DIRECTORY ${localruntimedir}/cppyy + DESTINATION ${CMAKE_INSTALL_PYTHONDIR} +- COMPONENT libraries) ++ COMPONENT libraries ++ PATTERN *.so EXCLUDE) + + if(NOT MSVC) + ROOT_ADD_TEST_SUBDIRECTORY(test) +-endif() +\ No newline at end of file ++endif() +diff --git a/bindings/pyroot/pythonizations/CMakeLists.txt b/bindings/pyroot/pythonizations/CMakeLists.txt +index 1230f18ca47..b415ba13697 100644 +--- a/bindings/pyroot/pythonizations/CMakeLists.txt ++++ b/bindings/pyroot/pythonizations/CMakeLists.txt +@@ -239,7 +239,8 @@ install(TARGETS ${libname} EXPORT ${CMAKE_PROJECT_NAME}Exports + # Install Python sources and bytecode + install(DIRECTORY ${localruntimedir}/ROOT + DESTINATION ${CMAKE_INSTALL_PYTHONDIR} +- COMPONENT libraries) ++ COMPONENT libraries ++ PATTERN *.so EXCLUDE) + + # Install headers required by pythonizations + install(FILES ${PYROOT_EXTRA_HEADERS} +-- +2.52.0 + diff --git a/root-no-export-python-modules.patch b/root-no-export-python-modules.patch index cb56d35..d3fa4bc 100644 --- a/root-no-export-python-modules.patch +++ b/root-no-export-python-modules.patch @@ -1,12 +1,27 @@ -From e0dec6edd0678c2c52aaeb2f3645378ffeaa2d73 Mon Sep 17 00:00:00 2001 +From b4e57c8ccd59d69fe61fa5f6470b3a99ba52aeeb Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Thu, 4 Dec 2025 23:13:28 +0100 Subject: [PATCH] Dont export Python modules --- + bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt | 3 +-- bindings/pyroot/pythonizations/CMakeLists.txt | 8 +------- - 1 file changed, 1 insertion(+), 7 deletions(-) + 2 files changed, 2 insertions(+), 9 deletions(-) +diff --git a/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt b/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt +index bb48c032974..c34069855b2 100644 +--- a/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt ++++ b/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt +@@ -119,8 +119,7 @@ install(TARGETS CPyCppyy EXPORT ${CMAKE_PROJECT_NAME}Exports + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries) + +-install(TARGETS cppyy EXPORT ${CMAKE_PROJECT_NAME}Exports +- RUNTIME DESTINATION ${CMAKE_INSTALL_PYTHONDIR}/cppyy COMPONENT libraries # Windows ++install(TARGETS cppyy RUNTIME DESTINATION ${CMAKE_INSTALL_PYTHONDIR}/cppyy COMPONENT libraries # Windows + LIBRARY DESTINATION ${CMAKE_INSTALL_PYTHONDIR}/cppyy COMPONENT libraries + ARCHIVE DESTINATION ${CMAKE_INSTALL_PYTHONDIR}/cppyy COMPONENT libraries) + diff --git a/bindings/pyroot/pythonizations/CMakeLists.txt b/bindings/pyroot/pythonizations/CMakeLists.txt index 1230f18ca47..2df4b733320 100644 --- a/bindings/pyroot/pythonizations/CMakeLists.txt diff --git a/root.spec b/root.spec index 53ba016..14bfa6e 100644 --- a/root.spec +++ b/root.spec @@ -34,12 +34,12 @@ %endif # Do not generate autoprovides for Python modules -%global __provides_exclude_from ^%{python3_sitearch}/lib.*\\.so$ +%global __provides_exclude_from ^%{python3_sitearch}/.*/lib.*\\.so$ Name: root Version: 6.38.00 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 3%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -95,8 +95,11 @@ Patch9: %{name}-Fix-a-numpy-test-for-32-bit-archs.patch Patch10: %{name}-VecOps-Remove-outdated-IsSmall-helper-function-in-te.patch Patch11: %{name}-vecops-Adaptive-size-of-long-RVec-instances-in-RVec-.patch # Backport fixes to python module -Patch12: root-cppyy-Remove-now-irrelevant-load_cpp_backend-call.patch -Patch13: root-cppyy-Remove-code-related-to-finding-CPyCppyy-API-he.patch +Patch12: %{name}-cppyy-Remove-now-irrelevant-load_cpp_backend-call.patch +Patch13: %{name}-cppyy-Remove-code-related-to-finding-CPyCppyy-API-he.patch +# Don't install the python modules twice +# https://github.com/root-project/root/pull/20753 +Patch14: %{name}-PyROOT-Don-t-install-the-python-modules-twice.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -1901,6 +1904,7 @@ This package contains a library for histogramming in ROOT 7. %patch -P11 -p1 %patch -P12 -p1 %patch -P13 -p1 +%patch -P14 -p1 # Remove bundled sources in order to be sure they are not used # * afterimage @@ -2145,6 +2149,8 @@ mv %{buildroot}%{_libdir}/%{name}/*-gdb.py \ # Fix python extension suffix mv %{buildroot}%{python3_sitearch}/ROOT/libROOTPythonizations.so \ %{buildroot}%{python3_sitearch}/ROOT/libROOTPythonizations%{python3_ext_suffix} +mv %{buildroot}%{python3_sitearch}/cppyy/libcppyy.so \ + %{buildroot}%{python3_sitearch}/cppyy/libcppyy%{python3_ext_suffix} # Move noarch python modules to sitelib if [ "%{python3_sitelib}" != "%{python3_sitearch}" ] ; then @@ -3437,6 +3443,10 @@ fi %endif %changelog +* Thu Dec 18 2025 Mattias Ellert - 6.38.00-3 +- Don't install the python modules twice +- Fix Requires and Provides in the python3-root rpm + * Thu Dec 11 2025 Mattias Ellert - 6.38.00-2 - Skip RPATH using -DCMAKE_SKIP_INSTALL_RPATH:BOOL=ON (replaces previously used root specific -Drpath:BOOL=OFF no longer available) From 732511f3a61f117f94d369c4893f661834c30619 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sat, 20 Dec 2025 12:41:20 +0100 Subject: [PATCH 39/41] Exclude tests for Fedora 43+ on s390x that fail due to hardware acceleration in the zlib-ng library. --- root.spec | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 14bfa6e..5271fad 100644 --- a/root.spec +++ b/root.spec @@ -39,7 +39,7 @@ Name: root Version: 6.38.00 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 3%{?dist} +Release: 4%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -2563,6 +2563,19 @@ test-stresshistofit\$\$|\ test-stresshistofit-interpreted|\ test-stresshistogram\$\$|\ test-stresshistogram-interpreted" + +# The zlib-ng library is compiled with hardware acceleration support on s390x +# in Fedora 43 and later. +# This means that some tests that compare the size of compressed data fail. +# - test-stress +# - gtest-tree-readspeed-readspeed-general +# - gtest-tree-tree-testTBranch +%if %{?fedora}%{!?fedora:0} >= 43 +excluded="${excluded}|\ +test-stress\$\$|\ +gtest-tree-readspeed-readspeed-general|\ +gtest-tree-tree-testTBranch" +%endif %endif # Fails with gcc 14 on aarch64, ppc64le and s390x (on EPEL 10 also x86_64) @@ -3443,6 +3456,10 @@ fi %endif %changelog +* Fri Dec 19 2025 Mattias Ellert - 6.38.00-4 +- Exclude tests for Fedora 43+ on s390x that fail due to hardware + acceleration in the zlib-ng library. + * Thu Dec 18 2025 Mattias Ellert - 6.38.00-3 - Don't install the python modules twice - Fix Requires and Provides in the python3-root rpm From 27b349be2a41e7e56de88f7b894c2bddca19589f Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Thu, 25 Dec 2025 17:38:55 +0100 Subject: [PATCH 40/41] Fix test for stricter syntax in numpy 2.4.0 (backport) --- ...1-Pythonization-test-for-NumPy-2.4.0.patch | 82 +++++++++++++++++++ root.spec | 9 +- 2 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 root-Python-Fix-TF1-Pythonization-test-for-NumPy-2.4.0.patch diff --git a/root-Python-Fix-TF1-Pythonization-test-for-NumPy-2.4.0.patch b/root-Python-Fix-TF1-Pythonization-test-for-NumPy-2.4.0.patch new file mode 100644 index 0000000..2bc2576 --- /dev/null +++ b/root-Python-Fix-TF1-Pythonization-test-for-NumPy-2.4.0.patch @@ -0,0 +1,82 @@ +From d5135f7869406396b3ba8e944c71dbdd67d3ea01 Mon Sep 17 00:00:00 2001 +From: Jonas Rembser +Date: Tue, 23 Dec 2025 19:04:45 +0100 +Subject: [PATCH] [Python] Fix TF1 Pythonization test for NumPy 2.4.0 + +The new NumPy 2.4.0 is more strict when implicitly converting 1-element +arrays to scalars. It doesn't do that anymore, causing the TF1 +Pythonization tests to fail (see log below). + +This actually pointed to a real mistake in setting up the test, where a +2D array was used to define the TFormula parameters while it should be a +1D array. + +```txt + 962/3718 Test #93: pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-tf-pycallables ..............................***Failed 3.05 sec +test_callable (tf_pycallables.TF1.test_callable) +Test function provided as callable ... ok +test_evalpar (tf_pycallables.TF1.test_evalpar) +Test the 2D Numpy array pythonizations for TF1::EvalPar ... ERROR +test_evalpar_dynamic (tf_pycallables.TF1.test_evalpar_dynamic) +Test the 2D NumPy pythonizations with dynamic TF1 data dimensions ... ok +test_fitgauss (tf_pycallables.TF1.test_fitgauss) +Test fitting a histogram to a Python function ... ok +test_identity (tf_pycallables.TF1.test_identity) +Test simple function without parameters ... ok +test_params (tf_pycallables.TF1.test_params) +Test function with parameters ... ok +test_params (tf_pycallables.TF2.test_params) +Test function with parameters ... ok +test_params (tf_pycallables.TF3.test_params) +Test function with parameters ... ok + +====================================================================== +ERROR: test_evalpar (tf_pycallables.TF1.test_evalpar) +Test the 2D Numpy array pythonizations for TF1::EvalPar +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/github/home/ROOT-CI/src/bindings/pyroot/pythonizations/test/tf_pycallables.py", line 129, in test_evalpar + expected_value = pyf_tf1_coulomb(x[i, ::2], params) + File "/github/home/ROOT-CI/src/bindings/pyroot/pythonizations/test/tf_pycallables.py", line 33, in pyf_tf1_coulomb + return p[1] * x[0] * x[1] / (p[0]**2) * math.exp(-p[2] / p[0]) + ~~~~~~~~^^^^^^^^^^^^^^ +TypeError: only 0-dimensional arrays can be converted to Python scalars + +---------------------------------------------------------------------- +Ran 8 tests in 1.469s + +FAILED (errors=1) +CMake Error at /github/home/ROOT-CI/src/cmake/modules/RootTestDriver.cmake:232 (message): + error code: 1 + +``` +--- + .../pyroot/pythonizations/test/tf_pycallables.py | 12 +++++++----- + 1 file changed, 7 insertions(+), 5 deletions(-) + +diff --git a/bindings/pyroot/pythonizations/test/tf_pycallables.py b/bindings/pyroot/pythonizations/test/tf_pycallables.py +index 2a7d6b72462..5a223030ec9 100644 +--- a/bindings/pyroot/pythonizations/test/tf_pycallables.py ++++ b/bindings/pyroot/pythonizations/test/tf_pycallables.py +@@ -116,11 +116,13 @@ class TF1(unittest.TestCase): + [3.0, 10, 4.0] + ]) + +- params = np.array([ +- [1.0], # Distance between charges r +- [8.99e9], # Coulomb constant k (in N·m²/C²) +- [0.1] # Additional factor for modulation +- ]) ++ params = np.array( ++ [ ++ 1.0, # Distance between charges r ++ 8.99e9, # Coulomb constant k (in N·m²/C²) ++ 0.1, # Additional factor for modulation ++ ] ++ ) + + # Slice to avoid the dummy column of 10's + res = rtf1_coulomb.EvalPar(x[:, ::2], params) +-- +2.52.0 + diff --git a/root.spec b/root.spec index 5271fad..def5fea 100644 --- a/root.spec +++ b/root.spec @@ -39,7 +39,7 @@ Name: root Version: 6.38.00 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 4%{?dist} +Release: 5%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -100,6 +100,9 @@ Patch13: %{name}-cppyy-Remove-code-related-to-finding-CPyCppyy-API-he.patch # Don't install the python modules twice # https://github.com/root-project/root/pull/20753 Patch14: %{name}-PyROOT-Don-t-install-the-python-modules-twice.patch +# Fix test for stricter syntax in numpy 2.4.0 (backport) +# https://github.com/root-project/root/pull/20775 +Patch15: %{name}-Python-Fix-TF1-Pythonization-test-for-NumPy-2.4.0.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -1905,6 +1908,7 @@ This package contains a library for histogramming in ROOT 7. %patch -P12 -p1 %patch -P13 -p1 %patch -P14 -p1 +%patch -P15 -p1 # Remove bundled sources in order to be sure they are not used # * afterimage @@ -3456,6 +3460,9 @@ fi %endif %changelog +* Thu Dec 25 2025 Mattias Ellert - 6.38.00-5 +- Fix test for stricter syntax in numpy 2.4.0 (backport) + * Fri Dec 19 2025 Mattias Ellert - 6.38.00-4 - Exclude tests for Fedora 43+ on s390x that fail due to hardware acceleration in the zlib-ng library. From e8626580cf8e9350b3987c302cf19a1ab740f5e0 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Mon, 12 Jan 2026 00:03:45 +0100 Subject: [PATCH 41/41] Fixes for gcc 16 --- ...-Use-TRandom3-in-test-RooFuncWrapper.patch | 50 +++++++++++++++++++ root-fontconfig.patch | 21 +++++--- root-gcc-16-libstdc-links-to-libatomic.patch | 32 ++++++++++++ root.spec | 21 +++++++- 4 files changed, 116 insertions(+), 8 deletions(-) create mode 100644 root-RF-Use-TRandom3-in-test-RooFuncWrapper.patch create mode 100644 root-gcc-16-libstdc-links-to-libatomic.patch diff --git a/root-RF-Use-TRandom3-in-test-RooFuncWrapper.patch b/root-RF-Use-TRandom3-in-test-RooFuncWrapper.patch new file mode 100644 index 0000000..34bdebc --- /dev/null +++ b/root-RF-Use-TRandom3-in-test-RooFuncWrapper.patch @@ -0,0 +1,50 @@ +From e1f42658629ad67ce7cb224a1379d133f61f2e35 Mon Sep 17 00:00:00 2001 +From: Jonas Rembser +Date: Sun, 11 Jan 2026 10:25:51 +0100 +Subject: [PATCH] [RF] Use TRandom3 in test RooFuncWrapper + +Use TRandom3 instead of the `` to get compiler-independent, +reproducible behavior. +--- + roofit/roofitcore/test/testRooFuncWrapper.cxx | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/roofit/roofitcore/test/testRooFuncWrapper.cxx b/roofit/roofitcore/test/testRooFuncWrapper.cxx +index 2ebdf95333f..189e8f2e266 100644 +--- a/roofit/roofitcore/test/testRooFuncWrapper.cxx ++++ b/roofit/roofitcore/test/testRooFuncWrapper.cxx +@@ -34,12 +34,12 @@ + #include + + #include ++#include + #include ++#include + #include +-#include + + #include +-#include + + #include "gtest_wrapper.h" + +@@ -66,13 +66,13 @@ double getNumDerivative(const RooAbsReal &pdf, RooRealVar &var, const RooArgSet + + void randomizeParameters(const RooArgSet ¶meters) + { ++ TRandom3 rng(1337); ++ + double lowerBound = -0.1; + double upperBound = 0.1; +- std::uniform_real_distribution unif(lowerBound, upperBound); +- std::default_random_engine re; + + for (auto *param : parameters) { +- double mul = unif(re); ++ double mul = rng.Uniform(lowerBound, upperBound); + + auto par = dynamic_cast(param); + if (!par) +-- +2.52.0 + diff --git a/root-fontconfig.patch b/root-fontconfig.patch index b2c4e99..4e5e607 100644 --- a/root-fontconfig.patch +++ b/root-fontconfig.patch @@ -1,4 +1,4 @@ -From b5735870eb7e65a8c840643540a0676ab40697e0 Mon Sep 17 00:00:00 2001 +From 4d450f306a8ab8220f43675c70f399d89e5a4a03 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sat, 11 May 2024 20:09:47 +0200 Subject: [PATCH] Use system fonts via fontconfig @@ -9,13 +9,13 @@ Subject: [PATCH] Use system fonts via fontconfig graf2d/asimage/src/TASImage.cxx | 91 +++++++- graf2d/graf/CMakeLists.txt | 1 + graf2d/graf/inc/TTF.h | 3 +- - graf2d/graf/src/TTF.cxx | 291 +++++++++++++++++--------- + graf2d/graf/src/TTF.cxx | 295 +++++++++++++++++--------- graf2d/postscript/CMakeLists.txt | 1 + - graf2d/postscript/src/TPostScript.cxx | 106 +++++----- + graf2d/postscript/src/TPostScript.cxx | 106 ++++----- graf3d/gl/CMakeLists.txt | 1 + graf3d/gl/src/TGLFontManager.cxx | 123 ++++++++++- graf3d/gl/src/TGLText.cxx | 56 +++-- - 11 files changed, 493 insertions(+), 192 deletions(-) + 11 files changed, 495 insertions(+), 194 deletions(-) diff --git a/core/base/src/TApplication.cxx b/core/base/src/TApplication.cxx index f0d2124a8f6..41ad4c73020 100644 @@ -207,7 +207,7 @@ index 864ce06b4f0..050796d1ded 100644 static TTF::TTGlyph fgGlyphs[kMaxGlyphs]; ///< glyphs static Bool_t fgHinting; ///< use hinting (true by default) diff --git a/graf2d/graf/src/TTF.cxx b/graf2d/graf/src/TTF.cxx -index 758bb98c192..7b1b06cd0ed 100644 +index 758bb98c192..c90d0ac70a9 100644 --- a/graf2d/graf/src/TTF.cxx +++ b/graf2d/graf/src/TTF.cxx @@ -25,6 +25,8 @@ Interface to the freetype 2 library. @@ -453,9 +453,12 @@ index 758bb98c192..7b1b06cd0ed 100644 Error("TTF::SetTextFont", "error loading font %s", ttfont); delete [] ttfont; if (tface) FT_Done_Face(tface); -@@ -453,19 +573,20 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic) - delete [] ttfont; +@@ -450,24 +570,25 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic) + } + } +- delete [] ttfont; +- fgFontName[fgFontCount] = StrDup(basename); + fgFontIdx[fgFontCount] = ttindex; + fgFontIta[fgFontCount] = italic; @@ -476,7 +479,11 @@ index 758bb98c192..7b1b06cd0ed 100644 + FT_Set_Transform( fgFace[fgCurFontIdx], &slantMat, nullptr ); } ++ delete [] ttfont; ++ return 0; + } + @@ -494,70 +615,50 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic) void TTF::SetTextFont(Font_t fontnumber) diff --git a/root-gcc-16-libstdc-links-to-libatomic.patch b/root-gcc-16-libstdc-links-to-libatomic.patch new file mode 100644 index 0000000..776fff3 --- /dev/null +++ b/root-gcc-16-libstdc-links-to-libatomic.patch @@ -0,0 +1,32 @@ +From 7b1632f5602a1bb6e6278d66c25640349c852ab1 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Fri, 9 Jan 2026 00:32:27 +0100 +Subject: [PATCH] Starting with gcc 16, libstdc++ links to libatomic. Add to + whitelist. + +$ ldd /lib64/libstdc++.so.6 + linux-vdso.so.1 (0x00007f3cb4c13000) + libm.so.6 => /lib64/libm.so.6 (0x00007f3cb4afc000) + libatomic.so.1 => /lib64/libatomic.so.1 (0x00007f3cb4af1000) + libc.so.6 => /lib64/libc.so.6 (0x00007f3cb460d000) + libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f3cb4ac5000) + /lib64/ld-linux-x86-64.so.2 (0x00007f3cb4c15000) +--- + bindings/pyroot/pythonizations/test/import_load_libs.py | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/bindings/pyroot/pythonizations/test/import_load_libs.py b/bindings/pyroot/pythonizations/test/import_load_libs.py +index 63feeca89ba..18906ff921e 100644 +--- a/bindings/pyroot/pythonizations/test/import_load_libs.py ++++ b/bindings/pyroot/pythonizations/test/import_load_libs.py +@@ -77,6 +77,7 @@ class ImportLoadLibs(unittest.TestCase): + "ld.*", + "libffi", + "libgcc_s", ++ "libatomic", + # AddressSanitizer runtime and ROOT configuration + "libclang_rt.asan-.*", + "libROOTSanitizerConfig", +-- +2.52.0 + diff --git a/root.spec b/root.spec index def5fea..4cd9565 100644 --- a/root.spec +++ b/root.spec @@ -39,7 +39,7 @@ Name: root Version: 6.38.00 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 5%{?dist} +Release: 6%{?dist} Summary: Numerical data analysis framework License: LGPL-2.1-or-later @@ -103,6 +103,13 @@ Patch14: %{name}-PyROOT-Don-t-install-the-python-modules-twice.patch # Fix test for stricter syntax in numpy 2.4.0 (backport) # https://github.com/root-project/root/pull/20775 Patch15: %{name}-Python-Fix-TF1-Pythonization-test-for-NumPy-2.4.0.patch +# Starting with gcc 16, libstdc++ links to libatomic +# https://github.com/root-project/root/pull/20826 +Patch16: %{name}-gcc-16-libstdc-links-to-libatomic.patch +# Test fails with gcc 16 (which uses c++20 as default) +# https://github.com/root-project/root/issues/20831 +# https://github.com/root-project/root/pull/20841 +Patch17: %{name}-RF-Use-TRandom3-in-test-RooFuncWrapper.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -1909,6 +1916,8 @@ This package contains a library for histogramming in ROOT 7. %patch -P13 -p1 %patch -P14 -p1 %patch -P15 -p1 +%patch -P16 -p1 +%patch -P17 -p1 # Remove bundled sources in order to be sure they are not used # * afterimage @@ -2475,6 +2484,7 @@ gtest-roofit-roofitcore-testLikelihoodGradientJob" # - gtest-tree-ntuple-ntuple-join-table # - gtest-tree-ntuple-ntuple-largefile2 # - gtest-tree-ntuple-ntuple-merger +# - gtest-tree-ntuple-ntuple-metrics # - gtest-tree-ntuple-ntuple-model # - gtest-tree-ntuple-ntuple-modelext # - gtest-tree-ntuple-ntuple-multi-column @@ -2531,6 +2541,7 @@ gtest-tree-ntuple-ntuple-extended|\ gtest-tree-ntuple-ntuple-join-table|\ gtest-tree-ntuple-ntuple-largefile2|\ gtest-tree-ntuple-ntuple-merger|\ +gtest-tree-ntuple-ntuple-metrics|\ gtest-tree-ntuple-ntuple-model\$\$|\ gtest-tree-ntuple-ntuple-modelext|\ gtest-tree-ntuple-ntuple-multi-column|\ @@ -2598,6 +2609,9 @@ gtest-math-matrix-testMatrixTSparse" # Filter out parts of tests that require remote network access # RNTuple.StdAtomic fails on ix86 (different alignment 64 bit (non)atomic) +# TH3D.FillThreadSafe and RDFHelpers.Histo3DThreadSafe fail on ix86 +# due to alignment issues with std::atomic_ref +# https://github.com/root-project/root/issues/20834 # InterpreterTest.Evaluate fails on s390x # TClingDataMemberInfo.Offset fails on s390x # https://github.com/root-project/root/issues/14512 @@ -2607,6 +2621,8 @@ gtest-math-matrix-testMatrixTSparse" export GTEST_FILTER=-\ %ifarch %{ix86} RNTuple.StdAtomic:\ +TH3D.FillThreadSafe:\ +RDFHelpers.Histo3DThreadSafe:\ %endif %ifarch s390x InterpreterTest.Evaluate:\ @@ -3460,6 +3476,9 @@ fi %endif %changelog +* Mon Jan 12 2026 Mattias Ellert - 6.38.00-6 +- Fixes for gcc 16 + * Thu Dec 25 2025 Mattias Ellert - 6.38.00-5 - Fix test for stricter syntax in numpy 2.4.0 (backport)