Architecture specific change in rpms/root.git
by githook-noreply@fedoraproject.org
The package rpms/root.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/root.git/commit/?id=1fd9670b71e72....
Change:
+%ifarch s390x
Thanks.
Full change:
============
commit 1fd9670b71e7200f88fa9049d4cd4eed7019814f
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Sun Aug 22 19:10:24 2021 +0200
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
diff --git a/root-32bit-dataframe.patch b/root-32bit-dataframe.patch
index 310171f..f9ff85f 100644
--- a/root-32bit-dataframe.patch
+++ b/root-32bit-dataframe.patch
@@ -1,6 +1,6 @@
-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
+diff -ur root-6.24.02.orig/bindings/pyroot_legacy/ROOT.py root-6.24.02/bindings/pyroot_legacy/ROOT.py
+--- root-6.24.02.orig/bindings/pyroot_legacy/ROOT.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/bindings/pyroot_legacy/ROOT.py 2021-08-11 10:44:16.895804556 +0200
@@ -438,9 +438,7 @@
# This function is injected as method to the respective classes in Pythonize.cxx.
_root._RDataFrameAsNumpy = _RDataFrameAsNumpy
@@ -12,9 +12,9 @@ diff -ur root-6.22.00.orig/bindings/pyroot_legacy/ROOT.py root-6.22.00/bindings/
### 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
+diff -ur root-6.24.02.orig/build/unix/makepchinput.py root-6.24.02/build/unix/makepchinput.py
+--- root-6.24.02.orig/build/unix/makepchinput.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/build/unix/makepchinput.py 2021-08-11 10:44:16.926804638 +0200
@@ -252,9 +252,6 @@
"math/vdt",
"tmva/rmva"]
@@ -25,9 +25,9 @@ diff -ur root-6.22.00.orig/build/unix/makepchinput.py root-6.22.00/build/unix/ma
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
+diff -ur root-6.24.02.orig/tree/dataframe/test/dataframe_cache.cxx root-6.24.02/tree/dataframe/test/dataframe_cache.cxx
+--- root-6.24.02.orig/tree/dataframe/test/dataframe_cache.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/dataframe_cache.cxx 2021-08-11 10:44:16.927804641 +0200
@@ -224,8 +224,6 @@
}
@@ -46,9 +46,9 @@ diff -ur root-6.22.00.orig/tree/dataframe/test/dataframe_cache.cxx root-6.22.00/
// 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
+diff -ur root-6.24.02.orig/tree/dataframe/test/datasource_arrow.cxx root-6.24.02/tree/dataframe/test/datasource_arrow.cxx
+--- root-6.24.02.orig/tree/dataframe/test/datasource_arrow.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/datasource_arrow.cxx 2021-08-11 10:44:16.927804641 +0200
@@ -177,8 +177,6 @@
}
#endif
@@ -64,10 +64,10 @@ diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_arrow.cxx root-6.22.00
#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 @@
+diff -ur root-6.24.02.orig/tree/dataframe/test/datasource_csv.cxx root-6.24.02/tree/dataframe/test/datasource_csv.cxx
+--- root-6.24.02.orig/tree/dataframe/test/datasource_csv.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/datasource_csv.cxx 2021-08-11 10:44:16.927804641 +0200
+@@ -207,8 +207,6 @@
}
#endif
@@ -76,15 +76,15 @@ diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_csv.cxx root-6.22.00/t
TEST(RCsvDS, FromARDF)
{
std::unique_ptr<RDataSource> tds(new RCsvDS(fileName0));
-@@ -292,5 +290,3 @@
+@@ -321,5 +319,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
+diff -ur root-6.24.02.orig/tree/dataframe/test/datasource_root.cxx root-6.24.02/tree/dataframe/test/datasource_root.cxx
+--- root-6.24.02.orig/tree/dataframe/test/datasource_root.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/datasource_root.cxx 2021-08-11 10:44:16.928804644 +0200
@@ -117,8 +117,6 @@
}
#endif
@@ -100,11 +100,11 @@ diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_root.cxx root-6.22.00/
#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);
+diff -ur root-6.24.02.orig/tree/dataframe/test/datasource_trivial.cxx root-6.24.02/tree/dataframe/test/datasource_trivial.cxx
+--- root-6.24.02.orig/tree/dataframe/test/datasource_trivial.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/datasource_trivial.cxx 2021-08-11 10:44:16.928804644 +0200
+@@ -141,8 +141,6 @@
+ EXPECT_EQ(df.Range(10).Count().GetValue(), 10);
}
-#ifdef R__B64
@@ -112,17 +112,17 @@ diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_trivial.cxx root-6.22.
TEST(RTrivialDS, FromARDFWithJitting)
{
std::unique_ptr<RDataSource> tds(new RTrivialDS(32));
-@@ -236,5 +234,3 @@
+@@ -245,5 +243,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)
+diff -ur root-6.24.02.orig/tutorials/CMakeLists.txt root-6.24.02/tutorials/CMakeLists.txt
+--- root-6.24.02.orig/tutorials/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/CMakeLists.txt 2021-08-11 10:44:16.974804766 +0200
+@@ -279,10 +279,6 @@
+ list(APPEND root7_veto ${v7_veto_files})
endif()
-if( CMAKE_SIZEOF_VOID_P EQUAL 4 )
@@ -132,7 +132,7 @@ diff -ur root-6.22.00.orig/tutorials/CMakeLists.txt root-6.22.00/tutorials/CMake
#---These ones are disabled !!! ------------------------------------
set(extra_veto
legacy/benchmarks.C
-@@ -313,7 +309,6 @@
+@@ -335,7 +331,6 @@
${classic_veto}
${pythia_veto}
${root7_veto}
@@ -140,11 +140,3 @@ diff -ur root-6.22.00.orig/tutorials/CMakeLists.txt root-6.22.00/tutorials/CMake
${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-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<std::vector<char>> readMem(char *Dst, JITTargetAddress Src,
-- uint64_t Size) {
-+ Expected<std::vector<uint8_t>> 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-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<StoreSDNode>(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<StoreSDNode>(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-add-RCutFlowReport-to-LinkDef-file.patch b/root-add-RCutFlowReport-to-LinkDef-file.patch
new file mode 100644
index 0000000..9ec99a1
--- /dev/null
+++ b/root-add-RCutFlowReport-to-LinkDef-file.patch
@@ -0,0 +1,26 @@
+From 2e3fabbe5423f50ee98ce848d8e85ec7a2a2106d Mon Sep 17 00:00:00 2001
+From: Enrico Guiraud <enrico.guiraud(a)cern.ch>
+Date: Thu, 15 Jul 2021 12:17:56 +0200
+Subject: [PATCH] [DF] Add RCutFlowReport to LinkDef
+
+This should fix some sporadic failures in cling's symbol resolution
+in builds without runtime cxx modules.
+---
+ tree/dataframe/inc/LinkDef.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tree/dataframe/inc/LinkDef.h b/tree/dataframe/inc/LinkDef.h
+index 8103468082..684fc3b6f1 100644
+--- a/tree/dataframe/inc/LinkDef.h
++++ b/tree/dataframe/inc/LinkDef.h
+@@ -58,6 +58,7 @@
+ #pragma link C++ class ROOT::Detail::RDF::RMergeableValue<TProfile>+;
+ #pragma link C++ class ROOT::Detail::RDF::RMergeableValue<TProfile2D>+;
+ #pragma link C++ class TNotifyLink<ROOT::Internal::RDF::RDataBlockFlag>;
++#pragma link C++ class ROOT::RDF::RCutFlowReport;
+
+ #endif
+
+--
+2.31.1
+
diff --git a/root-add-RDisplay-to-LinkDef-file.patch b/root-add-RDisplay-to-LinkDef-file.patch
new file mode 100644
index 0000000..e86880c
--- /dev/null
+++ b/root-add-RDisplay-to-LinkDef-file.patch
@@ -0,0 +1,25 @@
+From d9e15857c189edcfa75af5c6244ff68fac74f06f Mon Sep 17 00:00:00 2001
+From: Enrico Guiraud <enrico.guiraud(a)cern.ch>
+Date: Thu, 10 Jun 2021 10:00:32 +0200
+Subject: [PATCH] [DF] Add RDisplay to LinkDef
+
+To help cling autoloading.
+---
+ tree/dataframe/inc/LinkDef.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tree/dataframe/inc/LinkDef.h b/tree/dataframe/inc/LinkDef.h
+index 3879ac8d5d..8103468082 100644
+--- a/tree/dataframe/inc/LinkDef.h
++++ b/tree/dataframe/inc/LinkDef.h
+@@ -20,6 +20,7 @@
+ #pragma link C++ namespace ROOT::Internal::RDF::GraphDrawing;
+ #pragma link C++ namespace ROOT::Detail::RDF;
+ #pragma link C++ namespace ROOT::RDF;
++#pragma link C++ class ROOT::RDF::RDisplay-;
+ #pragma link C++ class ROOT::Internal::RDF::RActionBase-;
+ #pragma link C++ class ROOT::Internal::RDF::RJittedAction-;
+ #pragma link C++ class ROOT::Detail::RDF::RFilterBase-;
+--
+2.31.1
+
diff --git a/root-add-TTreeProcessorMP-to-LinkDef-file.patch b/root-add-TTreeProcessorMP-to-LinkDef-file.patch
new file mode 100644
index 0000000..c8a0b1f
--- /dev/null
+++ b/root-add-TTreeProcessorMP-to-LinkDef-file.patch
@@ -0,0 +1,36 @@
+From 56d52ccf2fad2736e49d3cfc4c9df22492e1dbfc Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Tue, 8 Jun 2021 02:46:18 +0200
+Subject: [PATCH] Add TTreeProcessorMP to LinkDef
+
+This fixes test failure:
+
+ 745/1157 Test #729: tutorial-multicore-mp102_readNtuplesFillHistosAndFit ................***Failed 1.55 sec
+Processing /builddir/build/BUILD/root-6.25.01/tutorials/multicore/mp102_readNtuplesFillHistosAndFit.C...
+IncrementalExecutor::executeFunction: symbol '_ZN4ROOT16TTreeProcessorMPC1Ej' unresolved while linking [cling interface function]!
+You are probably missing the definition of ROOT::TTreeProcessorMP::TTreeProcessorMP(unsigned int)
+Maybe you need to load the corresponding shared library?
+IncrementalExecutor::executeFunction: symbol '_ZN4ROOT16TTreeProcessorMP11ReplyToIdleEP7TSocket' unresolved while linking [cling interface function]!
+You are probably missing the definition of ROOT::TTreeProcessorMP::ReplyToIdle(TSocket*)
+Maybe you need to load the corresponding shared library?
+CMake Error at /builddir/build/BUILD/root-6.25.01/x86_64-redhat-linux-gnu/RootTestDriver.cmake:237 (message):
+ error code: 1
+---
+ tree/treeplayer/inc/LinkDef.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tree/treeplayer/inc/LinkDef.h b/tree/treeplayer/inc/LinkDef.h
+index e7fdd7c9bf..d195536a40 100644
+--- a/tree/treeplayer/inc/LinkDef.h
++++ b/tree/treeplayer/inc/LinkDef.h
+@@ -30,6 +30,7 @@
+ #pragma link C++ class TSimpleAnalysis+;
+ #ifndef _MSC_VER
+ #pragma link C++ class TMPWorkerTree+;
++#pragma link C++ class ROOT::TTreeProcessorMP-;
+ #endif
+ #ifdef R__USE_IMT
+ #pragma link C++ class ROOT::TTreeProcessorMT-;
+--
+2.31.1
+
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 <mattias.ellert(a)physics.uu.se>
-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-<feature>] [--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-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 <mattias.ellert(a)physics.uu.se>
-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-doxygen-crash.patch b/root-doxygen-crash.patch
index b27f5ce..d69d7e7 100644
--- a/root-doxygen-crash.patch
+++ b/root-doxygen-crash.patch
@@ -1,6 +1,204 @@
-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
+diff -ur root-6.24.02.orig/tutorials/dataframe/df002_dataModel.C root-6.24.02/tutorials/dataframe/df002_dataModel.C
+--- root-6.24.02.orig/tutorials/dataframe/df002_dataModel.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df002_dataModel.C 2021-08-11 03:55:11.021149115 +0200
+@@ -7,7 +7,6 @@
+ /// complex than flat ntuples with RDataFrame
+ ///
+ /// \macro_code
+-/// \macro_image
+ ///
+ /// \date December 2016
+ /// \author Danilo Piparo (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df002_dataModel.py root-6.24.02/tutorials/dataframe/df002_dataModel.py
+--- root-6.24.02.orig/tutorials/dataframe/df002_dataModel.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df002_dataModel.py 2021-08-11 03:55:11.084149272 +0200
+@@ -7,7 +7,6 @@
+ ## complex than flat ntuples with RDataFrame
+ ##
+ ## \macro_code
+-## \macro_image
+ ##
+ ## \date May 2017
+ ## \author Danilo Piparo (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df003_profiles.C root-6.24.02/tutorials/dataframe/df003_profiles.C
+--- root-6.24.02.orig/tutorials/dataframe/df003_profiles.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df003_profiles.C 2021-08-11 03:55:11.148149432 +0200
+@@ -7,7 +7,6 @@
+ /// RDataFrame. See the documentation of TProfile and TProfile2D to better
+ /// understand the analogy of this code with the example one.
+ ///
+-/// \macro_image
+ /// \macro_code
+ ///
+ /// \date February 2017
+diff -ur root-6.24.02.orig/tutorials/dataframe/df003_profiles.py root-6.24.02/tutorials/dataframe/df003_profiles.py
+--- root-6.24.02.orig/tutorials/dataframe/df003_profiles.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df003_profiles.py 2021-08-11 03:55:11.211149590 +0200
+@@ -8,7 +8,6 @@
+ ## understand the analogy of this code with the example one.
+ ##
+ ## \macro_code
+-## \macro_image
+ ##
+ ## \date February 2017
+ ## \author Danilo Piparo (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df005_fillAnyObject.C root-6.24.02/tutorials/dataframe/df005_fillAnyObject.C
+--- root-6.24.02.orig/tutorials/dataframe/df005_fillAnyObject.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df005_fillAnyObject.C 2021-08-11 03:55:11.275149750 +0200
+@@ -7,7 +7,6 @@
+ /// `Fill` method.
+ ///
+ /// \macro_code
+-/// \macro_image
+ ///
+ /// \date March 2017
+ /// \author Danilo Piparo (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df007_snapshot.C root-6.24.02/tutorials/dataframe/df007_snapshot.C
+--- root-6.24.02.orig/tutorials/dataframe/df007_snapshot.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df007_snapshot.C 2021-08-11 03:55:11.338149907 +0200
+@@ -5,7 +5,6 @@
+ ///
+ /// This tutorial shows how to write out datasets in ROOT format using the RDataFrame
+ ///
+-/// \macro_image
+ /// \macro_code
+ ///
+ /// \date April 2017
+diff -ur root-6.24.02.orig/tutorials/dataframe/df007_snapshot.py root-6.24.02/tutorials/dataframe/df007_snapshot.py
+--- root-6.24.02.orig/tutorials/dataframe/df007_snapshot.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df007_snapshot.py 2021-08-11 03:55:11.402150067 +0200
+@@ -5,7 +5,6 @@
+ ##
+ ## This tutorial shows how to write out datasets in ROOT format using the RDataFrame
+ ##
+-## \macro_image
+ ## \macro_code
+ ##
+ ## \date April 2017
+diff -ur root-6.24.02.orig/tutorials/dataframe/df014_CSVDataSource.C root-6.24.02/tutorials/dataframe/df014_CSVDataSource.C
+--- root-6.24.02.orig/tutorials/dataframe/df014_CSVDataSource.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df014_CSVDataSource.C 2021-08-11 03:55:11.465150225 +0200
+@@ -14,7 +14,6 @@
+ /// DOI: [10.7483/OPENDATA.CMS.CB8H.MFFA](http://opendata.cern.ch/record/700).
+ ///
+ /// \macro_code
+-/// \macro_image
+ ///
+ /// \date October 2017
+ /// \author Enric Tejedor (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df014_CSVDataSource.py root-6.24.02/tutorials/dataframe/df014_CSVDataSource.py
+--- root-6.24.02.orig/tutorials/dataframe/df014_CSVDataSource.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df014_CSVDataSource.py 2021-08-11 03:55:11.529150385 +0200
+@@ -14,7 +14,6 @@
+ ## DOI: [10.7483/OPENDATA.CMS.CB8H.MFFA](http://opendata.cern.ch/record/700).
+ ##
+ ## \macro_code
+-## \macro_image
+ ##
+ ## \date October 2017
+ ## \author Enric Tejedor (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df015_LazyDataSource.C root-6.24.02/tutorials/dataframe/df015_LazyDataSource.C
+--- root-6.24.02.orig/tutorials/dataframe/df015_LazyDataSource.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df015_LazyDataSource.C 2021-08-11 03:55:11.593150545 +0200
+@@ -14,7 +14,6 @@
+ /// From the ROOT website: https://root.cern.ch/files/tutorials/tdf014_CsvDataSource_MuRun2010B.csv
+ ///
+ /// \macro_code
+-/// \macro_image
+ ///
+ /// \date February 2018
+ /// \author Danilo Piparo (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df016_vecOps.C root-6.24.02/tutorials/dataframe/df016_vecOps.C
+--- root-6.24.02.orig/tutorials/dataframe/df016_vecOps.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df016_vecOps.C 2021-08-11 03:55:11.656150702 +0200
+@@ -7,7 +7,6 @@
+ /// stored in datasets, a situation very common in HEP data analysis.
+ ///
+ /// \macro_code
+-/// \macro_image
+ ///
+ /// \date February 2018
+ /// \author Danilo Piparo (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df016_vecOps.py root-6.24.02/tutorials/dataframe/df016_vecOps.py
+--- root-6.24.02.orig/tutorials/dataframe/df016_vecOps.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df016_vecOps.py 2021-08-11 03:55:11.720150862 +0200
+@@ -6,7 +6,6 @@
+ ## This tutorial shows the potential of the VecOps approach for treating collections
+ ## stored in datasets, a situation very common in HEP data analysis.
+ ##
+-## \macro_image
+ ## \macro_code
+ ##
+ ## \date February 2018
+diff -ur root-6.24.02.orig/tutorials/dataframe/df017_vecOpsHEP.C root-6.24.02/tutorials/dataframe/df017_vecOpsHEP.C
+--- root-6.24.02.orig/tutorials/dataframe/df017_vecOpsHEP.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df017_vecOpsHEP.C 2021-08-11 03:55:11.783151020 +0200
+@@ -11,7 +11,6 @@
+ /// greater than 100.
+ ///
+ /// \macro_code
+-/// \macro_image
+ ///
+ /// \date March 2018
+ /// \authors Danilo Piparo (CERN), Andre Vieira Silva
+diff -ur root-6.24.02.orig/tutorials/dataframe/df017_vecOpsHEP.py root-6.24.02/tutorials/dataframe/df017_vecOpsHEP.py
+--- root-6.24.02.orig/tutorials/dataframe/df017_vecOpsHEP.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df017_vecOpsHEP.py 2021-08-11 03:55:11.846151177 +0200
+@@ -7,7 +7,6 @@
+ ## model typically adopted in HEP for analysis.
+ ##
+ ## \macro_code
+-## \macro_image
+ ##
+ ## \date March 2018
+ ## \authors Danilo Piparo (CERN), Andre Vieira Silva
+diff -ur root-6.24.02.orig/tutorials/dataframe/df019_Cache.C root-6.24.02/tutorials/dataframe/df019_Cache.C
+--- root-6.24.02.orig/tutorials/dataframe/df019_Cache.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df019_Cache.C 2021-08-11 03:55:11.910151337 +0200
+@@ -18,7 +18,6 @@
+ /// only when the event loop is triggered on it.
+ ///
+ /// \macro_code
+-/// \macro_image
+ ///
+ /// \date June 2018
+ /// \author Danilo Piparo (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df019_Cache.py root-6.24.02/tutorials/dataframe/df019_Cache.py
+--- root-6.24.02.orig/tutorials/dataframe/df019_Cache.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df019_Cache.py 2021-08-11 03:55:11.973151495 +0200
+@@ -18,7 +18,6 @@
+ ## only when the event loop is triggered on it.
+ ##
+ ## \macro_code
+-## \macro_image
+ ##
+ ## \date June 2018
+ ## \author Danilo Piparo (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df021_createTGraph.C root-6.24.02/tutorials/dataframe/df021_createTGraph.C
+--- root-6.24.02.orig/tutorials/dataframe/df021_createTGraph.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df021_createTGraph.C 2021-08-11 03:55:12.037151655 +0200
+@@ -4,7 +4,6 @@
+ /// Fill a TGraph using RDataFrame.
+ ///
+ /// \macro_code
+-/// \macro_image
+ ///
+ /// \date July 2018
+ /// \authors Enrico Guiraud, Danilo Piparo (CERN), Massimo Tumolo (Politecnico di Torino)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df021_createTGraph.py root-6.24.02/tutorials/dataframe/df021_createTGraph.py
+--- root-6.24.02.orig/tutorials/dataframe/df021_createTGraph.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df021_createTGraph.py 2021-08-11 03:55:12.100151813 +0200
+@@ -4,7 +4,6 @@
+ ## Fill a TGraph using RDataFrame.
+ ##
+ ## \macro_code
+-## \macro_image
+ ##
+ ## \date July 2018
+ ## \authors Enrico Guiraud, Danilo Piparo (CERN), Massimo Tumolo (Politecnico di Torino)
+diff -ur root-6.24.02.orig/tutorials/tmva/tmva003_RReader.C root-6.24.02/tutorials/tmva/tmva003_RReader.C
+--- root-6.24.02.orig/tutorials/tmva/tmva003_RReader.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/tmva/tmva003_RReader.C 2021-08-11 04:16:33.833359421 +0200
@@ -5,7 +5,6 @@
/// TMVA XML files.
///
@@ -9,9 +207,9 @@ diff -ur root-6.22.00.orig/tutorials/tmva/tmva003_RReader.C root-6.22.00/tutoria
///
/// \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
+diff -ur root-6.24.02.orig/tutorials/tmva/tmva103_Application.C root-6.24.02/tutorials/tmva/tmva103_Application.C
+--- root-6.24.02.orig/tutorials/tmva/tmva103_Application.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/tmva/tmva103_Application.C 2021-08-11 21:56:49.387390340 +0200
@@ -6,7 +6,6 @@
/// event-by-event inference, batch inference and pipelines with RDataFrame.
///
@@ -20,9 +218,42 @@ diff -ur root-6.22.00.orig/tutorials/tmva/tmva103_Application.C root-6.22.00/tut
///
/// \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
+diff -ur root-6.24.02.orig/tutorials/tmva/TMVA_CNN_Classification.C root-6.24.02/tutorials/tmva/TMVA_CNN_Classification.C
+--- root-6.24.02.orig/tutorials/tmva/TMVA_CNN_Classification.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/tmva/TMVA_CNN_Classification.C 2021-08-10 15:21:03.306171069 +0200
+@@ -6,7 +6,6 @@
+ /// This is an example of using a CNN in TMVA. We do classification using a toy image data set
+ /// that is generated when running the example macro
+ ///
+-/// \macro_image
+ /// \macro_output
+ /// \macro_code
+ ///
+diff -ur root-6.24.02.orig/tutorials/tmva/TMVA_Higgs_Classification.C root-6.24.02/tutorials/tmva/TMVA_Higgs_Classification.C
+--- root-6.24.02.orig/tutorials/tmva/TMVA_Higgs_Classification.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/tmva/TMVA_Higgs_Classification.C 2021-08-10 15:21:33.974251559 +0200
+@@ -7,7 +7,6 @@
+ /// used in this paper: Baldi, P., P. Sadowski, and D. Whiteson. “Searching for Exotic Particles in High-energy Physics
+ /// with Deep Learning.” Nature Communications 5 (July 2, 2014).
+ ///
+-/// \macro_image
+ /// \macro_output
+ /// \macro_code
+ ///
+diff -ur root-6.24.02.orig/tutorials/tmva/TMVA_RNN_Classification.C root-6.24.02/tutorials/tmva/TMVA_RNN_Classification.C
+--- root-6.24.02.orig/tutorials/tmva/TMVA_RNN_Classification.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/tmva/TMVA_RNN_Classification.C 2021-08-10 15:21:15.657203486 +0200
+@@ -6,7 +6,6 @@
+ /// This is an example of using a RNN in TMVA. We do classification using a toy time dependent data set
+ /// that is generated when running this example macro
+ ///
+-/// \macro_image
+ /// \macro_output
+ /// \macro_code
+ ///
+diff -ur root-6.24.02.orig/tutorials/v7/line.cxx root-6.24.02/tutorials/v7/line.cxx
+--- root-6.24.02.orig/tutorials/v7/line.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/v7/line.cxx 2021-08-16 14:25:32.528867781 +0200
@@ -6,7 +6,6 @@
/// "normal" coordinates' system and changing the line color linearly from black
/// to red.
@@ -31,3 +262,14 @@ diff -ur root-6.22.00.orig/tutorials/v7/line.cxx root-6.22.00/tutorials/v7/line.
/// \macro_code
///
/// \date 2018-03-18
+diff -ur root-6.24.02.orig/tutorials/v7/ntuple/ntpl005_introspection.C root-6.24.02/tutorials/v7/ntuple/ntpl005_introspection.C
+--- root-6.24.02.orig/tutorials/v7/ntuple/ntpl005_introspection.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/v7/ntuple/ntpl005_introspection.C 2021-08-10 15:22:06.504336763 +0200
+@@ -4,7 +4,6 @@
+ /// Write and read an RNTuple from a user-defined class. Adapted from tv3.C
+ /// Illustrates various RNTuple introspection methods.
+ ///
+-/// \macro_image
+ /// \macro_code
+ ///
+ /// \date April 2020
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 <mattias.ellert(a)physics.uu.se>
-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 </b>
-- end of comment block while expecting command </em>
-- end of comment block while expecting command </pre>
-- end of comment block while expecting command </s>
-- end of comment block while expecting command </sup>
-- end of comment block while expecting command </tt>
-- end of comment block while expecting command </u>
-- end of list marker found without any preceding list items
-- found </em> tag without matching <em>
-- found </li> tag without matching <li>
-- found </pre> tag without matching <pre>
-- found </sub> tag while expecting </sup>
-- found </sup> tag without matching <sup>
-- found </tt> tag without matching <tt>
-- found </ul> tag without matching <ul>
-- illegal </br> tag found
-- reached end of file while inside a 'code' block!
-- reached end of file while still inside a (nested) comment.
-- unexpected end of comment while inside <a href=...> tag
-- unexpected end of comment while inside <ul> block
-- unexpected html tag <blockquote> found within <h1> context
-- unexpected tag </h2> found
-- unexpected tag </h3> found
-- unsupported xml/html tag <it> found
-- unsupported xml/html tag </it> found
----
- bindings/r/inc/TRDataFrame.h | 2 +-
- core/base/src/TEnv.cxx | 7 +-
- core/cont/src/TBits.cxx | 2 +-
- core/dictgen/res/DictSelectionReader.h | 140 +++++++++---------
- core/foundation/inc/ROOT/TypeTraits.hxx | 2 +-
- core/meta/src/TClass.cxx | 6 +-
- core/metacling/src/TCling.cxx | 8 +-
- graf2d/x11/src/TGX11.cxx | 6 +-
- gui/guihtml/src/TGHtmlSizer.cxx | 4 +-
- hist/hist/src/TSVDUnfold.cxx | 8 +-
- hist/histpainter/src/THistPainter.cxx | 2 +-
- hist/histv7/speed/histspeedtest.cxx | 1 -
- hist/unfold/inc/TUnfold.h | 8 +-
- html/src/TDocDirective.cxx | 2 +-
- math/mathcore/inc/Math/ProbFuncMathCore.h | 8 +-
- math/mathcore/inc/Math/QuantFuncMathCore.h | 4 +-
- math/mathcore/src/TMath.cxx | 2 +-
- math/mathmore/inc/Math/GSLMultiRootFinder.h | 16 +-
- math/matrix/doc/Matrix.md | 2 +-
- math/minuit/src/TMinuit.cxx | 4 +-
- montecarlo/eg/src/TDatabasePDG.cxx | 2 +-
- montecarlo/vmc/README.md | 2 +-
- net/http/civetweb/LICENSE.md | 4 -
- proof/proof/src/TProofMgr.cxx | 50 ++++---
- proof/proof/src/TProofServ.cxx | 10 +-
- roofit/histfactory/doc/index.md | 11 +-
- .../src/MakeModelAndMeasurementsFast.cxx | 11 +-
- roofit/roofitcore/inc/RooAbsCategory.h | 2 +-
- roofit/roofitcore/src/RooSimPdfBuilder.cxx | 4 +-
- tmva/tmva/src/Factory.cxx | 6 +-
- tmva/tmva/src/Reader.cxx | 4 +-
- tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx | 2 +-
- tutorials/net/udpserver.c | 2 +-
- tutorials/tmva/TMVA_CNN_Classification.C | 2 +-
- 34 files changed, 168 insertions(+), 178 deletions(-)
-
-diff --git a/bindings/r/inc/TRDataFrame.h b/bindings/r/inc/TRDataFrame.h
-index b7bb4ed89d..dbf48e1383 100644
---- a/bindings/r/inc/TRDataFrame.h
-+++ b/bindings/r/inc/TRDataFrame.h
-@@ -136,7 +136,7 @@ namespace ROOT {
- 2 |1
- \endcode
-
-- </h2>Working with colunms between dataframes</h2><br>
-+ <h2>Working with colunms between dataframes</h2><br>
- \code{.cpp}
- df2["v3"]<<df1["strings"];
-
-diff --git a/core/base/src/TEnv.cxx b/core/base/src/TEnv.cxx
-index 39c07caf21..ab697df7b7 100644
---- a/core/base/src/TEnv.cxx
-+++ b/core/base/src/TEnv.cxx
-@@ -388,10 +388,9 @@ TString TEnvRec::ExpandValue(const char *value)
- ClassImp(TEnv);
-
- ////////////////////////////////////////////////////////////////////////////////
--/// Create a resource table and read the (possibly) three resource files, i.e
--/// `$ROOTSYS/etc/system``<name>` (or `ROOTETCDIR/system``<name>`),
--/// `$HOME/``<name>` and
--/// `./``<name>`.
-+/// Create a resource table and read the (possibly) three resource files,
-+/// i.e.\ `$ROOTSYS/etc/system<name>` (or `ROOTETCDIR/system<name>`),
-+/// `$HOME/<name>` and `$PWD/<name>`.
- /// ROOT always reads ".rootrc" (in TROOT::InitSystem()). You can
- /// read additional user defined resource files by creating additional TEnv
- /// objects. By setting the shell variable ROOTENV_NO_HOME=1 the reading of
-diff --git a/core/cont/src/TBits.cxx b/core/cont/src/TBits.cxx
-index 155bfd4b4c..95167dd5b1 100644
---- a/core/cont/src/TBits.cxx
-+++ b/core/cont/src/TBits.cxx
-@@ -10,7 +10,7 @@ Container of bits.
- This class provides a simple container of bits.
- Each bit can be set and tested via the functions SetBitNumber and
- TestBitNumber.
-- .
-+
- The default value of all bits is kFALSE.
- The size of the container is automatically extended when a bit
- number is either set or tested. To reduce the memory size of the
-diff --git a/core/dictgen/res/DictSelectionReader.h b/core/dictgen/res/DictSelectionReader.h
-index 52921d6237..b19135badd 100644
---- a/core/dictgen/res/DictSelectionReader.h
-+++ b/core/dictgen/res/DictSelectionReader.h
-@@ -60,34 +60,32 @@ namespace clang {
- * By default, the Name of the selection class is then
- * @c ROOT::Meta::Selection::C. If you have such a class, it will be found
- * automatically. If @c C is in a namespace, @c NS::C, then
-- * the selection class should be in the same namespace: @c
--ROOT::Selection::NS::C.
-+ * the selection class should be in the same namespace:
-+ * @c ROOT::Meta::Selection::NS::C.
-+ *
- * Examples:
- *
--
--**/
--
--/**
- * The DictSelectionReader is used to create selection rules starting from
- * C++ the constructs of the @c ROOT::Meta::Selection namespace. All rules
- * are matching by name.
- * A brief description of the operations that lead to class selection:
-- * 1. If a class declaration is present in the selection namespace, a class
-- * with the same name is selected outside the selection namespace.
-- * 2. If a template class declaration and a template instantiation is present
-- * in the selection namespace, all the instances of the template are
-- * selected outside the namespace.
-+ * 1. If a class declaration is present in the selection namespace, a class
-+ * with the same name is selected outside the selection namespace.
-+ * 2. If a template class declaration and a template instantiation is present
-+ * in the selection namespace, all the instances of the template are
-+ * selected outside the namespace.
-+ *
- * For example:
- * @code
- * [...]
- * class classVanilla{};
- * template <class A> class classTemplateVanilla {};
- * classTemplateVanilla<char> t0;
-- * namespace ROOT{
-+ * namespace ROOT {
- * namespace Meta {
-- * namespace Selection{
-- * class classVanilla{};
-- * template <typename A> class classTemplateVanilla{};
-+ * namespace Selection {
-+ * class classVanilla {};
-+ * template <typename A> class classTemplateVanilla {};
- * classTemplateVanilla<char> st0;
- * }
- * }
-@@ -98,14 +96,15 @@ ROOT::Selection::NS::C.
- *
- * A brief description of the properties that can be assigned to classes
- * with the @c ROOT::Meta::Selection::ClassAttributes class.
-- * 1. @c kNonSplittable : Makes the class non splittable
-+ * 1. @c kNonSplittable : Makes the class non splittable
-+ *
- * The class properties can be assigned via a traits mechanism. For example:
- * @code
- * [...]
-- * class classWithAttributes{};
-- * namespace ROOT{
-+ * class classWithAttributes {};
-+ * namespace ROOT {
- * namespace Meta {
-- * namespace Selection{
-+ * namespace Selection {
- * class classWithAttributes : ClassAttributes <kNonSplittable> {};
- * }
- * }
-@@ -116,9 +115,9 @@ ROOT::Selection::NS::C.
- * properties can be assigned to a single class with this syntax:
- * @code
- * [...]
-- * namespace ROOT{
-+ * namespace ROOT {
- * namespace Meta {
-- * namespace Selection{
-+ * namespace Selection {
- * class classWithAttributes :
- * ClassAttributes <kProperty1 + kProperty2 + ... + kPropertyN> {};
- * }
-@@ -126,7 +125,6 @@ ROOT::Selection::NS::C.
- * }
- * @endcode
- *
-- *
- * The @c ROOT::Meta::Selection syntax allows to alter the number of template
- * parameters of a certain template class within the ROOT type system, TClass.
- * Technically it allows to alter the way in which the "normalized name" (in
-@@ -137,23 +135,21 @@ ROOT::Selection::NS::C.
- * a long explaination in this case:
- * @code
- * [...]
-- * template <class T, class U=int, int V=3> class A{...};
-- * template <class T, class Alloc= myAllocator<T> > class myVector{...};
-+ * template <class T, class U = int, int V = 3> class A {...};
-+ * template <class T, class Alloc = myAllocator<T> > class myVector {...};
- * A<char> a1;
-- * A<char,float> a2;
-+ * A<char, float> a2;
- * myVector<float> v1;
- * myVector<A<char>> v2;
- *
-- * namespace ROOT{
-+ * namespace ROOT {
- * namespace Meta {
-- * namespace Selection{
-- * template <class T, class U=int, int V=3> class A
-- * :KeepFirstTemplateArguments<1>{};
-- *
-- * A<double> ;
-- * template <class T, class Alloc= myAllocator<T> > class myVector
-- * :KeepFirstTemplateArguments<1>{};
-- *
-+ * namespace Selection {
-+ * template <class T, class U = int, int V = 3> class A
-+ * : KeepFirstTemplateArguments<1> {};
-+ * A<double> a;
-+ * template <class T, class Alloc = myAllocator<T> > class myVector
-+ * : KeepFirstTemplateArguments<1> {};
- * myVector<double> vd;
- * }
- * }
-@@ -165,53 +161,55 @@ ROOT::Selection::NS::C.
- * will be kept.
- * In absence of any @c KeepFirstTemplateArguments trait, the normalization
- * would be:
-- * @c A<char> &rarr @c A<char,float,3>
-- * @c A<char,float> &rarr @c A<char,int,3>
-- * @c myVector<float> &rarr @c myVector<A<char,int,3>,myAllocator<A<char,int,3>>>
-- * @c myVector<A<char>> &rarr @c myVector<float,myAllocator<float>>
-+ * - @c A<char> → @c A<char,float,3>
-+ * - @c A<char,float> → @c A<char,int,3>
-+ * - @c myVector<float> → @c myVector<A<char,int,3>,myAllocator<A<char,int,3>>>
-+ * - @c myVector<A<char>> → @c myVector<float,myAllocator<float>>
- *
- * Now, deciding to keep just one argument (@c KeepFirstTemplateArguments<1>):
-- * @c A<char> &rarr @c A<char,float>
-- * @c A<char,float> &rarr @c A<char>
-- * @c myVector<float> &rarr @c myVector<A<char>,myAllocator<A<char>>>
-- * @c myVector<A<char>> &rarr @c myVector<float,myAllocator<float>>
-+ * - @c A<char> → @c A<char,float>
-+ * - @c A<char,float> → @c A<char>
-+ * - @c myVector<float> → @c myVector<A<char>,myAllocator<A<char>>>
-+ * - @c myVector<A<char>> → @c myVector<float,myAllocator<float>>
- *
- * And deciding to keep two arguments (@c KeepFirstTemplateArguments<2>):
-- * @c A<char> &rarr @c A<char,float>
-- * @c A<char,float> &rarr @c A<char,int>
-- * @c myVector<float> &rarr @c myVector<A<char,int>,myAllocator<A<char,int>>>
-- * @c myVector<A<char>> &rarr @c myVector<float,myAllocator<float>>
-+ * - @c A<char> → @c A<char,float>
-+ * - @c A<char,float> → @c A<char,int>
-+ * - @c myVector<float> → @c myVector<A<char,int>,myAllocator<A<char,int>>>
-+ * - @c myVector<A<char>> → @c myVector<float,myAllocator<float>>
- *
- * A brief description of the properties that can be assigned to data members
- * with the @c ROOT::Meta::Selection MemberAttributes class:
-- * 1. @c kTransient : the data member is transient, not persistified by the
-- * ROOT I/O.
-- * 2. @c kAutoSelected : the type of the data member is selected without the
-- * need of specifying its class explicitely.
-+ * 1. @c kTransient : the data member is transient, not persistified by the
-+ * ROOT I/O.
-+ * 2. @c kAutoSelected : the type of the data member is selected without the
-+ * need of specifying its class explicitely.
-+ *
- * For example:
- * @code
- * [...]
-- * class classTransientMember{
-+ * class classTransientMember {
- * private:
- * int transientMember;
- * };
-- * class classAutoselected{};
-- * class classTestAutoselect{
-+ * class classAutoselected {};
-+ * class classTestAutoselect {
- * private:
- * classAutoselected autoselected;
- * };
- *
-- * namespace ROOT{
-+ * namespace ROOT {
- * namespace Meta {
-- * namespace Selection{
-- * class classTestAutoselect{
-+ * namespace Selection {
-+ * class classTestAutoselect {
- * MemberAttributes<kAutoSelected> autoselected;
- * };
--
-- class classTransientMember{
-- MemberAttributes<kTransient> transientMember;
-- };
-- *
-+ * class classTransientMember {
-+ * MemberAttributes<kTransient> transientMember;
-+ * };
-+ * }
-+ * }
-+ * }
- * @endcode
- * would lead to the creation of selection rules for @c classTransientMember
- * specifying that @c transientMember is transient, @c classTestAutoselect and
-@@ -229,10 +227,10 @@ ROOT::Selection::NS::C.
- * template< class T, class BASE >
- * class MyDataVector : KeepFirstTemplateArguments< 1 >, SelectNoInstance {
- * MemberAttributes< kTransient + kAutoSelected > m_isMostDerived;
-- * MemberAttributes< kNonSplittable+ kAutoSelected > m_isNonSplit;
-- * };
-+ * MemberAttributes< kNonSplittable + kAutoSelected > m_isNonSplit;
-+ * };
- * [...]
-- *
-+ * @endcode
- **/
- namespace ROOT {
- namespace Internal {
-@@ -265,12 +263,9 @@ private:
- inline bool
- InSelectionNamespace(const clang::RecordDecl &,
- const std::string &str =
-- ""); ///< Check if in the ROOT::Selection namespace
-+ ""); ///< Check if in the ROOT::Meta::Selection namespace
- inline bool FirstPass(const clang::RecordDecl &); ///< First pass on the AST
-- inline bool SecondPass(const clang::RecordDecl &); ///< Second pass on the
-- ///AST, using the
-- ///information of the first
-- ///one
-+ inline bool SecondPass(const clang::RecordDecl &); ///< Second pass on the AST, using the information of the first one
- inline void
- ManageFields(const clang::RecordDecl &,
- const std::string &,
-@@ -285,8 +280,7 @@ private:
- inline const clang::TemplateArgumentList *GetTmplArgList(
- const clang::CXXRecordDecl &); ///< Get the template arguments list if any
-
-- std::string PatternifyName(const std::string &className); ///< Transform instance
-- ///< name in pattern for selection
-+ std::string PatternifyName(const std::string &className); ///< Transform instance name in pattern for selection
- void GetPointeeType(std::string &typeName); ///< Get name of the pointee type
-
- SelectionRules &fSelectionRules; ///< The selection rules to be filled
-@@ -300,9 +294,9 @@ private:
- fNoAutoSelectedClassFieldNames; ///< Collect the autoexcluded classes
- std::unordered_map<std::string, TemplateInfo> fTemplateInfoMap; ///< List template name - properties map
- llvm::StringMap<ClassSelectionRule>
-- fClassNameSelectionRuleMap; /// < Map of the already built sel rules
-+ fClassNameSelectionRuleMap; ///< Map of the already built sel rules
- bool fIsFirstPass; ///< Keep trance of the number of passes through the AST
-- ROOT::TMetaUtils::TNormalizedCtxt &fNormCtxt; /// < The reference to the normalized context
-+ ROOT::TMetaUtils::TNormalizedCtxt &fNormCtxt; ///< The reference to the normalized context
- };
- }
- }
-diff --git a/core/foundation/inc/ROOT/TypeTraits.hxx b/core/foundation/inc/ROOT/TypeTraits.hxx
-index 1abf64e73a..ab491c2504 100644
---- a/core/foundation/inc/ROOT/TypeTraits.hxx
-+++ b/core/foundation/inc/ROOT/TypeTraits.hxx
-@@ -155,7 +155,7 @@ template <typename T>
- using TakeFirstParameter_t = typename TakeFirstParameter<T>::type;
-
- /// Remove first of possibly many template parameters.
--/// e.g. RemoveFirstParameter_t<U<A,B>> is U<B>
-+/// e.g. RemoveFirstParameter_t<U<A,B>> is U\<B\>
- template <typename>
- struct RemoveFirstParameter {
- };
-diff --git a/core/meta/src/TClass.cxx b/core/meta/src/TClass.cxx
-index 4eeec81dc1..f29ab7fd85 100644
---- a/core/meta/src/TClass.cxx
-+++ b/core/meta/src/TClass.cxx
-@@ -6780,7 +6780,7 @@ void TClass::SetDestructor(ROOT::DesFunc_t destructorFunc)
- }
-
- ////////////////////////////////////////////////////////////////////////////////
--/// Install a new wrapper around the directory auto add function..
-+/// Install a new wrapper around the directory auto add function.
- /// The function autoAddFunc has the signature void (*)(void *obj, TDirectory dir)
- /// and should register 'obj' to the directory if dir is not null
- /// and unregister 'obj' from its current directory if dir is null
-@@ -7120,12 +7120,12 @@ Bool_t ROOT::Internal::HasConsistentHashMember(TClass &clRef)
- /// (public or not), use
- /// \code{.cpp}
- /// cl->GetProperty() & kClassHasDefaultCtor
--/// \code
-+/// \endcode
- /// To know if the class described by this TClass has a public default
- /// constructor use:
- /// \code{.cpp}
- /// gInterpreter->ClassInfo_HasDefaultConstructor(aClass->GetClassInfo());
--/// \code
-+/// \endcode
-
- Bool_t TClass::HasDefaultConstructor(Bool_t testio) const
- {
-diff --git a/core/metacling/src/TCling.cxx b/core/metacling/src/TCling.cxx
-index db0da13620..279744834a 100644
---- a/core/metacling/src/TCling.cxx
-+++ b/core/metacling/src/TCling.cxx
-@@ -5388,10 +5388,10 @@ int TCling::ReadRootmapFile(const char *rootmapfile, TUniqueString *uniqueString
- }
-
- ////////////////////////////////////////////////////////////////////////////////
--/// Create a resource table and read the (possibly) three resource files, i.e
--/// $ROOTSYS/etc/system<name> (or ROOTETCDIR/system<name>), $HOME/<name> and
--/// ./<name>. ROOT always reads ".rootrc" (in TROOT::InitSystem()). You can
--/// read additional user defined resource files by creating additional TEnv
-+/// Create a resource table and read the (possibly) three resource files,
-+/// i.e.\ $ROOTSYS/etc/system<name> (or ROOTETCDIR/system<name>), $HOME/<name>
-+/// and $PWD/<name>. ROOT always reads ".rootrc" (in TROOT::InitSystem()). You
-+/// can read additional user defined resource files by creating additional TEnv
- /// objects. By setting the shell variable ROOTENV_NO_HOME=1 the reading of
- /// the $HOME/<name> resource file will be skipped. This might be useful in
- /// case the home directory resides on an automounted remote file system
-diff --git a/graf2d/x11/src/TGX11.cxx b/graf2d/x11/src/TGX11.cxx
-index 59e5260c92..26f88dd045 100644
---- a/graf2d/x11/src/TGX11.cxx
-+++ b/graf2d/x11/src/TGX11.cxx
-@@ -3599,9 +3599,9 @@ Pixmap_t TGX11::ReadGIF(int x0, int y0, const char *file, Window_t id)
- }
-
- ////////////////////////////////////////////////////////////////////////////////
--/// Returns an array of pixels created from a part of drawable (defined by x, y, w, h)
--/// in format:
--/// `b1, g1, r1, 0, b2, g2, r2, 0 ... bn, gn, rn, 0 ..`
-+/// Returns an array of pixels created from a part of drawable
-+/// (defined by x, y, w, h) in format:
-+/// `b1, g1, r1, 0, b2, g2, r2, 0, ..., bn, gn, rn, 0`.
- ///
- /// Pixels are numbered from left to right and from top to bottom.
- /// By default all pixels from the whole drawable are returned.
-diff --git a/gui/guihtml/src/TGHtmlSizer.cxx b/gui/guihtml/src/TGHtmlSizer.cxx
-index c73eb581b5..8e6e71dcf7 100644
---- a/gui/guihtml/src/TGHtmlSizer.cxx
-+++ b/gui/guihtml/src/TGHtmlSizer.cxx
-@@ -60,7 +60,7 @@ SHtmlStyle_t TGHtml::GetCurrentStyle()
- ////////////////////////////////////////////////////////////////////////////////
- /// Push a new rendering style onto the stack.
- ///
--/// tag - Tag for this style. Normally the end-tag such as </h3> or </em>.
-+/// tag - Tag for this style. Normally the end-tag such as \</h3\> or \</em\>.
- /// style - The style to push
-
- void TGHtml::PushStyleStack(int tag, SHtmlStyle_t style)
-@@ -152,7 +152,7 @@ void TGHtml::MakeInvisible(TGHtmlElement *p_first, TGHtmlElement *p_last)
- }
-
- ////////////////////////////////////////////////////////////////////////////////
--/// For the markup <a href=XXX>, find out if the URL has been visited
-+/// For the markup \<a href=XXX\>, find out if the URL has been visited
- /// before or not. Return COLOR_Visited or COLOR_Unvisited, as
- /// appropriate.
-
-diff --git a/hist/hist/src/TSVDUnfold.cxx b/hist/hist/src/TSVDUnfold.cxx
-index 85cfa9f241..2b570bdb22 100644
---- a/hist/hist/src/TSVDUnfold.cxx
-+++ b/hist/hist/src/TSVDUnfold.cxx
-@@ -46,13 +46,11 @@
- The measured distribution can be unfolded for any combination of resolution, efficiency and acceptance effects, provided an appropriate definition of <tt>xini</tt> and <tt>Adet</tt>.<br><br>
- <p>
- The unfolding can be performed by
-- <ul>
-- <pre>
-+ \code{.cpp}
- TSVDUnfold *tsvdunf = new TSVDUnfold( bdat, Bcov, bini, xini, Adet );
- TH1D* unfresult = tsvdunf->Unfold( kreg );
-- </pre>
-- </ul>
-- where <tt>kreg</tt> determines the regularisation of the unfolding. In general, overregularisation (too small <tt>kreg</tt>) will bias the unfolded spectrum towards the Monte Carlo input, while underregularisation (too large <tt>kreg</tt>) will lead to large fluctuations in the unfolded spectrum. The optimal regularisation can be determined following guidelines in <a href="http://arXiv.org/abs/hep-ph/9509307">Nucl. Instrum. Meth. A372, 469 (1996) [hep-ph/9509307]</a> using the distribution of the <tt>|d_i|<\tt> that can be obtained by <tt>tsvdunf->GetD()</tt> and/or using pseudo-experiments.
-+ \endcode
-+ where <tt>kreg</tt> determines the regularisation of the unfolding. In general, overregularisation (too small <tt>kreg</tt>) will bias the unfolded spectrum towards the Monte Carlo input, while underregularisation (too large <tt>kreg</tt>) will lead to large fluctuations in the unfolded spectrum. The optimal regularisation can be determined following guidelines in <a href="http://arXiv.org/abs/hep-ph/9509307">Nucl. Instrum. Meth. A372, 469 (1996) [hep-ph/9509307]</a> using the distribution of the <tt>|d_i|</tt> that can be obtained by <tt>tsvdunf->GetD()</tt> and/or using pseudo-experiments.
- <p>
- Covariance matrices on the measured spectrum (for either the total uncertainties or individual sources of uncertainties) can be propagated to covariance matrices using the <tt>GetUnfoldCovMatrix</tt> method, which uses pseudo experiments for the propagation. In addition, <tt>GetAdetCovMatrix</tt> allows for the propagation of the statistical uncertainties on the response matrix using pseudo experiments. The covariance matrix corresponding to <tt>Bcov</tt> is also computed as described in <a href="http://arXiv.org/abs/hep-ph/9509307">Nucl. Instrum. Meth. A372, 469 (1996) [hep-ph/9509307]</a> and can be obtained from <tt>tsvdunf->GetXtau()</tt> and its (regularisation independent) inverse from <tt>tsvdunf->GetXinv()</tt>. The distribution of singular values can be retrieved using <tt>tsvdunf->GetSV()</tt>.
- <p>
-diff --git a/hist/histpainter/src/THistPainter.cxx b/hist/histpainter/src/THistPainter.cxx
-index 0f80505570..20a944a545 100644
---- a/hist/histpainter/src/THistPainter.cxx
-+++ b/hist/histpainter/src/THistPainter.cxx
-@@ -418,7 +418,7 @@ some combinations must be use with care.
- - It does not work when combined with the `LEGO` and `SURF` options unless the
- histogram plotted with the option `SAME` has exactly the same
- ranges on the X, Y and Z axis as the currently drawn histogram. To superimpose
-- lego plots [histograms' stacks](#HP26) should be used.</li>
-+ lego plots [histograms' stacks](#HP26) should be used.
-
-
- ### <a name="HP061"></a> Colors automatically picked in palette
-diff --git a/hist/histv7/speed/histspeedtest.cxx b/hist/histv7/speed/histspeedtest.cxx
-index 55c0992bd5..065a10f0d7 100644
---- a/hist/histv7/speed/histspeedtest.cxx
-+++ b/hist/histv7/speed/histspeedtest.cxx
-@@ -35,7 +35,6 @@ and
- /opt/build/root_builds/rootcling.cmake/include/ROOT/THistBinIter.h:53:50: error: no member named 'GetUncertainty' in
- 'ROOT::Experimental::THistDataContent<2, double, ROOT::Experimental::THistDataDefaultStorage>::TBinStat<double>' auto
- GetUncertainty() const { return GetStat().GetUncertainty(); }
-- ~~~~~~~~~ ^
-
- new ones (STATCLASSES)
-
-diff --git a/hist/unfold/inc/TUnfold.h b/hist/unfold/inc/TUnfold.h
-index a69da26b4c..ce6e16fb4a 100644
---- a/hist/unfold/inc/TUnfold.h
-+++ b/hist/unfold/inc/TUnfold.h
-@@ -179,15 +179,15 @@ class TUnfold : public TObject {
- TMatrixD *fX;
- /// covariance matrix Vxx
- TMatrixDSparse *fVxx;
-- /// inverse of covariance matrix Vxx<sup>-1</sub>
-+ /// inverse of covariance matrix Vxx<sup>-1</sup>
- TMatrixDSparse *fVxxInv;
-- /// inverse of the input covariance matrix Vyy<sup>-1</sub>
-+ /// inverse of the input covariance matrix Vyy<sup>-1</sup>
- TMatrixDSparse *fVyyInv;
- /// result x folded back A*x
- TMatrixDSparse *fAx;
-- /// chi**2 contribution from (y-Ax)Vyy<sup>-1</sub>(y-Ax)
-+ /// chi**2 contribution from (y-Ax)Vyy<sup>-1</sup>(y-Ax)
- Double_t fChi2A;
-- /// chi**2 contribution from (x-s*x0)<sup>T</sub>L<sup>T</sub>L(x-s*x0)
-+ /// chi**2 contribution from (x-s*x0)<sup>T</sup>L<sup>T</sup>L(x-s*x0)
- Double_t fLXsquared;
- /// maximum global correlation coefficient
- Double_t fRhoMax;
-diff --git a/html/src/TDocDirective.cxx b/html/src/TDocDirective.cxx
-index f7ffdc29c3..ab43d1ab38 100644
---- a/html/src/TDocDirective.cxx
-+++ b/html/src/TDocDirective.cxx
-@@ -215,7 +215,7 @@ void TDocHtmlDirective::AddLine(const TSubString& line)
-
- ////////////////////////////////////////////////////////////////////////////////
- /// Set result to the HTML code that was passed in via AddLine().
--/// Prepend a closing </pre>, append an opening <pre>
-+/// Prepend a closing \</pre\>, append an opening \<pre\>
-
- 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 <em>Math/ProbFunc.h<em> or in the global one
-- * including all statistical functions <em>Math/DistFunc.h<em>
-+ * These functions are defined in the header file <em>Math/ProbFunc.h</em> or in the global one
-+ * including all statistical functions <em>Math/DistFunc.h</em>
- *
- */
-
-@@ -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 <em>Math/ProbFunc.h<em> or in the global one
-- including all statistical functions <em>Math/StatFunc.h<em>
-+ These functions are defined in the header file <em>Math/ProbFunc.h</em> or in the global one
-+ including all statistical functions <em>Math/StatFunc.h</em>
-
- */
-
-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 <em>Math/ProbFunc.h<em> or in the global one
-- * including all statistical functions <em>Math/DistFunc.h<em>
-+ * These functions are defined in the header file <em>Math/ProbFunc.h</em> or in the global one
-+ * including all statistical functions <em>Math/DistFunc.h</em>
- *
- *
- * <strong>NOTE:</strong> In the old releases (< 5.14) the <em>_quantile</em> 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 {
- <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Algorithms-using-Derivat...">documentation</A> )
- are the followings:
- <ul>
-- <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridSJ</tt> with name <it>"HybridSJ"</it>: modified Powell's hybrid
-+ <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridSJ</tt> with name <i>"HybridSJ"</i>: modified Powell's hybrid
- method as implemented in HYBRJ in MINPACK
-- <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridJ</tt> with name <it>"HybridJ"</it>: unscaled version of the
-+ <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridJ</tt> with name <i>"HybridJ"</i>: unscaled version of the
- previous algorithm</li>
-- <li><tt>ROOT::Math::GSLMultiRootFinder::kNewton</tt> with name <it>"Newton"</it>: Newton method </li>
-- <li><tt>ROOT::Math::GSLMultiRootFinder::kGNewton</tt> with name <it>"GNewton"</it>: modified Newton method </li>
-+ <li><tt>ROOT::Math::GSLMultiRootFinder::kNewton</tt> with name <i>"Newton"</i>: Newton method </li>
-+ <li><tt>ROOT::Math::GSLMultiRootFinder::kGNewton</tt> with name <i>"GNewton"</i>: modified Newton method </li>
- </ul>
- The algorithms without derivatives (see also the GSL
- <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Algorithms-without-Deriv...">documentation</A> )
- are the followings:
- <ul>
-- <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridS</tt> with name <it>"HybridS"</it>: same as HybridSJ but using
-+ <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridS</tt> with name <i>"HybridS"</i>: same as HybridSJ but using
- finate difference approximation for the derivatives</li>
-- <li><tt>ROOT::Math::GSLMultiRootFinder::kHybrid</tt> with name <it>"Hybrid"</it>: unscaled version of the
-+ <li><tt>ROOT::Math::GSLMultiRootFinder::kHybrid</tt> with name <i>"Hybrid"</i>: unscaled version of the
- previous algorithm</li>
-- <li><tt>ROOT::Math::GSLMultiRootFinder::kDNewton</tt> with name <it>"DNewton"</it>: discrete Newton algorithm </li>
-- <li><tt>ROOT::Math::GSLMultiRootFinder::kBroyden</tt> with name <it>"Broyden"</it>: Broyden algorithm </li>
-+ <li><tt>ROOT::Math::GSLMultiRootFinder::kDNewton</tt> with name <i>"DNewton"</i>: discrete Newton algorithm </li>
-+ <li><tt>ROOT::Math::GSLMultiRootFinder::kBroyden</tt> with name <i>"Broyden"</i>: Broyden algorithm </li>
- </ul>
-
- @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</td>
- <td>C=A*B<br>
- A*=B<br>
- C.Mult(A,B)<br>TMatrixD(A,TMatrixD::kMult,B)<br>TMatrixD(A, TMatrixD(A, TMatrixD::kTransposeMult,B)<br>TMatrixD(A, TMatrixD::kMultTranspose,B)</td>
-- <td>overwrites A<br> <br> <br>constructor of A.B<br>constructor of A<sup>T</sup> .B<br>constructor of A.B<sup>T</sup></td>
-+ <td>overwrites A<br> <br> <br>constructor of A·B<br>constructor of A<sup>T</sup>·B<br>constructor of A·B<sup>T</sup></td>
- </tr>
- <tr>
- <td>Element wise multiplication</td>
-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.</li>
-+ 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.</li>
-+ 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.
-
--<br>The current default pdg_table file displays lifetime 0 for some unstable particles.</br>
-+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/).<br>
--Authors: R.Brun<sup>1</sup>, F.Carminati<sup>1</sup>, A. Gheata<sup>1</sup>, I.Hrivnacova<sup>2</sup>, A.Morsch<sup>1</sup>, B.Volkel<sup>1</sup>;<br>
-+Authors: R. Brun<sup>1</sup>, F. Carminati<sup>1</sup>, A. Gheata<sup>1</sup>, I. Hrivnacova<sup>2</sup>, A. Morsch<sup>1</sup>, B. Volkel<sup>1</sup>;<br>
- <sup>1</sup>European Organization for Nuclear Research (CERN), Geneva, Switzerland;<br>
- <sup>2</sup>Institut 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':
--/// <d0>, <d1>, <d2>, ... referring to the n-th sub-component
--/// of the src path
--/// <bn> basename in the source path
--/// <bs> basename sans extension
--/// <ex> Extension
--/// <sn> serial number of file in the list
--/// <s0> as <sn> but zero padded
--/// <fn> the full file path
--/// <us>, <gr> the local user and group names.
--/// <pg> the users PROOF group
--/// <pa> immediate parent directory
--/// <gp> next-to immediate parent directory
-+///
-+/// Place-holder | Meaning |
-+/// ----------------------------|------------------------------------
-+/// \<d0\>, \<d1\>, \<d2\>, ... | referring to the n-th sub-component of the src path
-+/// \<bn\> | basename in the source path
-+/// \<bs\> | basename sans extension
-+/// \<ex\> | Extension
-+/// \<sn\> | serial number of file in the list
-+/// \<s0\> | as \<sn\> but zero padded
-+/// \<fn\> | the full file path
-+/// \<us\>, \<gr\> | the local user and group names.
-+/// \<pg\> | the users PROOF group
-+/// \<pa\> | immediate parent directory
-+/// \<gp\> | 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/<d3>/<d4>/<d5>/<s>/<bn>' and
-+/// then with dest = '/pool/user/\<d3\>/\<d4\>/\<d5\>/\<sn\>/\<bn\>' and
- /// mss = 'protodst://hostdst//nm/
- /// the corresponding destination path is
- /// protodst://hostdst//nm/pool/user/d3/d4/d5/99/myfile
- ///
--/// If 'dest' is empty, <fn> is used.
-+/// If 'dest' is empty, \<fn\> 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':
--/// <d0>, <d1>, <d2>, ... referring to the n-th sub-component
--/// of the src path
--/// <bn> basename in the source path
--/// <sn> serial number of file in the list
--/// <fn> the full file path
--/// <us>, <gr> the local user and group names.
-+///
-+/// Place-holder | Meaning |
-+/// ----------------------------|------------------------------------
-+/// \<d0\>, \<d1\>, \<d2\>, ... | referring to the n-th sub-component of the src path
-+/// \<bn\> | basename in the source path
-+/// \<sn\> | serial number of file in the list
-+/// \<fn\> | the full file path
-+/// \<us\>, \<gr\> | 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/<d3>/<d4>/<d5>/<s>/<bn>' and
-+/// then with dest = '/pool/user/\<d3\>/\<d4\>/\<d5\>/\<sn\>/\<bn\>' and
- /// mss = 'protodst://hostdst//nm/
- /// the corresponding destination path is
- /// protodst://hostdst//nm/pool/user/d3/d4/d5/99/myfile
- ///
--/// If 'dest' is empty, <fn> is used.
-+/// If 'dest' is empty, \<fn\> 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 <ord>, <user>, <u>, <group>, <stag>, <qnum>, <file>, <rver> and
--/// <build> placeholders in fname.
--/// Here, <rver> is the root version in integer form, e.g. 53403, and <build> a
--/// string includign version, architecture and compiler version, e.g.
--/// '53403_linuxx8664gcc_gcc46' .
-+/// Replace \<ord\>, \<user\>, \<u\>, \<group\>, \<stag\>, \<qnum\>, \<file\>,
-+/// \<rver\> and \<build\> placeholders in fname.
-+/// Here, \<rver\> is the root version in integer form, e.g. 53403, and
-+/// \<build\> 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
- <li> several 'Measurements' (corresponding to a full fit of the model) each of which specifies</li>
- <ul>
- <li> a name for this fit to be used in tables and files</li>
--<ul>
--<li> what is the luminosity associated to the measurement in picobarns</li>
--<li> which bins of the histogram should be used</li>
--<li> what is the relative uncertainty on the luminosity </li>
--<li> what is (are) the parameter(s) of interest that will be measured</li>
--<li> which parameters should be fixed/floating (eg. nuisance parameters)</li>
-+<li> what is the luminosity associated to the measurement in picobarns</li>
-+<li> which bins of the histogram should be used</li>
-+<li> what is the relative uncertainty on the luminosity </li>
-+<li> what is (are) the parameter(s) of interest that will be measured</li>
-+<li> which parameters should be fixed/floating (eg. nuisance parameters)</li>
- </ul>
- </ul>
- </ul>
-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;
- <li> several 'Measurements' (corresponding to a full fit of the model) each of which specifies</li>
- <ul>
- <li> a name for this fit to be used in tables and files</li>
-- <ul>
-- <li> what is the luminosity associated to the measurement in picobarns</li>
-- <li> which bins of the histogram should be used</li>
-- <li> what is the relative uncertainty on the luminosity </li>
-- <li> what is (are) the parameter(s) of interest that will be measured</li>
-- <li> which parameters should be fixed/floating (eg. nuisance parameters)</li>
-+ <li> what is the luminosity associated to the measurement in picobarns</li>
-+ <li> which bins of the histogram should be used</li>
-+ <li> what is the relative uncertainty on the luminosity </li>
-+ <li> what is (are) the parameter(s) of interest that will be measured</li>
-+ <li> which parameters should be fixed/floating (eg. nuisance parameters)</li>
- </ul>
- </ul>
- </ul>
-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.
- /// </p>
- /// <p>
--/// In the above example </tt>RooSimPdfBuilder</tt>
-+/// In the above example <tt>RooSimPdfBuilder</tt>
- /// will first replicate <tt>k</tt> and <tt>s</tt> into
- /// <tt>k_C1,k_C2</tt> and <tt>s_C1,s_C2</tt>, as prescribed in the
- /// configuration. Then it will recursively replicate all PDF nodes that depend on
-@@ -383,7 +383,7 @@
- /// <tt>pdfA(x;p,q)</tt> and <tt>pdfB(x;p,r)</tt> that have a common parameter <tt>p</tt>.
- /// We want to build a <tt>RooSimultaneous</tt> for both <tt>pdfA</tt> and <tt>B</tt>,
- /// which involves a split of parameter <tt>p</tt> and we would like to build the
--/// simultaneous pdfs </tt>simA</tt> and <tt>simB</tt> such that still share their (now split) parameters
-+/// simultaneous pdfs <tt>simA</tt> and <tt>simB</tt> such that still share their (now split) parameters
- /// <tt>p_XXX</tt>. This is accomplished by letting a single instance of <tt>RooSimPdfBuilder</tt> handle
- /// the builds of both <tt>pdfA</tt> and <tt>pdfB</tt>, as illustrated in this example:
- /// </p>
-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<TString,Double_t> 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<U>.
-+ /// in contiguous memory. Only used when T == RVec\<U\>.
- EStorageType fStorageType = EStorageType::kUnknown;
- /// If MustUseRVec, i.e. we are reading an array, we return a reference to this RVec to clients
- RVec<ColumnValue_t> 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 <mattias.ellert(a)physics.uu.se>
-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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <jblomer(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <bertrand.bellenot(a)cern.ch>
- /// \author Sergey Linev <S.Linev(a)gsi.de>
-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 <bertrand.bellenot(a)cern.ch>
- /// \author Sergey Linev <S.Linev(a)gsi.de>
-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 <S.Linev(a)gsi.de>
- /// \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 <bertrand.bellenot(a)cern.ch>
- /// \author Sergey Linev <S.Linev(a)gsi.de>
-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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <mattias.ellert(a)physics.uu.se>
-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 <mattias.ellert(a)physics.uu.se>
-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)
- </pre>
--
--*/
-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
- </pre>
-
- 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
-
- <pre>XYZVector u = v1.Unit(); // return unit vector parallel to v1
- </pre>
--
--*/
-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.</double> </pre>
--
--*/
-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 <mattias.ellert(a)physics.uu.se>
-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 <mattias.ellert(a)physics.uu.se>
-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 '<name>' of command @param is not found in the argument list
-of <function>.
----
- .../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<RAxisConfig::kEquidistant> {
- 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 <b>scale</b>*<b>bgr</b> 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<double>& x) const = 0;
-+ virtual double operator()(const std::vector<double>& 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<double> 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<double> 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<const double>& outputs, std::size_t begin) const {
-@@ -734,7 +734,7 @@ void RooAbsPdf::logBatchComputationErrors(RooSpan<const double>& 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<const double> 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 `<parameterNameToBeReplaced>_<category>`.
-@@ -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<double>::max(), true);
- if (zeta.getVal() == 0. && zeta.isConstant()) {
- RooHelpers::checkRangeOfParameters(this, {&lambda}, -std::numeric_limits<double>::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 <typename LAYERDATA>
- * \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<std::size_t> 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 <typename T>
- inline T BranchlessTree<T>::Inference(const T *input, const int stride)
- {
-@@ -105,7 +105,7 @@ inline void BranchlessTree<T>::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 <typename T>
- inline std::string BranchlessTree<T>::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<T, std::function<void (const T
- /// \param[in] filename Filename of the ROOT file
- /// \param[in] output Load trees corresponding to the given output node of the forest
- /// \param[in] sortTrees Flag to indicate sorting the input trees by the cut value of the first node of each tree
--/// \param[out] Return jitted code as string
-+/// \return Return jitted code as string
- template <typename T>
- inline std::string
- BranchlessJittedForest<T>::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<UInt_t> 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<std::vector<TMVA::Event *>>
-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 <typename T>
-- RResultPtr<T> Fill(T &&model, const ColumnNames_t &bl)
-+ RResultPtr<T> Fill(T &&model, const ColumnNames_t &columnList)
- {
- auto h = std::make_shared<T>(std::forward<T>(model));
- if (!RDFInternal::HistoUtils<T>::HasAxisLimits(*h)) {
- throw std::runtime_error("The absence of axes limits is not supported yet.");
- }
-- return CreateAction<RDFInternal::ActionTags::Fill, RDFDetail::RInferredType>(bl, h, bl.size());
-+ return CreateAction<RDFInternal::ActionTags::Fill, RDFDetail::RInferredType>(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<RDisplay>` 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 <typename NodeType>
- 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<std::string> &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<arrow::Table> inTable, std::vector<std::string> 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-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 <stephan.hageboeck(a)cern.ch>
-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<double>::max(), true);
- if (zeta.getVal() == 0. && zeta.isConstant()) {
- RooHelpers::checkRangeOfParameters(this, {&lambda}, -std::numeric_limits<double>::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 <mattias.ellert(a)physics.uu.se>
-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("<d+[0-9]>");
-+ TRegexp re("<d[0-9]+>");
- while (dst.Tokenize(dt, from, "/")) {
- if (dt.Contains(re)) {
- TParameter<Int_t> *pi = new TParameter<Int_t>(dt, -1);
---
-2.26.2
-
diff --git a/root-fix-multicore-tests-with-few-cores.patch b/root-fix-multicore-tests-with-few-cores.patch
index ada5a11..55ad56e 100644
--- a/root-fix-multicore-tests-with-few-cores.patch
+++ b/root-fix-multicore-tests-with-few-cores.patch
@@ -1,7 +1,25 @@
-diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_concurrency.cxx root-6.22.08/tree/dataframe/test/dataframe_concurrency.cxx
---- root-6.22.08.orig/tree/dataframe/test/dataframe_concurrency.cxx 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/tree/dataframe/test/dataframe_concurrency.cxx 2021-06-01 09:01:37.847751408 +0200
-@@ -46,33 +46,35 @@
+From 153f1c3de0e24f5678fd3a706f902ac12b11048e Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Sun, 18 Apr 2021 07:28:41 +0200
+Subject: [PATCH] Fix multicore tests when running on machines with few cores
+
+When running on machines with few cores, enabling multithreading can
+give you fewer cores than requested. For most of the tests this does
+not matter. However, some tests verify the number of threads used.
+This commit adapts those tests for this situation.
+---
+ tree/dataframe/test/dataframe_concurrency.cxx | 18 +++++++++-------
+ tree/dataframe/test/dataframe_interface.cxx | 7 +++++--
+ tree/dataframe/test/dataframe_simple.cxx | 2 +-
+ tree/dataframe/test/dataframe_snapshot.cxx | 6 ++++--
+ .../test/treeprocmt/treeprocessormt.cxx | 21 +++++++++++++++----
+ 5 files changed, 37 insertions(+), 17 deletions(-)
+
+diff --git a/tree/dataframe/test/dataframe_concurrency.cxx b/tree/dataframe/test/dataframe_concurrency.cxx
+index d1b25493e5..a4bce595f8 100644
+--- a/tree/dataframe/test/dataframe_concurrency.cxx
++++ b/tree/dataframe/test/dataframe_concurrency.cxx
+@@ -57,33 +57,35 @@ TEST(RDFConcurrency, NestedParallelismBetweenDefineCalls)
// [DF] Warn on mismatch between slot pool size and effective number of slots
TEST(RDFSimpleTests, ThrowOnPoolSizeMismatch)
{
@@ -16,7 +34,7 @@ diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_concurrency.cxx root-6.
try {
df.Count().GetValue();
} catch (const std::runtime_error &e) {
- const auto expected_msg = "RLoopManager::Run: when the RDataFrame was constructed the size of the thread pool "
+ const auto expected_msg = "RLoopManager::Run: when the RDataFrame was constructed the number of slots required "
- "was 1, but when starting the event loop it was 3. Maybe EnableImplicitMT() was "
+ "was 1, but when starting the event loop it was " + std::to_string(nslots) + ". Maybe EnableImplicitMT() was "
"called after the RDataFrame was constructed?";
@@ -36,19 +54,20 @@ diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_concurrency.cxx root-6.
try {
df.Count().GetValue();
} catch (const std::runtime_error &e) {
- const auto expected_msg = "RLoopManager::Run: when the RDataFrame was constructed the size of the thread pool "
-- "was 3, but when starting the event loop it was 0. Maybe DisableImplicitMT() was "
-+ "was " + std::to_string(nslots) + ", but when starting the event loop it was 0. Maybe DisableImplicitMT() was "
+ const auto expected_msg = "RLoopManager::Run: when the RDataFrame was constructed the number of slots required "
+- "was 3, but when starting the event loop it was 1. Maybe DisableImplicitMT() was "
++ "was " + std::to_string(nslots) + ", but when starting the event loop it was 1. Maybe DisableImplicitMT() was "
"called after the RDataFrame was constructed?";
- EXPECT_STREQ(e.what(), expected_msg);
+ EXPECT_STREQ(e.what(), expected_msg.c_str());
}
}
}
-diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_interface.cxx root-6.22.08/tree/dataframe/test/dataframe_interface.cxx
---- root-6.22.08.orig/tree/dataframe/test/dataframe_interface.cxx 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/tree/dataframe/test/dataframe_interface.cxx 2021-06-01 08:51:39.351355999 +0200
-@@ -6,6 +6,8 @@
+diff --git a/tree/dataframe/test/dataframe_interface.cxx b/tree/dataframe/test/dataframe_interface.cxx
+index afdd8360ef..90e052f1a7 100644
+--- a/tree/dataframe/test/dataframe_interface.cxx
++++ b/tree/dataframe/test/dataframe_interface.cxx
+@@ -7,6 +7,8 @@
#include "gtest/gtest.h"
@@ -57,7 +76,7 @@ diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_interface.cxx root-6.22
using namespace ROOT;
using namespace ROOT::RDF;
-@@ -349,9 +351,10 @@
+@@ -351,9 +353,10 @@ TEST(RDataFrameInterface, GetNSlots)
ROOT::RDataFrame df0(1);
EXPECT_EQ(1U, df0.GetNSlots());
#ifdef R__USE_IMT
@@ -70,10 +89,11 @@ diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_interface.cxx root-6.22
ROOT::DisableImplicitMT();
ROOT::RDataFrame df1(1);
EXPECT_EQ(1U, df1.GetNSlots());
-diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_simple.cxx root-6.22.08/tree/dataframe/test/dataframe_simple.cxx
---- root-6.22.08.orig/tree/dataframe/test/dataframe_simple.cxx 2021-06-01 08:50:34.317205130 +0200
-+++ root-6.22.08/tree/dataframe/test/dataframe_simple.cxx 2021-06-01 08:51:39.351355999 +0200
-@@ -30,7 +30,7 @@
+diff --git a/tree/dataframe/test/dataframe_simple.cxx b/tree/dataframe/test/dataframe_simple.cxx
+index c6aba48b3e..e6b92be776 100644
+--- a/tree/dataframe/test/dataframe_simple.cxx
++++ b/tree/dataframe/test/dataframe_simple.cxx
+@@ -26,7 +26,7 @@ using namespace ROOT::VecOps;
// Fixture for all tests in this file. If parameter is true, run with implicit MT, else run sequentially
class RDFSimpleTests : public ::testing::TestWithParam<bool> {
protected:
@@ -82,10 +102,11 @@ diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_simple.cxx root-6.22.08
{
if (GetParam())
ROOT::EnableImplicitMT(NSLOTS);
-diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_snapshot.cxx root-6.22.08/tree/dataframe/test/dataframe_snapshot.cxx
---- root-6.22.08.orig/tree/dataframe/test/dataframe_snapshot.cxx 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/tree/dataframe/test/dataframe_snapshot.cxx 2021-06-01 08:51:39.351355999 +0200
-@@ -9,6 +9,7 @@
+diff --git a/tree/dataframe/test/dataframe_snapshot.cxx b/tree/dataframe/test/dataframe_snapshot.cxx
+index 3ce9254442..92444feff1 100644
+--- a/tree/dataframe/test/dataframe_snapshot.cxx
++++ b/tree/dataframe/test/dataframe_snapshot.cxx
+@@ -10,6 +10,7 @@
#include "gtest/gtest.h"
#include <limits>
#include <memory>
@@ -93,7 +114,7 @@ diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_snapshot.cxx root-6.22.
using namespace ROOT; // RDataFrame
using namespace ROOT::RDF; // RInterface
using namespace ROOT::VecOps; // RVec
-@@ -886,9 +887,10 @@
+@@ -1041,9 +1042,10 @@ TEST(RDFSnapshotMore, EmptyBuffersMT)
{
const auto fname = "emptybuffersmt.root";
const auto treename = "t";
@@ -106,10 +127,11 @@ diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_snapshot.cxx root-6.22.
.Filter([](int x) { return x == 0; }, {"x"}, "f");
auto r = dd.Report();
dd.Snapshot<int>(treename, fname, {"x"});
-diff -ur root-6.22.08.orig/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx root-6.22.08/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx
---- root-6.22.08.orig/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx 2021-06-01 08:51:39.352356002 +0200
-@@ -294,14 +294,27 @@
+diff --git a/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx b/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx
+index 5d5b2cbf42..963ce8a1b1 100644
+--- a/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx
++++ b/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx
+@@ -294,14 +294,27 @@ TEST(TreeProcessorMT, LimitNTasks_CheckEntries)
}
};
@@ -141,3 +163,6 @@ diff -ur root-6.22.08.orig/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx r
gSystem->Unlink(filename);
ROOT::DisableImplicitMT();
+--
+2.30.2
+
diff --git a/root-fix-ppc64le-compilation-with-gcc-10.patch b/root-fix-ppc64le-compilation-with-gcc-10.patch
new file mode 100644
index 0000000..2624de8
--- /dev/null
+++ b/root-fix-ppc64le-compilation-with-gcc-10.patch
@@ -0,0 +1,29 @@
+From 5b8e969ca045aa238c685009e0aa48d74cbdbf22 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Fri, 13 Mar 2020 17:09:03 +0100
+Subject: [PATCH 1/2] Fix ppc64le compilation with gcc 10
+
+Reapply fix lost in the LLVM 9 upgrade. This fix is in LLVM 10.
+
+Backported from llvm upstream
+https://reviews.llvm.org/D74129
+---
+ interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp b/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp
+index c8ed42d266..16bb00d2e9 100644
+--- a/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp
++++ b/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp
+@@ -2546,7 +2546,7 @@ bool Lexer::SkipBlockComment(Token &Result, const char *CurPtr,
+ '/', '/', '/', '/', '/', '/', '/', '/'
+ };
+ while (CurPtr+16 <= BufferEnd &&
+- !vec_any_eq(*(const vector unsigned char*)CurPtr, Slashes))
++ !vec_any_eq(*(const __vector unsigned char*)CurPtr, Slashes))
+ CurPtr += 16;
+ #else
+ // Scan for '/' quickly. Many block comments are very large.
+--
+2.30.2
+
diff --git a/root-fontconfig.patch b/root-fontconfig.patch
index 2a05c55..35705a4 100644
--- a/root-fontconfig.patch
+++ b/root-fontconfig.patch
@@ -1,7 +1,7 @@
-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 @@
+diff -ur root-6.24.02.orig/core/base/src/TApplication.cxx root-6.24.02/core/base/src/TApplication.cxx
+--- root-6.24.02.orig/core/base/src/TApplication.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/core/base/src/TApplication.cxx 2021-08-11 10:49:08.583579248 +0200
+@@ -265,18 +265,11 @@
LoadGraphicsLibs();
// Try to load TrueType font renderer. Only try to load if not in batch
@@ -22,7 +22,7 @@ diff -ur root-6.22.02.orig/core/base/src/TApplication.cxx root-6.22.02/core/base
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 @@
+@@ -290,7 +283,6 @@
}
}
#endif
@@ -30,9 +30,9 @@ diff -ur root-6.22.02.orig/core/base/src/TApplication.cxx root-6.22.02/core/base
// 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
+diff -ur root-6.24.02.orig/graf2d/asimage/CMakeLists.txt root-6.24.02/graf2d/asimage/CMakeLists.txt
+--- root-6.24.02.orig/graf2d/asimage/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf2d/asimage/CMakeLists.txt 2021-08-11 10:49:08.583579248 +0200
@@ -30,6 +30,7 @@
${FREETYPE_LIBRARIES}
${X11_LIBRARIES}
@@ -41,10 +41,10 @@ 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 -ur root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx root-6.24.02/graf2d/asimage/src/TASImage.cxx
+--- root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf2d/asimage/src/TASImage.cxx 2021-08-11 10:49:08.585579253 +0200
+@@ -112,6 +112,8 @@
# include <draw.h>
}
@@ -53,7 +53,7 @@ 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 @@
+@@ -2595,14 +2597,120 @@
TString fn = font_name;
fn.Strip();
@@ -181,7 +181,7 @@ diff -ur root-6.22.02.orig/graf2d/asimage/src/TASImage.cxx root-6.22.02/graf2d/a
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 @@
+@@ -2626,14 +2734,11 @@
return;
}
@@ -199,9 +199,9 @@ diff -ur root-6.22.02.orig/graf2d/asimage/src/TASImage.cxx root-6.22.02/graf2d/a
}
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
+diff -ur root-6.24.02.orig/graf2d/graf/CMakeLists.txt root-6.24.02/graf2d/graf/CMakeLists.txt
+--- root-6.24.02.orig/graf2d/graf/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf2d/graf/CMakeLists.txt 2021-08-11 10:49:08.586579256 +0200
@@ -91,6 +91,7 @@
${FREETYPE_LIBRARIES}
ZLIB::ZLIB
@@ -210,9 +210,9 @@ 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
+diff -ur root-6.24.02.orig/graf2d/graf/inc/TTF.h root-6.24.02/graf2d/graf/inc/TTF.h
+--- root-6.24.02.orig/graf2d/graf/inc/TTF.h 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf2d/graf/inc/TTF.h 2021-08-11 10:49:08.586579256 +0200
@@ -76,9 +76,8 @@
static FT_BBox fgCBox; ///< string control box
static FT_CharMap fgCharMap[kTTMaxFonts]; ///< font character map
@@ -224,9 +224,9 @@ diff -ur root-6.22.02.orig/graf2d/graf/inc/TTF.h root-6.22.02/graf2d/graf/inc/TT
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
+diff -ur root-6.24.02.orig/graf2d/graf/src/TTF.cxx root-6.24.02/graf2d/graf/src/TTF.cxx
+--- root-6.24.02.orig/graf2d/graf/src/TTF.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf2d/graf/src/TTF.cxx 2021-08-11 10:49:08.587579259 +0200
@@ -25,6 +25,8 @@
#include "TMath.h"
#include "TError.h"
@@ -787,9 +787,9 @@ diff -ur root-6.22.02.orig/graf2d/graf/src/TTF.cxx root-6.22.02/graf2d/graf/src/
}
////////////////////////////////////////////////////////////////////////////////
-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
+diff -ur root-6.24.02.orig/graf2d/postscript/CMakeLists.txt root-6.24.02/graf2d/postscript/CMakeLists.txt
+--- root-6.24.02.orig/graf2d/postscript/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf2d/postscript/CMakeLists.txt 2021-08-11 10:49:08.587579259 +0200
@@ -27,6 +27,7 @@
LIBRARIES
ZLIB::ZLIB
@@ -798,18 +798,18 @@ 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 <string.h>
- #include <ctype.h>
- #include <wchar.h>
+diff -ur root-6.24.02.orig/graf2d/postscript/src/TPostScript.cxx root-6.24.02/graf2d/postscript/src/TPostScript.cxx
+--- root-6.24.02.orig/graf2d/postscript/src/TPostScript.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf2d/postscript/src/TPostScript.cxx 2021-08-11 10:49:08.588579261 +0200
+@@ -234,6 +234,7 @@
+ #include <cctype>
+ #include <cwchar>
+ #include <fstream>
+#include <fontconfig/fontconfig.h>
- #include "Riostream.h"
- #include "Byteswap.h"
-@@ -1583,56 +1584,179 @@
+ #include "strlcpy.h"
+ #include "snprintf.h"
+@@ -1585,56 +1586,179 @@
void TPostScript::FontEmbed(void)
{
@@ -1034,7 +1034,7 @@ diff -ur root-6.22.02.orig/graf2d/postscript/src/TPostScript.cxx root-6.22.02/gr
} else {
if (FontEmbedType2(ttfont)) {
// nothing
-@@ -1641,9 +1765,8 @@
+@@ -1643,9 +1767,8 @@
} else if(FontEmbedType42(ttfont)) {
// nothing
} else {
@@ -1046,7 +1046,7 @@ diff -ur root-6.22.02.orig/graf2d/postscript/src/TPostScript.cxx root-6.22.02/gr
}
delete [] ttfont;
}
-@@ -2835,10 +2958,10 @@
+@@ -2837,10 +2960,10 @@
{ "Root.PSFont.9", "/FreeMonoOblique" },
{ "Root.PSFont.10", "/FreeMonoBold" },
{ "Root.PSFont.11", "/FreeMonoBoldOblique" },
@@ -1060,9 +1060,9 @@ 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
+diff -ur root-6.24.02.orig/graf3d/gl/CMakeLists.txt root-6.24.02/graf3d/gl/CMakeLists.txt
+--- root-6.24.02.orig/graf3d/gl/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf3d/gl/CMakeLists.txt 2021-08-11 10:49:08.589579264 +0200
@@ -208,6 +208,7 @@
${GL2PS_LIBRARIES}
${X11_LIBRARIES}
@@ -1071,10 +1071,10 @@ 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 -ur root-6.24.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.24.02/graf3d/gl/src/TGLFontManager.cxx
+--- root-6.24.02.orig/graf3d/gl/src/TGLFontManager.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf3d/gl/src/TGLFontManager.cxx 2021-08-11 10:49:08.589579264 +0200
+@@ -36,6 +36,7 @@
# include "FTGLBitmapFont.h"
#endif
@@ -1082,7 +1082,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 @@
+@@ -419,7 +420,7 @@
ClassImp(TGLFontManager);
TObjArray TGLFontManager::fgFontFileArray;
@@ -1091,7 +1091,7 @@ diff -ur root-6.22.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.22.02/graf3d/
TGLFontManager::FontSizeVec_t TGLFontManager::fgFontSizeArray;
Bool_t TGLFontManager::fgStaticInitDone = kFALSE;
-@@ -451,17 +452,175 @@
+@@ -450,17 +451,175 @@
FontMap_i it = fFontMap.find(TGLFont(size, fileID, mode));
if (it == fFontMap.end())
{
@@ -1276,7 +1276,7 @@ diff -ur root-6.22.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.22.02/graf3d/
FTFont* ftfont = 0;
switch (mode)
{
-@@ -485,10 +644,14 @@
+@@ -484,10 +643,14 @@
ftfont = new FTGLTextureFont(file);
break;
default:
@@ -1291,7 +1291,7 @@ diff -ur root-6.22.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.22.02/graf3d/
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 @@
+@@ -570,8 +733,6 @@
{
if (fgStaticInitDone == kFALSE) InitStatics();
@@ -1300,7 +1300,7 @@ diff -ur root-6.22.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.22.02/graf3d/
return fgExtendedFontStart;
}
-@@ -642,28 +803,6 @@
+@@ -641,28 +802,6 @@
fgFontFileArray.Add(new TObjString("wingding")); // 140
fgFontFileArray.Add(new TObjString("symbol")); // 150
@@ -1329,10 +1329,10 @@ diff -ur root-6.22.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.22.02/graf3d/
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 -ur root-6.24.02.orig/graf3d/gl/src/TGLText.cxx root-6.24.02/graf3d/gl/src/TGLText.cxx
+--- root-6.24.02.orig/graf3d/gl/src/TGLText.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf3d/gl/src/TGLText.cxx 2021-08-11 10:49:08.590579267 +0200
+@@ -32,6 +32,8 @@
# include "FTGLBitmapFont.h"
#endif
@@ -1341,7 +1341,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 @@
+@@ -176,27 +178,92 @@
{
int fontid = fontnumber / 10;
@@ -1455,7 +1455,7 @@ diff -ur root-6.22.02.orig/graf3d/gl/src/TGLText.cxx root-6.22.02/graf3d/gl/src/
if (fGLTextFont) delete fGLTextFont;
-@@ -206,7 +273,9 @@
+@@ -204,7 +271,9 @@
fGLTextFont = new FTGLPolygonFont(ttfont);
@@ -1466,9 +1466,9 @@ 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
+diff -ur root-6.24.02.orig/gui/gui/src/TGApplication.cxx root-6.24.02/gui/gui/src/TGApplication.cxx
+--- root-6.24.02.orig/gui/gui/src/TGApplication.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/gui/gui/src/TGApplication.cxx 2021-08-11 10:49:08.590579267 +0200
@@ -80,20 +80,12 @@
gROOT->SetBatch(kFALSE);
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 <mattias.ellert(a)physics.uu.se>
-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<float>; 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 <mattias.ellert(a)physics.uu.se>
-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 <mattias.ellert(a)physics.uu.se>
-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-jsmva-static.patch b/root-jsmva-static.patch
new file mode 100644
index 0000000..a81848a
--- /dev/null
+++ b/root-jsmva-static.patch
@@ -0,0 +1,36 @@
+diff -ur root-6.24.02.orig/bindings/jsmva/python/JsMVA/JPyInterface.py root-6.24.02/bindings/jsmva/python/JsMVA/JPyInterface.py
+--- root-6.24.02.orig/bindings/jsmva/python/JsMVA/JPyInterface.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/bindings/jsmva/python/JsMVA/JPyInterface.py 2021-08-11 09:06:21.894746090 +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.24.02.orig/bindings/pyroot_legacy/JsMVA/JPyInterface.py root-6.24.02/bindings/pyroot_legacy/JsMVA/JPyInterface.py
+--- root-6.24.02.orig/bindings/pyroot_legacy/JsMVA/JPyInterface.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/bindings/pyroot_legacy/JsMVA/JPyInterface.py 2021-08-11 09:06:21.925746168 +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.24.02.orig/etc/notebook/JsMVA/js/JsMVA.js root-6.24.02/etc/notebook/JsMVA/js/JsMVA.js
+--- root-6.24.02.orig/etc/notebook/JsMVA/js/JsMVA.js 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/etc/notebook/JsMVA/js/JsMVA.js 2021-08-11 09:10:45.638410266 +0200
+@@ -16,7 +16,7 @@
+
+ (function(factory){
+
+- var JSROOT_source_dir = "https://root.cern.ch/js/notebook/scripts/";
++ var JSROOT_source_dir = "/static/scripts/";
+
+ var url = "";
+ if (requirejs.s.contexts.hasOwnProperty("_")) {
diff --git a/root-jupyroot-jupyterlab-compat.patch b/root-jupyroot-jupyterlab-compat.patch
deleted file mode 100644
index a7850c4..0000000
--- a/root-jupyroot-jupyterlab-compat.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-diff -ur root-6.22.08.orig/bindings/jupyroot/python/JupyROOT/helpers/utils.py root-6.22.08/bindings/jupyroot/python/JupyROOT/helpers/utils.py
---- root-6.22.08.orig/bindings/jupyroot/python/JupyROOT/helpers/utils.py 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/bindings/jupyroot/python/JupyROOT/helpers/utils.py 2021-06-17 19:29:39.457234887 +0200
-@@ -39,24 +39,31 @@
-
- _jsNotDrawableClassesPatterns = ["TEve*","TF3","TPolyLine3D"]
-
--
--_jsROOTSourceDir = "/static/"
- _jsCanvasWidth = 800
- _jsCanvasHeight = 600
--
- _jsCode = """
-+
- <div id="{jsDivId}"
- style="width: {jsCanvasWidth}px; height: {jsCanvasHeight}px">
- </div>
- <script>
- if (typeof require !== 'undefined') {{
-
-- // All requirements met (we are in jupyter notebooks or we loaded requirejs before).
-- display_{jsDivId}();
-+ // We are in jupyter notebooks, use require.js which should be configured already
-+ require(['scripts/JSRootCore'],
-+ function(Core) {{
-+ display_{jsDivId}(Core);
-+ }}
-+ );
-+
-+}} else if (typeof JSROOT !== 'undefined') {{
-+
-+ // JSROOT already loaded, just use it
-+ display_{jsDivId}(JSROOT);
-
- }} else {{
-
-- // We are in jupyterlab, we need to insert requirejs and configure it.
-+ // We are in jupyterlab without require.js, directly loading jsroot
- // Jupyterlab might be installed in a different base_url so we need to know it.
- try {{
- var base_url = JSON.parse(document.getElementById('jupyter-config-data').innerHTML).baseUrl;
-@@ -65,14 +72,15 @@
- }}
-
- // Try loading a local version of requirejs and fallback to cdn if not possible.
-- requirejs_load(base_url + 'static/components/requirejs/require.js', requirejs_success(base_url), function(){{
-- requirejs_load('https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.min.js', requirejs_success(base_url), function(){{
-- document.getElementById("{jsDivId}").innerHTML = "Failed to load requireJs";
-+ script_load(base_url + 'static/scripts/JSRootCore.js', script_success, function(){{
-+ console.error('Fail to load JSROOT locally, please check your jupyter_notebook_config.py file')
-+ script_load('https://root.cern/js/5.9.1/scripts/JSRootCore.min.js', script_success, function(){{
-+ document.getElementById("{jsDivId}").innerHTML = "Failed to load JSROOT";
- }});
- }});
- }}
-
--function requirejs_load(src, on_load, on_error) {{
-+function script_load(src, on_load, on_error) {{
- var script = document.createElement('script');
- script.src = src;
- script.onload = on_load;
-@@ -80,23 +88,14 @@
- document.head.appendChild(script);
- }}
-
--function requirejs_success(base_url) {{
-- return function() {{
-- require.config({{
-- baseUrl: base_url + 'static/'
-- }});
-- display_{jsDivId}();
-- }}
-+function script_success() {{
-+ display_{jsDivId}(JSROOT);
- }}
-
--function display_{jsDivId}() {{
-- require(['scripts/JSRootCore'],
-- function(Core) {{
-- var obj = Core.JSONR_unref({jsonContent});
-- Core.key_handling = false;
-- Core.draw("{jsDivId}", obj, "{jsDrawOptions}");
-- }}
-- );
-+function display_{jsDivId}(Core) {{
-+ var obj = Core.JSONR_unref({jsonContent});
-+ Core.key_handling = false;
-+ Core.draw("{jsDivId}", obj, "{jsDrawOptions}");
- }}
- </script>
- """
-@@ -296,7 +295,7 @@
- cnt = 0
- for n in range(colors.GetLast()+1):
- if colors.At(n): cnt = cnt+1
--
-+
- # add all colors if there are more than 598 colors defined
- if cnt < 599 or prim.FindObject(colors):
- colors = None
-@@ -312,14 +311,14 @@
- prim.Add(palette)
-
- ROOT.TColor.DefinedColors()
--
-+
- canvas_json = ROOT.TBufferJSON.ConvertToJSON(canvas, 3)
-
- # Cleanup primitives after conversion
- if style is not None: prim.Remove(style)
- if colors is not None: prim.Remove(colors)
- if palette is not None: prim.Remove(palette)
--
-+
- return canvas_json
-
- transformers = []
-@@ -508,7 +507,6 @@
-
- thisJsCode = _jsCode.format(jsCanvasWidth = height,
- jsCanvasHeight = width,
-- jsROOTSourceDir = _jsROOTSourceDir,
- jsonContent = json.Data(),
- jsDrawOptions = options,
- jsDivId = divId)
diff --git a/root-jupyroot-static.patch b/root-jupyroot-static.patch
deleted file mode 100644
index 717e203..0000000
--- a/root-jupyroot-static.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-diff -ur root-6.22.08.orig/bindings/jsmva/python/JsMVA/JPyInterface.py root-6.22.08/bindings/jsmva/python/JsMVA/JPyInterface.py
---- root-6.22.08.orig/bindings/jsmva/python/JsMVA/JPyInterface.py 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/bindings/jsmva/python/JsMVA/JPyInterface.py 2021-06-17 19:32:12.018598877 +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.08.orig/bindings/jupyroot/python/JupyROOT/helpers/utils.py root-6.22.08/bindings/jupyroot/python/JupyROOT/helpers/utils.py
---- root-6.22.08.orig/bindings/jupyroot/python/JupyROOT/helpers/utils.py 2021-06-17 19:29:39.457234887 +0200
-+++ root-6.22.08/bindings/jupyroot/python/JupyROOT/helpers/utils.py 2021-06-17 19:29:00.146141086 +0200
-@@ -72,7 +72,7 @@
- }}
-
- // Try loading a local version of requirejs and fallback to cdn if not possible.
-- script_load(base_url + 'static/scripts/JSRootCore.js', script_success, function(){{
-+ script_load(base_url + 'static/jsroot/scripts/JSRootCore.js', script_success, function(){{
- console.error('Fail to load JSROOT locally, please check your jupyter_notebook_config.py file')
- script_load('https://root.cern/js/5.9.1/scripts/JSRootCore.min.js', script_success, function(){{
- document.getElementById("{jsDivId}").innerHTML = "Failed to load JSROOT";
-diff -ur root-6.22.08.orig/bindings/pyroot_legacy/JsMVA/JPyInterface.py root-6.22.08/bindings/pyroot_legacy/JsMVA/JPyInterface.py
---- root-6.22.08.orig/bindings/pyroot_legacy/JsMVA/JPyInterface.py 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/bindings/pyroot_legacy/JsMVA/JPyInterface.py 2021-06-17 19:32:12.019598879 +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.08.orig/bindings/pyroot_legacy/JupyROOT/helpers/utils.py root-6.22.08/bindings/pyroot_legacy/JupyROOT/helpers/utils.py
---- root-6.22.08.orig/bindings/pyroot_legacy/JupyROOT/helpers/utils.py 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/bindings/pyroot_legacy/JupyROOT/helpers/utils.py 2021-06-17 19:32:12.019598879 +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.08.orig/etc/notebook/JsMVA/js/JsMVA.js root-6.22.08/etc/notebook/JsMVA/js/JsMVA.js
---- root-6.22.08.orig/etc/notebook/JsMVA/js/JsMVA.js 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/etc/notebook/JsMVA/js/JsMVA.js 2021-06-17 19:32:12.020598882 +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.08.orig/etc/notebook/JsMVA/js/NetworkDesigner.js root-6.22.08/etc/notebook/JsMVA/js/NetworkDesigner.js
---- root-6.22.08.orig/etc/notebook/JsMVA/js/NetworkDesigner.js 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/etc/notebook/JsMVA/js/NetworkDesigner.js 2021-06-17 19:32:12.020598882 +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 <mattias.ellert(a)physics.uu.se>
-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-no-export-python-modules.patch b/root-no-export-python-modules.patch
index 21b1319..aa7604d 100644
--- a/root-no-export-python-modules.patch
+++ b/root-no-export-python-modules.patch
@@ -1,6 +1,6 @@
-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
+diff -ur root-6.24.02.orig/bindings/jupyroot/CMakeLists.txt root-6.24.02/bindings/jupyroot/CMakeLists.txt
+--- root-6.24.02.orig/bindings/jupyroot/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/bindings/jupyroot/CMakeLists.txt 2021-08-11 10:53:03.272202496 +0200
@@ -70,8 +70,7 @@
endforeach()
@@ -8,13 +8,13 @@ diff -ur root-6.22.02.orig/bindings/jupyroot/CMakeLists.txt root-6.22.02/binding
- 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)
+ LIBRARY DESTINATION ${CMAKE_INSTALL_PYTHONDIR} COMPONENT libraries
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_PYTHONDIR} 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 @@
+diff -ur root-6.24.02.orig/bindings/pyroot/pythonizations/CMakeLists.txt root-6.24.02/bindings/pyroot/pythonizations/CMakeLists.txt
+--- root-6.24.02.orig/bindings/pyroot/pythonizations/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/bindings/pyroot/pythonizations/CMakeLists.txt 2021-08-11 10:53:03.272202496 +0200
+@@ -137,11 +137,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)
@@ -25,6 +25,6 @@ diff -ur root-6.22.02.orig/bindings/pyroot/pythonizations/CMakeLists.txt root-6.
- 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)
+ LIBRARY DESTINATION ${CMAKE_INSTALL_PYTHONDIR} COMPONENT libraries
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_PYTHONDIR} COMPONENT libraries)
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 <ROOT/RConfig.hxx>
-+
- #include "ROOT/RMiniFile.hxx"
-
- #include <ROOT/RRawFile.hxx>
-@@ -999,7 +1001,11 @@
- R__ASSERT(fFile);
- size_t retval;
- if ((offset >= 0) && (static_cast<std::uint64_t>(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 <ROOT/RConfig.hxx>
-+
- #include <ROOT/RColumnModel.hxx>
- #include <ROOT/RDataFrame.hxx>
- #include <ROOT/RNTuple.hxx>
-@@ -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
index a25a8e8..bcba732 100644
--- a/root-old-gtest-compat.patch
+++ b/root-old-gtest-compat.patch
@@ -1,6 +1,20 @@
-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
+diff -ur root-6.24.02.orig/hist/hist/test/test_THBinIterator.cxx root-6.24.02/hist/hist/test/test_THBinIterator.cxx
+--- root-6.24.02.orig/hist/hist/test/test_THBinIterator.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/hist/hist/test/test_THBinIterator.cxx 2021-08-06 22:59:45.039518775 +0200
+@@ -1,5 +1,10 @@
+ #include "gtest/gtest.h"
+
++#ifndef INSTANTIATE_TEST_SUITE_P
++#define SetUpTestSuite SetUpTestCase
++#define TearDownTestSuite TearDownTestCase
++#endif
++
+ // test iterating histogram bins and using the new THistRange and
+ // THBinIterator classes
+
+diff -ur root-6.24.02.orig/math/mathcore/test/stress/testGenVector.cxx root-6.24.02/math/mathcore/test/stress/testGenVector.cxx
+--- root-6.24.02.orig/math/mathcore/test/stress/testGenVector.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/math/mathcore/test/stress/testGenVector.cxx 2021-08-06 09:31:38.795835283 +0200
@@ -4,6 +4,16 @@
#include "gtest/gtest.h"
@@ -18,9 +32,9 @@ diff -ur root-6.22.00.orig/math/mathcore/test/stress/testGenVector.cxx root-6.22
#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
+diff -ur root-6.24.02.orig/math/mathcore/test/stress/testSMatrix.cxx root-6.24.02/math/mathcore/test/stress/testSMatrix.cxx
+--- root-6.24.02.orig/math/mathcore/test/stress/testSMatrix.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/math/mathcore/test/stress/testSMatrix.cxx 2021-08-06 09:31:38.796835286 +0200
@@ -7,6 +7,16 @@
#include "TestHelper.h"
#include "gtest/gtest.h"
@@ -38,9 +52,9 @@ diff -ur root-6.22.00.orig/math/mathcore/test/stress/testSMatrix.cxx root-6.22.0
#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
+diff -ur root-6.24.02.orig/math/mathcore/test/stress/testVector34.cxx root-6.24.02/math/mathcore/test/stress/testVector34.cxx
+--- root-6.24.02.orig/math/mathcore/test/stress/testVector34.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/math/mathcore/test/stress/testVector34.cxx 2021-08-06 09:31:38.796835286 +0200
@@ -4,6 +4,16 @@
#include "gtest/gtest.h"
@@ -58,9 +72,9 @@ diff -ur root-6.22.00.orig/math/mathcore/test/stress/testVector34.cxx root-6.22.
#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
+diff -ur root-6.24.02.orig/math/mathcore/test/stress/testVector.cxx root-6.24.02/math/mathcore/test/stress/testVector.cxx
+--- root-6.24.02.orig/math/mathcore/test/stress/testVector.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/math/mathcore/test/stress/testVector.cxx 2021-08-06 09:31:38.796835286 +0200
@@ -4,6 +4,16 @@
#include "gtest/gtest.h"
@@ -78,9 +92,9 @@ diff -ur root-6.22.00.orig/math/mathcore/test/stress/testVector.cxx root-6.22.00
#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
+diff -ur root-6.24.02.orig/math/mathcore/test/testGradient.cxx root-6.24.02/math/mathcore/test/testGradient.cxx
+--- root-6.24.02.orig/math/mathcore/test/testGradient.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/math/mathcore/test/testGradient.cxx 2021-08-06 09:31:38.796835286 +0200
@@ -22,6 +22,10 @@
#include "gtest/gtest.h"
@@ -92,9 +106,9 @@ diff -ur root-6.22.00.orig/math/mathcore/test/testGradient.cxx root-6.22.00/math
#include <chrono>
#include <iostream>
#include <string>
-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
+diff -ur root-6.24.02.orig/math/mathcore/test/testGradientFitting.cxx root-6.24.02/math/mathcore/test/testGradientFitting.cxx
+--- root-6.24.02.orig/math/mathcore/test/testGradientFitting.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/math/mathcore/test/testGradientFitting.cxx 2021-08-06 09:31:38.797835288 +0200
@@ -12,6 +12,16 @@
#include "gtest/gtest.h"
@@ -112,10 +126,10 @@ diff -ur root-6.22.00.orig/math/mathcore/test/testGradientFitting.cxx root-6.22.
#include <iostream>
#include <string>
-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 @@
+diff -ur root-6.24.02.orig/math/mathmore/test/testStress.cxx root-6.24.02/math/mathmore/test/testStress.cxx
+--- root-6.24.02.orig/math/mathmore/test/testStress.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/math/mathmore/test/testStress.cxx 2021-08-06 09:31:38.797835288 +0200
+@@ -26,6 +26,16 @@
#include "gtest/gtest.h"
@@ -132,9 +146,9 @@ diff -ur root-6.22.00.orig/math/mathmore/test/testStress.cxx root-6.22.00/math/m
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
+diff -ur root-6.24.02.orig/roofit/roofitcore/test/testProxiesAndCategories.cxx root-6.24.02/roofit/roofitcore/test/testProxiesAndCategories.cxx
+--- root-6.24.02.orig/roofit/roofitcore/test/testProxiesAndCategories.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/roofit/roofitcore/test/testProxiesAndCategories.cxx 2021-08-06 09:31:38.798835290 +0200
@@ -16,6 +16,9 @@
#include "gtest/gtest.h"
@@ -145,9 +159,49 @@ diff -ur root-6.22.00.orig/roofit/roofitcore/test/testProxiesAndCategories.cxx r
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
+diff -ur root-6.24.02.orig/tree/dataframe/test/dataframe_datablockcallback.cxx root-6.24.02/tree/dataframe/test/dataframe_datablockcallback.cxx
+--- root-6.24.02.orig/tree/dataframe/test/dataframe_datablockcallback.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/dataframe_datablockcallback.cxx 2021-08-06 09:31:38.801835298 +0200
+@@ -11,6 +11,10 @@
+
+ #include <gtest/gtest.h>
+
++#ifndef INSTANTIATE_TEST_SUITE_P
++#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
++#endif
++
+ #include <algorithm> // std::min
+ #include <thread> // std::hardware_concurrency
+
+diff -ur root-6.24.02.orig/tree/dataframe/test/dataframe_merge_results.cxx root-6.24.02/tree/dataframe/test/dataframe_merge_results.cxx
+--- root-6.24.02.orig/tree/dataframe/test/dataframe_merge_results.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/dataframe_merge_results.cxx 2021-08-06 09:31:38.802835300 +0200
+@@ -308,7 +308,7 @@
+ EXPECT_FALSE(mh3);
+ EXPECT_FALSE(mh4);
+ EXPECT_FALSE(mh5);
+- EXPECT_TRUE(mergedptr);
++ EXPECT_TRUE(!!mergedptr);
+
+ const auto &mh = mergedptr->GetValue();
+
+diff -ur root-6.24.02.orig/tree/dataframe/test/dataframe_regression.cxx root-6.24.02/tree/dataframe/test/dataframe_regression.cxx
+--- root-6.24.02.orig/tree/dataframe/test/dataframe_regression.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/dataframe_regression.cxx 2021-08-06 09:31:38.802835300 +0200
+@@ -9,6 +9,10 @@
+
+ #include "gtest/gtest.h"
+
++#ifndef INSTANTIATE_TEST_SUITE_P
++#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
++#endif
++
+ // Fixture for all tests in this file. If parameter is true, run with implicit MT, else run sequentially
+ class RDFRegressionTests : public ::testing::TestWithParam<bool> {
+ protected:
+diff -ur root-6.24.02.orig/tree/dataframe/test/dataframe_simple.cxx root-6.24.02/tree/dataframe/test/dataframe_simple.cxx
+--- root-6.24.02.orig/tree/dataframe/test/dataframe_simple.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/dataframe_simple.cxx 2021-08-06 09:31:38.803835303 +0200
@@ -1,5 +1,10 @@
/****** Run RDataFrame tests both with and without IMT enabled *******/
#include <gtest/gtest.h>
@@ -156,6 +210,6 @@ diff -ur root-6.22.00.orig/tree/dataframe/test/dataframe_simple.cxx root-6.22.00
+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
+#endif
+
+ #include <ROOTUnitTestSupport.h>
#include <ROOT/RDataFrame.hxx>
#include <ROOT/TSeq.hxx>
- #include <TChain.h>
diff --git a/root-older-python.patch b/root-older-python.patch
new file mode 100644
index 0000000..fa6a05a
--- /dev/null
+++ b/root-older-python.patch
@@ -0,0 +1,46 @@
+From 61116151cce8fe5b397555a65f7b55001b8e416b Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Fri, 23 Apr 2021 21:39:17 +0200
+Subject: [PATCH] Compat with no f-strings
+
+---
+ tutorials/tmva/PyTorch_Generate_CNN_Model.py | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/tutorials/tmva/PyTorch_Generate_CNN_Model.py b/tutorials/tmva/PyTorch_Generate_CNN_Model.py
+index 7024112f03..5a314f86dd 100644
+--- a/tutorials/tmva/PyTorch_Generate_CNN_Model.py
++++ b/tutorials/tmva/PyTorch_Generate_CNN_Model.py
+@@ -56,7 +56,7 @@ def fit(model, train_loader, val_loader, num_epochs, batch_size, optimizer, crit
+ # print train statistics
+ running_train_loss += train_loss.item()
+ if i % 4 == 3: # print every 4 mini-batches
+- print(f"[{epoch+1}, {i+1}] train loss: {running_train_loss / 4 :.3f}")
++ print("[{}, {}] train loss: {:.3f}".format(epoch+1, i+1, running_train_loss / 4))
+ running_train_loss = 0.0
+
+ if schedule:
+@@ -75,15 +75,15 @@ def fit(model, train_loader, val_loader, num_epochs, batch_size, optimizer, crit
+
+ curr_val = running_val_loss / len(val_loader)
+ if save_best:
+- if best_val==None:
+- best_val = curr_val
+- best_val = save_best(model, curr_val, best_val)
++ if best_val is None:
++ best_val = curr_val
++ best_val = save_best(model, curr_val, best_val)
+
+ # print val statistics per epoch
+- print(f"[{epoch+1}] val loss: {curr_val :.3f}")
++ print("[{}] val loss: {:.3f}".format(epoch+1, curr_val))
+ running_val_loss = 0.0
+
+- print(f"Finished Training on {epoch+1} Epochs!")
++ print("Finished Training on {} Epochs!".format(epoch+1))
+
+ return model
+
+--
+2.30.2
+
diff --git a/root-ppc-codemodel.patch b/root-ppc-codemodel.patch
new file mode 100644
index 0000000..223dc7c
--- /dev/null
+++ b/root-ppc-codemodel.patch
@@ -0,0 +1,36 @@
+From 774ab9358d852e2c004564183de4a60eaaa5ac98 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Fri, 23 Apr 2021 21:40:14 +0200
+Subject: [PATCH 2/2] Actually request the use of the large code model for
+ ppc64/ppc64le
+
+Instead of erroring out with an assert.
+---
+ interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp b/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp
+index 46771aa8c0..93a48f31f3 100644
+--- a/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp
++++ b/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp
+@@ -73,14 +73,14 @@ CreateHostTargetMachine(const clang::CompilerInstance& CI) {
+ JTMB->getOptions().EmulatedTLS = false;
+ #endif // _WIN32
+
+- std::unique_ptr<TargetMachine> TM = cantFail(JTMB->createTargetMachine());
+-
+ #if defined(__powerpc64__) || defined(__PPC64__)
+ // We have to use large code model for PowerPC64 because TOC and text sections
+ // can be more than 2GB apart.
+- assert(TM->getCodeModel() >= CodeModel::Large);
++ JTMB->setCodeModel(CodeModel::Large);
+ #endif
+
++ std::unique_ptr<TargetMachine> TM = cantFail(JTMB->createTargetMachine());
++
+ // Forcefully disable GlobalISel, it might be enabled on AArch64 without
+ // optimizations. In tests on an Apple M1 after the upgrade to LLVM 9, this
+ // new instruction selection framework emits branches / calls that expect all
+--
+2.30.2
+
diff --git a/root-ppc-no-codemodel.patch b/root-ppc-no-codemodel.patch
new file mode 100644
index 0000000..3429097
--- /dev/null
+++ b/root-ppc-no-codemodel.patch
@@ -0,0 +1,13 @@
+diff --git a/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp b/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp
+index c98a3be0ed..f77d4adec2 100644
+--- a/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp
++++ b/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp
+@@ -77,7 +77,7 @@ CreateHostTargetMachine(const clang::CompilerInstance& CI) {
+ #if defined(__powerpc64__) || defined(__PPC64__)
+ // We have to use large code model for PowerPC64 because TOC and text sections
+ // can be more than 2GB apart.
+- JTMB->setCodeModel(CodeModel::Large);
++ //JTMB->setCodeModel(CodeModel::Large);
+ #endif
+
+ std::unique_ptr<TargetMachine> TM = cantFail(JTMB->createTargetMachine());
diff --git a/root-ptr-is-null-RooFit-TMVA.patch b/root-ptr-is-null-RooFit-TMVA.patch
new file mode 100644
index 0000000..3aa3acd
--- /dev/null
+++ b/root-ptr-is-null-RooFit-TMVA.patch
@@ -0,0 +1,80 @@
+From c65f3d96f3f4433bff9d40fa9cf1dec100867a07 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Tue, 8 Jun 2021 10:12:37 +0200
+Subject: [PATCH] Fix 'this' pointer is null warnings
+
+.../roofit/roofitcore/src/RooDataHist.cxx: In member function 'void RooDataHist::_adjustBinning(RooRealVar&, const TAxis&, RooRealVar*, Int_t*)':
+.../roofit/roofitcore/src/RooDataHist.cxx:595:122: warning: 'this' pointer is null [-Wnonnull]
+ 595 | coutE(InputArguments) << "RooDataHist::adjustBinning(" << GetName() << ") ERROR: dimension " << ourVar->GetName() << " must be real" << endl ;
+ | ^~~~~~~~~~~~~~~
+
+.../roofit/roofitcore/src/RooRealSumFunc.cxx: In constructor 'RooRealSumFunc::RooRealSumFunc(const char*, const char*, const RooArgList&, const RooArgList&)':
+.../roofit/roofitcore/src/RooRealSumFunc.cxx:156:35: warning: 'this' pointer is null [-Wnonnull]
+ 156 | << " is not of type RooAbsReal, fatal error" << endl;
+ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.../tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx: In member function 'void TMVA::DNN::TDataLoader<AData, TMVA::DNN::TReference<AReal> >::CopyInput(TMatrixT<AReal>&, TMVA::DNN::IndexIterator_t) [with AData = std::tuple<const std::vector<TMVA::Event*, std::allocator<TMVA::Event*> >&, const TMVA::DataSetInfo&>; AReal = float]':
+.../tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx:131:34: warning: 'this' pointer is null [-Wnonnull]
+ 131 | Int_t n = event->GetNVariables();
+ | ~~~~~~~~~~~~~~~~~~~~^~
+In file included from .../tmva/tmva/inc/TMVA/VariableTransformBase.h:48,
+ from .../tmva/tmva/inc/TMVA/Tools.h:58,
+ from .../tmva/tmva/inc/TMVA/DNN/GeneralLayer.h:36,
+ from .../tmva/tmva/inc/TMVA/DNN/CNN/ConvLayer.h:32,
+ from .../tmva/tmva/inc/TMVA/DNN/Architectures/Reference.h:24,
+ from .../tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx:17:
+.../tmva/tmva/inc/TMVA/Event.h:88:16: note: in a call to non-static member function 'UInt_t TMVA::Event::GetNVariables() const'
+ 88 | UInt_t GetNVariables() const;
+ | ^~~~~~~~~~~~~
+---
+ roofit/roofitcore/src/RooDataHist.cxx | 2 +-
+ roofit/roofitcore/src/RooRealSumFunc.cxx | 4 ++--
+ tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx | 2 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/roofit/roofitcore/src/RooDataHist.cxx b/roofit/roofitcore/src/RooDataHist.cxx
+index 84cf2c0f68..8dddb88e2b 100644
+--- a/roofit/roofitcore/src/RooDataHist.cxx
++++ b/roofit/roofitcore/src/RooDataHist.cxx
+@@ -591,7 +591,7 @@ void RooDataHist::importDHistSet(const RooArgList& /*vars*/, RooCategory& indexC
+ void RooDataHist::_adjustBinning(RooRealVar &theirVar, const TAxis &axis,
+ RooRealVar *ourVar, Int_t *offset)
+ {
+- if (!dynamic_cast<RooRealVar*>(ourVar)) {
++ if (!dynamic_cast<RooRealVar*>(static_cast<RooAbsArg*>(ourVar))) {
+ coutE(InputArguments) << "RooDataHist::adjustBinning(" << GetName() << ") ERROR: dimension " << ourVar->GetName() << " must be real" << endl ;
+ assert(0) ;
+ }
+diff --git a/roofit/roofitcore/src/RooRealSumFunc.cxx b/roofit/roofitcore/src/RooRealSumFunc.cxx
+index 3f78020acd..a1625d7e35 100644
+--- a/roofit/roofitcore/src/RooRealSumFunc.cxx
++++ b/roofit/roofitcore/src/RooRealSumFunc.cxx
+@@ -149,10 +149,10 @@ RooRealSumFunc::RooRealSumFunc(const char *name, const char *title, const RooArg
+ _coefList.add(*coef);
+ }
+
+- func = (RooAbsReal *)funcIter->Next();
++ func = (RooAbsArg *)funcIter->Next();
+ if (func) {
+ if (!dynamic_cast<RooAbsReal *>(func)) {
+- coutE(InputArguments) << "RooRealSumFunc::RooRealSumFunc(" << GetName() << ") last func " << coef->GetName()
++ coutE(InputArguments) << "RooRealSumFunc::RooRealSumFunc(" << GetName() << ") last func " << func->GetName()
+ << " is not of type RooAbsReal, fatal error" << endl;
+ assert(0);
+ }
+diff --git a/tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx b/tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx
+index 2465abf308..24a09d1fc0 100644
+--- a/tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx
++++ b/tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx
+@@ -128,7 +128,7 @@ void TDataLoader<TMVAInput_t, TReference<Real_t>>::CopyInput(TMatrixT<Real_t> &m
+ Event *event = nullptr;
+
+ Int_t m = matrix.GetNrows();
+- Int_t n = event->GetNVariables();
++ Int_t n = matrix.GetNcols();
+
+ // Copy input variables.
+
+--
+2.31.1
+
diff --git a/root-ptr-is-null-TStreamerInfo.patch b/root-ptr-is-null-TStreamerInfo.patch
new file mode 100644
index 0000000..869715c
--- /dev/null
+++ b/root-ptr-is-null-TStreamerInfo.patch
@@ -0,0 +1,32 @@
+From 1ca221f010fdcfb6249ae7b1cac77fbe29b86214 Mon Sep 17 00:00:00 2001
+From: Enrico Guiraud <enrico.guiraud(a)cern.ch>
+Date: Mon, 7 Jun 2021 11:02:48 +0200
+Subject: [PATCH] [io] Avoid nullptr deref when printing warning in
+ TStreamerInfo
+
+---
+ io/io/src/TStreamerInfo.cxx | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/io/io/src/TStreamerInfo.cxx b/io/io/src/TStreamerInfo.cxx
+index d545ab7be8..a026635890 100644
+--- a/io/io/src/TStreamerInfo.cxx
++++ b/io/io/src/TStreamerInfo.cxx
+@@ -1109,12 +1109,12 @@ void TStreamerInfo::BuildCheck(TFile *file /* = 0 */, Bool_t load /* = kTRUE */)
+ fClassVersion, GetName(), GetName(), GetName(), fClassVersion);
+ } else {
+ Warning("BuildCheck", "\n\
+- The StreamerInfo from %s does not match existing one (%s:%d)\n\
++ The StreamerInfo does not match existing one (%s:%d)\n\
+ The existing one has not been used yet and will be discarded.\n\
+ Reading should work properly, however writing object of\n\
+ type %s will not work properly. Most likely the version number\n\
+ of the class was not properly updated [See ClassDef(%s,%d)].",
+- file->GetName(), GetName(), fClassVersion, GetName(), GetName(), fClassVersion);
++ GetName(), fClassVersion, GetName(), GetName(), fClassVersion);
+ }
+ }
+ }
+--
+2.31.1
+
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 <mattias.ellert(a)physics.uu.se>
-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 <mattias.ellert(a)physics.uu.se>
-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 <mattias.ellert(a)physics.uu.se>
-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-stress-s390x.patch b/root-stress-s390x.patch
new file mode 100644
index 0000000..b1d9b9d
--- /dev/null
+++ b/root-stress-s390x.patch
@@ -0,0 +1,39 @@
+From 30cbc0d44364586ac64a3ac0fd6641e338549bbe Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Tue, 10 Aug 2021 06:33:17 +0200
+Subject: [PATCH] Adjust tests for s390x
+
+---
+ math/mathcore/test/stress/testGenVector.cxx | 2 +-
+ test/stressMathCore.cxx | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/math/mathcore/test/stress/testGenVector.cxx b/math/mathcore/test/stress/testGenVector.cxx
+index 8da429c395..df9061c88e 100644
+--- a/math/mathcore/test/stress/testGenVector.cxx
++++ b/math/mathcore/test/stress/testGenVector.cxx
+@@ -79,7 +79,7 @@ TYPED_TEST_P(GenVectorTest, TestGenVectors)
+ scale = this->fDim * 20;
+ if (this->fDim == 3 && this->V2Name() == "RhoEtaPhiVector") scale *= 12; // for problem with RhoEtaPhi
+ if (this->fDim == 4 && ( this->V2Name() == "PtEtaPhiMVector" || this->V2Name() == "PxPyPzMVector")) {
+-#if (defined(__arm__) || defined(__arm64__) || defined(__aarch64__))
++#if (defined(__arm__) || defined(__arm64__) || defined(__aarch64__) || defined(__s390x__))
+ scale *= 1.E7;
+ #else
+ scale *= 10;
+diff --git a/test/stressMathCore.cxx b/test/stressMathCore.cxx
+index 4d4695a8a0..b6d2d2c9e7 100644
+--- a/test/stressMathCore.cxx
++++ b/test/stressMathCore.cxx
+@@ -1120,7 +1120,7 @@ int testVector(int ngen, bool testio=false) {
+ scale = Dim*20;
+ if (Dim==3 && VecType<V2>::name() == "RhoEtaPhiVector") scale *= 12; // for problem with RhoEtaPhi
+ if (Dim==4 && ( VecType<V2>::name() == "PtEtaPhiMVector" || VecType<V2>::name() == "PxPyPzMVector")) {
+-#if (defined(__arm__) || defined(__arm64__) || defined(__aarch64__))
++#if (defined(__arm__) || defined(__arm64__) || defined(__aarch64__) || defined(__s390x__))
+ scale *= 1.E7;
+ #else
+ scale *= 10;
+--
+2.31.1
+
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 <mattias.ellert(a)physics.uu.se>
-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-unbundle-gtest.patch b/root-unbundle-gtest.patch
index 6821f22..ae180a2 100644
--- a/root-unbundle-gtest.patch
+++ b/root-unbundle-gtest.patch
@@ -1,7 +1,7 @@
-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 @@
+diff -ur root-6.24.02.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.24.02/cmake/modules/SearchInstalledSoftware.cmake
+--- root-6.24.02.orig/cmake/modules/SearchInstalledSoftware.cmake 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/cmake/modules/SearchInstalledSoftware.cmake 2021-08-11 10:56:26.680731609 +0200
+@@ -1699,102 +1699,17 @@
#---Download googletest--------------------------------------------------------------
if (testing)
@@ -62,7 +62,9 @@ diff -ur root-6.22.00.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.22
- # Wrap download, configure and build steps in a script to log output
- LOG_DOWNLOAD ON
- LOG_CONFIGURE ON
-- LOG_BUILD ON)
+- LOG_BUILD ON
+- TIMEOUT 600
+- )
-
- # Specify include dirs for gtest and gmock
- ExternalProject_Get_Property(googletest source_dir)
diff --git a/root-uring.patch b/root-uring.patch
new file mode 100644
index 0000000..129c38e
--- /dev/null
+++ b/root-uring.patch
@@ -0,0 +1,55 @@
+diff --git a/io/io/src/RRawFileUnix.cxx b/io/io/src/RRawFileUnix.cxx
+index 829c5e4cb6..417c3adf30 100644
+--- a/io/io/src/RRawFileUnix.cxx
++++ b/io/io/src/RRawFileUnix.cxx
+@@ -115,26 +115,33 @@ void ROOT::Internal::RRawFileUnix::OpenImpl()
+ void ROOT::Internal::RRawFileUnix::ReadVImpl(RIOVec *ioVec, unsigned int nReq)
+ {
+ #ifdef R__HAS_URING
+- if (RIoUring::IsAvailable()) {
+- RIoUring ring;
+- std::vector<RIoUring::RReadEvent> reads;
+- reads.reserve(nReq);
+- for (std::size_t i = 0; i < nReq; ++i) {
+- RIoUring::RReadEvent ev;
+- ev.fBuffer = ioVec[i].fBuffer;
+- ev.fOffset = ioVec[i].fOffset;
+- ev.fSize = ioVec[i].fSize;
+- ev.fFileDes = fFileDes;
+- reads.push_back(ev);
++ thread_local bool uring_failed = false;
++ if (!uring_failed) {
++ try {
++ RIoUring ring; // throws std::runtime_error
++ std::vector<RIoUring::RReadEvent> reads;
++ reads.reserve(nReq);
++ for (std::size_t i = 0; i < nReq; ++i) {
++ RIoUring::RReadEvent ev;
++ ev.fBuffer = ioVec[i].fBuffer;
++ ev.fOffset = ioVec[i].fOffset;
++ ev.fSize = ioVec[i].fSize;
++ ev.fFileDes = fFileDes;
++ reads.push_back(ev);
++ }
++ ring.SubmitReadsAndWait(reads.data(), nReq);
++ for (std::size_t i = 0; i < nReq; ++i) {
++ ioVec[i].fOutBytes = reads.at(i).fOutBytes;
++ }
++ return;
+ }
+- ring.SubmitReadsAndWait(reads.data(), nReq);
+- for (std::size_t i = 0; i < nReq; ++i) {
+- ioVec[i].fOutBytes = reads.at(i).fOutBytes;
++ catch(const std::runtime_error &e) {
++ Warning("RIoUring", "io_uring is unexpectedly not available because:\n%s", e.what());
++ Warning("RRawFileUnix",
++ "io_uring setup failed, falling back to blocking I/O in ReadV");
++ uring_failed = true;
+ }
+- return;
+ }
+- Warning("RRawFileUnix",
+- "io_uring setup failed, falling back to default ReadV implementation");
+ #endif
+ RRawFile::ReadVImpl(ioVec, nReq);
+ }
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 <mattias.ellert(a)physics.uu.se>
-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 <mattias.ellert(a)physics.uu.se>
-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 e61c683..26aeb7a 100644
--- a/root.spec
+++ b/root.spec
@@ -13,8 +13,6 @@
%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.
@@ -51,9 +49,9 @@
%global __provides_exclude_from ^(%{?python2_sitearch:%{python2_sitearch}|}%{python3_sitearch})/lib.*\\.so$
Name: root
-Version: 6.22.08
+Version: 6.24.02
%global libversion %(cut -d. -f 1-2 <<< %{version})
-Release: 11%{?dist}
+Release: 1%{?dist}
Summary: Numerical data analysis framework
License: LGPLv2+
@@ -83,105 +81,64 @@ Patch0: %{name}-fontconfig.patch
Patch1: %{name}-32bit-dataframe.patch
# Unbundle gtest
Patch2: %{name}-unbundle-gtest.patch
-# Fix multicore tests when running on machines with few cores
-# https://github.com/root-project/root/pull/8068
-Patch3: %{name}-fix-multicore-tests-with-few-cores.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
+Patch3: %{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
+Patch4: %{name}-memory-arm-x86.patch
# Don't install minicern static library
-Patch9: %{name}-dont-install-minicern.patch
+Patch5: %{name}-dont-install-minicern.patch
# Do not export Python modules in CMake config
-Patch10: %{name}-no-export-python-modules.patch
+Patch6: %{name}-no-export-python-modules.patch
# Don't create documentation notebooks
-Patch11: %{name}-doc-no-notebooks.patch
+Patch7: %{name}-doc-no-notebooks.patch
# Don't run tutorials that crash during doc generation
-Patch12: %{name}-doxygen-crash.patch
+Patch8: %{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
+Patch9: %{name}-old-gtest-compat.patch
# Run some test on 32 bit that upstream has disabled
-Patch15: %{name}-32bit-tests.patch
+Patch10: %{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
-# JupyROOT has problems loading JSRootCore.js in jupyterlab
-# Backported from upstream git
-# https://github.com/root-project/root/issues/8459
-# https://bugzilla.redhat.com/show_bug.cgi?id=1973189
-Patch38: %{name}-jupyroot-jupyterlab-compat.patch
-# Use local static script and style files for JupyROOT
-Patch39: %{name}-jupyroot-static.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
+Patch11: %{name}-epel7-ppc64le-pyroot.patch
+# Use local static script and style files for JsMVA
+Patch12: %{name}-jsmva-static.patch
+# Compatibility with older python versions (no f-strings)
+Patch13: %{name}-older-python.patch
+# Fix multicore tests when running on machines with few cores
+# https://github.com/root-project/root/pull/8068
+Patch14: %{name}-fix-multicore-tests-with-few-cores.patch
+# Reapply altivec fix lost in the LLVM 9 upgrade
+# https://github.com/root-project/root/pull/8069
+Patch15: %{name}-fix-ppc64le-compilation-with-gcc-10.patch
+# Actually request the use of the large code model for ppc64le
+# https://github.com/root-project/root/pull/8230
+Patch16: %{name}-ppc-codemodel.patch
+# Do not request the large code model for ppc64le
+# It causes segmentation faults
+Patch17: %{name}-ppc-no-codemodel.patch
+# Fall back to blocking I/O if uring fails
+# Backported
+# - commit 691403b2cc504fd4e3e7227894023913014a61ff
+# - commit 956951ee2af83426d73ad72b2d966f9f1acbea83
+# - commit 16e64da11edf91fcf31c2fc474f573fca2ee863c
+# - commit 311a6822f9b0fd438c4210ed60617b45f2ddbe74
+Patch18: %{name}-uring.patch
+# Add missing classes in LinkDef.h files
+# Backported
+Patch19: %{name}-add-TTreeProcessorMP-to-LinkDef-file.patch
+Patch20: %{name}-add-RDisplay-to-LinkDef-file.patch
+Patch21: %{name}-add-RCutFlowReport-to-LinkDef-file.patch
+# Fix "pointer is null" warnings
+# Backported
+Patch22: %{name}-ptr-is-null-RooFit-TMVA.patch
+Patch23: %{name}-ptr-is-null-TStreamerInfo.patch
+# Fix two failing tests on s390x
+# https://github.com/root-project/root/pull/8826
+Patch24: %{name}-stress-s390x.patch
BuildRequires: make
%if %{?rhel}%{!?rhel:0} == 7
@@ -275,6 +232,13 @@ BuildRequires: cmake-data >= 3.18.3-1
%else
BuildRequires: openblas-devel
%endif
+BuildRequires: json-devel
+%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8
+BuildRequires: liburing-devel
+%endif
+%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8
+BuildRequires: python%{python3_pkgversion}-pandas
+%endif
BuildRequires: doxygen
BuildRequires: graphviz
BuildRequires: yuicompressor
@@ -527,6 +491,17 @@ Requires: %{name}-tmva = %{version}-%{release}
%description -n python2-jsmva
TMVA interface used by JupyROOT.
+
+%package -n python2-distrdf
+Summary: Distributed RDataFrame
+BuildArch: noarch
+%{?python_provide:%python_provide python2-distrdf}
+Requires: python2-%{name} = %{version}-%{release}
+Requires: %{name}-tree-dataframe = %{version}-%{release}
+
+%description -n python2-distrdf
+A layer on top of RDataFrame to enable distributed computations. It is
+a port of the previously known PyRDF python package.
%endif
%package -n python%{python3_pkgversion}-%{name}
@@ -573,6 +548,17 @@ Requires: %{name}-tmva = %{version}-%{release}
%description -n python%{python3_pkgversion}-jsmva
TMVA interface used by JupyROOT.
+%package -n python%{python3_pkgversion}-distrdf
+Summary: Distributed RDataFrame
+BuildArch: noarch
+%{?python_provide:%python_provide python%{python3_pkgversion}-distrdf}
+Requires: python%{python3_pkgversion}-%{name} = %{version}-%{release}
+Requires: %{name}-tree-dataframe = %{version}-%{release}
+
+%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.
+
%package r
Summary: R interface for ROOT
Requires: %{name}-core%{?_isa} = %{version}-%{release}
@@ -870,6 +856,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}
@@ -1298,7 +1285,7 @@ access to http based storage such as webdav and S3.
Summary: HTTP server extension for ROOT
Requires: %{name}-core%{?_isa} = %{version}-%{release}
Requires: %{name}-io%{?_isa} = %{version}-%{release}
-Requires: js-jsroot
+Requires: js-jsroot >= 6
# Library split (net-httpsniff from net-http)
Obsoletes: %{name}-net-http < 6.14.00
@@ -1423,6 +1410,7 @@ 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)
@@ -1454,6 +1442,7 @@ 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}-roofit-batchcompute%{?_isa} = %{version}-%{release}
Requires: %{name}-tree%{?_isa} = %{version}-%{release}
# Package split / Library split (from roofit)
Obsoletes: %{name}-roofit < 6.20.00
@@ -1479,6 +1468,7 @@ License: BSD
Requires: %{name}-core%{?_isa} = %{version}-%{release}
Requires: %{name}-mathcore%{?_isa} = %{version}-%{release}
Requires: %{name}-mathmore%{?_isa} = %{version}-%{release}
+Requires: %{name}-roofit-batchcompute%{?_isa} = %{version}-%{release}
Requires: %{name}-roofit-core%{?_isa} = %{version}-%{release}
# Package split / Library split (from roofit)
Obsoletes: %{name}-roofit < 6.20.00
@@ -1498,6 +1488,25 @@ 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
+Requires: %{name}-core%{?_isa} = %{version}-%{release}
+Requires: %{name}-mathcore%{?_isa} = %{version}-%{release}
+Requires: %{name}-roofit-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 roostats
Summary: Statistical tools built on top of RooFit
License: BSD
@@ -1721,7 +1730,7 @@ written in python.
Summary: Static files for the Jupyter ROOT Notebook
BuildArch: noarch
Requires: %{name}-core = %{version}-%{release}
-Requires: js-jsroot
+Requires: js-jsroot >= 6
%if %{?fedora}%{!?fedora:0} >= 26
# jupyter-notebook not available in
# Fedora <= 25 or RHEL/EPEL - some functionality missing
@@ -1754,6 +1763,7 @@ Requires: %{name}-geom%{?_isa} = %{version}-%{release}
Requires: %{name}-graf%{?_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}
@@ -1770,6 +1780,7 @@ Summary: GUI browsable (ROOT 7)
Requires: %{name}-core%{?_isa} = %{version}-%{release}
Requires: %{name}-graf-gpadv7%{?_isa} = %{version}-%{release}
Requires: %{name}-hist%{?_isa} = %{version}-%{release}
+Requires: %{name}-hist-draw%{?_isa} = %{version}-%{release}
Requires: %{name}-io%{?_isa} = %{version}-%{release}
Requires: %{name}-tree%{?_isa} = %{version}-%{release}
@@ -1781,6 +1792,8 @@ 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}-geom%{?_isa} = %{version}-%{release}
+Requires: %{name}-graf3d-eve7%{?_isa} = %{version}-%{release}
Requires: %{name}-gui-browsable%{?_isa} = %{version}-%{release}
Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release}
Requires: %{name}-gui-webgui6%{?_isa} = %{version}-%{release}
@@ -1897,21 +1910,6 @@ This package contains an ntuple extension for ROOT 7.
%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
-%patch38 -p1
-%patch39 -p1
# Remove bundled sources in order to be sure they are not used
# * afterimage
@@ -1920,8 +1918,17 @@ rm -rf graf2d/asimage/src/libAfterImage
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
+# * davix, glew, lz4, nlohmann, openssl, pcre, tbb, xxhash, zlib, zstd
+rm -rf builtins/davix
+rm -rf builtins/glew
+rm -rf builtins/lz4
+rm -rf builtins/nlohmann
+rm -rf builtins/openssl
+rm -rf builtins/pcre
+rm -rf builtins/tbb
+rm -rf builtins/xxhash
+rm -rf builtins/zlib
+rm -rf builtins/zstd
# * lzma
rm -rf core/lzma/src/*.tar.gz
# * gl2ps
@@ -1944,9 +1951,6 @@ sed /RWrap_libcpp_string_view.h/d -i build/unix/module.modulemap
# * jsroot
rm -rf js/*
-# 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/*
@@ -1995,6 +1999,7 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
-Dbuiltin_afterimage:BOOL=OFF \
-Dbuiltin_cfitsio:BOOL=OFF \
-Dbuiltin_clang:BOOL=ON \
+ -Dbuiltin_cling:BOOL=ON \
-Dbuiltin_davix:BOOL=OFF \
-Dbuiltin_fftw3:BOOL=OFF \
-Dbuiltin_freetype:BOOL=OFF \
@@ -2005,7 +2010,9 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
-Dbuiltin_llvm:BOOL=ON \
-Dbuiltin_lz4:BOOL=OFF \
-Dbuiltin_lzma:BOOL=OFF \
+ -Dbuiltin_nlohmannjson:BOOL=OFF \
-Dbuiltin_openssl:BOOL=OFF \
+ -Dbuiltin_openui5:BOOL=ON \
-Dbuiltin_pcre:BOOL=OFF \
-Dbuiltin_tbb:BOOL=OFF \
-Dbuiltin_unuran:BOOL=OFF \
@@ -2020,20 +2027,15 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
-Darrow:BOOL=OFF \
-Dasimage:BOOL=ON \
-Dccache:BOOL=OFF \
+ -Ddistcc:BOOL=OFF \
-Dcefweb:BOOL=OFF \
-Dclad:BOOL=OFF \
-Dcocoa:BOOL=OFF \
-Dcuda:BOOL=OFF \
%if %{root7}
-%if %{?fedora}%{!?fedora:0} >= 34
- -DCMAKE_CXX_STANDARD=17 \
-%else
- -DCMAKE_CXX_STANDARD=14 \
-%endif
-Droot7:BOOL=ON \
-Dwebgui:BOOL=ON \
%else
- -DCMAKE_CXX_STANDARD=11 \
-Droot7:BOOL=OFF \
-Dwebgui:BOOL=OFF \
%endif
@@ -2107,6 +2109,11 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
-Dtmva-pymva:BOOL=ON \
-Dtmva-rmva:BOOL=ON \
-Dunuran:BOOL=ON \
+%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8
+ -During:BOOL=ON \
+%else
+ -During:BOOL=OFF \
+%endif
-Dvc:BOOL=OFF \
-Dvdt:BOOL=OFF \
-Dveccore:BOOL=OFF \
@@ -2203,6 +2210,7 @@ rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python2_version_uscore}.so
mkdir -p %{buildroot}%{python2_sitelib}
cp -pr %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python2_sitelib}
+cp -pr %{buildroot}%{_libdir}/%{name}/DistRDF %{buildroot}%{python2_sitelib}
# Create .egg-info files so that rpm auto-generates provides
echo 'Name: ROOT' > \
@@ -2217,6 +2225,10 @@ echo 'Name: JsMVA' > \
%{buildroot}%{python2_sitelib}/JsMVA-%{version}.egg-info
echo 'Version: %{version}' >> \
%{buildroot}%{python2_sitelib}/JsMVA-%{version}.egg-info
+echo 'Name: DistRDF' > \
+ %{buildroot}%{python2_sitelib}/DistRDF-%{version}.egg-info
+echo 'Version: %{version}' >> \
+ %{buildroot}%{python2_sitelib}/DistRDF-%{version}.egg-info
%endif
@@ -2225,7 +2237,7 @@ 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
+ %{buildroot}%{python3_sitearch}/libcppyy%{python3_version_uscore}%{python3_ext_suffix}
mv %{buildroot}%{_libdir}/%{name}/cppyy_backend %{buildroot}%{python3_sitearch}
ln -s ../../root/libcppyy_backend%{python3_version_uscore}.so.%{version} \
@@ -2233,18 +2245,19 @@ ln -s ../../root/libcppyy_backend%{python3_version_uscore}.so.%{version} \
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
+ %{buildroot}%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}%{python3_ext_suffix}
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
+ %{buildroot}%{python3_sitearch}/libJupyROOT%{python3_version_uscore}%{python3_ext_suffix}
rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so.%{libversion}
rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so
mkdir -p %{buildroot}%{python3_sitelib}
mv %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python3_sitelib}
+mv %{buildroot}%{_libdir}/%{name}/DistRDF %{buildroot}%{python3_sitelib}
# Create .egg-info files so that rpm auto-generates provides
echo 'Name: ROOT' > \
@@ -2259,6 +2272,10 @@ echo 'Name: JsMVA' > \
%{buildroot}%{python3_sitelib}/JsMVA-%{version}.egg-info
echo 'Version: %{version}' >> \
%{buildroot}%{python3_sitelib}/JsMVA-%{version}.egg-info
+echo 'Name: DistRDF' > \
+ %{buildroot}%{python3_sitelib}/DistRDF-%{version}.egg-info
+echo 'Version: %{version}' >> \
+ %{buildroot}%{python3_sitelib}/DistRDF-%{version}.egg-info
# Put jupyter stuff in the right places
mkdir -p %{buildroot}%{_datadir}/jupyter/kernels
@@ -2284,8 +2301,7 @@ sed -e '/^\#!/d' \
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
# Replace the rootnb.exe wrapper with a simpler one
cat > %{buildroot}%{_bindir}/rootnb.exe << EOF
@@ -2345,6 +2361,9 @@ rm %{buildroot}%{_datadir}/%{name}/macros/fileopen.C
# Remove plugin definitions for non-built and obsolete plugins
pushd %{buildroot}%{_datadir}/%{name}/plugins
+%if ! %{root7}
+rm TBrowserImp/P030_RWebBrowserImp.C
+%endif
rm TDataSetManager/P020_TDataSetManagerAliEn.C
rm TFile/P070_TAlienFile.C
rm TGLManager/P020_TGWin32GLManager.C
@@ -2494,11 +2513,22 @@ popd
# http://root.cern.ch/files/root_download_stats.sqlite
#
# - gtest-tree-treeplayer-test-treeprocessormt-remotefiles
-# - tutorial-dataframe-df102_NanoAODDimuonAnalysis
-# - tutorial-dataframe-df103_NanoAODHiggsAnalysis
+# - tutorial-dataframe-df102_NanoAODDimuonAnalysis(-py)?
+# - tutorial-dataframe-df103_NanoAODHiggsAnalysis(-py)?
# reads input data over network:
# root://eospublic.cern.ch//eos/root-eos/cms_opendata_2012_nanoaod/
#
+# - tutorial-dataframe-df104_HiggsToTwoPhotons-py
+# - tutorial-dataframe-df105_WBosonAnalysis-py
+# - tutorial-dataframe-df106_HiggsToFourLeptons-py
+# - tutorial-dataframe-df107_SingleTopAnalysis-py
+# reads input data over network:
+# root://eospublic.cern.ch//eos/opendata/atlas/OutreachDatasets/2020-01-22/
+#
+# - tutorial-v7-climate-global_temperatures
+# reads input data over network
+# http://root.cern./files/tutorials/GlobalLandTemperaturesByCity.csv
+#
# - tutorial-v7-ntuple-ntpl003_lhcbOpenData
# reads input data over network
# http://root.cern.ch/files/LHCb/lhcb_B2HHH_MagnetUp.root (425 MB)
@@ -2525,9 +2555,32 @@ popd
# reads input data over network
# http://root.cern/files/tmva101.root
#
+# - pyunittests-pyroot-dependency-versions
# - pyunittests-pyroot-numbadeclare
+# - test-import-numba
# - tutorial-pyroot-pyroot004_NumbaDeclare-py
# these tests require the numba python module which is not available
+#
+# - tutorial-v7-concurrentfill.cxx
+# - tutorial-v7-draw.cxx
+# - tutorial-v7-draw_frame.cxx
+# - tutorial-v7-draw_legend.cxx
+# - tutorial-v7-draw_mt.cxx
+# - tutorial-v7-draw_rh1.cxx
+# - tutorial-v7-draw_rh1_large.cxx
+# - tutorial-v7-draw_rh2.cxx
+# - tutorial-v7-draw_rh2_colz.cxx
+# - tutorial-v7-draw_rh2_large.cxx
+# - tutorial-v7-draw_rh3.cxx
+# - tutorial-v7-draw_rh3_large.cxx
+# - tutorial-v7-draw_subpads.cxx
+# - tutorial-v7-histops.cxx
+# - tutorial-v7-perf.cxx
+# - tutorial-v7-perfcomp.cxx
+# - tutorial-v7-simple.cxx
+# Fails with "already deserialized this template specialization"
+# https://github.com/root-project/root/issues/8073
+
excluded="\
test-stressIOPlugins|\
tutorial-dataframe-df101_h1Analysis|\
@@ -2541,6 +2594,11 @@ tutorial-dataframe-df..._SQlite|\
gtest-tree-treeplayer-test-treeprocessormt-remotefiles|\
tutorial-dataframe-df102_NanoAODDimuonAnalysis|\
tutorial-dataframe-df103_NanoAODHiggsAnalysis|\
+tutorial-dataframe-df104_HiggsToTwoPhotons-py|\
+tutorial-dataframe-df105_WBosonAnalysis-py|\
+tutorial-dataframe-df106_HiggsToFourLeptons-py|\
+tutorial-dataframe-df107_SingleTopAnalysis-py|\
+tutorial-v7-climate-global_temperatures|\
tutorial-v7-ntuple-ntpl003_lhcbOpenData|\
tutorial-v7-ntuple-ntpl004_dimuon|\
tutorial-v7-line.cxx|\
@@ -2550,8 +2608,48 @@ gtest-tmva-tmva-test-rstandardscaler|\
tutorial-tmva-tmva003_RReader|\
tutorial-tmva-tmva004_RStandardScaler|\
tutorial-tmva-tmva103_Application|\
+pyunittests-pyroot-dependency-versions|\
pyunittests-pyroot-numbadeclare|\
-tutorial-pyroot-pyroot004_NumbaDeclare-py"
+test-import-numba|\
+tutorial-pyroot-pyroot004_NumbaDeclare-py|\
+tutorial-v7-concurrentfill.cxx|\
+tutorial-v7-draw.cxx|\
+tutorial-v7-draw_frame.cxx|\
+tutorial-v7-draw_legend.cxx|\
+tutorial-v7-draw_mt.cxx|\
+tutorial-v7-draw_rh1.cxx|\
+tutorial-v7-draw_rh1_large.cxx|\
+tutorial-v7-draw_rh2.cxx|\
+tutorial-v7-draw_rh2_colz.cxx|\
+tutorial-v7-draw_rh2_large.cxx|\
+tutorial-v7-draw_rh3.cxx|\
+tutorial-v7-draw_rh3_large.cxx|\
+tutorial-v7-draw_subpads.cxx|\
+tutorial-v7-histops.cxx|\
+tutorial-v7-perf.cxx|\
+tutorial-v7-perfcomp.cxx|\
+tutorial-v7-simple.cxx"
+
+%if %{?rhel}%{!?rhel:0} == 7
+# - test-import-pandas
+# - tutorial-dataframe-df026_AsNumpyArrays-py
+# requires the pandas python module which is not available in EPEL 7
+#
+# - tutorial-multicore-mp001_fillHistos
+# - tutorial-multicore-mp101_fillNtuples
+# - tutorial-multicore-mp102_readNtuplesFillHistosAndFit
+# - tutorial-multicore-mp201_parallelHistoFill
+# fails intermittently on EPEL 7 with the error
+# symbol '_Z6MPRecvP7TSocket' unresolved while linking
+# symbol '_Z6MPSendP7TSocketj' unresolved while linking
+excluded="${excluded}|\
+test-import-pandas|\
+tutorial-dataframe-df026_AsNumpyArrays-py|\
+tutorial-multicore-mp001_fillHistos|\
+tutorial-multicore-mp101_fillNtuples|\
+tutorial-multicore-mp102_readNtuplesFillHistosAndFit|\
+tutorial-multicore-mp201_parallelHistoFill"
+%endif
%ifarch %{ix86} %{arm}
# Tests failing on 32 bit architectures (dataframe)
@@ -2559,51 +2657,226 @@ tutorial-pyroot-pyroot004_NumbaDeclare-py"
# - gtest-tree-dataframe-test-dataframe-cache
# - gtest-tree-dataframe-test-dataframe-callbacks
# - gtest-tree-dataframe-test-dataframe-colnames
+# - gtest-tree-dataframe-test-dataframe-concurrency
# - 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-leaves
# - gtest-tree-dataframe-test-dataframe-ranges
+# - gtest-tree-dataframe-test-dataframe-regression
# - gtest-tree-dataframe-test-dataframe-simple
# - gtest-tree-dataframe-test-dataframe-snapshot
-# - gtest-tree-dataframe-test-datasource-root
+# - gtest-tree-dataframe-test-dataframe-vecops
+# - gtest-tree-dataframe-test-datasource-csv
+# - gtest-tree-dataframe-test-datasource-more
+# - gtest-tree-dataframe-test-datasource-sqlite
# - 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-concurrency|\
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-leaves|\
gtest-tree-dataframe-test-dataframe-ranges|\
+gtest-tree-dataframe-test-dataframe-regression|\
gtest-tree-dataframe-test-dataframe-simple|\
gtest-tree-dataframe-test-dataframe-snapshot|\
-gtest-tree-dataframe-test-datasource-root|\
+gtest-tree-dataframe-test-dataframe-vecops|\
+gtest-tree-dataframe-test-datasource-csv|\
+gtest-tree-dataframe-test-datasource-more|\
+gtest-tree-dataframe-test-datasource-sqlite|\
gtest-tree-dataframe-test-datasource-trivial"
%endif
%ifarch %{arm}
-# This test fails on 32 bit arm
+# 32 bit arm specific failures
+#
+# - gtest-tree-tree-test-testBulkApi
# - gtest-tree-tree-test-testBulkApiSillyStruct
-excluded="${excluded}|gtest-tree-tree-test-testBulkApiSillyStruct"
+# segmentation fault - bus error
+#
+# - gtest-tree-dataframe-test-dataframe-histomodels
+# - gtest-tree-ntuple-v7-test-ntuple-rdf
+# - pyunittests-dataframe-cache
+# - pyunittests-dataframe-histograms
+# - pyunittests-dataframe-merge-results
+# - pyunittests-dataframe-misc
+# - pyunittests-pyroot-pyz-rdataframe-makenumpy
+# - pyunittests-pyroot-pyz-tf-pycallables
+# - test-stressiterators-interpreted
+# - tutorial-dataframe-df001_introduction(-py)
+# - tutorial-dataframe-df002_dataModel(-py)
+# - tutorial-dataframe-df003_profiles(-py)
+# - tutorial-dataframe-df005_fillAnyObject
+# - tutorial-dataframe-df006_ranges(-py)
+# - tutorial-dataframe-df007_snapshot(-py)
+# - tutorial-dataframe-df010_trivialDataSource(-py)
+# - tutorial-dataframe-df012_DefinesAndFiltersAsStrings(-py)
+# - tutorial-dataframe-df014_CSVDataSource(-py)
+# - tutorial-dataframe-df015_LazyDataSource
+# - tutorial-dataframe-df016_vecOps(-py)
+# - tutorial-dataframe-df017_vecOpsHEP(-py)
+# - tutorial-dataframe-df019_Cache(-py)
+# - tutorial-dataframe-df020_helpers
+# - tutorial-dataframe-df021_createTGraph(-py)
+# - tutorial-dataframe-df022_useKahan
+# - tutorial-dataframe-df025_RNode
+# - tutorial-dataframe-df031_Stats(-py)
+# - tutorial-hist-sparsehist
+# - tutorial-r-example
+# - tutorial-r-DataFrame
+# - tutorial-r-Function
+# - tutorial-r-Functor
+# - tutorial-r-GlobalMinimization
+# - tutorial-r-Integration
+# - tutorial-r-Minimization
+# Not implemented relocation type!
+excluded="${excluded}|\
+gtest-tree-tree-test-testBulkApi\$\$|\
+gtest-tree-tree-test-testBulkApiSillyStruct|\
+gtest-tree-dataframe-test-dataframe-histomodels|\
+gtest-tree-ntuple-v7-test-ntuple-rdf|\
+pyunittests-dataframe-cache|\
+pyunittests-dataframe-histograms|\
+pyunittests-dataframe-merge-results|\
+pyunittests-dataframe-misc|\
+pyunittests-pyroot-pyz-rdataframe-makenumpy|\
+pyunittests-pyroot-pyz-tf-pycallables|\
+test-stressiterators-interpreted|\
+tutorial-dataframe-df001_introduction|\
+tutorial-dataframe-df002_dataModel|\
+tutorial-dataframe-df003_profiles|\
+tutorial-dataframe-df005_fillAnyObject|\
+tutorial-dataframe-df006_ranges|\
+tutorial-dataframe-df007_snapshot|\
+tutorial-dataframe-df010_trivialDataSource|\
+tutorial-dataframe-df012_DefinesAndFiltersAsStrings|\
+tutorial-dataframe-df014_CSVDataSource|\
+tutorial-dataframe-df015_LazyDataSource|\
+tutorial-dataframe-df016_vecOps|\
+tutorial-dataframe-df017_vecOpsHEP|\
+tutorial-dataframe-df019_Cache|\
+tutorial-dataframe-df020_helpers|\
+tutorial-dataframe-df021_createTGraph|\
+tutorial-dataframe-df022_useKahan|\
+tutorial-dataframe-df025_RNode|\
+tutorial-dataframe-df031_Stats|\
+tutorial-hist-sparsehist|\
+tutorial-r-example|\
+tutorial-r-DataFrame|\
+tutorial-r-Function|\
+tutorial-r-Functor|\
+tutorial-r-GlobalMinimization|\
+tutorial-r-Integration|\
+tutorial-r-Minimization"
%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"
+excluded="${excluded}|test-stresshistofit\$\$"
%endif
-%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"
+%ifarch %{power64}
+# PPC64LE specific failures
+#
+# - test-stressgraphics(-interpreted)
+excluded="${excluded}|test-stressgraphics"
+
+%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8
+# - pyunittests-pyroot-pyz-array-interface
+# - pyunittests-pyroot-pyz-rdataframe-asnumpy
+# - pyunittests-pyroot-pyz-rdataframe-makenumpy
+# - pyunittests-pyroot-pyz-rvec-asrvec
+# - pyunittests-pyroot-pyz-ttree-asmatrix
+# - tutorial-dataframe-df026_AsNumpyArrays-py
+# - tutorial-pyroot-pyroot001_arrayInterface-py
+# - tutorial-pyroot-pyroot002_TTreeAsMatrix-py
+excluded="${excluded}|\
+pyunittests-pyroot-pyz-array-interface|\
+pyunittests-pyroot-pyz-rdataframe-asnumpy|\
+pyunittests-pyroot-pyz-rdataframe-makenumpy|\
+pyunittests-pyroot-pyz-rvec-asrvec|\
+pyunittests-pyroot-pyz-ttree-asmatrix|\
+tutorial-dataframe-df026_AsNumpyArrays-py|\
+tutorial-pyroot-pyroot001_arrayInterface-py|\
+tutorial-pyroot-pyroot002_TTreeAsMatrix-py"
+%endif
+
+%if %{?fedora}%{!?fedora:0}
+# - pyunittests-pyroot-pyz-rtensor
+# - pyunittests-pyroot-pyz-ttree-branch
+# - pyunittests-pyroot-pyz-ttree-setbranchaddress
+# - tutorial-r-example
+# - tutorial-r-DataFrame
+# - tutorial-r-Function
+# - tutorial-r-Functor
+# - tutorial-r-GlobalMinimization
+# - tutorial-r-Integration
+# - tutorial-r-Interpolation
+# - tutorial-r-Minimization
+# - tutorial-r-SimpleFitting
+# - tutorial-tmva-envelope-classification
+# - tutorial-tmva-TMVA*
+# Relocation R_PPC64_REL32 overflow
+excluded="${excluded}|\
+pyunittests-pyroot-pyz-rtensor|\
+pyunittests-pyroot-pyz-ttree-branch|\
+pyunittests-pyroot-pyz-ttree-setbranchaddress|\
+tutorial-r-example|\
+tutorial-r-DataFrame|\
+tutorial-r-Function|\
+tutorial-r-Functor|\
+tutorial-r-GlobalMinimization|\
+tutorial-r-Integration|\
+tutorial-r-Interpolation|\
+tutorial-r-Minimization|\
+tutorial-r-SimpleFitting|\
+tutorial-tmva-envelope-classification|\
+tutorial-tmva-TMVA"
+%endif
+%endif
+
+%ifarch s390x
+# s390x specific failures
+#
+# - gtest-roofit-roofitcore-test-testNaNPacker
+# - gtest-tree-ntuple-v7-test-ntuple-basics
+# - gtest-tree-ntuple-v7-test-ntuple-extended
+# - gtest-tree-ntuple-v7-test-ntuple-minifile
+# - gtest-tree-ntuple-v7-test-ntuple-storage
+# - pyunittests-pyroot-pyz-rtensor
+# - test-stresshistogram(-interpreted)
+# - test-stresshistofit(-interpreted)
+# - tutorial-dataframe-df006_ranges-py
+# - tutorial-roofit-rf203_ranges-py
+# - tutorial-roofit-rf612_recoverFromInvalidParameters
+# - tutorial-roofit-rf902_numgenconfig-py
+# - tutorial-v7-ntuple-ntpl005_introspection
+excluded="${excluded}|\
+gtest-roofit-roofitcore-test-testNaNPacker|\
+gtest-tree-ntuple-v7-test-ntuple-basics|\
+gtest-tree-ntuple-v7-test-ntuple-extended|\
+gtest-tree-ntuple-v7-test-ntuple-minifile|\
+gtest-tree-ntuple-v7-test-ntuple-storage|\
+pyunittests-pyroot-pyz-rtensor|\
+test-stresshistogram|\
+test-stresshistofit|\
+tutorial-dataframe-df006_ranges-py|\
+tutorial-roofit-rf203_ranges-py|\
+tutorial-roofit-rf612_recoverFromInvalidParameters|\
+tutorial-roofit-rf902_numgenconfig-py|\
+tutorial-v7-ntuple-ntpl005_introspection"
%endif
# Filter out parts of tests that require remote network access
-GTEST_FILTER=-RRawFile.Remote:RSqliteDS.Davix \
+GTEST_FILTER=-RCsvDS.Remote:RRawFile.Remote:RSqliteDS.Davix \
make test ARGS="%{?_smp_mflags} --output-on-failure -E \"${excluded}\""
popd
@@ -2652,6 +2925,7 @@ if [ -e /etc/jupyter/jupyter_notebook_config.py ] ; then
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}/javascript/jsroot')
c.NotebookApp.extra_static_paths.append('%{_datadir}/%{name}/notebook')
# Extra static path for JupyROOT - end - do not remove this line
EOF
@@ -2660,6 +2934,7 @@ if [ -e /etc/jupyter/jupyter_server_config.py ] ; then
fi
cat << EOF >> /etc/jupyter/jupyter_server_config.py
# Extra static path for JupyROOT - start - do not remove this line
+c.ServerApp.extra_static_paths.append('%{_datadir}/javascript/jsroot')
c.ServerApp.extra_static_paths.append('%{_datadir}/%{name}/notebook')
# Extra static path for JupyROOT - end - do not remove this line
EOF
@@ -2768,6 +3043,7 @@ fi
%ldconfig_scriptlets roofit
%ldconfig_scriptlets roofit-core
%ldconfig_scriptlets roofit-more
+%ldconfig_scriptlets roofit-batchcompute
%ldconfig_scriptlets roostats
%ldconfig_scriptlets sql-mysql
%ldconfig_scriptlets sql-odbc
@@ -2886,13 +3162,12 @@ fi
# They therefore should not be marked doc.
%{_pkgdocdir}/CREDITS
%{_pkgdocdir}/LICENSE
-%doc %{_pkgdocdir}/README
+%doc %{_pkgdocdir}/DEVELOPMENT.md
%doc %{_pkgdocdir}/ReleaseNotes
%license LICENSE LGPL2_1.txt
%files multiproc -f includelist-core-multiproc
%{_libdir}/%{name}/libMultiProc.*
-%{_libdir}/%{name}/libMultiProc_rdict.pcm
%files cling
%{_bindir}/genreflex
@@ -2936,6 +3211,10 @@ fi
%files -n python2-jsmva
%{python2_sitelib}/JsMVA
%{python2_sitelib}/JsMVA-*.egg-info
+
+%files -n python2-distrdf
+%{python2_sitelib}/DistRDF
+%{python2_sitelib}/DistRDF-*.egg-info
%endif
%files -n python%{python3_pkgversion}-%{name} -f includelist-bindings-pyroot
@@ -2943,9 +3222,9 @@ fi
%{python3_sitearch}/cppyy_backend
%{python3_sitearch}/ROOT
%{python3_sitearch}/ROOT-*.egg-info
-%{python3_sitearch}/libcppyy%{python3_version_uscore}.%{py3_soabi}.so
+%{python3_sitearch}/libcppyy%{python3_version_uscore}%{python3_ext_suffix}
%{python3_sitearch}/libcppyy_backend%{python3_version_uscore}.so
-%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}.%{py3_soabi}.so
+%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}%{python3_ext_suffix}
%{_libdir}/%{name}/libcppyy%{python3_version_uscore}.*
%{_libdir}/%{name}/libcppyy_backend%{python3_version_uscore}.*
%dir %{_includedir}/%{name}/CPyCppyy
@@ -2953,7 +3232,7 @@ fi
%files -n python%{python3_pkgversion}-jupyroot
%{python3_sitearch}/JupyROOT
%{python3_sitearch}/JupyROOT-*.egg-info
-%{python3_sitearch}/libJupyROOT%{python3_version_uscore}.%{py3_soabi}.so
+%{python3_sitearch}/libJupyROOT%{python3_version_uscore}%{python3_ext_suffix}
%{_datadir}/jupyter/kernels/python%{python3_pkgversion}-jupyroot
%doc bindings/jupyroot/README.md
@@ -2961,6 +3240,10 @@ fi
%{python3_sitelib}/JsMVA
%{python3_sitelib}/JsMVA-*.egg-info
+%files -n python%{python3_pkgversion}-distrdf
+%{python3_sitelib}/DistRDF
+%{python3_sitelib}/DistRDF-*.egg-info
+
%files r -f includelist-bindings-r
%{_libdir}/%{name}/libRInterface.*
%{_libdir}/%{name}/libRInterface_rdict.pcm
@@ -3411,6 +3694,11 @@ fi
%{_libdir}/%{name}/libRooFitMore.*
%{_libdir}/%{name}/libRooFitMore_rdict.pcm
+%files roofit-batchcompute -f includelist-roofit-batchcompute
+%{_libdir}/%{name}/libRooBatchCompute.*
+%{_libdir}/%{name}/libRooBatchCompute_*
+%doc roofit/batchcompute/README.md
+
%files roostats -f includelist-roofit-roostats
%{_libdir}/%{name}/libRooStats.*
%{_libdir}/%{name}/libRooStats_rdict.pcm
@@ -3519,6 +3807,7 @@ fi
%files gui-browsable -f includelist-gui-browsable
%{_libdir}/%{name}/libROOTBrowsable.*
%{_libdir}/%{name}/libROOTBrowsable_rdict.pcm
+%{_libdir}/%{name}/libROOTBranchBrowseProvider.*
%{_libdir}/%{name}/libROOTHistDrawProvider.*
%{_libdir}/%{name}/libROOTLeafDraw6Provider.*
%{_libdir}/%{name}/libROOTLeafDraw7Provider.*
@@ -3528,6 +3817,11 @@ fi
%files gui-browserv7 -f includelist-gui-browserv7
%{_libdir}/%{name}/libROOTBrowserv7.*
%{_libdir}/%{name}/libROOTBrowserv7_rdict.pcm
+%{_libdir}/%{name}/libROOTBrowserGeomWidget.*
+%{_libdir}/%{name}/libROOTBrowserRCanvasWidget.*
+%{_libdir}/%{name}/libROOTBrowserTCanvasWidget.*
+%{_libdir}/%{name}/libROOTBrowserWidgets.*
+%{_datadir}/%{name}/plugins/TBrowserImp/P030_RWebBrowserImp.C
%files gui-canvaspainter
%{_libdir}/%{name}/libROOTCanvasPainter.*
@@ -3565,6 +3859,15 @@ fi
%endif
%changelog
+* Wed Aug 04 2021 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 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 <mattias.ellert(a)physics.uu.se> - 6.22.08-11
- Drop the memstat module for Fedora 35+
The required __malloc_hook was removed from glibc 2.33.9000-48
diff --git a/sources b/sources
index 9b75929..af28a1d 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (root-6.22.08.tar.xz) = 9080168116ffdd07cfce411dca77404177cd3ba57af498419432ca95169dbce581a7a2a667c22273685d659b3e0398d567b2d51d07ca767b076ee5196395d828
+SHA512 (root-6.24.02.tar.xz) = 2f2bc89b436c7bc703bc88290f5047fae941950f98bd549fdd43121f7742a4030e153cc12a52d81c9a76a32e8d7be197a85776b721fe1643439827fb5b49d1c0
SHA512 (root-testfiles.tar.xz) = 945aef1a0cf5af672d4ab84b0ac00b76118e93008ff72447658ee82d9e955a1540af3ff7126e701418872f1d91b92ee96d4985840a519036c42732023a13f00f
commit 63048e8cb675f579120ea07145ded574d1d80015
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Mon Jul 26 20:54:55 2021 +0200
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
diff --git a/root.spec b/root.spec
index 9b0bcdd..e61c683 100644
--- a/root.spec
+++ b/root.spec
@@ -29,6 +29,14 @@
%global xrootd5 0
%endif
+%if %{?fedora}%{!?fedora:0} >= 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
+%global memstat 0
+%else
+%global memstat 1
+%endif
+
%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8
# Multi-threading support requires TBB version >= 2018
%global tbb 1
@@ -45,7 +53,7 @@
Name: root
Version: 6.22.08
%global libversion %(cut -d. -f 1-2 <<< %{version})
-Release: 10%{?dist}
+Release: 11%{?dist}
Summary: Numerical data analysis framework
License: LGPLv2+
@@ -425,6 +433,9 @@ 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
+%if ! %{memstat}
+Obsoletes: %{name}-memstat < %{version}-%{release}
+%endif
%description core
This package contains the core libraries used by ROOT: libCore, libNew,
@@ -1203,6 +1214,7 @@ Obsoletes: %{name}-tree-player < 6.14.00
%description vecops
This package contains a vector operation extension for ROOT.
+%if %{memstat}
%package memstat
Summary: Memory statistics tool for use with ROOT
Requires: %{name}-core%{?_isa} = %{version}-%{release}
@@ -1213,6 +1225,7 @@ Requires: %{name}-tree%{?_isa} = %{version}-%{release}
%description memstat
This package contains the memory statistics tool for debugging memory
leaks and such.
+%endif
%package montecarlo-eg
Summary: Event generator library for ROOT
@@ -2049,7 +2062,11 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
-Dlibcxx:BOOL=OFF \
-Dmathmore:BOOL=ON \
-Dmemory_termination:BOOL=OFF \
+%if %{memstat}
-Dmemstat:BOOL=ON \
+%else
+ -Dmemstat:BOOL=OFF \
+%endif
-Dminuit2:BOOL=ON \
-Dmlp:BOOL=ON \
-Dmonalisa:BOOL=OFF \
@@ -2728,7 +2745,9 @@ fi
%ldconfig_scriptlets splot
%ldconfig_scriptlets unuran
%ldconfig_scriptlets vecops
+%if %{memstat}
%ldconfig_scriptlets memstat
+%endif
%ldconfig_scriptlets montecarlo-eg
%ldconfig_scriptlets montecarlo-pythia8
%ldconfig_scriptlets montecarlo-vmc
@@ -3250,9 +3269,11 @@ fi
%{_libdir}/%{name}/libROOTVecOps.*
%{_libdir}/%{name}/libROOTVecOps_rdict.pcm
+%if %{memstat}
%files memstat -f includelist-misc-memstat
%{_libdir}/%{name}/libMemStat.*
%{_libdir}/%{name}/libMemStat_rdict.pcm
+%endif
%files montecarlo-eg -f includelist-montecarlo-eg
%{_libdir}/%{name}/libEG.*
@@ -3544,6 +3565,11 @@ fi
%endif
%changelog
+* Mon Jul 26 2021 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 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 <releng(a)fedoraproject.org> - 6.22.08-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
commit f5f5cab0a0ced5f17c9ee239fb5a81e952e8eced
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Fri Jul 23 11:32:11 2021 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/root.spec b/root.spec
index fffa16c..9b0bcdd 100644
--- a/root.spec
+++ b/root.spec
@@ -45,7 +45,7 @@
Name: root
Version: 6.22.08
%global libversion %(cut -d. -f 1-2 <<< %{version})
-Release: 9%{?dist}
+Release: 10%{?dist}
Summary: Numerical data analysis framework
License: LGPLv2+
@@ -3544,6 +3544,9 @@ fi
%endif
%changelog
+* Fri Jul 23 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 6.22.08-10
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
+
* Thu Jun 17 2021 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.22.08-9
- Backport fix for jsroot loading in jupyterlab
2 years, 9 months
Architecture specific change in rpms/root.git
by githook-noreply@fedoraproject.org
The package rpms/root.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/root.git/commit/?id=1fd9670b71e72....
Change:
+%ifarch s390x
Thanks.
Full change:
============
commit 1fd9670b71e7200f88fa9049d4cd4eed7019814f
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Sun Aug 22 19:10:24 2021 +0200
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
diff --git a/root-32bit-dataframe.patch b/root-32bit-dataframe.patch
index 310171f..f9ff85f 100644
--- a/root-32bit-dataframe.patch
+++ b/root-32bit-dataframe.patch
@@ -1,6 +1,6 @@
-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
+diff -ur root-6.24.02.orig/bindings/pyroot_legacy/ROOT.py root-6.24.02/bindings/pyroot_legacy/ROOT.py
+--- root-6.24.02.orig/bindings/pyroot_legacy/ROOT.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/bindings/pyroot_legacy/ROOT.py 2021-08-11 10:44:16.895804556 +0200
@@ -438,9 +438,7 @@
# This function is injected as method to the respective classes in Pythonize.cxx.
_root._RDataFrameAsNumpy = _RDataFrameAsNumpy
@@ -12,9 +12,9 @@ diff -ur root-6.22.00.orig/bindings/pyroot_legacy/ROOT.py root-6.22.00/bindings/
### 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
+diff -ur root-6.24.02.orig/build/unix/makepchinput.py root-6.24.02/build/unix/makepchinput.py
+--- root-6.24.02.orig/build/unix/makepchinput.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/build/unix/makepchinput.py 2021-08-11 10:44:16.926804638 +0200
@@ -252,9 +252,6 @@
"math/vdt",
"tmva/rmva"]
@@ -25,9 +25,9 @@ diff -ur root-6.22.00.orig/build/unix/makepchinput.py root-6.22.00/build/unix/ma
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
+diff -ur root-6.24.02.orig/tree/dataframe/test/dataframe_cache.cxx root-6.24.02/tree/dataframe/test/dataframe_cache.cxx
+--- root-6.24.02.orig/tree/dataframe/test/dataframe_cache.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/dataframe_cache.cxx 2021-08-11 10:44:16.927804641 +0200
@@ -224,8 +224,6 @@
}
@@ -46,9 +46,9 @@ diff -ur root-6.22.00.orig/tree/dataframe/test/dataframe_cache.cxx root-6.22.00/
// 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
+diff -ur root-6.24.02.orig/tree/dataframe/test/datasource_arrow.cxx root-6.24.02/tree/dataframe/test/datasource_arrow.cxx
+--- root-6.24.02.orig/tree/dataframe/test/datasource_arrow.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/datasource_arrow.cxx 2021-08-11 10:44:16.927804641 +0200
@@ -177,8 +177,6 @@
}
#endif
@@ -64,10 +64,10 @@ diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_arrow.cxx root-6.22.00
#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 @@
+diff -ur root-6.24.02.orig/tree/dataframe/test/datasource_csv.cxx root-6.24.02/tree/dataframe/test/datasource_csv.cxx
+--- root-6.24.02.orig/tree/dataframe/test/datasource_csv.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/datasource_csv.cxx 2021-08-11 10:44:16.927804641 +0200
+@@ -207,8 +207,6 @@
}
#endif
@@ -76,15 +76,15 @@ diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_csv.cxx root-6.22.00/t
TEST(RCsvDS, FromARDF)
{
std::unique_ptr<RDataSource> tds(new RCsvDS(fileName0));
-@@ -292,5 +290,3 @@
+@@ -321,5 +319,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
+diff -ur root-6.24.02.orig/tree/dataframe/test/datasource_root.cxx root-6.24.02/tree/dataframe/test/datasource_root.cxx
+--- root-6.24.02.orig/tree/dataframe/test/datasource_root.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/datasource_root.cxx 2021-08-11 10:44:16.928804644 +0200
@@ -117,8 +117,6 @@
}
#endif
@@ -100,11 +100,11 @@ diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_root.cxx root-6.22.00/
#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);
+diff -ur root-6.24.02.orig/tree/dataframe/test/datasource_trivial.cxx root-6.24.02/tree/dataframe/test/datasource_trivial.cxx
+--- root-6.24.02.orig/tree/dataframe/test/datasource_trivial.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/datasource_trivial.cxx 2021-08-11 10:44:16.928804644 +0200
+@@ -141,8 +141,6 @@
+ EXPECT_EQ(df.Range(10).Count().GetValue(), 10);
}
-#ifdef R__B64
@@ -112,17 +112,17 @@ diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_trivial.cxx root-6.22.
TEST(RTrivialDS, FromARDFWithJitting)
{
std::unique_ptr<RDataSource> tds(new RTrivialDS(32));
-@@ -236,5 +234,3 @@
+@@ -245,5 +243,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)
+diff -ur root-6.24.02.orig/tutorials/CMakeLists.txt root-6.24.02/tutorials/CMakeLists.txt
+--- root-6.24.02.orig/tutorials/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/CMakeLists.txt 2021-08-11 10:44:16.974804766 +0200
+@@ -279,10 +279,6 @@
+ list(APPEND root7_veto ${v7_veto_files})
endif()
-if( CMAKE_SIZEOF_VOID_P EQUAL 4 )
@@ -132,7 +132,7 @@ diff -ur root-6.22.00.orig/tutorials/CMakeLists.txt root-6.22.00/tutorials/CMake
#---These ones are disabled !!! ------------------------------------
set(extra_veto
legacy/benchmarks.C
-@@ -313,7 +309,6 @@
+@@ -335,7 +331,6 @@
${classic_veto}
${pythia_veto}
${root7_veto}
@@ -140,11 +140,3 @@ diff -ur root-6.22.00.orig/tutorials/CMakeLists.txt root-6.22.00/tutorials/CMake
${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-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<std::vector<char>> readMem(char *Dst, JITTargetAddress Src,
-- uint64_t Size) {
-+ Expected<std::vector<uint8_t>> 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-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<StoreSDNode>(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<StoreSDNode>(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-add-RCutFlowReport-to-LinkDef-file.patch b/root-add-RCutFlowReport-to-LinkDef-file.patch
new file mode 100644
index 0000000..9ec99a1
--- /dev/null
+++ b/root-add-RCutFlowReport-to-LinkDef-file.patch
@@ -0,0 +1,26 @@
+From 2e3fabbe5423f50ee98ce848d8e85ec7a2a2106d Mon Sep 17 00:00:00 2001
+From: Enrico Guiraud <enrico.guiraud(a)cern.ch>
+Date: Thu, 15 Jul 2021 12:17:56 +0200
+Subject: [PATCH] [DF] Add RCutFlowReport to LinkDef
+
+This should fix some sporadic failures in cling's symbol resolution
+in builds without runtime cxx modules.
+---
+ tree/dataframe/inc/LinkDef.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tree/dataframe/inc/LinkDef.h b/tree/dataframe/inc/LinkDef.h
+index 8103468082..684fc3b6f1 100644
+--- a/tree/dataframe/inc/LinkDef.h
++++ b/tree/dataframe/inc/LinkDef.h
+@@ -58,6 +58,7 @@
+ #pragma link C++ class ROOT::Detail::RDF::RMergeableValue<TProfile>+;
+ #pragma link C++ class ROOT::Detail::RDF::RMergeableValue<TProfile2D>+;
+ #pragma link C++ class TNotifyLink<ROOT::Internal::RDF::RDataBlockFlag>;
++#pragma link C++ class ROOT::RDF::RCutFlowReport;
+
+ #endif
+
+--
+2.31.1
+
diff --git a/root-add-RDisplay-to-LinkDef-file.patch b/root-add-RDisplay-to-LinkDef-file.patch
new file mode 100644
index 0000000..e86880c
--- /dev/null
+++ b/root-add-RDisplay-to-LinkDef-file.patch
@@ -0,0 +1,25 @@
+From d9e15857c189edcfa75af5c6244ff68fac74f06f Mon Sep 17 00:00:00 2001
+From: Enrico Guiraud <enrico.guiraud(a)cern.ch>
+Date: Thu, 10 Jun 2021 10:00:32 +0200
+Subject: [PATCH] [DF] Add RDisplay to LinkDef
+
+To help cling autoloading.
+---
+ tree/dataframe/inc/LinkDef.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tree/dataframe/inc/LinkDef.h b/tree/dataframe/inc/LinkDef.h
+index 3879ac8d5d..8103468082 100644
+--- a/tree/dataframe/inc/LinkDef.h
++++ b/tree/dataframe/inc/LinkDef.h
+@@ -20,6 +20,7 @@
+ #pragma link C++ namespace ROOT::Internal::RDF::GraphDrawing;
+ #pragma link C++ namespace ROOT::Detail::RDF;
+ #pragma link C++ namespace ROOT::RDF;
++#pragma link C++ class ROOT::RDF::RDisplay-;
+ #pragma link C++ class ROOT::Internal::RDF::RActionBase-;
+ #pragma link C++ class ROOT::Internal::RDF::RJittedAction-;
+ #pragma link C++ class ROOT::Detail::RDF::RFilterBase-;
+--
+2.31.1
+
diff --git a/root-add-TTreeProcessorMP-to-LinkDef-file.patch b/root-add-TTreeProcessorMP-to-LinkDef-file.patch
new file mode 100644
index 0000000..c8a0b1f
--- /dev/null
+++ b/root-add-TTreeProcessorMP-to-LinkDef-file.patch
@@ -0,0 +1,36 @@
+From 56d52ccf2fad2736e49d3cfc4c9df22492e1dbfc Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Tue, 8 Jun 2021 02:46:18 +0200
+Subject: [PATCH] Add TTreeProcessorMP to LinkDef
+
+This fixes test failure:
+
+ 745/1157 Test #729: tutorial-multicore-mp102_readNtuplesFillHistosAndFit ................***Failed 1.55 sec
+Processing /builddir/build/BUILD/root-6.25.01/tutorials/multicore/mp102_readNtuplesFillHistosAndFit.C...
+IncrementalExecutor::executeFunction: symbol '_ZN4ROOT16TTreeProcessorMPC1Ej' unresolved while linking [cling interface function]!
+You are probably missing the definition of ROOT::TTreeProcessorMP::TTreeProcessorMP(unsigned int)
+Maybe you need to load the corresponding shared library?
+IncrementalExecutor::executeFunction: symbol '_ZN4ROOT16TTreeProcessorMP11ReplyToIdleEP7TSocket' unresolved while linking [cling interface function]!
+You are probably missing the definition of ROOT::TTreeProcessorMP::ReplyToIdle(TSocket*)
+Maybe you need to load the corresponding shared library?
+CMake Error at /builddir/build/BUILD/root-6.25.01/x86_64-redhat-linux-gnu/RootTestDriver.cmake:237 (message):
+ error code: 1
+---
+ tree/treeplayer/inc/LinkDef.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tree/treeplayer/inc/LinkDef.h b/tree/treeplayer/inc/LinkDef.h
+index e7fdd7c9bf..d195536a40 100644
+--- a/tree/treeplayer/inc/LinkDef.h
++++ b/tree/treeplayer/inc/LinkDef.h
+@@ -30,6 +30,7 @@
+ #pragma link C++ class TSimpleAnalysis+;
+ #ifndef _MSC_VER
+ #pragma link C++ class TMPWorkerTree+;
++#pragma link C++ class ROOT::TTreeProcessorMP-;
+ #endif
+ #ifdef R__USE_IMT
+ #pragma link C++ class ROOT::TTreeProcessorMT-;
+--
+2.31.1
+
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 <mattias.ellert(a)physics.uu.se>
-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-<feature>] [--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-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 <mattias.ellert(a)physics.uu.se>
-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-doxygen-crash.patch b/root-doxygen-crash.patch
index b27f5ce..d69d7e7 100644
--- a/root-doxygen-crash.patch
+++ b/root-doxygen-crash.patch
@@ -1,6 +1,204 @@
-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
+diff -ur root-6.24.02.orig/tutorials/dataframe/df002_dataModel.C root-6.24.02/tutorials/dataframe/df002_dataModel.C
+--- root-6.24.02.orig/tutorials/dataframe/df002_dataModel.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df002_dataModel.C 2021-08-11 03:55:11.021149115 +0200
+@@ -7,7 +7,6 @@
+ /// complex than flat ntuples with RDataFrame
+ ///
+ /// \macro_code
+-/// \macro_image
+ ///
+ /// \date December 2016
+ /// \author Danilo Piparo (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df002_dataModel.py root-6.24.02/tutorials/dataframe/df002_dataModel.py
+--- root-6.24.02.orig/tutorials/dataframe/df002_dataModel.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df002_dataModel.py 2021-08-11 03:55:11.084149272 +0200
+@@ -7,7 +7,6 @@
+ ## complex than flat ntuples with RDataFrame
+ ##
+ ## \macro_code
+-## \macro_image
+ ##
+ ## \date May 2017
+ ## \author Danilo Piparo (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df003_profiles.C root-6.24.02/tutorials/dataframe/df003_profiles.C
+--- root-6.24.02.orig/tutorials/dataframe/df003_profiles.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df003_profiles.C 2021-08-11 03:55:11.148149432 +0200
+@@ -7,7 +7,6 @@
+ /// RDataFrame. See the documentation of TProfile and TProfile2D to better
+ /// understand the analogy of this code with the example one.
+ ///
+-/// \macro_image
+ /// \macro_code
+ ///
+ /// \date February 2017
+diff -ur root-6.24.02.orig/tutorials/dataframe/df003_profiles.py root-6.24.02/tutorials/dataframe/df003_profiles.py
+--- root-6.24.02.orig/tutorials/dataframe/df003_profiles.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df003_profiles.py 2021-08-11 03:55:11.211149590 +0200
+@@ -8,7 +8,6 @@
+ ## understand the analogy of this code with the example one.
+ ##
+ ## \macro_code
+-## \macro_image
+ ##
+ ## \date February 2017
+ ## \author Danilo Piparo (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df005_fillAnyObject.C root-6.24.02/tutorials/dataframe/df005_fillAnyObject.C
+--- root-6.24.02.orig/tutorials/dataframe/df005_fillAnyObject.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df005_fillAnyObject.C 2021-08-11 03:55:11.275149750 +0200
+@@ -7,7 +7,6 @@
+ /// `Fill` method.
+ ///
+ /// \macro_code
+-/// \macro_image
+ ///
+ /// \date March 2017
+ /// \author Danilo Piparo (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df007_snapshot.C root-6.24.02/tutorials/dataframe/df007_snapshot.C
+--- root-6.24.02.orig/tutorials/dataframe/df007_snapshot.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df007_snapshot.C 2021-08-11 03:55:11.338149907 +0200
+@@ -5,7 +5,6 @@
+ ///
+ /// This tutorial shows how to write out datasets in ROOT format using the RDataFrame
+ ///
+-/// \macro_image
+ /// \macro_code
+ ///
+ /// \date April 2017
+diff -ur root-6.24.02.orig/tutorials/dataframe/df007_snapshot.py root-6.24.02/tutorials/dataframe/df007_snapshot.py
+--- root-6.24.02.orig/tutorials/dataframe/df007_snapshot.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df007_snapshot.py 2021-08-11 03:55:11.402150067 +0200
+@@ -5,7 +5,6 @@
+ ##
+ ## This tutorial shows how to write out datasets in ROOT format using the RDataFrame
+ ##
+-## \macro_image
+ ## \macro_code
+ ##
+ ## \date April 2017
+diff -ur root-6.24.02.orig/tutorials/dataframe/df014_CSVDataSource.C root-6.24.02/tutorials/dataframe/df014_CSVDataSource.C
+--- root-6.24.02.orig/tutorials/dataframe/df014_CSVDataSource.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df014_CSVDataSource.C 2021-08-11 03:55:11.465150225 +0200
+@@ -14,7 +14,6 @@
+ /// DOI: [10.7483/OPENDATA.CMS.CB8H.MFFA](http://opendata.cern.ch/record/700).
+ ///
+ /// \macro_code
+-/// \macro_image
+ ///
+ /// \date October 2017
+ /// \author Enric Tejedor (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df014_CSVDataSource.py root-6.24.02/tutorials/dataframe/df014_CSVDataSource.py
+--- root-6.24.02.orig/tutorials/dataframe/df014_CSVDataSource.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df014_CSVDataSource.py 2021-08-11 03:55:11.529150385 +0200
+@@ -14,7 +14,6 @@
+ ## DOI: [10.7483/OPENDATA.CMS.CB8H.MFFA](http://opendata.cern.ch/record/700).
+ ##
+ ## \macro_code
+-## \macro_image
+ ##
+ ## \date October 2017
+ ## \author Enric Tejedor (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df015_LazyDataSource.C root-6.24.02/tutorials/dataframe/df015_LazyDataSource.C
+--- root-6.24.02.orig/tutorials/dataframe/df015_LazyDataSource.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df015_LazyDataSource.C 2021-08-11 03:55:11.593150545 +0200
+@@ -14,7 +14,6 @@
+ /// From the ROOT website: https://root.cern.ch/files/tutorials/tdf014_CsvDataSource_MuRun2010B.csv
+ ///
+ /// \macro_code
+-/// \macro_image
+ ///
+ /// \date February 2018
+ /// \author Danilo Piparo (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df016_vecOps.C root-6.24.02/tutorials/dataframe/df016_vecOps.C
+--- root-6.24.02.orig/tutorials/dataframe/df016_vecOps.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df016_vecOps.C 2021-08-11 03:55:11.656150702 +0200
+@@ -7,7 +7,6 @@
+ /// stored in datasets, a situation very common in HEP data analysis.
+ ///
+ /// \macro_code
+-/// \macro_image
+ ///
+ /// \date February 2018
+ /// \author Danilo Piparo (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df016_vecOps.py root-6.24.02/tutorials/dataframe/df016_vecOps.py
+--- root-6.24.02.orig/tutorials/dataframe/df016_vecOps.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df016_vecOps.py 2021-08-11 03:55:11.720150862 +0200
+@@ -6,7 +6,6 @@
+ ## This tutorial shows the potential of the VecOps approach for treating collections
+ ## stored in datasets, a situation very common in HEP data analysis.
+ ##
+-## \macro_image
+ ## \macro_code
+ ##
+ ## \date February 2018
+diff -ur root-6.24.02.orig/tutorials/dataframe/df017_vecOpsHEP.C root-6.24.02/tutorials/dataframe/df017_vecOpsHEP.C
+--- root-6.24.02.orig/tutorials/dataframe/df017_vecOpsHEP.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df017_vecOpsHEP.C 2021-08-11 03:55:11.783151020 +0200
+@@ -11,7 +11,6 @@
+ /// greater than 100.
+ ///
+ /// \macro_code
+-/// \macro_image
+ ///
+ /// \date March 2018
+ /// \authors Danilo Piparo (CERN), Andre Vieira Silva
+diff -ur root-6.24.02.orig/tutorials/dataframe/df017_vecOpsHEP.py root-6.24.02/tutorials/dataframe/df017_vecOpsHEP.py
+--- root-6.24.02.orig/tutorials/dataframe/df017_vecOpsHEP.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df017_vecOpsHEP.py 2021-08-11 03:55:11.846151177 +0200
+@@ -7,7 +7,6 @@
+ ## model typically adopted in HEP for analysis.
+ ##
+ ## \macro_code
+-## \macro_image
+ ##
+ ## \date March 2018
+ ## \authors Danilo Piparo (CERN), Andre Vieira Silva
+diff -ur root-6.24.02.orig/tutorials/dataframe/df019_Cache.C root-6.24.02/tutorials/dataframe/df019_Cache.C
+--- root-6.24.02.orig/tutorials/dataframe/df019_Cache.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df019_Cache.C 2021-08-11 03:55:11.910151337 +0200
+@@ -18,7 +18,6 @@
+ /// only when the event loop is triggered on it.
+ ///
+ /// \macro_code
+-/// \macro_image
+ ///
+ /// \date June 2018
+ /// \author Danilo Piparo (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df019_Cache.py root-6.24.02/tutorials/dataframe/df019_Cache.py
+--- root-6.24.02.orig/tutorials/dataframe/df019_Cache.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df019_Cache.py 2021-08-11 03:55:11.973151495 +0200
+@@ -18,7 +18,6 @@
+ ## only when the event loop is triggered on it.
+ ##
+ ## \macro_code
+-## \macro_image
+ ##
+ ## \date June 2018
+ ## \author Danilo Piparo (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df021_createTGraph.C root-6.24.02/tutorials/dataframe/df021_createTGraph.C
+--- root-6.24.02.orig/tutorials/dataframe/df021_createTGraph.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df021_createTGraph.C 2021-08-11 03:55:12.037151655 +0200
+@@ -4,7 +4,6 @@
+ /// Fill a TGraph using RDataFrame.
+ ///
+ /// \macro_code
+-/// \macro_image
+ ///
+ /// \date July 2018
+ /// \authors Enrico Guiraud, Danilo Piparo (CERN), Massimo Tumolo (Politecnico di Torino)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df021_createTGraph.py root-6.24.02/tutorials/dataframe/df021_createTGraph.py
+--- root-6.24.02.orig/tutorials/dataframe/df021_createTGraph.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df021_createTGraph.py 2021-08-11 03:55:12.100151813 +0200
+@@ -4,7 +4,6 @@
+ ## Fill a TGraph using RDataFrame.
+ ##
+ ## \macro_code
+-## \macro_image
+ ##
+ ## \date July 2018
+ ## \authors Enrico Guiraud, Danilo Piparo (CERN), Massimo Tumolo (Politecnico di Torino)
+diff -ur root-6.24.02.orig/tutorials/tmva/tmva003_RReader.C root-6.24.02/tutorials/tmva/tmva003_RReader.C
+--- root-6.24.02.orig/tutorials/tmva/tmva003_RReader.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/tmva/tmva003_RReader.C 2021-08-11 04:16:33.833359421 +0200
@@ -5,7 +5,6 @@
/// TMVA XML files.
///
@@ -9,9 +207,9 @@ diff -ur root-6.22.00.orig/tutorials/tmva/tmva003_RReader.C root-6.22.00/tutoria
///
/// \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
+diff -ur root-6.24.02.orig/tutorials/tmva/tmva103_Application.C root-6.24.02/tutorials/tmva/tmva103_Application.C
+--- root-6.24.02.orig/tutorials/tmva/tmva103_Application.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/tmva/tmva103_Application.C 2021-08-11 21:56:49.387390340 +0200
@@ -6,7 +6,6 @@
/// event-by-event inference, batch inference and pipelines with RDataFrame.
///
@@ -20,9 +218,42 @@ diff -ur root-6.22.00.orig/tutorials/tmva/tmva103_Application.C root-6.22.00/tut
///
/// \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
+diff -ur root-6.24.02.orig/tutorials/tmva/TMVA_CNN_Classification.C root-6.24.02/tutorials/tmva/TMVA_CNN_Classification.C
+--- root-6.24.02.orig/tutorials/tmva/TMVA_CNN_Classification.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/tmva/TMVA_CNN_Classification.C 2021-08-10 15:21:03.306171069 +0200
+@@ -6,7 +6,6 @@
+ /// This is an example of using a CNN in TMVA. We do classification using a toy image data set
+ /// that is generated when running the example macro
+ ///
+-/// \macro_image
+ /// \macro_output
+ /// \macro_code
+ ///
+diff -ur root-6.24.02.orig/tutorials/tmva/TMVA_Higgs_Classification.C root-6.24.02/tutorials/tmva/TMVA_Higgs_Classification.C
+--- root-6.24.02.orig/tutorials/tmva/TMVA_Higgs_Classification.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/tmva/TMVA_Higgs_Classification.C 2021-08-10 15:21:33.974251559 +0200
+@@ -7,7 +7,6 @@
+ /// used in this paper: Baldi, P., P. Sadowski, and D. Whiteson. “Searching for Exotic Particles in High-energy Physics
+ /// with Deep Learning.” Nature Communications 5 (July 2, 2014).
+ ///
+-/// \macro_image
+ /// \macro_output
+ /// \macro_code
+ ///
+diff -ur root-6.24.02.orig/tutorials/tmva/TMVA_RNN_Classification.C root-6.24.02/tutorials/tmva/TMVA_RNN_Classification.C
+--- root-6.24.02.orig/tutorials/tmva/TMVA_RNN_Classification.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/tmva/TMVA_RNN_Classification.C 2021-08-10 15:21:15.657203486 +0200
+@@ -6,7 +6,6 @@
+ /// This is an example of using a RNN in TMVA. We do classification using a toy time dependent data set
+ /// that is generated when running this example macro
+ ///
+-/// \macro_image
+ /// \macro_output
+ /// \macro_code
+ ///
+diff -ur root-6.24.02.orig/tutorials/v7/line.cxx root-6.24.02/tutorials/v7/line.cxx
+--- root-6.24.02.orig/tutorials/v7/line.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/v7/line.cxx 2021-08-16 14:25:32.528867781 +0200
@@ -6,7 +6,6 @@
/// "normal" coordinates' system and changing the line color linearly from black
/// to red.
@@ -31,3 +262,14 @@ diff -ur root-6.22.00.orig/tutorials/v7/line.cxx root-6.22.00/tutorials/v7/line.
/// \macro_code
///
/// \date 2018-03-18
+diff -ur root-6.24.02.orig/tutorials/v7/ntuple/ntpl005_introspection.C root-6.24.02/tutorials/v7/ntuple/ntpl005_introspection.C
+--- root-6.24.02.orig/tutorials/v7/ntuple/ntpl005_introspection.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/v7/ntuple/ntpl005_introspection.C 2021-08-10 15:22:06.504336763 +0200
+@@ -4,7 +4,6 @@
+ /// Write and read an RNTuple from a user-defined class. Adapted from tv3.C
+ /// Illustrates various RNTuple introspection methods.
+ ///
+-/// \macro_image
+ /// \macro_code
+ ///
+ /// \date April 2020
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 <mattias.ellert(a)physics.uu.se>
-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 </b>
-- end of comment block while expecting command </em>
-- end of comment block while expecting command </pre>
-- end of comment block while expecting command </s>
-- end of comment block while expecting command </sup>
-- end of comment block while expecting command </tt>
-- end of comment block while expecting command </u>
-- end of list marker found without any preceding list items
-- found </em> tag without matching <em>
-- found </li> tag without matching <li>
-- found </pre> tag without matching <pre>
-- found </sub> tag while expecting </sup>
-- found </sup> tag without matching <sup>
-- found </tt> tag without matching <tt>
-- found </ul> tag without matching <ul>
-- illegal </br> tag found
-- reached end of file while inside a 'code' block!
-- reached end of file while still inside a (nested) comment.
-- unexpected end of comment while inside <a href=...> tag
-- unexpected end of comment while inside <ul> block
-- unexpected html tag <blockquote> found within <h1> context
-- unexpected tag </h2> found
-- unexpected tag </h3> found
-- unsupported xml/html tag <it> found
-- unsupported xml/html tag </it> found
----
- bindings/r/inc/TRDataFrame.h | 2 +-
- core/base/src/TEnv.cxx | 7 +-
- core/cont/src/TBits.cxx | 2 +-
- core/dictgen/res/DictSelectionReader.h | 140 +++++++++---------
- core/foundation/inc/ROOT/TypeTraits.hxx | 2 +-
- core/meta/src/TClass.cxx | 6 +-
- core/metacling/src/TCling.cxx | 8 +-
- graf2d/x11/src/TGX11.cxx | 6 +-
- gui/guihtml/src/TGHtmlSizer.cxx | 4 +-
- hist/hist/src/TSVDUnfold.cxx | 8 +-
- hist/histpainter/src/THistPainter.cxx | 2 +-
- hist/histv7/speed/histspeedtest.cxx | 1 -
- hist/unfold/inc/TUnfold.h | 8 +-
- html/src/TDocDirective.cxx | 2 +-
- math/mathcore/inc/Math/ProbFuncMathCore.h | 8 +-
- math/mathcore/inc/Math/QuantFuncMathCore.h | 4 +-
- math/mathcore/src/TMath.cxx | 2 +-
- math/mathmore/inc/Math/GSLMultiRootFinder.h | 16 +-
- math/matrix/doc/Matrix.md | 2 +-
- math/minuit/src/TMinuit.cxx | 4 +-
- montecarlo/eg/src/TDatabasePDG.cxx | 2 +-
- montecarlo/vmc/README.md | 2 +-
- net/http/civetweb/LICENSE.md | 4 -
- proof/proof/src/TProofMgr.cxx | 50 ++++---
- proof/proof/src/TProofServ.cxx | 10 +-
- roofit/histfactory/doc/index.md | 11 +-
- .../src/MakeModelAndMeasurementsFast.cxx | 11 +-
- roofit/roofitcore/inc/RooAbsCategory.h | 2 +-
- roofit/roofitcore/src/RooSimPdfBuilder.cxx | 4 +-
- tmva/tmva/src/Factory.cxx | 6 +-
- tmva/tmva/src/Reader.cxx | 4 +-
- tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx | 2 +-
- tutorials/net/udpserver.c | 2 +-
- tutorials/tmva/TMVA_CNN_Classification.C | 2 +-
- 34 files changed, 168 insertions(+), 178 deletions(-)
-
-diff --git a/bindings/r/inc/TRDataFrame.h b/bindings/r/inc/TRDataFrame.h
-index b7bb4ed89d..dbf48e1383 100644
---- a/bindings/r/inc/TRDataFrame.h
-+++ b/bindings/r/inc/TRDataFrame.h
-@@ -136,7 +136,7 @@ namespace ROOT {
- 2 |1
- \endcode
-
-- </h2>Working with colunms between dataframes</h2><br>
-+ <h2>Working with colunms between dataframes</h2><br>
- \code{.cpp}
- df2["v3"]<<df1["strings"];
-
-diff --git a/core/base/src/TEnv.cxx b/core/base/src/TEnv.cxx
-index 39c07caf21..ab697df7b7 100644
---- a/core/base/src/TEnv.cxx
-+++ b/core/base/src/TEnv.cxx
-@@ -388,10 +388,9 @@ TString TEnvRec::ExpandValue(const char *value)
- ClassImp(TEnv);
-
- ////////////////////////////////////////////////////////////////////////////////
--/// Create a resource table and read the (possibly) three resource files, i.e
--/// `$ROOTSYS/etc/system``<name>` (or `ROOTETCDIR/system``<name>`),
--/// `$HOME/``<name>` and
--/// `./``<name>`.
-+/// Create a resource table and read the (possibly) three resource files,
-+/// i.e.\ `$ROOTSYS/etc/system<name>` (or `ROOTETCDIR/system<name>`),
-+/// `$HOME/<name>` and `$PWD/<name>`.
- /// ROOT always reads ".rootrc" (in TROOT::InitSystem()). You can
- /// read additional user defined resource files by creating additional TEnv
- /// objects. By setting the shell variable ROOTENV_NO_HOME=1 the reading of
-diff --git a/core/cont/src/TBits.cxx b/core/cont/src/TBits.cxx
-index 155bfd4b4c..95167dd5b1 100644
---- a/core/cont/src/TBits.cxx
-+++ b/core/cont/src/TBits.cxx
-@@ -10,7 +10,7 @@ Container of bits.
- This class provides a simple container of bits.
- Each bit can be set and tested via the functions SetBitNumber and
- TestBitNumber.
-- .
-+
- The default value of all bits is kFALSE.
- The size of the container is automatically extended when a bit
- number is either set or tested. To reduce the memory size of the
-diff --git a/core/dictgen/res/DictSelectionReader.h b/core/dictgen/res/DictSelectionReader.h
-index 52921d6237..b19135badd 100644
---- a/core/dictgen/res/DictSelectionReader.h
-+++ b/core/dictgen/res/DictSelectionReader.h
-@@ -60,34 +60,32 @@ namespace clang {
- * By default, the Name of the selection class is then
- * @c ROOT::Meta::Selection::C. If you have such a class, it will be found
- * automatically. If @c C is in a namespace, @c NS::C, then
-- * the selection class should be in the same namespace: @c
--ROOT::Selection::NS::C.
-+ * the selection class should be in the same namespace:
-+ * @c ROOT::Meta::Selection::NS::C.
-+ *
- * Examples:
- *
--
--**/
--
--/**
- * The DictSelectionReader is used to create selection rules starting from
- * C++ the constructs of the @c ROOT::Meta::Selection namespace. All rules
- * are matching by name.
- * A brief description of the operations that lead to class selection:
-- * 1. If a class declaration is present in the selection namespace, a class
-- * with the same name is selected outside the selection namespace.
-- * 2. If a template class declaration and a template instantiation is present
-- * in the selection namespace, all the instances of the template are
-- * selected outside the namespace.
-+ * 1. If a class declaration is present in the selection namespace, a class
-+ * with the same name is selected outside the selection namespace.
-+ * 2. If a template class declaration and a template instantiation is present
-+ * in the selection namespace, all the instances of the template are
-+ * selected outside the namespace.
-+ *
- * For example:
- * @code
- * [...]
- * class classVanilla{};
- * template <class A> class classTemplateVanilla {};
- * classTemplateVanilla<char> t0;
-- * namespace ROOT{
-+ * namespace ROOT {
- * namespace Meta {
-- * namespace Selection{
-- * class classVanilla{};
-- * template <typename A> class classTemplateVanilla{};
-+ * namespace Selection {
-+ * class classVanilla {};
-+ * template <typename A> class classTemplateVanilla {};
- * classTemplateVanilla<char> st0;
- * }
- * }
-@@ -98,14 +96,15 @@ ROOT::Selection::NS::C.
- *
- * A brief description of the properties that can be assigned to classes
- * with the @c ROOT::Meta::Selection::ClassAttributes class.
-- * 1. @c kNonSplittable : Makes the class non splittable
-+ * 1. @c kNonSplittable : Makes the class non splittable
-+ *
- * The class properties can be assigned via a traits mechanism. For example:
- * @code
- * [...]
-- * class classWithAttributes{};
-- * namespace ROOT{
-+ * class classWithAttributes {};
-+ * namespace ROOT {
- * namespace Meta {
-- * namespace Selection{
-+ * namespace Selection {
- * class classWithAttributes : ClassAttributes <kNonSplittable> {};
- * }
- * }
-@@ -116,9 +115,9 @@ ROOT::Selection::NS::C.
- * properties can be assigned to a single class with this syntax:
- * @code
- * [...]
-- * namespace ROOT{
-+ * namespace ROOT {
- * namespace Meta {
-- * namespace Selection{
-+ * namespace Selection {
- * class classWithAttributes :
- * ClassAttributes <kProperty1 + kProperty2 + ... + kPropertyN> {};
- * }
-@@ -126,7 +125,6 @@ ROOT::Selection::NS::C.
- * }
- * @endcode
- *
-- *
- * The @c ROOT::Meta::Selection syntax allows to alter the number of template
- * parameters of a certain template class within the ROOT type system, TClass.
- * Technically it allows to alter the way in which the "normalized name" (in
-@@ -137,23 +135,21 @@ ROOT::Selection::NS::C.
- * a long explaination in this case:
- * @code
- * [...]
-- * template <class T, class U=int, int V=3> class A{...};
-- * template <class T, class Alloc= myAllocator<T> > class myVector{...};
-+ * template <class T, class U = int, int V = 3> class A {...};
-+ * template <class T, class Alloc = myAllocator<T> > class myVector {...};
- * A<char> a1;
-- * A<char,float> a2;
-+ * A<char, float> a2;
- * myVector<float> v1;
- * myVector<A<char>> v2;
- *
-- * namespace ROOT{
-+ * namespace ROOT {
- * namespace Meta {
-- * namespace Selection{
-- * template <class T, class U=int, int V=3> class A
-- * :KeepFirstTemplateArguments<1>{};
-- *
-- * A<double> ;
-- * template <class T, class Alloc= myAllocator<T> > class myVector
-- * :KeepFirstTemplateArguments<1>{};
-- *
-+ * namespace Selection {
-+ * template <class T, class U = int, int V = 3> class A
-+ * : KeepFirstTemplateArguments<1> {};
-+ * A<double> a;
-+ * template <class T, class Alloc = myAllocator<T> > class myVector
-+ * : KeepFirstTemplateArguments<1> {};
- * myVector<double> vd;
- * }
- * }
-@@ -165,53 +161,55 @@ ROOT::Selection::NS::C.
- * will be kept.
- * In absence of any @c KeepFirstTemplateArguments trait, the normalization
- * would be:
-- * @c A<char> &rarr @c A<char,float,3>
-- * @c A<char,float> &rarr @c A<char,int,3>
-- * @c myVector<float> &rarr @c myVector<A<char,int,3>,myAllocator<A<char,int,3>>>
-- * @c myVector<A<char>> &rarr @c myVector<float,myAllocator<float>>
-+ * - @c A<char> → @c A<char,float,3>
-+ * - @c A<char,float> → @c A<char,int,3>
-+ * - @c myVector<float> → @c myVector<A<char,int,3>,myAllocator<A<char,int,3>>>
-+ * - @c myVector<A<char>> → @c myVector<float,myAllocator<float>>
- *
- * Now, deciding to keep just one argument (@c KeepFirstTemplateArguments<1>):
-- * @c A<char> &rarr @c A<char,float>
-- * @c A<char,float> &rarr @c A<char>
-- * @c myVector<float> &rarr @c myVector<A<char>,myAllocator<A<char>>>
-- * @c myVector<A<char>> &rarr @c myVector<float,myAllocator<float>>
-+ * - @c A<char> → @c A<char,float>
-+ * - @c A<char,float> → @c A<char>
-+ * - @c myVector<float> → @c myVector<A<char>,myAllocator<A<char>>>
-+ * - @c myVector<A<char>> → @c myVector<float,myAllocator<float>>
- *
- * And deciding to keep two arguments (@c KeepFirstTemplateArguments<2>):
-- * @c A<char> &rarr @c A<char,float>
-- * @c A<char,float> &rarr @c A<char,int>
-- * @c myVector<float> &rarr @c myVector<A<char,int>,myAllocator<A<char,int>>>
-- * @c myVector<A<char>> &rarr @c myVector<float,myAllocator<float>>
-+ * - @c A<char> → @c A<char,float>
-+ * - @c A<char,float> → @c A<char,int>
-+ * - @c myVector<float> → @c myVector<A<char,int>,myAllocator<A<char,int>>>
-+ * - @c myVector<A<char>> → @c myVector<float,myAllocator<float>>
- *
- * A brief description of the properties that can be assigned to data members
- * with the @c ROOT::Meta::Selection MemberAttributes class:
-- * 1. @c kTransient : the data member is transient, not persistified by the
-- * ROOT I/O.
-- * 2. @c kAutoSelected : the type of the data member is selected without the
-- * need of specifying its class explicitely.
-+ * 1. @c kTransient : the data member is transient, not persistified by the
-+ * ROOT I/O.
-+ * 2. @c kAutoSelected : the type of the data member is selected without the
-+ * need of specifying its class explicitely.
-+ *
- * For example:
- * @code
- * [...]
-- * class classTransientMember{
-+ * class classTransientMember {
- * private:
- * int transientMember;
- * };
-- * class classAutoselected{};
-- * class classTestAutoselect{
-+ * class classAutoselected {};
-+ * class classTestAutoselect {
- * private:
- * classAutoselected autoselected;
- * };
- *
-- * namespace ROOT{
-+ * namespace ROOT {
- * namespace Meta {
-- * namespace Selection{
-- * class classTestAutoselect{
-+ * namespace Selection {
-+ * class classTestAutoselect {
- * MemberAttributes<kAutoSelected> autoselected;
- * };
--
-- class classTransientMember{
-- MemberAttributes<kTransient> transientMember;
-- };
-- *
-+ * class classTransientMember {
-+ * MemberAttributes<kTransient> transientMember;
-+ * };
-+ * }
-+ * }
-+ * }
- * @endcode
- * would lead to the creation of selection rules for @c classTransientMember
- * specifying that @c transientMember is transient, @c classTestAutoselect and
-@@ -229,10 +227,10 @@ ROOT::Selection::NS::C.
- * template< class T, class BASE >
- * class MyDataVector : KeepFirstTemplateArguments< 1 >, SelectNoInstance {
- * MemberAttributes< kTransient + kAutoSelected > m_isMostDerived;
-- * MemberAttributes< kNonSplittable+ kAutoSelected > m_isNonSplit;
-- * };
-+ * MemberAttributes< kNonSplittable + kAutoSelected > m_isNonSplit;
-+ * };
- * [...]
-- *
-+ * @endcode
- **/
- namespace ROOT {
- namespace Internal {
-@@ -265,12 +263,9 @@ private:
- inline bool
- InSelectionNamespace(const clang::RecordDecl &,
- const std::string &str =
-- ""); ///< Check if in the ROOT::Selection namespace
-+ ""); ///< Check if in the ROOT::Meta::Selection namespace
- inline bool FirstPass(const clang::RecordDecl &); ///< First pass on the AST
-- inline bool SecondPass(const clang::RecordDecl &); ///< Second pass on the
-- ///AST, using the
-- ///information of the first
-- ///one
-+ inline bool SecondPass(const clang::RecordDecl &); ///< Second pass on the AST, using the information of the first one
- inline void
- ManageFields(const clang::RecordDecl &,
- const std::string &,
-@@ -285,8 +280,7 @@ private:
- inline const clang::TemplateArgumentList *GetTmplArgList(
- const clang::CXXRecordDecl &); ///< Get the template arguments list if any
-
-- std::string PatternifyName(const std::string &className); ///< Transform instance
-- ///< name in pattern for selection
-+ std::string PatternifyName(const std::string &className); ///< Transform instance name in pattern for selection
- void GetPointeeType(std::string &typeName); ///< Get name of the pointee type
-
- SelectionRules &fSelectionRules; ///< The selection rules to be filled
-@@ -300,9 +294,9 @@ private:
- fNoAutoSelectedClassFieldNames; ///< Collect the autoexcluded classes
- std::unordered_map<std::string, TemplateInfo> fTemplateInfoMap; ///< List template name - properties map
- llvm::StringMap<ClassSelectionRule>
-- fClassNameSelectionRuleMap; /// < Map of the already built sel rules
-+ fClassNameSelectionRuleMap; ///< Map of the already built sel rules
- bool fIsFirstPass; ///< Keep trance of the number of passes through the AST
-- ROOT::TMetaUtils::TNormalizedCtxt &fNormCtxt; /// < The reference to the normalized context
-+ ROOT::TMetaUtils::TNormalizedCtxt &fNormCtxt; ///< The reference to the normalized context
- };
- }
- }
-diff --git a/core/foundation/inc/ROOT/TypeTraits.hxx b/core/foundation/inc/ROOT/TypeTraits.hxx
-index 1abf64e73a..ab491c2504 100644
---- a/core/foundation/inc/ROOT/TypeTraits.hxx
-+++ b/core/foundation/inc/ROOT/TypeTraits.hxx
-@@ -155,7 +155,7 @@ template <typename T>
- using TakeFirstParameter_t = typename TakeFirstParameter<T>::type;
-
- /// Remove first of possibly many template parameters.
--/// e.g. RemoveFirstParameter_t<U<A,B>> is U<B>
-+/// e.g. RemoveFirstParameter_t<U<A,B>> is U\<B\>
- template <typename>
- struct RemoveFirstParameter {
- };
-diff --git a/core/meta/src/TClass.cxx b/core/meta/src/TClass.cxx
-index 4eeec81dc1..f29ab7fd85 100644
---- a/core/meta/src/TClass.cxx
-+++ b/core/meta/src/TClass.cxx
-@@ -6780,7 +6780,7 @@ void TClass::SetDestructor(ROOT::DesFunc_t destructorFunc)
- }
-
- ////////////////////////////////////////////////////////////////////////////////
--/// Install a new wrapper around the directory auto add function..
-+/// Install a new wrapper around the directory auto add function.
- /// The function autoAddFunc has the signature void (*)(void *obj, TDirectory dir)
- /// and should register 'obj' to the directory if dir is not null
- /// and unregister 'obj' from its current directory if dir is null
-@@ -7120,12 +7120,12 @@ Bool_t ROOT::Internal::HasConsistentHashMember(TClass &clRef)
- /// (public or not), use
- /// \code{.cpp}
- /// cl->GetProperty() & kClassHasDefaultCtor
--/// \code
-+/// \endcode
- /// To know if the class described by this TClass has a public default
- /// constructor use:
- /// \code{.cpp}
- /// gInterpreter->ClassInfo_HasDefaultConstructor(aClass->GetClassInfo());
--/// \code
-+/// \endcode
-
- Bool_t TClass::HasDefaultConstructor(Bool_t testio) const
- {
-diff --git a/core/metacling/src/TCling.cxx b/core/metacling/src/TCling.cxx
-index db0da13620..279744834a 100644
---- a/core/metacling/src/TCling.cxx
-+++ b/core/metacling/src/TCling.cxx
-@@ -5388,10 +5388,10 @@ int TCling::ReadRootmapFile(const char *rootmapfile, TUniqueString *uniqueString
- }
-
- ////////////////////////////////////////////////////////////////////////////////
--/// Create a resource table and read the (possibly) three resource files, i.e
--/// $ROOTSYS/etc/system<name> (or ROOTETCDIR/system<name>), $HOME/<name> and
--/// ./<name>. ROOT always reads ".rootrc" (in TROOT::InitSystem()). You can
--/// read additional user defined resource files by creating additional TEnv
-+/// Create a resource table and read the (possibly) three resource files,
-+/// i.e.\ $ROOTSYS/etc/system<name> (or ROOTETCDIR/system<name>), $HOME/<name>
-+/// and $PWD/<name>. ROOT always reads ".rootrc" (in TROOT::InitSystem()). You
-+/// can read additional user defined resource files by creating additional TEnv
- /// objects. By setting the shell variable ROOTENV_NO_HOME=1 the reading of
- /// the $HOME/<name> resource file will be skipped. This might be useful in
- /// case the home directory resides on an automounted remote file system
-diff --git a/graf2d/x11/src/TGX11.cxx b/graf2d/x11/src/TGX11.cxx
-index 59e5260c92..26f88dd045 100644
---- a/graf2d/x11/src/TGX11.cxx
-+++ b/graf2d/x11/src/TGX11.cxx
-@@ -3599,9 +3599,9 @@ Pixmap_t TGX11::ReadGIF(int x0, int y0, const char *file, Window_t id)
- }
-
- ////////////////////////////////////////////////////////////////////////////////
--/// Returns an array of pixels created from a part of drawable (defined by x, y, w, h)
--/// in format:
--/// `b1, g1, r1, 0, b2, g2, r2, 0 ... bn, gn, rn, 0 ..`
-+/// Returns an array of pixels created from a part of drawable
-+/// (defined by x, y, w, h) in format:
-+/// `b1, g1, r1, 0, b2, g2, r2, 0, ..., bn, gn, rn, 0`.
- ///
- /// Pixels are numbered from left to right and from top to bottom.
- /// By default all pixels from the whole drawable are returned.
-diff --git a/gui/guihtml/src/TGHtmlSizer.cxx b/gui/guihtml/src/TGHtmlSizer.cxx
-index c73eb581b5..8e6e71dcf7 100644
---- a/gui/guihtml/src/TGHtmlSizer.cxx
-+++ b/gui/guihtml/src/TGHtmlSizer.cxx
-@@ -60,7 +60,7 @@ SHtmlStyle_t TGHtml::GetCurrentStyle()
- ////////////////////////////////////////////////////////////////////////////////
- /// Push a new rendering style onto the stack.
- ///
--/// tag - Tag for this style. Normally the end-tag such as </h3> or </em>.
-+/// tag - Tag for this style. Normally the end-tag such as \</h3\> or \</em\>.
- /// style - The style to push
-
- void TGHtml::PushStyleStack(int tag, SHtmlStyle_t style)
-@@ -152,7 +152,7 @@ void TGHtml::MakeInvisible(TGHtmlElement *p_first, TGHtmlElement *p_last)
- }
-
- ////////////////////////////////////////////////////////////////////////////////
--/// For the markup <a href=XXX>, find out if the URL has been visited
-+/// For the markup \<a href=XXX\>, find out if the URL has been visited
- /// before or not. Return COLOR_Visited or COLOR_Unvisited, as
- /// appropriate.
-
-diff --git a/hist/hist/src/TSVDUnfold.cxx b/hist/hist/src/TSVDUnfold.cxx
-index 85cfa9f241..2b570bdb22 100644
---- a/hist/hist/src/TSVDUnfold.cxx
-+++ b/hist/hist/src/TSVDUnfold.cxx
-@@ -46,13 +46,11 @@
- The measured distribution can be unfolded for any combination of resolution, efficiency and acceptance effects, provided an appropriate definition of <tt>xini</tt> and <tt>Adet</tt>.<br><br>
- <p>
- The unfolding can be performed by
-- <ul>
-- <pre>
-+ \code{.cpp}
- TSVDUnfold *tsvdunf = new TSVDUnfold( bdat, Bcov, bini, xini, Adet );
- TH1D* unfresult = tsvdunf->Unfold( kreg );
-- </pre>
-- </ul>
-- where <tt>kreg</tt> determines the regularisation of the unfolding. In general, overregularisation (too small <tt>kreg</tt>) will bias the unfolded spectrum towards the Monte Carlo input, while underregularisation (too large <tt>kreg</tt>) will lead to large fluctuations in the unfolded spectrum. The optimal regularisation can be determined following guidelines in <a href="http://arXiv.org/abs/hep-ph/9509307">Nucl. Instrum. Meth. A372, 469 (1996) [hep-ph/9509307]</a> using the distribution of the <tt>|d_i|<\tt> that can be obtained by <tt>tsvdunf->GetD()</tt> and/or using pseudo-experiments.
-+ \endcode
-+ where <tt>kreg</tt> determines the regularisation of the unfolding. In general, overregularisation (too small <tt>kreg</tt>) will bias the unfolded spectrum towards the Monte Carlo input, while underregularisation (too large <tt>kreg</tt>) will lead to large fluctuations in the unfolded spectrum. The optimal regularisation can be determined following guidelines in <a href="http://arXiv.org/abs/hep-ph/9509307">Nucl. Instrum. Meth. A372, 469 (1996) [hep-ph/9509307]</a> using the distribution of the <tt>|d_i|</tt> that can be obtained by <tt>tsvdunf->GetD()</tt> and/or using pseudo-experiments.
- <p>
- Covariance matrices on the measured spectrum (for either the total uncertainties or individual sources of uncertainties) can be propagated to covariance matrices using the <tt>GetUnfoldCovMatrix</tt> method, which uses pseudo experiments for the propagation. In addition, <tt>GetAdetCovMatrix</tt> allows for the propagation of the statistical uncertainties on the response matrix using pseudo experiments. The covariance matrix corresponding to <tt>Bcov</tt> is also computed as described in <a href="http://arXiv.org/abs/hep-ph/9509307">Nucl. Instrum. Meth. A372, 469 (1996) [hep-ph/9509307]</a> and can be obtained from <tt>tsvdunf->GetXtau()</tt> and its (regularisation independent) inverse from <tt>tsvdunf->GetXinv()</tt>. The distribution of singular values can be retrieved using <tt>tsvdunf->GetSV()</tt>.
- <p>
-diff --git a/hist/histpainter/src/THistPainter.cxx b/hist/histpainter/src/THistPainter.cxx
-index 0f80505570..20a944a545 100644
---- a/hist/histpainter/src/THistPainter.cxx
-+++ b/hist/histpainter/src/THistPainter.cxx
-@@ -418,7 +418,7 @@ some combinations must be use with care.
- - It does not work when combined with the `LEGO` and `SURF` options unless the
- histogram plotted with the option `SAME` has exactly the same
- ranges on the X, Y and Z axis as the currently drawn histogram. To superimpose
-- lego plots [histograms' stacks](#HP26) should be used.</li>
-+ lego plots [histograms' stacks](#HP26) should be used.
-
-
- ### <a name="HP061"></a> Colors automatically picked in palette
-diff --git a/hist/histv7/speed/histspeedtest.cxx b/hist/histv7/speed/histspeedtest.cxx
-index 55c0992bd5..065a10f0d7 100644
---- a/hist/histv7/speed/histspeedtest.cxx
-+++ b/hist/histv7/speed/histspeedtest.cxx
-@@ -35,7 +35,6 @@ and
- /opt/build/root_builds/rootcling.cmake/include/ROOT/THistBinIter.h:53:50: error: no member named 'GetUncertainty' in
- 'ROOT::Experimental::THistDataContent<2, double, ROOT::Experimental::THistDataDefaultStorage>::TBinStat<double>' auto
- GetUncertainty() const { return GetStat().GetUncertainty(); }
-- ~~~~~~~~~ ^
-
- new ones (STATCLASSES)
-
-diff --git a/hist/unfold/inc/TUnfold.h b/hist/unfold/inc/TUnfold.h
-index a69da26b4c..ce6e16fb4a 100644
---- a/hist/unfold/inc/TUnfold.h
-+++ b/hist/unfold/inc/TUnfold.h
-@@ -179,15 +179,15 @@ class TUnfold : public TObject {
- TMatrixD *fX;
- /// covariance matrix Vxx
- TMatrixDSparse *fVxx;
-- /// inverse of covariance matrix Vxx<sup>-1</sub>
-+ /// inverse of covariance matrix Vxx<sup>-1</sup>
- TMatrixDSparse *fVxxInv;
-- /// inverse of the input covariance matrix Vyy<sup>-1</sub>
-+ /// inverse of the input covariance matrix Vyy<sup>-1</sup>
- TMatrixDSparse *fVyyInv;
- /// result x folded back A*x
- TMatrixDSparse *fAx;
-- /// chi**2 contribution from (y-Ax)Vyy<sup>-1</sub>(y-Ax)
-+ /// chi**2 contribution from (y-Ax)Vyy<sup>-1</sup>(y-Ax)
- Double_t fChi2A;
-- /// chi**2 contribution from (x-s*x0)<sup>T</sub>L<sup>T</sub>L(x-s*x0)
-+ /// chi**2 contribution from (x-s*x0)<sup>T</sup>L<sup>T</sup>L(x-s*x0)
- Double_t fLXsquared;
- /// maximum global correlation coefficient
- Double_t fRhoMax;
-diff --git a/html/src/TDocDirective.cxx b/html/src/TDocDirective.cxx
-index f7ffdc29c3..ab43d1ab38 100644
---- a/html/src/TDocDirective.cxx
-+++ b/html/src/TDocDirective.cxx
-@@ -215,7 +215,7 @@ void TDocHtmlDirective::AddLine(const TSubString& line)
-
- ////////////////////////////////////////////////////////////////////////////////
- /// Set result to the HTML code that was passed in via AddLine().
--/// Prepend a closing </pre>, append an opening <pre>
-+/// Prepend a closing \</pre\>, append an opening \<pre\>
-
- 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 <em>Math/ProbFunc.h<em> or in the global one
-- * including all statistical functions <em>Math/DistFunc.h<em>
-+ * These functions are defined in the header file <em>Math/ProbFunc.h</em> or in the global one
-+ * including all statistical functions <em>Math/DistFunc.h</em>
- *
- */
-
-@@ -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 <em>Math/ProbFunc.h<em> or in the global one
-- including all statistical functions <em>Math/StatFunc.h<em>
-+ These functions are defined in the header file <em>Math/ProbFunc.h</em> or in the global one
-+ including all statistical functions <em>Math/StatFunc.h</em>
-
- */
-
-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 <em>Math/ProbFunc.h<em> or in the global one
-- * including all statistical functions <em>Math/DistFunc.h<em>
-+ * These functions are defined in the header file <em>Math/ProbFunc.h</em> or in the global one
-+ * including all statistical functions <em>Math/DistFunc.h</em>
- *
- *
- * <strong>NOTE:</strong> In the old releases (< 5.14) the <em>_quantile</em> 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 {
- <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Algorithms-using-Derivat...">documentation</A> )
- are the followings:
- <ul>
-- <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridSJ</tt> with name <it>"HybridSJ"</it>: modified Powell's hybrid
-+ <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridSJ</tt> with name <i>"HybridSJ"</i>: modified Powell's hybrid
- method as implemented in HYBRJ in MINPACK
-- <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridJ</tt> with name <it>"HybridJ"</it>: unscaled version of the
-+ <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridJ</tt> with name <i>"HybridJ"</i>: unscaled version of the
- previous algorithm</li>
-- <li><tt>ROOT::Math::GSLMultiRootFinder::kNewton</tt> with name <it>"Newton"</it>: Newton method </li>
-- <li><tt>ROOT::Math::GSLMultiRootFinder::kGNewton</tt> with name <it>"GNewton"</it>: modified Newton method </li>
-+ <li><tt>ROOT::Math::GSLMultiRootFinder::kNewton</tt> with name <i>"Newton"</i>: Newton method </li>
-+ <li><tt>ROOT::Math::GSLMultiRootFinder::kGNewton</tt> with name <i>"GNewton"</i>: modified Newton method </li>
- </ul>
- The algorithms without derivatives (see also the GSL
- <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Algorithms-without-Deriv...">documentation</A> )
- are the followings:
- <ul>
-- <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridS</tt> with name <it>"HybridS"</it>: same as HybridSJ but using
-+ <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridS</tt> with name <i>"HybridS"</i>: same as HybridSJ but using
- finate difference approximation for the derivatives</li>
-- <li><tt>ROOT::Math::GSLMultiRootFinder::kHybrid</tt> with name <it>"Hybrid"</it>: unscaled version of the
-+ <li><tt>ROOT::Math::GSLMultiRootFinder::kHybrid</tt> with name <i>"Hybrid"</i>: unscaled version of the
- previous algorithm</li>
-- <li><tt>ROOT::Math::GSLMultiRootFinder::kDNewton</tt> with name <it>"DNewton"</it>: discrete Newton algorithm </li>
-- <li><tt>ROOT::Math::GSLMultiRootFinder::kBroyden</tt> with name <it>"Broyden"</it>: Broyden algorithm </li>
-+ <li><tt>ROOT::Math::GSLMultiRootFinder::kDNewton</tt> with name <i>"DNewton"</i>: discrete Newton algorithm </li>
-+ <li><tt>ROOT::Math::GSLMultiRootFinder::kBroyden</tt> with name <i>"Broyden"</i>: Broyden algorithm </li>
- </ul>
-
- @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</td>
- <td>C=A*B<br>
- A*=B<br>
- C.Mult(A,B)<br>TMatrixD(A,TMatrixD::kMult,B)<br>TMatrixD(A, TMatrixD(A, TMatrixD::kTransposeMult,B)<br>TMatrixD(A, TMatrixD::kMultTranspose,B)</td>
-- <td>overwrites A<br> <br> <br>constructor of A.B<br>constructor of A<sup>T</sup> .B<br>constructor of A.B<sup>T</sup></td>
-+ <td>overwrites A<br> <br> <br>constructor of A·B<br>constructor of A<sup>T</sup>·B<br>constructor of A·B<sup>T</sup></td>
- </tr>
- <tr>
- <td>Element wise multiplication</td>
-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.</li>
-+ 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.</li>
-+ 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.
-
--<br>The current default pdg_table file displays lifetime 0 for some unstable particles.</br>
-+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/).<br>
--Authors: R.Brun<sup>1</sup>, F.Carminati<sup>1</sup>, A. Gheata<sup>1</sup>, I.Hrivnacova<sup>2</sup>, A.Morsch<sup>1</sup>, B.Volkel<sup>1</sup>;<br>
-+Authors: R. Brun<sup>1</sup>, F. Carminati<sup>1</sup>, A. Gheata<sup>1</sup>, I. Hrivnacova<sup>2</sup>, A. Morsch<sup>1</sup>, B. Volkel<sup>1</sup>;<br>
- <sup>1</sup>European Organization for Nuclear Research (CERN), Geneva, Switzerland;<br>
- <sup>2</sup>Institut 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':
--/// <d0>, <d1>, <d2>, ... referring to the n-th sub-component
--/// of the src path
--/// <bn> basename in the source path
--/// <bs> basename sans extension
--/// <ex> Extension
--/// <sn> serial number of file in the list
--/// <s0> as <sn> but zero padded
--/// <fn> the full file path
--/// <us>, <gr> the local user and group names.
--/// <pg> the users PROOF group
--/// <pa> immediate parent directory
--/// <gp> next-to immediate parent directory
-+///
-+/// Place-holder | Meaning |
-+/// ----------------------------|------------------------------------
-+/// \<d0\>, \<d1\>, \<d2\>, ... | referring to the n-th sub-component of the src path
-+/// \<bn\> | basename in the source path
-+/// \<bs\> | basename sans extension
-+/// \<ex\> | Extension
-+/// \<sn\> | serial number of file in the list
-+/// \<s0\> | as \<sn\> but zero padded
-+/// \<fn\> | the full file path
-+/// \<us\>, \<gr\> | the local user and group names.
-+/// \<pg\> | the users PROOF group
-+/// \<pa\> | immediate parent directory
-+/// \<gp\> | 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/<d3>/<d4>/<d5>/<s>/<bn>' and
-+/// then with dest = '/pool/user/\<d3\>/\<d4\>/\<d5\>/\<sn\>/\<bn\>' and
- /// mss = 'protodst://hostdst//nm/
- /// the corresponding destination path is
- /// protodst://hostdst//nm/pool/user/d3/d4/d5/99/myfile
- ///
--/// If 'dest' is empty, <fn> is used.
-+/// If 'dest' is empty, \<fn\> 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':
--/// <d0>, <d1>, <d2>, ... referring to the n-th sub-component
--/// of the src path
--/// <bn> basename in the source path
--/// <sn> serial number of file in the list
--/// <fn> the full file path
--/// <us>, <gr> the local user and group names.
-+///
-+/// Place-holder | Meaning |
-+/// ----------------------------|------------------------------------
-+/// \<d0\>, \<d1\>, \<d2\>, ... | referring to the n-th sub-component of the src path
-+/// \<bn\> | basename in the source path
-+/// \<sn\> | serial number of file in the list
-+/// \<fn\> | the full file path
-+/// \<us\>, \<gr\> | 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/<d3>/<d4>/<d5>/<s>/<bn>' and
-+/// then with dest = '/pool/user/\<d3\>/\<d4\>/\<d5\>/\<sn\>/\<bn\>' and
- /// mss = 'protodst://hostdst//nm/
- /// the corresponding destination path is
- /// protodst://hostdst//nm/pool/user/d3/d4/d5/99/myfile
- ///
--/// If 'dest' is empty, <fn> is used.
-+/// If 'dest' is empty, \<fn\> 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 <ord>, <user>, <u>, <group>, <stag>, <qnum>, <file>, <rver> and
--/// <build> placeholders in fname.
--/// Here, <rver> is the root version in integer form, e.g. 53403, and <build> a
--/// string includign version, architecture and compiler version, e.g.
--/// '53403_linuxx8664gcc_gcc46' .
-+/// Replace \<ord\>, \<user\>, \<u\>, \<group\>, \<stag\>, \<qnum\>, \<file\>,
-+/// \<rver\> and \<build\> placeholders in fname.
-+/// Here, \<rver\> is the root version in integer form, e.g. 53403, and
-+/// \<build\> 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
- <li> several 'Measurements' (corresponding to a full fit of the model) each of which specifies</li>
- <ul>
- <li> a name for this fit to be used in tables and files</li>
--<ul>
--<li> what is the luminosity associated to the measurement in picobarns</li>
--<li> which bins of the histogram should be used</li>
--<li> what is the relative uncertainty on the luminosity </li>
--<li> what is (are) the parameter(s) of interest that will be measured</li>
--<li> which parameters should be fixed/floating (eg. nuisance parameters)</li>
-+<li> what is the luminosity associated to the measurement in picobarns</li>
-+<li> which bins of the histogram should be used</li>
-+<li> what is the relative uncertainty on the luminosity </li>
-+<li> what is (are) the parameter(s) of interest that will be measured</li>
-+<li> which parameters should be fixed/floating (eg. nuisance parameters)</li>
- </ul>
- </ul>
- </ul>
-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;
- <li> several 'Measurements' (corresponding to a full fit of the model) each of which specifies</li>
- <ul>
- <li> a name for this fit to be used in tables and files</li>
-- <ul>
-- <li> what is the luminosity associated to the measurement in picobarns</li>
-- <li> which bins of the histogram should be used</li>
-- <li> what is the relative uncertainty on the luminosity </li>
-- <li> what is (are) the parameter(s) of interest that will be measured</li>
-- <li> which parameters should be fixed/floating (eg. nuisance parameters)</li>
-+ <li> what is the luminosity associated to the measurement in picobarns</li>
-+ <li> which bins of the histogram should be used</li>
-+ <li> what is the relative uncertainty on the luminosity </li>
-+ <li> what is (are) the parameter(s) of interest that will be measured</li>
-+ <li> which parameters should be fixed/floating (eg. nuisance parameters)</li>
- </ul>
- </ul>
- </ul>
-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.
- /// </p>
- /// <p>
--/// In the above example </tt>RooSimPdfBuilder</tt>
-+/// In the above example <tt>RooSimPdfBuilder</tt>
- /// will first replicate <tt>k</tt> and <tt>s</tt> into
- /// <tt>k_C1,k_C2</tt> and <tt>s_C1,s_C2</tt>, as prescribed in the
- /// configuration. Then it will recursively replicate all PDF nodes that depend on
-@@ -383,7 +383,7 @@
- /// <tt>pdfA(x;p,q)</tt> and <tt>pdfB(x;p,r)</tt> that have a common parameter <tt>p</tt>.
- /// We want to build a <tt>RooSimultaneous</tt> for both <tt>pdfA</tt> and <tt>B</tt>,
- /// which involves a split of parameter <tt>p</tt> and we would like to build the
--/// simultaneous pdfs </tt>simA</tt> and <tt>simB</tt> such that still share their (now split) parameters
-+/// simultaneous pdfs <tt>simA</tt> and <tt>simB</tt> such that still share their (now split) parameters
- /// <tt>p_XXX</tt>. This is accomplished by letting a single instance of <tt>RooSimPdfBuilder</tt> handle
- /// the builds of both <tt>pdfA</tt> and <tt>pdfB</tt>, as illustrated in this example:
- /// </p>
-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<TString,Double_t> 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<U>.
-+ /// in contiguous memory. Only used when T == RVec\<U\>.
- EStorageType fStorageType = EStorageType::kUnknown;
- /// If MustUseRVec, i.e. we are reading an array, we return a reference to this RVec to clients
- RVec<ColumnValue_t> 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 <mattias.ellert(a)physics.uu.se>
-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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <jblomer(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <bertrand.bellenot(a)cern.ch>
- /// \author Sergey Linev <S.Linev(a)gsi.de>
-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 <bertrand.bellenot(a)cern.ch>
- /// \author Sergey Linev <S.Linev(a)gsi.de>
-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 <S.Linev(a)gsi.de>
- /// \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 <bertrand.bellenot(a)cern.ch>
- /// \author Sergey Linev <S.Linev(a)gsi.de>
-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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <mattias.ellert(a)physics.uu.se>
-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 <mattias.ellert(a)physics.uu.se>
-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)
- </pre>
--
--*/
-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
- </pre>
-
- 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
-
- <pre>XYZVector u = v1.Unit(); // return unit vector parallel to v1
- </pre>
--
--*/
-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.</double> </pre>
--
--*/
-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 <mattias.ellert(a)physics.uu.se>
-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 <mattias.ellert(a)physics.uu.se>
-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 '<name>' of command @param is not found in the argument list
-of <function>.
----
- .../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<RAxisConfig::kEquidistant> {
- 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 <b>scale</b>*<b>bgr</b> 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<double>& x) const = 0;
-+ virtual double operator()(const std::vector<double>& 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<double> 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<double> 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<const double>& outputs, std::size_t begin) const {
-@@ -734,7 +734,7 @@ void RooAbsPdf::logBatchComputationErrors(RooSpan<const double>& 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<const double> 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 `<parameterNameToBeReplaced>_<category>`.
-@@ -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<double>::max(), true);
- if (zeta.getVal() == 0. && zeta.isConstant()) {
- RooHelpers::checkRangeOfParameters(this, {&lambda}, -std::numeric_limits<double>::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 <typename LAYERDATA>
- * \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<std::size_t> 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 <typename T>
- inline T BranchlessTree<T>::Inference(const T *input, const int stride)
- {
-@@ -105,7 +105,7 @@ inline void BranchlessTree<T>::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 <typename T>
- inline std::string BranchlessTree<T>::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<T, std::function<void (const T
- /// \param[in] filename Filename of the ROOT file
- /// \param[in] output Load trees corresponding to the given output node of the forest
- /// \param[in] sortTrees Flag to indicate sorting the input trees by the cut value of the first node of each tree
--/// \param[out] Return jitted code as string
-+/// \return Return jitted code as string
- template <typename T>
- inline std::string
- BranchlessJittedForest<T>::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<UInt_t> 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<std::vector<TMVA::Event *>>
-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 <typename T>
-- RResultPtr<T> Fill(T &&model, const ColumnNames_t &bl)
-+ RResultPtr<T> Fill(T &&model, const ColumnNames_t &columnList)
- {
- auto h = std::make_shared<T>(std::forward<T>(model));
- if (!RDFInternal::HistoUtils<T>::HasAxisLimits(*h)) {
- throw std::runtime_error("The absence of axes limits is not supported yet.");
- }
-- return CreateAction<RDFInternal::ActionTags::Fill, RDFDetail::RInferredType>(bl, h, bl.size());
-+ return CreateAction<RDFInternal::ActionTags::Fill, RDFDetail::RInferredType>(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<RDisplay>` 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 <typename NodeType>
- 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<std::string> &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<arrow::Table> inTable, std::vector<std::string> 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-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 <stephan.hageboeck(a)cern.ch>
-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<double>::max(), true);
- if (zeta.getVal() == 0. && zeta.isConstant()) {
- RooHelpers::checkRangeOfParameters(this, {&lambda}, -std::numeric_limits<double>::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 <mattias.ellert(a)physics.uu.se>
-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("<d+[0-9]>");
-+ TRegexp re("<d[0-9]+>");
- while (dst.Tokenize(dt, from, "/")) {
- if (dt.Contains(re)) {
- TParameter<Int_t> *pi = new TParameter<Int_t>(dt, -1);
---
-2.26.2
-
diff --git a/root-fix-multicore-tests-with-few-cores.patch b/root-fix-multicore-tests-with-few-cores.patch
index ada5a11..55ad56e 100644
--- a/root-fix-multicore-tests-with-few-cores.patch
+++ b/root-fix-multicore-tests-with-few-cores.patch
@@ -1,7 +1,25 @@
-diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_concurrency.cxx root-6.22.08/tree/dataframe/test/dataframe_concurrency.cxx
---- root-6.22.08.orig/tree/dataframe/test/dataframe_concurrency.cxx 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/tree/dataframe/test/dataframe_concurrency.cxx 2021-06-01 09:01:37.847751408 +0200
-@@ -46,33 +46,35 @@
+From 153f1c3de0e24f5678fd3a706f902ac12b11048e Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Sun, 18 Apr 2021 07:28:41 +0200
+Subject: [PATCH] Fix multicore tests when running on machines with few cores
+
+When running on machines with few cores, enabling multithreading can
+give you fewer cores than requested. For most of the tests this does
+not matter. However, some tests verify the number of threads used.
+This commit adapts those tests for this situation.
+---
+ tree/dataframe/test/dataframe_concurrency.cxx | 18 +++++++++-------
+ tree/dataframe/test/dataframe_interface.cxx | 7 +++++--
+ tree/dataframe/test/dataframe_simple.cxx | 2 +-
+ tree/dataframe/test/dataframe_snapshot.cxx | 6 ++++--
+ .../test/treeprocmt/treeprocessormt.cxx | 21 +++++++++++++++----
+ 5 files changed, 37 insertions(+), 17 deletions(-)
+
+diff --git a/tree/dataframe/test/dataframe_concurrency.cxx b/tree/dataframe/test/dataframe_concurrency.cxx
+index d1b25493e5..a4bce595f8 100644
+--- a/tree/dataframe/test/dataframe_concurrency.cxx
++++ b/tree/dataframe/test/dataframe_concurrency.cxx
+@@ -57,33 +57,35 @@ TEST(RDFConcurrency, NestedParallelismBetweenDefineCalls)
// [DF] Warn on mismatch between slot pool size and effective number of slots
TEST(RDFSimpleTests, ThrowOnPoolSizeMismatch)
{
@@ -16,7 +34,7 @@ diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_concurrency.cxx root-6.
try {
df.Count().GetValue();
} catch (const std::runtime_error &e) {
- const auto expected_msg = "RLoopManager::Run: when the RDataFrame was constructed the size of the thread pool "
+ const auto expected_msg = "RLoopManager::Run: when the RDataFrame was constructed the number of slots required "
- "was 1, but when starting the event loop it was 3. Maybe EnableImplicitMT() was "
+ "was 1, but when starting the event loop it was " + std::to_string(nslots) + ". Maybe EnableImplicitMT() was "
"called after the RDataFrame was constructed?";
@@ -36,19 +54,20 @@ diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_concurrency.cxx root-6.
try {
df.Count().GetValue();
} catch (const std::runtime_error &e) {
- const auto expected_msg = "RLoopManager::Run: when the RDataFrame was constructed the size of the thread pool "
-- "was 3, but when starting the event loop it was 0. Maybe DisableImplicitMT() was "
-+ "was " + std::to_string(nslots) + ", but when starting the event loop it was 0. Maybe DisableImplicitMT() was "
+ const auto expected_msg = "RLoopManager::Run: when the RDataFrame was constructed the number of slots required "
+- "was 3, but when starting the event loop it was 1. Maybe DisableImplicitMT() was "
++ "was " + std::to_string(nslots) + ", but when starting the event loop it was 1. Maybe DisableImplicitMT() was "
"called after the RDataFrame was constructed?";
- EXPECT_STREQ(e.what(), expected_msg);
+ EXPECT_STREQ(e.what(), expected_msg.c_str());
}
}
}
-diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_interface.cxx root-6.22.08/tree/dataframe/test/dataframe_interface.cxx
---- root-6.22.08.orig/tree/dataframe/test/dataframe_interface.cxx 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/tree/dataframe/test/dataframe_interface.cxx 2021-06-01 08:51:39.351355999 +0200
-@@ -6,6 +6,8 @@
+diff --git a/tree/dataframe/test/dataframe_interface.cxx b/tree/dataframe/test/dataframe_interface.cxx
+index afdd8360ef..90e052f1a7 100644
+--- a/tree/dataframe/test/dataframe_interface.cxx
++++ b/tree/dataframe/test/dataframe_interface.cxx
+@@ -7,6 +7,8 @@
#include "gtest/gtest.h"
@@ -57,7 +76,7 @@ diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_interface.cxx root-6.22
using namespace ROOT;
using namespace ROOT::RDF;
-@@ -349,9 +351,10 @@
+@@ -351,9 +353,10 @@ TEST(RDataFrameInterface, GetNSlots)
ROOT::RDataFrame df0(1);
EXPECT_EQ(1U, df0.GetNSlots());
#ifdef R__USE_IMT
@@ -70,10 +89,11 @@ diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_interface.cxx root-6.22
ROOT::DisableImplicitMT();
ROOT::RDataFrame df1(1);
EXPECT_EQ(1U, df1.GetNSlots());
-diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_simple.cxx root-6.22.08/tree/dataframe/test/dataframe_simple.cxx
---- root-6.22.08.orig/tree/dataframe/test/dataframe_simple.cxx 2021-06-01 08:50:34.317205130 +0200
-+++ root-6.22.08/tree/dataframe/test/dataframe_simple.cxx 2021-06-01 08:51:39.351355999 +0200
-@@ -30,7 +30,7 @@
+diff --git a/tree/dataframe/test/dataframe_simple.cxx b/tree/dataframe/test/dataframe_simple.cxx
+index c6aba48b3e..e6b92be776 100644
+--- a/tree/dataframe/test/dataframe_simple.cxx
++++ b/tree/dataframe/test/dataframe_simple.cxx
+@@ -26,7 +26,7 @@ using namespace ROOT::VecOps;
// Fixture for all tests in this file. If parameter is true, run with implicit MT, else run sequentially
class RDFSimpleTests : public ::testing::TestWithParam<bool> {
protected:
@@ -82,10 +102,11 @@ diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_simple.cxx root-6.22.08
{
if (GetParam())
ROOT::EnableImplicitMT(NSLOTS);
-diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_snapshot.cxx root-6.22.08/tree/dataframe/test/dataframe_snapshot.cxx
---- root-6.22.08.orig/tree/dataframe/test/dataframe_snapshot.cxx 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/tree/dataframe/test/dataframe_snapshot.cxx 2021-06-01 08:51:39.351355999 +0200
-@@ -9,6 +9,7 @@
+diff --git a/tree/dataframe/test/dataframe_snapshot.cxx b/tree/dataframe/test/dataframe_snapshot.cxx
+index 3ce9254442..92444feff1 100644
+--- a/tree/dataframe/test/dataframe_snapshot.cxx
++++ b/tree/dataframe/test/dataframe_snapshot.cxx
+@@ -10,6 +10,7 @@
#include "gtest/gtest.h"
#include <limits>
#include <memory>
@@ -93,7 +114,7 @@ diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_snapshot.cxx root-6.22.
using namespace ROOT; // RDataFrame
using namespace ROOT::RDF; // RInterface
using namespace ROOT::VecOps; // RVec
-@@ -886,9 +887,10 @@
+@@ -1041,9 +1042,10 @@ TEST(RDFSnapshotMore, EmptyBuffersMT)
{
const auto fname = "emptybuffersmt.root";
const auto treename = "t";
@@ -106,10 +127,11 @@ diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_snapshot.cxx root-6.22.
.Filter([](int x) { return x == 0; }, {"x"}, "f");
auto r = dd.Report();
dd.Snapshot<int>(treename, fname, {"x"});
-diff -ur root-6.22.08.orig/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx root-6.22.08/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx
---- root-6.22.08.orig/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx 2021-06-01 08:51:39.352356002 +0200
-@@ -294,14 +294,27 @@
+diff --git a/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx b/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx
+index 5d5b2cbf42..963ce8a1b1 100644
+--- a/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx
++++ b/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx
+@@ -294,14 +294,27 @@ TEST(TreeProcessorMT, LimitNTasks_CheckEntries)
}
};
@@ -141,3 +163,6 @@ diff -ur root-6.22.08.orig/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx r
gSystem->Unlink(filename);
ROOT::DisableImplicitMT();
+--
+2.30.2
+
diff --git a/root-fix-ppc64le-compilation-with-gcc-10.patch b/root-fix-ppc64le-compilation-with-gcc-10.patch
new file mode 100644
index 0000000..2624de8
--- /dev/null
+++ b/root-fix-ppc64le-compilation-with-gcc-10.patch
@@ -0,0 +1,29 @@
+From 5b8e969ca045aa238c685009e0aa48d74cbdbf22 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Fri, 13 Mar 2020 17:09:03 +0100
+Subject: [PATCH 1/2] Fix ppc64le compilation with gcc 10
+
+Reapply fix lost in the LLVM 9 upgrade. This fix is in LLVM 10.
+
+Backported from llvm upstream
+https://reviews.llvm.org/D74129
+---
+ interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp b/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp
+index c8ed42d266..16bb00d2e9 100644
+--- a/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp
++++ b/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp
+@@ -2546,7 +2546,7 @@ bool Lexer::SkipBlockComment(Token &Result, const char *CurPtr,
+ '/', '/', '/', '/', '/', '/', '/', '/'
+ };
+ while (CurPtr+16 <= BufferEnd &&
+- !vec_any_eq(*(const vector unsigned char*)CurPtr, Slashes))
++ !vec_any_eq(*(const __vector unsigned char*)CurPtr, Slashes))
+ CurPtr += 16;
+ #else
+ // Scan for '/' quickly. Many block comments are very large.
+--
+2.30.2
+
diff --git a/root-fontconfig.patch b/root-fontconfig.patch
index 2a05c55..35705a4 100644
--- a/root-fontconfig.patch
+++ b/root-fontconfig.patch
@@ -1,7 +1,7 @@
-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 @@
+diff -ur root-6.24.02.orig/core/base/src/TApplication.cxx root-6.24.02/core/base/src/TApplication.cxx
+--- root-6.24.02.orig/core/base/src/TApplication.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/core/base/src/TApplication.cxx 2021-08-11 10:49:08.583579248 +0200
+@@ -265,18 +265,11 @@
LoadGraphicsLibs();
// Try to load TrueType font renderer. Only try to load if not in batch
@@ -22,7 +22,7 @@ diff -ur root-6.22.02.orig/core/base/src/TApplication.cxx root-6.22.02/core/base
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 @@
+@@ -290,7 +283,6 @@
}
}
#endif
@@ -30,9 +30,9 @@ diff -ur root-6.22.02.orig/core/base/src/TApplication.cxx root-6.22.02/core/base
// 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
+diff -ur root-6.24.02.orig/graf2d/asimage/CMakeLists.txt root-6.24.02/graf2d/asimage/CMakeLists.txt
+--- root-6.24.02.orig/graf2d/asimage/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf2d/asimage/CMakeLists.txt 2021-08-11 10:49:08.583579248 +0200
@@ -30,6 +30,7 @@
${FREETYPE_LIBRARIES}
${X11_LIBRARIES}
@@ -41,10 +41,10 @@ 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 -ur root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx root-6.24.02/graf2d/asimage/src/TASImage.cxx
+--- root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf2d/asimage/src/TASImage.cxx 2021-08-11 10:49:08.585579253 +0200
+@@ -112,6 +112,8 @@
# include <draw.h>
}
@@ -53,7 +53,7 @@ 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 @@
+@@ -2595,14 +2597,120 @@
TString fn = font_name;
fn.Strip();
@@ -181,7 +181,7 @@ diff -ur root-6.22.02.orig/graf2d/asimage/src/TASImage.cxx root-6.22.02/graf2d/a
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 @@
+@@ -2626,14 +2734,11 @@
return;
}
@@ -199,9 +199,9 @@ diff -ur root-6.22.02.orig/graf2d/asimage/src/TASImage.cxx root-6.22.02/graf2d/a
}
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
+diff -ur root-6.24.02.orig/graf2d/graf/CMakeLists.txt root-6.24.02/graf2d/graf/CMakeLists.txt
+--- root-6.24.02.orig/graf2d/graf/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf2d/graf/CMakeLists.txt 2021-08-11 10:49:08.586579256 +0200
@@ -91,6 +91,7 @@
${FREETYPE_LIBRARIES}
ZLIB::ZLIB
@@ -210,9 +210,9 @@ 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
+diff -ur root-6.24.02.orig/graf2d/graf/inc/TTF.h root-6.24.02/graf2d/graf/inc/TTF.h
+--- root-6.24.02.orig/graf2d/graf/inc/TTF.h 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf2d/graf/inc/TTF.h 2021-08-11 10:49:08.586579256 +0200
@@ -76,9 +76,8 @@
static FT_BBox fgCBox; ///< string control box
static FT_CharMap fgCharMap[kTTMaxFonts]; ///< font character map
@@ -224,9 +224,9 @@ diff -ur root-6.22.02.orig/graf2d/graf/inc/TTF.h root-6.22.02/graf2d/graf/inc/TT
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
+diff -ur root-6.24.02.orig/graf2d/graf/src/TTF.cxx root-6.24.02/graf2d/graf/src/TTF.cxx
+--- root-6.24.02.orig/graf2d/graf/src/TTF.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf2d/graf/src/TTF.cxx 2021-08-11 10:49:08.587579259 +0200
@@ -25,6 +25,8 @@
#include "TMath.h"
#include "TError.h"
@@ -787,9 +787,9 @@ diff -ur root-6.22.02.orig/graf2d/graf/src/TTF.cxx root-6.22.02/graf2d/graf/src/
}
////////////////////////////////////////////////////////////////////////////////
-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
+diff -ur root-6.24.02.orig/graf2d/postscript/CMakeLists.txt root-6.24.02/graf2d/postscript/CMakeLists.txt
+--- root-6.24.02.orig/graf2d/postscript/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf2d/postscript/CMakeLists.txt 2021-08-11 10:49:08.587579259 +0200
@@ -27,6 +27,7 @@
LIBRARIES
ZLIB::ZLIB
@@ -798,18 +798,18 @@ 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 <string.h>
- #include <ctype.h>
- #include <wchar.h>
+diff -ur root-6.24.02.orig/graf2d/postscript/src/TPostScript.cxx root-6.24.02/graf2d/postscript/src/TPostScript.cxx
+--- root-6.24.02.orig/graf2d/postscript/src/TPostScript.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf2d/postscript/src/TPostScript.cxx 2021-08-11 10:49:08.588579261 +0200
+@@ -234,6 +234,7 @@
+ #include <cctype>
+ #include <cwchar>
+ #include <fstream>
+#include <fontconfig/fontconfig.h>
- #include "Riostream.h"
- #include "Byteswap.h"
-@@ -1583,56 +1584,179 @@
+ #include "strlcpy.h"
+ #include "snprintf.h"
+@@ -1585,56 +1586,179 @@
void TPostScript::FontEmbed(void)
{
@@ -1034,7 +1034,7 @@ diff -ur root-6.22.02.orig/graf2d/postscript/src/TPostScript.cxx root-6.22.02/gr
} else {
if (FontEmbedType2(ttfont)) {
// nothing
-@@ -1641,9 +1765,8 @@
+@@ -1643,9 +1767,8 @@
} else if(FontEmbedType42(ttfont)) {
// nothing
} else {
@@ -1046,7 +1046,7 @@ diff -ur root-6.22.02.orig/graf2d/postscript/src/TPostScript.cxx root-6.22.02/gr
}
delete [] ttfont;
}
-@@ -2835,10 +2958,10 @@
+@@ -2837,10 +2960,10 @@
{ "Root.PSFont.9", "/FreeMonoOblique" },
{ "Root.PSFont.10", "/FreeMonoBold" },
{ "Root.PSFont.11", "/FreeMonoBoldOblique" },
@@ -1060,9 +1060,9 @@ 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
+diff -ur root-6.24.02.orig/graf3d/gl/CMakeLists.txt root-6.24.02/graf3d/gl/CMakeLists.txt
+--- root-6.24.02.orig/graf3d/gl/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf3d/gl/CMakeLists.txt 2021-08-11 10:49:08.589579264 +0200
@@ -208,6 +208,7 @@
${GL2PS_LIBRARIES}
${X11_LIBRARIES}
@@ -1071,10 +1071,10 @@ 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 -ur root-6.24.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.24.02/graf3d/gl/src/TGLFontManager.cxx
+--- root-6.24.02.orig/graf3d/gl/src/TGLFontManager.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf3d/gl/src/TGLFontManager.cxx 2021-08-11 10:49:08.589579264 +0200
+@@ -36,6 +36,7 @@
# include "FTGLBitmapFont.h"
#endif
@@ -1082,7 +1082,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 @@
+@@ -419,7 +420,7 @@
ClassImp(TGLFontManager);
TObjArray TGLFontManager::fgFontFileArray;
@@ -1091,7 +1091,7 @@ diff -ur root-6.22.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.22.02/graf3d/
TGLFontManager::FontSizeVec_t TGLFontManager::fgFontSizeArray;
Bool_t TGLFontManager::fgStaticInitDone = kFALSE;
-@@ -451,17 +452,175 @@
+@@ -450,17 +451,175 @@
FontMap_i it = fFontMap.find(TGLFont(size, fileID, mode));
if (it == fFontMap.end())
{
@@ -1276,7 +1276,7 @@ diff -ur root-6.22.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.22.02/graf3d/
FTFont* ftfont = 0;
switch (mode)
{
-@@ -485,10 +644,14 @@
+@@ -484,10 +643,14 @@
ftfont = new FTGLTextureFont(file);
break;
default:
@@ -1291,7 +1291,7 @@ diff -ur root-6.22.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.22.02/graf3d/
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 @@
+@@ -570,8 +733,6 @@
{
if (fgStaticInitDone == kFALSE) InitStatics();
@@ -1300,7 +1300,7 @@ diff -ur root-6.22.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.22.02/graf3d/
return fgExtendedFontStart;
}
-@@ -642,28 +803,6 @@
+@@ -641,28 +802,6 @@
fgFontFileArray.Add(new TObjString("wingding")); // 140
fgFontFileArray.Add(new TObjString("symbol")); // 150
@@ -1329,10 +1329,10 @@ diff -ur root-6.22.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.22.02/graf3d/
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 -ur root-6.24.02.orig/graf3d/gl/src/TGLText.cxx root-6.24.02/graf3d/gl/src/TGLText.cxx
+--- root-6.24.02.orig/graf3d/gl/src/TGLText.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf3d/gl/src/TGLText.cxx 2021-08-11 10:49:08.590579267 +0200
+@@ -32,6 +32,8 @@
# include "FTGLBitmapFont.h"
#endif
@@ -1341,7 +1341,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 @@
+@@ -176,27 +178,92 @@
{
int fontid = fontnumber / 10;
@@ -1455,7 +1455,7 @@ diff -ur root-6.22.02.orig/graf3d/gl/src/TGLText.cxx root-6.22.02/graf3d/gl/src/
if (fGLTextFont) delete fGLTextFont;
-@@ -206,7 +273,9 @@
+@@ -204,7 +271,9 @@
fGLTextFont = new FTGLPolygonFont(ttfont);
@@ -1466,9 +1466,9 @@ 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
+diff -ur root-6.24.02.orig/gui/gui/src/TGApplication.cxx root-6.24.02/gui/gui/src/TGApplication.cxx
+--- root-6.24.02.orig/gui/gui/src/TGApplication.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/gui/gui/src/TGApplication.cxx 2021-08-11 10:49:08.590579267 +0200
@@ -80,20 +80,12 @@
gROOT->SetBatch(kFALSE);
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 <mattias.ellert(a)physics.uu.se>
-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<float>; 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 <mattias.ellert(a)physics.uu.se>
-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 <mattias.ellert(a)physics.uu.se>
-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-jsmva-static.patch b/root-jsmva-static.patch
new file mode 100644
index 0000000..a81848a
--- /dev/null
+++ b/root-jsmva-static.patch
@@ -0,0 +1,36 @@
+diff -ur root-6.24.02.orig/bindings/jsmva/python/JsMVA/JPyInterface.py root-6.24.02/bindings/jsmva/python/JsMVA/JPyInterface.py
+--- root-6.24.02.orig/bindings/jsmva/python/JsMVA/JPyInterface.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/bindings/jsmva/python/JsMVA/JPyInterface.py 2021-08-11 09:06:21.894746090 +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.24.02.orig/bindings/pyroot_legacy/JsMVA/JPyInterface.py root-6.24.02/bindings/pyroot_legacy/JsMVA/JPyInterface.py
+--- root-6.24.02.orig/bindings/pyroot_legacy/JsMVA/JPyInterface.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/bindings/pyroot_legacy/JsMVA/JPyInterface.py 2021-08-11 09:06:21.925746168 +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.24.02.orig/etc/notebook/JsMVA/js/JsMVA.js root-6.24.02/etc/notebook/JsMVA/js/JsMVA.js
+--- root-6.24.02.orig/etc/notebook/JsMVA/js/JsMVA.js 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/etc/notebook/JsMVA/js/JsMVA.js 2021-08-11 09:10:45.638410266 +0200
+@@ -16,7 +16,7 @@
+
+ (function(factory){
+
+- var JSROOT_source_dir = "https://root.cern.ch/js/notebook/scripts/";
++ var JSROOT_source_dir = "/static/scripts/";
+
+ var url = "";
+ if (requirejs.s.contexts.hasOwnProperty("_")) {
diff --git a/root-jupyroot-jupyterlab-compat.patch b/root-jupyroot-jupyterlab-compat.patch
deleted file mode 100644
index a7850c4..0000000
--- a/root-jupyroot-jupyterlab-compat.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-diff -ur root-6.22.08.orig/bindings/jupyroot/python/JupyROOT/helpers/utils.py root-6.22.08/bindings/jupyroot/python/JupyROOT/helpers/utils.py
---- root-6.22.08.orig/bindings/jupyroot/python/JupyROOT/helpers/utils.py 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/bindings/jupyroot/python/JupyROOT/helpers/utils.py 2021-06-17 19:29:39.457234887 +0200
-@@ -39,24 +39,31 @@
-
- _jsNotDrawableClassesPatterns = ["TEve*","TF3","TPolyLine3D"]
-
--
--_jsROOTSourceDir = "/static/"
- _jsCanvasWidth = 800
- _jsCanvasHeight = 600
--
- _jsCode = """
-+
- <div id="{jsDivId}"
- style="width: {jsCanvasWidth}px; height: {jsCanvasHeight}px">
- </div>
- <script>
- if (typeof require !== 'undefined') {{
-
-- // All requirements met (we are in jupyter notebooks or we loaded requirejs before).
-- display_{jsDivId}();
-+ // We are in jupyter notebooks, use require.js which should be configured already
-+ require(['scripts/JSRootCore'],
-+ function(Core) {{
-+ display_{jsDivId}(Core);
-+ }}
-+ );
-+
-+}} else if (typeof JSROOT !== 'undefined') {{
-+
-+ // JSROOT already loaded, just use it
-+ display_{jsDivId}(JSROOT);
-
- }} else {{
-
-- // We are in jupyterlab, we need to insert requirejs and configure it.
-+ // We are in jupyterlab without require.js, directly loading jsroot
- // Jupyterlab might be installed in a different base_url so we need to know it.
- try {{
- var base_url = JSON.parse(document.getElementById('jupyter-config-data').innerHTML).baseUrl;
-@@ -65,14 +72,15 @@
- }}
-
- // Try loading a local version of requirejs and fallback to cdn if not possible.
-- requirejs_load(base_url + 'static/components/requirejs/require.js', requirejs_success(base_url), function(){{
-- requirejs_load('https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.min.js', requirejs_success(base_url), function(){{
-- document.getElementById("{jsDivId}").innerHTML = "Failed to load requireJs";
-+ script_load(base_url + 'static/scripts/JSRootCore.js', script_success, function(){{
-+ console.error('Fail to load JSROOT locally, please check your jupyter_notebook_config.py file')
-+ script_load('https://root.cern/js/5.9.1/scripts/JSRootCore.min.js', script_success, function(){{
-+ document.getElementById("{jsDivId}").innerHTML = "Failed to load JSROOT";
- }});
- }});
- }}
-
--function requirejs_load(src, on_load, on_error) {{
-+function script_load(src, on_load, on_error) {{
- var script = document.createElement('script');
- script.src = src;
- script.onload = on_load;
-@@ -80,23 +88,14 @@
- document.head.appendChild(script);
- }}
-
--function requirejs_success(base_url) {{
-- return function() {{
-- require.config({{
-- baseUrl: base_url + 'static/'
-- }});
-- display_{jsDivId}();
-- }}
-+function script_success() {{
-+ display_{jsDivId}(JSROOT);
- }}
-
--function display_{jsDivId}() {{
-- require(['scripts/JSRootCore'],
-- function(Core) {{
-- var obj = Core.JSONR_unref({jsonContent});
-- Core.key_handling = false;
-- Core.draw("{jsDivId}", obj, "{jsDrawOptions}");
-- }}
-- );
-+function display_{jsDivId}(Core) {{
-+ var obj = Core.JSONR_unref({jsonContent});
-+ Core.key_handling = false;
-+ Core.draw("{jsDivId}", obj, "{jsDrawOptions}");
- }}
- </script>
- """
-@@ -296,7 +295,7 @@
- cnt = 0
- for n in range(colors.GetLast()+1):
- if colors.At(n): cnt = cnt+1
--
-+
- # add all colors if there are more than 598 colors defined
- if cnt < 599 or prim.FindObject(colors):
- colors = None
-@@ -312,14 +311,14 @@
- prim.Add(palette)
-
- ROOT.TColor.DefinedColors()
--
-+
- canvas_json = ROOT.TBufferJSON.ConvertToJSON(canvas, 3)
-
- # Cleanup primitives after conversion
- if style is not None: prim.Remove(style)
- if colors is not None: prim.Remove(colors)
- if palette is not None: prim.Remove(palette)
--
-+
- return canvas_json
-
- transformers = []
-@@ -508,7 +507,6 @@
-
- thisJsCode = _jsCode.format(jsCanvasWidth = height,
- jsCanvasHeight = width,
-- jsROOTSourceDir = _jsROOTSourceDir,
- jsonContent = json.Data(),
- jsDrawOptions = options,
- jsDivId = divId)
diff --git a/root-jupyroot-static.patch b/root-jupyroot-static.patch
deleted file mode 100644
index 717e203..0000000
--- a/root-jupyroot-static.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-diff -ur root-6.22.08.orig/bindings/jsmva/python/JsMVA/JPyInterface.py root-6.22.08/bindings/jsmva/python/JsMVA/JPyInterface.py
---- root-6.22.08.orig/bindings/jsmva/python/JsMVA/JPyInterface.py 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/bindings/jsmva/python/JsMVA/JPyInterface.py 2021-06-17 19:32:12.018598877 +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.08.orig/bindings/jupyroot/python/JupyROOT/helpers/utils.py root-6.22.08/bindings/jupyroot/python/JupyROOT/helpers/utils.py
---- root-6.22.08.orig/bindings/jupyroot/python/JupyROOT/helpers/utils.py 2021-06-17 19:29:39.457234887 +0200
-+++ root-6.22.08/bindings/jupyroot/python/JupyROOT/helpers/utils.py 2021-06-17 19:29:00.146141086 +0200
-@@ -72,7 +72,7 @@
- }}
-
- // Try loading a local version of requirejs and fallback to cdn if not possible.
-- script_load(base_url + 'static/scripts/JSRootCore.js', script_success, function(){{
-+ script_load(base_url + 'static/jsroot/scripts/JSRootCore.js', script_success, function(){{
- console.error('Fail to load JSROOT locally, please check your jupyter_notebook_config.py file')
- script_load('https://root.cern/js/5.9.1/scripts/JSRootCore.min.js', script_success, function(){{
- document.getElementById("{jsDivId}").innerHTML = "Failed to load JSROOT";
-diff -ur root-6.22.08.orig/bindings/pyroot_legacy/JsMVA/JPyInterface.py root-6.22.08/bindings/pyroot_legacy/JsMVA/JPyInterface.py
---- root-6.22.08.orig/bindings/pyroot_legacy/JsMVA/JPyInterface.py 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/bindings/pyroot_legacy/JsMVA/JPyInterface.py 2021-06-17 19:32:12.019598879 +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.08.orig/bindings/pyroot_legacy/JupyROOT/helpers/utils.py root-6.22.08/bindings/pyroot_legacy/JupyROOT/helpers/utils.py
---- root-6.22.08.orig/bindings/pyroot_legacy/JupyROOT/helpers/utils.py 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/bindings/pyroot_legacy/JupyROOT/helpers/utils.py 2021-06-17 19:32:12.019598879 +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.08.orig/etc/notebook/JsMVA/js/JsMVA.js root-6.22.08/etc/notebook/JsMVA/js/JsMVA.js
---- root-6.22.08.orig/etc/notebook/JsMVA/js/JsMVA.js 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/etc/notebook/JsMVA/js/JsMVA.js 2021-06-17 19:32:12.020598882 +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.08.orig/etc/notebook/JsMVA/js/NetworkDesigner.js root-6.22.08/etc/notebook/JsMVA/js/NetworkDesigner.js
---- root-6.22.08.orig/etc/notebook/JsMVA/js/NetworkDesigner.js 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/etc/notebook/JsMVA/js/NetworkDesigner.js 2021-06-17 19:32:12.020598882 +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 <mattias.ellert(a)physics.uu.se>
-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-no-export-python-modules.patch b/root-no-export-python-modules.patch
index 21b1319..aa7604d 100644
--- a/root-no-export-python-modules.patch
+++ b/root-no-export-python-modules.patch
@@ -1,6 +1,6 @@
-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
+diff -ur root-6.24.02.orig/bindings/jupyroot/CMakeLists.txt root-6.24.02/bindings/jupyroot/CMakeLists.txt
+--- root-6.24.02.orig/bindings/jupyroot/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/bindings/jupyroot/CMakeLists.txt 2021-08-11 10:53:03.272202496 +0200
@@ -70,8 +70,7 @@
endforeach()
@@ -8,13 +8,13 @@ diff -ur root-6.22.02.orig/bindings/jupyroot/CMakeLists.txt root-6.22.02/binding
- 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)
+ LIBRARY DESTINATION ${CMAKE_INSTALL_PYTHONDIR} COMPONENT libraries
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_PYTHONDIR} 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 @@
+diff -ur root-6.24.02.orig/bindings/pyroot/pythonizations/CMakeLists.txt root-6.24.02/bindings/pyroot/pythonizations/CMakeLists.txt
+--- root-6.24.02.orig/bindings/pyroot/pythonizations/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/bindings/pyroot/pythonizations/CMakeLists.txt 2021-08-11 10:53:03.272202496 +0200
+@@ -137,11 +137,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)
@@ -25,6 +25,6 @@ diff -ur root-6.22.02.orig/bindings/pyroot/pythonizations/CMakeLists.txt root-6.
- 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)
+ LIBRARY DESTINATION ${CMAKE_INSTALL_PYTHONDIR} COMPONENT libraries
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_PYTHONDIR} COMPONENT libraries)
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 <ROOT/RConfig.hxx>
-+
- #include "ROOT/RMiniFile.hxx"
-
- #include <ROOT/RRawFile.hxx>
-@@ -999,7 +1001,11 @@
- R__ASSERT(fFile);
- size_t retval;
- if ((offset >= 0) && (static_cast<std::uint64_t>(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 <ROOT/RConfig.hxx>
-+
- #include <ROOT/RColumnModel.hxx>
- #include <ROOT/RDataFrame.hxx>
- #include <ROOT/RNTuple.hxx>
-@@ -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
index a25a8e8..bcba732 100644
--- a/root-old-gtest-compat.patch
+++ b/root-old-gtest-compat.patch
@@ -1,6 +1,20 @@
-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
+diff -ur root-6.24.02.orig/hist/hist/test/test_THBinIterator.cxx root-6.24.02/hist/hist/test/test_THBinIterator.cxx
+--- root-6.24.02.orig/hist/hist/test/test_THBinIterator.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/hist/hist/test/test_THBinIterator.cxx 2021-08-06 22:59:45.039518775 +0200
+@@ -1,5 +1,10 @@
+ #include "gtest/gtest.h"
+
++#ifndef INSTANTIATE_TEST_SUITE_P
++#define SetUpTestSuite SetUpTestCase
++#define TearDownTestSuite TearDownTestCase
++#endif
++
+ // test iterating histogram bins and using the new THistRange and
+ // THBinIterator classes
+
+diff -ur root-6.24.02.orig/math/mathcore/test/stress/testGenVector.cxx root-6.24.02/math/mathcore/test/stress/testGenVector.cxx
+--- root-6.24.02.orig/math/mathcore/test/stress/testGenVector.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/math/mathcore/test/stress/testGenVector.cxx 2021-08-06 09:31:38.795835283 +0200
@@ -4,6 +4,16 @@
#include "gtest/gtest.h"
@@ -18,9 +32,9 @@ diff -ur root-6.22.00.orig/math/mathcore/test/stress/testGenVector.cxx root-6.22
#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
+diff -ur root-6.24.02.orig/math/mathcore/test/stress/testSMatrix.cxx root-6.24.02/math/mathcore/test/stress/testSMatrix.cxx
+--- root-6.24.02.orig/math/mathcore/test/stress/testSMatrix.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/math/mathcore/test/stress/testSMatrix.cxx 2021-08-06 09:31:38.796835286 +0200
@@ -7,6 +7,16 @@
#include "TestHelper.h"
#include "gtest/gtest.h"
@@ -38,9 +52,9 @@ diff -ur root-6.22.00.orig/math/mathcore/test/stress/testSMatrix.cxx root-6.22.0
#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
+diff -ur root-6.24.02.orig/math/mathcore/test/stress/testVector34.cxx root-6.24.02/math/mathcore/test/stress/testVector34.cxx
+--- root-6.24.02.orig/math/mathcore/test/stress/testVector34.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/math/mathcore/test/stress/testVector34.cxx 2021-08-06 09:31:38.796835286 +0200
@@ -4,6 +4,16 @@
#include "gtest/gtest.h"
@@ -58,9 +72,9 @@ diff -ur root-6.22.00.orig/math/mathcore/test/stress/testVector34.cxx root-6.22.
#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
+diff -ur root-6.24.02.orig/math/mathcore/test/stress/testVector.cxx root-6.24.02/math/mathcore/test/stress/testVector.cxx
+--- root-6.24.02.orig/math/mathcore/test/stress/testVector.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/math/mathcore/test/stress/testVector.cxx 2021-08-06 09:31:38.796835286 +0200
@@ -4,6 +4,16 @@
#include "gtest/gtest.h"
@@ -78,9 +92,9 @@ diff -ur root-6.22.00.orig/math/mathcore/test/stress/testVector.cxx root-6.22.00
#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
+diff -ur root-6.24.02.orig/math/mathcore/test/testGradient.cxx root-6.24.02/math/mathcore/test/testGradient.cxx
+--- root-6.24.02.orig/math/mathcore/test/testGradient.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/math/mathcore/test/testGradient.cxx 2021-08-06 09:31:38.796835286 +0200
@@ -22,6 +22,10 @@
#include "gtest/gtest.h"
@@ -92,9 +106,9 @@ diff -ur root-6.22.00.orig/math/mathcore/test/testGradient.cxx root-6.22.00/math
#include <chrono>
#include <iostream>
#include <string>
-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
+diff -ur root-6.24.02.orig/math/mathcore/test/testGradientFitting.cxx root-6.24.02/math/mathcore/test/testGradientFitting.cxx
+--- root-6.24.02.orig/math/mathcore/test/testGradientFitting.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/math/mathcore/test/testGradientFitting.cxx 2021-08-06 09:31:38.797835288 +0200
@@ -12,6 +12,16 @@
#include "gtest/gtest.h"
@@ -112,10 +126,10 @@ diff -ur root-6.22.00.orig/math/mathcore/test/testGradientFitting.cxx root-6.22.
#include <iostream>
#include <string>
-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 @@
+diff -ur root-6.24.02.orig/math/mathmore/test/testStress.cxx root-6.24.02/math/mathmore/test/testStress.cxx
+--- root-6.24.02.orig/math/mathmore/test/testStress.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/math/mathmore/test/testStress.cxx 2021-08-06 09:31:38.797835288 +0200
+@@ -26,6 +26,16 @@
#include "gtest/gtest.h"
@@ -132,9 +146,9 @@ diff -ur root-6.22.00.orig/math/mathmore/test/testStress.cxx root-6.22.00/math/m
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
+diff -ur root-6.24.02.orig/roofit/roofitcore/test/testProxiesAndCategories.cxx root-6.24.02/roofit/roofitcore/test/testProxiesAndCategories.cxx
+--- root-6.24.02.orig/roofit/roofitcore/test/testProxiesAndCategories.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/roofit/roofitcore/test/testProxiesAndCategories.cxx 2021-08-06 09:31:38.798835290 +0200
@@ -16,6 +16,9 @@
#include "gtest/gtest.h"
@@ -145,9 +159,49 @@ diff -ur root-6.22.00.orig/roofit/roofitcore/test/testProxiesAndCategories.cxx r
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
+diff -ur root-6.24.02.orig/tree/dataframe/test/dataframe_datablockcallback.cxx root-6.24.02/tree/dataframe/test/dataframe_datablockcallback.cxx
+--- root-6.24.02.orig/tree/dataframe/test/dataframe_datablockcallback.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/dataframe_datablockcallback.cxx 2021-08-06 09:31:38.801835298 +0200
+@@ -11,6 +11,10 @@
+
+ #include <gtest/gtest.h>
+
++#ifndef INSTANTIATE_TEST_SUITE_P
++#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
++#endif
++
+ #include <algorithm> // std::min
+ #include <thread> // std::hardware_concurrency
+
+diff -ur root-6.24.02.orig/tree/dataframe/test/dataframe_merge_results.cxx root-6.24.02/tree/dataframe/test/dataframe_merge_results.cxx
+--- root-6.24.02.orig/tree/dataframe/test/dataframe_merge_results.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/dataframe_merge_results.cxx 2021-08-06 09:31:38.802835300 +0200
+@@ -308,7 +308,7 @@
+ EXPECT_FALSE(mh3);
+ EXPECT_FALSE(mh4);
+ EXPECT_FALSE(mh5);
+- EXPECT_TRUE(mergedptr);
++ EXPECT_TRUE(!!mergedptr);
+
+ const auto &mh = mergedptr->GetValue();
+
+diff -ur root-6.24.02.orig/tree/dataframe/test/dataframe_regression.cxx root-6.24.02/tree/dataframe/test/dataframe_regression.cxx
+--- root-6.24.02.orig/tree/dataframe/test/dataframe_regression.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/dataframe_regression.cxx 2021-08-06 09:31:38.802835300 +0200
+@@ -9,6 +9,10 @@
+
+ #include "gtest/gtest.h"
+
++#ifndef INSTANTIATE_TEST_SUITE_P
++#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
++#endif
++
+ // Fixture for all tests in this file. If parameter is true, run with implicit MT, else run sequentially
+ class RDFRegressionTests : public ::testing::TestWithParam<bool> {
+ protected:
+diff -ur root-6.24.02.orig/tree/dataframe/test/dataframe_simple.cxx root-6.24.02/tree/dataframe/test/dataframe_simple.cxx
+--- root-6.24.02.orig/tree/dataframe/test/dataframe_simple.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/dataframe_simple.cxx 2021-08-06 09:31:38.803835303 +0200
@@ -1,5 +1,10 @@
/****** Run RDataFrame tests both with and without IMT enabled *******/
#include <gtest/gtest.h>
@@ -156,6 +210,6 @@ diff -ur root-6.22.00.orig/tree/dataframe/test/dataframe_simple.cxx root-6.22.00
+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
+#endif
+
+ #include <ROOTUnitTestSupport.h>
#include <ROOT/RDataFrame.hxx>
#include <ROOT/TSeq.hxx>
- #include <TChain.h>
diff --git a/root-older-python.patch b/root-older-python.patch
new file mode 100644
index 0000000..fa6a05a
--- /dev/null
+++ b/root-older-python.patch
@@ -0,0 +1,46 @@
+From 61116151cce8fe5b397555a65f7b55001b8e416b Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Fri, 23 Apr 2021 21:39:17 +0200
+Subject: [PATCH] Compat with no f-strings
+
+---
+ tutorials/tmva/PyTorch_Generate_CNN_Model.py | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/tutorials/tmva/PyTorch_Generate_CNN_Model.py b/tutorials/tmva/PyTorch_Generate_CNN_Model.py
+index 7024112f03..5a314f86dd 100644
+--- a/tutorials/tmva/PyTorch_Generate_CNN_Model.py
++++ b/tutorials/tmva/PyTorch_Generate_CNN_Model.py
+@@ -56,7 +56,7 @@ def fit(model, train_loader, val_loader, num_epochs, batch_size, optimizer, crit
+ # print train statistics
+ running_train_loss += train_loss.item()
+ if i % 4 == 3: # print every 4 mini-batches
+- print(f"[{epoch+1}, {i+1}] train loss: {running_train_loss / 4 :.3f}")
++ print("[{}, {}] train loss: {:.3f}".format(epoch+1, i+1, running_train_loss / 4))
+ running_train_loss = 0.0
+
+ if schedule:
+@@ -75,15 +75,15 @@ def fit(model, train_loader, val_loader, num_epochs, batch_size, optimizer, crit
+
+ curr_val = running_val_loss / len(val_loader)
+ if save_best:
+- if best_val==None:
+- best_val = curr_val
+- best_val = save_best(model, curr_val, best_val)
++ if best_val is None:
++ best_val = curr_val
++ best_val = save_best(model, curr_val, best_val)
+
+ # print val statistics per epoch
+- print(f"[{epoch+1}] val loss: {curr_val :.3f}")
++ print("[{}] val loss: {:.3f}".format(epoch+1, curr_val))
+ running_val_loss = 0.0
+
+- print(f"Finished Training on {epoch+1} Epochs!")
++ print("Finished Training on {} Epochs!".format(epoch+1))
+
+ return model
+
+--
+2.30.2
+
diff --git a/root-ppc-codemodel.patch b/root-ppc-codemodel.patch
new file mode 100644
index 0000000..223dc7c
--- /dev/null
+++ b/root-ppc-codemodel.patch
@@ -0,0 +1,36 @@
+From 774ab9358d852e2c004564183de4a60eaaa5ac98 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Fri, 23 Apr 2021 21:40:14 +0200
+Subject: [PATCH 2/2] Actually request the use of the large code model for
+ ppc64/ppc64le
+
+Instead of erroring out with an assert.
+---
+ interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp b/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp
+index 46771aa8c0..93a48f31f3 100644
+--- a/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp
++++ b/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp
+@@ -73,14 +73,14 @@ CreateHostTargetMachine(const clang::CompilerInstance& CI) {
+ JTMB->getOptions().EmulatedTLS = false;
+ #endif // _WIN32
+
+- std::unique_ptr<TargetMachine> TM = cantFail(JTMB->createTargetMachine());
+-
+ #if defined(__powerpc64__) || defined(__PPC64__)
+ // We have to use large code model for PowerPC64 because TOC and text sections
+ // can be more than 2GB apart.
+- assert(TM->getCodeModel() >= CodeModel::Large);
++ JTMB->setCodeModel(CodeModel::Large);
+ #endif
+
++ std::unique_ptr<TargetMachine> TM = cantFail(JTMB->createTargetMachine());
++
+ // Forcefully disable GlobalISel, it might be enabled on AArch64 without
+ // optimizations. In tests on an Apple M1 after the upgrade to LLVM 9, this
+ // new instruction selection framework emits branches / calls that expect all
+--
+2.30.2
+
diff --git a/root-ppc-no-codemodel.patch b/root-ppc-no-codemodel.patch
new file mode 100644
index 0000000..3429097
--- /dev/null
+++ b/root-ppc-no-codemodel.patch
@@ -0,0 +1,13 @@
+diff --git a/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp b/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp
+index c98a3be0ed..f77d4adec2 100644
+--- a/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp
++++ b/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp
+@@ -77,7 +77,7 @@ CreateHostTargetMachine(const clang::CompilerInstance& CI) {
+ #if defined(__powerpc64__) || defined(__PPC64__)
+ // We have to use large code model for PowerPC64 because TOC and text sections
+ // can be more than 2GB apart.
+- JTMB->setCodeModel(CodeModel::Large);
++ //JTMB->setCodeModel(CodeModel::Large);
+ #endif
+
+ std::unique_ptr<TargetMachine> TM = cantFail(JTMB->createTargetMachine());
diff --git a/root-ptr-is-null-RooFit-TMVA.patch b/root-ptr-is-null-RooFit-TMVA.patch
new file mode 100644
index 0000000..3aa3acd
--- /dev/null
+++ b/root-ptr-is-null-RooFit-TMVA.patch
@@ -0,0 +1,80 @@
+From c65f3d96f3f4433bff9d40fa9cf1dec100867a07 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Tue, 8 Jun 2021 10:12:37 +0200
+Subject: [PATCH] Fix 'this' pointer is null warnings
+
+.../roofit/roofitcore/src/RooDataHist.cxx: In member function 'void RooDataHist::_adjustBinning(RooRealVar&, const TAxis&, RooRealVar*, Int_t*)':
+.../roofit/roofitcore/src/RooDataHist.cxx:595:122: warning: 'this' pointer is null [-Wnonnull]
+ 595 | coutE(InputArguments) << "RooDataHist::adjustBinning(" << GetName() << ") ERROR: dimension " << ourVar->GetName() << " must be real" << endl ;
+ | ^~~~~~~~~~~~~~~
+
+.../roofit/roofitcore/src/RooRealSumFunc.cxx: In constructor 'RooRealSumFunc::RooRealSumFunc(const char*, const char*, const RooArgList&, const RooArgList&)':
+.../roofit/roofitcore/src/RooRealSumFunc.cxx:156:35: warning: 'this' pointer is null [-Wnonnull]
+ 156 | << " is not of type RooAbsReal, fatal error" << endl;
+ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.../tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx: In member function 'void TMVA::DNN::TDataLoader<AData, TMVA::DNN::TReference<AReal> >::CopyInput(TMatrixT<AReal>&, TMVA::DNN::IndexIterator_t) [with AData = std::tuple<const std::vector<TMVA::Event*, std::allocator<TMVA::Event*> >&, const TMVA::DataSetInfo&>; AReal = float]':
+.../tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx:131:34: warning: 'this' pointer is null [-Wnonnull]
+ 131 | Int_t n = event->GetNVariables();
+ | ~~~~~~~~~~~~~~~~~~~~^~
+In file included from .../tmva/tmva/inc/TMVA/VariableTransformBase.h:48,
+ from .../tmva/tmva/inc/TMVA/Tools.h:58,
+ from .../tmva/tmva/inc/TMVA/DNN/GeneralLayer.h:36,
+ from .../tmva/tmva/inc/TMVA/DNN/CNN/ConvLayer.h:32,
+ from .../tmva/tmva/inc/TMVA/DNN/Architectures/Reference.h:24,
+ from .../tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx:17:
+.../tmva/tmva/inc/TMVA/Event.h:88:16: note: in a call to non-static member function 'UInt_t TMVA::Event::GetNVariables() const'
+ 88 | UInt_t GetNVariables() const;
+ | ^~~~~~~~~~~~~
+---
+ roofit/roofitcore/src/RooDataHist.cxx | 2 +-
+ roofit/roofitcore/src/RooRealSumFunc.cxx | 4 ++--
+ tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx | 2 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/roofit/roofitcore/src/RooDataHist.cxx b/roofit/roofitcore/src/RooDataHist.cxx
+index 84cf2c0f68..8dddb88e2b 100644
+--- a/roofit/roofitcore/src/RooDataHist.cxx
++++ b/roofit/roofitcore/src/RooDataHist.cxx
+@@ -591,7 +591,7 @@ void RooDataHist::importDHistSet(const RooArgList& /*vars*/, RooCategory& indexC
+ void RooDataHist::_adjustBinning(RooRealVar &theirVar, const TAxis &axis,
+ RooRealVar *ourVar, Int_t *offset)
+ {
+- if (!dynamic_cast<RooRealVar*>(ourVar)) {
++ if (!dynamic_cast<RooRealVar*>(static_cast<RooAbsArg*>(ourVar))) {
+ coutE(InputArguments) << "RooDataHist::adjustBinning(" << GetName() << ") ERROR: dimension " << ourVar->GetName() << " must be real" << endl ;
+ assert(0) ;
+ }
+diff --git a/roofit/roofitcore/src/RooRealSumFunc.cxx b/roofit/roofitcore/src/RooRealSumFunc.cxx
+index 3f78020acd..a1625d7e35 100644
+--- a/roofit/roofitcore/src/RooRealSumFunc.cxx
++++ b/roofit/roofitcore/src/RooRealSumFunc.cxx
+@@ -149,10 +149,10 @@ RooRealSumFunc::RooRealSumFunc(const char *name, const char *title, const RooArg
+ _coefList.add(*coef);
+ }
+
+- func = (RooAbsReal *)funcIter->Next();
++ func = (RooAbsArg *)funcIter->Next();
+ if (func) {
+ if (!dynamic_cast<RooAbsReal *>(func)) {
+- coutE(InputArguments) << "RooRealSumFunc::RooRealSumFunc(" << GetName() << ") last func " << coef->GetName()
++ coutE(InputArguments) << "RooRealSumFunc::RooRealSumFunc(" << GetName() << ") last func " << func->GetName()
+ << " is not of type RooAbsReal, fatal error" << endl;
+ assert(0);
+ }
+diff --git a/tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx b/tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx
+index 2465abf308..24a09d1fc0 100644
+--- a/tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx
++++ b/tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx
+@@ -128,7 +128,7 @@ void TDataLoader<TMVAInput_t, TReference<Real_t>>::CopyInput(TMatrixT<Real_t> &m
+ Event *event = nullptr;
+
+ Int_t m = matrix.GetNrows();
+- Int_t n = event->GetNVariables();
++ Int_t n = matrix.GetNcols();
+
+ // Copy input variables.
+
+--
+2.31.1
+
diff --git a/root-ptr-is-null-TStreamerInfo.patch b/root-ptr-is-null-TStreamerInfo.patch
new file mode 100644
index 0000000..869715c
--- /dev/null
+++ b/root-ptr-is-null-TStreamerInfo.patch
@@ -0,0 +1,32 @@
+From 1ca221f010fdcfb6249ae7b1cac77fbe29b86214 Mon Sep 17 00:00:00 2001
+From: Enrico Guiraud <enrico.guiraud(a)cern.ch>
+Date: Mon, 7 Jun 2021 11:02:48 +0200
+Subject: [PATCH] [io] Avoid nullptr deref when printing warning in
+ TStreamerInfo
+
+---
+ io/io/src/TStreamerInfo.cxx | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/io/io/src/TStreamerInfo.cxx b/io/io/src/TStreamerInfo.cxx
+index d545ab7be8..a026635890 100644
+--- a/io/io/src/TStreamerInfo.cxx
++++ b/io/io/src/TStreamerInfo.cxx
+@@ -1109,12 +1109,12 @@ void TStreamerInfo::BuildCheck(TFile *file /* = 0 */, Bool_t load /* = kTRUE */)
+ fClassVersion, GetName(), GetName(), GetName(), fClassVersion);
+ } else {
+ Warning("BuildCheck", "\n\
+- The StreamerInfo from %s does not match existing one (%s:%d)\n\
++ The StreamerInfo does not match existing one (%s:%d)\n\
+ The existing one has not been used yet and will be discarded.\n\
+ Reading should work properly, however writing object of\n\
+ type %s will not work properly. Most likely the version number\n\
+ of the class was not properly updated [See ClassDef(%s,%d)].",
+- file->GetName(), GetName(), fClassVersion, GetName(), GetName(), fClassVersion);
++ GetName(), fClassVersion, GetName(), GetName(), fClassVersion);
+ }
+ }
+ }
+--
+2.31.1
+
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 <mattias.ellert(a)physics.uu.se>
-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 <mattias.ellert(a)physics.uu.se>
-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 <mattias.ellert(a)physics.uu.se>
-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-stress-s390x.patch b/root-stress-s390x.patch
new file mode 100644
index 0000000..b1d9b9d
--- /dev/null
+++ b/root-stress-s390x.patch
@@ -0,0 +1,39 @@
+From 30cbc0d44364586ac64a3ac0fd6641e338549bbe Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Tue, 10 Aug 2021 06:33:17 +0200
+Subject: [PATCH] Adjust tests for s390x
+
+---
+ math/mathcore/test/stress/testGenVector.cxx | 2 +-
+ test/stressMathCore.cxx | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/math/mathcore/test/stress/testGenVector.cxx b/math/mathcore/test/stress/testGenVector.cxx
+index 8da429c395..df9061c88e 100644
+--- a/math/mathcore/test/stress/testGenVector.cxx
++++ b/math/mathcore/test/stress/testGenVector.cxx
+@@ -79,7 +79,7 @@ TYPED_TEST_P(GenVectorTest, TestGenVectors)
+ scale = this->fDim * 20;
+ if (this->fDim == 3 && this->V2Name() == "RhoEtaPhiVector") scale *= 12; // for problem with RhoEtaPhi
+ if (this->fDim == 4 && ( this->V2Name() == "PtEtaPhiMVector" || this->V2Name() == "PxPyPzMVector")) {
+-#if (defined(__arm__) || defined(__arm64__) || defined(__aarch64__))
++#if (defined(__arm__) || defined(__arm64__) || defined(__aarch64__) || defined(__s390x__))
+ scale *= 1.E7;
+ #else
+ scale *= 10;
+diff --git a/test/stressMathCore.cxx b/test/stressMathCore.cxx
+index 4d4695a8a0..b6d2d2c9e7 100644
+--- a/test/stressMathCore.cxx
++++ b/test/stressMathCore.cxx
+@@ -1120,7 +1120,7 @@ int testVector(int ngen, bool testio=false) {
+ scale = Dim*20;
+ if (Dim==3 && VecType<V2>::name() == "RhoEtaPhiVector") scale *= 12; // for problem with RhoEtaPhi
+ if (Dim==4 && ( VecType<V2>::name() == "PtEtaPhiMVector" || VecType<V2>::name() == "PxPyPzMVector")) {
+-#if (defined(__arm__) || defined(__arm64__) || defined(__aarch64__))
++#if (defined(__arm__) || defined(__arm64__) || defined(__aarch64__) || defined(__s390x__))
+ scale *= 1.E7;
+ #else
+ scale *= 10;
+--
+2.31.1
+
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 <mattias.ellert(a)physics.uu.se>
-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-unbundle-gtest.patch b/root-unbundle-gtest.patch
index 6821f22..ae180a2 100644
--- a/root-unbundle-gtest.patch
+++ b/root-unbundle-gtest.patch
@@ -1,7 +1,7 @@
-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 @@
+diff -ur root-6.24.02.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.24.02/cmake/modules/SearchInstalledSoftware.cmake
+--- root-6.24.02.orig/cmake/modules/SearchInstalledSoftware.cmake 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/cmake/modules/SearchInstalledSoftware.cmake 2021-08-11 10:56:26.680731609 +0200
+@@ -1699,102 +1699,17 @@
#---Download googletest--------------------------------------------------------------
if (testing)
@@ -62,7 +62,9 @@ diff -ur root-6.22.00.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.22
- # Wrap download, configure and build steps in a script to log output
- LOG_DOWNLOAD ON
- LOG_CONFIGURE ON
-- LOG_BUILD ON)
+- LOG_BUILD ON
+- TIMEOUT 600
+- )
-
- # Specify include dirs for gtest and gmock
- ExternalProject_Get_Property(googletest source_dir)
diff --git a/root-uring.patch b/root-uring.patch
new file mode 100644
index 0000000..129c38e
--- /dev/null
+++ b/root-uring.patch
@@ -0,0 +1,55 @@
+diff --git a/io/io/src/RRawFileUnix.cxx b/io/io/src/RRawFileUnix.cxx
+index 829c5e4cb6..417c3adf30 100644
+--- a/io/io/src/RRawFileUnix.cxx
++++ b/io/io/src/RRawFileUnix.cxx
+@@ -115,26 +115,33 @@ void ROOT::Internal::RRawFileUnix::OpenImpl()
+ void ROOT::Internal::RRawFileUnix::ReadVImpl(RIOVec *ioVec, unsigned int nReq)
+ {
+ #ifdef R__HAS_URING
+- if (RIoUring::IsAvailable()) {
+- RIoUring ring;
+- std::vector<RIoUring::RReadEvent> reads;
+- reads.reserve(nReq);
+- for (std::size_t i = 0; i < nReq; ++i) {
+- RIoUring::RReadEvent ev;
+- ev.fBuffer = ioVec[i].fBuffer;
+- ev.fOffset = ioVec[i].fOffset;
+- ev.fSize = ioVec[i].fSize;
+- ev.fFileDes = fFileDes;
+- reads.push_back(ev);
++ thread_local bool uring_failed = false;
++ if (!uring_failed) {
++ try {
++ RIoUring ring; // throws std::runtime_error
++ std::vector<RIoUring::RReadEvent> reads;
++ reads.reserve(nReq);
++ for (std::size_t i = 0; i < nReq; ++i) {
++ RIoUring::RReadEvent ev;
++ ev.fBuffer = ioVec[i].fBuffer;
++ ev.fOffset = ioVec[i].fOffset;
++ ev.fSize = ioVec[i].fSize;
++ ev.fFileDes = fFileDes;
++ reads.push_back(ev);
++ }
++ ring.SubmitReadsAndWait(reads.data(), nReq);
++ for (std::size_t i = 0; i < nReq; ++i) {
++ ioVec[i].fOutBytes = reads.at(i).fOutBytes;
++ }
++ return;
+ }
+- ring.SubmitReadsAndWait(reads.data(), nReq);
+- for (std::size_t i = 0; i < nReq; ++i) {
+- ioVec[i].fOutBytes = reads.at(i).fOutBytes;
++ catch(const std::runtime_error &e) {
++ Warning("RIoUring", "io_uring is unexpectedly not available because:\n%s", e.what());
++ Warning("RRawFileUnix",
++ "io_uring setup failed, falling back to blocking I/O in ReadV");
++ uring_failed = true;
+ }
+- return;
+ }
+- Warning("RRawFileUnix",
+- "io_uring setup failed, falling back to default ReadV implementation");
+ #endif
+ RRawFile::ReadVImpl(ioVec, nReq);
+ }
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 <mattias.ellert(a)physics.uu.se>
-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 <mattias.ellert(a)physics.uu.se>
-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 e61c683..26aeb7a 100644
--- a/root.spec
+++ b/root.spec
@@ -13,8 +13,6 @@
%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.
@@ -51,9 +49,9 @@
%global __provides_exclude_from ^(%{?python2_sitearch:%{python2_sitearch}|}%{python3_sitearch})/lib.*\\.so$
Name: root
-Version: 6.22.08
+Version: 6.24.02
%global libversion %(cut -d. -f 1-2 <<< %{version})
-Release: 11%{?dist}
+Release: 1%{?dist}
Summary: Numerical data analysis framework
License: LGPLv2+
@@ -83,105 +81,64 @@ Patch0: %{name}-fontconfig.patch
Patch1: %{name}-32bit-dataframe.patch
# Unbundle gtest
Patch2: %{name}-unbundle-gtest.patch
-# Fix multicore tests when running on machines with few cores
-# https://github.com/root-project/root/pull/8068
-Patch3: %{name}-fix-multicore-tests-with-few-cores.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
+Patch3: %{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
+Patch4: %{name}-memory-arm-x86.patch
# Don't install minicern static library
-Patch9: %{name}-dont-install-minicern.patch
+Patch5: %{name}-dont-install-minicern.patch
# Do not export Python modules in CMake config
-Patch10: %{name}-no-export-python-modules.patch
+Patch6: %{name}-no-export-python-modules.patch
# Don't create documentation notebooks
-Patch11: %{name}-doc-no-notebooks.patch
+Patch7: %{name}-doc-no-notebooks.patch
# Don't run tutorials that crash during doc generation
-Patch12: %{name}-doxygen-crash.patch
+Patch8: %{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
+Patch9: %{name}-old-gtest-compat.patch
# Run some test on 32 bit that upstream has disabled
-Patch15: %{name}-32bit-tests.patch
+Patch10: %{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
-# JupyROOT has problems loading JSRootCore.js in jupyterlab
-# Backported from upstream git
-# https://github.com/root-project/root/issues/8459
-# https://bugzilla.redhat.com/show_bug.cgi?id=1973189
-Patch38: %{name}-jupyroot-jupyterlab-compat.patch
-# Use local static script and style files for JupyROOT
-Patch39: %{name}-jupyroot-static.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
+Patch11: %{name}-epel7-ppc64le-pyroot.patch
+# Use local static script and style files for JsMVA
+Patch12: %{name}-jsmva-static.patch
+# Compatibility with older python versions (no f-strings)
+Patch13: %{name}-older-python.patch
+# Fix multicore tests when running on machines with few cores
+# https://github.com/root-project/root/pull/8068
+Patch14: %{name}-fix-multicore-tests-with-few-cores.patch
+# Reapply altivec fix lost in the LLVM 9 upgrade
+# https://github.com/root-project/root/pull/8069
+Patch15: %{name}-fix-ppc64le-compilation-with-gcc-10.patch
+# Actually request the use of the large code model for ppc64le
+# https://github.com/root-project/root/pull/8230
+Patch16: %{name}-ppc-codemodel.patch
+# Do not request the large code model for ppc64le
+# It causes segmentation faults
+Patch17: %{name}-ppc-no-codemodel.patch
+# Fall back to blocking I/O if uring fails
+# Backported
+# - commit 691403b2cc504fd4e3e7227894023913014a61ff
+# - commit 956951ee2af83426d73ad72b2d966f9f1acbea83
+# - commit 16e64da11edf91fcf31c2fc474f573fca2ee863c
+# - commit 311a6822f9b0fd438c4210ed60617b45f2ddbe74
+Patch18: %{name}-uring.patch
+# Add missing classes in LinkDef.h files
+# Backported
+Patch19: %{name}-add-TTreeProcessorMP-to-LinkDef-file.patch
+Patch20: %{name}-add-RDisplay-to-LinkDef-file.patch
+Patch21: %{name}-add-RCutFlowReport-to-LinkDef-file.patch
+# Fix "pointer is null" warnings
+# Backported
+Patch22: %{name}-ptr-is-null-RooFit-TMVA.patch
+Patch23: %{name}-ptr-is-null-TStreamerInfo.patch
+# Fix two failing tests on s390x
+# https://github.com/root-project/root/pull/8826
+Patch24: %{name}-stress-s390x.patch
BuildRequires: make
%if %{?rhel}%{!?rhel:0} == 7
@@ -275,6 +232,13 @@ BuildRequires: cmake-data >= 3.18.3-1
%else
BuildRequires: openblas-devel
%endif
+BuildRequires: json-devel
+%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8
+BuildRequires: liburing-devel
+%endif
+%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8
+BuildRequires: python%{python3_pkgversion}-pandas
+%endif
BuildRequires: doxygen
BuildRequires: graphviz
BuildRequires: yuicompressor
@@ -527,6 +491,17 @@ Requires: %{name}-tmva = %{version}-%{release}
%description -n python2-jsmva
TMVA interface used by JupyROOT.
+
+%package -n python2-distrdf
+Summary: Distributed RDataFrame
+BuildArch: noarch
+%{?python_provide:%python_provide python2-distrdf}
+Requires: python2-%{name} = %{version}-%{release}
+Requires: %{name}-tree-dataframe = %{version}-%{release}
+
+%description -n python2-distrdf
+A layer on top of RDataFrame to enable distributed computations. It is
+a port of the previously known PyRDF python package.
%endif
%package -n python%{python3_pkgversion}-%{name}
@@ -573,6 +548,17 @@ Requires: %{name}-tmva = %{version}-%{release}
%description -n python%{python3_pkgversion}-jsmva
TMVA interface used by JupyROOT.
+%package -n python%{python3_pkgversion}-distrdf
+Summary: Distributed RDataFrame
+BuildArch: noarch
+%{?python_provide:%python_provide python%{python3_pkgversion}-distrdf}
+Requires: python%{python3_pkgversion}-%{name} = %{version}-%{release}
+Requires: %{name}-tree-dataframe = %{version}-%{release}
+
+%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.
+
%package r
Summary: R interface for ROOT
Requires: %{name}-core%{?_isa} = %{version}-%{release}
@@ -870,6 +856,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}
@@ -1298,7 +1285,7 @@ access to http based storage such as webdav and S3.
Summary: HTTP server extension for ROOT
Requires: %{name}-core%{?_isa} = %{version}-%{release}
Requires: %{name}-io%{?_isa} = %{version}-%{release}
-Requires: js-jsroot
+Requires: js-jsroot >= 6
# Library split (net-httpsniff from net-http)
Obsoletes: %{name}-net-http < 6.14.00
@@ -1423,6 +1410,7 @@ 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)
@@ -1454,6 +1442,7 @@ 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}-roofit-batchcompute%{?_isa} = %{version}-%{release}
Requires: %{name}-tree%{?_isa} = %{version}-%{release}
# Package split / Library split (from roofit)
Obsoletes: %{name}-roofit < 6.20.00
@@ -1479,6 +1468,7 @@ License: BSD
Requires: %{name}-core%{?_isa} = %{version}-%{release}
Requires: %{name}-mathcore%{?_isa} = %{version}-%{release}
Requires: %{name}-mathmore%{?_isa} = %{version}-%{release}
+Requires: %{name}-roofit-batchcompute%{?_isa} = %{version}-%{release}
Requires: %{name}-roofit-core%{?_isa} = %{version}-%{release}
# Package split / Library split (from roofit)
Obsoletes: %{name}-roofit < 6.20.00
@@ -1498,6 +1488,25 @@ 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
+Requires: %{name}-core%{?_isa} = %{version}-%{release}
+Requires: %{name}-mathcore%{?_isa} = %{version}-%{release}
+Requires: %{name}-roofit-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 roostats
Summary: Statistical tools built on top of RooFit
License: BSD
@@ -1721,7 +1730,7 @@ written in python.
Summary: Static files for the Jupyter ROOT Notebook
BuildArch: noarch
Requires: %{name}-core = %{version}-%{release}
-Requires: js-jsroot
+Requires: js-jsroot >= 6
%if %{?fedora}%{!?fedora:0} >= 26
# jupyter-notebook not available in
# Fedora <= 25 or RHEL/EPEL - some functionality missing
@@ -1754,6 +1763,7 @@ Requires: %{name}-geom%{?_isa} = %{version}-%{release}
Requires: %{name}-graf%{?_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}
@@ -1770,6 +1780,7 @@ Summary: GUI browsable (ROOT 7)
Requires: %{name}-core%{?_isa} = %{version}-%{release}
Requires: %{name}-graf-gpadv7%{?_isa} = %{version}-%{release}
Requires: %{name}-hist%{?_isa} = %{version}-%{release}
+Requires: %{name}-hist-draw%{?_isa} = %{version}-%{release}
Requires: %{name}-io%{?_isa} = %{version}-%{release}
Requires: %{name}-tree%{?_isa} = %{version}-%{release}
@@ -1781,6 +1792,8 @@ 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}-geom%{?_isa} = %{version}-%{release}
+Requires: %{name}-graf3d-eve7%{?_isa} = %{version}-%{release}
Requires: %{name}-gui-browsable%{?_isa} = %{version}-%{release}
Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release}
Requires: %{name}-gui-webgui6%{?_isa} = %{version}-%{release}
@@ -1897,21 +1910,6 @@ This package contains an ntuple extension for ROOT 7.
%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
-%patch38 -p1
-%patch39 -p1
# Remove bundled sources in order to be sure they are not used
# * afterimage
@@ -1920,8 +1918,17 @@ rm -rf graf2d/asimage/src/libAfterImage
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
+# * davix, glew, lz4, nlohmann, openssl, pcre, tbb, xxhash, zlib, zstd
+rm -rf builtins/davix
+rm -rf builtins/glew
+rm -rf builtins/lz4
+rm -rf builtins/nlohmann
+rm -rf builtins/openssl
+rm -rf builtins/pcre
+rm -rf builtins/tbb
+rm -rf builtins/xxhash
+rm -rf builtins/zlib
+rm -rf builtins/zstd
# * lzma
rm -rf core/lzma/src/*.tar.gz
# * gl2ps
@@ -1944,9 +1951,6 @@ sed /RWrap_libcpp_string_view.h/d -i build/unix/module.modulemap
# * jsroot
rm -rf js/*
-# 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/*
@@ -1995,6 +1999,7 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
-Dbuiltin_afterimage:BOOL=OFF \
-Dbuiltin_cfitsio:BOOL=OFF \
-Dbuiltin_clang:BOOL=ON \
+ -Dbuiltin_cling:BOOL=ON \
-Dbuiltin_davix:BOOL=OFF \
-Dbuiltin_fftw3:BOOL=OFF \
-Dbuiltin_freetype:BOOL=OFF \
@@ -2005,7 +2010,9 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
-Dbuiltin_llvm:BOOL=ON \
-Dbuiltin_lz4:BOOL=OFF \
-Dbuiltin_lzma:BOOL=OFF \
+ -Dbuiltin_nlohmannjson:BOOL=OFF \
-Dbuiltin_openssl:BOOL=OFF \
+ -Dbuiltin_openui5:BOOL=ON \
-Dbuiltin_pcre:BOOL=OFF \
-Dbuiltin_tbb:BOOL=OFF \
-Dbuiltin_unuran:BOOL=OFF \
@@ -2020,20 +2027,15 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
-Darrow:BOOL=OFF \
-Dasimage:BOOL=ON \
-Dccache:BOOL=OFF \
+ -Ddistcc:BOOL=OFF \
-Dcefweb:BOOL=OFF \
-Dclad:BOOL=OFF \
-Dcocoa:BOOL=OFF \
-Dcuda:BOOL=OFF \
%if %{root7}
-%if %{?fedora}%{!?fedora:0} >= 34
- -DCMAKE_CXX_STANDARD=17 \
-%else
- -DCMAKE_CXX_STANDARD=14 \
-%endif
-Droot7:BOOL=ON \
-Dwebgui:BOOL=ON \
%else
- -DCMAKE_CXX_STANDARD=11 \
-Droot7:BOOL=OFF \
-Dwebgui:BOOL=OFF \
%endif
@@ -2107,6 +2109,11 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
-Dtmva-pymva:BOOL=ON \
-Dtmva-rmva:BOOL=ON \
-Dunuran:BOOL=ON \
+%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8
+ -During:BOOL=ON \
+%else
+ -During:BOOL=OFF \
+%endif
-Dvc:BOOL=OFF \
-Dvdt:BOOL=OFF \
-Dveccore:BOOL=OFF \
@@ -2203,6 +2210,7 @@ rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python2_version_uscore}.so
mkdir -p %{buildroot}%{python2_sitelib}
cp -pr %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python2_sitelib}
+cp -pr %{buildroot}%{_libdir}/%{name}/DistRDF %{buildroot}%{python2_sitelib}
# Create .egg-info files so that rpm auto-generates provides
echo 'Name: ROOT' > \
@@ -2217,6 +2225,10 @@ echo 'Name: JsMVA' > \
%{buildroot}%{python2_sitelib}/JsMVA-%{version}.egg-info
echo 'Version: %{version}' >> \
%{buildroot}%{python2_sitelib}/JsMVA-%{version}.egg-info
+echo 'Name: DistRDF' > \
+ %{buildroot}%{python2_sitelib}/DistRDF-%{version}.egg-info
+echo 'Version: %{version}' >> \
+ %{buildroot}%{python2_sitelib}/DistRDF-%{version}.egg-info
%endif
@@ -2225,7 +2237,7 @@ 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
+ %{buildroot}%{python3_sitearch}/libcppyy%{python3_version_uscore}%{python3_ext_suffix}
mv %{buildroot}%{_libdir}/%{name}/cppyy_backend %{buildroot}%{python3_sitearch}
ln -s ../../root/libcppyy_backend%{python3_version_uscore}.so.%{version} \
@@ -2233,18 +2245,19 @@ ln -s ../../root/libcppyy_backend%{python3_version_uscore}.so.%{version} \
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
+ %{buildroot}%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}%{python3_ext_suffix}
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
+ %{buildroot}%{python3_sitearch}/libJupyROOT%{python3_version_uscore}%{python3_ext_suffix}
rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so.%{libversion}
rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so
mkdir -p %{buildroot}%{python3_sitelib}
mv %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python3_sitelib}
+mv %{buildroot}%{_libdir}/%{name}/DistRDF %{buildroot}%{python3_sitelib}
# Create .egg-info files so that rpm auto-generates provides
echo 'Name: ROOT' > \
@@ -2259,6 +2272,10 @@ echo 'Name: JsMVA' > \
%{buildroot}%{python3_sitelib}/JsMVA-%{version}.egg-info
echo 'Version: %{version}' >> \
%{buildroot}%{python3_sitelib}/JsMVA-%{version}.egg-info
+echo 'Name: DistRDF' > \
+ %{buildroot}%{python3_sitelib}/DistRDF-%{version}.egg-info
+echo 'Version: %{version}' >> \
+ %{buildroot}%{python3_sitelib}/DistRDF-%{version}.egg-info
# Put jupyter stuff in the right places
mkdir -p %{buildroot}%{_datadir}/jupyter/kernels
@@ -2284,8 +2301,7 @@ sed -e '/^\#!/d' \
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
# Replace the rootnb.exe wrapper with a simpler one
cat > %{buildroot}%{_bindir}/rootnb.exe << EOF
@@ -2345,6 +2361,9 @@ rm %{buildroot}%{_datadir}/%{name}/macros/fileopen.C
# Remove plugin definitions for non-built and obsolete plugins
pushd %{buildroot}%{_datadir}/%{name}/plugins
+%if ! %{root7}
+rm TBrowserImp/P030_RWebBrowserImp.C
+%endif
rm TDataSetManager/P020_TDataSetManagerAliEn.C
rm TFile/P070_TAlienFile.C
rm TGLManager/P020_TGWin32GLManager.C
@@ -2494,11 +2513,22 @@ popd
# http://root.cern.ch/files/root_download_stats.sqlite
#
# - gtest-tree-treeplayer-test-treeprocessormt-remotefiles
-# - tutorial-dataframe-df102_NanoAODDimuonAnalysis
-# - tutorial-dataframe-df103_NanoAODHiggsAnalysis
+# - tutorial-dataframe-df102_NanoAODDimuonAnalysis(-py)?
+# - tutorial-dataframe-df103_NanoAODHiggsAnalysis(-py)?
# reads input data over network:
# root://eospublic.cern.ch//eos/root-eos/cms_opendata_2012_nanoaod/
#
+# - tutorial-dataframe-df104_HiggsToTwoPhotons-py
+# - tutorial-dataframe-df105_WBosonAnalysis-py
+# - tutorial-dataframe-df106_HiggsToFourLeptons-py
+# - tutorial-dataframe-df107_SingleTopAnalysis-py
+# reads input data over network:
+# root://eospublic.cern.ch//eos/opendata/atlas/OutreachDatasets/2020-01-22/
+#
+# - tutorial-v7-climate-global_temperatures
+# reads input data over network
+# http://root.cern./files/tutorials/GlobalLandTemperaturesByCity.csv
+#
# - tutorial-v7-ntuple-ntpl003_lhcbOpenData
# reads input data over network
# http://root.cern.ch/files/LHCb/lhcb_B2HHH_MagnetUp.root (425 MB)
@@ -2525,9 +2555,32 @@ popd
# reads input data over network
# http://root.cern/files/tmva101.root
#
+# - pyunittests-pyroot-dependency-versions
# - pyunittests-pyroot-numbadeclare
+# - test-import-numba
# - tutorial-pyroot-pyroot004_NumbaDeclare-py
# these tests require the numba python module which is not available
+#
+# - tutorial-v7-concurrentfill.cxx
+# - tutorial-v7-draw.cxx
+# - tutorial-v7-draw_frame.cxx
+# - tutorial-v7-draw_legend.cxx
+# - tutorial-v7-draw_mt.cxx
+# - tutorial-v7-draw_rh1.cxx
+# - tutorial-v7-draw_rh1_large.cxx
+# - tutorial-v7-draw_rh2.cxx
+# - tutorial-v7-draw_rh2_colz.cxx
+# - tutorial-v7-draw_rh2_large.cxx
+# - tutorial-v7-draw_rh3.cxx
+# - tutorial-v7-draw_rh3_large.cxx
+# - tutorial-v7-draw_subpads.cxx
+# - tutorial-v7-histops.cxx
+# - tutorial-v7-perf.cxx
+# - tutorial-v7-perfcomp.cxx
+# - tutorial-v7-simple.cxx
+# Fails with "already deserialized this template specialization"
+# https://github.com/root-project/root/issues/8073
+
excluded="\
test-stressIOPlugins|\
tutorial-dataframe-df101_h1Analysis|\
@@ -2541,6 +2594,11 @@ tutorial-dataframe-df..._SQlite|\
gtest-tree-treeplayer-test-treeprocessormt-remotefiles|\
tutorial-dataframe-df102_NanoAODDimuonAnalysis|\
tutorial-dataframe-df103_NanoAODHiggsAnalysis|\
+tutorial-dataframe-df104_HiggsToTwoPhotons-py|\
+tutorial-dataframe-df105_WBosonAnalysis-py|\
+tutorial-dataframe-df106_HiggsToFourLeptons-py|\
+tutorial-dataframe-df107_SingleTopAnalysis-py|\
+tutorial-v7-climate-global_temperatures|\
tutorial-v7-ntuple-ntpl003_lhcbOpenData|\
tutorial-v7-ntuple-ntpl004_dimuon|\
tutorial-v7-line.cxx|\
@@ -2550,8 +2608,48 @@ gtest-tmva-tmva-test-rstandardscaler|\
tutorial-tmva-tmva003_RReader|\
tutorial-tmva-tmva004_RStandardScaler|\
tutorial-tmva-tmva103_Application|\
+pyunittests-pyroot-dependency-versions|\
pyunittests-pyroot-numbadeclare|\
-tutorial-pyroot-pyroot004_NumbaDeclare-py"
+test-import-numba|\
+tutorial-pyroot-pyroot004_NumbaDeclare-py|\
+tutorial-v7-concurrentfill.cxx|\
+tutorial-v7-draw.cxx|\
+tutorial-v7-draw_frame.cxx|\
+tutorial-v7-draw_legend.cxx|\
+tutorial-v7-draw_mt.cxx|\
+tutorial-v7-draw_rh1.cxx|\
+tutorial-v7-draw_rh1_large.cxx|\
+tutorial-v7-draw_rh2.cxx|\
+tutorial-v7-draw_rh2_colz.cxx|\
+tutorial-v7-draw_rh2_large.cxx|\
+tutorial-v7-draw_rh3.cxx|\
+tutorial-v7-draw_rh3_large.cxx|\
+tutorial-v7-draw_subpads.cxx|\
+tutorial-v7-histops.cxx|\
+tutorial-v7-perf.cxx|\
+tutorial-v7-perfcomp.cxx|\
+tutorial-v7-simple.cxx"
+
+%if %{?rhel}%{!?rhel:0} == 7
+# - test-import-pandas
+# - tutorial-dataframe-df026_AsNumpyArrays-py
+# requires the pandas python module which is not available in EPEL 7
+#
+# - tutorial-multicore-mp001_fillHistos
+# - tutorial-multicore-mp101_fillNtuples
+# - tutorial-multicore-mp102_readNtuplesFillHistosAndFit
+# - tutorial-multicore-mp201_parallelHistoFill
+# fails intermittently on EPEL 7 with the error
+# symbol '_Z6MPRecvP7TSocket' unresolved while linking
+# symbol '_Z6MPSendP7TSocketj' unresolved while linking
+excluded="${excluded}|\
+test-import-pandas|\
+tutorial-dataframe-df026_AsNumpyArrays-py|\
+tutorial-multicore-mp001_fillHistos|\
+tutorial-multicore-mp101_fillNtuples|\
+tutorial-multicore-mp102_readNtuplesFillHistosAndFit|\
+tutorial-multicore-mp201_parallelHistoFill"
+%endif
%ifarch %{ix86} %{arm}
# Tests failing on 32 bit architectures (dataframe)
@@ -2559,51 +2657,226 @@ tutorial-pyroot-pyroot004_NumbaDeclare-py"
# - gtest-tree-dataframe-test-dataframe-cache
# - gtest-tree-dataframe-test-dataframe-callbacks
# - gtest-tree-dataframe-test-dataframe-colnames
+# - gtest-tree-dataframe-test-dataframe-concurrency
# - 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-leaves
# - gtest-tree-dataframe-test-dataframe-ranges
+# - gtest-tree-dataframe-test-dataframe-regression
# - gtest-tree-dataframe-test-dataframe-simple
# - gtest-tree-dataframe-test-dataframe-snapshot
-# - gtest-tree-dataframe-test-datasource-root
+# - gtest-tree-dataframe-test-dataframe-vecops
+# - gtest-tree-dataframe-test-datasource-csv
+# - gtest-tree-dataframe-test-datasource-more
+# - gtest-tree-dataframe-test-datasource-sqlite
# - 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-concurrency|\
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-leaves|\
gtest-tree-dataframe-test-dataframe-ranges|\
+gtest-tree-dataframe-test-dataframe-regression|\
gtest-tree-dataframe-test-dataframe-simple|\
gtest-tree-dataframe-test-dataframe-snapshot|\
-gtest-tree-dataframe-test-datasource-root|\
+gtest-tree-dataframe-test-dataframe-vecops|\
+gtest-tree-dataframe-test-datasource-csv|\
+gtest-tree-dataframe-test-datasource-more|\
+gtest-tree-dataframe-test-datasource-sqlite|\
gtest-tree-dataframe-test-datasource-trivial"
%endif
%ifarch %{arm}
-# This test fails on 32 bit arm
+# 32 bit arm specific failures
+#
+# - gtest-tree-tree-test-testBulkApi
# - gtest-tree-tree-test-testBulkApiSillyStruct
-excluded="${excluded}|gtest-tree-tree-test-testBulkApiSillyStruct"
+# segmentation fault - bus error
+#
+# - gtest-tree-dataframe-test-dataframe-histomodels
+# - gtest-tree-ntuple-v7-test-ntuple-rdf
+# - pyunittests-dataframe-cache
+# - pyunittests-dataframe-histograms
+# - pyunittests-dataframe-merge-results
+# - pyunittests-dataframe-misc
+# - pyunittests-pyroot-pyz-rdataframe-makenumpy
+# - pyunittests-pyroot-pyz-tf-pycallables
+# - test-stressiterators-interpreted
+# - tutorial-dataframe-df001_introduction(-py)
+# - tutorial-dataframe-df002_dataModel(-py)
+# - tutorial-dataframe-df003_profiles(-py)
+# - tutorial-dataframe-df005_fillAnyObject
+# - tutorial-dataframe-df006_ranges(-py)
+# - tutorial-dataframe-df007_snapshot(-py)
+# - tutorial-dataframe-df010_trivialDataSource(-py)
+# - tutorial-dataframe-df012_DefinesAndFiltersAsStrings(-py)
+# - tutorial-dataframe-df014_CSVDataSource(-py)
+# - tutorial-dataframe-df015_LazyDataSource
+# - tutorial-dataframe-df016_vecOps(-py)
+# - tutorial-dataframe-df017_vecOpsHEP(-py)
+# - tutorial-dataframe-df019_Cache(-py)
+# - tutorial-dataframe-df020_helpers
+# - tutorial-dataframe-df021_createTGraph(-py)
+# - tutorial-dataframe-df022_useKahan
+# - tutorial-dataframe-df025_RNode
+# - tutorial-dataframe-df031_Stats(-py)
+# - tutorial-hist-sparsehist
+# - tutorial-r-example
+# - tutorial-r-DataFrame
+# - tutorial-r-Function
+# - tutorial-r-Functor
+# - tutorial-r-GlobalMinimization
+# - tutorial-r-Integration
+# - tutorial-r-Minimization
+# Not implemented relocation type!
+excluded="${excluded}|\
+gtest-tree-tree-test-testBulkApi\$\$|\
+gtest-tree-tree-test-testBulkApiSillyStruct|\
+gtest-tree-dataframe-test-dataframe-histomodels|\
+gtest-tree-ntuple-v7-test-ntuple-rdf|\
+pyunittests-dataframe-cache|\
+pyunittests-dataframe-histograms|\
+pyunittests-dataframe-merge-results|\
+pyunittests-dataframe-misc|\
+pyunittests-pyroot-pyz-rdataframe-makenumpy|\
+pyunittests-pyroot-pyz-tf-pycallables|\
+test-stressiterators-interpreted|\
+tutorial-dataframe-df001_introduction|\
+tutorial-dataframe-df002_dataModel|\
+tutorial-dataframe-df003_profiles|\
+tutorial-dataframe-df005_fillAnyObject|\
+tutorial-dataframe-df006_ranges|\
+tutorial-dataframe-df007_snapshot|\
+tutorial-dataframe-df010_trivialDataSource|\
+tutorial-dataframe-df012_DefinesAndFiltersAsStrings|\
+tutorial-dataframe-df014_CSVDataSource|\
+tutorial-dataframe-df015_LazyDataSource|\
+tutorial-dataframe-df016_vecOps|\
+tutorial-dataframe-df017_vecOpsHEP|\
+tutorial-dataframe-df019_Cache|\
+tutorial-dataframe-df020_helpers|\
+tutorial-dataframe-df021_createTGraph|\
+tutorial-dataframe-df022_useKahan|\
+tutorial-dataframe-df025_RNode|\
+tutorial-dataframe-df031_Stats|\
+tutorial-hist-sparsehist|\
+tutorial-r-example|\
+tutorial-r-DataFrame|\
+tutorial-r-Function|\
+tutorial-r-Functor|\
+tutorial-r-GlobalMinimization|\
+tutorial-r-Integration|\
+tutorial-r-Minimization"
%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"
+excluded="${excluded}|test-stresshistofit\$\$"
%endif
-%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"
+%ifarch %{power64}
+# PPC64LE specific failures
+#
+# - test-stressgraphics(-interpreted)
+excluded="${excluded}|test-stressgraphics"
+
+%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8
+# - pyunittests-pyroot-pyz-array-interface
+# - pyunittests-pyroot-pyz-rdataframe-asnumpy
+# - pyunittests-pyroot-pyz-rdataframe-makenumpy
+# - pyunittests-pyroot-pyz-rvec-asrvec
+# - pyunittests-pyroot-pyz-ttree-asmatrix
+# - tutorial-dataframe-df026_AsNumpyArrays-py
+# - tutorial-pyroot-pyroot001_arrayInterface-py
+# - tutorial-pyroot-pyroot002_TTreeAsMatrix-py
+excluded="${excluded}|\
+pyunittests-pyroot-pyz-array-interface|\
+pyunittests-pyroot-pyz-rdataframe-asnumpy|\
+pyunittests-pyroot-pyz-rdataframe-makenumpy|\
+pyunittests-pyroot-pyz-rvec-asrvec|\
+pyunittests-pyroot-pyz-ttree-asmatrix|\
+tutorial-dataframe-df026_AsNumpyArrays-py|\
+tutorial-pyroot-pyroot001_arrayInterface-py|\
+tutorial-pyroot-pyroot002_TTreeAsMatrix-py"
+%endif
+
+%if %{?fedora}%{!?fedora:0}
+# - pyunittests-pyroot-pyz-rtensor
+# - pyunittests-pyroot-pyz-ttree-branch
+# - pyunittests-pyroot-pyz-ttree-setbranchaddress
+# - tutorial-r-example
+# - tutorial-r-DataFrame
+# - tutorial-r-Function
+# - tutorial-r-Functor
+# - tutorial-r-GlobalMinimization
+# - tutorial-r-Integration
+# - tutorial-r-Interpolation
+# - tutorial-r-Minimization
+# - tutorial-r-SimpleFitting
+# - tutorial-tmva-envelope-classification
+# - tutorial-tmva-TMVA*
+# Relocation R_PPC64_REL32 overflow
+excluded="${excluded}|\
+pyunittests-pyroot-pyz-rtensor|\
+pyunittests-pyroot-pyz-ttree-branch|\
+pyunittests-pyroot-pyz-ttree-setbranchaddress|\
+tutorial-r-example|\
+tutorial-r-DataFrame|\
+tutorial-r-Function|\
+tutorial-r-Functor|\
+tutorial-r-GlobalMinimization|\
+tutorial-r-Integration|\
+tutorial-r-Interpolation|\
+tutorial-r-Minimization|\
+tutorial-r-SimpleFitting|\
+tutorial-tmva-envelope-classification|\
+tutorial-tmva-TMVA"
+%endif
+%endif
+
+%ifarch s390x
+# s390x specific failures
+#
+# - gtest-roofit-roofitcore-test-testNaNPacker
+# - gtest-tree-ntuple-v7-test-ntuple-basics
+# - gtest-tree-ntuple-v7-test-ntuple-extended
+# - gtest-tree-ntuple-v7-test-ntuple-minifile
+# - gtest-tree-ntuple-v7-test-ntuple-storage
+# - pyunittests-pyroot-pyz-rtensor
+# - test-stresshistogram(-interpreted)
+# - test-stresshistofit(-interpreted)
+# - tutorial-dataframe-df006_ranges-py
+# - tutorial-roofit-rf203_ranges-py
+# - tutorial-roofit-rf612_recoverFromInvalidParameters
+# - tutorial-roofit-rf902_numgenconfig-py
+# - tutorial-v7-ntuple-ntpl005_introspection
+excluded="${excluded}|\
+gtest-roofit-roofitcore-test-testNaNPacker|\
+gtest-tree-ntuple-v7-test-ntuple-basics|\
+gtest-tree-ntuple-v7-test-ntuple-extended|\
+gtest-tree-ntuple-v7-test-ntuple-minifile|\
+gtest-tree-ntuple-v7-test-ntuple-storage|\
+pyunittests-pyroot-pyz-rtensor|\
+test-stresshistogram|\
+test-stresshistofit|\
+tutorial-dataframe-df006_ranges-py|\
+tutorial-roofit-rf203_ranges-py|\
+tutorial-roofit-rf612_recoverFromInvalidParameters|\
+tutorial-roofit-rf902_numgenconfig-py|\
+tutorial-v7-ntuple-ntpl005_introspection"
%endif
# Filter out parts of tests that require remote network access
-GTEST_FILTER=-RRawFile.Remote:RSqliteDS.Davix \
+GTEST_FILTER=-RCsvDS.Remote:RRawFile.Remote:RSqliteDS.Davix \
make test ARGS="%{?_smp_mflags} --output-on-failure -E \"${excluded}\""
popd
@@ -2652,6 +2925,7 @@ if [ -e /etc/jupyter/jupyter_notebook_config.py ] ; then
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}/javascript/jsroot')
c.NotebookApp.extra_static_paths.append('%{_datadir}/%{name}/notebook')
# Extra static path for JupyROOT - end - do not remove this line
EOF
@@ -2660,6 +2934,7 @@ if [ -e /etc/jupyter/jupyter_server_config.py ] ; then
fi
cat << EOF >> /etc/jupyter/jupyter_server_config.py
# Extra static path for JupyROOT - start - do not remove this line
+c.ServerApp.extra_static_paths.append('%{_datadir}/javascript/jsroot')
c.ServerApp.extra_static_paths.append('%{_datadir}/%{name}/notebook')
# Extra static path for JupyROOT - end - do not remove this line
EOF
@@ -2768,6 +3043,7 @@ fi
%ldconfig_scriptlets roofit
%ldconfig_scriptlets roofit-core
%ldconfig_scriptlets roofit-more
+%ldconfig_scriptlets roofit-batchcompute
%ldconfig_scriptlets roostats
%ldconfig_scriptlets sql-mysql
%ldconfig_scriptlets sql-odbc
@@ -2886,13 +3162,12 @@ fi
# They therefore should not be marked doc.
%{_pkgdocdir}/CREDITS
%{_pkgdocdir}/LICENSE
-%doc %{_pkgdocdir}/README
+%doc %{_pkgdocdir}/DEVELOPMENT.md
%doc %{_pkgdocdir}/ReleaseNotes
%license LICENSE LGPL2_1.txt
%files multiproc -f includelist-core-multiproc
%{_libdir}/%{name}/libMultiProc.*
-%{_libdir}/%{name}/libMultiProc_rdict.pcm
%files cling
%{_bindir}/genreflex
@@ -2936,6 +3211,10 @@ fi
%files -n python2-jsmva
%{python2_sitelib}/JsMVA
%{python2_sitelib}/JsMVA-*.egg-info
+
+%files -n python2-distrdf
+%{python2_sitelib}/DistRDF
+%{python2_sitelib}/DistRDF-*.egg-info
%endif
%files -n python%{python3_pkgversion}-%{name} -f includelist-bindings-pyroot
@@ -2943,9 +3222,9 @@ fi
%{python3_sitearch}/cppyy_backend
%{python3_sitearch}/ROOT
%{python3_sitearch}/ROOT-*.egg-info
-%{python3_sitearch}/libcppyy%{python3_version_uscore}.%{py3_soabi}.so
+%{python3_sitearch}/libcppyy%{python3_version_uscore}%{python3_ext_suffix}
%{python3_sitearch}/libcppyy_backend%{python3_version_uscore}.so
-%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}.%{py3_soabi}.so
+%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}%{python3_ext_suffix}
%{_libdir}/%{name}/libcppyy%{python3_version_uscore}.*
%{_libdir}/%{name}/libcppyy_backend%{python3_version_uscore}.*
%dir %{_includedir}/%{name}/CPyCppyy
@@ -2953,7 +3232,7 @@ fi
%files -n python%{python3_pkgversion}-jupyroot
%{python3_sitearch}/JupyROOT
%{python3_sitearch}/JupyROOT-*.egg-info
-%{python3_sitearch}/libJupyROOT%{python3_version_uscore}.%{py3_soabi}.so
+%{python3_sitearch}/libJupyROOT%{python3_version_uscore}%{python3_ext_suffix}
%{_datadir}/jupyter/kernels/python%{python3_pkgversion}-jupyroot
%doc bindings/jupyroot/README.md
@@ -2961,6 +3240,10 @@ fi
%{python3_sitelib}/JsMVA
%{python3_sitelib}/JsMVA-*.egg-info
+%files -n python%{python3_pkgversion}-distrdf
+%{python3_sitelib}/DistRDF
+%{python3_sitelib}/DistRDF-*.egg-info
+
%files r -f includelist-bindings-r
%{_libdir}/%{name}/libRInterface.*
%{_libdir}/%{name}/libRInterface_rdict.pcm
@@ -3411,6 +3694,11 @@ fi
%{_libdir}/%{name}/libRooFitMore.*
%{_libdir}/%{name}/libRooFitMore_rdict.pcm
+%files roofit-batchcompute -f includelist-roofit-batchcompute
+%{_libdir}/%{name}/libRooBatchCompute.*
+%{_libdir}/%{name}/libRooBatchCompute_*
+%doc roofit/batchcompute/README.md
+
%files roostats -f includelist-roofit-roostats
%{_libdir}/%{name}/libRooStats.*
%{_libdir}/%{name}/libRooStats_rdict.pcm
@@ -3519,6 +3807,7 @@ fi
%files gui-browsable -f includelist-gui-browsable
%{_libdir}/%{name}/libROOTBrowsable.*
%{_libdir}/%{name}/libROOTBrowsable_rdict.pcm
+%{_libdir}/%{name}/libROOTBranchBrowseProvider.*
%{_libdir}/%{name}/libROOTHistDrawProvider.*
%{_libdir}/%{name}/libROOTLeafDraw6Provider.*
%{_libdir}/%{name}/libROOTLeafDraw7Provider.*
@@ -3528,6 +3817,11 @@ fi
%files gui-browserv7 -f includelist-gui-browserv7
%{_libdir}/%{name}/libROOTBrowserv7.*
%{_libdir}/%{name}/libROOTBrowserv7_rdict.pcm
+%{_libdir}/%{name}/libROOTBrowserGeomWidget.*
+%{_libdir}/%{name}/libROOTBrowserRCanvasWidget.*
+%{_libdir}/%{name}/libROOTBrowserTCanvasWidget.*
+%{_libdir}/%{name}/libROOTBrowserWidgets.*
+%{_datadir}/%{name}/plugins/TBrowserImp/P030_RWebBrowserImp.C
%files gui-canvaspainter
%{_libdir}/%{name}/libROOTCanvasPainter.*
@@ -3565,6 +3859,15 @@ fi
%endif
%changelog
+* Wed Aug 04 2021 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 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 <mattias.ellert(a)physics.uu.se> - 6.22.08-11
- Drop the memstat module for Fedora 35+
The required __malloc_hook was removed from glibc 2.33.9000-48
diff --git a/sources b/sources
index 9b75929..af28a1d 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (root-6.22.08.tar.xz) = 9080168116ffdd07cfce411dca77404177cd3ba57af498419432ca95169dbce581a7a2a667c22273685d659b3e0398d567b2d51d07ca767b076ee5196395d828
+SHA512 (root-6.24.02.tar.xz) = 2f2bc89b436c7bc703bc88290f5047fae941950f98bd549fdd43121f7742a4030e153cc12a52d81c9a76a32e8d7be197a85776b721fe1643439827fb5b49d1c0
SHA512 (root-testfiles.tar.xz) = 945aef1a0cf5af672d4ab84b0ac00b76118e93008ff72447658ee82d9e955a1540af3ff7126e701418872f1d91b92ee96d4985840a519036c42732023a13f00f
2 years, 9 months
Architecture specific change in rpms/root.git
by githook-noreply@fedoraproject.org
The package rpms/root.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/root.git/commit/?id=1fd9670b71e72....
Change:
+%ifarch s390x
Thanks.
Full change:
============
commit 1fd9670b71e7200f88fa9049d4cd4eed7019814f
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Sun Aug 22 19:10:24 2021 +0200
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
diff --git a/root-32bit-dataframe.patch b/root-32bit-dataframe.patch
index 310171f..f9ff85f 100644
--- a/root-32bit-dataframe.patch
+++ b/root-32bit-dataframe.patch
@@ -1,6 +1,6 @@
-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
+diff -ur root-6.24.02.orig/bindings/pyroot_legacy/ROOT.py root-6.24.02/bindings/pyroot_legacy/ROOT.py
+--- root-6.24.02.orig/bindings/pyroot_legacy/ROOT.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/bindings/pyroot_legacy/ROOT.py 2021-08-11 10:44:16.895804556 +0200
@@ -438,9 +438,7 @@
# This function is injected as method to the respective classes in Pythonize.cxx.
_root._RDataFrameAsNumpy = _RDataFrameAsNumpy
@@ -12,9 +12,9 @@ diff -ur root-6.22.00.orig/bindings/pyroot_legacy/ROOT.py root-6.22.00/bindings/
### 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
+diff -ur root-6.24.02.orig/build/unix/makepchinput.py root-6.24.02/build/unix/makepchinput.py
+--- root-6.24.02.orig/build/unix/makepchinput.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/build/unix/makepchinput.py 2021-08-11 10:44:16.926804638 +0200
@@ -252,9 +252,6 @@
"math/vdt",
"tmva/rmva"]
@@ -25,9 +25,9 @@ diff -ur root-6.22.00.orig/build/unix/makepchinput.py root-6.22.00/build/unix/ma
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
+diff -ur root-6.24.02.orig/tree/dataframe/test/dataframe_cache.cxx root-6.24.02/tree/dataframe/test/dataframe_cache.cxx
+--- root-6.24.02.orig/tree/dataframe/test/dataframe_cache.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/dataframe_cache.cxx 2021-08-11 10:44:16.927804641 +0200
@@ -224,8 +224,6 @@
}
@@ -46,9 +46,9 @@ diff -ur root-6.22.00.orig/tree/dataframe/test/dataframe_cache.cxx root-6.22.00/
// 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
+diff -ur root-6.24.02.orig/tree/dataframe/test/datasource_arrow.cxx root-6.24.02/tree/dataframe/test/datasource_arrow.cxx
+--- root-6.24.02.orig/tree/dataframe/test/datasource_arrow.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/datasource_arrow.cxx 2021-08-11 10:44:16.927804641 +0200
@@ -177,8 +177,6 @@
}
#endif
@@ -64,10 +64,10 @@ diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_arrow.cxx root-6.22.00
#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 @@
+diff -ur root-6.24.02.orig/tree/dataframe/test/datasource_csv.cxx root-6.24.02/tree/dataframe/test/datasource_csv.cxx
+--- root-6.24.02.orig/tree/dataframe/test/datasource_csv.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/datasource_csv.cxx 2021-08-11 10:44:16.927804641 +0200
+@@ -207,8 +207,6 @@
}
#endif
@@ -76,15 +76,15 @@ diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_csv.cxx root-6.22.00/t
TEST(RCsvDS, FromARDF)
{
std::unique_ptr<RDataSource> tds(new RCsvDS(fileName0));
-@@ -292,5 +290,3 @@
+@@ -321,5 +319,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
+diff -ur root-6.24.02.orig/tree/dataframe/test/datasource_root.cxx root-6.24.02/tree/dataframe/test/datasource_root.cxx
+--- root-6.24.02.orig/tree/dataframe/test/datasource_root.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/datasource_root.cxx 2021-08-11 10:44:16.928804644 +0200
@@ -117,8 +117,6 @@
}
#endif
@@ -100,11 +100,11 @@ diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_root.cxx root-6.22.00/
#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);
+diff -ur root-6.24.02.orig/tree/dataframe/test/datasource_trivial.cxx root-6.24.02/tree/dataframe/test/datasource_trivial.cxx
+--- root-6.24.02.orig/tree/dataframe/test/datasource_trivial.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/datasource_trivial.cxx 2021-08-11 10:44:16.928804644 +0200
+@@ -141,8 +141,6 @@
+ EXPECT_EQ(df.Range(10).Count().GetValue(), 10);
}
-#ifdef R__B64
@@ -112,17 +112,17 @@ diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_trivial.cxx root-6.22.
TEST(RTrivialDS, FromARDFWithJitting)
{
std::unique_ptr<RDataSource> tds(new RTrivialDS(32));
-@@ -236,5 +234,3 @@
+@@ -245,5 +243,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)
+diff -ur root-6.24.02.orig/tutorials/CMakeLists.txt root-6.24.02/tutorials/CMakeLists.txt
+--- root-6.24.02.orig/tutorials/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/CMakeLists.txt 2021-08-11 10:44:16.974804766 +0200
+@@ -279,10 +279,6 @@
+ list(APPEND root7_veto ${v7_veto_files})
endif()
-if( CMAKE_SIZEOF_VOID_P EQUAL 4 )
@@ -132,7 +132,7 @@ diff -ur root-6.22.00.orig/tutorials/CMakeLists.txt root-6.22.00/tutorials/CMake
#---These ones are disabled !!! ------------------------------------
set(extra_veto
legacy/benchmarks.C
-@@ -313,7 +309,6 @@
+@@ -335,7 +331,6 @@
${classic_veto}
${pythia_veto}
${root7_veto}
@@ -140,11 +140,3 @@ diff -ur root-6.22.00.orig/tutorials/CMakeLists.txt root-6.22.00/tutorials/CMake
${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-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<std::vector<char>> readMem(char *Dst, JITTargetAddress Src,
-- uint64_t Size) {
-+ Expected<std::vector<uint8_t>> 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-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<StoreSDNode>(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<StoreSDNode>(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-add-RCutFlowReport-to-LinkDef-file.patch b/root-add-RCutFlowReport-to-LinkDef-file.patch
new file mode 100644
index 0000000..9ec99a1
--- /dev/null
+++ b/root-add-RCutFlowReport-to-LinkDef-file.patch
@@ -0,0 +1,26 @@
+From 2e3fabbe5423f50ee98ce848d8e85ec7a2a2106d Mon Sep 17 00:00:00 2001
+From: Enrico Guiraud <enrico.guiraud(a)cern.ch>
+Date: Thu, 15 Jul 2021 12:17:56 +0200
+Subject: [PATCH] [DF] Add RCutFlowReport to LinkDef
+
+This should fix some sporadic failures in cling's symbol resolution
+in builds without runtime cxx modules.
+---
+ tree/dataframe/inc/LinkDef.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tree/dataframe/inc/LinkDef.h b/tree/dataframe/inc/LinkDef.h
+index 8103468082..684fc3b6f1 100644
+--- a/tree/dataframe/inc/LinkDef.h
++++ b/tree/dataframe/inc/LinkDef.h
+@@ -58,6 +58,7 @@
+ #pragma link C++ class ROOT::Detail::RDF::RMergeableValue<TProfile>+;
+ #pragma link C++ class ROOT::Detail::RDF::RMergeableValue<TProfile2D>+;
+ #pragma link C++ class TNotifyLink<ROOT::Internal::RDF::RDataBlockFlag>;
++#pragma link C++ class ROOT::RDF::RCutFlowReport;
+
+ #endif
+
+--
+2.31.1
+
diff --git a/root-add-RDisplay-to-LinkDef-file.patch b/root-add-RDisplay-to-LinkDef-file.patch
new file mode 100644
index 0000000..e86880c
--- /dev/null
+++ b/root-add-RDisplay-to-LinkDef-file.patch
@@ -0,0 +1,25 @@
+From d9e15857c189edcfa75af5c6244ff68fac74f06f Mon Sep 17 00:00:00 2001
+From: Enrico Guiraud <enrico.guiraud(a)cern.ch>
+Date: Thu, 10 Jun 2021 10:00:32 +0200
+Subject: [PATCH] [DF] Add RDisplay to LinkDef
+
+To help cling autoloading.
+---
+ tree/dataframe/inc/LinkDef.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tree/dataframe/inc/LinkDef.h b/tree/dataframe/inc/LinkDef.h
+index 3879ac8d5d..8103468082 100644
+--- a/tree/dataframe/inc/LinkDef.h
++++ b/tree/dataframe/inc/LinkDef.h
+@@ -20,6 +20,7 @@
+ #pragma link C++ namespace ROOT::Internal::RDF::GraphDrawing;
+ #pragma link C++ namespace ROOT::Detail::RDF;
+ #pragma link C++ namespace ROOT::RDF;
++#pragma link C++ class ROOT::RDF::RDisplay-;
+ #pragma link C++ class ROOT::Internal::RDF::RActionBase-;
+ #pragma link C++ class ROOT::Internal::RDF::RJittedAction-;
+ #pragma link C++ class ROOT::Detail::RDF::RFilterBase-;
+--
+2.31.1
+
diff --git a/root-add-TTreeProcessorMP-to-LinkDef-file.patch b/root-add-TTreeProcessorMP-to-LinkDef-file.patch
new file mode 100644
index 0000000..c8a0b1f
--- /dev/null
+++ b/root-add-TTreeProcessorMP-to-LinkDef-file.patch
@@ -0,0 +1,36 @@
+From 56d52ccf2fad2736e49d3cfc4c9df22492e1dbfc Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Tue, 8 Jun 2021 02:46:18 +0200
+Subject: [PATCH] Add TTreeProcessorMP to LinkDef
+
+This fixes test failure:
+
+ 745/1157 Test #729: tutorial-multicore-mp102_readNtuplesFillHistosAndFit ................***Failed 1.55 sec
+Processing /builddir/build/BUILD/root-6.25.01/tutorials/multicore/mp102_readNtuplesFillHistosAndFit.C...
+IncrementalExecutor::executeFunction: symbol '_ZN4ROOT16TTreeProcessorMPC1Ej' unresolved while linking [cling interface function]!
+You are probably missing the definition of ROOT::TTreeProcessorMP::TTreeProcessorMP(unsigned int)
+Maybe you need to load the corresponding shared library?
+IncrementalExecutor::executeFunction: symbol '_ZN4ROOT16TTreeProcessorMP11ReplyToIdleEP7TSocket' unresolved while linking [cling interface function]!
+You are probably missing the definition of ROOT::TTreeProcessorMP::ReplyToIdle(TSocket*)
+Maybe you need to load the corresponding shared library?
+CMake Error at /builddir/build/BUILD/root-6.25.01/x86_64-redhat-linux-gnu/RootTestDriver.cmake:237 (message):
+ error code: 1
+---
+ tree/treeplayer/inc/LinkDef.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tree/treeplayer/inc/LinkDef.h b/tree/treeplayer/inc/LinkDef.h
+index e7fdd7c9bf..d195536a40 100644
+--- a/tree/treeplayer/inc/LinkDef.h
++++ b/tree/treeplayer/inc/LinkDef.h
+@@ -30,6 +30,7 @@
+ #pragma link C++ class TSimpleAnalysis+;
+ #ifndef _MSC_VER
+ #pragma link C++ class TMPWorkerTree+;
++#pragma link C++ class ROOT::TTreeProcessorMP-;
+ #endif
+ #ifdef R__USE_IMT
+ #pragma link C++ class ROOT::TTreeProcessorMT-;
+--
+2.31.1
+
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 <mattias.ellert(a)physics.uu.se>
-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-<feature>] [--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-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 <mattias.ellert(a)physics.uu.se>
-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-doxygen-crash.patch b/root-doxygen-crash.patch
index b27f5ce..d69d7e7 100644
--- a/root-doxygen-crash.patch
+++ b/root-doxygen-crash.patch
@@ -1,6 +1,204 @@
-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
+diff -ur root-6.24.02.orig/tutorials/dataframe/df002_dataModel.C root-6.24.02/tutorials/dataframe/df002_dataModel.C
+--- root-6.24.02.orig/tutorials/dataframe/df002_dataModel.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df002_dataModel.C 2021-08-11 03:55:11.021149115 +0200
+@@ -7,7 +7,6 @@
+ /// complex than flat ntuples with RDataFrame
+ ///
+ /// \macro_code
+-/// \macro_image
+ ///
+ /// \date December 2016
+ /// \author Danilo Piparo (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df002_dataModel.py root-6.24.02/tutorials/dataframe/df002_dataModel.py
+--- root-6.24.02.orig/tutorials/dataframe/df002_dataModel.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df002_dataModel.py 2021-08-11 03:55:11.084149272 +0200
+@@ -7,7 +7,6 @@
+ ## complex than flat ntuples with RDataFrame
+ ##
+ ## \macro_code
+-## \macro_image
+ ##
+ ## \date May 2017
+ ## \author Danilo Piparo (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df003_profiles.C root-6.24.02/tutorials/dataframe/df003_profiles.C
+--- root-6.24.02.orig/tutorials/dataframe/df003_profiles.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df003_profiles.C 2021-08-11 03:55:11.148149432 +0200
+@@ -7,7 +7,6 @@
+ /// RDataFrame. See the documentation of TProfile and TProfile2D to better
+ /// understand the analogy of this code with the example one.
+ ///
+-/// \macro_image
+ /// \macro_code
+ ///
+ /// \date February 2017
+diff -ur root-6.24.02.orig/tutorials/dataframe/df003_profiles.py root-6.24.02/tutorials/dataframe/df003_profiles.py
+--- root-6.24.02.orig/tutorials/dataframe/df003_profiles.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df003_profiles.py 2021-08-11 03:55:11.211149590 +0200
+@@ -8,7 +8,6 @@
+ ## understand the analogy of this code with the example one.
+ ##
+ ## \macro_code
+-## \macro_image
+ ##
+ ## \date February 2017
+ ## \author Danilo Piparo (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df005_fillAnyObject.C root-6.24.02/tutorials/dataframe/df005_fillAnyObject.C
+--- root-6.24.02.orig/tutorials/dataframe/df005_fillAnyObject.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df005_fillAnyObject.C 2021-08-11 03:55:11.275149750 +0200
+@@ -7,7 +7,6 @@
+ /// `Fill` method.
+ ///
+ /// \macro_code
+-/// \macro_image
+ ///
+ /// \date March 2017
+ /// \author Danilo Piparo (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df007_snapshot.C root-6.24.02/tutorials/dataframe/df007_snapshot.C
+--- root-6.24.02.orig/tutorials/dataframe/df007_snapshot.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df007_snapshot.C 2021-08-11 03:55:11.338149907 +0200
+@@ -5,7 +5,6 @@
+ ///
+ /// This tutorial shows how to write out datasets in ROOT format using the RDataFrame
+ ///
+-/// \macro_image
+ /// \macro_code
+ ///
+ /// \date April 2017
+diff -ur root-6.24.02.orig/tutorials/dataframe/df007_snapshot.py root-6.24.02/tutorials/dataframe/df007_snapshot.py
+--- root-6.24.02.orig/tutorials/dataframe/df007_snapshot.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df007_snapshot.py 2021-08-11 03:55:11.402150067 +0200
+@@ -5,7 +5,6 @@
+ ##
+ ## This tutorial shows how to write out datasets in ROOT format using the RDataFrame
+ ##
+-## \macro_image
+ ## \macro_code
+ ##
+ ## \date April 2017
+diff -ur root-6.24.02.orig/tutorials/dataframe/df014_CSVDataSource.C root-6.24.02/tutorials/dataframe/df014_CSVDataSource.C
+--- root-6.24.02.orig/tutorials/dataframe/df014_CSVDataSource.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df014_CSVDataSource.C 2021-08-11 03:55:11.465150225 +0200
+@@ -14,7 +14,6 @@
+ /// DOI: [10.7483/OPENDATA.CMS.CB8H.MFFA](http://opendata.cern.ch/record/700).
+ ///
+ /// \macro_code
+-/// \macro_image
+ ///
+ /// \date October 2017
+ /// \author Enric Tejedor (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df014_CSVDataSource.py root-6.24.02/tutorials/dataframe/df014_CSVDataSource.py
+--- root-6.24.02.orig/tutorials/dataframe/df014_CSVDataSource.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df014_CSVDataSource.py 2021-08-11 03:55:11.529150385 +0200
+@@ -14,7 +14,6 @@
+ ## DOI: [10.7483/OPENDATA.CMS.CB8H.MFFA](http://opendata.cern.ch/record/700).
+ ##
+ ## \macro_code
+-## \macro_image
+ ##
+ ## \date October 2017
+ ## \author Enric Tejedor (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df015_LazyDataSource.C root-6.24.02/tutorials/dataframe/df015_LazyDataSource.C
+--- root-6.24.02.orig/tutorials/dataframe/df015_LazyDataSource.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df015_LazyDataSource.C 2021-08-11 03:55:11.593150545 +0200
+@@ -14,7 +14,6 @@
+ /// From the ROOT website: https://root.cern.ch/files/tutorials/tdf014_CsvDataSource_MuRun2010B.csv
+ ///
+ /// \macro_code
+-/// \macro_image
+ ///
+ /// \date February 2018
+ /// \author Danilo Piparo (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df016_vecOps.C root-6.24.02/tutorials/dataframe/df016_vecOps.C
+--- root-6.24.02.orig/tutorials/dataframe/df016_vecOps.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df016_vecOps.C 2021-08-11 03:55:11.656150702 +0200
+@@ -7,7 +7,6 @@
+ /// stored in datasets, a situation very common in HEP data analysis.
+ ///
+ /// \macro_code
+-/// \macro_image
+ ///
+ /// \date February 2018
+ /// \author Danilo Piparo (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df016_vecOps.py root-6.24.02/tutorials/dataframe/df016_vecOps.py
+--- root-6.24.02.orig/tutorials/dataframe/df016_vecOps.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df016_vecOps.py 2021-08-11 03:55:11.720150862 +0200
+@@ -6,7 +6,6 @@
+ ## This tutorial shows the potential of the VecOps approach for treating collections
+ ## stored in datasets, a situation very common in HEP data analysis.
+ ##
+-## \macro_image
+ ## \macro_code
+ ##
+ ## \date February 2018
+diff -ur root-6.24.02.orig/tutorials/dataframe/df017_vecOpsHEP.C root-6.24.02/tutorials/dataframe/df017_vecOpsHEP.C
+--- root-6.24.02.orig/tutorials/dataframe/df017_vecOpsHEP.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df017_vecOpsHEP.C 2021-08-11 03:55:11.783151020 +0200
+@@ -11,7 +11,6 @@
+ /// greater than 100.
+ ///
+ /// \macro_code
+-/// \macro_image
+ ///
+ /// \date March 2018
+ /// \authors Danilo Piparo (CERN), Andre Vieira Silva
+diff -ur root-6.24.02.orig/tutorials/dataframe/df017_vecOpsHEP.py root-6.24.02/tutorials/dataframe/df017_vecOpsHEP.py
+--- root-6.24.02.orig/tutorials/dataframe/df017_vecOpsHEP.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df017_vecOpsHEP.py 2021-08-11 03:55:11.846151177 +0200
+@@ -7,7 +7,6 @@
+ ## model typically adopted in HEP for analysis.
+ ##
+ ## \macro_code
+-## \macro_image
+ ##
+ ## \date March 2018
+ ## \authors Danilo Piparo (CERN), Andre Vieira Silva
+diff -ur root-6.24.02.orig/tutorials/dataframe/df019_Cache.C root-6.24.02/tutorials/dataframe/df019_Cache.C
+--- root-6.24.02.orig/tutorials/dataframe/df019_Cache.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df019_Cache.C 2021-08-11 03:55:11.910151337 +0200
+@@ -18,7 +18,6 @@
+ /// only when the event loop is triggered on it.
+ ///
+ /// \macro_code
+-/// \macro_image
+ ///
+ /// \date June 2018
+ /// \author Danilo Piparo (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df019_Cache.py root-6.24.02/tutorials/dataframe/df019_Cache.py
+--- root-6.24.02.orig/tutorials/dataframe/df019_Cache.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df019_Cache.py 2021-08-11 03:55:11.973151495 +0200
+@@ -18,7 +18,6 @@
+ ## only when the event loop is triggered on it.
+ ##
+ ## \macro_code
+-## \macro_image
+ ##
+ ## \date June 2018
+ ## \author Danilo Piparo (CERN)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df021_createTGraph.C root-6.24.02/tutorials/dataframe/df021_createTGraph.C
+--- root-6.24.02.orig/tutorials/dataframe/df021_createTGraph.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df021_createTGraph.C 2021-08-11 03:55:12.037151655 +0200
+@@ -4,7 +4,6 @@
+ /// Fill a TGraph using RDataFrame.
+ ///
+ /// \macro_code
+-/// \macro_image
+ ///
+ /// \date July 2018
+ /// \authors Enrico Guiraud, Danilo Piparo (CERN), Massimo Tumolo (Politecnico di Torino)
+diff -ur root-6.24.02.orig/tutorials/dataframe/df021_createTGraph.py root-6.24.02/tutorials/dataframe/df021_createTGraph.py
+--- root-6.24.02.orig/tutorials/dataframe/df021_createTGraph.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/dataframe/df021_createTGraph.py 2021-08-11 03:55:12.100151813 +0200
+@@ -4,7 +4,6 @@
+ ## Fill a TGraph using RDataFrame.
+ ##
+ ## \macro_code
+-## \macro_image
+ ##
+ ## \date July 2018
+ ## \authors Enrico Guiraud, Danilo Piparo (CERN), Massimo Tumolo (Politecnico di Torino)
+diff -ur root-6.24.02.orig/tutorials/tmva/tmva003_RReader.C root-6.24.02/tutorials/tmva/tmva003_RReader.C
+--- root-6.24.02.orig/tutorials/tmva/tmva003_RReader.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/tmva/tmva003_RReader.C 2021-08-11 04:16:33.833359421 +0200
@@ -5,7 +5,6 @@
/// TMVA XML files.
///
@@ -9,9 +207,9 @@ diff -ur root-6.22.00.orig/tutorials/tmva/tmva003_RReader.C root-6.22.00/tutoria
///
/// \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
+diff -ur root-6.24.02.orig/tutorials/tmva/tmva103_Application.C root-6.24.02/tutorials/tmva/tmva103_Application.C
+--- root-6.24.02.orig/tutorials/tmva/tmva103_Application.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/tmva/tmva103_Application.C 2021-08-11 21:56:49.387390340 +0200
@@ -6,7 +6,6 @@
/// event-by-event inference, batch inference and pipelines with RDataFrame.
///
@@ -20,9 +218,42 @@ diff -ur root-6.22.00.orig/tutorials/tmva/tmva103_Application.C root-6.22.00/tut
///
/// \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
+diff -ur root-6.24.02.orig/tutorials/tmva/TMVA_CNN_Classification.C root-6.24.02/tutorials/tmva/TMVA_CNN_Classification.C
+--- root-6.24.02.orig/tutorials/tmva/TMVA_CNN_Classification.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/tmva/TMVA_CNN_Classification.C 2021-08-10 15:21:03.306171069 +0200
+@@ -6,7 +6,6 @@
+ /// This is an example of using a CNN in TMVA. We do classification using a toy image data set
+ /// that is generated when running the example macro
+ ///
+-/// \macro_image
+ /// \macro_output
+ /// \macro_code
+ ///
+diff -ur root-6.24.02.orig/tutorials/tmva/TMVA_Higgs_Classification.C root-6.24.02/tutorials/tmva/TMVA_Higgs_Classification.C
+--- root-6.24.02.orig/tutorials/tmva/TMVA_Higgs_Classification.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/tmva/TMVA_Higgs_Classification.C 2021-08-10 15:21:33.974251559 +0200
+@@ -7,7 +7,6 @@
+ /// used in this paper: Baldi, P., P. Sadowski, and D. Whiteson. “Searching for Exotic Particles in High-energy Physics
+ /// with Deep Learning.” Nature Communications 5 (July 2, 2014).
+ ///
+-/// \macro_image
+ /// \macro_output
+ /// \macro_code
+ ///
+diff -ur root-6.24.02.orig/tutorials/tmva/TMVA_RNN_Classification.C root-6.24.02/tutorials/tmva/TMVA_RNN_Classification.C
+--- root-6.24.02.orig/tutorials/tmva/TMVA_RNN_Classification.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/tmva/TMVA_RNN_Classification.C 2021-08-10 15:21:15.657203486 +0200
+@@ -6,7 +6,6 @@
+ /// This is an example of using a RNN in TMVA. We do classification using a toy time dependent data set
+ /// that is generated when running this example macro
+ ///
+-/// \macro_image
+ /// \macro_output
+ /// \macro_code
+ ///
+diff -ur root-6.24.02.orig/tutorials/v7/line.cxx root-6.24.02/tutorials/v7/line.cxx
+--- root-6.24.02.orig/tutorials/v7/line.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/v7/line.cxx 2021-08-16 14:25:32.528867781 +0200
@@ -6,7 +6,6 @@
/// "normal" coordinates' system and changing the line color linearly from black
/// to red.
@@ -31,3 +262,14 @@ diff -ur root-6.22.00.orig/tutorials/v7/line.cxx root-6.22.00/tutorials/v7/line.
/// \macro_code
///
/// \date 2018-03-18
+diff -ur root-6.24.02.orig/tutorials/v7/ntuple/ntpl005_introspection.C root-6.24.02/tutorials/v7/ntuple/ntpl005_introspection.C
+--- root-6.24.02.orig/tutorials/v7/ntuple/ntpl005_introspection.C 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tutorials/v7/ntuple/ntpl005_introspection.C 2021-08-10 15:22:06.504336763 +0200
+@@ -4,7 +4,6 @@
+ /// Write and read an RNTuple from a user-defined class. Adapted from tv3.C
+ /// Illustrates various RNTuple introspection methods.
+ ///
+-/// \macro_image
+ /// \macro_code
+ ///
+ /// \date April 2020
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 <mattias.ellert(a)physics.uu.se>
-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 </b>
-- end of comment block while expecting command </em>
-- end of comment block while expecting command </pre>
-- end of comment block while expecting command </s>
-- end of comment block while expecting command </sup>
-- end of comment block while expecting command </tt>
-- end of comment block while expecting command </u>
-- end of list marker found without any preceding list items
-- found </em> tag without matching <em>
-- found </li> tag without matching <li>
-- found </pre> tag without matching <pre>
-- found </sub> tag while expecting </sup>
-- found </sup> tag without matching <sup>
-- found </tt> tag without matching <tt>
-- found </ul> tag without matching <ul>
-- illegal </br> tag found
-- reached end of file while inside a 'code' block!
-- reached end of file while still inside a (nested) comment.
-- unexpected end of comment while inside <a href=...> tag
-- unexpected end of comment while inside <ul> block
-- unexpected html tag <blockquote> found within <h1> context
-- unexpected tag </h2> found
-- unexpected tag </h3> found
-- unsupported xml/html tag <it> found
-- unsupported xml/html tag </it> found
----
- bindings/r/inc/TRDataFrame.h | 2 +-
- core/base/src/TEnv.cxx | 7 +-
- core/cont/src/TBits.cxx | 2 +-
- core/dictgen/res/DictSelectionReader.h | 140 +++++++++---------
- core/foundation/inc/ROOT/TypeTraits.hxx | 2 +-
- core/meta/src/TClass.cxx | 6 +-
- core/metacling/src/TCling.cxx | 8 +-
- graf2d/x11/src/TGX11.cxx | 6 +-
- gui/guihtml/src/TGHtmlSizer.cxx | 4 +-
- hist/hist/src/TSVDUnfold.cxx | 8 +-
- hist/histpainter/src/THistPainter.cxx | 2 +-
- hist/histv7/speed/histspeedtest.cxx | 1 -
- hist/unfold/inc/TUnfold.h | 8 +-
- html/src/TDocDirective.cxx | 2 +-
- math/mathcore/inc/Math/ProbFuncMathCore.h | 8 +-
- math/mathcore/inc/Math/QuantFuncMathCore.h | 4 +-
- math/mathcore/src/TMath.cxx | 2 +-
- math/mathmore/inc/Math/GSLMultiRootFinder.h | 16 +-
- math/matrix/doc/Matrix.md | 2 +-
- math/minuit/src/TMinuit.cxx | 4 +-
- montecarlo/eg/src/TDatabasePDG.cxx | 2 +-
- montecarlo/vmc/README.md | 2 +-
- net/http/civetweb/LICENSE.md | 4 -
- proof/proof/src/TProofMgr.cxx | 50 ++++---
- proof/proof/src/TProofServ.cxx | 10 +-
- roofit/histfactory/doc/index.md | 11 +-
- .../src/MakeModelAndMeasurementsFast.cxx | 11 +-
- roofit/roofitcore/inc/RooAbsCategory.h | 2 +-
- roofit/roofitcore/src/RooSimPdfBuilder.cxx | 4 +-
- tmva/tmva/src/Factory.cxx | 6 +-
- tmva/tmva/src/Reader.cxx | 4 +-
- tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx | 2 +-
- tutorials/net/udpserver.c | 2 +-
- tutorials/tmva/TMVA_CNN_Classification.C | 2 +-
- 34 files changed, 168 insertions(+), 178 deletions(-)
-
-diff --git a/bindings/r/inc/TRDataFrame.h b/bindings/r/inc/TRDataFrame.h
-index b7bb4ed89d..dbf48e1383 100644
---- a/bindings/r/inc/TRDataFrame.h
-+++ b/bindings/r/inc/TRDataFrame.h
-@@ -136,7 +136,7 @@ namespace ROOT {
- 2 |1
- \endcode
-
-- </h2>Working with colunms between dataframes</h2><br>
-+ <h2>Working with colunms between dataframes</h2><br>
- \code{.cpp}
- df2["v3"]<<df1["strings"];
-
-diff --git a/core/base/src/TEnv.cxx b/core/base/src/TEnv.cxx
-index 39c07caf21..ab697df7b7 100644
---- a/core/base/src/TEnv.cxx
-+++ b/core/base/src/TEnv.cxx
-@@ -388,10 +388,9 @@ TString TEnvRec::ExpandValue(const char *value)
- ClassImp(TEnv);
-
- ////////////////////////////////////////////////////////////////////////////////
--/// Create a resource table and read the (possibly) three resource files, i.e
--/// `$ROOTSYS/etc/system``<name>` (or `ROOTETCDIR/system``<name>`),
--/// `$HOME/``<name>` and
--/// `./``<name>`.
-+/// Create a resource table and read the (possibly) three resource files,
-+/// i.e.\ `$ROOTSYS/etc/system<name>` (or `ROOTETCDIR/system<name>`),
-+/// `$HOME/<name>` and `$PWD/<name>`.
- /// ROOT always reads ".rootrc" (in TROOT::InitSystem()). You can
- /// read additional user defined resource files by creating additional TEnv
- /// objects. By setting the shell variable ROOTENV_NO_HOME=1 the reading of
-diff --git a/core/cont/src/TBits.cxx b/core/cont/src/TBits.cxx
-index 155bfd4b4c..95167dd5b1 100644
---- a/core/cont/src/TBits.cxx
-+++ b/core/cont/src/TBits.cxx
-@@ -10,7 +10,7 @@ Container of bits.
- This class provides a simple container of bits.
- Each bit can be set and tested via the functions SetBitNumber and
- TestBitNumber.
-- .
-+
- The default value of all bits is kFALSE.
- The size of the container is automatically extended when a bit
- number is either set or tested. To reduce the memory size of the
-diff --git a/core/dictgen/res/DictSelectionReader.h b/core/dictgen/res/DictSelectionReader.h
-index 52921d6237..b19135badd 100644
---- a/core/dictgen/res/DictSelectionReader.h
-+++ b/core/dictgen/res/DictSelectionReader.h
-@@ -60,34 +60,32 @@ namespace clang {
- * By default, the Name of the selection class is then
- * @c ROOT::Meta::Selection::C. If you have such a class, it will be found
- * automatically. If @c C is in a namespace, @c NS::C, then
-- * the selection class should be in the same namespace: @c
--ROOT::Selection::NS::C.
-+ * the selection class should be in the same namespace:
-+ * @c ROOT::Meta::Selection::NS::C.
-+ *
- * Examples:
- *
--
--**/
--
--/**
- * The DictSelectionReader is used to create selection rules starting from
- * C++ the constructs of the @c ROOT::Meta::Selection namespace. All rules
- * are matching by name.
- * A brief description of the operations that lead to class selection:
-- * 1. If a class declaration is present in the selection namespace, a class
-- * with the same name is selected outside the selection namespace.
-- * 2. If a template class declaration and a template instantiation is present
-- * in the selection namespace, all the instances of the template are
-- * selected outside the namespace.
-+ * 1. If a class declaration is present in the selection namespace, a class
-+ * with the same name is selected outside the selection namespace.
-+ * 2. If a template class declaration and a template instantiation is present
-+ * in the selection namespace, all the instances of the template are
-+ * selected outside the namespace.
-+ *
- * For example:
- * @code
- * [...]
- * class classVanilla{};
- * template <class A> class classTemplateVanilla {};
- * classTemplateVanilla<char> t0;
-- * namespace ROOT{
-+ * namespace ROOT {
- * namespace Meta {
-- * namespace Selection{
-- * class classVanilla{};
-- * template <typename A> class classTemplateVanilla{};
-+ * namespace Selection {
-+ * class classVanilla {};
-+ * template <typename A> class classTemplateVanilla {};
- * classTemplateVanilla<char> st0;
- * }
- * }
-@@ -98,14 +96,15 @@ ROOT::Selection::NS::C.
- *
- * A brief description of the properties that can be assigned to classes
- * with the @c ROOT::Meta::Selection::ClassAttributes class.
-- * 1. @c kNonSplittable : Makes the class non splittable
-+ * 1. @c kNonSplittable : Makes the class non splittable
-+ *
- * The class properties can be assigned via a traits mechanism. For example:
- * @code
- * [...]
-- * class classWithAttributes{};
-- * namespace ROOT{
-+ * class classWithAttributes {};
-+ * namespace ROOT {
- * namespace Meta {
-- * namespace Selection{
-+ * namespace Selection {
- * class classWithAttributes : ClassAttributes <kNonSplittable> {};
- * }
- * }
-@@ -116,9 +115,9 @@ ROOT::Selection::NS::C.
- * properties can be assigned to a single class with this syntax:
- * @code
- * [...]
-- * namespace ROOT{
-+ * namespace ROOT {
- * namespace Meta {
-- * namespace Selection{
-+ * namespace Selection {
- * class classWithAttributes :
- * ClassAttributes <kProperty1 + kProperty2 + ... + kPropertyN> {};
- * }
-@@ -126,7 +125,6 @@ ROOT::Selection::NS::C.
- * }
- * @endcode
- *
-- *
- * The @c ROOT::Meta::Selection syntax allows to alter the number of template
- * parameters of a certain template class within the ROOT type system, TClass.
- * Technically it allows to alter the way in which the "normalized name" (in
-@@ -137,23 +135,21 @@ ROOT::Selection::NS::C.
- * a long explaination in this case:
- * @code
- * [...]
-- * template <class T, class U=int, int V=3> class A{...};
-- * template <class T, class Alloc= myAllocator<T> > class myVector{...};
-+ * template <class T, class U = int, int V = 3> class A {...};
-+ * template <class T, class Alloc = myAllocator<T> > class myVector {...};
- * A<char> a1;
-- * A<char,float> a2;
-+ * A<char, float> a2;
- * myVector<float> v1;
- * myVector<A<char>> v2;
- *
-- * namespace ROOT{
-+ * namespace ROOT {
- * namespace Meta {
-- * namespace Selection{
-- * template <class T, class U=int, int V=3> class A
-- * :KeepFirstTemplateArguments<1>{};
-- *
-- * A<double> ;
-- * template <class T, class Alloc= myAllocator<T> > class myVector
-- * :KeepFirstTemplateArguments<1>{};
-- *
-+ * namespace Selection {
-+ * template <class T, class U = int, int V = 3> class A
-+ * : KeepFirstTemplateArguments<1> {};
-+ * A<double> a;
-+ * template <class T, class Alloc = myAllocator<T> > class myVector
-+ * : KeepFirstTemplateArguments<1> {};
- * myVector<double> vd;
- * }
- * }
-@@ -165,53 +161,55 @@ ROOT::Selection::NS::C.
- * will be kept.
- * In absence of any @c KeepFirstTemplateArguments trait, the normalization
- * would be:
-- * @c A<char> &rarr @c A<char,float,3>
-- * @c A<char,float> &rarr @c A<char,int,3>
-- * @c myVector<float> &rarr @c myVector<A<char,int,3>,myAllocator<A<char,int,3>>>
-- * @c myVector<A<char>> &rarr @c myVector<float,myAllocator<float>>
-+ * - @c A<char> → @c A<char,float,3>
-+ * - @c A<char,float> → @c A<char,int,3>
-+ * - @c myVector<float> → @c myVector<A<char,int,3>,myAllocator<A<char,int,3>>>
-+ * - @c myVector<A<char>> → @c myVector<float,myAllocator<float>>
- *
- * Now, deciding to keep just one argument (@c KeepFirstTemplateArguments<1>):
-- * @c A<char> &rarr @c A<char,float>
-- * @c A<char,float> &rarr @c A<char>
-- * @c myVector<float> &rarr @c myVector<A<char>,myAllocator<A<char>>>
-- * @c myVector<A<char>> &rarr @c myVector<float,myAllocator<float>>
-+ * - @c A<char> → @c A<char,float>
-+ * - @c A<char,float> → @c A<char>
-+ * - @c myVector<float> → @c myVector<A<char>,myAllocator<A<char>>>
-+ * - @c myVector<A<char>> → @c myVector<float,myAllocator<float>>
- *
- * And deciding to keep two arguments (@c KeepFirstTemplateArguments<2>):
-- * @c A<char> &rarr @c A<char,float>
-- * @c A<char,float> &rarr @c A<char,int>
-- * @c myVector<float> &rarr @c myVector<A<char,int>,myAllocator<A<char,int>>>
-- * @c myVector<A<char>> &rarr @c myVector<float,myAllocator<float>>
-+ * - @c A<char> → @c A<char,float>
-+ * - @c A<char,float> → @c A<char,int>
-+ * - @c myVector<float> → @c myVector<A<char,int>,myAllocator<A<char,int>>>
-+ * - @c myVector<A<char>> → @c myVector<float,myAllocator<float>>
- *
- * A brief description of the properties that can be assigned to data members
- * with the @c ROOT::Meta::Selection MemberAttributes class:
-- * 1. @c kTransient : the data member is transient, not persistified by the
-- * ROOT I/O.
-- * 2. @c kAutoSelected : the type of the data member is selected without the
-- * need of specifying its class explicitely.
-+ * 1. @c kTransient : the data member is transient, not persistified by the
-+ * ROOT I/O.
-+ * 2. @c kAutoSelected : the type of the data member is selected without the
-+ * need of specifying its class explicitely.
-+ *
- * For example:
- * @code
- * [...]
-- * class classTransientMember{
-+ * class classTransientMember {
- * private:
- * int transientMember;
- * };
-- * class classAutoselected{};
-- * class classTestAutoselect{
-+ * class classAutoselected {};
-+ * class classTestAutoselect {
- * private:
- * classAutoselected autoselected;
- * };
- *
-- * namespace ROOT{
-+ * namespace ROOT {
- * namespace Meta {
-- * namespace Selection{
-- * class classTestAutoselect{
-+ * namespace Selection {
-+ * class classTestAutoselect {
- * MemberAttributes<kAutoSelected> autoselected;
- * };
--
-- class classTransientMember{
-- MemberAttributes<kTransient> transientMember;
-- };
-- *
-+ * class classTransientMember {
-+ * MemberAttributes<kTransient> transientMember;
-+ * };
-+ * }
-+ * }
-+ * }
- * @endcode
- * would lead to the creation of selection rules for @c classTransientMember
- * specifying that @c transientMember is transient, @c classTestAutoselect and
-@@ -229,10 +227,10 @@ ROOT::Selection::NS::C.
- * template< class T, class BASE >
- * class MyDataVector : KeepFirstTemplateArguments< 1 >, SelectNoInstance {
- * MemberAttributes< kTransient + kAutoSelected > m_isMostDerived;
-- * MemberAttributes< kNonSplittable+ kAutoSelected > m_isNonSplit;
-- * };
-+ * MemberAttributes< kNonSplittable + kAutoSelected > m_isNonSplit;
-+ * };
- * [...]
-- *
-+ * @endcode
- **/
- namespace ROOT {
- namespace Internal {
-@@ -265,12 +263,9 @@ private:
- inline bool
- InSelectionNamespace(const clang::RecordDecl &,
- const std::string &str =
-- ""); ///< Check if in the ROOT::Selection namespace
-+ ""); ///< Check if in the ROOT::Meta::Selection namespace
- inline bool FirstPass(const clang::RecordDecl &); ///< First pass on the AST
-- inline bool SecondPass(const clang::RecordDecl &); ///< Second pass on the
-- ///AST, using the
-- ///information of the first
-- ///one
-+ inline bool SecondPass(const clang::RecordDecl &); ///< Second pass on the AST, using the information of the first one
- inline void
- ManageFields(const clang::RecordDecl &,
- const std::string &,
-@@ -285,8 +280,7 @@ private:
- inline const clang::TemplateArgumentList *GetTmplArgList(
- const clang::CXXRecordDecl &); ///< Get the template arguments list if any
-
-- std::string PatternifyName(const std::string &className); ///< Transform instance
-- ///< name in pattern for selection
-+ std::string PatternifyName(const std::string &className); ///< Transform instance name in pattern for selection
- void GetPointeeType(std::string &typeName); ///< Get name of the pointee type
-
- SelectionRules &fSelectionRules; ///< The selection rules to be filled
-@@ -300,9 +294,9 @@ private:
- fNoAutoSelectedClassFieldNames; ///< Collect the autoexcluded classes
- std::unordered_map<std::string, TemplateInfo> fTemplateInfoMap; ///< List template name - properties map
- llvm::StringMap<ClassSelectionRule>
-- fClassNameSelectionRuleMap; /// < Map of the already built sel rules
-+ fClassNameSelectionRuleMap; ///< Map of the already built sel rules
- bool fIsFirstPass; ///< Keep trance of the number of passes through the AST
-- ROOT::TMetaUtils::TNormalizedCtxt &fNormCtxt; /// < The reference to the normalized context
-+ ROOT::TMetaUtils::TNormalizedCtxt &fNormCtxt; ///< The reference to the normalized context
- };
- }
- }
-diff --git a/core/foundation/inc/ROOT/TypeTraits.hxx b/core/foundation/inc/ROOT/TypeTraits.hxx
-index 1abf64e73a..ab491c2504 100644
---- a/core/foundation/inc/ROOT/TypeTraits.hxx
-+++ b/core/foundation/inc/ROOT/TypeTraits.hxx
-@@ -155,7 +155,7 @@ template <typename T>
- using TakeFirstParameter_t = typename TakeFirstParameter<T>::type;
-
- /// Remove first of possibly many template parameters.
--/// e.g. RemoveFirstParameter_t<U<A,B>> is U<B>
-+/// e.g. RemoveFirstParameter_t<U<A,B>> is U\<B\>
- template <typename>
- struct RemoveFirstParameter {
- };
-diff --git a/core/meta/src/TClass.cxx b/core/meta/src/TClass.cxx
-index 4eeec81dc1..f29ab7fd85 100644
---- a/core/meta/src/TClass.cxx
-+++ b/core/meta/src/TClass.cxx
-@@ -6780,7 +6780,7 @@ void TClass::SetDestructor(ROOT::DesFunc_t destructorFunc)
- }
-
- ////////////////////////////////////////////////////////////////////////////////
--/// Install a new wrapper around the directory auto add function..
-+/// Install a new wrapper around the directory auto add function.
- /// The function autoAddFunc has the signature void (*)(void *obj, TDirectory dir)
- /// and should register 'obj' to the directory if dir is not null
- /// and unregister 'obj' from its current directory if dir is null
-@@ -7120,12 +7120,12 @@ Bool_t ROOT::Internal::HasConsistentHashMember(TClass &clRef)
- /// (public or not), use
- /// \code{.cpp}
- /// cl->GetProperty() & kClassHasDefaultCtor
--/// \code
-+/// \endcode
- /// To know if the class described by this TClass has a public default
- /// constructor use:
- /// \code{.cpp}
- /// gInterpreter->ClassInfo_HasDefaultConstructor(aClass->GetClassInfo());
--/// \code
-+/// \endcode
-
- Bool_t TClass::HasDefaultConstructor(Bool_t testio) const
- {
-diff --git a/core/metacling/src/TCling.cxx b/core/metacling/src/TCling.cxx
-index db0da13620..279744834a 100644
---- a/core/metacling/src/TCling.cxx
-+++ b/core/metacling/src/TCling.cxx
-@@ -5388,10 +5388,10 @@ int TCling::ReadRootmapFile(const char *rootmapfile, TUniqueString *uniqueString
- }
-
- ////////////////////////////////////////////////////////////////////////////////
--/// Create a resource table and read the (possibly) three resource files, i.e
--/// $ROOTSYS/etc/system<name> (or ROOTETCDIR/system<name>), $HOME/<name> and
--/// ./<name>. ROOT always reads ".rootrc" (in TROOT::InitSystem()). You can
--/// read additional user defined resource files by creating additional TEnv
-+/// Create a resource table and read the (possibly) three resource files,
-+/// i.e.\ $ROOTSYS/etc/system<name> (or ROOTETCDIR/system<name>), $HOME/<name>
-+/// and $PWD/<name>. ROOT always reads ".rootrc" (in TROOT::InitSystem()). You
-+/// can read additional user defined resource files by creating additional TEnv
- /// objects. By setting the shell variable ROOTENV_NO_HOME=1 the reading of
- /// the $HOME/<name> resource file will be skipped. This might be useful in
- /// case the home directory resides on an automounted remote file system
-diff --git a/graf2d/x11/src/TGX11.cxx b/graf2d/x11/src/TGX11.cxx
-index 59e5260c92..26f88dd045 100644
---- a/graf2d/x11/src/TGX11.cxx
-+++ b/graf2d/x11/src/TGX11.cxx
-@@ -3599,9 +3599,9 @@ Pixmap_t TGX11::ReadGIF(int x0, int y0, const char *file, Window_t id)
- }
-
- ////////////////////////////////////////////////////////////////////////////////
--/// Returns an array of pixels created from a part of drawable (defined by x, y, w, h)
--/// in format:
--/// `b1, g1, r1, 0, b2, g2, r2, 0 ... bn, gn, rn, 0 ..`
-+/// Returns an array of pixels created from a part of drawable
-+/// (defined by x, y, w, h) in format:
-+/// `b1, g1, r1, 0, b2, g2, r2, 0, ..., bn, gn, rn, 0`.
- ///
- /// Pixels are numbered from left to right and from top to bottom.
- /// By default all pixels from the whole drawable are returned.
-diff --git a/gui/guihtml/src/TGHtmlSizer.cxx b/gui/guihtml/src/TGHtmlSizer.cxx
-index c73eb581b5..8e6e71dcf7 100644
---- a/gui/guihtml/src/TGHtmlSizer.cxx
-+++ b/gui/guihtml/src/TGHtmlSizer.cxx
-@@ -60,7 +60,7 @@ SHtmlStyle_t TGHtml::GetCurrentStyle()
- ////////////////////////////////////////////////////////////////////////////////
- /// Push a new rendering style onto the stack.
- ///
--/// tag - Tag for this style. Normally the end-tag such as </h3> or </em>.
-+/// tag - Tag for this style. Normally the end-tag such as \</h3\> or \</em\>.
- /// style - The style to push
-
- void TGHtml::PushStyleStack(int tag, SHtmlStyle_t style)
-@@ -152,7 +152,7 @@ void TGHtml::MakeInvisible(TGHtmlElement *p_first, TGHtmlElement *p_last)
- }
-
- ////////////////////////////////////////////////////////////////////////////////
--/// For the markup <a href=XXX>, find out if the URL has been visited
-+/// For the markup \<a href=XXX\>, find out if the URL has been visited
- /// before or not. Return COLOR_Visited or COLOR_Unvisited, as
- /// appropriate.
-
-diff --git a/hist/hist/src/TSVDUnfold.cxx b/hist/hist/src/TSVDUnfold.cxx
-index 85cfa9f241..2b570bdb22 100644
---- a/hist/hist/src/TSVDUnfold.cxx
-+++ b/hist/hist/src/TSVDUnfold.cxx
-@@ -46,13 +46,11 @@
- The measured distribution can be unfolded for any combination of resolution, efficiency and acceptance effects, provided an appropriate definition of <tt>xini</tt> and <tt>Adet</tt>.<br><br>
- <p>
- The unfolding can be performed by
-- <ul>
-- <pre>
-+ \code{.cpp}
- TSVDUnfold *tsvdunf = new TSVDUnfold( bdat, Bcov, bini, xini, Adet );
- TH1D* unfresult = tsvdunf->Unfold( kreg );
-- </pre>
-- </ul>
-- where <tt>kreg</tt> determines the regularisation of the unfolding. In general, overregularisation (too small <tt>kreg</tt>) will bias the unfolded spectrum towards the Monte Carlo input, while underregularisation (too large <tt>kreg</tt>) will lead to large fluctuations in the unfolded spectrum. The optimal regularisation can be determined following guidelines in <a href="http://arXiv.org/abs/hep-ph/9509307">Nucl. Instrum. Meth. A372, 469 (1996) [hep-ph/9509307]</a> using the distribution of the <tt>|d_i|<\tt> that can be obtained by <tt>tsvdunf->GetD()</tt> and/or using pseudo-experiments.
-+ \endcode
-+ where <tt>kreg</tt> determines the regularisation of the unfolding. In general, overregularisation (too small <tt>kreg</tt>) will bias the unfolded spectrum towards the Monte Carlo input, while underregularisation (too large <tt>kreg</tt>) will lead to large fluctuations in the unfolded spectrum. The optimal regularisation can be determined following guidelines in <a href="http://arXiv.org/abs/hep-ph/9509307">Nucl. Instrum. Meth. A372, 469 (1996) [hep-ph/9509307]</a> using the distribution of the <tt>|d_i|</tt> that can be obtained by <tt>tsvdunf->GetD()</tt> and/or using pseudo-experiments.
- <p>
- Covariance matrices on the measured spectrum (for either the total uncertainties or individual sources of uncertainties) can be propagated to covariance matrices using the <tt>GetUnfoldCovMatrix</tt> method, which uses pseudo experiments for the propagation. In addition, <tt>GetAdetCovMatrix</tt> allows for the propagation of the statistical uncertainties on the response matrix using pseudo experiments. The covariance matrix corresponding to <tt>Bcov</tt> is also computed as described in <a href="http://arXiv.org/abs/hep-ph/9509307">Nucl. Instrum. Meth. A372, 469 (1996) [hep-ph/9509307]</a> and can be obtained from <tt>tsvdunf->GetXtau()</tt> and its (regularisation independent) inverse from <tt>tsvdunf->GetXinv()</tt>. The distribution of singular values can be retrieved using <tt>tsvdunf->GetSV()</tt>.
- <p>
-diff --git a/hist/histpainter/src/THistPainter.cxx b/hist/histpainter/src/THistPainter.cxx
-index 0f80505570..20a944a545 100644
---- a/hist/histpainter/src/THistPainter.cxx
-+++ b/hist/histpainter/src/THistPainter.cxx
-@@ -418,7 +418,7 @@ some combinations must be use with care.
- - It does not work when combined with the `LEGO` and `SURF` options unless the
- histogram plotted with the option `SAME` has exactly the same
- ranges on the X, Y and Z axis as the currently drawn histogram. To superimpose
-- lego plots [histograms' stacks](#HP26) should be used.</li>
-+ lego plots [histograms' stacks](#HP26) should be used.
-
-
- ### <a name="HP061"></a> Colors automatically picked in palette
-diff --git a/hist/histv7/speed/histspeedtest.cxx b/hist/histv7/speed/histspeedtest.cxx
-index 55c0992bd5..065a10f0d7 100644
---- a/hist/histv7/speed/histspeedtest.cxx
-+++ b/hist/histv7/speed/histspeedtest.cxx
-@@ -35,7 +35,6 @@ and
- /opt/build/root_builds/rootcling.cmake/include/ROOT/THistBinIter.h:53:50: error: no member named 'GetUncertainty' in
- 'ROOT::Experimental::THistDataContent<2, double, ROOT::Experimental::THistDataDefaultStorage>::TBinStat<double>' auto
- GetUncertainty() const { return GetStat().GetUncertainty(); }
-- ~~~~~~~~~ ^
-
- new ones (STATCLASSES)
-
-diff --git a/hist/unfold/inc/TUnfold.h b/hist/unfold/inc/TUnfold.h
-index a69da26b4c..ce6e16fb4a 100644
---- a/hist/unfold/inc/TUnfold.h
-+++ b/hist/unfold/inc/TUnfold.h
-@@ -179,15 +179,15 @@ class TUnfold : public TObject {
- TMatrixD *fX;
- /// covariance matrix Vxx
- TMatrixDSparse *fVxx;
-- /// inverse of covariance matrix Vxx<sup>-1</sub>
-+ /// inverse of covariance matrix Vxx<sup>-1</sup>
- TMatrixDSparse *fVxxInv;
-- /// inverse of the input covariance matrix Vyy<sup>-1</sub>
-+ /// inverse of the input covariance matrix Vyy<sup>-1</sup>
- TMatrixDSparse *fVyyInv;
- /// result x folded back A*x
- TMatrixDSparse *fAx;
-- /// chi**2 contribution from (y-Ax)Vyy<sup>-1</sub>(y-Ax)
-+ /// chi**2 contribution from (y-Ax)Vyy<sup>-1</sup>(y-Ax)
- Double_t fChi2A;
-- /// chi**2 contribution from (x-s*x0)<sup>T</sub>L<sup>T</sub>L(x-s*x0)
-+ /// chi**2 contribution from (x-s*x0)<sup>T</sup>L<sup>T</sup>L(x-s*x0)
- Double_t fLXsquared;
- /// maximum global correlation coefficient
- Double_t fRhoMax;
-diff --git a/html/src/TDocDirective.cxx b/html/src/TDocDirective.cxx
-index f7ffdc29c3..ab43d1ab38 100644
---- a/html/src/TDocDirective.cxx
-+++ b/html/src/TDocDirective.cxx
-@@ -215,7 +215,7 @@ void TDocHtmlDirective::AddLine(const TSubString& line)
-
- ////////////////////////////////////////////////////////////////////////////////
- /// Set result to the HTML code that was passed in via AddLine().
--/// Prepend a closing </pre>, append an opening <pre>
-+/// Prepend a closing \</pre\>, append an opening \<pre\>
-
- 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 <em>Math/ProbFunc.h<em> or in the global one
-- * including all statistical functions <em>Math/DistFunc.h<em>
-+ * These functions are defined in the header file <em>Math/ProbFunc.h</em> or in the global one
-+ * including all statistical functions <em>Math/DistFunc.h</em>
- *
- */
-
-@@ -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 <em>Math/ProbFunc.h<em> or in the global one
-- including all statistical functions <em>Math/StatFunc.h<em>
-+ These functions are defined in the header file <em>Math/ProbFunc.h</em> or in the global one
-+ including all statistical functions <em>Math/StatFunc.h</em>
-
- */
-
-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 <em>Math/ProbFunc.h<em> or in the global one
-- * including all statistical functions <em>Math/DistFunc.h<em>
-+ * These functions are defined in the header file <em>Math/ProbFunc.h</em> or in the global one
-+ * including all statistical functions <em>Math/DistFunc.h</em>
- *
- *
- * <strong>NOTE:</strong> In the old releases (< 5.14) the <em>_quantile</em> 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 {
- <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Algorithms-using-Derivat...">documentation</A> )
- are the followings:
- <ul>
-- <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridSJ</tt> with name <it>"HybridSJ"</it>: modified Powell's hybrid
-+ <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridSJ</tt> with name <i>"HybridSJ"</i>: modified Powell's hybrid
- method as implemented in HYBRJ in MINPACK
-- <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridJ</tt> with name <it>"HybridJ"</it>: unscaled version of the
-+ <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridJ</tt> with name <i>"HybridJ"</i>: unscaled version of the
- previous algorithm</li>
-- <li><tt>ROOT::Math::GSLMultiRootFinder::kNewton</tt> with name <it>"Newton"</it>: Newton method </li>
-- <li><tt>ROOT::Math::GSLMultiRootFinder::kGNewton</tt> with name <it>"GNewton"</it>: modified Newton method </li>
-+ <li><tt>ROOT::Math::GSLMultiRootFinder::kNewton</tt> with name <i>"Newton"</i>: Newton method </li>
-+ <li><tt>ROOT::Math::GSLMultiRootFinder::kGNewton</tt> with name <i>"GNewton"</i>: modified Newton method </li>
- </ul>
- The algorithms without derivatives (see also the GSL
- <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Algorithms-without-Deriv...">documentation</A> )
- are the followings:
- <ul>
-- <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridS</tt> with name <it>"HybridS"</it>: same as HybridSJ but using
-+ <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridS</tt> with name <i>"HybridS"</i>: same as HybridSJ but using
- finate difference approximation for the derivatives</li>
-- <li><tt>ROOT::Math::GSLMultiRootFinder::kHybrid</tt> with name <it>"Hybrid"</it>: unscaled version of the
-+ <li><tt>ROOT::Math::GSLMultiRootFinder::kHybrid</tt> with name <i>"Hybrid"</i>: unscaled version of the
- previous algorithm</li>
-- <li><tt>ROOT::Math::GSLMultiRootFinder::kDNewton</tt> with name <it>"DNewton"</it>: discrete Newton algorithm </li>
-- <li><tt>ROOT::Math::GSLMultiRootFinder::kBroyden</tt> with name <it>"Broyden"</it>: Broyden algorithm </li>
-+ <li><tt>ROOT::Math::GSLMultiRootFinder::kDNewton</tt> with name <i>"DNewton"</i>: discrete Newton algorithm </li>
-+ <li><tt>ROOT::Math::GSLMultiRootFinder::kBroyden</tt> with name <i>"Broyden"</i>: Broyden algorithm </li>
- </ul>
-
- @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</td>
- <td>C=A*B<br>
- A*=B<br>
- C.Mult(A,B)<br>TMatrixD(A,TMatrixD::kMult,B)<br>TMatrixD(A, TMatrixD(A, TMatrixD::kTransposeMult,B)<br>TMatrixD(A, TMatrixD::kMultTranspose,B)</td>
-- <td>overwrites A<br> <br> <br>constructor of A.B<br>constructor of A<sup>T</sup> .B<br>constructor of A.B<sup>T</sup></td>
-+ <td>overwrites A<br> <br> <br>constructor of A·B<br>constructor of A<sup>T</sup>·B<br>constructor of A·B<sup>T</sup></td>
- </tr>
- <tr>
- <td>Element wise multiplication</td>
-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.</li>
-+ 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.</li>
-+ 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.
-
--<br>The current default pdg_table file displays lifetime 0 for some unstable particles.</br>
-+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/).<br>
--Authors: R.Brun<sup>1</sup>, F.Carminati<sup>1</sup>, A. Gheata<sup>1</sup>, I.Hrivnacova<sup>2</sup>, A.Morsch<sup>1</sup>, B.Volkel<sup>1</sup>;<br>
-+Authors: R. Brun<sup>1</sup>, F. Carminati<sup>1</sup>, A. Gheata<sup>1</sup>, I. Hrivnacova<sup>2</sup>, A. Morsch<sup>1</sup>, B. Volkel<sup>1</sup>;<br>
- <sup>1</sup>European Organization for Nuclear Research (CERN), Geneva, Switzerland;<br>
- <sup>2</sup>Institut 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':
--/// <d0>, <d1>, <d2>, ... referring to the n-th sub-component
--/// of the src path
--/// <bn> basename in the source path
--/// <bs> basename sans extension
--/// <ex> Extension
--/// <sn> serial number of file in the list
--/// <s0> as <sn> but zero padded
--/// <fn> the full file path
--/// <us>, <gr> the local user and group names.
--/// <pg> the users PROOF group
--/// <pa> immediate parent directory
--/// <gp> next-to immediate parent directory
-+///
-+/// Place-holder | Meaning |
-+/// ----------------------------|------------------------------------
-+/// \<d0\>, \<d1\>, \<d2\>, ... | referring to the n-th sub-component of the src path
-+/// \<bn\> | basename in the source path
-+/// \<bs\> | basename sans extension
-+/// \<ex\> | Extension
-+/// \<sn\> | serial number of file in the list
-+/// \<s0\> | as \<sn\> but zero padded
-+/// \<fn\> | the full file path
-+/// \<us\>, \<gr\> | the local user and group names.
-+/// \<pg\> | the users PROOF group
-+/// \<pa\> | immediate parent directory
-+/// \<gp\> | 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/<d3>/<d4>/<d5>/<s>/<bn>' and
-+/// then with dest = '/pool/user/\<d3\>/\<d4\>/\<d5\>/\<sn\>/\<bn\>' and
- /// mss = 'protodst://hostdst//nm/
- /// the corresponding destination path is
- /// protodst://hostdst//nm/pool/user/d3/d4/d5/99/myfile
- ///
--/// If 'dest' is empty, <fn> is used.
-+/// If 'dest' is empty, \<fn\> 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':
--/// <d0>, <d1>, <d2>, ... referring to the n-th sub-component
--/// of the src path
--/// <bn> basename in the source path
--/// <sn> serial number of file in the list
--/// <fn> the full file path
--/// <us>, <gr> the local user and group names.
-+///
-+/// Place-holder | Meaning |
-+/// ----------------------------|------------------------------------
-+/// \<d0\>, \<d1\>, \<d2\>, ... | referring to the n-th sub-component of the src path
-+/// \<bn\> | basename in the source path
-+/// \<sn\> | serial number of file in the list
-+/// \<fn\> | the full file path
-+/// \<us\>, \<gr\> | 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/<d3>/<d4>/<d5>/<s>/<bn>' and
-+/// then with dest = '/pool/user/\<d3\>/\<d4\>/\<d5\>/\<sn\>/\<bn\>' and
- /// mss = 'protodst://hostdst//nm/
- /// the corresponding destination path is
- /// protodst://hostdst//nm/pool/user/d3/d4/d5/99/myfile
- ///
--/// If 'dest' is empty, <fn> is used.
-+/// If 'dest' is empty, \<fn\> 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 <ord>, <user>, <u>, <group>, <stag>, <qnum>, <file>, <rver> and
--/// <build> placeholders in fname.
--/// Here, <rver> is the root version in integer form, e.g. 53403, and <build> a
--/// string includign version, architecture and compiler version, e.g.
--/// '53403_linuxx8664gcc_gcc46' .
-+/// Replace \<ord\>, \<user\>, \<u\>, \<group\>, \<stag\>, \<qnum\>, \<file\>,
-+/// \<rver\> and \<build\> placeholders in fname.
-+/// Here, \<rver\> is the root version in integer form, e.g. 53403, and
-+/// \<build\> 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
- <li> several 'Measurements' (corresponding to a full fit of the model) each of which specifies</li>
- <ul>
- <li> a name for this fit to be used in tables and files</li>
--<ul>
--<li> what is the luminosity associated to the measurement in picobarns</li>
--<li> which bins of the histogram should be used</li>
--<li> what is the relative uncertainty on the luminosity </li>
--<li> what is (are) the parameter(s) of interest that will be measured</li>
--<li> which parameters should be fixed/floating (eg. nuisance parameters)</li>
-+<li> what is the luminosity associated to the measurement in picobarns</li>
-+<li> which bins of the histogram should be used</li>
-+<li> what is the relative uncertainty on the luminosity </li>
-+<li> what is (are) the parameter(s) of interest that will be measured</li>
-+<li> which parameters should be fixed/floating (eg. nuisance parameters)</li>
- </ul>
- </ul>
- </ul>
-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;
- <li> several 'Measurements' (corresponding to a full fit of the model) each of which specifies</li>
- <ul>
- <li> a name for this fit to be used in tables and files</li>
-- <ul>
-- <li> what is the luminosity associated to the measurement in picobarns</li>
-- <li> which bins of the histogram should be used</li>
-- <li> what is the relative uncertainty on the luminosity </li>
-- <li> what is (are) the parameter(s) of interest that will be measured</li>
-- <li> which parameters should be fixed/floating (eg. nuisance parameters)</li>
-+ <li> what is the luminosity associated to the measurement in picobarns</li>
-+ <li> which bins of the histogram should be used</li>
-+ <li> what is the relative uncertainty on the luminosity </li>
-+ <li> what is (are) the parameter(s) of interest that will be measured</li>
-+ <li> which parameters should be fixed/floating (eg. nuisance parameters)</li>
- </ul>
- </ul>
- </ul>
-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.
- /// </p>
- /// <p>
--/// In the above example </tt>RooSimPdfBuilder</tt>
-+/// In the above example <tt>RooSimPdfBuilder</tt>
- /// will first replicate <tt>k</tt> and <tt>s</tt> into
- /// <tt>k_C1,k_C2</tt> and <tt>s_C1,s_C2</tt>, as prescribed in the
- /// configuration. Then it will recursively replicate all PDF nodes that depend on
-@@ -383,7 +383,7 @@
- /// <tt>pdfA(x;p,q)</tt> and <tt>pdfB(x;p,r)</tt> that have a common parameter <tt>p</tt>.
- /// We want to build a <tt>RooSimultaneous</tt> for both <tt>pdfA</tt> and <tt>B</tt>,
- /// which involves a split of parameter <tt>p</tt> and we would like to build the
--/// simultaneous pdfs </tt>simA</tt> and <tt>simB</tt> such that still share their (now split) parameters
-+/// simultaneous pdfs <tt>simA</tt> and <tt>simB</tt> such that still share their (now split) parameters
- /// <tt>p_XXX</tt>. This is accomplished by letting a single instance of <tt>RooSimPdfBuilder</tt> handle
- /// the builds of both <tt>pdfA</tt> and <tt>pdfB</tt>, as illustrated in this example:
- /// </p>
-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<TString,Double_t> 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<U>.
-+ /// in contiguous memory. Only used when T == RVec\<U\>.
- EStorageType fStorageType = EStorageType::kUnknown;
- /// If MustUseRVec, i.e. we are reading an array, we return a reference to this RVec to clients
- RVec<ColumnValue_t> 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 <mattias.ellert(a)physics.uu.se>
-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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <jblomer(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <bertrand.bellenot(a)cern.ch>
- /// \author Sergey Linev <S.Linev(a)gsi.de>
-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 <bertrand.bellenot(a)cern.ch>
- /// \author Sergey Linev <S.Linev(a)gsi.de>
-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 <S.Linev(a)gsi.de>
- /// \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 <bertrand.bellenot(a)cern.ch>
- /// \author Sergey Linev <S.Linev(a)gsi.de>
-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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <axel(a)cern.ch>
- /// \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 <mattias.ellert(a)physics.uu.se>
-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 <mattias.ellert(a)physics.uu.se>
-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)
- </pre>
--
--*/
-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
- </pre>
-
- 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
-
- <pre>XYZVector u = v1.Unit(); // return unit vector parallel to v1
- </pre>
--
--*/
-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.</double> </pre>
--
--*/
-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 <mattias.ellert(a)physics.uu.se>
-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 <mattias.ellert(a)physics.uu.se>
-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 '<name>' of command @param is not found in the argument list
-of <function>.
----
- .../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<RAxisConfig::kEquidistant> {
- 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 <b>scale</b>*<b>bgr</b> 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<double>& x) const = 0;
-+ virtual double operator()(const std::vector<double>& 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<double> 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<double> 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<const double>& outputs, std::size_t begin) const {
-@@ -734,7 +734,7 @@ void RooAbsPdf::logBatchComputationErrors(RooSpan<const double>& 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<const double> 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 `<parameterNameToBeReplaced>_<category>`.
-@@ -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<double>::max(), true);
- if (zeta.getVal() == 0. && zeta.isConstant()) {
- RooHelpers::checkRangeOfParameters(this, {&lambda}, -std::numeric_limits<double>::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 <typename LAYERDATA>
- * \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<std::size_t> 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 <typename T>
- inline T BranchlessTree<T>::Inference(const T *input, const int stride)
- {
-@@ -105,7 +105,7 @@ inline void BranchlessTree<T>::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 <typename T>
- inline std::string BranchlessTree<T>::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<T, std::function<void (const T
- /// \param[in] filename Filename of the ROOT file
- /// \param[in] output Load trees corresponding to the given output node of the forest
- /// \param[in] sortTrees Flag to indicate sorting the input trees by the cut value of the first node of each tree
--/// \param[out] Return jitted code as string
-+/// \return Return jitted code as string
- template <typename T>
- inline std::string
- BranchlessJittedForest<T>::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<UInt_t> 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<std::vector<TMVA::Event *>>
-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 <typename T>
-- RResultPtr<T> Fill(T &&model, const ColumnNames_t &bl)
-+ RResultPtr<T> Fill(T &&model, const ColumnNames_t &columnList)
- {
- auto h = std::make_shared<T>(std::forward<T>(model));
- if (!RDFInternal::HistoUtils<T>::HasAxisLimits(*h)) {
- throw std::runtime_error("The absence of axes limits is not supported yet.");
- }
-- return CreateAction<RDFInternal::ActionTags::Fill, RDFDetail::RInferredType>(bl, h, bl.size());
-+ return CreateAction<RDFInternal::ActionTags::Fill, RDFDetail::RInferredType>(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<RDisplay>` 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 <typename NodeType>
- 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<std::string> &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<arrow::Table> inTable, std::vector<std::string> 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-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 <stephan.hageboeck(a)cern.ch>
-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<double>::max(), true);
- if (zeta.getVal() == 0. && zeta.isConstant()) {
- RooHelpers::checkRangeOfParameters(this, {&lambda}, -std::numeric_limits<double>::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 <mattias.ellert(a)physics.uu.se>
-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("<d+[0-9]>");
-+ TRegexp re("<d[0-9]+>");
- while (dst.Tokenize(dt, from, "/")) {
- if (dt.Contains(re)) {
- TParameter<Int_t> *pi = new TParameter<Int_t>(dt, -1);
---
-2.26.2
-
diff --git a/root-fix-multicore-tests-with-few-cores.patch b/root-fix-multicore-tests-with-few-cores.patch
index ada5a11..55ad56e 100644
--- a/root-fix-multicore-tests-with-few-cores.patch
+++ b/root-fix-multicore-tests-with-few-cores.patch
@@ -1,7 +1,25 @@
-diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_concurrency.cxx root-6.22.08/tree/dataframe/test/dataframe_concurrency.cxx
---- root-6.22.08.orig/tree/dataframe/test/dataframe_concurrency.cxx 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/tree/dataframe/test/dataframe_concurrency.cxx 2021-06-01 09:01:37.847751408 +0200
-@@ -46,33 +46,35 @@
+From 153f1c3de0e24f5678fd3a706f902ac12b11048e Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Sun, 18 Apr 2021 07:28:41 +0200
+Subject: [PATCH] Fix multicore tests when running on machines with few cores
+
+When running on machines with few cores, enabling multithreading can
+give you fewer cores than requested. For most of the tests this does
+not matter. However, some tests verify the number of threads used.
+This commit adapts those tests for this situation.
+---
+ tree/dataframe/test/dataframe_concurrency.cxx | 18 +++++++++-------
+ tree/dataframe/test/dataframe_interface.cxx | 7 +++++--
+ tree/dataframe/test/dataframe_simple.cxx | 2 +-
+ tree/dataframe/test/dataframe_snapshot.cxx | 6 ++++--
+ .../test/treeprocmt/treeprocessormt.cxx | 21 +++++++++++++++----
+ 5 files changed, 37 insertions(+), 17 deletions(-)
+
+diff --git a/tree/dataframe/test/dataframe_concurrency.cxx b/tree/dataframe/test/dataframe_concurrency.cxx
+index d1b25493e5..a4bce595f8 100644
+--- a/tree/dataframe/test/dataframe_concurrency.cxx
++++ b/tree/dataframe/test/dataframe_concurrency.cxx
+@@ -57,33 +57,35 @@ TEST(RDFConcurrency, NestedParallelismBetweenDefineCalls)
// [DF] Warn on mismatch between slot pool size and effective number of slots
TEST(RDFSimpleTests, ThrowOnPoolSizeMismatch)
{
@@ -16,7 +34,7 @@ diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_concurrency.cxx root-6.
try {
df.Count().GetValue();
} catch (const std::runtime_error &e) {
- const auto expected_msg = "RLoopManager::Run: when the RDataFrame was constructed the size of the thread pool "
+ const auto expected_msg = "RLoopManager::Run: when the RDataFrame was constructed the number of slots required "
- "was 1, but when starting the event loop it was 3. Maybe EnableImplicitMT() was "
+ "was 1, but when starting the event loop it was " + std::to_string(nslots) + ". Maybe EnableImplicitMT() was "
"called after the RDataFrame was constructed?";
@@ -36,19 +54,20 @@ diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_concurrency.cxx root-6.
try {
df.Count().GetValue();
} catch (const std::runtime_error &e) {
- const auto expected_msg = "RLoopManager::Run: when the RDataFrame was constructed the size of the thread pool "
-- "was 3, but when starting the event loop it was 0. Maybe DisableImplicitMT() was "
-+ "was " + std::to_string(nslots) + ", but when starting the event loop it was 0. Maybe DisableImplicitMT() was "
+ const auto expected_msg = "RLoopManager::Run: when the RDataFrame was constructed the number of slots required "
+- "was 3, but when starting the event loop it was 1. Maybe DisableImplicitMT() was "
++ "was " + std::to_string(nslots) + ", but when starting the event loop it was 1. Maybe DisableImplicitMT() was "
"called after the RDataFrame was constructed?";
- EXPECT_STREQ(e.what(), expected_msg);
+ EXPECT_STREQ(e.what(), expected_msg.c_str());
}
}
}
-diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_interface.cxx root-6.22.08/tree/dataframe/test/dataframe_interface.cxx
---- root-6.22.08.orig/tree/dataframe/test/dataframe_interface.cxx 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/tree/dataframe/test/dataframe_interface.cxx 2021-06-01 08:51:39.351355999 +0200
-@@ -6,6 +6,8 @@
+diff --git a/tree/dataframe/test/dataframe_interface.cxx b/tree/dataframe/test/dataframe_interface.cxx
+index afdd8360ef..90e052f1a7 100644
+--- a/tree/dataframe/test/dataframe_interface.cxx
++++ b/tree/dataframe/test/dataframe_interface.cxx
+@@ -7,6 +7,8 @@
#include "gtest/gtest.h"
@@ -57,7 +76,7 @@ diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_interface.cxx root-6.22
using namespace ROOT;
using namespace ROOT::RDF;
-@@ -349,9 +351,10 @@
+@@ -351,9 +353,10 @@ TEST(RDataFrameInterface, GetNSlots)
ROOT::RDataFrame df0(1);
EXPECT_EQ(1U, df0.GetNSlots());
#ifdef R__USE_IMT
@@ -70,10 +89,11 @@ diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_interface.cxx root-6.22
ROOT::DisableImplicitMT();
ROOT::RDataFrame df1(1);
EXPECT_EQ(1U, df1.GetNSlots());
-diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_simple.cxx root-6.22.08/tree/dataframe/test/dataframe_simple.cxx
---- root-6.22.08.orig/tree/dataframe/test/dataframe_simple.cxx 2021-06-01 08:50:34.317205130 +0200
-+++ root-6.22.08/tree/dataframe/test/dataframe_simple.cxx 2021-06-01 08:51:39.351355999 +0200
-@@ -30,7 +30,7 @@
+diff --git a/tree/dataframe/test/dataframe_simple.cxx b/tree/dataframe/test/dataframe_simple.cxx
+index c6aba48b3e..e6b92be776 100644
+--- a/tree/dataframe/test/dataframe_simple.cxx
++++ b/tree/dataframe/test/dataframe_simple.cxx
+@@ -26,7 +26,7 @@ using namespace ROOT::VecOps;
// Fixture for all tests in this file. If parameter is true, run with implicit MT, else run sequentially
class RDFSimpleTests : public ::testing::TestWithParam<bool> {
protected:
@@ -82,10 +102,11 @@ diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_simple.cxx root-6.22.08
{
if (GetParam())
ROOT::EnableImplicitMT(NSLOTS);
-diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_snapshot.cxx root-6.22.08/tree/dataframe/test/dataframe_snapshot.cxx
---- root-6.22.08.orig/tree/dataframe/test/dataframe_snapshot.cxx 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/tree/dataframe/test/dataframe_snapshot.cxx 2021-06-01 08:51:39.351355999 +0200
-@@ -9,6 +9,7 @@
+diff --git a/tree/dataframe/test/dataframe_snapshot.cxx b/tree/dataframe/test/dataframe_snapshot.cxx
+index 3ce9254442..92444feff1 100644
+--- a/tree/dataframe/test/dataframe_snapshot.cxx
++++ b/tree/dataframe/test/dataframe_snapshot.cxx
+@@ -10,6 +10,7 @@
#include "gtest/gtest.h"
#include <limits>
#include <memory>
@@ -93,7 +114,7 @@ diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_snapshot.cxx root-6.22.
using namespace ROOT; // RDataFrame
using namespace ROOT::RDF; // RInterface
using namespace ROOT::VecOps; // RVec
-@@ -886,9 +887,10 @@
+@@ -1041,9 +1042,10 @@ TEST(RDFSnapshotMore, EmptyBuffersMT)
{
const auto fname = "emptybuffersmt.root";
const auto treename = "t";
@@ -106,10 +127,11 @@ diff -ur root-6.22.08.orig/tree/dataframe/test/dataframe_snapshot.cxx root-6.22.
.Filter([](int x) { return x == 0; }, {"x"}, "f");
auto r = dd.Report();
dd.Snapshot<int>(treename, fname, {"x"});
-diff -ur root-6.22.08.orig/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx root-6.22.08/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx
---- root-6.22.08.orig/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx 2021-06-01 08:51:39.352356002 +0200
-@@ -294,14 +294,27 @@
+diff --git a/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx b/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx
+index 5d5b2cbf42..963ce8a1b1 100644
+--- a/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx
++++ b/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx
+@@ -294,14 +294,27 @@ TEST(TreeProcessorMT, LimitNTasks_CheckEntries)
}
};
@@ -141,3 +163,6 @@ diff -ur root-6.22.08.orig/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx r
gSystem->Unlink(filename);
ROOT::DisableImplicitMT();
+--
+2.30.2
+
diff --git a/root-fix-ppc64le-compilation-with-gcc-10.patch b/root-fix-ppc64le-compilation-with-gcc-10.patch
new file mode 100644
index 0000000..2624de8
--- /dev/null
+++ b/root-fix-ppc64le-compilation-with-gcc-10.patch
@@ -0,0 +1,29 @@
+From 5b8e969ca045aa238c685009e0aa48d74cbdbf22 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Fri, 13 Mar 2020 17:09:03 +0100
+Subject: [PATCH 1/2] Fix ppc64le compilation with gcc 10
+
+Reapply fix lost in the LLVM 9 upgrade. This fix is in LLVM 10.
+
+Backported from llvm upstream
+https://reviews.llvm.org/D74129
+---
+ interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp b/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp
+index c8ed42d266..16bb00d2e9 100644
+--- a/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp
++++ b/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp
+@@ -2546,7 +2546,7 @@ bool Lexer::SkipBlockComment(Token &Result, const char *CurPtr,
+ '/', '/', '/', '/', '/', '/', '/', '/'
+ };
+ while (CurPtr+16 <= BufferEnd &&
+- !vec_any_eq(*(const vector unsigned char*)CurPtr, Slashes))
++ !vec_any_eq(*(const __vector unsigned char*)CurPtr, Slashes))
+ CurPtr += 16;
+ #else
+ // Scan for '/' quickly. Many block comments are very large.
+--
+2.30.2
+
diff --git a/root-fontconfig.patch b/root-fontconfig.patch
index 2a05c55..35705a4 100644
--- a/root-fontconfig.patch
+++ b/root-fontconfig.patch
@@ -1,7 +1,7 @@
-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 @@
+diff -ur root-6.24.02.orig/core/base/src/TApplication.cxx root-6.24.02/core/base/src/TApplication.cxx
+--- root-6.24.02.orig/core/base/src/TApplication.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/core/base/src/TApplication.cxx 2021-08-11 10:49:08.583579248 +0200
+@@ -265,18 +265,11 @@
LoadGraphicsLibs();
// Try to load TrueType font renderer. Only try to load if not in batch
@@ -22,7 +22,7 @@ diff -ur root-6.22.02.orig/core/base/src/TApplication.cxx root-6.22.02/core/base
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 @@
+@@ -290,7 +283,6 @@
}
}
#endif
@@ -30,9 +30,9 @@ diff -ur root-6.22.02.orig/core/base/src/TApplication.cxx root-6.22.02/core/base
// 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
+diff -ur root-6.24.02.orig/graf2d/asimage/CMakeLists.txt root-6.24.02/graf2d/asimage/CMakeLists.txt
+--- root-6.24.02.orig/graf2d/asimage/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf2d/asimage/CMakeLists.txt 2021-08-11 10:49:08.583579248 +0200
@@ -30,6 +30,7 @@
${FREETYPE_LIBRARIES}
${X11_LIBRARIES}
@@ -41,10 +41,10 @@ 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 -ur root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx root-6.24.02/graf2d/asimage/src/TASImage.cxx
+--- root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf2d/asimage/src/TASImage.cxx 2021-08-11 10:49:08.585579253 +0200
+@@ -112,6 +112,8 @@
# include <draw.h>
}
@@ -53,7 +53,7 @@ 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 @@
+@@ -2595,14 +2597,120 @@
TString fn = font_name;
fn.Strip();
@@ -181,7 +181,7 @@ diff -ur root-6.22.02.orig/graf2d/asimage/src/TASImage.cxx root-6.22.02/graf2d/a
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 @@
+@@ -2626,14 +2734,11 @@
return;
}
@@ -199,9 +199,9 @@ diff -ur root-6.22.02.orig/graf2d/asimage/src/TASImage.cxx root-6.22.02/graf2d/a
}
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
+diff -ur root-6.24.02.orig/graf2d/graf/CMakeLists.txt root-6.24.02/graf2d/graf/CMakeLists.txt
+--- root-6.24.02.orig/graf2d/graf/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf2d/graf/CMakeLists.txt 2021-08-11 10:49:08.586579256 +0200
@@ -91,6 +91,7 @@
${FREETYPE_LIBRARIES}
ZLIB::ZLIB
@@ -210,9 +210,9 @@ 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
+diff -ur root-6.24.02.orig/graf2d/graf/inc/TTF.h root-6.24.02/graf2d/graf/inc/TTF.h
+--- root-6.24.02.orig/graf2d/graf/inc/TTF.h 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf2d/graf/inc/TTF.h 2021-08-11 10:49:08.586579256 +0200
@@ -76,9 +76,8 @@
static FT_BBox fgCBox; ///< string control box
static FT_CharMap fgCharMap[kTTMaxFonts]; ///< font character map
@@ -224,9 +224,9 @@ diff -ur root-6.22.02.orig/graf2d/graf/inc/TTF.h root-6.22.02/graf2d/graf/inc/TT
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
+diff -ur root-6.24.02.orig/graf2d/graf/src/TTF.cxx root-6.24.02/graf2d/graf/src/TTF.cxx
+--- root-6.24.02.orig/graf2d/graf/src/TTF.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf2d/graf/src/TTF.cxx 2021-08-11 10:49:08.587579259 +0200
@@ -25,6 +25,8 @@
#include "TMath.h"
#include "TError.h"
@@ -787,9 +787,9 @@ diff -ur root-6.22.02.orig/graf2d/graf/src/TTF.cxx root-6.22.02/graf2d/graf/src/
}
////////////////////////////////////////////////////////////////////////////////
-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
+diff -ur root-6.24.02.orig/graf2d/postscript/CMakeLists.txt root-6.24.02/graf2d/postscript/CMakeLists.txt
+--- root-6.24.02.orig/graf2d/postscript/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf2d/postscript/CMakeLists.txt 2021-08-11 10:49:08.587579259 +0200
@@ -27,6 +27,7 @@
LIBRARIES
ZLIB::ZLIB
@@ -798,18 +798,18 @@ 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 <string.h>
- #include <ctype.h>
- #include <wchar.h>
+diff -ur root-6.24.02.orig/graf2d/postscript/src/TPostScript.cxx root-6.24.02/graf2d/postscript/src/TPostScript.cxx
+--- root-6.24.02.orig/graf2d/postscript/src/TPostScript.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf2d/postscript/src/TPostScript.cxx 2021-08-11 10:49:08.588579261 +0200
+@@ -234,6 +234,7 @@
+ #include <cctype>
+ #include <cwchar>
+ #include <fstream>
+#include <fontconfig/fontconfig.h>
- #include "Riostream.h"
- #include "Byteswap.h"
-@@ -1583,56 +1584,179 @@
+ #include "strlcpy.h"
+ #include "snprintf.h"
+@@ -1585,56 +1586,179 @@
void TPostScript::FontEmbed(void)
{
@@ -1034,7 +1034,7 @@ diff -ur root-6.22.02.orig/graf2d/postscript/src/TPostScript.cxx root-6.22.02/gr
} else {
if (FontEmbedType2(ttfont)) {
// nothing
-@@ -1641,9 +1765,8 @@
+@@ -1643,9 +1767,8 @@
} else if(FontEmbedType42(ttfont)) {
// nothing
} else {
@@ -1046,7 +1046,7 @@ diff -ur root-6.22.02.orig/graf2d/postscript/src/TPostScript.cxx root-6.22.02/gr
}
delete [] ttfont;
}
-@@ -2835,10 +2958,10 @@
+@@ -2837,10 +2960,10 @@
{ "Root.PSFont.9", "/FreeMonoOblique" },
{ "Root.PSFont.10", "/FreeMonoBold" },
{ "Root.PSFont.11", "/FreeMonoBoldOblique" },
@@ -1060,9 +1060,9 @@ 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
+diff -ur root-6.24.02.orig/graf3d/gl/CMakeLists.txt root-6.24.02/graf3d/gl/CMakeLists.txt
+--- root-6.24.02.orig/graf3d/gl/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf3d/gl/CMakeLists.txt 2021-08-11 10:49:08.589579264 +0200
@@ -208,6 +208,7 @@
${GL2PS_LIBRARIES}
${X11_LIBRARIES}
@@ -1071,10 +1071,10 @@ 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 -ur root-6.24.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.24.02/graf3d/gl/src/TGLFontManager.cxx
+--- root-6.24.02.orig/graf3d/gl/src/TGLFontManager.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf3d/gl/src/TGLFontManager.cxx 2021-08-11 10:49:08.589579264 +0200
+@@ -36,6 +36,7 @@
# include "FTGLBitmapFont.h"
#endif
@@ -1082,7 +1082,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 @@
+@@ -419,7 +420,7 @@
ClassImp(TGLFontManager);
TObjArray TGLFontManager::fgFontFileArray;
@@ -1091,7 +1091,7 @@ diff -ur root-6.22.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.22.02/graf3d/
TGLFontManager::FontSizeVec_t TGLFontManager::fgFontSizeArray;
Bool_t TGLFontManager::fgStaticInitDone = kFALSE;
-@@ -451,17 +452,175 @@
+@@ -450,17 +451,175 @@
FontMap_i it = fFontMap.find(TGLFont(size, fileID, mode));
if (it == fFontMap.end())
{
@@ -1276,7 +1276,7 @@ diff -ur root-6.22.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.22.02/graf3d/
FTFont* ftfont = 0;
switch (mode)
{
-@@ -485,10 +644,14 @@
+@@ -484,10 +643,14 @@
ftfont = new FTGLTextureFont(file);
break;
default:
@@ -1291,7 +1291,7 @@ diff -ur root-6.22.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.22.02/graf3d/
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 @@
+@@ -570,8 +733,6 @@
{
if (fgStaticInitDone == kFALSE) InitStatics();
@@ -1300,7 +1300,7 @@ diff -ur root-6.22.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.22.02/graf3d/
return fgExtendedFontStart;
}
-@@ -642,28 +803,6 @@
+@@ -641,28 +802,6 @@
fgFontFileArray.Add(new TObjString("wingding")); // 140
fgFontFileArray.Add(new TObjString("symbol")); // 150
@@ -1329,10 +1329,10 @@ diff -ur root-6.22.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.22.02/graf3d/
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 -ur root-6.24.02.orig/graf3d/gl/src/TGLText.cxx root-6.24.02/graf3d/gl/src/TGLText.cxx
+--- root-6.24.02.orig/graf3d/gl/src/TGLText.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/graf3d/gl/src/TGLText.cxx 2021-08-11 10:49:08.590579267 +0200
+@@ -32,6 +32,8 @@
# include "FTGLBitmapFont.h"
#endif
@@ -1341,7 +1341,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 @@
+@@ -176,27 +178,92 @@
{
int fontid = fontnumber / 10;
@@ -1455,7 +1455,7 @@ diff -ur root-6.22.02.orig/graf3d/gl/src/TGLText.cxx root-6.22.02/graf3d/gl/src/
if (fGLTextFont) delete fGLTextFont;
-@@ -206,7 +273,9 @@
+@@ -204,7 +271,9 @@
fGLTextFont = new FTGLPolygonFont(ttfont);
@@ -1466,9 +1466,9 @@ 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
+diff -ur root-6.24.02.orig/gui/gui/src/TGApplication.cxx root-6.24.02/gui/gui/src/TGApplication.cxx
+--- root-6.24.02.orig/gui/gui/src/TGApplication.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/gui/gui/src/TGApplication.cxx 2021-08-11 10:49:08.590579267 +0200
@@ -80,20 +80,12 @@
gROOT->SetBatch(kFALSE);
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 <mattias.ellert(a)physics.uu.se>
-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<float>; 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 <mattias.ellert(a)physics.uu.se>
-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 <mattias.ellert(a)physics.uu.se>
-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-jsmva-static.patch b/root-jsmva-static.patch
new file mode 100644
index 0000000..a81848a
--- /dev/null
+++ b/root-jsmva-static.patch
@@ -0,0 +1,36 @@
+diff -ur root-6.24.02.orig/bindings/jsmva/python/JsMVA/JPyInterface.py root-6.24.02/bindings/jsmva/python/JsMVA/JPyInterface.py
+--- root-6.24.02.orig/bindings/jsmva/python/JsMVA/JPyInterface.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/bindings/jsmva/python/JsMVA/JPyInterface.py 2021-08-11 09:06:21.894746090 +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.24.02.orig/bindings/pyroot_legacy/JsMVA/JPyInterface.py root-6.24.02/bindings/pyroot_legacy/JsMVA/JPyInterface.py
+--- root-6.24.02.orig/bindings/pyroot_legacy/JsMVA/JPyInterface.py 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/bindings/pyroot_legacy/JsMVA/JPyInterface.py 2021-08-11 09:06:21.925746168 +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.24.02.orig/etc/notebook/JsMVA/js/JsMVA.js root-6.24.02/etc/notebook/JsMVA/js/JsMVA.js
+--- root-6.24.02.orig/etc/notebook/JsMVA/js/JsMVA.js 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/etc/notebook/JsMVA/js/JsMVA.js 2021-08-11 09:10:45.638410266 +0200
+@@ -16,7 +16,7 @@
+
+ (function(factory){
+
+- var JSROOT_source_dir = "https://root.cern.ch/js/notebook/scripts/";
++ var JSROOT_source_dir = "/static/scripts/";
+
+ var url = "";
+ if (requirejs.s.contexts.hasOwnProperty("_")) {
diff --git a/root-jupyroot-jupyterlab-compat.patch b/root-jupyroot-jupyterlab-compat.patch
deleted file mode 100644
index a7850c4..0000000
--- a/root-jupyroot-jupyterlab-compat.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-diff -ur root-6.22.08.orig/bindings/jupyroot/python/JupyROOT/helpers/utils.py root-6.22.08/bindings/jupyroot/python/JupyROOT/helpers/utils.py
---- root-6.22.08.orig/bindings/jupyroot/python/JupyROOT/helpers/utils.py 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/bindings/jupyroot/python/JupyROOT/helpers/utils.py 2021-06-17 19:29:39.457234887 +0200
-@@ -39,24 +39,31 @@
-
- _jsNotDrawableClassesPatterns = ["TEve*","TF3","TPolyLine3D"]
-
--
--_jsROOTSourceDir = "/static/"
- _jsCanvasWidth = 800
- _jsCanvasHeight = 600
--
- _jsCode = """
-+
- <div id="{jsDivId}"
- style="width: {jsCanvasWidth}px; height: {jsCanvasHeight}px">
- </div>
- <script>
- if (typeof require !== 'undefined') {{
-
-- // All requirements met (we are in jupyter notebooks or we loaded requirejs before).
-- display_{jsDivId}();
-+ // We are in jupyter notebooks, use require.js which should be configured already
-+ require(['scripts/JSRootCore'],
-+ function(Core) {{
-+ display_{jsDivId}(Core);
-+ }}
-+ );
-+
-+}} else if (typeof JSROOT !== 'undefined') {{
-+
-+ // JSROOT already loaded, just use it
-+ display_{jsDivId}(JSROOT);
-
- }} else {{
-
-- // We are in jupyterlab, we need to insert requirejs and configure it.
-+ // We are in jupyterlab without require.js, directly loading jsroot
- // Jupyterlab might be installed in a different base_url so we need to know it.
- try {{
- var base_url = JSON.parse(document.getElementById('jupyter-config-data').innerHTML).baseUrl;
-@@ -65,14 +72,15 @@
- }}
-
- // Try loading a local version of requirejs and fallback to cdn if not possible.
-- requirejs_load(base_url + 'static/components/requirejs/require.js', requirejs_success(base_url), function(){{
-- requirejs_load('https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.min.js', requirejs_success(base_url), function(){{
-- document.getElementById("{jsDivId}").innerHTML = "Failed to load requireJs";
-+ script_load(base_url + 'static/scripts/JSRootCore.js', script_success, function(){{
-+ console.error('Fail to load JSROOT locally, please check your jupyter_notebook_config.py file')
-+ script_load('https://root.cern/js/5.9.1/scripts/JSRootCore.min.js', script_success, function(){{
-+ document.getElementById("{jsDivId}").innerHTML = "Failed to load JSROOT";
- }});
- }});
- }}
-
--function requirejs_load(src, on_load, on_error) {{
-+function script_load(src, on_load, on_error) {{
- var script = document.createElement('script');
- script.src = src;
- script.onload = on_load;
-@@ -80,23 +88,14 @@
- document.head.appendChild(script);
- }}
-
--function requirejs_success(base_url) {{
-- return function() {{
-- require.config({{
-- baseUrl: base_url + 'static/'
-- }});
-- display_{jsDivId}();
-- }}
-+function script_success() {{
-+ display_{jsDivId}(JSROOT);
- }}
-
--function display_{jsDivId}() {{
-- require(['scripts/JSRootCore'],
-- function(Core) {{
-- var obj = Core.JSONR_unref({jsonContent});
-- Core.key_handling = false;
-- Core.draw("{jsDivId}", obj, "{jsDrawOptions}");
-- }}
-- );
-+function display_{jsDivId}(Core) {{
-+ var obj = Core.JSONR_unref({jsonContent});
-+ Core.key_handling = false;
-+ Core.draw("{jsDivId}", obj, "{jsDrawOptions}");
- }}
- </script>
- """
-@@ -296,7 +295,7 @@
- cnt = 0
- for n in range(colors.GetLast()+1):
- if colors.At(n): cnt = cnt+1
--
-+
- # add all colors if there are more than 598 colors defined
- if cnt < 599 or prim.FindObject(colors):
- colors = None
-@@ -312,14 +311,14 @@
- prim.Add(palette)
-
- ROOT.TColor.DefinedColors()
--
-+
- canvas_json = ROOT.TBufferJSON.ConvertToJSON(canvas, 3)
-
- # Cleanup primitives after conversion
- if style is not None: prim.Remove(style)
- if colors is not None: prim.Remove(colors)
- if palette is not None: prim.Remove(palette)
--
-+
- return canvas_json
-
- transformers = []
-@@ -508,7 +507,6 @@
-
- thisJsCode = _jsCode.format(jsCanvasWidth = height,
- jsCanvasHeight = width,
-- jsROOTSourceDir = _jsROOTSourceDir,
- jsonContent = json.Data(),
- jsDrawOptions = options,
- jsDivId = divId)
diff --git a/root-jupyroot-static.patch b/root-jupyroot-static.patch
deleted file mode 100644
index 717e203..0000000
--- a/root-jupyroot-static.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-diff -ur root-6.22.08.orig/bindings/jsmva/python/JsMVA/JPyInterface.py root-6.22.08/bindings/jsmva/python/JsMVA/JPyInterface.py
---- root-6.22.08.orig/bindings/jsmva/python/JsMVA/JPyInterface.py 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/bindings/jsmva/python/JsMVA/JPyInterface.py 2021-06-17 19:32:12.018598877 +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.08.orig/bindings/jupyroot/python/JupyROOT/helpers/utils.py root-6.22.08/bindings/jupyroot/python/JupyROOT/helpers/utils.py
---- root-6.22.08.orig/bindings/jupyroot/python/JupyROOT/helpers/utils.py 2021-06-17 19:29:39.457234887 +0200
-+++ root-6.22.08/bindings/jupyroot/python/JupyROOT/helpers/utils.py 2021-06-17 19:29:00.146141086 +0200
-@@ -72,7 +72,7 @@
- }}
-
- // Try loading a local version of requirejs and fallback to cdn if not possible.
-- script_load(base_url + 'static/scripts/JSRootCore.js', script_success, function(){{
-+ script_load(base_url + 'static/jsroot/scripts/JSRootCore.js', script_success, function(){{
- console.error('Fail to load JSROOT locally, please check your jupyter_notebook_config.py file')
- script_load('https://root.cern/js/5.9.1/scripts/JSRootCore.min.js', script_success, function(){{
- document.getElementById("{jsDivId}").innerHTML = "Failed to load JSROOT";
-diff -ur root-6.22.08.orig/bindings/pyroot_legacy/JsMVA/JPyInterface.py root-6.22.08/bindings/pyroot_legacy/JsMVA/JPyInterface.py
---- root-6.22.08.orig/bindings/pyroot_legacy/JsMVA/JPyInterface.py 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/bindings/pyroot_legacy/JsMVA/JPyInterface.py 2021-06-17 19:32:12.019598879 +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.08.orig/bindings/pyroot_legacy/JupyROOT/helpers/utils.py root-6.22.08/bindings/pyroot_legacy/JupyROOT/helpers/utils.py
---- root-6.22.08.orig/bindings/pyroot_legacy/JupyROOT/helpers/utils.py 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/bindings/pyroot_legacy/JupyROOT/helpers/utils.py 2021-06-17 19:32:12.019598879 +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.08.orig/etc/notebook/JsMVA/js/JsMVA.js root-6.22.08/etc/notebook/JsMVA/js/JsMVA.js
---- root-6.22.08.orig/etc/notebook/JsMVA/js/JsMVA.js 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/etc/notebook/JsMVA/js/JsMVA.js 2021-06-17 19:32:12.020598882 +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.08.orig/etc/notebook/JsMVA/js/NetworkDesigner.js root-6.22.08/etc/notebook/JsMVA/js/NetworkDesigner.js
---- root-6.22.08.orig/etc/notebook/JsMVA/js/NetworkDesigner.js 2021-03-10 15:19:14.000000000 +0100
-+++ root-6.22.08/etc/notebook/JsMVA/js/NetworkDesigner.js 2021-06-17 19:32:12.020598882 +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 <mattias.ellert(a)physics.uu.se>
-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-no-export-python-modules.patch b/root-no-export-python-modules.patch
index 21b1319..aa7604d 100644
--- a/root-no-export-python-modules.patch
+++ b/root-no-export-python-modules.patch
@@ -1,6 +1,6 @@
-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
+diff -ur root-6.24.02.orig/bindings/jupyroot/CMakeLists.txt root-6.24.02/bindings/jupyroot/CMakeLists.txt
+--- root-6.24.02.orig/bindings/jupyroot/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/bindings/jupyroot/CMakeLists.txt 2021-08-11 10:53:03.272202496 +0200
@@ -70,8 +70,7 @@
endforeach()
@@ -8,13 +8,13 @@ diff -ur root-6.22.02.orig/bindings/jupyroot/CMakeLists.txt root-6.22.02/binding
- 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)
+ LIBRARY DESTINATION ${CMAKE_INSTALL_PYTHONDIR} COMPONENT libraries
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_PYTHONDIR} 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 @@
+diff -ur root-6.24.02.orig/bindings/pyroot/pythonizations/CMakeLists.txt root-6.24.02/bindings/pyroot/pythonizations/CMakeLists.txt
+--- root-6.24.02.orig/bindings/pyroot/pythonizations/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/bindings/pyroot/pythonizations/CMakeLists.txt 2021-08-11 10:53:03.272202496 +0200
+@@ -137,11 +137,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)
@@ -25,6 +25,6 @@ diff -ur root-6.22.02.orig/bindings/pyroot/pythonizations/CMakeLists.txt root-6.
- 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)
+ LIBRARY DESTINATION ${CMAKE_INSTALL_PYTHONDIR} COMPONENT libraries
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_PYTHONDIR} COMPONENT libraries)
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 <ROOT/RConfig.hxx>
-+
- #include "ROOT/RMiniFile.hxx"
-
- #include <ROOT/RRawFile.hxx>
-@@ -999,7 +1001,11 @@
- R__ASSERT(fFile);
- size_t retval;
- if ((offset >= 0) && (static_cast<std::uint64_t>(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 <ROOT/RConfig.hxx>
-+
- #include <ROOT/RColumnModel.hxx>
- #include <ROOT/RDataFrame.hxx>
- #include <ROOT/RNTuple.hxx>
-@@ -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
index a25a8e8..bcba732 100644
--- a/root-old-gtest-compat.patch
+++ b/root-old-gtest-compat.patch
@@ -1,6 +1,20 @@
-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
+diff -ur root-6.24.02.orig/hist/hist/test/test_THBinIterator.cxx root-6.24.02/hist/hist/test/test_THBinIterator.cxx
+--- root-6.24.02.orig/hist/hist/test/test_THBinIterator.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/hist/hist/test/test_THBinIterator.cxx 2021-08-06 22:59:45.039518775 +0200
+@@ -1,5 +1,10 @@
+ #include "gtest/gtest.h"
+
++#ifndef INSTANTIATE_TEST_SUITE_P
++#define SetUpTestSuite SetUpTestCase
++#define TearDownTestSuite TearDownTestCase
++#endif
++
+ // test iterating histogram bins and using the new THistRange and
+ // THBinIterator classes
+
+diff -ur root-6.24.02.orig/math/mathcore/test/stress/testGenVector.cxx root-6.24.02/math/mathcore/test/stress/testGenVector.cxx
+--- root-6.24.02.orig/math/mathcore/test/stress/testGenVector.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/math/mathcore/test/stress/testGenVector.cxx 2021-08-06 09:31:38.795835283 +0200
@@ -4,6 +4,16 @@
#include "gtest/gtest.h"
@@ -18,9 +32,9 @@ diff -ur root-6.22.00.orig/math/mathcore/test/stress/testGenVector.cxx root-6.22
#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
+diff -ur root-6.24.02.orig/math/mathcore/test/stress/testSMatrix.cxx root-6.24.02/math/mathcore/test/stress/testSMatrix.cxx
+--- root-6.24.02.orig/math/mathcore/test/stress/testSMatrix.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/math/mathcore/test/stress/testSMatrix.cxx 2021-08-06 09:31:38.796835286 +0200
@@ -7,6 +7,16 @@
#include "TestHelper.h"
#include "gtest/gtest.h"
@@ -38,9 +52,9 @@ diff -ur root-6.22.00.orig/math/mathcore/test/stress/testSMatrix.cxx root-6.22.0
#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
+diff -ur root-6.24.02.orig/math/mathcore/test/stress/testVector34.cxx root-6.24.02/math/mathcore/test/stress/testVector34.cxx
+--- root-6.24.02.orig/math/mathcore/test/stress/testVector34.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/math/mathcore/test/stress/testVector34.cxx 2021-08-06 09:31:38.796835286 +0200
@@ -4,6 +4,16 @@
#include "gtest/gtest.h"
@@ -58,9 +72,9 @@ diff -ur root-6.22.00.orig/math/mathcore/test/stress/testVector34.cxx root-6.22.
#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
+diff -ur root-6.24.02.orig/math/mathcore/test/stress/testVector.cxx root-6.24.02/math/mathcore/test/stress/testVector.cxx
+--- root-6.24.02.orig/math/mathcore/test/stress/testVector.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/math/mathcore/test/stress/testVector.cxx 2021-08-06 09:31:38.796835286 +0200
@@ -4,6 +4,16 @@
#include "gtest/gtest.h"
@@ -78,9 +92,9 @@ diff -ur root-6.22.00.orig/math/mathcore/test/stress/testVector.cxx root-6.22.00
#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
+diff -ur root-6.24.02.orig/math/mathcore/test/testGradient.cxx root-6.24.02/math/mathcore/test/testGradient.cxx
+--- root-6.24.02.orig/math/mathcore/test/testGradient.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/math/mathcore/test/testGradient.cxx 2021-08-06 09:31:38.796835286 +0200
@@ -22,6 +22,10 @@
#include "gtest/gtest.h"
@@ -92,9 +106,9 @@ diff -ur root-6.22.00.orig/math/mathcore/test/testGradient.cxx root-6.22.00/math
#include <chrono>
#include <iostream>
#include <string>
-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
+diff -ur root-6.24.02.orig/math/mathcore/test/testGradientFitting.cxx root-6.24.02/math/mathcore/test/testGradientFitting.cxx
+--- root-6.24.02.orig/math/mathcore/test/testGradientFitting.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/math/mathcore/test/testGradientFitting.cxx 2021-08-06 09:31:38.797835288 +0200
@@ -12,6 +12,16 @@
#include "gtest/gtest.h"
@@ -112,10 +126,10 @@ diff -ur root-6.22.00.orig/math/mathcore/test/testGradientFitting.cxx root-6.22.
#include <iostream>
#include <string>
-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 @@
+diff -ur root-6.24.02.orig/math/mathmore/test/testStress.cxx root-6.24.02/math/mathmore/test/testStress.cxx
+--- root-6.24.02.orig/math/mathmore/test/testStress.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/math/mathmore/test/testStress.cxx 2021-08-06 09:31:38.797835288 +0200
+@@ -26,6 +26,16 @@
#include "gtest/gtest.h"
@@ -132,9 +146,9 @@ diff -ur root-6.22.00.orig/math/mathmore/test/testStress.cxx root-6.22.00/math/m
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
+diff -ur root-6.24.02.orig/roofit/roofitcore/test/testProxiesAndCategories.cxx root-6.24.02/roofit/roofitcore/test/testProxiesAndCategories.cxx
+--- root-6.24.02.orig/roofit/roofitcore/test/testProxiesAndCategories.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/roofit/roofitcore/test/testProxiesAndCategories.cxx 2021-08-06 09:31:38.798835290 +0200
@@ -16,6 +16,9 @@
#include "gtest/gtest.h"
@@ -145,9 +159,49 @@ diff -ur root-6.22.00.orig/roofit/roofitcore/test/testProxiesAndCategories.cxx r
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
+diff -ur root-6.24.02.orig/tree/dataframe/test/dataframe_datablockcallback.cxx root-6.24.02/tree/dataframe/test/dataframe_datablockcallback.cxx
+--- root-6.24.02.orig/tree/dataframe/test/dataframe_datablockcallback.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/dataframe_datablockcallback.cxx 2021-08-06 09:31:38.801835298 +0200
+@@ -11,6 +11,10 @@
+
+ #include <gtest/gtest.h>
+
++#ifndef INSTANTIATE_TEST_SUITE_P
++#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
++#endif
++
+ #include <algorithm> // std::min
+ #include <thread> // std::hardware_concurrency
+
+diff -ur root-6.24.02.orig/tree/dataframe/test/dataframe_merge_results.cxx root-6.24.02/tree/dataframe/test/dataframe_merge_results.cxx
+--- root-6.24.02.orig/tree/dataframe/test/dataframe_merge_results.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/dataframe_merge_results.cxx 2021-08-06 09:31:38.802835300 +0200
+@@ -308,7 +308,7 @@
+ EXPECT_FALSE(mh3);
+ EXPECT_FALSE(mh4);
+ EXPECT_FALSE(mh5);
+- EXPECT_TRUE(mergedptr);
++ EXPECT_TRUE(!!mergedptr);
+
+ const auto &mh = mergedptr->GetValue();
+
+diff -ur root-6.24.02.orig/tree/dataframe/test/dataframe_regression.cxx root-6.24.02/tree/dataframe/test/dataframe_regression.cxx
+--- root-6.24.02.orig/tree/dataframe/test/dataframe_regression.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/dataframe_regression.cxx 2021-08-06 09:31:38.802835300 +0200
+@@ -9,6 +9,10 @@
+
+ #include "gtest/gtest.h"
+
++#ifndef INSTANTIATE_TEST_SUITE_P
++#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
++#endif
++
+ // Fixture for all tests in this file. If parameter is true, run with implicit MT, else run sequentially
+ class RDFRegressionTests : public ::testing::TestWithParam<bool> {
+ protected:
+diff -ur root-6.24.02.orig/tree/dataframe/test/dataframe_simple.cxx root-6.24.02/tree/dataframe/test/dataframe_simple.cxx
+--- root-6.24.02.orig/tree/dataframe/test/dataframe_simple.cxx 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/tree/dataframe/test/dataframe_simple.cxx 2021-08-06 09:31:38.803835303 +0200
@@ -1,5 +1,10 @@
/****** Run RDataFrame tests both with and without IMT enabled *******/
#include <gtest/gtest.h>
@@ -156,6 +210,6 @@ diff -ur root-6.22.00.orig/tree/dataframe/test/dataframe_simple.cxx root-6.22.00
+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
+#endif
+
+ #include <ROOTUnitTestSupport.h>
#include <ROOT/RDataFrame.hxx>
#include <ROOT/TSeq.hxx>
- #include <TChain.h>
diff --git a/root-older-python.patch b/root-older-python.patch
new file mode 100644
index 0000000..fa6a05a
--- /dev/null
+++ b/root-older-python.patch
@@ -0,0 +1,46 @@
+From 61116151cce8fe5b397555a65f7b55001b8e416b Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Fri, 23 Apr 2021 21:39:17 +0200
+Subject: [PATCH] Compat with no f-strings
+
+---
+ tutorials/tmva/PyTorch_Generate_CNN_Model.py | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/tutorials/tmva/PyTorch_Generate_CNN_Model.py b/tutorials/tmva/PyTorch_Generate_CNN_Model.py
+index 7024112f03..5a314f86dd 100644
+--- a/tutorials/tmva/PyTorch_Generate_CNN_Model.py
++++ b/tutorials/tmva/PyTorch_Generate_CNN_Model.py
+@@ -56,7 +56,7 @@ def fit(model, train_loader, val_loader, num_epochs, batch_size, optimizer, crit
+ # print train statistics
+ running_train_loss += train_loss.item()
+ if i % 4 == 3: # print every 4 mini-batches
+- print(f"[{epoch+1}, {i+1}] train loss: {running_train_loss / 4 :.3f}")
++ print("[{}, {}] train loss: {:.3f}".format(epoch+1, i+1, running_train_loss / 4))
+ running_train_loss = 0.0
+
+ if schedule:
+@@ -75,15 +75,15 @@ def fit(model, train_loader, val_loader, num_epochs, batch_size, optimizer, crit
+
+ curr_val = running_val_loss / len(val_loader)
+ if save_best:
+- if best_val==None:
+- best_val = curr_val
+- best_val = save_best(model, curr_val, best_val)
++ if best_val is None:
++ best_val = curr_val
++ best_val = save_best(model, curr_val, best_val)
+
+ # print val statistics per epoch
+- print(f"[{epoch+1}] val loss: {curr_val :.3f}")
++ print("[{}] val loss: {:.3f}".format(epoch+1, curr_val))
+ running_val_loss = 0.0
+
+- print(f"Finished Training on {epoch+1} Epochs!")
++ print("Finished Training on {} Epochs!".format(epoch+1))
+
+ return model
+
+--
+2.30.2
+
diff --git a/root-ppc-codemodel.patch b/root-ppc-codemodel.patch
new file mode 100644
index 0000000..223dc7c
--- /dev/null
+++ b/root-ppc-codemodel.patch
@@ -0,0 +1,36 @@
+From 774ab9358d852e2c004564183de4a60eaaa5ac98 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Fri, 23 Apr 2021 21:40:14 +0200
+Subject: [PATCH 2/2] Actually request the use of the large code model for
+ ppc64/ppc64le
+
+Instead of erroring out with an assert.
+---
+ interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp b/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp
+index 46771aa8c0..93a48f31f3 100644
+--- a/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp
++++ b/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp
+@@ -73,14 +73,14 @@ CreateHostTargetMachine(const clang::CompilerInstance& CI) {
+ JTMB->getOptions().EmulatedTLS = false;
+ #endif // _WIN32
+
+- std::unique_ptr<TargetMachine> TM = cantFail(JTMB->createTargetMachine());
+-
+ #if defined(__powerpc64__) || defined(__PPC64__)
+ // We have to use large code model for PowerPC64 because TOC and text sections
+ // can be more than 2GB apart.
+- assert(TM->getCodeModel() >= CodeModel::Large);
++ JTMB->setCodeModel(CodeModel::Large);
+ #endif
+
++ std::unique_ptr<TargetMachine> TM = cantFail(JTMB->createTargetMachine());
++
+ // Forcefully disable GlobalISel, it might be enabled on AArch64 without
+ // optimizations. In tests on an Apple M1 after the upgrade to LLVM 9, this
+ // new instruction selection framework emits branches / calls that expect all
+--
+2.30.2
+
diff --git a/root-ppc-no-codemodel.patch b/root-ppc-no-codemodel.patch
new file mode 100644
index 0000000..3429097
--- /dev/null
+++ b/root-ppc-no-codemodel.patch
@@ -0,0 +1,13 @@
+diff --git a/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp b/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp
+index c98a3be0ed..f77d4adec2 100644
+--- a/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp
++++ b/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp
+@@ -77,7 +77,7 @@ CreateHostTargetMachine(const clang::CompilerInstance& CI) {
+ #if defined(__powerpc64__) || defined(__PPC64__)
+ // We have to use large code model for PowerPC64 because TOC and text sections
+ // can be more than 2GB apart.
+- JTMB->setCodeModel(CodeModel::Large);
++ //JTMB->setCodeModel(CodeModel::Large);
+ #endif
+
+ std::unique_ptr<TargetMachine> TM = cantFail(JTMB->createTargetMachine());
diff --git a/root-ptr-is-null-RooFit-TMVA.patch b/root-ptr-is-null-RooFit-TMVA.patch
new file mode 100644
index 0000000..3aa3acd
--- /dev/null
+++ b/root-ptr-is-null-RooFit-TMVA.patch
@@ -0,0 +1,80 @@
+From c65f3d96f3f4433bff9d40fa9cf1dec100867a07 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Tue, 8 Jun 2021 10:12:37 +0200
+Subject: [PATCH] Fix 'this' pointer is null warnings
+
+.../roofit/roofitcore/src/RooDataHist.cxx: In member function 'void RooDataHist::_adjustBinning(RooRealVar&, const TAxis&, RooRealVar*, Int_t*)':
+.../roofit/roofitcore/src/RooDataHist.cxx:595:122: warning: 'this' pointer is null [-Wnonnull]
+ 595 | coutE(InputArguments) << "RooDataHist::adjustBinning(" << GetName() << ") ERROR: dimension " << ourVar->GetName() << " must be real" << endl ;
+ | ^~~~~~~~~~~~~~~
+
+.../roofit/roofitcore/src/RooRealSumFunc.cxx: In constructor 'RooRealSumFunc::RooRealSumFunc(const char*, const char*, const RooArgList&, const RooArgList&)':
+.../roofit/roofitcore/src/RooRealSumFunc.cxx:156:35: warning: 'this' pointer is null [-Wnonnull]
+ 156 | << " is not of type RooAbsReal, fatal error" << endl;
+ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.../tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx: In member function 'void TMVA::DNN::TDataLoader<AData, TMVA::DNN::TReference<AReal> >::CopyInput(TMatrixT<AReal>&, TMVA::DNN::IndexIterator_t) [with AData = std::tuple<const std::vector<TMVA::Event*, std::allocator<TMVA::Event*> >&, const TMVA::DataSetInfo&>; AReal = float]':
+.../tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx:131:34: warning: 'this' pointer is null [-Wnonnull]
+ 131 | Int_t n = event->GetNVariables();
+ | ~~~~~~~~~~~~~~~~~~~~^~
+In file included from .../tmva/tmva/inc/TMVA/VariableTransformBase.h:48,
+ from .../tmva/tmva/inc/TMVA/Tools.h:58,
+ from .../tmva/tmva/inc/TMVA/DNN/GeneralLayer.h:36,
+ from .../tmva/tmva/inc/TMVA/DNN/CNN/ConvLayer.h:32,
+ from .../tmva/tmva/inc/TMVA/DNN/Architectures/Reference.h:24,
+ from .../tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx:17:
+.../tmva/tmva/inc/TMVA/Event.h:88:16: note: in a call to non-static member function 'UInt_t TMVA::Event::GetNVariables() const'
+ 88 | UInt_t GetNVariables() const;
+ | ^~~~~~~~~~~~~
+---
+ roofit/roofitcore/src/RooDataHist.cxx | 2 +-
+ roofit/roofitcore/src/RooRealSumFunc.cxx | 4 ++--
+ tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx | 2 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/roofit/roofitcore/src/RooDataHist.cxx b/roofit/roofitcore/src/RooDataHist.cxx
+index 84cf2c0f68..8dddb88e2b 100644
+--- a/roofit/roofitcore/src/RooDataHist.cxx
++++ b/roofit/roofitcore/src/RooDataHist.cxx
+@@ -591,7 +591,7 @@ void RooDataHist::importDHistSet(const RooArgList& /*vars*/, RooCategory& indexC
+ void RooDataHist::_adjustBinning(RooRealVar &theirVar, const TAxis &axis,
+ RooRealVar *ourVar, Int_t *offset)
+ {
+- if (!dynamic_cast<RooRealVar*>(ourVar)) {
++ if (!dynamic_cast<RooRealVar*>(static_cast<RooAbsArg*>(ourVar))) {
+ coutE(InputArguments) << "RooDataHist::adjustBinning(" << GetName() << ") ERROR: dimension " << ourVar->GetName() << " must be real" << endl ;
+ assert(0) ;
+ }
+diff --git a/roofit/roofitcore/src/RooRealSumFunc.cxx b/roofit/roofitcore/src/RooRealSumFunc.cxx
+index 3f78020acd..a1625d7e35 100644
+--- a/roofit/roofitcore/src/RooRealSumFunc.cxx
++++ b/roofit/roofitcore/src/RooRealSumFunc.cxx
+@@ -149,10 +149,10 @@ RooRealSumFunc::RooRealSumFunc(const char *name, const char *title, const RooArg
+ _coefList.add(*coef);
+ }
+
+- func = (RooAbsReal *)funcIter->Next();
++ func = (RooAbsArg *)funcIter->Next();
+ if (func) {
+ if (!dynamic_cast<RooAbsReal *>(func)) {
+- coutE(InputArguments) << "RooRealSumFunc::RooRealSumFunc(" << GetName() << ") last func " << coef->GetName()
++ coutE(InputArguments) << "RooRealSumFunc::RooRealSumFunc(" << GetName() << ") last func " << func->GetName()
+ << " is not of type RooAbsReal, fatal error" << endl;
+ assert(0);
+ }
+diff --git a/tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx b/tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx
+index 2465abf308..24a09d1fc0 100644
+--- a/tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx
++++ b/tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx
+@@ -128,7 +128,7 @@ void TDataLoader<TMVAInput_t, TReference<Real_t>>::CopyInput(TMatrixT<Real_t> &m
+ Event *event = nullptr;
+
+ Int_t m = matrix.GetNrows();
+- Int_t n = event->GetNVariables();
++ Int_t n = matrix.GetNcols();
+
+ // Copy input variables.
+
+--
+2.31.1
+
diff --git a/root-ptr-is-null-TStreamerInfo.patch b/root-ptr-is-null-TStreamerInfo.patch
new file mode 100644
index 0000000..869715c
--- /dev/null
+++ b/root-ptr-is-null-TStreamerInfo.patch
@@ -0,0 +1,32 @@
+From 1ca221f010fdcfb6249ae7b1cac77fbe29b86214 Mon Sep 17 00:00:00 2001
+From: Enrico Guiraud <enrico.guiraud(a)cern.ch>
+Date: Mon, 7 Jun 2021 11:02:48 +0200
+Subject: [PATCH] [io] Avoid nullptr deref when printing warning in
+ TStreamerInfo
+
+---
+ io/io/src/TStreamerInfo.cxx | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/io/io/src/TStreamerInfo.cxx b/io/io/src/TStreamerInfo.cxx
+index d545ab7be8..a026635890 100644
+--- a/io/io/src/TStreamerInfo.cxx
++++ b/io/io/src/TStreamerInfo.cxx
+@@ -1109,12 +1109,12 @@ void TStreamerInfo::BuildCheck(TFile *file /* = 0 */, Bool_t load /* = kTRUE */)
+ fClassVersion, GetName(), GetName(), GetName(), fClassVersion);
+ } else {
+ Warning("BuildCheck", "\n\
+- The StreamerInfo from %s does not match existing one (%s:%d)\n\
++ The StreamerInfo does not match existing one (%s:%d)\n\
+ The existing one has not been used yet and will be discarded.\n\
+ Reading should work properly, however writing object of\n\
+ type %s will not work properly. Most likely the version number\n\
+ of the class was not properly updated [See ClassDef(%s,%d)].",
+- file->GetName(), GetName(), fClassVersion, GetName(), GetName(), fClassVersion);
++ GetName(), fClassVersion, GetName(), GetName(), fClassVersion);
+ }
+ }
+ }
+--
+2.31.1
+
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 <mattias.ellert(a)physics.uu.se>
-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 <mattias.ellert(a)physics.uu.se>
-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 <mattias.ellert(a)physics.uu.se>
-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-stress-s390x.patch b/root-stress-s390x.patch
new file mode 100644
index 0000000..b1d9b9d
--- /dev/null
+++ b/root-stress-s390x.patch
@@ -0,0 +1,39 @@
+From 30cbc0d44364586ac64a3ac0fd6641e338549bbe Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Tue, 10 Aug 2021 06:33:17 +0200
+Subject: [PATCH] Adjust tests for s390x
+
+---
+ math/mathcore/test/stress/testGenVector.cxx | 2 +-
+ test/stressMathCore.cxx | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/math/mathcore/test/stress/testGenVector.cxx b/math/mathcore/test/stress/testGenVector.cxx
+index 8da429c395..df9061c88e 100644
+--- a/math/mathcore/test/stress/testGenVector.cxx
++++ b/math/mathcore/test/stress/testGenVector.cxx
+@@ -79,7 +79,7 @@ TYPED_TEST_P(GenVectorTest, TestGenVectors)
+ scale = this->fDim * 20;
+ if (this->fDim == 3 && this->V2Name() == "RhoEtaPhiVector") scale *= 12; // for problem with RhoEtaPhi
+ if (this->fDim == 4 && ( this->V2Name() == "PtEtaPhiMVector" || this->V2Name() == "PxPyPzMVector")) {
+-#if (defined(__arm__) || defined(__arm64__) || defined(__aarch64__))
++#if (defined(__arm__) || defined(__arm64__) || defined(__aarch64__) || defined(__s390x__))
+ scale *= 1.E7;
+ #else
+ scale *= 10;
+diff --git a/test/stressMathCore.cxx b/test/stressMathCore.cxx
+index 4d4695a8a0..b6d2d2c9e7 100644
+--- a/test/stressMathCore.cxx
++++ b/test/stressMathCore.cxx
+@@ -1120,7 +1120,7 @@ int testVector(int ngen, bool testio=false) {
+ scale = Dim*20;
+ if (Dim==3 && VecType<V2>::name() == "RhoEtaPhiVector") scale *= 12; // for problem with RhoEtaPhi
+ if (Dim==4 && ( VecType<V2>::name() == "PtEtaPhiMVector" || VecType<V2>::name() == "PxPyPzMVector")) {
+-#if (defined(__arm__) || defined(__arm64__) || defined(__aarch64__))
++#if (defined(__arm__) || defined(__arm64__) || defined(__aarch64__) || defined(__s390x__))
+ scale *= 1.E7;
+ #else
+ scale *= 10;
+--
+2.31.1
+
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 <mattias.ellert(a)physics.uu.se>
-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-unbundle-gtest.patch b/root-unbundle-gtest.patch
index 6821f22..ae180a2 100644
--- a/root-unbundle-gtest.patch
+++ b/root-unbundle-gtest.patch
@@ -1,7 +1,7 @@
-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 @@
+diff -ur root-6.24.02.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.24.02/cmake/modules/SearchInstalledSoftware.cmake
+--- root-6.24.02.orig/cmake/modules/SearchInstalledSoftware.cmake 2021-06-28 11:17:14.000000000 +0200
++++ root-6.24.02/cmake/modules/SearchInstalledSoftware.cmake 2021-08-11 10:56:26.680731609 +0200
+@@ -1699,102 +1699,17 @@
#---Download googletest--------------------------------------------------------------
if (testing)
@@ -62,7 +62,9 @@ diff -ur root-6.22.00.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.22
- # Wrap download, configure and build steps in a script to log output
- LOG_DOWNLOAD ON
- LOG_CONFIGURE ON
-- LOG_BUILD ON)
+- LOG_BUILD ON
+- TIMEOUT 600
+- )
-
- # Specify include dirs for gtest and gmock
- ExternalProject_Get_Property(googletest source_dir)
diff --git a/root-uring.patch b/root-uring.patch
new file mode 100644
index 0000000..129c38e
--- /dev/null
+++ b/root-uring.patch
@@ -0,0 +1,55 @@
+diff --git a/io/io/src/RRawFileUnix.cxx b/io/io/src/RRawFileUnix.cxx
+index 829c5e4cb6..417c3adf30 100644
+--- a/io/io/src/RRawFileUnix.cxx
++++ b/io/io/src/RRawFileUnix.cxx
+@@ -115,26 +115,33 @@ void ROOT::Internal::RRawFileUnix::OpenImpl()
+ void ROOT::Internal::RRawFileUnix::ReadVImpl(RIOVec *ioVec, unsigned int nReq)
+ {
+ #ifdef R__HAS_URING
+- if (RIoUring::IsAvailable()) {
+- RIoUring ring;
+- std::vector<RIoUring::RReadEvent> reads;
+- reads.reserve(nReq);
+- for (std::size_t i = 0; i < nReq; ++i) {
+- RIoUring::RReadEvent ev;
+- ev.fBuffer = ioVec[i].fBuffer;
+- ev.fOffset = ioVec[i].fOffset;
+- ev.fSize = ioVec[i].fSize;
+- ev.fFileDes = fFileDes;
+- reads.push_back(ev);
++ thread_local bool uring_failed = false;
++ if (!uring_failed) {
++ try {
++ RIoUring ring; // throws std::runtime_error
++ std::vector<RIoUring::RReadEvent> reads;
++ reads.reserve(nReq);
++ for (std::size_t i = 0; i < nReq; ++i) {
++ RIoUring::RReadEvent ev;
++ ev.fBuffer = ioVec[i].fBuffer;
++ ev.fOffset = ioVec[i].fOffset;
++ ev.fSize = ioVec[i].fSize;
++ ev.fFileDes = fFileDes;
++ reads.push_back(ev);
++ }
++ ring.SubmitReadsAndWait(reads.data(), nReq);
++ for (std::size_t i = 0; i < nReq; ++i) {
++ ioVec[i].fOutBytes = reads.at(i).fOutBytes;
++ }
++ return;
+ }
+- ring.SubmitReadsAndWait(reads.data(), nReq);
+- for (std::size_t i = 0; i < nReq; ++i) {
+- ioVec[i].fOutBytes = reads.at(i).fOutBytes;
++ catch(const std::runtime_error &e) {
++ Warning("RIoUring", "io_uring is unexpectedly not available because:\n%s", e.what());
++ Warning("RRawFileUnix",
++ "io_uring setup failed, falling back to blocking I/O in ReadV");
++ uring_failed = true;
+ }
+- return;
+ }
+- Warning("RRawFileUnix",
+- "io_uring setup failed, falling back to default ReadV implementation");
+ #endif
+ RRawFile::ReadVImpl(ioVec, nReq);
+ }
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 <mattias.ellert(a)physics.uu.se>
-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 <mattias.ellert(a)physics.uu.se>
-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 e61c683..26aeb7a 100644
--- a/root.spec
+++ b/root.spec
@@ -13,8 +13,6 @@
%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.
@@ -51,9 +49,9 @@
%global __provides_exclude_from ^(%{?python2_sitearch:%{python2_sitearch}|}%{python3_sitearch})/lib.*\\.so$
Name: root
-Version: 6.22.08
+Version: 6.24.02
%global libversion %(cut -d. -f 1-2 <<< %{version})
-Release: 11%{?dist}
+Release: 1%{?dist}
Summary: Numerical data analysis framework
License: LGPLv2+
@@ -83,105 +81,64 @@ Patch0: %{name}-fontconfig.patch
Patch1: %{name}-32bit-dataframe.patch
# Unbundle gtest
Patch2: %{name}-unbundle-gtest.patch
-# Fix multicore tests when running on machines with few cores
-# https://github.com/root-project/root/pull/8068
-Patch3: %{name}-fix-multicore-tests-with-few-cores.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
+Patch3: %{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
+Patch4: %{name}-memory-arm-x86.patch
# Don't install minicern static library
-Patch9: %{name}-dont-install-minicern.patch
+Patch5: %{name}-dont-install-minicern.patch
# Do not export Python modules in CMake config
-Patch10: %{name}-no-export-python-modules.patch
+Patch6: %{name}-no-export-python-modules.patch
# Don't create documentation notebooks
-Patch11: %{name}-doc-no-notebooks.patch
+Patch7: %{name}-doc-no-notebooks.patch
# Don't run tutorials that crash during doc generation
-Patch12: %{name}-doxygen-crash.patch
+Patch8: %{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
+Patch9: %{name}-old-gtest-compat.patch
# Run some test on 32 bit that upstream has disabled
-Patch15: %{name}-32bit-tests.patch
+Patch10: %{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
-# JupyROOT has problems loading JSRootCore.js in jupyterlab
-# Backported from upstream git
-# https://github.com/root-project/root/issues/8459
-# https://bugzilla.redhat.com/show_bug.cgi?id=1973189
-Patch38: %{name}-jupyroot-jupyterlab-compat.patch
-# Use local static script and style files for JupyROOT
-Patch39: %{name}-jupyroot-static.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
+Patch11: %{name}-epel7-ppc64le-pyroot.patch
+# Use local static script and style files for JsMVA
+Patch12: %{name}-jsmva-static.patch
+# Compatibility with older python versions (no f-strings)
+Patch13: %{name}-older-python.patch
+# Fix multicore tests when running on machines with few cores
+# https://github.com/root-project/root/pull/8068
+Patch14: %{name}-fix-multicore-tests-with-few-cores.patch
+# Reapply altivec fix lost in the LLVM 9 upgrade
+# https://github.com/root-project/root/pull/8069
+Patch15: %{name}-fix-ppc64le-compilation-with-gcc-10.patch
+# Actually request the use of the large code model for ppc64le
+# https://github.com/root-project/root/pull/8230
+Patch16: %{name}-ppc-codemodel.patch
+# Do not request the large code model for ppc64le
+# It causes segmentation faults
+Patch17: %{name}-ppc-no-codemodel.patch
+# Fall back to blocking I/O if uring fails
+# Backported
+# - commit 691403b2cc504fd4e3e7227894023913014a61ff
+# - commit 956951ee2af83426d73ad72b2d966f9f1acbea83
+# - commit 16e64da11edf91fcf31c2fc474f573fca2ee863c
+# - commit 311a6822f9b0fd438c4210ed60617b45f2ddbe74
+Patch18: %{name}-uring.patch
+# Add missing classes in LinkDef.h files
+# Backported
+Patch19: %{name}-add-TTreeProcessorMP-to-LinkDef-file.patch
+Patch20: %{name}-add-RDisplay-to-LinkDef-file.patch
+Patch21: %{name}-add-RCutFlowReport-to-LinkDef-file.patch
+# Fix "pointer is null" warnings
+# Backported
+Patch22: %{name}-ptr-is-null-RooFit-TMVA.patch
+Patch23: %{name}-ptr-is-null-TStreamerInfo.patch
+# Fix two failing tests on s390x
+# https://github.com/root-project/root/pull/8826
+Patch24: %{name}-stress-s390x.patch
BuildRequires: make
%if %{?rhel}%{!?rhel:0} == 7
@@ -275,6 +232,13 @@ BuildRequires: cmake-data >= 3.18.3-1
%else
BuildRequires: openblas-devel
%endif
+BuildRequires: json-devel
+%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8
+BuildRequires: liburing-devel
+%endif
+%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8
+BuildRequires: python%{python3_pkgversion}-pandas
+%endif
BuildRequires: doxygen
BuildRequires: graphviz
BuildRequires: yuicompressor
@@ -527,6 +491,17 @@ Requires: %{name}-tmva = %{version}-%{release}
%description -n python2-jsmva
TMVA interface used by JupyROOT.
+
+%package -n python2-distrdf
+Summary: Distributed RDataFrame
+BuildArch: noarch
+%{?python_provide:%python_provide python2-distrdf}
+Requires: python2-%{name} = %{version}-%{release}
+Requires: %{name}-tree-dataframe = %{version}-%{release}
+
+%description -n python2-distrdf
+A layer on top of RDataFrame to enable distributed computations. It is
+a port of the previously known PyRDF python package.
%endif
%package -n python%{python3_pkgversion}-%{name}
@@ -573,6 +548,17 @@ Requires: %{name}-tmva = %{version}-%{release}
%description -n python%{python3_pkgversion}-jsmva
TMVA interface used by JupyROOT.
+%package -n python%{python3_pkgversion}-distrdf
+Summary: Distributed RDataFrame
+BuildArch: noarch
+%{?python_provide:%python_provide python%{python3_pkgversion}-distrdf}
+Requires: python%{python3_pkgversion}-%{name} = %{version}-%{release}
+Requires: %{name}-tree-dataframe = %{version}-%{release}
+
+%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.
+
%package r
Summary: R interface for ROOT
Requires: %{name}-core%{?_isa} = %{version}-%{release}
@@ -870,6 +856,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}
@@ -1298,7 +1285,7 @@ access to http based storage such as webdav and S3.
Summary: HTTP server extension for ROOT
Requires: %{name}-core%{?_isa} = %{version}-%{release}
Requires: %{name}-io%{?_isa} = %{version}-%{release}
-Requires: js-jsroot
+Requires: js-jsroot >= 6
# Library split (net-httpsniff from net-http)
Obsoletes: %{name}-net-http < 6.14.00
@@ -1423,6 +1410,7 @@ 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)
@@ -1454,6 +1442,7 @@ 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}-roofit-batchcompute%{?_isa} = %{version}-%{release}
Requires: %{name}-tree%{?_isa} = %{version}-%{release}
# Package split / Library split (from roofit)
Obsoletes: %{name}-roofit < 6.20.00
@@ -1479,6 +1468,7 @@ License: BSD
Requires: %{name}-core%{?_isa} = %{version}-%{release}
Requires: %{name}-mathcore%{?_isa} = %{version}-%{release}
Requires: %{name}-mathmore%{?_isa} = %{version}-%{release}
+Requires: %{name}-roofit-batchcompute%{?_isa} = %{version}-%{release}
Requires: %{name}-roofit-core%{?_isa} = %{version}-%{release}
# Package split / Library split (from roofit)
Obsoletes: %{name}-roofit < 6.20.00
@@ -1498,6 +1488,25 @@ 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
+Requires: %{name}-core%{?_isa} = %{version}-%{release}
+Requires: %{name}-mathcore%{?_isa} = %{version}-%{release}
+Requires: %{name}-roofit-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 roostats
Summary: Statistical tools built on top of RooFit
License: BSD
@@ -1721,7 +1730,7 @@ written in python.
Summary: Static files for the Jupyter ROOT Notebook
BuildArch: noarch
Requires: %{name}-core = %{version}-%{release}
-Requires: js-jsroot
+Requires: js-jsroot >= 6
%if %{?fedora}%{!?fedora:0} >= 26
# jupyter-notebook not available in
# Fedora <= 25 or RHEL/EPEL - some functionality missing
@@ -1754,6 +1763,7 @@ Requires: %{name}-geom%{?_isa} = %{version}-%{release}
Requires: %{name}-graf%{?_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}
@@ -1770,6 +1780,7 @@ Summary: GUI browsable (ROOT 7)
Requires: %{name}-core%{?_isa} = %{version}-%{release}
Requires: %{name}-graf-gpadv7%{?_isa} = %{version}-%{release}
Requires: %{name}-hist%{?_isa} = %{version}-%{release}
+Requires: %{name}-hist-draw%{?_isa} = %{version}-%{release}
Requires: %{name}-io%{?_isa} = %{version}-%{release}
Requires: %{name}-tree%{?_isa} = %{version}-%{release}
@@ -1781,6 +1792,8 @@ 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}-geom%{?_isa} = %{version}-%{release}
+Requires: %{name}-graf3d-eve7%{?_isa} = %{version}-%{release}
Requires: %{name}-gui-browsable%{?_isa} = %{version}-%{release}
Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release}
Requires: %{name}-gui-webgui6%{?_isa} = %{version}-%{release}
@@ -1897,21 +1910,6 @@ This package contains an ntuple extension for ROOT 7.
%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
-%patch38 -p1
-%patch39 -p1
# Remove bundled sources in order to be sure they are not used
# * afterimage
@@ -1920,8 +1918,17 @@ rm -rf graf2d/asimage/src/libAfterImage
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
+# * davix, glew, lz4, nlohmann, openssl, pcre, tbb, xxhash, zlib, zstd
+rm -rf builtins/davix
+rm -rf builtins/glew
+rm -rf builtins/lz4
+rm -rf builtins/nlohmann
+rm -rf builtins/openssl
+rm -rf builtins/pcre
+rm -rf builtins/tbb
+rm -rf builtins/xxhash
+rm -rf builtins/zlib
+rm -rf builtins/zstd
# * lzma
rm -rf core/lzma/src/*.tar.gz
# * gl2ps
@@ -1944,9 +1951,6 @@ sed /RWrap_libcpp_string_view.h/d -i build/unix/module.modulemap
# * jsroot
rm -rf js/*
-# 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/*
@@ -1995,6 +1999,7 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
-Dbuiltin_afterimage:BOOL=OFF \
-Dbuiltin_cfitsio:BOOL=OFF \
-Dbuiltin_clang:BOOL=ON \
+ -Dbuiltin_cling:BOOL=ON \
-Dbuiltin_davix:BOOL=OFF \
-Dbuiltin_fftw3:BOOL=OFF \
-Dbuiltin_freetype:BOOL=OFF \
@@ -2005,7 +2010,9 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
-Dbuiltin_llvm:BOOL=ON \
-Dbuiltin_lz4:BOOL=OFF \
-Dbuiltin_lzma:BOOL=OFF \
+ -Dbuiltin_nlohmannjson:BOOL=OFF \
-Dbuiltin_openssl:BOOL=OFF \
+ -Dbuiltin_openui5:BOOL=ON \
-Dbuiltin_pcre:BOOL=OFF \
-Dbuiltin_tbb:BOOL=OFF \
-Dbuiltin_unuran:BOOL=OFF \
@@ -2020,20 +2027,15 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
-Darrow:BOOL=OFF \
-Dasimage:BOOL=ON \
-Dccache:BOOL=OFF \
+ -Ddistcc:BOOL=OFF \
-Dcefweb:BOOL=OFF \
-Dclad:BOOL=OFF \
-Dcocoa:BOOL=OFF \
-Dcuda:BOOL=OFF \
%if %{root7}
-%if %{?fedora}%{!?fedora:0} >= 34
- -DCMAKE_CXX_STANDARD=17 \
-%else
- -DCMAKE_CXX_STANDARD=14 \
-%endif
-Droot7:BOOL=ON \
-Dwebgui:BOOL=ON \
%else
- -DCMAKE_CXX_STANDARD=11 \
-Droot7:BOOL=OFF \
-Dwebgui:BOOL=OFF \
%endif
@@ -2107,6 +2109,11 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
-Dtmva-pymva:BOOL=ON \
-Dtmva-rmva:BOOL=ON \
-Dunuran:BOOL=ON \
+%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8
+ -During:BOOL=ON \
+%else
+ -During:BOOL=OFF \
+%endif
-Dvc:BOOL=OFF \
-Dvdt:BOOL=OFF \
-Dveccore:BOOL=OFF \
@@ -2203,6 +2210,7 @@ rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python2_version_uscore}.so
mkdir -p %{buildroot}%{python2_sitelib}
cp -pr %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python2_sitelib}
+cp -pr %{buildroot}%{_libdir}/%{name}/DistRDF %{buildroot}%{python2_sitelib}
# Create .egg-info files so that rpm auto-generates provides
echo 'Name: ROOT' > \
@@ -2217,6 +2225,10 @@ echo 'Name: JsMVA' > \
%{buildroot}%{python2_sitelib}/JsMVA-%{version}.egg-info
echo 'Version: %{version}' >> \
%{buildroot}%{python2_sitelib}/JsMVA-%{version}.egg-info
+echo 'Name: DistRDF' > \
+ %{buildroot}%{python2_sitelib}/DistRDF-%{version}.egg-info
+echo 'Version: %{version}' >> \
+ %{buildroot}%{python2_sitelib}/DistRDF-%{version}.egg-info
%endif
@@ -2225,7 +2237,7 @@ 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
+ %{buildroot}%{python3_sitearch}/libcppyy%{python3_version_uscore}%{python3_ext_suffix}
mv %{buildroot}%{_libdir}/%{name}/cppyy_backend %{buildroot}%{python3_sitearch}
ln -s ../../root/libcppyy_backend%{python3_version_uscore}.so.%{version} \
@@ -2233,18 +2245,19 @@ ln -s ../../root/libcppyy_backend%{python3_version_uscore}.so.%{version} \
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
+ %{buildroot}%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}%{python3_ext_suffix}
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
+ %{buildroot}%{python3_sitearch}/libJupyROOT%{python3_version_uscore}%{python3_ext_suffix}
rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so.%{libversion}
rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so
mkdir -p %{buildroot}%{python3_sitelib}
mv %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python3_sitelib}
+mv %{buildroot}%{_libdir}/%{name}/DistRDF %{buildroot}%{python3_sitelib}
# Create .egg-info files so that rpm auto-generates provides
echo 'Name: ROOT' > \
@@ -2259,6 +2272,10 @@ echo 'Name: JsMVA' > \
%{buildroot}%{python3_sitelib}/JsMVA-%{version}.egg-info
echo 'Version: %{version}' >> \
%{buildroot}%{python3_sitelib}/JsMVA-%{version}.egg-info
+echo 'Name: DistRDF' > \
+ %{buildroot}%{python3_sitelib}/DistRDF-%{version}.egg-info
+echo 'Version: %{version}' >> \
+ %{buildroot}%{python3_sitelib}/DistRDF-%{version}.egg-info
# Put jupyter stuff in the right places
mkdir -p %{buildroot}%{_datadir}/jupyter/kernels
@@ -2284,8 +2301,7 @@ sed -e '/^\#!/d' \
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
# Replace the rootnb.exe wrapper with a simpler one
cat > %{buildroot}%{_bindir}/rootnb.exe << EOF
@@ -2345,6 +2361,9 @@ rm %{buildroot}%{_datadir}/%{name}/macros/fileopen.C
# Remove plugin definitions for non-built and obsolete plugins
pushd %{buildroot}%{_datadir}/%{name}/plugins
+%if ! %{root7}
+rm TBrowserImp/P030_RWebBrowserImp.C
+%endif
rm TDataSetManager/P020_TDataSetManagerAliEn.C
rm TFile/P070_TAlienFile.C
rm TGLManager/P020_TGWin32GLManager.C
@@ -2494,11 +2513,22 @@ popd
# http://root.cern.ch/files/root_download_stats.sqlite
#
# - gtest-tree-treeplayer-test-treeprocessormt-remotefiles
-# - tutorial-dataframe-df102_NanoAODDimuonAnalysis
-# - tutorial-dataframe-df103_NanoAODHiggsAnalysis
+# - tutorial-dataframe-df102_NanoAODDimuonAnalysis(-py)?
+# - tutorial-dataframe-df103_NanoAODHiggsAnalysis(-py)?
# reads input data over network:
# root://eospublic.cern.ch//eos/root-eos/cms_opendata_2012_nanoaod/
#
+# - tutorial-dataframe-df104_HiggsToTwoPhotons-py
+# - tutorial-dataframe-df105_WBosonAnalysis-py
+# - tutorial-dataframe-df106_HiggsToFourLeptons-py
+# - tutorial-dataframe-df107_SingleTopAnalysis-py
+# reads input data over network:
+# root://eospublic.cern.ch//eos/opendata/atlas/OutreachDatasets/2020-01-22/
+#
+# - tutorial-v7-climate-global_temperatures
+# reads input data over network
+# http://root.cern./files/tutorials/GlobalLandTemperaturesByCity.csv
+#
# - tutorial-v7-ntuple-ntpl003_lhcbOpenData
# reads input data over network
# http://root.cern.ch/files/LHCb/lhcb_B2HHH_MagnetUp.root (425 MB)
@@ -2525,9 +2555,32 @@ popd
# reads input data over network
# http://root.cern/files/tmva101.root
#
+# - pyunittests-pyroot-dependency-versions
# - pyunittests-pyroot-numbadeclare
+# - test-import-numba
# - tutorial-pyroot-pyroot004_NumbaDeclare-py
# these tests require the numba python module which is not available
+#
+# - tutorial-v7-concurrentfill.cxx
+# - tutorial-v7-draw.cxx
+# - tutorial-v7-draw_frame.cxx
+# - tutorial-v7-draw_legend.cxx
+# - tutorial-v7-draw_mt.cxx
+# - tutorial-v7-draw_rh1.cxx
+# - tutorial-v7-draw_rh1_large.cxx
+# - tutorial-v7-draw_rh2.cxx
+# - tutorial-v7-draw_rh2_colz.cxx
+# - tutorial-v7-draw_rh2_large.cxx
+# - tutorial-v7-draw_rh3.cxx
+# - tutorial-v7-draw_rh3_large.cxx
+# - tutorial-v7-draw_subpads.cxx
+# - tutorial-v7-histops.cxx
+# - tutorial-v7-perf.cxx
+# - tutorial-v7-perfcomp.cxx
+# - tutorial-v7-simple.cxx
+# Fails with "already deserialized this template specialization"
+# https://github.com/root-project/root/issues/8073
+
excluded="\
test-stressIOPlugins|\
tutorial-dataframe-df101_h1Analysis|\
@@ -2541,6 +2594,11 @@ tutorial-dataframe-df..._SQlite|\
gtest-tree-treeplayer-test-treeprocessormt-remotefiles|\
tutorial-dataframe-df102_NanoAODDimuonAnalysis|\
tutorial-dataframe-df103_NanoAODHiggsAnalysis|\
+tutorial-dataframe-df104_HiggsToTwoPhotons-py|\
+tutorial-dataframe-df105_WBosonAnalysis-py|\
+tutorial-dataframe-df106_HiggsToFourLeptons-py|\
+tutorial-dataframe-df107_SingleTopAnalysis-py|\
+tutorial-v7-climate-global_temperatures|\
tutorial-v7-ntuple-ntpl003_lhcbOpenData|\
tutorial-v7-ntuple-ntpl004_dimuon|\
tutorial-v7-line.cxx|\
@@ -2550,8 +2608,48 @@ gtest-tmva-tmva-test-rstandardscaler|\
tutorial-tmva-tmva003_RReader|\
tutorial-tmva-tmva004_RStandardScaler|\
tutorial-tmva-tmva103_Application|\
+pyunittests-pyroot-dependency-versions|\
pyunittests-pyroot-numbadeclare|\
-tutorial-pyroot-pyroot004_NumbaDeclare-py"
+test-import-numba|\
+tutorial-pyroot-pyroot004_NumbaDeclare-py|\
+tutorial-v7-concurrentfill.cxx|\
+tutorial-v7-draw.cxx|\
+tutorial-v7-draw_frame.cxx|\
+tutorial-v7-draw_legend.cxx|\
+tutorial-v7-draw_mt.cxx|\
+tutorial-v7-draw_rh1.cxx|\
+tutorial-v7-draw_rh1_large.cxx|\
+tutorial-v7-draw_rh2.cxx|\
+tutorial-v7-draw_rh2_colz.cxx|\
+tutorial-v7-draw_rh2_large.cxx|\
+tutorial-v7-draw_rh3.cxx|\
+tutorial-v7-draw_rh3_large.cxx|\
+tutorial-v7-draw_subpads.cxx|\
+tutorial-v7-histops.cxx|\
+tutorial-v7-perf.cxx|\
+tutorial-v7-perfcomp.cxx|\
+tutorial-v7-simple.cxx"
+
+%if %{?rhel}%{!?rhel:0} == 7
+# - test-import-pandas
+# - tutorial-dataframe-df026_AsNumpyArrays-py
+# requires the pandas python module which is not available in EPEL 7
+#
+# - tutorial-multicore-mp001_fillHistos
+# - tutorial-multicore-mp101_fillNtuples
+# - tutorial-multicore-mp102_readNtuplesFillHistosAndFit
+# - tutorial-multicore-mp201_parallelHistoFill
+# fails intermittently on EPEL 7 with the error
+# symbol '_Z6MPRecvP7TSocket' unresolved while linking
+# symbol '_Z6MPSendP7TSocketj' unresolved while linking
+excluded="${excluded}|\
+test-import-pandas|\
+tutorial-dataframe-df026_AsNumpyArrays-py|\
+tutorial-multicore-mp001_fillHistos|\
+tutorial-multicore-mp101_fillNtuples|\
+tutorial-multicore-mp102_readNtuplesFillHistosAndFit|\
+tutorial-multicore-mp201_parallelHistoFill"
+%endif
%ifarch %{ix86} %{arm}
# Tests failing on 32 bit architectures (dataframe)
@@ -2559,51 +2657,226 @@ tutorial-pyroot-pyroot004_NumbaDeclare-py"
# - gtest-tree-dataframe-test-dataframe-cache
# - gtest-tree-dataframe-test-dataframe-callbacks
# - gtest-tree-dataframe-test-dataframe-colnames
+# - gtest-tree-dataframe-test-dataframe-concurrency
# - 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-leaves
# - gtest-tree-dataframe-test-dataframe-ranges
+# - gtest-tree-dataframe-test-dataframe-regression
# - gtest-tree-dataframe-test-dataframe-simple
# - gtest-tree-dataframe-test-dataframe-snapshot
-# - gtest-tree-dataframe-test-datasource-root
+# - gtest-tree-dataframe-test-dataframe-vecops
+# - gtest-tree-dataframe-test-datasource-csv
+# - gtest-tree-dataframe-test-datasource-more
+# - gtest-tree-dataframe-test-datasource-sqlite
# - 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-concurrency|\
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-leaves|\
gtest-tree-dataframe-test-dataframe-ranges|\
+gtest-tree-dataframe-test-dataframe-regression|\
gtest-tree-dataframe-test-dataframe-simple|\
gtest-tree-dataframe-test-dataframe-snapshot|\
-gtest-tree-dataframe-test-datasource-root|\
+gtest-tree-dataframe-test-dataframe-vecops|\
+gtest-tree-dataframe-test-datasource-csv|\
+gtest-tree-dataframe-test-datasource-more|\
+gtest-tree-dataframe-test-datasource-sqlite|\
gtest-tree-dataframe-test-datasource-trivial"
%endif
%ifarch %{arm}
-# This test fails on 32 bit arm
+# 32 bit arm specific failures
+#
+# - gtest-tree-tree-test-testBulkApi
# - gtest-tree-tree-test-testBulkApiSillyStruct
-excluded="${excluded}|gtest-tree-tree-test-testBulkApiSillyStruct"
+# segmentation fault - bus error
+#
+# - gtest-tree-dataframe-test-dataframe-histomodels
+# - gtest-tree-ntuple-v7-test-ntuple-rdf
+# - pyunittests-dataframe-cache
+# - pyunittests-dataframe-histograms
+# - pyunittests-dataframe-merge-results
+# - pyunittests-dataframe-misc
+# - pyunittests-pyroot-pyz-rdataframe-makenumpy
+# - pyunittests-pyroot-pyz-tf-pycallables
+# - test-stressiterators-interpreted
+# - tutorial-dataframe-df001_introduction(-py)
+# - tutorial-dataframe-df002_dataModel(-py)
+# - tutorial-dataframe-df003_profiles(-py)
+# - tutorial-dataframe-df005_fillAnyObject
+# - tutorial-dataframe-df006_ranges(-py)
+# - tutorial-dataframe-df007_snapshot(-py)
+# - tutorial-dataframe-df010_trivialDataSource(-py)
+# - tutorial-dataframe-df012_DefinesAndFiltersAsStrings(-py)
+# - tutorial-dataframe-df014_CSVDataSource(-py)
+# - tutorial-dataframe-df015_LazyDataSource
+# - tutorial-dataframe-df016_vecOps(-py)
+# - tutorial-dataframe-df017_vecOpsHEP(-py)
+# - tutorial-dataframe-df019_Cache(-py)
+# - tutorial-dataframe-df020_helpers
+# - tutorial-dataframe-df021_createTGraph(-py)
+# - tutorial-dataframe-df022_useKahan
+# - tutorial-dataframe-df025_RNode
+# - tutorial-dataframe-df031_Stats(-py)
+# - tutorial-hist-sparsehist
+# - tutorial-r-example
+# - tutorial-r-DataFrame
+# - tutorial-r-Function
+# - tutorial-r-Functor
+# - tutorial-r-GlobalMinimization
+# - tutorial-r-Integration
+# - tutorial-r-Minimization
+# Not implemented relocation type!
+excluded="${excluded}|\
+gtest-tree-tree-test-testBulkApi\$\$|\
+gtest-tree-tree-test-testBulkApiSillyStruct|\
+gtest-tree-dataframe-test-dataframe-histomodels|\
+gtest-tree-ntuple-v7-test-ntuple-rdf|\
+pyunittests-dataframe-cache|\
+pyunittests-dataframe-histograms|\
+pyunittests-dataframe-merge-results|\
+pyunittests-dataframe-misc|\
+pyunittests-pyroot-pyz-rdataframe-makenumpy|\
+pyunittests-pyroot-pyz-tf-pycallables|\
+test-stressiterators-interpreted|\
+tutorial-dataframe-df001_introduction|\
+tutorial-dataframe-df002_dataModel|\
+tutorial-dataframe-df003_profiles|\
+tutorial-dataframe-df005_fillAnyObject|\
+tutorial-dataframe-df006_ranges|\
+tutorial-dataframe-df007_snapshot|\
+tutorial-dataframe-df010_trivialDataSource|\
+tutorial-dataframe-df012_DefinesAndFiltersAsStrings|\
+tutorial-dataframe-df014_CSVDataSource|\
+tutorial-dataframe-df015_LazyDataSource|\
+tutorial-dataframe-df016_vecOps|\
+tutorial-dataframe-df017_vecOpsHEP|\
+tutorial-dataframe-df019_Cache|\
+tutorial-dataframe-df020_helpers|\
+tutorial-dataframe-df021_createTGraph|\
+tutorial-dataframe-df022_useKahan|\
+tutorial-dataframe-df025_RNode|\
+tutorial-dataframe-df031_Stats|\
+tutorial-hist-sparsehist|\
+tutorial-r-example|\
+tutorial-r-DataFrame|\
+tutorial-r-Function|\
+tutorial-r-Functor|\
+tutorial-r-GlobalMinimization|\
+tutorial-r-Integration|\
+tutorial-r-Minimization"
%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"
+excluded="${excluded}|test-stresshistofit\$\$"
%endif
-%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"
+%ifarch %{power64}
+# PPC64LE specific failures
+#
+# - test-stressgraphics(-interpreted)
+excluded="${excluded}|test-stressgraphics"
+
+%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8
+# - pyunittests-pyroot-pyz-array-interface
+# - pyunittests-pyroot-pyz-rdataframe-asnumpy
+# - pyunittests-pyroot-pyz-rdataframe-makenumpy
+# - pyunittests-pyroot-pyz-rvec-asrvec
+# - pyunittests-pyroot-pyz-ttree-asmatrix
+# - tutorial-dataframe-df026_AsNumpyArrays-py
+# - tutorial-pyroot-pyroot001_arrayInterface-py
+# - tutorial-pyroot-pyroot002_TTreeAsMatrix-py
+excluded="${excluded}|\
+pyunittests-pyroot-pyz-array-interface|\
+pyunittests-pyroot-pyz-rdataframe-asnumpy|\
+pyunittests-pyroot-pyz-rdataframe-makenumpy|\
+pyunittests-pyroot-pyz-rvec-asrvec|\
+pyunittests-pyroot-pyz-ttree-asmatrix|\
+tutorial-dataframe-df026_AsNumpyArrays-py|\
+tutorial-pyroot-pyroot001_arrayInterface-py|\
+tutorial-pyroot-pyroot002_TTreeAsMatrix-py"
+%endif
+
+%if %{?fedora}%{!?fedora:0}
+# - pyunittests-pyroot-pyz-rtensor
+# - pyunittests-pyroot-pyz-ttree-branch
+# - pyunittests-pyroot-pyz-ttree-setbranchaddress
+# - tutorial-r-example
+# - tutorial-r-DataFrame
+# - tutorial-r-Function
+# - tutorial-r-Functor
+# - tutorial-r-GlobalMinimization
+# - tutorial-r-Integration
+# - tutorial-r-Interpolation
+# - tutorial-r-Minimization
+# - tutorial-r-SimpleFitting
+# - tutorial-tmva-envelope-classification
+# - tutorial-tmva-TMVA*
+# Relocation R_PPC64_REL32 overflow
+excluded="${excluded}|\
+pyunittests-pyroot-pyz-rtensor|\
+pyunittests-pyroot-pyz-ttree-branch|\
+pyunittests-pyroot-pyz-ttree-setbranchaddress|\
+tutorial-r-example|\
+tutorial-r-DataFrame|\
+tutorial-r-Function|\
+tutorial-r-Functor|\
+tutorial-r-GlobalMinimization|\
+tutorial-r-Integration|\
+tutorial-r-Interpolation|\
+tutorial-r-Minimization|\
+tutorial-r-SimpleFitting|\
+tutorial-tmva-envelope-classification|\
+tutorial-tmva-TMVA"
+%endif
+%endif
+
+%ifarch s390x
+# s390x specific failures
+#
+# - gtest-roofit-roofitcore-test-testNaNPacker
+# - gtest-tree-ntuple-v7-test-ntuple-basics
+# - gtest-tree-ntuple-v7-test-ntuple-extended
+# - gtest-tree-ntuple-v7-test-ntuple-minifile
+# - gtest-tree-ntuple-v7-test-ntuple-storage
+# - pyunittests-pyroot-pyz-rtensor
+# - test-stresshistogram(-interpreted)
+# - test-stresshistofit(-interpreted)
+# - tutorial-dataframe-df006_ranges-py
+# - tutorial-roofit-rf203_ranges-py
+# - tutorial-roofit-rf612_recoverFromInvalidParameters
+# - tutorial-roofit-rf902_numgenconfig-py
+# - tutorial-v7-ntuple-ntpl005_introspection
+excluded="${excluded}|\
+gtest-roofit-roofitcore-test-testNaNPacker|\
+gtest-tree-ntuple-v7-test-ntuple-basics|\
+gtest-tree-ntuple-v7-test-ntuple-extended|\
+gtest-tree-ntuple-v7-test-ntuple-minifile|\
+gtest-tree-ntuple-v7-test-ntuple-storage|\
+pyunittests-pyroot-pyz-rtensor|\
+test-stresshistogram|\
+test-stresshistofit|\
+tutorial-dataframe-df006_ranges-py|\
+tutorial-roofit-rf203_ranges-py|\
+tutorial-roofit-rf612_recoverFromInvalidParameters|\
+tutorial-roofit-rf902_numgenconfig-py|\
+tutorial-v7-ntuple-ntpl005_introspection"
%endif
# Filter out parts of tests that require remote network access
-GTEST_FILTER=-RRawFile.Remote:RSqliteDS.Davix \
+GTEST_FILTER=-RCsvDS.Remote:RRawFile.Remote:RSqliteDS.Davix \
make test ARGS="%{?_smp_mflags} --output-on-failure -E \"${excluded}\""
popd
@@ -2652,6 +2925,7 @@ if [ -e /etc/jupyter/jupyter_notebook_config.py ] ; then
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}/javascript/jsroot')
c.NotebookApp.extra_static_paths.append('%{_datadir}/%{name}/notebook')
# Extra static path for JupyROOT - end - do not remove this line
EOF
@@ -2660,6 +2934,7 @@ if [ -e /etc/jupyter/jupyter_server_config.py ] ; then
fi
cat << EOF >> /etc/jupyter/jupyter_server_config.py
# Extra static path for JupyROOT - start - do not remove this line
+c.ServerApp.extra_static_paths.append('%{_datadir}/javascript/jsroot')
c.ServerApp.extra_static_paths.append('%{_datadir}/%{name}/notebook')
# Extra static path for JupyROOT - end - do not remove this line
EOF
@@ -2768,6 +3043,7 @@ fi
%ldconfig_scriptlets roofit
%ldconfig_scriptlets roofit-core
%ldconfig_scriptlets roofit-more
+%ldconfig_scriptlets roofit-batchcompute
%ldconfig_scriptlets roostats
%ldconfig_scriptlets sql-mysql
%ldconfig_scriptlets sql-odbc
@@ -2886,13 +3162,12 @@ fi
# They therefore should not be marked doc.
%{_pkgdocdir}/CREDITS
%{_pkgdocdir}/LICENSE
-%doc %{_pkgdocdir}/README
+%doc %{_pkgdocdir}/DEVELOPMENT.md
%doc %{_pkgdocdir}/ReleaseNotes
%license LICENSE LGPL2_1.txt
%files multiproc -f includelist-core-multiproc
%{_libdir}/%{name}/libMultiProc.*
-%{_libdir}/%{name}/libMultiProc_rdict.pcm
%files cling
%{_bindir}/genreflex
@@ -2936,6 +3211,10 @@ fi
%files -n python2-jsmva
%{python2_sitelib}/JsMVA
%{python2_sitelib}/JsMVA-*.egg-info
+
+%files -n python2-distrdf
+%{python2_sitelib}/DistRDF
+%{python2_sitelib}/DistRDF-*.egg-info
%endif
%files -n python%{python3_pkgversion}-%{name} -f includelist-bindings-pyroot
@@ -2943,9 +3222,9 @@ fi
%{python3_sitearch}/cppyy_backend
%{python3_sitearch}/ROOT
%{python3_sitearch}/ROOT-*.egg-info
-%{python3_sitearch}/libcppyy%{python3_version_uscore}.%{py3_soabi}.so
+%{python3_sitearch}/libcppyy%{python3_version_uscore}%{python3_ext_suffix}
%{python3_sitearch}/libcppyy_backend%{python3_version_uscore}.so
-%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}.%{py3_soabi}.so
+%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}%{python3_ext_suffix}
%{_libdir}/%{name}/libcppyy%{python3_version_uscore}.*
%{_libdir}/%{name}/libcppyy_backend%{python3_version_uscore}.*
%dir %{_includedir}/%{name}/CPyCppyy
@@ -2953,7 +3232,7 @@ fi
%files -n python%{python3_pkgversion}-jupyroot
%{python3_sitearch}/JupyROOT
%{python3_sitearch}/JupyROOT-*.egg-info
-%{python3_sitearch}/libJupyROOT%{python3_version_uscore}.%{py3_soabi}.so
+%{python3_sitearch}/libJupyROOT%{python3_version_uscore}%{python3_ext_suffix}
%{_datadir}/jupyter/kernels/python%{python3_pkgversion}-jupyroot
%doc bindings/jupyroot/README.md
@@ -2961,6 +3240,10 @@ fi
%{python3_sitelib}/JsMVA
%{python3_sitelib}/JsMVA-*.egg-info
+%files -n python%{python3_pkgversion}-distrdf
+%{python3_sitelib}/DistRDF
+%{python3_sitelib}/DistRDF-*.egg-info
+
%files r -f includelist-bindings-r
%{_libdir}/%{name}/libRInterface.*
%{_libdir}/%{name}/libRInterface_rdict.pcm
@@ -3411,6 +3694,11 @@ fi
%{_libdir}/%{name}/libRooFitMore.*
%{_libdir}/%{name}/libRooFitMore_rdict.pcm
+%files roofit-batchcompute -f includelist-roofit-batchcompute
+%{_libdir}/%{name}/libRooBatchCompute.*
+%{_libdir}/%{name}/libRooBatchCompute_*
+%doc roofit/batchcompute/README.md
+
%files roostats -f includelist-roofit-roostats
%{_libdir}/%{name}/libRooStats.*
%{_libdir}/%{name}/libRooStats_rdict.pcm
@@ -3519,6 +3807,7 @@ fi
%files gui-browsable -f includelist-gui-browsable
%{_libdir}/%{name}/libROOTBrowsable.*
%{_libdir}/%{name}/libROOTBrowsable_rdict.pcm
+%{_libdir}/%{name}/libROOTBranchBrowseProvider.*
%{_libdir}/%{name}/libROOTHistDrawProvider.*
%{_libdir}/%{name}/libROOTLeafDraw6Provider.*
%{_libdir}/%{name}/libROOTLeafDraw7Provider.*
@@ -3528,6 +3817,11 @@ fi
%files gui-browserv7 -f includelist-gui-browserv7
%{_libdir}/%{name}/libROOTBrowserv7.*
%{_libdir}/%{name}/libROOTBrowserv7_rdict.pcm
+%{_libdir}/%{name}/libROOTBrowserGeomWidget.*
+%{_libdir}/%{name}/libROOTBrowserRCanvasWidget.*
+%{_libdir}/%{name}/libROOTBrowserTCanvasWidget.*
+%{_libdir}/%{name}/libROOTBrowserWidgets.*
+%{_datadir}/%{name}/plugins/TBrowserImp/P030_RWebBrowserImp.C
%files gui-canvaspainter
%{_libdir}/%{name}/libROOTCanvasPainter.*
@@ -3565,6 +3859,15 @@ fi
%endif
%changelog
+* Wed Aug 04 2021 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 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 <mattias.ellert(a)physics.uu.se> - 6.22.08-11
- Drop the memstat module for Fedora 35+
The required __malloc_hook was removed from glibc 2.33.9000-48
diff --git a/sources b/sources
index 9b75929..af28a1d 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (root-6.22.08.tar.xz) = 9080168116ffdd07cfce411dca77404177cd3ba57af498419432ca95169dbce581a7a2a667c22273685d659b3e0398d567b2d51d07ca767b076ee5196395d828
+SHA512 (root-6.24.02.tar.xz) = 2f2bc89b436c7bc703bc88290f5047fae941950f98bd549fdd43121f7742a4030e153cc12a52d81c9a76a32e8d7be197a85776b721fe1643439827fb5b49d1c0
SHA512 (root-testfiles.tar.xz) = 945aef1a0cf5af672d4ab84b0ac00b76118e93008ff72447658ee82d9e955a1540af3ff7126e701418872f1d91b92ee96d4985840a519036c42732023a13f00f
commit 63048e8cb675f579120ea07145ded574d1d80015
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Mon Jul 26 20:54:55 2021 +0200
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
diff --git a/root.spec b/root.spec
index 9b0bcdd..e61c683 100644
--- a/root.spec
+++ b/root.spec
@@ -29,6 +29,14 @@
%global xrootd5 0
%endif
+%if %{?fedora}%{!?fedora:0} >= 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
+%global memstat 0
+%else
+%global memstat 1
+%endif
+
%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8
# Multi-threading support requires TBB version >= 2018
%global tbb 1
@@ -45,7 +53,7 @@
Name: root
Version: 6.22.08
%global libversion %(cut -d. -f 1-2 <<< %{version})
-Release: 10%{?dist}
+Release: 11%{?dist}
Summary: Numerical data analysis framework
License: LGPLv2+
@@ -425,6 +433,9 @@ 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
+%if ! %{memstat}
+Obsoletes: %{name}-memstat < %{version}-%{release}
+%endif
%description core
This package contains the core libraries used by ROOT: libCore, libNew,
@@ -1203,6 +1214,7 @@ Obsoletes: %{name}-tree-player < 6.14.00
%description vecops
This package contains a vector operation extension for ROOT.
+%if %{memstat}
%package memstat
Summary: Memory statistics tool for use with ROOT
Requires: %{name}-core%{?_isa} = %{version}-%{release}
@@ -1213,6 +1225,7 @@ Requires: %{name}-tree%{?_isa} = %{version}-%{release}
%description memstat
This package contains the memory statistics tool for debugging memory
leaks and such.
+%endif
%package montecarlo-eg
Summary: Event generator library for ROOT
@@ -2049,7 +2062,11 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
-Dlibcxx:BOOL=OFF \
-Dmathmore:BOOL=ON \
-Dmemory_termination:BOOL=OFF \
+%if %{memstat}
-Dmemstat:BOOL=ON \
+%else
+ -Dmemstat:BOOL=OFF \
+%endif
-Dminuit2:BOOL=ON \
-Dmlp:BOOL=ON \
-Dmonalisa:BOOL=OFF \
@@ -2728,7 +2745,9 @@ fi
%ldconfig_scriptlets splot
%ldconfig_scriptlets unuran
%ldconfig_scriptlets vecops
+%if %{memstat}
%ldconfig_scriptlets memstat
+%endif
%ldconfig_scriptlets montecarlo-eg
%ldconfig_scriptlets montecarlo-pythia8
%ldconfig_scriptlets montecarlo-vmc
@@ -3250,9 +3269,11 @@ fi
%{_libdir}/%{name}/libROOTVecOps.*
%{_libdir}/%{name}/libROOTVecOps_rdict.pcm
+%if %{memstat}
%files memstat -f includelist-misc-memstat
%{_libdir}/%{name}/libMemStat.*
%{_libdir}/%{name}/libMemStat_rdict.pcm
+%endif
%files montecarlo-eg -f includelist-montecarlo-eg
%{_libdir}/%{name}/libEG.*
@@ -3544,6 +3565,11 @@ fi
%endif
%changelog
+* Mon Jul 26 2021 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 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 <releng(a)fedoraproject.org> - 6.22.08-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
commit f5f5cab0a0ced5f17c9ee239fb5a81e952e8eced
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Fri Jul 23 11:32:11 2021 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/root.spec b/root.spec
index fffa16c..9b0bcdd 100644
--- a/root.spec
+++ b/root.spec
@@ -45,7 +45,7 @@
Name: root
Version: 6.22.08
%global libversion %(cut -d. -f 1-2 <<< %{version})
-Release: 9%{?dist}
+Release: 10%{?dist}
Summary: Numerical data analysis framework
License: LGPLv2+
@@ -3544,6 +3544,9 @@ fi
%endif
%changelog
+* Fri Jul 23 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 6.22.08-10
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
+
* Thu Jun 17 2021 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.22.08-9
- Backport fix for jsroot loading in jupyterlab
2 years, 9 months
Architecture specific change in rpms/openexr.git
by githook-noreply@fedoraproject.org
The package rpms/openexr.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/openexr.git/commit/?id=ef7744a7a3....
Change:
+%ifnarch armv7hl aarch64 s390x i686
Thanks.
Full change:
============
commit ef7744a7a3cf47907674e0e5e4d7dd54f0a67a14
Author: Richard Shaw <hobbes1069(a)gmail.com>
Date: Fri Aug 20 17:29:21 2021 -0500
Temporarily disable tests on i686.
diff --git a/openexr.spec b/openexr.spec
index d89f0e1..ca8586d 100644
--- a/openexr.spec
+++ b/openexr.spec
@@ -110,7 +110,7 @@ sed -i "s/;Threads::Threads//" %{buildroot}%{_libdir}/cmake/OpenEXR/OpenEXRTarge
%check
# Test 4 currently fails on aarch64 and sometimes times out on armv7hl
# https://github.com/AcademySoftwareFoundation/openexr/issues/876
-%ifnarch armv7hl aarch64 s390x
+%ifnarch armv7hl aarch64 s390x i686
%ctest
%endif
commit eabecc5b733a7754d1909624ff06fc3804085a4a
Author: Richard Shaw <hobbes1069(a)gmail.com>
Date: Fri Aug 20 16:20:20 2021 -0500
Update to 3.1.1.
diff --git a/.gitignore b/.gitignore
index fc5c21e..829de79 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@
/openexr-3.0.1.tar.gz
/openexr-3.0.4.tar.gz
/openexr-3.0.5.tar.gz
+/openexr-3.1.1.tar.gz
diff --git a/openexr.spec b/openexr.spec
index 89f77c9..d89f0e1 100644
--- a/openexr.spec
+++ b/openexr.spec
@@ -1,9 +1,9 @@
%{?!python3_pkgversion:%global python3_pkgversion 3}
-%global sover 29
+%global sover 30
Name: openexr
-Version: 3.0.5
-Release: 3%{?dist}
+Version: 3.1.1
+Release: 1%{?dist}
Summary: Provides the specification and reference implementation of the EXR file format
License: BSD
@@ -132,6 +132,9 @@ sed -i "s/;Threads::Threads//" %{buildroot}%{_libdir}/cmake/OpenEXR/OpenEXRTarge
%changelog
+* Wed Aug 11 2021 Richard Shaw <hobbes1069(a)gmail.com> - 3.1.1-1
+- Update to 3.1.1.
+
* Thu Aug 05 2021 Richard Shaw <hobbes1069(a)gmail.com> - 3.0.5-3
- Remove Threads::Threads from link libraries in f35+
diff --git a/sources b/sources
index f01c6f7..0cf2bad 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (openexr-3.0.5.tar.gz) = 7a0f83320ad5e1d8f8414b5175a64eef3c6b06a7ccd7d66d0aa21472ea22146e2617ff10c20e04203fc2a3326d8bac2d95023bec315badb03e6a006596b64595
+SHA512 (openexr-3.1.1.tar.gz) = 430becbb214cedec5a57e9ff2363badd8a2d94e8a00edffbc75fbcf30d26d887a6eb3f4ff96e371cb26f9d44e63bf0fe2dc511493a0951171ddc64bba7aed735
2 years, 9 months
[Report] Packages Restricting Arches
by root
List of packages currently excluding arches (2240)
===========================================
- 0ad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- 90-Second-Portraits
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- GoldenCheetah
ExclusiveArch: %{qt5_qtwebengine_arches}
- GtkAda
ExclusiveArch: %{GPRbuild_arches}
- GtkAda3
ExclusiveArch: %{GPRbuild_arches}
- OpenImageIO
ExclusiveArch: x86_64 ppc64le
- OpenMolcas
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- PragmARC
ExclusiveArch: %{GPRbuild_arches}
- R-V8
ExclusiveArch: %{nodejs_arches}
- RdRand
ExclusiveArch: %{ix86} x86_64
- RediSearch
ExclusiveArch: x86_64
- SLOF
ExclusiveArch: ppc64le
- YafaRay
ExclusiveArch: %{ix86} x86_64
- aboot
ExclusiveArch: alpha
- accel-config
ExclusiveArch: %{ix86} x86_64
- acpid
ExclusiveArch: ia64 x86_64 %{ix86} %{arm} aarch64
- ahven
ExclusiveArch: %{GPRbuild_arches}
- algobox
ExclusiveArch: %{qt5_qtwebengine_arches}
- alleyoop
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x %{arm} aarch64
- american-fuzzy-lop
ExclusiveArch: %{ix86} x86_64
- anet
ExclusiveArch: %{GPRbuild_arches}
- anki
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- apmd
ExclusiveArch: %{ix86}
- appstream-generator
ExclusiveArch: %{ldc_arches}
- arm-trusted-firmware
ExclusiveArch: aarch64
- atomic-queue
ExclusiveArch: x86_64 %{ix86} %{arm32} %{arm64}
- aunit
ExclusiveArch: %GPRbuild_arches
- avgtime
ExclusiveArch: %{ldc_arches}
- aws
ExclusiveArch: %GPRbuild_arches
- bcal
ExclusiveArch: x86_64 aarch64 ia64 ppc64 ppc64le s390x
- bcc
ExclusiveArch: x86_64 %{power64} aarch64 s390x armv7hl
- bcm283x-firmware
ExclusiveArch: %{arm} aarch64
- berusky2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{mips}
- biosdevname
ExclusiveArch: %{ix86} x86_64
- blender
ExclusiveArch: x86_64 aarch64 ppc64le
- bless
ExclusiveArch: %mono_arches
- bpftrace
ExclusiveArch: x86_64 %{power64} aarch64 s390x
- calamares
ExclusiveArch: %{ix86} x86_64
- calibre
ExclusiveArch: %{qt5_qtwebengine_arches}
- ccdciel
ExclusiveArch: %{fpc_arches}
- cdcollect
ExclusiveArch: %{mono_arches}
- ceph
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- chromium
ExclusiveArch: x86_64 i686
ExclusiveArch: x86_64 i686 aarch64
- cjdns
ExclusiveArch: %{nodejs_arches}
- clevis-pin-tpm2
ExclusiveArch: %{rust_arches}
- cmospwd
ExclusiveArch: %{ix86} x86_64
- cmrt
ExclusiveArch: %{ix86} x86_64 ia64
- coffee-script
ExclusiveArch: %{nodejs_arches} noarch
- colorful
ExclusiveArch: %{fpc_arches}
- cpu-x
ExclusiveArch: i686 x86_64
- cpufetch
ExclusiveArch: %{arm} aarch64 x86_64 ppc ppc64 ppc64le
- cpuid
ExclusiveArch: %{ix86} x86_64
- cqrlog
ExclusiveArch: %{fpc_arches}
- crash
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- crash-gcore-command
ExclusiveArch: aarch64 ppc64le x86_64
- crash-trace-command
ExclusiveArch: aarch64 ppc64le s390x x86_64
- criu
ExclusiveArch: x86_64 %{arm} ppc64le aarch64 s390x
- cryptlib
ExclusiveArch: x86_64 %{ix86} aarch64 ppc64 ppc64le
- cryptobone
ExclusiveArch: x86_64 %{ix86} ppc64 ppc64le aarch64
- daq
ExclusiveArch: x86_64 aarch64
- darktable
ExclusiveArch: x86_64 aarch64
ExclusiveArch: x86_64 ppc64le
- dbus-parsec
ExclusiveArch: %{rust_arches}
- dbus-sharp
ExclusiveArch: %mono_arches
- dbus-sharp-glib
ExclusiveArch: %mono_arches
- dbxtool
ExclusiveArch: i386 x86_64 aarch64
- deepin-daemon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- deepin-desktop-schemas
ExclusiveArch: %{go_arches}
- dlm
ExclusiveArch: i686 x86_64
- dmidecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- dmtcp
ExclusiveArch: x86_64 aarch64
- docker-distribution
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- dolphin-emu
ExclusiveArch: x86_64 aarch64
- dotnet-build-reference-packages
ExclusiveArch: aarch64 x86_64
ExclusiveArch: x86_64
- dotnet3.1
ExclusiveArch: aarch64 x86_64
ExclusiveArch: x86_64
- dotnet5.0
ExclusiveArch: aarch64 x86_64
ExclusiveArch: x86_64
- dotnet5.0-build-reference-packages
ExclusiveArch: aarch64 x86_64
ExclusiveArch: x86_64
- doublecmd
ExclusiveArch: %{ix86} x86_64
- dpdk
ExclusiveArch: x86_64 i686 aarch64 ppc64le
- dyninst
ExclusiveArch: %{ix86} x86_64 ppc64le aarch64
- e3
ExclusiveArch: %{ix86} x86_64
- edk2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: x86_64 aarch64
- efibootmgr
ExclusiveArch: %{efi}
- efifs
ExclusiveArch: %{efi}
- efitools
ExclusiveArch: %{efi}
- efivar
ExclusiveArch: %{efi}
- elk
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- emacs-slime
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- enki
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- envytools
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- eric
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- eth-tools
ExclusiveArch: x86_64
- extlinux-bootloader
ExclusiveArch: %{arm} aarch64
- fcitx-libpinyin
ExclusiveArch: %{qt5_qtwebengine_arches}
- fedora-dockerfiles
ExclusiveArch: %{go_arches}
- fes
ExclusiveArch: %{ix86} x86_64
- fkill-cli
ExclusiveArch: %{nodejs_arches} noarch
- florist
ExclusiveArch: %{GPRbuild_arches}
- fpc
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64 ppc64le
- frescobaldi
ExclusiveArch: %{qt5_qtwebengine_arches}
- frysk
ExclusiveArch: %{ix86} x86_64 ppc64
- fwts
ExclusiveArch: x86_64 %{arm} aarch64 s390x riscv64 %{power64}
- fwupd-efi
ExclusiveArch: x86_64 aarch64
- fx
ExclusiveArch: %{nodejs_arches} noarch
- fx-completion
ExclusiveArch: %{nodejs_arches} noarch
- ga
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- gbrainy
ExclusiveArch: %mono_arches
- gdata-sharp
ExclusiveArch: %mono_arches
- gdb-exploitable
ExclusiveArch: x86_64 i386
ExclusiveArch: x86_64 noarch
- gearhead1
ExclusiveArch: %{fpc_arches}
- gela-asis
ExclusiveArch: %GPRbuild_arches
- ghdl
ExclusiveArch: %{GNAT_arches}
- ghostwriter
ExclusiveArch: %{qt5_qtwebengine_arches}
- gio-sharp
ExclusiveArch: %mono_arches
- gir-to-d
ExclusiveArch: %{ldc_arches}
- git-octopus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- gitqlient
ExclusiveArch: %{qt5_qtwebengine_arches}
- giver
ExclusiveArch: %{mono_arches}
- gkeyfile-sharp
ExclusiveArch: %mono_arches
- glibc32
ExclusiveArch: x86_64
- glibd
ExclusiveArch: %{ldc_arches}
- gmqcc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- gnatcoll
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-bindings
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-db
ExclusiveArch: %{GPRbuild_arches}
- gnome-boxes
ExclusiveArch: x86_64
- gnome-desktop-sharp
ExclusiveArch: %mono_arches
- gnome-do
ExclusiveArch: %mono_arches
- gnome-keyring-sharp
ExclusiveArch: %mono_arches
- gnome-rdp
ExclusiveArch: %{mono_arches}
- gnome-sharp
ExclusiveArch: %mono_arches
- gnome-subtitles
ExclusiveArch: %mono_arches
- gnu-efi
ExclusiveArch: %{efi}
- go-bindata
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- go-compilers
ExclusiveArch: %{go_arches}
- go-rpm-macros
ExclusiveArch: %{golang_arches} %{gccgo_arches}
- godep
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang
ExclusiveArch: %{golang_arches}
- gomtree
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- gotun
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: x86_64
- goverlay
ExclusiveArch: %{fpc_arches}
- gprbuild
ExclusiveArch: %{GPRbuild_arches} %{bootstrap_arch}
- gprolog
ExclusiveArch: x86_64 %{ix86} ppc alpha
- grafana
ExclusiveArch: %{grafana_arches}
- grafana-pcp
ExclusiveArch: %{grafanapcp_arches}
- gtk-sharp-beans
ExclusiveArch: %mono_arches
- gtk-sharp2
ExclusiveArch: %mono_arches
- gtk-sharp3
ExclusiveArch: %{mono_arches}
- gtkd
ExclusiveArch: %{ldc_arches}
- gudev-sharp
ExclusiveArch: %mono_arches
- guestfs-tools
ExclusiveArch: %{kernel_arches}
- hedgewars
ExclusiveArch: %{fpc_arches}
- hsakmt
ExclusiveArch: x86_64 aarch64
- hyena
ExclusiveArch: %{mono_arches}
- hyperscan
ExclusiveArch: x86_64
- hyperv-daemons
ExclusiveArch: i686 x86_64
- i3status-rs
ExclusiveArch: %{rust_arches}
- icaro
ExclusiveArch: %{ix86} x86_64 noarch
- imvirt
ExclusiveArch: %{ix86} x86_64 ia64
- indistarter
ExclusiveArch: %{fpc_arches}
- infinipath-psm
ExclusiveArch: x86_64
- intel-cmt-cat
ExclusiveArch: x86_64 i686 i586
ExclusiveArch: x86_64 i686 i586
- intel-gmmlib
ExclusiveArch: x86_64 i686
- intel-ipp-crypto-mb
ExclusiveArch: x86_64
ExclusiveArch: x86_64
- intel-ipsec-mb
ExclusiveArch: x86_64
ExclusiveArch: x86_64
- intel-mediasdk
ExclusiveArch: x86_64
- intel-undervolt
ExclusiveArch: i386 x86_64
- ioport
ExclusiveArch: %{ix86} x86_64
- ipmctl
ExclusiveArch: x86_64
- ipw2100-firmware
ExclusiveArch: noarch i386 x86_64
- ipw2200-firmware
ExclusiveArch: noarch i386 x86_64
- ispc
ExclusiveArch: x86_64 aarch64
- iucode-tool
ExclusiveArch: %{ix86} x86_64
- iyfct
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- java-1.8.0-openjdk-aarch32
ExclusiveArch: %{arm}
- jigawatts
ExclusiveArch: x86_64 %{arm} ppc64le aarch64 s390x
- kchmviewer
ExclusiveArch: %{qt5_qtwebengine_arches}
- keepass
ExclusiveArch: %{mono_arches}
- kernel
ExclusiveArch: x86_64 s390x %{arm} aarch64 ppc64le
ExclusiveArch: noarch i386 i686 x86_64 s390x %{arm} aarch64 ppc64le
- keyring-ima-signer
ExclusiveArch: %{rust_arches}
- kf5-akonadi-search
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-audiocd-kio
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kalarmcal
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kblog
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kcalendarcore
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kcalendarutils
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kitinerary
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-ktnef
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-libkdcraw
ExclusiveArch: x86_64 ppc64le %{arm}
- kicad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- kiwix-desktop
ExclusiveArch: %{qt5_qtwebengine_arches}
- knot-resolver
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- knotes
ExclusiveArch: x86_64 %{arm}
- kompose
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 s390x
- kubernetes
ExclusiveArch: x86_64 aarch64 ppc64le s390x %{arm}
- lazarus
ExclusiveArch: %{fpc_arches}
- lazpaint
ExclusiveArch: %{fpc_arches}
- ldc
ExclusiveArch: %{ldc_arches}
- libbsr
ExclusiveArch: %{power64}
- libclc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64} s390x
- libcxl
ExclusiveArch: %{power64}
- libdfp
ExclusiveArch: ppc ppc64 ppc64le s390 s390x x86_64
- libdispatch
ExclusiveArch: x86_64 aarch64
- libguestfs
ExclusiveArch: %{kernel_arches}
- libica
ExclusiveArch: s390 s390x
- libipt
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- libnxz
ExclusiveArch: ppc64le
- libocxl
ExclusiveArch: ppc64le
- libpmemobj-cpp
ExclusiveArch: x86_64 ppc64le
- libpsm2
ExclusiveArch: x86_64
- libquentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- libretro-desmume2015
ExclusiveArch: i686 x86_64
- librtas
ExclusiveArch: %{power64}
- libservicelog
ExclusiveArch: ppc %{power64}
- libsmbios
ExclusiveArch: x86_64 %{ix86}
- libunwind
ExclusiveArch: %{arm} aarch64 hppa ia64 mips ppc %{power64} s390x %{ix86} x86_64
- libva-intel-hybrid-driver
ExclusiveArch: %{ix86} x86_64 ia64
- libvma
ExclusiveArch: x86_64 ppc64le ppc64 aarch64
- libvmi
ExclusiveArch: x86_64
- libvpd
ExclusiveArch: %{power64}
- libxsmm
ExclusiveArch: x86_64
- libzfcphbaapi
ExclusiveArch: s390 s390x
- lightdm
ExclusiveArch: x86_64 ppc64le
- log4net
ExclusiveArch: %mono_arches
- lrmi
ExclusiveArch: %{ix86}
- lsvpd
ExclusiveArch: %{power64}
- luajit
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 s390x ppc64le
- luxcorerender
ExclusiveArch: x86_64
- mactel-boot
ExclusiveArch: x86_64
- manifest-tool
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- matreshka
ExclusiveArch: %GPRbuild_arches
- maxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- mbpfan
ExclusiveArch: x86_64
- mcelog
ExclusiveArch: i686 x86_64
- mdevctl
ExclusiveArch: %{rust_arches}
- mediaconch
ExclusiveArch: %{qt5_qtwebengine_arches}
- mellowplayer
ExclusiveArch: %{qt5_qtwebengine_arches}
- memkind
ExclusiveArch: x86_64 ppc64 ppc64le s390x aarch64
- memtest86+
ExclusiveArch: %{ix86} x86_64
- mesos
ExclusiveArch: x86_64
- microcode_ctl
ExclusiveArch: %{ix86} x86_64
- micropython
ExclusiveArch: %{arm} %{ix86} x86_64
- mine_detector
ExclusiveArch: %{GPRbuild_arches}
- minetest
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- mingw-libidn2
ExclusiveArch: %{ix86} x86_64 %{arm}
- mingw-wine-gecko
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- mirrorlist-server
ExclusiveArch: %{rust_arches}
- mkbootdisk
ExclusiveArch: %{ix86} sparc sparc64 x86_64
- mod_mono
ExclusiveArch: %mono_arches
- module-build-service
ExclusiveArch: %{ix86} x86_64 noarch
- mokutil
ExclusiveArch: %{ix86} x86_64 aarch64 %{arm}
- mono
ExclusiveArch: %mono_arches
- mono-addins
ExclusiveArch: %mono_arches
- mono-basic
ExclusiveArch: %{mono_arches}
- mono-bouncycastle
ExclusiveArch: %mono_arches
- mono-cecil
ExclusiveArch: %mono_arches
- mono-cecil-flowanalysis
ExclusiveArch: %mono_arches
- mono-reflection
ExclusiveArch: %mono_arches
- mono-tools
ExclusiveArch: %mono_arches
- mono-zeroconf
ExclusiveArch: %mono_arches
- monobristol
ExclusiveArch: %{mono_arches}
- monodevelop
ExclusiveArch: %mono_arches
- monodevelop-debugger-gdb
ExclusiveArch: %{mono_arches}
- monosim
ExclusiveArch: %mono_arches
- mrrescue
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- msr-tools
ExclusiveArch: %{ix86} x86_64
- mustache-d
ExclusiveArch: %{ldc_arches}
- mysql-connector-net
ExclusiveArch: %{mono_arches}
- nant
ExclusiveArch: %mono_arches
- nativejit
ExclusiveArch: x86_64
- nbc
ExclusiveArch: %{fpc_arches}
- nbdkit
ExclusiveArch: x86_64
- ndesk-dbus
ExclusiveArch: %{mono_arches}
- ndesk-dbus-glib
ExclusiveArch: %{mono_arches}
- newsflash
ExclusiveArch: %{rust_arches}
- newtonsoft-json
ExclusiveArch: %{mono_arches}
- nispor
ExclusiveArch: %{rust_arches}
- nodejs
ExclusiveArch: %{nodejs_arches}
- nodejs-acorn-object-spread
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-backbone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bash-language-server
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buble
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-generic-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-linefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nodemon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-packaging
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-replace-require-self
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-supervisor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-svgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-underscore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- notify-sharp
ExclusiveArch: %{mono_arches}
- notify-sharp3
ExclusiveArch: %{mono_arches}
- npm-name-cli
ExclusiveArch: %{nodejs_arches} noarch
- nuget
ExclusiveArch: %{mono_arches}
- numatop
ExclusiveArch: x86_64 ppc64le
- nunit
ExclusiveArch: %{mono_arches}
- nunit2
ExclusiveArch: %{mono_arches}
- nvml
ExclusiveArch: x86_64 ppc64le
- nwchem
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- obs-service-rust2rpm
ExclusiveArch: %{rust_arches} noarch
- oci-kvm-hook
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- oci-seccomp-bpf-hook
ExclusiveArch: x86_64 %%{power64} aarch64 s390x armv7hl
- oci-umount
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- oidn
ExclusiveArch: x86_64
- olpc-kbdshim
ExclusiveArch: %{ix86} %{arm}
- olpc-netutils
ExclusiveArch: %{ix86} %{arm}
- olpc-utils
ExclusiveArch: %{ix86} %{arm}
- onednn
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- onedrive
ExclusiveArch: %{ldc_arches}
- opae
ExclusiveArch: x86_64
- opal-prd
ExclusiveArch: ppc64le
- open-vm-tools
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64 aarch64
- openblas
ExclusiveArch: %{openblas_arches}
- openjfx
ExclusiveArch: x86_64
- openjfx8
ExclusiveArch: x86_64
- openlibm
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 %{power64}
- openni
ExclusiveArch: %{ix86} x86_64 %{arm}
- openni-primesense
ExclusiveArch: %{ix86} x86_64 %{arm}
- openshadinglanguage
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- openssl-ibmca
ExclusiveArch: s390 s390x
- origin
ExclusiveArch: %{go_arches}
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- orion
ExclusiveArch: %{qt5_qtwebengine_arches}
- orthorobot
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- pacemaker
ExclusiveArch: aarch64 i686 ppc64le s390x x86_64 %{arm}
ExclusiveArch: aarch64 i686 ppc64le s390x x86_64
- paflib
ExclusiveArch: ppc %{power64}
- parsec
ExclusiveArch: %{rust_arches}
- parsec-tool
ExclusiveArch: %{rust_arches}
- pcc
ExclusiveArch: %{ix86} x86_64
- pcm
ExclusiveArch: %{ix86} x86_64
- pcmciautils
ExclusiveArch: %{ix86} x86_64 ia64 ppc ppc64 %{arm}
- pdbg
ExclusiveArch: ppc64le
- pdfmod
ExclusiveArch: %mono_arches
- perl-Dumbbench
ExclusiveArch: %{ix86} x86_64 noarch
- perl-Parse-DMIDecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- pesign
ExclusiveArch: %{ix86} x86_64 ia64 aarch64 %{arm}
- pesign-test-app
ExclusiveArch: x86_64
- pinta
ExclusiveArch: %mono_arches
- pioneer
ExclusiveArch: %{ix86} x86_64
- playonlinux
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- pmdk-convert
ExclusiveArch: x86_64
- pmemkv
ExclusiveArch: x86_64
- poppler-sharp
ExclusiveArch: %mono_arches
- popub
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- powerpc-utils
ExclusiveArch: ppc %{power64}
- ppc64-diag
ExclusiveArch: ppc %{power64}
- pveclib
ExclusiveArch: ppc %{power64}
- pvs-sbcl
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- pyqtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- python-cryptography
ExclusiveArch: %{rust_arches}
- python-etcd
ExclusiveArch: noarch %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- python-healpy
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-javabridge
ExclusiveArch: i686 x86_64
- python-openoffice
ExclusiveArch: noarch x86_64
- python-pymoc
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-rpi-gpio
ExclusiveArch: %{arm} aarch64
- python-setuptools-rust
ExclusiveArch: %{rust_arches}
- q4wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- qatzip
ExclusiveArch: x86_64
- qcint
ExclusiveArch: x86_64
- qclib
ExclusiveArch: s390 s390x
- qemu-sanity-check
ExclusiveArch: %{kernel_arches}
- qevercloud
ExclusiveArch: %{qt5_qtwebengine_arches}
- qmapshack
ExclusiveArch: %{qt5_qtwebengine_arches}
- qt4pas
ExclusiveArch: %{fpc_arches}
- qt5-qtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- quantum-espresso
ExclusiveArch: x86_64 %{ix86} aarch64 %{power64}
- quentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- rear
ExclusiveArch: %ix86 x86_64 ppc ppc64 ppc64le ia64
- renderdoc
ExclusiveArch: x86_64
- reptyr
ExclusiveArch: %{ix86} x86_64 %{arm}
- rescene
ExclusiveArch: %{mono_arches}
- restsharp
ExclusiveArch: %{mono_arches}
- rhythmbox-alternative-toolbar
ExclusiveArch: %{ix86} %{arm} x86_64 ppc64 ppc64le
- rocm-runtime
ExclusiveArch: x86_64 aarch64
- rocminfo
ExclusiveArch: x86_64 aarch64
- rpg-cli
ExclusiveArch: %{rust_arches}
- rpm-ostree
ExclusiveArch: %{rust_arches}
- rr
ExclusiveArch: %{ix86} x86_64
- rssguard
ExclusiveArch: %{qt5_qtwebengine_arches}
- rubygem-childprocess
ExclusiveArch: %{ix86} x86_64 noarch
- runc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le %{mips} s390x
- rust
ExclusiveArch: %{rust_arches}
- rust-Inflector
ExclusiveArch: %{rust_arches}
- rust-ab_glyph
ExclusiveArch: %{rust_arches}
- rust-ab_glyph_rasterizer
ExclusiveArch: %{rust_arches}
- rust-abomonation
ExclusiveArch: %{rust_arches}
- rust-actix
ExclusiveArch: %{rust_arches}
- rust-actix-codec
ExclusiveArch: %{rust_arches}
- rust-actix-connect
ExclusiveArch: %{rust_arches}
- rust-actix-files
ExclusiveArch: %{rust_arches}
- rust-actix-http
ExclusiveArch: %{rust_arches}
- rust-actix-macros
ExclusiveArch: %{rust_arches}
- rust-actix-macros0.1
ExclusiveArch: %{rust_arches}
- rust-actix-router
ExclusiveArch: %{rust_arches}
- rust-actix-rt
ExclusiveArch: %{rust_arches}
- rust-actix-rt1
ExclusiveArch: %{rust_arches}
- rust-actix-server
ExclusiveArch: %{rust_arches}
- rust-actix-server-config
ExclusiveArch: %{rust_arches}
- rust-actix-service
ExclusiveArch: %{rust_arches}
- rust-actix-testing
ExclusiveArch: %{rust_arches}
- rust-actix-threadpool
ExclusiveArch: %{rust_arches}
- rust-actix-tls
ExclusiveArch: %{rust_arches}
- rust-actix-utils
ExclusiveArch: %{rust_arches}
- rust-actix-web
ExclusiveArch: %{rust_arches}
- rust-actix-web-codegen
ExclusiveArch: %{rust_arches}
- rust-actix0.10
ExclusiveArch: %{rust_arches}
- rust-actix_derive
ExclusiveArch: %{rust_arches}
- rust-actix_derive0.5
ExclusiveArch: %{rust_arches}
- rust-addr2line
ExclusiveArch: %{rust_arches}
- rust-adler
ExclusiveArch: %{rust_arches}
- rust-adler32
ExclusiveArch: %{rust_arches}
- rust-aead
ExclusiveArch: %{rust_arches}
- rust-aes
ExclusiveArch: %{rust_arches}
- rust-aes-gcm
ExclusiveArch: %{rust_arches}
- rust-aes-soft
ExclusiveArch: %{rust_arches}
- rust-afterburn
ExclusiveArch: %{rust_arches}
- rust-ahash
ExclusiveArch: %{rust_arches}
- rust-ahash0.4
ExclusiveArch: %{rust_arches}
- rust-aho-corasick
ExclusiveArch: %{rust_arches}
- rust-alacritty
ExclusiveArch: %{rust_arches}
- rust-alacritty_config_derive
ExclusiveArch: %{rust_arches}
- rust-alacritty_terminal
ExclusiveArch: %{rust_arches}
- rust-alga
ExclusiveArch: %{rust_arches}
- rust-alga_derive
ExclusiveArch: %{rust_arches}
- rust-alloc-no-stdlib
ExclusiveArch: %{rust_arches}
- rust-alloc-stdlib
ExclusiveArch: %{rust_arches}
- rust-alphanumeric-sort
ExclusiveArch: %{rust_arches}
- rust-alsa
ExclusiveArch: %{rust_arches}
- rust-alsa-sys
ExclusiveArch: %{rust_arches}
- rust-ambient-authority
ExclusiveArch: %{rust_arches}
- rust-ammonia
ExclusiveArch: %{rust_arches}
- rust-andrew
ExclusiveArch: %{rust_arches}
- rust-ansi_colours
ExclusiveArch: %{rust_arches}
- rust-ansi_term
ExclusiveArch: %{rust_arches}
- rust-ansi_term0.11
ExclusiveArch: %{rust_arches}
- rust-antidote
ExclusiveArch: %{rust_arches}
- rust-anyhow
ExclusiveArch: %{rust_arches}
- rust-anymap
ExclusiveArch: %{rust_arches}
- rust-aom-sys
ExclusiveArch: %{rust_arches}
- rust-app_dirs
ExclusiveArch: %{rust_arches}
- rust-approx
ExclusiveArch: %{rust_arches}
- rust-ar
ExclusiveArch: %{rust_arches}
- rust-arbitrary
ExclusiveArch: %{rust_arches}
- rust-arbitrary0.4
ExclusiveArch: %{rust_arches}
- rust-arc-swap
ExclusiveArch: %{rust_arches}
- rust-arg_enum_proc_macro
ExclusiveArch: %{rust_arches}
- rust-argh
ExclusiveArch: %{rust_arches}
- rust-argh_derive
ExclusiveArch: %{rust_arches}
- rust-argh_shared
ExclusiveArch: %{rust_arches}
- rust-argparse
ExclusiveArch: %{rust_arches}
- rust-array-init
ExclusiveArch: %{rust_arches}
- rust-arraydeque
ExclusiveArch: %{rust_arches}
- rust-arrayref
ExclusiveArch: %{rust_arches}
- rust-arrayvec
ExclusiveArch: %{rust_arches}
- rust-article_scraper
ExclusiveArch: %{rust_arches}
- rust-ascii
ExclusiveArch: %{rust_arches}
- rust-ascii-canvas
ExclusiveArch: %{rust_arches}
- rust-askalono
ExclusiveArch: %{rust_arches}
- rust-askalono-cli
ExclusiveArch: %{rust_arches}
- rust-askama
ExclusiveArch: %{rust_arches}
- rust-askama_derive
ExclusiveArch: %{rust_arches}
- rust-askama_escape
ExclusiveArch: %{rust_arches}
- rust-askama_shared
ExclusiveArch: %{rust_arches}
- rust-asn1
ExclusiveArch: %{rust_arches}
- rust-asn1_derive
ExclusiveArch: %{rust_arches}
- rust-assert-impl
ExclusiveArch: %{rust_arches}
- rust-assert-json-diff
ExclusiveArch: %{rust_arches}
- rust-assert_approx_eq
ExclusiveArch: %{rust_arches}
- rust-assert_cli
ExclusiveArch: %{rust_arches}
- rust-assert_cmd
ExclusiveArch: %{rust_arches}
- rust-assert_fs
ExclusiveArch: %{rust_arches}
- rust-assert_matches
ExclusiveArch: %{rust_arches}
- rust-assign
ExclusiveArch: %{rust_arches}
- rust-async-attributes
ExclusiveArch: %{rust_arches}
- rust-async-channel
ExclusiveArch: %{rust_arches}
- rust-async-compression
ExclusiveArch: %{rust_arches}
- rust-async-executor
ExclusiveArch: %{rust_arches}
- rust-async-global-executor
ExclusiveArch: %{rust_arches}
- rust-async-io
ExclusiveArch: %{rust_arches}
- rust-async-lock
ExclusiveArch: %{rust_arches}
- rust-async-mutex
ExclusiveArch: %{rust_arches}
- rust-async-process
ExclusiveArch: %{rust_arches}
- rust-async-std
ExclusiveArch: %{rust_arches}
- rust-async-stream
ExclusiveArch: %{rust_arches}
- rust-async-stream-impl
ExclusiveArch: %{rust_arches}
- rust-async-task
ExclusiveArch: %{rust_arches}
- rust-async-trait
ExclusiveArch: %{rust_arches}
- rust-asyncgit
ExclusiveArch: %{rust_arches}
- rust-atk
ExclusiveArch: %{rust_arches}
- rust-atk-sys
ExclusiveArch: %{rust_arches}
- rust-atom
ExclusiveArch: %{rust_arches}
- rust-atomic-waker
ExclusiveArch: %{rust_arches}
- rust-atomicwrites
ExclusiveArch: %{rust_arches}
- rust-attohttpc
ExclusiveArch: %{rust_arches}
- rust-atty
ExclusiveArch: %{rust_arches}
- rust-autocfg
ExclusiveArch: %{rust_arches}
- rust-av-metrics
ExclusiveArch: %{rust_arches}
- rust-average
ExclusiveArch: %{rust_arches}
- rust-awc
ExclusiveArch: %{rust_arches}
- rust-az
ExclusiveArch: %{rust_arches}
- rust-backtrace
ExclusiveArch: %{rust_arches}
- rust-backtrace-sys
ExclusiveArch: %{rust_arches}
- rust-base100
ExclusiveArch: %{rust_arches}
- rust-base64
ExclusiveArch: %{rust_arches}
- rust-base64-0.10
ExclusiveArch: %{rust_arches}
- rust-base64-0.11
ExclusiveArch: %{rust_arches}
- rust-base64_0.12
ExclusiveArch: %{rust_arches}
- rust-bat
ExclusiveArch: %{rust_arches}
- rust-battery
ExclusiveArch: %{rust_arches}
- rust-beef
ExclusiveArch: %{rust_arches}
- rust-below
ExclusiveArch: %{rust_arches}
- rust-below-common
ExclusiveArch: %{rust_arches}
- rust-below-config
ExclusiveArch: %{rust_arches}
- rust-below-dump
ExclusiveArch: %{rust_arches}
- rust-below-model
ExclusiveArch: %{rust_arches}
- rust-below-render
ExclusiveArch: %{rust_arches}
- rust-below-store
ExclusiveArch: %{rust_arches}
- rust-below-view
ExclusiveArch: %{rust_arches}
- rust-below_derive
ExclusiveArch: %{rust_arches}
- rust-bencher
ExclusiveArch: %{rust_arches}
- rust-better-panic
ExclusiveArch: %{rust_arches}
- rust-bincode
ExclusiveArch: %{rust_arches}
- rust-bincode0.8
ExclusiveArch: %{rust_arches}
- rust-bindgen
ExclusiveArch: %{rust_arches}
- rust-binfarce
ExclusiveArch: %{rust_arches}
- rust-biscuit
ExclusiveArch: %{rust_arches}
- rust-bit-set
ExclusiveArch: %{rust_arches}
- rust-bit-vec
ExclusiveArch: %{rust_arches}
- rust-bitfield
ExclusiveArch: %{rust_arches}
- rust-bitflags
ExclusiveArch: %{rust_arches}
- rust-bitmaps
ExclusiveArch: %{rust_arches}
- rust-bitreader
ExclusiveArch: %{rust_arches}
- rust-bitstream-io
ExclusiveArch: %{rust_arches}
- rust-bitvec
ExclusiveArch: %{rust_arches}
- rust-blake2
ExclusiveArch: %{rust_arches}
- rust-blobby
ExclusiveArch: %{rust_arches}
- rust-blobby0.1
ExclusiveArch: %{rust_arches}
- rust-block-buffer
ExclusiveArch: %{rust_arches}
- rust-block-buffer0.7
ExclusiveArch: %{rust_arches}
- rust-block-modes
ExclusiveArch: %{rust_arches}
- rust-block-padding
ExclusiveArch: %{rust_arches}
- rust-blocking
ExclusiveArch: %{rust_arches}
- rust-blsctl
ExclusiveArch: %{rust_arches}
- rust-bodhi
ExclusiveArch: %{rust_arches}
- rust-bodhi-cli
ExclusiveArch: %{rust_arches}
- rust-bootupd
ExclusiveArch: x86_64 aarch64
- rust-box_drawing
ExclusiveArch: %{rust_arches}
- rust-boxfnonce
ExclusiveArch: %{rust_arches}
- rust-brev
ExclusiveArch: %{rust_arches}
- rust-brotli
ExclusiveArch: %{rust_arches}
- rust-brotli-decompressor
ExclusiveArch: %{rust_arches}
- rust-brotli-sys
ExclusiveArch: %{rust_arches}
- rust-brotli2
ExclusiveArch: %{rust_arches}
- rust-bstr
ExclusiveArch: %{rust_arches}
- rust-buf-min
ExclusiveArch: %{rust_arches}
- rust-buf_redux
ExclusiveArch: %{rust_arches}
- rust-buffered-reader
ExclusiveArch: %{rust_arches}
- rust-bufsize
ExclusiveArch: %{rust_arches}
- rust-bufstream
ExclusiveArch: %{rust_arches}
- rust-bugreport
ExclusiveArch: %{rust_arches}
- rust-build-env
ExclusiveArch: %{rust_arches}
- rust-build_const
ExclusiveArch: %{rust_arches}
- rust-bumpalo
ExclusiveArch: %{rust_arches}
- rust-byte-tools
ExclusiveArch: %{rust_arches}
- rust-byte-unit
ExclusiveArch: %{rust_arches}
- rust-byte-unit3
ExclusiveArch: %{rust_arches}
- rust-bytecheck
ExclusiveArch: %{rust_arches}
- rust-bytecheck_derive
ExclusiveArch: %{rust_arches}
- rust-bytecount
ExclusiveArch: %{rust_arches}
- rust-bytelines
ExclusiveArch: %{rust_arches}
- rust-bytemuck
ExclusiveArch: %{rust_arches}
- rust-bytemuck_derive
ExclusiveArch: %{rust_arches}
- rust-byteorder
ExclusiveArch: %{rust_arches}
- rust-bytes
ExclusiveArch: %{rust_arches}
- rust-bytes0.4
ExclusiveArch: %{rust_arches}
- rust-bytes0.5
ExclusiveArch: %{rust_arches}
- rust-bytes0.6
ExclusiveArch: %{rust_arches}
- rust-bytesize
ExclusiveArch: %{rust_arches}
- rust-bytestring
ExclusiveArch: %{rust_arches}
- rust-bzip2
ExclusiveArch: %{rust_arches}
- rust-bzip2-sys
ExclusiveArch: %{rust_arches}
- rust-c_vec
ExclusiveArch: %{rust_arches}
- rust-cache-padded
ExclusiveArch: %{rust_arches}
- rust-cairo-rs
ExclusiveArch: %{rust_arches}
- rust-cairo-sys-rs
ExclusiveArch: %{rust_arches}
- rust-calloop
ExclusiveArch: %{rust_arches}
- rust-calloop0.6
ExclusiveArch: %{rust_arches}
- rust-camino
ExclusiveArch: %{rust_arches}
- rust-cap-primitives
ExclusiveArch: %{rust_arches}
- rust-cap-rand
ExclusiveArch: %{rust_arches}
- rust-cap-std
ExclusiveArch: %{rust_arches}
- rust-capnp
ExclusiveArch: %{rust_arches}
- rust-capnp-futures
ExclusiveArch: %{rust_arches}
- rust-capnp-rpc
ExclusiveArch: %{rust_arches}
- rust-caps
ExclusiveArch: %{rust_arches}
- rust-cargo
ExclusiveArch: %{rust_arches}
- rust-cargo-bloat
ExclusiveArch: %{rust_arches}
- rust-cargo-c
ExclusiveArch: %{rust_arches}
- rust-cargo-husky
ExclusiveArch: %{rust_arches}
- rust-cargo-insta
ExclusiveArch: %{rust_arches}
- rust-cargo-platform
ExclusiveArch: %{rust_arches}
- rust-cargo-readme
ExclusiveArch: %{rust_arches}
- rust-cargo_metadata
ExclusiveArch: %{rust_arches}
- rust-case
ExclusiveArch: %{rust_arches}
- rust-cassowary
ExclusiveArch: %{rust_arches}
- rust-cast
ExclusiveArch: %{rust_arches}
- rust-cbindgen
ExclusiveArch: %{rust_arches}
- rust-cc
ExclusiveArch: %{rust_arches}
- rust-cedarwood
ExclusiveArch: %{rust_arches}
- rust-cexpr
ExclusiveArch: %{rust_arches}
- rust-cfg-expr
ExclusiveArch: %{rust_arches}
- rust-cfg-if
ExclusiveArch: %{rust_arches}
- rust-cfg-if0.1
ExclusiveArch: %{rust_arches}
- rust-cgmath
ExclusiveArch: %{rust_arches}
- rust-cgroupfs
ExclusiveArch: %{rust_arches}
- rust-chainerror
ExclusiveArch: %{rust_arches}
- rust-charset
ExclusiveArch: %{rust_arches}
- rust-chbs
ExclusiveArch: %{rust_arches}
- rust-checked_int_cast
ExclusiveArch: %{rust_arches}
- rust-chlorine
ExclusiveArch: %{rust_arches}
- rust-choosier
ExclusiveArch: %{rust_arches}
- rust-chrono
ExclusiveArch: %{rust_arches}
- rust-chrono-humanize
ExclusiveArch: %{rust_arches}
- rust-chrono-tz
ExclusiveArch: %{rust_arches}
- rust-chunked_transfer
ExclusiveArch: %{rust_arches}
- rust-cipher
ExclusiveArch: %{rust_arches}
- rust-clang-ast
ExclusiveArch: %{rust_arches}
- rust-clang-sys
ExclusiveArch: %{rust_arches}
- rust-clap
ExclusiveArch: %{rust_arches}
- rust-clap2
ExclusiveArch: %{rust_arches}
- rust-clap_derive
ExclusiveArch: %{rust_arches}
- rust-claxon
ExclusiveArch: %{rust_arches}
- rust-clicolors-control
ExclusiveArch: %{rust_arches}
- rust-clipboard
ExclusiveArch: %{rust_arches}
- rust-cloudflare-zlib
ExclusiveArch: x86_64 aarch64
- rust-cloudflare-zlib-sys
ExclusiveArch: x86_64 aarch64
- rust-cmake
ExclusiveArch: %{rust_arches}
- rust-codespan-reporting
ExclusiveArch: %{rust_arches}
- rust-codicon
ExclusiveArch: %{rust_arches}
- rust-color-backtrace
ExclusiveArch: %{rust_arches}
- rust-color_quant
ExclusiveArch: %{rust_arches}
- rust-colored
ExclusiveArch: %{rust_arches}
- rust-colored1
ExclusiveArch: %{rust_arches}
- rust-colored_json
ExclusiveArch: %{rust_arches}
- rust-colorful
ExclusiveArch: %{rust_arches}
- rust-compiletest_rs
ExclusiveArch: %{rust_arches}
- rust-comrak
ExclusiveArch: %{rust_arches}
- rust-concurrent-queue
ExclusiveArch: %{rust_arches}
- rust-config
ExclusiveArch: %{rust_arches}
- rust-configparser
ExclusiveArch: %{rust_arches}
- rust-confy
ExclusiveArch: %{rust_arches}
- rust-console
ExclusiveArch: %{rust_arches}
- rust-console0.11
ExclusiveArch: %{rust_arches}
- rust-console0.12
ExclusiveArch: %{rust_arches}
- rust-console0.13
ExclusiveArch: %{rust_arches}
- rust-console0.9
ExclusiveArch: %{rust_arches}
- rust-console_error_panic_hook
ExclusiveArch: %{rust_arches}
- rust-const-cstr
ExclusiveArch: %{rust_arches}
- rust-const-random
ExclusiveArch: %{rust_arches}
- rust-const-random-macro
ExclusiveArch: %{rust_arches}
- rust-const_fn
ExclusiveArch: %{rust_arches}
- rust-constant_time_eq
ExclusiveArch: %{rust_arches}
- rust-content_inspector
ExclusiveArch: %{rust_arches}
- rust-conv
ExclusiveArch: %{rust_arches}
- rust-convert_case
ExclusiveArch: %{rust_arches}
- rust-cookie
ExclusiveArch: %{rust_arches}
- rust-cookie_store
ExclusiveArch: %{rust_arches}
- rust-copydeps
ExclusiveArch: %{rust_arches}
- rust-copyless
ExclusiveArch: %{rust_arches}
- rust-copypasta
ExclusiveArch: %{rust_arches}
- rust-cordic
ExclusiveArch: %{rust_arches}
- rust-coreos-installer
ExclusiveArch: %{rust_arches}
- rust-counted-array
ExclusiveArch: %{rust_arches}
- rust-cpal
ExclusiveArch: %{rust_arches}
- rust-cpio
ExclusiveArch: %{rust_arches}
- rust-cpp_demangle
ExclusiveArch: %{rust_arches}
- rust-cpufeatures
ExclusiveArch: x86_64 aarch64
- rust-cpuid-bool
ExclusiveArch: %{rust_arches}
- rust-cpython
ExclusiveArch: %{rust_arches}
- rust-cranelift-bforest
ExclusiveArch: %{rust_arches}
- rust-cranelift-codegen
ExclusiveArch: %{rust_arches}
- rust-cranelift-codegen-meta
ExclusiveArch: %{rust_arches}
- rust-cranelift-codegen-shared
ExclusiveArch: %{rust_arches}
- rust-cranelift-entity
ExclusiveArch: %{rust_arches}
- rust-cranelift-frontend
ExclusiveArch: %{rust_arches}
- rust-cranelift-native
ExclusiveArch: %{rust_arches}
- rust-cranelift-wasm
ExclusiveArch: %{rust_arches}
- rust-crates-io
ExclusiveArch: %{rust_arches}
- rust-crc
ExclusiveArch: %{rust_arches}
- rust-crc-any
ExclusiveArch: %{rust_arches}
- rust-crc-core
ExclusiveArch: %{rust_arches}
- rust-crc32fast
ExclusiveArch: %{rust_arches}
- rust-criterion
ExclusiveArch: %{rust_arches}
- rust-criterion-plot
ExclusiveArch: %{rust_arches}
- rust-crossbeam
ExclusiveArch: %{rust_arches}
- rust-crossbeam-channel
ExclusiveArch: %{rust_arches}
- rust-crossbeam-channel0.4
ExclusiveArch: %{rust_arches}
- rust-crossbeam-deque
ExclusiveArch: %{rust_arches}
- rust-crossbeam-deque0.7
ExclusiveArch: %{rust_arches}
- rust-crossbeam-epoch
ExclusiveArch: %{rust_arches}
- rust-crossbeam-epoch0.8
ExclusiveArch: %{rust_arches}
- rust-crossbeam-queue
ExclusiveArch: %{rust_arches}
- rust-crossbeam-queue0.2
ExclusiveArch: %{rust_arches}
- rust-crossbeam-utils
ExclusiveArch: %{rust_arches}
- rust-crossbeam-utils0.7
ExclusiveArch: %{rust_arches}
- rust-crossbeam0.7
ExclusiveArch: %{rust_arches}
- rust-crossfont
ExclusiveArch: %{rust_arches}
- rust-crossterm
ExclusiveArch: %{rust_arches}
- rust-crossterm0.17
ExclusiveArch: %{rust_arches}
- rust-crosstermion
ExclusiveArch: %{rust_arches}
- rust-crunchy
ExclusiveArch: %{rust_arches}
- rust-crypto-hash
ExclusiveArch: %{rust_arches}
- rust-crypto-mac
ExclusiveArch: %{rust_arches}
- rust-crypto-mac0.8
ExclusiveArch: %{rust_arches}
- rust-cryptoki
ExclusiveArch: %{rust_arches}
- rust-cryptoki-sys
ExclusiveArch: %{rust_arches}
- rust-cryptovec
ExclusiveArch: %{rust_arches}
- rust-cssparser
ExclusiveArch: %{rust_arches}
- rust-cssparser-macros
ExclusiveArch: %{rust_arches}
- rust-cstr-argument
ExclusiveArch: %{rust_arches}
- rust-csv
ExclusiveArch: %{rust_arches}
- rust-csv-core
ExclusiveArch: %{rust_arches}
- rust-ct-logs
ExclusiveArch: %{rust_arches}
- rust-ctor
ExclusiveArch: %{rust_arches}
- rust-ctr
ExclusiveArch: %{rust_arches}
- rust-ctrlc
ExclusiveArch: %{rust_arches}
- rust-cty
ExclusiveArch: %{rust_arches}
- rust-curl
ExclusiveArch: %{rust_arches}
- rust-curl-sys
ExclusiveArch: %{rust_arches}
- rust-cursive
ExclusiveArch: %{rust_arches}
- rust-cursive_buffered_backend
ExclusiveArch: %{rust_arches}
- rust-cursive_core
ExclusiveArch: %{rust_arches}
- rust-custom_derive
ExclusiveArch: %{rust_arches}
- rust-cxx
ExclusiveArch: %{rust_arches}
- rust-cxx-build
ExclusiveArch: %{rust_arches}
- rust-cxx-gen
ExclusiveArch: %{rust_arches}
- rust-cxxbridge-flags
ExclusiveArch: %{rust_arches}
- rust-cxxbridge-macro
ExclusiveArch: %{rust_arches}
- rust-darling
ExclusiveArch: %{rust_arches}
- rust-darling_core
ExclusiveArch: %{rust_arches}
- rust-darling_macro
ExclusiveArch: %{rust_arches}
- rust-dashmap
ExclusiveArch: %{rust_arches}
- rust-data-encoding
ExclusiveArch: %{rust_arches}
- rust-data-url
ExclusiveArch: %{rust_arches}
- rust-datetime
ExclusiveArch: %{rust_arches}
- rust-dav1d-sys
ExclusiveArch: %{rust_arches}
- rust-dbus
ExclusiveArch: %{rust_arches}
- rust-dbus-codegen
ExclusiveArch: %{rust_arches}
- rust-dbus-crossroads
ExclusiveArch: %{rust_arches}
- rust-dbus-tokio
ExclusiveArch: %{rust_arches}
- rust-dbus-tree
ExclusiveArch: %{rust_arches}
- rust-dbus0.8
ExclusiveArch: %{rust_arches}
- rust-debug-helper
ExclusiveArch: %{rust_arches}
- rust-decimal
ExclusiveArch: %{rust_arches}
- rust-defer-drop
ExclusiveArch: %{rust_arches}
- rust-deflate
ExclusiveArch: %{rust_arches}
- rust-defmac
ExclusiveArch: %{rust_arches}
- rust-delta_e
ExclusiveArch: %{rust_arches}
- rust-derivative
ExclusiveArch: %{rust_arches}
- rust-derive-new
ExclusiveArch: %{rust_arches}
- rust-derive_arbitrary
ExclusiveArch: %{rust_arches}
- rust-derive_arbitrary0.4
ExclusiveArch: %{rust_arches}
- rust-derive_builder
ExclusiveArch: %{rust_arches}
- rust-derive_builder0.9
ExclusiveArch: %{rust_arches}
- rust-derive_builder_core
ExclusiveArch: %{rust_arches}
- rust-derive_builder_core0.9
ExclusiveArch: %{rust_arches}
- rust-derive_builder_macro
ExclusiveArch: %{rust_arches}
- rust-derive_more
ExclusiveArch: %{rust_arches}
- rust-des
ExclusiveArch: %{rust_arches}
- rust-desed
ExclusiveArch: %{rust_arches}
- rust-deunicode
ExclusiveArch: %{rust_arches}
- rust-devicemapper
ExclusiveArch: %{rust_arches}
- rust-dialoguer
ExclusiveArch: %{rust_arches}
- rust-diesel
ExclusiveArch: %{rust_arches}
- rust-diesel_derives
ExclusiveArch: %{rust_arches}
- rust-diesel_migrations
ExclusiveArch: %{rust_arches}
- rust-diff
ExclusiveArch: %{rust_arches}
- rust-difference
ExclusiveArch: %{rust_arches}
- rust-diffus
ExclusiveArch: %{rust_arches}
- rust-diffus-derive
ExclusiveArch: %{rust_arches}
- rust-digest
ExclusiveArch: %{rust_arches}
- rust-digest0.8
ExclusiveArch: %{rust_arches}
- rust-directories
ExclusiveArch: %{rust_arches}
- rust-directories-next
ExclusiveArch: %{rust_arches}
- rust-dirs
ExclusiveArch: %{rust_arches}
- rust-dirs-next
ExclusiveArch: %{rust_arches}
- rust-dirs-sys
ExclusiveArch: %{rust_arches}
- rust-dirs-sys-next
ExclusiveArch: %{rust_arches}
- rust-dirs2
ExclusiveArch: %{rust_arches}
- rust-diskonaut
ExclusiveArch: %{rust_arches}
- rust-dissimilar
ExclusiveArch: %{rust_arches}
- rust-dlib
ExclusiveArch: %{rust_arches}
- rust-dlib0.4
ExclusiveArch: %{rust_arches}
- rust-dlv-list
ExclusiveArch: %{rust_arches}
- rust-dns-lookup
ExclusiveArch: %{rust_arches}
- rust-dns-parser
ExclusiveArch: %{rust_arches}
- rust-doc-comment
ExclusiveArch: %{rust_arches}
- rust-docmatic
ExclusiveArch: %{rust_arches}
- rust-docopt
ExclusiveArch: %{rust_arches}
- rust-dotenv
ExclusiveArch: %{rust_arches}
- rust-downcast-rs
ExclusiveArch: %{rust_arches}
- rust-drg
ExclusiveArch: %{rust_arches}
- rust-dtoa
ExclusiveArch: %{rust_arches}
- rust-dtoa-short
ExclusiveArch: %{rust_arches}
- rust-dua-cli
ExclusiveArch: %{rust_arches}
- rust-duct
ExclusiveArch: %{rust_arches}
- rust-dummy
ExclusiveArch: %{rust_arches}
- rust-dunce
ExclusiveArch: %{rust_arches}
- rust-dutree
ExclusiveArch: %{rust_arches}
- rust-dyn-clone
ExclusiveArch: %{rust_arches}
- rust-easy-cast
ExclusiveArch: %{rust_arches}
- rust-easy-parallel
ExclusiveArch: %{rust_arches}
- rust-edit
ExclusiveArch: %{rust_arches}
- rust-edit-distance
ExclusiveArch: %{rust_arches}
- rust-either
ExclusiveArch: %{rust_arches}
- rust-elasticlunr-rs
ExclusiveArch: %{rust_arches}
- rust-elfcat
ExclusiveArch: %{rust_arches}
- rust-ena
ExclusiveArch: %{rust_arches}
- rust-encode_unicode
ExclusiveArch: %{rust_arches}
- rust-encoding
ExclusiveArch: %{rust_arches}
- rust-encoding-index-japanese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-korean
ExclusiveArch: %{rust_arches}
- rust-encoding-index-simpchinese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-singlebyte
ExclusiveArch: %{rust_arches}
- rust-encoding-index-tradchinese
ExclusiveArch: %{rust_arches}
- rust-encoding_index_tests
ExclusiveArch: %{rust_arches}
- rust-encoding_rs
ExclusiveArch: %{rust_arches}
- rust-encoding_rs_io
ExclusiveArch: %{rust_arches}
- rust-endian-type
ExclusiveArch: %{rust_arches}
- rust-entities
ExclusiveArch: %{rust_arches}
- rust-enum-as-inner
ExclusiveArch: %{rust_arches}
- rust-enum-iterator
ExclusiveArch: %{rust_arches}
- rust-enum-iterator-derive
ExclusiveArch: %{rust_arches}
- rust-enum-map
ExclusiveArch: %{rust_arches}
- rust-enum-map-derive
ExclusiveArch: %{rust_arches}
- rust-enum-repr
ExclusiveArch: %{rust_arches}
- rust-enum_primitive
ExclusiveArch: %{rust_arches}
- rust-enumflags2
ExclusiveArch: %{rust_arches}
- rust-enumflags2_derive
ExclusiveArch: %{rust_arches}
- rust-enumset
ExclusiveArch: %{rust_arches}
- rust-enumset_derive
ExclusiveArch: %{rust_arches}
- rust-env_logger
ExclusiveArch: %{rust_arches}
- rust-env_logger0.4
ExclusiveArch: %{rust_arches}
- rust-env_logger0.5
ExclusiveArch: %{rust_arches}
- rust-env_logger0.6
ExclusiveArch: %{rust_arches}
- rust-env_logger0.7
ExclusiveArch: %{rust_arches}
- rust-environment
ExclusiveArch: %{rust_arches}
- rust-envsubst
ExclusiveArch: %{rust_arches}
- rust-epoll
ExclusiveArch: %{rust_arches}
- rust-erased-serde
ExclusiveArch: %{rust_arches}
- rust-err-derive
ExclusiveArch: %{rust_arches}
- rust-errln
ExclusiveArch: %{rust_arches}
- rust-errno
ExclusiveArch: %{rust_arches}
- rust-error-chain
ExclusiveArch: %{rust_arches}
- rust-escaper
ExclusiveArch: %{rust_arches}
- rust-escargot
ExclusiveArch: %{rust_arches}
- rust-euclid
ExclusiveArch: %{rust_arches}
- rust-event-listener
ExclusiveArch: %{rust_arches}
- rust-exa
ExclusiveArch: %{rust_arches}
- rust-executable-path
ExclusiveArch: %{rust_arches}
- rust-expat-sys
ExclusiveArch: %{rust_arches}
- rust-extend
ExclusiveArch: %{rust_arches}
- rust-extprim
ExclusiveArch: %{rust_arches}
- rust-extprim_literals_macros
ExclusiveArch: %{rust_arches}
- rust-fail
ExclusiveArch: %{rust_arches}
- rust-failure
ExclusiveArch: %{rust_arches}
- rust-failure-tools
ExclusiveArch: %{rust_arches}
- rust-failure_derive
ExclusiveArch: %{rust_arches}
- rust-fake
ExclusiveArch: %{rust_arches}
- rust-fake-simd
ExclusiveArch: %{rust_arches}
- rust-fake_clock
ExclusiveArch: %{rust_arches}
- rust-fallible-iterator
ExclusiveArch: %{rust_arches}
- rust-fallible-streaming-iterator
ExclusiveArch: %{rust_arches}
- rust-fallible_collections
ExclusiveArch: %{rust_arches}
- rust-fancy-regex
ExclusiveArch: %{rust_arches}
- rust-fastrand
ExclusiveArch: %{rust_arches}
- rust-fb_procfs
ExclusiveArch: %{rust_arches}
- rust-fbthrift_codegen_includer_proc_macro
ExclusiveArch: %{rust_arches}
- rust-fd-find
ExclusiveArch: %{rust_arches}
- rust-fd-lock
ExclusiveArch: %{rust_arches}
- rust-fdlimit
ExclusiveArch: %{rust_arches}
- rust-fedora
ExclusiveArch: %{rust_arches}
- rust-fedora-coreos-pinger
ExclusiveArch: %{rust_arches}
- rust-fedora-update-feedback
ExclusiveArch: %{rust_arches}
- rust-feed-rs
ExclusiveArch: %{rust_arches}
- rust-feedbin_api
ExclusiveArch: %{rust_arches}
- rust-feedly_api
ExclusiveArch: %{rust_arches}
- rust-femme
ExclusiveArch: %{rust_arches}
- rust-fern
ExclusiveArch: %{rust_arches}
- rust-fever_api
ExclusiveArch: %{rust_arches}
- rust-ffsend
ExclusiveArch: %{rust_arches}
- rust-ffsend-api
ExclusiveArch: %{rust_arches}
- rust-field-offset
ExclusiveArch: %{rust_arches}
- rust-file-per-thread-logger
ExclusiveArch: %{rust_arches}
- rust-filedescriptor
ExclusiveArch: %{rust_arches}
- rust-filesize
ExclusiveArch: %{rust_arches}
- rust-filetime
ExclusiveArch: %{rust_arches}
- rust-filetreelist
ExclusiveArch: %{rust_arches}
- rust-findshlibs
ExclusiveArch: %{rust_arches}
- rust-fixed
ExclusiveArch: %{rust_arches}
- rust-fixedbitset
ExclusiveArch: %{rust_arches}
- rust-flame
ExclusiveArch: %{rust_arches}
- rust-flate2
ExclusiveArch: %{rust_arches}
- rust-float-cmp
ExclusiveArch: %{rust_arches}
- rust-float-cmp0.6
ExclusiveArch: %{rust_arches}
- rust-float-ord
ExclusiveArch: %{rust_arches}
- rust-flume
ExclusiveArch: %{rust_arches}
- rust-fn-error-context
ExclusiveArch: %{rust_arches}
- rust-fnv
ExclusiveArch: %{rust_arches}
- rust-font-kit
ExclusiveArch: %{rust_arches}
- rust-foreign-types
ExclusiveArch: %{rust_arches}
- rust-foreign-types-macros
ExclusiveArch: %{rust_arches}
- rust-foreign-types-shared
ExclusiveArch: %{rust_arches}
- rust-foreign-types-shared0.1
ExclusiveArch: %{rust_arches}
- rust-foreign-types0.3
ExclusiveArch: %{rust_arches}
- rust-form_urlencoded
ExclusiveArch: %{rust_arches}
- rust-fragile
ExclusiveArch: %{rust_arches}
- rust-freetype
ExclusiveArch: %{rust_arches}
- rust-freetype-rs
ExclusiveArch: %{rust_arches}
- rust-freetype-sys
ExclusiveArch: %{rust_arches}
- rust-fs-set-times
ExclusiveArch: %{rust_arches}
- rust-fs2
ExclusiveArch: %{rust_arches}
- rust-fs_extra
ExclusiveArch: %{rust_arches}
- rust-funty
ExclusiveArch: %{rust_arches}
- rust-fuse
ExclusiveArch: %{rust_arches}
- rust-futf
ExclusiveArch: %{rust_arches}
- rust-futures
ExclusiveArch: %{rust_arches}
- rust-futures-channel
ExclusiveArch: %{rust_arches}
- rust-futures-core
ExclusiveArch: %{rust_arches}
- rust-futures-cpupool
ExclusiveArch: %{rust_arches}
- rust-futures-executor
ExclusiveArch: %{rust_arches}
- rust-futures-io
ExclusiveArch: %{rust_arches}
- rust-futures-lite
ExclusiveArch: %{rust_arches}
- rust-futures-macro
ExclusiveArch: %{rust_arches}
- rust-futures-sink
ExclusiveArch: %{rust_arches}
- rust-futures-task
ExclusiveArch: %{rust_arches}
- rust-futures-test
ExclusiveArch: %{rust_arches}
- rust-futures-timer
ExclusiveArch: %{rust_arches}
- rust-futures-util
ExclusiveArch: %{rust_arches}
- rust-futures0.1
ExclusiveArch: %{rust_arches}
- rust-fuzzy-matcher
ExclusiveArch: %{rust_arches}
- rust-fxhash
ExclusiveArch: %{rust_arches}
- rust-gcsf
ExclusiveArch: %{rust_arches}
- rust-gdk
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf-sys
ExclusiveArch: %{rust_arches}
- rust-gdk-sys
ExclusiveArch: %{rust_arches}
- rust-gdk4
ExclusiveArch: %{rust_arches}
- rust-gdk4-sys
ExclusiveArch: %{rust_arches}
- rust-generic-array
ExclusiveArch: %{rust_arches}
- rust-generic-array0.12
ExclusiveArch: %{rust_arches}
- rust-genmesh
ExclusiveArch: %{rust_arches}
- rust-getch
ExclusiveArch: %{rust_arches}
- rust-gethostname
ExclusiveArch: %{rust_arches}
- rust-getopts
ExclusiveArch: %{rust_arches}
- rust-getrandom
ExclusiveArch: %{rust_arches}
- rust-getrandom0.1
ExclusiveArch: %{rust_arches}
- rust-getset
ExclusiveArch: %{rust_arches}
- rust-gettext-rs
ExclusiveArch: %{rust_arches}
- rust-gettext-sys
ExclusiveArch: %{rust_arches}
- rust-ghash
ExclusiveArch: %{rust_arches}
- rust-ghost
ExclusiveArch: %{rust_arches}
- rust-gif
ExclusiveArch: %{rust_arches}
- rust-gimli
ExclusiveArch: %{rust_arches}
- rust-gio
ExclusiveArch: %{rust_arches}
- rust-gio-sys
ExclusiveArch: %{rust_arches}
- rust-gir-format-check
ExclusiveArch: %{rust_arches}
- rust-git-delta
ExclusiveArch: %{rust_arches}
- rust-git-version
ExclusiveArch: %{rust_arches}
- rust-git-version-macro
ExclusiveArch: %{rust_arches}
- rust-git2
ExclusiveArch: %{rust_arches}
- rust-git2-curl
ExclusiveArch: %{rust_arches}
- rust-gitui
ExclusiveArch: %{rust_arches}
- rust-gl_generator
ExclusiveArch: %{rust_arches}
- rust-glam
ExclusiveArch: %{rust_arches}
- rust-glib
ExclusiveArch: %{rust_arches}
- rust-glib-macros
ExclusiveArch: %{rust_arches}
- rust-glib-sys
ExclusiveArch: %{rust_arches}
- rust-glob
ExclusiveArch: %{rust_arches}
- rust-globset
ExclusiveArch: %{rust_arches}
- rust-globwalk
ExclusiveArch: %{rust_arches}
- rust-glutin
ExclusiveArch: %{rust_arches}
- rust-glutin_egl_sys
ExclusiveArch: %{rust_arches}
- rust-glutin_glx_sys
ExclusiveArch: %{rust_arches}
- rust-gobject-sys
ExclusiveArch: %{rust_arches}
- rust-goblin
ExclusiveArch: %{rust_arches}
- rust-google-drive3-fork
ExclusiveArch: %{rust_arches}
- rust-gptman
ExclusiveArch: %{rust_arches}
- rust-graphene-rs
ExclusiveArch: %{rust_arches}
- rust-graphene-sys
ExclusiveArch: %{rust_arches}
- rust-grep
ExclusiveArch: %{rust_arches}
- rust-grep-cli
ExclusiveArch: %{rust_arches}
- rust-grep-matcher
ExclusiveArch: %{rust_arches}
- rust-grep-pcre2
ExclusiveArch: %{rust_arches}
- rust-grep-printer
ExclusiveArch: %{rust_arches}
- rust-grep-regex
ExclusiveArch: %{rust_arches}
- rust-grep-searcher
ExclusiveArch: %{rust_arches}
- rust-groupable
ExclusiveArch: %{rust_arches}
- rust-gsk4
ExclusiveArch: %{rust_arches}
- rust-gsk4-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video-sys
ExclusiveArch: %{rust_arches}
- rust-gtk
ExclusiveArch: %{rust_arches}
- rust-gtk-macros
ExclusiveArch: %{rust_arches}
- rust-gtk-rs-lgpl-docs
ExclusiveArch: %{rust_arches}
- rust-gtk-sys
ExclusiveArch: %{rust_arches}
- rust-gtk3-macros
ExclusiveArch: %{rust_arches}
- rust-gtk4
ExclusiveArch: %{rust_arches}
- rust-gtk4-macros
ExclusiveArch: %{rust_arches}
- rust-gtk4-sys
ExclusiveArch: %{rust_arches}
- rust-gzip-header
ExclusiveArch: %{rust_arches}
- rust-h2
ExclusiveArch: %{rust_arches}
- rust-h2_0.2
ExclusiveArch: %{rust_arches}
- rust-half
ExclusiveArch: %{rust_arches}
- rust-hamcrest
ExclusiveArch: %{rust_arches}
- rust-hamcrest2
ExclusiveArch: %{rust_arches}
- rust-handlebars
ExclusiveArch: %{rust_arches}
- rust-hashbrown
ExclusiveArch: %{rust_arches}
- rust-hashlink
ExclusiveArch: %{rust_arches}
- rust-headers
ExclusiveArch: %{rust_arches}
- rust-headers-core
ExclusiveArch: %{rust_arches}
- rust-headers-derive
ExclusiveArch: %{rust_arches}
- rust-heapsize
ExclusiveArch: %{rust_arches}
- rust-heatseeker
ExclusiveArch: %{rust_arches}
- rust-heck
ExclusiveArch: %{rust_arches}
- rust-hex
ExclusiveArch: %{rust_arches}
- rust-hex-literal
ExclusiveArch: %{rust_arches}
- rust-hex-literal-impl
ExclusiveArch: %{rust_arches}
- rust-hex-literal0.2
ExclusiveArch: %{rust_arches}
- rust-hexyl
ExclusiveArch: %{rust_arches}
- rust-hkdf
ExclusiveArch: %{rust_arches}
- rust-hmac
ExclusiveArch: %{rust_arches}
- rust-home
ExclusiveArch: %{rust_arches}
- rust-horrorshow
ExclusiveArch: %{rust_arches}
- rust-hostname
ExclusiveArch: %{rust_arches}
- rust-hostname-validator
ExclusiveArch: %{rust_arches}
- rust-hound
ExclusiveArch: %{rust_arches}
- rust-html2pango
ExclusiveArch: %{rust_arches}
- rust-html5ever
ExclusiveArch: %{rust_arches}
- rust-http
ExclusiveArch: %{rust_arches}
- rust-http-body
ExclusiveArch: %{rust_arches}
- rust-http-body0.3
ExclusiveArch: %{rust_arches}
- rust-http0.1
ExclusiveArch: %{rust_arches}
- rust-httparse
ExclusiveArch: %{rust_arches}
- rust-httpdate
ExclusiveArch: %{rust_arches}
- rust-human-sort
ExclusiveArch: %{rust_arches}
- rust-humansize
ExclusiveArch: %{rust_arches}
- rust-humantime
ExclusiveArch: %{rust_arches}
- rust-humantime-serde
ExclusiveArch: %{rust_arches}
- rust-humantime1
ExclusiveArch: %{rust_arches}
- rust-hyper
ExclusiveArch: %{rust_arches}
- rust-hyper-native-tls
ExclusiveArch: %{rust_arches}
- rust-hyper-rustls
ExclusiveArch: %{rust_arches}
- rust-hyper-staticfile
ExclusiveArch: %{rust_arches}
- rust-hyper-tls
ExclusiveArch: %{rust_arches}
- rust-hyper-tls0.4
ExclusiveArch: %{rust_arches}
- rust-hyper0.10
ExclusiveArch: %{rust_arches}
- rust-hyper0.13
ExclusiveArch: %{rust_arches}
- rust-hyperfine
ExclusiveArch: %{rust_arches}
- rust-i3ipc
ExclusiveArch: %{rust_arches}
- rust-id_tree
ExclusiveArch: %{rust_arches}
- rust-ident_case
ExclusiveArch: %{rust_arches}
- rust-idna
ExclusiveArch: %{rust_arches}
- rust-idna0.1
ExclusiveArch: %{rust_arches}
- rust-ignore
ExclusiveArch: %{rust_arches}
- rust-im-rc
ExclusiveArch: %{rust_arches}
- rust-image
ExclusiveArch: %{rust_arches}
- rust-image-roll
ExclusiveArch: %{rust_arches}
- rust-imgref
ExclusiveArch: %{rust_arches}
- rust-imgui
ExclusiveArch: %{rust_arches}
- rust-imgui-sys
ExclusiveArch: %{rust_arches}
- rust-imgui-winit-support
ExclusiveArch: %{rust_arches}
- rust-indexmap
ExclusiveArch: %{rust_arches}
- rust-indicatif
ExclusiveArch: %{rust_arches}
- rust-indoc
ExclusiveArch: %{rust_arches}
- rust-inflate
ExclusiveArch: %{rust_arches}
- rust-inotify
ExclusiveArch: %{rust_arches}
- rust-inotify-sys
ExclusiveArch: %{rust_arches}
- rust-input_buffer
ExclusiveArch: %{rust_arches}
- rust-insta
ExclusiveArch: %{rust_arches}
- rust-instant
ExclusiveArch: %{rust_arches}
- rust-interpolate_name
ExclusiveArch: %{rust_arches}
- rust-intervaltree
ExclusiveArch: %{rust_arches}
- rust-invalidstring
ExclusiveArch: %{rust_arches}
- rust-inventory
ExclusiveArch: %{rust_arches}
- rust-inventory-impl
ExclusiveArch: %{rust_arches}
- rust-io-lifetimes
ExclusiveArch: %{rust_arches}
- rust-ioctl-rs
ExclusiveArch: %{rust_arches}
- rust-iocuddle
ExclusiveArch: %{rust_arches}
- rust-iovec
ExclusiveArch: %{rust_arches}
- rust-ipnet
ExclusiveArch: %{rust_arches}
- rust-ipnetwork
ExclusiveArch: %{rust_arches}
- rust-iron
ExclusiveArch: %{rust_arches}
- rust-isahc
ExclusiveArch: %{rust_arches}
- rust-iso8601
ExclusiveArch: %{rust_arches}
- rust-iter-read
ExclusiveArch: %{rust_arches}
- rust-itertools
ExclusiveArch: %{rust_arches}
- rust-itertools-num
ExclusiveArch: %{rust_arches}
- rust-itertools0.8
ExclusiveArch: %{rust_arches}
- rust-itertools0.9
ExclusiveArch: %{rust_arches}
- rust-itoa
ExclusiveArch: %{rust_arches}
- rust-ivf
ExclusiveArch: %{rust_arches}
- rust-javascriptcore-rs
ExclusiveArch: %{rust_arches}
- rust-javascriptcore-rs-sys
ExclusiveArch: %{rust_arches}
- rust-jetscii
ExclusiveArch: %{rust_arches}
- rust-jieba-rs
ExclusiveArch: %{rust_arches}
- rust-jobserver
ExclusiveArch: %{rust_arches}
- rust-jpeg-decoder
ExclusiveArch: %{rust_arches}
- rust-jql
ExclusiveArch: %{rust_arches}
- rust-js-sys
ExclusiveArch: %{rust_arches}
- rust-js_int
ExclusiveArch: %{rust_arches}
- rust-json
ExclusiveArch: %{rust_arches}
- rust-just
ExclusiveArch: %{rust_arches}
- rust-jwalk
ExclusiveArch: %{rust_arches}
- rust-k9
ExclusiveArch: %{rust_arches}
- rust-keccak
ExclusiveArch: %{rust_arches}
- rust-khronos_api
ExclusiveArch: %{rust_arches}
- rust-kstring
ExclusiveArch: %{rust_arches}
- rust-kv-log-macro
ExclusiveArch: %{rust_arches}
- rust-lab
ExclusiveArch: %{rust_arches}
- rust-lalrpop
ExclusiveArch: %{rust_arches}
- rust-lalrpop-util
ExclusiveArch: %{rust_arches}
- rust-language-tags
ExclusiveArch: %{rust_arches}
- rust-lazy-init
ExclusiveArch: %{rust_arches}
- rust-lazy_static
ExclusiveArch: %{rust_arches}
- rust-lazycell
ExclusiveArch: %{rust_arches}
- rust-leb128
ExclusiveArch: %{rust_arches}
- rust-lewton
ExclusiveArch: %{rust_arches}
- rust-lexical-core
ExclusiveArch: %{rust_arches}
- rust-lexiclean
ExclusiveArch: %{rust_arches}
- rust-libbpf-cargo
ExclusiveArch: %{rust_arches}
- rust-libbpf-rs
ExclusiveArch: %{rust_arches}
- rust-libbpf-sys
ExclusiveArch: %{rust_arches}
- rust-libc
ExclusiveArch: %{rust_arches}
- rust-libcryptsetup-rs
ExclusiveArch: %{rust_arches}
- rust-libcryptsetup-rs-sys
ExclusiveArch: %{rust_arches}
- rust-libdbus-sys
ExclusiveArch: %{rust_arches}
- rust-libdeflate-sys
ExclusiveArch: %{rust_arches}
- rust-libdeflater
ExclusiveArch: %{rust_arches}
- rust-libflate
ExclusiveArch: %{rust_arches}
- rust-libflate_lz77
ExclusiveArch: %{rust_arches}
- rust-libgit2-sys
ExclusiveArch: %{rust_arches}
- rust-libhandy
ExclusiveArch: %{rust_arches}
- rust-libhandy-sys
ExclusiveArch: %{rust_arches}
- rust-libloading
ExclusiveArch: %{rust_arches}
- rust-libloading0.6
ExclusiveArch: %{rust_arches}
- rust-libm
ExclusiveArch: %{rust_arches}
- rust-libmount
ExclusiveArch: %{rust_arches}
- rust-libnotcurses-sys
ExclusiveArch: %{rust_arches}
- rust-liboverdrop
ExclusiveArch: %{rust_arches}
- rust-libpulse-binding
ExclusiveArch: %{rust_arches}
- rust-libpulse-sys
ExclusiveArch: %{rust_arches}
- rust-libslirp
ExclusiveArch: %{rust_arches}
- rust-libslirp-sys
ExclusiveArch: %{rust_arches}
- rust-libsqlite3-sys
ExclusiveArch: %{rust_arches}
- rust-libssh2-sys
ExclusiveArch: %{rust_arches}
- rust-libsystemd
ExclusiveArch: %{rust_arches}
- rust-libsystemd-sys
ExclusiveArch: %{rust_arches}
- rust-libudev
ExclusiveArch: %{rust_arches}
- rust-libudev-sys
ExclusiveArch: %{rust_arches}
- rust-libwebp
ExclusiveArch: %{rust_arches}
- rust-libwebp-sys2
ExclusiveArch: %{rust_arches}
- rust-libxml
ExclusiveArch: %{rust_arches}
- rust-libz-sys
ExclusiveArch: %{rust_arches}
- rust-line-wrap
ExclusiveArch: %{rust_arches}
- rust-line_drawing
ExclusiveArch: %{rust_arches}
- rust-link-cplusplus
ExclusiveArch: %{rust_arches}
- rust-linked-hash-map
ExclusiveArch: %{rust_arches}
- rust-linkify
ExclusiveArch: %{rust_arches}
- rust-lipsum
ExclusiveArch: %{rust_arches}
- rust-liquid
ExclusiveArch: %{rust_arches}
- rust-liquid-core
ExclusiveArch: %{rust_arches}
- rust-liquid-derive
ExclusiveArch: %{rust_arches}
- rust-liquid-lib
ExclusiveArch: %{rust_arches}
- rust-listenfd
ExclusiveArch: %{rust_arches}
- rust-lmdb
ExclusiveArch: %{rust_arches}
- rust-lmdb-sys
ExclusiveArch: %{rust_arches}
- rust-locale
ExclusiveArch: %{rust_arches}
- rust-locale_config
ExclusiveArch: %{rust_arches}
- rust-lock_api
ExclusiveArch: %{rust_arches}
- rust-lockfree
ExclusiveArch: %{rust_arches}
- rust-log
ExclusiveArch: %{rust_arches}
- rust-log-mdc
ExclusiveArch: %{rust_arches}
- rust-log-panics
ExclusiveArch: %{rust_arches}
- rust-log0.3
ExclusiveArch: %{rust_arches}
- rust-log4rs
ExclusiveArch: %{rust_arches}
- rust-loggerv
ExclusiveArch: %{rust_arches}
- rust-loopdev
ExclusiveArch: %{rust_arches}
- rust-lru-cache
ExclusiveArch: %{rust_arches}
- rust-lru_time_cache
ExclusiveArch: %{rust_arches}
- rust-lscolors
ExclusiveArch: %{rust_arches}
- rust-lsd
ExclusiveArch: %{rust_arches}
- rust-lzma-sys
ExclusiveArch: %{rust_arches}
- rust-lzw
ExclusiveArch: %{rust_arches}
- rust-mac
ExclusiveArch: %{rust_arches}
- rust-macro-attr
ExclusiveArch: %{rust_arches}
- rust-macroquad_macro
ExclusiveArch: %{rust_arches}
- rust-magic-crypt
ExclusiveArch: %{rust_arches}
- rust-maildir
ExclusiveArch: %{rust_arches}
- rust-mailparse
ExclusiveArch: %{rust_arches}
- rust-man
ExclusiveArch: %{rust_arches}
- rust-maplit
ExclusiveArch: %{rust_arches}
- rust-markup5ever
ExclusiveArch: %{rust_arches}
- rust-markup5ever_rcdom
ExclusiveArch: %{rust_arches}
- rust-match_cfg
ExclusiveArch: %{rust_arches}
- rust-matches
ExclusiveArch: %{rust_arches}
- rust-matrixcompare
ExclusiveArch: %{rust_arches}
- rust-matrixcompare-core
ExclusiveArch: %{rust_arches}
- rust-matrixcompare-mock
ExclusiveArch: %{rust_arches}
- rust-matrixmultiply
ExclusiveArch: %{rust_arches}
- rust-maxminddb
ExclusiveArch: %{rust_arches}
- rust-maybe-owned
ExclusiveArch: %{rust_arches}
- rust-maybe-uninit
ExclusiveArch: %{rust_arches}
- rust-mbox
ExclusiveArch: %{rust_arches}
- rust-mbrman
ExclusiveArch: %{rust_arches}
- rust-md-5
ExclusiveArch: %{rust_arches}
- rust-md5
ExclusiveArch: %{rust_arches}
- rust-mdl
ExclusiveArch: %{rust_arches}
- rust-memchr
ExclusiveArch: %{rust_arches}
- rust-memmap
ExclusiveArch: %{rust_arches}
- rust-memmap2
ExclusiveArch: %{rust_arches}
- rust-memmap2_0.1
ExclusiveArch: %{rust_arches}
- rust-memoffset
ExclusiveArch: %{rust_arches}
- rust-memoffset0.5
ExclusiveArch: %{rust_arches}
- rust-memsec
ExclusiveArch: %{rust_arches}
- rust-metadeps
ExclusiveArch: %{rust_arches}
- rust-migrations_internals
ExclusiveArch: %{rust_arches}
- rust-migrations_macros
ExclusiveArch: %{rust_arches}
- rust-mime
ExclusiveArch: %{rust_arches}
- rust-mime-sniffer
ExclusiveArch: %{rust_arches}
- rust-mime0.2
ExclusiveArch: %{rust_arches}
- rust-mime_guess
ExclusiveArch: %{rust_arches}
- rust-mime_guess1
ExclusiveArch: %{rust_arches}
- rust-miniflux_api
ExclusiveArch: %{rust_arches}
- rust-minify-html
ExclusiveArch: %{rust_arches}
- rust-minimp3
ExclusiveArch: %{rust_arches}
- rust-minimp3-sys
ExclusiveArch: %{rust_arches}
- rust-miniz-sys
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide0.3
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide_c_api
ExclusiveArch: %{rust_arches}
- rust-mint
ExclusiveArch: %{rust_arches}
- rust-mio
ExclusiveArch: %{rust_arches}
- rust-mio-extras
ExclusiveArch: %{rust_arches}
- rust-mio-uds
ExclusiveArch: %{rust_arches}
- rust-mio0.6
ExclusiveArch: %{rust_arches}
- rust-mktemp
ExclusiveArch: %{rust_arches}
- rust-mnt
ExclusiveArch: %{rust_arches}
- rust-mockito
ExclusiveArch: %{rust_arches}
- rust-modifier
ExclusiveArch: %{rust_arches}
- rust-more-asserts
ExclusiveArch: %{rust_arches}
- rust-mp4parse
ExclusiveArch: %{rust_arches}
- rust-msgbox
ExclusiveArch: %{rust_arches}
- rust-muldiv
ExclusiveArch: %{rust_arches}
- rust-multimap
ExclusiveArch: %{rust_arches}
- rust-multipart
ExclusiveArch: %{rust_arches}
- rust-mustache
ExclusiveArch: %{rust_arches}
- rust-nalgebra
ExclusiveArch: %{rust_arches}
- rust-nalgebra-macros
ExclusiveArch: %{rust_arches}
- rust-nasm-rs
ExclusiveArch: %{rust_arches}
- rust-native-tls
ExclusiveArch: %{rust_arches}
- rust-natord
ExclusiveArch: %{rust_arches}
- rust-navi
ExclusiveArch: %{rust_arches}
- rust-nb-connect
ExclusiveArch: %{rust_arches}
- rust-ncurses
ExclusiveArch: %{rust_arches}
- rust-net2
ExclusiveArch: %{rust_arches}
- rust-netlink-packet-core
ExclusiveArch: %{rust_arches}
- rust-netlink-packet-route
ExclusiveArch: %{rust_arches}
- rust-netlink-packet-utils
ExclusiveArch: %{rust_arches}
- rust-netlink-proto
ExclusiveArch: %{rust_arches}
- rust-netlink-sys
ExclusiveArch: %{rust_arches}
- rust-netmap_sys
ExclusiveArch: %{rust_arches}
- rust-nettle
ExclusiveArch: %{rust_arches}
- rust-nettle-sys
ExclusiveArch: %{rust_arches}
- rust-new_debug_unreachable
ExclusiveArch: %{rust_arches}
- rust-news-flash
ExclusiveArch: %{rust_arches}
- rust-newsblur_api
ExclusiveArch: %{rust_arches}
- rust-newtype_derive
ExclusiveArch: %{rust_arches}
- rust-nibble_vec
ExclusiveArch: %{rust_arches}
- rust-nickel
ExclusiveArch: %{rust_arches}
- rust-nix
ExclusiveArch: %{rust_arches}
- rust-nix0.14
ExclusiveArch: %{rust_arches}
- rust-nix0.17
ExclusiveArch: %{rust_arches}
- rust-nix0.18
ExclusiveArch: %{rust_arches}
- rust-nix0.20
ExclusiveArch: %{rust_arches}
- rust-no-panic
ExclusiveArch: %{rust_arches}
- rust-nodrop
ExclusiveArch: %{rust_arches}
- rust-nom
ExclusiveArch: %{rust_arches}
- rust-nom4
ExclusiveArch: %{rust_arches}
- rust-nom5
ExclusiveArch: %{rust_arches}
- rust-noop_proc_macro
ExclusiveArch: %{rust_arches}
- rust-normalize-line-endings
ExclusiveArch: %{rust_arches}
- rust-notify
ExclusiveArch: %{rust_arches}
- rust-notify-rust
ExclusiveArch: %{rust_arches}
- rust-num
ExclusiveArch: %{rust_arches}
- rust-num-bigint
ExclusiveArch: %{rust_arches}
- rust-num-bigint-dig
ExclusiveArch: %{rust_arches}
- rust-num-bigint0.3
ExclusiveArch: %{rust_arches}
- rust-num-complex
ExclusiveArch: %{rust_arches}
- rust-num-complex0.3
ExclusiveArch: %{rust_arches}
- rust-num-derive
ExclusiveArch: %{rust_arches}
- rust-num-integer
ExclusiveArch: %{rust_arches}
- rust-num-iter
ExclusiveArch: %{rust_arches}
- rust-num-rational
ExclusiveArch: %{rust_arches}
- rust-num-rational0.3
ExclusiveArch: %{rust_arches}
- rust-num-traits
ExclusiveArch: %{rust_arches}
- rust-num-traits0.1
ExclusiveArch: %{rust_arches}
- rust-num0.3
ExclusiveArch: %{rust_arches}
- rust-num_cpus
ExclusiveArch: %{rust_arches}
- rust-num_enum
ExclusiveArch: %{rust_arches}
- rust-num_enum_derive
ExclusiveArch: %{rust_arches}
- rust-number_prefix
ExclusiveArch: %{rust_arches}
- rust-numtoa
ExclusiveArch: %{rust_arches}
- rust-oauth2
ExclusiveArch: %{rust_arches}
- rust-obfstr
ExclusiveArch: %{rust_arches}
- rust-obj
ExclusiveArch: %{rust_arches}
- rust-object
ExclusiveArch: %{rust_arches}
- rust-odds
ExclusiveArch: %{rust_arches}
- rust-ogg
ExclusiveArch: %{rust_arches}
- rust-oid
ExclusiveArch: %{rust_arches}
- rust-once_cell
ExclusiveArch: %{rust_arches}
- rust-onig
ExclusiveArch: %{rust_arches}
- rust-onig_sys
ExclusiveArch: %{rust_arches}
- rust-oorandom
ExclusiveArch: %{rust_arches}
- rust-opaque-debug
ExclusiveArch: %{rust_arches}
- rust-open
ExclusiveArch: %{rust_arches}
- rust-openat
ExclusiveArch: %{rust_arches}
- rust-openat-ext
ExclusiveArch: %{rust_arches}
- rust-opener
ExclusiveArch: %{rust_arches}
- rust-openssh-keys
ExclusiveArch: %{rust_arches}
- rust-openssl
ExclusiveArch: %{rust_arches}
- rust-openssl-probe
ExclusiveArch: %{rust_arches}
- rust-openssl-sys
ExclusiveArch: %{rust_arches}
- rust-opml
ExclusiveArch: %{rust_arches}
- rust-ord_subset
ExclusiveArch: %{rust_arches}
- rust-ordered-float
ExclusiveArch: %{rust_arches}
- rust-ordered-multimap
ExclusiveArch: %{rust_arches}
- rust-os_info
ExclusiveArch: %{rust_arches}
- rust-os_pipe
ExclusiveArch: %{rust_arches}
- rust-os_str_bytes
ExclusiveArch: %{rust_arches}
- rust-osmesa-sys
ExclusiveArch: %{rust_arches}
- rust-osstrtools
ExclusiveArch: %{rust_arches}
- rust-ostree
ExclusiveArch: %{rust_arches}
- rust-ostree-sys
ExclusiveArch: %{rust_arches}
- rust-ouroboros
ExclusiveArch: %{rust_arches}
- rust-ouroboros_macro
ExclusiveArch: %{rust_arches}
- rust-owned-alloc
ExclusiveArch: %{rust_arches}
- rust-owned_ttf_parser
ExclusiveArch: %{rust_arches}
- rust-owning_ref
ExclusiveArch: %{rust_arches}
- rust-oxipng
ExclusiveArch: %{rust_arches}
- rust-packaging
ExclusiveArch: %{rust_arches}
- rust-pad
ExclusiveArch: %{rust_arches}
- rust-page_size
ExclusiveArch: %{rust_arches}
- rust-pager
ExclusiveArch: %{rust_arches}
- rust-palette
ExclusiveArch: %{rust_arches}
- rust-palette_derive
ExclusiveArch: %{rust_arches}
- rust-pam
ExclusiveArch: %{rust_arches}
- rust-pam-client
ExclusiveArch: %{rust_arches}
- rust-pam-sys
ExclusiveArch: %{rust_arches}
- rust-pancurses
ExclusiveArch: %{rust_arches}
- rust-pango
ExclusiveArch: %{rust_arches}
- rust-pango-sys
ExclusiveArch: %{rust_arches}
- rust-pangocairo
ExclusiveArch: %{rust_arches}
- rust-pangocairo-sys
ExclusiveArch: %{rust_arches}
- rust-parity-wasm
ExclusiveArch: %{rust_arches}
- rust-parking
ExclusiveArch: %{rust_arches}
- rust-parking_lot
ExclusiveArch: %{rust_arches}
- rust-parking_lot_core
ExclusiveArch: %{rust_arches}
- rust-parse-zoneinfo
ExclusiveArch: %{rust_arches}
- rust-parse_cfg
ExclusiveArch: %{rust_arches}
- rust-parsec-client
ExclusiveArch: %{rust_arches}
- rust-parsec-interface
ExclusiveArch: %{rust_arches}
- rust-partial-io
ExclusiveArch: %{rust_arches}
- rust-partition-identity
ExclusiveArch: %{rust_arches}
- rust-paste
ExclusiveArch: %{rust_arches}
- rust-paste-impl
ExclusiveArch: %{rust_arches}
- rust-path-absolutize
ExclusiveArch: %{rust_arches}
- rust-path-dedot
ExclusiveArch: %{rust_arches}
- rust-path-slash
ExclusiveArch: %{rust_arches}
- rust-pathdiff
ExclusiveArch: %{rust_arches}
- rust-pathfinder_geometry
ExclusiveArch: %{rust_arches}
- rust-pathfinder_simd
ExclusiveArch: %{rust_arches}
- rust-pbr
ExclusiveArch: %{rust_arches}
- rust-pcap
ExclusiveArch: %{rust_arches}
- rust-pcre2
ExclusiveArch: %{rust_arches}
- rust-pcre2-sys
ExclusiveArch: %{rust_arches}
- rust-peeking_take_while
ExclusiveArch: %{rust_arches}
- rust-peg
ExclusiveArch: %{rust_arches}
- rust-peg-macros
ExclusiveArch: %{rust_arches}
- rust-peg-runtime
ExclusiveArch: %{rust_arches}
- rust-peg0.5
ExclusiveArch: %{rust_arches}
- rust-pem
ExclusiveArch: %{rust_arches}
- rust-percent-encoding
ExclusiveArch: %{rust_arches}
- rust-percent-encoding1
ExclusiveArch: %{rust_arches}
- rust-peresil
ExclusiveArch: %{rust_arches}
- rust-permutate
ExclusiveArch: %{rust_arches}
- rust-permutohedron
ExclusiveArch: %{rust_arches}
- rust-pest
ExclusiveArch: %{rust_arches}
- rust-pest_derive
ExclusiveArch: %{rust_arches}
- rust-pest_generator
ExclusiveArch: %{rust_arches}
- rust-pest_meta
ExclusiveArch: %{rust_arches}
- rust-petgraph
ExclusiveArch: %{rust_arches}
- rust-phf
ExclusiveArch: %{rust_arches}
- rust-phf0.7
ExclusiveArch: %{rust_arches}
- rust-phf_codegen
ExclusiveArch: %{rust_arches}
- rust-phf_codegen0.7
ExclusiveArch: %{rust_arches}
- rust-phf_generator
ExclusiveArch: %{rust_arches}
- rust-phf_generator0.7
ExclusiveArch: %{rust_arches}
- rust-phf_macros
ExclusiveArch: %{rust_arches}
- rust-phf_macros0.7
ExclusiveArch: %{rust_arches}
- rust-phf_shared
ExclusiveArch: %{rust_arches}
- rust-phf_shared0.7
ExclusiveArch: %{rust_arches}
- rust-picky-asn1
ExclusiveArch: %{rust_arches}
- rust-picky-asn1-der
ExclusiveArch: %{rust_arches}
- rust-picky-asn1-x509
ExclusiveArch: %{rust_arches}
- rust-pico-args
ExclusiveArch: %{rust_arches}
- rust-pin-project
ExclusiveArch: %{rust_arches}
- rust-pin-project-internal
ExclusiveArch: %{rust_arches}
- rust-pin-project-internal0.4
ExclusiveArch: %{rust_arches}
- rust-pin-project-lite
ExclusiveArch: %{rust_arches}
- rust-pin-project-lite0.1
ExclusiveArch: %{rust_arches}
- rust-pin-project0.4
ExclusiveArch: %{rust_arches}
- rust-pin-utils
ExclusiveArch: %{rust_arches}
- rust-pipe
ExclusiveArch: %{rust_arches}
- rust-piper
ExclusiveArch: %{rust_arches}
- rust-pkcs11
ExclusiveArch: %{rust_arches}
- rust-pkg-config
ExclusiveArch: %{rust_arches}
- rust-plain
ExclusiveArch: %{rust_arches}
- rust-platform-dirs
ExclusiveArch: %{rust_arches}
- rust-platforms
ExclusiveArch: %{rust_arches}
- rust-pleaser
ExclusiveArch: %{rust_arches}
- rust-plist
ExclusiveArch: %{rust_arches}
- rust-plotters
ExclusiveArch: %{rust_arches}
- rust-plotters-backend
ExclusiveArch: %{rust_arches}
- rust-plotters-bitmap
ExclusiveArch: %{rust_arches}
- rust-plotters-svg
ExclusiveArch: %{rust_arches}
- rust-plugin
ExclusiveArch: %{rust_arches}
- rust-pnet_base
ExclusiveArch: %{rust_arches}
- rust-pnet_datalink
ExclusiveArch: %{rust_arches}
- rust-pnet_sys
ExclusiveArch: %{rust_arches}
- rust-png
ExclusiveArch: %{rust_arches}
- rust-podio
ExclusiveArch: %{rust_arches}
- rust-polling
ExclusiveArch: %{rust_arches}
- rust-polyval
ExclusiveArch: %{rust_arches}
- rust-pom
ExclusiveArch: %{rust_arches}
- rust-pommes
ExclusiveArch: %{rust_arches}
- rust-posish
ExclusiveArch: %{rust_arches}
- rust-ppv-lite86
ExclusiveArch: %{rust_arches}
- rust-pq-sys
ExclusiveArch: %{rust_arches}
- rust-precomputed-hash
ExclusiveArch: %{rust_arches}
- rust-predicates
ExclusiveArch: %{rust_arches}
- rust-predicates-core
ExclusiveArch: %{rust_arches}
- rust-predicates-tree
ExclusiveArch: %{rust_arches}
- rust-pretty-git-prompt
ExclusiveArch: %{rust_arches}
- rust-pretty-hex
ExclusiveArch: %{rust_arches}
- rust-pretty_assertions
ExclusiveArch: %{rust_arches}
- rust-pretty_assertions0.6
ExclusiveArch: %{rust_arches}
- rust-pretty_env_logger
ExclusiveArch: %{rust_arches}
- rust-prettytable-rs
ExclusiveArch: %{rust_arches}
- rust-proc-macro-crate
ExclusiveArch: %{rust_arches}
- rust-proc-macro-crate0.1
ExclusiveArch: %{rust_arches}
- rust-proc-macro-error
ExclusiveArch: %{rust_arches}
- rust-proc-macro-error-attr
ExclusiveArch: %{rust_arches}
- rust-proc-macro-hack
ExclusiveArch: %{rust_arches}
- rust-proc-macro-nested
ExclusiveArch: %{rust_arches}
- rust-proc-macro2
ExclusiveArch: %{rust_arches}
- rust-proc-macro2-0.4
ExclusiveArch: %{rust_arches}
- rust-proc-mounts
ExclusiveArch: %{rust_arches}
- rust-proc-quote
ExclusiveArch: %{rust_arches}
- rust-proc-quote-impl
ExclusiveArch: %{rust_arches}
- rust-procedural-masquerade
ExclusiveArch: %{rust_arches}
- rust-process_control
ExclusiveArch: %{rust_arches}
- rust-process_path
ExclusiveArch: %{rust_arches}
- rust-procfs
ExclusiveArch: %{rust_arches}
- rust-procs
ExclusiveArch: %{rust_arches}
- rust-progress-streams
ExclusiveArch: %{rust_arches}
- rust-prometheus
ExclusiveArch: %{rust_arches}
- rust-proptest
ExclusiveArch: %{rust_arches}
- rust-proptest-derive
ExclusiveArch: %{rust_arches}
- rust-proptest0.10
ExclusiveArch: %{rust_arches}
- rust-prost
ExclusiveArch: %{rust_arches}
- rust-prost-build
ExclusiveArch: %{rust_arches}
- rust-prost-derive
ExclusiveArch: %{rust_arches}
- rust-prost-types
ExclusiveArch: %{rust_arches}
- rust-protobuf
ExclusiveArch: %{rust_arches}
- rust-protobuf-codegen
ExclusiveArch: %{rust_arches}
- rust-protobuf-codegen-pure
ExclusiveArch: %{rust_arches}
- rust-protoc
ExclusiveArch: %{rust_arches}
- rust-protoc-rust
ExclusiveArch: %{rust_arches}
- rust-psa-crypto
ExclusiveArch: %{rust_arches}
- rust-psa-crypto-sys
ExclusiveArch: %{rust_arches}
- rust-psd
ExclusiveArch: %{rust_arches}
- rust-psm
ExclusiveArch: %{rust_arches}
- rust-psutil
ExclusiveArch: %{rust_arches}
- rust-ptr_meta
ExclusiveArch: %{rust_arches}
- rust-ptr_meta_derive
ExclusiveArch: %{rust_arches}
- rust-publicsuffix
ExclusiveArch: %{rust_arches}
- rust-pulldown-cmark
ExclusiveArch: %{rust_arches}
- rust-pulse
ExclusiveArch: %{rust_arches}
- rust-pure-rust-locales
ExclusiveArch: %{rust_arches}
- rust-pyo3
ExclusiveArch: %{rust_arches}
- rust-pyo3-macros
ExclusiveArch: %{rust_arches}
- rust-pyo3-macros-backend
ExclusiveArch: %{rust_arches}
- rust-python3-sys
ExclusiveArch: %{rust_arches}
- rust-qr2term
ExclusiveArch: %{rust_arches}
- rust-qrcode
ExclusiveArch: %{rust_arches}
- rust-qstring
ExclusiveArch: %{rust_arches}
- rust-quad-rand
ExclusiveArch: %{rust_arches}
- rust-quick-error
ExclusiveArch: %{rust_arches}
- rust-quick-error1
ExclusiveArch: %{rust_arches}
- rust-quick-xml
ExclusiveArch: %{rust_arches}
- rust-quick-xml0.20
ExclusiveArch: %{rust_arches}
- rust-quickcheck
ExclusiveArch: %{rust_arches}
- rust-quickcheck0.6
ExclusiveArch: %{rust_arches}
- rust-quickcheck0.9
ExclusiveArch: %{rust_arches}
- rust-quickcheck_macros
ExclusiveArch: %{rust_arches}
- rust-quickersort
ExclusiveArch: %{rust_arches}
- rust-quote
ExclusiveArch: %{rust_arches}
- rust-quote0.3
ExclusiveArch: %{rust_arches}
- rust-quote0.6
ExclusiveArch: %{rust_arches}
- rust-quoted_printable
ExclusiveArch: %{rust_arches}
- rust-r2d2
ExclusiveArch: %{rust_arches}
- rust-radium
ExclusiveArch: %{rust_arches}
- rust-radix64
ExclusiveArch: %{rust_arches}
- rust-radix_trie
ExclusiveArch: %{rust_arches}
- rust-rand
ExclusiveArch: %{rust_arches}
- rust-rand0.4
ExclusiveArch: %{rust_arches}
- rust-rand0.5
ExclusiveArch: %{rust_arches}
- rust-rand0.6
ExclusiveArch: %{rust_arches}
- rust-rand0.7
ExclusiveArch: %{rust_arches}
- rust-rand_chacha
ExclusiveArch: %{rust_arches}
- rust-rand_chacha0.1
ExclusiveArch: %{rust_arches}
- rust-rand_chacha0.2
ExclusiveArch: %{rust_arches}
- rust-rand_core
ExclusiveArch: %{rust_arches}
- rust-rand_core0.3
ExclusiveArch: %{rust_arches}
- rust-rand_core0.4
ExclusiveArch: %{rust_arches}
- rust-rand_core0.5
ExclusiveArch: %{rust_arches}
- rust-rand_distr
ExclusiveArch: %{rust_arches}
- rust-rand_distr0.2
ExclusiveArch: %{rust_arches}
- rust-rand_hc
ExclusiveArch: %{rust_arches}
- rust-rand_hc0.1
ExclusiveArch: %{rust_arches}
- rust-rand_isaac
ExclusiveArch: %{rust_arches}
- rust-rand_isaac0.1
ExclusiveArch: %{rust_arches}
- rust-rand_jitter
ExclusiveArch: %{rust_arches}
- rust-rand_jitter0.1
ExclusiveArch: %{rust_arches}
- rust-rand_os
ExclusiveArch: %{rust_arches}
- rust-rand_os0.1
ExclusiveArch: %{rust_arches}
- rust-rand_pcg
ExclusiveArch: %{rust_arches}
- rust-rand_pcg0.1
ExclusiveArch: %{rust_arches}
- rust-rand_pcg0.2
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift0.1
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift0.2
ExclusiveArch: %{rust_arches}
- rust-rand_xoshiro
ExclusiveArch: %{rust_arches}
- rust-random-fast-rng
ExclusiveArch: %{rust_arches}
- rust-random-trait
ExclusiveArch: %{rust_arches}
- rust-randomize
ExclusiveArch: %{rust_arches}
- rust-rav1e
ExclusiveArch: %{rust_arches}
- rust-raw-window-handle
ExclusiveArch: %{rust_arches}
- rust-rawpointer
ExclusiveArch: %{rust_arches}
- rust-rawslice
ExclusiveArch: %{rust_arches}
- rust-rayon
ExclusiveArch: %{rust_arches}
- rust-rayon-core
ExclusiveArch: %{rust_arches}
- rust-read_input
ExclusiveArch: %{rust_arches}
- rust-readability-fork
ExclusiveArch: %{rust_arches}
- rust-readwrite
ExclusiveArch: %{rust_arches}
- rust-recycler
ExclusiveArch: %{rust_arches}
- rust-ref-cast
ExclusiveArch: %{rust_arches}
- rust-ref-cast-impl
ExclusiveArch: %{rust_arches}
- rust-regalloc
ExclusiveArch: %{rust_arches}
- rust-regex
ExclusiveArch: %{rust_arches}
- rust-regex-automata
ExclusiveArch: %{rust_arches}
- rust-regex-syntax
ExclusiveArch: %{rust_arches}
- rust-region
ExclusiveArch: %{rust_arches}
- rust-relative-path
ExclusiveArch: %{rust_arches}
- rust-relay
ExclusiveArch: %{rust_arches}
- rust-remove_dir_all
ExclusiveArch: %{rust_arches}
- rust-rend
ExclusiveArch: %{rust_arches}
- rust-rental
ExclusiveArch: %{rust_arches}
- rust-rental-impl
ExclusiveArch: %{rust_arches}
- rust-reqwest
ExclusiveArch: %{rust_arches}
- rust-reqwest0.10
ExclusiveArch: %{rust_arches}
- rust-resize
ExclusiveArch: %{rust_arches}
- rust-resolv-conf
ExclusiveArch: %{rust_arches}
- rust-restson
ExclusiveArch: %{rust_arches}
- rust-retry
ExclusiveArch: %{rust_arches}
- rust-rgb
ExclusiveArch: %{rust_arches}
- rust-ring
ExclusiveArch: %{rust_arches}
- rust-ripgrep
ExclusiveArch: %{rust_arches}
- rust-rkyv
ExclusiveArch: %{rust_arches}
- rust-rkyv_derive
ExclusiveArch: %{rust_arches}
- rust-rle-decode-fast
ExclusiveArch: %{rust_arches}
- rust-rmp
ExclusiveArch: %{rust_arches}
- rust-rmp-serde
ExclusiveArch: %{rust_arches}
- rust-rodio
ExclusiveArch: %{rust_arches}
- rust-roff
ExclusiveArch: %{rust_arches}
- rust-ron
ExclusiveArch: %{rust_arches}
- rust-roxmltree
ExclusiveArch: %{rust_arches}
- rust-rpassword
ExclusiveArch: %{rust_arches}
- rust-rpick
ExclusiveArch: %{rust_arches}
- rust-rsa
ExclusiveArch: %{rust_arches}
- rust-rspec
ExclusiveArch: %{rust_arches}
- rust-rtnetlink
ExclusiveArch: %{rust_arches}
- rust-rudo
ExclusiveArch: %{rust_arches}
- rust-ruma
ExclusiveArch: %{rust_arches}
- rust-ruma-api
ExclusiveArch: %{rust_arches}
- rust-ruma-api-macros
ExclusiveArch: %{rust_arches}
- rust-ruma-appservice-api
ExclusiveArch: %{rust_arches}
- rust-ruma-client-api
ExclusiveArch: %{rust_arches}
- rust-ruma-common
ExclusiveArch: %{rust_arches}
- rust-ruma-events
ExclusiveArch: %{rust_arches}
- rust-ruma-events-macros
ExclusiveArch: %{rust_arches}
- rust-ruma-federation-api
ExclusiveArch: %{rust_arches}
- rust-ruma-identifiers
ExclusiveArch: %{rust_arches}
- rust-ruma-identifiers-macros
ExclusiveArch: %{rust_arches}
- rust-ruma-identifiers-validation
ExclusiveArch: %{rust_arches}
- rust-ruma-identity-service-api
ExclusiveArch: %{rust_arches}
- rust-ruma-push-gateway-api
ExclusiveArch: %{rust_arches}
- rust-ruma-serde
ExclusiveArch: %{rust_arches}
- rust-ruma-serde-macros
ExclusiveArch: %{rust_arches}
- rust-ruma-signatures
ExclusiveArch: %{rust_arches}
- rust-rusqlite
ExclusiveArch: %{rust_arches}
- rust-rust-embed
ExclusiveArch: %{rust_arches}
- rust-rust-embed-impl
ExclusiveArch: %{rust_arches}
- rust-rust-embed-utils
ExclusiveArch: %{rust_arches}
- rust-rust-ini
ExclusiveArch: %{rust_arches}
- rust-rust-stemmers
ExclusiveArch: %{rust_arches}
- rust-rust_decimal
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer_normal_macro
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer_proc_macro
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer_sys
ExclusiveArch: %{rust_arches}
- rust-rustbus
ExclusiveArch: %{rust_arches}
- rust-rustbus_derive
ExclusiveArch: %{rust_arches}
- rust-rustc-demangle
ExclusiveArch: %{rust_arches}
- rust-rustc-hash
ExclusiveArch: %{rust_arches}
- rust-rustc-serialize
ExclusiveArch: %{rust_arches}
- rust-rustc-test
ExclusiveArch: %{rust_arches}
- rust-rustc_tools_util
ExclusiveArch: %{rust_arches}
- rust-rustc_version
ExclusiveArch: %{rust_arches}
- rust-rustc_version0.3
ExclusiveArch: %{rust_arches}
- rust-rustdoc-stripper
ExclusiveArch: %{rust_arches}
- rust-rustfilt
ExclusiveArch: %{rust_arches}
- rust-rustfix
ExclusiveArch: %{rust_arches}
- rust-rustio
ExclusiveArch: %{rust_arches}
- rust-rustls
ExclusiveArch: %{rust_arches}
- rust-rustls-native-certs
ExclusiveArch: %{rust_arches}
- rust-rusttype
ExclusiveArch: %{rust_arches}
- rust-rustversion
ExclusiveArch: %{rust_arches}
- rust-rusty-fork
ExclusiveArch: %{rust_arches}
- rust-rustyline
ExclusiveArch: %{rust_arches}
- rust-rustyline-derive
ExclusiveArch: %{rust_arches}
- rust-ryu
ExclusiveArch: %{rust_arches}
- rust-safe-transmute
ExclusiveArch: %{rust_arches}
- rust-safe_arch
ExclusiveArch: %{rust_arches}
- rust-safemem
ExclusiveArch: %{rust_arches}
- rust-same-file
ExclusiveArch: %{rust_arches}
- rust-sapp-kms
ExclusiveArch: %{rust_arches}
- rust-sapp-linux
ExclusiveArch: %{rust_arches}
- rust-sass-rs
ExclusiveArch: %{rust_arches}
- rust-sass-sys
ExclusiveArch: %{rust_arches}
- rust-scan_fmt
ExclusiveArch: %{rust_arches}
- rust-scheduled-thread-pool
ExclusiveArch: %{rust_arches}
- rust-scoped-tls
ExclusiveArch: %{rust_arches}
- rust-scoped-tls-hkt
ExclusiveArch: %{rust_arches}
- rust-scoped_threadpool
ExclusiveArch: %{rust_arches}
- rust-scopeguard
ExclusiveArch: %{rust_arches}
- rust-scopetime
ExclusiveArch: %{rust_arches}
- rust-scratch
ExclusiveArch: %{rust_arches}
- rust-scroll
ExclusiveArch: %{rust_arches}
- rust-scroll_derive
ExclusiveArch: %{rust_arches}
- rust-sct
ExclusiveArch: %{rust_arches}
- rust-sd
ExclusiveArch: %{rust_arches}
- rust-sd-notify
ExclusiveArch: %{rust_arches}
- rust-seahash
ExclusiveArch: %{rust_arches}
- rust-seahash3
ExclusiveArch: %{rust_arches}
- rust-secrecy
ExclusiveArch: %{rust_arches}
- rust-secret-service
ExclusiveArch: %{rust_arches}
- rust-semver
ExclusiveArch: %{rust_arches}
- rust-semver-parser
ExclusiveArch: %{rust_arches}
- rust-semver-parser0.7
ExclusiveArch: %{rust_arches}
- rust-semver-parser0.9
ExclusiveArch: %{rust_arches}
- rust-semver0.10
ExclusiveArch: %{rust_arches}
- rust-semver0.11
ExclusiveArch: %{rust_arches}
- rust-sequoia-autocrypt
ExclusiveArch: %{rust_arches}
- rust-sequoia-ipc
ExclusiveArch: %{rust_arches}
- rust-sequoia-keyring-linter
ExclusiveArch: %{rust_arches}
- rust-sequoia-net
ExclusiveArch: %{rust_arches}
- rust-sequoia-octopus-librnp
ExclusiveArch: %{rust_arches}
- rust-sequoia-openpgp
ExclusiveArch: %{rust_arches}
- rust-sequoia-sop
ExclusiveArch: %{rust_arches}
- rust-sequoia-sq
ExclusiveArch: %{rust_arches}
- rust-sequoia-sqv
ExclusiveArch: %{rust_arches}
- rust-serde
ExclusiveArch: %{rust_arches}
- rust-serde-big-array
ExclusiveArch: %{rust_arches}
- rust-serde-pickle
ExclusiveArch: %{rust_arches}
- rust-serde-value
ExclusiveArch: %{rust_arches}
- rust-serde-xml-rs
ExclusiveArch: %{rust_arches}
- rust-serde_bser
ExclusiveArch: %{rust_arches}
- rust-serde_bytes
ExclusiveArch: %{rust_arches}
- rust-serde_cbor
ExclusiveArch: %{rust_arches}
- rust-serde_derive
ExclusiveArch: %{rust_arches}
- rust-serde_fmt
ExclusiveArch: %{rust_arches}
- rust-serde_ignored
ExclusiveArch: %{rust_arches}
- rust-serde_json
ExclusiveArch: %{rust_arches}
- rust-serde_repr
ExclusiveArch: %{rust_arches}
- rust-serde_stacker
ExclusiveArch: %{rust_arches}
- rust-serde_test
ExclusiveArch: %{rust_arches}
- rust-serde_url_params
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded0.6
ExclusiveArch: %{rust_arches}
- rust-serde_with_macros
ExclusiveArch: %{rust_arches}
- rust-serde_yaml
ExclusiveArch: %{rust_arches}
- rust-serial-core
ExclusiveArch: %{rust_arches}
- rust-serial_test
ExclusiveArch: %{rust_arches}
- rust-serial_test_derive
ExclusiveArch: %{rust_arches}
- rust-servo-fontconfig
ExclusiveArch: %{rust_arches}
- rust-servo-fontconfig-sys
ExclusiveArch: %{rust_arches}
- rust-sev
ExclusiveArch: %{rust_arches}
- rust-sevctl
ExclusiveArch: %{rust_arches}
- rust-sha-1
ExclusiveArch: %{rust_arches}
- rust-sha1
ExclusiveArch: %{rust_arches}
- rust-sha1collisiondetection
ExclusiveArch: %{rust_arches}
- rust-sha2
ExclusiveArch: %{rust_arches}
- rust-sha3
ExclusiveArch: %{rust_arches}
- rust-shadow-rs
ExclusiveArch: %{rust_arches}
- rust-shared_child
ExclusiveArch: %{rust_arches}
- rust-shared_library
ExclusiveArch: %{rust_arches}
- rust-shell-escape
ExclusiveArch: %{rust_arches}
- rust-shell-words
ExclusiveArch: %{rust_arches}
- rust-shellexpand
ExclusiveArch: %{rust_arches}
- rust-shellwords
ExclusiveArch: %{rust_arches}
- rust-shlex
ExclusiveArch: %{rust_arches}
- rust-signal-hook
ExclusiveArch: %{rust_arches}
- rust-signal-hook-registry
ExclusiveArch: %{rust_arches}
- rust-signal-hook0.1
ExclusiveArch: %{rust_arches}
- rust-silver
ExclusiveArch: %{rust_arches}
- rust-simba
ExclusiveArch: %{rust_arches}
- rust-simd_helpers
ExclusiveArch: %{rust_arches}
- rust-simdutf8
ExclusiveArch: %{rust_arches}
- rust-simple_asn1
ExclusiveArch: %{rust_arches}
- rust-simple_logger
ExclusiveArch: %{rust_arches}
- rust-simplelog
ExclusiveArch: %{rust_arches}
- rust-siphasher
ExclusiveArch: %{rust_arches}
- rust-size
ExclusiveArch: %{rust_arches}
- rust-sized-chunks
ExclusiveArch: %{rust_arches}
- rust-skeptic
ExclusiveArch: %{rust_arches}
- rust-skim
ExclusiveArch: %{rust_arches}
- rust-slab
ExclusiveArch: %{rust_arches}
- rust-slash-formatter
ExclusiveArch: %{rust_arches}
- rust-slice-deque
ExclusiveArch: %{rust_arches}
- rust-slog
ExclusiveArch: %{rust_arches}
- rust-slog-async
ExclusiveArch: %{rust_arches}
- rust-slog-scope
ExclusiveArch: %{rust_arches}
- rust-slog-term
ExclusiveArch: %{rust_arches}
- rust-slotmap
ExclusiveArch: %{rust_arches}
- rust-slug
ExclusiveArch: %{rust_arches}
- rust-sluice
ExclusiveArch: %{rust_arches}
- rust-smallstr
ExclusiveArch: %{rust_arches}
- rust-smallvec
ExclusiveArch: %{rust_arches}
- rust-smart-default
ExclusiveArch: %{rust_arches}
- rust-smawk
ExclusiveArch: %{rust_arches}
- rust-smithay-client-toolkit
ExclusiveArch: %{rust_arches}
- rust-smithay-client-toolkit0.12
ExclusiveArch: %{rust_arches}
- rust-smithay-clipboard
ExclusiveArch: %{rust_arches}
- rust-snafu
ExclusiveArch: %{rust_arches}
- rust-snafu-derive
ExclusiveArch: %{rust_arches}
- rust-snake_case
ExclusiveArch: %{rust_arches}
- rust-snowflake
ExclusiveArch: %{rust_arches}
- rust-socket2
ExclusiveArch: %{rust_arches}
- rust-socket2_0.3
ExclusiveArch: %{rust_arches}
- rust-sop
ExclusiveArch: %{rust_arches}
- rust-soup-sys
ExclusiveArch: %{rust_arches}
- rust-spin
ExclusiveArch: %{rust_arches}
- rust-spin_on
ExclusiveArch: %{rust_arches}
- rust-spinning_top
ExclusiveArch: %{rust_arches}
- rust-spmc
ExclusiveArch: %{rust_arches}
- rust-ssh-key-dir
ExclusiveArch: %{rust_arches}
- rust-stable_deref_trait
ExclusiveArch: %{rust_arches}
- rust-stacker
ExclusiveArch: %{rust_arches}
- rust-standback
ExclusiveArch: %{rust_arches}
- rust-starship
ExclusiveArch: %{rust_arches}
- rust-starship_module_config_derive
ExclusiveArch: %{rust_arches}
- rust-static_assertions
ExclusiveArch: %{rust_arches}
- rust-statistical
ExclusiveArch: %{rust_arches}
- rust-stb_truetype
ExclusiveArch: %{rust_arches}
- rust-stderrlog
ExclusiveArch: %{rust_arches}
- rust-streaming-stats
ExclusiveArch: %{rust_arches}
- rust-string
ExclusiveArch: %{rust_arches}
- rust-string_cache
ExclusiveArch: %{rust_arches}
- rust-string_cache_codegen
ExclusiveArch: %{rust_arches}
- rust-string_cache_shared
ExclusiveArch: %{rust_arches}
- rust-strings
ExclusiveArch: %{rust_arches}
- rust-strip-ansi-escapes
ExclusiveArch: %{rust_arches}
- rust-strong-xml
ExclusiveArch: %{rust_arches}
- rust-strong-xml-derive
ExclusiveArch: %{rust_arches}
- rust-strsim
ExclusiveArch: %{rust_arches}
- rust-structopt
ExclusiveArch: %{rust_arches}
- rust-structopt-derive
ExclusiveArch: %{rust_arches}
- rust-structopt-derive0.2
ExclusiveArch: %{rust_arches}
- rust-structopt0.2
ExclusiveArch: %{rust_arches}
- rust-strum
ExclusiveArch: %{rust_arches}
- rust-strum_macros
ExclusiveArch: %{rust_arches}
- rust-subtle
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin-sys
ExclusiveArch: %{rust_arches}
- rust-sval
ExclusiveArch: %{rust_arches}
- rust-sval_derive
ExclusiveArch: %{rust_arches}
- rust-sval_json
ExclusiveArch: %{rust_arches}
- rust-svg_metadata
ExclusiveArch: %{rust_arches}
- rust-svgfilters
ExclusiveArch: %{rust_arches}
- rust-svgtypes
ExclusiveArch: %{rust_arches}
- rust-sxd-document
ExclusiveArch: %{rust_arches}
- rust-syn
ExclusiveArch: %{rust_arches}
- rust-syn-mid
ExclusiveArch: %{rust_arches}
- rust-syn0.15
ExclusiveArch: %{rust_arches}
- rust-synom
ExclusiveArch: %{rust_arches}
- rust-synstructure
ExclusiveArch: %{rust_arches}
- rust-syntect
ExclusiveArch: %{rust_arches}
- rust-sys-info
ExclusiveArch: %{rust_arches}
- rust-sysctl
ExclusiveArch: %{rust_arches}
- rust-sysinfo
ExclusiveArch: %{rust_arches}
- rust-syslog
ExclusiveArch: %{rust_arches}
- rust-system-deps
ExclusiveArch: %{rust_arches}
- rust-systemd
ExclusiveArch: %{rust_arches}
- rust-tabular
ExclusiveArch: %{rust_arches}
- rust-tabwriter
ExclusiveArch: %{rust_arches}
- rust-take
ExclusiveArch: %{rust_arches}
- rust-take_mut
ExclusiveArch: %{rust_arches}
- rust-takeable
ExclusiveArch: %{rust_arches}
- rust-takeable-option
ExclusiveArch: %{rust_arches}
- rust-tap
ExclusiveArch: %{rust_arches}
- rust-tar
ExclusiveArch: %{rust_arches}
- rust-target
ExclusiveArch: %{rust_arches}
- rust-target-lexicon
ExclusiveArch: %{rust_arches}
- rust-tealdeer
ExclusiveArch: %{rust_arches}
- rust-teloxide
ExclusiveArch: %{rust_arches}
- rust-teloxide-macros
ExclusiveArch: %{rust_arches}
- rust-tempdir
ExclusiveArch: %{rust_arches}
- rust-tempfile
ExclusiveArch: %{rust_arches}
- rust-temptree
ExclusiveArch: %{rust_arches}
- rust-tendril
ExclusiveArch: %{rust_arches}
- rust-tera
ExclusiveArch: %{rust_arches}
- rust-term
ExclusiveArch: %{rust_arches}
- rust-term0.6
ExclusiveArch: %{rust_arches}
- rust-term_grid
ExclusiveArch: %{rust_arches}
- rust-term_size
ExclusiveArch: %{rust_arches}
- rust-termcolor
ExclusiveArch: %{rust_arches}
- rust-terminal_size
ExclusiveArch: %{rust_arches}
- rust-terminfo
ExclusiveArch: %{rust_arches}
- rust-termion
ExclusiveArch: %{rust_arches}
- rust-termios
ExclusiveArch: %{rust_arches}
- rust-test-assembler
ExclusiveArch: %{rust_arches}
- rust-tester
ExclusiveArch: %{rust_arches}
- rust-testing_logger
ExclusiveArch: %{rust_arches}
- rust-textwrap
ExclusiveArch: %{rust_arches}
- rust-textwrap0.11
ExclusiveArch: %{rust_arches}
- rust-textwrap0.12
ExclusiveArch: %{rust_arches}
- rust-thiserror
ExclusiveArch: %{rust_arches}
- rust-thiserror-impl
ExclusiveArch: %{rust_arches}
- rust-thread-id
ExclusiveArch: %{rust_arches}
- rust-thread-scoped
ExclusiveArch: %{rust_arches}
- rust-thread_local
ExclusiveArch: %{rust_arches}
- rust-threadpool
ExclusiveArch: %{rust_arches}
- rust-tiff
ExclusiveArch: %{rust_arches}
- rust-tiger-digest
ExclusiveArch: %{rust_arches}
- rust-time
ExclusiveArch: %{rust_arches}
- rust-time-macros
ExclusiveArch: %{rust_arches}
- rust-time-macros-impl
ExclusiveArch: %{rust_arches}
- rust-time0.1
ExclusiveArch: %{rust_arches}
- rust-timebomb
ExclusiveArch: %{rust_arches}
- rust-timer
ExclusiveArch: %{rust_arches}
- rust-timerfd
ExclusiveArch: %{rust_arches}
- rust-tiny-keccak
ExclusiveArch: %{rust_arches}
- rust-tiny_http
ExclusiveArch: %{rust_arches}
- rust-tinyfiledialogs
ExclusiveArch: %{rust_arches}
- rust-tinytemplate
ExclusiveArch: %{rust_arches}
- rust-tinyvec
ExclusiveArch: %{rust_arches}
- rust-tinyvec_macros
ExclusiveArch: %{rust_arches}
- rust-tokei
ExclusiveArch: %{rust_arches}
- rust-tokio
ExclusiveArch: %{rust_arches}
- rust-tokio-codec
ExclusiveArch: %{rust_arches}
- rust-tokio-core
ExclusiveArch: %{rust_arches}
- rust-tokio-current-thread
ExclusiveArch: %{rust_arches}
- rust-tokio-executor
ExclusiveArch: %{rust_arches}
- rust-tokio-fs
ExclusiveArch: %{rust_arches}
- rust-tokio-io
ExclusiveArch: %{rust_arches}
- rust-tokio-io-pool
ExclusiveArch: %{rust_arches}
- rust-tokio-macros
ExclusiveArch: %{rust_arches}
- rust-tokio-macros0.2
ExclusiveArch: %{rust_arches}
- rust-tokio-mock-task
ExclusiveArch: %{rust_arches}
- rust-tokio-native-tls
ExclusiveArch: %{rust_arches}
- rust-tokio-openssl
ExclusiveArch: %{rust_arches}
- rust-tokio-openssl0.4
ExclusiveArch: %{rust_arches}
- rust-tokio-reactor
ExclusiveArch: %{rust_arches}
- rust-tokio-rustls
ExclusiveArch: %{rust_arches}
- rust-tokio-socks
ExclusiveArch: %{rust_arches}
- rust-tokio-socks0.3
ExclusiveArch: %{rust_arches}
- rust-tokio-stream
ExclusiveArch: %{rust_arches}
- rust-tokio-sync
ExclusiveArch: %{rust_arches}
- rust-tokio-tcp
ExclusiveArch: %{rust_arches}
- rust-tokio-test
ExclusiveArch: %{rust_arches}
- rust-tokio-threadpool
ExclusiveArch: %{rust_arches}
- rust-tokio-timer
ExclusiveArch: %{rust_arches}
- rust-tokio-tls
ExclusiveArch: %{rust_arches}
- rust-tokio-tls0.2
ExclusiveArch: %{rust_arches}
- rust-tokio-tungstenite
ExclusiveArch: %{rust_arches}
- rust-tokio-udp
ExclusiveArch: %{rust_arches}
- rust-tokio-uds
ExclusiveArch: %{rust_arches}
- rust-tokio-util
ExclusiveArch: %{rust_arches}
- rust-tokio-util0.3
ExclusiveArch: %{rust_arches}
- rust-tokio0.1
ExclusiveArch: %{rust_arches}
- rust-tokio0.2
ExclusiveArch: %{rust_arches}
- rust-toml
ExclusiveArch: %{rust_arches}
- rust-toml0.4
ExclusiveArch: %{rust_arches}
- rust-tower-layer
ExclusiveArch: %{rust_arches}
- rust-tower-service
ExclusiveArch: %{rust_arches}
- rust-tower-test
ExclusiveArch: %{rust_arches}
- rust-tower-util
ExclusiveArch: %{rust_arches}
- rust-tpm2-policy
ExclusiveArch: %{rust_arches}
- rust-tracing
ExclusiveArch: %{rust_arches}
- rust-tracing-attributes
ExclusiveArch: %{rust_arches}
- rust-tracing-core
ExclusiveArch: %{rust_arches}
- rust-tracing-futures
ExclusiveArch: %{rust_arches}
- rust-traitobject
ExclusiveArch: %{rust_arches}
- rust-treebitmap
ExclusiveArch: %{rust_arches}
- rust-treeline
ExclusiveArch: %{rust_arches}
- rust-trust-dns-https
ExclusiveArch: %{rust_arches}
- rust-trust-dns-native-tls
ExclusiveArch: %{rust_arches}
- rust-trust-dns-native-tls0.19
ExclusiveArch: %{rust_arches}
- rust-trust-dns-openssl
ExclusiveArch: %{rust_arches}
- rust-trust-dns-openssl0.19
ExclusiveArch: %{rust_arches}
- rust-trust-dns-proto
ExclusiveArch: %{rust_arches}
- rust-trust-dns-proto0.19
ExclusiveArch: %{rust_arches}
- rust-trust-dns-resolver
ExclusiveArch: %{rust_arches}
- rust-trust-dns-resolver0.19
ExclusiveArch: %{rust_arches}
- rust-trust-dns-rustls
ExclusiveArch: %{rust_arches}
- rust-try-lock
ExclusiveArch: %{rust_arches}
- rust-try_from
ExclusiveArch: %{rust_arches}
- rust-try_or
ExclusiveArch: %{rust_arches}
- rust-trybuild
ExclusiveArch: %{rust_arches}
- rust-tss-esapi
ExclusiveArch: %{rust_arches}
- rust-tss-esapi-sys
ExclusiveArch: %{rust_arches}
- rust-ttf-parser
ExclusiveArch: %{rust_arches}
- rust-tui
ExclusiveArch: %{rust_arches}
- rust-tui-react
ExclusiveArch: %{rust_arches}
- rust-tui0.11
ExclusiveArch: %{rust_arches}
- rust-tui0.9
ExclusiveArch: %{rust_arches}
- rust-tuikit
ExclusiveArch: %{rust_arches}
- rust-tungstenite
ExclusiveArch: %{rust_arches}
- rust-twoway
ExclusiveArch: %{rust_arches}
- rust-typeable
ExclusiveArch: %{rust_arches}
- rust-typed-arena
ExclusiveArch: %{rust_arches}
- rust-typemap
ExclusiveArch: %{rust_arches}
- rust-typenum
ExclusiveArch: %{rust_arches}
- rust-typetag
ExclusiveArch: %{rust_arches}
- rust-typetag-impl
ExclusiveArch: %{rust_arches}
- rust-tzfile
ExclusiveArch: %{rust_arches}
- rust-ucd-parse
ExclusiveArch: %{rust_arches}
- rust-ucd-trie
ExclusiveArch: %{rust_arches}
- rust-ucd-util
ExclusiveArch: %{rust_arches}
- rust-unchecked-index
ExclusiveArch: %{rust_arches}
- rust-unescape
ExclusiveArch: %{rust_arches}
- rust-unic-char-property
ExclusiveArch: %{rust_arches}
- rust-unic-char-range
ExclusiveArch: %{rust_arches}
- rust-unic-common
ExclusiveArch: %{rust_arches}
- rust-unic-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-category
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-common
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-version
ExclusiveArch: %{rust_arches}
- rust-unicase
ExclusiveArch: %{rust_arches}
- rust-unicase1
ExclusiveArch: %{rust_arches}
- rust-unicode-bidi
ExclusiveArch: %{rust_arches}
- rust-unicode-linebreak
ExclusiveArch: %{rust_arches}
- rust-unicode-normalization
ExclusiveArch: %{rust_arches}
- rust-unicode-segmentation
ExclusiveArch: %{rust_arches}
- rust-unicode-truncate
ExclusiveArch: %{rust_arches}
- rust-unicode-width
ExclusiveArch: %{rust_arches}
- rust-unicode-xid
ExclusiveArch: %{rust_arches}
- rust-unicode-xid0.1
ExclusiveArch: %{rust_arches}
- rust-unicode_categories
ExclusiveArch: %{rust_arches}
- rust-unindent
ExclusiveArch: %{rust_arches}
- rust-universal-hash
ExclusiveArch: %{rust_arches}
- rust-unix_socket
ExclusiveArch: %{rust_arches}
- rust-unreachable
ExclusiveArch: %{rust_arches}
- rust-unsafe-any
ExclusiveArch: %{rust_arches}
- rust-unsafe-io
ExclusiveArch: %{rust_arches}
- rust-untrusted
ExclusiveArch: %{rust_arches}
- rust-uom
ExclusiveArch: %{rust_arches}
- rust-url
ExclusiveArch: %{rust_arches}
- rust-url1
ExclusiveArch: %{rust_arches}
- rust-url_serde
ExclusiveArch: %{rust_arches}
- rust-urlencoding
ExclusiveArch: %{rust_arches}
- rust-urlocator
ExclusiveArch: %{rust_arches}
- rust-urlshortener
ExclusiveArch: %{rust_arches}
- rust-users
ExclusiveArch: %{rust_arches}
- rust-users0.10
ExclusiveArch: %{rust_arches}
- rust-utf-8
ExclusiveArch: %{rust_arches}
- rust-utf8-cstr
ExclusiveArch: %{rust_arches}
- rust-utf8-ranges
ExclusiveArch: %{rust_arches}
- rust-utf8-width
ExclusiveArch: %{rust_arches}
- rust-utf8parse
ExclusiveArch: %{rust_arches}
- rust-uuid
ExclusiveArch: %{rust_arches}
- rust-uuid0.7
ExclusiveArch: %{rust_arches}
- rust-v_escape
ExclusiveArch: %{rust_arches}
- rust-v_escape_derive
ExclusiveArch: %{rust_arches}
- rust-v_frame
ExclusiveArch: %{rust_arches}
- rust-v_htmlescape
ExclusiveArch: %{rust_arches}
- rust-value-bag
ExclusiveArch: %{rust_arches}
- rust-varlink
ExclusiveArch: %{rust_arches}
- rust-varlink-cli
ExclusiveArch: %{rust_arches}
- rust-varlink_generator
ExclusiveArch: %{rust_arches}
- rust-varlink_parser
ExclusiveArch: %{rust_arches}
- rust-varlink_stdinterfaces
ExclusiveArch: %{rust_arches}
- rust-vcpkg
ExclusiveArch: %{rust_arches}
- rust-vec-arena
ExclusiveArch: %{rust_arches}
- rust-vec_map
ExclusiveArch: %{rust_arches}
- rust-vergen
ExclusiveArch: %{rust_arches}
- rust-vergen3
ExclusiveArch: %{rust_arches}
- rust-version
ExclusiveArch: %{rust_arches}
- rust-version-compare
ExclusiveArch: %{rust_arches}
- rust-version-sync
ExclusiveArch: %{rust_arches}
- rust-version-sync0.8
ExclusiveArch: %{rust_arches}
- rust-version_check
ExclusiveArch: %{rust_arches}
- rust-versions
ExclusiveArch: %{rust_arches}
- rust-virtio-bindings
ExclusiveArch: x86_64 aarch64 ppc64le
- rust-vm-memory
ExclusiveArch: x86_64 aarch64 ppc64le
- rust-vmm-sys-util
ExclusiveArch: x86_64 aarch64 ppc64le
- rust-vmw_backdoor
ExclusiveArch: %{rust_arches}
- rust-void
ExclusiveArch: %{rust_arches}
- rust-vsprintf
ExclusiveArch: %{rust_arches}
- rust-vte
ExclusiveArch: %{rust_arches}
- rust-vte0.3
ExclusiveArch: %{rust_arches}
- rust-vte_generate_state_changes
ExclusiveArch: %{rust_arches}
- rust-wait-timeout
ExclusiveArch: %{rust_arches}
- rust-waker-fn
ExclusiveArch: %{rust_arches}
- rust-walkdir
ExclusiveArch: %{rust_arches}
- rust-want
ExclusiveArch: %{rust_arches}
- rust-warp
ExclusiveArch: %{rust_arches}
- rust-warp0.2
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-backend
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-futures
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-macro
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-macro-support
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-shared
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-test
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-test-macro
ExclusiveArch: %{rust_arches}
- rust-wasmer_enumset
ExclusiveArch: %{rust_arches}
- rust-wasmer_enumset_derive
ExclusiveArch: %{rust_arches}
- rust-wasmparser
ExclusiveArch: %{rust_arches}
- rust-wasmtime-cache
ExclusiveArch: %{rust_arches}
- rust-wasmtime-environ
ExclusiveArch: %{rust_arches}
- rust-wasmtime-fiber
ExclusiveArch: %{rust_arches}
- rust-wast
ExclusiveArch: %{rust_arches}
- rust-wat
ExclusiveArch: %{rust_arches}
- rust-watchman_client
ExclusiveArch: %{rust_arches}
- rust-wayland-client
ExclusiveArch: %{rust_arches}
- rust-wayland-commons
ExclusiveArch: %{rust_arches}
- rust-wayland-cursor
ExclusiveArch: %{rust_arches}
- rust-wayland-egl
ExclusiveArch: %{rust_arches}
- rust-wayland-protocols
ExclusiveArch: %{rust_arches}
- rust-wayland-scanner
ExclusiveArch: %{rust_arches}
- rust-wayland-server
ExclusiveArch: %{rust_arches}
- rust-wayland-sys
ExclusiveArch: %{rust_arches}
- rust-web-sys
ExclusiveArch: %{rust_arches}
- rust-webbrowser
ExclusiveArch: %{rust_arches}
- rust-webkit2gtk
ExclusiveArch: %{rust_arches}
- rust-webkit2gtk-sys
ExclusiveArch: %{rust_arches}
- rust-webpki
ExclusiveArch: %{rust_arches}
- rust-webpki-roots
ExclusiveArch: %{rust_arches}
- rust-websocket
ExclusiveArch: %{rust_arches}
- rust-websocket-base
ExclusiveArch: %{rust_arches}
- rust-weezl
ExclusiveArch: %{rust_arches}
- rust-which
ExclusiveArch: %{rust_arches}
- rust-wide
ExclusiveArch: %{rust_arches}
- rust-wild
ExclusiveArch: %{rust_arches}
- rust-wildmatch
ExclusiveArch: %{rust_arches}
- rust-winit
ExclusiveArch: %{rust_arches}
- rust-witx
ExclusiveArch: %{rust_arches}
- rust-ws
ExclusiveArch: %{rust_arches}
- rust-wyz
ExclusiveArch: %{rust_arches}
- rust-x11
ExclusiveArch: %{rust_arches}
- rust-x11-clipboard
ExclusiveArch: %{rust_arches}
- rust-x11-dl
ExclusiveArch: %{rust_arches}
- rust-xattr
ExclusiveArch: %{rust_arches}
- rust-xcb
ExclusiveArch: %{rust_arches}
- rust-xcursor
ExclusiveArch: %{rust_arches}
- rust-xdg
ExclusiveArch: %{rust_arches}
- rust-xi-unicode
ExclusiveArch: %{rust_arches}
- rust-xkbcommon
ExclusiveArch: %{rust_arches}
- rust-xml-rs
ExclusiveArch: %{rust_arches}
- rust-xml5ever
ExclusiveArch: %{rust_arches}
- rust-xmlparser
ExclusiveArch: %{rust_arches}
- rust-xmltree
ExclusiveArch: %{rust_arches}
- rust-xmlwriter
ExclusiveArch: %{rust_arches}
- rust-xz2
ExclusiveArch: %{rust_arches}
- rust-y4m
ExclusiveArch: %{rust_arches}
- rust-yaml-rust
ExclusiveArch: %{rust_arches}
- rust-yaml-rust0.3
ExclusiveArch: %{rust_arches}
- rust-ybaas
ExclusiveArch: %{rust_arches}
- rust-ytop
ExclusiveArch: %{rust_arches}
- rust-yubibomb
ExclusiveArch: %{rust_arches}
- rust-yup-oauth2
ExclusiveArch: %{rust_arches}
- rust-zbase32
ExclusiveArch: %{rust_arches}
- rust-zbus
ExclusiveArch: %{rust_arches}
- rust-zbus_macros
ExclusiveArch: %{rust_arches}
- rust-zcomponents
ExclusiveArch: %{rust_arches}
- rust-zeroize
ExclusiveArch: %{rust_arches}
- rust-zeroize_derive
ExclusiveArch: %{rust_arches}
- rust-zincati
ExclusiveArch: %{rust_arches}
- rust-zip
ExclusiveArch: %{rust_arches}
- rust-zoneinfo_compiled
ExclusiveArch: %{rust_arches}
- rust-zopfli
ExclusiveArch: %{rust_arches}
- rust-zoxide
ExclusiveArch: %{rust_arches}
- rust-zram-generator
ExclusiveArch: %{rust_arches}
- rust-zstd
ExclusiveArch: %{rust_arches}
- rust-zstd-safe
ExclusiveArch: %{rust_arches}
- rust-zstd-sys
ExclusiveArch: %{rust_arches}
- rust-zvariant
ExclusiveArch: %{rust_arches}
- rust-zvariant_derive
ExclusiveArch: %{rust_arches}
- s390utils
ExclusiveArch: s390 s390x
- safetyblanket
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- sagemath
ExclusiveArch: aarch64 %{ix86} x86_64 ppc sparcv9
- sbcl
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- sbd
ExclusiveArch: i686 x86_64 s390x aarch64 ppc64le
- sbsigntools
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
- seabios
ExclusiveArch: x86_64
- seadrive-gui
ExclusiveArch: %{qt5_qtwebengine_arches}
- seafile-client
ExclusiveArch: %{qt5_qtwebengine_arches}
- seamonkey
ExclusiveArch: x86_64
- seqan3
ExclusiveArch: %{power64} x86_64 aarch64
- servicelog
ExclusiveArch: ppc %{power64}
- sgabios
ExclusiveArch: %{ix86} x86_64
- sharpfont
ExclusiveArch: %mono_arches
- sharpziplib
ExclusiveArch: %{mono_arches}
- shim
ExclusiveArch: %{efi}
- shim-unsigned-aarch64
ExclusiveArch: aarch64
- shim-unsigned-x64
ExclusiveArch: x86_64
- sigul
ExclusiveArch: x86_64
- skychart
ExclusiveArch: %{fpc_arches}
- snapd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- soup-sharp
ExclusiveArch: %{mono_arches}
- sparkleshare
ExclusiveArch: %{mono_arches}
- spicctrl
ExclusiveArch: %{ix86} x86_64
- spice
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- springlobby
ExclusiveArch: %{ix86} x86_64
- squeekboard
ExclusiveArch: %{rust_arches}
- startdde
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- statsd
ExclusiveArch: %{nodejs_arches} noarch
- stratis-cli
ExclusiveArch: %{rust_arches} noarch
- stratisd
ExclusiveArch: %{rust_arches}
ExclusiveArch: ${rust_arches}
- stripesnoop
ExclusiveArch: %{ix86} x86_64
- supercollider
ExclusiveArch: %{qt5_qtwebengine_arches}
- supermin
ExclusiveArch: %{kernel_arches}
- svt-av1
ExclusiveArch: x86_64
- svt-vp9
ExclusiveArch: x86_64
- swift-lang
ExclusiveArch: x86_64 aarch64
- sysbench
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64le s390x
- syslinux
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- taglib-sharp
ExclusiveArch: %{mono_arches}
- tarantool
ExclusiveArch: %{ix86} x86_64
- tboot
ExclusiveArch: %{ix86} x86_64
- tdlib
ExclusiveArch: x86_64
- templates_parser
ExclusiveArch: %GPRbuild_arches
- ternimal
ExclusiveArch: %{rust_arches}
- testcloud
ExclusiveArch: %{kernel_arches} noarch
- themonospot-base
ExclusiveArch: %mono_arches
- themonospot-console
ExclusiveArch: %mono_arches
- themonospot-gui-gtk
ExclusiveArch: %mono_arches
- themonospot-plugin-avi
ExclusiveArch: %mono_arches
- themonospot-plugin-mkv
ExclusiveArch: %mono_arches
- thermald
ExclusiveArch: %{ix86} x86_64
- tilix
ExclusiveArch: %{ldc_arches}
- tmux-top
ExclusiveArch: %{go_arches}
- tomboy
ExclusiveArch: %{mono_arches}
- topojson-client
ExclusiveArch: %{nodejs_arches} noarch
- topojson-server
ExclusiveArch: %{nodejs_arches} noarch
- topojson-simplify
ExclusiveArch: %{nodejs_arches} noarch
- torbrowser-launcher
ExclusiveArch: %{ix86} x86_64
- tuned-profiles-nfv-host-bin
ExclusiveArch: %{ix86} x86_64
- uClibc
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
- ucx
ExclusiveArch: aarch64 ppc64le x86_64
- ugene
ExclusiveArch: %{ix86} x86_64
- uglify-js
ExclusiveArch: %{nodejs_arches} noarch
- uglify-js1
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- unetbootin
ExclusiveArch: %{ix86} x86_64
- ursa-major
ExclusiveArch: noarch aarch64 ppc64le s390x x86_64
- usd
ExclusiveArch: x86_64
- v8-314
ExclusiveArch: %{ix86} x86_64 %{arm} mips mipsel ppc ppc64
- valgrind
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64
- vboot-utils
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- vim-go
ExclusiveArch: %{?golang_arches}%{!?golang_arches:%{ix86} x86_64 %{arm}}
- virt-p2v
ExclusiveArch: x86_64
- virt-v2v
ExclusiveArch: x86_64
- virtualbox-guest-additions
ExclusiveArch: i686 x86_64
- vkd3d
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- vmaf
ExclusiveArch: x86_64
- vmem
ExclusiveArch: x86_64
- vmemcache
ExclusiveArch: x86_64 ppc64 ppc64le s390x aarch64
- vrq
ExclusiveArch: %{ix86} x86_64
- warsow
ExclusiveArch: %{ix86} x86_64 %{arm}
- warsow-data
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{ix86} x86_64 %{arm}
- webkit2-sharp
ExclusiveArch: %mono_arches
- wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: %{ix86} %{arm}
- wine-dxvk
ExclusiveArch: %{ix86} x86_64
- winetricks
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- wxMaxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
- x2goclient
ExclusiveArch: x86_64
- xe-guest-utilities-latest
ExclusiveArch: %{ix86} x86_64
- xen
ExclusiveArch: %{ix86} x86_64 armv7hl aarch64
- xmlada
ExclusiveArch: %{GPRbuild_arches}
- xorg-x11-drv-armsoc
ExclusiveArch: %{arm} aarch64
- xorg-x11-drv-intel
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-openchrome
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vesa
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vmware
ExclusiveArch: %{ix86} x86_64 ia64
- xsp
ExclusiveArch: %mono_arches
- yarnpkg
ExclusiveArch: %{nodejs_arches} noarch
- zeromq-ada
ExclusiveArch: %{GPRbuild_arches}
- zig
ExclusiveArch: %{zig_arches}
- zlib-ada
ExclusiveArch: %{GPRbuild_arches}
- zlib-ng
ExclusiveArch: aarch64 i686 ppc64le s390x x86_64
- zola
ExclusiveArch: %{rust_arches}
2 years, 9 months
Architecture specific change in rpms/colobot.git
by githook-noreply@fedoraproject.org
The package rpms/colobot.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/colobot.git/commit/?id=0c62732d2d....
Change:
+%ifarch %{arm} aarch64
Thanks.
Full change:
============
commit 0c62732d2db1d604bed058bd2e1aac276a37acc1
Author: Artur Frenszek-Iwicki <fedora(a)svgames.pl>
Date: Sun Aug 22 02:59:12 2021 +0200
Disable tests on arm/aarch64
On arm, the tests fail to build.
On aarch64, they don't pass.
Exclude them on these architectures and try to investigate later.
diff --git a/colobot.spec b/colobot.spec
index 096c7b7..cf1e895 100644
--- a/colobot.spec
+++ b/colobot.spec
@@ -51,6 +51,13 @@ Patch0: 0000-do-not-translate-default-player-name.patch
Patch1: 0001-fix-test-compile-failure.patch
+# Tests fail on ARM architectures. Needs some investigation.
+%ifarch %{arm} aarch64
+%global with_tests 0
+%else
+%global with_tests 1
+%endif
+
BuildRequires: cmake >= 2.8
BuildRequires: desktop-file-utils
BuildRequires: gcc-c++
@@ -65,7 +72,9 @@ BuildRequires: boost-filesystem >= 1.51
BuildRequires: boost-regex >= 1.51
BuildRequires: gettext-devel >= 0.18
BuildRequires: glew-devel >= 1.8.0
+%if %{with_tests}
BuildRequires: gtest-devel
+%endif
BuildRequires: libogg-devel >= 1.3.0
BuildRequires: libpng-devel >= 1.2
BuildRequires: libsndfile-devel >= 1.0.25
@@ -153,7 +162,7 @@ sed \
-DPORTABLE=OFF \
-DPYTHON_EXECUTABLE=%{__python3} \
-DUSE_RELATIVE_PATHS=OFF \
- -DTESTS=ON \
+ -DTESTS=%{with_tests} \
./
%cmake_build
@@ -169,6 +178,7 @@ sed -e 's|%{name}.desktop|%{orgname}.desktop|' -i %{buildroot}%{_metainfodir}/%{
%check
+%if %{with_tests}
# Run unit tests. The test suite includes tests for parsing the .ini file,
# hence the test runner requires a colobot.ini file to read.
mkdir test-run-dir
@@ -179,6 +189,7 @@ cp -a \
pushd test-run-dir
./colobot_ut
popd
+%endif
desktop-file-validate %{buildroot}%{_datadir}/applications/%{orgname}.desktop
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/%{orgname}.appdata.xml
commit f11ee2fff427a405f506daaefe5aa42bd3686a45
Author: Artur Frenszek-Iwicki <fedora(a)svgames.pl>
Date: Sun Aug 22 01:27:48 2021 +0200
Update to v0.2.0
diff --git a/.gitignore b/.gitignore
index 5c8e1c7..597324f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,3 +23,5 @@
/Proton.ogg
/Prototype.ogg
/Quite.ogg
+/colobot-colobot-gold-0.2.0-alpha.tar.gz
+/colobot-data-colobot-gold-0.2.0-alpha.tar.gz
diff --git a/colobot--do-not-translate-default-player-name.patch b/0000-do-not-translate-default-player-name.patch
similarity index 100%
rename from colobot--do-not-translate-default-player-name.patch
rename to 0000-do-not-translate-default-player-name.patch
diff --git a/0001-fix-test-compile-failure.patch b/0001-fix-test-compile-failure.patch
new file mode 100644
index 0000000..95e83e2
--- /dev/null
+++ b/0001-fix-test-compile-failure.patch
@@ -0,0 +1,19 @@
+diff -U4 -r colobot-0.2.0--orig/test/unit/app/app_test.cpp colobot-0.2.0--patched/test/unit/app/app_test.cpp
+--- colobot-0.2.0--orig/test/unit/app/app_test.cpp 2021-08-21 22:57:34.000000000 +0200
++++ colobot-0.2.0--patched/test/unit/app/app_test.cpp 2021-08-22 01:17:42.988409930 +0200
+@@ -20,13 +20,14 @@
+ #include "app/app.h"
+
+ #include "common/make_unique.h"
+
+-#include "common/system/system_other.h"
++#include "common/system/system_linux.h"
+
+ #include <functional>
+ #include <memory>
+
++#include <SDL.h>
+ #include <gtest/gtest.h>
+ #include <hippomocks.h>
+
+ using namespace HippoMocks;
diff --git a/colobot--missing-includes.patch b/colobot--missing-includes.patch
deleted file mode 100644
index 8b36c83..0000000
--- a/colobot--missing-includes.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- colobot-colobot-gold-0.1.12-alpha/src/CBot/CBotInstr/CBotExprLitString--orig.cpp 2019-02-23 20:01:33.000000000 +0100
-+++ colobot-colobot-gold-0.1.12-alpha/src/CBot/CBotInstr/CBotExprLitString.cpp 2020-02-06 23:33:22.040518099 +0100
-@@ -15,8 +15,9 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://gnu.org/licenses
- */
-+#include <stdexcept>
-
- #include "CBot/CBotInstr/CBotExprLitString.h"
-
- #include "CBot/CBotStack.h"
---- colobot-colobot-gold-0.1.12-alpha/src/script/script--orig.h 2020-06-23 19:20:38.838185726 +0200
-+++ colobot-colobot-gold-0.1.12-alpha/src/script/script.h 2020-06-23 19:20:50.750239919 +0200
-@@ -25,8 +25,9 @@
- #pragma once
-
- #include "CBot/CBot.h"
-
-+#include <limits>
- #include <memory>
- #include <string>
- #include <boost/optional.hpp>
-
diff --git a/colobot-gcc11.patch b/colobot-gcc11.patch
deleted file mode 100644
index fa2b7d9..0000000
--- a/colobot-gcc11.patch
+++ /dev/null
@@ -1,2130 +0,0 @@
-diff --git a/src/graphics/engine/camera.cpp b/src/graphics/engine/camera.cpp
-index 461f46a..1244f7d 100644
---- a/src/graphics/engine/camera.cpp
-+++ b/src/graphics/engine/camera.cpp
-@@ -59,14 +59,14 @@ static void SetTransparency(CObject* obj, float value)
-
- if (obj->Implements(ObjectInterfaceType::Carrier))
- {
-- CObject* cargo = dynamic_cast<CCarrierObject*>(obj)->GetCargo();
-+ CObject* cargo = dynamic_cast<CCarrierObject&>(*obj).GetCargo();
- if (cargo != nullptr)
- cargo->SetTransparency(value);
- }
-
- if (obj->Implements(ObjectInterfaceType::Powered))
- {
-- CObject* power = dynamic_cast<CPoweredObject*>(obj)->GetPower();
-+ CObject* power = dynamic_cast<CPoweredObject&>(*obj).GetPower();
- if (power != nullptr)
- power->SetTransparency(value);
- }
-@@ -1233,7 +1233,7 @@ bool CCamera::EventFrameBack(const Event &event)
-
- bool ground = true;
- if (m_cameraObj->Implements(ObjectInterfaceType::Movable))
-- ground = dynamic_cast<CMovableObject*>(m_cameraObj)->GetPhysics()->GetLand();
-+ ground = dynamic_cast<CMovableObject&>(*m_cameraObj).GetPhysics()->GetLand();
- if ( ground ) // ground?
- {
- Math::Vector pos = lookatPt + (lookatPt - m_eyePt);
-@@ -1326,7 +1326,7 @@ bool CCamera::EventFrameOnBoard(const Event &event)
- {
- assert(m_cameraObj->Implements(ObjectInterfaceType::Controllable));
- Math::Vector lookatPt, upVec;
-- dynamic_cast<CControllableObject*>(m_cameraObj)->AdjustCamera(m_eyePt, m_directionH, m_directionV, lookatPt, upVec, m_type);
-+ dynamic_cast<CControllableObject&>(*m_cameraObj).AdjustCamera(m_eyePt, m_directionH, m_directionV, lookatPt, upVec, m_type);
- Math::Vector eye = m_effectOffset * 0.3f + m_eyePt;
- Math::Vector lookat = m_effectOffset * 0.3f + lookatPt;
-
-diff --git a/src/object/interface/carrier_object.h b/src/object/interface/carrier_object.h
-index b534fd4..a8510b6 100644
---- a/src/object/interface/carrier_object.h
-+++ b/src/object/interface/carrier_object.h
-@@ -51,5 +51,5 @@ public:
- inline bool IsObjectCarryingCargo(CObject* obj)
- {
- return obj->Implements(ObjectInterfaceType::Carrier) &&
-- dynamic_cast<CCarrierObject*>(obj)->IsCarryingCargo();
-+ dynamic_cast<CCarrierObject&>(*obj).IsCarryingCargo();
- }
-diff --git a/src/object/interface/powered_object.h b/src/object/interface/powered_object.h
-index 54b6dd1..1216eda 100644
---- a/src/object/interface/powered_object.h
-+++ b/src/object/interface/powered_object.h
-@@ -61,10 +61,10 @@ inline float GetObjectEnergy(CObject* object)
-
- if (object->Implements(ObjectInterfaceType::Powered))
- {
-- CObject* power = dynamic_cast<CPoweredObject*>(object)->GetPower();
-+ CObject* power = dynamic_cast<CPoweredObject&>(*object).GetPower();
- if (power != nullptr && power->Implements(ObjectInterfaceType::PowerContainer))
- {
-- energy = dynamic_cast<CPowerContainerObject*>(power)->GetEnergy();
-+ energy = dynamic_cast<CPowerContainerObject&>(*power).GetEnergy();
- }
- }
-
-@@ -77,10 +77,10 @@ inline float GetObjectEnergyLevel(CObject* object)
-
- if (object->Implements(ObjectInterfaceType::Powered))
- {
-- CObject* power = dynamic_cast<CPoweredObject*>(object)->GetPower();
-+ CObject* power = dynamic_cast<CPoweredObject&>(*object).GetPower();
- if (power != nullptr && power->Implements(ObjectInterfaceType::PowerContainer))
- {
-- energy = dynamic_cast<CPowerContainerObject*>(power)->GetEnergyLevel();
-+ energy = dynamic_cast<CPowerContainerObject&>(*power).GetEnergyLevel();
- }
- }
-
-@@ -90,5 +90,5 @@ inline float GetObjectEnergyLevel(CObject* object)
- inline bool ObjectHasPowerCell(CObject* object)
- {
- return object->Implements(ObjectInterfaceType::Powered) &&
-- dynamic_cast<CPoweredObject*>(object)->GetPower() != nullptr;
-+ dynamic_cast<CPoweredObject&>(*object).GetPower() != nullptr;
- }
-diff --git a/src/object/interface/transportable_object.h b/src/object/interface/transportable_object.h
-index 2d0f90f..1ad95d0 100644
---- a/src/object/interface/transportable_object.h
-+++ b/src/object/interface/transportable_object.h
-@@ -54,5 +54,5 @@ public:
- inline bool IsObjectBeingTransported(CObject* obj)
- {
- return obj->Implements(ObjectInterfaceType::Transportable) &&
-- dynamic_cast<CTransportableObject*>(obj)->IsBeingTransported();
-+ dynamic_cast<CTransportableObject&>(*obj).IsBeingTransported();
- }
-diff --git a/src/graphics/engine/lightning.cpp b/src/graphics/engine/lightning.cpp
-index 9c1a64b..eab99a4 100644
---- a/src/graphics/engine/lightning.cpp
-+++ b/src/graphics/engine/lightning.cpp
-@@ -323,7 +323,7 @@ CObject* CLightning::SearchObject(Math::Vector pos)
-
- if (!obj->Implements(ObjectInterfaceType::Destroyable)) continue;
-
-- float detect = m_magnetic * dynamic_cast<CDestroyableObject*>(obj)->GetLightningHitProbability();
-+ float detect = m_magnetic * dynamic_cast<CDestroyableObject&>(*obj).GetLightningHitProbability();
- if (detect == 0.0f) continue;
-
- Math::Vector oPos = obj->GetPosition();
-diff --git a/src/graphics/engine/particle.cpp b/src/graphics/engine/particle.cpp
-index 5c6d169..0a7fa9b 100644
---- a/src/graphics/engine/particle.cpp
-+++ b/src/graphics/engine/particle.cpp
-@@ -954,7 +954,7 @@ void CParticle::FrameParticle(float rTime)
- m_particle[i].goal = m_particle[i].pos;
- if (object != nullptr && object->Implements(ObjectInterfaceType::Damageable))
- {
-- dynamic_cast<CDamageableObject*>(object)->DamageObject(DamageType::Phazer, 0.002f, m_particle[i].objFather);
-+ dynamic_cast<CDamageableObject&>(*object).DamageObject(DamageType::Phazer, 0.002f, m_particle[i].objFather);
- }
-
- m_particle[i].zoom = 1.0f-(m_particle[i].time-m_particle[i].duration);
-@@ -1157,7 +1157,7 @@ void CParticle::FrameParticle(float rTime)
- {
- if (object->Implements(ObjectInterfaceType::Damageable))
- {
-- dynamic_cast<CDamageableObject*>(object)->DamageObject(DamageType::Fire, 0.001f, m_particle[i].objFather);
-+ dynamic_cast<CDamageableObject&>(*object).DamageObject(DamageType::Fire, 0.001f, m_particle[i].objFather);
- }
-
- m_exploGunCounter++;
-@@ -1223,7 +1223,7 @@ void CParticle::FrameParticle(float rTime)
- m_particle[i].goal = m_particle[i].pos;
- if (object != nullptr)
- {
-- if (object->GetType() == OBJECT_MOBILErs && dynamic_cast<CShielder*>(object)->GetActiveShieldRadius() > 0.0f) // protected by shield?
-+ if (object->GetType() == OBJECT_MOBILErs && dynamic_cast<CShielder&>(*object).GetActiveShieldRadius() > 0.0f) // protected by shield?
- {
- CreateParticle(m_particle[i].pos, Math::Vector(0.0f, 0.0f, 0.0f), Math::Point(6.0f, 6.0f), PARTIGUNDEL, 2.0f);
- if (m_lastTimeGunDel > 0.2f)
-@@ -1241,7 +1241,7 @@ void CParticle::FrameParticle(float rTime)
-
- if (object->Implements(ObjectInterfaceType::Damageable))
- {
-- dynamic_cast<CDamageableObject*>(object)->DamageObject(DamageType::Organic, 0.1f, m_particle[i].objFather); // starts explosion
-+ dynamic_cast<CDamageableObject&>(*object).DamageObject(DamageType::Organic, 0.1f, m_particle[i].objFather); // starts explosion
- }
- }
- }
-@@ -1271,7 +1271,7 @@ void CParticle::FrameParticle(float rTime)
- m_particle[i].goal = m_particle[i].pos;
- if (object != nullptr)
- {
-- if (object->GetType() == OBJECT_MOBILErs && dynamic_cast<CShielder*>(object)->GetActiveShieldRadius() > 0.0f)
-+ if (object->GetType() == OBJECT_MOBILErs && dynamic_cast<CShielder&>(*object).GetActiveShieldRadius() > 0.0f)
- {
- CreateParticle(m_particle[i].pos, Math::Vector(0.0f, 0.0f, 0.0f), Math::Point(6.0f, 6.0f), PARTIGUNDEL, 2.0f);
- if (m_lastTimeGunDel > 0.2f)
-@@ -1286,7 +1286,7 @@ void CParticle::FrameParticle(float rTime)
- {
- if (object->Implements(ObjectInterfaceType::Damageable))
- {
-- dynamic_cast<CDamageableObject*>(object)->DamageObject(DamageType::Fire, std::numeric_limits<float>::infinity(), m_particle[i].objFather); // starts explosion
-+ dynamic_cast<CDamageableObject&>(*object).DamageObject(DamageType::Fire, std::numeric_limits<float>::infinity(), m_particle[i].objFather); // starts explosion
- }
- }
- }
-@@ -1345,7 +1345,7 @@ void CParticle::FrameParticle(float rTime)
- {
- if (object->Implements(ObjectInterfaceType::Damageable))
- {
-- dynamic_cast<CDamageableObject*>(object)->DamageObject(DamageType::Organic, 0.001f, m_particle[i].objFather);
-+ dynamic_cast<CDamageableObject&>(*object).DamageObject(DamageType::Organic, 0.001f, m_particle[i].objFather);
- }
-
- m_exploGunCounter ++;
-@@ -2423,7 +2423,7 @@ void CParticle::FrameParticle(float rTime)
- if (object != nullptr)
- {
- assert(object->Implements(ObjectInterfaceType::Damageable));
-- dynamic_cast<CDamageableObject*>(object)->DamageObject(DamageType::Tower, std::numeric_limits<float>::infinity(), m_particle[i].objFather);
-+ dynamic_cast<CDamageableObject&>(*object).DamageObject(DamageType::Tower, std::numeric_limits<float>::infinity(), m_particle[i].objFather);
- }
- }
-
-diff --git a/src/graphics/engine/pyro.cpp b/src/graphics/engine/pyro.cpp
-index 6eedf85..2fab0b1 100644
---- a/src/graphics/engine/pyro.cpp
-+++ b/src/graphics/engine/pyro.cpp
-@@ -129,7 +129,7 @@ bool CPyro::Create(PyroType type, CObject* obj, float force)
-
- CObject* power = nullptr;
- if (obj->Implements(ObjectInterfaceType::Powered))
-- power = dynamic_cast<CPoweredObject*>(obj)->GetPower();
-+ power = dynamic_cast<CPoweredObject&>(*obj).GetPower();
-
- if (power == nullptr)
- {
-@@ -256,7 +256,7 @@ bool CPyro::Create(PyroType type, CObject* obj, float force)
- m_sound->Play(SOUND_DEADw, m_pos);
- }
- assert(m_object->Implements(ObjectInterfaceType::Controllable));
-- if ( type == PT_SHOTH && dynamic_cast<CControllableObject*>(m_object)->GetSelect() )
-+ if ( type == PT_SHOTH && dynamic_cast<CControllableObject&>(*m_object).GetSelect() )
- {
- m_sound->Play(SOUND_AIE, m_pos);
- m_sound->Play(SOUND_AIE, m_engine->GetEyePt());
-@@ -273,10 +273,10 @@ bool CPyro::Create(PyroType type, CObject* obj, float force)
- if ( m_type == PT_DEADG )
- {
- assert(m_object->Implements(ObjectInterfaceType::Destroyable));
-- dynamic_cast<CDestroyableObject*>(m_object)->SetDying(DeathType::Dead);
-+ dynamic_cast<CDestroyableObject&>(*m_object).SetDying(DeathType::Dead);
-
- assert(obj->Implements(ObjectInterfaceType::Movable));
-- dynamic_cast<CMovableObject*>(obj)->GetMotion()->SetAction(MHS_DEADg, 1.0f);
-+ dynamic_cast<CMovableObject&>(*obj).GetMotion()->SetAction(MHS_DEADg, 1.0f);
-
- m_camera->StartCentering(m_object, Math::PI*0.5f, 99.9f, 0.0f, 1.5f);
- m_camera->StartOver(CAM_OVER_EFFECT_FADEOUT_WHITE, m_pos, 1.0f);
-@@ -286,10 +286,10 @@ bool CPyro::Create(PyroType type, CObject* obj, float force)
- if ( m_type == PT_DEADW )
- {
- assert(m_object->Implements(ObjectInterfaceType::Destroyable));
-- dynamic_cast<CDestroyableObject*>(m_object)->SetDying(DeathType::Dead);
-+ dynamic_cast<CDestroyableObject&>(*m_object).SetDying(DeathType::Dead);
-
- assert(obj->Implements(ObjectInterfaceType::Movable));
-- dynamic_cast<CMovableObject*>(obj)->GetMotion()->SetAction(MHS_DEADw, 1.0f);
-+ dynamic_cast<CMovableObject&>(*obj).GetMotion()->SetAction(MHS_DEADw, 1.0f);
-
- m_camera->StartCentering(m_object, Math::PI*0.5f, 99.9f, 0.0f, 3.0f);
- m_camera->StartOver(CAM_OVER_EFFECT_FADEOUT_BLACK, m_pos, 1.0f);
-@@ -307,7 +307,7 @@ bool CPyro::Create(PyroType type, CObject* obj, float force)
- if ( m_type == PT_SHOTH )
- {
- assert(m_object->Implements(ObjectInterfaceType::Controllable));
-- if ( m_camera->GetBlood() && dynamic_cast<CControllableObject*>(m_object)->GetSelect() )
-+ if ( m_camera->GetBlood() && dynamic_cast<CControllableObject&>(*m_object).GetSelect() )
- {
- m_camera->StartOver(CAM_OVER_EFFECT_BLOOD, m_pos, force);
- }
-@@ -1381,7 +1381,7 @@ void CPyro::DeleteObject(bool primary, bool secondary)
- if (m_object->Implements(ObjectInterfaceType::Transportable))
- {
- // TODO: this should be handled in the object's destructor
-- CObject* transporter = dynamic_cast<CTransportableObject*>(m_object)->GetTransporter();
-+ CObject* transporter = dynamic_cast<CTransportableObject&>(*m_object).GetTransporter();
- if (transporter != nullptr)
- {
- if (transporter->Implements(ObjectInterfaceType::Powered))
-@@ -1546,12 +1546,12 @@ void CPyro::ExploStart()
- m_object->Simplify();
- m_object->SetLock(true); // ruin not usable yet
- assert(m_object->Implements(ObjectInterfaceType::Destroyable));
-- dynamic_cast<CDestroyableObject*>(m_object)->SetDying(DeathType::Exploding); // being destroyed
-+ dynamic_cast<CDestroyableObject&>(*m_object).SetDying(DeathType::Exploding); // being destroyed
- m_object->FlatParent();
-
-- if ( m_object->Implements(ObjectInterfaceType::Controllable) && dynamic_cast<CControllableObject*>(m_object)->GetSelect() )
-+ if ( m_object->Implements(ObjectInterfaceType::Controllable) && dynamic_cast<CControllableObject&>(*m_object).GetSelect() )
- {
-- dynamic_cast<CControllableObject*>(m_object)->SetSelect(false); // deselects the object
-+ dynamic_cast<CControllableObject&>(*m_object).SetSelect(false); // deselects the object
- m_camera->SetType(CAM_TYPE_EXPLO);
- m_main->DeselectAll();
- }
-@@ -1575,7 +1575,7 @@ void CPyro::ExploStart()
-
- // TODO: temporary hack (hopefully)
- assert(m_object->Implements(ObjectInterfaceType::Old));
-- Math::Vector pos = dynamic_cast<COldObject*>(m_object)->GetPartPosition(i);
-+ Math::Vector pos = dynamic_cast<COldObject&>(*m_object).GetPartPosition(i);
-
- Math::Vector speed;
- float weight;
-@@ -1622,9 +1622,9 @@ void CPyro::BurnStart()
- m_object->Simplify();
- m_object->SetLock(true); // ruin not usable yet
-
-- if ( m_object->Implements(ObjectInterfaceType::Controllable) && dynamic_cast<CControllableObject*>(m_object)->GetSelect() )
-+ if ( m_object->Implements(ObjectInterfaceType::Controllable) && dynamic_cast<CControllableObject&>(*m_object).GetSelect() )
- {
-- dynamic_cast<CControllableObject*>(m_object)->SetSelect(false); // deselects the object
-+ dynamic_cast<CControllableObject&>(*m_object).SetSelect(false); // deselects the object
- m_camera->SetType(CAM_TYPE_EXPLO);
- m_main->DeselectAll();
- }
-@@ -2139,7 +2139,7 @@ void CPyro::BurnProgress()
-
- if (m_object->Implements(ObjectInterfaceType::Powered))
- {
-- CObject* sub = dynamic_cast<CPoweredObject*>(m_object)->GetPower();
-+ CObject* sub = dynamic_cast<CPoweredObject&>(*m_object).GetPower();
- if (sub != nullptr) // is there a battery?
- sub->SetScaleY(1.0f - m_progress); // complete flattening
- }
-@@ -2232,7 +2232,7 @@ CObject* CPyro::FallSearchBeeExplo()
-
- if (obj->GetType() == OBJECT_MOBILErs)
- {
-- float shieldRadius = dynamic_cast<CShielder*>(obj)->GetActiveShieldRadius();
-+ float shieldRadius = dynamic_cast<CShielder&>(*obj).GetActiveShieldRadius();
- if ( shieldRadius > 0.0f )
- {
- float distance = Math::Distance(oPos, bulletCrashSphere.sphere.pos);
-@@ -2300,12 +2300,12 @@ void CPyro::FallProgress(float rTime)
- {
- assert(m_object->Implements(ObjectInterfaceType::Destroyable));
- // TODO: implement "killer"?
-- dynamic_cast<CDestroyableObject*>(m_object)->DestroyObject(DestructionType::Explosion);
-+ dynamic_cast<CDestroyableObject&>(*m_object).DestroyObject(DestructionType::Explosion);
- }
- }
- else
- {
-- if (obj->GetType() == OBJECT_MOBILErs && dynamic_cast<CShielder*>(obj)->GetActiveShieldRadius() > 0.0f) // protected by shield?
-+ if (obj->GetType() == OBJECT_MOBILErs && dynamic_cast<CShielder&>(*obj).GetActiveShieldRadius() > 0.0f) // protected by shield?
- {
- m_particle->CreateParticle(pos, Math::Vector(0.0f, 0.0f, 0.0f),
- Math::Point(6.0f, 6.0f), PARTIGUNDEL, 2.0f, 0.0f, 0.0f);
-@@ -2316,7 +2316,7 @@ void CPyro::FallProgress(float rTime)
- else
- {
- assert(obj->Implements(ObjectInterfaceType::Damageable));
-- if (dynamic_cast<CDamageableObject*>(obj)->DamageObject(DamageType::FallingObject))
-+ if (dynamic_cast<CDamageableObject&>(*obj).DamageObject(DamageType::FallingObject))
- {
- DeleteObject(true, true); // removes the ball
- }
-@@ -2324,7 +2324,7 @@ void CPyro::FallProgress(float rTime)
- {
- assert(m_object->Implements(ObjectInterfaceType::Destroyable));
- // TODO: implement "killer"?
-- dynamic_cast<CDestroyableObject*>(m_object)->DestroyObject(DestructionType::Explosion);
-+ dynamic_cast<CDestroyableObject&>(*m_object).DestroyObject(DestructionType::Explosion);
- }
- }
- }
-diff --git a/src/level/mainmovie.cpp b/src/level/mainmovie.cpp
-index 4aa4245..52df226 100644
---- a/src/level/mainmovie.cpp
-+++ b/src/level/mainmovie.cpp
-@@ -90,7 +90,7 @@ bool CMainMovie::Start(MainMovieType type, float time)
- }
-
- assert(pObj->Implements(ObjectInterfaceType::Movable));
-- dynamic_cast<CMovableObject*>(pObj)->GetMotion()->SetAction(MHS_SATCOM, 0.5f); // reads the SatCom
-+ dynamic_cast<CMovableObject&>(*pObj).GetMotion()->SetAction(MHS_SATCOM, 0.5f); // reads the SatCom
-
- m_camera->GetCamera(m_initialEye, m_initialLookat);
- m_camera->SetType(Gfx::CAM_TYPE_SCRIPT);
-@@ -110,7 +110,7 @@ bool CMainMovie::Start(MainMovieType type, float time)
- if ( pObj != nullptr )
- {
- assert(pObj->Implements(ObjectInterfaceType::Movable));
-- dynamic_cast<CMovableObject*>(pObj)->GetMotion()->SetAction(-1); // finishes reading SatCom
-+ dynamic_cast<CMovableObject&>(*pObj).GetMotion()->SetAction(-1); // finishes reading SatCom
- }
-
- m_camera->SetType(Gfx::CAM_TYPE_BACK);
-@@ -132,7 +132,7 @@ bool CMainMovie::Stop()
- if ( pObj != nullptr )
- {
- assert(pObj->Implements(ObjectInterfaceType::Movable));
-- dynamic_cast<CMovableObject*>(pObj)->GetMotion()->SetAction(-1); // finishes reading SatCom
-+ dynamic_cast<CMovableObject&>(*pObj).GetMotion()->SetAction(-1); // finishes reading SatCom
- }
- }
-
-diff --git a/src/level/robotmain.cpp b/src/level/robotmain.cpp
-index 58d9054..3da33d1 100644
---- a/src/level/robotmain.cpp
-+++ b/src/level/robotmain.cpp
-@@ -1330,7 +1330,7 @@ void CRobotMain::ExecuteCmd(const std::string& cmd)
- {
- CObject* object = GetSelect();
- if (object != nullptr && object->Implements(ObjectInterfaceType::Shielded))
-- dynamic_cast<CShieldedObject*>(object)->SetMagnifyDamage(dynamic_cast<CShieldedObject*>(object)->GetMagnifyDamage()*0.1f);
-+ dynamic_cast<CShieldedObject&>(*object).SetMagnifyDamage(dynamic_cast<CShieldedObject&>(*object).GetMagnifyDamage()*0.1f);
- return;
- }
-
-@@ -1338,7 +1338,7 @@ void CRobotMain::ExecuteCmd(const std::string& cmd)
- {
- CObject* object = GetSelect();
- if (object != nullptr && object->Implements(ObjectInterfaceType::JetFlying))
-- dynamic_cast<CJetFlyingObject*>(object)->SetRange(dynamic_cast<CJetFlyingObject*>(object)->GetRange()*10.0f);
-+ dynamic_cast<CJetFlyingObject&>(*object).SetRange(dynamic_cast<CJetFlyingObject&>(*object).GetRange()*10.0f);
- return;
- }
-
-@@ -1363,16 +1363,16 @@ void CRobotMain::ExecuteCmd(const std::string& cmd)
- {
- if (object->Implements(ObjectInterfaceType::Powered))
- {
-- CObject* power = dynamic_cast<CPoweredObject*>(object)->GetPower();
-+ CObject* power = dynamic_cast<CPoweredObject&>(*object).GetPower();
- if (power != nullptr && power->Implements(ObjectInterfaceType::PowerContainer))
-- dynamic_cast<CPowerContainerObject*>(power)->SetEnergyLevel(1.0f);
-+ dynamic_cast<CPowerContainerObject&>(*power).SetEnergyLevel(1.0f);
- }
-
- if (object->Implements(ObjectInterfaceType::Shielded))
-- dynamic_cast<CShieldedObject*>(object)->SetShield(1.0f);
-+ dynamic_cast<CShieldedObject&>(*object).SetShield(1.0f);
-
- if (object->Implements(ObjectInterfaceType::JetFlying))
-- dynamic_cast<CJetFlyingObject*>(object)->SetReactorRange(1.0f);
-+ dynamic_cast<CJetFlyingObject&>(*object).SetReactorRange(1.0f);
- }
- return;
- }
-@@ -1385,9 +1385,9 @@ void CRobotMain::ExecuteCmd(const std::string& cmd)
- {
- if (object->Implements(ObjectInterfaceType::Powered))
- {
-- CObject* power = dynamic_cast<CPoweredObject*>(object)->GetPower();
-+ CObject* power = dynamic_cast<CPoweredObject&>(*object).GetPower();
- if (power != nullptr && power->Implements(ObjectInterfaceType::PowerContainer))
-- dynamic_cast<CPowerContainerObject*>(power)->SetEnergyLevel(1.0f);
-+ dynamic_cast<CPowerContainerObject&>(*power).SetEnergyLevel(1.0f);
- }
- }
- return;
-@@ -1397,7 +1397,7 @@ void CRobotMain::ExecuteCmd(const std::string& cmd)
- {
- CObject* object = GetSelect();
- if (object != nullptr && object->Implements(ObjectInterfaceType::Shielded))
-- dynamic_cast<CShieldedObject*>(object)->SetShield(1.0f);
-+ dynamic_cast<CShieldedObject&>(*object).SetShield(1.0f);
- return;
- }
-
-@@ -1407,7 +1407,7 @@ void CRobotMain::ExecuteCmd(const std::string& cmd)
- if (object != nullptr)
- {
- if (object->Implements(ObjectInterfaceType::JetFlying))
-- dynamic_cast<CJetFlyingObject*>(object)->SetReactorRange(1.0f);
-+ dynamic_cast<CJetFlyingObject&>(*object).SetReactorRange(1.0f);
- }
- return;
- }
-@@ -1507,7 +1507,7 @@ void CRobotMain::StartDisplayInfo(int index, bool movie)
- if (!m_editLock && movie && !m_movie->IsExist() && human)
- {
- assert(obj->Implements(ObjectInterfaceType::Movable));
-- if (dynamic_cast<CMovableObject*>(obj)->GetMotion()->GetAction() == -1)
-+ if (dynamic_cast<CMovableObject&>(*obj).GetMotion()->GetAction() == -1)
- {
- m_movieInfoIndex = index;
- m_movie->Start(MM_SATCOMopen, 2.5f);
-@@ -1821,7 +1821,7 @@ CObject* CRobotMain::DeselectAll()
- void CRobotMain::SelectOneObject(CObject* obj, bool displayError)
- {
- assert(obj->Implements(ObjectInterfaceType::Controllable));
-- dynamic_cast<CControllableObject*>(obj)->SetSelect(true, displayError);
-+ dynamic_cast<CControllableObject&>(*obj).SetSelect(true, displayError);
- m_camera->SetControllingObject(obj);
-
- ObjectType type = obj->GetType();
-@@ -1854,7 +1854,7 @@ void CRobotMain::SelectOneObject(CObject* obj, bool displayError)
- type == OBJECT_MOBILEdr ||
- type == OBJECT_APOLLO2 )
- {
-- m_camera->SetType(dynamic_cast<CControllableObject*>(obj)->GetCameraType());
-+ m_camera->SetType(dynamic_cast<CControllableObject&>(*obj).GetCameraType());
- }
- else
- {
-@@ -1870,7 +1870,7 @@ bool CRobotMain::SelectObject(CObject* obj, bool displayError)
- if (m_movieLock || m_editLock) return false;
- if (m_movie->IsExist()) return false;
- if (obj != nullptr &&
-- (!obj->Implements(ObjectInterfaceType::Controllable) || !(dynamic_cast<CControllableObject*>(obj)->GetSelectable() || m_cheatSelectInsect))) return false;
-+ (!obj->Implements(ObjectInterfaceType::Controllable) || !(dynamic_cast<CControllableObject&>(*obj).GetSelectable() || m_cheatSelectInsect))) return false;
-
- if (m_missionType == MISSION_CODE_BATTLE && m_codeBattleStarted && m_codeBattleSpectator)
- {
-@@ -1946,7 +1946,7 @@ CObject* CRobotMain::GetSelect()
- for (CObject* obj : m_objMan->GetAllObjects())
- {
- if (!obj->Implements(ObjectInterfaceType::Controllable)) continue;
-- if (dynamic_cast<CControllableObject*>(obj)->GetSelect())
-+ if (dynamic_cast<CControllableObject&>(*obj).GetSelect())
- return obj;
- }
- return nullptr;
-@@ -1964,7 +1964,7 @@ CObject* CRobotMain::DetectObject(Math::Point pos)
-
- CObject* transporter = nullptr;
- if (obj->Implements(ObjectInterfaceType::Transportable))
-- transporter = dynamic_cast<CTransportableObject*>(obj)->GetTransporter();
-+ transporter = dynamic_cast<CTransportableObject&>(*obj).GetTransporter();
-
- if (transporter != nullptr && !transporter->GetDetectable()) continue;
- if (obj->GetProxyActivate()) continue;
-@@ -1972,14 +1972,14 @@ CObject* CRobotMain::DetectObject(Math::Point pos)
- CObject* target = obj;
- if (obj->Implements(ObjectInterfaceType::PowerContainer) && obj->Implements(ObjectInterfaceType::Transportable))
- {
-- target = dynamic_cast<CTransportableObject*>(obj)->GetTransporter(); // battery connected
-+ target = dynamic_cast<CTransportableObject&>(*obj).GetTransporter(); // battery connected
- if (target == nullptr)
- {
- target = obj; // standalone battery
- }
- else
- {
-- if (!target->Implements(ObjectInterfaceType::Powered) || dynamic_cast<CPoweredObject*>(target)->GetPower() != obj)
-+ if (!target->Implements(ObjectInterfaceType::Powered) || dynamic_cast<CPoweredObject&>(*target).GetPower() != obj)
- {
- // transported, but not in the power slot
- target = obj;
-@@ -2009,7 +2009,7 @@ bool CRobotMain::DestroySelectedObject()
-
- m_engine->GetPyroManager()->Create(Gfx::PT_FRAGT, obj);
-
-- dynamic_cast<CControllableObject*>(obj)->SetSelect(false); // deselects the object
-+ dynamic_cast<CControllableObject&>(*obj).SetSelect(false); // deselects the object
- m_camera->SetType(Gfx::CAM_TYPE_EXPLO);
- DeselectAll();
- RemoveFromSelectionHistory(obj);
-@@ -2032,7 +2032,7 @@ void CRobotMain::HiliteClear()
- for (CObject* obj : m_objMan->GetAllObjects())
- {
- if (!obj->Implements(ObjectInterfaceType::Controllable)) continue;
-- dynamic_cast<CControllableObject*>(obj)->SetHighlight(false);
-+ dynamic_cast<CControllableObject&>(*obj).SetHighlight(false);
- }
- m_map->SetHighlight(nullptr);
- m_short->SetHighlight(nullptr);
-@@ -2092,12 +2092,12 @@ void CRobotMain::HiliteObject(Math::Point pos)
- }
- }
-
-- if (obj->Implements(ObjectInterfaceType::Controllable) && (dynamic_cast<CControllableObject*>(obj)->GetSelectable() || m_cheatSelectInsect))
-+ if (obj->Implements(ObjectInterfaceType::Controllable) && (dynamic_cast<CControllableObject&>(*obj).GetSelectable() || m_cheatSelectInsect))
- {
-- if (dynamic_cast<CControllableObject*>(obj)->GetSelectable())
-+ if (dynamic_cast<CControllableObject&>(*obj).GetSelectable())
- {
- // Don't highlight objects that would not be selectable without selectinsect
-- dynamic_cast<CControllableObject*>(obj)->SetHighlight(true);
-+ dynamic_cast<CControllableObject&>(*obj).SetHighlight(true);
- }
- m_map->SetHighlight(obj);
- m_short->SetHighlight(obj);
-@@ -2348,7 +2348,7 @@ bool CRobotMain::EventFrame(const Event &event)
- if (obj->GetType() == OBJECT_TOTO)
- toto = obj;
- else if (obj->Implements(ObjectInterfaceType::Interactive))
-- dynamic_cast<CInteractiveObject*>(obj)->EventProcess(event);
-+ dynamic_cast<CInteractiveObject&>(*obj).EventProcess(event);
-
- if ( obj->GetProxyActivate() ) // active if it is near?
- {
-@@ -2371,7 +2371,7 @@ bool CRobotMain::EventFrame(const Event &event)
- continue;
-
- if (obj->Implements(ObjectInterfaceType::Interactive))
-- dynamic_cast<CInteractiveObject*>(obj)->EventProcess(event);
-+ dynamic_cast<CInteractiveObject&>(*obj).EventProcess(event);
- }
-
- m_engine->GetPyroManager()->EventProcess(event);
-@@ -2395,7 +2395,7 @@ bool CRobotMain::EventFrame(const Event &event)
-
- // Advances toto following the camera, because its position depends on the camera.
- if (toto != nullptr)
-- dynamic_cast<CInteractiveObject*>(toto)->EventProcess(event);
-+ dynamic_cast<CInteractiveObject&>(*toto).EventProcess(event);
-
- // NOTE: m_movieLock is set only after the first update of CAutoBase finishes
-
-@@ -2628,7 +2628,7 @@ bool CRobotMain::EventObject(const Event &event)
- {
- if (obj->Implements(ObjectInterfaceType::Interactive))
- {
-- dynamic_cast<CInteractiveObject*>(obj)->EventProcess(event);
-+ dynamic_cast<CInteractiveObject&>(*obj).EventProcess(event);
- }
- }
-
-@@ -2669,7 +2669,7 @@ void CRobotMain::ScenePerso()
- obj->SetDrawFront(true); // draws the interface
-
- assert(obj->Implements(ObjectInterfaceType::Movable));
-- CMotionHuman* mh = static_cast<CMotionHuman*>(dynamic_cast<CMovableObject*>(obj)->GetMotion());
-+ CMotionHuman* mh = static_cast<CMotionHuman*>(dynamic_cast<CMovableObject&>(*obj).GetMotion());
- mh->StartDisplayPerso();
- }
- }
-@@ -3337,7 +3337,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject)
- assert(m_controller->Implements(ObjectInterfaceType::ProgramStorage));
-
- assert(m_controller->Implements(ObjectInterfaceType::Old));
-- dynamic_cast<COldObject*>(m_controller)->SetCheckToken(false);
-+ dynamic_cast<COldObject&>(*m_controller).SetCheckToken(false);
-
- if (line->GetParam("script")->IsDefined())
- {
-@@ -3345,7 +3345,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject)
- Program* program = programStorage->AddProgram();
- programStorage->ReadProgram(program, line->GetParam("script")->AsPath("ai"));
- program->readOnly = true;
-- dynamic_cast<CProgrammableObject*>(m_controller)->RunProgram(program);
-+ dynamic_cast<CProgrammableObject&>(*m_controller).RunProgram(program);
- }
- continue;
- }
-@@ -3370,7 +3370,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject)
- if (m_fixScene && obj->GetType() == OBJECT_HUMAN)
- {
- assert(obj->Implements(ObjectInterfaceType::Movable));
-- CMotion* motion = dynamic_cast<CMovableObject*>(obj)->GetMotion();
-+ CMotion* motion = dynamic_cast<CMovableObject&>(*obj).GetMotion();
- if (m_phase == PHASE_WIN ) motion->SetAction(MHS_WIN, 0.4f);
- if (m_phase == PHASE_LOST) motion->SetAction(MHS_LOST, 0.5f);
- }
-@@ -3385,7 +3385,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject)
- {
- CProgramStorageObject* programStorage = dynamic_cast<CProgramStorageObject*>(obj);
-
-- if (obj->Implements(ObjectInterfaceType::Controllable) && dynamic_cast<CControllableObject*>(obj)->GetSelectable() && obj->GetType() != OBJECT_HUMAN)
-+ if (obj->Implements(ObjectInterfaceType::Controllable) && dynamic_cast<CControllableObject&>(*obj).GetSelectable() && obj->GetType() != OBJECT_HUMAN)
- {
- programStorage->SetProgramStorageIndex(rankObj);
- }
-@@ -3768,7 +3768,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject)
- assert(obj->Implements(ObjectInterfaceType::Controllable));
- SelectObject(obj);
- m_camera->SetControllingObject(obj);
-- m_camera->SetType(dynamic_cast<CControllableObject*>(obj)->GetCameraType());
-+ m_camera->SetType(dynamic_cast<CControllableObject&>(*obj).GetCameraType());
- }
- }
-
-@@ -4363,7 +4363,7 @@ void CRobotMain::StartShowLimit()
- CObject* obj = GetSelect();
- if (obj == nullptr) return;
- if (!obj->Implements(ObjectInterfaceType::Ranged)) return;
-- float range = dynamic_cast<CRangedObject*>(obj)->GetShowLimitRadius();
-+ float range = dynamic_cast<CRangedObject&>(*obj).GetShowLimitRadius();
- if (range == 0.0f) return;
- SetShowLimit(0, Gfx::PARTILIMIT1, obj, obj->GetPosition(), range);
- }
-@@ -4503,8 +4503,8 @@ bool CRobotMain::IOIsBusy()
- {
- if (! obj->Implements(ObjectInterfaceType::TaskExecutor)) continue;
-
-- if (obj->Implements(ObjectInterfaceType::Programmable) && dynamic_cast<CProgrammableObject*>(obj)->IsProgram()) continue; // TODO: I'm not sure if this is correct but this is how it worked earlier
-- if (dynamic_cast<CTaskExecutorObject*>(obj)->IsForegroundTask()) return true;
-+ if (obj->Implements(ObjectInterfaceType::Programmable) && dynamic_cast<CProgrammableObject&>(*obj).IsProgram()) continue; // TODO: I'm not sure if this is correct but this is how it worked earlier
-+ if (dynamic_cast<CTaskExecutorObject&>(*obj).IsForegroundTask()) return true;
- }
- return false;
- }
-@@ -4555,7 +4555,7 @@ void CRobotMain::IOWriteObject(CLevelParserLine* line, CObject* obj, const std::
-
- if (obj->Implements(ObjectInterfaceType::Programmable))
- {
-- int run = dynamic_cast<CProgramStorageObject*>(obj)->GetProgramIndex(dynamic_cast<CProgrammableObject*>(obj)->GetCurrentProgram());
-+ int run = dynamic_cast<CProgramStorageObject&>(*obj).GetProgramIndex(dynamic_cast<CProgrammableObject&>(*obj).GetCurrentProgram());
- if (run != -1)
- {
- line->AddParam("run", MakeUnique<CLevelParserParam>(run+1));
-@@ -4630,11 +4630,11 @@ bool CRobotMain::IOWriteScene(std::string filename, std::string filecbot, std::s
- {
- if (obj->GetType() == OBJECT_TOTO) continue;
- if (IsObjectBeingTransported(obj)) continue;
-- if (obj->Implements(ObjectInterfaceType::Destroyable) && dynamic_cast<CDestroyableObject*>(obj)->IsDying()) continue;
-+ if (obj->Implements(ObjectInterfaceType::Destroyable) && dynamic_cast<CDestroyableObject&>(*obj).IsDying()) continue;
-
- if (obj->Implements(ObjectInterfaceType::Carrier))
- {
-- CObject* cargo = dynamic_cast<CCarrierObject*>(obj)->GetCargo();
-+ CObject* cargo = dynamic_cast<CCarrierObject&>(*obj).GetCargo();
- if (cargo != nullptr) // object transported?
- {
- line = MakeUnique<CLevelParserLine>("CreateFret");
-@@ -4645,7 +4645,7 @@ bool CRobotMain::IOWriteScene(std::string filename, std::string filecbot, std::s
-
- if (obj->Implements(ObjectInterfaceType::Powered))
- {
-- CObject* power = dynamic_cast<CPoweredObject*>(obj)->GetPower();
-+ CObject* power = dynamic_cast<CPoweredObject&>(*obj).GetPower();
- if (power != nullptr) // battery transported?
- {
- line = MakeUnique<CLevelParserLine>("CreatePower");
-@@ -4683,7 +4683,7 @@ bool CRobotMain::IOWriteScene(std::string filename, std::string filecbot, std::s
- {
- if (obj->GetType() == OBJECT_TOTO) continue;
- if (IsObjectBeingTransported(obj)) continue;
-- if (obj->Implements(ObjectInterfaceType::Destroyable) && dynamic_cast<CDestroyableObject*>(obj)->IsDying()) continue;
-+ if (obj->Implements(ObjectInterfaceType::Destroyable) && dynamic_cast<CDestroyableObject&>(*obj).IsDying()) continue;
-
- if (!SaveFileStack(obj, file, objRank++)) break;
- }
-@@ -4824,7 +4824,7 @@ CObject* CRobotMain::IOReadScene(std::string filename, std::string filecbot)
- {
- assert(obj->Implements(ObjectInterfaceType::Carrier)); // TODO: exception?
- assert(obj->Implements(ObjectInterfaceType::Old));
-- dynamic_cast<CCarrierObject*>(obj)->SetCargo(cargo);
-+ dynamic_cast<CCarrierObject&>(*obj).SetCargo(cargo);
- auto task = MakeUnique<CTaskManip>(dynamic_cast<COldObject*>(obj));
- task->Start(TMO_AUTO, TMA_GRAB); // holds the object!
- }
-@@ -4832,9 +4832,9 @@ CObject* CRobotMain::IOReadScene(std::string filename, std::string filecbot)
- if (power != nullptr)
- {
- assert(obj->Implements(ObjectInterfaceType::Powered));
-- dynamic_cast<CPoweredObject*>(obj)->SetPower(power);
-+ dynamic_cast<CPoweredObject&>(*obj).SetPower(power);
- assert(power->Implements(ObjectInterfaceType::Transportable));
-- dynamic_cast<CTransportableObject*>(power)->SetTransporter(obj);
-+ dynamic_cast<CTransportableObject&>(*power).SetTransporter(obj);
- }
- cargo = nullptr;
- power = nullptr;
-@@ -4861,7 +4861,7 @@ CObject* CRobotMain::IOReadScene(std::string filename, std::string filecbot)
- {
- if (obj->GetType() == OBJECT_TOTO) continue;
- if (IsObjectBeingTransported(obj)) continue;
-- if (obj->Implements(ObjectInterfaceType::Destroyable) && dynamic_cast<CDestroyableObject*>(obj)->IsDying()) continue;
-+ if (obj->Implements(ObjectInterfaceType::Destroyable) && dynamic_cast<CDestroyableObject&>(*obj).IsDying()) continue;
-
- if (!ReadFileStack(obj, file, objRank++)) break;
- }
-@@ -5204,7 +5204,7 @@ Error CRobotMain::CheckEndMission(bool frame)
- if (m_base != nullptr && !m_endTakeImmediat)
- {
- assert(m_base->Implements(ObjectInterfaceType::Controllable));
-- if(dynamic_cast<CControllableObject*>(m_base)->GetSelectable())
-+ if(dynamic_cast<CControllableObject&>(*m_base).GetSelectable())
- return ERR_MISSION_NOTERM;
- }
- }
-diff --git a/src/level/scene_conditions.cpp b/src/level/scene_conditions.cpp
-index 263ee39..1a98e53 100644
---- a/src/level/scene_conditions.cpp
-+++ b/src/level/scene_conditions.cpp
-@@ -82,7 +82,7 @@ bool CObjectCondition::CheckForObject(CObject* obj)
- }
- else if (obj->Implements(ObjectInterfaceType::Powered))
- {
-- CObject* powerObj = dynamic_cast<CPoweredObject*>(obj)->GetPower();
-+ CObject* powerObj = dynamic_cast<CPoweredObject&>(*obj).GetPower();
- if(powerObj != nullptr && powerObj->Implements(ObjectInterfaceType::PowerContainer))
- {
- power = dynamic_cast<CPowerContainerObject*>(powerObj);
-@@ -98,7 +98,7 @@ bool CObjectCondition::CheckForObject(CObject* obj)
-
- Math::Vector oPos;
- if (IsObjectBeingTransported(obj))
-- oPos = dynamic_cast<CTransportableObject*>(obj)->GetTransporter()->GetPosition();
-+ oPos = dynamic_cast<CTransportableObject&>(*obj).GetTransporter()->GetPosition();
- else
- oPos = obj->GetPosition();
- oPos.y = 0.0f;
-diff --git a/src/object/auto/autobase.cpp b/src/object/auto/autobase.cpp
-index 32b2428..da35ace 100644
---- a/src/object/auto/autobase.cpp
-+++ b/src/object/auto/autobase.cpp
-@@ -169,7 +169,7 @@ begin:
- else
- {
- assert(pObj->Implements(ObjectInterfaceType::Controllable));
-- m_camera->SetType(dynamic_cast<CControllableObject*>(pObj)->GetCameraType());
-+ m_camera->SetType(dynamic_cast<CControllableObject&>(*pObj).GetCameraType());
- }
-
- m_main->StartMusic();
-@@ -594,7 +594,7 @@ begin:
- else
- {
- assert(pObj->Implements(ObjectInterfaceType::Controllable));
-- m_camera->SetType(dynamic_cast<CControllableObject*>(pObj)->GetCameraType());
-+ m_camera->SetType(dynamic_cast<CControllableObject&>(*pObj).GetCameraType());
- }
- m_sound->Play(SOUND_BOUM, m_object->GetPosition());
- m_soundChannel = -1;
-@@ -1124,7 +1124,7 @@ bool CAutoBase::Abort()
- else
- {
- assert(pObj->Implements(ObjectInterfaceType::Controllable));
-- m_camera->SetType(dynamic_cast<CControllableObject*>(pObj)->GetCameraType());
-+ m_camera->SetType(dynamic_cast<CControllableObject&>(*pObj).GetCameraType());
- }
-
- m_engine->SetFogStart(m_fogStart);
-@@ -1246,7 +1246,7 @@ void CAutoBase::FreezeCargo(bool freeze)
- m_cargoObjects.insert(obj);
- if ( obj->Implements(ObjectInterfaceType::Movable) )
- {
-- CPhysics* physics = dynamic_cast<CMovableObject*>(obj)->GetPhysics();
-+ CPhysics* physics = dynamic_cast<CMovableObject&>(*obj).GetPhysics();
- physics->SetFreeze(freeze);
- }
- }
-diff --git a/src/object/auto/autodestroyer.cpp b/src/object/auto/autodestroyer.cpp
-index ccb3cbd..4a778a8 100644
---- a/src/object/auto/autodestroyer.cpp
-+++ b/src/object/auto/autodestroyer.cpp
-@@ -176,7 +176,7 @@ bool CAutoDestroyer::EventProcess(const Event &event)
- if ( scrap != nullptr )
- {
- assert(scrap->Implements(ObjectInterfaceType::Destroyable));
-- dynamic_cast<CDestroyableObject*>(scrap)->DestroyObject(DestructionType::Explosion);
-+ dynamic_cast<CDestroyableObject&>(*scrap).DestroyObject(DestructionType::Explosion);
- }
- m_bExplo = true;
- }
-diff --git a/src/object/auto/autoegg.cpp b/src/object/auto/autoegg.cpp
-index 7ea3e75..a92d43a 100644
---- a/src/object/auto/autoegg.cpp
-+++ b/src/object/auto/autoegg.cpp
-@@ -74,7 +74,7 @@ void CAutoEgg::DeleteObject(bool all)
- alien->SetLock(false);
- if (alien->Implements(ObjectInterfaceType::Programmable))
- {
-- dynamic_cast<CProgrammableObject*>(alien)->SetActivity(true); // the insect is active
-+ dynamic_cast<CProgrammableObject&>(*alien).SetActivity(true); // the insect is active
- }
- }
- else
-@@ -123,7 +123,7 @@ void CAutoEgg::Init()
-
- if (alien->Implements(ObjectInterfaceType::Programmable))
- {
-- dynamic_cast<CProgrammableObject*>(alien)->SetActivity(false);
-+ dynamic_cast<CProgrammableObject&>(*alien).SetActivity(false);
- }
- }
-
-@@ -204,7 +204,7 @@ bool CAutoEgg::EventProcess(const Event &event)
- if ( alien == nullptr ) return true;
- if (alien->Implements(ObjectInterfaceType::Programmable))
- {
-- dynamic_cast<CProgrammableObject*>(alien)->SetActivity(false);
-+ dynamic_cast<CProgrammableObject&>(*alien).SetActivity(false);
- }
-
- m_progress += event.rTime*m_speed;
-@@ -265,7 +265,7 @@ Error CAutoEgg::IsEnded()
- alien->SetLock(false);
- if(alien->Implements(ObjectInterfaceType::Programmable))
- {
-- dynamic_cast<CProgrammableObject*>(alien)->SetActivity(true); // the insect is active
-+ dynamic_cast<CProgrammableObject&>(*alien).SetActivity(true); // the insect is active
- }
- }
-
-diff --git a/src/object/auto/autofactory.cpp b/src/object/auto/autofactory.cpp
-index 343d57b..c66e431 100644
---- a/src/object/auto/autofactory.cpp
-+++ b/src/object/auto/autofactory.cpp
-@@ -392,7 +392,7 @@ bool CAutoFactory::EventProcess(const Event &event)
- if ( vehicle != nullptr )
- {
- assert(vehicle->Implements(ObjectInterfaceType::Movable));
-- physics = dynamic_cast<CMovableObject*>(vehicle)->GetPhysics();
-+ physics = dynamic_cast<CMovableObject&>(*vehicle).GetPhysics();
- physics->SetFreeze(false); // can move
-
- vehicle->SetLock(false); // vehicle useable
-@@ -403,7 +403,7 @@ bool CAutoFactory::EventProcess(const Event &event)
- {
- if (vehicle->Implements(ObjectInterfaceType::Programmable) && vehicle->Implements(ObjectInterfaceType::ProgramStorage))
- {
-- Program* program = dynamic_cast<CProgramStorageObject*>(vehicle)->AddProgram();
-+ Program* program = dynamic_cast<CProgramStorageObject&>(*vehicle).AddProgram();
-
- if (boost::regex_match(m_program, boost::regex("[A-Za-z0-9_]+"))) // Public function name?
- {
-@@ -419,7 +419,7 @@ bool CAutoFactory::EventProcess(const Event &event)
- program->script->SendScript(m_program.c_str());
- }
-
-- dynamic_cast<CProgrammableObject*>(vehicle)->RunProgram(program);
-+ dynamic_cast<CProgrammableObject&>(*vehicle).RunProgram(program);
- }
- }
- }
-@@ -658,7 +658,7 @@ bool CAutoFactory::CreateVehicle()
- vehicle->SetLock(true); // not usable
-
- assert(vehicle->Implements(ObjectInterfaceType::Movable));
-- CPhysics* physics = dynamic_cast<CMovableObject*>(vehicle)->GetPhysics();
-+ CPhysics* physics = dynamic_cast<CMovableObject&>(*vehicle).GetPhysics();
- physics->SetFreeze(true); // it doesn't move
-
- if (vehicle->Implements(ObjectInterfaceType::ProgramStorage))
-diff --git a/src/object/auto/autonuclearplant.cpp b/src/object/auto/autonuclearplant.cpp
-index a341c45..2974fcf 100644
---- a/src/object/auto/autonuclearplant.cpp
-+++ b/src/object/auto/autonuclearplant.cpp
-@@ -394,7 +394,7 @@ void CAutoNuclearPlant::CreatePower()
- float powerLevel = 1.0f;
- CObject* power = CObjectManager::GetInstancePointer()->CreateObject(pos, angle, OBJECT_ATOMIC, powerLevel);
-
-- dynamic_cast<CTransportableObject*>(power)->SetTransporter(m_object);
-+ dynamic_cast<CTransportableObject&>(*power).SetTransporter(m_object);
- power->SetPosition(Math::Vector(22.0f, 3.0f, 0.0f));
- m_object->SetPower(power);
- }
-diff --git a/src/object/auto/autopowercaptor.cpp b/src/object/auto/autopowercaptor.cpp
-index fea4586..34f9fe0 100644
---- a/src/object/auto/autopowercaptor.cpp
-+++ b/src/object/auto/autopowercaptor.cpp
-@@ -269,7 +269,7 @@ void CAutoPowerCaptor::ChargeObject(float rTime)
-
- if (obj->Implements(ObjectInterfaceType::Powered))
- {
-- CObject* power = dynamic_cast<CPoweredObject*>(obj)->GetPower();
-+ CObject* power = dynamic_cast<CPoweredObject&>(*obj).GetPower();
- if ( power != nullptr && power->Implements(ObjectInterfaceType::PowerContainer) )
- {
- CPowerContainerObject* powerContainer = dynamic_cast<CPowerContainerObject*>(power);
-@@ -285,7 +285,7 @@ void CAutoPowerCaptor::ChargeObject(float rTime)
-
- if (obj->Implements(ObjectInterfaceType::Carrier))
- {
-- CObject* power = dynamic_cast<CCarrierObject*>(obj)->GetCargo();
-+ CObject* power = dynamic_cast<CCarrierObject&>(*obj).GetCargo();
- if ( power != nullptr && power->Implements(ObjectInterfaceType::PowerContainer) )
- {
- CPowerContainerObject* powerContainer = dynamic_cast<CPowerContainerObject*>(power);
-diff --git a/src/object/auto/autopowerplant.cpp b/src/object/auto/autopowerplant.cpp
-index d7294b9..690e20a 100644
---- a/src/object/auto/autopowerplant.cpp
-+++ b/src/object/auto/autopowerplant.cpp
-@@ -331,7 +331,7 @@ bool CAutoPowerPlant::EventProcess(const Event &event)
-
- cargo->SetScale(1.0f);
- cargo->SetLock(false); // usable battery
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporter(m_object);
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporter(m_object);
- cargo->SetPosition(Math::Vector(0.0f, 3.0f, 0.0f));
- m_object->SetPower(cargo);
-
-diff --git a/src/object/auto/autopowerstation.cpp b/src/object/auto/autopowerstation.cpp
-index 5b90b6f..9271013 100644
---- a/src/object/auto/autopowerstation.cpp
-+++ b/src/object/auto/autopowerstation.cpp
-@@ -138,7 +138,7 @@ bool CAutoPowerStation::EventProcess(const Event &event)
- {
- if (vehicle->Implements(ObjectInterfaceType::Powered))
- {
-- CObject* power = dynamic_cast<CPoweredObject*>(vehicle)->GetPower();
-+ CObject* power = dynamic_cast<CPoweredObject&>(*vehicle).GetPower();
- if ( power != nullptr && power->Implements(ObjectInterfaceType::PowerContainer) )
- {
- CPowerContainerObject* powerContainer = dynamic_cast<CPowerContainerObject*>(power);
-@@ -158,7 +158,7 @@ bool CAutoPowerStation::EventProcess(const Event &event)
-
- if (vehicle->Implements(ObjectInterfaceType::Carrier))
- {
-- CObject* power = dynamic_cast<CCarrierObject*>(vehicle)->GetCargo();
-+ CObject* power = dynamic_cast<CCarrierObject&>(*vehicle).GetCargo();
- if ( power != nullptr && power->Implements(ObjectInterfaceType::PowerContainer) )
- {
- CPowerContainerObject* powerContainer = dynamic_cast<CPowerContainerObject*>(power);
-diff --git a/src/object/auto/autorepair.cpp b/src/object/auto/autorepair.cpp
-index d580ce8..2ff6eaa 100644
---- a/src/object/auto/autorepair.cpp
-+++ b/src/object/auto/autorepair.cpp
-@@ -148,7 +148,7 @@ bool CAutoRepair::EventProcess(const Event &event)
- assert(vehicle->Implements(ObjectInterfaceType::Shielded));
-
- if ( m_progress < 1.0f ||
-- (vehicle != nullptr && dynamic_cast<CShieldedObject*>(vehicle)->GetShield() < 1.0f) )
-+ (vehicle != nullptr && dynamic_cast<CShieldedObject&>(*vehicle).GetShield() < 1.0f) )
- {
- if ( vehicle != nullptr )
- {
-@@ -243,9 +243,9 @@ CObject* CAutoRepair::SearchVehicle()
- {
- if (obj == m_object) continue;
- if ( !obj->Implements(ObjectInterfaceType::Shielded) ) continue;
-- if ( !dynamic_cast<CShieldedObject*>(obj)->IsRepairable() ) continue;
-+ if ( !dynamic_cast<CShieldedObject&>(*obj).IsRepairable() ) continue;
-
-- if ( obj->Implements(ObjectInterfaceType::Movable) && !dynamic_cast<CMovableObject*>(obj)->GetPhysics()->GetLand() ) continue; // in flight?
-+ if ( obj->Implements(ObjectInterfaceType::Movable) && !dynamic_cast<CMovableObject&>(*obj).GetPhysics()->GetLand() ) continue; // in flight?
-
- Math::Vector oPos = obj->GetPosition();
- float dist = Math::Distance(oPos, sPos);
-diff --git a/src/object/auto/autotower.cpp b/src/object/auto/autotower.cpp
-index 053d29d..6ab241e 100644
---- a/src/object/auto/autotower.cpp
-+++ b/src/object/auto/autotower.cpp
-@@ -289,7 +289,7 @@ CObject* CAutoTower::SearchTarget(Math::Vector &impact)
- {
- if ( obj->Implements(ObjectInterfaceType::Movable) )
- {
-- CPhysics* physics = dynamic_cast<CMovableObject*>(obj)->GetPhysics();
-+ CPhysics* physics = dynamic_cast<CMovableObject&>(*obj).GetPhysics();
- float speed = fabs(physics->GetLinMotionX(MO_REASPEED));
- if ( speed > 20.0f ) continue; // moving too fast?
- }
-@@ -302,8 +302,7 @@ CObject* CAutoTower::SearchTarget(Math::Vector &impact)
- if ( distance > TOWER_SCOPE ) continue; // too far
- if ( distance < min )
- {
-- min = distance;
-- best = obj;
-+ min = distance; best = obj;
- }
- }
- if ( best == nullptr ) return nullptr;
-@@ -327,7 +326,7 @@ Error CAutoTower::GetError()
- return ERR_TOWER_POWER; // no battery
- }
-
-- if ( dynamic_cast<CPowerContainerObject*>(m_object->GetPower())->GetEnergy() < ENERGY_FIRE )
-+ if ( dynamic_cast<CPowerContainerObject&>(*m_object->GetPower()).GetEnergy() < ENERGY_FIRE )
- {
- return ERR_TOWER_ENERGY; // not enough energy
- }
-diff --git a/src/object/implementation/program_storage_impl.cpp b/src/object/implementation/program_storage_impl.cpp
-index 8d59a86..c82adc9 100644
---- a/src/object/implementation/program_storage_impl.cpp
-+++ b/src/object/implementation/program_storage_impl.cpp
-@@ -270,7 +270,7 @@ void CProgramStorageObjectImpl::LoadAllProgramsForLevel(CLevelParserLine* levelS
-
- if (m_object->Implements(ObjectInterfaceType::Programmable) && i == run)
- {
-- dynamic_cast<CProgrammableObject*>(m_object)->RunProgram(program);
-+ dynamic_cast<CProgrammableObject&>(*m_object).RunProgram(program);
- }
- }
- else
-@@ -327,7 +327,7 @@ void CProgramStorageObjectImpl::SaveAllProgramsForSavedScene(CLevelParserLine* l
- }
-
- if (m_programStorageIndex < 0) return;
-- if (!m_object->Implements(ObjectInterfaceType::Controllable) || !dynamic_cast<CControllableObject*>(m_object)->GetSelectable() || m_object->GetType() == OBJECT_HUMAN) return;
-+ if (!m_object->Implements(ObjectInterfaceType::Controllable) || !dynamic_cast<CControllableObject&>(*m_object).GetSelectable() || m_object->GetType() == OBJECT_HUMAN) return;
-
- GetLogger()->Debug("Saving saved scene programs to '%s/prog%.3d___.txt'\n", levelSource.c_str(), m_programStorageIndex);
- for (unsigned int i = 0; i < m_program.size(); i++)
-@@ -379,7 +379,7 @@ void CProgramStorageObjectImpl::LoadAllProgramsForSavedScene(CLevelParserLine* l
-
- if (m_object->Implements(ObjectInterfaceType::Programmable) && i == run)
- {
-- dynamic_cast<CProgrammableObject*>(m_object)->RunProgram(program);
-+ dynamic_cast<CProgrammableObject&>(*m_object).RunProgram(program);
- }
- }
- }
-@@ -403,7 +403,7 @@ void CProgramStorageObjectImpl::LoadAllProgramsForSavedScene(CLevelParserLine* l
-
- if (m_object->Implements(ObjectInterfaceType::Programmable) && i == run)
- {
-- dynamic_cast<CProgrammableObject*>(m_object)->RunProgram(program);
-+ dynamic_cast<CProgrammableObject&>(*m_object).RunProgram(program);
- }
- }
- }
-diff --git a/src/object/implementation/programmable_impl.cpp b/src/object/implementation/programmable_impl.cpp
-index 5e370bd..b4db83f 100644
---- a/src/object/implementation/programmable_impl.cpp
-+++ b/src/object/implementation/programmable_impl.cpp
-@@ -68,7 +68,7 @@ bool CProgrammableObjectImpl::EventProcess(const Event &event)
- {
- if (event.type == EVENT_FRAME)
- {
-- if ( m_object->Implements(ObjectInterfaceType::Destroyable) && dynamic_cast<CDestroyableObject*>(m_object)->IsDying() && IsProgram() )
-+ if ( m_object->Implements(ObjectInterfaceType::Destroyable) && dynamic_cast<CDestroyableObject&>(*m_object).IsDying() && IsProgram() )
- {
- StopProgram();
- }
-@@ -113,7 +113,7 @@ void CProgrammableObjectImpl::RunProgram(Program* program)
- {
- m_currentProgram = program; // start new program
- m_object->UpdateInterface();
-- if (m_object->Implements(ObjectInterfaceType::Controllable) && dynamic_cast<CControllableObject*>(m_object)->GetTrainer())
-+ if (m_object->Implements(ObjectInterfaceType::Controllable) && dynamic_cast<CControllableObject&>(*m_object).GetTrainer())
- CRobotMain::GetInstancePointer()->StartMissionTimer();
- }
- }
-@@ -155,8 +155,8 @@ bool CProgrammableObjectImpl::ReadStack(FILE *file)
- {
- if (m_object->Implements(ObjectInterfaceType::ProgramStorage))
- {
-- assert(op < static_cast<int>(dynamic_cast<CProgramStorageObject*>(m_object)->GetProgramCount()));
-- m_currentProgram = dynamic_cast<CProgramStorageObject*>(m_object)->GetProgram(op);
-+ assert(op < static_cast<int>(dynamic_cast<CProgramStorageObject&>(*m_object).GetProgramCount()));
-+ m_currentProgram = dynamic_cast<CProgramStorageObject&>(*m_object).GetProgram(op);
- if ( !m_currentProgram->script->ReadStack(file) ) return false;
- }
- else
-@@ -184,7 +184,7 @@ bool CProgrammableObjectImpl::WriteStack(FILE *file)
- op = -1;
- if (m_object->Implements(ObjectInterfaceType::ProgramStorage))
- {
-- op = dynamic_cast<CProgramStorageObject*>(m_object)->GetProgramIndex(m_currentProgram);
-+ op = dynamic_cast<CProgramStorageObject&>(*m_object).GetProgramIndex(m_currentProgram);
- }
- CBot::fWrite(&op, sizeof(short), 1, file);
-
-@@ -243,7 +243,7 @@ void CProgrammableObjectImpl::TraceRecordFrame()
- assert(m_object->Implements(ObjectInterfaceType::TraceDrawing));
- CTraceDrawingObject* traceDrawing = dynamic_cast<CTraceDrawingObject*>(m_object);
-
-- CPhysics* physics = dynamic_cast<CMovableObject*>(m_object)->GetPhysics();
-+ CPhysics* physics = dynamic_cast<CMovableObject&>(*m_object).GetPhysics();
-
- speed = physics->GetLinMotionX(MO_REASPEED);
- if ( speed > 0.0f ) oper = TO_ADVANCE;
-@@ -330,7 +330,7 @@ void CProgrammableObjectImpl::TraceRecordStop()
- buffer << "}\n";
-
- assert(m_object->Implements(ObjectInterfaceType::ProgramStorage));
-- Program* prog = dynamic_cast<CProgramStorageObject*>(m_object)->AddProgram();
-+ Program* prog = dynamic_cast<CProgramStorageObject&>(*m_object).AddProgram();
- prog->script->SendScript(buffer.str().c_str());
- }
-
-diff --git a/src/object/motion/motionant.cpp b/src/object/motion/motionant.cpp
-index bee3114..85b46b1 100644
---- a/src/object/motion/motionant.cpp
-+++ b/src/object/motion/motionant.cpp
-@@ -429,7 +429,7 @@ bool CMotionAnt::EventFrame(const Event &event)
- assert(m_object->Implements(ObjectInterfaceType::Destroyable));
- if ( dynamic_cast<CDestroyableObject*>(m_object)->GetDying() == DeathType::Burning ) // burning?
- {
-- if ( dynamic_cast<CBaseAlien*>(m_object)->GetFixed() )
-+ if ( dynamic_cast<CBaseAlien&>(*m_object).GetFixed() )
- {
- m_actionType = MAS_BURN;
- }
-@@ -724,7 +724,7 @@ bool CMotionAnt::EventFrame(const Event &event)
- if ( m_progress >= 1.0f )
- {
- SetAction(-1);
-- dynamic_cast<CBaseAlien*>(m_object)->SetFixed(false); // moving again
-+ dynamic_cast<CBaseAlien&>(*m_object).SetFixed(false); // moving again
- }
- }
- else
-diff --git a/src/object/motion/motionspider.cpp b/src/object/motion/motionspider.cpp
-index 4aa046a..aa195f4 100644
---- a/src/object/motion/motionspider.cpp
-+++ b/src/object/motion/motionspider.cpp
-@@ -364,7 +364,7 @@ bool CMotionSpider::EventFrame(const Event &event)
- assert(m_object->Implements(ObjectInterfaceType::Destroyable));
- if (dynamic_cast<CDestroyableObject*>(m_object)->GetDying() == DeathType::Burning ) // burning?
- {
-- if ( dynamic_cast<CBaseAlien*>(m_object)->GetFixed() )
-+ if ( dynamic_cast<CBaseAlien&>(*m_object).GetFixed() )
- {
- m_actionType = MSS_BURN;
- }
-@@ -648,7 +648,7 @@ bool CMotionSpider::EventFrame(const Event &event)
- if ( m_progress >= 1.0f )
- {
- SetAction(-1);
-- dynamic_cast<CBaseAlien*>(m_object)->SetFixed(false); // moving again
-+ dynamic_cast<CBaseAlien&>(*m_object).SetFixed(false); // moving again
- }
- }
- else
-diff --git a/src/object/motion/motionvehicle.cpp b/src/object/motion/motionvehicle.cpp
-index fa631fd..cc15f25 100644
---- a/src/object/motion/motionvehicle.cpp
-+++ b/src/object/motion/motionvehicle.cpp
-@@ -928,7 +928,7 @@ void CMotionVehicle::Create(Math::Vector pos, float angle, ObjectType type,
-
- powerCell->SetPosition(powerCellPos);
- powerCell->SetRotation(Math::Vector(0.0f, powerCellAngle, 0.0f));
-- dynamic_cast<CTransportableObject*>(powerCell)->SetTransporter(m_object);
-+ dynamic_cast<CTransportableObject&>(*powerCell).SetTransporter(m_object);
- assert(m_object->Implements(ObjectInterfaceType::Powered));
- m_object->SetPower(powerCell);
- }
-diff --git a/src/object/object_manager.cpp b/src/object/object_manager.cpp
-index 0b4daed..2651a5e 100644
---- a/src/object/object_manager.cpp
-+++ b/src/object/object_manager.cpp
-@@ -205,7 +205,7 @@ void CObjectManager::DestroyTeam(int team, DestructionType destructionType)
- {
- if (object->Implements(ObjectInterfaceType::Destroyable))
- {
-- dynamic_cast<CDestroyableObject*>(object)->DestroyObject(destructionType);
-+ dynamic_cast<CDestroyableObject&>(*object).DestroyObject(destructionType);
- }
- else
- {
-@@ -324,7 +324,7 @@ std::vector<CObject*> CObjectManager::RadarAll(CObject* pThis, Math::Vector this
- {
- if ( pObj->Implements(ObjectInterfaceType::Movable) )
- {
-- CPhysics* physics = dynamic_cast<CMovableObject*>(pObj)->GetPhysics();
-+ CPhysics* physics = dynamic_cast<CMovableObject&>(*pObj).GetPhysics();
- if ( physics != nullptr )
- {
- if ( !physics->GetLand() ) continue;
-@@ -334,7 +334,7 @@ std::vector<CObject*> CObjectManager::RadarAll(CObject* pThis, Math::Vector this
- if ( filter_flying == FILTER_ONLYFLYING )
- {
- if ( !pObj->Implements(ObjectInterfaceType::Movable) ) continue;
-- CPhysics* physics = dynamic_cast<CMovableObject*>(pObj)->GetPhysics();
-+ CPhysics* physics = dynamic_cast<CMovableObject&>(*pObj).GetPhysics();
- if ( physics == nullptr ) continue;
- if ( physics->GetLand() ) continue;
- }
-diff --git a/src/object/old_object.cpp b/src/object/old_object.cpp
-index 3ecbb0e..f5d80b5 100644
---- a/src/object/old_object.cpp
-+++ b/src/object/old_object.cpp
-@@ -285,8 +285,8 @@ void COldObject::DeleteObject(bool bAll)
- {
- if (m_power->Implements(ObjectInterfaceType::Old))
- {
-- dynamic_cast<COldObject*>(m_power)->SetTransporter(nullptr);
-- dynamic_cast<COldObject*>(m_power)->DeleteObject(bAll);
-+ dynamic_cast<COldObject&>(*m_power).SetTransporter(nullptr);
-+ dynamic_cast<COldObject&>(*m_power).DeleteObject(bAll);
- }
- m_power = nullptr;
- }
-@@ -294,8 +294,8 @@ void COldObject::DeleteObject(bool bAll)
- {
- if (m_cargo->Implements(ObjectInterfaceType::Old))
- {
-- dynamic_cast<COldObject*>(m_cargo)->SetTransporter(nullptr);
-- dynamic_cast<COldObject*>(m_cargo)->DeleteObject(bAll);
-+ dynamic_cast<COldObject&>(*m_cargo).SetTransporter(nullptr);
-+ dynamic_cast<COldObject&>(*m_cargo).DeleteObject(bAll);
- }
- m_cargo = nullptr;
- }
-diff --git a/src/object/task/taskfire.cpp b/src/object/task/taskfire.cpp
-index 590ce94..65ad8ee 100644
---- a/src/object/task/taskfire.cpp
-+++ b/src/object/task/taskfire.cpp
-@@ -317,7 +317,7 @@ Error CTaskFire::Start(float delay)
- CObject* power = dynamic_cast<CPoweredObject*>(m_object)->GetPower();
- if (power == nullptr || !power->Implements(ObjectInterfaceType::PowerContainer)) return ERR_FIRE_ENERGY;
-
-- energy = dynamic_cast<CPowerContainerObject*>(power)->GetEnergy();
-+ energy = dynamic_cast<CPowerContainerObject&>(*power).GetEnergy();
- if ( m_bOrganic ) fire = m_delay*ENERGY_FIREi;
- else if ( m_bRay ) fire = m_delay*ENERGY_FIREr;
- else fire = m_delay*ENERGY_FIRE;
-diff --git a/src/object/task/taskfireant.cpp b/src/object/task/taskfireant.cpp
-index 35ddac7..57f5d2a 100644
---- a/src/object/task/taskfireant.cpp
-+++ b/src/object/task/taskfireant.cpp
-@@ -60,7 +60,7 @@ bool CTaskFireAnt::EventProcess(const Event &event)
- if ( event.type != EVENT_FRAME ) return true;
- if ( m_bError ) return false;
-
-- if ( dynamic_cast<CBaseAlien*>(m_object)->GetFixed() ) // insect on its back?
-+ if ( dynamic_cast<CBaseAlien&>(*m_object).GetFixed() ) // insect on its back?
- {
- m_bError = true;
- return false;
-@@ -100,7 +100,7 @@ Error CTaskFireAnt::Start(Math::Vector impact)
- if ( type != OBJECT_ANT ) return ERR_WRONG_BOT;
-
- // Insect on its back?
-- if ( dynamic_cast<CBaseAlien*>(m_object)->GetFixed() ) return ERR_WRONG_BOT;
-+ if ( dynamic_cast<CBaseAlien&>(*m_object).GetFixed() ) return ERR_WRONG_BOT;
-
- m_physics->SetMotorSpeed(Math::Vector(0.0f, 0.0f, 0.0f));
-
-@@ -130,7 +130,7 @@ Error CTaskFireAnt::IsEnded()
-
- if ( m_engine->GetPause() ) return ERR_CONTINUE;
- if ( m_bError ) return ERR_STOP;
-- if ( dynamic_cast<CBaseAlien*>(m_object)->GetFixed() ) return ERR_STOP; // insect on its back?
-+ if ( dynamic_cast<CBaseAlien&>(*m_object).GetFixed() ) return ERR_STOP; // insect on its back?
-
- if ( m_phase == TFA_TURN ) // rotation ?
- {
-diff --git a/src/object/task/taskgoto.cpp b/src/object/task/taskgoto.cpp
-index e1b3954..b334ed8 100644
---- a/src/object/task/taskgoto.cpp
-+++ b/src/object/task/taskgoto.cpp
-@@ -1189,7 +1189,7 @@ bool CTaskGoto::AdjustTarget(CObject* pObj, Math::Vector &pos, float &distance)
- type == OBJECT_MOBILEdr )
- {
- assert(pObj->Implements(ObjectInterfaceType::Powered));
-- pos = dynamic_cast<CPoweredObject*>(pObj)->GetPowerPosition();
-+ pos = dynamic_cast<CPoweredObject&>(*pObj).GetPowerPosition();
- pos.x -= TAKE_DIST+TAKE_DIST_OTHER+distance;
- mat = pObj->GetWorldMatrix(0);
- pos = Transform(*mat, pos);
-diff --git a/src/object/task/taskmanip.cpp b/src/object/task/taskmanip.cpp
-index 16615eb..c697ec1 100644
---- a/src/object/task/taskmanip.cpp
-+++ b/src/object/task/taskmanip.cpp
-@@ -304,8 +304,8 @@ Error CTaskManip::Start(TaskManipOrder order, TaskManipArm arm)
- assert(other->Implements(ObjectInterfaceType::Transportable));
-
- m_object->SetCargo(other); // takes the ball
-- dynamic_cast<CTransportableObject*>(other)->SetTransporter(m_object);
-- dynamic_cast<CTransportableObject*>(other)->SetTransporterPart(0); // taken with the base
-+ dynamic_cast<CTransportableObject&>(*other).SetTransporter(m_object);
-+ dynamic_cast<CTransportableObject&>(*other).SetTransporterPart(0); // taken with the base
- other->SetPosition(Math::Vector(0.0f, -3.0f, 0.0f));
- }
- else
-@@ -314,7 +314,7 @@ Error CTaskManip::Start(TaskManipOrder order, TaskManipArm arm)
- assert(other->Implements(ObjectInterfaceType::Transportable));
-
- m_object->SetCargo(nullptr); // lick the ball
-- dynamic_cast<CTransportableObject*>(other)->SetTransporter(nullptr);
-+ dynamic_cast<CTransportableObject&>(*other).SetTransporter(nullptr);
- pos = m_object->GetPosition();
- pos.y -= 3.0f;
- other->SetPosition(pos);
-@@ -903,7 +903,7 @@ CObject* CTaskManip::SearchOtherObject(bool bAdvance, Math::Vector &pos,
- ObjectType type = pObj->GetType();
- if ( !pObj->Implements(ObjectInterfaceType::Powered) ) continue;
-
-- CObject* power = dynamic_cast<CPoweredObject*>(pObj)->GetPower();
-+ CObject* power = dynamic_cast<CPoweredObject&>(*pObj).GetPower();
- if (power != nullptr)
- {
- if (power->GetLock()) continue;
-@@ -911,7 +911,7 @@ CObject* CTaskManip::SearchOtherObject(bool bAdvance, Math::Vector &pos,
- }
-
- mat = pObj->GetWorldMatrix(0);
-- Math::Vector oPos = Transform(*mat, dynamic_cast<CPoweredObject*>(pObj)->GetPowerPosition());
-+ Math::Vector oPos = Transform(*mat, dynamic_cast<CPoweredObject&>(*pObj).GetPowerPosition());
-
- oAngle = pObj->GetRotationY();
- if ( type == OBJECT_TOWER ||
-@@ -946,7 +946,7 @@ CObject* CTaskManip::SearchOtherObject(bool bAdvance, Math::Vector &pos,
- angle = Math::RotateAngle(oPos.x-iPos.x, iPos.z-oPos.z); // CW !
- if ( Math::TestAngle(angle, iAngle-aLimit, iAngle+aLimit) )
- {
-- Math::Vector powerPos = dynamic_cast<CPoweredObject*>(pObj)->GetPowerPosition();
-+ Math::Vector powerPos = dynamic_cast<CPoweredObject&>(*pObj).GetPowerPosition();
- height = powerPos.y;
- pos = oPos;
- return pObj;
-@@ -974,8 +974,8 @@ bool CTaskManip::TransporterTakeObject()
- if ( m_object->GetType() == OBJECT_HUMAN ||
- m_object->GetType() == OBJECT_TECH )
- {
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporter(m_object);
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporterPart(4); // takes with the hand
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporter(m_object);
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporterPart(4); // takes with the hand
-
- cargo->SetPosition(Math::Vector(1.7f, -0.5f, 1.1f));
- cargo->SetRotationY(0.1f);
-@@ -984,8 +984,8 @@ bool CTaskManip::TransporterTakeObject()
- }
- else if ( m_bSubm )
- {
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporter(m_object);
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporterPart(2); // takes with the right claw
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporter(m_object);
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporterPart(2); // takes with the right claw
-
- Math::Vector pos = Math::Vector(1.1f, -1.0f, 1.0f); // relative
- cargo->SetPosition(pos);
-@@ -995,8 +995,8 @@ bool CTaskManip::TransporterTakeObject()
- }
- else
- {
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporter(m_object);
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporterPart(3); // takes with the hand
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporter(m_object);
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporterPart(3); // takes with the hand
-
- Math::Vector pos = Math::Vector(4.7f, 0.0f, 0.0f); // relative to the hand (lem4)
- cargo->SetPosition(pos);
-@@ -1020,8 +1020,8 @@ bool CTaskManip::TransporterTakeObject()
-
- if ( m_bSubm )
- {
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporter(m_object);
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporterPart(2); // takes with the right claw
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporter(m_object);
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporterPart(2); // takes with the right claw
-
- pos = Math::Vector(1.1f, -1.0f, 1.0f); // relative
- cargo->SetPosition(pos);
-@@ -1031,8 +1031,8 @@ bool CTaskManip::TransporterTakeObject()
- }
- else
- {
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporter(m_object);
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporterPart(3); // takes with the hand
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporter(m_object);
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporterPart(3); // takes with the hand
-
- pos = Math::Vector(4.7f, 0.0f, 0.0f); // relative to the hand (lem4)
- cargo->SetPosition(pos);
-@@ -1054,8 +1054,8 @@ bool CTaskManip::TransporterTakeObject()
-
- m_cargoType = cargo->GetType();
-
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporter(m_object);
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporterPart(3); // takes with the hand
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporter(m_object);
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporterPart(3); // takes with the hand
-
- pos = Math::Vector(4.7f, 0.0f, 0.0f); // relative to the hand (lem4)
- cargo->SetPosition(pos);
-@@ -1080,7 +1080,7 @@ bool CTaskManip::TransporterTakeObject()
- cargo->SetRotationX(0.0f);
- cargo->SetRotationZ(Math::PI/2.0f);
- cargo->SetRotationY(0.0f);
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporterPart(3); // takes with the hand
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporterPart(3); // takes with the hand
-
- m_object->SetPower(nullptr);
- m_object->SetCargo(cargo); // takes
-@@ -1094,15 +1094,15 @@ bool CTaskManip::TransporterTakeObject()
- if (other == nullptr) return false;
- assert(other->Implements(ObjectInterfaceType::Powered));
-
-- CObject* cargo = dynamic_cast<CPoweredObject*>(other)->GetPower();
-+ CObject* cargo = dynamic_cast<CPoweredObject&>(*other).GetPower();
- if (cargo == nullptr) return false; // the other does not have a battery?
- assert(cargo->Implements(ObjectInterfaceType::Transportable));
-
- m_cargoType = cargo->GetType();
-
-- dynamic_cast<CPoweredObject*>(other)->SetPower(nullptr);
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporter(m_object);
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporterPart(3); // takes with the hand
-+ dynamic_cast<CPoweredObject&>(*other).SetPower(nullptr);
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporter(m_object);
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporterPart(3); // takes with the hand
-
- pos = Math::Vector(4.7f, 0.0f, 0.0f); // relative to the hand (lem4)
- cargo->SetPosition(pos);
-@@ -1137,7 +1137,7 @@ bool CTaskManip::TransporterDeposeObject()
- cargo->SetRotationZ(0.0f);
- cargo->FloorAdjust(); // plate well on the ground
-
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporter(nullptr);
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporter(nullptr);
- m_object->SetCargo(nullptr); // deposit
- }
-
-@@ -1157,7 +1157,7 @@ bool CTaskManip::TransporterDeposeObject()
- cargo->SetRotationX(0.0f);
- cargo->SetRotationZ(0.0f);
-
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporter(nullptr);
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporter(nullptr);
- m_object->SetCargo(nullptr); // deposit
- }
-
-@@ -1172,8 +1172,8 @@ bool CTaskManip::TransporterDeposeObject()
-
- if (m_object->GetPower() != nullptr) return false;
-
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporter(m_object);
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporterPart(0); // carried by the base
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporter(m_object);
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporterPart(0); // carried by the base
-
- cargo->SetPosition(m_object->GetPowerPosition());
- cargo->SetRotationY(0.0f);
-@@ -1193,7 +1193,7 @@ bool CTaskManip::TransporterDeposeObject()
- if (other == nullptr) return false;
- assert(other->Implements(ObjectInterfaceType::Powered));
-
-- CObject* cargo = dynamic_cast<CPoweredObject*>(other)->GetPower();
-+ CObject* cargo = dynamic_cast<CPoweredObject&>(*other).GetPower();
- if (cargo != nullptr) return false; // the other already has a battery?
-
- cargo = m_object->GetCargo();
-@@ -1202,14 +1202,14 @@ bool CTaskManip::TransporterDeposeObject()
-
- m_cargoType = cargo->GetType();
-
-- dynamic_cast<CPoweredObject*>(other)->SetPower(cargo);
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporter(other);
-+ dynamic_cast<CPoweredObject&>(*other).SetPower(cargo);
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporter(other);
-
-- cargo->SetPosition(dynamic_cast<CPoweredObject*>(other)->GetPowerPosition());
-+ cargo->SetPosition(dynamic_cast<CPoweredObject&>(*other).GetPowerPosition());
- cargo->SetRotationY(0.0f);
- cargo->SetRotationX(0.0f);
- cargo->SetRotationZ(0.0f);
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporterPart(0); // carried by the base
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporterPart(0); // carried by the base
-
- m_object->SetCargo(nullptr); // deposit
- }
-diff --git a/src/object/task/taskrecover.cpp b/src/object/task/taskrecover.cpp
-index 872632e..5f2cda5 100644
---- a/src/object/task/taskrecover.cpp
-+++ b/src/object/task/taskrecover.cpp
-@@ -194,7 +194,7 @@ Error CTaskRecover::Start()
- CObject* power = dynamic_cast<CPoweredObject*>(m_object)->GetPower();
- if (power == nullptr || !power->Implements(ObjectInterfaceType::PowerContainer)) return ERR_RECOVER_ENERGY;
-
-- float energy = dynamic_cast<CPowerContainerObject*>(power)->GetEnergy();
-+ float energy = dynamic_cast<CPowerContainerObject&>(*power).GetEnergy();
- if ( energy < ENERGY_RECOVER+0.05f ) return ERR_RECOVER_ENERGY;
-
- Math::Matrix* mat = m_object->GetWorldMatrix(0);
-diff --git a/src/object/task/taskshield.cpp b/src/object/task/taskshield.cpp
-index 5408941..948163a 100644
---- a/src/object/task/taskshield.cpp
-+++ b/src/object/task/taskshield.cpp
-@@ -309,7 +309,7 @@ Error CTaskShield::Start(TaskShieldMode mode, float delay)
-
- CObject* power = m_object->GetPower();
- if (power == nullptr || !power->Implements(ObjectInterfaceType::PowerContainer)) return ERR_SHIELD_ENERGY;
-- float energy = dynamic_cast<CPowerContainerObject*>(power)->GetEnergy();
-+ float energy = dynamic_cast<CPowerContainerObject&>(*power).GetEnergy();
- if ( energy == 0.0f ) return ERR_SHIELD_ENERGY;
-
- Math::Matrix* mat = m_object->GetWorldMatrix(0);
-diff --git a/src/object/task/taskspiderexplo.cpp b/src/object/task/taskspiderexplo.cpp
-index 03abddb..b988922 100644
---- a/src/object/task/taskspiderexplo.cpp
-+++ b/src/object/task/taskspiderexplo.cpp
-@@ -57,7 +57,7 @@ bool CTaskSpiderExplo::EventProcess(const Event &event)
- if ( event.type != EVENT_FRAME ) return true;
-
- // Momentarily stationary object (ant on the back)?
-- if ( dynamic_cast<CBaseAlien*>(m_object)->GetFixed() )
-+ if ( dynamic_cast<CBaseAlien&>(*m_object).GetFixed() )
- {
- m_bError = true;
- return true;
-diff --git a/src/object/task/tasktake.cpp b/src/object/task/tasktake.cpp
-index c67a7e5..13bd7cd 100644
---- a/src/object/task/tasktake.cpp
-+++ b/src/object/task/tasktake.cpp
-@@ -131,9 +131,9 @@ Error CTaskTake::Start()
- CObject* other = SearchFriendObject(oAngle, 1.5f, Math::PI*0.50f);
- if (other != nullptr) assert(other->Implements(ObjectInterfaceType::Powered));
-
-- if (other != nullptr && dynamic_cast<CPoweredObject*>(other)->GetPower() != nullptr)
-+ if (other != nullptr && dynamic_cast<CPoweredObject&>(*other).GetPower() != nullptr)
- {
-- CObject* power = dynamic_cast<CPoweredObject*>(other)->GetPower();
-+ CObject* power = dynamic_cast<CPoweredObject&>(*other).GetPower();
- type = power->GetType();
- if ( type == OBJECT_URANIUM ) return ERR_MANIP_RADIO;
- assert(power->Implements(ObjectInterfaceType::Transportable));
-@@ -161,7 +161,7 @@ Error CTaskTake::Start()
- CObject* other = SearchFriendObject(oAngle, 1.5f, Math::PI*0.50f);
- if (other != nullptr) assert(other->Implements(ObjectInterfaceType::Powered));
-
-- if (other != nullptr && dynamic_cast<CPoweredObject*>(other)->GetPower() == nullptr )
-+ if (other != nullptr && dynamic_cast<CPoweredObject&>(*other).GetPower() == nullptr )
- {
- //? m_camera->StartCentering(m_object, Math::PI*0.3f, -Math::PI*0.1f, 0.0f, 0.8f);
- m_arm = TTA_FRIEND;
-@@ -384,7 +384,7 @@ CObject* CTaskTake::SearchFriendObject(float &angle,
-
- assert(pObj->Implements(ObjectInterfaceType::Powered));
-
-- CObject* power = dynamic_cast<CPoweredObject*>(pObj)->GetPower();
-+ CObject* power = dynamic_cast<CPoweredObject&>(*pObj).GetPower();
- if (power != nullptr)
- {
- if ( power->GetLock() ) continue;
-@@ -392,7 +392,7 @@ CObject* CTaskTake::SearchFriendObject(float &angle,
- }
-
- Math::Matrix* mat = pObj->GetWorldMatrix(0);
-- Math::Vector oPos = Math::Transform(*mat, dynamic_cast<CPoweredObject*>(pObj)->GetPowerPosition());
-+ Math::Vector oPos = Math::Transform(*mat, dynamic_cast<CPoweredObject&>(*pObj).GetPowerPosition());
-
- float distance = fabs(Math::Distance(oPos, iPos) - (iRad+1.0f));
- if ( distance <= dLimit )
-@@ -400,7 +400,7 @@ CObject* CTaskTake::SearchFriendObject(float &angle,
- angle = Math::RotateAngle(oPos.x-iPos.x, iPos.z-oPos.z); // CW !
- if ( Math::TestAngle(angle, iAngle-aLimit, iAngle+aLimit) )
- {
-- Math::Vector powerPos = dynamic_cast<CPoweredObject*>(pObj)->GetPowerPosition();
-+ Math::Vector powerPos = dynamic_cast<CPoweredObject&>(*pObj).GetPowerPosition();
- m_height = powerPos.y;
- return pObj;
- }
-@@ -424,8 +424,8 @@ bool CTaskTake::TransporterTakeObject()
-
- m_cargoType = cargo->GetType();
-
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporter(m_object);
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporterPart(4); // takes with the hand
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporter(m_object);
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporterPart(4); // takes with the hand
-
- //? cargo->SetPosition(Math::Vector(2.2f, -1.0f, 1.1f));
- cargo->SetPosition(Math::Vector(1.7f, -0.5f, 1.1f));
-@@ -443,15 +443,15 @@ bool CTaskTake::TransporterTakeObject()
- if (other == nullptr) return false;
- assert(other->Implements(ObjectInterfaceType::Powered));
-
-- CObject* cargo = dynamic_cast<CPoweredObject*>(other)->GetPower();
-+ CObject* cargo = dynamic_cast<CPoweredObject&>(*other).GetPower();
- if (cargo == nullptr) return false; // the other does not have a battery?
- assert(cargo->Implements(ObjectInterfaceType::Transportable));
-
- m_cargoType = cargo->GetType();
-
-- dynamic_cast<CPoweredObject*>(other)->SetPower(nullptr);
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporter(m_object);
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporterPart(4); // takes with the hand
-+ dynamic_cast<CPoweredObject&>(*other).SetPower(nullptr);
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporter(m_object);
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporterPart(4); // takes with the hand
-
- //? cargo->SetPosition(Math::Vector(2.2f, -1.0f, 1.1f));
- cargo->SetPosition(Math::Vector(1.7f, -0.5f, 1.1f));
-@@ -486,7 +486,7 @@ bool CTaskTake::TransporterDeposeObject()
- cargo->SetRotationZ(0.0f);
- cargo->FloorAdjust(); // plate well on the ground
-
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporter(nullptr);
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporter(nullptr);
- m_object->SetCargo(nullptr); // deposit
- }
-
-@@ -497,7 +497,7 @@ bool CTaskTake::TransporterDeposeObject()
- if (other == nullptr) return false;
- assert(other->Implements(ObjectInterfaceType::Powered));
-
-- CObject* cargo = dynamic_cast<CPoweredObject*>(other)->GetPower();
-+ CObject* cargo = dynamic_cast<CPoweredObject&>(*other).GetPower();
- if (cargo != nullptr) return false; // the other already has a battery?
-
- cargo = m_object->GetCargo();
-@@ -505,14 +505,14 @@ bool CTaskTake::TransporterDeposeObject()
- assert(cargo->Implements(ObjectInterfaceType::Transportable));
- m_cargoType = cargo->GetType();
-
-- dynamic_cast<CPoweredObject*>(other)->SetPower(cargo);
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporter(other);
-+ dynamic_cast<CPoweredObject&>(*other).SetPower(cargo);
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporter(other);
-
-- cargo->SetPosition(dynamic_cast<CPoweredObject*>(other)->GetPowerPosition());
-+ cargo->SetPosition(dynamic_cast<CPoweredObject&>(*other).GetPowerPosition());
- cargo->SetRotationY(0.0f);
- cargo->SetRotationX(0.0f);
- cargo->SetRotationZ(0.0f);
-- dynamic_cast<CTransportableObject*>(cargo)->SetTransporterPart(0); // carried by the base
-+ dynamic_cast<CTransportableObject&>(*cargo).SetTransporterPart(0); // carried by the base
-
- m_object->SetCargo(nullptr); // deposit
- }
-diff --git a/src/object/task/taskterraform.cpp b/src/object/task/taskterraform.cpp
-index 6718bb7..8bb25d6 100644
---- a/src/object/task/taskterraform.cpp
-+++ b/src/object/task/taskterraform.cpp
-@@ -215,7 +215,7 @@ Error CTaskTerraform::Start()
-
- power = m_object->GetPower();
- if ( power == nullptr || !power->Implements(ObjectInterfaceType::PowerContainer) ) return ERR_TERRA_ENERGY;
-- energy = dynamic_cast<CPowerContainerObject*>(power)->GetEnergy();
-+ energy = dynamic_cast<CPowerContainerObject&>(*power).GetEnergy();
- if ( energy < ENERGY_TERRA+0.05f ) return ERR_TERRA_ENERGY;
-
- speed = m_physics->GetMotorSpeed();
-@@ -459,7 +459,7 @@ bool CTaskTerraform::Terraform()
- type == OBJECT_PARA) // Buildings?
- {
- if ( dist > 15.0f ) continue;
-- dynamic_cast<CDamageableObject*>(pObj)->DamageObject(DamageType::Explosive, 0.2f);
-+ dynamic_cast<CDamageableObject&>(*pObj).DamageObject(DamageType::Explosive, 0.2f);
- }
- else // Other?
- {
-@@ -470,7 +470,7 @@ bool CTaskTerraform::Terraform()
- else
- {
- if ( !pObj->Implements(ObjectInterfaceType::Movable) ) continue;
-- motion = dynamic_cast<CMovableObject*>(pObj)->GetMotion();
-+ motion = dynamic_cast<CMovableObject&>(*pObj).GetMotion();
-
- dist = Math::Distance(m_terraPos, pObj->GetPosition());
- if ( dist > ACTION_RADIUS ) continue;
-@@ -478,13 +478,13 @@ bool CTaskTerraform::Terraform()
- if ( type == OBJECT_ANT || type == OBJECT_SPIDER )
- {
- assert(pObj->Implements(ObjectInterfaceType::TaskExecutor));
-- dynamic_cast<CTaskExecutorObject*>(pObj)->StopForegroundTask();
-+ dynamic_cast<CTaskExecutorObject&>(*pObj).StopForegroundTask();
-
- int actionType = -1;
- if (type == OBJECT_ANT) actionType = MAS_BACK1;
- if (type == OBJECT_SPIDER) actionType = MSS_BACK1;
- motion->SetAction(actionType, 0.8f+Math::Rand()*0.3f);
-- dynamic_cast<CBaseAlien*>(pObj)->SetFixed(true); // not moving
-+ dynamic_cast<CBaseAlien&>(*pObj).SetFixed(true); // not moving
-
- if ( dist > 5.0f ) continue;
- m_engine->GetPyroManager()->Create(Gfx::PT_EXPLOO, pObj);
-diff --git a/src/physics/physics.cpp b/src/physics/physics.cpp
-index b97742c..112b982 100644
---- a/src/physics/physics.cpp
-+++ b/src/physics/physics.cpp
-@@ -804,7 +804,7 @@ void CPhysics::MotorUpdate(float aTime, float rTime)
-
- if (m_object->Implements(ObjectInterfaceType::Powered))
- {
-- power = dynamic_cast<CPowerContainerObject*>(dynamic_cast<CPoweredObject*>(m_object)->GetPower()); // searches for the object battery uses
-+ power = dynamic_cast<CPowerContainerObject*>(dynamic_cast<CPoweredObject&>(*m_object).GetPower()); // searches for the object battery uses
- if ( GetObjectEnergy(m_object) == 0.0f ) // no battery or flat?
- {
- motorSpeed.x = 0.0f;
-@@ -822,7 +822,7 @@ void CPhysics::MotorUpdate(float aTime, float rTime)
- }
- }
-
-- if ( m_object->GetType() == OBJECT_HUMAN && dynamic_cast<CDestroyableObject*>(m_object)->GetDying() == DeathType::Dead ) // dead man?
-+ if ( m_object->GetType() == OBJECT_HUMAN && dynamic_cast<CDestroyableObject&>(*m_object).GetDying() == DeathType::Dead ) // dead man?
- {
- motorSpeed.x = 0.0f;
- motorSpeed.z = 0.0f;
-@@ -852,7 +852,7 @@ void CPhysics::MotorUpdate(float aTime, float rTime)
- }
-
- if ( m_object->Implements(ObjectInterfaceType::JetFlying) &&
-- dynamic_cast<CJetFlyingObject*>(m_object)->GetRange() > 0.0f ) // limited flight range?
-+ dynamic_cast<CJetFlyingObject&>(*m_object).GetRange() > 0.0f ) // limited flight range?
- {
- CJetFlyingObject* jetFlying = dynamic_cast<CJetFlyingObject*>(m_object);
- if ( m_bLand || m_bSwim || m_bObstacle ) // on the ground or in the water?
-@@ -960,7 +960,7 @@ void CPhysics::MotorUpdate(float aTime, float rTime)
- bool reactorCool = true;
- if ( m_object->Implements(ObjectInterfaceType::JetFlying) )
- {
-- reactorCool = dynamic_cast<CJetFlyingObject*>(m_object)->GetReactorRange() > 0.1f;
-+ reactorCool = dynamic_cast<CJetFlyingObject&>(*m_object).GetReactorRange() > 0.1f;
- }
- if ( motorSpeed.y > 0.0f && reactorCool && pos.y < h )
- {
-@@ -1459,7 +1459,7 @@ bool CPhysics::EventFrame(const Event &event)
- iAngle = angle = m_object->GetRotation();
-
- // Accelerate is the descent, brake is the ascent.
-- if ( m_bFreeze || (m_object->Implements(ObjectInterfaceType::Destroyable) && dynamic_cast<CDestroyableObject*>(m_object)->IsDying()) )
-+ if ( m_bFreeze || (m_object->Implements(ObjectInterfaceType::Destroyable) && dynamic_cast<CDestroyableObject&>(*m_object).IsDying()) )
- {
- m_linMotion.terrainSpeed.x = 0.0f;
- m_linMotion.terrainSpeed.z = 0.0f;
-@@ -1614,8 +1614,8 @@ void CPhysics::SoundMotor(float rTime)
- else if ( type == OBJECT_ANT )
- {
- assert(m_object->Implements(ObjectInterfaceType::Destroyable));
-- if ( dynamic_cast<CDestroyableObject*>(m_object)->GetDying() == DeathType::Burning ||
-- dynamic_cast<CBaseAlien*>(m_object)->GetFixed() )
-+ if ( dynamic_cast<CDestroyableObject&>(*m_object).GetDying() == DeathType::Burning ||
-+ dynamic_cast<CBaseAlien&>(*m_object).GetFixed() )
- {
- if ( m_lastSoundInsect <= 0.0f )
- {
-@@ -1678,8 +1678,8 @@ void CPhysics::SoundMotor(float rTime)
- else if ( type == OBJECT_SPIDER )
- {
- assert(m_object->Implements(ObjectInterfaceType::Destroyable));
-- if ( dynamic_cast<CDestroyableObject*>(m_object)->GetDying() == DeathType::Burning ||
-- dynamic_cast<CBaseAlien*>(m_object)->GetFixed() )
-+ if ( dynamic_cast<CDestroyableObject&>(*m_object).GetDying() == DeathType::Burning ||
-+ dynamic_cast<CBaseAlien&>(*m_object).GetFixed() )
- {
- if ( m_lastSoundInsect <= 0.0f )
- {
-@@ -2501,7 +2501,7 @@ int CPhysics::ObjectAdapt(const Math::Vector &pos, const Math::Vector &angle)
- {
- if ( pObj == m_object ) continue; // yourself?
- if (IsObjectBeingTransported(pObj)) continue;
-- if ( pObj->Implements(ObjectInterfaceType::Destroyable) && dynamic_cast<CDestroyableObject*>(pObj)->IsDying() ) continue; // is burning or exploding?
-+ if ( pObj->Implements(ObjectInterfaceType::Destroyable) && dynamic_cast<CDestroyableObject&>(*pObj).IsDying() ) continue; // is burning or exploding?
-
- oType = pObj->GetType();
- if ( oType == OBJECT_TOTO ) continue;
-@@ -2603,7 +2603,7 @@ int CPhysics::ObjectAdapt(const Math::Vector &pos, const Math::Vector &angle)
-
- CPhysics* ph = nullptr;
- if (pObj->Implements(ObjectInterfaceType::Movable))
-- ph = dynamic_cast<CMovableObject*>(pObj)->GetPhysics();
-+ ph = dynamic_cast<CMovableObject&>(*pObj).GetPhysics();
- if ( ph != nullptr )
- {
- oAngle = pObj->GetRotation();
-@@ -2703,7 +2703,7 @@ bool CPhysics::ExploOther(ObjectType iType,
- if ( force > destructionForce && destructionForce >= 0.0f )
- {
- // TODO: implement "killer"?
-- dynamic_cast<CDamageableObject*>(pObj)->DamageObject(damageType);
-+ dynamic_cast<CDamageableObject&>(*pObj).DamageObject(damageType);
- }
- }
-
-@@ -2729,7 +2729,7 @@ bool CPhysics::ExploOther(ObjectType iType,
- {
- assert(pObj->Implements(ObjectInterfaceType::Damageable));
- // TODO: implement "killer"?
-- dynamic_cast<CDamageableObject*>(pObj)->DamageObject(DamageType::Collision, force/400.0f);
-+ dynamic_cast<CDamageableObject&>(*pObj).DamageObject(DamageType::Collision, force/400.0f);
- }
-
- if (oType == OBJECT_MOBILEwa ||
-@@ -2760,7 +2760,7 @@ bool CPhysics::ExploOther(ObjectType iType,
- {
- assert(pObj->Implements(ObjectInterfaceType::Damageable));
- // TODO: implement "killer"?
-- dynamic_cast<CDamageableObject*>(pObj)->DamageObject(DamageType::Collision, force/200.0f);
-+ dynamic_cast<CDamageableObject&>(*pObj).DamageObject(DamageType::Collision, force/200.0f);
- }
- }
-
-@@ -2786,7 +2786,7 @@ int CPhysics::ExploHimself(ObjectType iType, ObjectType oType, float force)
- if ( force > destructionForce && destructionForce >= 0.0f )
- {
- // TODO: implement "killer"?
-- dynamic_cast<CDamageableObject*>(m_object)->DamageObject(DamageType::Explosive);
-+ dynamic_cast<CDamageableObject&>(*m_object).DamageObject(DamageType::Explosive);
- return 2;
- }
-
-@@ -2867,7 +2867,7 @@ int CPhysics::ExploHimself(ObjectType iType, ObjectType oType, float force)
- }
-
- // TODO: implement "killer"?
-- if ( dynamic_cast<CDamageableObject*>(m_object)->DamageObject(DamageType::Collision, force) ) return 2;
-+ if ( dynamic_cast<CDamageableObject&>(*m_object).DamageObject(DamageType::Collision, force) ) return 2;
- }
- }
-
-@@ -2919,9 +2919,9 @@ void CPhysics::PowerParticle(float factor, bool bBreak)
- bCarryPower = false;
- if (m_object->Implements(ObjectInterfaceType::Carrier))
- {
-- CObject* cargo = dynamic_cast<CCarrierObject*>(m_object)->GetCargo();
-+ CObject* cargo = dynamic_cast<CCarrierObject&>(*m_object).GetCargo();
- if ( cargo != nullptr && cargo->Implements(ObjectInterfaceType::PowerContainer) &&
-- dynamic_cast<CPowerContainerObject*>(cargo)->IsRechargeable() &&
-+ dynamic_cast<CPowerContainerObject&>(*cargo).IsRechargeable() &&
- m_object->GetPartRotationZ(1) == ARM_STOCK_ANGLE1 )
- {
- bCarryPower = true; // carries a battery
-@@ -3209,7 +3209,7 @@ void CPhysics::MotorParticle(float aTime, float rTime)
- }
- else // in flight?
- {
-- if ( !m_bMotor || (m_object->Implements(ObjectInterfaceType::JetFlying) && dynamic_cast<CJetFlyingObject*>(m_object)->GetReactorRange() == 0.0f) ) return;
-+ if ( !m_bMotor || (m_object->Implements(ObjectInterfaceType::JetFlying) && dynamic_cast<CJetFlyingObject&>(*m_object).GetReactorRange() == 0.0f) ) return;
-
- if ( m_reactorTemperature < 1.0f ) // not too hot?
- {
-@@ -3339,7 +3339,7 @@ void CPhysics::MotorParticle(float aTime, float rTime)
- }
- else // in flight?
- {
-- if ( !m_bMotor || (m_object->Implements(ObjectInterfaceType::JetFlying) && dynamic_cast<CJetFlyingObject*>(m_object)->GetReactorRange() == 0.0f) ) return;
-+ if ( !m_bMotor || (m_object->Implements(ObjectInterfaceType::JetFlying) && dynamic_cast<CJetFlyingObject&>(*m_object).GetReactorRange() == 0.0f) ) return;
-
- if ( aTime-m_lastMotorParticle < m_engine->ParticleAdapt(0.02f) ) return;
- m_lastMotorParticle = aTime;
-@@ -3400,7 +3400,7 @@ void CPhysics::MotorParticle(float aTime, float rTime)
-
- if ( (type == OBJECT_HUMAN || type == OBJECT_TECH) && m_bSwim )
- {
-- if ( !m_object->Implements(ObjectInterfaceType::Destroyable) || dynamic_cast<CDestroyableObject*>(m_object)->GetDying() != DeathType::Dead )
-+ if ( !m_object->Implements(ObjectInterfaceType::Destroyable) || dynamic_cast<CDestroyableObject&>(*m_object).GetDying() != DeathType::Dead )
- {
- h = Math::Mod(aTime, 5.0f);
- if ( h < 3.5f && ( h < 1.5f || h > 1.6f ) ) return;
-@@ -3722,7 +3722,7 @@ Error CPhysics::GetError()
-
- if (m_object->Implements(ObjectInterfaceType::ProgramStorage))
- {
-- if ( dynamic_cast<CProgramStorageObject*>(m_object)->GetActiveVirus() )
-+ if ( dynamic_cast<CProgramStorageObject&>(*m_object).GetActiveVirus() )
- {
- return ERR_VEH_VIRUS;
- }
-@@ -3730,14 +3730,14 @@ Error CPhysics::GetError()
-
- if (m_object->Implements(ObjectInterfaceType::Powered))
- {
-- CObject* power = dynamic_cast<CPoweredObject*>(m_object)->GetPower(); // searches for the object battery used
-+ CObject* power = dynamic_cast<CPoweredObject&>(*m_object).GetPower(); // searches for the object battery used
- if (power == nullptr || !power->Implements(ObjectInterfaceType::PowerContainer))
- {
- return ERR_VEH_POWER;
- }
- else
- {
-- if ( dynamic_cast<CPowerContainerObject*>(power)->GetEnergy() == 0.0f ) return ERR_VEH_ENERGY;
-+ if ( dynamic_cast<CPowerContainerObject&>(*power).GetEnergy() == 0.0f ) return ERR_VEH_ENERGY;
- }
- }
-
-diff --git a/src/script/scriptfunc.cpp b/src/script/scriptfunc.cpp
-index 0816cce..7bec6b5 100644
---- a/src/script/scriptfunc.cpp
-+++ b/src/script/scriptfunc.cpp
-@@ -657,7 +657,7 @@ bool CScriptFunctions::rDelete(CBotVar* var, CBotVar* result, int& exception, vo
- }
-
- CObject* obj = CObjectManager::GetInstancePointer()->GetObjectById(rank);
-- if ( obj == nullptr || (obj->Implements(ObjectInterfaceType::Old) && dynamic_cast<COldObject*>(obj)->IsDying()) )
-+ if ( obj == nullptr || (obj->Implements(ObjectInterfaceType::Old) && dynamic_cast<COldObject&>(*obj).IsDying()) )
- {
- return true;
- }
-@@ -665,7 +665,7 @@ bool CScriptFunctions::rDelete(CBotVar* var, CBotVar* result, int& exception, vo
- {
- if ( exploType != DestructionType::NoEffect && obj->Implements(ObjectInterfaceType::Destroyable) )
- {
-- dynamic_cast<CDestroyableObject*>(obj)->DestroyObject(static_cast<DestructionType>(exploType));
-+ dynamic_cast<CDestroyableObject&>(*obj).DestroyObject(static_cast<DestructionType>(exploType));
- }
- else
- {
-@@ -1434,7 +1434,7 @@ bool CScriptFunctions::rProduce(CBotVar* var, CBotVar* result, int& exception, v
- CObjectManager::GetInstancePointer()->CreateObject(pos, angle, OBJECT_EGG);
- if (object->Implements(ObjectInterfaceType::Programmable))
- {
-- dynamic_cast<CProgrammableObject*>(object)->SetActivity(false);
-+ dynamic_cast<CProgrammableObject&>(*object).SetActivity(false);
- }
- }
- else
-@@ -1452,7 +1452,7 @@ bool CScriptFunctions::rProduce(CBotVar* var, CBotVar* result, int& exception, v
- if (type == OBJECT_MOBILEdr)
- {
- assert(object->Implements(ObjectInterfaceType::Old)); // TODO: temporary hack
-- dynamic_cast<COldObject*>(object)->SetManual(true);
-+ dynamic_cast<COldObject&>(*object).SetManual(true);
- }
- script->m_main->CreateShortcuts();
- }
-@@ -1467,7 +1467,7 @@ bool CScriptFunctions::rProduce(CBotVar* var, CBotVar* result, int& exception, v
- programStorage->ReadProgram(program, name2.c_str());
- program->readOnly = true;
- program->filename = name;
-- dynamic_cast<CProgrammableObject*>(object)->RunProgram(program);
-+ dynamic_cast<CProgrammableObject&>(*object).RunProgram(program);
- }
- }
-
-@@ -2073,7 +2073,7 @@ bool CScriptFunctions::rReceive(CBotVar* var, CBotVar* result, int& exception, v
- return true;
- }
-
-- CExchangePost* exchangePost = dynamic_cast<CTaskInfo*>(script->m_taskExecutor->GetForegroundTask())->FindExchangePost(power);
-+ CExchangePost* exchangePost = dynamic_cast<CTaskInfo&>(*script->m_taskExecutor->GetForegroundTask()).FindExchangePost(power);
- script->m_returnValue = exchangePost->GetInfoValue(p);
- }
- if ( !WaitForForegroundTask(script, result, exception) ) return false; // not finished
-@@ -2358,7 +2358,7 @@ bool CScriptFunctions::rShield(CBotVar* var, CBotVar* result, int& exception, vo
- }
- else // up ?
- {
-- dynamic_cast<CShielder*>(pThis)->SetShieldRadius(radius);
-+ dynamic_cast<CShielder&>(*pThis).SetShieldRadius(radius);
- err = script->m_taskExecutor->StartTaskShield(TSM_UP, 1000.0f);
- if ( err != ERR_OK )
- {
-@@ -2376,7 +2376,7 @@ bool CScriptFunctions::rShield(CBotVar* var, CBotVar* result, int& exception, vo
- else // up?
- {
- //? result->SetValInt(1); // shows the error
-- dynamic_cast<CShielder*>(pThis)->SetShieldRadius(radius);
-+ dynamic_cast<CShielder&>(*pThis).SetShieldRadius(radius);
- script->m_taskExecutor->StartTaskShield(TSM_UPDATE, 0.0f);
- }
- }
-@@ -2550,7 +2550,7 @@ bool CScriptFunctions::rMotor(CBotVar* var, CBotVar* result, int& exception, voi
- if ( turn < -1.0f ) turn = -1.0f;
- if ( turn > 1.0f ) turn = 1.0f;
-
-- if ( dynamic_cast<CBaseAlien*>(pThis) != nullptr && dynamic_cast<CBaseAlien*>(pThis)->GetFixed() ) // ant on the back?
-+ if ( dynamic_cast<CBaseAlien*>(pThis) != nullptr && dynamic_cast<CBaseAlien&>(*pThis).GetFixed() ) // ant on the back?
- {
- speed = 0.0f;
- turn = 0.0f;
-@@ -2659,7 +2659,7 @@ bool CScriptFunctions::rCmdline(CBotVar* var, CBotVar* result, int& exception, v
- assert(pThis->Implements(ObjectInterfaceType::Programmable));
-
- rank = var->GetValInt();
-- value = dynamic_cast<CProgrammableObject*>(pThis)->GetCmdLine(rank);
-+ value = dynamic_cast<CProgrammableObject&>(*pThis).GetCmdLine(rank);
- result->SetValFloat(value);
-
- return true;
-diff --git a/src/ui/controls/map.cpp b/src/ui/controls/map.cpp
-index 03cee9a..0ab5ea8 100644
---- a/src/ui/controls/map.cpp
-+++ b/src/ui/controls/map.cpp
-@@ -1173,7 +1173,7 @@ void CMap::UpdateObject(CObject* pObj)
- type != OBJECT_WORM &&
- type != OBJECT_MOBILEtg )
- {
-- if (pObj->Implements(ObjectInterfaceType::Controllable) && !dynamic_cast<CControllableObject*>(pObj)->GetSelectable()) return;
-+ if (pObj->Implements(ObjectInterfaceType::Controllable) && !dynamic_cast<CControllableObject&>(*pObj).GetSelectable()) return;
- }
- if ( pObj->GetProxyActivate() ) return;
- if (IsObjectBeingTransported(pObj)) return;
-@@ -1300,7 +1300,7 @@ void CMap::UpdateObject(CObject* pObj)
- color != MAPCOLOR_MOVE ) return;
- }*/
-
-- if ( pObj->Implements(ObjectInterfaceType::Controllable) && dynamic_cast<CControllableObject*>(pObj)->GetSelect() )
-+ if ( pObj->Implements(ObjectInterfaceType::Controllable) && dynamic_cast<CControllableObject&>(*pObj).GetSelect() )
- {
- m_map[MAPMAXOBJECT-1].type = type;
- m_map[MAPMAXOBJECT-1].object = pObj;
-diff --git a/src/ui/controls/target.cpp b/src/ui/controls/target.cpp
-index e7b899b..e8729d7 100644
---- a/src/ui/controls/target.cpp
-+++ b/src/ui/controls/target.cpp
-@@ -143,13 +143,13 @@ CObject* CTarget::DetectFriendObject(Math::Point pos)
- CObject* target = obj;
- if ( obj->Implements(ObjectInterfaceType::PowerContainer) && IsObjectBeingTransported(obj) )
- {
-- target = dynamic_cast<CTransportableObject*>(obj)->GetTransporter();
-+ target = dynamic_cast<CTransportableObject&>(*obj).GetTransporter();
- }
-
- if ( !target->GetDetectable() ) continue;
- if ( target->GetProxyActivate() ) continue;
-- if ( target->Implements(ObjectInterfaceType::Controllable) && dynamic_cast<CControllableObject*>(target)->GetSelect() ) continue;
-- if ( !target->Implements(ObjectInterfaceType::Controllable) || !dynamic_cast<CControllableObject*>(target)->GetSelectable() ) continue;
-+ if ( target->Implements(ObjectInterfaceType::Controllable) && dynamic_cast<CControllableObject&>(*target).GetSelect() ) continue;
-+ if ( !target->Implements(ObjectInterfaceType::Controllable) || !dynamic_cast<CControllableObject&>(*target).GetSelectable() ) continue;
-
- if (!target->Implements(ObjectInterfaceType::Old)) continue; // TODO: To be removed after COldObjectInterface is gone
-
-diff --git a/src/ui/displayinfo.cpp b/src/ui/displayinfo.cpp
-index b1e6220..5d2bafb 100644
---- a/src/ui/displayinfo.cpp
-+++ b/src/ui/displayinfo.cpp
-@@ -109,7 +109,7 @@ bool CDisplayInfo::EventProcess(const Event &event)
- if ( m_toto != nullptr )
- {
- assert(m_toto->Implements(ObjectInterfaceType::Movable));
-- CMotionToto* toto = static_cast<CMotionToto*>(dynamic_cast<CMovableObject*>(m_toto)->GetMotion());
-+ CMotionToto* toto = static_cast<CMotionToto*>(dynamic_cast<CMovableObject&>(*m_toto).GetMotion());
- assert(toto != nullptr);
- toto->SetMousePos(event.mousePos);
- }
-@@ -449,7 +449,7 @@ void CDisplayInfo::StartDisplayInfo(std::string filename, int index, bool bSoluc
- m_toto->SetDrawFront(true);
-
- assert(m_toto->Implements(ObjectInterfaceType::Movable));
-- CMotionToto* toto = static_cast<CMotionToto*>(dynamic_cast<CMovableObject*>(m_toto)->GetMotion());
-+ CMotionToto* toto = static_cast<CMotionToto*>(dynamic_cast<CMovableObject&>(*m_toto).GetMotion());
- assert(toto != nullptr);
- toto->StartDisplayInfo();
- }
-@@ -840,7 +840,7 @@ void CDisplayInfo::StopDisplayInfo()
- if ( m_toto != nullptr )
- {
- assert(m_toto->Implements(ObjectInterfaceType::Movable));
-- CMotionToto* toto = static_cast<CMotionToto*>(dynamic_cast<CMovableObject*>(m_toto)->GetMotion());
-+ CMotionToto* toto = static_cast<CMotionToto*>(dynamic_cast<CMovableObject&>(*m_toto).GetMotion());
- assert(toto != nullptr);
- toto->StopDisplayInfo();
- }
-diff --git a/src/ui/displaytext.cpp b/src/ui/displaytext.cpp
-index 6bd8dcf..51c82ba 100644
---- a/src/ui/displaytext.cpp
-+++ b/src/ui/displaytext.cpp
-@@ -258,7 +258,7 @@ void CDisplayText::DisplayText(const char *text, Math::Vector goal, float height
- if ( toto != nullptr )
- {
- assert(toto->Implements(ObjectInterfaceType::Movable));
-- motion = dynamic_cast<CMovableObject*>(toto)->GetMotion();
-+ motion = dynamic_cast<CMovableObject&>(*toto).GetMotion();
-
- if ( type == TT_ERROR )
- {
-diff --git a/src/ui/mainshort.cpp b/src/ui/mainshort.cpp
-index 9017ccd..5e061a9 100644
---- a/src/ui/mainshort.cpp
-+++ b/src/ui/mainshort.cpp
-@@ -150,7 +150,7 @@ bool CMainShort::CreateShortcuts()
- for (CObject* pObj : CObjectManager::GetInstancePointer()->GetAllObjects())
- {
- if ( !pObj->GetDetectable() ) continue;
-- if ( pObj->Implements(ObjectInterfaceType::Controllable) && !dynamic_cast<CControllableObject*>(pObj)->GetSelectable() ) continue;
-+ if ( pObj->Implements(ObjectInterfaceType::Controllable) && !dynamic_cast<CControllableObject&>(*pObj).GetSelectable() ) continue;
- if ( pObj->GetProxyActivate() ) continue;
-
- int icon = GetShortcutIcon(pObj->GetType());
-@@ -245,9 +245,9 @@ bool CMainShort::UpdateShortcuts()
- if ( pc != nullptr )
- {
- assert(m_shortcuts[i]->Implements(ObjectInterfaceType::Controllable));
-- pc->SetState(STATE_CHECK, dynamic_cast<CControllableObject*>(m_shortcuts[i])->GetSelect());
-- pc->SetState(STATE_RUN, m_shortcuts[i]->Implements(ObjectInterfaceType::Programmable) && dynamic_cast<CProgrammableObject*>(m_shortcuts[i])->IsProgram());
-- pc->SetState(STATE_DAMAGE, dynamic_cast<CDamageableObject*>(m_shortcuts[i])->IsDamaging());
-+ pc->SetState(STATE_CHECK, dynamic_cast<CControllableObject&>(*m_shortcuts[i]).GetSelect());
-+ pc->SetState(STATE_RUN, m_shortcuts[i]->Implements(ObjectInterfaceType::Programmable) && dynamic_cast<CProgrammableObject&>(*m_shortcuts[i]).IsProgram());
-+ pc->SetState(STATE_DAMAGE, dynamic_cast<CDamageableObject&>(*m_shortcuts[i]).IsDamaging());
- }
- }
- return true;
-diff --git a/src/ui/object_interface.cpp b/src/ui/object_interface.cpp
-index ab1fb08..71d3ef2 100644
---- a/src/ui/object_interface.cpp
-+++ b/src/ui/object_interface.cpp
-@@ -593,7 +593,7 @@ bool CObjectInterface::EventProcess(const Event &event)
- ps = static_cast< CSlider* >(pw->SearchControl(EVENT_OBJECT_DIMSHIELD));
- if ( ps != nullptr )
- {
-- dynamic_cast<CShielder*>(m_object)->SetShieldRadius((ps->GetVisibleValue()-(RADIUS_SHIELD_MIN/g_unit))/((RADIUS_SHIELD_MAX-RADIUS_SHIELD_MIN)/g_unit));
-+ dynamic_cast<CShielder&>(*m_object).SetShieldRadius((ps->GetVisibleValue()-(RADIUS_SHIELD_MIN/g_unit))/((RADIUS_SHIELD_MAX-RADIUS_SHIELD_MIN)/g_unit));
- }
- }
- }
-@@ -1726,7 +1726,7 @@ void CObjectInterface::UpdateInterface()
- ps = static_cast< CSlider* >(pw->SearchControl(EVENT_OBJECT_DIMSHIELD));
- if ( ps != nullptr )
- {
-- ps->SetVisibleValue((RADIUS_SHIELD_MIN/g_unit)+dynamic_cast<CShielder*>(m_object)->GetShieldRadius()*((RADIUS_SHIELD_MAX-RADIUS_SHIELD_MIN)/g_unit));
-+ ps->SetVisibleValue((RADIUS_SHIELD_MIN/g_unit)+dynamic_cast<CShielder&>(*m_object).GetShieldRadius()*((RADIUS_SHIELD_MAX-RADIUS_SHIELD_MIN)/g_unit));
- }
- }
-
diff --git a/colobot.spec b/colobot.spec
index fb35510..096c7b7 100644
--- a/colobot.spec
+++ b/colobot.spec
@@ -1,8 +1,8 @@
Name: colobot
%global orgname info.colobot.Colobot
-Version: 0.1.12
-Release: 14%{?dist}
+Version: 0.2.0
+Release: 1%{?dist}
Summary: A video game that teaches programming in a fun way
License: GPLv3
@@ -45,35 +45,37 @@ Source120: %{musicurl}/Prototype.ogg
# so non-English speakers may have the game always crash when putting in the player name.
#
# See: https://github.com/colobot/colobot/issues/1268
-Patch0: colobot--do-not-translate-default-player-name.patch
+Patch0: 0000-do-not-translate-default-player-name.patch
-# GCC10 complains about unknown identifiers
-Patch1: colobot--missing-includes.patch
+# Fix test compilation failure due to C++ "One Definition Rule" violation
+Patch1: 0001-fix-test-compile-failure.patch
-# GCC11 complains about potential NULL from dynamic cast, fix them
-Patch2: colobot-gcc11.patch
-BuildRequires: boost-devel >= 1.51
-BuildRequires: boost-filesystem >= 1.51
-BuildRequires: boost-regex >= 1.51
BuildRequires: cmake >= 2.8
BuildRequires: desktop-file-utils
BuildRequires: gcc-c++
+BuildRequires: libappstream-glib
+BuildRequires: po4a
+BuildRequires: xmlstarlet
+BuildRequires: %{_bindir}/pod2man
+BuildRequires: %{_bindir}/rsvg-convert
+
+BuildRequires: boost-devel >= 1.51
+BuildRequires: boost-filesystem >= 1.51
+BuildRequires: boost-regex >= 1.51
BuildRequires: gettext-devel >= 0.18
BuildRequires: glew-devel >= 1.8.0
-BuildRequires: libappstream-glib
+BuildRequires: gtest-devel
BuildRequires: libogg-devel >= 1.3.0
BuildRequires: libpng-devel >= 1.2
BuildRequires: libsndfile-devel >= 1.0.25
BuildRequires: libvorbis >= 1.3.2
BuildRequires: openal-soft-devel >= 1.13
-BuildRequires: po4a
BuildRequires: physfs-devel
BuildRequires: python3-devel
-BuildRequires: SDL2-devel SDL2_image-devel SDL2_ttf-devel
-BuildRequires: xmlstarlet
-BuildRequires: %{_bindir}/pod2man
-BuildRequires: %{_bindir}/rsvg-convert
+BuildRequires: SDL2-devel
+BuildRequires: SDL2_image-devel
+BuildRequires: SDL2_ttf-devel
Requires: colobot-data = %{version}-%{release}
Requires: colobot-music = %{version}-%{release}
@@ -106,7 +108,6 @@ Music files used by Colobot Gold.
%setup -q -n colobot-%{gittag}
%patch0 -p1
%patch1 -p1
-%patch2 -p1
rm -rf ./data
cp %{SOURCE1} ./data.tgz
@@ -137,16 +138,23 @@ cp -a %{SOURCE119} data/music/
cp -a %{SOURCE120} data/music/
sed \
- -e 's|set(COLOBOT_INSTALL_BIN_DIR ${CMAKE_INSTALL_PREFIX}/games |set(COLOBOT_INSTALL_BIN_DIR %{_bindir}/ |' \
- -e 's|set(COLOBOT_INSTALL_LIB_DIR ${CMAKE_INSTALL_PREFIX}/lib/colobot |set(COLOBOT_INSTALL_LIB_DIR %{_libdir}/colobot |' \
- -e 's|set(COLOBOT_INSTALL_DATA_DIR ${CMAKE_INSTALL_PREFIX}/share/games/colobot |set(COLOBOT_INSTALL_DATA_DIR %{_datadir}/colobot |' \
- -e 's|set(COLOBOT_INSTALL_I18N_DIR ${CMAKE_INSTALL_PREFIX}/share/locale |set(COLOBOT_INSTALL_I18N_DIR %{_datadir}/locale |' \
- -e 's|set(COLOBOT_INSTALL_DOC_DIR ${CMAKE_INSTALL_PREFIX}/share/doc/colobot |set(COLOBOT_INSTALL_DOC_DIR %{_datadir}/doc/colobot |' \
- -i CMakeLists.txt
+ -e 's|set(COLOBOT_INSTALL_BIN_DIR ${CMAKE_INSTALL_PREFIX}/games |set(COLOBOT_INSTALL_BIN_DIR %{_bindir}/ |' \
+ -e 's|set(COLOBOT_INSTALL_LIB_DIR ${CMAKE_INSTALL_PREFIX}/lib/colobot |set(COLOBOT_INSTALL_LIB_DIR %{_libdir}/colobot |' \
+ -e 's|set(COLOBOT_INSTALL_DATA_DIR ${CMAKE_INSTALL_PREFIX}/share/games/colobot |set(COLOBOT_INSTALL_DATA_DIR %{_datadir}/colobot |' \
+ -e 's|set(COLOBOT_INSTALL_I18N_DIR ${CMAKE_INSTALL_PREFIX}/share/locale |set(COLOBOT_INSTALL_I18N_DIR %{_datadir}/locale |' \
+ -e 's|set(COLOBOT_INSTALL_DOC_DIR ${CMAKE_INSTALL_PREFIX}/share/doc/colobot |set(COLOBOT_INSTALL_DOC_DIR %{_datadir}/doc/colobot |' \
+ -i CMakeLists.txt
%build
-%cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=%{__python3} ./
+%cmake \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DDESKTOP=ON \
+ -DPORTABLE=OFF \
+ -DPYTHON_EXECUTABLE=%{__python3} \
+ -DUSE_RELATIVE_PATHS=OFF \
+ -DTESTS=ON \
+ ./
%cmake_build
@@ -161,6 +169,17 @@ sed -e 's|%{name}.desktop|%{orgname}.desktop|' -i %{buildroot}%{_metainfodir}/%{
%check
+# Run unit tests. The test suite includes tests for parsing the .ini file,
+# hence the test runner requires a colobot.ini file to read.
+mkdir test-run-dir
+cp -a \
+ test/unit/common/colobot.ini \
+ %{_vpath_builddir}/colobot_ut \
+ ./test-run-dir
+pushd test-run-dir
+ ./colobot_ut
+popd
+
desktop-file-validate %{buildroot}%{_datadir}/applications/%{orgname}.desktop
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/%{orgname}.appdata.xml
@@ -191,6 +210,13 @@ appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/%{orgname}.app
%changelog
+* Sun Aug 22 2021 Artur Frenszek-Iwicki <fedora(a)svgames.pl> - 0.2.0-1
+- Update to v0.2.0
+- Drop Patch1 (missing includes - accepted upstream)
+- Drop Patch2 (potential NULL casts - accepted upstream)
+- Explicitly set some CMake options instead of relying on upstream defaults
+- Build tests and run them in %%check
+
* Fri Aug 06 2021 Jonathan Wakely <jwakely(a)redhat.com> - 0.1.12-14
- Rebuilt for Boost 1.76
diff --git a/sources b/sources
index ebb7c33..2e94ecd 100644
--- a/sources
+++ b/sources
@@ -1,5 +1,5 @@
-SHA512 (colobot-colobot-gold-0.1.12-alpha.tar.gz) = 63647a16b376db6544830f96e7d323c0f58003645bf636abd1cab0ffd47b39b0bef47191d584f5156b75324d75dfdfdcabe8b89be565087c37c367ca366f3cbe
-SHA512 (colobot-data-colobot-gold-0.1.12-alpha.tar.gz) = 599cc72e1383826b5c840446f52f53b0f325b1de2ce08826bbd6b04072a51f1c4007b5683f2608dd7be67ab358ef2856e790bbbe5c73d8514141e3284be47508
+SHA512 (colobot-colobot-gold-0.2.0-alpha.tar.gz) = 9c35ce6da319ef20ff68a9722f0b683adaa2fcada2b89bb322ba5772dfd9371adacd045ae160550780083902c024400c29e1d1f11dcb8b6547ba7d48e401c4c3
+SHA512 (colobot-data-colobot-gold-0.2.0-alpha.tar.gz) = e36af1ad1e5470bec22a4923580be3ea5da69407b79af7c82a9d8c6ceff566b2f1e8e5aeb42f07098bbc459cc77ec391900ee79e8d0315a5abed7b36c44eafbb
SHA512 (Constructive.ogg) = 76478ba7a5dd6645822fe99802ddda0df1a9e394070a9a4c3c03bd967bd25e7308b7358025fa5c48a9ababfbf470aae41f6aefabc4923a01ad45cd7aa23a9ff8
SHA512 (Humanitarian.ogg) = fc3feae5221eb67a06dc28dfe51d0611d15b995915c8d183fb17ccbdea2829386305c41be62650169b7f12b9831672aa3f4d01dff86f513c00c2e68eb35caa4f
SHA512 (Hv2.ogg) = 94a486b9e75992c5960e54f6f29bf03e84a873f33dd2bb8406a24e7d5380dafc71cfea0ec8cc2deaff1d77f4b59259bafa3c7951bd7f2625f36c8b8256c958d2
2 years, 9 months
Architecture specific change in rpms/libreoffice.git
by githook-noreply@fedoraproject.org
The package rpms/libreoffice.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/libreoffice.git/commit/?id=673551....
Change:
+%ifnarch s390x
Thanks.
Full change:
============
commit 75310bc042063b90c2f442f6d09b94a3786d3fda
Merge: 60006c1 6735516
Author: Caolán McNamara <caolanm(a)redhat.com>
Date: Sat Aug 21 21:14:11 2021 +0100
Merge branch 'rawhide' into f35
commit 6735516bb4939989ac7c0102df6165f37ecb3db3
Author: Caolán McNamara <caolanm(a)redhat.com>
Date: Sat Aug 21 21:12:31 2021 +0100
fix arm32 uno bridge
diff --git a/0001-arm-fix-bridge.patch b/0001-arm-fix-bridge.patch
new file mode 100644
index 0000000..621912d
--- /dev/null
+++ b/0001-arm-fix-bridge.patch
@@ -0,0 +1,92 @@
+From 142e236c6dedc03915d2b3fe2cb6122ad714ac09 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm(a)redhat.com>
+Date: Thu, 19 Aug 2021 16:15:13 +0100
+Subject: [PATCH] arm: fix bridge
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+which went a little wrong in
+
+commit dd91d3389c26645459d3b80649941d65efa4f63f
+Date: Sat Jan 2 14:36:44 2021 +0100
+
+ Fix some warnings for Raspberry pi 4 (part3)
+
+Change-Id: Ief7e1146b7480a1c16ec0810f991296710214332
+Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120830
+Tested-by: Caolán McNamara <caolanm(a)redhat.com>
+Reviewed-by: Caolán McNamara <caolanm(a)redhat.com>
+
+and...
+
+arm: nStackBytes was already the right amount of bytes
+
+regression from...
+
+commit 6e3424ca1131fe371f63e456267de476b5eb0eae
+Date: Sat Jan 2 11:03:12 2021 +0100
+
+ Fix some warnings for Raspberry pi 4 (part2)
+
+which changed that
+
+Change-Id: I9a19d7d6bc1e4115ffffbe32d8d62be5d275d500
+Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120747
+Tested-by: Caolán McNamara <caolanm(a)redhat.com>
+Reviewed-by: René Engelhard <rene(a)debian.org>
+Reviewed-by: Caolán McNamara <caolanm(a)redhat.com>
+---
+ bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx
+index 8533415ed087..a22ac393b5f7 100644
+--- a/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx
++++ b/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx
+@@ -251,7 +251,7 @@ void callVirtualMethod(
+ {
+ // 8-bytes aligned
+ sal_uInt32 nStackBytes = ( ( nStack + 1 ) >> 1 ) * 8;
+- sal_uInt32 *stack = static_cast<sal_uInt32 *>(__builtin_alloca( nStackBytes * sizeof(sal_uInt32)));
++ sal_uInt32 *stack = static_cast<sal_uInt32 *>(__builtin_alloca( nStackBytes ));
+ memcpy( stack, pStack, nStackBytes );
+ }
+
+@@ -298,9 +298,9 @@ void callVirtualMethod(
+
+ #define INSERT_INT32( pSV, nr, pGPR, pDS ) \
+ if ( nr < arm::MAX_GPR_REGS ) \
+- pGPR[nr++] = reinterpret_cast<sal_uInt32>( pSV ); \
++ pGPR[nr++] = *reinterpret_cast<const sal_uInt32*>( pSV ); \
+ else \
+- *pDS++ = reinterpret_cast<sal_uInt32>( pSV );
++ *pDS++ = *reinterpret_cast<const sal_uInt32*>( pSV );
+
+ #ifdef __ARM_EABI__
+ #define INSERT_INT64( pSV, nr, pGPR, pDS, pStart ) \
+@@ -310,8 +310,8 @@ void callVirtualMethod(
+ } \
+ if ( nr < arm::MAX_GPR_REGS ) \
+ { \
+- *reinterpret_cast<sal_uInt32 *>(pGPR[nr++]) = *static_cast<sal_uInt32 *>( pSV ); \
+- *reinterpret_cast<sal_uInt32 *>(pGPR[nr++]) = *(static_cast<sal_uInt32 *>( pSV ) + 1); \
++ pGPR[nr++] = *static_cast<const sal_uInt32 *>( pSV ); \
++ pGPR[nr++] = *(static_cast<const sal_uInt32 *>( pSV ) + 1); \
+ } \
+ else \
+ { \
+@@ -319,8 +319,8 @@ void callVirtualMethod(
+ { \
+ ++pDS; \
+ } \
+- *reinterpret_cast<sal_uInt32 *>(*pDS++) = static_cast<sal_uInt32 *>( pSV )[0]; \
+- *reinterpret_cast<sal_uInt32 *>(*pDS++) = static_cast<sal_uInt32 *>( pSV )[1]; \
++ *pDS++ = static_cast<sal_uInt32 *>( pSV )[0]; \
++ *pDS++ = static_cast<sal_uInt32 *>( pSV )[1]; \
+ }
+ #else
+ #define INSERT_INT64( pSV, nr, pGPR, pDS, pStart ) \
+--
+2.31.1
+
diff --git a/0001-arm-nStackBytes-was-already-the-right-amount-of-byte.patch b/0001-arm-nStackBytes-was-already-the-right-amount-of-byte.patch
deleted file mode 100644
index d0f2881..0000000
--- a/0001-arm-nStackBytes-was-already-the-right-amount-of-byte.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From ed428ddfef87a5641598a017e8781f107f3f3c27 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm(a)redhat.com>
-Date: Thu, 19 Aug 2021 16:15:13 +0100
-Subject: [PATCH] arm: nStackBytes was already the right amount of bytes
-
-possible regression from...
-
-commit 6e3424ca1131fe371f63e456267de476b5eb0eae
-Date: Sat Jan 2 11:03:12 2021 +0100
-
- Fix some warnings for Raspberry pi 4 (part2)
-
-which changed that
-
-Change-Id: I9a19d7d6bc1e4115ffffbe32d8d62be5d275d500
----
- bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx
-index 8533415ed087..7a8adad90ead 100644
---- a/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx
-+++ b/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx
-@@ -251,7 +251,7 @@ void callVirtualMethod(
- {
- // 8-bytes aligned
- sal_uInt32 nStackBytes = ( ( nStack + 1 ) >> 1 ) * 8;
-- sal_uInt32 *stack = static_cast<sal_uInt32 *>(__builtin_alloca( nStackBytes * sizeof(sal_uInt32)));
-+ sal_uInt32 *stack = static_cast<sal_uInt32 *>(__builtin_alloca( nStackBytes ));
- memcpy( stack, pStack, nStackBytes );
- }
-
---
-2.31.1
-
diff --git a/libreoffice.spec b/libreoffice.spec
index a9cdf14..37b0f11 100644
--- a/libreoffice.spec
+++ b/libreoffice.spec
@@ -50,7 +50,7 @@ Summary: Free Software Productivity Suite
Name: libreoffice
Epoch: 1
Version: %{libo_version}.4
-Release: 2%{?libo_prerelease}%{?dist}
+Release: 3%{?libo_prerelease}%{?dist}
License: (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and MPLv2.0 and CC0
URL: http://www.libreoffice.org/
@@ -250,7 +250,7 @@ Patch2: 0001-Resolves-rhbz-1432468-disable-opencl-by-default.patch
Patch3: 0001-make-with-idlc-cpp-cpp-work-for-gcc-cpp-as-a-ucpp-re.patch
Patch4: 0001-Resolves-tdf-132739-two-style-tags-where-there-shoul.patch
Patch5: 0001-Revert-tdf-101630-gdrive-support-w-oAuth-and-Drive-A.patch
-Patch6: 0001-arm-nStackBytes-was-already-the-right-amount-of-byte.patch
+Patch6: 0001-arm-fix-bridge.patch
# not upstreamed
Patch500: 0001-disable-libe-book-support.patch
@@ -1511,7 +1511,7 @@ for jar in %{buildroot}%{baseinstdir}/program/classes/*.jar; do
done
%check
-%ifnarch s390x %{arm}
+%ifnarch s390x
make unitcheck slowcheck
# we don't need this anymore
rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar
@@ -2248,6 +2248,9 @@ gtk-update-icon-cache -q %{_datadir}/icons/hicolor &>/dev/null || :
%{_includedir}/LibreOfficeKit
%changelog
+* Sat Aug 21 2021 Caolán McNamara <caolanm(a)redhat.com> - 1:7.2.0.4-3
+- fix arm32 uno bridge
+
* Fri Aug 20 2021 Caolán McNamara <caolanm(a)redhat.com> - 1:7.2.0.4-2
- s390x firebird is available again
2 years, 9 months
Architecture specific change in rpms/perl-DBD-Firebird.git
by githook-noreply@fedoraproject.org
The package rpms/perl-DBD-Firebird.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/perl-DBD-Firebird.git/commit/?id=....
Change:
-ExcludeArch: s390x
Thanks.
Full change:
============
commit c0d640def9c5a19bb11b6d85d71bf47bbb5ff5b2
Author: Robert Scheck <robert(a)fedoraproject.org>
Date: Sat Aug 21 21:28:33 2021 +0200
Re-enabled s390x build since firebird 4.x is fixed (#1969393)
diff --git a/perl-DBD-Firebird.spec b/perl-DBD-Firebird.spec
index 228dd10..471a454 100644
--- a/perl-DBD-Firebird.spec
+++ b/perl-DBD-Firebird.spec
@@ -6,7 +6,7 @@
Summary: Firebird interface for perl
Name: perl-DBD-Firebird
Version: 1.32
-Release: 7%{?dist}
+Release: 8%{?dist}
License: GPL+ or Artistic
URL: https://metacpan.org/release/%{pkgname}
Source: https://cpan.metacpan.org/authors/id/M/MA/MARIUZ/%{pkgname}-%{version}.ta...
@@ -54,10 +54,6 @@ BuildRequires: perl(Time::HiRes)
BuildRequires: perl(utf8)
BuildRequires: perl(vars)
BuildRequires: perl(warnings)
-# Firebird 4.x has s390x build issues (#1969393)
-%if 0%{?fedora} >= 35
-ExcludeArch: s390x
-%endif
%description
DBD::Firebird is a Perl module that works with the DBI module to provide
@@ -99,6 +95,9 @@ make test
%{_mandir}/man3/*.3*
%changelog
+* Sat Aug 21 2021 Robert Scheck <robert(a)fedoraproject.org> 1.32-8
+- Re-enabled s390x build since firebird 4.x is fixed (#1969393)
+
* Mon Jul 26 2021 Robert Scheck <robert(a)fedoraproject.org> 1.32-7
- Disabled s390x build until firebird 4.x is fixed (#1969393)
2 years, 9 months
Architecture specific change in rpms/rust-memmap2.git
by githook-noreply@fedoraproject.org
The package rpms/rust-memmap2.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/rust-memmap2.git/commit/?id=5a906....
Change:
-%ifarch %{arm} %{ix86}
Thanks.
Full change:
============
commit 5a9069b05e5d0db35958b323348ad7bbcae3f817
Author: Fabio Valentini <decathorpe(a)gmail.com>
Date: Sat Aug 21 17:58:30 2021 +0200
Update to version 0.3.1; Fixes RHBZ#1993703
diff --git a/.gitignore b/.gitignore
index db9dd76..c56d626 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
/memmap2-0.1.0.crate
/memmap2-0.3.0.crate
+/memmap2-0.3.1.crate
diff --git a/rust-memmap2.spec b/rust-memmap2.spec
index 05adb85..414f85a 100644
--- a/rust-memmap2.spec
+++ b/rust-memmap2.spec
@@ -1,11 +1,11 @@
-# Generated by rust2rpm 17
+# Generated by rust2rpm 18
%bcond_without check
%global debug_package %{nil}
%global crate memmap2
Name: rust-%{crate}
-Version: 0.3.0
+Version: 0.3.1
Release: %autorelease
Summary: Cross-platform Rust API for memory-mapped file IO
@@ -37,7 +37,7 @@ which use "%{crate}" crate.
%files devel
%license LICENSE-MIT LICENSE-APACHE
-%doc README.md
+%doc README.md CHANGELOG.md
%{cargo_registry}/%{crate}-%{version_no_tilde}/
%package -n %{name}+default-devel
@@ -67,13 +67,8 @@ which use "default" feature of "%{crate}" crate.
%if %{with check}
%check
-%ifarch %{arm} %{ix86}
-# skip a test that does not work on 32-bit architectures
-%cargo_test -- -- --skip map_offset
-%else
%cargo_test
%endif
-%endif
%changelog
%autochangelog
diff --git a/sources b/sources
index 626b2bd..f5696dc 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (memmap2-0.3.0.crate) = 43a4a657d5c6d54d50f9411b3a5855d07388a84f521923f264f18039b58555bfe216c1fe90418ba383ab12218937b01b17be1c337b08df3b9ee7430e0466da6f
+SHA512 (memmap2-0.3.1.crate) = 1cf08cd046581d882fa78cc1e6efbb2e5814dada9ee866811732dcde776fd8c0cde2f03167010f32bb4984533e787536ef1954a1152a70d7f0278d5adfa96b28
commit e72888793315e49357613e8a6eacb5e05fd79056
Author: Fabio Valentini <decathorpe(a)gmail.com>
Date: Sat Aug 21 17:47:43 2021 +0200
convert to rpmautospec
diff --git a/changelog b/changelog
new file mode 100644
index 0000000..673d6d6
--- /dev/null
+++ b/changelog
@@ -0,0 +1,18 @@
+* Fri Jul 23 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.0-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
+
+* Fri Jun 18 2021 Fabio Valentini <decathorpe(a)gmail.com> - 0.3.0-2
+- Skip a test that does not work on 32-bit architectures.
+
+* Fri Jun 18 2021 Fabio Valentini <decathorpe(a)gmail.com> - 0.3.0-1
+- Update to version 0.3.0.
+- Fixes RHBZ#1909435
+
+* Wed Jan 27 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.1.0-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+
+* Wed Jul 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.1.0-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Sat Feb 29 13:45:08 CET 2020 Igor Raits <ignatenkobrain(a)fedoraproject.org> - 0.1.0-1
+- Initial package
diff --git a/rust-memmap2.spec b/rust-memmap2.spec
index c2e6db6..05adb85 100644
--- a/rust-memmap2.spec
+++ b/rust-memmap2.spec
@@ -6,7 +6,7 @@
Name: rust-%{crate}
Version: 0.3.0
-Release: 3%{?dist}
+Release: %autorelease
Summary: Cross-platform Rust API for memory-mapped file IO
# Upstream license specification: MIT/Apache-2.0
@@ -76,21 +76,4 @@ which use "default" feature of "%{crate}" crate.
%endif
%changelog
-* Fri Jul 23 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.0-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
-
-* Fri Jun 18 2021 Fabio Valentini <decathorpe(a)gmail.com> - 0.3.0-2
-- Skip a test that does not work on 32-bit architectures.
-
-* Fri Jun 18 2021 Fabio Valentini <decathorpe(a)gmail.com> - 0.3.0-1
-- Update to version 0.3.0.
-- Fixes RHBZ#1909435
-
-* Wed Jan 27 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.1.0-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
-
-* Wed Jul 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.1.0-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
-
-* Sat Feb 29 13:45:08 CET 2020 Igor Raits <ignatenkobrain(a)fedoraproject.org> - 0.1.0-1
-- Initial package
+%autochangelog
commit 57ed320dd4518409a34a221946f46c8802466b59
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Fri Jul 23 14:48:55 2021 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/rust-memmap2.spec b/rust-memmap2.spec
index f3174ed..c2e6db6 100644
--- a/rust-memmap2.spec
+++ b/rust-memmap2.spec
@@ -6,7 +6,7 @@
Name: rust-%{crate}
Version: 0.3.0
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: Cross-platform Rust API for memory-mapped file IO
# Upstream license specification: MIT/Apache-2.0
@@ -76,6 +76,9 @@ which use "default" feature of "%{crate}" crate.
%endif
%changelog
+* Fri Jul 23 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.0-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
+
* Fri Jun 18 2021 Fabio Valentini <decathorpe(a)gmail.com> - 0.3.0-2
- Skip a test that does not work on 32-bit architectures.
2 years, 9 months
Architecture specific change in rpms/rust-memmap2.git
by githook-noreply@fedoraproject.org
The package rpms/rust-memmap2.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/rust-memmap2.git/commit/?id=5a906....
Change:
-%ifarch %{arm} %{ix86}
Thanks.
Full change:
============
commit 5a9069b05e5d0db35958b323348ad7bbcae3f817
Author: Fabio Valentini <decathorpe(a)gmail.com>
Date: Sat Aug 21 17:58:30 2021 +0200
Update to version 0.3.1; Fixes RHBZ#1993703
diff --git a/.gitignore b/.gitignore
index db9dd76..c56d626 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
/memmap2-0.1.0.crate
/memmap2-0.3.0.crate
+/memmap2-0.3.1.crate
diff --git a/rust-memmap2.spec b/rust-memmap2.spec
index 05adb85..414f85a 100644
--- a/rust-memmap2.spec
+++ b/rust-memmap2.spec
@@ -1,11 +1,11 @@
-# Generated by rust2rpm 17
+# Generated by rust2rpm 18
%bcond_without check
%global debug_package %{nil}
%global crate memmap2
Name: rust-%{crate}
-Version: 0.3.0
+Version: 0.3.1
Release: %autorelease
Summary: Cross-platform Rust API for memory-mapped file IO
@@ -37,7 +37,7 @@ which use "%{crate}" crate.
%files devel
%license LICENSE-MIT LICENSE-APACHE
-%doc README.md
+%doc README.md CHANGELOG.md
%{cargo_registry}/%{crate}-%{version_no_tilde}/
%package -n %{name}+default-devel
@@ -67,13 +67,8 @@ which use "default" feature of "%{crate}" crate.
%if %{with check}
%check
-%ifarch %{arm} %{ix86}
-# skip a test that does not work on 32-bit architectures
-%cargo_test -- -- --skip map_offset
-%else
%cargo_test
%endif
-%endif
%changelog
%autochangelog
diff --git a/sources b/sources
index 626b2bd..f5696dc 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (memmap2-0.3.0.crate) = 43a4a657d5c6d54d50f9411b3a5855d07388a84f521923f264f18039b58555bfe216c1fe90418ba383ab12218937b01b17be1c337b08df3b9ee7430e0466da6f
+SHA512 (memmap2-0.3.1.crate) = 1cf08cd046581d882fa78cc1e6efbb2e5814dada9ee866811732dcde776fd8c0cde2f03167010f32bb4984533e787536ef1954a1152a70d7f0278d5adfa96b28
commit e72888793315e49357613e8a6eacb5e05fd79056
Author: Fabio Valentini <decathorpe(a)gmail.com>
Date: Sat Aug 21 17:47:43 2021 +0200
convert to rpmautospec
diff --git a/changelog b/changelog
new file mode 100644
index 0000000..673d6d6
--- /dev/null
+++ b/changelog
@@ -0,0 +1,18 @@
+* Fri Jul 23 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.0-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
+
+* Fri Jun 18 2021 Fabio Valentini <decathorpe(a)gmail.com> - 0.3.0-2
+- Skip a test that does not work on 32-bit architectures.
+
+* Fri Jun 18 2021 Fabio Valentini <decathorpe(a)gmail.com> - 0.3.0-1
+- Update to version 0.3.0.
+- Fixes RHBZ#1909435
+
+* Wed Jan 27 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.1.0-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+
+* Wed Jul 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.1.0-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Sat Feb 29 13:45:08 CET 2020 Igor Raits <ignatenkobrain(a)fedoraproject.org> - 0.1.0-1
+- Initial package
diff --git a/rust-memmap2.spec b/rust-memmap2.spec
index c2e6db6..05adb85 100644
--- a/rust-memmap2.spec
+++ b/rust-memmap2.spec
@@ -6,7 +6,7 @@
Name: rust-%{crate}
Version: 0.3.0
-Release: 3%{?dist}
+Release: %autorelease
Summary: Cross-platform Rust API for memory-mapped file IO
# Upstream license specification: MIT/Apache-2.0
@@ -76,21 +76,4 @@ which use "default" feature of "%{crate}" crate.
%endif
%changelog
-* Fri Jul 23 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.0-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
-
-* Fri Jun 18 2021 Fabio Valentini <decathorpe(a)gmail.com> - 0.3.0-2
-- Skip a test that does not work on 32-bit architectures.
-
-* Fri Jun 18 2021 Fabio Valentini <decathorpe(a)gmail.com> - 0.3.0-1
-- Update to version 0.3.0.
-- Fixes RHBZ#1909435
-
-* Wed Jan 27 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.1.0-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
-
-* Wed Jul 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.1.0-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
-
-* Sat Feb 29 13:45:08 CET 2020 Igor Raits <ignatenkobrain(a)fedoraproject.org> - 0.1.0-1
-- Initial package
+%autochangelog
2 years, 9 months