diff --git a/root-32bit-dataframe.patch b/root-32bit-dataframe.patch index 5a34084..dd71ad6 100644 --- a/root-32bit-dataframe.patch +++ b/root-32bit-dataframe.patch @@ -1,6 +1,6 @@ -diff -ur root-6.18.00.orig/bindings/pyroot/ROOT.py root-6.18.00/bindings/pyroot/ROOT.py ---- root-6.18.00.orig/bindings/pyroot/ROOT.py 2019-06-25 10:52:11.000000000 +0200 -+++ root-6.18.00/bindings/pyroot/ROOT.py 2019-06-26 15:14:34.684257765 +0200 +diff -ur root-6.18.04.orig/bindings/pyroot/ROOT.py root-6.18.04/bindings/pyroot/ROOT.py +--- root-6.18.04.orig/bindings/pyroot/ROOT.py 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/bindings/pyroot/ROOT.py 2020-03-13 19:58:32.330575246 +0100 @@ -449,9 +449,7 @@ # This function is injected as method to the respective classes in Pythonize.cxx. _root._RDataFrameAsNumpy = _RDataFrameAsNumpy @@ -12,9 +12,9 @@ diff -ur root-6.18.00.orig/bindings/pyroot/ROOT.py root-6.18.00/bindings/pyroot/ ### RINT command emulation ------------------------------------------------------ -diff -ur root-6.18.00.orig/bindings/pyroot/test/CMakeLists.txt root-6.18.00/bindings/pyroot/test/CMakeLists.txt ---- root-6.18.00.orig/bindings/pyroot/test/CMakeLists.txt 2019-06-25 10:52:11.000000000 +0200 -+++ root-6.18.00/bindings/pyroot/test/CMakeLists.txt 2019-06-26 15:22:03.843577496 +0200 +diff -ur root-6.18.04.orig/bindings/pyroot/test/CMakeLists.txt root-6.18.04/bindings/pyroot/test/CMakeLists.txt +--- root-6.18.04.orig/bindings/pyroot/test/CMakeLists.txt 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/bindings/pyroot/test/CMakeLists.txt 2020-03-13 19:58:32.330575246 +0100 @@ -4,10 +4,7 @@ ROOT_ADD_PYUNITTEST(pyroot_rvec rvec.py) if(NUMPY_FOUND) @@ -28,9 +28,9 @@ diff -ur root-6.18.00.orig/bindings/pyroot/test/CMakeLists.txt root-6.18.00/bind + ROOT_ADD_PYUNITTEST(pyroot_ttree_asmatrix ttree_asmatrix.py) endif() -diff -ur root-6.18.00.orig/build/unix/makepchinput.py root-6.18.00/build/unix/makepchinput.py ---- root-6.18.00.orig/build/unix/makepchinput.py 2019-06-25 10:52:11.000000000 +0200 -+++ root-6.18.00/build/unix/makepchinput.py 2019-06-26 15:14:34.760256972 +0200 +diff -ur root-6.18.04.orig/build/unix/makepchinput.py root-6.18.04/build/unix/makepchinput.py +--- root-6.18.04.orig/build/unix/makepchinput.py 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/build/unix/makepchinput.py 2020-03-13 19:58:32.331575236 +0100 @@ -263,9 +263,6 @@ "math/vdt", "tmva/rmva"] @@ -41,27 +41,10 @@ diff -ur root-6.18.00.orig/build/unix/makepchinput.py root-6.18.00/build/unix/ma accepted = isAnyPatternInString(PCHPatternsWhitelist,dirName) and \ not isAnyPatternInString(PCHPatternsBlacklist,dirName) -diff -ur root-6.18.00.orig/cmake/scripts/ROOTConfig.cmake.in root-6.18.00/cmake/scripts/ROOTConfig.cmake.in ---- root-6.18.00.orig/cmake/scripts/ROOTConfig.cmake.in 2019-06-25 10:52:11.000000000 +0200 -+++ root-6.18.00/cmake/scripts/ROOTConfig.cmake.in 2019-06-26 15:14:34.768256889 +0200 -@@ -83,7 +83,7 @@ - set(CMAKE_FIND_LIBRARY_PREFIXES "lib") - set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".dll") - endif() --foreach(_cpt Core Imt RIO Net Hist Graf Graf3d Gpad ROOTDataFrame Tree TreePlayer Rint Postscript Matrix Physics MathCore Thread MultiProc ${ROOT_FIND_COMPONENTS}) -+foreach(_cpt Core Imt RIO Net Hist Graf Graf3d Gpad ROOTDataFrame ROOTVecOps Tree TreePlayer Rint Postscript Matrix Physics MathCore Thread MultiProc ${ROOT_FIND_COMPONENTS}) - find_library(ROOT_${_cpt}_LIBRARY ${_cpt} HINTS ${ROOT_LIBRARY_DIR}) - if(ROOT_${_cpt}_LIBRARY) - mark_as_advanced(ROOT_${_cpt}_LIBRARY) -diff -ur root-6.18.00.orig/config/root-config.in root-6.18.00/config/root-config.in ---- root-6.18.00.orig/config/root-config.in 2019-06-25 10:52:11.000000000 +0200 -+++ root-6.18.00/config/root-config.in 2019-06-26 15:41:39.518330743 +0200 -@@ -72,15 +72,10 @@ - newlib="-lNew" - rootglibs="-lGui" - rootevelibs="-lEve -lEG -lGeom -lGed -lRGL" --rootlibs="-lCore -lImt -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad -lROOTVecOps -lTree -lTreePlayer\ -+rootlibs="-lCore -lImt -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad -lROOTDataFrame -lROOTVecOps -lTree -lTreePlayer\ +diff -ur root-6.18.04.orig/config/root-config.in root-6.18.04/config/root-config.in +--- root-6.18.04.orig/config/root-config.in 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/config/root-config.in 2020-03-13 20:06:39.876361426 +0100 +@@ -76,10 +76,7 @@ -lRint -lPostscript -lMatrix -lPhysics -lMathCore -lThread\ -lMultiProc" @@ -69,13 +52,13 @@ diff -ur root-6.18.00.orig/config/root-config.in root-6.18.00/config/root-config - rootlibs="$rootlibs -lROOTDataFrame" -fi - -- ++rootlibs="$rootlibs -lROOTDataFrame" + if test "$platform" = "win32"; then rootulibs="-include:_G__cpp_setupG__Net \ - -include:_G__cpp_setupG__IO \ -diff -ur root-6.18.00.orig/tree/dataframe/CMakeLists.txt root-6.18.00/tree/dataframe/CMakeLists.txt ---- root-6.18.00.orig/tree/dataframe/CMakeLists.txt 2019-06-25 10:52:11.000000000 +0200 -+++ root-6.18.00/tree/dataframe/CMakeLists.txt 2019-06-26 15:14:34.827256273 +0200 +diff -ur root-6.18.04.orig/tree/dataframe/CMakeLists.txt root-6.18.04/tree/dataframe/CMakeLists.txt +--- root-6.18.04.orig/tree/dataframe/CMakeLists.txt 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/tree/dataframe/CMakeLists.txt 2020-03-13 19:58:32.332575225 +0100 @@ -3,11 +3,6 @@ # @author Danilo Piparo CERN, Pere Mato CERN ############################################################################ @@ -88,9 +71,99 @@ diff -ur root-6.18.00.orig/tree/dataframe/CMakeLists.txt root-6.18.00/tree/dataf if(arrow) list(APPEND RDATAFRAME_EXTRA_HEADERS ROOT/RArrowDS.hxx) list(APPEND RDATAFRAME_EXTRA_INCLUDES -I${ARROW_INCLUDE_DIR}) -diff -ur root-6.18.00.orig/tutorials/CMakeLists.txt root-6.18.00/tutorials/CMakeLists.txt ---- root-6.18.00.orig/tutorials/CMakeLists.txt 2019-06-25 10:52:11.000000000 +0200 -+++ root-6.18.00/tutorials/CMakeLists.txt 2019-06-26 15:18:15.834951333 +0200 +diff -ur root-6.18.04.orig/tree/dataframe/test/dataframe_cache.cxx root-6.18.04/tree/dataframe/test/dataframe_cache.cxx +--- root-6.18.04.orig/tree/dataframe/test/dataframe_cache.cxx 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/tree/dataframe/test/dataframe_cache.cxx 2020-03-13 20:13:04.021253192 +0100 +@@ -224,8 +224,6 @@ + + } + +-#ifdef R__B64 +- + TEST(Cache, Regex) + { + +@@ -334,5 +332,3 @@ + + gSystem->Unlink(fileName); + } +- +-#endif // R__B64 +diff -ur root-6.18.04.orig/tree/dataframe/test/datasource_arrow.cxx root-6.18.04/tree/dataframe/test/datasource_arrow.cxx +--- root-6.18.04.orig/tree/dataframe/test/datasource_arrow.cxx 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/tree/dataframe/test/datasource_arrow.cxx 2020-03-13 20:13:04.021253192 +0100 +@@ -163,8 +163,6 @@ + } + #endif + +-#ifdef R__B64 +- + TEST(RArrowDS, FromARDF) + { + std::unique_ptr tds(new RArrowDS(createTestTable(), {})); +@@ -236,5 +234,3 @@ + } + + #endif // R__USE_IMT +- +-#endif // R__B64 +diff -ur root-6.18.04.orig/tree/dataframe/test/datasource_csv.cxx root-6.18.04/tree/dataframe/test/datasource_csv.cxx +--- root-6.18.04.orig/tree/dataframe/test/datasource_csv.cxx 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/tree/dataframe/test/datasource_csv.cxx 2020-03-13 20:26:14.841831219 +0100 +@@ -193,8 +193,6 @@ + } + #endif + +-#ifdef R__B64 +- + TEST(RCsvDS, FromARDF) + { + std::unique_ptr tds(new RCsvDS(fileName0)); +@@ -290,5 +288,3 @@ + } + + #endif // R__USE_IMT +- +-#endif // R__B64 +diff -ur root-6.18.04.orig/tree/dataframe/test/datasource_root.cxx root-6.18.04/tree/dataframe/test/datasource_root.cxx +--- root-6.18.04.orig/tree/dataframe/test/datasource_root.cxx 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/tree/dataframe/test/datasource_root.cxx 2020-03-13 20:13:04.021253192 +0100 +@@ -117,8 +117,6 @@ + } + #endif + +-#ifdef R__B64 +- + TEST(TRootTDS, FromARDF) + { + std::unique_ptr tds(new RRootDS(treeName, fileGlob)); +@@ -190,5 +188,3 @@ + } + + #endif // R__USE_IMT +- +-#endif // R__B64 +diff -ur root-6.18.04.orig/tree/dataframe/test/datasource_trivial.cxx root-6.18.04/tree/dataframe/test/datasource_trivial.cxx +--- root-6.18.04.orig/tree/dataframe/test/datasource_trivial.cxx 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/tree/dataframe/test/datasource_trivial.cxx 2020-03-13 20:13:04.021253192 +0100 +@@ -132,8 +132,6 @@ + EXPECT_EQ(*tdfAll.Count(), 20ULL); + } + +-#ifdef R__B64 +- + TEST(RTrivialDS, FromARDFWithJitting) + { + std::unique_ptr tds(new RTrivialDS(32)); +@@ -236,5 +234,3 @@ + } + + #endif // R__USE_IMT +- +-#endif // R__B64 +diff -ur root-6.18.04.orig/tutorials/CMakeLists.txt root-6.18.04/tutorials/CMakeLists.txt +--- root-6.18.04.orig/tutorials/CMakeLists.txt 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/tutorials/CMakeLists.txt 2020-03-13 19:58:32.333575214 +0100 @@ -212,10 +212,6 @@ v7/ntuple/ntpl004_dimuon.C) endif() diff --git a/root-32bit-tests.patch b/root-32bit-tests.patch new file mode 100644 index 0000000..ea926b4 --- /dev/null +++ b/root-32bit-tests.patch @@ -0,0 +1,53 @@ +From 70d941cd6ebbc3726e08ef7f52d0135453f0b840 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Fri, 13 Mar 2020 16:21:55 +0100 +Subject: [PATCH 2/3] Run tests on 32 bit + +--- + test/stressGeometry.cxx | 8 -------- + tree/tree/test/CMakeLists.txt | 10 +++------- + 2 files changed, 3 insertions(+), 15 deletions(-) + +diff --git a/test/stressGeometry.cxx b/test/stressGeometry.cxx +index 5e81f5f2ca..18e41a6f45 100644 +--- a/test/stressGeometry.cxx ++++ b/test/stressGeometry.cxx +@@ -257,14 +257,6 @@ void stressGeometry(const char *exp="*", Bool_t generate_ref=kFALSE, Bool_t vecg + if (opt.Contains(exps[i])) iexp[i] = 1; + else iexp[i] = 0; + } +-#if defined(linux) && !defined(__x86_64__) +- // 32bit linux: we have an error with ATLAS, see https://sft.its.cern.ch/jira/browse/ROOT-9893 +- // Disable unless explicitly enabled. +- if (all) { +- printf("DISABLED ATLAS TEST due to known failure on Linux 32 bit!\n"); +- iexp[32] = 0; +- } +-#endif + TFile::SetCacheFileDir("."); + TString fname; + for (i=0; i +Date: Fri, 13 Mar 2020 14:09:07 +0100 +Subject: [PATCH] Correct broken assert statements + +--- + math/mathcore/src/FitData.cxx | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/math/mathcore/src/FitData.cxx b/math/mathcore/src/FitData.cxx +index a2be20ab0d..0bad8ff7cd 100644 +--- a/math/mathcore/src/FitData.cxx ++++ b/math/mathcore/src/FitData.cxx +@@ -200,9 +200,9 @@ namespace ROOT { + /// dummy virtual destructor + FitData::~FitData() + { ++ assert(fWrapped == fCoords.empty()); + for (unsigned int i = 0; i < fDim; i++) { +- assert(fWrapped == fCoords.empty()); +- assert(fCoords.empty() || &fCoords[i].front() == fCoordsPtr[i]); ++ assert(fWrapped || fCoords[i].empty() || &fCoords[i].front() == fCoordsPtr[i]); + } + if (fpTmpCoordVector) delete[] fpTmpCoordVector; + +-- +2.24.1 + diff --git a/root-clang-altivec-vector.patch b/root-clang-altivec-vector.patch index 23202bd..4648ccc 100644 --- a/root-clang-altivec-vector.patch +++ b/root-clang-altivec-vector.patch @@ -1,7 +1,19 @@ -diff -ur root-6.18.04.orig/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp root-6.18.04/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp ---- root-6.18.04.orig/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp 2019-09-11 15:36:49.000000000 +0200 -+++ root-6.18.04/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp 2020-02-06 14:36:14.580497452 +0100 -@@ -2373,7 +2373,7 @@ +From f0e7ee696e416f5cb42619889fcbff7db64f17e1 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Fri, 13 Mar 2020 17:09:03 +0100 +Subject: [PATCH] Fix ppc64le compilation with gcc 10 + +Backported from llvm upstream +https://reviews.llvm.org/D74129 +--- + interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp b/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp +index dbe6b4db94..2096ba6982 100644 +--- a/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp ++++ b/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp +@@ -2373,7 +2373,7 @@ bool Lexer::SkipBlockComment(Token &Result, const char *CurPtr, '/', '/', '/', '/', '/', '/', '/', '/' }; while (CurPtr+16 <= BufferEnd && @@ -10,3 +22,6 @@ diff -ur root-6.18.04.orig/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp ro CurPtr += 16; #else // Scan for '/' quickly. Many block comments are very large. +-- +2.24.1 + diff --git a/root-format-fix.patch b/root-format-fix.patch new file mode 100644 index 0000000..9d7f4e2 --- /dev/null +++ b/root-format-fix.patch @@ -0,0 +1,28 @@ +From 1d4aaf9e503669ccb0275f3f9b8a87a486671334 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Fri, 13 Mar 2020 14:34:48 +0100 +Subject: [PATCH] Size types should use %z + +--- + tree/dataframe/src/RCsvDS.cxx | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tree/dataframe/src/RCsvDS.cxx b/tree/dataframe/src/RCsvDS.cxx +index 81f802285b..fc0a18e21f 100644 +--- a/tree/dataframe/src/RCsvDS.cxx ++++ b/tree/dataframe/src/RCsvDS.cxx +@@ -368,9 +368,9 @@ std::vector> RCsvDS::GetEntryRanges() + + if (gDebug > 0) { + if (fLinesChunkSize == -1LL) { +- Info("GetEntryRanges", "Attempted to read entire CSV file into memory, %lu lines read", fRecords.size()); ++ Info("GetEntryRanges", "Attempted to read entire CSV file into memory, %zu lines read", fRecords.size()); + } else { +- Info("GetEntryRanges", "Attempted to read chunk of %lld lines of CSV file into memory, %lu lines read", fLinesChunkSize, fRecords.size()); ++ Info("GetEntryRanges", "Attempted to read chunk of %lld lines of CSV file into memory, %zu lines read", fLinesChunkSize, fRecords.size()); + } + } + +-- +2.24.1 + diff --git a/root-python3.8-object.patch b/root-python3.8-object.patch new file mode 100644 index 0000000..ed4ef9f --- /dev/null +++ b/root-python3.8-object.patch @@ -0,0 +1,539 @@ +diff -ur root-6.18.04.orig/bindings/pyroot/src/MethodProxy.cxx root-6.18.04/bindings/pyroot/src/MethodProxy.cxx +--- root-6.18.04.orig/bindings/pyroot/src/MethodProxy.cxx 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/bindings/pyroot/src/MethodProxy.cxx 2020-03-13 16:46:56.538971601 +0100 +@@ -839,7 +839,8 @@ + sizeof(MethodProxy), // tp_basicsize + 0, // tp_itemsize + (destructor)mp_dealloc, // tp_dealloc +- 0, // tp_print ++ 0, // tp_print (python < 3.8) ++ // tp_vectorcall_offset (python >= 3.8) + 0, // tp_getattr + 0, // tp_setattr + 0, // tp_compare +@@ -888,6 +889,12 @@ + #if PY_VERSION_HEX >= 0x03040000 + , 0 // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ , 0 // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ , 0 // tp_print (python 3.8 only) ++#endif ++#endif + }; + + } // namespace PyROOT +diff -ur root-6.18.04.orig/bindings/pyroot/src/ObjectProxy.cxx root-6.18.04/bindings/pyroot/src/ObjectProxy.cxx +--- root-6.18.04.orig/bindings/pyroot/src/ObjectProxy.cxx 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/bindings/pyroot/src/ObjectProxy.cxx 2020-03-13 16:46:56.539971591 +0100 +@@ -397,7 +397,8 @@ + sizeof(ObjectProxy), // tp_basicsize + 0, // tp_itemsize + (destructor)op_dealloc, // tp_dealloc +- 0, // tp_print ++ 0, // tp_print (python < 3.8) ++ // tp_vectorcall_offset (python >= 3.8) + 0, // tp_getattr + 0, // tp_setattr + 0, // tp_compare +@@ -449,6 +450,12 @@ + #if PY_VERSION_HEX >= 0x03040000 + , 0 // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ , 0 // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ , 0 // tp_print (python 3.8 only) ++#endif ++#endif + }; + + } // namespace PyROOT +diff -ur root-6.18.04.orig/bindings/pyroot/src/PropertyProxy.cxx root-6.18.04/bindings/pyroot/src/PropertyProxy.cxx +--- root-6.18.04.orig/bindings/pyroot/src/PropertyProxy.cxx 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/bindings/pyroot/src/PropertyProxy.cxx 2020-03-13 16:46:56.539971591 +0100 +@@ -133,7 +133,8 @@ + sizeof(PropertyProxy), // tp_basicsize + 0, // tp_itemsize + (destructor)pp_dealloc, // tp_dealloc +- 0, // tp_print ++ 0, // tp_print (python < 3.8) ++ // tp_vectorcall_offset (python >= 3.8) + 0, // tp_getattr + 0, // tp_setattr + 0, // tp_compare +@@ -182,6 +183,12 @@ + #if PY_VERSION_HEX >= 0x03040000 + , 0 // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ , 0 // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ , 0 // tp_print (python 3.8 only) ++#endif ++#endif + }; + + } // namespace PyROOT +diff -ur root-6.18.04.orig/bindings/pyroot/src/PyRootType.cxx root-6.18.04/bindings/pyroot/src/PyRootType.cxx +--- root-6.18.04.orig/bindings/pyroot/src/PyRootType.cxx 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/bindings/pyroot/src/PyRootType.cxx 2020-03-13 16:46:56.539971591 +0100 +@@ -230,7 +230,8 @@ + sizeof(PyROOT::PyRootClass),// tp_basicsize + 0, // tp_itemsize + 0, // tp_dealloc +- 0, // tp_print ++ 0, // tp_print (python < 3.8) ++ // tp_vectorcall_offset (python >= 3.8) + 0, // tp_getattr + 0, // tp_setattr + 0, // tp_compare +@@ -279,6 +280,12 @@ + #if PY_VERSION_HEX >= 0x03040000 + , 0 // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ , 0 // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ , 0 // tp_print (python 3.8 only) ++#endif ++#endif + }; + + } // namespace PyROOT +diff -ur root-6.18.04.orig/bindings/pyroot/src/Pythonize.cxx root-6.18.04/bindings/pyroot/src/Pythonize.cxx +--- root-6.18.04.orig/bindings/pyroot/src/Pythonize.cxx 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/bindings/pyroot/src/Pythonize.cxx 2020-03-13 16:46:56.540971580 +0100 +@@ -944,6 +944,12 @@ + #if PY_VERSION_HEX >= 0x03040000 + , 0 // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ , 0 // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ , 0 // tp_print (python 3.8 only) ++#endif ++#endif + }; + + static PyObject* vector_iter( PyObject* v ) { +diff -ur root-6.18.04.orig/bindings/pyroot/src/RootModule.cxx root-6.18.04/bindings/pyroot/src/RootModule.cxx +--- root-6.18.04.orig/bindings/pyroot/src/RootModule.cxx 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/bindings/pyroot/src/RootModule.cxx 2020-03-13 16:46:56.540971580 +0100 +@@ -134,6 +134,12 @@ + #if PY_VERSION_HEX >= 0x03040000 + , 0 // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ , 0 // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ , 0 // tp_print (python 3.8 only) ++#endif ++#endif + }; + + PyObject _PyROOT_NullPtrStruct = { +diff -ur root-6.18.04.orig/bindings/pyroot/src/TCustomPyTypes.cxx root-6.18.04/bindings/pyroot/src/TCustomPyTypes.cxx +--- root-6.18.04.orig/bindings/pyroot/src/TCustomPyTypes.cxx 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/bindings/pyroot/src/TCustomPyTypes.cxx 2020-03-13 16:46:56.540971580 +0100 +@@ -19,7 +19,8 @@ + 0, // tp_basicsize + 0, // tp_itemsize + 0, // tp_dealloc +- 0, // tp_print ++ 0, // tp_print (python < 3.8) ++ // tp_vectorcall_offset (python >= 3.8) + 0, // tp_getattr + 0, // tp_setattr + 0, // tp_compare +@@ -69,6 +70,12 @@ + #if PY_VERSION_HEX >= 0x03040000 + , 0 // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ , 0 // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ , 0 // tp_print (python 3.8 only) ++#endif ++#endif + }; + + //= long type allowed for reference passing ================================== +@@ -78,7 +85,8 @@ + 0, // tp_basicsize + 0, // tp_itemsize + 0, // tp_dealloc +- 0, // tp_print ++ 0, // tp_print (python < 3.8) ++ // tp_vectorcall_offset (python >= 3.8) + 0, // tp_getattr + 0, // tp_setattr + 0, // tp_compare +@@ -128,6 +136,12 @@ + #if PY_VERSION_HEX >= 0x03040000 + , 0 // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ , 0 // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ , 0 // tp_print (python 3.8 only) ++#endif ++#endif + }; + + //= instancemethod object with a more efficient call function ================ +@@ -277,7 +291,8 @@ + 0, // tp_basicsize + 0, // tp_itemsize + (destructor)im_dealloc, // tp_dealloc +- 0, // tp_print ++ 0, // tp_print (python < 3.8) ++ // tp_vectorcall_offset (python >= 3.8) + 0, // tp_getattr + 0, // tp_setattr + 0, // tp_compare +@@ -327,6 +342,12 @@ + #if PY_VERSION_HEX >= 0x03040000 + , 0 // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ , 0 // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ , 0 // tp_print (python 3.8 only) ++#endif ++#endif + }; + + } // namespace PyROOT +diff -ur root-6.18.04.orig/bindings/pyroot/src/TemplateProxy.cxx root-6.18.04/bindings/pyroot/src/TemplateProxy.cxx +--- root-6.18.04.orig/bindings/pyroot/src/TemplateProxy.cxx 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/bindings/pyroot/src/TemplateProxy.cxx 2020-03-13 16:46:56.541971570 +0100 +@@ -395,7 +395,8 @@ + sizeof(TemplateProxy), // tp_basicsize + 0, // tp_itemsize + (destructor)tpp_dealloc, // tp_dealloc +- 0, // tp_print ++ 0, // tp_print (python < 3.8) ++ // tp_vectorcall_offset (python >= 3.8) + 0, // tp_getattr + 0, // tp_setattr + 0, // tp_compare +@@ -444,6 +445,12 @@ + #if PY_VERSION_HEX >= 0x03040000 + , 0 // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ , 0 // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ , 0 // tp_print (python 3.8 only) ++#endif ++#endif + }; + + } // namespace PyROOT +diff -ur root-6.18.04.orig/bindings/pyroot/src/TTupleOfInstances.cxx root-6.18.04/bindings/pyroot/src/TTupleOfInstances.cxx +--- root-6.18.04.orig/bindings/pyroot/src/TTupleOfInstances.cxx 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/bindings/pyroot/src/TTupleOfInstances.cxx 2020-03-13 16:46:56.540971580 +0100 +@@ -42,7 +42,8 @@ + 0, // tp_basicsize + 0, // tp_itemsize + 0, // tp_dealloc +- 0, // tp_print ++ 0, // tp_print (python < 3.8) ++ // tp_vectorcall_offset (python >= 3.8) + 0, // tp_getattr + 0, // tp_setattr + 0, // tp_compare +@@ -92,6 +93,12 @@ + #if PY_VERSION_HEX >= 0x03040000 + , 0 // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ , 0 // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ , 0 // tp_print (python 3.8 only) ++#endif ++#endif + }; + + } // namespace PyROOT +diff -ur root-6.18.04.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDataMember.cxx root-6.18.04/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDataMember.cxx +--- root-6.18.04.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDataMember.cxx 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDataMember.cxx 2020-03-13 16:47:15.029777701 +0100 +@@ -168,7 +168,8 @@ + sizeof(CPPDataMember), // tp_basicsize + 0, // tp_itemsize + (destructor)pp_dealloc, // tp_dealloc +- 0, // tp_print ++ 0, // tp_print (python < 3.8) ++ // tp_vectorcall_offset (python >= 3.8) + 0, // tp_getattr + 0, // tp_setattr + 0, // tp_compare +@@ -217,6 +218,12 @@ + #if PY_VERSION_HEX >= 0x03040000 + , 0 // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ , 0 // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ , 0 // tp_print (python 3.8 only) ++#endif ++#endif + }; + + } // namespace CPyCppyy +diff -ur root-6.18.04.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPInstance.cxx root-6.18.04/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPInstance.cxx +--- root-6.18.04.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPInstance.cxx 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPInstance.cxx 2020-03-13 16:47:15.029777701 +0100 +@@ -385,7 +385,8 @@ + sizeof(CPPInstance), // tp_basicsize + 0, // tp_itemsize + (destructor)op_dealloc, // tp_dealloc +- 0, // tp_print ++ 0, // tp_print (python < 3.8) ++ // tp_vectorcall_offset (python >= 3.8) + 0, // tp_getattr + 0, // tp_setattr + 0, // tp_compare +@@ -437,6 +438,12 @@ + #if PY_VERSION_HEX >= 0x03040000 + , 0 // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ , 0 // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ , 0 // tp_print (python 3.8 only) ++#endif ++#endif + }; + + } // namespace CPyCppyy +diff -ur root-6.18.04.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOverload.cxx root-6.18.04/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOverload.cxx +--- root-6.18.04.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOverload.cxx 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOverload.cxx 2020-03-13 16:47:15.030777691 +0100 +@@ -813,7 +813,8 @@ + sizeof(CPPOverload), // tp_basicsize + 0, // tp_itemsize + (destructor)mp_dealloc, // tp_dealloc +- 0, // tp_print ++ 0, // tp_print (python < 3.8) ++ // tp_vectorcall_offset (python >= 3.8) + 0, // tp_getattr + 0, // tp_setattr + 0, // tp_compare +@@ -862,6 +863,12 @@ + #if PY_VERSION_HEX >= 0x03040000 + , 0 // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ , 0 // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ , 0 // tp_print (python 3.8 only) ++#endif ++#endif + }; + + } // namespace CPyCppyy +diff -ur root-6.18.04.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPScope.cxx root-6.18.04/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPScope.cxx +--- root-6.18.04.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPScope.cxx 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPScope.cxx 2020-03-13 16:47:15.030777691 +0100 +@@ -424,7 +424,8 @@ + sizeof(CPyCppyy::CPPScope), // tp_basicsize + 0, // tp_itemsize + 0, // tp_dealloc +- 0, // tp_print ++ 0, // tp_print (python < 3.8) ++ // tp_vectorcall_offset (python >= 3.8) + 0, // tp_getattr + 0, // tp_setattr + 0, // tp_compare +@@ -473,6 +474,12 @@ + #if PY_VERSION_HEX >= 0x03040000 + , 0 // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ , 0 // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ , 0 // tp_print (python 3.8 only) ++#endif ++#endif + }; + + } // namespace CPyCppyy +diff -ur root-6.18.04.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCppyyModule.cxx root-6.18.04/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCppyyModule.cxx +--- root-6.18.04.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCppyyModule.cxx 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCppyyModule.cxx 2020-03-13 16:47:15.030777691 +0100 +@@ -140,6 +140,12 @@ + #if PY_VERSION_HEX >= 0x03040000 + , 0 // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ , 0 // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ , 0 // tp_print (python 3.8 only) ++#endif ++#endif + }; + + namespace { +diff -ur root-6.18.04.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CustomPyTypes.cxx root-6.18.04/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CustomPyTypes.cxx +--- root-6.18.04.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CustomPyTypes.cxx 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CustomPyTypes.cxx 2020-03-13 16:57:57.529034828 +0100 +@@ -32,6 +32,12 @@ + #if PY_VERSION_HEX >= 0x03040000 + , 0 // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ , 0 // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ , 0 // tp_print (python 3.8 only) ++#endif ++#endif + }; + + //= long type allowed for reference passing ================================== +@@ -54,6 +60,12 @@ + #if PY_VERSION_HEX >= 0x03040000 + , 0 // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ , 0 // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ , 0 // tp_print (python 3.8 only) ++#endif ++#endif + }; + + //= instancemethod object with a more efficient call function ================ +@@ -219,6 +231,12 @@ + #if PY_VERSION_HEX >= 0x03040000 + , 0 // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ , 0 // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ , 0 // tp_print (python 3.8 only) ++#endif ++#endif + }; + + +@@ -269,6 +287,12 @@ + #if PY_VERSION_HEX >= 0x03040000 + , 0 // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ , 0 // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ , 0 // tp_print (python 3.8 only) ++#endif ++#endif + }; + + +@@ -320,6 +344,12 @@ + #if PY_VERSION_HEX >= 0x03040000 + , 0 // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ , 0 // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ , 0 // tp_print (python 3.8 only) ++#endif ++#endif + }; + + } // namespace CPyCppyy +diff -ur root-6.18.04.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLevelViews.cxx root-6.18.04/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLevelViews.cxx +--- root-6.18.04.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLevelViews.cxx 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLevelViews.cxx 2020-03-13 16:47:15.031777680 +0100 +@@ -657,7 +657,8 @@ + sizeof(CPyCppyy::LowLevelView),// tp_basicsize + 0, // tp_itemsize + (destructor)ll_dealloc, // tp_dealloc +- 0, // tp_print ++ 0, // tp_print (python < 3.8) ++ // tp_vectorcall_offset (python >= 3.8) + 0, // tp_getattr + 0, // tp_setattr + 0, // tp_compare +@@ -707,6 +708,12 @@ + #if PY_VERSION_HEX >= 0x03040000 + , 0 // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ , 0 // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ , 0 // tp_print (python 3.8 only) ++#endif ++#endif + }; + + } // namespace CPyCppyy +diff -ur root-6.18.04.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TemplateProxy.cxx root-6.18.04/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TemplateProxy.cxx +--- root-6.18.04.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TemplateProxy.cxx 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TemplateProxy.cxx 2020-03-13 16:47:15.032777670 +0100 +@@ -515,7 +515,8 @@ + sizeof(TemplateProxy), // tp_basicsize + 0, // tp_itemsize + (destructor)tpp_dealloc, // tp_dealloc +- 0, // tp_print ++ 0, // tp_print (python < 3.8) ++ // tp_vectorcall_offset (python >= 3.8) + 0, // tp_getattr + 0, // tp_setattr + 0, // tp_compare +@@ -564,6 +565,12 @@ + #if PY_VERSION_HEX >= 0x03040000 + , 0 // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ , 0 // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ , 0 // tp_print (python 3.8 only) ++#endif ++#endif + }; + + } // namespace CPyCppyy +diff -ur root-6.18.04.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TupleOfInstances.cxx root-6.18.04/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TupleOfInstances.cxx +--- root-6.18.04.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TupleOfInstances.cxx 2019-09-11 15:36:49.000000000 +0200 ++++ root-6.18.04/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TupleOfInstances.cxx 2020-03-13 16:47:15.032777670 +0100 +@@ -79,6 +79,12 @@ + #if PY_VERSION_HEX >= 0x03040000 + , 0 // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ , 0 // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ , 0 // tp_print (python 3.8 only) ++#endif ++#endif + }; + + +@@ -152,7 +158,8 @@ + 0, // tp_basicsize + 0, // tp_itemsize + 0, // tp_dealloc +- 0, // tp_print ++ 0, // tp_print (python < 3.8) ++ // tp_vectorcall_offset (python >= 3.8) + 0, // tp_getattr + 0, // tp_setattr + 0, // tp_compare +@@ -202,6 +209,12 @@ + #if PY_VERSION_HEX >= 0x03040000 + , 0 // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ , 0 // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ , 0 // tp_print (python 3.8 only) ++#endif ++#endif + }; + + } // namespace CPyCppyy diff --git a/root-tutorials-unique-filenames.patch b/root-tutorials-unique-filenames.patch new file mode 100644 index 0000000..dee82fb --- /dev/null +++ b/root-tutorials-unique-filenames.patch @@ -0,0 +1,22 @@ +diff --git a/tutorials/multicore/mtbb101_fillNtuples.C b/tutorials/multicore/mtbb101_fillNtuples.C +index 80c19ce626..d7a9dbbdaa 100644 +--- a/tutorials/multicore/mtbb101_fillNtuples.C ++++ b/tutorials/multicore/mtbb101_fillNtuples.C +@@ -40,7 +40,7 @@ Int_t mtbb101_fillNtuples() + + // Create a random generator and and Ntuple to hold the numbers + TRandom3 rndm(1); +- TFile ofile("mp101_singleCore.root", "RECREATE"); ++ TFile ofile("mtbb101_singleCore.root", "RECREATE"); + TNtuple randomNumbers("singleCore", "Random Numbers", "r"); + fillRandom(randomNumbers, rndm, nNumbers); + randomNumbers.Write(); +@@ -52,7 +52,7 @@ Int_t mtbb101_fillNtuples() + auto workItem = [](UInt_t workerID) { + // One generator, file and ntuple per worker + TRandom3 workerRndm(workerID); // Change the seed +- TFile ofile(Form("mp101_multiCore_%u.root", workerID), "RECREATE"); ++ TFile ofile(Form("mtbb101_multiCore_%u.root", workerID), "RECREATE"); + TNtuple workerRandomNumbers("multiCore", "Random Numbers", "r"); + fillRandom(workerRandomNumbers, workerRndm, workSize); + workerRandomNumbers.Write(); diff --git a/root-xmlmodify-dep.patch b/root-xmlmodify-dep.patch new file mode 100644 index 0000000..02a0498 --- /dev/null +++ b/root-xmlmodify-dep.patch @@ -0,0 +1,25 @@ +From a651fb9278438d5ad7e4ddbf6082a791e1187e0d Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Fri, 13 Mar 2020 12:58:14 +0100 +Subject: [PATCH] The test that creates the file must run before the test that + modifies it + +--- + tutorials/CMakeLists.txt | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt +index f920da54ee..b1abd03d36 100644 +--- a/tutorials/CMakeLists.txt ++++ b/tutorials/CMakeLists.txt +@@ -375,6 +375,7 @@ set(unfold-testUnfold5b-depends tutorial-unfold-testUnfold5a) + set(unfold-testUnfold7d-depends tutorial-unfold-testUnfold7c) + set(unfold-testUnfold7c-depends tutorial-unfold-testUnfold7b) + set(unfold-testUnfold7b-depends tutorial-unfold-testUnfold7a) ++set(xml-xmlmodifyfile-depends tutorial-xml-xmlnewfile) + set(xml-xmlreadfile-depends tutorial-xml-xmlnewfile) + set(roofit-rf503_wspaceread-depends tutorial-roofit-rf502_wspacewrite) + set(histfactory-example-depends tutorial-roostats-CreateExampleFile) +-- +2.24.1 + diff --git a/root.spec b/root.spec index e7223a2..02e7bb6 100644 --- a/root.spec +++ b/root.spec @@ -46,12 +46,12 @@ # Do not generate autoprovides for libJupyROOT.so # Note: the ones from libPyROOT.so we do want though -%global __provides_exclude_from ^(%{python2_sitearch}|%{python3_sitearch}%{?python3_other_sitearch:|%{python3_other_sitearch}})/libJupyROOT\\.so$ +%global __provides_exclude_from ^(%{?python2_sitearch:%{python2_sitearch}|}%{python3_sitearch}%{?python3_other_sitearch:|%{python3_other_sitearch}})/libJupyROOT\\.so$ Name: root Version: 6.18.04 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 5%{?dist} +Release: 6%{?dist} Summary: Numerical data analysis framework License: LGPLv2+ @@ -124,20 +124,35 @@ Patch18: %{name}-pretty-printers.patch # Missing include - fails with gcc 10 Patch19: %{name}-missing-include-string.patch # Fix ppc64le build with gcc 10 +# https://github.com/root-project/root/pull/5157 Patch20: %{name}-clang-altivec-vector.patch # Missing symbol - with gcc 10 Patch21: %{name}-static-constexpr.patch +# Fix -Wmissing-field-initializers in python bindings for +# Python 3.8 and 3.9 +# https://github.com/root-project/root/pull/5158 +Patch22: %{name}-python3.8-object.patch +# Correct broken assert statements +# https://github.com/root-project/root/pull/5159 +Patch23: %{name}-FitData-assert-fix.patch +# The test that creates the file must run before the test that +# modifies it +# https://github.com/root-project/root/pull/5160 +Patch24: %{name}-xmlmodify-dep.patch +# Use unique filenames in tutorials so they can be run in +# parallel +# Backport from upstream's git +Patch25: %{name}-tutorials-unique-filenames.patch +# Size types should use %z +# https://github.com/root-project/root/pull/5161 +Patch26: %{name}-format-fix.patch +# Run some test on 32 bit that upstream has disabled +Patch27: %{name}-32bit-tests.patch # s390x suffers from endian issues resulting in failing tests # and broken documentation generation # https://sft.its.cern.ch/jira/browse/ROOT-8703 ExcludeArch: s390x -%if %{?fedora}%{!?fedora:0} >= 32 -# The rootcling_stage1 binary segfaults on 32-bit arm when -# compiled with gcc 10 - exclude the architecture for now, -# bug #1811604 -ExcludeArch: %{arm} -%endif %if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8 BuildRequires: cmake >= 3.4.3 @@ -1759,6 +1774,12 @@ This package contains an ntuple extension for ROOT 7. %patch19 -p1 %patch20 -p1 %patch21 -p1 +%patch22 -p1 +%patch23 -p1 +%patch24 -p1 +%patch25 -p1 +%patch26 -p1 +%patch27 -p1 # Remove bundled sources in order to be sure they are not used # * afterimage @@ -1769,7 +1790,7 @@ rm -rf graf3d/ftgl/src graf3d/ftgl/inc rm -rf graf2d/freetype/src # * glew rm -rf graf3d/glew/src graf3d/glew/inc graf3d/glew/isystem -# * lz4, pcre, xxhash, zlib +# * davix, lz4, openssl, pcre, xxhash, zlib rm -rf builtins # * lzma rm -rf core/lzma/src/*.tar.gz @@ -1788,9 +1809,10 @@ sed /mathjax.tar.gz/d -i documentation/doxygen/Makefile # * string_view ( requires c++-14) rm core/foundation/inc/ROOT/libcpp_string_view.h \ core/foundation/inc/ROOT/RWrap_libcpp_string_view.h +sed /RWrap_libcpp_string_view.h/d -i build/unix/module.modulemap %endif # * jsroot -rm -rf etc/js/* +rm -rf js/* # Fix file permissions chmod -x interpreter/llvm/src/lib/Target/X86/X86EvexToVex.cpp @@ -2401,7 +2423,7 @@ rmdir TVirtualGeoConverter popd # Replace bundled jsroot with symlink to system version -rm -rf %{buildroot}%{_datadir}/%{name}/js +rmdir %{buildroot}%{_datadir}/%{name}/js ln -s /usr/share/javascript/jsroot %{buildroot}%{_datadir}/%{name}/js # Create ldconfig configuration @@ -2564,26 +2586,32 @@ tutorial-v7-line.cxx" # - gtest-tree-dataframe-test-dataframe-colnames # - gtest-tree-dataframe-test-dataframe-friends # - gtest-tree-dataframe-test-dataframe-helpers +# - gtest-tree-dataframe-test-dataframe-interface # - gtest-tree-dataframe-test-dataframe-simple # - gtest-tree-dataframe-test-dataframe-snapshot +# - gtest-tree-dataframe-test-datasource-root excluded="${excluded}|\ gtest-tree-dataframe-test-dataframe-cache|\ gtest-tree-dataframe-test-dataframe-callbacks|\ gtest-tree-dataframe-test-dataframe-colnames|\ gtest-tree-dataframe-test-dataframe-friends|\ gtest-tree-dataframe-test-dataframe-helpers|\ +gtest-tree-dataframe-test-dataframe-interface|\ gtest-tree-dataframe-test-dataframe-simple|\ -gtest-tree-dataframe-test-dataframe-snapshot" +gtest-tree-dataframe-test-dataframe-snapshot|\ +gtest-tree-dataframe-test-datasource-root" %endif %endif %ifarch %{arm} # Tests failing on 32 bit arm +# - gtest-tree-tree-test-testBulkApiSillyStruct # - tutorial-v7-draw.cxx # - tutorial-v7-draw_mt.cxx # - tutorial-v7-draw_rh1.cxx # - tutorial-v7-draw_subpads.cxx excluded="${excluded}|\ +gtest-tree-tree-test-testBulkApiSillyStruct|\ tutorial-v7-draw.cxx|\ tutorial-v7-draw_mt.cxx|\ tutorial-v7-draw_rh1.cxx|\ @@ -2604,22 +2632,11 @@ excluded="${excluded}|tutorial-roofit-rf608_fitresultaspdf-py" %if %{?fedora}%{!?fedora:0} >= 32 # New failures with Fedora 32+ (gcc 10) excluded="${excluded}|tutorial-v7-markerStyle.cxx" -%ifarch %{ix86} -excluded="${excluded}|\ -TMVA-DNN-CNN-Reshape-CPU|\ -gtest-tree-dataframe-test-dataframe-interface" +%ifarch %{ix86} ppc64le +excluded="${excluded}|TMVA-DNN-CNN-Reshape-CPU" %endif %ifarch ppc64le -excluded="${excluded}|\ -TMVA-DNN-CNN-Reshape-CPU|\ -tutorial-v7-lineStyle.cxx|\ -tutorial-v7-lineWidth.cxx" -%endif -%endif - -%if %{?fedora}%{!?fedora:0} >= 33 -%ifarch aarch64 -excluded="${excluded}|tutorial-tmva-TMVARegression" +excluded="${excluded}|tutorial-v7-lineStyle.cxx|tutorial-v7-lineWidth.cxx" %endif %endif @@ -3679,6 +3696,9 @@ fi %endif %changelog +* Sat Mar 14 2020 Mattias Ellert - 6.18.04-6 +- Build for 32 bit ARM again - gcc-10.0.1-0.9 fixes the problem + * Sat Feb 22 2020 Mattias Ellert - 6.18.04-5 - Fixes and workarounds for gcc 10 - ExcludeArch for 32 bit ARM because rootcling_stage1 segfaults (bug #1811604)