diff --git a/root-32bit-dataframe.patch b/root-32bit-dataframe.patch deleted file mode 100644 index 310171f..0000000 --- a/root-32bit-dataframe.patch +++ /dev/null @@ -1,150 +0,0 @@ -diff -ur root-6.22.00.orig/bindings/pyroot_legacy/ROOT.py root-6.22.00/bindings/pyroot_legacy/ROOT.py ---- root-6.22.00.orig/bindings/pyroot_legacy/ROOT.py 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/bindings/pyroot_legacy/ROOT.py 2020-06-29 09:07:41.574798580 +0200 -@@ -438,9 +438,7 @@ - # This function is injected as method to the respective classes in Pythonize.cxx. - _root._RDataFrameAsNumpy = _RDataFrameAsNumpy - --# This Pythonisation is there only for 64 bits builds --if (sys.maxsize > 2**32): # https://docs.python.org/3/library/platform.html#cross-platform -- _root.CreateScopeProxy( "TTree" ).AsMatrix = _TTreeAsMatrix -+_root.CreateScopeProxy( "TTree" ).AsMatrix = _TTreeAsMatrix - - - ### RINT command emulation ------------------------------------------------------ -diff -ur root-6.22.00.orig/build/unix/makepchinput.py root-6.22.00/build/unix/makepchinput.py ---- root-6.22.00.orig/build/unix/makepchinput.py 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/build/unix/makepchinput.py 2020-06-29 09:07:41.639798769 +0200 -@@ -252,9 +252,6 @@ - "math/vdt", - "tmva/rmva"] - -- if (sys.platform != 'win32' and sys.maxsize <= 2**32): # https://docs.python.org/3/library/platform.html#cross-platform -- PCHPatternsBlacklist.append("tree/dataframe") -- - accepted = isAnyPatternInString(PCHPatternsWhitelist,dirName) and \ - not isAnyPatternInString(PCHPatternsBlacklist,dirName) - -diff -ur root-6.22.00.orig/tree/dataframe/test/dataframe_cache.cxx root-6.22.00/tree/dataframe/test/dataframe_cache.cxx ---- root-6.22.00.orig/tree/dataframe/test/dataframe_cache.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/tree/dataframe/test/dataframe_cache.cxx 2020-06-29 09:07:41.640798772 +0200 -@@ -224,8 +224,6 @@ - - } - --#ifdef R__B64 -- - TEST(Cache, Regex) - { - -@@ -335,8 +333,6 @@ - gSystem->Unlink(fileName); - } - --#endif // R__B64 -- - // ROOT-10563 - TEST(Cache, Alias) - { -diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_arrow.cxx root-6.22.00/tree/dataframe/test/datasource_arrow.cxx ---- root-6.22.00.orig/tree/dataframe/test/datasource_arrow.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/tree/dataframe/test/datasource_arrow.cxx 2020-06-29 09:07:41.645798787 +0200 -@@ -177,8 +177,6 @@ - } - #endif - --#ifdef R__B64 -- - TEST(RArrowDS, FromARDF) - { - std::unique_ptr tds(new RArrowDS(createTestTable(), {})); -@@ -250,5 +248,3 @@ - } - - #endif // R__USE_IMT -- --#endif // R__B64 -diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_csv.cxx root-6.22.00/tree/dataframe/test/datasource_csv.cxx ---- root-6.22.00.orig/tree/dataframe/test/datasource_csv.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/tree/dataframe/test/datasource_csv.cxx 2020-06-29 09:07:41.645798787 +0200 -@@ -195,8 +195,6 @@ - } - #endif - --#ifdef R__B64 -- - TEST(RCsvDS, FromARDF) - { - std::unique_ptr tds(new RCsvDS(fileName0)); -@@ -292,5 +290,3 @@ - } - - #endif // R__USE_IMT -- --#endif // R__B64 -diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_root.cxx root-6.22.00/tree/dataframe/test/datasource_root.cxx ---- root-6.22.00.orig/tree/dataframe/test/datasource_root.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/tree/dataframe/test/datasource_root.cxx 2020-06-29 09:07:41.649798799 +0200 -@@ -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.22.00.orig/tree/dataframe/test/datasource_trivial.cxx root-6.22.00/tree/dataframe/test/datasource_trivial.cxx ---- root-6.22.00.orig/tree/dataframe/test/datasource_trivial.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/tree/dataframe/test/datasource_trivial.cxx 2020-06-29 09:07:41.654798814 +0200 -@@ -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.22.00.orig/tutorials/CMakeLists.txt root-6.22.00/tutorials/CMakeLists.txt ---- root-6.22.00.orig/tutorials/CMakeLists.txt 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/tutorials/CMakeLists.txt 2020-06-29 09:07:41.655798816 +0200 -@@ -257,10 +257,6 @@ - set(root7_veto v7/ntuple/ntpl004_dimuon.C) - endif() - --if( CMAKE_SIZEOF_VOID_P EQUAL 4 ) -- set(bits32_veto dataframe/*.C graphs/timeSeriesFrom*.C v7/ntuple/ntpl004_dimuon.C) --endif() -- - #---These ones are disabled !!! ------------------------------------ - set(extra_veto - legacy/benchmarks.C -@@ -313,7 +309,6 @@ - ${classic_veto} - ${pythia_veto} - ${root7_veto} -- ${bits32_veto} - ${xrootd_veto} - ${mlp_veto} - ${spectrum_veto} -@@ -526,7 +521,6 @@ - list(REMOVE_ITEM pytutorials ${pyveto}) - - if(NOT dataframe) -- set(dataframe_veto_py dataframe/*.py) - file(GLOB dataframe_veto_py RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} dataframe/*.py tmva/tmva*.py) - list(REMOVE_ITEM pytutorials ${dataframe_veto_py}) - list(REMOVE_ITEM pytutorials diff --git a/root-32bit-tests.patch b/root-32bit-tests.patch index ea926b4..ae15a5d 100644 --- a/root-32bit-tests.patch +++ b/root-32bit-tests.patch @@ -1,7 +1,7 @@ -From 70d941cd6ebbc3726e08ef7f52d0135453f0b840 Mon Sep 17 00:00:00 2001 +From 55446dcd6eabc1fff218f266c11f31697fe99f09 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 +Subject: [PATCH] Run tests on 32 bit --- test/stressGeometry.cxx | 8 -------- @@ -9,7 +9,7 @@ Subject: [PATCH 2/3] Run tests on 32 bit 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/test/stressGeometry.cxx b/test/stressGeometry.cxx -index 5e81f5f2ca..18e41a6f45 100644 +index f8d78f4f54..617b9e1644 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 @@ -28,26 +28,26 @@ index 5e81f5f2ca..18e41a6f45 100644 TString fname; for (i=0; i +Date: Tue, 2 Dec 2025 05:33:31 +0100 +Subject: [PATCH] Adjust test/stressGraphics.ref + +--- + test/stressGraphics.ref | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/test/stressGraphics.ref b/test/stressGraphics.ref +index 2498ec6d755..4520a5ab113 100644 +--- a/test/stressGraphics.ref ++++ b/test/stressGraphics.ref +@@ -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.52.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-return-type-in-ORC-readMem-client-interface.patch b/root-Fix-return-type-in-ORC-readMem-client-interface.patch deleted file mode 100644 index 2fd426d..0000000 --- a/root-Fix-return-type-in-ORC-readMem-client-interface.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -ur root-6.14.00.orig/interpreter/llvm/src/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h root-6.14.00/interpreter/llvm/src/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h ---- root-6.14.00.orig/interpreter/llvm/src/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h 2018-06-13 12:10:40.000000000 +0200 -+++ root-6.14.00/interpreter/llvm/src/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h 2018-06-27 17:05:07.750663216 +0200 -@@ -713,8 +713,8 @@ - - uint32_t getTrampolineSize() const { return RemoteTrampolineSize; } - -- Expected> readMem(char *Dst, JITTargetAddress Src, -- uint64_t Size) { -+ Expected> readMem(char *Dst, JITTargetAddress Src, -+ uint64_t Size) { - // Check for an 'out-of-band' error, e.g. from an MM destructor. - if (ExistingError) - return std::move(ExistingError); 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-PPC-Avoid-non-simple-MVT-in-STBRX-optimization.patch b/root-PPC-Avoid-non-simple-MVT-in-STBRX-optimization.patch deleted file mode 100644 index 5cf51c2..0000000 --- a/root-PPC-Avoid-non-simple-MVT-in-STBRX-optimization.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -ur root-6.14.00.orig/interpreter/llvm/src/lib/Target/PowerPC/PPCISelLowering.cpp root-6.14.00/interpreter/llvm/src/lib/Target/PowerPC/PPCISelLowering.cpp ---- root-6.14.00.orig/interpreter/llvm/src/lib/Target/PowerPC/PPCISelLowering.cpp 2018-06-13 12:10:40.000000000 +0200 -+++ root-6.14.00/interpreter/llvm/src/lib/Target/PowerPC/PPCISelLowering.cpp 2018-06-27 17:06:55.739506085 +0200 -@@ -11861,6 +11861,11 @@ - N->getOperand(1).getValueType() == MVT::i16 || - (Subtarget.hasLDBRX() && Subtarget.isPPC64() && - N->getOperand(1).getValueType() == MVT::i64))) { -+ // STBRX can only handle simple types. -+ EVT mVT = cast(N)->getMemoryVT(); -+ if (mVT.isExtended()) -+ break; -+ - SDValue BSwapOp = N->getOperand(1).getOperand(0); - // Do an any-extend to 32-bits if this is a half-word input. - if (BSwapOp.getValueType() == MVT::i16) -@@ -11868,7 +11873,6 @@ - - // If the type of BSWAP operand is wider than stored memory width - // it need to be shifted to the right side before STBRX. -- EVT mVT = cast(N)->getMemoryVT(); - if (Op1VT.bitsGT(mVT)) { - int Shift = Op1VT.getSizeInBits() - mVT.getSizeInBits(); - BSwapOp = DAG.getNode(ISD::SRL, dl, Op1VT, BSwapOp, diff --git a/root-PowerPC-Don-t-use-xscvdpspn-on-the-P7.patch b/root-PowerPC-Don-t-use-xscvdpspn-on-the-P7.patch deleted file mode 100644 index 3448ac8..0000000 --- a/root-PowerPC-Don-t-use-xscvdpspn-on-the-P7.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -ur root-6.12.04.orig/interpreter/llvm/src/lib/Target/PowerPC/PPCISelLowering.cpp root-6.12.04/interpreter/llvm/src/lib/Target/PowerPC/PPCISelLowering.cpp ---- root-6.12.04.orig/interpreter/llvm/src/lib/Target/PowerPC/PPCISelLowering.cpp 2017-12-13 08:27:42.000000000 +0100 -+++ root-6.12.04/interpreter/llvm/src/lib/Target/PowerPC/PPCISelLowering.cpp 2018-01-11 12:40:14.956914822 +0100 -@@ -7448,9 +7448,11 @@ - /// - The node is a "load-and-splat" - /// In all other cases, we will choose to keep the BUILD_VECTOR. - static bool haveEfficientBuildVectorPattern(BuildVectorSDNode *V, -- bool HasDirectMove) { -+ bool HasDirectMove, -+ bool HasP8Vector) { - EVT VecVT = V->getValueType(0); -- bool RightType = VecVT == MVT::v2f64 || VecVT == MVT::v4f32 || -+ bool RightType = VecVT == MVT::v2f64 || -+ (HasP8Vector && VecVT == MVT::v4f32) || - (HasDirectMove && (VecVT == MVT::v2i64 || VecVT == MVT::v4i32)); - if (!RightType) - return false; -@@ -7612,7 +7614,8 @@ - // lowered to VSX instructions under certain conditions. - // Without VSX, there is no pattern more efficient than expanding the node. - if (Subtarget.hasVSX() && -- haveEfficientBuildVectorPattern(BVN, Subtarget.hasDirectMove())) -+ haveEfficientBuildVectorPattern(BVN, Subtarget.hasDirectMove(), -+ Subtarget.hasP8Vector())) - return Op; - return SDValue(); - } 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-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-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-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-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..4d5587f --- /dev/null +++ b/root-Save-memory-Do-not-link-to-LLVM-libraries-in-parallel.patch @@ -0,0 +1,47 @@ +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 + +--- + 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 a6c7aedac99..90ac0139c24 100644 +--- a/core/clingutils/test/CMakeLists.txt ++++ b/core/clingutils/test/CMakeLists.txt +@@ -36,3 +36,6 @@ if(NOT builtin_clang) + endif() + + 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 4b4b43bdd29..a028802fedc 100644 +--- a/interpreter/CppInterOp/unittests/CppInterOp/CMakeLists.txt ++++ b/interpreter/CppInterOp/unittests/CppInterOp/CMakeLists.txt +@@ -66,6 +66,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} +@@ -129,5 +132,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.52.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-config-restore.patch b/root-config-restore.patch deleted file mode 100644 index 0615b8b..0000000 --- a/root-config-restore.patch +++ /dev/null @@ -1,28 +0,0 @@ -From d589c5f31f940ea6a3a5144ca1664b2ec9ea7d38 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Wed, 19 Aug 2020 20:08:32 +0200 -Subject: [PATCH] Add back line accidentally removed in commit - 17bc17715524b4cc6b46324c428845e9ab945684 - ---- - config/root-config.in | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/config/root-config.in b/config/root-config.in -index d86b7d35af..7029439362 100755 ---- a/config/root-config.in -+++ b/config/root-config.in -@@ -438,7 +438,9 @@ Usage: root-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version]\ - [--cflags] [--auxcflags] [--ldflags] [--new] [--nonew] [--libs] [--glibs]\ - [--evelibs] [--bindir] [--libdir] [--incdir] [--etcdir] [--tutdir] [--srcdir]\ - [--noauxcflags] [--noauxlibs] [--noldflags] [--has-] [--arch]\ --[--python-version] [--python2-version] [--python3-version] [--cc] [--cxx] [--f77] [--ld ] [--help]" -+ [--platform] [--config] [--features] [--ncpu] [--git-revision]\ -+ [--python-version] [--python2-version] [--python3-version]\ -+ [--cc] [--cxx] [--f77] [--ld ] [--help]" - - if test $# -eq 0; then - echo "${usage}" 1>&2 --- -2.26.2 - 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-do-not-load_library-libROOTPythonizations.patch b/root-do-not-load_library-libROOTPythonizations.patch deleted file mode 100644 index a108b30..0000000 --- a/root-do-not-load_library-libROOTPythonizations.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 4aa3e75da6afba4dc7f86fa264acf30eca60d56f Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Thu, 26 Nov 2020 11:14:57 +0100 -Subject: [PATCH] Do not attempt to load_library the ROOT Pythonizations module - -It is not necessary here, since it is already loaded due to the -from libROOTPythonizations import ... -earlier in the file, and it fails when the python module is not in the -library path (it is in the python path only) - -/usr/lib64/python3.9/site-packages/libROOTPythonizations3_9.cpython-39-x86_64-linux-gnu.so - -https://bugzilla.redhat.com/show_bug.cgi?id=1900661 ---- - bindings/pyroot/pythonizations/python/ROOT/_facade.py | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/bindings/pyroot/pythonizations/python/ROOT/_facade.py b/bindings/pyroot/pythonizations/python/ROOT/_facade.py -index c028006c70..37365c36ca 100644 ---- a/bindings/pyroot/pythonizations/python/ROOT/_facade.py -+++ b/bindings/pyroot/pythonizations/python/ROOT/_facade.py -@@ -5,7 +5,7 @@ from functools import partial - - import libcppyy as cppyy_backend - from cppyy import gbl as gbl_namespace --from cppyy import cppdef, include, load_library -+from cppyy import cppdef, include - from libROOTPythonizations import gROOT, CreateBufferFromAddress - - from ._application import PyROOTApplication -@@ -291,8 +291,6 @@ class ROOTFacade(types.ModuleType): - @property - def TPyDispatcher(self): - include('ROOT/TPyDispatcher.h') -- major, minor = sys.version_info[0:2] -- load_library('libROOTPythonizations{}_{}'.format(major, minor)) - tpd = gbl_namespace.TPyDispatcher - type(self).TPyDispatcher = tpd - return tpd --- -2.28.0 - diff --git a/root-doc-no-notebooks.patch b/root-doc-no-notebooks.patch deleted file mode 100644 index f94d31f..0000000 --- a/root-doc-no-notebooks.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -ur root-6.20.02.orig/documentation/doxygen/filter.cxx root-6.20.02/documentation/doxygen/filter.cxx ---- root-6.20.02.orig/documentation/doxygen/filter.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/documentation/doxygen/filter.cxx 2020-03-15 20:05:59.047270429 +0100 -@@ -378,16 +378,7 @@ - - // notebook found - if (gLineString.find("\\notebook") != string::npos) { -- ExecuteCommand(StringFormat("%s converttonotebook.py %s %s/notebooks/", -- gPythonExec.c_str(), -- gFileName.c_str(), gOutDir.c_str())); -- if (gPython){ -- gLineString = "## "; -- } -- else{ -- gLineString = "/// "; -- } -- gLineString += StringFormat( "\\htmlonly \"View \"Open \\endhtmlonly \n", gMacroName.c_str() , gMacroName.c_str()); -+ gLineString = ""; - } - - // \macro_output found diff --git a/root-doxygen-crash.patch b/root-doxygen-crash.patch deleted file mode 100644 index b27f5ce..0000000 --- a/root-doxygen-crash.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff -ur root-6.22.00.orig/tutorials/tmva/tmva003_RReader.C root-6.22.00/tutorials/tmva/tmva003_RReader.C ---- root-6.22.00.orig/tutorials/tmva/tmva003_RReader.C 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/tutorials/tmva/tmva003_RReader.C 2020-07-09 18:58:36.854733120 +0200 -@@ -5,7 +5,6 @@ - /// TMVA XML files. - /// - /// \macro_code --/// \macro_output - /// - /// \date July 2019 - /// \author Stefan Wunsch -diff -ur root-6.22.00.orig/tutorials/tmva/tmva103_Application.C root-6.22.00/tutorials/tmva/tmva103_Application.C ---- root-6.22.00.orig/tutorials/tmva/tmva103_Application.C 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/tutorials/tmva/tmva103_Application.C 2020-07-09 18:58:36.855733122 +0200 -@@ -6,7 +6,6 @@ - /// event-by-event inference, batch inference and pipelines with RDataFrame. - /// - /// \macro_code --/// \macro_output - /// - /// \date December 2018 - /// \author Stefan Wunsch -diff -ur root-6.22.00.orig/tutorials/v7/line.cxx root-6.22.00/tutorials/v7/line.cxx ---- root-6.22.00.orig/tutorials/v7/line.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/tutorials/v7/line.cxx 2020-07-09 18:58:42.202745047 +0200 -@@ -6,7 +6,6 @@ - /// "normal" coordinates' system and changing the line color linearly from black - /// to red. - /// --/// \macro_image (line.png) - /// \macro_code - /// - /// \date 2018-03-18 diff --git a/root-doxygen-endof-part2.patch b/root-doxygen-endof-part2.patch deleted file mode 100644 index a32b39f..0000000 --- a/root-doxygen-endof-part2.patch +++ /dev/null @@ -1,978 +0,0 @@ -From 1198ee3e08c46d1edc9258dbe857f66340f53a20 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Wed, 8 Jul 2020 10:39:54 +0200 -Subject: [PATCH 2/5] Fix various "end of ..." warnings from doxygen. - -This addresses warnings like: - -- end of comment block while expecting command -- end of comment block while expecting command -- end of comment block while expecting command -- end of comment block while expecting command -- end of comment block while expecting command -- end of comment block while expecting command -- end of comment block while expecting command -- end of list marker found without any preceding list items -- found tag without matching -- found tag without matching
  • -- found tag without matching
    -- found  tag while expecting 
    -- found  tag without matching 
    -- found  tag without matching 
    -- found  tag without matching 
    , append an opening
    -+/// Prepend a closing \, append an opening \
    - 
    - Bool_t TDocHtmlDirective::GetResult(TString& result)
    - {
    -diff --git a/math/mathcore/inc/Math/ProbFuncMathCore.h b/math/mathcore/inc/Math/ProbFuncMathCore.h
    -index d751c47a36..16e205347c 100644
    ---- a/math/mathcore/inc/Math/ProbFuncMathCore.h
    -+++ b/math/mathcore/inc/Math/ProbFuncMathCore.h
    -@@ -41,8 +41,8 @@ namespace Math {
    -    * These names are currently kept for backward compatibility, but
    -    * their usage is deprecated.
    -    *
    --   *  These functions are defined in the header file Math/ProbFunc.h or in the global one
    --   *  including all statistical functions Math/DistFunc.h
    -+   *  These functions are defined in the header file Math/ProbFunc.h or in the global one
    -+   *  including all statistical functions Math/DistFunc.h
    -    *
    -    */
    - 
    -@@ -727,8 +727,8 @@ namespace Math {
    -    first or the second momentum of the truncated distribution.
    -    In the case of the Landau, first and second momentum functions are provided for the Landau
    -    distribution truncated only on the right side.
    --   These functions are defined in the header file Math/ProbFunc.h or in the global one
    --   including all statistical functions Math/StatFunc.h
    -+   These functions are defined in the header file Math/ProbFunc.h or in the global one
    -+   including all statistical functions Math/StatFunc.h
    - 
    -    */
    - 
    -diff --git a/math/mathcore/inc/Math/QuantFuncMathCore.h b/math/mathcore/inc/Math/QuantFuncMathCore.h
    -index 7da5bd1178..1be023b33f 100644
    ---- a/math/mathcore/inc/Math/QuantFuncMathCore.h
    -+++ b/math/mathcore/inc/Math/QuantFuncMathCore.h
    -@@ -41,8 +41,8 @@ namespace Math {
    -    *
    -    *  \f[ D(x) = \int_{x}^{+\infty} p(x') dx' \f]
    -    *
    --   *  These functions are defined in the header file Math/ProbFunc.h or in the global one
    --   *  including all statistical functions Math/DistFunc.h
    -+   *  These functions are defined in the header file Math/ProbFunc.h or in the global one
    -+   *  including all statistical functions Math/DistFunc.h
    -    *
    -    *
    -    * NOTE: In the old releases (< 5.14) the _quantile functions were called
    -diff --git a/math/mathcore/src/TMath.cxx b/math/mathcore/src/TMath.cxx
    -index 49a81d56f7..ba8799b570 100644
    ---- a/math/mathcore/src/TMath.cxx
    -+++ b/math/mathcore/src/TMath.cxx
    -@@ -857,7 +857,7 @@ Double_t TMath::KolmogorovTest(Int_t na, const Double_t *a, Int_t nb, const Doub
    - /// \f[
    - /// lorentz(xx) = \frac{ \frac{1}{\pi} \frac{lg}{2} }{ (xx^{2} + \frac{lg^{2}}{4}) }
    - /// \f]
    --/// .
    -+/// \.
    - ///
    - /// The Voigt function is known to be the real part of Faddeeva function also
    - /// called complex error function [2].
    -diff --git a/math/mathmore/inc/Math/GSLMultiRootFinder.h b/math/mathmore/inc/Math/GSLMultiRootFinder.h
    -index 42069d2387..b7efe4157d 100644
    ---- a/math/mathmore/inc/Math/GSLMultiRootFinder.h
    -+++ b/math/mathmore/inc/Math/GSLMultiRootFinder.h
    -@@ -69,23 +69,23 @@ namespace Math {
    -      documentation )
    -      are the followings:
    -      
      --
    • ROOT::Math::GSLMultiRootFinder::kHybridSJ with name "HybridSJ": modified Powell's hybrid -+
    • ROOT::Math::GSLMultiRootFinder::kHybridSJ with name "HybridSJ": modified Powell's hybrid - method as implemented in HYBRJ in MINPACK --
    • ROOT::Math::GSLMultiRootFinder::kHybridJ with name "HybridJ": unscaled version of the -+
    • ROOT::Math::GSLMultiRootFinder::kHybridJ with name "HybridJ": unscaled version of the - previous algorithm
    • --
    • ROOT::Math::GSLMultiRootFinder::kNewton with name "Newton": Newton method
    • --
    • ROOT::Math::GSLMultiRootFinder::kGNewton with name "GNewton": modified Newton method
    • -+
    • ROOT::Math::GSLMultiRootFinder::kNewton with name "Newton": Newton method
    • -+
    • ROOT::Math::GSLMultiRootFinder::kGNewton with name "GNewton": modified Newton method
    • -
    - The algorithms without derivatives (see also the GSL - documentation ) - are the followings: -
      --
    • ROOT::Math::GSLMultiRootFinder::kHybridS with name "HybridS": same as HybridSJ but using -+
    • ROOT::Math::GSLMultiRootFinder::kHybridS with name "HybridS": same as HybridSJ but using - finate difference approximation for the derivatives
    • --
    • ROOT::Math::GSLMultiRootFinder::kHybrid with name "Hybrid": unscaled version of the -+
    • ROOT::Math::GSLMultiRootFinder::kHybrid with name "Hybrid": unscaled version of the - previous algorithm
    • --
    • ROOT::Math::GSLMultiRootFinder::kDNewton with name "DNewton": discrete Newton algorithm
    • --
    • ROOT::Math::GSLMultiRootFinder::kBroyden with name "Broyden": Broyden algorithm
    • -+
    • ROOT::Math::GSLMultiRootFinder::kDNewton with name "DNewton": discrete Newton algorithm
    • -+
    • ROOT::Math::GSLMultiRootFinder::kBroyden with name "Broyden": Broyden algorithm
    • -
    - - @ingroup MultiRoot -diff --git a/math/matrix/doc/Matrix.md b/math/matrix/doc/Matrix.md -index f53b29ca0b..c484c27c72 100644 ---- a/math/matrix/doc/Matrix.md -+++ b/math/matrix/doc/Matrix.md -@@ -325,7 +325,7 @@ constructor - C=A*B
    - A*=B
    - C.Mult(A,B)
    TMatrixD(A,TMatrixD::kMult,B)
    TMatrixD(A, TMatrixD(A, TMatrixD::kTransposeMult,B)
    TMatrixD(A, TMatrixD::kMultTranspose,B) -- overwrites A
     
     
    constructor of A.B
    constructor of AT .B
    constructor of A.BT -+ overwrites A
     
     
    constructor of A·B
    constructor of AT·B
    constructor of A·BT - - - Element wise multiplication -diff --git a/math/minuit/src/TMinuit.cxx b/math/minuit/src/TMinuit.cxx -index df3e563a73..18a6437c68 100644 ---- a/math/minuit/src/TMinuit.cxx -+++ b/math/minuit/src/TMinuit.cxx -@@ -187,11 +187,11 @@ the error matrix, or setting of exact confidence levels see: - - 1. F.James. - Determining the statistical Significance of experimental Results. -- Technical Report DD/81/02 and CERN Report 81-03, CERN, 1981.
  • -+ Technical Report DD/81/02 and CERN Report 81-03, CERN, 1981. - - 2. W.T.Eadie, D.Drijard, F.James, M.Roos, and B.Sadoulet. - Statistical Methods in Experimental Physics. -- North-Holland, 1971. -+ North-Holland, 1971. - - ### Reliability of MINUIT error estimates. - -diff --git a/montecarlo/eg/src/TDatabasePDG.cxx b/montecarlo/eg/src/TDatabasePDG.cxx -index 23c32e9668..85e9fe2a6d 100644 ---- a/montecarlo/eg/src/TDatabasePDG.cxx -+++ b/montecarlo/eg/src/TDatabasePDG.cxx -@@ -46,7 +46,7 @@ Root.DatabasePDG: $(HOME)/my_pdg_table.txt - See TParticlePDG for the description of a static particle properties. - See TParticle for the description of a dynamic particle particle. - --
    The current default pdg_table file displays lifetime 0 for some unstable particles.
    -+The current default pdg_table file displays lifetime 0 for some unstable particles. - - */ - -diff --git a/montecarlo/vmc/README.md b/montecarlo/vmc/README.md -index dc66ec401f..c731b26e92 100644 ---- a/montecarlo/vmc/README.md -+++ b/montecarlo/vmc/README.md -@@ -43,7 +43,7 @@ See more detailed description in [the dedicated README](README.multiple.md). - ## Authors - - The concept of Virtual MonteCarlo has been developed by the [ALICE Software Project](http://aliceinfo.cern.ch/Offline/).
    --Authors: R.Brun1, F.Carminati1, A. Gheata1, I.Hrivnacova2, A.Morsch1, B.Volkel1;
    -+Authors: R. Brun1, F. Carminati1, A. Gheata1, I. Hrivnacova2, A. Morsch1, B. Volkel1;
    - 1European Organization for Nuclear Research (CERN), Geneva, Switzerland;
    - 2Institut de Physique Nucléaire dʼOrsay (IPNO), Université Paris-Sud, CNRS-IN2P3, Orsay, France - -diff --git a/net/http/civetweb/LICENSE.md b/net/http/civetweb/LICENSE.md -index ab049e3e72..b6bb8ff037 100644 ---- a/net/http/civetweb/LICENSE.md -+++ b/net/http/civetweb/LICENSE.md -@@ -180,10 +180,6 @@ Duktape License - - https://github.com/svaarala/duktape/blob/master/LICENSE.txt - --> =============== --> Duktape license --> =============== --> - > (http://opensource.org/licenses/MIT) - > - > Copyright (c) 2013-2017 by Duktape authors (see AUTHORS.rst) -diff --git a/proof/proof/src/TProofMgr.cxx b/proof/proof/src/TProofMgr.cxx -index 2a140e4e7a..e41b637a15 100644 ---- a/proof/proof/src/TProofMgr.cxx -+++ b/proof/proof/src/TProofMgr.cxx -@@ -775,26 +775,29 @@ void TProofMgr::ReplaceSubdirs(const char *fn, TString &fdst, TList &dirph) - /// Upload files provided via the list 'src' (as TFileInfo or TObjString) - /// to 'mss'. The path under 'mss' is determined by 'dest'; the following - /// place-holders can be used in 'dest': --/// , , , ... referring to the n-th sub-component --/// of the src path --/// basename in the source path --/// basename sans extension --/// Extension --/// serial number of file in the list --/// as but zero padded --/// the full file path --/// , the local user and group names. --/// the users PROOF group --/// immediate parent directory --/// next-to immediate parent directory -+/// -+/// Place-holder | Meaning | -+/// ----------------------------|------------------------------------ -+/// \, \, \, ... | referring to the n-th sub-component of the src path -+/// \ | basename in the source path -+/// \ | basename sans extension -+/// \ | Extension -+/// \ | serial number of file in the list -+/// \ | as \ but zero padded -+/// \ | the full file path -+/// \, \ | the local user and group names. -+/// \ | the users PROOF group -+/// \ | immediate parent directory -+/// \ | next-to immediate parent directory -+/// - /// So, for example, if the source filename for the 99-th file is - /// protosrc://host//d0/d1/d2/d3/d4/d5/myfile --/// then with dest = '/pool/user/////' and -+/// then with dest = '/pool/user/\/\/\/\/\' and - /// mss = 'protodst://hostdst//nm/ - /// the corresponding destination path is - /// protodst://hostdst//nm/pool/user/d3/d4/d5/99/myfile - /// --/// If 'dest' is empty, is used. -+/// If 'dest' is empty, \ is used. - /// - /// Returns a TFileCollection with the destination files created; this - /// TFileCollection is, for example, ready to be registered as dataset. -@@ -966,20 +969,23 @@ TFileCollection *TProofMgr::UploadFiles(TList *src, - /// line, with line beginning by '#' ignored (i.e. considered comments). - /// The path under 'mss' is defined by 'dest'; the following - /// place-holders can be used in 'dest': --/// , , , ... referring to the n-th sub-component --/// of the src path --/// basename in the source path --/// serial number of file in the list --/// the full file path --/// , the local user and group names. -+/// -+/// Place-holder | Meaning | -+/// ----------------------------|------------------------------------ -+/// \, \, \, ... | referring to the n-th sub-component of the src path -+/// \ | basename in the source path -+/// \ | serial number of file in the list -+/// \ | the full file path -+/// \, \ | the local user and group names. -+/// - /// So, for example, if the source filename for the 99-th file is - /// protosrc://host//d0/d1/d2/d3/d4/d5/myfile --/// then with dest = '/pool/user/////' and -+/// then with dest = '/pool/user/\/\/\/\/\' and - /// mss = 'protodst://hostdst//nm/ - /// the corresponding destination path is - /// protodst://hostdst//nm/pool/user/d3/d4/d5/99/myfile - /// --/// If 'dest' is empty, is used. -+/// If 'dest' is empty, \ is used. - /// - /// Returns a TFileCollection with the destination files created; this - /// TFileCollection is, for example, ready to be registered as dataset. -diff --git a/proof/proof/src/TProofServ.cxx b/proof/proof/src/TProofServ.cxx -index 24c521743d..3697f257a0 100644 ---- a/proof/proof/src/TProofServ.cxx -+++ b/proof/proof/src/TProofServ.cxx -@@ -6696,11 +6696,11 @@ Int_t TProofServ::Fork() - } - - //////////////////////////////////////////////////////////////////////////////// --/// Replace , , , , , , , and --/// placeholders in fname. --/// Here, is the root version in integer form, e.g. 53403, and a --/// string includign version, architecture and compiler version, e.g. --/// '53403_linuxx8664gcc_gcc46' . -+/// Replace \, \, \, \, \, \, \, -+/// \ and \ placeholders in fname. -+/// Here, \ is the root version in integer form, e.g. 53403, and -+/// \ a string includign version, architecture and compiler version, -+/// e.g. '53403_linuxx8664gcc_gcc46' . - - void TProofServ::ResolveKeywords(TString &fname, const char *path) - { -diff --git a/roofit/histfactory/doc/index.md b/roofit/histfactory/doc/index.md -index 32f1c551a4..9256a9cf11 100644 ---- a/roofit/histfactory/doc/index.md -+++ b/roofit/histfactory/doc/index.md -@@ -41,12 +41,11 @@ it is organized as follows (see the examples in `${ROOTSYS}/tutorials/histfactor -
  • several 'Measurements' (corresponding to a full fit of the model) each of which specifies
  • -
      -
    • a name for this fit to be used in tables and files
    • --
        --
      • what is the luminosity associated to the measurement in picobarns
      • --
      • which bins of the histogram should be used
      • --
      • what is the relative uncertainty on the luminosity
      • --
      • what is (are) the parameter(s) of interest that will be measured
      • --
      • which parameters should be fixed/floating (eg. nuisance parameters)
      • -+
      • what is the luminosity associated to the measurement in picobarns
      • -+
      • which bins of the histogram should be used
      • -+
      • what is the relative uncertainty on the luminosity
      • -+
      • what is (are) the parameter(s) of interest that will be measured
      • -+
      • which parameters should be fixed/floating (eg. nuisance parameters)
      • -
      -
    - -diff --git a/roofit/histfactory/src/MakeModelAndMeasurementsFast.cxx b/roofit/histfactory/src/MakeModelAndMeasurementsFast.cxx -index e14e63ec89..73a3f627ba 100644 ---- a/roofit/histfactory/src/MakeModelAndMeasurementsFast.cxx -+++ b/roofit/histfactory/src/MakeModelAndMeasurementsFast.cxx -@@ -92,12 +92,11 @@ using namespace RooFit; -
  • several 'Measurements' (corresponding to a full fit of the model) each of which specifies
  • -
      -
    • a name for this fit to be used in tables and files
    • --
        --
      • what is the luminosity associated to the measurement in picobarns
      • --
      • which bins of the histogram should be used
      • --
      • what is the relative uncertainty on the luminosity
      • --
      • what is (are) the parameter(s) of interest that will be measured
      • --
      • which parameters should be fixed/floating (eg. nuisance parameters)
      • -+
      • what is the luminosity associated to the measurement in picobarns
      • -+
      • which bins of the histogram should be used
      • -+
      • what is the relative uncertainty on the luminosity
      • -+
      • what is (are) the parameter(s) of interest that will be measured
      • -+
      • which parameters should be fixed/floating (eg. nuisance parameters)
      • -
      -
    - -diff --git a/roofit/roofitcore/inc/RooAbsCategory.h b/roofit/roofitcore/inc/RooAbsCategory.h -index a7eaf8772a..4f0937a99d 100644 ---- a/roofit/roofitcore/inc/RooAbsCategory.h -+++ b/roofit/roofitcore/inc/RooAbsCategory.h -@@ -199,7 +199,7 @@ protected: - return hasIndex(_currentIndex); - } - -- /// If a category depends on the shape of others, *i.e.*, its state numbers or names depend -+ /// If a category depends on the shape of others, i.e.\ its state numbers or names depend - /// on the states of other categories, this function has to be implemented to recompute - /// _stateNames and _insertionOrder. - /// If one of these two changes, setShapeDirty() has to be called to propagate this information -diff --git a/roofit/roofitcore/src/RooSimPdfBuilder.cxx b/roofit/roofitcore/src/RooSimPdfBuilder.cxx -index 4c8289523d..57ea1e9196 100644 ---- a/roofit/roofitcore/src/RooSimPdfBuilder.cxx -+++ b/roofit/roofitcore/src/RooSimPdfBuilder.cxx -@@ -99,7 +99,7 @@ - /// PDF for each state of the C index category. - ///

    - ///
    -diff --git a/tmva/tmva/src/Factory.cxx b/tmva/tmva/src/Factory.cxx -index eda1b9ca1a..866aad0e18 100644 ---- a/tmva/tmva/src/Factory.cxx -+++ b/tmva/tmva/src/Factory.cxx -@@ -683,9 +683,9 @@ void TMVA::Factory::WriteDataInformation(DataSetInfo& fDataSetInfo) - } - - //////////////////////////////////////////////////////////////////////////////// --/// Iterates through all booked methods and sees if they use parameter tuning and if so.. --/// does just that i.e. calls "Method::Train()" for different parameter settings and --/// keeps in mind the "optimal one"... and that's the one that will later on be used -+/// Iterates through all booked methods and sees if they use parameter tuning and if so -+/// does just that, i.e.\ calls "Method::Train()" for different parameter settings and -+/// keeps in mind the "optimal one"...\ and that's the one that will later on be used - /// in the main training loop. - - std::map TMVA::Factory::OptimizeAllMethods(TString fomType, TString fitType) -diff --git a/tmva/tmva/src/Reader.cxx b/tmva/tmva/src/Reader.cxx -index 56d65bb9bf..b34ee9f1de 100644 ---- a/tmva/tmva/src/Reader.cxx -+++ b/tmva/tmva/src/Reader.cxx -@@ -594,7 +594,7 @@ const std::vector< Float_t >& TMVA::Reader::EvaluateRegression( const TString& m - //////////////////////////////////////////////////////////////////////////////// - /// evaluates the regression MVA - /// check for NaN in event data: (note: in the factory, this check was done already at the creation of the datasets, hence --/// it is not again checked in each of these subsequent calls.. -+/// it is not again checked in each of these subsequent calls. - - const std::vector< Float_t >& TMVA::Reader::EvaluateRegression( MethodBase* method, Double_t /*aux*/ ) - { -@@ -660,7 +660,7 @@ const std::vector< Float_t >& TMVA::Reader::EvaluateMulticlass( const TString& m - //////////////////////////////////////////////////////////////////////////////// - /// evaluates the multiclass MVA - /// check for NaN in event data: (note: in the factory, this check was done already at the creation of the datasets, hence --/// it is not again checked in each of these subsequent calls.. -+/// it is not again checked in each of these subsequent calls. - - const std::vector< Float_t >& TMVA::Reader::EvaluateMulticlass( MethodBase* method, Double_t /*aux*/ ) - { -diff --git a/tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx b/tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx -index 17527ac16d..497dd3d5c6 100644 ---- a/tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx -+++ b/tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx -@@ -93,7 +93,7 @@ class R__CLING_PTRCHECK(off) RColumnValue { - /// Enumerator for the different properties of the branch storage in memory - enum class EStorageType : char { kContiguous, kUnknown, kSparse }; - /// Signal whether we ever checked that the branch we are reading with a TTreeReaderArray stores array elements -- /// in contiguous memory. Only used when T == RVec. -+ /// in contiguous memory. Only used when T == RVec\. - EStorageType fStorageType = EStorageType::kUnknown; - /// If MustUseRVec, i.e. we are reading an array, we return a reference to this RVec to clients - RVec fRVec; -diff --git a/tutorials/net/udpserver.c b/tutorials/net/udpserver.c -index c54685400e..a74f6f0a85 100644 ---- a/tutorials/net/udpserver.c -+++ b/tutorials/net/udpserver.c -@@ -4,7 +4,7 @@ - - /* Converted to echo client/server with select() (timeout option). - See testTUDPSocket.C */ --/* Compile with: gcc udpserver.c -o udpserver -+/* Compile with: gcc udpserver.c -o udpserver */ - /* on Windows: cl -nologo -Z7 -MD -GR -EHsc udpserver.c */ - /* 3/30/05 John Schultz */ - -diff --git a/tutorials/tmva/TMVA_CNN_Classification.C b/tutorials/tmva/TMVA_CNN_Classification.C -index 47f26368d9..89373a8887 100644 ---- a/tutorials/tmva/TMVA_CNN_Classification.C -+++ b/tutorials/tmva/TMVA_CNN_Classification.C -@@ -22,7 +22,7 @@ - /// Helper function to create input images data - /// we create a signal and background 2D histograms from 2d gaussians - /// with a location (means in X and Y) different for each event --/// The difference between signal and background is in the gaussian width.. -+/// The difference between signal and background is in the gaussian width. - /// The width for the bakground gaussian is slightly larger than the signal width by few % values - /// - /// --- -2.26.2 - diff --git a/root-doxygen-filenames.patch b/root-doxygen-filenames.patch deleted file mode 100644 index d891a7f..0000000 --- a/root-doxygen-filenames.patch +++ /dev/null @@ -1,378 +0,0 @@ -From 116be70d2786a3fecdfcd6445d06ad6f3768f5a6 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Fri, 3 Jul 2020 08:08:33 +0200 -Subject: [PATCH 1/5] Fix \file references in doxygen markup - ---- - core/base/v7/inc/ROOT/RDirectory.hxx | 2 +- - core/base/v7/inc/ROOT/RDirectoryEntry.hxx | 2 +- - core/base/v7/inc/ROOT/RError.hxx | 2 +- - core/base/v7/inc/ROOT/RIndexIter.hxx | 2 +- - core/base/v7/inc/ROOT/RLogger.hxx | 2 +- - core/base/v7/inc/ROOT/RTupleApply.hxx | 2 +- - core/base/v7/inc/ROOT/impl_tuple_apply.hxx | 2 +- - core/base/v7/src/RLogger.cxx | 2 +- - core/clingutils/test/TClingUtilsTests.cxx | 2 +- - core/foundation/inc/ROOT/RNotFn.hxx | 2 +- - core/foundation/inc/ROOT/RSpan.hxx | 2 +- - core/foundation/inc/ROOT/span.hxx | 2 +- - core/foundation/src/FoundationUtils.cxx | 2 +- - gui/browsable/inc/ROOT/Browsable/RItem.hxx | 2 +- - gui/browsable/src/RHistDraw7Provider.cxx | 2 +- - gui/browsable/src/RSysFile.cxx | 2 +- - gui/browserv7/inc/ROOT/RBrowserReply.hxx | 2 +- - hist/hist/test/TFormulaGradientTests.cxx | 2 +- - hist/histdrawv7/inc/ROOT/RHistDrawable.hxx | 2 +- - hist/histv7/inc/ROOT/RAxis.hxx | 2 +- - hist/histv7/inc/ROOT/RAxisConfig.hxx | 2 +- - hist/histv7/inc/ROOT/RHist.hxx | 2 +- - hist/histv7/inc/ROOT/RHistBinIter.hxx | 2 +- - hist/histv7/inc/ROOT/RHistBufferedFill.hxx | 2 +- - hist/histv7/inc/ROOT/RHistConcurrentFill.hxx | 2 +- - hist/histv7/inc/ROOT/RHistData.hxx | 2 +- - hist/histv7/inc/ROOT/RHistImpl.hxx | 2 +- - hist/histv7/inc/ROOT/RHistUtils.hxx | 2 +- - hist/histv7/inc/ROOT/RHistView.hxx | 2 +- - io/io/v7/inc/ROOT/RFile.hxx | 2 +- - math/mathcore/test/CladDerivatorTests.cxx | 2 +- - math/mathcore/v7/inc/ROOT/RFit.hxx | 2 +- - tmva/tmva/inc/TMVA/NeuralNet.h | 2 +- - 33 files changed, 33 insertions(+), 33 deletions(-) - -diff --git a/core/base/v7/inc/ROOT/RDirectory.hxx b/core/base/v7/inc/ROOT/RDirectory.hxx -index 5331f91144..6d1a4b0541 100644 ---- a/core/base/v7/inc/ROOT/RDirectory.hxx -+++ b/core/base/v7/inc/ROOT/RDirectory.hxx -@@ -1,4 +1,4 @@ --/// \file ROOT/RDirectory.h -+/// \file ROOT/RDirectory.hxx - /// \ingroup Base ROOT7 - /// \author Axel Naumann - /// \date 2015-07-31 -diff --git a/core/base/v7/inc/ROOT/RDirectoryEntry.hxx b/core/base/v7/inc/ROOT/RDirectoryEntry.hxx -index a7258bc642..1a33e5003a 100644 ---- a/core/base/v7/inc/ROOT/RDirectoryEntry.hxx -+++ b/core/base/v7/inc/ROOT/RDirectoryEntry.hxx -@@ -1,4 +1,4 @@ --/// \file ROOT/RDirectoryEntry.h -+/// \file ROOT/RDirectoryEntry.hxx - /// \ingroup Base ROOT7 - /// \author Axel Naumann - /// \date 2015-07-31 -diff --git a/core/base/v7/inc/ROOT/RError.hxx b/core/base/v7/inc/ROOT/RError.hxx -index 7a0d363e7f..6af7a38f01 100644 ---- a/core/base/v7/inc/ROOT/RError.hxx -+++ b/core/base/v7/inc/ROOT/RError.hxx -@@ -1,4 +1,4 @@ --/// \file ROOT/RError.h -+/// \file ROOT/RError.hxx - /// \ingroup Base ROOT7 - /// \author Jakob Blomer - /// \date 2019-12-11 -diff --git a/core/base/v7/inc/ROOT/RIndexIter.hxx b/core/base/v7/inc/ROOT/RIndexIter.hxx -index 1e290d82c8..fc424fdb8d 100644 ---- a/core/base/v7/inc/ROOT/RIndexIter.hxx -+++ b/core/base/v7/inc/ROOT/RIndexIter.hxx -@@ -1,4 +1,4 @@ --/// \file ROOT/RIndexIter.h -+/// \file ROOT/RIndexIter.hxx - /// \ingroup Base ROOT7 - /// \author Axel Naumann - /// \date 2016-01-19 -diff --git a/core/base/v7/inc/ROOT/RLogger.hxx b/core/base/v7/inc/ROOT/RLogger.hxx -index c1852656ee..d4e3e6e7bd 100644 ---- a/core/base/v7/inc/ROOT/RLogger.hxx -+++ b/core/base/v7/inc/ROOT/RLogger.hxx -@@ -1,4 +1,4 @@ --/// \file ROOT/TLogger.h -+/// \file ROOT/RLogger.hxx - /// \ingroup Base ROOT7 - /// \author Axel Naumann - /// \date 2015-03-29 -diff --git a/core/base/v7/inc/ROOT/RTupleApply.hxx b/core/base/v7/inc/ROOT/RTupleApply.hxx -index 9a80bfcd6f..995246505f 100644 ---- a/core/base/v7/inc/ROOT/RTupleApply.hxx -+++ b/core/base/v7/inc/ROOT/RTupleApply.hxx -@@ -1,4 +1,4 @@ --/// \file ROOT/RTupleApply.h -+/// \file ROOT/RTupleApply.hxx - /// \ingroup Base StdExt ROOT7 - /// \author Axel Naumann - /// \date 2015-09-06 -diff --git a/core/base/v7/inc/ROOT/impl_tuple_apply.hxx b/core/base/v7/inc/ROOT/impl_tuple_apply.hxx -index dc12706906..68d6988f97 100644 ---- a/core/base/v7/inc/ROOT/impl_tuple_apply.hxx -+++ b/core/base/v7/inc/ROOT/impl_tuple_apply.hxx -@@ -1,4 +1,4 @@ --/// \file ROOT/impl_tuple_apply.h -+/// \file ROOT/impl_tuple_apply.hxx - /// \ingroup Base StdExt ROOT7 - /// \author Axel Naumann - /// \date 2015-07-09 -diff --git a/core/base/v7/src/RLogger.cxx b/core/base/v7/src/RLogger.cxx -index 69aba0b05c..3ac8bb760f 100644 ---- a/core/base/v7/src/RLogger.cxx -+++ b/core/base/v7/src/RLogger.cxx -@@ -1,4 +1,4 @@ --/// \file TLogger.cxx -+/// \file RLogger.cxx - /// \ingroup Base ROOT7 - /// \author Axel Naumann - /// \date 2015-07-07 -diff --git a/core/clingutils/test/TClingUtilsTests.cxx b/core/clingutils/test/TClingUtilsTests.cxx -index fca26705c3..fbc12cd352 100644 ---- a/core/clingutils/test/TClingUtilsTests.cxx -+++ b/core/clingutils/test/TClingUtilsTests.cxx -@@ -1,4 +1,4 @@ --/// \file TClingUtilsTest.cxx -+/// \file TClingUtilsTests.cxx - /// - /// \brief The file contain unit tests which test the TClingUtils.h - /// -diff --git a/core/foundation/inc/ROOT/RNotFn.hxx b/core/foundation/inc/ROOT/RNotFn.hxx -index a6dd13679e..a3877797f3 100644 ---- a/core/foundation/inc/ROOT/RNotFn.hxx -+++ b/core/foundation/inc/ROOT/RNotFn.hxx -@@ -1,4 +1,4 @@ --/// \file ROOT/RNotFn.h -+/// \file ROOT/RNotFn.hxx - /// \ingroup Base StdExt - /// \author Danilo Piparo, Enrico Guiraud - /// \date 2018-01-19 -diff --git a/core/foundation/inc/ROOT/RSpan.hxx b/core/foundation/inc/ROOT/RSpan.hxx -index 9e356493e6..b7366d58e7 100644 ---- a/core/foundation/inc/ROOT/RSpan.hxx -+++ b/core/foundation/inc/ROOT/RSpan.hxx -@@ -1,4 +1,4 @@ --/// \file ROOT/RSpan.h -+/// \file ROOT/RSpan.hxx - /// \ingroup Base StdExt - /// \author Axel Naumann - /// \date 2015-09-06 -diff --git a/core/foundation/inc/ROOT/span.hxx b/core/foundation/inc/ROOT/span.hxx -index ce1b0e1d96..185055bbe6 100644 ---- a/core/foundation/inc/ROOT/span.hxx -+++ b/core/foundation/inc/ROOT/span.hxx -@@ -1,4 +1,4 @@ --/// \file ROOT/rhysd_span.h -+/// \file ROOT/span.hxx - /// \ingroup Base StdExt - /// \author Axel Naumann - /// \date 2015-09-06 -diff --git a/core/foundation/src/FoundationUtils.cxx b/core/foundation/src/FoundationUtils.cxx -index 9de395698b..d70e196130 100644 ---- a/core/foundation/src/FoundationUtils.cxx -+++ b/core/foundation/src/FoundationUtils.cxx -@@ -1,4 +1,4 @@ --/// \file FoundationUtils.hxx -+/// \file FoundationUtils.cxx - /// - /// \brief The file contains utilities which are foundational and could be used - /// across the core component of ROOT. -diff --git a/gui/browsable/inc/ROOT/Browsable/RItem.hxx b/gui/browsable/inc/ROOT/Browsable/RItem.hxx -index a07870a2cb..290587013e 100644 ---- a/gui/browsable/inc/ROOT/Browsable/RItem.hxx -+++ b/gui/browsable/inc/ROOT/Browsable/RItem.hxx -@@ -1,4 +1,4 @@ --/// \file ROOT/RBrowser.hxx -+/// \file ROOT/RItem.hxx - /// \ingroup WebGui ROOT7 - /// \author Bertrand Bellenot - /// \author Sergey Linev -diff --git a/gui/browsable/src/RHistDraw7Provider.cxx b/gui/browsable/src/RHistDraw7Provider.cxx -index 416db22472..e2e15303c6 100644 ---- a/gui/browsable/src/RHistDraw7Provider.cxx -+++ b/gui/browsable/src/RHistDraw7Provider.cxx -@@ -1,4 +1,4 @@ --/// \file RDrawableRHist.cxx -+/// \file RHistDraw7Provider.cxx - /// \ingroup rbrowser - /// \author Bertrand Bellenot - /// \author Sergey Linev -diff --git a/gui/browsable/src/RSysFile.cxx b/gui/browsable/src/RSysFile.cxx -index d5f481cb83..4447164f52 100644 ---- a/gui/browsable/src/RSysFile.cxx -+++ b/gui/browsable/src/RSysFile.cxx -@@ -6,7 +6,7 @@ - * For the list of contributors see $ROOTSYS/README/CREDITS. * - *************************************************************************/ - --/// \file ROOT/RFileBrowsable.cxx -+/// \file ROOT/RSysFile.cxx - /// \ingroup rbrowser - /// \author Sergey Linev - /// \date 2019-10-15 -diff --git a/gui/browserv7/inc/ROOT/RBrowserReply.hxx b/gui/browserv7/inc/ROOT/RBrowserReply.hxx -index bdb94f60ea..35a2f1f978 100644 ---- a/gui/browserv7/inc/ROOT/RBrowserReply.hxx -+++ b/gui/browserv7/inc/ROOT/RBrowserReply.hxx -@@ -1,4 +1,4 @@ --/// \file ROOT/RBrowserRequest.hxx -+/// \file ROOT/RBrowserReply.hxx - /// \ingroup WebGui ROOT7 - /// \author Bertrand Bellenot - /// \author Sergey Linev -diff --git a/hist/hist/test/TFormulaGradientTests.cxx b/hist/hist/test/TFormulaGradientTests.cxx -index 8c11a56077..74c0930f03 100644 ---- a/hist/hist/test/TFormulaGradientTests.cxx -+++ b/hist/hist/test/TFormulaGradientTests.cxx -@@ -1,4 +1,4 @@ --/// \file TFormulaGradientTests.h -+/// \file TFormulaGradientTests.cxx - /// - /// \brief The file contain unit tests which test the clad-based gradient - /// computations. -diff --git a/hist/histdrawv7/inc/ROOT/RHistDrawable.hxx b/hist/histdrawv7/inc/ROOT/RHistDrawable.hxx -index ac56b9c8f3..0b3b635d92 100644 ---- a/hist/histdrawv7/inc/ROOT/RHistDrawable.hxx -+++ b/hist/histdrawv7/inc/ROOT/RHistDrawable.hxx -@@ -1,4 +1,4 @@ --/// \file ROOT/RHistDrawable.h -+/// \file ROOT/RHistDrawable.hxx - /// \ingroup HistDraw ROOT7 - /// \author Axel Naumann - /// \date 2015-07-09 -diff --git a/hist/histv7/inc/ROOT/RAxis.hxx b/hist/histv7/inc/ROOT/RAxis.hxx -index 1d35ed9b93..0371a06f97 100644 ---- a/hist/histv7/inc/ROOT/RAxis.hxx -+++ b/hist/histv7/inc/ROOT/RAxis.hxx -@@ -1,4 +1,4 @@ --/// \file ROOT/RAxis.h -+/// \file ROOT/RAxis.hxx - /// \ingroup Hist ROOT7 - /// \author Axel Naumann - /// \date 2015-03-23 -diff --git a/hist/histv7/inc/ROOT/RAxisConfig.hxx b/hist/histv7/inc/ROOT/RAxisConfig.hxx -index 1e100986f0..34bf2f6a4a 100644 ---- a/hist/histv7/inc/ROOT/RAxisConfig.hxx -+++ b/hist/histv7/inc/ROOT/RAxisConfig.hxx -@@ -1,4 +1,4 @@ --/// \file ROOT/RAxisConfig.h -+/// \file ROOT/RAxisConfig.hxx - /// \ingroup Hist ROOT7 - /// \author Axel Naumann - /// \date 2020-02-05 -diff --git a/hist/histv7/inc/ROOT/RHist.hxx b/hist/histv7/inc/ROOT/RHist.hxx -index ebb319f1ef..5567683b27 100644 ---- a/hist/histv7/inc/ROOT/RHist.hxx -+++ b/hist/histv7/inc/ROOT/RHist.hxx -@@ -1,4 +1,4 @@ --/// \file ROOT/RHist.h -+/// \file ROOT/RHist.hxx - /// \ingroup Hist ROOT7 - /// \author Axel Naumann - /// \date 2015-03-23 -diff --git a/hist/histv7/inc/ROOT/RHistBinIter.hxx b/hist/histv7/inc/ROOT/RHistBinIter.hxx -index 60f57dd20e..ab77dfbeaa 100644 ---- a/hist/histv7/inc/ROOT/RHistBinIter.hxx -+++ b/hist/histv7/inc/ROOT/RHistBinIter.hxx -@@ -1,4 +1,4 @@ --/// \file ROOT/RHistBinIter.h -+/// \file ROOT/RHistBinIter.hxx - /// \ingroup Hist ROOT7 - /// \author Axel Naumann - /// \date 2015-08-07 -diff --git a/hist/histv7/inc/ROOT/RHistBufferedFill.hxx b/hist/histv7/inc/ROOT/RHistBufferedFill.hxx -index bb1cade29b..8efe00e207 100644 ---- a/hist/histv7/inc/ROOT/RHistBufferedFill.hxx -+++ b/hist/histv7/inc/ROOT/RHistBufferedFill.hxx -@@ -1,4 +1,4 @@ --/// \file ROOT/RHistBufferedFill.h -+/// \file ROOT/RHistBufferedFill.hxx - /// \ingroup Hist ROOT7 - /// \author Axel Naumann - /// \date 2015-07-03 -diff --git a/hist/histv7/inc/ROOT/RHistConcurrentFill.hxx b/hist/histv7/inc/ROOT/RHistConcurrentFill.hxx -index a6b4b6a8e2..8ff76eb659 100644 ---- a/hist/histv7/inc/ROOT/RHistConcurrentFill.hxx -+++ b/hist/histv7/inc/ROOT/RHistConcurrentFill.hxx -@@ -1,4 +1,4 @@ --/// \file ROOT/RHistConcurrentFill.h -+/// \file ROOT/RHistConcurrentFill.hxx - /// \ingroup Hist ROOT7 - /// \author Axel Naumann - /// \date 2015-07-03 -diff --git a/hist/histv7/inc/ROOT/RHistData.hxx b/hist/histv7/inc/ROOT/RHistData.hxx -index 901bd5c33a..9757986ff4 100644 ---- a/hist/histv7/inc/ROOT/RHistData.hxx -+++ b/hist/histv7/inc/ROOT/RHistData.hxx -@@ -1,4 +1,4 @@ --/// \file ROOT/RHistData.h -+/// \file ROOT/RHistData.hxx - /// \ingroup Hist ROOT7 - /// \author Axel Naumann - /// \date 2015-06-14 -diff --git a/hist/histv7/inc/ROOT/RHistImpl.hxx b/hist/histv7/inc/ROOT/RHistImpl.hxx -index 483d879f0e..b6d4b2c6b5 100644 ---- a/hist/histv7/inc/ROOT/RHistImpl.hxx -+++ b/hist/histv7/inc/ROOT/RHistImpl.hxx -@@ -1,4 +1,4 @@ --/// \file ROOT/RHistImpl.h -+/// \file ROOT/RHistImpl.hxx - /// \ingroup Hist ROOT7 - /// \author Axel Naumann - /// \date 2015-03-23 -diff --git a/hist/histv7/inc/ROOT/RHistUtils.hxx b/hist/histv7/inc/ROOT/RHistUtils.hxx -index 3733113c2b..08a342bf61 100644 ---- a/hist/histv7/inc/ROOT/RHistUtils.hxx -+++ b/hist/histv7/inc/ROOT/RHistUtils.hxx -@@ -1,4 +1,4 @@ --/// \file ROOT/RHistData.h -+/// \file ROOT/RHistUtils.hxx - /// \ingroup Hist ROOT7 - /// \author Axel Naumann - /// \date 2016-06-01 -diff --git a/hist/histv7/inc/ROOT/RHistView.hxx b/hist/histv7/inc/ROOT/RHistView.hxx -index b65d3518dd..d2b40e0f35 100644 ---- a/hist/histv7/inc/ROOT/RHistView.hxx -+++ b/hist/histv7/inc/ROOT/RHistView.hxx -@@ -1,4 +1,4 @@ --/// \file ROOT/RHistView.h -+/// \file ROOT/RHistView.hxx - /// \ingroup Hist ROOT7 - /// \author Axel Naumann - /// \date 2015-08-06 -diff --git a/io/io/v7/inc/ROOT/RFile.hxx b/io/io/v7/inc/ROOT/RFile.hxx -index 6d3baaec05..c371a25875 100644 ---- a/io/io/v7/inc/ROOT/RFile.hxx -+++ b/io/io/v7/inc/ROOT/RFile.hxx -@@ -1,4 +1,4 @@ --/// \file ROOT/RFile.h -+/// \file ROOT/RFile.hxx - /// \ingroup Base ROOT7 - /// \author Axel Naumann - /// \date 2015-07-31 -diff --git a/math/mathcore/test/CladDerivatorTests.cxx b/math/mathcore/test/CladDerivatorTests.cxx -index e4289a7286..d1682094e0 100644 ---- a/math/mathcore/test/CladDerivatorTests.cxx -+++ b/math/mathcore/test/CladDerivatorTests.cxx -@@ -1,4 +1,4 @@ --/// \file CladDerivator.h -+/// \file CladDerivatorTests.cxx - /// - /// \brief The file contain unit tests which test the CladDerivator facility. - /// -diff --git a/math/mathcore/v7/inc/ROOT/RFit.hxx b/math/mathcore/v7/inc/ROOT/RFit.hxx -index 4fae336242..5b92733152 100644 ---- a/math/mathcore/v7/inc/ROOT/RFit.hxx -+++ b/math/mathcore/v7/inc/ROOT/RFit.hxx -@@ -1,4 +1,4 @@ --/// \file ROOT/RFit.h -+/// \file ROOT/RFit.hxx - /// \ingroup MathCore ROOT7 - /// \author Axel Naumann - /// \date 2015-09-06 -diff --git a/tmva/tmva/inc/TMVA/NeuralNet.h b/tmva/tmva/inc/TMVA/NeuralNet.h -index 31229cb1cf..bae98a48b2 100644 ---- a/tmva/tmva/inc/TMVA/NeuralNet.h -+++ b/tmva/tmva/inc/TMVA/NeuralNet.h -@@ -1,5 +1,5 @@ - /** -- * @file NeuralNet -+ * @file TMVA/NeuralNet.h - * @author Peter Speckmayer - * @version 1.0 - * --- -2.26.2 - diff --git a/root-doxygen-macro-name.patch b/root-doxygen-macro-name.patch deleted file mode 100644 index a97bdf0..0000000 --- a/root-doxygen-macro-name.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 8266262f76eaef4dc72ffda38e1d315be2ce3ff0 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Wed, 8 Jul 2020 19:41:34 +0200 -Subject: [PATCH 5/5] Make the name of macro match the filename - -Fixes: - -warning: Failed to call `rs302_JeffreysPriorDemo()` to execute the macro. -Add this function or rename the macro. Falling back to `.L`. ---- - tutorials/roostats/rs302_JeffreysPriorDemo.C | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tutorials/roostats/rs302_JeffreysPriorDemo.C b/tutorials/roostats/rs302_JeffreysPriorDemo.C -index c2f720a5f9..1c52e5dd83 100644 ---- a/tutorials/roostats/rs302_JeffreysPriorDemo.C -+++ b/tutorials/roostats/rs302_JeffreysPriorDemo.C -@@ -49,7 +49,7 @@ - - using namespace RooFit; - --void JeffreysPriorDemo() -+void rs302_JeffreysPriorDemo() - { - RooWorkspace w("w"); - w.factory("Uniform::u(x[0,1])"); --- -2.26.2 - diff --git a/root-doxygen-md-comments.patch b/root-doxygen-md-comments.patch deleted file mode 100644 index c1f57e2..0000000 --- a/root-doxygen-md-comments.patch +++ /dev/null @@ -1,214 +0,0 @@ -From 7336caccd3288a9164c82b78053e8f4f59eb1a9c Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Sun, 12 Jul 2020 12:12:15 +0200 -Subject: [PATCH] Remove /** comments */ from md files - ---- - math/genvector/doc/Genvector.md | 7 ------- - math/genvector/doc/LorentzVector.md | 6 +----- - math/genvector/doc/Point3D.md | 6 ------ - math/genvector/doc/Transformation.md | 6 ------ - math/genvector/doc/Vector3D.md | 4 ---- - math/genvector/doc/VectorPoint2D.md | 6 ------ - math/genvector/doc/externalUsage.md | 6 ------ - math/mathcore/doc/MathCore.md | 5 ----- - math/mathmore/doc/MathMore.md | 5 ----- - math/matrix/doc/Matrix.md | 3 --- - math/unuran/doc/Unuran.md | 8 ++------ - 11 files changed, 3 insertions(+), 59 deletions(-) - -diff --git a/math/genvector/doc/Genvector.md b/math/genvector/doc/Genvector.md -index 12e4e47a93..50dc61b2ce 100644 ---- a/math/genvector/doc/Genvector.md -+++ b/math/genvector/doc/Genvector.md -@@ -1,5 +1,3 @@ --/** -- - \page Vector Generic Vector for 2, 3 and 4 Dimensions - - -@@ -113,8 +111,3 @@ A more detailed description of all the GenVector classes is available in this [d - 2. [CLHEP Geometry package](http://www.hep.phy.cam.ac.uk/lhcb/doc/CLHEP/1.9.1.2/html/namespaceH) - 3. [%ROOT Physics Vector classes](http://root.cern.ch/root/html/PHYSICS_Index.html) - 4. [CMS Vector package](http://lcgapp.cern.ch/doxygen/SEAL/snapshot/html/dir_000007.html) -- --* * * -- --*/ -- -diff --git a/math/genvector/doc/LorentzVector.md b/math/genvector/doc/LorentzVector.md -index b40ea8c69c..e01ed4a8ca 100644 ---- a/math/genvector/doc/LorentzVector.md -+++ b/math/genvector/doc/LorentzVector.md -@@ -1,6 +1,4 @@ --// LorentzVector doxygen page -- --/** \page LorentzVectorPage LorentzVector Classes -+\page LorentzVectorPage LorentzVector Classes - - To avoid exposing templated parameter to the users, typedefs are defined for all types of vectors based an double's and float's. To use them, one must include the header file _Math/Vector4D.h_. The following typedef's, defined in the header file _Math/Vector4Dfwd.h_, are available for the different instantiations of the template class ROOT::Math::LorentzVector: - -@@ -110,5 +108,3 @@ v.Beta(); // return beta and gamma value - v.Gamma() // (vector must be time-like otherwise result is meaningless) - XYZVector b = v.BoostToCM() // return boost vector which will bring the Vector in its mas frame (P=0) - -- --*/ -diff --git a/math/genvector/doc/Point3D.md b/math/genvector/doc/Point3D.md -index a273b182d4..db55c68752 100644 ---- a/math/genvector/doc/Point3D.md -+++ b/math/genvector/doc/Point3D.md -@@ -1,7 +1,3 @@ --// Point3d doxygen page -- --/** -- - \page Point3DPage Point3D Classes - - To avoid exposing templated parameter to the users, typedefs are defined for all types of vectors based an double's and float's. To use them, one must include the header file _Math/Point3D.h_. The following typedef's, defined in the header file _Math/Point3Dfwd.h_, are available for the different instantiations of the template class ROOT::Math::PositionVector3D: -@@ -61,5 +57,3 @@ Exactly as for the 3D Vectors, the following operations are allowed: - * comparison of points - * scaling and division of points with a scalar - * dot and cross product with any type of vector -- --*/ -diff --git a/math/genvector/doc/Transformation.md b/math/genvector/doc/Transformation.md -index 7e66107f55..edc36778ed 100644 ---- a/math/genvector/doc/Transformation.md -+++ b/math/genvector/doc/Transformation.md -@@ -1,7 +1,3 @@ --// Rotation and transformation doxygen page -- --/** -- - \page TransformPage Vector Transformations - - Transformations classes are grouped in Rotations (in 3 dimensions), Lorentz transformations and Poincarre transformations, which are Translation/Rotation combinations. Each group has several members which may model physically equivalent trasformations but with different internal representations. -@@ -114,5 +110,3 @@ Transform3D t; t.GetComponens(m); // fill matrix of size 3x4 with c - - - For more detailed documentation on all methods see the reference doc for the specific transformation class. -- --*/ -diff --git a/math/genvector/doc/Vector3D.md b/math/genvector/doc/Vector3D.md -index 4f65f6b603..9d10ce7db2 100644 ---- a/math/genvector/doc/Vector3D.md -+++ b/math/genvector/doc/Vector3D.md -@@ -1,5 +1,3 @@ --/** -- - \page Vector3DPage Vector3D Classes - - -@@ -120,5 +118,3 @@ Note that the multiplication between two vectors using the operator * is not sup - -
    XYZVector u = v1.Unit();               //  return unit vector parallel to v1
    - 
    -- --*/ -diff --git a/math/genvector/doc/VectorPoint2D.md b/math/genvector/doc/VectorPoint2D.md -index 5c5e665088..287f3f8b73 100644 ---- a/math/genvector/doc/VectorPoint2D.md -+++ b/math/genvector/doc/VectorPoint2D.md -@@ -1,7 +1,3 @@ --// Vector2d doxygen page -- --/** -- - \page Vector2DPage 2D Point and Vector Classes - - Similar to the \ref Vector3DPage and \ref Point3DPage , typedefs are defined to avoid exposing templated parameter to the users, for all 2D vectors based an double's and float's. To use them, one must include the header file _Math/Vector2D.h_ or _Math/Point2D.h_. The following typedef's, defined in the header file _Math/Vector2Dfwd.h_, are available for the different instantiations of the template class ROOT::Math::DisplacementVector2D: -@@ -19,5 +15,3 @@ The typedef's, defined in the header file _Math/Point2Dfwd.h_, available for the - * ROOT::Math::Polar2DPointF vector based on r,phi coordinates (polar) in float precision - - Similar constructs, functions and operations available for the 3D vectors and points (see \ref Vector3DPage and \ref Point3DPage ) are available also for the 2D vector and points. No transformations or rotation classes are available for the 2D vectors. -- --*/ -diff --git a/math/genvector/doc/externalUsage.md b/math/genvector/doc/externalUsage.md -index f8580225a5..4413bbafca 100644 ---- a/math/genvector/doc/externalUsage.md -+++ b/math/genvector/doc/externalUsage.md -@@ -1,7 +1,3 @@ --// example on using with exteral classes (doxygen page) -- --/** -- - \page ExtUsagePage Examples with External Packages - - ### Connection to Linear Algebra classes -@@ -48,5 +44,3 @@ XYZPoint p1(hp); // create a 3D Point from CLHEP geom - - CLHEP::HepLorentzVector hq; - XYZTVector q(hq); // create a LorentzVector from CLHEP L.V.

    --/// In the above example RooSimPdfBuilder -+/// In the above example RooSimPdfBuilder - /// will first replicate k and s into - /// k_C1,k_C2 and s_C1,s_C2, as prescribed in the - /// configuration. Then it will recursively replicate all PDF nodes that depend on -@@ -383,7 +383,7 @@ - /// pdfA(x;p,q) and pdfB(x;p,r) that have a common parameter p. - /// We want to build a RooSimultaneous for both pdfA and B, - /// which involves a split of parameter p and we would like to build the --/// simultaneous pdfs simA and simB such that still share their (now split) parameters -+/// simultaneous pdfs simA and simB such that still share their (now split) parameters - /// p_XXX. This is accomplished by letting a single instance of RooSimPdfBuilder handle - /// the builds of both pdfA and pdfB, as illustrated in this example: - ///

    -- --*/ -diff --git a/math/mathcore/doc/MathCore.md b/math/mathcore/doc/MathCore.md -index 4efc043cab..8d38b4ae19 100644 ---- a/math/mathcore/doc/MathCore.md -+++ b/math/mathcore/doc/MathCore.md -@@ -1,5 +1,3 @@ --/** -- - \defgroup MathCore MathCore - - \brief The Core Mathematical Library of %ROOT. See the \ref MathCorePage "MathCore" description page. -@@ -32,6 +30,3 @@ MathCore contains instead now classes which were originally part of _libCore_. T - * Other classes, such as - * TKDTree for partitioning the data using a kd-Tree and TKDTreeBinning for binning data using a kdTree - * ROOT::Math::GoFTest for goodness of fit tests -- -- --*/ -diff --git a/math/mathmore/doc/MathMore.md b/math/mathmore/doc/MathMore.md -index 28b3528a68..f30ef6d0be 100644 ---- a/math/mathmore/doc/MathMore.md -+++ b/math/mathmore/doc/MathMore.md -@@ -1,6 +1,3 @@ -- --/** -- - \defgroup MathMore MathMore - - \brief The Mathematical library providing some advanced functionality and based on GSL. See the \ref MathMorePage "MathMore" Library page. -@@ -32,5 +29,3 @@ To build MathMore you need to have first GSL installed somewhere in your system. - MathMore (and its %ROOT CINT dictionary) can be built within %ROOT whenever a GSL library is found in the system. Optionally the GSL library and header file location can be specified in the %ROOT configure script with _configure --with-gsl-incdir=... --with-gsl-libdir=..._ - MathMore links with the GSL static libraries. On some platform (like Linux x86-64) GSL needs to be compiled with the option _--with-pic_. - The source code of MathMore is distributed under the GNU General Public License -- --*/ -diff --git a/math/matrix/doc/Matrix.md b/math/matrix/doc/Matrix.md -index ed0d9fffe8..f0b9d7a06a 100644 ---- a/math/matrix/doc/Matrix.md -+++ b/math/matrix/doc/Matrix.md -@@ -1,6 +1,3 @@ --/** -- -- - \page MatrixPage The ROOT Matrix Linear Algebra classes. - - -diff --git a/math/unuran/doc/Unuran.md b/math/unuran/doc/Unuran.md -index d807c4e807..4c64e0d214 100644 ---- a/math/unuran/doc/Unuran.md -+++ b/math/unuran/doc/Unuran.md -@@ -1,9 +1,7 @@ --/** -- --Universal Non Uniform Random number generator for generating non uniform pseudo-random numbers -- - \defgroup Unuran Unuran - -+\brief Universal Non Uniform Random number generator for generating non uniform pseudo-random numbers. -+ - \ingroup Math - - UNU.RAN, (Universal Non Uniform Random number generator for generating non uniform pseudo-random numbers) -@@ -120,5 +118,3 @@ TRandom pointer when constructing the TUnuran class (by default the ROOT gRandom - - The (UNU.RAN documentation)[http://statistik.wu-wien.ac.at/unuran/doc/unuran.html#Top] provides a detailed - description of all the available methods and the possible options which one can pass to UNU.RAN for the various distributions. --*/ -- --- -2.26.2 - diff --git a/root-doxygen-missing-underscore.patch b/root-doxygen-missing-underscore.patch deleted file mode 100644 index 630d58f..0000000 --- a/root-doxygen-missing-underscore.patch +++ /dev/null @@ -1,25 +0,0 @@ -From e6e6715a73fb8b65ee24c11ff08ca34e25db9ef1 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Wed, 8 Jul 2020 19:41:10 +0200 -Subject: [PATCH 4/5] Add missing underscore - ---- - tutorials/fit/vectorizedFit.C | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tutorials/fit/vectorizedFit.C b/tutorials/fit/vectorizedFit.C -index d6b13e2fa7..1f6e317aa6 100644 ---- a/tutorials/fit/vectorizedFit.C -+++ b/tutorials/fit/vectorizedFit.C -@@ -8,7 +8,7 @@ - /// TF1::SetVectorized - /// - /// \macro_image --/// \macro output -+/// \macro_output - /// \macro_code - /// - /// \author Lorenzo Moneta --- -2.26.2 - diff --git a/root-doxygen-parameter-names.patch b/root-doxygen-parameter-names.patch deleted file mode 100644 index 7cc7d2e..0000000 --- a/root-doxygen-parameter-names.patch +++ /dev/null @@ -1,1211 +0,0 @@ -From e65727913e435819a3fc26513d9892d179eab1f2 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Wed, 8 Jul 2020 19:32:51 +0200 -Subject: [PATCH 3/5] Adjust parameter names in doxygen markup so they match - the code - -Addresses warnings: - -argument '' of command @param is not found in the argument list -of . ---- - .../pythonizations/src/PyzPythonHelpers.cxx | 2 +- - bindings/r/inc/TRInterface.h | 4 +-- - hist/hist/src/TF1.cxx | 5 ++- - hist/hist/src/TGraph.cxx | 6 ++-- - hist/histpainter/src/TPainter3dAlgorithms.cxx | 6 ++-- - hist/histv7/inc/ROOT/RAxis.hxx | 11 +++---- - hist/histv7/inc/ROOT/RHist.hxx | 2 +- - hist/unfold/src/TUnfoldBinning.cxx | 24 +++++++------- - hist/unfold/src/TUnfoldBinningXML.cxx | 2 +- - hist/unfold/src/TUnfoldDensity.cxx | 2 +- - hist/unfold/src/TUnfoldSys.cxx | 7 ++-- - io/io/inc/ROOT/TBufferMerger.hxx | 2 +- - math/mathcore/inc/Math/IntegratorMultiDim.h | 2 +- - math/minuit2/inc/Minuit2/FCNBase.h | 4 +-- - math/minuit2/inc/Minuit2/FumiliChi2FCN.h | 2 +- - math/minuit2/inc/Minuit2/FumiliErrorUpdator.h | 2 +- - .../inc/Minuit2/FumiliMaximumLikelihoodFCN.h | 2 +- - roofit/roofit/src/RooExponential.cxx | 2 +- - roofit/roofit/src/RooGExpModel.cxx | 32 +++++++++---------- - roofit/roofit/src/RooGaussian.cxx | 2 +- - roofit/roofit/src/RooJohnson.cxx | 2 +- - roofit/roofit/src/RooLandau.cxx | 2 +- - roofit/roofitcore/src/BatchData.cxx | 2 +- - roofit/roofitcore/src/RooAbsPdf.cxx | 4 +-- - roofit/roofitcore/src/RooAbsReal.cxx | 2 +- - roofit/roofitcore/src/RooCustomizer.cxx | 4 +-- - roofit/roofitcore/src/RooDataHist.cxx | 4 +-- - roofit/roofitcore/src/RooDataSet.cxx | 10 +++--- - roofit/roofitcore/src/RooFormulaVar.cxx | 2 +- - roofit/roofitcore/src/RooSuperCategory.cxx | 2 +- - roofit/roofitmore/src/RooHypatia2.cxx | 6 ++-- - tmva/tmva/inc/TMVA/BDTEventWrapper.h | 4 +-- - tmva/tmva/inc/TMVA/NeuralNet.h | 14 +++----- - tmva/tmva/inc/TMVA/NeuralNet.icc | 2 +- - tmva/tmva/inc/TMVA/RTensor.hxx | 2 +- - .../inc/TMVA/TreeInference/BranchlessTree.hxx | 4 +-- - tmva/tmva/inc/TMVA/TreeInference/Forest.hxx | 2 +- - tmva/tmva/src/BDTEventWrapper.cxx | 2 +- - tmva/tmva/src/CrossValidation.cxx | 2 +- - tmva/tmva/src/CvSplit.cxx | 18 +++++------ - tmva/tmva/src/Envelope.cxx | 12 +++---- - tree/dataframe/inc/ROOT/RDF/RInterface.hxx | 16 +++++----- - tree/dataframe/inc/ROOT/RDFHelpers.hxx | 2 +- - tree/dataframe/inc/ROOT/RDataSource.hxx | 8 ++--- - tree/dataframe/inc/ROOT/RResultPtr.hxx | 2 +- - tree/dataframe/src/RArrowDS.cxx | 4 +-- - tree/tree/inc/TTree.h | 2 +- - tree/tree/src/TIOFeatures.cxx | 14 ++++---- - 48 files changed, 131 insertions(+), 140 deletions(-) - -diff --git a/bindings/pyroot/pythonizations/src/PyzPythonHelpers.cxx b/bindings/pyroot/pythonizations/src/PyzPythonHelpers.cxx -index 059debcee4..c5e354f300 100644 ---- a/bindings/pyroot/pythonizations/src/PyzPythonHelpers.cxx -+++ b/bindings/pyroot/pythonizations/src/PyzPythonHelpers.cxx -@@ -99,7 +99,7 @@ PyObject *PyROOT::GetDataPointer(PyObject * /*self*/, PyObject *args) - /// \brief Get endianess of the system - /// \param[in] self Always null, since this is a module function. - /// \param[in] args Pointer to an empty Python tuple. --/// \param[out] Endianess as Python string -+/// \return Endianess as Python string - /// - /// This function returns endianess of the system as a Python integer. The - /// return value is either '<' or '>' for little or big endian, respectively. -diff --git a/bindings/r/inc/TRInterface.h b/bindings/r/inc/TRInterface.h -index bdb559bfb5..e097007429 100644 ---- a/bindings/r/inc/TRInterface.h -+++ b/bindings/r/inc/TRInterface.h -@@ -206,7 +206,7 @@ namespace ROOT { - The command line arguments are by deafult argc=0 and argv=NULL, - The verbose mode is by default disabled but you can enable it to show procedures information in stdout/stderr \note some time can produce so much noise in the output - \param argc default 0 -- \param args default null -+ \param argv default null - \param loadRcpp default true - \param verbose default false - \param interactive default true -@@ -226,7 +226,7 @@ namespace ROOT { - /** - Method to eval R code and you get the result in a reference to TRObject - \param code R code -- \param ands reference to TRObject -+ \param ans reference to TRObject - \return an true or false if the execution was sucessful or not. - */ - Int_t Eval(const TString &code, TRObject &ans); // parse line, returns in ans; error code rc -diff --git a/hist/hist/src/TF1.cxx b/hist/hist/src/TF1.cxx -index a72b309c1e..0b7c0b5e45 100644 ---- a/hist/hist/src/TF1.cxx -+++ b/hist/hist/src/TF1.cxx -@@ -1973,12 +1973,11 @@ Double_t TF1::GetProb() const - /// F(x_{\frac{1}{2}}) = \prod(x < x_{\frac{1}{2}}) = \frac{1}{2} - /// \f] - /// --/// \param[in] this TF1 function - /// \param[in] nprobSum maximum size of array q and size of array probSum -+/// \param[out] q array filled with nq quantiles - /// \param[in] probSum array of positions where quantiles will be computed. - /// It is assumed to contain at least nprobSum values. --/// \param[out] return value nq (<=nprobSum) with the number of quantiles computed --/// \param[out] array q filled with nq quantiles -+/// \return value nq (<=nprobSum) with the number of quantiles computed - /// - /// Getting quantiles from two histograms and storing results in a TGraph, - /// a so-called QQ-plot -diff --git a/hist/hist/src/TGraph.cxx b/hist/hist/src/TGraph.cxx -index b6e05a4a9c..614c63d697 100644 ---- a/hist/hist/src/TGraph.cxx -+++ b/hist/hist/src/TGraph.cxx -@@ -1900,9 +1900,9 @@ Int_t TGraph::IsInside(Double_t x, Double_t y) const - /// Least squares polynomial fitting without weights. - /// - /// \param [in] m number of parameters --/// \param [in] ma array of parameters --/// \param [in] mfirst 1st point number to fit (default =0) --/// \param [in] mlast last point number to fit (default=fNpoints-1) -+/// \param [in] a array of parameters -+/// \param [in] xmin 1st point number to fit (default =0) -+/// \param [in] xmax last point number to fit (default=fNpoints-1) - /// - /// based on CERNLIB routine LSQ: Translated to C++ by Rene Brun - -diff --git a/hist/histpainter/src/TPainter3dAlgorithms.cxx b/hist/histpainter/src/TPainter3dAlgorithms.cxx -index e0dd1f28e4..a95ac36d2d 100644 ---- a/hist/histpainter/src/TPainter3dAlgorithms.cxx -+++ b/hist/histpainter/src/TPainter3dAlgorithms.cxx -@@ -3122,8 +3122,8 @@ L500: - /// Set light source - /// - /// \param[in] nl source number: 1 off all light sources, 0 set diffused light --/// \param[in] xl intensity of the light source --/// \param[in] xscr `yscr` `zscr` direction of the light (in respect of the screen) -+/// \param[in] yl intensity of the light source -+/// \param[in] xscr, yscr, zscr direction of the light (in respect of the screen) - /// - /// \param[out] irep reply (0 - O.K, -1 error) - -@@ -4074,7 +4074,7 @@ L500: - /// \param[in] qqa diffusion coefficient for diffused light [0.,1.] - /// \param[in] qqd diffusion coefficient for direct light [0.,1.] - /// \param[in] qqs diffusion coefficient for reflected light [0.,1.] --/// \param[in] nncs power coefficient for reflected light (.GE.1) -+/// \param[in] nnqs power coefficient for reflected light (.GE.1) - /// - /// Lightness model formula: Y = YD*QA + > YLi*(QD*cosNi+QS*cosRi) - /// -diff --git a/hist/histv7/inc/ROOT/RAxis.hxx b/hist/histv7/inc/ROOT/RAxis.hxx -index 0371a06f97..52ed88b9d8 100644 ---- a/hist/histv7/inc/ROOT/RAxis.hxx -+++ b/hist/histv7/inc/ROOT/RAxis.hxx -@@ -68,7 +68,7 @@ protected: - /// determine the bin number taking into account how over/underflow - /// should be handled. - /// -- /// \param[out] result status of the bin determination. -+ /// \param[in] rawbin for which to determine the bin number. - /// \return Returns the bin number adjusted for potential over- and underflow - /// bins. Returns `kInvalidBin` if the axis cannot handle the over- / underflow. - /// -@@ -390,7 +390,7 @@ protected: - /// Determine the inverse bin width. - /// \param nbinsNoOver - number of bins without unter-/overflow - /// \param lowOrHigh - first axis boundary -- /// \param lighOrLow - second axis boundary -+ /// \param highOrLow - second axis boundary - static double GetInvBinWidth(int nbinsNoOver, double lowOrHigh, double highOrLow) - { - return nbinsNoOver / std::fabs(highOrLow - lowOrHigh); -@@ -413,7 +413,7 @@ public: - - /// Initialize a RAxisEquidistant. - /// \param[in] title - axis title used for graphics and text representation. -- /// \param nbins - number of bins in the axis, excluding under- and overflow -+ /// \param nbinsNoOver - number of bins in the axis, excluding under- and overflow - /// bins. - /// \param low - the low axis range. Any coordinate below that is considered - /// as underflow. The first bin's lower edge is at this value. -@@ -427,13 +427,12 @@ public: - {} - - /// Initialize a RAxisEquidistant. -- /// \param nbins - number of bins in the axis, excluding under- and overflow -+ /// \param nbinsNoOver - number of bins in the axis, excluding under- and overflow - /// bins. - /// \param low - the low axis range. Any coordinate below that is considered - /// as underflow. The first bin's lower edge is at this value. - /// \param high - the high axis range. Any coordinate above that is considered - /// as overflow. The last bin's higher edge is at this value. -- /// \param canGrow - whether this axis can extend its range. - explicit RAxisEquidistant(int nbinsNoOver, double low, double high) noexcept - : RAxisEquidistant("", nbinsNoOver, low, high) - {} -@@ -505,6 +504,7 @@ struct AxisConfigToType { - class RAxisGrow: public RAxisEquidistant { - public: - /// Initialize a RAxisGrow. -+ /// \param[in] title - axis title used for graphics and text representation. - /// \param nbins - number of bins in the axis, excluding under- and overflow - /// bins. This value is fixed over the lifetime of the object. - /// \param low - the initial value for the low axis range. Any coordinate -@@ -518,7 +518,6 @@ public: - {} - - /// Initialize a RAxisGrow. -- /// \param[in] title - axis title used for graphics and text representation. - /// \param nbins - number of bins in the axis, excluding under- and overflow - /// bins. This value is fixed over the lifetime of the object. - /// \param low - the initial value for the low axis range. Any coordinate -diff --git a/hist/histv7/inc/ROOT/RHist.hxx b/hist/histv7/inc/ROOT/RHist.hxx -index 5567683b27..e2b7649975 100644 ---- a/hist/histv7/inc/ROOT/RHist.hxx -+++ b/hist/histv7/inc/ROOT/RHist.hxx -@@ -219,9 +219,9 @@ struct RHistImplGen { - /// - /// Delegate to the appropriate MakeNextAxis instantiation, depending on the - /// axis type selected in the RAxisConfig. -+ /// \param title - title of the derived object. - /// \param axes - `RAxisConfig` objects describing the axis of the resulting - /// RHistImpl. -- /// \param statConfig - the statConfig parameter to be passed to the RHistImpl - /// \param processedAxisArgs - the RAxisBase-derived axis objects describing the - /// axes of the resulting RHistImpl. There are `IDIM` of those; in the end - /// (`IDIM` == `GetNDim()`), all `axes` have been converted to -diff --git a/hist/unfold/src/TUnfoldBinning.cxx b/hist/unfold/src/TUnfoldBinning.cxx -index 3aecbf53c2..2500230dca 100644 ---- a/hist/unfold/src/TUnfoldBinning.cxx -+++ b/hist/unfold/src/TUnfoldBinning.cxx -@@ -205,7 +205,7 @@ Int_t TUnfoldBinning::UpdateFirstLastBin(Bool_t startWithRootNode) - /// Create a new node without axis. - /// - /// \param[in] name identifier of the node --/// \param[in] nBin number of unconnected bins (could be zero) -+/// \param[in] nBins number of unconnected bins (could be zero) - /// \param[in] binNames (optional) names of the bins separated by ';' - - TUnfoldBinning::TUnfoldBinning -@@ -241,7 +241,7 @@ TUnfoldBinning::TUnfoldBinning - /// Add a new binning node as last last child of this node. - /// - /// \param[in] name name of the node --/// \param[in] nBin number of extra bins -+/// \param[in] nBins number of extra bins - /// \param[in] binNames (optional) names of the bins separated by ';' - /// - /// this is a shortcut for AddBinning(new TUnfoldBinning(name,nBins,binNames)) -@@ -695,11 +695,11 @@ Int_t TUnfoldBinning::GetTH1xNumberOfBins - /// - /// \param[in] histogramName name of the histogram which is created - /// \param[in] originalAxisBinning if true, try to preserve the axis binning --/// \param[out] (default=0) binMap mapping of global bins to histogram bins. -+/// \param[out] binMap (default=0) mapping of global bins to histogram bins. - /// if(binMap==0), no binMap is created --/// \param[in] (default=0) histogramTitle title of the histogram. If zero, a title -+/// \param[in] histogramTitle (default=0) title of the histogram. If zero, a title - /// is selected automatically --/// \param[in] (default=0) axisSteering steer the handling of underflow/overflow -+/// \param[in] axisSteering (default=0) steer the handling of underflow/overflow - /// and projections - /// - /// returns a new histogram (TH1D, TH2D or TH3D) -@@ -789,11 +789,11 @@ TH1 *TUnfoldBinning::CreateHistogram - /// - /// \param[in] histogramName name of the histogram which is created - /// \param[in] originalAxisBinning if true, try to preserve the axis binning --/// \param[out] (default=0) binMap mapping of global bins to histogram bins. -+/// \param[out] binMap (default=0) mapping of global bins to histogram bins. - /// if(binMap==0), no binMap is created --/// \param[in] (default=0) histogramTitle title of the histogram. If zero, a title -+/// \param[in] histogramTitle (default=0) title of the histogram. If zero, a title - /// is selected automatically --/// \param[in] (default=0) axisSteering steer the handling of underflow/overflow -+/// \param[in] axisSteering (default=0) steer the handling of underflow/overflow - /// and projections - /// - /// returns a new TH2D. The options are described in greater detail -@@ -832,7 +832,7 @@ TH2D *TUnfoldBinning::CreateErrorMatrixHistogram - /// Create a TH2D histogram capable to hold the bins of the two - /// input binning schemes on the x and y axes, respectively. - /// --/// \paran[in] xAxis binning scheme for the x axis -+/// \param[in] xAxis binning scheme for the x axis - /// \param[in] yAxis binning scheme for the y axis - /// \param[in] histogramName name of the histogram which is created - /// \param[in] originalXAxisBinning preserve x-axis bin widths if possible -@@ -1053,8 +1053,8 @@ Int_t *TUnfoldBinning::CreateEmptyBinMap(void) const { - /// Set one entry in a bin map. - /// - /// \param[out] binMap to be used with TUnfoldSys::GetOutput() etc --/// \param[in] source bin, global bin number in this binning scheme --/// \param[in] destination bin in the output histogram -+/// \param[in] globalBin source bin, global bin number in this binning scheme -+/// \param[in] destBin destination bin in the output histogram - - void TUnfoldBinning::SetBinMapEntry - (Int_t *binMap,Int_t globalBin,Int_t destBin) const { -@@ -2075,7 +2075,7 @@ Int_t TUnfoldBinning::ToGlobalBin - /// and bin numbers on the corresponding axes. - /// - /// \param[in] globalBin global bin number --/// \param[out] local bin numbers of the distribution's axes -+/// \param[out] axisBins local bin numbers of the distribution's axes - /// - /// returns the distribution in which the globalBin is located - /// or 0 if the globalBin is outside this node and its children -diff --git a/hist/unfold/src/TUnfoldBinningXML.cxx b/hist/unfold/src/TUnfoldBinningXML.cxx -index 28ce408128..a1daf58215 100644 ---- a/hist/unfold/src/TUnfoldBinningXML.cxx -+++ b/hist/unfold/src/TUnfoldBinningXML.cxx -@@ -472,7 +472,7 @@ void TUnfoldBinningXML::AddAxisXML(TXMLNode *node) { - /// Export a binning scheme to a stream in XML format. - /// - /// \param[in] binning the binning scheme to export --/// \param[out] stream to write to -+/// \param[in] out stream to write to - /// \param[in] writeHeader set true when writing the first binning - /// scheme to this stream - /// \param[in] writeFooter set true when writing the last binning -diff --git a/hist/unfold/src/TUnfoldDensity.cxx b/hist/unfold/src/TUnfoldDensity.cxx -index 9b32da0961..78c7ddbf14 100644 ---- a/hist/unfold/src/TUnfoldDensity.cxx -+++ b/hist/unfold/src/TUnfoldDensity.cxx -@@ -1311,7 +1311,7 @@ const TUnfoldBinning *TUnfoldDensity::GetOutputBinning - /// \param[out] scanResult the scanned function wrt log(tau) - /// \param[in] mode 1st parameter for the scan function - /// \param[in] distribution 2nd parameter for the scan function --/// \param[in] projectionMode 3rd parameter for the scan function -+/// \param[in] axisSteering 3rd parameter for the scan function - /// \param[out] lCurvePlot for monitoring, shows the L-curve - /// \param[out] logTauXPlot for monitoring, L-curve(X) as a function of log(tau) - /// \param[out] logTauYPlot for monitoring, L-curve(Y) as a function of log(tau) -diff --git a/hist/unfold/src/TUnfoldSys.cxx b/hist/unfold/src/TUnfoldSys.cxx -index 42bbc7751c..1e89445cde 100644 ---- a/hist/unfold/src/TUnfoldSys.cxx -+++ b/hist/unfold/src/TUnfoldSys.cxx -@@ -463,7 +463,7 @@ Int_t TUnfoldSys::SetInput(const TH1 *hist_y,Double_t scaleBias, - /// \param[in] bgr background distribution with uncorrelated errors - /// \param[in] name identifier for this background source - /// \param[in] scale normalisation factor applied to the background --/// \param[in] scaleError normalisation uncertainty -+/// \param[in] scale_error normalisation uncertainty - /// - /// The contribution scale*bgr is subtracted from the - /// measurement prior to unfolding. The following contributions are -@@ -1045,7 +1045,6 @@ Bool_t TUnfoldSys::GetDeltaSysBackgroundScale - /// Correlated one-sigma shifts from shifting tau. - /// - /// \param[out] hist_delta histogram to store shifts --/// \param[in] source identifier of the background source - /// \param[in] binMap (default=0) remapping of histogram bins - /// - /// returns true if the background source was found. -@@ -1100,8 +1099,8 @@ void TUnfoldSys::GetEmatrixSysSource - //////////////////////////////////////////////////////////////////////////////// - /// Covariance contribution from background normalisation uncertainty. - /// --/// \param[inout] ematrix output histogram --/// \param[in] source identifier of the background source -+/// \param[in,out] ematrix output histogram -+/// \param[in] name identifier of the background source - /// \param[in] binMap (default=0) remapping of histogram bins - /// \param[in] clearEmat (default=true) if true, clear the histogram - /// prior to adding the covariance matrix contribution -diff --git a/io/io/inc/ROOT/TBufferMerger.hxx b/io/io/inc/ROOT/TBufferMerger.hxx -index 27fe36d399..5e4cfe52cb 100644 ---- a/io/io/inc/ROOT/TBufferMerger.hxx -+++ b/io/io/inc/ROOT/TBufferMerger.hxx -@@ -43,7 +43,7 @@ public: - /** Constructor - * @param name Output file name - * @param option Output file creation options -- * @param compression Output file compression level -+ * @param compress Output file compression level - */ - TBufferMerger(const char *name, Option_t *option = "RECREATE", Int_t compress = ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault); - -diff --git a/math/mathcore/inc/Math/IntegratorMultiDim.h b/math/mathcore/inc/Math/IntegratorMultiDim.h -index 0d2d56396e..7b14f96d8e 100644 ---- a/math/mathcore/inc/Math/IntegratorMultiDim.h -+++ b/math/mathcore/inc/Math/IntegratorMultiDim.h -@@ -60,7 +60,7 @@ public: - @param type integration type (adaptive, MC methods, etc..) - @param absTol desired absolute Error - @param relTol desired relative Error -- @param size maximum number of sub-intervals -+ @param ncall number of function calls (apply only to MC integratioon methods) - - In case no parameter values are passed the default ones used in IntegratorMultiDimOptions are used - */ -diff --git a/math/minuit2/inc/Minuit2/FCNBase.h b/math/minuit2/inc/Minuit2/FCNBase.h -index bf6c64bd9e..760df5b6f4 100644 ---- a/math/minuit2/inc/Minuit2/FCNBase.h -+++ b/math/minuit2/inc/Minuit2/FCNBase.h -@@ -65,7 +65,7 @@ public: - as it searches for the Minimum or performs whatever analysis is requested by - the user. - -- @param par function parameters as defined by the user. -+ @param v function parameters as defined by the user. - - @return the Value of the function. - -@@ -75,7 +75,7 @@ public: - - */ - -- virtual double operator()(const std::vector& x) const = 0; -+ virtual double operator()(const std::vector& v) const = 0; - - - /** -diff --git a/math/minuit2/inc/Minuit2/FumiliChi2FCN.h b/math/minuit2/inc/Minuit2/FumiliChi2FCN.h -index 6af985ef08..fac33baaf6 100644 ---- a/math/minuit2/inc/Minuit2/FumiliChi2FCN.h -+++ b/math/minuit2/inc/Minuit2/FumiliChi2FCN.h -@@ -62,7 +62,7 @@ public: - - Sets the model function for the data (for example gaussian+linear for a peak) - -- @param modelFunction a reference to the model function. -+ @param modelFCN a reference to the model function. - - */ - -diff --git a/math/minuit2/inc/Minuit2/FumiliErrorUpdator.h b/math/minuit2/inc/Minuit2/FumiliErrorUpdator.h -index 3eb5da9c36..4b620c57a8 100644 ---- a/math/minuit2/inc/Minuit2/FumiliErrorUpdator.h -+++ b/math/minuit2/inc/Minuit2/FumiliErrorUpdator.h -@@ -67,7 +67,7 @@ public: - - @param fGradientCalculator the Gradient calculator used to retrieved the Parameter transformation - -- @param fFumiliFCNBase the function calculating the figure of merit. -+ @param lambda the Marquard lambda factor - - - \todo Some nice latex mathematical formuli... -diff --git a/math/minuit2/inc/Minuit2/FumiliMaximumLikelihoodFCN.h b/math/minuit2/inc/Minuit2/FumiliMaximumLikelihoodFCN.h -index c6725ae350..1661bee94a 100644 ---- a/math/minuit2/inc/Minuit2/FumiliMaximumLikelihoodFCN.h -+++ b/math/minuit2/inc/Minuit2/FumiliMaximumLikelihoodFCN.h -@@ -61,7 +61,7 @@ public: - - Sets the model function for the data (for example gaussian+linear for a peak) - -- @param modelFunction a reference to the model function. -+ @param modelFCN a reference to the model function. - - */ - -diff --git a/roofit/roofit/src/RooExponential.cxx b/roofit/roofit/src/RooExponential.cxx -index dc211f5275..e16871c5eb 100644 ---- a/roofit/roofit/src/RooExponential.cxx -+++ b/roofit/roofit/src/RooExponential.cxx -@@ -102,7 +102,7 @@ void compute(size_t n, double* __restrict output, Tx x, Tc c) { - - //////////////////////////////////////////////////////////////////////////////// - /// Evaluate the exponential without normalising it on the given batch. --/// \param[in] batchIndex Index of the batch to be computed. -+/// \param[in] begin Index of the batch to be computed. - /// \param[in] batchSize Size of each batch. The last batch may be smaller. - /// \return A span with the computed values. - -diff --git a/roofit/roofit/src/RooGExpModel.cxx b/roofit/roofit/src/RooGExpModel.cxx -index 9c7f184b69..18f5688217 100644 ---- a/roofit/roofit/src/RooGExpModel.cxx -+++ b/roofit/roofit/src/RooGExpModel.cxx -@@ -48,10 +48,10 @@ ClassImp(RooGExpModel); - /// - /// \param[in] name Name of this instance. - /// \param[in] title Title (e.g. for plotting) --/// \param[in] x The convolution observable. --/// \param[in] mean The mean of the Gaussian. --/// \param[in] sigma Width of the Gaussian. --/// \param[in] rlife Lifetime constant \f$ \tau \f$. -+/// \param[in] xIn The convolution observable. -+/// \param[in] meanIn The mean of the Gaussian. -+/// \param[in] sigmaIn Width of the Gaussian. -+/// \param[in] rlifeIn Lifetime constant \f$ \tau \f$. - /// \param[in] meanSF Scale factor for mean. - /// \param[in] sigmaSF Scale factor for sigma. - /// \param[in] rlifeSF Scale factor for rlife. -@@ -81,9 +81,9 @@ RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue - /// - /// \param[in] name Name of this instance. - /// \param[in] title Title (e.g. for plotting) --/// \param[in] x The convolution observable. --/// \param[in] sigma Width of the Gaussian. --/// \param[in] rlife Lifetime constant \f$ \tau \f$. -+/// \param[in] xIn The convolution observable. -+/// \param[in] _sigma Width of the Gaussian. -+/// \param[in] _rlife Lifetime constant \f$ \tau \f$. - /// \param[in] nlo Include next-to-leading order for higher accuracy of convolution. - /// \param[in] type Switch between normal and flipped model. - RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue& xIn, -@@ -105,10 +105,10 @@ RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue - /// - /// \param[in] name Name of this instance. - /// \param[in] title Title (e.g. for plotting) --/// \param[in] x The convolution observable. --/// \param[in] sigma Width of the Gaussian. --/// \param[in] rlife Lifetime constant \f$ \tau \f$. --/// \param[in] srSF Scale factor for both sigma and tau. -+/// \param[in] xIn The convolution observable. -+/// \param[in] _sigma Width of the Gaussian. -+/// \param[in] _rlife Lifetime constant \f$ \tau \f$. -+/// \param[in] _rsSF Scale factor for both sigma and tau. - /// \param[in] nlo Include next-to-leading order for higher accuracy of convolution. - /// \param[in] type Switch between normal and flipped model. - RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue& xIn, -@@ -134,11 +134,11 @@ RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue - /// - /// \param[in] name Name of this instance. - /// \param[in] title Title (e.g. for plotting) --/// \param[in] x The convolution observable. --/// \param[in] sigma Width of the Gaussian. --/// \param[in] rlife Lifetime constant \f$ \tau \f$. --/// \param[in] sigmaSF Scale factor for sigma. --/// \param[in] rlifeSF Scale factor for rlife. -+/// \param[in] xIn The convolution observable. -+/// \param[in] _sigma Width of the Gaussian. -+/// \param[in] _rlife Lifetime constant \f$ \tau \f$. -+/// \param[in] _sigmaSF Scale factor for sigma. -+/// \param[in] _rlifeSF Scale factor for rlife. - /// \param[in] nlo Include next-to-leading order for higher accuracy of convolution. - /// \param[in] type Switch between normal and flipped model. - RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue& xIn, -diff --git a/roofit/roofit/src/RooGaussian.cxx b/roofit/roofit/src/RooGaussian.cxx -index 9d18be7354..aec93528ba 100644 ---- a/roofit/roofit/src/RooGaussian.cxx -+++ b/roofit/roofit/src/RooGaussian.cxx -@@ -92,7 +92,7 @@ void compute(RooSpan output, Tx x, TMean mean, TSig sigma) { - /// and if found, the computation will be batched over their - /// values. If batch data are not found for one of the proxies, the proxies value is assumed to - /// be constant over the batch. --/// \param[in] batchIndex Index of the batch to be computed. -+/// \param[in] begin Index of the batch to be computed. - /// \param[in] batchSize Size of each batch. The last batch may be smaller. - /// \return A span with the computed values. - -diff --git a/roofit/roofit/src/RooJohnson.cxx b/roofit/roofit/src/RooJohnson.cxx -index ba6686f698..1dd6de96b2 100644 ---- a/roofit/roofit/src/RooJohnson.cxx -+++ b/roofit/roofit/src/RooJohnson.cxx -@@ -153,7 +153,7 @@ void compute(RooSpan output, TMass mass, TMu mu, TLambda lambda, TGamma - /// and if found, the computation will be batched over their - /// values. If batch data are not found for one of the proxies, the proxies value is assumed to - /// be constant over the batch. --/// \param[in] batchIndex Index of the batch to be computed. -+/// \param[in] begin Index of the batch to be computed. - /// \param[in] maxSize Maximal size of the batches. May return smaller batches depending on inputs. - /// \return A span with the computed values. - -diff --git a/roofit/roofit/src/RooLandau.cxx b/roofit/roofit/src/RooLandau.cxx -index e59a923cf0..2dade45b3a 100644 ---- a/roofit/roofit/src/RooLandau.cxx -+++ b/roofit/roofit/src/RooLandau.cxx -@@ -169,7 +169,7 @@ void compute( size_t batchSize, - /// and if found, the computation will be batched over their - /// values. If batch data are not found for one of the proxies, the proxies value is assumed to - /// be constant over the batch. --/// \param[in] batchIndex Index of the batch to be computed. -+/// \param[in] begin Index of the batch to be computed. - /// \param[in] batchSize Size of each batch. The last batch may be smaller. - /// \return A span with the computed values. - -diff --git a/roofit/roofitcore/src/BatchData.cxx b/roofit/roofitcore/src/BatchData.cxx -index fd05343076..5bbe34e20b 100644 ---- a/roofit/roofitcore/src/BatchData.cxx -+++ b/roofit/roofitcore/src/BatchData.cxx -@@ -73,7 +73,7 @@ bool BatchData::setStatus(std::size_t begin, std::size_t size, Status_t stat, - /// Retrieve an existing batch. - /// - /// \param[in] begin Begin index of the batch. --/// \param[in] size Requested size. Batch may come out smaller than this. -+/// \param[in] maxSize Requested size. Batch may come out smaller than this. - /// \param[in] normSet Optional normSet pointer to distinguish differently normalised computations. - /// \param[in] ownerTag Optional owner tag. This avoids reusing batch memory for e.g. getVal() and getLogVal(). - /// \return Non-mutable contiguous batch data. -diff --git a/roofit/roofitcore/src/RooAbsPdf.cxx b/roofit/roofitcore/src/RooAbsPdf.cxx -index 9f68b1cdb7..9e7eb69e09 100644 ---- a/roofit/roofitcore/src/RooAbsPdf.cxx -+++ b/roofit/roofitcore/src/RooAbsPdf.cxx -@@ -711,7 +711,7 @@ bool checkInfNaNNeg(const T& inputs) { - - //////////////////////////////////////////////////////////////////////////////// - /// Scan through outputs and fix+log all nans and negative values. --/// \param[in/out] outputs Array to be scanned & fixed. -+/// \param[in,out] outputs Array to be scanned & fixed. - /// \param[in] begin Begin of event range. Only needed to print the correct event number - /// where the error occurred. - void RooAbsPdf::logBatchComputationErrors(RooSpan& outputs, std::size_t begin) const { -@@ -734,7 +734,7 @@ void RooAbsPdf::logBatchComputationErrors(RooSpan& outputs, std::s - /// Compute the log-likelihoods for all events in the requested batch. - /// The arguments are passed over to getValBatch(). - /// \param[in] begin Start of the batch. --/// \param[in] size Maximum size of the batch. Depending on data layout and memory, the batch -+/// \param[in] maxSize Maximum size of the batch. Depending on data layout and memory, the batch - /// may come back smaller. - /// \return Returns a batch of doubles that contains the log probabilities. - RooSpan RooAbsPdf::getLogValBatch(std::size_t begin, std::size_t maxSize, -diff --git a/roofit/roofitcore/src/RooAbsReal.cxx b/roofit/roofitcore/src/RooAbsReal.cxx -index 2d2ceeaf2d..6cac5f5897 100644 ---- a/roofit/roofitcore/src/RooAbsReal.cxx -+++ b/roofit/roofitcore/src/RooAbsReal.cxx -@@ -4294,7 +4294,7 @@ RooAbsMoment* RooAbsReal::moment(RooRealVar& obs, Int_t order, Bool_t central, B - /// \param[in] order Order of the moment - /// \param[in] central If true, the central moment is given by \f$ \langle (x- \langle x \rangle )^2 \rangle \f$ - /// \param[in] takeRoot Calculate the square root --/// \param[in] intNormOb If true, the moment of the function integrated over all normalization observables is returned. -+/// \param[in] intNormObs If true, the moment of the function integrated over all normalization observables is returned. - - RooAbsMoment* RooAbsReal::moment(RooRealVar& obs, const RooArgSet& normObs, Int_t order, Bool_t central, Bool_t takeRoot, Bool_t intNormObs) - { -diff --git a/roofit/roofitcore/src/RooCustomizer.cxx b/roofit/roofitcore/src/RooCustomizer.cxx -index 97d6d3176c..818991873d 100644 ---- a/roofit/roofitcore/src/RooCustomizer.cxx -+++ b/roofit/roofitcore/src/RooCustomizer.cxx -@@ -198,7 +198,7 @@ static Int_t init() - /// replaceArg() and splitArg() functionality. - /// \param[in] pdf Proto PDF to be customised. - /// \param[in] masterCat Category to be used for splitting. --/// \param[in/out] splitLeafs All nodes created in -+/// \param[in,out] splitLeafs All nodes created in - /// the customisation process are added to this set. - /// The user can provide nodes that are *taken* - /// from the set if they have a name that matches `_`. -@@ -209,7 +209,7 @@ static Int_t init() - /// auto yield1 = new RooFormulaVar("yieldSig_BBG1m2T","sigy1","M/3.360779",mass); - /// customisedLeafs.addOwned(*yield1); - /// ``` --/// \param[in/out] splitLeafsAll All leafs that are used when customising are collected here. -+/// \param[in,out] splitLeafsAll All leafs that are used when customising are collected here. - /// If this set already contains leaves, they will be used for customising if the names match - /// as above. - /// -diff --git a/roofit/roofitcore/src/RooDataHist.cxx b/roofit/roofitcore/src/RooDataHist.cxx -index 1c8b517b0d..8c90dd0ade 100644 ---- a/roofit/roofitcore/src/RooDataHist.cxx -+++ b/roofit/roofitcore/src/RooDataHist.cxx -@@ -632,8 +632,8 @@ void RooDataHist::_adjustBinning(RooRealVar &theirVar, const TAxis &axis, - /// observable to binning in given reference TH1. Used by constructors - /// that import data from an external TH1. - /// Both the variables in vars and in this RooDataHist are adjusted. --/// @param List with variables that are supposed to have their binning adjusted. --/// @param Reference histogram that dictates the binning -+/// @param vars List with variables that are supposed to have their binning adjusted. -+/// @param href Reference histogram that dictates the binning - /// @param offset If not nullptr, a possible bin count offset for the axes x,y,z is saved here as Int_t[3] - - void RooDataHist::adjustBinning(const RooArgList& vars, const TH1& href, Int_t* offset) -diff --git a/roofit/roofitcore/src/RooDataSet.cxx b/roofit/roofitcore/src/RooDataSet.cxx -index 1e54dfbde0..f03ec78a0d 100644 ---- a/roofit/roofitcore/src/RooDataSet.cxx -+++ b/roofit/roofitcore/src/RooDataSet.cxx -@@ -765,7 +765,7 @@ RooDataSet::RooDataSet(const char *name, const char *title, TTree *theTree, - /// - /// \param[in] name Name of this dataset. - /// \param[in] title Title for e.g. plotting. --/// \param[in] tree Tree to be imported. -+/// \param[in] theTree Tree to be imported. - /// \param[in] vars Defines the columns of the data set. For each dimension - /// specified, the TTree must have a branch with the same name. For category - /// branches, this branch should contain the numeric index value. Real dimensions -@@ -1205,11 +1205,11 @@ void RooDataSet::add(const RooArgSet& data, Double_t wgt, Double_t wgtError) - //////////////////////////////////////////////////////////////////////////////// - /// Add a data point, with its coordinates specified in the 'data' argset, to the data set. - /// Any variables present in 'data' but not in the dataset will be silently ignored. --/// \param[in] data Data point. --/// \param[in] wgt Event weight. The current value of the weight variable is ignored. -+/// \param[in] indata Data point. -+/// \param[in] inweight Event weight. The current value of the weight variable is ignored. - /// \note To obtain weighted events, a variable must be designated `WeightVar` in the constructor. --/// \param[in] wgtErrorLo Asymmetric weight error. --/// \param[in] wgtErrorHi Asymmetric weight error. -+/// \param[in] weightErrorLo Asymmetric weight error. -+/// \param[in] weightErrorHi Asymmetric weight error. - /// \note This requires including the weight variable in the set of `StoreAsymError` variables when constructing - /// the dataset. - -diff --git a/roofit/roofitcore/src/RooFormulaVar.cxx b/roofit/roofitcore/src/RooFormulaVar.cxx -index 90ee32d619..947c505598 100644 ---- a/roofit/roofitcore/src/RooFormulaVar.cxx -+++ b/roofit/roofitcore/src/RooFormulaVar.cxx -@@ -66,7 +66,7 @@ ClassImp(RooFormulaVar); - /// Constructor with formula expression and list of input variables. - /// \param[in] name Name of the formula. - /// \param[in] title Title of the formula. --/// \param[in] formula Expression to be evaluated. -+/// \param[in] inFormula Expression to be evaluated. - /// \param[in] dependents Variables that should be passed to the formula. - /// \param[in] checkVariables Check that all variables from `dependents` are used in the expression. - RooFormulaVar::RooFormulaVar(const char *name, const char *title, const char* inFormula, const RooArgList& dependents, -diff --git a/roofit/roofitcore/src/RooSuperCategory.cxx b/roofit/roofitcore/src/RooSuperCategory.cxx -index 4c0b705e50..e5668ffb98 100644 ---- a/roofit/roofitcore/src/RooSuperCategory.cxx -+++ b/roofit/roofitcore/src/RooSuperCategory.cxx -@@ -54,7 +54,7 @@ RooSuperCategory::RooSuperCategory() : - /// Construct a super category from other categories. - /// \param[in] name Name of this object - /// \param[in] title Title (for e.g. printing) --/// \param[in] inputCatList RooArgSet with category objects. These all need to derive from RooAbsCategoryLValue, *i.e.* -+/// \param[in] inputCategories RooArgSet with category objects. These all need to derive from RooAbsCategoryLValue, *i.e.* - /// one needs to be able to assign to them. - RooSuperCategory::RooSuperCategory(const char *name, const char *title, const RooArgSet& inputCategories) : - RooAbsCategoryLValue(name, title), -diff --git a/roofit/roofitmore/src/RooHypatia2.cxx b/roofit/roofitmore/src/RooHypatia2.cxx -index 691aa6073d..7d550b2753 100644 ---- a/roofit/roofitmore/src/RooHypatia2.cxx -+++ b/roofit/roofitmore/src/RooHypatia2.cxx -@@ -119,21 +119,21 @@ - /// \param[in] a2 Start of right tail. - /// \param[in] n2 Shape parameter of right tail (\f$ n2 \ge 0 \f$). With \f$ n2 = 0 \f$, the function is constant. - RooHypatia2::RooHypatia2(const char *name, const char *title, RooAbsReal& x, RooAbsReal& lambda, -- RooAbsReal& zeta, RooAbsReal& beta, RooAbsReal& sigm, RooAbsReal& mu, RooAbsReal& a, -+ RooAbsReal& zeta, RooAbsReal& beta, RooAbsReal& sigma, RooAbsReal& mu, RooAbsReal& a, - RooAbsReal& n, RooAbsReal& a2, RooAbsReal& n2) : - RooAbsPdf(name, title), - _x("x", "x", this, x), - _lambda("lambda", "Lambda", this, lambda), - _zeta("zeta", "zeta", this, zeta), - _beta("beta", "Asymmetry parameter beta", this, beta), -- _sigma("sigma", "Width parameter sigma", this, sigm), -+ _sigma("sigma", "Width parameter sigma", this, sigma), - _mu("mu", "Location parameter mu", this, mu), - _a("a", "Left tail location a", this, a), - _n("n", "Left tail parameter n", this, n), - _a2("a2", "Right tail location a2", this, a2), - _n2("n2", "Right tail parameter n2", this, n2) - { -- RooHelpers::checkRangeOfParameters(this, {&sigm}, 0.); -+ RooHelpers::checkRangeOfParameters(this, {&sigma}, 0.); - RooHelpers::checkRangeOfParameters(this, {&zeta, &n, &n2, &a, &a2}, 0., std::numeric_limits::max(), true); - if (zeta.getVal() == 0. && zeta.isConstant()) { - RooHelpers::checkRangeOfParameters(this, {&lambda}, -std::numeric_limits::max(), 0., false, -diff --git a/tmva/tmva/inc/TMVA/BDTEventWrapper.h b/tmva/tmva/inc/TMVA/BDTEventWrapper.h -index 7d4c4f8dd6..2c99341dd9 100644 ---- a/tmva/tmva/inc/TMVA/BDTEventWrapper.h -+++ b/tmva/tmva/inc/TMVA/BDTEventWrapper.h -@@ -40,14 +40,14 @@ namespace TMVA { - - // Set the accumulated weight, for sorted signal/background events - /** -- * @param fType - true for signal, false for background -+ * @param type - true for signal, false for background - * @param weight - the total weight - */ - void SetCumulativeWeight( Bool_t type, Double_t weight ); - - // Get the accumulated weight - /** -- * @param fType - true for signal, false for background -+ * @param type - true for signal, false for background - * @return the cumulative weight for sorted signal/background events - */ - Double_t GetCumulativeWeight( Bool_t type ) const; -diff --git a/tmva/tmva/inc/TMVA/NeuralNet.h b/tmva/tmva/inc/TMVA/NeuralNet.h -index bae98a48b2..a11b543b59 100644 ---- a/tmva/tmva/inc/TMVA/NeuralNet.h -+++ b/tmva/tmva/inc/TMVA/NeuralNet.h -@@ -478,10 +478,8 @@ namespace TMVA - * \param size size of the layer - * \param itWeightBegin indicates the start of the weights for this layer on the weight vector - * \param itGradientBegin indicates the start of the gradients for this layer on the gradient vector -- * \param itFunctionBegin indicates the start of the vector of activation functions for this layer on the -- * activation function vector -- * \param itInverseFunctionBegin indicates the start of the vector of activation functions for this -- * layer on the activation function vector -+ * \param activationFunction indicates activation functions for this layer -+ * \param inverseActivationFunction indicates the inverse activation functions for this layer - * \param eModeOutput indicates a potential tranformation of the output values before further computation - * DIRECT does not further transformation; SIGMOID applies a sigmoid transformation to each - * output value (to create a probability); SOFTMAX applies a softmax transformation to all -@@ -500,8 +498,7 @@ namespace TMVA - * - * \param size size of the layer - * \param itWeightBegin indicates the start of the weights for this layer on the weight vector -- * \param itFunctionBegin indicates the start of the vector of activation functions for this layer on the -- * activation function vector -+ * \param activationFunction indicates the activation function for this layer - * \param eModeOutput indicates a potential tranformation of the output values before further computation - * DIRECT does not further transformation; SIGMOID applies a sigmoid transformation to each - * output value (to create a probability); SOFTMAX applies a softmax transformation to all -@@ -679,9 +676,6 @@ namespace TMVA - /*! \brief c'tor for defining a Layer - * - * -- * \param itInputBegin indicates the start of the input node vector -- * \param itInputEnd indicates the end of the input node vector -- * - */ - Layer (size_t numNodes, EnumFunction activationFunction, ModeOutputValues eModeOutputValues = ModeOutputValues::DIRECT); - -@@ -1141,7 +1135,7 @@ namespace TMVA - - /*! \brief executes one training cycle - * -- * \param minimizier the minimizer to be used -+ * \param minimizer the minimizer to be used - * \param weights the weight vector to be used - * \param itPatternBegin the pattern to be trained with - * \param itPatternEnd the pattern to be trainied with -diff --git a/tmva/tmva/inc/TMVA/NeuralNet.icc b/tmva/tmva/inc/TMVA/NeuralNet.icc -index 95cad21e26..e511e49d43 100644 ---- a/tmva/tmva/inc/TMVA/NeuralNet.icc -+++ b/tmva/tmva/inc/TMVA/NeuralNet.icc -@@ -933,7 +933,7 @@ template - * \param minimizer the minimizer to be used (e.g. SGD) - * \param weights the weight container with all the synapse weights - * \param itPatternBegin begin of the pattern container -- * \parama itPatternEnd the end of the pattern container -+ * \param itPatternEnd the end of the pattern container - * \param settings the settings for this training (e.g. multithreading or not, regularization, etc.) - * \param dropContainer the data for dropping-out nodes (regularization technique) - */ -diff --git a/tmva/tmva/inc/TMVA/RTensor.hxx b/tmva/tmva/inc/TMVA/RTensor.hxx -index c131384ae2..7d9773b457 100644 ---- a/tmva/tmva/inc/TMVA/RTensor.hxx -+++ b/tmva/tmva/inc/TMVA/RTensor.hxx -@@ -73,7 +73,7 @@ inline std::vector ComputeStridesFromShape(const T &shape, MemoryLa - } - - /// \brief Compute indices from global index --/// \param[in] Shape vector -+/// \param[in] shape Shape vector - /// \param[in] idx Global index - /// \param[in] layout Memory layout - /// \return Indice vector -diff --git a/tmva/tmva/inc/TMVA/TreeInference/BranchlessTree.hxx b/tmva/tmva/inc/TMVA/TreeInference/BranchlessTree.hxx -index 4ac460be64..a1c6fdf773 100644 ---- a/tmva/tmva/inc/TMVA/TreeInference/BranchlessTree.hxx -+++ b/tmva/tmva/inc/TMVA/TreeInference/BranchlessTree.hxx -@@ -72,7 +72,7 @@ struct BranchlessTree { - /// Perform inference on a single input vector - /// \param[in] input Pointer to data containing the input values - /// \param[in] stride Stride to go from one input variable to the next one --/// \param[out] Tree score, result of the inference -+/// \return Tree score, result of the inference - template - inline T BranchlessTree::Inference(const T *input, const int stride) - { -@@ -105,7 +105,7 @@ inline void BranchlessTree::FillSparse() - /// - /// \param[in] funcName Name of the function - /// \param[in] typeName Name of the type used for the computation --/// \param[out] Code of the inference function as string -+/// \return Code of the inference function as string - template - inline std::string BranchlessTree::GetInferenceCode(const std::string& funcName, const std::string& typeName) - { -diff --git a/tmva/tmva/inc/TMVA/TreeInference/Forest.hxx b/tmva/tmva/inc/TMVA/TreeInference/Forest.hxx -index 70d1e3eb68..18b385a8e0 100644 ---- a/tmva/tmva/inc/TMVA/TreeInference/Forest.hxx -+++ b/tmva/tmva/inc/TMVA/TreeInference/Forest.hxx -@@ -195,7 +195,7 @@ struct BranchlessJittedForest : public ForestBase - inline std::string - BranchlessJittedForest::Load(const std::string &key, const std::string &filename, const int output, const bool sortTrees) -diff --git a/tmva/tmva/src/BDTEventWrapper.cxx b/tmva/tmva/src/BDTEventWrapper.cxx -index 63171c886b..9702660936 100644 ---- a/tmva/tmva/src/BDTEventWrapper.cxx -+++ b/tmva/tmva/src/BDTEventWrapper.cxx -@@ -48,7 +48,7 @@ BDTEventWrapper::~BDTEventWrapper() { - //////////////////////////////////////////////////////////////////////////////// - /// Set the accumulated weight, for sorted signal/background events - /// --/// @param fType - true for signal, false for background -+/// @param type - true for signal, false for background - /// @param weight - the total weight - - void BDTEventWrapper::SetCumulativeWeight(Bool_t type, Double_t weight) { -diff --git a/tmva/tmva/src/CrossValidation.cxx b/tmva/tmva/src/CrossValidation.cxx -index 453927c5b7..58bd9130d1 100644 ---- a/tmva/tmva/src/CrossValidation.cxx -+++ b/tmva/tmva/src/CrossValidation.cxx -@@ -99,7 +99,7 @@ TMultiGraph *TMVA::CrossValidationResult::GetROCCurves(Bool_t /*fLegend*/) - /// - /// \note You own the returned pointer. - /// --/// \param numSamples[in] Number of samples used for generating the average ROC -+/// \param[in] numSamples Number of samples used for generating the average ROC - /// Curve. Avg. curve will be evaluated only at these - /// points (using interpolation if necessary). - /// -diff --git a/tmva/tmva/src/CvSplit.cxx b/tmva/tmva/src/CvSplit.cxx -index d6d44ac1cc..9eedcf3d72 100644 ---- a/tmva/tmva/src/CvSplit.cxx -+++ b/tmva/tmva/src/CvSplit.cxx -@@ -227,15 +227,15 @@ UInt_t TMVA::CvSplitKFoldsExpr::GetSpectatorIndexForName(DataSetInfo &dsi, TStri - - //////////////////////////////////////////////////////////////////////////////// - /// \brief Splits a dataset into k folds, ready for use in cross validation. --/// \param numFolds[in] Number of folds to split data into --/// \param stratified[in] If true, use stratified splitting, balancing the -+/// \param[in] numFolds Number of folds to split data into -+/// \param[in] stratified If true, use stratified splitting, balancing the - /// number of events across classes and folds. If false, - /// no such balancing is done. For --/// \param splitExpr[in] Expression used to split data into folds. If `""` a -+/// \param[in] splitExpr Expression used to split data into folds. If `""` a - /// random assignment will be done. Otherwise the - /// expression is fed into a TFormula and evaluated per - /// event. The resulting value is the the fold assignment. --/// \param seed[in] Used only when using random splitting (i.e. when -+/// \param[in] seed Used only when using random splitting (i.e. when - /// `splitExpr` is `""`). Seed is used to initialise the random - /// number generator when assigning events to folds. - /// -@@ -282,9 +282,9 @@ void TMVA::CvSplitKFolds::MakeKFoldDataSet(DataSetInfo &dsi) - - //////////////////////////////////////////////////////////////////////////////// - /// \brief Generates a vector of fold assignments --/// \param nEntires[in] Number of events in range --/// \param numFolds[in] Number of folds to split data into --/// \param seed[in] Random seed -+/// \param[in] nEntries Number of events in range -+/// \param[in] numFolds Number of folds to split data into -+/// \param[in] seed Random seed - /// - /// Randomly assigns events to `numFolds` folds. Each fold will hold at most - /// `nEntries / numFolds + 1` events. -@@ -311,8 +311,8 @@ std::vector TMVA::CvSplitKFolds::GetEventIndexToFoldMapping(UInt_t nEntr - - //////////////////////////////////////////////////////////////////////////////// - /// \brief Split sets for into k-folds --/// \param oldSet[in] Original, unsplit, events --/// \param numFolds[in] Number of folds to split data into -+/// \param[in] oldSet Original, unsplit, events -+/// \param[in] numFolds Number of folds to split data into - /// - - std::vector> -diff --git a/tmva/tmva/src/Envelope.cxx b/tmva/tmva/src/Envelope.cxx -index 5fab98c13b..8a0c6b23f4 100644 ---- a/tmva/tmva/src/Envelope.cxx -+++ b/tmva/tmva/src/Envelope.cxx -@@ -37,8 +37,8 @@ this is a generic one protected. - \param file optional file to save the results. - \param options extra options for the algorithm. - */ --Envelope::Envelope(const TString &name, DataLoader *dalaloader, TFile *file, const TString options) -- : Configurable(options), fDataLoader(dalaloader), fFile(file), fModelPersistence(kTRUE), fVerbose(kFALSE), -+Envelope::Envelope(const TString &name, DataLoader *dataloader, TFile *file, const TString options) -+ : Configurable(options), fDataLoader(dataloader), fFile(file), fModelPersistence(kTRUE), fVerbose(kFALSE), - fTransformations("I"), fSilentFile(kFALSE), fJobs(1) - { - SetName(name.Data()); -@@ -120,7 +120,7 @@ DataLoader *Envelope::GetDataLoader(){ return fDataLoader.get();} - //_______________________________________________________________________ - /** - Method to set the pointer to TMVA::DataLoader object. --\param dalaloader pointer to TMVA::DataLoader object. -+\param dataloader pointer to TMVA::DataLoader object. - */ - - void Envelope::SetDataLoader(DataLoader *dataloader) -@@ -146,7 +146,7 @@ void TMVA::Envelope::SetModelPersistence(Bool_t status){fModelPersistence=status - /** - Method to book the machine learning method to perform the algorithm. - \param method enum TMVA::Types::EMVA with the type of the mva method --\param methodtitle String with the method title. -+\param methodTitle String with the method title. - \param options String with the options for the method. - */ - void TMVA::Envelope::BookMethod(Types::EMVA method, TString methodTitle, TString options){ -@@ -156,8 +156,8 @@ void TMVA::Envelope::BookMethod(Types::EMVA method, TString methodTitle, TString - //_______________________________________________________________________ - /** - Method to book the machine learning method to perform the algorithm. --\param methodname String with the name of the mva method --\param methodtitle String with the method title. -+\param methodName String with the name of the mva method -+\param methodTitle String with the method title. - \param options String with the options for the method. - */ - void TMVA::Envelope::BookMethod(TString methodName, TString methodTitle, TString options){ -diff --git a/tree/dataframe/inc/ROOT/RDF/RInterface.hxx b/tree/dataframe/inc/ROOT/RDF/RInterface.hxx -index b5e39251a8..da09c0be3c 100644 ---- a/tree/dataframe/inc/ROOT/RDF/RInterface.hxx -+++ b/tree/dataframe/inc/ROOT/RDF/RInterface.hxx -@@ -568,7 +568,7 @@ public: - //////////////////////////////////////////////////////////////////////////// - /// \brief Save selected columns in memory - /// \tparam ColumnTypes variadic list of branch/column types. -- /// \param[in] columns to be cached in memory. -+ /// \param[in] columnList columns to be cached in memory. - /// \return a `RDataFrame` that wraps the cached dataset. - /// - /// This action returns a new `RDataFrame` object, completely detached from -@@ -603,7 +603,7 @@ public: - - //////////////////////////////////////////////////////////////////////////// - /// \brief Save selected columns in memory -- /// \param[in] columns to be cached in memory -+ /// \param[in] columnList columns to be cached in memory - /// \return a `RDataFrame` that wraps the cached dataset. - /// - /// See the previous overloads for more information. -@@ -660,7 +660,7 @@ public: - - //////////////////////////////////////////////////////////////////////////// - /// \brief Save selected columns in memory -- /// \param[in] columns to be cached in memory. -+ /// \param[in] columnList columns to be cached in memory. - /// \return a `RDataFrame` that wraps the cached dataset. - /// - /// See the previous overloads for more information. -@@ -1528,13 +1528,13 @@ public: - /// ~~~ - /// - template -- RResultPtr Fill(T &&model, const ColumnNames_t &bl) -+ RResultPtr Fill(T &&model, const ColumnNames_t &columnList) - { - auto h = std::make_shared(std::forward(model)); - if (!RDFInternal::HistoUtils::HasAxisLimits(*h)) { - throw std::runtime_error("The absence of axes limits is not supported yet."); - } -- return CreateAction(bl, h, bl.size()); -+ return CreateAction(columnList, h, columnList.size()); - } - - //////////////////////////////////////////////////////////////////////////// -@@ -2134,7 +2134,7 @@ public: - /// \brief Provides a representation of the columns in the dataset - /// \tparam ColumnTypes variadic list of branch/column types. - /// \param[in] columnList Names of the columns to be displayed. -- /// \param[in] rows Number of events for each column to be displayed. -+ /// \param[in] nRows Number of events for each column to be displayed. - /// \return the `RDisplay` instance wrapped in a `RResultPtr`. - /// - /// This function returns a `RResultPtr` containing all the entries to be displayed, organized in a tabular -@@ -2165,7 +2165,7 @@ public: - //////////////////////////////////////////////////////////////////////////// - /// \brief Provides a representation of the columns in the dataset - /// \param[in] columnList Names of the columns to be displayed. -- /// \param[in] rows Number of events for each column to be displayed. -+ /// \param[in] nRows Number of events for each column to be displayed. - /// \return the `RDisplay` instance wrapped in a `RResultPtr`. - /// - /// This overload automatically infers the column types. -@@ -2181,7 +2181,7 @@ public: - //////////////////////////////////////////////////////////////////////////// - /// \brief Provides a representation of the columns in the dataset - /// \param[in] columnNameRegexp A regular expression to select the columns. -- /// \param[in] rows Number of events for each column to be displayed. -+ /// \param[in] nRows Number of events for each column to be displayed. - /// \return the `RDisplay` instance wrapped in a `RResultPtr`. - /// - /// The existing columns are matched against the regular expression. If the string provided -diff --git a/tree/dataframe/inc/ROOT/RDFHelpers.hxx b/tree/dataframe/inc/ROOT/RDFHelpers.hxx -index 2193e1772e..63a0f90cab 100644 ---- a/tree/dataframe/inc/ROOT/RDFHelpers.hxx -+++ b/tree/dataframe/inc/ROOT/RDFHelpers.hxx -@@ -138,7 +138,7 @@ void SaveGraph(NodeType node, const std::string &outputFile) - - // clang-format off - /// Cast a RDataFrame node to the common type ROOT::RDF::RNode --/// \param[in] Any node of a RDataFrame graph -+/// \param[in] node Any node of a RDataFrame graph - // clang-format on - template - RNode AsRNode(NodeType node) -diff --git a/tree/dataframe/inc/ROOT/RDataSource.hxx b/tree/dataframe/inc/ROOT/RDataSource.hxx -index f4af9abded..04f7dc850c 100644 ---- a/tree/dataframe/inc/ROOT/RDataSource.hxx -+++ b/tree/dataframe/inc/ROOT/RDataSource.hxx -@@ -126,14 +126,14 @@ public: - virtual const std::vector &GetColumnNames() const = 0; - - /// \brief Checks if the dataset has a certain column -- /// \param[in] columnName The name of the column -- virtual bool HasColumn(std::string_view) const = 0; -+ /// \param[in] colName The name of the column -+ virtual bool HasColumn(std::string_view colName) const = 0; - - // clang-format off - /// \brief Type of a column as a string, e.g. `GetTypeName("x") == "double"`. Required for jitting e.g. `df.Filter("x>0")`. -- /// \param[in] columnName The name of the column -+ /// \param[in] colName The name of the column - // clang-format on -- virtual std::string GetTypeName(std::string_view) const = 0; -+ virtual std::string GetTypeName(std::string_view colName) const = 0; - - // clang-format off - /// Called at most once per column by RDF. Return vector of pointers to pointers to column values - one per slot. -diff --git a/tree/dataframe/inc/ROOT/RResultPtr.hxx b/tree/dataframe/inc/ROOT/RResultPtr.hxx -index 8358832b14..8acb2bfae6 100644 ---- a/tree/dataframe/inc/ROOT/RResultPtr.hxx -+++ b/tree/dataframe/inc/ROOT/RResultPtr.hxx -@@ -262,7 +262,7 @@ public: - /// Register a callback that RDataFrame will execute in each worker thread concurrently on that thread's partial result. - /// - /// \param[in] everyNEvents Frequency at which the callback will be called by each thread, as a number of events processed -- /// \param[in] a callable with signature `void(unsigned int, Value_t&)` where Value_t is the type of the value contained in this RResultPtr -+ /// \param[in] callback A callable with signature `void(unsigned int, Value_t&)` where Value_t is the type of the value contained in this RResultPtr - /// \return this RResultPtr, to allow chaining of OnPartialResultSlot with other calls - /// - /// See `OnPartialResult` for a generic explanation of the callback mechanism. -diff --git a/tree/dataframe/src/RArrowDS.cxx b/tree/dataframe/src/RArrowDS.cxx -index d9e2fae32f..0152b9a813 100644 ---- a/tree/dataframe/src/RArrowDS.cxx -+++ b/tree/dataframe/src/RArrowDS.cxx -@@ -382,8 +382,8 @@ public: - - //////////////////////////////////////////////////////////////////////// - /// Constructor to create an Arrow RDataSource for RDataFrame. --/// \param[in] table the arrow Table to observe. --/// \param[in] columns the name of the columns to use -+/// \param[in] inTable the arrow Table to observe. -+/// \param[in] inColumns the name of the columns to use - /// In case columns is empty, we use all the columns found in the table - RArrowDS::RArrowDS(std::shared_ptr inTable, std::vector const &inColumns) - : fTable{inTable}, fColumnNames{inColumns} -diff --git a/tree/tree/inc/TTree.h b/tree/tree/inc/TTree.h -index 8560e28ab5..e95d4ce301 100644 ---- a/tree/tree/inc/TTree.h -+++ b/tree/tree/inc/TTree.h -@@ -357,7 +357,7 @@ public: - /// possible, unless e.g. type conversions are needed. - /// - /// \param[in] name Name of the branch to be created. -- /// \param[in] obj Array of the objects to be added. When calling Fill(), the current value of the type/object will be saved. -+ /// \param[in] addobj Array of the objects to be added. When calling Fill(), the current value of the type/object will be saved. - /// \param[in] bufsize he buffer size in bytes for this branch. When the buffer is full, it is compressed and written to disc. - /// The default value of 32000 bytes and should be ok for most simple types. Larger buffers (e.g. 256000) if your Tree is not split and each entry is large (Megabytes). - /// A small value for bufsize is beneficial if entries in the Tree are accessed randomly and the Tree is in split mode. -diff --git a/tree/tree/src/TIOFeatures.cxx b/tree/tree/src/TIOFeatures.cxx -index 681f2172bd..ca292fb30a 100644 ---- a/tree/tree/src/TIOFeatures.cxx -+++ b/tree/tree/src/TIOFeatures.cxx -@@ -51,7 +51,7 @@ using namespace ROOT; - - //////////////////////////////////////////////////////////////////////////// - /// \brief Clear a specific IO feature from this set. --/// \param[in] enum_bits The specific feature to disable. -+/// \param[in] input_bits The specific feature to disable. - /// - /// Removes a feature from the `TIOFeatures` object; emits an Error message if - /// the IO feature is not supported by this version of ROOT. -@@ -62,7 +62,7 @@ void TIOFeatures::Clear(Experimental::EIOFeatures input_bits) - - //////////////////////////////////////////////////////////////////////////// - /// \brief Clear a specific IO feature from this set. --/// \param[in] enum_bits The specific feature to disable. -+/// \param[in] input_bits The specific feature to disable. - /// - /// Removes a feature from the `TIOFeatures` object; emits an Error message if - /// the IO feature is not supported by this version of ROOT. -@@ -73,7 +73,7 @@ void TIOFeatures::Clear(Experimental::EIOUnsupportedFeatures input_bits) - - //////////////////////////////////////////////////////////////////////////// - /// \brief Clear a specific IO feature from this set. --/// \param[in] enum_bits The specific feature to disable. -+/// \param[in] input_bits The specific feature to disable. - /// - /// Removes a feature from the `TIOFeatures` object; emits an Error message if - /// the IO feature is not supported by this version of ROOT. -@@ -115,7 +115,7 @@ static std::string GetUnsupportedName(TBasket::EUnsupportedIOBits enum_flag) - - //////////////////////////////////////////////////////////////////////////// - /// \brief Set a specific IO feature. --/// \param[in] enum_bits The specific feature to enable. -+/// \param[in] input_bits The specific feature to enable. - /// - /// Sets a feature in the `TIOFeatures` object; emits an Error message if - /// the IO feature is not supported by this version of ROOT. -@@ -129,7 +129,7 @@ bool TIOFeatures::Set(Experimental::EIOFeatures input_bits) - - //////////////////////////////////////////////////////////////////////////// - /// \brief Set a specific IO feature. --/// \param[in] enum_bits The specific feature to enable. -+/// \param[in] input_bits The specific feature to enable. - /// - /// Sets a feature in the `TIOFeatures` object; emits an Error message if - /// the IO feature is not supported by this version of ROOT. -@@ -221,7 +221,7 @@ void TIOFeatures::Print() const - - //////////////////////////////////////////////////////////////////////////// - /// \brief Test to see if a given feature is set --/// \param[in] enum_bits The specific feature to test. -+/// \param[in] input_bits The specific feature to test. - /// - /// Returns kTRUE if the feature is enables in this object and supported by - /// this version of ROOT. -@@ -232,7 +232,7 @@ bool TIOFeatures::Test(Experimental::EIOFeatures input_bits) const - - //////////////////////////////////////////////////////////////////////////// - /// \brief Test to see if a given feature is set --/// \param[in] enum_bits The specific feature to test. -+/// \param[in] input_bits The specific feature to test. - /// - /// Returns kTRUE if the feature is enables in this object and supported by - /// this version of ROOT. --- -2.26.2 - diff --git a/root-epel7-ppc64le-pyroot.patch b/root-epel7-ppc64le-pyroot.patch deleted file mode 100644 index 4619bf0..0000000 --- a/root-epel7-ppc64le-pyroot.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff -ur root-6.22.04.orig/bindings/pyroot/pythonizations/python/ROOT/__init__.py root-6.22.04/bindings/pyroot/pythonizations/python/ROOT/__init__.py ---- root-6.22.04.orig/bindings/pyroot/pythonizations/python/ROOT/__init__.py 2020-11-13 11:42:09.000000000 +0100 -+++ root-6.22.04/bindings/pyroot/pythonizations/python/ROOT/__init__.py 2020-11-14 15:38:24.462463625 +0100 -@@ -19,6 +19,12 @@ - # Prevent cppyy from filtering ROOT libraries - environ['CPPYY_NO_ROOT_FILTER'] = '1' - -+try: -+ from ctypes import cdll -+ libCore = cdll.LoadLibrary("libCore.so") -+except: -+ print("An exception occurred while loading libCore.so with ctypes") -+ - import cppyy - if not 'ROOTSYS' in environ: - # Revert setting made by cppyy diff --git a/root-fix-a-shadow-warning.patch b/root-fix-a-shadow-warning.patch deleted file mode 100644 index f0daaaf..0000000 --- a/root-fix-a-shadow-warning.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 00bbfddbf5c900923b284ddc540d2458bda15b7b Mon Sep 17 00:00:00 2001 -From: Stephan Hageboeck -Date: Wed, 5 Aug 2020 13:22:46 +0200 -Subject: [PATCH] Fix a shadow warning. - ---- - roofit/roofitmore/src/RooHypatia2.cxx | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/roofit/roofitmore/src/RooHypatia2.cxx b/roofit/roofitmore/src/RooHypatia2.cxx -index 7d550b2753..fe80f414d0 100644 ---- a/roofit/roofitmore/src/RooHypatia2.cxx -+++ b/roofit/roofitmore/src/RooHypatia2.cxx -@@ -119,21 +119,21 @@ - /// \param[in] a2 Start of right tail. - /// \param[in] n2 Shape parameter of right tail (\f$ n2 \ge 0 \f$). With \f$ n2 = 0 \f$, the function is constant. - RooHypatia2::RooHypatia2(const char *name, const char *title, RooAbsReal& x, RooAbsReal& lambda, -- RooAbsReal& zeta, RooAbsReal& beta, RooAbsReal& sigma, RooAbsReal& mu, RooAbsReal& a, -+ RooAbsReal& zeta, RooAbsReal& beta, RooAbsReal& argSigma, RooAbsReal& mu, RooAbsReal& a, - RooAbsReal& n, RooAbsReal& a2, RooAbsReal& n2) : - RooAbsPdf(name, title), - _x("x", "x", this, x), - _lambda("lambda", "Lambda", this, lambda), - _zeta("zeta", "zeta", this, zeta), - _beta("beta", "Asymmetry parameter beta", this, beta), -- _sigma("sigma", "Width parameter sigma", this, sigma), -+ _sigma("sigma", "Width parameter sigma", this, argSigma), - _mu("mu", "Location parameter mu", this, mu), - _a("a", "Left tail location a", this, a), - _n("n", "Left tail parameter n", this, n), - _a2("a2", "Right tail location a2", this, a2), - _n2("n2", "Right tail parameter n2", this, n2) - { -- RooHelpers::checkRangeOfParameters(this, {&sigma}, 0.); -+ RooHelpers::checkRangeOfParameters(this, {&argSigma}, 0.); - RooHelpers::checkRangeOfParameters(this, {&zeta, &n, &n2, &a, &a2}, 0., std::numeric_limits::max(), true); - if (zeta.getVal() == 0. && zeta.isConstant()) { - RooHelpers::checkRangeOfParameters(this, {&lambda}, -std::numeric_limits::max(), 0., false, --- -2.26.2 - diff --git a/root-fix-bad-regex.patch b/root-fix-bad-regex.patch deleted file mode 100644 index e1e667e..0000000 --- a/root-fix-bad-regex.patch +++ /dev/null @@ -1,25 +0,0 @@ -From b7dc989f9a49ad31094331aa272859ff7480f943 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Thu, 9 Jul 2020 21:29:46 +0200 -Subject: [PATCH] Fix bad regex - ---- - proof/proof/src/TProofMgr.cxx | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/proof/proof/src/TProofMgr.cxx b/proof/proof/src/TProofMgr.cxx -index 2a140e4e7a..35c91b77ac 100644 ---- a/proof/proof/src/TProofMgr.cxx -+++ b/proof/proof/src/TProofMgr.cxx -@@ -820,7 +820,7 @@ TFileCollection *TProofMgr::UploadFiles(TList *src, - if (dest && strlen(dest) > 0) { - TString dst(dest), dt; - Ssiz_t from = 0; -- TRegexp re(""); -+ TRegexp re(""); - while (dst.Tokenize(dt, from, "/")) { - if (dt.Contains(re)) { - TParameter *pi = new TParameter(dt, -1); --- -2.26.2 - diff --git a/root-fontconfig.patch b/root-fontconfig.patch index 2a05c55..4e5e607 100644 --- a/root-fontconfig.patch +++ b/root-fontconfig.patch @@ -1,39 +1,60 @@ -diff -ur root-6.22.02.orig/core/base/src/TApplication.cxx root-6.22.02/core/base/src/TApplication.cxx ---- root-6.22.02.orig/core/base/src/TApplication.cxx 2020-08-17 14:41:56.000000000 +0200 -+++ root-6.22.02/core/base/src/TApplication.cxx 2020-08-18 09:50:12.739102596 +0200 -@@ -264,18 +264,11 @@ - LoadGraphicsLibs(); +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 + +--- + core/base/src/TApplication.cxx | 11 +- + graf2d/asimage/CMakeLists.txt | 1 + + graf2d/asimage/src/TASImage.cxx | 91 +++++++- + graf2d/graf/CMakeLists.txt | 1 + + graf2d/graf/inc/TTF.h | 3 +- + graf2d/graf/src/TTF.cxx | 295 +++++++++++++++++--------- + graf2d/postscript/CMakeLists.txt | 1 + + 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, 495 insertions(+), 194 deletions(-) + +diff --git a/core/base/src/TApplication.cxx b/core/base/src/TApplication.cxx +index f0d2124a8f6..41ad4c73020 100644 +--- a/core/base/src/TApplication.cxx ++++ b/core/base/src/TApplication.cxx +@@ -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 -- // mode and Root.UseTTFonts is true and Root.TTFontPath exists. Abort silently -+ // mode and Root.UseTTFonts is true. Abort silently - // if libttf or libGX11TTF are not found in $ROOTSYS/lib or $ROOTSYS/ttf/lib. -- const char *ttpath = gEnv->GetValue("Root.TTFontPath", -- TROOT::GetTTFFontDir()); -- char *ttfont = gSystem->Which(ttpath, "arialbd.ttf", kReadPermission); -- // Check for use of DFSG - fonts -- if (!ttfont) -- ttfont = gSystem->Which(ttpath, "FreeSansBold.ttf", kReadPermission); -- - #if !defined(R__WIN32) - if (!gROOT->IsBatch() && !strcmp(gVirtualX->GetName(), "X11") && -- ttfont && gEnv->GetValue("Root.UseTTFonts", 1)) { -+ gEnv->GetValue("Root.UseTTFonts", 1)) { - if (gClassTable->GetDict("TGX11TTF")) { - // in principle we should not have linked anything against libGX11TTF - // but with ACLiC this can happen, initialize TGX11TTF by hand -@@ -289,7 +282,6 @@ + // Try to load TrueType font renderer. Only try to load if not in batch +- // mode and Root.UseTTFonts is true and Root.TTFontPath exists. Abort silently ++ // mode and Root.UseTTFonts is true. Abort silently + // if libttf or libGX11TTF are not found in $ROOTSYS/lib or $ROOTSYS/ttf/lib. +- const char *ttpath = gEnv->GetValue("Root.TTFontPath", +- TROOT::GetTTFFontDir()); +- char *ttfont = gSystem->Which(ttpath, "arialbd.ttf", kReadPermission); +- // Check for use of DFSG - fonts +- if (!ttfont) +- ttfont = gSystem->Which(ttpath, "FreeSansBold.ttf", kReadPermission); + + #if !defined(R__WIN32) + if (!gROOT->IsBatch() && !strcmp(gVirtualX->GetName(), "X11") && +- ttfont && gEnv->GetValue("Root.UseTTFonts", 1)) { ++ gEnv->GetValue("Root.UseTTFonts", 1)) { + if (gClassTable->GetDict("TGX11TTF")) { + // in principle we should not have linked anything against libGX11TTF + // but with ACLiC this can happen, initialize TGX11TTF by hand +@@ -278,7 +272,6 @@ void TApplication::InitializeGraphics(Bool_t only_web) + } } + #endif +- delete [] ttfont; } - #endif -- delete [] ttfont; - // Create WM dependent application environment - if (fAppImp) -diff -ur root-6.22.02.orig/graf2d/asimage/CMakeLists.txt root-6.22.02/graf2d/asimage/CMakeLists.txt ---- root-6.22.02.orig/graf2d/asimage/CMakeLists.txt 2020-08-17 14:41:56.000000000 +0200 -+++ root-6.22.02/graf2d/asimage/CMakeLists.txt 2020-08-18 09:50:12.761102650 +0200 -@@ -30,6 +30,7 @@ + if (!only_web || !fAppImp) { +diff --git a/graf2d/asimage/CMakeLists.txt b/graf2d/asimage/CMakeLists.txt +index b5ccf983473..8ee57c1fac0 100644 +--- a/graf2d/asimage/CMakeLists.txt ++++ b/graf2d/asimage/CMakeLists.txt +@@ -28,6 +28,7 @@ ROOT_STANDARD_LIBRARY_PACKAGE(ASImage ${FREETYPE_LIBRARIES} ${X11_LIBRARIES} ZLIB::ZLIB @@ -41,10 +62,11 @@ diff -ur root-6.22.02.orig/graf2d/asimage/CMakeLists.txt root-6.22.02/graf2d/asi DEPENDENCIES Core Graf -diff -ur root-6.22.02.orig/graf2d/asimage/src/TASImage.cxx root-6.22.02/graf2d/asimage/src/TASImage.cxx ---- root-6.22.02.orig/graf2d/asimage/src/TASImage.cxx 2020-08-17 14:41:56.000000000 +0200 -+++ root-6.22.02/graf2d/asimage/src/TASImage.cxx 2020-08-18 09:50:12.763102655 +0200 -@@ -111,6 +111,8 @@ +diff --git a/graf2d/asimage/src/TASImage.cxx b/graf2d/asimage/src/TASImage.cxx +index 6ea60a78801..e85d804b7ec 100644 +--- a/graf2d/asimage/src/TASImage.cxx ++++ b/graf2d/asimage/src/TASImage.cxx +@@ -117,6 +117,8 @@ extern "C" { # include } @@ -53,135 +75,101 @@ diff -ur root-6.22.02.orig/graf2d/asimage/src/TASImage.cxx root-6.22.02/graf2d/a // auxiliary functions for general polygon filling #include "TASPolyUtils.c" -@@ -2594,14 +2596,120 @@ - TString fn = font_name; - fn.Strip(); - -- // This is for backward compatibility... -- if (fn.Last('/') == 0) fn = fn(1, fn.Length() - 1); -+ const char *basename = gSystem->BaseName(fn); -+ -+ char *ttfnt = NULL; -+ int ttindex = 0; -+ -+ FcPattern *pat, *match; -+ FcResult result; -+ -+ pat = FcPatternCreate (); -+ -+ if (strcmp(basename, "timesi.ttf") == 0 || -+ strcmp(basename, "FreeSerifItalic.otf") == 0) { -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ } -+ else if (strcmp(basename, "timesbd.ttf") == 0 || -+ strcmp(basename, "FreeSerifBold.otf") == 0) { -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ } -+ else if (strcmp(basename, "timesbi.ttf") == 0 || -+ strcmp(basename, "FreeSerifBoldItalic.otf") == 0) { -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ } -+ else if (strcmp(basename, "arial.ttf") == 0 || -+ strcmp(basename, "FreeSans.otf") == 0) { -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ } -+ else if (strcmp(basename, "ariali.ttf") == 0 || -+ strcmp(basename, "FreeSansOblique.otf") == 0) { -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ } -+ else if (strcmp(basename, "arialbd.ttf") == 0 || -+ strcmp(basename, "FreeSansBold.otf") == 0) { -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ } -+ else if (strcmp(basename, "arialbi.ttf") == 0 || -+ strcmp(basename, "FreeSansBoldOblique.otf") == 0) { -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ } -+ else if (strcmp(basename, "cour.ttf") == 0 || -+ strcmp(basename, "FreeMono.otf") == 0) { -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ } -+ else if (strcmp(basename, "couri.ttf") == 0 || -+ strcmp(basename, "FreeMonoOblique.otf") == 0) { -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ } -+ else if (strcmp(basename, "courbd.ttf") == 0 || -+ strcmp(basename, "FreeMonoBold.otf") == 0) { -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ } -+ else if (strcmp(basename, "courbi.ttf") == 0 || -+ strcmp(basename, "FreeMonoBoldOblique.otf") == 0) { -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ } -+ else if (strcmp(basename, "symbol.ttf") == 0) { -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"symbol"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ } -+ else if (strcmp(basename, "times.ttf") == 0 || -+ strcmp(basename, "FreeSerif.otf") == 0) { -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ } -+ else if (strcmp(basename, "wingding.ttf") == 0) { -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"dingbats"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ } -+ else if (strcmp(basename, "BlackChancery.ttf") == 0) { -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"urwchanceryl"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ } -+ else { -+ Warning("DrawText", "cannot find a font %s", font_name); -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ } -+ -+ FcConfigSubstitute (NULL, pat, FcMatchPattern); -+ FcDefaultSubstitute (pat); -+ match = FcFontMatch (NULL, pat, &result); -+ FcPatternGetString (match, FC_FILE, 0, (FcChar8**)&ttfnt); -+ FcPatternGetInteger (match, FC_INDEX, 0, &ttindex); +@@ -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); - const char *ttpath = gEnv->GetValue("Root.TTFontPath", - TROOT::GetTTFFontDir()); - char *tmpstr = gSystem->Which(ttpath, fn, kReadPermission); - fn = tmpstr; - delete [] tmpstr; -+ fn = ttfnt; ++ const char *basename = gSystem->BaseName(fn); + -+ FcPatternDestroy (match); -+ FcPatternDestroy (pat); ++ int ttindex = 0; ++ ++ FcPattern *pat = nullptr, *match; ++ FcResult result; ++ ++ if (strcmp(basename, "timesi.ttf") == 0 || ++ strcmp(basename, "FreeSerifItalic.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "freeserif:italic"); ++ } ++ else if (strcmp(basename, "timesbd.ttf") == 0 || ++ strcmp(basename, "FreeSerifBold.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "freeserif:bold"); ++ } ++ else if (strcmp(basename, "timesbi.ttf") == 0 || ++ strcmp(basename, "FreeSerifBoldItalic.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "freeserif:bold:italic"); ++ } ++ else if (strcmp(basename, "arial.ttf") == 0 || ++ strcmp(basename, "FreeSans.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "freesans"); ++ } ++ else if (strcmp(basename, "ariali.ttf") == 0 || ++ strcmp(basename, "FreeSansOblique.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "freesans:italic"); ++ } ++ else if (strcmp(basename, "arialbd.ttf") == 0 || ++ strcmp(basename, "FreeSansBold.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "freesans:bold"); ++ } ++ else if (strcmp(basename, "arialbi.ttf") == 0 || ++ strcmp(basename, "FreeSansBoldOblique.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "freesans:bold:italic"); ++ } ++ else if (strcmp(basename, "cour.ttf") == 0 || ++ strcmp(basename, "FreeMono.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "freemono"); ++ } ++ else if (strcmp(basename, "couri.ttf") == 0 || ++ strcmp(basename, "FreeMonoOblique.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "freemono:italic"); ++ } ++ else if (strcmp(basename, "courbd.ttf") == 0 || ++ strcmp(basename, "FreeMonoBold.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "freemono:bold"); ++ } ++ else if (strcmp(basename, "courbi.ttf") == 0 || ++ strcmp(basename, "FreeMonoBoldOblique.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "freemono:bold:italic"); ++ } ++ else if (strcmp(basename, "symbol.ttf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "standardsymbolsps"); ++ } ++ else if (strcmp(basename, "times.ttf") == 0 || ++ strcmp(basename, "FreeSerif.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "freeserif"); ++ } ++ else if (strcmp(basename, "wingding.ttf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "dingbats"); ++ } ++ else if (strcmp(basename, "BlackChancery.ttf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "urwchanceryl"); ++ } ++ else if (gSystem->AccessPathName(fn, kReadPermission) != 0) { ++ // Font name is not a file - usae as pattern ++ pat = FcNameParse ((const FcChar8*) fn.Data()); ++ } ++ ++ if (pat) { ++ FcConfigSubstitute (nullptr, pat, FcMatchPattern); ++ FcDefaultSubstitute (pat); ++ match = FcFontMatch (nullptr, pat, &result); ++ if (match) { ++ char *ttfnt; ++ FcPatternGetString (match, FC_FILE, 0, (FcChar8**) &ttfnt); ++ fn = ttfnt; ++ FcPatternGetInteger (match, FC_INDEX, 0, &ttindex); ++ FcPatternDestroy (match); ++ } ++ FcPatternDestroy (pat); ++ } 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; -@@ -2625,14 +2733,11 @@ +@@ -2648,7 +2727,7 @@ void TASImage::DrawText(Int_t x, Int_t y, const char *text, Int_t size, return; } @@ -189,20 +177,12 @@ diff -ur root-6.22.02.orig/graf2d/asimage/src/TASImage.cxx root-6.22.02/graf2d/a + ASFont *font = get_asfont(gFontManager, fn.Data(), ttindex, size, ASF_GuessWho); if (!font) { -- font = get_asfont(gFontManager, "fixed", 0, size, ASF_GuessWho); -- if (!font) { -- Warning("DrawText", "cannot find a font %s", font_name); -- return; -- } -+ Warning("DrawText", "cannot find a font %s", font_name); -+ return; - } - - get_text_size(text, font, (ASText3DType)type, &width, &height); -diff -ur root-6.22.02.orig/graf2d/graf/CMakeLists.txt root-6.22.02/graf2d/graf/CMakeLists.txt ---- root-6.22.02.orig/graf2d/graf/CMakeLists.txt 2020-08-17 14:41:56.000000000 +0200 -+++ root-6.22.02/graf2d/graf/CMakeLists.txt 2020-08-18 09:50:12.763102655 +0200 -@@ -91,6 +91,7 @@ + font = get_asfont(gFontManager, "fixed", 0, size, ASF_GuessWho); +diff --git a/graf2d/graf/CMakeLists.txt b/graf2d/graf/CMakeLists.txt +index d7d1b77c21a..c4ebb994a4a 100644 +--- a/graf2d/graf/CMakeLists.txt ++++ b/graf2d/graf/CMakeLists.txt +@@ -91,6 +91,7 @@ ROOT_STANDARD_LIBRARY_PACKAGE(Graf ${FREETYPE_LIBRARIES} ZLIB::ZLIB mathtext @@ -210,24 +190,27 @@ diff -ur root-6.22.02.orig/graf2d/graf/CMakeLists.txt root-6.22.02/graf2d/graf/C DEPENDENCIES Hist Matrix -diff -ur root-6.22.02.orig/graf2d/graf/inc/TTF.h root-6.22.02/graf2d/graf/inc/TTF.h ---- root-6.22.02.orig/graf2d/graf/inc/TTF.h 2020-08-17 14:41:56.000000000 +0200 -+++ root-6.22.02/graf2d/graf/inc/TTF.h 2020-08-18 09:50:12.763102655 +0200 -@@ -76,9 +76,8 @@ +diff --git a/graf2d/graf/inc/TTF.h b/graf2d/graf/inc/TTF.h +index 864ce06b4f0..050796d1ded 100644 +--- a/graf2d/graf/inc/TTF.h ++++ b/graf2d/graf/inc/TTF.h +@@ -76,9 +76,10 @@ protected: static FT_BBox fgCBox; ///< string control box static FT_CharMap fgCharMap[kTTMaxFonts]; ///< font character map static Int_t fgCurFontIdx; ///< current font index - static Int_t fgSymbItaFontIdx; ///< Symbol italic font index static Int_t fgFontCount; ///< number of fonts loaded -- static char *fgFontName[kTTMaxFonts]; ///< font name -+ static Int_t fgFontID[kTTMaxFonts]; ///< font ID + static char *fgFontName[kTTMaxFonts]; ///< font name ++ static Int_t fgFontIdx[kTTMaxFonts]; ///< font index in font file ++ static Int_t fgFontIta[kTTMaxFonts]; ///< font slanted using transform static FT_Face fgFace[kTTMaxFonts]; ///< font face static TTF::TTGlyph fgGlyphs[kMaxGlyphs]; ///< glyphs static Bool_t fgHinting; ///< use hinting (true by default) -diff -ur root-6.22.02.orig/graf2d/graf/src/TTF.cxx root-6.22.02/graf2d/graf/src/TTF.cxx ---- root-6.22.02.orig/graf2d/graf/src/TTF.cxx 2020-08-17 14:41:56.000000000 +0200 -+++ root-6.22.02/graf2d/graf/src/TTF.cxx 2020-08-18 09:54:27.734727819 +0200 -@@ -25,6 +25,8 @@ +diff --git a/graf2d/graf/src/TTF.cxx b/graf2d/graf/src/TTF.cxx +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. #include "TMath.h" #include "TError.h" @@ -236,201 +219,184 @@ diff -ur root-6.22.02.orig/graf2d/graf/src/TTF.cxx root-6.22.02/graf2d/graf/src/ // to scale fonts to the same size as the old TT version const Float_t kScale = 0.93376068; -@@ -38,10 +40,9 @@ +@@ -38,10 +40,11 @@ Int_t TTF::fgTBlankW = 0; Int_t TTF::fgWidth = 0; Int_t TTF::fgAscent = 0; Int_t TTF::fgCurFontIdx = -1; -Int_t TTF::fgSymbItaFontIdx = -1; Int_t TTF::fgFontCount = 0; Int_t TTF::fgNumGlyphs = 0; --char *TTF::fgFontName[kTTMaxFonts]; -+Int_t TTF::fgFontID[kTTMaxFonts]; + char *TTF::fgFontName[kTTMaxFonts]; ++Int_t TTF::fgFontIdx[kTTMaxFonts]; ++Int_t TTF::fgFontIta[kTTMaxFonts]; FT_Matrix *TTF::fgRotMatrix = nullptr; FT_Library TTF::fgLibrary; FT_BBox TTF::fgCBox; -@@ -72,6 +73,11 @@ +@@ -71,6 +74,11 @@ void TTF::Init() return; } + // Add root's font directory + const char *ttpath = gEnv->GetValue("Root.TTFontPath", + TROOT::GetTTFFontDir()); -+ FcConfigAppFontAddDir (NULL, (const FcChar8*)ttpath); ++ FcConfigAppFontAddDir (nullptr, (const FcChar8*)ttpath); + // load default font (arialbd) SetTextFont(62); } -@@ -84,7 +90,6 @@ - if (!fgInit) return; - - for (int i = 0; i < fgFontCount; i++) { -- delete [] fgFontName[i]; - FT_Done_Face(fgFace[i]); - } - if (fgRotMatrix) delete fgRotMatrix; -@@ -109,12 +114,19 @@ +@@ -108,12 +116,15 @@ Short_t TTF::CharToUnicode(UInt_t code) charmap = fgFace[fgCurFontIdx]->charmaps[i]; platform = charmap->platform_id; encoding = charmap->encoding_id; - if ((platform == 3 && encoding == 1) || + if ((platform == 3 && encoding == 1 && -+ (fgFontID[fgCurFontIdx] != 12 && -+ fgFontID[fgCurFontIdx] != 14 && -+ fgFontID[fgCurFontIdx] != 15)) || ++ (fgFontIta[fgCurFontIdx] & 2) == 0) || (platform == 0 && encoding == 0) || + (platform == 7 && encoding == 2 && -+ (fgFontID[fgCurFontIdx] == 12 || -+ fgFontID[fgCurFontIdx] == 14 || -+ fgFontID[fgCurFontIdx] == 15)) || ++ (fgFontIta[fgCurFontIdx] & 2) != 0) || ++ (platform == 0 && encoding == 3 && ++ (fgFontIta[fgCurFontIdx] & 2) != 0) || (platform == 1 && encoding == 0 && - !strcmp(fgFontName[fgCurFontIdx], "wingding.ttf")) || - (platform == 1 && encoding == 0 && - !strcmp(fgFontName[fgCurFontIdx], "symbol.ttf"))) -+ (fgFontID[fgCurFontIdx] == 12 || -+ fgFontID[fgCurFontIdx] == 14 || -+ fgFontID[fgCurFontIdx] == 15))) ++ (fgFontIta[fgCurFontIdx] & 2) != 0)) { fgCharMap[fgCurFontIdx] = charmap; if (FT_Set_Charmap(fgFace[fgCurFontIdx], fgCharMap[fgCurFontIdx])) -@@ -381,27 +393,147 @@ - - if (!fontname || !fontname[0]) { - Warning("TTF::SetTextFont", -- "no font name specified, using default font %s", fgFontName[0]); -+ "no font name specified, using default font"); - fgCurFontIdx = 0; - return 0; +@@ -392,21 +403,145 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic) } const char *basename = gSystem->BaseName(fontname); ++ char *ttfont = nullptr; ++ int ttindex = 0; ++ ++ FcPattern *pat = nullptr, *match; ++ FcResult result; ++ + if (strcmp(basename, "timesi.ttf") == 0 || + strcmp(basename, "FreeSerifItalic.otf") == 0) { -+ SetTextFont(12); ++ pat = FcNameParse ((const FcChar8*) "freeserif:italic"); + } + else if (strcmp(basename, "timesbd.ttf") == 0 || + strcmp(basename, "FreeSerifBold.otf") == 0) { -+ SetTextFont(22); ++ pat = FcNameParse ((const FcChar8*) "freeserif:bold"); + } + else if (strcmp(basename, "timesbi.ttf") == 0 || + strcmp(basename, "FreeSerifBoldItalic.otf") == 0) { -+ SetTextFont(32); ++ pat = FcNameParse ((const FcChar8*) "freeserif:bold:italic"); + } + else if (strcmp(basename, "arial.ttf") == 0 || + strcmp(basename, "FreeSans.otf") == 0) { -+ SetTextFont(42); ++ pat = FcNameParse ((const FcChar8*) "freesans"); + } + else if (strcmp(basename, "ariali.ttf") == 0 || + strcmp(basename, "FreeSansOblique.otf") == 0) { -+ SetTextFont(52); ++ pat = FcNameParse ((const FcChar8*) "freesans:italic"); + } + else if (strcmp(basename, "arialbd.ttf") == 0 || + strcmp(basename, "FreeSansBold.otf") == 0) { -+ SetTextFont(62); ++ pat = FcNameParse ((const FcChar8*) "freesans:bold"); + } + else if (strcmp(basename, "arialbi.ttf") == 0 || + strcmp(basename, "FreeSansBoldOblique.otf") == 0) { -+ SetTextFont(72); ++ pat = FcNameParse ((const FcChar8*) "freesans:bold:italic"); + } + else if (strcmp(basename, "cour.ttf") == 0 || + strcmp(basename, "FreeMono.otf") == 0) { -+ SetTextFont(82); ++ pat = FcNameParse ((const FcChar8*) "freemono"); + } + else if (strcmp(basename, "couri.ttf") == 0 || + strcmp(basename, "FreeMonoOblique.otf") == 0) { -+ SetTextFont(92); ++ pat = FcNameParse ((const FcChar8*) "freemono:italic"); + } + else if (strcmp(basename, "courbd.ttf") == 0 || + strcmp(basename, "FreeMonoBold.otf") == 0) { -+ SetTextFont(102); ++ pat = FcNameParse ((const FcChar8*) "freemono:bold"); + } + else if (strcmp(basename, "courbi.ttf") == 0 || + strcmp(basename, "FreeMonoBoldOblique.otf") == 0) { -+ SetTextFont(112); ++ pat = FcNameParse ((const FcChar8*) "freemono:bold:italic"); + } + else if (strcmp(basename, "symbol.ttf") == 0) { -+ if (italic) -+ SetTextFont(152); -+ else -+ SetTextFont(122); ++ pat = FcNameParse ((const FcChar8*) "standardsymbolsps"); ++ italic &= 2; + } + else if (strcmp(basename, "times.ttf") == 0 || + strcmp(basename, "FreeSerif.otf") == 0) { -+ SetTextFont(132); ++ pat = FcNameParse ((const FcChar8*) "freeserif"); + } + else if (strcmp(basename, "wingding.ttf") == 0) { -+ SetTextFont(142); ++ pat = FcNameParse ((const FcChar8*) "dingbats"); ++ italic &= 2; + } + else if (strcmp(basename, "STIXGeneral.otf") == 0) { -+ SetTextFont(162); ++ pat = FcNameParse ((const FcChar8*) "stixgeneral"); + } + else if (strcmp(basename, "STIXGeneralItalic.otf") == 0) { -+ SetTextFont(172); ++ pat = FcNameParse ((const FcChar8*) "stixgeneral:italic"); + } + else if (strcmp(basename, "STIXGeneralBol.otf") == 0) { -+ SetTextFont(182); ++ pat = FcNameParse ((const FcChar8*) "stixgeneral:bold"); + } + else if (strcmp(basename, "STIXGeneralBolIta.otf") == 0) { -+ SetTextFont(192); ++ pat = FcNameParse ((const FcChar8*) "stixgeneral:bold:italic"); + } + else if (strcmp(basename, "STIXSiz1Sym.otf") == 0) { -+ SetTextFont(202); ++ pat = FcNameParse ((const FcChar8*) "stixsize1"); + } + else if (strcmp(basename, "STIXSiz1SymBol.otf") == 0) { -+ SetTextFont(212); ++ pat = FcNameParse ((const FcChar8*) "stixsize1:bold"); + } + else if (strcmp(basename, "STIXSiz2Sym.otf") == 0) { -+ SetTextFont(222); ++ pat = FcNameParse ((const FcChar8*) "stixsize2"); + } + else if (strcmp(basename, "STIXSiz2SymBol.otf") == 0) { -+ SetTextFont(232); ++ pat = FcNameParse ((const FcChar8*) "stixsize2:bold"); + } + else if (strcmp(basename, "STIXSiz3Sym.otf") == 0) { -+ SetTextFont(242); ++ pat = FcNameParse ((const FcChar8*) "stixsize3"); + } + else if (strcmp(basename, "STIXSiz3SymBol.otf") == 0) { -+ SetTextFont(252); ++ pat = FcNameParse ((const FcChar8*) "stixsize3:bold"); + } + else if (strcmp(basename, "STIXSiz4Sym.otf") == 0) { -+ SetTextFont(262); ++ pat = FcNameParse ((const FcChar8*) "stixsize4"); + } + else if (strcmp(basename, "STIXSiz4SymBol.otf") == 0) { -+ SetTextFont(272); ++ pat = FcNameParse ((const FcChar8*) "stixsize4:bold"); + } + else if (strcmp(basename, "STIXSiz5Sym.otf") == 0) { -+ SetTextFont(282); ++ pat = FcNameParse ((const FcChar8*) "stixsize5"); + } + else if (strcmp(basename, "DroidSansFallback.ttf") == 0) { -+ SetTextFont(292); ++ pat = FcNameParse ((const FcChar8*) "droidsansfallback:charset=4e00 0410"); + } -+ else { -+ Error("TTF::SetTextFont", "font %s not known to ROOT", basename); -+ if (fgFontCount) { -+ Warning("TTF::SetTextFont", "using default font"); -+ fgCurFontIdx = 0; // use font 0 (default font, set in ctor) -+ return 0; -+ } else { -+ return 1; ++ else if (strcmp(basename, "BlackChancery.ttf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "urwchanceryl"); ++ } ++ else if (gSystem->AccessPathName(fontname, kReadPermission) != 0) { ++ // Font name is not a file - usae as pattern ++ pat = FcNameParse ((const FcChar8*) fontname); ++ } ++ ++ if (pat) { ++ FcConfigSubstitute (nullptr, pat, FcMatchPattern); ++ FcDefaultSubstitute (pat); ++ match = FcFontMatch (nullptr, pat, &result); ++ if (match) { ++ const char *ttfnt; ++ FcPatternGetString (match, FC_FILE, 0, (FcChar8**) &ttfnt); ++ ttfont = StrDup(ttfnt); ++ FcPatternGetInteger (match, FC_INDEX, 0, &ttindex); ++ FcPatternDestroy (match); + } ++ FcPatternDestroy (pat); + } + -+ return 0; -+} ++ if (!ttfont) ttfont = StrDup(fontname); + -+//______________________________________________________________________________ -+void TTF::SetTextFont(Font_t fontnumber) -+{ -+ int fontid = fontnumber / 10; -+ if (fontid < 0 || fontid > 31) fontid = 0; -+ -+ Int_t italic = 0; -+ if (fontid==15) italic = 1; -+ -+ if (!fgInit) Init(); -+ -+ if (fontid == 0) { -+ fgCurFontIdx = 0; // use font 0 (default font, set in ctor) -+ return; -+ } ++ basename = gSystem->BaseName(ttfont); + // check if font is in cache int i; @@ -447,32 +413,30 @@ diff -ur root-6.22.02.orig/graf2d/graf/src/TTF.cxx root-6.22.02/graf2d/graf/src/ - return 0; - } - } -+ if (fgFontID[i] == fontid) { ++ if (!strcmp(fgFontName[i], basename) && ++ (fgFontIdx[i] == ttindex) && ++ (fgFontIta[i] == italic)) { + fgCurFontIdx = i; -+ return; ++ delete [] ttfont; ++ return 0; } } -@@ -409,151 +541,215 @@ - if (fgFontCount >= kTTMaxFonts) { - Error("TTF::SetTextFont", "too many fonts opened (increase kTTMaxFont = %d)", +@@ -416,28 +551,13 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic) kTTMaxFonts); -- Warning("TTF::SetTextFont", "using default font %s", fgFontName[0]); -+ Warning("TTF::SetTextFont", "using default font"); + Warning("TTF::SetTextFont", "using default font %s", fgFontName[0]); fgCurFontIdx = 0; // use font 0 (default font, set in ctor) -- return 0; -+ return; ++ delete [] ttfont; + return 0; } - // try to load font (font must be in Root.TTFontPath resource) - const char *ttpath = gEnv->GetValue("Root.TTFontPath", - TROOT::GetTTFFontDir()); - char *ttfont = gSystem->Which(ttpath, fontname, kReadPermission); -+ char *ttfont = NULL; -+ int ttindex = 0; - +- - 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) @@ -480,245 +444,50 @@ diff -ur root-6.22.02.orig/graf2d/graf/src/TTF.cxx root-6.22.02/graf2d/graf/src/ - } else { - return 1; - } -+ FcPattern *pat, *match; -+ FcCharSet *set = NULL; -+ FcResult result; -+ -+ pat = FcPatternCreate (); -+ -+ switch (fontid) { -+ case 1: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 2: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 3: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 4: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 5: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 6: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 7: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 8: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 9: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 10: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 11: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 12: -+ case 15: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"symbol"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 13: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 14: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"dingbats"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 16: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixgeneral"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 17: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixgeneral"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 18: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixgeneral"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 19: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixgeneral"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 20: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize1"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 21: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize1"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 22: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize2"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 23: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize2"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 24: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize3"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 25: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize3"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 26: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize4"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 27: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize4"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 28: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize5"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 29: -+ case 30: -+ case 31: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"droidsansfallback"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ set = FcCharSetCreate (); -+ FcCharSetAddChar (set, 0x0410); // Cyrillic -+ FcCharSetAddChar (set, 0x4e00); // CJK -+ FcPatternAddCharSet (pat, FC_CHARSET, set); -+ break; -+ default: -+ Error("TTF::SetTextFont", "font %i not known to ROOT", fontid); -+ FcPatternDestroy (pat); -+ Warning("TTF::SetTextFont", "using default font"); -+ fgCurFontIdx = 0; // use font 0 (default font, set in ctor) -+ return; -+ break; - } - -+ FcConfigSubstitute (NULL, pat, FcMatchPattern); -+ FcDefaultSubstitute (pat); -+ match = FcFontMatch (NULL, pat, &result); -+ char *ttfnt; -+ FcPatternGetString (match, FC_FILE, 0, (FcChar8**)&ttfnt); -+ ttfont = StrDup (ttfnt); -+ FcPatternGetInteger (match, FC_INDEX, 0, &ttindex); -+ FcPatternDestroy (match); -+ FcPatternDestroy (pat); -+ if (set) FcCharSetDestroy (set); -+ - FT_Face tface = 0; +- } +- + FT_Face tface = (FT_Face) 0; - if (FT_New_Face(fgLibrary, ttfont, 0, &tface)) { + if (FT_New_Face(fgLibrary, ttfont, ttindex, &tface)) { Error("TTF::SetTextFont", "error loading font %s", ttfont); delete [] ttfont; if (tface) FT_Done_Face(tface); -- if (fgFontCount) { -- Warning("TTF::SetTextFont", "using default font %s", fgFontName[0]); -- fgCurFontIdx = 0; -- return 0; -- } else { -- return 1; -- } -+ Warning("TTF::SetTextFont", "using default font"); -+ fgCurFontIdx = 0; -+ return; +@@ -450,24 +570,25 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic) + } } - delete [] ttfont; - -- fgFontName[fgFontCount] = StrDup(basename); -+ fgFontID[fgFontCount] = fontid; +- delete [] ttfont; +- + fgFontName[fgFontCount] = StrDup(basename); ++ fgFontIdx[fgFontCount] = ttindex; ++ fgFontIta[fgFontCount] = italic; fgCurFontIdx = fgFontCount; fgFace[fgCurFontIdx] = tface; - fgCharMap[fgCurFontIdx] = 0; + fgCharMap[fgCurFontIdx] = (FT_CharMap) 0; fgFontCount++; - if (italic) { +- if (italic) { - fgSymbItaFontIdx = fgCurFontIdx; ++ if ((italic & 1) != 0) { FT_Matrix slantMat; slantMat.xx = (1 << 16); slantMat.xy = ((1 << 16) >> 2); slantMat.yx = 0; slantMat.yy = (1 << 16); - FT_Set_Transform( fgFace[fgSymbItaFontIdx], &slantMat, NULL ); -- } -- -- return 0; --} -- --//////////////////////////////////////////////////////////////////////////////// --/// Set specified font. --/// List of the currently supported fonts (screen and PostScript) --/// --/// | Font ID | X11 | TTF | --/// |---------|---------------------------|------------------| --/// | 1 | times-medium-i-normal | timesi.ttf | --/// | 2 | times-bold-r-normal | timesbd.ttf | --/// | 3 | times-bold-i-normal | timesbi.ttf | --/// | 4 | helvetica-medium-r-normal | arial.ttf | --/// | 5 | helvetica-medium-o-normal | ariali.ttf | --/// | 6 | helvetica-bold-r-normal | arialbd.ttf | --/// | 7 | helvetica-bold-o-normal | arialbi.ttf | --/// | 8 | courier-medium-r-normal | cour.ttf | --/// | 9 | courier-medium-o-normal | couri.ttf | --/// | 10 | courier-bold-r-normal | courbd.ttf | --/// | 11 | courier-bold-o-normal | courbi.ttf | --/// | 12 | symbol-medium-r-normal | symbol.ttf | --/// | 13 | times-medium-r-normal | times.ttf | --/// | 14 | | wingding.ttf | --/// | 15 | symbol oblique is emulated from symbol.ttf | | -- --void TTF::SetTextFont(Font_t fontnumber) --{ ++ 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) + { - // Added by cholm for use of DFSG - fonts - based on Kevins fix. - // Table of Microsoft and (for non-MSFT operating systems) backup - // FreeFont TTF fonts. @@ -727,10 +496,10 @@ diff -ur root-6.22.02.orig/graf2d/graf/src/TTF.cxx root-6.22.02/graf2d/graf/src/ - { "Root.TTFont.1", "FreeSerifItalic.otf" }, - { "Root.TTFont.2", "FreeSerifBold.otf" }, - { "Root.TTFont.3", "FreeSerifBoldItalic.otf" }, -- { "Root.TTFont.4", "FreeSans.otf" }, -- { "Root.TTFont.5", "FreeSansOblique.otf" }, -- { "Root.TTFont.6", "FreeSansBold.otf" }, -- { "Root.TTFont.7", "FreeSansBoldOblique.otf" }, +- { "Root.TTFont.4", "texgyreheros-regular.otf" }, +- { "Root.TTFont.5", "texgyreheros-italic.otf" }, +- { "Root.TTFont.6", "texgyreheros-bold.otf" }, +- { "Root.TTFont.7", "texgyreheros-bolditalic.otf" }, - { "Root.TTFont.8", "FreeMono.otf" }, - { "Root.TTFont.9", "FreeMonoOblique.otf" }, - { "Root.TTFont.10", "FreeMonoBold.otf" }, @@ -755,14 +524,47 @@ diff -ur root-6.22.02.orig/graf2d/graf/src/TTF.cxx root-6.22.02/graf2d/graf/src/ - { "Root.TTFont.ME", "DroidSansFallback.ttf" }, - { "Root.TTFont.CJKMing", "DroidSansFallback.ttf" }, - { "Root.TTFont.CJKGothic", "DroidSansFallback.ttf" } -- }; -- ++ static const char *fonttable[] = { ++ "freesans:bold", ++ "freeserif:italic", ++ "freeserif:bold", ++ "freeserif:bold:italic", ++ "freesans", ++ "freesans:italic", ++ "freesans:bold", ++ "freesans:bold:italic", ++ "freemono", ++ "freemono:italic", ++ "freemono:bold", ++ "freemono:bold:italic", ++ "standardsymbolsps", ++ "freeserif", ++ "dingbats", ++ "standardsymbolsps", ++ "stixgeneral", ++ "stixgeneral:italic", ++ "stixgeneral:bold", ++ "stixgeneral:bold:italic", ++ "stixsize1", ++ "stixsize1:bold", ++ "stixsize2", ++ "stixsize2:bold", ++ "stixsize3", ++ "stixsize3:bold", ++ "stixsize4", ++ "stixsize4:bold", ++ "stixsize5", ++ "droidsansfallback:charset=4e00 0410", ++ "droidsansfallback:charset=4e00 0410", ++ "droidsansfallback:charset=4e00 0410" + }; + - static int fontset = -1; - int thisset = fontset; - -- int fontid = fontnumber / 10; -- if (fontid < 0 || fontid > 31) fontid = 0; -- + int fontid = fontnumber / 10; + if (fontid < 0 || fontid > 31) fontid = 0; + - if (thisset == -1) { - // try to load font (font must be in Root.TTFontPath resource) - // to see which fontset we have available @@ -776,21 +578,26 @@ diff -ur root-6.22.02.orig/graf2d/graf/src/TTF.cxx root-6.22.02/graf2d/graf/src/ - // try backup free font - thisset = 1; - } -+ FT_Set_Transform( fgFace[fgCurFontIdx], &slantMat, NULL ); - } -- Int_t italic = 0; +- } + Int_t italic = 0; - if (fontid==15) italic = 1; - int ret = SetTextFont(gEnv->GetValue(fonttable[fontid][thisset], fonttable[fontid][1]), italic); - // Do not define font set is we're loading the symbol.ttf - it's - // the same in both cases. - if (ret == 0 && fontid != 12) fontset = thisset; ++ if (fontid==12) italic = 2; ++ if (fontid==14) italic = 2; ++ if (fontid==15) italic = 3; ++ ++ SetTextFont(fonttable[fontid], italic); } //////////////////////////////////////////////////////////////////////////////// -diff -ur root-6.22.02.orig/graf2d/postscript/CMakeLists.txt root-6.22.02/graf2d/postscript/CMakeLists.txt ---- root-6.22.02.orig/graf2d/postscript/CMakeLists.txt 2020-08-17 14:41:56.000000000 +0200 -+++ root-6.22.02/graf2d/postscript/CMakeLists.txt 2020-08-18 09:50:12.764102658 +0200 -@@ -27,6 +27,7 @@ +diff --git a/graf2d/postscript/CMakeLists.txt b/graf2d/postscript/CMakeLists.txt +index eb091bbb396..a05023a3f41 100644 +--- a/graf2d/postscript/CMakeLists.txt ++++ b/graf2d/postscript/CMakeLists.txt +@@ -27,6 +27,7 @@ ROOT_STANDARD_LIBRARY_PACKAGE(Postscript LIBRARIES ZLIB::ZLIB mathtext @@ -798,18 +605,19 @@ diff -ur root-6.22.02.orig/graf2d/postscript/CMakeLists.txt root-6.22.02/graf2d/ DEPENDENCIES Graf ) -diff -ur root-6.22.02.orig/graf2d/postscript/src/TPostScript.cxx root-6.22.02/graf2d/postscript/src/TPostScript.cxx ---- root-6.22.02.orig/graf2d/postscript/src/TPostScript.cxx 2020-08-17 14:41:56.000000000 +0200 -+++ root-6.22.02/graf2d/postscript/src/TPostScript.cxx 2020-08-18 09:50:12.765102660 +0200 -@@ -233,6 +233,7 @@ - #include - #include - #include +diff --git a/graf2d/postscript/src/TPostScript.cxx b/graf2d/postscript/src/TPostScript.cxx +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)`. + #include + #include + #include +#include - #include "Riostream.h" - #include "Byteswap.h" -@@ -1583,56 +1584,179 @@ + #include "strlcpy.h" + #include "snprintf.h" +@@ -1584,56 +1585,60 @@ Bool_t TPostScript::FontEmbedType42(const char *filename) void TPostScript::FontEmbed(void) { @@ -846,8 +654,41 @@ diff -ur root-6.22.02.orig/graf2d/postscript/src/TPostScript.cxx root-6.22.02/gr - { "Root.TTFont.ME", "DroidSansFallback.ttf" }, - { "Root.TTFont.CJKMing", "DroidSansFallback.ttf" }, - { "Root.TTFont.CJKCothic", "DroidSansFallback.ttf" } -- }; -- ++ static const char *fonttable[] = { ++ "freesans:bold", ++ "freeserif:italic", ++ "freeserif:bold", ++ "freeserif:bold:italic", ++ "freesans", ++ "freesans:italic", ++ "freesans:bold", ++ "freesans:bold:italic", ++ "freemono", ++ "freemono:italic", ++ "freemono:bold", ++ "freemono:bold:italic", ++ "standardsymbolsps", ++ "freeserif", ++ "dingbats", ++ "standardsymbolsps", ++ "stixgeneral", ++ "stixgeneral:italic", ++ "stixgeneral:bold", ++ "stixgeneral:bold:italic", ++ "stixsize1", ++ "stixsize1:bold", ++ "stixsize2", ++ "stixsize2:bold", ++ "stixsize3", ++ "stixsize3:bold", ++ "stixsize4", ++ "stixsize4:bold", ++ "stixsize5", ++ "droidsansfallback:charset=4e00 0410", ++ "droidsansfallback:charset=4e00 0410", ++ "droidsansfallback:charset=4e00 0410" + }; + PrintStr("%%IncludeResource: ProcSet (FontSetInit)@"); - // try to load font (font must be in Root.TTFontPath resource) @@ -859,182 +700,28 @@ diff -ur root-6.22.02.orig/graf2d/postscript/src/TPostScript.cxx root-6.22.02/gr - const char *filename = gEnv->GetValue( - fonttable[fontid][0], fonttable[fontid][1]); - char *ttfont = gSystem->Which(ttpath, filename, kReadPermission); -+ -+ char *ttfont = NULL; ++ char *ttfont = nullptr; + + FcPattern *pat, *match; -+ FcCharSet *set = NULL; + FcResult result; + -+ pat = FcPatternCreate (); ++ pat = FcNameParse ((const FcChar8*) fonttable[fontid]); + -+ switch (fontid) { -+ case 1: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 2: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 3: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 4: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 5: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 6: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 7: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 8: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 9: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 10: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 11: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 12: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"symbol"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 13: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 14: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"dingbats"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 16: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixgeneral"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 17: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixgeneral"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 18: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixgeneral"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 19: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixgeneral"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 20: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize1"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 21: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize1"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 22: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize2"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 23: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize2"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 24: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize3"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 25: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize3"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 26: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize4"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 27: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize4"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 28: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize5"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 29: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"droidsansfallback"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ set = FcCharSetCreate (); -+ FcCharSetAddChar (set, 0x0410); // Cyrillic -+ FcCharSetAddChar (set, 0x4e00); // CJK -+ FcPatternAddCharSet (pat, FC_CHARSET, set); -+ break; -+ } -+ -+ FcConfigSubstitute (NULL, pat, FcMatchPattern); ++ FcConfigSubstitute (nullptr, pat, FcMatchPattern); + FcDefaultSubstitute (pat); -+ match = FcFontMatch (NULL, pat, &result); -+ char *ttfnt; -+ FcPatternGetString (match, FC_FILE, 0, (FcChar8**)&ttfnt); -+ ttfont = StrDup(ttfnt); -+ FcPatternDestroy (match); -+ FcPatternDestroy (pat); -+ if (set) FcCharSetDestroy (set); ++ match = FcFontMatch (nullptr, pat, &result); ++ FcPatternGetString (match, FC_FILE, 0, (FcChar8**) &ttfont); + if (!ttfont) { - Error("TPostScript::FontEmbed", - "font %d (filename `%s') not found in path", - fontid, filename); -+ Error("TPostScript::FontEmbed", "font %d not found in path", ++ Error("TPostScript::FontEmbed", "font %d not found", + fontid); } else { if (FontEmbedType2(ttfont)) { // nothing -@@ -1641,9 +1765,8 @@ +@@ -1642,12 +1647,13 @@ void TPostScript::FontEmbed(void) } else if(FontEmbedType42(ttfont)) { // nothing } else { @@ -1044,9 +731,15 @@ diff -ur root-6.22.02.orig/graf2d/postscript/src/TPostScript.cxx root-6.22.02/gr + Error("TPostScript::FontEmbed", "failed to embed font %d)", + fontid); } - delete [] ttfont; +- delete [] ttfont; } -@@ -2835,10 +2958,10 @@ ++ ++ FcPatternDestroy (match); ++ FcPatternDestroy (pat); + } + } + PrintStr("%%IncludeResource: font Times-Roman@"); +@@ -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" }, @@ -1060,10 +753,11 @@ diff -ur root-6.22.02.orig/graf2d/postscript/src/TPostScript.cxx root-6.22.02/gr { "Root.PSFont.STIXGen", "/STIXGeneral" }, { "Root.PSFont.STIXGenIt", "/STIXGeneral-Italic" }, { "Root.PSFont.STIXGenBd", "/STIXGeneral-Bold" }, -diff -ur root-6.22.02.orig/graf3d/gl/CMakeLists.txt root-6.22.02/graf3d/gl/CMakeLists.txt ---- root-6.22.02.orig/graf3d/gl/CMakeLists.txt 2020-08-17 14:41:56.000000000 +0200 -+++ root-6.22.02/graf3d/gl/CMakeLists.txt 2020-08-18 09:50:12.834102829 +0200 -@@ -208,6 +208,7 @@ +diff --git a/graf3d/gl/CMakeLists.txt b/graf3d/gl/CMakeLists.txt +index e759473ca0f..c453397fc52 100644 +--- a/graf3d/gl/CMakeLists.txt ++++ b/graf3d/gl/CMakeLists.txt +@@ -211,6 +211,7 @@ ROOT_STANDARD_LIBRARY_PACKAGE(RGL ${GL2PS_LIBRARIES} ${X11_LIBRARIES} RGlew @@ -1071,10 +765,11 @@ diff -ur root-6.22.02.orig/graf3d/gl/CMakeLists.txt root-6.22.02/graf3d/gl/CMake DEPENDENCIES Hist Gui -diff -ur root-6.22.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.22.02/graf3d/gl/src/TGLFontManager.cxx ---- root-6.22.02.orig/graf3d/gl/src/TGLFontManager.cxx 2020-08-17 14:41:56.000000000 +0200 -+++ root-6.22.02/graf3d/gl/src/TGLFontManager.cxx 2020-08-18 09:50:12.854102878 +0200 -@@ -37,6 +37,7 @@ +diff --git a/graf3d/gl/src/TGLFontManager.cxx b/graf3d/gl/src/TGLFontManager.cxx +index 58ea1188d59..647642de615 100644 +--- a/graf3d/gl/src/TGLFontManager.cxx ++++ b/graf3d/gl/src/TGLFontManager.cxx +@@ -36,6 +36,7 @@ # include "FTGLBitmapFont.h" #endif @@ -1082,16 +777,7 @@ diff -ur root-6.22.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.22.02/graf3d/ /** \class TGLFont \ingroup opengl -@@ -420,7 +421,7 @@ - ClassImp(TGLFontManager); - - TObjArray TGLFontManager::fgFontFileArray; --Int_t TGLFontManager::fgExtendedFontStart; -+Int_t TGLFontManager::fgExtendedFontStart = 0; - TGLFontManager::FontSizeVec_t TGLFontManager::fgFontSizeArray; - Bool_t TGLFontManager::fgStaticInitDone = kFALSE; - -@@ -451,17 +452,175 @@ +@@ -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()) { @@ -1104,235 +790,128 @@ diff -ur root-6.22.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.22.02/graf3d/ - ((TObjString*)fgFontFileArray[fileID])->String()); - file = fp; - delete [] fp; -+ char *file = NULL; -+ int ttindex = 0; ++ TString file; + -+ FcPattern *pat, *match; -+ FcCharSet *set = NULL; ++ TString fontname = fileID < fgExtendedFontStart ? ++ ((TObjString*)fgFontFileArray[fileID])->String() + ".ttf" : ++ ((TObjString*)fgFontFileArray[fileID])->String(); ++ ++ FcPattern *pat = nullptr, *match; + FcResult result; + -+ pat = FcPatternCreate (); -+ -+ switch (fileID) { -+ case 0: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 1: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 2: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 3: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 4: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 5: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 6: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 7: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 8: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 9: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 10: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 11: -+ case 14: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"symbol"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 12: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 13: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"dingbats"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 15: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixgeneral"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 16: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixgeneral"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 17: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixgeneral"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 18: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixgeneral"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 19: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize1"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 20: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize1"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 21: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize2"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 22: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize2"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 23: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize3"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 24: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize3"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 25: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize4"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 26: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize4"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 27: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize5"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 28: -+ case 29: -+ case 30: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"droidsansfallback"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ set = FcCharSetCreate (); -+ FcCharSetAddChar (set, 0x0410); // Cyrillic -+ FcCharSetAddChar (set, 0x4e00); // CJK -+ FcPatternAddCharSet (pat, FC_CHARSET, set); ++ if (strcmp(fontname, "timesi.ttf") == 0 || ++ strcmp(fontname, "FreeSerifItalic.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "freeserif:italic"); ++ } ++ else if (strcmp(fontname, "timesbd.ttf") == 0 || ++ strcmp(fontname, "FreeSerifBold.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "freeserif:bold"); ++ } ++ else if (strcmp(fontname, "timesbi.ttf") == 0 || ++ strcmp(fontname, "FreeSerifBoldItalic.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "freeserif:bold:italic"); ++ } ++ else if (strcmp(fontname, "arial.ttf") == 0 || ++ strcmp(fontname, "FreeSans.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "freesans"); ++ } ++ else if (strcmp(fontname, "ariali.ttf") == 0 || ++ strcmp(fontname, "FreeSansOblique.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "freesans:italic"); ++ } ++ else if (strcmp(fontname, "arialbd.ttf") == 0 || ++ strcmp(fontname, "FreeSansBold.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "freesans:bold"); ++ } ++ else if (strcmp(fontname, "arialbi.ttf") == 0 || ++ strcmp(fontname, "FreeSansBoldOblique.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "freesans:bold:italic"); ++ } ++ else if (strcmp(fontname, "cour.ttf") == 0 || ++ strcmp(fontname, "FreeMono.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "freemono"); ++ } ++ else if (strcmp(fontname, "couri.ttf") == 0 || ++ strcmp(fontname, "FreeMonoOblique.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "freemono:italic"); ++ } ++ else if (strcmp(fontname, "courbd.ttf") == 0 || ++ strcmp(fontname, "FreeMonoBold.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "freemono:bold"); ++ } ++ else if (strcmp(fontname, "courbi.ttf") == 0 || ++ strcmp(fontname, "FreeMonoBoldOblique.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "freemono:bold:italic"); ++ } ++ else if (strcmp(fontname, "symbol.ttf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "standardsymbolsps"); ++ } ++ else if (strcmp(fontname, "times.ttf") == 0 || ++ strcmp(fontname, "FreeSerif.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "freeserif"); } - -+ FcConfigSubstitute (NULL, pat, FcMatchPattern); ++ else if (strcmp(fontname, "wingding.ttf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "dingbats"); ++ } ++ else if (strcmp(fontname, "STIXGeneral.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "stixgeneral"); ++ } ++ else if (strcmp(fontname, "STIXGeneralItalic.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "stixgeneral:italic"); ++ } ++ else if (strcmp(fontname, "STIXGeneralBol.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "stixgeneral:bold"); ++ } ++ else if (strcmp(fontname, "STIXGeneralBolIta.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "stixgeneral:bold:italic"); ++ } ++ else if (strcmp(fontname, "STIXSiz1Sym.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "stixsize1"); ++ } ++ else if (strcmp(fontname, "STIXSiz1SymBol.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "stixsize1:bold"); ++ } ++ else if (strcmp(fontname, "STIXSiz2Sym.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "stixsize2"); ++ } ++ else if (strcmp(fontname, "STIXSiz2SymBol.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "stixsize2:bold"); ++ } ++ else if (strcmp(fontname, "STIXSiz3Sym.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "stixsize3"); ++ } ++ else if (strcmp(fontname, "STIXSiz3SymBol.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "stixsize3:bold"); ++ } ++ else if (strcmp(fontname, "STIXSiz4Sym.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "stixsize4"); ++ } ++ else if (strcmp(fontname, "STIXSiz4SymBol.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "stixsize4:bold"); ++ } ++ else if (strcmp(fontname, "STIXSiz5Sym.otf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "stixsize5"); ++ } ++ else if (strcmp(fontname, "DroidSansFallback.ttf") == 0) { ++ pat = FcNameParse ((const FcChar8*) "droidsansfallback:charset=4e00 0410"); ++ } ++ ++ FcConfigSubstitute (nullptr, pat, FcMatchPattern); + FcDefaultSubstitute (pat); -+ match = FcFontMatch (NULL, pat, &result); ++ match = FcFontMatch (nullptr, pat, &result); + char *ttfnt; -+ FcPatternGetString (match, FC_FILE, 0, (FcChar8**)&ttfnt); -+ file = StrDup (ttfnt); -+ FcPatternGetInteger (match, FC_INDEX, 0, &ttindex); ++ FcPatternGetString (match, FC_FILE, 0, (FcChar8**) &ttfnt); ++ file = ttfnt; + FcPatternDestroy (match); + FcPatternDestroy (pat); -+ if (set) FcCharSetDestroy (set); -+ + FTFont* ftfont = 0; switch (mode) - { -@@ -485,10 +644,14 @@ - ftfont = new FTGLTextureFont(file); - break; - default: -+ delete [] file; - Error("TGLFontManager::RegisterFont", "invalid FTGL type"); - return; - break; - } -+ -+ delete [] file; -+ - ftfont->FaceSize(size); - const TGLFont &mf = fFontMap.insert(std::make_pair(TGLFont(size, fileID, mode, ftfont, 0), 1)).first->first; - out.CopyAttributes(mf); -@@ -571,8 +734,6 @@ - { - if (fgStaticInitDone == kFALSE) InitStatics(); - -- assert(fgExtendedFontStart > 0 && "GetExtendedFontStartIndex, invalid index"); -- - return fgExtendedFontStart; - } - -@@ -642,28 +803,6 @@ - fgFontFileArray.Add(new TObjString("wingding")); // 140 - fgFontFileArray.Add(new TObjString("symbol")); // 150 - -- fgExtendedFontStart = fgFontFileArray.GetEntries(); -- //"Extended" fonts for gl-pad. -- //fgPadFontStart + ... -- fgFontFileArray.Add(new TObjString("FreeSerifItalic.otf")); // 10 (160) -- fgFontFileArray.Add(new TObjString("FreeSerifBold.otf")); // 20 (170) -- fgFontFileArray.Add(new TObjString("FreeSerifBoldItalic.otf")); // 30 -- -- fgFontFileArray.Add(new TObjString("FreeSans.otf")); // 40 -- fgFontFileArray.Add(new TObjString("FreeSansOblique.otf")); // 50 -- fgFontFileArray.Add(new TObjString("FreeSansBold.otf")); // 60 -- fgFontFileArray.Add(new TObjString("FreeSansBoldOblique.otf")); // 70 -- -- fgFontFileArray.Add(new TObjString("FreeMono.otf")); // 80 -- fgFontFileArray.Add(new TObjString("FreeMonoOblique.otf")); // 90 -- fgFontFileArray.Add(new TObjString("FreeMonoBold.otf")); // 100 -- fgFontFileArray.Add(new TObjString("FreeMonoBoldOblique.otf")); // 110 -- -- fgFontFileArray.Add(new TObjString("symbol.ttf")); // 120 -- fgFontFileArray.Add(new TObjString("FreeSerif.otf")); // 130 -- fgFontFileArray.Add(new TObjString("wingding.ttf")); // 140 -- fgFontFileArray.Add(new TObjString("symbol.ttf")); // 150 -- - fgFontFileArray.Add(new TObjString("STIXGeneral.otf")); // 200 - fgFontFileArray.Add(new TObjString("STIXGeneralItalic.otf")); // 210 - fgFontFileArray.Add(new TObjString("STIXGeneralBol.otf")); // 220 -diff -ur root-6.22.02.orig/graf3d/gl/src/TGLText.cxx root-6.22.02/graf3d/gl/src/TGLText.cxx ---- root-6.22.02.orig/graf3d/gl/src/TGLText.cxx 2020-08-17 14:41:56.000000000 +0200 -+++ root-6.22.02/graf3d/gl/src/TGLText.cxx 2020-08-18 09:50:12.881102944 +0200 -@@ -34,6 +34,8 @@ +diff --git a/graf3d/gl/src/TGLText.cxx b/graf3d/gl/src/TGLText.cxx +index 2ed3ee0917a..03feb0ee0a4 100644 +--- a/graf3d/gl/src/TGLText.cxx ++++ b/graf3d/gl/src/TGLText.cxx +@@ -32,6 +32,8 @@ # include "FTGLBitmapFont.h" #endif @@ -1341,7 +920,7 @@ diff -ur root-6.22.02.orig/graf3d/gl/src/TGLText.cxx root-6.22.02/graf3d/gl/src/ #define FTGL_BITMAP 0 #define FTGL_PIXMAP 1 #define FTGL_OUTLINE 2 -@@ -178,27 +180,92 @@ +@@ -175,27 +177,35 @@ void TGLText::SetGLTextFont(Font_t fontnumber) { int fontid = fontnumber / 10; @@ -1366,96 +945,39 @@ diff -ur root-6.22.02.orig/graf3d/gl/src/TGLText.cxx root-6.22.02/graf3d/gl/src/ - const char *ttpath = gEnv->GetValue("Root.TTFontPath", - TROOT::GetTTFFontDir()); - char *ttfont = gSystem->Which(ttpath, fontname, kReadPermission); ++ static const char *fonttable[] = { ++ "freesans:bold", ++ "freeserif:italic", ++ "freeserif:bold", ++ "freeserif:bold:italic", ++ "freesans", ++ "freesans:italic", ++ "freesans:bold", ++ "freesans:bold:italic", ++ "freemono", ++ "freemono:italic", ++ "freemono:bold", ++ "freemono:bold:italic", ++ "standardsymbolsps", ++ "freeserif", ++ "dingbats", ++ }; ++ ++ char *ttfont; ++ + FcPattern *pat, *match; + FcResult result; -+ char *ttfont; -+ int ttindex; + -+ pat = FcPatternCreate (); ++ pat = FcNameParse ((const FcChar8*) fonttable[fontid]); + -+ switch (fontid) { -+ case 1: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 2: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 3: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 4: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 5: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 0: -+ case 6: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 7: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 8: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 9: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 10: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 11: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ break; -+ case 12: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"symbol"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 13: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ case 14: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"dingbats"); -+ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); -+ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ break; -+ } -+ -+ FcConfigSubstitute (NULL, pat, FcMatchPattern); ++ FcConfigSubstitute (nullptr, pat, FcMatchPattern); + FcDefaultSubstitute (pat); -+ match = FcFontMatch (NULL, pat, &result); -+ FcPatternGetString (match, FC_FILE, 0, (FcChar8**)&ttfont); -+ FcPatternGetInteger (match, FC_INDEX, 0, &ttindex); ++ match = FcFontMatch (nullptr, pat, &result); ++ FcPatternGetString (match, FC_FILE, 0, (FcChar8**) &ttfont); if (fGLTextFont) delete fGLTextFont; -@@ -206,7 +273,9 @@ +@@ -203,7 +213,9 @@ void TGLText::SetGLTextFont(Font_t fontnumber) fGLTextFont = new FTGLPolygonFont(ttfont); @@ -1466,28 +988,6 @@ diff -ur root-6.22.02.orig/graf3d/gl/src/TGLText.cxx root-6.22.02/graf3d/gl/src/ Error("SetGLTextFont","Cannot set FTGL::FaceSize"); - delete [] ttfont; } -diff -ur root-6.22.02.orig/gui/gui/src/TGApplication.cxx root-6.22.02/gui/gui/src/TGApplication.cxx ---- root-6.22.02.orig/gui/gui/src/TGApplication.cxx 2020-08-17 14:41:56.000000000 +0200 -+++ root-6.22.02/gui/gui/src/TGApplication.cxx 2020-08-18 09:50:13.153103608 +0200 -@@ -80,20 +80,12 @@ - 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.52.0 + 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-get-src.sh b/root-get-src.sh new file mode 100755 index 0000000..d83c34a --- /dev/null +++ b/root-get-src.sh @@ -0,0 +1,6 @@ +#!/bin/sh +VERSION=$1 +wget -N https://root.cern/download/root_v${VERSION}.source.tar.gz +tar -z -x -f root_v${VERSION}.source.tar.gz +find root-${VERSION}/fonts -type f -a '!' -name 'STIX*' -exec rm {} ';' +tar -J -c --group root --owner root -f root-${VERSION}.tar.xz root-${VERSION} diff --git a/root-histv7-bin-iterator.patch b/root-histv7-bin-iterator.patch deleted file mode 100644 index 9e52725..0000000 --- a/root-histv7-bin-iterator.patch +++ /dev/null @@ -1,51 +0,0 @@ -From af2e5c8b1bf17a0a0e1c1492735395bdd49ffd65 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Mon, 29 Jun 2020 12:57:43 +0200 -Subject: [PATCH] Fix off-by-one error in the histogram v7 bin iterator - -The histogram bin iterator should start at 1 and end at N + 1, not -start at 0 and end at N. (As for all iterators, the end element is the -invalid element after the last one.) - -Fixes an assertion in the histhistv7testUnit test - -[----------] 2 tests from BinIterNBins -[ RUN ] BinIterNBins.NumBins -/usr/include/c++/10/bits/stl_vector.h:1045: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = float; _Alloc = std::allocator; std::vector<_Tp, _Alloc>::reference = float&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__builtin_expect(__n < this->size(), true)' failed. ---- - hist/histv7/inc/ROOT/RHist.hxx | 4 ++-- - hist/histv7/test/biniter.cxx | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/hist/histv7/inc/ROOT/RHist.hxx b/hist/histv7/inc/ROOT/RHist.hxx -index ebb319f1ef..9521fe182f 100644 ---- a/hist/histv7/inc/ROOT/RHist.hxx -+++ b/hist/histv7/inc/ROOT/RHist.hxx -@@ -158,9 +158,9 @@ public: - /// Get the uncertainty on the content of the bin at `x`. - double GetBinUncertainty(const CoordArray_t &x) const { return fImpl->GetBinUncertainty(x); } - -- const_iterator begin() const { return const_iterator(*fImpl); } -+ const_iterator begin() const { return const_iterator(*fImpl, 1); } - -- const_iterator end() const { return const_iterator(*fImpl, fImpl->GetNBinsNoOver()); } -+ const_iterator end() const { return const_iterator(*fImpl, fImpl->GetNBinsNoOver() + 1); } - - /// Swap *this and other. - /// -diff --git a/hist/histv7/test/biniter.cxx b/hist/histv7/test/biniter.cxx -index aa1c2dfef9..1f940aa8e7 100644 ---- a/hist/histv7/test/biniter.cxx -+++ b/hist/histv7/test/biniter.cxx -@@ -45,7 +45,7 @@ TEST(BinIterNBins, BinRef) { - double founduncert = -1.; - RH2F::CoordArray_t foundcoord{}; - -- int nBins = 0; -+ int nBins = 1; - for (auto bin: h) { - auto binCenter = bin.GetCenter(); - if (std::fabs(binCenter[0] - x) < 0.1 && std::fabs(binCenter[1] - y) < 0.1) { --- -2.26.2 - diff --git a/root-increase-timeout-for-ppc64le.patch b/root-increase-timeout-for-ppc64le.patch deleted file mode 100644 index f4bbc79..0000000 --- a/root-increase-timeout-for-ppc64le.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 4a4f661e80aa569a2fe2fcadeb2632db52371f79 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Fri, 21 Aug 2020 18:46:36 +0200 -Subject: [PATCH] Increase timeout for PPC64 - ---- - tutorials/CMakeLists.txt | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt -index b49bc68209..ef6e884658 100644 ---- a/tutorials/CMakeLists.txt -+++ b/tutorials/CMakeLists.txt -@@ -462,7 +462,7 @@ foreach(t ${tutorials}) - endif() - - # These tests on ARM64 need much more than 20 minutes - increase the timeout -- if(ROOT_ARCHITECTURE MATCHES arm64) -+ if(ROOT_ARCHITECTURE MATCHES arm64 OR ROOT_ARCHITECTURE MATCHES ppc64) - set(thisTestTimeout 2400) # 40m - else() - set(thisTestTimeout 1200) # 20m -@@ -489,7 +489,7 @@ foreach(t ${mpi_tutorials}) - string(REPLACE "/" "-" tname ${tname}) - - # These tests on ARM64 need much more than 20 minutes - increase the timeout -- if(ROOT_ARCHITECTURE MATCHES arm64) -+ if(ROOT_ARCHITECTURE MATCHES arm64 OR ROOT_ARCHITECTURE MATCHES ppc64) - set(thisTestTimeout 2400) # 40m - else() - set(thisTestTimeout 1200) # 20m --- -2.28.0 - diff --git a/root-install-headers-with-COMPONENT-headers.patch b/root-install-headers-with-COMPONENT-headers.patch deleted file mode 100644 index 8948c1e..0000000 --- a/root-install-headers-with-COMPONENT-headers.patch +++ /dev/null @@ -1,39 +0,0 @@ -From c6b03126690439f5137e4a1090e81e93fd09df9a Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Wed, 19 Aug 2020 20:17:37 +0200 -Subject: [PATCH] Install headers with COMPONENT headers - ---- - bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt | 4 +++- - bindings/pyroot/pythonizations/CMakeLists.txt | 4 +++- - 2 files changed, 6 insertions(+), 2 deletions(-) - -diff --git a/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt b/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt -index 00ce6c13b8..e23b439b3e 100644 ---- a/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt -+++ b/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt -@@ -120,4 +120,6 @@ foreach(val RANGE ${how_many_pythons}) - endforeach() - - file(COPY ${headers} DESTINATION ${CMAKE_BINARY_DIR}/include/CPyCppyy) --install(FILES ${headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/CPyCppyy) -+install(FILES ${headers} -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/CPyCppyy -+ COMPONENT headers) -diff --git a/bindings/pyroot/pythonizations/CMakeLists.txt b/bindings/pyroot/pythonizations/CMakeLists.txt -index 7827204396..377ec46916 100644 ---- a/bindings/pyroot/pythonizations/CMakeLists.txt -+++ b/bindings/pyroot/pythonizations/CMakeLists.txt -@@ -159,6 +159,8 @@ install(DIRECTORY ${localruntimedir}/ROOT - COMPONENT libraries) - - # Install headers required by pythonizations --install(FILES ${PYROOT_EXTRA_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ROOT) -+install(FILES ${PYROOT_EXTRA_HEADERS} -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ROOT -+ COMPONENT headers) - - ROOT_ADD_TEST_SUBDIRECTORY(test) --- -2.26.2 - diff --git a/root-jupyroot-static.patch b/root-jupyroot-static.patch deleted file mode 100644 index b39110a..0000000 --- a/root-jupyroot-static.patch +++ /dev/null @@ -1,72 +0,0 @@ -diff -ur root-6.22.00.orig/bindings/jsmva/python/JsMVA/JPyInterface.py root-6.22.00/bindings/jsmva/python/JsMVA/JPyInterface.py ---- root-6.22.00.orig/bindings/jsmva/python/JsMVA/JPyInterface.py 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/bindings/jsmva/python/JsMVA/JPyInterface.py 2020-06-21 20:20:27.744527667 +0200 -@@ -188,7 +188,7 @@ - ## Class for creating the output scripts and inserting them to cell output - class JsDraw: - ## Base repository -- __jsMVARepo = "https://root.cern.ch/js/jsmva/latest" -+ __jsMVARepo = "/static/JsMVA" - - ## String containing the link to JavaScript files - __jsMVASourceDir = __jsMVARepo + "/js" -diff -ur root-6.22.00.orig/bindings/jupyroot/python/JupyROOT/helpers/utils.py root-6.22.00/bindings/jupyroot/python/JupyROOT/helpers/utils.py ---- root-6.22.00.orig/bindings/jupyroot/python/JupyROOT/helpers/utils.py 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/bindings/jupyroot/python/JupyROOT/helpers/utils.py 2020-06-21 20:18:22.840258397 +0200 -@@ -40,7 +40,7 @@ - _jsNotDrawableClassesPatterns = ["TEve*","TF3","TPolyLine3D"] - - --_jsROOTSourceDir = "/static/" -+_jsROOTSourceDir = "/static/jsroot/" - _jsCanvasWidth = 800 - _jsCanvasHeight = 600 - -diff -ur root-6.22.00.orig/bindings/pyroot_legacy/JsMVA/JPyInterface.py root-6.22.00/bindings/pyroot_legacy/JsMVA/JPyInterface.py ---- root-6.22.00.orig/bindings/pyroot_legacy/JsMVA/JPyInterface.py 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/bindings/pyroot_legacy/JsMVA/JPyInterface.py 2020-06-21 20:09:42.265004565 +0200 -@@ -188,7 +188,7 @@ - ## Class for creating the output scripts and inserting them to cell output - class JsDraw: - ## Base repository -- __jsMVARepo = "https://root.cern.ch/js/jsmva/latest" -+ __jsMVARepo = "/static/JsMVA" - - ## String containing the link to JavaScript files - __jsMVASourceDir = __jsMVARepo + "/js" -diff -ur root-6.22.00.orig/bindings/pyroot_legacy/JupyROOT/helpers/utils.py root-6.22.00/bindings/pyroot_legacy/JupyROOT/helpers/utils.py ---- root-6.22.00.orig/bindings/pyroot_legacy/JupyROOT/helpers/utils.py 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/bindings/pyroot_legacy/JupyROOT/helpers/utils.py 2020-06-21 20:09:42.266004568 +0200 -@@ -82,7 +82,7 @@ - function requirejs_success(base_url) {{ - return function() {{ - require.config({{ -- baseUrl: base_url + 'static/' -+ baseUrl: base_url + 'static/jsroot/' - }}); - display_{jsDivId}(); - }} -diff -ur root-6.22.00.orig/etc/notebook/JsMVA/js/JsMVA.js root-6.22.00/etc/notebook/JsMVA/js/JsMVA.js ---- root-6.22.00.orig/etc/notebook/JsMVA/js/JsMVA.js 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/etc/notebook/JsMVA/js/JsMVA.js 2020-06-21 20:10:34.552121014 +0200 -@@ -16,7 +16,7 @@ - - (function(factory){ - -- var JSROOT_source_dir = "https://root.cern.ch/js/notebook/scripts/"; -+ var JSROOT_source_dir = "/static/jsroot/scripts/"; - - var url = ""; - if (requirejs.s.contexts.hasOwnProperty("_")) { -diff -ur root-6.22.00.orig/etc/notebook/JsMVA/js/NetworkDesigner.js root-6.22.00/etc/notebook/JsMVA/js/NetworkDesigner.js ---- root-6.22.00.orig/etc/notebook/JsMVA/js/NetworkDesigner.js 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/etc/notebook/JsMVA/js/NetworkDesigner.js 2020-06-21 20:10:34.552121014 +0200 -@@ -19,7 +19,7 @@ - paths: { - "jquery-connections": baseURL + "jquery.connections.min", - "jquery-timing": baseURL + "jquery-timing.min", -- "d3": "/static/scripts/d3.min" -+ "d3": "/static/jsroot/scripts/d3.min" - }, - shim: { - "jquery-ui": { diff --git a/root-linux-vdso.patch b/root-linux-vdso.patch deleted file mode 100644 index f749e9e..0000000 --- a/root-linux-vdso.patch +++ /dev/null @@ -1,47 +0,0 @@ -From f7161d2612c035604146298809e628d806dbed3a Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Sun, 29 Nov 2020 07:58:30 +0100 -Subject: [PATCH] Several new test failures on ppc64le with 6.22.06 due to: - g++: error: linux-vdso64.so.1: No such file or directory -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The list of names filtered out by TCling is incomplete. -The vdso(7) man page gives the following list: - - user ABI vDSO name - ───────────────────────────── - aarch64 linux-vdso.so.1 - arm linux-vdso.so.1 - ia64 linux-gate.so.1 - mips linux-vdso.so.1 - ppc/32 linux-vdso32.so.1 - ppc/64 linux-vdso64.so.1 - riscv linux-vdso.so.1 - s390 linux-vdso32.so.1 - s390x linux-vdso64.so.1 - sh linux-gate.so.1 - i386 linux-gate.so.1 - x86-64 linux-vdso.so.1 - x86/x32 linux-vdso.so.1 ---- - core/metacling/src/TCling.cxx | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/core/metacling/src/TCling.cxx b/core/metacling/src/TCling.cxx -index 5078d7b93e..0e605a5388 100644 ---- a/core/metacling/src/TCling.cxx -+++ b/core/metacling/src/TCling.cxx -@@ -3274,6 +3274,8 @@ static int callback_for_dl_iterate_phdr(struct dl_phdr_info *info, size_t size, - // Skip \0, "", and kernel pseudo-libs linux-vdso.so.1 or linux-gate.so.1 - if (info->dlpi_name && info->dlpi_name[0] - && strncmp(info->dlpi_name, "linux-vdso.so", 13) -+ && strncmp(info->dlpi_name, "linux-vdso32.so", 15) -+ && strncmp(info->dlpi_name, "linux-vdso64.so", 15) - && strncmp(info->dlpi_name, "linux-gate.so", 13)) - newLibs->emplace_back(info->dlpi_name); - sKnownLoadedLibBaseAddrs.insert(info->dlpi_addr); --- -2.28.0 - diff --git a/root-memory-usage.patch b/root-memory-usage.patch deleted file mode 100644 index aad7f1c..0000000 --- a/root-memory-usage.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 21395b23947df7e2b5e0c93626453aeacdee026c Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Tue, 16 Jan 2018 10:25:50 +0100 -Subject: [PATCH] Reduce the needed memory for compilation - -The linking of rootcling_stage1 and libCling requires a lot of memory. -Since these are linked from mostly the same objects, the build is -ready to link them at the same time. If you make a parallel build this -means that the two targets that require the most amount of memory are -being linked in parallel. This exhausts the available memory, and the -computer starts swapping. - -This commit adds a dependency of one of the targets to the other. The -dependency is not really there since it is not needed for building, -but it prevents the two memory consuming targets to be built in -parallel. - -A similar dependency existed before the latest code changes (see -commit 2638f6fc7f54b0995f2f9d60363daaf8aae2386e), then between -rootcling and libCling. ---- - core/metacling/src/CMakeLists.txt | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/core/metacling/src/CMakeLists.txt b/core/metacling/src/CMakeLists.txt -index 2923345f7c..b44a4d4115 100644 ---- a/core/metacling/src/CMakeLists.txt -+++ b/core/metacling/src/CMakeLists.txt -@@ -114,6 +114,11 @@ ROOT_LINKER_LIBRARY(Cling - $ - LIBRARIES ${CLING_LIBRARIES} ${LINK_LIBS} ${CLING_PLUGIN_LINK_LIBS}) - -+# The dependency on rootcling_stage1 was added to prevent Cling (libCling) and -+# rootcling_stage1 from being linked in parallel. -+# This avoids doing two memory consuming operations in parallel. -+add_dependencies(Cling rootcling_stage1) -+ - if(MSVC) - set_target_properties(Cling PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE) - set(cling_exports --- -2.26.2 - diff --git a/root-no-export-python-modules.patch b/root-no-export-python-modules.patch index 21b1319..d3fa4bc 100644 --- a/root-no-export-python-modules.patch +++ b/root-no-export-python-modules.patch @@ -1,30 +1,53 @@ -diff -ur root-6.22.02.orig/bindings/jupyroot/CMakeLists.txt root-6.22.02/bindings/jupyroot/CMakeLists.txt ---- root-6.22.02.orig/bindings/jupyroot/CMakeLists.txt 2020-08-17 14:41:56.000000000 +0200 -+++ root-6.22.02/bindings/jupyroot/CMakeLists.txt 2020-08-19 09:49:12.094722642 +0200 -@@ -70,8 +70,7 @@ - endforeach() +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 +------- + 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 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_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 -ur root-6.22.02.orig/bindings/pyroot/pythonizations/CMakeLists.txt root-6.22.02/bindings/pyroot/pythonizations/CMakeLists.txt ---- root-6.22.02.orig/bindings/pyroot/pythonizations/CMakeLists.txt 2020-08-17 14:41:56.000000000 +0200 -+++ root-6.22.02/bindings/pyroot/pythonizations/CMakeLists.txt 2020-08-19 10:36:10.390486171 +0200 -@@ -133,11 +133,10 @@ - # Create meta-target PyROOT2 and PyROOT3 (INTERFACE library) - # Export of targets are not supported for custom targets(add_custom_targets()) - add_library(PyROOT${python_major_version_string} INTERFACE) -- target_link_libraries(PyROOT${python_major_version_string} INTERFACE cppyy_backend${python_under_version_string} cppyy${python_under_version_string} ROOTPythonizations${python_under_version_string}) -+ target_link_libraries(PyROOT${python_major_version_string} INTERFACE cppyy_backend${python_under_version_string} cppyy${python_under_version_string}) +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() - # 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_LIBDIR} COMPONENT libraries - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries) +-# 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) +- + # 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 ${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-ntuple-largefile.patch b/root-ntuple-largefile.patch deleted file mode 100644 index b4242f0..0000000 --- a/root-ntuple-largefile.patch +++ /dev/null @@ -1,139 +0,0 @@ -diff -ur root-6.22.00.orig/io/io/src/RRawFileUnix.cxx root-6.22.00/io/io/src/RRawFileUnix.cxx ---- root-6.22.00.orig/io/io/src/RRawFileUnix.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/io/io/src/RRawFileUnix.cxx 2020-07-02 09:02:48.202677798 +0200 -@@ -9,6 +9,8 @@ - * For the list of contributors see $ROOTSYS/README/CREDITS. * - *************************************************************************/ - -+#include "ROOT/RConfig.hxx" -+ - #include "ROOT/RRawFileUnix.hxx" - #include "ROOT/RMakeUnique.hxx" - -@@ -47,8 +49,13 @@ - - std::uint64_t ROOT::Internal::RRawFileUnix::GetSizeImpl() - { -+#ifdef R__SEEK64 -+ struct stat64 info; -+ int res = fstat64(fFileDes, &info); -+#else - struct stat info; - int res = fstat(fFileDes, &info); -+#endif - if (res != 0) - throw std::runtime_error("Cannot call fstat on '" + fUrl + "', error: " + std::string(strerror(errno))); - return info.st_size; -@@ -68,7 +75,11 @@ - - void ROOT::Internal::RRawFileUnix::OpenImpl() - { -+#ifdef R__SEEK64 -+ fFileDes = open64(GetLocation(fUrl).c_str(), O_RDONLY); -+#else - fFileDes = open(GetLocation(fUrl).c_str(), O_RDONLY); -+#endif - if (fFileDes < 0) { - throw std::runtime_error("Cannot open '" + fUrl + "', error: " + std::string(strerror(errno))); - } -@@ -76,8 +87,13 @@ - if (fOptions.fBlockSize >= 0) - return; - -+#ifdef R__SEEK64 -+ struct stat64 info; -+ int res = fstat64(fFileDes, &info); -+#else - struct stat info; - int res = fstat(fFileDes, &info); -+#endif - if (res != 0) { - throw std::runtime_error("Cannot call fstat on '" + fUrl + "', error: " + std::string(strerror(errno))); - } -@@ -92,7 +108,11 @@ - { - size_t total_bytes = 0; - while (nbytes) { -+#ifdef R__SEEK64 -+ ssize_t res = pread64(fFileDes, buffer, nbytes, offset); -+#else - ssize_t res = pread(fFileDes, buffer, nbytes, offset); -+#endif - if (res < 0) { - if (errno == EINTR) - continue; -diff -ur root-6.22.00.orig/tree/ntuple/v7/src/RMiniFile.cxx root-6.22.00/tree/ntuple/v7/src/RMiniFile.cxx ---- root-6.22.00.orig/tree/ntuple/v7/src/RMiniFile.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/tree/ntuple/v7/src/RMiniFile.cxx 2020-07-02 10:06:55.066204147 +0200 -@@ -13,6 +13,8 @@ - * For the list of contributors see $ROOTSYS/README/CREDITS. * - *************************************************************************/ - -+#include -+ - #include "ROOT/RMiniFile.hxx" - - #include -@@ -999,7 +1001,11 @@ - R__ASSERT(fFile); - size_t retval; - if ((offset >= 0) && (static_cast(offset) != fFilePos)) { -+#ifdef R__SEEK64 -+ retval = fseeko64(fFile, offset, SEEK_SET); -+#else - retval = fseek(fFile, offset, SEEK_SET); -+#endif - R__ASSERT(retval == 0); - fFilePos = offset; - } -@@ -1099,7 +1105,11 @@ - if (idxDirSep != std::string::npos) { - fileName.erase(0, idxDirSep + 1); - } -+#ifdef R__SEEK64 -+ FILE *fileStream = fopen64(std::string(path.data(), path.size()).c_str(), "wb"); -+#else - FILE *fileStream = fopen(std::string(path.data(), path.size()).c_str(), "wb"); -+#endif - R__ASSERT(fileStream); - - auto writer = new RNTupleFileWriter(ntupleName); -@@ -1319,7 +1329,11 @@ - fFileSimple.Write(&strEmpty, strEmpty.GetSize()); - fFileSimple.Write(&fileRoot, fileRoot.GetSize()); - fFileSimple.fFilePos = tail; -+#ifdef R__SEEK64 -+ auto retval = fseeko64(fFileSimple.fFile, tail, SEEK_SET); -+#else - auto retval = fseek(fFileSimple.fFile, tail, SEEK_SET); -+#endif - R__ASSERT(retval == 0); - fFileSimple.fFilePos = tail; - } -diff -ur root-6.22.00.orig/tree/ntuple/v7/test/ntuple.cxx root-6.22.00/tree/ntuple/v7/test/ntuple.cxx ---- root-6.22.00.orig/tree/ntuple/v7/test/ntuple.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/tree/ntuple/v7/test/ntuple.cxx 2020-07-02 10:10:54.409737807 +0200 -@@ -1,3 +1,5 @@ -+#include -+ - #include - #include - #include -@@ -891,10 +893,17 @@ - ntuple->Fill(); - } - } -+#ifdef R__SEEK64 -+ FILE *file = fopen64(fileGuard.GetPath().c_str(), "rb"); -+ ASSERT_TRUE(file != nullptr); -+ EXPECT_EQ(0, fseeko64(file, 0, SEEK_END)); -+ EXPECT_GT(ftello64(file), 2048LL * 1024LL * 1024LL); -+#else - FILE *file = fopen(fileGuard.GetPath().c_str(), "rb"); - ASSERT_TRUE(file != nullptr); - EXPECT_EQ(0, fseek(file, 0, SEEK_END)); - EXPECT_GT(ftell(file), 2048LL * 1024LL * 1024LL); -+#endif - fclose(file); - - auto ntuple = RNTupleReader::Open("myNTuple", fileGuard.GetPath()); diff --git a/root-old-gtest-compat.patch b/root-old-gtest-compat.patch deleted file mode 100644 index a25a8e8..0000000 --- a/root-old-gtest-compat.patch +++ /dev/null @@ -1,161 +0,0 @@ -diff -ur root-6.22.00.orig/math/mathcore/test/stress/testGenVector.cxx root-6.22.00/math/mathcore/test/stress/testGenVector.cxx ---- root-6.22.00.orig/math/mathcore/test/stress/testGenVector.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/math/mathcore/test/stress/testGenVector.cxx 2020-06-29 19:38:08.524050438 +0200 -@@ -4,6 +4,16 @@ - - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE_P -+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P -+#endif -+#ifndef REGISTER_TYPED_TEST_SUITE_P -+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P -+#endif -+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P -+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P -+#endif -+ - #include "StatFunction.h" - #include "TestHelper.h" - #include "VectorTest.h" -diff -ur root-6.22.00.orig/math/mathcore/test/stress/testSMatrix.cxx root-6.22.00/math/mathcore/test/stress/testSMatrix.cxx ---- root-6.22.00.orig/math/mathcore/test/stress/testSMatrix.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/math/mathcore/test/stress/testSMatrix.cxx 2020-06-29 19:38:08.524050438 +0200 -@@ -7,6 +7,16 @@ - #include "TestHelper.h" - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE_P -+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P -+#endif -+#ifndef REGISTER_TYPED_TEST_SUITE_P -+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P -+#endif -+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P -+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P -+#endif -+ - #include "VectorTest.h" - #include "TROOT.h" - #include "TSystem.h" -diff -ur root-6.22.00.orig/math/mathcore/test/stress/testVector34.cxx root-6.22.00/math/mathcore/test/stress/testVector34.cxx ---- root-6.22.00.orig/math/mathcore/test/stress/testVector34.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/math/mathcore/test/stress/testVector34.cxx 2020-06-29 19:38:08.525050440 +0200 -@@ -4,6 +4,16 @@ - - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE_P -+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P -+#endif -+#ifndef REGISTER_TYPED_TEST_SUITE_P -+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P -+#endif -+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P -+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P -+#endif -+ - #include "StatFunction.h" - #include "VectorTest.h" - -diff -ur root-6.22.00.orig/math/mathcore/test/stress/testVector.cxx root-6.22.00/math/mathcore/test/stress/testVector.cxx ---- root-6.22.00.orig/math/mathcore/test/stress/testVector.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/math/mathcore/test/stress/testVector.cxx 2020-06-29 19:38:08.525050440 +0200 -@@ -4,6 +4,16 @@ - - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE_P -+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P -+#endif -+#ifndef REGISTER_TYPED_TEST_SUITE_P -+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P -+#endif -+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P -+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P -+#endif -+ - #include "StatFunction.h" - #include "TestHelper.h" - #include "VectorTest.h" -diff -ur root-6.22.00.orig/math/mathcore/test/testGradient.cxx root-6.22.00/math/mathcore/test/testGradient.cxx ---- root-6.22.00.orig/math/mathcore/test/testGradient.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/math/mathcore/test/testGradient.cxx 2020-06-29 19:38:08.525050440 +0200 -@@ -22,6 +22,10 @@ - - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE -+#define TYPED_TEST_SUITE TYPED_TEST_CASE -+#endif -+ - #include - #include - #include -diff -ur root-6.22.00.orig/math/mathcore/test/testGradientFitting.cxx root-6.22.00/math/mathcore/test/testGradientFitting.cxx ---- root-6.22.00.orig/math/mathcore/test/testGradientFitting.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/math/mathcore/test/testGradientFitting.cxx 2020-06-29 19:38:08.525050440 +0200 -@@ -12,6 +12,16 @@ - - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE_P -+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P -+#endif -+#ifndef REGISTER_TYPED_TEST_SUITE_P -+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P -+#endif -+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P -+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P -+#endif -+ - #include - #include - -diff -ur root-6.22.00.orig/math/mathmore/test/testStress.cxx root-6.22.00/math/mathmore/test/testStress.cxx ---- root-6.22.00.orig/math/mathmore/test/testStress.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/math/mathmore/test/testStress.cxx 2020-06-29 19:38:08.526050443 +0200 -@@ -28,6 +28,16 @@ - - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE_P -+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P -+#endif -+#ifndef REGISTER_TYPED_TEST_SUITE_P -+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P -+#endif -+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P -+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P -+#endif -+ - using ::testing::TestWithParam; - using ::testing::Values; - -diff -ur root-6.22.00.orig/roofit/roofitcore/test/testProxiesAndCategories.cxx root-6.22.00/roofit/roofitcore/test/testProxiesAndCategories.cxx ---- root-6.22.00.orig/roofit/roofitcore/test/testProxiesAndCategories.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/roofit/roofitcore/test/testProxiesAndCategories.cxx 2020-06-29 19:38:08.526050443 +0200 -@@ -16,6 +16,9 @@ - - #include "gtest/gtest.h" - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif - - TEST(RooCategory, CategoryDefineMultiState) { - RooCategory myCat("myCat", "A category", { {"0Lep", 0}, {"1Lep", 1}, {"2Lep", 2}, {"3Lep", 3} }); -diff -ur root-6.22.00.orig/tree/dataframe/test/dataframe_simple.cxx root-6.22.00/tree/dataframe/test/dataframe_simple.cxx ---- root-6.22.00.orig/tree/dataframe/test/dataframe_simple.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/tree/dataframe/test/dataframe_simple.cxx 2020-06-29 19:38:45.667130468 +0200 -@@ -1,5 +1,10 @@ - /****** Run RDataFrame tests both with and without IMT enabled *******/ - #include -+ -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include - #include - #include diff --git a/root-python3.8-object.patch b/root-python3.8-object.patch deleted file mode 100644 index 1cc6c7b..0000000 --- a/root-python3.8-object.patch +++ /dev/null @@ -1,333 +0,0 @@ -diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt ---- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt 2020-06-21 20:54:24.848992803 +0200 -@@ -85,11 +85,6 @@ - target_compile_options(${libname} PRIVATE -Wno-deprecated-register) - endif() - -- # Disables warnings due to new field tp_vectorcall in Python 3.8 -- if(NOT MSVC AND ${python_version_string} VERSION_GREATER_EQUAL "3.8") -- target_compile_options(${libname} PRIVATE -Wno-missing-field-initializers) -- endif() -- - target_include_directories(${libname} - PRIVATE - ${CMAKE_SOURCE_DIR}/core/foundation/inc # needed for string_view backport -diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPDataMember.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPDataMember.cxx ---- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPDataMember.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPDataMember.cxx 2020-06-21 20:53:49.651914431 +0200 -@@ -167,7 +167,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 -@@ -216,6 +217,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.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPExcInstance.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPExcInstance.cxx ---- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPExcInstance.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPExcInstance.cxx 2020-06-21 20:53:49.651914431 +0200 -@@ -158,7 +158,8 @@ - sizeof(CPPExcInstance), // tp_basicsize - 0, // tp_itemsize - (destructor)ep_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 -@@ -211,6 +212,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.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPInstance.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPInstance.cxx ---- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPInstance.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPInstance.cxx 2020-06-21 20:53:49.651914431 +0200 -@@ -746,7 +746,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 -@@ -798,6 +799,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.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx ---- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx 2020-06-21 20:53:49.652914433 +0200 -@@ -866,7 +866,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 -@@ -915,6 +916,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.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPScope.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPScope.cxx ---- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPScope.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPScope.cxx 2020-06-21 20:53:49.652914433 +0200 -@@ -616,7 +616,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 -@@ -669,6 +670,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.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyyModule.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyyModule.cxx ---- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyyModule.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyyModule.cxx 2020-06-21 20:53:49.652914433 +0200 -@@ -141,6 +141,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.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CustomPyTypes.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CustomPyTypes.cxx ---- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CustomPyTypes.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CustomPyTypes.cxx 2020-06-21 20:53:49.652914433 +0200 -@@ -34,6 +34,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 ================================== -@@ -60,6 +66,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 - }; - - //- custom type representing typedef to pointer of class --------------------- -@@ -90,6 +102,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 ================ -@@ -255,6 +273,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 - }; - - -@@ -305,6 +329,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 - }; - - -@@ -364,6 +394,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.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/LowLevelViews.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/LowLevelViews.cxx ---- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/LowLevelViews.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/LowLevelViews.cxx 2020-06-21 20:53:49.653914436 +0200 -@@ -651,7 +651,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 -@@ -701,6 +702,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.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/TemplateProxy.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/TemplateProxy.cxx ---- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/TemplateProxy.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/TemplateProxy.cxx 2020-06-21 20:53:49.653914436 +0200 -@@ -730,7 +730,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 -@@ -779,6 +780,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.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/TupleOfInstances.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/TupleOfInstances.cxx ---- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/TupleOfInstances.cxx 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/TupleOfInstances.cxx 2020-06-21 20:53:49.653914436 +0200 -@@ -82,6 +82,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 - }; - - -@@ -161,7 +167,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 -@@ -211,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 --git a/root-roostats-test-ppc64le-aarch64.patch b/root-roostats-test-ppc64le-aarch64.patch deleted file mode 100644 index b88d052..0000000 --- a/root-roostats-test-ppc64le-aarch64.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 357ac50a2420a4544c9c63594cccb994ee14f870 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Sat, 13 Jun 2020 14:23:15 +0200 -Subject: [PATCH] The roofit/roostats/test/testHypoTestInvResult.cxx test fails - on aarch64 and ppc64le. This commit adjusts the allowed deviation from the - expected value so that the test passes. - -The reported error is (with slight variations in the exact numbers): - -/builddir/build/BUILD/root-6.20.06/roofit/roostats/test/testHypoTestInvResult.cxx:24: Failure -The difference between result->UpperLimitEstimatedError() and 0.059684301 is 1.1846561807221656e-07, which exceeds 1.E-8, where -result->UpperLimitEstimatedError() evaluates to 0.05968418253438193, -0.059684301 evaluates to 0.059684301000000002, and -1.E-8 evaluates to 1e-08. ---- - roofit/roostats/test/testHypoTestInvResult.cxx | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/roofit/roostats/test/testHypoTestInvResult.cxx b/roofit/roostats/test/testHypoTestInvResult.cxx -index 9c2896185a..b89eab9b69 100644 ---- a/roofit/roostats/test/testHypoTestInvResult.cxx -+++ b/roofit/roostats/test/testHypoTestInvResult.cxx -@@ -21,7 +21,7 @@ TEST(HypoTestInvResult, ReadFromFile) - - // This just reads members - EXPECT_NEAR(result->UpperLimit(), 2.4613465, 1.E-7); -- EXPECT_NEAR(result->UpperLimitEstimatedError(), 0.059684301, 1.E-8); -+ EXPECT_NEAR(result->UpperLimitEstimatedError(), 0.059684301, 2.E-7); - - // This accesses the sampling distribution - EXPECT_DOUBLE_EQ(result->GetExpectedUpperLimit(0), 1.60988427028569); --- -2.26.2 - diff --git a/root-setcachefiledir.patch b/root-setcachefiledir.patch deleted file mode 100644 index 1244734..0000000 --- a/root-setcachefiledir.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 532e02a0e5373d26f73495183dc13055e7f13421 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Mon, 29 Jun 2020 12:08:15 +0200 -Subject: [PATCH] Add missing call to TFile::SetCacheFileDir(".") - -Without it the following TFile::Open call using the CACHEREAD option -will not work as intended: -inputFile = TFile::Open(inputFileLink, "CACHEREAD"); ---- - tutorials/tmva/TMVA_Higgs_Classification.C | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/tutorials/tmva/TMVA_Higgs_Classification.C b/tutorials/tmva/TMVA_Higgs_Classification.C -index 6b4a8ed028..85dffc2790 100644 ---- a/tutorials/tmva/TMVA_Higgs_Classification.C -+++ b/tutorials/tmva/TMVA_Higgs_Classification.C -@@ -72,9 +72,8 @@ Define now input data file and signal and background trees - if (!inputFile) { - // download file from Cernbox location - Info("TMVA_Higgs_Classification","Download Higgs_data.root file"); -+ TFile::SetCacheFileDir("."); - inputFile = TFile::Open(inputFileLink, "CACHEREAD"); -- //gSystem->Exec( TString::Format("wget -O %s %s",inputFileName.Data(), downloadLinkFile.Data() ) ); -- //inputFile = TFile::Open( inputFileName); - if (!inputFile) { - Error("TMVA_Higgs_Classification","Input file cannot be downloaded - exit"); - return; --- -2.26.2 - diff --git a/root-srm-ifce-deps.patch b/root-srm-ifce-deps.patch deleted file mode 100644 index 929d799..0000000 --- a/root-srm-ifce-deps.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 7e8706b21dc62fc7b56709cf03c2650c715e5b64 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Wed, 19 Aug 2020 20:23:15 +0200 -Subject: [PATCH] When building ROOT's libGFAL using gfal2, srm-ifce is not a - build dependency. - ---- - cmake/modules/FindGFAL.cmake | 14 +++++++++----- - 1 file changed, 9 insertions(+), 5 deletions(-) - -diff --git a/cmake/modules/FindGFAL.cmake b/cmake/modules/FindGFAL.cmake -index 71163a1714..74028ac5a7 100644 ---- a/cmake/modules/FindGFAL.cmake -+++ b/cmake/modules/FindGFAL.cmake -@@ -17,22 +17,26 @@ find_path(GFAL_INCLUDE_DIR NAMES gfal_api.h - HINTS ${GFAL_DIR}/include $ENV{GFAL_DIR}/include) - find_library(GFAL_LIBRARY NAMES gfal gfal2 - HINTS ${GFAL_DIR}/lib $ENV{GFAL_DIR}/lib) --find_path(SRM_IFCE_INCLUDE_DIR gfal_srm_ifce_types.h -- HINTS ${SRM_IFCE_DIR}/include $ENV{SRM_IFCE_DIR}/include) - - set(GFAL_LIBRARIES ${GFAL_LIBRARY}) --set(GFAL_INCLUDE_DIRS ${GFAL_INCLUDE_DIR} ${SRM_IFCE_INCLUDE_DIR}) -+set(GFAL_INCLUDE_DIRS ${GFAL_INCLUDE_DIR}) - - if(GFAL_LIBRARY MATCHES gfal2) - # use pkg-config to get the directories for glib and then use these values - find_package(PkgConfig) - pkg_check_modules(GLIB2 REQUIRED glib-2.0) - list(APPEND GFAL_INCLUDE_DIRS ${GLIB2_INCLUDE_DIRS}) -+ set(GFAL_DEP GLIB2_INCLUDE_DIRS) -+else() -+ find_path(SRM_IFCE_INCLUDE_DIR gfal_srm_ifce_types.h -+ HINTS ${SRM_IFCE_DIR}/include $ENV{SRM_IFCE_DIR}/include) -+ list(APPEND GFAL_INCLUDE_DIRS ${SRM_IFCE_INCLUDE_DIR}) -+ set(GFAL_DEP SRM_IFCE_INCLUDE_DIR) - endif() - - # handle the QUIETLY and REQUIRED arguments and set GFAL_FOUND to TRUE if - # all listed variables are TRUE - include(FindPackageHandleStandardArgs) --find_package_handle_standard_args(GFAL DEFAULT_MSG GFAL_INCLUDE_DIR SRM_IFCE_INCLUDE_DIR GFAL_LIBRARY) -+find_package_handle_standard_args(GFAL DEFAULT_MSG GFAL_INCLUDE_DIR ${GFAL_DEP} GFAL_LIBRARY) - --mark_as_advanced(GFAL_FOUND GFAL_INCLUDE_DIR GFAL_LIBRARY SRM_IFCE_INCLUDE_DIR GLIB_INCLUDE_DIR) -+mark_as_advanced(GFAL_FOUND GFAL_INCLUDE_DIR GFAL_LIBRARY SRM_IFCE_INCLUDE_DIR GLIB2_INCLUDE_DIRS) --- -2.26.2 - diff --git a/root-stressGraphics.patch b/root-stressGraphics.patch deleted file mode 100644 index c7ac170..0000000 --- a/root-stressGraphics.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 141dc7359fa890b081802532b97c25eeb5be5ee1 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Mon, 29 Jun 2020 12:53:07 +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 38474d0549..2aecf462e8 100644 ---- a/test/stressGraphics.ref -+++ b/test/stressGraphics.ref -@@ -3,7 +3,7 @@ Test# PS1Ref# PS1Err# PDFRef# PDFErr# GIFRef# GIFErr# JPGRef# JP - 2 4627 600 14506 100 7608 1500 13368 7900 9208 3000 4690 600 - 3 452 50 12632 50 4797 350 11232 4200 3796 10700 492 50 - 4 23617 1500 19386 100 43077 12000 143320 123000 45665 11000 24908 1500 -- 5 1025 150 12802 150 19715 2900 33468 9900 30846 5000 1072 200 -+ 5 1025 150 12802 200 19715 2900 33468 9900 30846 5000 1072 200 - 6 430 50 12669 50 4041 400 9558 100 5325 700 471 50 - 7 4980 50 13893 50 8215 310 16143 1300 12230 500 5011 70 - 8 5442 80 13473 50 9599 150 18430 700 12398 300 5469 80 -@@ -41,7 +41,7 @@ Test# PS1Ref# PS1Err# PDFRef# PDFErr# GIFRef# GIFErr# JPGRef# JP - 40 38312 200 56877 250 47205 3900 36524 11800 119641 8000 38121 200 - 41 15025 3000 29289 500 34091 1500 42525 11300 33336 3900 14787 4000 - 42 254604 5000 383258 7000 34608 5000 55666 30400 46534 6500 259594 7000 -- 43 4846 150 14075 100 24281 200 33239 600 25303 300 4877 150 -+ 43 4846 150 14075 150 24281 200 33239 600 25303 300 4877 150 - 44 1435879 150000 12837 100 96029 4000 25972 100 359846 15000 1085792 250000 - 45 5884 500 16577 200 30259 3500 40706 14000 30026 4000 0 0 - 46 5723 700 15720 200 14291 2600 32236 11000 16916 3200 5670 800 --- -2.26.2 - 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-unbundle-gtest.patch b/root-unbundle-gtest.patch deleted file mode 100644 index 6821f22..0000000 --- a/root-unbundle-gtest.patch +++ /dev/null @@ -1,109 +0,0 @@ -diff -ur root-6.22.00.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.22.00/cmake/modules/SearchInstalledSoftware.cmake ---- root-6.22.00.orig/cmake/modules/SearchInstalledSoftware.cmake 2020-06-14 17:51:48.000000000 +0200 -+++ root-6.22.00/cmake/modules/SearchInstalledSoftware.cmake 2020-06-21 18:29:13.973655810 +0200 -@@ -1592,100 +1592,17 @@ - - #---Download googletest-------------------------------------------------------------- - if (testing) -- # FIXME: Remove our version of gtest in roottest. We can reuse this one. -- # Add googletest -- # http://stackoverflow.com/questions/9689183/cmake-googletest -+ # Workaround for missing libraries in Fedora's gmock packaging < 1.8.0 -+ if(EXISTS ${CMAKE_SOURCE_DIR}/googlemock) -+ set(_G_LIBRARY_PATH ${CMAKE_SOURCE_DIR}/googlemock) - -- set(_gtest_byproduct_binary_dir -- ${CMAKE_CURRENT_BINARY_DIR}/googletest-prefix/src/googletest-build) -- set(_gtest_byproducts -- ${_gtest_byproduct_binary_dir}/lib/libgtest.a -- ${_gtest_byproduct_binary_dir}/lib/libgtest_main.a -- ${_gtest_byproduct_binary_dir}/lib/libgmock.a -- ${_gtest_byproduct_binary_dir}/lib/libgmock_main.a -- ) -- -- if(MSVC) -- set(EXTRA_GTEST_OPTS -- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=${_gtest_byproduct_binary_dir}/lib/ -- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_MINSIZEREL:PATH=${_gtest_byproduct_binary_dir}/lib/ -- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=${_gtest_byproduct_binary_dir}/lib/ -- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO:PATH=${_gtest_byproduct_binary_dir}/lib/ -- -Dgtest_force_shared_crt=ON -- BUILD_COMMAND ${CMAKE_COMMAND} --build --config Release) -- endif() -- if(APPLE) -- set(EXTRA_GTEST_OPTS -- -DCMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT}) -- endif() -- -- ExternalProject_Add( -- googletest -- GIT_REPOSITORY https://github.com/google/googletest.git -- GIT_SHALLOW 1 -- GIT_TAG release-1.10.0 -- UPDATE_COMMAND "" -- # TIMEOUT 10 -- # # Force separate output paths for debug and release builds to allow easy -- # # identification of correct lib in subsequent TARGET_LINK_LIBRARIES commands -- # CMAKE_ARGS -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=DebugLibs -- # -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=ReleaseLibs -- # -Dgtest_force_shared_crt=ON -- CMAKE_ARGS -G ${CMAKE_GENERATOR} -- -DCMAKE_BUILD_TYPE=Release -- -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -- -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -- -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -- -DCMAKE_CXX_FLAGS=${ROOT_EXTERNAL_CXX_FLAGS} -- -DCMAKE_AR=${CMAKE_AR} -- -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -- ${EXTRA_GTEST_OPTS} -- # Disable install step -- INSTALL_COMMAND "" -- BUILD_BYPRODUCTS ${_gtest_byproducts} -- # Wrap download, configure and build steps in a script to log output -- LOG_DOWNLOAD ON -- LOG_CONFIGURE ON -- LOG_BUILD ON) -- -- # Specify include dirs for gtest and gmock -- ExternalProject_Get_Property(googletest source_dir) -- set(GTEST_INCLUDE_DIR ${source_dir}/googletest/include) -- set(GMOCK_INCLUDE_DIR ${source_dir}/googlemock/include) -- # Create the directories. Prevents bug https://gitlab.kitware.com/cmake/cmake/issues/15052 -- file(MAKE_DIRECTORY ${GTEST_INCLUDE_DIR} ${GMOCK_INCLUDE_DIR}) -- -- # Libraries -- ExternalProject_Get_Property(googletest binary_dir) -- set(_G_LIBRARY_PATH ${binary_dir}/lib/) -- -- # Use gmock_main instead of gtest_main because it initializes gtest as well. -- # Note: The libraries are listed in reverse order of their dependancies. -- foreach(lib gtest gtest_main gmock gmock_main) -+ foreach(lib gmock gmock_main) - add_library(${lib} IMPORTED STATIC GLOBAL) -- set_target_properties(${lib} PROPERTIES -- IMPORTED_LOCATION "${_G_LIBRARY_PATH}${CMAKE_STATIC_LIBRARY_PREFIX}${lib}${CMAKE_STATIC_LIBRARY_SUFFIX}" -- INTERFACE_INCLUDE_DIRECTORIES "${GTEST_INCLUDE_DIRS}" -- ) -- add_dependencies(${lib} googletest) -- if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND -- ${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER_EQUAL 9) -- target_compile_options(${lib} INTERFACE -Wno-deprecated-copy) -- endif() - endforeach() -- # Once we require at least cmake 3.11, target_include_directories will work for imported targets -- # Because of https://gitlab.kitware.com/cmake/cmake/-/merge_requests/1264 -- # We need this workaround: -- SET_PROPERTY(TARGET gtest APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${GTEST_INCLUDE_DIR}) -- SET_PROPERTY(TARGET gmock APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${GMOCK_INCLUDE_DIR}) -- #target_include_directories(gtest INTERFACE ${GTEST_INCLUDE_DIR}) -- #target_include_directories(gmock INTERFACE ${GMOCK_INCLUDE_DIR}) -- -- set_property(TARGET gtest PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX}) -- set_property(TARGET gtest_main PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX}) - set_property(TARGET gmock PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gmock${CMAKE_STATIC_LIBRARY_SUFFIX}) - set_property(TARGET gmock_main PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gmock_main${CMAKE_STATIC_LIBRARY_SUFFIX}) - -+ endif() - endif() - - #------------------------------------------------------------------------------------ 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-werror-fix.patch b/root-werror-fix.patch deleted file mode 100644 index 341cca9..0000000 --- a/root-werror-fix.patch +++ /dev/null @@ -1,57 +0,0 @@ -From a5185f2cdf509314970c1b332c5926283f6962e2 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Mon, 22 Jun 2020 09:21:23 +0200 -Subject: [PATCH] Fix too aggressive -Werror replacements - -The replacements removes the -Werror option for externals, which is -intended. However, it also replaces e.g. -Werror=format-security with -=format-security, which results in compilation failures due to the -unknown option =format-security. ---- - builtins/davix/CMakeLists.txt | 2 +- - cmake/modules/SearchInstalledSoftware.cmake | 2 +- - interpreter/CMakeLists.txt | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/builtins/davix/CMakeLists.txt b/builtins/davix/CMakeLists.txt -index 52614ae2e0..c9b291ec45 100644 ---- a/builtins/davix/CMakeLists.txt -+++ b/builtins/davix/CMakeLists.txt -@@ -21,7 +21,7 @@ foreach(lib davix neon) - list(APPEND DAVIX_LIBRARIES ${DAVIX_PREFIX}/lib/${libname}) - endforeach() - --string(REPLACE "-Werror" "" DAVIX_CXX_FLAGS ${CMAKE_CXX_FLAGS}) -+string(REPLACE "-Werror " "" DAVIX_CXX_FLAGS "${CMAKE_CXX_FLAGS} ") - - ExternalProject_Add(DAVIX - URL ${DAVIX_URL}/davix-${DAVIX_VERSION}.tar.gz -diff --git a/cmake/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake -index ad63f08cd0..36aa88d8cf 100644 ---- a/cmake/modules/SearchInstalledSoftware.cmake -+++ b/cmake/modules/SearchInstalledSoftware.cmake -@@ -9,7 +9,7 @@ include(ExternalProject) - include(FindPackageHandleStandardArgs) - - set(lcgpackages http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources) --string(REPLACE "-Werror" "" ROOT_EXTERNAL_CXX_FLAGS ${CMAKE_CXX_FLAGS}) -+string(REPLACE "-Werror " "" ROOT_EXTERNAL_CXX_FLAGS "${CMAKE_CXX_FLAGS} ") - - macro(find_package) - if(NOT "${ARGV0}" IN_LIST ROOT_BUILTINS) -diff --git a/interpreter/CMakeLists.txt b/interpreter/CMakeLists.txt -index 0f43893443..1274758410 100644 ---- a/interpreter/CMakeLists.txt -+++ b/interpreter/CMakeLists.txt -@@ -140,7 +140,7 @@ if(gcctoolchain) - endif() - - # We will not fix llvm or clang. --string(REPLACE "-Werror" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) -+string(REPLACE "-Werror " "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ") - - if(LLVM_SHARED_LINKER_FLAGS) - set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${LLVM_SHARED_LINKER_FLAGS}") --- -2.26.2 - diff --git a/root-xproofd.patch b/root-xproofd.patch deleted file mode 100644 index a62c8d7..0000000 --- a/root-xproofd.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 0a752f33834a3520a7f18433f48bc9e1e9d32cea Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Sun, 30 Aug 2020 05:46:42 +0200 -Subject: [PATCH] Only install the xproofd script and man page if xproofd - option is on - ---- - CMakeLists.txt | 7 ++++++- - cmake/modules/RootConfiguration.cmake | 4 ++-- - 2 files changed, 8 insertions(+), 3 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 76f6ad93b3..b37a1bbe70 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -528,7 +528,12 @@ if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_INSTALL_PREFIX) - if(webgui) - install(DIRECTORY ui5/ DESTINATION ${CMAKE_INSTALL_OPENUI5DIR}) - endif() -- install(DIRECTORY man/ DESTINATION ${CMAKE_INSTALL_MANDIR}) -+ if(xproofd AND xrootd AND ssl) -+ set(MAN_PATT_EXCL) -+ else() -+ set(MAN_PATT_EXCL PATTERN xproofd.1 EXCLUDE) -+ endif() -+ install(DIRECTORY man/ DESTINATION ${CMAKE_INSTALL_MANDIR} ${MAN_PATT_EXCL}) - install(DIRECTORY tutorials/ DESTINATION ${CMAKE_INSTALL_TUTDIR} COMPONENT tests) - install(FILES - cmake/modules/RootMacros.cmake -diff --git a/cmake/modules/RootConfiguration.cmake b/cmake/modules/RootConfiguration.cmake -index 151235aa4e..a71ac72101 100644 ---- a/cmake/modules/RootConfiguration.cmake -+++ b/cmake/modules/RootConfiguration.cmake -@@ -819,7 +819,7 @@ configure_file(${CMAKE_SOURCE_DIR}/config/setxrd.sh ${CMAKE_RUNTIME_OUTPUT_DIREC - configure_file(${CMAKE_SOURCE_DIR}/config/proofserv.in ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/proofserv @ONLY NEWLINE_STYLE UNIX) - configure_file(${CMAKE_SOURCE_DIR}/config/roots.in ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/roots @ONLY NEWLINE_STYLE UNIX) - configure_file(${CMAKE_SOURCE_DIR}/config/root-help.el.in root-help.el @ONLY NEWLINE_STYLE UNIX) --if (XROOTD_FOUND AND XROOTD_NOMAIN) -+if(xproofd AND xrootd AND ssl AND XROOTD_NOMAIN) - configure_file(${CMAKE_SOURCE_DIR}/config/xproofd.in ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/xproofd @ONLY NEWLINE_STYLE UNIX) - endif() - if(WIN32) -@@ -857,7 +857,7 @@ install(FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/memprobe - WORLD_EXECUTE WORLD_READ - DESTINATION ${CMAKE_INSTALL_BINDIR}) - --if (XROOTD_FOUND AND XROOTD_NOMAIN) -+if(xproofd AND xrootd AND ssl AND XROOTD_NOMAIN) - install(FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/xproofd - PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ - GROUP_EXECUTE GROUP_READ --- -2.26.2 - diff --git a/root.spec b/root.spec index 03e7056..4cd9565 100644 --- a/root.spec +++ b/root.spec @@ -1,60 +1,51 @@ -%undefine __cmake_in_source_build -%undefine __cmake3_in_source_build +# Disable package note flags, since root saves the compiler/linker flags +# used during the build +%undefine _package_note_flags -%if %{?fedora}%{!?fedora:0} >= 31 || %{?rhel}%{!?rhel:0} >= 8 -# Don't build python2-root for Fedora >= 31 -%global buildpy2 0 -%else -%global buildpy2 1 -%endif - -%if %{buildpy2} -%global python2_version_uscore %(tr . _ <<< "%{python2_version}") -%endif -%global python3_version_uscore %(tr . _ <<< "%{python3_version}") - -%global py3_soabi %([ -x %{__python3} ] && %{__python3} -c "from distutils import sysconfig; print(sysconfig.get_config_vars().get('SOABI'))") - -%if %{?fedora}%{!?fedora:0} >= 24 || %{?rhel}%{!?rhel:0} >= 8 -# Building the experimental ROOT 7 classes requires c++-14. -# This is the default for gcc 6.1 and later. %global root7 1 +%global dataframe 1 +%global roofit 1 +%global tmvasofieparser 1 +%global distrdf %{dataframe} + +%global bundlejson 0 + +%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 10 +%ifarch %{ix86} %{arm} +%global pandas 0 %else -%global root7 0 +%global pandas 1 +%endif +%else +%global pandas 0 %endif -%if %{?fedora}%{!?fedora:0} >= 33 || %{?rhel}%{!?rhel:0} >= 7 -%global xrootd5 1 +%if "%{?dist}" == ".el10_0" +# R not available in EPEL 10.0 +%global rrr 0 %else -%global xrootd5 0 +%global rrr 1 %endif -%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8 -# Multi-threading support requires TBB version >= 2018 -%global tbb 1 +%if %{?fedora}%{!?fedora:0} >= 40 || %{?rhel}%{!?rhel:0} >= 10 +%global roofitmp 1 %else -%global tbb 0 +%global roofitmp 0 %endif -# Do not create .orig files when patching source -%global _default_patch_flags --no-backup-if-mismatch - # Do not generate autoprovides for Python modules -%global __provides_exclude_from ^(%{?python2_sitearch:%{python2_sitearch}|}%{python3_sitearch})/lib.*\\.so$ +%global __provides_exclude_from ^%{python3_sitearch}/.*/lib.*\\.so$ Name: root -Version: 6.22.08 +Version: 6.38.00 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 6%{?dist} Summary: Numerical data analysis framework -License: LGPLv2+ +License: LGPL-2.1-or-later URL: https://root.cern/ -# The upstream source is modified to exclude proprietary fonts: -# wget -N https://root.cern/download/root_v%%{version}.source.tar.gz -# tar -z -x -f root_v%%{version}.source.tar.gz -# find root-%%{version}/fonts -type f -a '!' -name 'STIX*' -exec rm {} ';' -# tar -J -c --group root --owner root -f root-%%{version}.tar.xz root-%%{version} +# The upstream source is modified to exclude proprietary fonts +# See Source8 for how to create Source0 Source0: %{name}-%{version}.tar.xz # Input data for the tests Source1: %{name}-testfiles.tar.xz @@ -69,106 +60,61 @@ Source6: application-x-root.png # Instructions for setting up a python virtual environment # for running the JupyROOT notebook on EPEL 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/v2.2/clad-2.2.tar.gz # Use system fonts Patch0: %{name}-fontconfig.patch -# Revert the removal of DataFrame for 32 bit architectures -Patch1: %{name}-32bit-dataframe.patch -# Unbundle gtest -Patch2: %{name}-unbundle-gtest.patch -# Use local static script and style files for JupyROOT -Patch3: %{name}-jupyroot-static.patch -# Fedora's llvm patches -Patch4: %{name}-PowerPC-Don-t-use-xscvdpspn-on-the-P7.patch -Patch5: %{name}-Fix-return-type-in-ORC-readMem-client-interface.patch -Patch6: %{name}-PPC-Avoid-non-simple-MVT-in-STBRX-optimization.patch -# Reduce memory usage of build -# Do not link rootcling_stage1 and libCling in parallel -Patch7: %{name}-memory-usage.patch # Reduce memory usage during linking on ARM and x86 by generating -# smaller debuginfo for the llmv libraries. -# Fedora builders run out of memory with the default setting. -Patch8: %{name}-memory-arm-x86.patch +# smaller debuginfo for the llvm libraries +# Fedora builders run out of memory with the default setting +Patch1: %{name}-memory-arm-x86.patch # Don't install minicern static library -Patch9: %{name}-dont-install-minicern.patch +Patch2: %{name}-dont-install-minicern.patch # Do not export Python modules in CMake config -Patch10: %{name}-no-export-python-modules.patch -# Don't create documentation notebooks -Patch11: %{name}-doc-no-notebooks.patch -# Don't run tutorials that crash during doc generation -Patch12: %{name}-doxygen-crash.patch -# Compatibility with older gtest -Patch13: %{name}-old-gtest-compat.patch -# Fix -Wmissing-field-initializers in python bindings for -# Python 3.8 and 3.9 -# https://github.com/root-project/root/pull/5158 -Patch14: %{name}-python3.8-object.patch +Patch3: %{name}-no-export-python-modules.patch # Run some test on 32 bit that upstream has disabled -Patch15: %{name}-32bit-tests.patch -# Workaround for initialization problems for PyROOT on -# EPEL7 ppc64le -# https://sft.its.cern.ch/jira/browse/ROOT-10622 -Patch16: %{name}-epel7-ppc64le-pyroot.patch -# Fix test failure on ppc64le and aarch64 -# https://github.com/root-project/root/pull/5867 -Patch17: %{name}-roostats-test-ppc64le-aarch64.patch -# Fix too aggressive -Werror replacements -# https://github.com/root-project/root/pull/5902 -Patch18: %{name}-werror-fix.patch -# Add missing call to TFile::SetCacheFileDir in a TMVA tutorial -# https://github.com/root-project/root/pull/5944 -Patch19: %{name}-setcachefiledir.patch -# Adjust stressGraphics.ref -# https://github.com/root-project/root/pull/5957 -Patch20: %{name}-stressGraphics.patch -# Fix off-by-one error in histogram v7 bin iterator -# https://github.com/root-project/root/pull/5958 -Patch21: %{name}-histv7-bin-iterator.patch -# Add back line accidentally removed in root-config -# https://github.com/root-project/root/pull/6236 -Patch22: %{name}-config-restore.patch -# Fix the RNTuple.LargeFile test on 32bit (i386 and armv7hf) -# https://github.com/root-project/root/pull/5977 -Patch23: %{name}-ntuple-largefile.patch -# Headers in new PyROOT are not installed with COMPONENT headers -# https://github.com/root-project/root/pull/6237 -Patch24: %{name}-install-headers-with-COMPONENT-headers.patch -# Fix doxygen issues -# https://github.com/root-project/root/pull/6029 -Patch25: %{name}-doxygen-filenames.patch -Patch26: %{name}-doxygen-endof-part2.patch -Patch27: %{name}-doxygen-parameter-names.patch -Patch28: %{name}-doxygen-macro-name.patch -Patch29: %{name}-doxygen-missing-underscore.patch -Patch30: %{name}-doxygen-md-comments.patch -# Fix bad regex in TProofMgr -# https://github.com/root-project/root/pull/6030 -Patch31: %{name}-fix-bad-regex.patch -# Increase timeout for ppc64le -# https://github.com/root-project/root/pull/6246 -Patch32: %{name}-increase-timeout-for-ppc64le.patch -# Only install the xproofd script and man page if option is on -# https://github.com/root-project/root/pull/6281 -Patch33: %{name}-xproofd.patch -# Avoid unneeded build requirement on srm-ifce-devel -# https://github.com/root-project/root/pull/6233 -Patch34: %{name}-srm-ifce-deps.patch -# Fix a shadow warning -# https://github.com/root-project/root/pull/6029 -Patch35: %{name}-fix-a-shadow-warning.patch -# Do not attempt to load_library the ROOT Pythonizations module -# https://github.com/root-project/root/pull/6883 -Patch36: %{name}-do-not-load_library-libROOTPythonizations.patch -# Filter out additional vDSO names for ppc -# https://github.com/root-project/root/pull/6887 -Patch37: %{name}-linux-vdso.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 +Patch4: %{name}-32bit-tests.patch +# Adjust test/stressGraphics.ref +# 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 +# Preserve memory during parallel build +# https://github.com/root-project/root/pull/18991 +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 +# Backport fixes to python module +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 +# 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 BuildRequires: make -BuildRequires: cmake3 >= 3.9 +BuildRequires: cmake >= 3.20 BuildRequires: libX11-devel BuildRequires: libXpm-devel BuildRequires: libXft-devel @@ -177,89 +123,77 @@ BuildRequires: fontconfig-devel BuildRequires: freetype-devel BuildRequires: fcgi-devel BuildRequires: ftgl-devel -BuildRequires: glew-devel BuildRequires: gl2ps-devel -BuildRequires: pcre-devel +BuildRequires: glew-devel +BuildRequires: pcre2-devel BuildRequires: zlib-devel BuildRequires: xz-devel BuildRequires: lz4-devel BuildRequires: xxhash-devel BuildRequires: libzstd-devel -# Require a version of libAfterImage that is properly linked to -# its dependencies -BuildRequires: libAfterImage-devel >= 1.20-21 +BuildRequires: libtiff-devel +BuildRequires: libpng-devel +BuildRequires: giflib-devel +BuildRequires: libjpeg-devel BuildRequires: ncurses-devel BuildRequires: libxml2-devel BuildRequires: fftw-devel BuildRequires: gsl-devel BuildRequires: unuran-devel -%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8 -BuildRequires: mariadb-connector-c-devel -%else -BuildRequires: mysql-devel -%endif BuildRequires: sqlite-devel -BuildRequires: unixODBC-devel -BuildRequires: mesa-libGL-devel -BuildRequires: mesa-libGLU-devel -%if %{?fedora}%{!?fedora:0} >= 27 || %{?rhel}%{!?rhel:0} >= 8 -BuildRequires: libpq-devel -%else -BuildRequires: postgresql-devel -%endif -%if %{buildpy2} -BuildRequires: python2-devel -%endif -BuildRequires: python%{python3_pkgversion}-devel -%if %{root7} -%ifarch %{qt5_qtwebengine_arches} -BuildRequires: qt5-qtbase-devel -BuildRequires: qt5-qtwebengine-devel -%endif +BuildRequires: libGL-devel +BuildRequires: libGLU-devel +BuildRequires: libxcrypt-devel +BuildRequires: python%{python3_pkgversion}-devel >= 3.7 +BuildRequires: python%{python3_pkgversion}-setuptools +BuildRequires: python%{python3_pkgversion}-numpy +%ifarch %{qt6_qtwebengine_arches} +BuildRequires: qt6-qtbase-devel +BuildRequires: qt6-qtwebengine-devel %endif BuildRequires: openssl-devel BuildRequires: libtool-ltdl-devel BuildRequires: desktop-file-utils BuildRequires: dcap-devel -%if %{xrootd5} BuildRequires: xrootd-client-devel >= 1:5.0.0 -%else -BuildRequires: xrootd-client-devel >= 1:3.3.5 -BuildRequires: xrootd-private-devel >= 1:3.3.5 -%endif BuildRequires: cfitsio-devel -BuildRequires: davix-devel >= 0.2.8 -BuildRequires: gfal2-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 -BuildRequires: readline-devel -%if %{tbb} -BuildRequires: tbb-devel >= 2018 %endif -BuildRequires: emacs -BuildRequires: emacs-el -BuildRequires: gcc-c++ -BuildRequires: gcc-gfortran +BuildRequires: readline-devel +BuildRequires: tbb-devel >= 2020 +BuildRequires: libuuid-devel BuildRequires: graphviz-devel BuildRequires: expat-devel BuildRequires: pythia8-devel >= 8.1.80 -%if %{?fedora}%{!?fedora:0} >= 33 BuildRequires: flexiblas-devel -# Required for FlexiBLAS support in FindBLAS.cmake -# (in cmake 3.19.0, backported to cmake 3.18.3-1 in Fedora) -BuildRequires: cmake-data >= 3.18.3-1 -%else -BuildRequires: openblas-devel +%if ! %{bundlejson} +BuildRequires: json-devel >= 3.9 +%endif +BuildRequires: liburing-devel +%if %{tmvasofieparser} +BuildRequires: protobuf-devel >= 3.0 +%endif +%ifnarch %{ix86} %{arm} +BuildRequires: libarrow-devel +%endif +%if %{roofit} +%if %{roofitmp} +# Required for roofit-multiprocess +# Requires new zeromq with zmq_ppoll +BuildRequires: zeromq-devel >= 4.3.5 +BuildRequires: cppzmq-devel +%endif +%endif +%if %{pandas} +BuildRequires: python%{python3_pkgversion}-pandas %endif -BuildRequires: python%{python3_pkgversion}-numpy -BuildRequires: doxygen -BuildRequires: graphviz -BuildRequires: yuicompressor BuildRequires: perl-generators BuildRequires: gtest-devel BuildRequires: gmock-devel -# Some of the tests call lsb_release -BuildRequires: redhat-lsb-core # Fonts BuildRequires: font(freesans) BuildRequires: font(freeserif) @@ -270,16 +204,17 @@ BuildRequires: font(z003) BuildRequires: font(droidsansfallback) # With gdb installed test failures will show backtraces BuildRequires: gdb +# Defines _jsdir +BuildRequires: web-assets-devel Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} 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 -Requires: emacs-filesystem >= %{_emacs_version} -Provides: emacs-%{name} = %{version}-%{release} -Provides: emacs-%{name}-el = %{version}-%{release} Obsoletes: emacs-%{name} < 5.34.28 Obsoletes: emacs-%{name}-el < 5.34.28 @@ -293,9 +228,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 @@ -319,27 +252,20 @@ 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 +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. -%package doc -Summary: Documentation for the ROOT system -BuildArch: noarch -License: LGPLv2+ and GPLv2+ and BSD -Requires: mathjax - -%description doc -This package contains the automatically generated ROOT class -documentation. - %package tutorial Summary: ROOT tutorial scripts and test suite BuildArch: noarch @@ -350,8 +276,8 @@ This package contains the tutorial scripts and test suite for ROOT. %package core Summary: ROOT core libraries -License: LGPLv2+ and BSD -Requires: %{name}-fonts = %{version}-%{release} +License: LGPL-2.1-or-later AND LGPL-2.0-or-later AND ISC AND MIT AND NCSA +Requires: %{name}-font-files = %{version}-%{release} Requires: %{name}-icons = %{version}-%{release} # Dynamic dependencies Requires: %{name}-cling%{?_isa} = %{version}-%{release} @@ -372,9 +298,19 @@ Requires: %{name}-multiproc%{?_isa} = %{version}-%{release} Requires: %{name}-net%{?_isa} = %{version}-%{release} Requires: %{name}-physics%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} +%if %{dataframe} Requires: %{name}-tree-dataframe%{?_isa} = %{version}-%{release} +%endif +Requires: %{name}-tree-ntuple%{?_isa} = %{version}-%{release} +Requires: %{name}-tree-ntuple-utils%{?_isa} = %{version}-%{release} Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} Requires: %{name}-vecops%{?_isa} = %{version}-%{release} +# To resolve dependency in installed ROOTConfig.cmake +%if %{bundlejson} +Provides: bundled(json-devel) = 3.10.5 +%else +Requires: json-devel >= 3.9 +%endif # Fonts Requires: xorg-x11-fonts-ISO8859-1-75dpi Requires: font(freesans) @@ -387,6 +323,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 @@ -399,17 +336,22 @@ 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 -%if ! %{buildpy2} -Obsoletes: python2-%{name} < %{version}-%{release} -Obsoletes: python2-jupyroot < %{version}-%{release} -Obsoletes: python2-jsmva < %{version}-%{release} -Obsoletes: %{name}-rootaas < 6.08.00 -%endif -%if %{?rhel}%{!?rhel:0} == 7 -Obsoletes: python%{?python3_other_pkgversion}-%{name} < 6.22.00 -Obsoletes: python%{?python3_other_pkgversion}-jupyroot < 6.22.00 -Obsoletes: python%{?python3_other_pkgversion}-jsmva < 6.22.00 -%endif +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 +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}-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, @@ -426,7 +368,7 @@ This package provides ROOT's multi-processor support library: libMultiProc. %package cling Summary: Cling C++ interpreter -License: NCSA and (NCSA or LGPLv2+) +License: (NCSA OR LGPL-2.1-only) AND (Apache-2.0 WITH LLVM-exception OR NCSA) AND BSD-2-Clause AND BSD-3-Clause AND MIT Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} # Root's cling interpreter uses a particular git commit of @@ -434,10 +376,10 @@ Requires: %{name}-io%{?_isa} = %{version}-%{release} # not work with the system libraries. The bundled llvm and # clang are compiled using -fvisibility=hidden, and are not # visible outside of the libCling module. -Requires: gcc-c++ -Requires: redhat-rpm-config Provides: bundled(clang-libs) Provides: bundled(llvm-libs) +Requires: gcc-c++ +Requires: redhat-rpm-config Obsoletes: %{name}-cint7 < 5.26.00c Obsoletes: %{name}-cint < 6.00.00 Obsoletes: %{name}-cintex < 6.00.00 @@ -447,6 +389,13 @@ Obsoletes: %{name}-reflex < 6.00.00 Cling is an interactive C++ interpreter, built on top of Clang and LLVM compiler infrastructure. +%package testsupport +Summary: Unit test support library for ROOT +Requires: %{name}-core%{?_isa} = %{version}-%{release} + +%description testsupport +This package contains the unit test support library for ROOT. + %package tpython Summary: ROOT's TPython interface Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -458,54 +407,9 @@ Obsoletes: python%{python3_pkgversion}-%{name} < 6.22.00 This package contains ROOT's TPython interface. It makes it possible to call Python from ROOT. -%if %{buildpy2} -%package -n python2-%{name} -Summary: Python extension for ROOT -%{?python_provide:%python_provide python2-%{name}} -Provides: %{name}-python = %{version}-%{release} -Obsoletes: %{name}-python < 6.08.00 -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} - -%description -n python2-%{name} -This package contains the Python extension for ROOT. It makes it -possible to use ROOT classes in Python. - -%package -n python2-jupyroot -Summary: ROOT Jupyter kernel -%{?python_provide:%python_provide python2-jupyroot} -Requires: python2-%{name}%{?_isa} = %{version}-%{release} -Requires: python2-jsmva = %{version}-%{release} -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-notebook = %{version}-%{release} -%if %{?fedora}%{!?fedora:0} >= 26 -# python-metakernel for python2 not available in -# Fedora <= 25 or RHEL/EPEL - some functionality missing -Requires: python2-ipython -Requires: python2-metakernel -%endif -%if %{?fedora}%{!?fedora:0} >= 28 -Requires: python-jupyter-filesystem -%endif -Obsoletes: %{name}-rootaas < 6.08.00 - -%description -n python2-jupyroot -The Jupyter kernel for the ROOT notebook. - -%package -n python2-jsmva -Summary: TMVA interface used by JupyROOT -BuildArch: noarch -%{?python_provide:%python_provide python2-jsmva} -Requires: %{name}-tmva = %{version}-%{release} - -%description -n python2-jsmva -TMVA interface used by JupyROOT. -%endif - %package -n python%{python3_pkgversion}-%{name} Summary: Python extension for ROOT -%{?python_provide:%python_provide python%{python3_pkgversion}-%{name}} +%py_provides python%{python3_pkgversion}-%{name} Provides: %{name}-python%{python3_pkgversion} = %{version}-%{release} Obsoletes: %{name}-python%{python3_pkgversion} < 6.08.00 Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -513,6 +417,7 @@ 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 +Obsoletes: python%{python3_pkgversion}-jsmva < 6.32.00 %description -n python%{python3_pkgversion}-%{name} This package contains the Python extension for ROOT. It makes it @@ -520,33 +425,42 @@ possible to use ROOT classes in Python. %package -n python%{python3_pkgversion}-jupyroot Summary: ROOT Jupyter kernel -%{?python_provide:%python_provide python%{python3_pkgversion}-jupyroot} -Requires: python%{python3_pkgversion}-%{name}%{?_isa} = %{version}-%{release} -Requires: python%{python3_pkgversion}-jsmva = %{version}-%{release} -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-notebook = %{version}-%{release} -%if %{?fedora}%{!?fedora:0} >= 26 -# python-metakernel for python3 not available in -# Fedora <= 25 or RHEL/EPEL - some functionality missing +BuildArch: noarch +%py_provides python%{python3_pkgversion}-jupyroot +Requires: python%{python3_pkgversion}-%{name} = %{version}-%{release} +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.10 +%if %{?fedora}%{!?fedora:0} || ( %{?rhel}%{!?rhel:0} >= 10 && "%{?dist}" != ".el10_0" ) +# jupyter-notebook not available in RHEL/EPEL +# some functionality missing +Requires: jupyter-notebook +# python-metakernel not available in RHEL/EPEL +# some functionality missing Requires: python%{python3_pkgversion}-ipython Requires: python%{python3_pkgversion}-metakernel -%endif -%if %{?fedora}%{!?fedora:0} >= 28 Requires: python-jupyter-filesystem %endif %description -n python%{python3_pkgversion}-jupyroot The Jupyter kernel for the ROOT notebook. -%package -n python%{python3_pkgversion}-jsmva -Summary: TMVA interface used by JupyROOT +%if %{distrdf} +%package -n python%{python3_pkgversion}-distrdf +Summary: Distributed RDataFrame BuildArch: noarch -%{?python_provide:%python_provide python%{python3_pkgversion}-jsmva} -Requires: %{name}-tmva = %{version}-%{release} +%py_provides python%{python3_pkgversion}-distrdf +Requires: python%{python3_pkgversion}-%{name} = %{version}-%{release} +Requires: %{name}-tree-dataframe = %{version}-%{release} -%description -n python%{python3_pkgversion}-jsmva -TMVA interface used by JupyROOT. +%description -n python%{python3_pkgversion}-distrdf +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} @@ -573,6 +487,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 @@ -586,17 +501,53 @@ This package contains a genetic minimizer module for ROOT. %package geom Summary: Geometry library for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +# Package split (geom-builder and geom-painter from geom) +Obsoletes: %{name}-geom < 6.28.00 + +%description geom +This package contains a library for defining geometries in ROOT. + +%package geom-builder +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}-graf3d%{?_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) +Obsoletes: %{name}-geom < 6.28.00 + +%description geom-builder +This package contains a library for building geometries in 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} +Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} 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 -This package contains a library for defining geometries in ROOT. +%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 + +%description geom-painter +This package contains a library for drawing geometries in ROOT. %package gdml Summary: GDML import/export for ROOT geometries @@ -622,13 +573,12 @@ 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} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -# Require a version of libAfterImage that is properly linked to -# its dependencies -Requires: libAfterImage >= 1.20-21 %description graf-asimage This package contains the AfterImage renderer for ROOT, which allows @@ -652,6 +602,7 @@ Summary: Canvas and pad library for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} # Dynamic dependency Requires: %{name}-graf-postscript%{?_isa} = %{version}-%{release} @@ -730,6 +681,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} @@ -776,6 +728,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} @@ -844,6 +798,7 @@ in ROOT. %package gui-recorder Summary: Interface for recording and replaying events in ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} Requires: %{name}-gui%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} @@ -856,6 +811,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} @@ -908,36 +871,10 @@ Requires: %{name}-hist%{?_isa} = %{version}-%{release} %description spectrum-painter This package contains a painter of spectra for ROOT. -%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}-matrix%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit-core%{?_isa} = %{version}-%{release} -Requires: %{name}-roostats%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} - -%description hist-factory -Create RooFit probability density functions from ROOT histograms. - -%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} +Requires: liburing-devel %description io This package provides I/O routines for ROOT objects. @@ -950,14 +887,6 @@ Requires: %{name}-io%{?_isa} = %{version}-%{release} %description io-dcache This package contains the dCache extension for ROOT. -%package io-gfal -Summary: Grid File Access Library input/output library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} - -%description io-gfal -This package contains the Grid File Access Library extension for ROOT. - %package io-sql Summary: SQL input/output library for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1003,7 +932,7 @@ easier to use for the average user. %package fftw Summary: FFTW library for ROOT -License: GPLv2+ +License: GPL-2.0-or-later Requires: %{name}-core%{?_isa} = %{version}-%{release} %description fftw @@ -1033,14 +962,14 @@ 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 This package contains the MathCore library for ROOT. %package mathmore Summary: GSL interface library for ROOT -License: GPLv2+ +License: GPL-2.0-or-later Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} @@ -1159,7 +1088,7 @@ discriminating variables. %package unuran Summary: Random number generator library -License: GPLv2+ +License: GPL-2.0-or-later Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} @@ -1188,17 +1117,6 @@ Obsoletes: %{name}-tree-player < 6.14.00 %description vecops This package contains a vector operation extension for ROOT. -%package memstat -Summary: Memory statistics tool for use with ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} - -%description memstat -This package contains the memory statistics tool for debugging memory -leaks and such. - %package montecarlo-eg Summary: Event generator library for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1217,21 +1135,10 @@ Requires: %{name}-montecarlo-eg%{?_isa} = %{version}-%{release} %description montecarlo-pythia8 This package contains the Pythia version 8 plug-in for ROOT. This -package provide the ROOT user with transparent interface to the Pythia +package provides the ROOT user with transparent interface to the Pythia (version 8) event generators for hadronic interactions. If the term "hadronic" does not ring any bells, this package is not for you. -%package montecarlo-vmc -Summary: Virtual Monte-Carlo (simulation) library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-geom%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-montecarlo-eg%{?_isa} = %{version}-%{release} -Requires: %{name}-physics%{?_isa} = %{version}-%{release} - -%description montecarlo-vmc -This package contains the VMC library for ROOT. - %package net Summary: Net library for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1241,16 +1148,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 @@ -1258,7 +1165,7 @@ This package contains the basic authentication algorithms used by ROOT. %package net-davix Summary: Davix extension for ROOT -Requires: davix-libs%{?_isa} >= 0.2.8 +Requires: davix-libs%{?_isa} >= 0.6.4 Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} @@ -1268,9 +1175,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 +Requires: js-jsroot >= 7.10 # Library split (net-httpsniff from net-http) Obsoletes: %{name}-net-http < 6.14.00 @@ -1302,99 +1211,18 @@ Requires: %{name}-net%{?_isa} = %{version}-%{release} %description netx This package contains the NetX extension for ROOT, i.e. a client for -the xrootd server. Both the old (NetX) and the new (NetXNG) version are -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 -%if %{xrootd5} -Obsoletes: %{name}-xproof < %{version}-%{release} -%endif - -%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}-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 ! %{xrootd5} -%package xproof -Summary: XPROOF extension for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_isa} = %{version}-%{release} -Requires: %{name}-proof%{?_isa} = %{version}-%{release} -# Dynamic dependency -Requires: %{name}-net-rpdutils%{?_isa} = %{version}-%{release} -Requires: xrootd-server%{?_isa} - -%description xproof -This package contains the xproof extension for ROOT. This provides a -client to be used in a PROOF environment. -%endif +the xrootd server. Only the new (NetXNG) version is provided. +%if %{roofit} %package roofit Summary: ROOT extension for modeling expected distributions - toolkit -License: BSD +License: BSD-2-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} 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}-roofit-batchcompute%{?_isa} = %{version}-%{release} Requires: %{name}-roofit-core%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} # Package split / Library split (from roofit) @@ -1417,7 +1245,7 @@ This package contains the RooFit toolkit classes. %package roofit-core Summary: ROOT extension for modeling expected distributions - core -License: BSD +License: BSD-2-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-foam%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} @@ -1425,10 +1253,17 @@ 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} +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 +# 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 @@ -1447,7 +1282,7 @@ This package contains the core RooFit classes. %package roofit-more Summary: ROOT extension for modeling expected distributions - more -License: BSD +License: BSD-2-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} Requires: %{name}-mathmore%{?_isa} = %{version}-%{release} @@ -1470,9 +1305,98 @@ suitable for adoption in different disciplines as well. This package contains RooFit classes that use the mathmore library. +%package roofit-batchcompute +Summary: Optimized computation functions for PDFs +License: BSD-2-Clause +Requires: %{name}-core%{?_isa} = %{version}-%{release} + +%description roofit-batchcompute +While fitting, a significant amount of time and processing power is +spent on computing the probability function for every event and PDF +involved in the fitting model. To speed up this process, roofit can +use the computation functions provided in this library. The functions +provided here process whole data arrays (batches) instead of a single +event at a time, as in the legacy evaluate() function in roofit. In +addition, the code is written in a manner that allows for compiler +optimizations, notably auto-vectorization. This library is compiled +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. + +%package roofit-hs3 +Summary: RooFit HS3 +License: BSD-2-Clause +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-hist-factory%{?_isa} = %{version}-%{release} +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} + +%description roofit-hs3 +When using RooFit, statistical models can be conveniently handled and +stored as a RooWorkspace. However, for the sake of interoperability +with other statistical frameworks, and also ease of manipulation, it +may be useful to store statistical models in text form. This library +sets out to achieve exactly that, exporting to and importing from JSON +and YML. + +%package roofit-jsoninterface +Summary: JSON interface to RooFit +License: BSD-2-Clause +Requires: %{name}-core%{?_isa} = %{version}-%{release} + +%description roofit-jsoninterface +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 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 +License: BSD-2-Clause +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-roofit-zmq%{?_isa} = %{version}-%{release} + +%description roofit-multiprocess +This package contains a library providing classes that implement +mult-process support for RooFit. + +%package roofit-zmq +Summary: ZeroMQ interface library for RooFit +License: BSD-2-Clause + +%description roofit-zmq +This package contains a helper library used by RooFit::MultiProcess to +interface to the ZeroMQ library. +%endif + %package roostats Summary: Statistical tools built on top of RooFit -License: BSD Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} @@ -1491,26 +1415,54 @@ Obsoletes: %{name}-roofit < 6.20.00 RooStats is a package containing statistical tools built on top of RooFit. -%package sql-mysql -Summary: MySQL client plugin for ROOT +%package hist-factory +Summary: RooFit PDFs from ROOT histograms Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_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}-roostats%{?_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. +%description hist-factory +Create RooFit probability density functions from ROOT histograms. -%package sql-odbc -Summary: ODBC plugin for ROOT +%package xroofit +Summary: Extra tools for RooFit projects +License: BSD-2-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_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} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Requires: %{name}-matrix%{?_isa} = %{version}-%{release} +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 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. +%description xroofit +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 extra tools for RooFit projects. +%endif %package sql-sqlite Summary: Sqlite client plugin for ROOT @@ -1523,20 +1475,9 @@ 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. - %package tmva Summary: Toolkit for multivariate data analysis -License: BSD +License: BSD-3-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} @@ -1551,6 +1492,8 @@ Requires: %{name}-multiproc%{?_isa} = %{version}-%{release} Requires: %{name}-net%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} +# Library split (tmva-utils from tmva) +Obsoletes: %{name}-tmva < 6.28.08 %description tmva The Toolkit for Multivariate Analysis (TMVA) provides a @@ -1572,19 +1515,35 @@ evaluation). In addition all these methods can be tested in parallel, and hence their performance on a particular data set may easily be compared. +%if %{dataframe} +%package tmva-utils +Summary: Toolkit for multivariate data analysis (dataframe utilities) +License: BSD-3-Clause +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +# Library split (tmva-utils from tmva) +Obsoletes: %{name}-tmva < 6.28.08 + +%description tmva-utils +TMVA utilities using dataframe. +%endif + %package tmva-python Summary: Toolkit for multivariate data analysis (Python) -License: BSD +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 Python integration with TMVA. +%if %{rrr} %package tmva-r Summary: Toolkit for multivariate data analysis (R) -License: BSD +License: BSD-3-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-matrix%{?_isa} = %{version}-%{release} Requires: %{name}-r%{?_isa} = %{version}-%{release} @@ -1592,10 +1551,35 @@ 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) +generates C++ functions easily invokable for the fast inference of +trained neural network models. It takes ONNX model files as inputs and +produces C++ header files that can be included and utilized in a +"plug-and-go" style. + +%if %{tmvasofieparser} +%package tmva-sofie-parser +Summary: ROOT/TMVA SOFIE Parsers +License: BSD-3-Clause AND MIT +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-tmva-sofie%{?_isa} = %{version}-%{release} + +%description tmva-sofie-parser +Parsers for ROOT/TMVA SOFIE +%endif %package tmva-gui Summary: Toolkit for multivariate data analysis GUI -License: BSD +License: BSD-3-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} @@ -1605,6 +1589,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 @@ -1619,6 +1604,7 @@ Requires: %{name}-net%{?_isa} = %{version}-%{release} %description tree This package contains the Tree library for ROOT. +%if %{dataframe} %package tree-dataframe Summary: A high level interface to ROOT trees Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1626,15 +1612,15 @@ 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) Obsoletes: %{name}-tree-player < 6.14.00 %description tree-dataframe This package contains a high level interface to ROOT trees. +%endif %package tree-player Summary: Library to loop over a ROOT tree @@ -1670,6 +1656,17 @@ Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} %description tree-viewer This package contains a plugin for browsing a ROOT tree in ROOT. +%package tree-webviewer +Summary: ROOT tree web viewer library for ROOT +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} + +%description tree-webviewer +This package contains a plugin for browsing a ROOT tree in a web GUI. + %package unfold Summary: Distribution unfolding Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1689,19 +1686,119 @@ Requires: python%{python3_pkgversion}-%{name} = %{version}-%{release} The ROOT command line utilities is a set of scripts for common tasks written in python. -%package notebook -Summary: Static files for the Jupyter ROOT Notebook -BuildArch: noarch -Requires: %{name}-core = %{version}-%{release} -Requires: js-jsroot -%if %{?fedora}%{!?fedora:0} >= 26 -# jupyter-notebook not available in -# Fedora <= 25 or RHEL/EPEL - some functionality missing -Requires: jupyter-notebook +%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} + +%description gui-webdisplay +This package contains a web display extension for ROOT. + +%ifarch %{qt6_qtwebengine_arches} +%package gui-qt6webdisplay +Summary: Qt6 Web display +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} +Requires: %{name}-net-http%{?_isa} = %{version}-%{release} + +%description gui-qt6webdisplay +This package contains a Qt6 web display extension for ROOT. %endif -%description notebook -Javascript and style files for the Jupyter ROOT Notebook. +%package gui-webgui6 +Summary: Web based GUI for ROOT +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} +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. + +%package gui-browsable +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 + +%description gui-browsable +This package contains ROOT GUI browsable providers. + +%package gui-browserv7 +Summary: ROOT file browser and browser widgets +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-geom%{?_isa} = %{version}-%{release} +Requires: %{name}-geom-webviewer%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-gui-browsable%{?_isa} = %{version}-%{release} +Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} +Requires: %{name}-gui-webgui6%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} +Requires: %{name}-tree-webviewer%{?_isa} = %{version}-%{release} +# Package split (gui-browserv7-v7 from gui-browserv7) +Obsoletes: %{name}-gui-browserv7 < 6.32.06 + +%description gui-browserv7 +This package contains the ROOT file browser (RBrowser) and browser widgets. + +%package geom-webviewer +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} + +%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). + +%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 @@ -1723,9 +1820,12 @@ 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-webdisplay%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} Requires: %{name}-montecarlo-eg%{?_isa} = %{version}-%{release} @@ -1737,29 +1837,33 @@ Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} %description graf3d-eve7 This package contains a library for defining event displays in ROOT 7. -%package gui-browsable -Summary: GUI browsable (ROOT 7) +%package gui-browsable-v7 +Summary: Additional ROOT GUI browsable providers (ROOT 7) Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpadv7%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} - -%description gui-browsable -This package contains GUI browsable components for ROOT 7. - -%package gui-browserv7 -Summary: Browser (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-browsable%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-webgui6%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_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 -%description gui-browserv7 -This package contains a file browser for ROOT 7. +%description gui-browsable-v7 +This package contains additional ROOT GUI browsable providers for ROOT 7. + +%package gui-browserv7-v7 +Summary: Additional ROOT browser widgets (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-browserv7%{?_isa} = %{version}-%{release} +# Package split (gui-browserv7-v7 from gui-browserv7) +Obsoletes: %{name}-gui-browserv7 < 6.32.06 + +%description gui-browserv7-v7 +This package contains additional ROOT browser widgets for ROOT 7. %package gui-canvaspainter Summary: Canvas painter (ROOT 7) @@ -1775,6 +1879,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} @@ -1784,199 +1889,115 @@ Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} This package contains a library to show a pop-up dialog when fitting various kinds of data. -%ifarch %{qt5_qtwebengine_arches} -%package gui-qt5webdisplay -Summary: Qt5 Web display (ROOT 7) -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 7. -%endif - -%package gui-webdisplay -Summary: Web display (ROOT 7) -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-net-http%{?_isa} = %{version}-%{release} - -%description gui-webdisplay -This package contains a web display extension for ROOT 7. - -%package gui-webgui6 -Summary: Web based GUI for ROOT -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-webdisplay%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} - -%description gui-webgui6 -This package provides a Web based GUI for ROOT. - %package histv7 -Summary: Histogram library for ROOT (ROOT 7) +Summary: Histogram library for 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} -Requires: %{name}-io%{?_isa} = %{version}-%{release} - -%description tree-ntuple -This package contains an ntuple extension for ROOT 7. %endif %prep -%setup -q -a 1 +%setup -q -a 1 -a 9 -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 -%patch9 -p1 -%patch10 -p1 -%patch11 -p1 -%patch12 -p1 -%patch13 -p1 -%patch14 -p1 -%patch15 -p1 -%patch16 -p1 -%patch17 -p1 -%patch18 -p1 -%patch19 -p1 -%patch20 -p1 -%patch21 -p1 -%patch22 -p1 -%patch23 -p1 -%patch24 -p1 -%patch25 -p1 -%patch26 -p1 -%patch27 -p1 -%patch28 -p1 -%patch29 -p1 -%patch30 -p1 -%patch31 -p1 -%patch32 -p1 -%patch33 -p1 -%patch34 -p1 -%patch35 -p1 -%patch36 -p1 -%patch37 -p1 +%patch -P0 -p1 +%patch -P1 -p1 +%patch -P2 -p1 +%patch -P3 -p1 +%patch -P4 -p1 +%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 +%patch -P15 -p1 +%patch -P16 -p1 +%patch -P17 -p1 # Remove bundled sources in order to be sure they are not used # * afterimage -rm -rf graf2d/asimage/src/libAfterImage +rm -rf graf2d/asimage/src/libAfterImage/{libjpeg,libpng,libungif,zlib} +sed '/zlib\/zlib.h/d' -i graf2d/asimage/src/libAfterImage/.depend # * ftgl rm -rf graf3d/ftgl/src graf3d/ftgl/inc # * freetype rm -rf graf2d/freetype/src -# * davix, glew, lz4, openssl, pcre, xxhash, zlib, zstd -rm -rf builtins +# * glew, lz4, nlohmann, pcre, xxhash, zlib, zstd +rm -rf builtins/glew +rm -rf builtins/lz4 +%if ! %{bundlejson} +rm -rf builtins/nlohmann +%endif +rm -rf builtins/pcre +rm -rf builtins/xxhash +rm -rf builtins/zlib +rm -rf builtins/zstd # * lzma -rm -rf core/lzma/src/*.tar.gz +rm core/lzma/src/*.tar.gz # * gl2ps rm graf3d/gl/src/gl2ps.cxx graf3d/gl/src/gl2ps/gl2ps.h # * unuran -rm -rf math/unuran/src/*.tar.gz -# * xrootd-private-devel headers -rm -rf proof/xrdinc +rm math/unuran/src/*.tar.gz # * x11 extension headers rm -rf graf2d/x11/inc/X11 -# * mathjax -rm -rf documentation/doxygen/mathjax.tar.gz -sed /mathjax.tar.gz/d -i documentation/doxygen/Makefile -%if %{root7} -# * 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 js/* +rm -rf js/[^f]* js/files/draw.htm js/files/online.htm -# Fix file permissions -chmod -x interpreter/llvm/src/lib/Target/X86/X86EvexToVex.cpp - -# Remove unsupported man page macros -sed -e '/^\.UR/d' -e '/^\.UE/d' -i man/man1/* - -# Work around missing libraries in Fedora's gmock packaging < 1.8.0 -if [ ! -r %{_libdir}/libgmock.so ] ; then -mkdir googlemock -pushd googlemock -g++ %{optflags} -DGTEST_HAS_PTHREAD=1 -c -o gmock-all.o /usr/src/gmock/gmock-all.cc -ar rv libgmock.a gmock-all.o -g++ %{optflags} -DGTEST_HAS_PTHREAD=1 -c -o gmock_main.o /usr/src/gmock/gmock_main.cc -ar rv libgmock_main.a gmock_main.o -popd -fi - -# Remove pre-minified script and style files -rm etc/notebook/JsMVA/js/*.min.js -rm etc/notebook/JsMVA/css/*.min.css +# Additional documentation +install -p -m 644 %{SOURCE7} bindings/jupyroot %build +%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} +%endif unset QTDIR unset QTLIB unset QTINC -# Minify script and style files -for s in etc/notebook/JsMVA/js/*.js ; do - yuicompressor ${s} -o ${s%.js}.min.js -done -for s in etc/notebook/JsMVA/css/*.css ; do - yuicompressor ${s} -o ${s%.css}.min.css -done - -# Avoid overlinking (this used to be the default with the old configure script) -LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" - -%cmake3 \ +%cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \ -DCMAKE_INSTALL_LIBDIR:PATH=%{_libdir}/%{name} \ + -DCMAKE_INSTALL_PYTHONDIR:PATH=%{python3_sitearch} \ -DCMAKE_INSTALL_SYSCONFDIR:PATH=%{_datadir}/%{name} \ -DCMAKE_INSTALL_DOCDIR:PATH=%{_pkgdocdir} \ - -DCMAKE_INSTALL_ELISPDIR:PATH=%{_emacs_sitelispdir}/%{name} \ + -DCMAKE_SKIP_INSTALL_RPATH:BOOL=ON \ + -DPython3_EXECUTABLE:PATH=%{__python3} \ -Dgnuinstall:BOOL=ON \ - -Dbuiltin_afterimage:BOOL=OFF \ -Dbuiltin_cfitsio:BOOL=OFF \ + -Dbuiltin_civetweb:BOOL=ON \ -Dbuiltin_clang:BOOL=ON \ + -Dbuiltin_cling:BOOL=ON \ + -Dbuiltin_cppzmq:BOOL=OFF \ -Dbuiltin_davix:BOOL=OFF \ -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 \ +%if %{bundlejson} + -Dbuiltin_nlohmannjson:BOOL=ON \ +%else + -Dbuiltin_nlohmannjson:BOOL=OFF \ +%endif -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 \ @@ -1984,72 +2005,82 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dbuiltin_veccore:BOOL=OFF \ -Dbuiltin_xrootd:BOOL=OFF \ -Dbuiltin_xxhash:BOOL=OFF \ + -Dbuiltin_zeromq:BOOL=OFF \ -Dbuiltin_zlib:BOOL=OFF \ -Dbuiltin_zstd:BOOL=OFF \ - -Dalien:BOOL=OFF \ +%ifnarch %{ix86} %{arm} + -Darrow:BOOL=ON \ +%else -Darrow:BOOL=OFF \ +%endif -Dasimage:BOOL=ON \ + -Dasimage_tiff:BOOL=ON \ -Dccache:BOOL=OFF \ + -Ddistcc:BOOL=OFF \ -Dcefweb:BOOL=OFF \ - -Dclad:BOOL=OFF \ + -Dcheck_connection:BOOL=OFF \ + -Dclad:BOOL=ON \ + -DCLAD_SOURCE_DIR:PATH=${PWD}/clad-2.2 \ -Dcocoa:BOOL=OFF \ -Dcuda:BOOL=OFF \ -%if %{root7} - -DCMAKE_CXX_STANDARD=14 \ - -Droot7:BOOL=ON \ - -Dwebgui:BOOL=ON \ -%else - -DCMAKE_CXX_STANDARD=11 \ - -Droot7:BOOL=OFF \ - -Dwebgui:BOOL=OFF \ -%endif - -Dcxxmodules:BOOL=OFF \ + -Ddaos:BOOL=OFF \ +%if %{dataframe} -Ddataframe:BOOL=ON \ +%else + -Ddataframe:BOOL=OFF \ +%endif -Ddavix:BOOL=ON \ -Ddcache:BOOL=ON \ -Ddev:BOOL=OFF \ - -Dexceptions:BOOL=ON \ + -Dexperimental_adaptivecpp=OFF \ + -Dexperimental_genvectorx=OFF \ -Dfcgi:BOOL=ON \ -Dfftw3:BOOL=ON \ -DFIREFOX_EXECUTABLE:PATH=/usr/bin/firefox \ -Dfitsio:BOOL=ON \ -Dfortran:BOOL=ON \ -Dgdml:BOOL=ON \ - -Dgfal:BOOL=ON \ - -Dgsl_shared:BOOL=ON \ + -Dgeom:BOOL=ON \ + -Dgeombuilder:BOOL=ON \ -Dgviz:BOOL=ON \ -Dhttp:BOOL=ON \ -%if %{tbb} -Dimt:BOOL=ON \ -%else - -Dimt:BOOL=OFF \ -%endif - -Djemalloc:BOOL=OFF \ -Dlibcxx:BOOL=OFF \ -Dmathmore:BOOL=ON \ -Dmemory_termination:BOOL=OFF \ - -Dmemstat:BOOL=ON \ - -Dminuit2:BOOL=ON \ - -Dmlp:BOOL=ON \ - -Dmonalisa:BOOL=OFF \ + -Dminuit2_mpi:BOOL=OFF \ + -Dminuit2_omp:BOOL=ON \ -Dmpi:BOOL=OFF \ - -Dmysql:BOOL=ON \ - -Dodbc:BOOL=ON \ -Dopengl:BOOL=ON \ - -Doracle:BOOL=OFF \ - -Dpgsql:BOOL=ON \ - -Dpythia6:BOOL=OFF \ - -Dpythia8:BOOL=ON \ -Dpyroot:BOOL=ON \ - -Dpyroot_legacy:BOOL=OFF \ -%ifarch %{qt5_qtwebengine_arches} - -Dqt5web:BOOL=ON \ + -Dpythia8:BOOL=ON \ +%ifarch %{qt6_qtwebengine_arches} + -Dqt6web:BOOL=ON \ %else - -Dqt5web:BOOL=OFF \ + -Dqt6web:BOOL=OFF \ %endif +%if %{rrr} -Dr:BOOL=ON \ +%else + -Dr:BOOL=OFF \ +%endif +%if %{roofit} -Droofit:BOOL=ON \ - -Drpath:BOOL=OFF \ +%if %{roofitmp} + -Droofit_multiprocess:BOOL=ON \ +%else + -Droofit_multiprocess:BOOL=OFF \ +%endif +%else + -Droofit:BOOL=OFF \ + -Droofit_multiprocess:BOOL=OFF \ +%endif + -Droofit_hs3_ryml:BOOL=OFF \ +%if %{root7} + -Droot7:BOOL=ON \ +%else + -Droot7:BOOL=OFF \ +%endif -Druby:BOOL=OFF \ -Druntime_cxxmodules:BOOL=OFF \ -Dshadowpw:BOOL=ON \ @@ -2058,45 +2089,51 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dspectrum:BOOL=ON \ -Dsqlite:BOOL=ON \ -Dssl:BOOL=ON \ - -Dtcmalloc:BOOL=OFF \ + -Dthisroot_scripts:BOOL=OFF \ -Dtmva:BOOL=ON \ -%if %{tbb} -Dtmva-cpu:BOOL=ON \ -%else - -Dtmva-cpu:BOOL=OFF \ -%endif + -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 + -Dtmva-sofie:BOOL=OFF \ +%endif + -Dtpython:BOOL=ON \ + -Dunfold:BOOL=ON \ -Dunuran:BOOL=ON \ + -During:BOOL=ON \ -Dvc:BOOL=OFF \ -Dvdt:BOOL=OFF \ -Dveccore:BOOL=OFF \ -Dvecgeom:BOOL=OFF \ - -Dvmc:BOOL=ON \ + -Dwebgui:BOOL=ON \ -Dx11:BOOL=ON \ -Dxml:BOOL=ON \ -Dxrootd:BOOL=ON \ -%if %{xrootd5} - -Dxproofd:BOOL=OFF \ -%else - -Dxproofd:BOOL=ON \ -%endif -Dfail-on-missing:BOOL=ON \ -Dtesting:BOOL=ON \ + -Dtestsupport:BOOL=ON \ + -Dtest_distrdf_pyspark:BOOL=OFF \ + -Dtest_distrdf_dask:BOOL=OFF \ -Dclingtest:BOOL=OFF \ -Dcoverage:BOOL=OFF \ -Droottest:BOOL=OFF \ -Drootbench:BOOL=OFF \ -Dasan:BOOL=OFF -%cmake3_build +%cmake_build %install -%cmake3_install +%cmake_install -# Do emacs byte compilation -emacs -batch -no-site-file -f batch-byte-compile \ - %{buildroot}%{_emacs_sitelispdir}/%{name}/*.el +# Let rpm redo the python byte compilation +find %{buildroot}%{python3_sitearch} -depth -type d -name __pycache__ -exec rm -r {} ';' # Install desktop entry and icon mkdir -p %{buildroot}%{_datadir}/applications @@ -2111,125 +2148,67 @@ install -p -m 644 %{SOURCE5} %{buildroot}%{_datadir}/mime/packages install -p -m 644 %{SOURCE6} \ %{buildroot}%{_datadir}/icons/hicolor/48x48/mimetypes -# Additional documentation -install -p -m 644 %{SOURCE7} %{buildroot}%{_pkgdocdir} - # Move python cli helper to its own directory mkdir -p %{buildroot}%{_datadir}/%{name}/cli -mv %{buildroot}%{_libdir}/%{name}/cmdLineUtils.py* \ +mv %{buildroot}%{python3_sitearch}/cmdLineUtils.py \ %{buildroot}%{_datadir}/%{name}/cli -rm %{buildroot}%{_libdir}/%{name}/__pycache__/cmdLineUtils.* sed -e '/^\#!/d' -i %{buildroot}%{_datadir}/%{name}/cli/cmdLineUtils.py # Install GDB pretty printers to auto load safe path -# These are installed (in libdir) by "make install" if CMAKE_BUILD_TYPE -# matches Debug or RelWithDebInfo mkdir -p %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name} -install -p -m 644 build/gdbPrinters/libCore.so-gdb.py \ - %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name}/libCore.so.%{version}-gdb.py -install -p -m 644 build/gdbPrinters/libRooFitCore.so-gdb.py \ - %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name}/libRooFitCore.so.%{version}-gdb.py +mv %{buildroot}%{_libdir}/%{name}/*-gdb.py \ + %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name} -# Do python byte compilation (for non-standard paths) -%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8 -# This is the default for Fedora 30+, set it for Fedora 28-29 -%global _python_bytecompile_extra 0 -%py_byte_compile %{__python3} %{buildroot}%{_datadir}/%{name}/cli -%py_byte_compile %{__python3} %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name} -%endif - -%if %{buildpy2} - -# Move the python modules to sitearch/sitelib -mkdir -p %{buildroot}%{python2_sitearch} - -cp -pr %{buildroot}%{_libdir}/%{name}/cppyy %{buildroot}%{python2_sitearch} -ln -s ../../root/libcppyy%{python2_version_uscore}.so.%{version} \ - %{buildroot}%{python2_sitearch}/libcppyy%{python2_version_uscore}.so - -cp -pr %{buildroot}%{_libdir}/%{name}/cppyy_backend %{buildroot}%{python2_sitearch} -ln -s ../../root/libcppyy_backend%{python2_version_uscore}.so.%{version} \ - %{buildroot}%{python2_sitearch}/libcppyy_backend%{python2_version_uscore}.so - -cp -pr %{buildroot}%{_libdir}/%{name}/ROOT %{buildroot}%{python2_sitearch} -mv %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python2_version_uscore}.so.%{version} \ - %{buildroot}%{python2_sitearch}/libROOTPythonizations%{python2_version_uscore}.so -rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python2_version_uscore}.so.%{libversion} -rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python2_version_uscore}.so - -cp -pr %{buildroot}%{_libdir}/%{name}/JupyROOT %{buildroot}%{python2_sitearch} -mv %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python2_version_uscore}.so.%{version} \ - %{buildroot}%{python2_sitearch}/libJupyROOT%{python2_version_uscore}.so -rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python2_version_uscore}.so.%{libversion} -rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python2_version_uscore}.so - -mkdir -p %{buildroot}%{python2_sitelib} -cp -pr %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python2_sitelib} - -# Create empty .egg-info files so that rpm auto-generates provides -touch %{buildroot}%{python2_sitearch}/ROOT-%{version}.egg-info -touch %{buildroot}%{python2_sitearch}/JupyROOT-%{version}.egg-info -touch %{buildroot}%{python2_sitelib}/JsMVA-%{version}.egg-info - -%endif - -# Move the python modules to sitearch/sitelib -mkdir -p %{buildroot}%{python3_sitearch} - -mv %{buildroot}%{_libdir}/%{name}/cppyy %{buildroot}%{python3_sitearch} -ln -s ../../root/libcppyy%{python3_version_uscore}.so.%{version} \ - %{buildroot}%{python3_sitearch}/libcppyy%{python3_version_uscore}.%{py3_soabi}.so - -mv %{buildroot}%{_libdir}/%{name}/cppyy_backend %{buildroot}%{python3_sitearch} -ln -s ../../root/libcppyy_backend%{python3_version_uscore}.so.%{version} \ - %{buildroot}%{python3_sitearch}/libcppyy_backend%{python3_version_uscore}.so - -mv %{buildroot}%{_libdir}/%{name}/ROOT %{buildroot}%{python3_sitearch} -mv %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python3_version_uscore}.so.%{version} \ - %{buildroot}%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}.%{py3_soabi}.so -rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python3_version_uscore}.so.%{libversion} -rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python3_version_uscore}.so - -mv %{buildroot}%{_libdir}/%{name}/JupyROOT %{buildroot}%{python3_sitearch} -mv %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so.%{version} \ - %{buildroot}%{python3_sitearch}/libJupyROOT%{python3_version_uscore}.%{py3_soabi}.so -rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so.%{libversion} -rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so +# 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 mkdir -p %{buildroot}%{python3_sitelib} -mv %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python3_sitelib} +mv %{buildroot}%{python3_sitearch}/JupyROOT %{buildroot}%{python3_sitelib} +%if %{distrdf} +mv %{buildroot}%{python3_sitearch}/DistRDF %{buildroot}%{python3_sitelib} +%endif +fi -# Create empty .egg-info files so that rpm auto-generates provides -touch %{buildroot}%{python3_sitearch}/ROOT-%{version}.egg-info -touch %{buildroot}%{python3_sitearch}/JupyROOT-%{version}.egg-info -touch %{buildroot}%{python3_sitelib}/JsMVA-%{version}.egg-info +# Create .dist-info files so that rpm auto-generates provides +mkdir %{buildroot}%{python3_sitearch}/ROOT-%{version}.dist-info +echo 'Name: ROOT' > \ + %{buildroot}%{python3_sitearch}/ROOT-%{version}.dist-info/METADATA +echo 'Version: %{version}' >> \ + %{buildroot}%{python3_sitearch}/ROOT-%{version}.dist-info/METADATA +mkdir %{buildroot}%{python3_sitelib}/JupyROOT-%{version}.dist-info +echo 'Name: JupyROOT' > \ + %{buildroot}%{python3_sitelib}/JupyROOT-%{version}.dist-info/METADATA +echo 'Version: %{version}' >> \ + %{buildroot}%{python3_sitelib}/JupyROOT-%{version}.dist-info/METADATA +%if %{distrdf} +mkdir %{buildroot}%{python3_sitelib}/DistRDF-%{version}.dist-info +echo 'Name: DistRDF' > \ + %{buildroot}%{python3_sitelib}/DistRDF-%{version}.dist-info/METADATA +echo 'Version: %{version}' >> \ + %{buildroot}%{python3_sitelib}/DistRDF-%{version}.dist-info/METADATA +%endif # Put jupyter stuff in the right places mkdir -p %{buildroot}%{_datadir}/jupyter/kernels -%if %{buildpy2} -cp -pr %{buildroot}%{_datadir}/%{name}/notebook/kernels/root \ - %{buildroot}%{_datadir}/jupyter/kernels/python2-jupyroot -sed -e 's/ROOT C++/& (Python 2)/' \ - -e 's!python[0-9]*\.[0-9]*!%{__python2}!' \ - -i %{buildroot}%{_datadir}/jupyter/kernels/python2-jupyroot/kernel.json -sed -e '/^\#!/d' \ - -i %{buildroot}%{python2_sitearch}/JupyROOT/kernel/rootkernel.py -%endif - cp -pr %{buildroot}%{_datadir}/%{name}/notebook/kernels/root \ %{buildroot}%{_datadir}/jupyter/kernels/python%{python3_pkgversion}-jupyroot sed -e 's/ROOT C++/& (Python 3)/' \ -e 's!python[0-9]*\.[0-9]*!%{__python3}!' \ -i %{buildroot}%{_datadir}/jupyter/kernels/python%{python3_pkgversion}-jupyroot/kernel.json sed -e '/^\#!/d' \ - -i %{buildroot}%{python3_sitearch}/JupyROOT/kernel/rootkernel.py + -i %{buildroot}%{python3_sitelib}/JupyROOT/kernel/rootkernel.py rm -rf %{buildroot}%{_datadir}/%{name}/notebook/custom rm -rf %{buildroot}%{_datadir}/%{name}/notebook/html rm -rf %{buildroot}%{_datadir}/%{name}/notebook/kernels - -ln -s /usr/share/javascript/jsroot %{buildroot}%{_datadir}/%{name}/notebook +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 @@ -2246,8 +2225,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")' \ @@ -2260,70 +2241,41 @@ 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/example.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 # 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.ALIEN rm %{buildroot}%{_pkgdocdir}/README.CXXMODULES.md -rm %{buildroot}%{_pkgdocdir}/README.MONALISA +rm -rf %{buildroot}%{_datadir}/%{name}/html # Only used on Windows rm %{buildroot}%{_datadir}/%{name}/macros/fileopen.C # Remove plugin definitions for non-built and obsolete plugins pushd %{buildroot}%{_datadir}/%{name}/plugins -rm TDataSetManager/P020_TDataSetManagerAliEn.C -rm TFile/P070_TAlienFile.C +%if ! %{rrr} +rm ROOT@@Math@@Minimizer/P090_RMinimizer.C +%endif rm TGLManager/P020_TGWin32GLManager.C rm TGLManager/P030_TGOSXGLManager.C -rm TGrid/P010_TAlien.C -%if ! %{root7} -rm TGuiFactory/P030_TWebGuiFactory.C -%endif -%if %{xrootd5} -rm TProofMgr/P010_TXProofMgr.C -rm TProofServ/P010_TXProofServ.C -rm TSlave/P010_TXSlave.C -%endif -rm TSQLServer/P040_TOracleServer.C -rm TSystem/P030_TAlienSystem.C rm TVirtualGeoConverter/P010_TGeoVGConverter.C -%if ! %{root7} -rm TVirtualGeoPainter/P020_REveGeoPainter.C -%endif rm TVirtualGLImp/P020_TGWin32GL.C -rm TVirtualMonitoringWriter/P010_TMonaLisaWriter.C rm TVirtualX/P030_TGWin32.C rm TVirtualX/P050_TGQuartz.C -rmdir TGrid -%if %{xrootd5} -rmdir TProofMgr -rmdir TProofServ -rmdir TSlave -%endif rmdir TVirtualGeoConverter popd -# Replace bundled jsroot with symlink to system version -rmdir %{buildroot}%{_datadir}/%{name}/js -ln -s /usr/share/javascript/jsroot %{buildroot}%{_datadir}/%{name}/js +# Replace bundled jsroot with symlinks to system version +for x in build img mathjax modules scripts files/draw.htm files/online.htm ; do + ln -nrs %{buildroot}%{_jsdir}/jsroot/$x \ + %{buildroot}%{_datadir}/%{name}/js/$x +done # Create ldconfig configuration mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d @@ -2332,67 +2284,33 @@ echo %{_libdir}/%{name} > \ # Make ROOTConfig-targets.cmake not error on missing files to work better with # subpackages -%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8 -%global pkgmgr dnf -%else -%global pkgmgr yum -%endif -sed -e '/FATAL.*import/i\ message(WARNING "The imported target \\"\${target}\\" references the file\ - \\"\${file}\\"\ -but this file does not exist. If this target is used you need to install the package that provides this file\ - %{pkgmgr} install \${file}\ +sed -e 's/FATAL_ERROR \(.*imported\)/WARNING \1/' \ + -e '/Possible reasons include/i\ +but this file does not exist.\ +If this target is used you need to install the package that provides this\ +file using \\"dnf install\\".\ If this target is not used this warning can be ignored.")' \ - -e '/FATAL.*import/,/)/d' \ + -e '/Possible reasons include/,/)/d' \ -i %{buildroot}%{_datadir}/%{name}/cmake/ROOTConfig-targets.cmake -# Rename to avoid name clashes -cp -p interpreter/llvm/src/CREDITS.TXT interpreter/llvm/src/llvm-CREDITS.TXT -cp -p interpreter/llvm/src/LICENSE.TXT interpreter/llvm/src/llvm-LICENSE.TXT -cp -p interpreter/llvm/src/README.txt interpreter/llvm/src/llvm-README.txt - -# Generate documentation -pushd documentation/doxygen -mkdir -p doc/html -ln -s /usr/share/javascript/mathjax doc/html/mathjax -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 -# Create the py-hsimple.root file in advance (needed as input) -ROOTIGNOREPREFIX=1 PATH=${PWD}/../../%{_vpath_builddir}/bin:${PATH} \ - ROOTSYS=${PWD}/../../%{_vpath_builddir} \ - LD_LIBRARY_PATH=${PWD}/../../%{_vpath_builddir}/lib \ - PYTHONPATH=${PWD}/../../%{_vpath_builddir}/lib \ - %{__python3} ../../tutorials/pyroot/hsimple.py -ROOTIGNOREPREFIX=1 PATH=${PWD}/../../%{_vpath_builddir}/bin:${PATH} \ - ROOTSYS=${PWD}/../../%{_vpath_builddir} \ - LD_LIBRARY_PATH=${PWD}/../../%{_vpath_builddir}/lib \ - PYTHONPATH=${PWD}/../../%{_vpath_builddir}/lib \ - make DOXYGEN_OUTPUT_DIRECTORY=${PWD}/doc PYTHON_EXECUTABLE=%{__python3} -mv doc/html %{buildroot}%{_pkgdocdir}/html -popd - # Create includelist files ... -for f in `find %{_vpath_builddir} -name cmake_install.cmake -a '!' -path '*/llvm/*'` ; do +for f in `find %{_vpath_builddir} -name cmake_install.cmake -a '!' -path '*/llvm-project/*'` ; do l=`sed 's!%{_vpath_builddir}/\(.*\)/cmake_install.cmake!includelist-\1!' <<< $f` l=`tr / - <<< $l` tmpdir=`mktemp -d` - DESTDIR=$tmpdir cmake3 -DCMAKE_INSTALL_COMPONENT=headers -P $f > /dev/null + DESTDIR=$tmpdir cmake -DCMAKE_INSTALL_COMPONENT=headers -P $f > /dev/null ( cd $tmpdir ; find . -type f) | sort | sed 's!^\.!!' > $l rm -rf $tmpdir done # ... and merge some of them cat includelist-core-{[^mw],m[^au]}* > includelist-core -cat includelist-geom-geom* > includelist-geom cat includelist-graf2d-x11ttf >> includelist-graf2d-x11 cat includelist-graf3d-rglew >> includelist-graf3d-gl -cat includelist-net-netxng > includelist-netx -%if ! %{xrootd5} -cat includelist-net-netx >> includelist-netx -%endif + +# Do python byte compilation (for non-standard paths) +%py_byte_compile %{__python3} %{buildroot}%{_datadir}/%{name}/cli +%py_byte_compile %{__python3} %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name} %check pushd %{_vpath_builddir} @@ -2401,341 +2319,399 @@ 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 +ln -s ../../files/tutorials/df014_CsvDataSource_MuRun2010B.csv CsvDataSource_MuRun2010B.csv +ln -s ../../files/usa.root usa.root popd -pushd tmva/tmva/test/DNN -ln -s ../../../../../files files -popd -pushd tmva/tmva/test/envelope -ln -s ../../../../../files files popd + # Exclude some tests that can not be run # # - 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) # -# - gtest-tree-dataframe-test-datasource-sqlite -# reads sqlite data over network: -# http://root.cern.ch/files/RSqliteDS_test.sqlite -# -# - tutorial-dataframe-df###_SQlite* +# - tutorial-analysis-dataframe-df###_SQlite* # reads sqlite data over network: # http://root.cern.ch/files/root_download_stats.sqlite # -# - gtest-tree-treeplayer-test-treeprocessormt-remotefiles -# - tutorial-dataframe-df102_NanoAODDimuonAnalysis -# - tutorial-dataframe-df103_NanoAODHiggsAnalysis +# - 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-analysis-dataframe-df103_NanoAODHiggsAnalysis(-py)? # reads input data over network: # root://eospublic.cern.ch//eos/root-eos/cms_opendata_2012_nanoaod/ # -# - tutorial-v7-ntuple-ntpl003_lhcbOpenData -# reads input data over network -# http://root.cern.ch/files/LHCb/lhcb_B2HHH_MagnetUp.root (425 MB) +# - 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-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/ # -# - 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-line.cxx -# requires a web browser (and js-jsroot) to render javascript graphics +# - tutorial-io-ntuple-ntpl008_import +# reads input data over network +# http://root.cern.ch/files/HiggsTauTauReduced/GluGluToHToTauTau.root (20 MB) # -# - gtest-io-io-test-RRawFile (*) -# - gtest-net-davix-test-RRawFileDavix +# - tutorial-io-ntuple-ntpl011_global_temperatures +# reads input data over network +# http://root.cern.ch/files/tutorials/GlobalLandTemperaturesByCity.csv +# +# - gtest-net-davix-RRawFileDavix # reads input file over network # http://root.cern.ch/files/davix.test -# (*) one subtest RRawFile.Remote fails, others would be OK # -# - gtest-tmva-tmva-test-rreader -# - gtest-tmva-tmva-test-rstandardscaler -# - tutorial-tmva-tmva003_RReader -# - tutorial-tmva-tmva004_RStandardScaler +# - gtest-net-netxng-RRawFileNetXNG +# reads input file over network +# 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 +# +# - tutorial-machine_learning-tmva100_DataPreparation-py # reads input data over network -# http://root.cern.ch/files/tmva_class_example.root +# root://eospublic.cern.ch/eos/root-eos/cms_opendata_2012_nanoaod/SMHiggsToZZTo4L.root # -# - tutorial-tmva-tmva103_Application -# reads input data over network -# http://root.cern/files/tmva101.root +# - test-webgui-ping +# error: Cannot display window in native # -# - pyunittests-pyroot-numbadeclare -# - tutorial-pyroot-pyroot004_NumbaDeclare-py -# these tests require the numba python module which is not available +# - test-stressgraphics-firefox-skip3d: +# requires firefox... +# +# - test-stressgraphics-svg +# Font metric differences +# +# - tutorial-visualisation-webcanv-fonts_ttf.cxx: +# Requires web graphics 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|\ -gtest-tree-dataframe-test-datasource-sqlite|\ -tutorial-dataframe-df..._SQlite|\ -gtest-tree-treeplayer-test-treeprocessormt-remotefiles|\ -tutorial-dataframe-df102_NanoAODDimuonAnalysis|\ -tutorial-dataframe-df103_NanoAODHiggsAnalysis|\ -tutorial-v7-ntuple-ntpl003_lhcbOpenData|\ -tutorial-v7-ntuple-ntpl004_dimuon|\ -tutorial-v7-line.cxx|\ -gtest-io-io-test-RRawFile|\ -gtest-net-davix-test-RRawFileDavix|\ -gtest-tmva-tmva-test-rreader|\ -gtest-tmva-tmva-test-rstandardscaler|\ -tutorial-tmva-tmva003_RReader|\ -tutorial-tmva-tmva004_RStandardScaler|\ -tutorial-tmva-tmva103_Application|\ -pyunittests-pyroot-numbadeclare|\ -tutorial-pyroot-pyroot004_NumbaDeclare-py" - -%ifarch %{ix86} %{arm} -# Tests failing on 32 bit architectures (dataframe) -# A bit random - not all the tests fail every time... -# - gtest-tree-dataframe-test-dataframe-cache -# - gtest-tree-dataframe-test-dataframe-callbacks -# - gtest-tree-dataframe-test-dataframe-colnames -# - gtest-tree-dataframe-test-dataframe-display -# - gtest-tree-dataframe-test-dataframe-friends -# - gtest-tree-dataframe-test-dataframe-helpers -# - gtest-tree-dataframe-test-dataframe-interface -# - gtest-tree-dataframe-test-dataframe-ranges -# - gtest-tree-dataframe-test-dataframe-simple -# - gtest-tree-dataframe-test-dataframe-snapshot -# - gtest-tree-dataframe-test-datasource-root -# - gtest-tree-dataframe-test-datasource-trivial -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-display|\ -gtest-tree-dataframe-test-dataframe-friends|\ -gtest-tree-dataframe-test-dataframe-helpers|\ -gtest-tree-dataframe-test-dataframe-interface|\ -gtest-tree-dataframe-test-dataframe-ranges|\ -gtest-tree-dataframe-test-dataframe-simple|\ -gtest-tree-dataframe-test-dataframe-snapshot|\ -gtest-tree-dataframe-test-datasource-root|\ -gtest-tree-dataframe-test-datasource-trivial" -%endif - -%ifarch %{arm} -# This test fails on 32 bit arm -# - gtest-tree-tree-test-testBulkApiSillyStruct -excluded="${excluded}|gtest-tree-tree-test-testBulkApiSillyStruct" -%endif - -%ifarch %{power64} aarch64 -# This test fails on ppc64le and aarch64 (but not on x86_64) -# The interpreted version works though, only compiled version fails -# - test-stresshistofit -excluded="${excluded}|test-stresshistofit" -%endif +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-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-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|\ +gtest-net-davix-RRawFileDavix|\ +gtest-net-netxng-RRawFileNetXNG|\ +gtest-net-netxng-TNetXNGFileTest|\ +tutorial-analysis-parallel-mp_processSelector|\ +tutorial-machine_learning-tmva100_DataPreparation-py|\ +test-webgui-ping|\ +test-stressgraphics-firefox-skip3d|\ +test-stressgraphics-svg|\ +tutorial-visualisation-webcanv-fonts_ttf.cxx" %ifarch %{ix86} -# This test fails with "symbol '__atomic_fetch_add_8' unresolved" on ix86 -# https://github.com/root-project/root/issues/6813 -excluded="${excluded}|pyunittests-pyroot-pyz-ttree-branch-attr" +# - 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|\ +tmva-sofie-test-TestCustomModelsFromONNX\$\$" %endif -make test ARGS="%{?_smp_mflags} --output-on-failure -E \"${excluded}\"" -popd - -%if %{?rhel}%{!?rhel:0} == 7 -%post -touch --no-create %{_datadir}/icons/hicolor >/dev/null 2>&1 || : -update-desktop-database >/dev/null 2>&1 || : -update-mime-database %{_datadir}/mime >/dev/null 2>&1 || : - -%postun -if [ $1 -eq 0 ] ; then - touch --no-create %{_datadir}/icons/hicolor >/dev/null 2>&1 - gtk-update-icon-cache %{_datadir}/icons/hicolor >/dev/null 2>&1 || : -fi -update-desktop-database >/dev/null 2>&1 || : -update-mime-database %{_datadir}/mime >/dev/null 2>&1 || : - -%posttrans -gtk-update-icon-cache %{_datadir}/icons/hicolor >/dev/null 2>&1 || : +%ifarch %{power64} +%if %{?fedora}%{!?fedora:0} >= 42 +# - gtest-tree-ntuple-ntuple-emulated +# - gtest-tree-ntuple-ntuple-evolution-shape +# waitpid() failed +excluded="${excluded}|\ +gtest-tree-ntuple-ntuple-emulated|\ +gtest-tree-ntuple-ntuple-evolution-shape" +%endif %endif -%if %{buildpy2} -%pre -n python2-%{name} -if [ -r /var/lib/alternatives/libPyROOT.so ] ; then - for alt in `grep python2.*/.*.so /var/lib/alternatives/libPyROOT.so` ; do - %{_sbindir}/update-alternatives --remove libPyROOT.so $alt - done -fi +%ifarch s390x +# - gtest-roofit-roofitcore-testNaNPacker +# - gtest-roofit-roofitcore-testLikelihoodGradientJob +# Uses "Packed NaN" feature, not implemented for big endian. +excluded="${excluded}|\ +gtest-roofit-roofitcore-testNaNPacker|\ +gtest-roofit-roofitcore-testLikelihoodGradientJob" + +# - gtest-core-dictgen-dictgen-base +# - 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 +# - 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 +# - 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-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-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 +# - test-stresshistofit-interpreted +# - test-stresshistogram +# - test-stresshistogram-interpreted +excluded="${excluded}|\ +gtest-core-dictgen-dictgen-base|\ +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|\ +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|\ +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-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-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\$\$|\ +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) +# 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 + +# 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 +# TTreeRegressions.PrintClustersRounding +# relies on specific versions of compression libraries +# https://github.com/root-project/root/issues/18995 +export GTEST_FILTER=-\ +%ifarch %{ix86} +RNTuple.StdAtomic:\ +TH3D.FillThreadSafe:\ +RDFHelpers.Histo3DThreadSafe:\ +%endif +%ifarch s390x +InterpreterTest.Evaluate:\ +TClingDataMemberInfo.Offset:\ +TTreeReaderBasic.LorentzVector32:\ +%endif +RCsvDS.Remote:\ +RFile.RemoteRead:\ +RNTuple.OpenHTTP:\ +RRawFile.Remote:\ +RSqliteDS.Davix:\ +TChainParsing.DoubleSlash:\ +TChainParsing.RemoteGlob:\ +TFile.ReadWithoutGlobalRegistrationNet:\ +TFile.ReadWithoutGlobalRegistrationWeb:\ +TTreeRegressions.PrintClustersRounding +%ctest -- -E "${excluded}" + +%pretrans net-http -p +path = "%{_datadir}/%{name}/js" +st = posix.stat(path) +if st and st.type == "link" then + os.remove(path) +end + +%post net-http +# Replace bundled jsroot with symlinks to system version +for x in build img mathjax modules scripts files/draw.htm files/online.htm ; do + ln -fnrs %{_jsdir}/jsroot/$x %{_datadir}/%{name}/js/$x +done %pre -n python%{python3_pkgversion}-%{name} if [ -r /var/lib/alternatives/libPyROOT.so ] ; then -%if %{?rhel}%{!?rhel:0} == 7 - for alt in `grep python%{python3_version}/.*.so /var/lib/alternatives/libPyROOT.so` ; do -%else for alt in `grep python3.*/.*.so /var/lib/alternatives/libPyROOT.so` ; do -%endif %{_sbindir}/update-alternatives --remove libPyROOT.so $alt done fi -%post notebook +%post -n python%{python3_pkgversion}-jupyroot mkdir -p /etc/jupyter if [ -e /etc/jupyter/jupyter_notebook_config.py ] ; then - sed '/Extra static path for JupyROOT - start/','/Extra static path for JupyROOT - end/'d -i /etc/jupyter/jupyter_notebook_config.py + sed '/Extra static paths for JupyROOT - start/','/Extra static paths for JupyROOT - end/'d -i /etc/jupyter/jupyter_notebook_config.py fi cat << EOF >> /etc/jupyter/jupyter_notebook_config.py -# Extra static path for JupyROOT - start - do not remove this line -c.NotebookApp.extra_static_paths.append('%{_datadir}/%{name}/notebook') -# Extra static path for JupyROOT - end - do not remove this line +# Extra static paths for JupyROOT - start - do not remove this line +c.NotebookApp.extra_static_paths.append('%{_jsdir}/jsroot') +# Extra static paths for JupyROOT - end - do not remove this line +EOF +if [ -e /etc/jupyter/jupyter_server_config.py ] ; then + sed '/Extra static paths for JupyROOT - start/','/Extra static paths for JupyROOT - end/'d -i /etc/jupyter/jupyter_server_config.py +fi +cat << EOF >> /etc/jupyter/jupyter_server_config.py +# Extra static paths for JupyROOT - start - do not remove this line +c.ServerApp.extra_static_paths.append('%{_jsdir}/jsroot') +# Extra static paths for JupyROOT - end - do not remove this line EOF -%postun notebook +%postun -n python%{python3_pkgversion}-jupyroot if [ $1 -eq 0 ] ; then if [ -e /etc/jupyter/jupyter_notebook_config.py ] ; then - sed '/Extra static path for JupyROOT - start/','/Extra static path for JupyROOT - end/'d -i /etc/jupyter/jupyter_notebook_config.py + sed '/Extra static paths for JupyROOT - start/','/Extra static paths for JupyROOT - end/'d -i /etc/jupyter/jupyter_notebook_config.py if [ ! -s /etc/jupyter/jupyter_notebook_config.py ] ; then rm /etc/jupyter/jupyter_notebook_config.py rmdir /etc/jupyter 2>/dev/null || : fi fi + if [ -e /etc/jupyter/jupyter_server_config.py ] ; then + sed '/Extra static paths for JupyROOT - start/','/Extra static paths for JupyROOT - end/'d -i /etc/jupyter/jupyter_server_config.py + if [ ! -s /etc/jupyter/jupyter_server_config.py ] ; then + rm /etc/jupyter/jupyter_server_config.py + rmdir /etc/jupyter 2>/dev/null || : + fi + fi fi %post core -p /sbin/ldconfig %postun core -p /sbin/ldconfig -%ldconfig_scriptlets multiproc -%ldconfig_scriptlets cling -%ldconfig_scriptlets tpython -%if %{buildpy2} -%ldconfig_scriptlets -n python2-%{name} -%endif -%ldconfig_scriptlets -n python%{python3_pkgversion}-%{name} -%ldconfig_scriptlets r -%ldconfig_scriptlets r-tools -%ldconfig_scriptlets genetic -%ldconfig_scriptlets geom -%ldconfig_scriptlets gdml -%ldconfig_scriptlets graf -%ldconfig_scriptlets graf-asimage -%ldconfig_scriptlets graf-fitsio -%ldconfig_scriptlets graf-gpad -%ldconfig_scriptlets graf-gviz -%ldconfig_scriptlets graf-postscript -%ldconfig_scriptlets graf-x11 -%ldconfig_scriptlets graf3d -%ldconfig_scriptlets graf3d-csg -%ldconfig_scriptlets graf3d-eve -%ldconfig_scriptlets graf3d-gl -%ldconfig_scriptlets graf3d-gviz3d -%ldconfig_scriptlets graf3d-x3d -%ldconfig_scriptlets gui -%ldconfig_scriptlets gui-html -%ldconfig_scriptlets gui-fitpanel -%ldconfig_scriptlets gui-ged -%ldconfig_scriptlets gui-builder -%ldconfig_scriptlets gui-recorder -%ldconfig_scriptlets hbook -%ldconfig_scriptlets hist -%ldconfig_scriptlets hist-painter -%ldconfig_scriptlets spectrum -%ldconfig_scriptlets spectrum-painter -%ldconfig_scriptlets hist-factory -%ldconfig_scriptlets html -%ldconfig_scriptlets io -%ldconfig_scriptlets io-dcache -%ldconfig_scriptlets io-gfal -%ldconfig_scriptlets io-sql -%ldconfig_scriptlets io-xml -%ldconfig_scriptlets io-xmlparser -%ldconfig_scriptlets foam -%ldconfig_scriptlets fftw -%ldconfig_scriptlets fumili -%ldconfig_scriptlets genvector -%ldconfig_scriptlets mathcore -%ldconfig_scriptlets mathmore -%ldconfig_scriptlets matrix -%ldconfig_scriptlets minuit -%ldconfig_scriptlets minuit2 -%ldconfig_scriptlets mlp -%ldconfig_scriptlets physics -%ldconfig_scriptlets quadp -%ldconfig_scriptlets smatrix -%ldconfig_scriptlets splot -%ldconfig_scriptlets unuran -%ldconfig_scriptlets vecops -%ldconfig_scriptlets memstat -%ldconfig_scriptlets montecarlo-eg -%ldconfig_scriptlets montecarlo-pythia8 -%ldconfig_scriptlets montecarlo-vmc -%ldconfig_scriptlets net -%ldconfig_scriptlets net-rpdutils -%ldconfig_scriptlets net-auth -%ldconfig_scriptlets net-davix -%ldconfig_scriptlets net-http -%ldconfig_scriptlets net-httpsniff -%ldconfig_scriptlets netx -%ldconfig_scriptlets proof -%ldconfig_scriptlets proof-bench -%ldconfig_scriptlets proof-player -%ldconfig_scriptlets proof-sessionviewer -%if ! %{xrootd5} -%ldconfig_scriptlets xproof -%endif -%ldconfig_scriptlets roofit -%ldconfig_scriptlets roofit-core -%ldconfig_scriptlets roofit-more -%ldconfig_scriptlets roostats -%ldconfig_scriptlets sql-mysql -%ldconfig_scriptlets sql-odbc -%ldconfig_scriptlets sql-sqlite -%ldconfig_scriptlets sql-pgsql -%ldconfig_scriptlets tmva -%ldconfig_scriptlets tmva-python -%ldconfig_scriptlets tmva-r -%ldconfig_scriptlets tmva-gui -%ldconfig_scriptlets tree -%ldconfig_scriptlets tree-dataframe -%ldconfig_scriptlets tree-player -%ldconfig_scriptlets tree-viewer -%ldconfig_scriptlets unfold -%if %{root7} -%ldconfig_scriptlets graf-gpadv7 -%ldconfig_scriptlets graf-primitives -%ldconfig_scriptlets graf3d-eve7 -%ldconfig_scriptlets gui-browsable -%ldconfig_scriptlets gui-browserv7 -%ldconfig_scriptlets gui-canvaspainter -%ldconfig_scriptlets gui-fitpanelv7 -%ifarch %{qt5_qtwebengine_arches} -%ldconfig_scriptlets gui-qt5webdisplay -%endif -%ldconfig_scriptlets gui-webdisplay -%ldconfig_scriptlets gui-webgui6 -%ldconfig_scriptlets histv7 -%ldconfig_scriptlets hist-draw -%ldconfig_scriptlets tree-ntuple -%endif - %files %{_bindir}/hadd %{_bindir}/root %{_bindir}/root.exe +%{_bindir}/rootbrowse +%{_bindir}/rootls %{_bindir}/rootn.exe +%{_bindir}/rootreadspeed %{_bindir}/roots %{_bindir}/roots.exe +%{_bindir}/rootssh %{_mandir}/man1/hadd.1* %{_mandir}/man1/root.1* %{_mandir}/man1/root.exe.1* @@ -2745,27 +2721,19 @@ fi %{_datadir}/icons/hicolor/48x48/apps/root.png %{_datadir}/icons/hicolor/48x48/mimetypes/application-x-root.png %{_datadir}/mime/packages/root.xml -%dir %{_emacs_sitelispdir}/%{name} -%{_emacs_sitelispdir}/%{name}/*.elc -%{_emacs_sitelispdir}/%{name}/*.el %files icons %{_datadir}/%{name}/icons -%files fonts +%files font-files %{_datadir}/%{name}/fonts -%files doc -%doc %{_pkgdocdir}/html - %files tutorial %doc %{_pkgdocdir}/tutorials %files core -f includelist-core -%{_bindir}/memprobe %{_bindir}/rmkdepend %{_bindir}/root-config -%{_mandir}/man1/memprobe.1* %{_mandir}/man1/rmkdepend.1* %{_mandir}/man1/root-config.1* %dir %{_libdir}/%{name} @@ -2777,10 +2745,8 @@ fi %{_libdir}/%{name}/lib*Dict.* %dir %{_datadir}/gdb/auto-load%{_libdir}/%{name} %{_datadir}/gdb/auto-load%{_libdir}/%{name}/libCore.* -%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8 %dir %{_datadir}/gdb/auto-load%{_libdir}/%{name}/__pycache__ %{_datadir}/gdb/auto-load%{_libdir}/%{name}/__pycache__/libCore.* -%endif %dir %{_datadir}/%{name} %{_datadir}/%{name}/allDict.cxx.pch %{_datadir}/%{name}/class.rules @@ -2793,20 +2759,26 @@ 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 %{_datadir}/%{name}/cmake/*.cmake +%dir %{_datadir}/%{name}/cmake/modules +%{_datadir}/%{name}/cmake/modules/*.cmake %dir %{_datadir}/%{name}/macros %{_datadir}/%{name}/macros/Dialogs.C %dir %{_datadir}/%{name}/plugins %dir %{_datadir}/%{name}/plugins/* %dir %{_includedir}/%{name} +%if %{bundlejson} +%dir %{_includedir}/%{name}/nlohmann +%{_includedir}/%{name}/nlohmann/json.hpp +%endif %{_includedir}/%{name}/RConfigOptions.h %{_includedir}/%{name}/RConfigure.h -%{_includedir}/%{name}/RGitCommit.h +%{_includedir}/%{name}/ROOT.modulemap %{_includedir}/%{name}/compiledata.h -%{_includedir}/%{name}/module.modulemap %dir %{_includedir}/%{name}/Math %dir %{_includedir}/%{name}/ROOT %config(noreplace) %{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf @@ -2815,13 +2787,13 @@ fi # They therefore should not be marked doc. %{_pkgdocdir}/CREDITS %{_pkgdocdir}/LICENSE -%doc %{_pkgdocdir}/README +%doc %{_pkgdocdir}/DEVELOPMENT.md %doc %{_pkgdocdir}/ReleaseNotes +%doc %{_pkgdocdir}/root_citation.bib %license LICENSE LGPL2_1.txt %files multiproc -f includelist-core-multiproc %{_libdir}/%{name}/libMultiProc.* -%{_libdir}/%{name}/libMultiProc_rdict.pcm %files cling %{_bindir}/genreflex @@ -2834,62 +2806,38 @@ fi %doc interpreter/cling/CREDITS.txt %doc interpreter/cling/README.md %license interpreter/cling/LICENSE.TXT -%doc interpreter/llvm/src/llvm-CREDITS.TXT -%doc interpreter/llvm/src/llvm-README.txt -%license interpreter/llvm/src/llvm-LICENSE.TXT + +%files testsupport +%{_includedir}/%{name}/ROOT/TestSupport.hxx +%{_libdir}/%{name}/TestSupport +%doc core/testsupport/README.md %files tpython -f includelist-bindings-tpython %{_libdir}/%{name}/libROOTTPython.* %{_libdir}/%{name}/libROOTTPython_rdict.pcm -%if %{buildpy2} -%files -n python2-%{name} -f includelist-bindings-pyroot -%{python2_sitearch}/cppyy -%{python2_sitearch}/cppyy_backend -%{python2_sitearch}/ROOT -%{python2_sitearch}/ROOT-*.egg-info -%{python2_sitearch}/libcppyy%{python2_version_uscore}.so -%{python2_sitearch}/libcppyy_backend%{python2_version_uscore}.so -%{python2_sitearch}/libROOTPythonizations%{python2_version_uscore}.so -%{_libdir}/%{name}/libcppyy%{python2_version_uscore}.* -%{_libdir}/%{name}/libcppyy_backend%{python2_version_uscore}.* -%dir %{_includedir}/%{name}/CPyCppyy - -%files -n python2-jupyroot -%{python2_sitearch}/JupyROOT -%{python2_sitearch}/JupyROOT-*.egg-info -%{python2_sitearch}/libJupyROOT%{python2_version_uscore}.so -%{_datadir}/jupyter/kernels/python2-jupyroot -%doc bindings/jupyroot/README.md - -%files -n python2-jsmva -%{python2_sitelib}/JsMVA -%{python2_sitelib}/JsMVA-*.egg-info -%endif - %files -n python%{python3_pkgversion}-%{name} -f includelist-bindings-pyroot %{python3_sitearch}/cppyy -%{python3_sitearch}/cppyy_backend %{python3_sitearch}/ROOT -%{python3_sitearch}/ROOT-*.egg-info -%{python3_sitearch}/libcppyy%{python3_version_uscore}.%{py3_soabi}.so -%{python3_sitearch}/libcppyy_backend%{python3_version_uscore}.so -%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}.%{py3_soabi}.so -%{_libdir}/%{name}/libcppyy%{python3_version_uscore}.* -%{_libdir}/%{name}/libcppyy_backend%{python3_version_uscore}.* +%{python3_sitearch}/ROOT-*.dist-info +%{_libdir}/%{name}/libCPyCppyy.* %dir %{_includedir}/%{name}/CPyCppyy %files -n python%{python3_pkgversion}-jupyroot -%{python3_sitearch}/JupyROOT -%{python3_sitearch}/JupyROOT-*.egg-info -%{python3_sitearch}/libJupyROOT%{python3_version_uscore}.%{py3_soabi}.so +%{python3_sitelib}/JupyROOT +%{python3_sitelib}/JupyROOT-*.dist-info %{_datadir}/jupyter/kernels/python%{python3_pkgversion}-jupyroot +%{_bindir}/rootnb.exe %doc bindings/jupyroot/README.md +%doc bindings/jupyroot/JupyROOT-on-EPEL -%files -n python%{python3_pkgversion}-jsmva -%{python3_sitelib}/JsMVA -%{python3_sitelib}/JsMVA-*.egg-info +%if %{distrdf} +%files -n python%{python3_pkgversion}-distrdf +%{python3_sitelib}/DistRDF +%{python3_sitelib}/DistRDF-*.dist-info +%endif +%if %{rrr} %files r -f includelist-bindings-r %{_libdir}/%{name}/libRInterface.* %{_libdir}/%{name}/libRInterface_rdict.pcm @@ -2899,22 +2847,27 @@ 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.* %{_libdir}/%{name}/libGenetic_rdict.pcm %{_datadir}/%{name}/plugins/ROOT@@Math@@Minimizer/P080_GeneticMinimizer.C -%files geom -f includelist-geom +%files geom -f includelist-geom-geom %{_libdir}/%{name}/libGeom.* %{_libdir}/%{name}/libGeom_rdict.pcm +%{_datadir}/%{name}/RadioNuclides.txt + +%files geom-builder -f includelist-geom-geombuilder %{_libdir}/%{name}/libGeomBuilder.* %{_libdir}/%{name}/libGeomBuilder_rdict.pcm +%{_datadir}/%{name}/plugins/TGeoManagerEditor/P010_TGeoManagerEditor.C + +%files geom-painter -f includelist-geom-geompainter %{_libdir}/%{name}/libGeomPainter.* %{_libdir}/%{name}/libGeomPainter_rdict.pcm -%{_datadir}/%{name}/plugins/TGeoManagerEditor/P010_TGeoManagerEditor.C %{_datadir}/%{name}/plugins/TVirtualGeoPainter/P010_TGeoPainter.C -%{_datadir}/%{name}/RadioNuclides.txt %files gdml -f includelist-geom-gdml %{_libdir}/%{name}/libGdml.* @@ -3029,6 +2982,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 @@ -3056,22 +3013,6 @@ fi %{_libdir}/%{name}/libSpectrumPainter.* %{_libdir}/%{name}/libSpectrumPainter_rdict.pcm -%files hist-factory -f includelist-roofit-histfactory -%{_bindir}/hist2workspace -%{_bindir}/prepareHistFactory -%{_mandir}/man1/hist2workspace.1* -%{_mandir}/man1/prepareHistFactory.1* -%{_libdir}/%{name}/libHistFactory.* -%{_libdir}/%{name}/libHistFactory_rdict.pcm -%{_datadir}/%{name}/HistFactorySchema.dtd -%dir %{_includedir}/%{name}/RooStats/HistFactory -%doc roofit/histfactory/doc/README - -%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 @@ -3083,15 +3024,9 @@ fi %{_datadir}/%{name}/plugins/TFile/P040_TDCacheFile.C %{_datadir}/%{name}/plugins/TSystem/P020_TDCacheSystem.C -%files io-gfal -f includelist-io-gfal -%{_libdir}/%{name}/libGFAL.* -%{_libdir}/%{name}/libGFAL_rdict.pcm -%{_datadir}/%{name}/plugins/TFile/P050_TGFALFile.C - %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.* @@ -3164,8 +3099,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.* @@ -3198,25 +3131,17 @@ fi %{_libdir}/%{name}/libROOTVecOps.* %{_libdir}/%{name}/libROOTVecOps_rdict.pcm -%files memstat -f includelist-misc-memstat -%{_libdir}/%{name}/libMemStat.* -%{_libdir}/%{name}/libMemStat_rdict.pcm - %files montecarlo-eg -f includelist-montecarlo-eg %{_libdir}/%{name}/libEG.* %{_libdir}/%{name}/libEG_rdict.pcm %{_datadir}/%{name}/pdg_table.txt +%{_datadir}/%{name}/pdg_table_update.py %doc %{_pkgdocdir}/cfortran.doc %files montecarlo-pythia8 -f includelist-montecarlo-pythia8 %{_libdir}/%{name}/libEGPythia8.* %{_libdir}/%{name}/libEGPythia8_rdict.pcm -%files montecarlo-vmc -f includelist-montecarlo-vmc -%{_libdir}/%{name}/libVMC.* -%{_libdir}/%{name}/libVMC_rdict.pcm -%{_datadir}/%{name}/vmc - %files net -f includelist-net-net %{_libdir}/%{name}/libNet.* %{_libdir}/%{name}/libNet_rdict.pcm @@ -3249,79 +3174,34 @@ fi %files net-http -f includelist-net-http %{_libdir}/%{name}/libRHTTP.* %{_libdir}/%{name}/libRHTTP_rdict.pcm -%{_datadir}/%{name}/js +%dir %{_datadir}/%{name}/js +%dir %{_datadir}/%{name}/js/files +%{_datadir}/%{name}/js/files/canv_batch.htm +%{_datadir}/%{name}/js/files/geom_batch.htm +%{_datadir}/%{name}/js/files/web.config +%{_datadir}/%{name}/js/files/wslist.htm +%ghost %{_datadir}/%{name}/js/build +%ghost %{_datadir}/%{name}/js/img +%ghost %{_datadir}/%{name}/js/mathjax +%ghost %{_datadir}/%{name}/js/modules +%ghost %{_datadir}/%{name}/js/scripts +%ghost %{_datadir}/%{name}/js/files/draw.htm +%ghost %{_datadir}/%{name}/js/files/online.htm %doc net/http/README.txt net/http/civetweb/*.md %files net-httpsniff -f includelist-net-httpsniff %{_libdir}/%{name}/libRHTTPSniff.* %{_libdir}/%{name}/libRHTTPSniff_rdict.pcm -%files netx -f includelist-netx -%if ! %{xrootd5} -%{_libdir}/%{name}/libNetx.* -%{_libdir}/%{name}/libNetx_rdict.pcm -%endif +%files netx -f includelist-net-netxng %{_libdir}/%{name}/libNetxNG.* %{_libdir}/%{name}/libNetxNG_rdict.pcm %{_datadir}/%{name}/plugins/TFile/P100_TXNetFile.C %{_datadir}/%{name}/plugins/TFileStager/P010_TXNetFileStager.C %{_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 -%{_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 -%{_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 -%{_datadir}/%{name}/valgrind-root.supp - -%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/P010_TProofMonSenderML.C -%{_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 ! %{xrootd5} -%files xproof -f includelist-proof-proofx -%{_bindir}/proofexecv -%{_bindir}/xproofd -%{_mandir}/man1/xproofd.1* -%{_libdir}/%{name}/libProofx.* -%{_libdir}/%{name}/libProofx_rdict.pcm -%{_libdir}/%{name}/libXrdProofd.* -%{_datadir}/%{name}/plugins/TProofMgr/P010_TXProofMgr.C -%{_datadir}/%{name}/plugins/TProofServ/P010_TXProofServ.C -%{_datadir}/%{name}/plugins/TSlave/P010_TXSlave.C -%endif - +%if %{roofit} %files roofit -f includelist-roofit-roofit %{_libdir}/%{name}/libRooFit.* %{_libdir}/%{name}/libRooFit_rdict.pcm @@ -3329,59 +3209,133 @@ fi %files roofit-core -f includelist-roofit-roofitcore %{_libdir}/%{name}/libRooFitCore.* %{_libdir}/%{name}/libRooFitCore_rdict.pcm +%dir %{_includedir}/%{name}/RooFit +%dir %{_includedir}/%{name}/RooFit/Detail +%dir %{_includedir}/%{name}/RooFit/TestStatistics +%dir %{_includedir}/%{name}/RooFitLegacy %{_datadir}/gdb/auto-load%{_libdir}/%{name}/libRooFitCore.* -%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8 %{_datadir}/gdb/auto-load%{_libdir}/%{name}/__pycache__/libRooFitCore.* -%endif %files roofit-more -f includelist-roofit-roofitmore %{_libdir}/%{name}/libRooFitMore.* %{_libdir}/%{name}/libRooFitMore_rdict.pcm +%files roofit-batchcompute +%{_libdir}/%{name}/libRooBatchCompute.* +%{_libdir}/%{name}/libRooBatchCompute_* + +%files roofit-hs3 -f includelist-roofit-hs3 +%{_libdir}/%{name}/libRooFitHS3.* +%{_libdir}/%{name}/libRooFitHS3_rdict.pcm +%dir %{_includedir}/%{name}/RooFitHS3 + +%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.* +%dir %{_includedir}/%{name}/RooFit +%dir %{_includedir}/%{name}/RooFit/MultiProcess + +%files roofit-zmq +%{_libdir}/%{name}/libRooFitZMQ.* +%endif + %files roostats -f includelist-roofit-roostats %{_libdir}/%{name}/libRooStats.* %{_libdir}/%{name}/libRooStats_rdict.pcm %dir %{_includedir}/%{name}/RooStats -%files sql-mysql -f includelist-sql-mysql -%{_libdir}/%{name}/libRMySQL.* -%{_libdir}/%{name}/libRMySQL_rdict.pcm -%{_datadir}/%{name}/plugins/TSQLServer/P010_TMySQLServer.C +%files hist-factory -f includelist-roofit-histfactory +%{_bindir}/hist2workspace +%{_bindir}/prepareHistFactory +%{_mandir}/man1/hist2workspace.1* +%{_mandir}/man1/prepareHistFactory.1* +%{_libdir}/%{name}/libHistFactory.* +%{_libdir}/%{name}/libHistFactory_rdict.pcm +%{_datadir}/%{name}/HistFactorySchema.dtd +%dir %{_includedir}/%{name}/RooStats/HistFactory +%dir %{_includedir}/%{name}/RooStats/HistFactory/Detail +%doc roofit/histfactory/doc/README -%files sql-odbc -f includelist-sql-odbc -%{_libdir}/%{name}/libRODBC.* -%{_libdir}/%{name}/libRODBC_rdict.pcm -%{_datadir}/%{name}/plugins/TSQLServer/P050_TODBCServer.C +%files xroofit -f includelist-roofit-xroofit +%{_libdir}/%{name}/libRooFitXRooFit.* +%{_libdir}/%{name}/libRooFitXRooFit_rdict.pcm +%dir %{_includedir}/%{name}/RooFit/xRooFit +%endif %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 %dir %{_includedir}/%{name}/TMVA %dir %{_includedir}/%{name}/TMVA/DNN %dir %{_includedir}/%{name}/TMVA/DNN/Architectures -%if %{tbb} %dir %{_includedir}/%{name}/TMVA/DNN/Architectures/Cpu -%endif %dir %{_includedir}/%{name}/TMVA/DNN/Architectures/Reference +%dir %{_includedir}/%{name}/TMVA/DNN/CNN +%dir %{_includedir}/%{name}/TMVA/DNN/RNN %license tmva/doc/LICENSE +%exclude %{_includedir}/%{name}/TMVA/RBDT.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/RChunkConstructor.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/RBDT.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/RChunkConstructor.hxx +%{_includedir}/%{name}/TMVA/BatchGenerator/RChunkLoader.hxx +%endif %files tmva-python -f includelist-tmva-pymva %{_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.* +%{_libdir}/%{name}/libROOTTMVASofie_rdict.pcm +%doc tmva/sofie/README.md + +%if %{tmvasofieparser} +%files tmva-sofie-parser -f includelist-tmva-sofie_parsers +%{_libdir}/%{name}/libROOTTMVASofieParser.* +%{_libdir}/%{name}/libROOTTMVASofieParser_rdict.pcm +%endif %files tmva-gui -f includelist-tmva-tmvagui %{_libdir}/%{name}/libTMVAGui.* @@ -3392,9 +3346,11 @@ fi %{_libdir}/%{name}/libTree_rdict.pcm %doc %{_pkgdocdir}/README.SELECTOR +%if %{dataframe} %files tree-dataframe -f includelist-tree-dataframe %{_libdir}/%{name}/libROOTDataFrame.* %{_libdir}/%{name}/libROOTDataFrame_rdict.pcm +%endif %files tree-player -f includelist-tree-treeplayer %{_libdir}/%{name}/libTreePlayer.* @@ -3407,16 +3363,19 @@ fi %{_libdir}/%{name}/libTreeViewer_rdict.pcm %{_datadir}/%{name}/plugins/TVirtualTreeViewer/P010_TTreeViewer.C +%files tree-webviewer -f includelist-tree-webviewer +%{_libdir}/%{name}/libROOTTreeViewer.* +%{_libdir}/%{name}/libROOTTreeViewer_rdict.pcm +%{_datadir}/%{name}/plugins/TVirtualTreeViewer/P020_RTreeViewer.C + %files unfold -f includelist-hist-unfold %{_libdir}/%{name}/libUnfold.* %{_libdir}/%{name}/libUnfold_rdict.pcm %files cli -%{_bindir}/rootbrowse %{_bindir}/rootcp %{_bindir}/rootdrawtree %{_bindir}/rooteventselector -%{_bindir}/rootls %{_bindir}/rootmkdir %{_bindir}/rootmv %{_bindir}/rootprint @@ -3424,10 +3383,64 @@ fi %{_bindir}/rootslimtree %{_datadir}/%{name}/cli -%files notebook -%{_bindir}/rootnb.exe -%{_datadir}/%{name}/notebook -%doc %{_pkgdocdir}/JupyROOT-on-EPEL +%files gui-webdisplay -f includelist-gui-webdisplay +%{_libdir}/%{name}/libROOTWebDisplay.* +%{_libdir}/%{name}/libROOTWebDisplay_rdict.pcm +%{_datadir}/%{name}/runfirefox.sh +%{_datadir}/%{name}/ui5 + +%ifarch %{qt6_qtwebengine_arches} +%files gui-qt6webdisplay +%{_libdir}/%{name}/libROOTQt6WebDisplay.* +%endif + +%files gui-webgui6 -f includelist-gui-webgui6 +%{_libdir}/%{name}/libWebGui6.* +%{_libdir}/%{name}/libWebGui6_rdict.pcm +%{_datadir}/%{name}/plugins/TCanvasImp/P010_TWebCanvas.C +%{_datadir}/%{name}/plugins/TControlBarImp/P010_TWebControlBar.C + +%files gui-browsable -f includelist-gui-browsable +%{_libdir}/%{name}/libROOTBrowsable.* +%{_libdir}/%{name}/libROOTBrowsable_rdict.pcm +%{_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 +%{_libdir}/%{name}/libROOTBrowserv7.* +%{_libdir}/%{name}/libROOTBrowserv7_rdict.pcm +%{_libdir}/%{name}/libROOTBrowserGeomWidget.* +%{_libdir}/%{name}/libROOTBrowserTCanvasWidget.* +%{_libdir}/%{name}/libROOTBrowserTreeWidget.* +%{_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 +%{_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 + +%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 @@ -3441,20 +3454,14 @@ fi %files graf3d-eve7 -f includelist-graf3d-eve7 %{_libdir}/%{name}/libROOTEve.* %{_libdir}/%{name}/libROOTEve_rdict.pcm -%{_datadir}/%{name}/plugins/TVirtualGeoPainter/P020_REveGeoPainter.C -%files gui-browsable -f includelist-gui-browsable -%{_libdir}/%{name}/libROOTBrowsable.* -%{_libdir}/%{name}/libROOTBrowsable_rdict.pcm -%{_libdir}/%{name}/libROOTHistDrawProvider.* -%{_libdir}/%{name}/libROOTLeafDraw6Provider.* +%files gui-browsable-v7 %{_libdir}/%{name}/libROOTLeafDraw7Provider.* -%{_libdir}/%{name}/libROOTObjectDraw6Provider.* +%{_libdir}/%{name}/libROOTNTupleDraw7Provider.* %{_libdir}/%{name}/libROOTObjectDraw7Provider.* -%files gui-browserv7 -f includelist-gui-browserv7 -%{_libdir}/%{name}/libROOTBrowserv7.* -%{_libdir}/%{name}/libROOTBrowserv7_rdict.pcm +%files gui-browserv7-v7 +%{_libdir}/%{name}/libROOTBrowserRCanvasWidget.* %files gui-canvaspainter %{_libdir}/%{name}/libROOTCanvasPainter.* @@ -3463,35 +3470,494 @@ fi %{_libdir}/%{name}/libROOTFitPanelv7.* %{_libdir}/%{name}/libROOTFitPanelv7_rdict.pcm -%ifarch %{qt5_qtwebengine_arches} -%files gui-qt5webdisplay -%{_libdir}/%{name}/libROOTQt5WebDisplay.* -%endif - -%files gui-webdisplay -f includelist-gui-webdisplay -%{_libdir}/%{name}/libROOTWebDisplay.* -%{_libdir}/%{name}/libROOTWebDisplay_rdict.pcm -%{_datadir}/%{name}/ui5 - -%files gui-webgui6 -f includelist-gui-webgui6 -%{_libdir}/%{name}/libWebGui6.* -%{_libdir}/%{name}/libWebGui6_rdict.pcm -%{_datadir}/%{name}/plugins/TGuiFactory/P030_TWebGuiFactory.C - %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 %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) + +* 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 + +* 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, + 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 + +* 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 + +* Mon Aug 25 2025 Mattias Ellert - 6.36.04-1 +- Update to 6.36.04 + +* 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 + +* 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 + +* 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 + +* 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 + +* 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 +- 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 + +* 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 + +* 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 + +* 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 + +* 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 + +* 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 + +* 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 + +* 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 +- 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 +- Removed package: root-roofit-dataframe-helpers + +* 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 + +* 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 +- Split out ROOT 7 dependent parts of root-browserv7 to a separate package + +* Wed Aug 21 2024 Mattias Ellert - 6.32.04-2 +- Re-enable Qt5 Web display for Fedora 41+ (qt5-qtwebengine fixed) + +* Wed Aug 14 2024 Mattias Ellert - 6.32.04-1 +- Update to 6.32.04 +- Drop patches accepted upstream +- Disable Qt5 Web display for Fedora 41+ (broken qt5-qtwebengine package) + +* Sun Jul 21 2024 Mattias Ellert - 6.32.02-4 +- Update ROOT's R interface for Rcpp 1.0.13 + +* Fri Jul 19 2024 Fedora Release Engineering - 6.32.02-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Thu Jul 11 2024 Mattias Ellert - 6.32.02-2 +- Add openssl-devel-engine build requirement on Fedora 41+ +- Fixes for TUri class (PCRE2 compatibility) +- Fix test failure with tbb 2021.13.0 + +* Tue Jun 18 2024 Mattias Ellert - 6.32.02-1 +- Update to 6.32.02 +- Drop patches accepted upstream + +* Mon Jun 17 2024 Mattias Ellert - 6.32.00-5 +- Add dependency on liburing-devel to root-io +- Exclude failing tutorial-tmva-RBatchGenerator_filters_vectors-py test + on aarch64 (Fedora 40+) + +* Mon Jun 10 2024 Mattias Ellert - 6.32.00-4 +- Backport fix for failing test with Python 3.13 + +* Sun Jun 09 2024 Python Maint - 6.32.00-3 +- Rebuilt for Python 3.13 + +* Sat Jun 08 2024 Mattias Ellert - 6.32.00-2 +- Python 3.13 compatibility + +* 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 +- New patches: 6 +- The JsMVA python module is now a submodule of the ROOT python module +- The notebook package was merged with the JupyROOT package + +* Wed May 15 2024 Mattias Ellert - 6.30.06-5 +- Rebuilt for libarrow.so.1601 +- Improved fontconfig support + +* Sun Apr 28 2024 Benjamin A. Beasley - 6.30.06-4 +- Do not test with Pandas on 32-bit architectures + +* Thu Apr 25 2024 Iñaki Úcar - 6.30.06-3 +- R-maint-sig mass rebuild + +* Tue Apr 23 2024 Mattias Ellert - 6.30.06-2 +- Rebuilt for libarrow.so.1600 + +* Fri Apr 05 2024 Mattias Ellert - 6.30.06-1 +- Update to 6.30.06 + +* Mon Mar 25 2024 Mattias Ellert - 6.30.04-2 +- Support StandardSymbolsPS.otf + +* 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) +- Exclude failing TClingDataMemberInfo.Offset test on s390x + +* Fri Jan 26 2024 Mattias Ellert - 6.30.02-9 +- Rebuilt for libarrow.so.1500 + +* Fri Jan 26 2024 Mattias Ellert - 6.30.02-8 +- Exclude failing gtest-math-matrix-test-testMatrixTSparse on Fedora 40 + (aarch64, ppc64le and s390x) + +* Mon Jan 22 2024 Fedora Release Engineering - 6.30.02-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Jan 17 2024 Jonathan Wakely - 6.30.02-6 +- Rebuilt for TBB 2021.11 + +* Fri Jan 12 2024 Mattias Ellert - 6.30.02-5 +- Define PYTHON_EXECUTABLE when calling cmake (Fixes EPEL 8 build) + +* Thu Dec 21 2023 Mattias Ellert - 6.30.02-4 +- Adjust tests for zlib-ng + +* Mon Dec 18 2023 Mattias Ellert - 6.30.02-3 +- Use "standardsymbolsps" instead of "symbol" when searching for the + Symbols font in order to not find Noto Symbols instead + +* Fri Dec 15 2023 Mattias Ellert - 6.30.02-2 +- Exclude pyunittests-pyroot-numbadeclare test + +* Sat Dec 02 2023 Mattias Ellert - 6.30.02-1 +- Update to 6.30.02 + +* Sat Nov 25 2023 Mattias Ellert - 6.30.00-1 +- Update to 6.30.00 +- Removed subpackages: root-io-gfal and root-roofit-common +- Dropped patches: 6 +- New patches: 6 + +* Thu Nov 02 2023 Mattias Ellert - 6.28.08-3 +- Rebuilt for libarrow.so.1400 + +* Wed Nov 01 2023 Mattias Ellert - 6.28.08-2 +- Enable RooFit::MultiProcess on Fedora 40+ + +* Sat Oct 14 2023 Mattias Ellert - 6.28.08-1 +- Update to 6.28.08 +- New subpackage root-tmva-utils (split off from root-tmva) +- Port to pcre2 + +* Tue Sep 05 2023 Mattias Ellert - 6.28.06-1 +- Update to 6.28.06 +- Drop patches root-testRooAbsL-test-compares-two-doubles-and-fails.patch and + root-strlcpy.patch (fixed upstream) + +* Sun Aug 06 2023 Mattias Ellert - 6.28.04-5 +- Rebuilt for libarrow.so.1300 + +* Fri Jul 21 2023 Fedora Release Engineering - 6.28.04-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Sun Jul 09 2023 Mattias Ellert - 6.28.04-3 +- Fix build on Fedora 39+ where glibc has strlcpy and strlcat +- Enable build of root-gui-qt6webdisplay sub-package if Qt6 is available + +* Mon Jun 26 2023 Orion Poplawski - 6.28.04-2 +- Rebuilt for Python 3.12 + +* Mon May 08 2023 Mattias Ellert - 6.28.04-1 +- Update to 6.28.04 +- Drop patch root-RF-Rewrite-RooProdPdf.TestGetPartIntList-unit-test.patch + (previously backported) +- Enable Apache Arrow support (64 bit architectures only) + +* Fri Apr 21 2023 Iñaki Úcar - 6.28.02-3 +- R-maint-sig mass rebuild + +* Thu Mar 23 2023 Mattias Ellert - 6.28.02-2 +- Disable uring in EPEL 9 (liburing is available, but uring not + supported by kernel) + +* Wed Mar 22 2023 Mattias Ellert - 6.28.02-1 +- Update to 6.28.02 +- Dropped patches: 13 +- New patches: 1 + +* Sat Mar 18 2023 Mattias Ellert - 6.28.00-1 +- Update to 6.28.00 +- ROOT now uses llvm/clang version 13 (updated from version 9) +- Clean up specfile by removing EPEL 7 conditionals +- Drop dataframe, roofit and tmva-sofieparser on EPEL 8 ppc64le due to + "pure virtual method called" errors +- Split the root-geom sub-package into three separate sub-packages: + root-geom, root-geom-builder and root-geom-painter +- Enable uring support in EPEL 9 (liburing now available) +- New sub-packages: root-geom-webviewer, root-roofit-jsoninterface, + root-testsupport, root-tree-ntuple-utils, root-tree-webviewer, root-xroofit +- Dropped patches: 31 +- New patches: 17 +- Updated patches: 4 + +* Mon Jan 30 2023 Miro Hrončok - 6.26.10-2 +- Rebuilt to change Python shebangs to /usr/bin/python3.6 on EPEL 8 + +* Mon Jan 30 2023 Mattias Ellert - 6.26.10-5 +- Adapt to numpy 1.24 + +* Fri Jan 20 2023 Mattias Ellert - 6.26.10-4 +- Add missing #include + +* Fri Jan 20 2023 Fedora Release Engineering - 6.26.10-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Dec 29 2022 Maxwell G - 6.26.10-2 +- Rebuild for cfitsio 4.2 + +* Wed Nov 16 2022 Mattias Ellert - 6.26.10-1 +- Update to 6.26.10 +- Drop patches root-Fixes-for-garbage-collection-in-Python-3.11.patch + and root-Guard-gInterpreterMutex-in-TClingClassInfo-IsEnum.patch + (fixed upstream) +- Use different filenames in io/loopdir tests +- Update root-test-timeout.patch to address one more issue + +* Fri Oct 28 2022 Mattias Ellert - 6.26.08-2 +- Avoid race condition between C++ and Python version of a roofit test + +* Wed Oct 19 2022 Mattias Ellert - 6.26.08-1 +- Update to 6.26.08 +- Drop patch root-move-private-decl.patch (fixed upstream) +- Drop some previously backported patches +- Rename patch root-blas-linking-and-ignore-prefix.patch (partially fixed) +- Backport locking of gInterpreterMutex in TClingClassInfo::IsEnum + +* Sat Oct 01 2022 Mattias Ellert - 6.26.06-5 +- Use upstream's proposed change for the Python garbage collection issue + +* Tue Aug 23 2022 Mamoru TASAKA - 6.26.06-4 +- Rebuild for gsl-2.7.1 + +* Fri Aug 19 2022 Mattias Ellert - 6.26.06-3 +- Use the json 3.11 fix upstream settled on + +* Wed Aug 17 2022 Mattias Ellert - 6.26.06-2 +- Compatibility with nlohmann json 3.11+ +- Enable gfal support in EPEL 9 (gfal2 now available) + +* Sat Jul 30 2022 Mattias Ellert - 6.26.06-1 +- Update to 6.26.06 + +* Sat Jul 23 2022 Fedora Release Engineering - 6.26.04-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jul 18 2022 Mattias Ellert - 6.26.04-4 +- Don't use yuicompressor on Fedora (Java no longer available on ix86) + +* Sun Jul 03 2022 Mattias Ellert - 6.26.04-3 +- Backport python 3.11 fixes from upstream +- Backport additional python 3.11 fixes from CPyCppyy upstream +- Exclude some failing tests on Fedora 37+ + (segfaults during Python garbage collection with Python 3.11) +- Adjust some test timeouts + +* Wed Jun 15 2022 Python Maint - 6.26.04-2 +- Rebuilt for Python 3.11 + +* Tue Jun 14 2022 Mattias Ellert - 6.26.04-1 +- Update to 6.26.04 +- Drop patch root-missing-include.patch (accepted upstream) + +* Fri May 20 2022 Mattias Ellert - 6.26.02-3 +- Rebuild for gcc 12.1 (Fedora 36) +- Update the root-tmva-threads patch + +* Fri Apr 29 2022 Mattias Ellert - 6.26.02-2 +- Rebuild for gcc 11.3 (Fedora 35) +- Use upstream's version of the dataframe-snapshot on 32 bit patch + +* Thu Apr 14 2022 Mattias Ellert - 6.26.02-1 +- Update to 6.26.02 +- Drop patch root-roofit-overflow.patch (previously backported) + +* Sat Mar 26 2022 Mattias Ellert - 6.26.00-1 +- Update to 6.26.00 +- New subpackages: root-roofit-common, root-roofit-dataframe-helpers, + root-roofit-hs3, root-tmva-sofie and root-tmva-sofie-parser +- Removed subpackages: root-memstat and root-montecarlo-vmc +- Drop the doxygen generated root-doc package (doxygen runs out of memory) +- Dropped patches: 17 +- New patches: 22 +- Updated patches: 5 + +* Thu Feb 10 2022 Orion Poplawski - 6.24.06-6 +- Rebuild for glew 2.2 + +* Fri Jan 28 2022 Mattias Ellert - 6.24.06-5 +- Exclude failing test on Fedora 36 ppc64le: + test-stressHistFactory(-interpreted) +- Disable package note flags + +* Fri Jan 21 2022 Fedora Release Engineering - 6.24.06-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Sun Jan 16 2022 Mattias Ellert - 6.24.06-3 +- Backport gcc 12 fix from LLVM +- Fix test failure on ppc64le and aarch64 with gcc 12 + +* Tue Dec 07 2021 Mattias Ellert - 6.24.06-2 +- Fix segfaults on ppc64le when using the large code model + +* Thu Nov 04 2021 Mattias Ellert - 6.24.06-1 +- Update to 6.24.06 + +* Tue Sep 14 2021 Sahana Prasad - 6.24.04-2 +- Rebuilt with OpenSSL 3.0.0 + +* Fri Aug 27 2021 Mattias Ellert - 6.24.04-1 +- Update to 6.24.04 +- Add dependency on json-devel to root-core +- Disable uring in EPEL 8 (liburing is available, but uring not + supported by kernel) + +* Wed Aug 04 2021 Mattias Ellert - 6.24.02-1 +- Update to 6.24.02 +- ROOT now uses llvm/clang version 9 (updated from version 5) +- No longer exclude arch s390x (better supported in llvm/clang 9) +- Drop patches accepted upstream or previously backported +- Backport some fixes that make more tests work +- New subpackages: python{2,3}-distrdf, root-roofit-batchcompute +- Require js-jsroot >= 6 + +* Mon Jul 26 2021 Mattias Ellert - 6.22.08-11 +- Drop the memstat module for Fedora 35+ + The required __malloc_hook was removed from glibc 2.33.9000-48 + The memstat module is deprecated and will be removed in root 6.26 + +* Fri Jul 23 2021 Fedora Release Engineering - 6.22.08-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Jun 17 2021 Mattias Ellert - 6.22.08-9 +- Backport fix for jsroot loading in jupyterlab + +* Mon Jun 14 2021 Mattias Ellert - 6.22.08-8 +- Add configuration for jupyterlab + +* Sun Jun 13 2021 Mattias Ellert - 6.22.08-7 +- cmake in EPEL 8 no longer provides cmake3 + +* Fri Jun 04 2021 Python Maint - 6.22.08-6 +- Rebuilt for Python 3.10 + +* Thu Jun 03 2021 Mattias Ellert - 6.22.08-5 +- Use C++17 for Fedora 34+ (gcc 11) + +* Tue Jun 01 2021 Mattias Ellert - 6.22.08-4 +- Adapt to new Python RPM generators (empty .egg-info no longer works) +- Filter out parts of tests that require remote network access instead of + excluding the whole test +- Fix multicore tests when running on machines with few cores + +* Mon May 10 2021 Jonathan Wakely - 6.22.08-3 +- Rebuilt for removed libstdc++ symbols (#1937698) + +* Tue Mar 30 2021 Jonathan Wakely - 6.22.08-2 +- Rebuilt for removed libstdc++ symbol (#1937698) + * Fri Mar 19 2021 Mattias Ellert - 6.22.08-1 - Update to 6.22.08 diff --git a/sources b/sources index 9b75929..98e90e5 100644 --- a/sources +++ b/sources @@ -1,2 +1,3 @@ -SHA512 (root-6.22.08.tar.xz) = 9080168116ffdd07cfce411dca77404177cd3ba57af498419432ca95169dbce581a7a2a667c22273685d659b3e0398d567b2d51d07ca767b076ee5196395d828 -SHA512 (root-testfiles.tar.xz) = 945aef1a0cf5af672d4ab84b0ac00b76118e93008ff72447658ee82d9e955a1540af3ff7126e701418872f1d91b92ee96d4985840a519036c42732023a13f00f +SHA512 (root-6.38.00.tar.xz) = 7c452b509e8171a0cbb7c102a3d4c07333fc8535f1b2c2ab0b9f7434604f098989a78bb71c41039dd41dbbd3438ea8703939826092f075d9d730b6b53c84ac55 +SHA512 (root-testfiles.tar.xz) = 4bb7f8ca00b1427ba49f6428e9cfe5908a2ffdd2ce4134d3bc169a0629198352b5500fe0cf92c121d148e5af41f7016c96038a77794a4d37d94e6ec0a9d75670 +SHA512 (clad-2.2.tar.gz) = 6f76d706a829901fc0fcdb38b5ddad6ea8ad9186ea48a4b6b585fc62974a2cda11b96a448c25daaba0586962d6428773e7ab751236c6afa72a91d12f30f2d05e