From b2cd7526352f1e83dddc9407a3b723e246ab6223 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Wed, 15 Jul 2020 04:44:51 +0200 Subject: [PATCH] Update to 6.22.00 Drop patches accepted upstream root-FitData-assert-fix.patch root-clang-altivec-vector.patch root-format-fix.patch root-moved-file.patch root-xmlmodify-dep.patch New and improved Python bindings The new Python bindings can be built for both Python 2 and Python 3 out of the box. Dropped the workaround in specfile for this (EPEL 7) Dropped the python3-other packages (EPEL 7) The new Python bindings has split the TPython interface to a separate library. Now in a separate root-tpython package root-tpython and root-tmva-python are now using Python 3 on EPEL 7 New subpackage root-gui-browsable New patches (submitted upstream) Fix too aggressive -Werror replacements Add missing call to TFile::SetCacheFileDir in a TMVA tutorial Adjust stressGraphics.ref Fix off-by-one error in histogram v7 bin iterator Compatibility with python 2.7 versions before 2.7.9 Fix the RNTuple.LargeFile test on 32bit (i386 and armv7hf) Fix doxygen issues Fix bad regex in TProofMgr Compatibility with xrootd 5 --- root-32bit-dataframe.patch | 69 +- root-FitData-assert-fix.patch | 28 - root-clang-altivec-vector.patch | 27 - root-doxygen-crash.patch | 33 + root-doxygen-endof-part1.patch | 49 + root-doxygen-endof-part2.patch | 978 ++++++++++++++++++++ root-doxygen-filenames.patch | 378 ++++++++ root-doxygen-macro-name.patch | 29 + root-doxygen-md-comments.patch | 214 +++++ root-doxygen-missing-underscore.patch | 25 + root-doxygen-parameter-names.patch | 1211 +++++++++++++++++++++++++ root-epel7-ppc64le-pyroot.patch | 86 +- root-fix-bad-regex.patch | 25 + root-fontconfig.patch | 102 +-- root-format-fix.patch | 28 - root-histv7-bin-iterator.patch | 51 ++ root-jupyroot-static.patch | 48 +- root-memory-usage.patch | 15 +- root-moved-file.patch | 27 - root-ntuple-largefile.patch | 139 +++ root-old-gtest-compat.patch | 161 ++++ root-python2-compat.patch | 41 + root-python3.8-object.patch | 397 ++------ root-setcachefiledir.patch | 30 + root-stressGraphics.patch | 34 + root-testfiles.sh | 2 + root-unbundle-gtest.patch | 62 +- root-v7-line.patch | 11 - root-werror-fix.patch | 57 ++ root-xmlmodify-dep.patch | 25 - root-xrootd5-compat.patch | 109 +++ root.spec | 921 +++++++------------ sources | 4 +- 33 files changed, 4156 insertions(+), 1260 deletions(-) delete mode 100644 root-FitData-assert-fix.patch delete mode 100644 root-clang-altivec-vector.patch create mode 100644 root-doxygen-crash.patch create mode 100644 root-doxygen-endof-part1.patch create mode 100644 root-doxygen-endof-part2.patch create mode 100644 root-doxygen-filenames.patch create mode 100644 root-doxygen-macro-name.patch create mode 100644 root-doxygen-md-comments.patch create mode 100644 root-doxygen-missing-underscore.patch create mode 100644 root-doxygen-parameter-names.patch create mode 100644 root-fix-bad-regex.patch delete mode 100644 root-format-fix.patch create mode 100644 root-histv7-bin-iterator.patch delete mode 100644 root-moved-file.patch create mode 100644 root-ntuple-largefile.patch create mode 100644 root-old-gtest-compat.patch create mode 100644 root-python2-compat.patch create mode 100644 root-setcachefiledir.patch create mode 100644 root-stressGraphics.patch delete mode 100644 root-v7-line.patch create mode 100644 root-werror-fix.patch delete mode 100644 root-xmlmodify-dep.patch create mode 100644 root-xrootd5-compat.patch diff --git a/root-32bit-dataframe.patch b/root-32bit-dataframe.patch index e47b913..310171f 100644 --- a/root-32bit-dataframe.patch +++ b/root-32bit-dataframe.patch @@ -1,6 +1,6 @@ -diff -ur root-6.20.02.orig/bindings/pyroot/ROOT.py root-6.20.02/bindings/pyroot/ROOT.py ---- root-6.20.02.orig/bindings/pyroot/ROOT.py 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/bindings/pyroot/ROOT.py 2020-03-15 19:50:25.303179253 +0100 +diff -ur root-6.22.00.orig/bindings/pyroot_legacy/ROOT.py root-6.22.00/bindings/pyroot_legacy/ROOT.py +--- root-6.22.00.orig/bindings/pyroot_legacy/ROOT.py 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/bindings/pyroot_legacy/ROOT.py 2020-06-29 09:07:41.574798580 +0200 @@ -438,9 +438,7 @@ # This function is injected as method to the respective classes in Pythonize.cxx. _root._RDataFrameAsNumpy = _RDataFrameAsNumpy @@ -12,9 +12,9 @@ diff -ur root-6.20.02.orig/bindings/pyroot/ROOT.py root-6.20.02/bindings/pyroot/ ### RINT command emulation ------------------------------------------------------ -diff -ur root-6.20.02.orig/build/unix/makepchinput.py root-6.20.02/build/unix/makepchinput.py ---- root-6.20.02.orig/build/unix/makepchinput.py 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/build/unix/makepchinput.py 2020-03-15 19:50:25.304179242 +0100 +diff -ur root-6.22.00.orig/build/unix/makepchinput.py root-6.22.00/build/unix/makepchinput.py +--- root-6.22.00.orig/build/unix/makepchinput.py 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/build/unix/makepchinput.py 2020-06-29 09:07:41.639798769 +0200 @@ -252,9 +252,6 @@ "math/vdt", "tmva/rmva"] @@ -25,9 +25,9 @@ diff -ur root-6.20.02.orig/build/unix/makepchinput.py root-6.20.02/build/unix/ma accepted = isAnyPatternInString(PCHPatternsWhitelist,dirName) and \ not isAnyPatternInString(PCHPatternsBlacklist,dirName) -diff -ur root-6.20.02.orig/tree/dataframe/test/dataframe_cache.cxx root-6.20.02/tree/dataframe/test/dataframe_cache.cxx ---- root-6.20.02.orig/tree/dataframe/test/dataframe_cache.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/tree/dataframe/test/dataframe_cache.cxx 2020-03-15 19:50:09.075351525 +0100 +diff -ur root-6.22.00.orig/tree/dataframe/test/dataframe_cache.cxx root-6.22.00/tree/dataframe/test/dataframe_cache.cxx +--- root-6.22.00.orig/tree/dataframe/test/dataframe_cache.cxx 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/tree/dataframe/test/dataframe_cache.cxx 2020-06-29 09:07:41.640798772 +0200 @@ -224,8 +224,6 @@ } @@ -37,16 +37,19 @@ diff -ur root-6.20.02.orig/tree/dataframe/test/dataframe_cache.cxx root-6.20.02/ TEST(Cache, Regex) { -@@ -334,5 +332,3 @@ - +@@ -335,8 +333,6 @@ gSystem->Unlink(fileName); } -- + -#endif // R__B64 -diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_arrow.cxx root-6.20.02/tree/dataframe/test/datasource_arrow.cxx ---- root-6.20.02.orig/tree/dataframe/test/datasource_arrow.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/tree/dataframe/test/datasource_arrow.cxx 2020-03-15 19:50:09.075351525 +0100 -@@ -163,8 +163,6 @@ +- + // ROOT-10563 + TEST(Cache, Alias) + { +diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_arrow.cxx root-6.22.00/tree/dataframe/test/datasource_arrow.cxx +--- root-6.22.00.orig/tree/dataframe/test/datasource_arrow.cxx 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/tree/dataframe/test/datasource_arrow.cxx 2020-06-29 09:07:41.645798787 +0200 +@@ -177,8 +177,6 @@ } #endif @@ -55,15 +58,15 @@ diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_arrow.cxx root-6.20.02 TEST(RArrowDS, FromARDF) { std::unique_ptr tds(new RArrowDS(createTestTable(), {})); -@@ -236,5 +234,3 @@ +@@ -250,5 +248,3 @@ } #endif // R__USE_IMT - -#endif // R__B64 -diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_csv.cxx root-6.20.02/tree/dataframe/test/datasource_csv.cxx ---- root-6.20.02.orig/tree/dataframe/test/datasource_csv.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/tree/dataframe/test/datasource_csv.cxx 2020-03-15 19:57:05.490930922 +0100 +diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_csv.cxx root-6.22.00/tree/dataframe/test/datasource_csv.cxx +--- root-6.22.00.orig/tree/dataframe/test/datasource_csv.cxx 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/tree/dataframe/test/datasource_csv.cxx 2020-06-29 09:07:41.645798787 +0200 @@ -195,8 +195,6 @@ } #endif @@ -79,9 +82,9 @@ diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_csv.cxx root-6.20.02/t #endif // R__USE_IMT - -#endif // R__B64 -diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_root.cxx root-6.20.02/tree/dataframe/test/datasource_root.cxx ---- root-6.20.02.orig/tree/dataframe/test/datasource_root.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/tree/dataframe/test/datasource_root.cxx 2020-03-15 19:50:09.076351514 +0100 +diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_root.cxx root-6.22.00/tree/dataframe/test/datasource_root.cxx +--- root-6.22.00.orig/tree/dataframe/test/datasource_root.cxx 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/tree/dataframe/test/datasource_root.cxx 2020-06-29 09:07:41.649798799 +0200 @@ -117,8 +117,6 @@ } #endif @@ -97,9 +100,9 @@ diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_root.cxx root-6.20.02/ #endif // R__USE_IMT - -#endif // R__B64 -diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_trivial.cxx root-6.20.02/tree/dataframe/test/datasource_trivial.cxx ---- root-6.20.02.orig/tree/dataframe/test/datasource_trivial.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/tree/dataframe/test/datasource_trivial.cxx 2020-03-15 19:50:09.076351514 +0100 +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); } @@ -115,10 +118,10 @@ diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_trivial.cxx root-6.20. #endif // R__USE_IMT - -#endif // R__B64 -diff -ur root-6.20.02.orig/tutorials/CMakeLists.txt root-6.20.02/tutorials/CMakeLists.txt ---- root-6.20.02.orig/tutorials/CMakeLists.txt 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/tutorials/CMakeLists.txt 2020-03-15 19:59:35.808335176 +0100 -@@ -255,10 +255,6 @@ +diff -ur root-6.22.00.orig/tutorials/CMakeLists.txt root-6.22.00/tutorials/CMakeLists.txt +--- root-6.22.00.orig/tutorials/CMakeLists.txt 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/tutorials/CMakeLists.txt 2020-06-29 09:07:41.655798816 +0200 +@@ -257,10 +257,6 @@ set(root7_veto v7/ntuple/ntpl004_dimuon.C) endif() @@ -129,7 +132,7 @@ diff -ur root-6.20.02.orig/tutorials/CMakeLists.txt root-6.20.02/tutorials/CMake #---These ones are disabled !!! ------------------------------------ set(extra_veto legacy/benchmarks.C -@@ -311,7 +307,6 @@ +@@ -313,7 +309,6 @@ ${classic_veto} ${pythia_veto} ${root7_veto} @@ -137,11 +140,11 @@ diff -ur root-6.20.02.orig/tutorials/CMakeLists.txt root-6.20.02/tutorials/CMake ${xrootd_veto} ${mlp_veto} ${spectrum_veto} -@@ -513,7 +508,6 @@ +@@ -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 pyroot/pyroot002_TTreeAsMatrix.py) + list(REMOVE_ITEM pytutorials diff --git a/root-FitData-assert-fix.patch b/root-FitData-assert-fix.patch deleted file mode 100644 index 8e9ba00..0000000 --- a/root-FitData-assert-fix.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 07c5d640dd53c83c8b3350b520170fd9a5526495 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Fri, 13 Mar 2020 14:09:07 +0100 -Subject: [PATCH] Correct broken assert statements - ---- - math/mathcore/src/FitData.cxx | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/math/mathcore/src/FitData.cxx b/math/mathcore/src/FitData.cxx -index a2be20ab0d..0bad8ff7cd 100644 ---- a/math/mathcore/src/FitData.cxx -+++ b/math/mathcore/src/FitData.cxx -@@ -200,9 +200,9 @@ namespace ROOT { - /// dummy virtual destructor - FitData::~FitData() - { -+ assert(fWrapped == fCoords.empty()); - for (unsigned int i = 0; i < fDim; i++) { -- assert(fWrapped == fCoords.empty()); -- assert(fCoords.empty() || &fCoords[i].front() == fCoordsPtr[i]); -+ assert(fWrapped || fCoords[i].empty() || &fCoords[i].front() == fCoordsPtr[i]); - } - if (fpTmpCoordVector) delete[] fpTmpCoordVector; - --- -2.24.1 - diff --git a/root-clang-altivec-vector.patch b/root-clang-altivec-vector.patch deleted file mode 100644 index 4648ccc..0000000 --- a/root-clang-altivec-vector.patch +++ /dev/null @@ -1,27 +0,0 @@ -From f0e7ee696e416f5cb42619889fcbff7db64f17e1 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Fri, 13 Mar 2020 17:09:03 +0100 -Subject: [PATCH] Fix ppc64le compilation with gcc 10 - -Backported from llvm upstream -https://reviews.llvm.org/D74129 ---- - interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp b/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp -index dbe6b4db94..2096ba6982 100644 ---- a/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp -+++ b/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp -@@ -2373,7 +2373,7 @@ bool Lexer::SkipBlockComment(Token &Result, const char *CurPtr, - '/', '/', '/', '/', '/', '/', '/', '/' - }; - while (CurPtr+16 <= BufferEnd && -- !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.24.1 - diff --git a/root-doxygen-crash.patch b/root-doxygen-crash.patch new file mode 100644 index 0000000..b27f5ce --- /dev/null +++ b/root-doxygen-crash.patch @@ -0,0 +1,33 @@ +diff -ur root-6.22.00.orig/tutorials/tmva/tmva003_RReader.C root-6.22.00/tutorials/tmva/tmva003_RReader.C +--- root-6.22.00.orig/tutorials/tmva/tmva003_RReader.C 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/tutorials/tmva/tmva003_RReader.C 2020-07-09 18:58:36.854733120 +0200 +@@ -5,7 +5,6 @@ + /// TMVA XML files. + /// + /// \macro_code +-/// \macro_output + /// + /// \date July 2019 + /// \author Stefan Wunsch +diff -ur root-6.22.00.orig/tutorials/tmva/tmva103_Application.C root-6.22.00/tutorials/tmva/tmva103_Application.C +--- root-6.22.00.orig/tutorials/tmva/tmva103_Application.C 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/tutorials/tmva/tmva103_Application.C 2020-07-09 18:58:36.855733122 +0200 +@@ -6,7 +6,6 @@ + /// event-by-event inference, batch inference and pipelines with RDataFrame. + /// + /// \macro_code +-/// \macro_output + /// + /// \date December 2018 + /// \author Stefan Wunsch +diff -ur root-6.22.00.orig/tutorials/v7/line.cxx root-6.22.00/tutorials/v7/line.cxx +--- root-6.22.00.orig/tutorials/v7/line.cxx 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/tutorials/v7/line.cxx 2020-07-09 18:58:42.202745047 +0200 +@@ -6,7 +6,6 @@ + /// "normal" coordinates' system and changing the line color linearly from black + /// to red. + /// +-/// \macro_image (line.png) + /// \macro_code + /// + /// \date 2018-03-18 diff --git a/root-doxygen-endof-part1.patch b/root-doxygen-endof-part1.patch new file mode 100644 index 0000000..974b60e --- /dev/null +++ b/root-doxygen-endof-part1.patch @@ -0,0 +1,49 @@ +From c454b8d31a840898a709452525267a8404a05d24 Mon Sep 17 00:00:00 2001 +From: Enrico Guiraud +Date: Tue, 30 Jun 2020 17:05:13 +0200 +Subject: [PATCH] [NFC][DF] Minor improvements to formatting and docs of + Display + +--- + tree/dataframe/inc/ROOT/RDF/RDisplay.hxx | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/tree/dataframe/inc/ROOT/RDF/RDisplay.hxx b/tree/dataframe/inc/ROOT/RDF/RDisplay.hxx +index 90058f0706..9f5e3623ae 100644 +--- a/tree/dataframe/inc/ROOT/RDF/RDisplay.hxx ++++ b/tree/dataframe/inc/ROOT/RDF/RDisplay.hxx +@@ -105,10 +105,10 @@ private: + } + + //////////////////////////////////////////////////////////////////////////// +- /// Appends collection.size() cling::printValue call to the stringstream. ++ /// Appends collection.size() cling::printValue calls to the stringstream. + /// \tparam T the type of the event to convert + /// \param[in] stream Where the conversion function call will be chained. +- /// \param[in] element The event to convert to its string representation ++ /// \param[in] collection The event to convert to its string representation + /// \param[in] index To which column the event belongs to + /// \return true, the event is a collection + /// This function chains a sequence of call to cling::printValue, one for each element of the collection. +@@ -128,7 +128,8 @@ private: + // For each element, append a call and feed the proper type returned by GetSplit + for (size_t i = 0; i < collectionSize; ++i) { + stream << "*((std::string*)" << ROOT::Internal::RDF::PrettyPrintAddr(&(fCollectionsRepresentations[index][i])) +- << ") = cling::printValue((" << output[1] << "*)" << ROOT::Internal::RDF::PrettyPrintAddr(&(collection[i])) << ");"; ++ << ") = cling::printValue((" << output[1] << "*)" ++ << ROOT::Internal::RDF::PrettyPrintAddr(&(collection[i])) << ");"; + } + return true; + } +@@ -197,7 +198,7 @@ public: + /// Prints the representation to the standard output + /// + /// Collections are shortened to the first and last element. The overall width +- /// is shortened to a fixed size of TODO ++ /// is shortened to a fixed number of columns that should fit the screen width. + void Print() const; + + //////////////////////////////////////////////////////////////////////////// +-- +2.26.2 + diff --git a/root-doxygen-endof-part2.patch b/root-doxygen-endof-part2.patch new file mode 100644 index 0000000..a32b39f --- /dev/null +++ b/root-doxygen-endof-part2.patch @@ -0,0 +1,978 @@ +From 1198ee3e08c46d1edc9258dbe857f66340f53a20 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Wed, 8 Jul 2020 10:39:54 +0200 +Subject: [PATCH 2/5] Fix various "end of ..." warnings from doxygen. + +This addresses warnings like: + +- end of comment block while expecting command +- end of comment block while expecting command +- end of comment block while expecting command +- end of comment block while expecting command +- end of comment block while expecting command +- end of comment block while expecting command +- end of comment block while expecting command +- end of list marker found without any preceding list items +- found tag without matching +- found tag without matching
  • +- found tag without matching
    +- found  tag while expecting 
    +- found  tag without matching 
    +- found  tag without matching 
    +- found  tag without matching 
    , append an opening
    ++/// Prepend a closing \, append an opening \
    + 
    + Bool_t TDocHtmlDirective::GetResult(TString& result)
    + {
    +diff --git a/math/mathcore/inc/Math/ProbFuncMathCore.h b/math/mathcore/inc/Math/ProbFuncMathCore.h
    +index d751c47a36..16e205347c 100644
    +--- a/math/mathcore/inc/Math/ProbFuncMathCore.h
    ++++ b/math/mathcore/inc/Math/ProbFuncMathCore.h
    +@@ -41,8 +41,8 @@ namespace Math {
    +    * These names are currently kept for backward compatibility, but
    +    * their usage is deprecated.
    +    *
    +-   *  These functions are defined in the header file Math/ProbFunc.h or in the global one
    +-   *  including all statistical functions Math/DistFunc.h
    ++   *  These functions are defined in the header file Math/ProbFunc.h or in the global one
    ++   *  including all statistical functions Math/DistFunc.h
    +    *
    +    */
    + 
    +@@ -727,8 +727,8 @@ namespace Math {
    +    first or the second momentum of the truncated distribution.
    +    In the case of the Landau, first and second momentum functions are provided for the Landau
    +    distribution truncated only on the right side.
    +-   These functions are defined in the header file Math/ProbFunc.h or in the global one
    +-   including all statistical functions Math/StatFunc.h
    ++   These functions are defined in the header file Math/ProbFunc.h or in the global one
    ++   including all statistical functions Math/StatFunc.h
    + 
    +    */
    + 
    +diff --git a/math/mathcore/inc/Math/QuantFuncMathCore.h b/math/mathcore/inc/Math/QuantFuncMathCore.h
    +index 7da5bd1178..1be023b33f 100644
    +--- a/math/mathcore/inc/Math/QuantFuncMathCore.h
    ++++ b/math/mathcore/inc/Math/QuantFuncMathCore.h
    +@@ -41,8 +41,8 @@ namespace Math {
    +    *
    +    *  \f[ D(x) = \int_{x}^{+\infty} p(x') dx' \f]
    +    *
    +-   *  These functions are defined in the header file Math/ProbFunc.h or in the global one
    +-   *  including all statistical functions Math/DistFunc.h
    ++   *  These functions are defined in the header file Math/ProbFunc.h or in the global one
    ++   *  including all statistical functions Math/DistFunc.h
    +    *
    +    *
    +    * NOTE: In the old releases (< 5.14) the _quantile functions were called
    +diff --git a/math/mathcore/src/TMath.cxx b/math/mathcore/src/TMath.cxx
    +index 49a81d56f7..ba8799b570 100644
    +--- a/math/mathcore/src/TMath.cxx
    ++++ b/math/mathcore/src/TMath.cxx
    +@@ -857,7 +857,7 @@ Double_t TMath::KolmogorovTest(Int_t na, const Double_t *a, Int_t nb, const Doub
    + /// \f[
    + /// lorentz(xx) = \frac{ \frac{1}{\pi} \frac{lg}{2} }{ (xx^{2} + \frac{lg^{2}}{4}) }
    + /// \f]
    +-/// .
    ++/// \.
    + ///
    + /// The Voigt function is known to be the real part of Faddeeva function also
    + /// called complex error function [2].
    +diff --git a/math/mathmore/inc/Math/GSLMultiRootFinder.h b/math/mathmore/inc/Math/GSLMultiRootFinder.h
    +index 42069d2387..b7efe4157d 100644
    +--- a/math/mathmore/inc/Math/GSLMultiRootFinder.h
    ++++ b/math/mathmore/inc/Math/GSLMultiRootFinder.h
    +@@ -69,23 +69,23 @@ namespace Math {
    +      documentation )
    +      are the followings:
    +      
      +-
    • ROOT::Math::GSLMultiRootFinder::kHybridSJ with name "HybridSJ": modified Powell's hybrid ++
    • ROOT::Math::GSLMultiRootFinder::kHybridSJ with name "HybridSJ": modified Powell's hybrid + method as implemented in HYBRJ in MINPACK +-
    • ROOT::Math::GSLMultiRootFinder::kHybridJ with name "HybridJ": unscaled version of the ++
    • ROOT::Math::GSLMultiRootFinder::kHybridJ with name "HybridJ": unscaled version of the + previous algorithm
    • +-
    • ROOT::Math::GSLMultiRootFinder::kNewton with name "Newton": Newton method
    • +-
    • ROOT::Math::GSLMultiRootFinder::kGNewton with name "GNewton": modified Newton method
    • ++
    • ROOT::Math::GSLMultiRootFinder::kNewton with name "Newton": Newton method
    • ++
    • ROOT::Math::GSLMultiRootFinder::kGNewton with name "GNewton": modified Newton method
    • +
    + The algorithms without derivatives (see also the GSL + documentation ) + are the followings: +
      +-
    • ROOT::Math::GSLMultiRootFinder::kHybridS with name "HybridS": same as HybridSJ but using ++
    • ROOT::Math::GSLMultiRootFinder::kHybridS with name "HybridS": same as HybridSJ but using + finate difference approximation for the derivatives
    • +-
    • ROOT::Math::GSLMultiRootFinder::kHybrid with name "Hybrid": unscaled version of the ++
    • ROOT::Math::GSLMultiRootFinder::kHybrid with name "Hybrid": unscaled version of the + previous algorithm
    • +-
    • ROOT::Math::GSLMultiRootFinder::kDNewton with name "DNewton": discrete Newton algorithm
    • +-
    • ROOT::Math::GSLMultiRootFinder::kBroyden with name "Broyden": Broyden algorithm
    • ++
    • ROOT::Math::GSLMultiRootFinder::kDNewton with name "DNewton": discrete Newton algorithm
    • ++
    • ROOT::Math::GSLMultiRootFinder::kBroyden with name "Broyden": Broyden algorithm
    • +
    + + @ingroup MultiRoot +diff --git a/math/matrix/doc/Matrix.md b/math/matrix/doc/Matrix.md +index f53b29ca0b..c484c27c72 100644 +--- a/math/matrix/doc/Matrix.md ++++ b/math/matrix/doc/Matrix.md +@@ -325,7 +325,7 @@ constructor + C=A*B
    + A*=B
    + C.Mult(A,B)
    TMatrixD(A,TMatrixD::kMult,B)
    TMatrixD(A, TMatrixD(A, TMatrixD::kTransposeMult,B)
    TMatrixD(A, TMatrixD::kMultTranspose,B) +- overwrites A
     
     
    constructor of A.B
    constructor of AT .B
    constructor of A.BT ++ overwrites A
     
     
    constructor of A·B
    constructor of AT·B
    constructor of A·BT + + + Element wise multiplication +diff --git a/math/minuit/src/TMinuit.cxx b/math/minuit/src/TMinuit.cxx +index df3e563a73..18a6437c68 100644 +--- a/math/minuit/src/TMinuit.cxx ++++ b/math/minuit/src/TMinuit.cxx +@@ -187,11 +187,11 @@ the error matrix, or setting of exact confidence levels see: + + 1. F.James. + Determining the statistical Significance of experimental Results. +- Technical Report DD/81/02 and CERN Report 81-03, CERN, 1981.
  • ++ Technical Report DD/81/02 and CERN Report 81-03, CERN, 1981. + + 2. W.T.Eadie, D.Drijard, F.James, M.Roos, and B.Sadoulet. + Statistical Methods in Experimental Physics. +- North-Holland, 1971. ++ North-Holland, 1971. + + ### Reliability of MINUIT error estimates. + +diff --git a/montecarlo/eg/src/TDatabasePDG.cxx b/montecarlo/eg/src/TDatabasePDG.cxx +index 23c32e9668..85e9fe2a6d 100644 +--- a/montecarlo/eg/src/TDatabasePDG.cxx ++++ b/montecarlo/eg/src/TDatabasePDG.cxx +@@ -46,7 +46,7 @@ Root.DatabasePDG: $(HOME)/my_pdg_table.txt + See TParticlePDG for the description of a static particle properties. + See TParticle for the description of a dynamic particle particle. + +-
    The current default pdg_table file displays lifetime 0 for some unstable particles.
    ++The current default pdg_table file displays lifetime 0 for some unstable particles. + + */ + +diff --git a/montecarlo/vmc/README.md b/montecarlo/vmc/README.md +index dc66ec401f..c731b26e92 100644 +--- a/montecarlo/vmc/README.md ++++ b/montecarlo/vmc/README.md +@@ -43,7 +43,7 @@ See more detailed description in [the dedicated README](README.multiple.md). + ## Authors + + The concept of Virtual MonteCarlo has been developed by the [ALICE Software Project](http://aliceinfo.cern.ch/Offline/).
    +-Authors: R.Brun1, F.Carminati1, A. Gheata1, I.Hrivnacova2, A.Morsch1, B.Volkel1;
    ++Authors: R. Brun1, F. Carminati1, A. Gheata1, I. Hrivnacova2, A. Morsch1, B. Volkel1;
    + 1European Organization for Nuclear Research (CERN), Geneva, Switzerland;
    + 2Institut de Physique Nucléaire dʼOrsay (IPNO), Université Paris-Sud, CNRS-IN2P3, Orsay, France + +diff --git a/net/http/civetweb/LICENSE.md b/net/http/civetweb/LICENSE.md +index ab049e3e72..b6bb8ff037 100644 +--- a/net/http/civetweb/LICENSE.md ++++ b/net/http/civetweb/LICENSE.md +@@ -180,10 +180,6 @@ Duktape License + + https://github.com/svaarala/duktape/blob/master/LICENSE.txt + +-> =============== +-> Duktape license +-> =============== +-> + > (http://opensource.org/licenses/MIT) + > + > Copyright (c) 2013-2017 by Duktape authors (see AUTHORS.rst) +diff --git a/proof/proof/src/TProofMgr.cxx b/proof/proof/src/TProofMgr.cxx +index 2a140e4e7a..e41b637a15 100644 +--- a/proof/proof/src/TProofMgr.cxx ++++ b/proof/proof/src/TProofMgr.cxx +@@ -775,26 +775,29 @@ void TProofMgr::ReplaceSubdirs(const char *fn, TString &fdst, TList &dirph) + /// Upload files provided via the list 'src' (as TFileInfo or TObjString) + /// to 'mss'. The path under 'mss' is determined by 'dest'; the following + /// place-holders can be used in 'dest': +-/// , , , ... referring to the n-th sub-component +-/// of the src path +-/// basename in the source path +-/// basename sans extension +-/// Extension +-/// serial number of file in the list +-/// as but zero padded +-/// the full file path +-/// , the local user and group names. +-/// the users PROOF group +-/// immediate parent directory +-/// next-to immediate parent directory ++/// ++/// Place-holder | Meaning | ++/// ----------------------------|------------------------------------ ++/// \, \, \, ... | referring to the n-th sub-component of the src path ++/// \ | basename in the source path ++/// \ | basename sans extension ++/// \ | Extension ++/// \ | serial number of file in the list ++/// \ | as \ but zero padded ++/// \ | the full file path ++/// \, \ | the local user and group names. ++/// \ | the users PROOF group ++/// \ | immediate parent directory ++/// \ | next-to immediate parent directory ++/// + /// So, for example, if the source filename for the 99-th file is + /// protosrc://host//d0/d1/d2/d3/d4/d5/myfile +-/// then with dest = '/pool/user/////' and ++/// then with dest = '/pool/user/\/\/\/\/\' and + /// mss = 'protodst://hostdst//nm/ + /// the corresponding destination path is + /// protodst://hostdst//nm/pool/user/d3/d4/d5/99/myfile + /// +-/// If 'dest' is empty, is used. ++/// If 'dest' is empty, \ is used. + /// + /// Returns a TFileCollection with the destination files created; this + /// TFileCollection is, for example, ready to be registered as dataset. +@@ -966,20 +969,23 @@ TFileCollection *TProofMgr::UploadFiles(TList *src, + /// line, with line beginning by '#' ignored (i.e. considered comments). + /// The path under 'mss' is defined by 'dest'; the following + /// place-holders can be used in 'dest': +-/// , , , ... referring to the n-th sub-component +-/// of the src path +-/// basename in the source path +-/// serial number of file in the list +-/// the full file path +-/// , the local user and group names. ++/// ++/// Place-holder | Meaning | ++/// ----------------------------|------------------------------------ ++/// \, \, \, ... | referring to the n-th sub-component of the src path ++/// \ | basename in the source path ++/// \ | serial number of file in the list ++/// \ | the full file path ++/// \, \ | the local user and group names. ++/// + /// So, for example, if the source filename for the 99-th file is + /// protosrc://host//d0/d1/d2/d3/d4/d5/myfile +-/// then with dest = '/pool/user/////' and ++/// then with dest = '/pool/user/\/\/\/\/\' and + /// mss = 'protodst://hostdst//nm/ + /// the corresponding destination path is + /// protodst://hostdst//nm/pool/user/d3/d4/d5/99/myfile + /// +-/// If 'dest' is empty, is used. ++/// If 'dest' is empty, \ is used. + /// + /// Returns a TFileCollection with the destination files created; this + /// TFileCollection is, for example, ready to be registered as dataset. +diff --git a/proof/proof/src/TProofServ.cxx b/proof/proof/src/TProofServ.cxx +index 24c521743d..3697f257a0 100644 +--- a/proof/proof/src/TProofServ.cxx ++++ b/proof/proof/src/TProofServ.cxx +@@ -6696,11 +6696,11 @@ Int_t TProofServ::Fork() + } + + //////////////////////////////////////////////////////////////////////////////// +-/// Replace , , , , , , , and +-/// placeholders in fname. +-/// Here, is the root version in integer form, e.g. 53403, and a +-/// string includign version, architecture and compiler version, e.g. +-/// '53403_linuxx8664gcc_gcc46' . ++/// Replace \, \, \, \, \, \, \, ++/// \ and \ placeholders in fname. ++/// Here, \ is the root version in integer form, e.g. 53403, and ++/// \ a string includign version, architecture and compiler version, ++/// e.g. '53403_linuxx8664gcc_gcc46' . + + void TProofServ::ResolveKeywords(TString &fname, const char *path) + { +diff --git a/roofit/histfactory/doc/index.md b/roofit/histfactory/doc/index.md +index 32f1c551a4..9256a9cf11 100644 +--- a/roofit/histfactory/doc/index.md ++++ b/roofit/histfactory/doc/index.md +@@ -41,12 +41,11 @@ it is organized as follows (see the examples in `${ROOTSYS}/tutorials/histfactor +
  • several 'Measurements' (corresponding to a full fit of the model) each of which specifies
  • +
      +
    • a name for this fit to be used in tables and files
    • +-
        +-
      • what is the luminosity associated to the measurement in picobarns
      • +-
      • which bins of the histogram should be used
      • +-
      • what is the relative uncertainty on the luminosity
      • +-
      • what is (are) the parameter(s) of interest that will be measured
      • +-
      • which parameters should be fixed/floating (eg. nuisance parameters)
      • ++
      • what is the luminosity associated to the measurement in picobarns
      • ++
      • which bins of the histogram should be used
      • ++
      • what is the relative uncertainty on the luminosity
      • ++
      • what is (are) the parameter(s) of interest that will be measured
      • ++
      • which parameters should be fixed/floating (eg. nuisance parameters)
      • +
      +
    + +diff --git a/roofit/histfactory/src/MakeModelAndMeasurementsFast.cxx b/roofit/histfactory/src/MakeModelAndMeasurementsFast.cxx +index e14e63ec89..73a3f627ba 100644 +--- a/roofit/histfactory/src/MakeModelAndMeasurementsFast.cxx ++++ b/roofit/histfactory/src/MakeModelAndMeasurementsFast.cxx +@@ -92,12 +92,11 @@ using namespace RooFit; +
  • several 'Measurements' (corresponding to a full fit of the model) each of which specifies
  • +
      +
    • a name for this fit to be used in tables and files
    • +-
        +-
      • what is the luminosity associated to the measurement in picobarns
      • +-
      • which bins of the histogram should be used
      • +-
      • what is the relative uncertainty on the luminosity
      • +-
      • what is (are) the parameter(s) of interest that will be measured
      • +-
      • which parameters should be fixed/floating (eg. nuisance parameters)
      • ++
      • what is the luminosity associated to the measurement in picobarns
      • ++
      • which bins of the histogram should be used
      • ++
      • what is the relative uncertainty on the luminosity
      • ++
      • what is (are) the parameter(s) of interest that will be measured
      • ++
      • which parameters should be fixed/floating (eg. nuisance parameters)
      • +
      +
    + +diff --git a/roofit/roofitcore/inc/RooAbsCategory.h b/roofit/roofitcore/inc/RooAbsCategory.h +index a7eaf8772a..4f0937a99d 100644 +--- a/roofit/roofitcore/inc/RooAbsCategory.h ++++ b/roofit/roofitcore/inc/RooAbsCategory.h +@@ -199,7 +199,7 @@ protected: + return hasIndex(_currentIndex); + } + +- /// If a category depends on the shape of others, *i.e.*, its state numbers or names depend ++ /// If a category depends on the shape of others, i.e.\ its state numbers or names depend + /// on the states of other categories, this function has to be implemented to recompute + /// _stateNames and _insertionOrder. + /// If one of these two changes, setShapeDirty() has to be called to propagate this information +diff --git a/roofit/roofitcore/src/RooSimPdfBuilder.cxx b/roofit/roofitcore/src/RooSimPdfBuilder.cxx +index 4c8289523d..57ea1e9196 100644 +--- a/roofit/roofitcore/src/RooSimPdfBuilder.cxx ++++ b/roofit/roofitcore/src/RooSimPdfBuilder.cxx +@@ -99,7 +99,7 @@ + /// PDF for each state of the C index category. + ///

    + ///
    +diff --git a/tmva/tmva/src/Factory.cxx b/tmva/tmva/src/Factory.cxx +index eda1b9ca1a..866aad0e18 100644 +--- a/tmva/tmva/src/Factory.cxx ++++ b/tmva/tmva/src/Factory.cxx +@@ -683,9 +683,9 @@ void TMVA::Factory::WriteDataInformation(DataSetInfo& fDataSetInfo) + } + + //////////////////////////////////////////////////////////////////////////////// +-/// Iterates through all booked methods and sees if they use parameter tuning and if so.. +-/// does just that i.e. calls "Method::Train()" for different parameter settings and +-/// keeps in mind the "optimal one"... and that's the one that will later on be used ++/// Iterates through all booked methods and sees if they use parameter tuning and if so ++/// does just that, i.e.\ calls "Method::Train()" for different parameter settings and ++/// keeps in mind the "optimal one"...\ and that's the one that will later on be used + /// in the main training loop. + + std::map TMVA::Factory::OptimizeAllMethods(TString fomType, TString fitType) +diff --git a/tmva/tmva/src/Reader.cxx b/tmva/tmva/src/Reader.cxx +index 56d65bb9bf..b34ee9f1de 100644 +--- a/tmva/tmva/src/Reader.cxx ++++ b/tmva/tmva/src/Reader.cxx +@@ -594,7 +594,7 @@ const std::vector< Float_t >& TMVA::Reader::EvaluateRegression( const TString& m + //////////////////////////////////////////////////////////////////////////////// + /// evaluates the regression MVA + /// check for NaN in event data: (note: in the factory, this check was done already at the creation of the datasets, hence +-/// it is not again checked in each of these subsequent calls.. ++/// it is not again checked in each of these subsequent calls. + + const std::vector< Float_t >& TMVA::Reader::EvaluateRegression( MethodBase* method, Double_t /*aux*/ ) + { +@@ -660,7 +660,7 @@ const std::vector< Float_t >& TMVA::Reader::EvaluateMulticlass( const TString& m + //////////////////////////////////////////////////////////////////////////////// + /// evaluates the multiclass MVA + /// check for NaN in event data: (note: in the factory, this check was done already at the creation of the datasets, hence +-/// it is not again checked in each of these subsequent calls.. ++/// it is not again checked in each of these subsequent calls. + + const std::vector< Float_t >& TMVA::Reader::EvaluateMulticlass( MethodBase* method, Double_t /*aux*/ ) + { +diff --git a/tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx b/tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx +index 17527ac16d..497dd3d5c6 100644 +--- a/tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx ++++ b/tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx +@@ -93,7 +93,7 @@ class R__CLING_PTRCHECK(off) RColumnValue { + /// Enumerator for the different properties of the branch storage in memory + enum class EStorageType : char { kContiguous, kUnknown, kSparse }; + /// Signal whether we ever checked that the branch we are reading with a TTreeReaderArray stores array elements +- /// in contiguous memory. Only used when T == RVec. ++ /// in contiguous memory. Only used when T == RVec\. + EStorageType fStorageType = EStorageType::kUnknown; + /// If MustUseRVec, i.e. we are reading an array, we return a reference to this RVec to clients + RVec fRVec; +diff --git a/tutorials/net/udpserver.c b/tutorials/net/udpserver.c +index c54685400e..a74f6f0a85 100644 +--- a/tutorials/net/udpserver.c ++++ b/tutorials/net/udpserver.c +@@ -4,7 +4,7 @@ + + /* Converted to echo client/server with select() (timeout option). + See testTUDPSocket.C */ +-/* Compile with: gcc udpserver.c -o udpserver ++/* Compile with: gcc udpserver.c -o udpserver */ + /* on Windows: cl -nologo -Z7 -MD -GR -EHsc udpserver.c */ + /* 3/30/05 John Schultz */ + +diff --git a/tutorials/tmva/TMVA_CNN_Classification.C b/tutorials/tmva/TMVA_CNN_Classification.C +index 47f26368d9..89373a8887 100644 +--- a/tutorials/tmva/TMVA_CNN_Classification.C ++++ b/tutorials/tmva/TMVA_CNN_Classification.C +@@ -22,7 +22,7 @@ + /// Helper function to create input images data + /// we create a signal and background 2D histograms from 2d gaussians + /// with a location (means in X and Y) different for each event +-/// The difference between signal and background is in the gaussian width.. ++/// The difference between signal and background is in the gaussian width. + /// The width for the bakground gaussian is slightly larger than the signal width by few % values + /// + /// +-- +2.26.2 + diff --git a/root-doxygen-filenames.patch b/root-doxygen-filenames.patch new file mode 100644 index 0000000..d891a7f --- /dev/null +++ b/root-doxygen-filenames.patch @@ -0,0 +1,378 @@ +From 116be70d2786a3fecdfcd6445d06ad6f3768f5a6 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Fri, 3 Jul 2020 08:08:33 +0200 +Subject: [PATCH 1/5] Fix \file references in doxygen markup + +--- + core/base/v7/inc/ROOT/RDirectory.hxx | 2 +- + core/base/v7/inc/ROOT/RDirectoryEntry.hxx | 2 +- + core/base/v7/inc/ROOT/RError.hxx | 2 +- + core/base/v7/inc/ROOT/RIndexIter.hxx | 2 +- + core/base/v7/inc/ROOT/RLogger.hxx | 2 +- + core/base/v7/inc/ROOT/RTupleApply.hxx | 2 +- + core/base/v7/inc/ROOT/impl_tuple_apply.hxx | 2 +- + core/base/v7/src/RLogger.cxx | 2 +- + core/clingutils/test/TClingUtilsTests.cxx | 2 +- + core/foundation/inc/ROOT/RNotFn.hxx | 2 +- + core/foundation/inc/ROOT/RSpan.hxx | 2 +- + core/foundation/inc/ROOT/span.hxx | 2 +- + core/foundation/src/FoundationUtils.cxx | 2 +- + gui/browsable/inc/ROOT/Browsable/RItem.hxx | 2 +- + gui/browsable/src/RHistDraw7Provider.cxx | 2 +- + gui/browsable/src/RSysFile.cxx | 2 +- + gui/browserv7/inc/ROOT/RBrowserReply.hxx | 2 +- + hist/hist/test/TFormulaGradientTests.cxx | 2 +- + hist/histdrawv7/inc/ROOT/RHistDrawable.hxx | 2 +- + hist/histv7/inc/ROOT/RAxis.hxx | 2 +- + hist/histv7/inc/ROOT/RAxisConfig.hxx | 2 +- + hist/histv7/inc/ROOT/RHist.hxx | 2 +- + hist/histv7/inc/ROOT/RHistBinIter.hxx | 2 +- + hist/histv7/inc/ROOT/RHistBufferedFill.hxx | 2 +- + hist/histv7/inc/ROOT/RHistConcurrentFill.hxx | 2 +- + hist/histv7/inc/ROOT/RHistData.hxx | 2 +- + hist/histv7/inc/ROOT/RHistImpl.hxx | 2 +- + hist/histv7/inc/ROOT/RHistUtils.hxx | 2 +- + hist/histv7/inc/ROOT/RHistView.hxx | 2 +- + io/io/v7/inc/ROOT/RFile.hxx | 2 +- + math/mathcore/test/CladDerivatorTests.cxx | 2 +- + math/mathcore/v7/inc/ROOT/RFit.hxx | 2 +- + tmva/tmva/inc/TMVA/NeuralNet.h | 2 +- + 33 files changed, 33 insertions(+), 33 deletions(-) + +diff --git a/core/base/v7/inc/ROOT/RDirectory.hxx b/core/base/v7/inc/ROOT/RDirectory.hxx +index 5331f91144..6d1a4b0541 100644 +--- a/core/base/v7/inc/ROOT/RDirectory.hxx ++++ b/core/base/v7/inc/ROOT/RDirectory.hxx +@@ -1,4 +1,4 @@ +-/// \file ROOT/RDirectory.h ++/// \file ROOT/RDirectory.hxx + /// \ingroup Base ROOT7 + /// \author Axel Naumann + /// \date 2015-07-31 +diff --git a/core/base/v7/inc/ROOT/RDirectoryEntry.hxx b/core/base/v7/inc/ROOT/RDirectoryEntry.hxx +index a7258bc642..1a33e5003a 100644 +--- a/core/base/v7/inc/ROOT/RDirectoryEntry.hxx ++++ b/core/base/v7/inc/ROOT/RDirectoryEntry.hxx +@@ -1,4 +1,4 @@ +-/// \file ROOT/RDirectoryEntry.h ++/// \file ROOT/RDirectoryEntry.hxx + /// \ingroup Base ROOT7 + /// \author Axel Naumann + /// \date 2015-07-31 +diff --git a/core/base/v7/inc/ROOT/RError.hxx b/core/base/v7/inc/ROOT/RError.hxx +index 7a0d363e7f..6af7a38f01 100644 +--- a/core/base/v7/inc/ROOT/RError.hxx ++++ b/core/base/v7/inc/ROOT/RError.hxx +@@ -1,4 +1,4 @@ +-/// \file ROOT/RError.h ++/// \file ROOT/RError.hxx + /// \ingroup Base ROOT7 + /// \author Jakob Blomer + /// \date 2019-12-11 +diff --git a/core/base/v7/inc/ROOT/RIndexIter.hxx b/core/base/v7/inc/ROOT/RIndexIter.hxx +index 1e290d82c8..fc424fdb8d 100644 +--- a/core/base/v7/inc/ROOT/RIndexIter.hxx ++++ b/core/base/v7/inc/ROOT/RIndexIter.hxx +@@ -1,4 +1,4 @@ +-/// \file ROOT/RIndexIter.h ++/// \file ROOT/RIndexIter.hxx + /// \ingroup Base ROOT7 + /// \author Axel Naumann + /// \date 2016-01-19 +diff --git a/core/base/v7/inc/ROOT/RLogger.hxx b/core/base/v7/inc/ROOT/RLogger.hxx +index c1852656ee..d4e3e6e7bd 100644 +--- a/core/base/v7/inc/ROOT/RLogger.hxx ++++ b/core/base/v7/inc/ROOT/RLogger.hxx +@@ -1,4 +1,4 @@ +-/// \file ROOT/TLogger.h ++/// \file ROOT/RLogger.hxx + /// \ingroup Base ROOT7 + /// \author Axel Naumann + /// \date 2015-03-29 +diff --git a/core/base/v7/inc/ROOT/RTupleApply.hxx b/core/base/v7/inc/ROOT/RTupleApply.hxx +index 9a80bfcd6f..995246505f 100644 +--- a/core/base/v7/inc/ROOT/RTupleApply.hxx ++++ b/core/base/v7/inc/ROOT/RTupleApply.hxx +@@ -1,4 +1,4 @@ +-/// \file ROOT/RTupleApply.h ++/// \file ROOT/RTupleApply.hxx + /// \ingroup Base StdExt ROOT7 + /// \author Axel Naumann + /// \date 2015-09-06 +diff --git a/core/base/v7/inc/ROOT/impl_tuple_apply.hxx b/core/base/v7/inc/ROOT/impl_tuple_apply.hxx +index dc12706906..68d6988f97 100644 +--- a/core/base/v7/inc/ROOT/impl_tuple_apply.hxx ++++ b/core/base/v7/inc/ROOT/impl_tuple_apply.hxx +@@ -1,4 +1,4 @@ +-/// \file ROOT/impl_tuple_apply.h ++/// \file ROOT/impl_tuple_apply.hxx + /// \ingroup Base StdExt ROOT7 + /// \author Axel Naumann + /// \date 2015-07-09 +diff --git a/core/base/v7/src/RLogger.cxx b/core/base/v7/src/RLogger.cxx +index 69aba0b05c..3ac8bb760f 100644 +--- a/core/base/v7/src/RLogger.cxx ++++ b/core/base/v7/src/RLogger.cxx +@@ -1,4 +1,4 @@ +-/// \file TLogger.cxx ++/// \file RLogger.cxx + /// \ingroup Base ROOT7 + /// \author Axel Naumann + /// \date 2015-07-07 +diff --git a/core/clingutils/test/TClingUtilsTests.cxx b/core/clingutils/test/TClingUtilsTests.cxx +index fca26705c3..fbc12cd352 100644 +--- a/core/clingutils/test/TClingUtilsTests.cxx ++++ b/core/clingutils/test/TClingUtilsTests.cxx +@@ -1,4 +1,4 @@ +-/// \file TClingUtilsTest.cxx ++/// \file TClingUtilsTests.cxx + /// + /// \brief The file contain unit tests which test the TClingUtils.h + /// +diff --git a/core/foundation/inc/ROOT/RNotFn.hxx b/core/foundation/inc/ROOT/RNotFn.hxx +index a6dd13679e..a3877797f3 100644 +--- a/core/foundation/inc/ROOT/RNotFn.hxx ++++ b/core/foundation/inc/ROOT/RNotFn.hxx +@@ -1,4 +1,4 @@ +-/// \file ROOT/RNotFn.h ++/// \file ROOT/RNotFn.hxx + /// \ingroup Base StdExt + /// \author Danilo Piparo, Enrico Guiraud + /// \date 2018-01-19 +diff --git a/core/foundation/inc/ROOT/RSpan.hxx b/core/foundation/inc/ROOT/RSpan.hxx +index 9e356493e6..b7366d58e7 100644 +--- a/core/foundation/inc/ROOT/RSpan.hxx ++++ b/core/foundation/inc/ROOT/RSpan.hxx +@@ -1,4 +1,4 @@ +-/// \file ROOT/RSpan.h ++/// \file ROOT/RSpan.hxx + /// \ingroup Base StdExt + /// \author Axel Naumann + /// \date 2015-09-06 +diff --git a/core/foundation/inc/ROOT/span.hxx b/core/foundation/inc/ROOT/span.hxx +index ce1b0e1d96..185055bbe6 100644 +--- a/core/foundation/inc/ROOT/span.hxx ++++ b/core/foundation/inc/ROOT/span.hxx +@@ -1,4 +1,4 @@ +-/// \file ROOT/rhysd_span.h ++/// \file ROOT/span.hxx + /// \ingroup Base StdExt + /// \author Axel Naumann + /// \date 2015-09-06 +diff --git a/core/foundation/src/FoundationUtils.cxx b/core/foundation/src/FoundationUtils.cxx +index 9de395698b..d70e196130 100644 +--- a/core/foundation/src/FoundationUtils.cxx ++++ b/core/foundation/src/FoundationUtils.cxx +@@ -1,4 +1,4 @@ +-/// \file FoundationUtils.hxx ++/// \file FoundationUtils.cxx + /// + /// \brief The file contains utilities which are foundational and could be used + /// across the core component of ROOT. +diff --git a/gui/browsable/inc/ROOT/Browsable/RItem.hxx b/gui/browsable/inc/ROOT/Browsable/RItem.hxx +index a07870a2cb..290587013e 100644 +--- a/gui/browsable/inc/ROOT/Browsable/RItem.hxx ++++ b/gui/browsable/inc/ROOT/Browsable/RItem.hxx +@@ -1,4 +1,4 @@ +-/// \file ROOT/RBrowser.hxx ++/// \file ROOT/RItem.hxx + /// \ingroup WebGui ROOT7 + /// \author Bertrand Bellenot + /// \author Sergey Linev +diff --git a/gui/browsable/src/RHistDraw7Provider.cxx b/gui/browsable/src/RHistDraw7Provider.cxx +index 416db22472..e2e15303c6 100644 +--- a/gui/browsable/src/RHistDraw7Provider.cxx ++++ b/gui/browsable/src/RHistDraw7Provider.cxx +@@ -1,4 +1,4 @@ +-/// \file RDrawableRHist.cxx ++/// \file RHistDraw7Provider.cxx + /// \ingroup rbrowser + /// \author Bertrand Bellenot + /// \author Sergey Linev +diff --git a/gui/browsable/src/RSysFile.cxx b/gui/browsable/src/RSysFile.cxx +index d5f481cb83..4447164f52 100644 +--- a/gui/browsable/src/RSysFile.cxx ++++ b/gui/browsable/src/RSysFile.cxx +@@ -6,7 +6,7 @@ + * For the list of contributors see $ROOTSYS/README/CREDITS. * + *************************************************************************/ + +-/// \file ROOT/RFileBrowsable.cxx ++/// \file ROOT/RSysFile.cxx + /// \ingroup rbrowser + /// \author Sergey Linev + /// \date 2019-10-15 +diff --git a/gui/browserv7/inc/ROOT/RBrowserReply.hxx b/gui/browserv7/inc/ROOT/RBrowserReply.hxx +index bdb94f60ea..35a2f1f978 100644 +--- a/gui/browserv7/inc/ROOT/RBrowserReply.hxx ++++ b/gui/browserv7/inc/ROOT/RBrowserReply.hxx +@@ -1,4 +1,4 @@ +-/// \file ROOT/RBrowserRequest.hxx ++/// \file ROOT/RBrowserReply.hxx + /// \ingroup WebGui ROOT7 + /// \author Bertrand Bellenot + /// \author Sergey Linev +diff --git a/hist/hist/test/TFormulaGradientTests.cxx b/hist/hist/test/TFormulaGradientTests.cxx +index 8c11a56077..74c0930f03 100644 +--- a/hist/hist/test/TFormulaGradientTests.cxx ++++ b/hist/hist/test/TFormulaGradientTests.cxx +@@ -1,4 +1,4 @@ +-/// \file TFormulaGradientTests.h ++/// \file TFormulaGradientTests.cxx + /// + /// \brief The file contain unit tests which test the clad-based gradient + /// computations. +diff --git a/hist/histdrawv7/inc/ROOT/RHistDrawable.hxx b/hist/histdrawv7/inc/ROOT/RHistDrawable.hxx +index ac56b9c8f3..0b3b635d92 100644 +--- a/hist/histdrawv7/inc/ROOT/RHistDrawable.hxx ++++ b/hist/histdrawv7/inc/ROOT/RHistDrawable.hxx +@@ -1,4 +1,4 @@ +-/// \file ROOT/RHistDrawable.h ++/// \file ROOT/RHistDrawable.hxx + /// \ingroup HistDraw ROOT7 + /// \author Axel Naumann + /// \date 2015-07-09 +diff --git a/hist/histv7/inc/ROOT/RAxis.hxx b/hist/histv7/inc/ROOT/RAxis.hxx +index 1d35ed9b93..0371a06f97 100644 +--- a/hist/histv7/inc/ROOT/RAxis.hxx ++++ b/hist/histv7/inc/ROOT/RAxis.hxx +@@ -1,4 +1,4 @@ +-/// \file ROOT/RAxis.h ++/// \file ROOT/RAxis.hxx + /// \ingroup Hist ROOT7 + /// \author Axel Naumann + /// \date 2015-03-23 +diff --git a/hist/histv7/inc/ROOT/RAxisConfig.hxx b/hist/histv7/inc/ROOT/RAxisConfig.hxx +index 1e100986f0..34bf2f6a4a 100644 +--- a/hist/histv7/inc/ROOT/RAxisConfig.hxx ++++ b/hist/histv7/inc/ROOT/RAxisConfig.hxx +@@ -1,4 +1,4 @@ +-/// \file ROOT/RAxisConfig.h ++/// \file ROOT/RAxisConfig.hxx + /// \ingroup Hist ROOT7 + /// \author Axel Naumann + /// \date 2020-02-05 +diff --git a/hist/histv7/inc/ROOT/RHist.hxx b/hist/histv7/inc/ROOT/RHist.hxx +index ebb319f1ef..5567683b27 100644 +--- a/hist/histv7/inc/ROOT/RHist.hxx ++++ b/hist/histv7/inc/ROOT/RHist.hxx +@@ -1,4 +1,4 @@ +-/// \file ROOT/RHist.h ++/// \file ROOT/RHist.hxx + /// \ingroup Hist ROOT7 + /// \author Axel Naumann + /// \date 2015-03-23 +diff --git a/hist/histv7/inc/ROOT/RHistBinIter.hxx b/hist/histv7/inc/ROOT/RHistBinIter.hxx +index 60f57dd20e..ab77dfbeaa 100644 +--- a/hist/histv7/inc/ROOT/RHistBinIter.hxx ++++ b/hist/histv7/inc/ROOT/RHistBinIter.hxx +@@ -1,4 +1,4 @@ +-/// \file ROOT/RHistBinIter.h ++/// \file ROOT/RHistBinIter.hxx + /// \ingroup Hist ROOT7 + /// \author Axel Naumann + /// \date 2015-08-07 +diff --git a/hist/histv7/inc/ROOT/RHistBufferedFill.hxx b/hist/histv7/inc/ROOT/RHistBufferedFill.hxx +index bb1cade29b..8efe00e207 100644 +--- a/hist/histv7/inc/ROOT/RHistBufferedFill.hxx ++++ b/hist/histv7/inc/ROOT/RHistBufferedFill.hxx +@@ -1,4 +1,4 @@ +-/// \file ROOT/RHistBufferedFill.h ++/// \file ROOT/RHistBufferedFill.hxx + /// \ingroup Hist ROOT7 + /// \author Axel Naumann + /// \date 2015-07-03 +diff --git a/hist/histv7/inc/ROOT/RHistConcurrentFill.hxx b/hist/histv7/inc/ROOT/RHistConcurrentFill.hxx +index a6b4b6a8e2..8ff76eb659 100644 +--- a/hist/histv7/inc/ROOT/RHistConcurrentFill.hxx ++++ b/hist/histv7/inc/ROOT/RHistConcurrentFill.hxx +@@ -1,4 +1,4 @@ +-/// \file ROOT/RHistConcurrentFill.h ++/// \file ROOT/RHistConcurrentFill.hxx + /// \ingroup Hist ROOT7 + /// \author Axel Naumann + /// \date 2015-07-03 +diff --git a/hist/histv7/inc/ROOT/RHistData.hxx b/hist/histv7/inc/ROOT/RHistData.hxx +index 901bd5c33a..9757986ff4 100644 +--- a/hist/histv7/inc/ROOT/RHistData.hxx ++++ b/hist/histv7/inc/ROOT/RHistData.hxx +@@ -1,4 +1,4 @@ +-/// \file ROOT/RHistData.h ++/// \file ROOT/RHistData.hxx + /// \ingroup Hist ROOT7 + /// \author Axel Naumann + /// \date 2015-06-14 +diff --git a/hist/histv7/inc/ROOT/RHistImpl.hxx b/hist/histv7/inc/ROOT/RHistImpl.hxx +index 483d879f0e..b6d4b2c6b5 100644 +--- a/hist/histv7/inc/ROOT/RHistImpl.hxx ++++ b/hist/histv7/inc/ROOT/RHistImpl.hxx +@@ -1,4 +1,4 @@ +-/// \file ROOT/RHistImpl.h ++/// \file ROOT/RHistImpl.hxx + /// \ingroup Hist ROOT7 + /// \author Axel Naumann + /// \date 2015-03-23 +diff --git a/hist/histv7/inc/ROOT/RHistUtils.hxx b/hist/histv7/inc/ROOT/RHistUtils.hxx +index 3733113c2b..08a342bf61 100644 +--- a/hist/histv7/inc/ROOT/RHistUtils.hxx ++++ b/hist/histv7/inc/ROOT/RHistUtils.hxx +@@ -1,4 +1,4 @@ +-/// \file ROOT/RHistData.h ++/// \file ROOT/RHistUtils.hxx + /// \ingroup Hist ROOT7 + /// \author Axel Naumann + /// \date 2016-06-01 +diff --git a/hist/histv7/inc/ROOT/RHistView.hxx b/hist/histv7/inc/ROOT/RHistView.hxx +index b65d3518dd..d2b40e0f35 100644 +--- a/hist/histv7/inc/ROOT/RHistView.hxx ++++ b/hist/histv7/inc/ROOT/RHistView.hxx +@@ -1,4 +1,4 @@ +-/// \file ROOT/RHistView.h ++/// \file ROOT/RHistView.hxx + /// \ingroup Hist ROOT7 + /// \author Axel Naumann + /// \date 2015-08-06 +diff --git a/io/io/v7/inc/ROOT/RFile.hxx b/io/io/v7/inc/ROOT/RFile.hxx +index 6d3baaec05..c371a25875 100644 +--- a/io/io/v7/inc/ROOT/RFile.hxx ++++ b/io/io/v7/inc/ROOT/RFile.hxx +@@ -1,4 +1,4 @@ +-/// \file ROOT/RFile.h ++/// \file ROOT/RFile.hxx + /// \ingroup Base ROOT7 + /// \author Axel Naumann + /// \date 2015-07-31 +diff --git a/math/mathcore/test/CladDerivatorTests.cxx b/math/mathcore/test/CladDerivatorTests.cxx +index e4289a7286..d1682094e0 100644 +--- a/math/mathcore/test/CladDerivatorTests.cxx ++++ b/math/mathcore/test/CladDerivatorTests.cxx +@@ -1,4 +1,4 @@ +-/// \file CladDerivator.h ++/// \file CladDerivatorTests.cxx + /// + /// \brief The file contain unit tests which test the CladDerivator facility. + /// +diff --git a/math/mathcore/v7/inc/ROOT/RFit.hxx b/math/mathcore/v7/inc/ROOT/RFit.hxx +index 4fae336242..5b92733152 100644 +--- a/math/mathcore/v7/inc/ROOT/RFit.hxx ++++ b/math/mathcore/v7/inc/ROOT/RFit.hxx +@@ -1,4 +1,4 @@ +-/// \file ROOT/RFit.h ++/// \file ROOT/RFit.hxx + /// \ingroup MathCore ROOT7 + /// \author Axel Naumann + /// \date 2015-09-06 +diff --git a/tmva/tmva/inc/TMVA/NeuralNet.h b/tmva/tmva/inc/TMVA/NeuralNet.h +index 31229cb1cf..bae98a48b2 100644 +--- a/tmva/tmva/inc/TMVA/NeuralNet.h ++++ b/tmva/tmva/inc/TMVA/NeuralNet.h +@@ -1,5 +1,5 @@ + /** +- * @file NeuralNet ++ * @file TMVA/NeuralNet.h + * @author Peter Speckmayer + * @version 1.0 + * +-- +2.26.2 + diff --git a/root-doxygen-macro-name.patch b/root-doxygen-macro-name.patch new file mode 100644 index 0000000..a97bdf0 --- /dev/null +++ b/root-doxygen-macro-name.patch @@ -0,0 +1,29 @@ +From 8266262f76eaef4dc72ffda38e1d315be2ce3ff0 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Wed, 8 Jul 2020 19:41:34 +0200 +Subject: [PATCH 5/5] Make the name of macro match the filename + +Fixes: + +warning: Failed to call `rs302_JeffreysPriorDemo()` to execute the macro. +Add this function or rename the macro. Falling back to `.L`. +--- + tutorials/roostats/rs302_JeffreysPriorDemo.C | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tutorials/roostats/rs302_JeffreysPriorDemo.C b/tutorials/roostats/rs302_JeffreysPriorDemo.C +index c2f720a5f9..1c52e5dd83 100644 +--- a/tutorials/roostats/rs302_JeffreysPriorDemo.C ++++ b/tutorials/roostats/rs302_JeffreysPriorDemo.C +@@ -49,7 +49,7 @@ + + using namespace RooFit; + +-void JeffreysPriorDemo() ++void rs302_JeffreysPriorDemo() + { + RooWorkspace w("w"); + w.factory("Uniform::u(x[0,1])"); +-- +2.26.2 + diff --git a/root-doxygen-md-comments.patch b/root-doxygen-md-comments.patch new file mode 100644 index 0000000..c1f57e2 --- /dev/null +++ b/root-doxygen-md-comments.patch @@ -0,0 +1,214 @@ +From 7336caccd3288a9164c82b78053e8f4f59eb1a9c Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Sun, 12 Jul 2020 12:12:15 +0200 +Subject: [PATCH] Remove /** comments */ from md files + +--- + math/genvector/doc/Genvector.md | 7 ------- + math/genvector/doc/LorentzVector.md | 6 +----- + math/genvector/doc/Point3D.md | 6 ------ + math/genvector/doc/Transformation.md | 6 ------ + math/genvector/doc/Vector3D.md | 4 ---- + math/genvector/doc/VectorPoint2D.md | 6 ------ + math/genvector/doc/externalUsage.md | 6 ------ + math/mathcore/doc/MathCore.md | 5 ----- + math/mathmore/doc/MathMore.md | 5 ----- + math/matrix/doc/Matrix.md | 3 --- + math/unuran/doc/Unuran.md | 8 ++------ + 11 files changed, 3 insertions(+), 59 deletions(-) + +diff --git a/math/genvector/doc/Genvector.md b/math/genvector/doc/Genvector.md +index 12e4e47a93..50dc61b2ce 100644 +--- a/math/genvector/doc/Genvector.md ++++ b/math/genvector/doc/Genvector.md +@@ -1,5 +1,3 @@ +-/** +- + \page Vector Generic Vector for 2, 3 and 4 Dimensions + + +@@ -113,8 +111,3 @@ A more detailed description of all the GenVector classes is available in this [d + 2. [CLHEP Geometry package](http://www.hep.phy.cam.ac.uk/lhcb/doc/CLHEP/1.9.1.2/html/namespaceH) + 3. [%ROOT Physics Vector classes](http://root.cern.ch/root/html/PHYSICS_Index.html) + 4. [CMS Vector package](http://lcgapp.cern.ch/doxygen/SEAL/snapshot/html/dir_000007.html) +- +-* * * +- +-*/ +- +diff --git a/math/genvector/doc/LorentzVector.md b/math/genvector/doc/LorentzVector.md +index b40ea8c69c..e01ed4a8ca 100644 +--- a/math/genvector/doc/LorentzVector.md ++++ b/math/genvector/doc/LorentzVector.md +@@ -1,6 +1,4 @@ +-// LorentzVector doxygen page +- +-/** \page LorentzVectorPage LorentzVector Classes ++\page LorentzVectorPage LorentzVector Classes + + To avoid exposing templated parameter to the users, typedefs are defined for all types of vectors based an double's and float's. To use them, one must include the header file _Math/Vector4D.h_. The following typedef's, defined in the header file _Math/Vector4Dfwd.h_, are available for the different instantiations of the template class ROOT::Math::LorentzVector: + +@@ -110,5 +108,3 @@ v.Beta(); // return beta and gamma value + v.Gamma() // (vector must be time-like otherwise result is meaningless) + XYZVector b = v.BoostToCM() // return boost vector which will bring the Vector in its mas frame (P=0) + +- +-*/ +diff --git a/math/genvector/doc/Point3D.md b/math/genvector/doc/Point3D.md +index a273b182d4..db55c68752 100644 +--- a/math/genvector/doc/Point3D.md ++++ b/math/genvector/doc/Point3D.md +@@ -1,7 +1,3 @@ +-// Point3d doxygen page +- +-/** +- + \page Point3DPage Point3D Classes + + To avoid exposing templated parameter to the users, typedefs are defined for all types of vectors based an double's and float's. To use them, one must include the header file _Math/Point3D.h_. The following typedef's, defined in the header file _Math/Point3Dfwd.h_, are available for the different instantiations of the template class ROOT::Math::PositionVector3D: +@@ -61,5 +57,3 @@ Exactly as for the 3D Vectors, the following operations are allowed: + * comparison of points + * scaling and division of points with a scalar + * dot and cross product with any type of vector +- +-*/ +diff --git a/math/genvector/doc/Transformation.md b/math/genvector/doc/Transformation.md +index 7e66107f55..edc36778ed 100644 +--- a/math/genvector/doc/Transformation.md ++++ b/math/genvector/doc/Transformation.md +@@ -1,7 +1,3 @@ +-// Rotation and transformation doxygen page +- +-/** +- + \page TransformPage Vector Transformations + + Transformations classes are grouped in Rotations (in 3 dimensions), Lorentz transformations and Poincarre transformations, which are Translation/Rotation combinations. Each group has several members which may model physically equivalent trasformations but with different internal representations. +@@ -114,5 +110,3 @@ Transform3D t; t.GetComponens(m); // fill matrix of size 3x4 with c + + + For more detailed documentation on all methods see the reference doc for the specific transformation class. +- +-*/ +diff --git a/math/genvector/doc/Vector3D.md b/math/genvector/doc/Vector3D.md +index 4f65f6b603..9d10ce7db2 100644 +--- a/math/genvector/doc/Vector3D.md ++++ b/math/genvector/doc/Vector3D.md +@@ -1,5 +1,3 @@ +-/** +- + \page Vector3DPage Vector3D Classes + + +@@ -120,5 +118,3 @@ Note that the multiplication between two vectors using the operator * is not sup + +
    XYZVector u = v1.Unit();               //  return unit vector parallel to v1
    + 
    +- +-*/ +diff --git a/math/genvector/doc/VectorPoint2D.md b/math/genvector/doc/VectorPoint2D.md +index 5c5e665088..287f3f8b73 100644 +--- a/math/genvector/doc/VectorPoint2D.md ++++ b/math/genvector/doc/VectorPoint2D.md +@@ -1,7 +1,3 @@ +-// Vector2d doxygen page +- +-/** +- + \page Vector2DPage 2D Point and Vector Classes + + Similar to the \ref Vector3DPage and \ref Point3DPage , typedefs are defined to avoid exposing templated parameter to the users, for all 2D vectors based an double's and float's. To use them, one must include the header file _Math/Vector2D.h_ or _Math/Point2D.h_. The following typedef's, defined in the header file _Math/Vector2Dfwd.h_, are available for the different instantiations of the template class ROOT::Math::DisplacementVector2D: +@@ -19,5 +15,3 @@ The typedef's, defined in the header file _Math/Point2Dfwd.h_, available for the + * ROOT::Math::Polar2DPointF vector based on r,phi coordinates (polar) in float precision + + Similar constructs, functions and operations available for the 3D vectors and points (see \ref Vector3DPage and \ref Point3DPage ) are available also for the 2D vector and points. No transformations or rotation classes are available for the 2D vectors. +- +-*/ +diff --git a/math/genvector/doc/externalUsage.md b/math/genvector/doc/externalUsage.md +index f8580225a5..4413bbafca 100644 +--- a/math/genvector/doc/externalUsage.md ++++ b/math/genvector/doc/externalUsage.md +@@ -1,7 +1,3 @@ +-// example on using with exteral classes (doxygen page) +- +-/** +- + \page ExtUsagePage Examples with External Packages + + ### Connection to Linear Algebra classes +@@ -48,5 +44,3 @@ XYZPoint p1(hp); // create a 3D Point from CLHEP geom + + CLHEP::HepLorentzVector hq; + XYZTVector q(hq); // create a LorentzVector from CLHEP L.V. +- +-*/ +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 new file mode 100644 index 0000000..630d58f --- /dev/null +++ b/root-doxygen-missing-underscore.patch @@ -0,0 +1,25 @@ +From e6e6715a73fb8b65ee24c11ff08ca34e25db9ef1 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Wed, 8 Jul 2020 19:41:10 +0200 +Subject: [PATCH 4/5] Add missing underscore + +--- + tutorials/fit/vectorizedFit.C | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tutorials/fit/vectorizedFit.C b/tutorials/fit/vectorizedFit.C +index d6b13e2fa7..1f6e317aa6 100644 +--- a/tutorials/fit/vectorizedFit.C ++++ b/tutorials/fit/vectorizedFit.C +@@ -8,7 +8,7 @@ + /// TF1::SetVectorized + /// + /// \macro_image +-/// \macro output ++/// \macro_output + /// \macro_code + /// + /// \author Lorenzo Moneta +-- +2.26.2 + diff --git a/root-doxygen-parameter-names.patch b/root-doxygen-parameter-names.patch new file mode 100644 index 0000000..7cc7d2e --- /dev/null +++ b/root-doxygen-parameter-names.patch @@ -0,0 +1,1211 @@ +From e65727913e435819a3fc26513d9892d179eab1f2 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Wed, 8 Jul 2020 19:32:51 +0200 +Subject: [PATCH 3/5] Adjust parameter names in doxygen markup so they match + the code + +Addresses warnings: + +argument '' of command @param is not found in the argument list +of . +--- + .../pythonizations/src/PyzPythonHelpers.cxx | 2 +- + bindings/r/inc/TRInterface.h | 4 +-- + hist/hist/src/TF1.cxx | 5 ++- + hist/hist/src/TGraph.cxx | 6 ++-- + hist/histpainter/src/TPainter3dAlgorithms.cxx | 6 ++-- + hist/histv7/inc/ROOT/RAxis.hxx | 11 +++---- + hist/histv7/inc/ROOT/RHist.hxx | 2 +- + hist/unfold/src/TUnfoldBinning.cxx | 24 +++++++------- + hist/unfold/src/TUnfoldBinningXML.cxx | 2 +- + hist/unfold/src/TUnfoldDensity.cxx | 2 +- + hist/unfold/src/TUnfoldSys.cxx | 7 ++-- + io/io/inc/ROOT/TBufferMerger.hxx | 2 +- + math/mathcore/inc/Math/IntegratorMultiDim.h | 2 +- + math/minuit2/inc/Minuit2/FCNBase.h | 4 +-- + math/minuit2/inc/Minuit2/FumiliChi2FCN.h | 2 +- + math/minuit2/inc/Minuit2/FumiliErrorUpdator.h | 2 +- + .../inc/Minuit2/FumiliMaximumLikelihoodFCN.h | 2 +- + roofit/roofit/src/RooExponential.cxx | 2 +- + roofit/roofit/src/RooGExpModel.cxx | 32 +++++++++---------- + roofit/roofit/src/RooGaussian.cxx | 2 +- + roofit/roofit/src/RooJohnson.cxx | 2 +- + roofit/roofit/src/RooLandau.cxx | 2 +- + roofit/roofitcore/src/BatchData.cxx | 2 +- + roofit/roofitcore/src/RooAbsPdf.cxx | 4 +-- + roofit/roofitcore/src/RooAbsReal.cxx | 2 +- + roofit/roofitcore/src/RooCustomizer.cxx | 4 +-- + roofit/roofitcore/src/RooDataHist.cxx | 4 +-- + roofit/roofitcore/src/RooDataSet.cxx | 10 +++--- + roofit/roofitcore/src/RooFormulaVar.cxx | 2 +- + roofit/roofitcore/src/RooSuperCategory.cxx | 2 +- + roofit/roofitmore/src/RooHypatia2.cxx | 6 ++-- + tmva/tmva/inc/TMVA/BDTEventWrapper.h | 4 +-- + tmva/tmva/inc/TMVA/NeuralNet.h | 14 +++----- + tmva/tmva/inc/TMVA/NeuralNet.icc | 2 +- + tmva/tmva/inc/TMVA/RTensor.hxx | 2 +- + .../inc/TMVA/TreeInference/BranchlessTree.hxx | 4 +-- + tmva/tmva/inc/TMVA/TreeInference/Forest.hxx | 2 +- + tmva/tmva/src/BDTEventWrapper.cxx | 2 +- + tmva/tmva/src/CrossValidation.cxx | 2 +- + tmva/tmva/src/CvSplit.cxx | 18 +++++------ + tmva/tmva/src/Envelope.cxx | 12 +++---- + tree/dataframe/inc/ROOT/RDF/RInterface.hxx | 16 +++++----- + tree/dataframe/inc/ROOT/RDFHelpers.hxx | 2 +- + tree/dataframe/inc/ROOT/RDataSource.hxx | 8 ++--- + tree/dataframe/inc/ROOT/RResultPtr.hxx | 2 +- + tree/dataframe/src/RArrowDS.cxx | 4 +-- + tree/tree/inc/TTree.h | 2 +- + tree/tree/src/TIOFeatures.cxx | 14 ++++---- + 48 files changed, 131 insertions(+), 140 deletions(-) + +diff --git a/bindings/pyroot/pythonizations/src/PyzPythonHelpers.cxx b/bindings/pyroot/pythonizations/src/PyzPythonHelpers.cxx +index 059debcee4..c5e354f300 100644 +--- a/bindings/pyroot/pythonizations/src/PyzPythonHelpers.cxx ++++ b/bindings/pyroot/pythonizations/src/PyzPythonHelpers.cxx +@@ -99,7 +99,7 @@ PyObject *PyROOT::GetDataPointer(PyObject * /*self*/, PyObject *args) + /// \brief Get endianess of the system + /// \param[in] self Always null, since this is a module function. + /// \param[in] args Pointer to an empty Python tuple. +-/// \param[out] Endianess as Python string ++/// \return Endianess as Python string + /// + /// This function returns endianess of the system as a Python integer. The + /// return value is either '<' or '>' for little or big endian, respectively. +diff --git a/bindings/r/inc/TRInterface.h b/bindings/r/inc/TRInterface.h +index bdb559bfb5..e097007429 100644 +--- a/bindings/r/inc/TRInterface.h ++++ b/bindings/r/inc/TRInterface.h +@@ -206,7 +206,7 @@ namespace ROOT { + The command line arguments are by deafult argc=0 and argv=NULL, + The verbose mode is by default disabled but you can enable it to show procedures information in stdout/stderr \note some time can produce so much noise in the output + \param argc default 0 +- \param args default null ++ \param argv default null + \param loadRcpp default true + \param verbose default false + \param interactive default true +@@ -226,7 +226,7 @@ namespace ROOT { + /** + Method to eval R code and you get the result in a reference to TRObject + \param code R code +- \param ands reference to TRObject ++ \param ans reference to TRObject + \return an true or false if the execution was sucessful or not. + */ + Int_t Eval(const TString &code, TRObject &ans); // parse line, returns in ans; error code rc +diff --git a/hist/hist/src/TF1.cxx b/hist/hist/src/TF1.cxx +index a72b309c1e..0b7c0b5e45 100644 +--- a/hist/hist/src/TF1.cxx ++++ b/hist/hist/src/TF1.cxx +@@ -1973,12 +1973,11 @@ Double_t TF1::GetProb() const + /// F(x_{\frac{1}{2}}) = \prod(x < x_{\frac{1}{2}}) = \frac{1}{2} + /// \f] + /// +-/// \param[in] this TF1 function + /// \param[in] nprobSum maximum size of array q and size of array probSum ++/// \param[out] q array filled with nq quantiles + /// \param[in] probSum array of positions where quantiles will be computed. + /// It is assumed to contain at least nprobSum values. +-/// \param[out] return value nq (<=nprobSum) with the number of quantiles computed +-/// \param[out] array q filled with nq quantiles ++/// \return value nq (<=nprobSum) with the number of quantiles computed + /// + /// Getting quantiles from two histograms and storing results in a TGraph, + /// a so-called QQ-plot +diff --git a/hist/hist/src/TGraph.cxx b/hist/hist/src/TGraph.cxx +index b6e05a4a9c..614c63d697 100644 +--- a/hist/hist/src/TGraph.cxx ++++ b/hist/hist/src/TGraph.cxx +@@ -1900,9 +1900,9 @@ Int_t TGraph::IsInside(Double_t x, Double_t y) const + /// Least squares polynomial fitting without weights. + /// + /// \param [in] m number of parameters +-/// \param [in] ma array of parameters +-/// \param [in] mfirst 1st point number to fit (default =0) +-/// \param [in] mlast last point number to fit (default=fNpoints-1) ++/// \param [in] a array of parameters ++/// \param [in] xmin 1st point number to fit (default =0) ++/// \param [in] xmax last point number to fit (default=fNpoints-1) + /// + /// based on CERNLIB routine LSQ: Translated to C++ by Rene Brun + +diff --git a/hist/histpainter/src/TPainter3dAlgorithms.cxx b/hist/histpainter/src/TPainter3dAlgorithms.cxx +index e0dd1f28e4..a95ac36d2d 100644 +--- a/hist/histpainter/src/TPainter3dAlgorithms.cxx ++++ b/hist/histpainter/src/TPainter3dAlgorithms.cxx +@@ -3122,8 +3122,8 @@ L500: + /// Set light source + /// + /// \param[in] nl source number: 1 off all light sources, 0 set diffused light +-/// \param[in] xl intensity of the light source +-/// \param[in] xscr `yscr` `zscr` direction of the light (in respect of the screen) ++/// \param[in] yl intensity of the light source ++/// \param[in] xscr, yscr, zscr direction of the light (in respect of the screen) + /// + /// \param[out] irep reply (0 - O.K, -1 error) + +@@ -4074,7 +4074,7 @@ L500: + /// \param[in] qqa diffusion coefficient for diffused light [0.,1.] + /// \param[in] qqd diffusion coefficient for direct light [0.,1.] + /// \param[in] qqs diffusion coefficient for reflected light [0.,1.] +-/// \param[in] nncs power coefficient for reflected light (.GE.1) ++/// \param[in] nnqs power coefficient for reflected light (.GE.1) + /// + /// Lightness model formula: Y = YD*QA + > YLi*(QD*cosNi+QS*cosRi) + /// +diff --git a/hist/histv7/inc/ROOT/RAxis.hxx b/hist/histv7/inc/ROOT/RAxis.hxx +index 0371a06f97..52ed88b9d8 100644 +--- a/hist/histv7/inc/ROOT/RAxis.hxx ++++ b/hist/histv7/inc/ROOT/RAxis.hxx +@@ -68,7 +68,7 @@ protected: + /// determine the bin number taking into account how over/underflow + /// should be handled. + /// +- /// \param[out] result status of the bin determination. ++ /// \param[in] rawbin for which to determine the bin number. + /// \return Returns the bin number adjusted for potential over- and underflow + /// bins. Returns `kInvalidBin` if the axis cannot handle the over- / underflow. + /// +@@ -390,7 +390,7 @@ protected: + /// Determine the inverse bin width. + /// \param nbinsNoOver - number of bins without unter-/overflow + /// \param lowOrHigh - first axis boundary +- /// \param lighOrLow - second axis boundary ++ /// \param highOrLow - second axis boundary + static double GetInvBinWidth(int nbinsNoOver, double lowOrHigh, double highOrLow) + { + return nbinsNoOver / std::fabs(highOrLow - lowOrHigh); +@@ -413,7 +413,7 @@ public: + + /// Initialize a RAxisEquidistant. + /// \param[in] title - axis title used for graphics and text representation. +- /// \param nbins - number of bins in the axis, excluding under- and overflow ++ /// \param nbinsNoOver - number of bins in the axis, excluding under- and overflow + /// bins. + /// \param low - the low axis range. Any coordinate below that is considered + /// as underflow. The first bin's lower edge is at this value. +@@ -427,13 +427,12 @@ public: + {} + + /// Initialize a RAxisEquidistant. +- /// \param nbins - number of bins in the axis, excluding under- and overflow ++ /// \param nbinsNoOver - number of bins in the axis, excluding under- and overflow + /// bins. + /// \param low - the low axis range. Any coordinate below that is considered + /// as underflow. The first bin's lower edge is at this value. + /// \param high - the high axis range. Any coordinate above that is considered + /// as overflow. The last bin's higher edge is at this value. +- /// \param canGrow - whether this axis can extend its range. + explicit RAxisEquidistant(int nbinsNoOver, double low, double high) noexcept + : RAxisEquidistant("", nbinsNoOver, low, high) + {} +@@ -505,6 +504,7 @@ struct AxisConfigToType { + class RAxisGrow: public RAxisEquidistant { + public: + /// Initialize a RAxisGrow. ++ /// \param[in] title - axis title used for graphics and text representation. + /// \param nbins - number of bins in the axis, excluding under- and overflow + /// bins. This value is fixed over the lifetime of the object. + /// \param low - the initial value for the low axis range. Any coordinate +@@ -518,7 +518,6 @@ public: + {} + + /// Initialize a RAxisGrow. +- /// \param[in] title - axis title used for graphics and text representation. + /// \param nbins - number of bins in the axis, excluding under- and overflow + /// bins. This value is fixed over the lifetime of the object. + /// \param low - the initial value for the low axis range. Any coordinate +diff --git a/hist/histv7/inc/ROOT/RHist.hxx b/hist/histv7/inc/ROOT/RHist.hxx +index 5567683b27..e2b7649975 100644 +--- a/hist/histv7/inc/ROOT/RHist.hxx ++++ b/hist/histv7/inc/ROOT/RHist.hxx +@@ -219,9 +219,9 @@ struct RHistImplGen { + /// + /// Delegate to the appropriate MakeNextAxis instantiation, depending on the + /// axis type selected in the RAxisConfig. ++ /// \param title - title of the derived object. + /// \param axes - `RAxisConfig` objects describing the axis of the resulting + /// RHistImpl. +- /// \param statConfig - the statConfig parameter to be passed to the RHistImpl + /// \param processedAxisArgs - the RAxisBase-derived axis objects describing the + /// axes of the resulting RHistImpl. There are `IDIM` of those; in the end + /// (`IDIM` == `GetNDim()`), all `axes` have been converted to +diff --git a/hist/unfold/src/TUnfoldBinning.cxx b/hist/unfold/src/TUnfoldBinning.cxx +index 3aecbf53c2..2500230dca 100644 +--- a/hist/unfold/src/TUnfoldBinning.cxx ++++ b/hist/unfold/src/TUnfoldBinning.cxx +@@ -205,7 +205,7 @@ Int_t TUnfoldBinning::UpdateFirstLastBin(Bool_t startWithRootNode) + /// Create a new node without axis. + /// + /// \param[in] name identifier of the node +-/// \param[in] nBin number of unconnected bins (could be zero) ++/// \param[in] nBins number of unconnected bins (could be zero) + /// \param[in] binNames (optional) names of the bins separated by ';' + + TUnfoldBinning::TUnfoldBinning +@@ -241,7 +241,7 @@ TUnfoldBinning::TUnfoldBinning + /// Add a new binning node as last last child of this node. + /// + /// \param[in] name name of the node +-/// \param[in] nBin number of extra bins ++/// \param[in] nBins number of extra bins + /// \param[in] binNames (optional) names of the bins separated by ';' + /// + /// this is a shortcut for AddBinning(new TUnfoldBinning(name,nBins,binNames)) +@@ -695,11 +695,11 @@ Int_t TUnfoldBinning::GetTH1xNumberOfBins + /// + /// \param[in] histogramName name of the histogram which is created + /// \param[in] originalAxisBinning if true, try to preserve the axis binning +-/// \param[out] (default=0) binMap mapping of global bins to histogram bins. ++/// \param[out] binMap (default=0) mapping of global bins to histogram bins. + /// if(binMap==0), no binMap is created +-/// \param[in] (default=0) histogramTitle title of the histogram. If zero, a title ++/// \param[in] histogramTitle (default=0) title of the histogram. If zero, a title + /// is selected automatically +-/// \param[in] (default=0) axisSteering steer the handling of underflow/overflow ++/// \param[in] axisSteering (default=0) steer the handling of underflow/overflow + /// and projections + /// + /// returns a new histogram (TH1D, TH2D or TH3D) +@@ -789,11 +789,11 @@ TH1 *TUnfoldBinning::CreateHistogram + /// + /// \param[in] histogramName name of the histogram which is created + /// \param[in] originalAxisBinning if true, try to preserve the axis binning +-/// \param[out] (default=0) binMap mapping of global bins to histogram bins. ++/// \param[out] binMap (default=0) mapping of global bins to histogram bins. + /// if(binMap==0), no binMap is created +-/// \param[in] (default=0) histogramTitle title of the histogram. If zero, a title ++/// \param[in] histogramTitle (default=0) title of the histogram. If zero, a title + /// is selected automatically +-/// \param[in] (default=0) axisSteering steer the handling of underflow/overflow ++/// \param[in] axisSteering (default=0) steer the handling of underflow/overflow + /// and projections + /// + /// returns a new TH2D. The options are described in greater detail +@@ -832,7 +832,7 @@ TH2D *TUnfoldBinning::CreateErrorMatrixHistogram + /// Create a TH2D histogram capable to hold the bins of the two + /// input binning schemes on the x and y axes, respectively. + /// +-/// \paran[in] xAxis binning scheme for the x axis ++/// \param[in] xAxis binning scheme for the x axis + /// \param[in] yAxis binning scheme for the y axis + /// \param[in] histogramName name of the histogram which is created + /// \param[in] originalXAxisBinning preserve x-axis bin widths if possible +@@ -1053,8 +1053,8 @@ Int_t *TUnfoldBinning::CreateEmptyBinMap(void) const { + /// Set one entry in a bin map. + /// + /// \param[out] binMap to be used with TUnfoldSys::GetOutput() etc +-/// \param[in] source bin, global bin number in this binning scheme +-/// \param[in] destination bin in the output histogram ++/// \param[in] globalBin source bin, global bin number in this binning scheme ++/// \param[in] destBin destination bin in the output histogram + + void TUnfoldBinning::SetBinMapEntry + (Int_t *binMap,Int_t globalBin,Int_t destBin) const { +@@ -2075,7 +2075,7 @@ Int_t TUnfoldBinning::ToGlobalBin + /// and bin numbers on the corresponding axes. + /// + /// \param[in] globalBin global bin number +-/// \param[out] local bin numbers of the distribution's axes ++/// \param[out] axisBins local bin numbers of the distribution's axes + /// + /// returns the distribution in which the globalBin is located + /// or 0 if the globalBin is outside this node and its children +diff --git a/hist/unfold/src/TUnfoldBinningXML.cxx b/hist/unfold/src/TUnfoldBinningXML.cxx +index 28ce408128..a1daf58215 100644 +--- a/hist/unfold/src/TUnfoldBinningXML.cxx ++++ b/hist/unfold/src/TUnfoldBinningXML.cxx +@@ -472,7 +472,7 @@ void TUnfoldBinningXML::AddAxisXML(TXMLNode *node) { + /// Export a binning scheme to a stream in XML format. + /// + /// \param[in] binning the binning scheme to export +-/// \param[out] stream to write to ++/// \param[in] out stream to write to + /// \param[in] writeHeader set true when writing the first binning + /// scheme to this stream + /// \param[in] writeFooter set true when writing the last binning +diff --git a/hist/unfold/src/TUnfoldDensity.cxx b/hist/unfold/src/TUnfoldDensity.cxx +index 9b32da0961..78c7ddbf14 100644 +--- a/hist/unfold/src/TUnfoldDensity.cxx ++++ b/hist/unfold/src/TUnfoldDensity.cxx +@@ -1311,7 +1311,7 @@ const TUnfoldBinning *TUnfoldDensity::GetOutputBinning + /// \param[out] scanResult the scanned function wrt log(tau) + /// \param[in] mode 1st parameter for the scan function + /// \param[in] distribution 2nd parameter for the scan function +-/// \param[in] projectionMode 3rd parameter for the scan function ++/// \param[in] axisSteering 3rd parameter for the scan function + /// \param[out] lCurvePlot for monitoring, shows the L-curve + /// \param[out] logTauXPlot for monitoring, L-curve(X) as a function of log(tau) + /// \param[out] logTauYPlot for monitoring, L-curve(Y) as a function of log(tau) +diff --git a/hist/unfold/src/TUnfoldSys.cxx b/hist/unfold/src/TUnfoldSys.cxx +index 42bbc7751c..1e89445cde 100644 +--- a/hist/unfold/src/TUnfoldSys.cxx ++++ b/hist/unfold/src/TUnfoldSys.cxx +@@ -463,7 +463,7 @@ Int_t TUnfoldSys::SetInput(const TH1 *hist_y,Double_t scaleBias, + /// \param[in] bgr background distribution with uncorrelated errors + /// \param[in] name identifier for this background source + /// \param[in] scale normalisation factor applied to the background +-/// \param[in] scaleError normalisation uncertainty ++/// \param[in] scale_error normalisation uncertainty + /// + /// The contribution scale*bgr is subtracted from the + /// measurement prior to unfolding. The following contributions are +@@ -1045,7 +1045,6 @@ Bool_t TUnfoldSys::GetDeltaSysBackgroundScale + /// Correlated one-sigma shifts from shifting tau. + /// + /// \param[out] hist_delta histogram to store shifts +-/// \param[in] source identifier of the background source + /// \param[in] binMap (default=0) remapping of histogram bins + /// + /// returns true if the background source was found. +@@ -1100,8 +1099,8 @@ void TUnfoldSys::GetEmatrixSysSource + //////////////////////////////////////////////////////////////////////////////// + /// Covariance contribution from background normalisation uncertainty. + /// +-/// \param[inout] ematrix output histogram +-/// \param[in] source identifier of the background source ++/// \param[in,out] ematrix output histogram ++/// \param[in] name identifier of the background source + /// \param[in] binMap (default=0) remapping of histogram bins + /// \param[in] clearEmat (default=true) if true, clear the histogram + /// prior to adding the covariance matrix contribution +diff --git a/io/io/inc/ROOT/TBufferMerger.hxx b/io/io/inc/ROOT/TBufferMerger.hxx +index 27fe36d399..5e4cfe52cb 100644 +--- a/io/io/inc/ROOT/TBufferMerger.hxx ++++ b/io/io/inc/ROOT/TBufferMerger.hxx +@@ -43,7 +43,7 @@ public: + /** Constructor + * @param name Output file name + * @param option Output file creation options +- * @param compression Output file compression level ++ * @param compress Output file compression level + */ + TBufferMerger(const char *name, Option_t *option = "RECREATE", Int_t compress = ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault); + +diff --git a/math/mathcore/inc/Math/IntegratorMultiDim.h b/math/mathcore/inc/Math/IntegratorMultiDim.h +index 0d2d56396e..7b14f96d8e 100644 +--- a/math/mathcore/inc/Math/IntegratorMultiDim.h ++++ b/math/mathcore/inc/Math/IntegratorMultiDim.h +@@ -60,7 +60,7 @@ public: + @param type integration type (adaptive, MC methods, etc..) + @param absTol desired absolute Error + @param relTol desired relative Error +- @param size maximum number of sub-intervals ++ @param ncall number of function calls (apply only to MC integratioon methods) + + In case no parameter values are passed the default ones used in IntegratorMultiDimOptions are used + */ +diff --git a/math/minuit2/inc/Minuit2/FCNBase.h b/math/minuit2/inc/Minuit2/FCNBase.h +index bf6c64bd9e..760df5b6f4 100644 +--- a/math/minuit2/inc/Minuit2/FCNBase.h ++++ b/math/minuit2/inc/Minuit2/FCNBase.h +@@ -65,7 +65,7 @@ public: + as it searches for the Minimum or performs whatever analysis is requested by + the user. + +- @param par function parameters as defined by the user. ++ @param v function parameters as defined by the user. + + @return the Value of the function. + +@@ -75,7 +75,7 @@ public: + + */ + +- virtual double operator()(const std::vector& x) const = 0; ++ virtual double operator()(const std::vector& v) const = 0; + + + /** +diff --git a/math/minuit2/inc/Minuit2/FumiliChi2FCN.h b/math/minuit2/inc/Minuit2/FumiliChi2FCN.h +index 6af985ef08..fac33baaf6 100644 +--- a/math/minuit2/inc/Minuit2/FumiliChi2FCN.h ++++ b/math/minuit2/inc/Minuit2/FumiliChi2FCN.h +@@ -62,7 +62,7 @@ public: + + Sets the model function for the data (for example gaussian+linear for a peak) + +- @param modelFunction a reference to the model function. ++ @param modelFCN a reference to the model function. + + */ + +diff --git a/math/minuit2/inc/Minuit2/FumiliErrorUpdator.h b/math/minuit2/inc/Minuit2/FumiliErrorUpdator.h +index 3eb5da9c36..4b620c57a8 100644 +--- a/math/minuit2/inc/Minuit2/FumiliErrorUpdator.h ++++ b/math/minuit2/inc/Minuit2/FumiliErrorUpdator.h +@@ -67,7 +67,7 @@ public: + + @param fGradientCalculator the Gradient calculator used to retrieved the Parameter transformation + +- @param fFumiliFCNBase the function calculating the figure of merit. ++ @param lambda the Marquard lambda factor + + + \todo Some nice latex mathematical formuli... +diff --git a/math/minuit2/inc/Minuit2/FumiliMaximumLikelihoodFCN.h b/math/minuit2/inc/Minuit2/FumiliMaximumLikelihoodFCN.h +index c6725ae350..1661bee94a 100644 +--- a/math/minuit2/inc/Minuit2/FumiliMaximumLikelihoodFCN.h ++++ b/math/minuit2/inc/Minuit2/FumiliMaximumLikelihoodFCN.h +@@ -61,7 +61,7 @@ public: + + Sets the model function for the data (for example gaussian+linear for a peak) + +- @param modelFunction a reference to the model function. ++ @param modelFCN a reference to the model function. + + */ + +diff --git a/roofit/roofit/src/RooExponential.cxx b/roofit/roofit/src/RooExponential.cxx +index dc211f5275..e16871c5eb 100644 +--- a/roofit/roofit/src/RooExponential.cxx ++++ b/roofit/roofit/src/RooExponential.cxx +@@ -102,7 +102,7 @@ void compute(size_t n, double* __restrict output, Tx x, Tc c) { + + //////////////////////////////////////////////////////////////////////////////// + /// Evaluate the exponential without normalising it on the given batch. +-/// \param[in] batchIndex Index of the batch to be computed. ++/// \param[in] begin Index of the batch to be computed. + /// \param[in] batchSize Size of each batch. The last batch may be smaller. + /// \return A span with the computed values. + +diff --git a/roofit/roofit/src/RooGExpModel.cxx b/roofit/roofit/src/RooGExpModel.cxx +index 9c7f184b69..18f5688217 100644 +--- a/roofit/roofit/src/RooGExpModel.cxx ++++ b/roofit/roofit/src/RooGExpModel.cxx +@@ -48,10 +48,10 @@ ClassImp(RooGExpModel); + /// + /// \param[in] name Name of this instance. + /// \param[in] title Title (e.g. for plotting) +-/// \param[in] x The convolution observable. +-/// \param[in] mean The mean of the Gaussian. +-/// \param[in] sigma Width of the Gaussian. +-/// \param[in] rlife Lifetime constant \f$ \tau \f$. ++/// \param[in] xIn The convolution observable. ++/// \param[in] meanIn The mean of the Gaussian. ++/// \param[in] sigmaIn Width of the Gaussian. ++/// \param[in] rlifeIn Lifetime constant \f$ \tau \f$. + /// \param[in] meanSF Scale factor for mean. + /// \param[in] sigmaSF Scale factor for sigma. + /// \param[in] rlifeSF Scale factor for rlife. +@@ -81,9 +81,9 @@ RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue + /// + /// \param[in] name Name of this instance. + /// \param[in] title Title (e.g. for plotting) +-/// \param[in] x The convolution observable. +-/// \param[in] sigma Width of the Gaussian. +-/// \param[in] rlife Lifetime constant \f$ \tau \f$. ++/// \param[in] xIn The convolution observable. ++/// \param[in] _sigma Width of the Gaussian. ++/// \param[in] _rlife Lifetime constant \f$ \tau \f$. + /// \param[in] nlo Include next-to-leading order for higher accuracy of convolution. + /// \param[in] type Switch between normal and flipped model. + RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue& xIn, +@@ -105,10 +105,10 @@ RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue + /// + /// \param[in] name Name of this instance. + /// \param[in] title Title (e.g. for plotting) +-/// \param[in] x The convolution observable. +-/// \param[in] sigma Width of the Gaussian. +-/// \param[in] rlife Lifetime constant \f$ \tau \f$. +-/// \param[in] srSF Scale factor for both sigma and tau. ++/// \param[in] xIn The convolution observable. ++/// \param[in] _sigma Width of the Gaussian. ++/// \param[in] _rlife Lifetime constant \f$ \tau \f$. ++/// \param[in] _rsSF Scale factor for both sigma and tau. + /// \param[in] nlo Include next-to-leading order for higher accuracy of convolution. + /// \param[in] type Switch between normal and flipped model. + RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue& xIn, +@@ -134,11 +134,11 @@ RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue + /// + /// \param[in] name Name of this instance. + /// \param[in] title Title (e.g. for plotting) +-/// \param[in] x The convolution observable. +-/// \param[in] sigma Width of the Gaussian. +-/// \param[in] rlife Lifetime constant \f$ \tau \f$. +-/// \param[in] sigmaSF Scale factor for sigma. +-/// \param[in] rlifeSF Scale factor for rlife. ++/// \param[in] xIn The convolution observable. ++/// \param[in] _sigma Width of the Gaussian. ++/// \param[in] _rlife Lifetime constant \f$ \tau \f$. ++/// \param[in] _sigmaSF Scale factor for sigma. ++/// \param[in] _rlifeSF Scale factor for rlife. + /// \param[in] nlo Include next-to-leading order for higher accuracy of convolution. + /// \param[in] type Switch between normal and flipped model. + RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue& xIn, +diff --git a/roofit/roofit/src/RooGaussian.cxx b/roofit/roofit/src/RooGaussian.cxx +index 9d18be7354..aec93528ba 100644 +--- a/roofit/roofit/src/RooGaussian.cxx ++++ b/roofit/roofit/src/RooGaussian.cxx +@@ -92,7 +92,7 @@ void compute(RooSpan output, Tx x, TMean mean, TSig sigma) { + /// and if found, the computation will be batched over their + /// values. If batch data are not found for one of the proxies, the proxies value is assumed to + /// be constant over the batch. +-/// \param[in] batchIndex Index of the batch to be computed. ++/// \param[in] begin Index of the batch to be computed. + /// \param[in] batchSize Size of each batch. The last batch may be smaller. + /// \return A span with the computed values. + +diff --git a/roofit/roofit/src/RooJohnson.cxx b/roofit/roofit/src/RooJohnson.cxx +index ba6686f698..1dd6de96b2 100644 +--- a/roofit/roofit/src/RooJohnson.cxx ++++ b/roofit/roofit/src/RooJohnson.cxx +@@ -153,7 +153,7 @@ void compute(RooSpan output, TMass mass, TMu mu, TLambda lambda, TGamma + /// and if found, the computation will be batched over their + /// values. If batch data are not found for one of the proxies, the proxies value is assumed to + /// be constant over the batch. +-/// \param[in] batchIndex Index of the batch to be computed. ++/// \param[in] begin Index of the batch to be computed. + /// \param[in] maxSize Maximal size of the batches. May return smaller batches depending on inputs. + /// \return A span with the computed values. + +diff --git a/roofit/roofit/src/RooLandau.cxx b/roofit/roofit/src/RooLandau.cxx +index e59a923cf0..2dade45b3a 100644 +--- a/roofit/roofit/src/RooLandau.cxx ++++ b/roofit/roofit/src/RooLandau.cxx +@@ -169,7 +169,7 @@ void compute( size_t batchSize, + /// and if found, the computation will be batched over their + /// values. If batch data are not found for one of the proxies, the proxies value is assumed to + /// be constant over the batch. +-/// \param[in] batchIndex Index of the batch to be computed. ++/// \param[in] begin Index of the batch to be computed. + /// \param[in] batchSize Size of each batch. The last batch may be smaller. + /// \return A span with the computed values. + +diff --git a/roofit/roofitcore/src/BatchData.cxx b/roofit/roofitcore/src/BatchData.cxx +index fd05343076..5bbe34e20b 100644 +--- a/roofit/roofitcore/src/BatchData.cxx ++++ b/roofit/roofitcore/src/BatchData.cxx +@@ -73,7 +73,7 @@ bool BatchData::setStatus(std::size_t begin, std::size_t size, Status_t stat, + /// Retrieve an existing batch. + /// + /// \param[in] begin Begin index of the batch. +-/// \param[in] size Requested size. Batch may come out smaller than this. ++/// \param[in] maxSize Requested size. Batch may come out smaller than this. + /// \param[in] normSet Optional normSet pointer to distinguish differently normalised computations. + /// \param[in] ownerTag Optional owner tag. This avoids reusing batch memory for e.g. getVal() and getLogVal(). + /// \return Non-mutable contiguous batch data. +diff --git a/roofit/roofitcore/src/RooAbsPdf.cxx b/roofit/roofitcore/src/RooAbsPdf.cxx +index 9f68b1cdb7..9e7eb69e09 100644 +--- a/roofit/roofitcore/src/RooAbsPdf.cxx ++++ b/roofit/roofitcore/src/RooAbsPdf.cxx +@@ -711,7 +711,7 @@ bool checkInfNaNNeg(const T& inputs) { + + //////////////////////////////////////////////////////////////////////////////// + /// Scan through outputs and fix+log all nans and negative values. +-/// \param[in/out] outputs Array to be scanned & fixed. ++/// \param[in,out] outputs Array to be scanned & fixed. + /// \param[in] begin Begin of event range. Only needed to print the correct event number + /// where the error occurred. + void RooAbsPdf::logBatchComputationErrors(RooSpan& outputs, std::size_t begin) const { +@@ -734,7 +734,7 @@ void RooAbsPdf::logBatchComputationErrors(RooSpan& outputs, std::s + /// Compute the log-likelihoods for all events in the requested batch. + /// The arguments are passed over to getValBatch(). + /// \param[in] begin Start of the batch. +-/// \param[in] size Maximum size of the batch. Depending on data layout and memory, the batch ++/// \param[in] maxSize Maximum size of the batch. Depending on data layout and memory, the batch + /// may come back smaller. + /// \return Returns a batch of doubles that contains the log probabilities. + RooSpan RooAbsPdf::getLogValBatch(std::size_t begin, std::size_t maxSize, +diff --git a/roofit/roofitcore/src/RooAbsReal.cxx b/roofit/roofitcore/src/RooAbsReal.cxx +index 2d2ceeaf2d..6cac5f5897 100644 +--- a/roofit/roofitcore/src/RooAbsReal.cxx ++++ b/roofit/roofitcore/src/RooAbsReal.cxx +@@ -4294,7 +4294,7 @@ RooAbsMoment* RooAbsReal::moment(RooRealVar& obs, Int_t order, Bool_t central, B + /// \param[in] order Order of the moment + /// \param[in] central If true, the central moment is given by \f$ \langle (x- \langle x \rangle )^2 \rangle \f$ + /// \param[in] takeRoot Calculate the square root +-/// \param[in] intNormOb If true, the moment of the function integrated over all normalization observables is returned. ++/// \param[in] intNormObs If true, the moment of the function integrated over all normalization observables is returned. + + RooAbsMoment* RooAbsReal::moment(RooRealVar& obs, const RooArgSet& normObs, Int_t order, Bool_t central, Bool_t takeRoot, Bool_t intNormObs) + { +diff --git a/roofit/roofitcore/src/RooCustomizer.cxx b/roofit/roofitcore/src/RooCustomizer.cxx +index 97d6d3176c..818991873d 100644 +--- a/roofit/roofitcore/src/RooCustomizer.cxx ++++ b/roofit/roofitcore/src/RooCustomizer.cxx +@@ -198,7 +198,7 @@ static Int_t init() + /// replaceArg() and splitArg() functionality. + /// \param[in] pdf Proto PDF to be customised. + /// \param[in] masterCat Category to be used for splitting. +-/// \param[in/out] splitLeafs All nodes created in ++/// \param[in,out] splitLeafs All nodes created in + /// the customisation process are added to this set. + /// The user can provide nodes that are *taken* + /// from the set if they have a name that matches `_`. +@@ -209,7 +209,7 @@ static Int_t init() + /// auto yield1 = new RooFormulaVar("yieldSig_BBG1m2T","sigy1","M/3.360779",mass); + /// customisedLeafs.addOwned(*yield1); + /// ``` +-/// \param[in/out] splitLeafsAll All leafs that are used when customising are collected here. ++/// \param[in,out] splitLeafsAll All leafs that are used when customising are collected here. + /// If this set already contains leaves, they will be used for customising if the names match + /// as above. + /// +diff --git a/roofit/roofitcore/src/RooDataHist.cxx b/roofit/roofitcore/src/RooDataHist.cxx +index 1c8b517b0d..8c90dd0ade 100644 +--- a/roofit/roofitcore/src/RooDataHist.cxx ++++ b/roofit/roofitcore/src/RooDataHist.cxx +@@ -632,8 +632,8 @@ void RooDataHist::_adjustBinning(RooRealVar &theirVar, const TAxis &axis, + /// observable to binning in given reference TH1. Used by constructors + /// that import data from an external TH1. + /// Both the variables in vars and in this RooDataHist are adjusted. +-/// @param List with variables that are supposed to have their binning adjusted. +-/// @param Reference histogram that dictates the binning ++/// @param vars List with variables that are supposed to have their binning adjusted. ++/// @param href Reference histogram that dictates the binning + /// @param offset If not nullptr, a possible bin count offset for the axes x,y,z is saved here as Int_t[3] + + void RooDataHist::adjustBinning(const RooArgList& vars, const TH1& href, Int_t* offset) +diff --git a/roofit/roofitcore/src/RooDataSet.cxx b/roofit/roofitcore/src/RooDataSet.cxx +index 1e54dfbde0..f03ec78a0d 100644 +--- a/roofit/roofitcore/src/RooDataSet.cxx ++++ b/roofit/roofitcore/src/RooDataSet.cxx +@@ -765,7 +765,7 @@ RooDataSet::RooDataSet(const char *name, const char *title, TTree *theTree, + /// + /// \param[in] name Name of this dataset. + /// \param[in] title Title for e.g. plotting. +-/// \param[in] tree Tree to be imported. ++/// \param[in] theTree Tree to be imported. + /// \param[in] vars Defines the columns of the data set. For each dimension + /// specified, the TTree must have a branch with the same name. For category + /// branches, this branch should contain the numeric index value. Real dimensions +@@ -1205,11 +1205,11 @@ void RooDataSet::add(const RooArgSet& data, Double_t wgt, Double_t wgtError) + //////////////////////////////////////////////////////////////////////////////// + /// Add a data point, with its coordinates specified in the 'data' argset, to the data set. + /// Any variables present in 'data' but not in the dataset will be silently ignored. +-/// \param[in] data Data point. +-/// \param[in] wgt Event weight. The current value of the weight variable is ignored. ++/// \param[in] indata Data point. ++/// \param[in] inweight Event weight. The current value of the weight variable is ignored. + /// \note To obtain weighted events, a variable must be designated `WeightVar` in the constructor. +-/// \param[in] wgtErrorLo Asymmetric weight error. +-/// \param[in] wgtErrorHi Asymmetric weight error. ++/// \param[in] weightErrorLo Asymmetric weight error. ++/// \param[in] weightErrorHi Asymmetric weight error. + /// \note This requires including the weight variable in the set of `StoreAsymError` variables when constructing + /// the dataset. + +diff --git a/roofit/roofitcore/src/RooFormulaVar.cxx b/roofit/roofitcore/src/RooFormulaVar.cxx +index 90ee32d619..947c505598 100644 +--- a/roofit/roofitcore/src/RooFormulaVar.cxx ++++ b/roofit/roofitcore/src/RooFormulaVar.cxx +@@ -66,7 +66,7 @@ ClassImp(RooFormulaVar); + /// Constructor with formula expression and list of input variables. + /// \param[in] name Name of the formula. + /// \param[in] title Title of the formula. +-/// \param[in] formula Expression to be evaluated. ++/// \param[in] inFormula Expression to be evaluated. + /// \param[in] dependents Variables that should be passed to the formula. + /// \param[in] checkVariables Check that all variables from `dependents` are used in the expression. + RooFormulaVar::RooFormulaVar(const char *name, const char *title, const char* inFormula, const RooArgList& dependents, +diff --git a/roofit/roofitcore/src/RooSuperCategory.cxx b/roofit/roofitcore/src/RooSuperCategory.cxx +index 4c0b705e50..e5668ffb98 100644 +--- a/roofit/roofitcore/src/RooSuperCategory.cxx ++++ b/roofit/roofitcore/src/RooSuperCategory.cxx +@@ -54,7 +54,7 @@ RooSuperCategory::RooSuperCategory() : + /// Construct a super category from other categories. + /// \param[in] name Name of this object + /// \param[in] title Title (for e.g. printing) +-/// \param[in] inputCatList RooArgSet with category objects. These all need to derive from RooAbsCategoryLValue, *i.e.* ++/// \param[in] inputCategories RooArgSet with category objects. These all need to derive from RooAbsCategoryLValue, *i.e.* + /// one needs to be able to assign to them. + RooSuperCategory::RooSuperCategory(const char *name, const char *title, const RooArgSet& inputCategories) : + RooAbsCategoryLValue(name, title), +diff --git a/roofit/roofitmore/src/RooHypatia2.cxx b/roofit/roofitmore/src/RooHypatia2.cxx +index 691aa6073d..7d550b2753 100644 +--- a/roofit/roofitmore/src/RooHypatia2.cxx ++++ b/roofit/roofitmore/src/RooHypatia2.cxx +@@ -119,21 +119,21 @@ + /// \param[in] a2 Start of right tail. + /// \param[in] n2 Shape parameter of right tail (\f$ n2 \ge 0 \f$). With \f$ n2 = 0 \f$, the function is constant. + RooHypatia2::RooHypatia2(const char *name, const char *title, RooAbsReal& x, RooAbsReal& lambda, +- RooAbsReal& zeta, RooAbsReal& beta, RooAbsReal& sigm, RooAbsReal& mu, RooAbsReal& a, ++ RooAbsReal& zeta, RooAbsReal& beta, RooAbsReal& sigma, RooAbsReal& mu, RooAbsReal& a, + RooAbsReal& n, RooAbsReal& a2, RooAbsReal& n2) : + RooAbsPdf(name, title), + _x("x", "x", this, x), + _lambda("lambda", "Lambda", this, lambda), + _zeta("zeta", "zeta", this, zeta), + _beta("beta", "Asymmetry parameter beta", this, beta), +- _sigma("sigma", "Width parameter sigma", this, sigm), ++ _sigma("sigma", "Width parameter sigma", this, sigma), + _mu("mu", "Location parameter mu", this, mu), + _a("a", "Left tail location a", this, a), + _n("n", "Left tail parameter n", this, n), + _a2("a2", "Right tail location a2", this, a2), + _n2("n2", "Right tail parameter n2", this, n2) + { +- RooHelpers::checkRangeOfParameters(this, {&sigm}, 0.); ++ RooHelpers::checkRangeOfParameters(this, {&sigma}, 0.); + RooHelpers::checkRangeOfParameters(this, {&zeta, &n, &n2, &a, &a2}, 0., std::numeric_limits::max(), true); + if (zeta.getVal() == 0. && zeta.isConstant()) { + RooHelpers::checkRangeOfParameters(this, {&lambda}, -std::numeric_limits::max(), 0., false, +diff --git a/tmva/tmva/inc/TMVA/BDTEventWrapper.h b/tmva/tmva/inc/TMVA/BDTEventWrapper.h +index 7d4c4f8dd6..2c99341dd9 100644 +--- a/tmva/tmva/inc/TMVA/BDTEventWrapper.h ++++ b/tmva/tmva/inc/TMVA/BDTEventWrapper.h +@@ -40,14 +40,14 @@ namespace TMVA { + + // Set the accumulated weight, for sorted signal/background events + /** +- * @param fType - true for signal, false for background ++ * @param type - true for signal, false for background + * @param weight - the total weight + */ + void SetCumulativeWeight( Bool_t type, Double_t weight ); + + // Get the accumulated weight + /** +- * @param fType - true for signal, false for background ++ * @param type - true for signal, false for background + * @return the cumulative weight for sorted signal/background events + */ + Double_t GetCumulativeWeight( Bool_t type ) const; +diff --git a/tmva/tmva/inc/TMVA/NeuralNet.h b/tmva/tmva/inc/TMVA/NeuralNet.h +index bae98a48b2..a11b543b59 100644 +--- a/tmva/tmva/inc/TMVA/NeuralNet.h ++++ b/tmva/tmva/inc/TMVA/NeuralNet.h +@@ -478,10 +478,8 @@ namespace TMVA + * \param size size of the layer + * \param itWeightBegin indicates the start of the weights for this layer on the weight vector + * \param itGradientBegin indicates the start of the gradients for this layer on the gradient vector +- * \param itFunctionBegin indicates the start of the vector of activation functions for this layer on the +- * activation function vector +- * \param itInverseFunctionBegin indicates the start of the vector of activation functions for this +- * layer on the activation function vector ++ * \param activationFunction indicates activation functions for this layer ++ * \param inverseActivationFunction indicates the inverse activation functions for this layer + * \param eModeOutput indicates a potential tranformation of the output values before further computation + * DIRECT does not further transformation; SIGMOID applies a sigmoid transformation to each + * output value (to create a probability); SOFTMAX applies a softmax transformation to all +@@ -500,8 +498,7 @@ namespace TMVA + * + * \param size size of the layer + * \param itWeightBegin indicates the start of the weights for this layer on the weight vector +- * \param itFunctionBegin indicates the start of the vector of activation functions for this layer on the +- * activation function vector ++ * \param activationFunction indicates the activation function for this layer + * \param eModeOutput indicates a potential tranformation of the output values before further computation + * DIRECT does not further transformation; SIGMOID applies a sigmoid transformation to each + * output value (to create a probability); SOFTMAX applies a softmax transformation to all +@@ -679,9 +676,6 @@ namespace TMVA + /*! \brief c'tor for defining a Layer + * + * +- * \param itInputBegin indicates the start of the input node vector +- * \param itInputEnd indicates the end of the input node vector +- * + */ + Layer (size_t numNodes, EnumFunction activationFunction, ModeOutputValues eModeOutputValues = ModeOutputValues::DIRECT); + +@@ -1141,7 +1135,7 @@ namespace TMVA + + /*! \brief executes one training cycle + * +- * \param minimizier the minimizer to be used ++ * \param minimizer the minimizer to be used + * \param weights the weight vector to be used + * \param itPatternBegin the pattern to be trained with + * \param itPatternEnd the pattern to be trainied with +diff --git a/tmva/tmva/inc/TMVA/NeuralNet.icc b/tmva/tmva/inc/TMVA/NeuralNet.icc +index 95cad21e26..e511e49d43 100644 +--- a/tmva/tmva/inc/TMVA/NeuralNet.icc ++++ b/tmva/tmva/inc/TMVA/NeuralNet.icc +@@ -933,7 +933,7 @@ template + * \param minimizer the minimizer to be used (e.g. SGD) + * \param weights the weight container with all the synapse weights + * \param itPatternBegin begin of the pattern container +- * \parama itPatternEnd the end of the pattern container ++ * \param itPatternEnd the end of the pattern container + * \param settings the settings for this training (e.g. multithreading or not, regularization, etc.) + * \param dropContainer the data for dropping-out nodes (regularization technique) + */ +diff --git a/tmva/tmva/inc/TMVA/RTensor.hxx b/tmva/tmva/inc/TMVA/RTensor.hxx +index c131384ae2..7d9773b457 100644 +--- a/tmva/tmva/inc/TMVA/RTensor.hxx ++++ b/tmva/tmva/inc/TMVA/RTensor.hxx +@@ -73,7 +73,7 @@ inline std::vector ComputeStridesFromShape(const T &shape, MemoryLa + } + + /// \brief Compute indices from global index +-/// \param[in] Shape vector ++/// \param[in] shape Shape vector + /// \param[in] idx Global index + /// \param[in] layout Memory layout + /// \return Indice vector +diff --git a/tmva/tmva/inc/TMVA/TreeInference/BranchlessTree.hxx b/tmva/tmva/inc/TMVA/TreeInference/BranchlessTree.hxx +index 4ac460be64..a1c6fdf773 100644 +--- a/tmva/tmva/inc/TMVA/TreeInference/BranchlessTree.hxx ++++ b/tmva/tmva/inc/TMVA/TreeInference/BranchlessTree.hxx +@@ -72,7 +72,7 @@ struct BranchlessTree { + /// Perform inference on a single input vector + /// \param[in] input Pointer to data containing the input values + /// \param[in] stride Stride to go from one input variable to the next one +-/// \param[out] Tree score, result of the inference ++/// \return Tree score, result of the inference + template + inline T BranchlessTree::Inference(const T *input, const int stride) + { +@@ -105,7 +105,7 @@ inline void BranchlessTree::FillSparse() + /// + /// \param[in] funcName Name of the function + /// \param[in] typeName Name of the type used for the computation +-/// \param[out] Code of the inference function as string ++/// \return Code of the inference function as string + template + inline std::string BranchlessTree::GetInferenceCode(const std::string& funcName, const std::string& typeName) + { +diff --git a/tmva/tmva/inc/TMVA/TreeInference/Forest.hxx b/tmva/tmva/inc/TMVA/TreeInference/Forest.hxx +index 70d1e3eb68..18b385a8e0 100644 +--- a/tmva/tmva/inc/TMVA/TreeInference/Forest.hxx ++++ b/tmva/tmva/inc/TMVA/TreeInference/Forest.hxx +@@ -195,7 +195,7 @@ struct BranchlessJittedForest : public ForestBase + inline std::string + BranchlessJittedForest::Load(const std::string &key, const std::string &filename, const int output, const bool sortTrees) +diff --git a/tmva/tmva/src/BDTEventWrapper.cxx b/tmva/tmva/src/BDTEventWrapper.cxx +index 63171c886b..9702660936 100644 +--- a/tmva/tmva/src/BDTEventWrapper.cxx ++++ b/tmva/tmva/src/BDTEventWrapper.cxx +@@ -48,7 +48,7 @@ BDTEventWrapper::~BDTEventWrapper() { + //////////////////////////////////////////////////////////////////////////////// + /// Set the accumulated weight, for sorted signal/background events + /// +-/// @param fType - true for signal, false for background ++/// @param type - true for signal, false for background + /// @param weight - the total weight + + void BDTEventWrapper::SetCumulativeWeight(Bool_t type, Double_t weight) { +diff --git a/tmva/tmva/src/CrossValidation.cxx b/tmva/tmva/src/CrossValidation.cxx +index 453927c5b7..58bd9130d1 100644 +--- a/tmva/tmva/src/CrossValidation.cxx ++++ b/tmva/tmva/src/CrossValidation.cxx +@@ -99,7 +99,7 @@ TMultiGraph *TMVA::CrossValidationResult::GetROCCurves(Bool_t /*fLegend*/) + /// + /// \note You own the returned pointer. + /// +-/// \param numSamples[in] Number of samples used for generating the average ROC ++/// \param[in] numSamples Number of samples used for generating the average ROC + /// Curve. Avg. curve will be evaluated only at these + /// points (using interpolation if necessary). + /// +diff --git a/tmva/tmva/src/CvSplit.cxx b/tmva/tmva/src/CvSplit.cxx +index d6d44ac1cc..9eedcf3d72 100644 +--- a/tmva/tmva/src/CvSplit.cxx ++++ b/tmva/tmva/src/CvSplit.cxx +@@ -227,15 +227,15 @@ UInt_t TMVA::CvSplitKFoldsExpr::GetSpectatorIndexForName(DataSetInfo &dsi, TStri + + //////////////////////////////////////////////////////////////////////////////// + /// \brief Splits a dataset into k folds, ready for use in cross validation. +-/// \param numFolds[in] Number of folds to split data into +-/// \param stratified[in] If true, use stratified splitting, balancing the ++/// \param[in] numFolds Number of folds to split data into ++/// \param[in] stratified If true, use stratified splitting, balancing the + /// number of events across classes and folds. If false, + /// no such balancing is done. For +-/// \param splitExpr[in] Expression used to split data into folds. If `""` a ++/// \param[in] splitExpr Expression used to split data into folds. If `""` a + /// random assignment will be done. Otherwise the + /// expression is fed into a TFormula and evaluated per + /// event. The resulting value is the the fold assignment. +-/// \param seed[in] Used only when using random splitting (i.e. when ++/// \param[in] seed Used only when using random splitting (i.e. when + /// `splitExpr` is `""`). Seed is used to initialise the random + /// number generator when assigning events to folds. + /// +@@ -282,9 +282,9 @@ void TMVA::CvSplitKFolds::MakeKFoldDataSet(DataSetInfo &dsi) + + //////////////////////////////////////////////////////////////////////////////// + /// \brief Generates a vector of fold assignments +-/// \param nEntires[in] Number of events in range +-/// \param numFolds[in] Number of folds to split data into +-/// \param seed[in] Random seed ++/// \param[in] nEntries Number of events in range ++/// \param[in] numFolds Number of folds to split data into ++/// \param[in] seed Random seed + /// + /// Randomly assigns events to `numFolds` folds. Each fold will hold at most + /// `nEntries / numFolds + 1` events. +@@ -311,8 +311,8 @@ std::vector TMVA::CvSplitKFolds::GetEventIndexToFoldMapping(UInt_t nEntr + + //////////////////////////////////////////////////////////////////////////////// + /// \brief Split sets for into k-folds +-/// \param oldSet[in] Original, unsplit, events +-/// \param numFolds[in] Number of folds to split data into ++/// \param[in] oldSet Original, unsplit, events ++/// \param[in] numFolds Number of folds to split data into + /// + + std::vector> +diff --git a/tmva/tmva/src/Envelope.cxx b/tmva/tmva/src/Envelope.cxx +index 5fab98c13b..8a0c6b23f4 100644 +--- a/tmva/tmva/src/Envelope.cxx ++++ b/tmva/tmva/src/Envelope.cxx +@@ -37,8 +37,8 @@ this is a generic one protected. + \param file optional file to save the results. + \param options extra options for the algorithm. + */ +-Envelope::Envelope(const TString &name, DataLoader *dalaloader, TFile *file, const TString options) +- : Configurable(options), fDataLoader(dalaloader), fFile(file), fModelPersistence(kTRUE), fVerbose(kFALSE), ++Envelope::Envelope(const TString &name, DataLoader *dataloader, TFile *file, const TString options) ++ : Configurable(options), fDataLoader(dataloader), fFile(file), fModelPersistence(kTRUE), fVerbose(kFALSE), + fTransformations("I"), fSilentFile(kFALSE), fJobs(1) + { + SetName(name.Data()); +@@ -120,7 +120,7 @@ DataLoader *Envelope::GetDataLoader(){ return fDataLoader.get();} + //_______________________________________________________________________ + /** + Method to set the pointer to TMVA::DataLoader object. +-\param dalaloader pointer to TMVA::DataLoader object. ++\param dataloader pointer to TMVA::DataLoader object. + */ + + void Envelope::SetDataLoader(DataLoader *dataloader) +@@ -146,7 +146,7 @@ void TMVA::Envelope::SetModelPersistence(Bool_t status){fModelPersistence=status + /** + Method to book the machine learning method to perform the algorithm. + \param method enum TMVA::Types::EMVA with the type of the mva method +-\param methodtitle String with the method title. ++\param methodTitle String with the method title. + \param options String with the options for the method. + */ + void TMVA::Envelope::BookMethod(Types::EMVA method, TString methodTitle, TString options){ +@@ -156,8 +156,8 @@ void TMVA::Envelope::BookMethod(Types::EMVA method, TString methodTitle, TString + //_______________________________________________________________________ + /** + Method to book the machine learning method to perform the algorithm. +-\param methodname String with the name of the mva method +-\param methodtitle String with the method title. ++\param methodName String with the name of the mva method ++\param methodTitle String with the method title. + \param options String with the options for the method. + */ + void TMVA::Envelope::BookMethod(TString methodName, TString methodTitle, TString options){ +diff --git a/tree/dataframe/inc/ROOT/RDF/RInterface.hxx b/tree/dataframe/inc/ROOT/RDF/RInterface.hxx +index b5e39251a8..da09c0be3c 100644 +--- a/tree/dataframe/inc/ROOT/RDF/RInterface.hxx ++++ b/tree/dataframe/inc/ROOT/RDF/RInterface.hxx +@@ -568,7 +568,7 @@ public: + //////////////////////////////////////////////////////////////////////////// + /// \brief Save selected columns in memory + /// \tparam ColumnTypes variadic list of branch/column types. +- /// \param[in] columns to be cached in memory. ++ /// \param[in] columnList columns to be cached in memory. + /// \return a `RDataFrame` that wraps the cached dataset. + /// + /// This action returns a new `RDataFrame` object, completely detached from +@@ -603,7 +603,7 @@ public: + + //////////////////////////////////////////////////////////////////////////// + /// \brief Save selected columns in memory +- /// \param[in] columns to be cached in memory ++ /// \param[in] columnList columns to be cached in memory + /// \return a `RDataFrame` that wraps the cached dataset. + /// + /// See the previous overloads for more information. +@@ -660,7 +660,7 @@ public: + + //////////////////////////////////////////////////////////////////////////// + /// \brief Save selected columns in memory +- /// \param[in] columns to be cached in memory. ++ /// \param[in] columnList columns to be cached in memory. + /// \return a `RDataFrame` that wraps the cached dataset. + /// + /// See the previous overloads for more information. +@@ -1528,13 +1528,13 @@ public: + /// ~~~ + /// + template +- RResultPtr Fill(T &&model, const ColumnNames_t &bl) ++ RResultPtr Fill(T &&model, const ColumnNames_t &columnList) + { + auto h = std::make_shared(std::forward(model)); + if (!RDFInternal::HistoUtils::HasAxisLimits(*h)) { + throw std::runtime_error("The absence of axes limits is not supported yet."); + } +- return CreateAction(bl, h, bl.size()); ++ return CreateAction(columnList, h, columnList.size()); + } + + //////////////////////////////////////////////////////////////////////////// +@@ -2134,7 +2134,7 @@ public: + /// \brief Provides a representation of the columns in the dataset + /// \tparam ColumnTypes variadic list of branch/column types. + /// \param[in] columnList Names of the columns to be displayed. +- /// \param[in] rows Number of events for each column to be displayed. ++ /// \param[in] nRows Number of events for each column to be displayed. + /// \return the `RDisplay` instance wrapped in a `RResultPtr`. + /// + /// This function returns a `RResultPtr` containing all the entries to be displayed, organized in a tabular +@@ -2165,7 +2165,7 @@ public: + //////////////////////////////////////////////////////////////////////////// + /// \brief Provides a representation of the columns in the dataset + /// \param[in] columnList Names of the columns to be displayed. +- /// \param[in] rows Number of events for each column to be displayed. ++ /// \param[in] nRows Number of events for each column to be displayed. + /// \return the `RDisplay` instance wrapped in a `RResultPtr`. + /// + /// This overload automatically infers the column types. +@@ -2181,7 +2181,7 @@ public: + //////////////////////////////////////////////////////////////////////////// + /// \brief Provides a representation of the columns in the dataset + /// \param[in] columnNameRegexp A regular expression to select the columns. +- /// \param[in] rows Number of events for each column to be displayed. ++ /// \param[in] nRows Number of events for each column to be displayed. + /// \return the `RDisplay` instance wrapped in a `RResultPtr`. + /// + /// The existing columns are matched against the regular expression. If the string provided +diff --git a/tree/dataframe/inc/ROOT/RDFHelpers.hxx b/tree/dataframe/inc/ROOT/RDFHelpers.hxx +index 2193e1772e..63a0f90cab 100644 +--- a/tree/dataframe/inc/ROOT/RDFHelpers.hxx ++++ b/tree/dataframe/inc/ROOT/RDFHelpers.hxx +@@ -138,7 +138,7 @@ void SaveGraph(NodeType node, const std::string &outputFile) + + // clang-format off + /// Cast a RDataFrame node to the common type ROOT::RDF::RNode +-/// \param[in] Any node of a RDataFrame graph ++/// \param[in] node Any node of a RDataFrame graph + // clang-format on + template + RNode AsRNode(NodeType node) +diff --git a/tree/dataframe/inc/ROOT/RDataSource.hxx b/tree/dataframe/inc/ROOT/RDataSource.hxx +index f4af9abded..04f7dc850c 100644 +--- a/tree/dataframe/inc/ROOT/RDataSource.hxx ++++ b/tree/dataframe/inc/ROOT/RDataSource.hxx +@@ -126,14 +126,14 @@ public: + virtual const std::vector &GetColumnNames() const = 0; + + /// \brief Checks if the dataset has a certain column +- /// \param[in] columnName The name of the column +- virtual bool HasColumn(std::string_view) const = 0; ++ /// \param[in] colName The name of the column ++ virtual bool HasColumn(std::string_view colName) const = 0; + + // clang-format off + /// \brief Type of a column as a string, e.g. `GetTypeName("x") == "double"`. Required for jitting e.g. `df.Filter("x>0")`. +- /// \param[in] columnName The name of the column ++ /// \param[in] colName The name of the column + // clang-format on +- virtual std::string GetTypeName(std::string_view) const = 0; ++ virtual std::string GetTypeName(std::string_view colName) const = 0; + + // clang-format off + /// Called at most once per column by RDF. Return vector of pointers to pointers to column values - one per slot. +diff --git a/tree/dataframe/inc/ROOT/RResultPtr.hxx b/tree/dataframe/inc/ROOT/RResultPtr.hxx +index 8358832b14..8acb2bfae6 100644 +--- a/tree/dataframe/inc/ROOT/RResultPtr.hxx ++++ b/tree/dataframe/inc/ROOT/RResultPtr.hxx +@@ -262,7 +262,7 @@ public: + /// Register a callback that RDataFrame will execute in each worker thread concurrently on that thread's partial result. + /// + /// \param[in] everyNEvents Frequency at which the callback will be called by each thread, as a number of events processed +- /// \param[in] a callable with signature `void(unsigned int, Value_t&)` where Value_t is the type of the value contained in this RResultPtr ++ /// \param[in] callback A callable with signature `void(unsigned int, Value_t&)` where Value_t is the type of the value contained in this RResultPtr + /// \return this RResultPtr, to allow chaining of OnPartialResultSlot with other calls + /// + /// See `OnPartialResult` for a generic explanation of the callback mechanism. +diff --git a/tree/dataframe/src/RArrowDS.cxx b/tree/dataframe/src/RArrowDS.cxx +index d9e2fae32f..0152b9a813 100644 +--- a/tree/dataframe/src/RArrowDS.cxx ++++ b/tree/dataframe/src/RArrowDS.cxx +@@ -382,8 +382,8 @@ public: + + //////////////////////////////////////////////////////////////////////// + /// Constructor to create an Arrow RDataSource for RDataFrame. +-/// \param[in] table the arrow Table to observe. +-/// \param[in] columns the name of the columns to use ++/// \param[in] inTable the arrow Table to observe. ++/// \param[in] inColumns the name of the columns to use + /// In case columns is empty, we use all the columns found in the table + RArrowDS::RArrowDS(std::shared_ptr inTable, std::vector const &inColumns) + : fTable{inTable}, fColumnNames{inColumns} +diff --git a/tree/tree/inc/TTree.h b/tree/tree/inc/TTree.h +index 8560e28ab5..e95d4ce301 100644 +--- a/tree/tree/inc/TTree.h ++++ b/tree/tree/inc/TTree.h +@@ -357,7 +357,7 @@ public: + /// possible, unless e.g. type conversions are needed. + /// + /// \param[in] name Name of the branch to be created. +- /// \param[in] obj Array of the objects to be added. When calling Fill(), the current value of the type/object will be saved. ++ /// \param[in] addobj Array of the objects to be added. When calling Fill(), the current value of the type/object will be saved. + /// \param[in] bufsize he buffer size in bytes for this branch. When the buffer is full, it is compressed and written to disc. + /// The default value of 32000 bytes and should be ok for most simple types. Larger buffers (e.g. 256000) if your Tree is not split and each entry is large (Megabytes). + /// A small value for bufsize is beneficial if entries in the Tree are accessed randomly and the Tree is in split mode. +diff --git a/tree/tree/src/TIOFeatures.cxx b/tree/tree/src/TIOFeatures.cxx +index 681f2172bd..ca292fb30a 100644 +--- a/tree/tree/src/TIOFeatures.cxx ++++ b/tree/tree/src/TIOFeatures.cxx +@@ -51,7 +51,7 @@ using namespace ROOT; + + //////////////////////////////////////////////////////////////////////////// + /// \brief Clear a specific IO feature from this set. +-/// \param[in] enum_bits The specific feature to disable. ++/// \param[in] input_bits The specific feature to disable. + /// + /// Removes a feature from the `TIOFeatures` object; emits an Error message if + /// the IO feature is not supported by this version of ROOT. +@@ -62,7 +62,7 @@ void TIOFeatures::Clear(Experimental::EIOFeatures input_bits) + + //////////////////////////////////////////////////////////////////////////// + /// \brief Clear a specific IO feature from this set. +-/// \param[in] enum_bits The specific feature to disable. ++/// \param[in] input_bits The specific feature to disable. + /// + /// Removes a feature from the `TIOFeatures` object; emits an Error message if + /// the IO feature is not supported by this version of ROOT. +@@ -73,7 +73,7 @@ void TIOFeatures::Clear(Experimental::EIOUnsupportedFeatures input_bits) + + //////////////////////////////////////////////////////////////////////////// + /// \brief Clear a specific IO feature from this set. +-/// \param[in] enum_bits The specific feature to disable. ++/// \param[in] input_bits The specific feature to disable. + /// + /// Removes a feature from the `TIOFeatures` object; emits an Error message if + /// the IO feature is not supported by this version of ROOT. +@@ -115,7 +115,7 @@ static std::string GetUnsupportedName(TBasket::EUnsupportedIOBits enum_flag) + + //////////////////////////////////////////////////////////////////////////// + /// \brief Set a specific IO feature. +-/// \param[in] enum_bits The specific feature to enable. ++/// \param[in] input_bits The specific feature to enable. + /// + /// Sets a feature in the `TIOFeatures` object; emits an Error message if + /// the IO feature is not supported by this version of ROOT. +@@ -129,7 +129,7 @@ bool TIOFeatures::Set(Experimental::EIOFeatures input_bits) + + //////////////////////////////////////////////////////////////////////////// + /// \brief Set a specific IO feature. +-/// \param[in] enum_bits The specific feature to enable. ++/// \param[in] input_bits The specific feature to enable. + /// + /// Sets a feature in the `TIOFeatures` object; emits an Error message if + /// the IO feature is not supported by this version of ROOT. +@@ -221,7 +221,7 @@ void TIOFeatures::Print() const + + //////////////////////////////////////////////////////////////////////////// + /// \brief Test to see if a given feature is set +-/// \param[in] enum_bits The specific feature to test. ++/// \param[in] input_bits The specific feature to test. + /// + /// Returns kTRUE if the feature is enables in this object and supported by + /// this version of ROOT. +@@ -232,7 +232,7 @@ bool TIOFeatures::Test(Experimental::EIOFeatures input_bits) const + + //////////////////////////////////////////////////////////////////////////// + /// \brief Test to see if a given feature is set +-/// \param[in] enum_bits The specific feature to test. ++/// \param[in] input_bits The specific feature to test. + /// + /// Returns kTRUE if the feature is enables in this object and supported by + /// this version of ROOT. +-- +2.26.2 + diff --git a/root-epel7-ppc64le-pyroot.patch b/root-epel7-ppc64le-pyroot.patch index d046855..4b4d314 100644 --- a/root-epel7-ppc64le-pyroot.patch +++ b/root-epel7-ppc64le-pyroot.patch @@ -1,73 +1,17 @@ -diff -ur root-6.20.02.orig/bindings/pyroot/src/Cppyy.cxx root-6.20.02/bindings/pyroot/src/Cppyy.cxx ---- root-6.20.02.orig/bindings/pyroot/src/Cppyy.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/bindings/pyroot/src/Cppyy.cxx 2020-03-24 19:26:38.162272398 +0100 -@@ -74,10 +74,6 @@ - class ApplicationStarter { - public: - ApplicationStarter() { -- // Insure ROOT's atexit is executed *after* the atexit that calls -- // ApplicationStarter's destructor, by forcing the ROOT's atexit -- // registration now. -- TROOT::Initialize(); - // setup dummy holders for global and std namespaces - assert( g_classrefs.size() == GLOBAL_HANDLE ); - g_name2classrefidx[ "" ] = GLOBAL_HANDLE; -diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx ---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/bindings/pyroot_experimental/cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx 2020-03-24 19:26:38.182272186 +0100 -@@ -109,10 +109,6 @@ - class ApplicationStarter { - public: - ApplicationStarter() { -- // Insure ROOT's atexit is executed *after* the atexit that calls -- // ApplicationStarter's destructor, by forcing the ROOT's atexit -- // registration now. -- TROOT::Initialize(); - // setup dummy holders for global and std namespaces - assert(g_classrefs.size() == GLOBAL_HANDLE); - g_name2classrefidx[""] = GLOBAL_HANDLE; -diff -ur root-6.20.02.orig/core/base/inc/TROOT.h root-6.20.02/core/base/inc/TROOT.h ---- root-6.20.02.orig/core/base/inc/TROOT.h 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/core/base/inc/TROOT.h 2020-03-24 19:26:38.182272186 +0100 -@@ -351,7 +351,6 @@ - static void SetMacroPath(const char *newpath); - static Int_t IncreaseDirLevel(); - static void IndentLevel(); -- static void Initialize(); - static Bool_t Initialized(); - static Bool_t MemCheck(); - static void SetDirLevel(Int_t level = 0); -diff -ur root-6.20.02.orig/core/base/src/TROOT.cxx root-6.20.02/core/base/src/TROOT.cxx ---- root-6.20.02.orig/core/base/src/TROOT.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/core/base/src/TROOT.cxx 2020-03-24 20:10:54.640084486 +0100 -@@ -1022,10 +1022,12 @@ - SafeDelete(fCleanups); - #endif +diff --git a/bindings/pyroot/pythonizations/python/ROOT/__init__.py b/bindings/pyroot/pythonizations/python/ROOT/__init__.py +index 227f80765b..eb03251c28 100644 +--- a/bindings/pyroot/pythonizations/python/ROOT/__init__.py ++++ b/bindings/pyroot/pythonizations/python/ROOT/__init__.py +@@ -25,6 +25,12 @@ environ['CPPYY_API_PATH'] = 'none' + # Prevent cppyy from filtering ROOT libraries + environ['CPPYY_NO_ROOT_FILTER'] = '1' --#ifndef _MSC_VER -- // deleting the interpreter makes things crash at exit in some cases -- delete fInterpreter; --#endif -+ // llvm::TimingGroup used for measuring the timing relies the destructors. -+ // In order to make use of this feature we have to call the destructor of -+ // TCling which will shut down clang, cling and llvm. -+ // gSystem->Getenv is not available anymore. -+ if (::getenv("ROOT_CLING_TIMING")) -+ delete fInterpreter; ++try: ++ from ctypes import cdll ++ libCore = cdll.LoadLibrary("libCore.so") ++except: ++ print("An exception occurred while loading libCore.so with ctypes") ++ + import cppyy - // Prints memory stats - TStorage::PrintStatistics(); -@@ -2848,13 +2850,6 @@ - } - - //////////////////////////////////////////////////////////////////////////////// --/// Initialize ROOT explicitly. -- --void TROOT::Initialize() { -- (void) gROOT; --} -- --//////////////////////////////////////////////////////////////////////////////// - /// Return kTRUE if the TROOT object has been initialized. - - Bool_t TROOT::Initialized() + # import libROOTPythonizations with Python version number diff --git a/root-fix-bad-regex.patch b/root-fix-bad-regex.patch new file mode 100644 index 0000000..e1e667e --- /dev/null +++ b/root-fix-bad-regex.patch @@ -0,0 +1,25 @@ +From b7dc989f9a49ad31094331aa272859ff7480f943 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Thu, 9 Jul 2020 21:29:46 +0200 +Subject: [PATCH] Fix bad regex + +--- + proof/proof/src/TProofMgr.cxx | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/proof/proof/src/TProofMgr.cxx b/proof/proof/src/TProofMgr.cxx +index 2a140e4e7a..35c91b77ac 100644 +--- a/proof/proof/src/TProofMgr.cxx ++++ b/proof/proof/src/TProofMgr.cxx +@@ -820,7 +820,7 @@ TFileCollection *TProofMgr::UploadFiles(TList *src, + if (dest && strlen(dest) > 0) { + TString dst(dest), dt; + Ssiz_t from = 0; +- TRegexp re(""); ++ TRegexp re(""); + while (dst.Tokenize(dt, from, "/")) { + if (dt.Contains(re)) { + TParameter *pi = new TParameter(dt, -1); +-- +2.26.2 + diff --git a/root-fontconfig.patch b/root-fontconfig.patch index 4f39a68..1b2e880 100644 --- a/root-fontconfig.patch +++ b/root-fontconfig.patch @@ -1,7 +1,7 @@ -diff -ur root-6.18.00.orig/core/base/src/TApplication.cxx root-6.18.00/core/base/src/TApplication.cxx ---- root-6.18.00.orig/core/base/src/TApplication.cxx 2019-06-25 10:52:11.000000000 +0200 -+++ root-6.18.00/core/base/src/TApplication.cxx 2019-06-26 15:00:32.048047903 +0200 -@@ -267,18 +267,11 @@ +diff -ur root-6.22.00.orig/core/base/src/TApplication.cxx root-6.22.00/core/base/src/TApplication.cxx +--- root-6.22.00.orig/core/base/src/TApplication.cxx 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/core/base/src/TApplication.cxx 2020-06-29 08:53:15.066085533 +0200 +@@ -264,18 +264,11 @@ LoadGraphicsLibs(); // Try to load TrueType font renderer. Only try to load if not in batch @@ -22,7 +22,7 @@ diff -ur root-6.18.00.orig/core/base/src/TApplication.cxx root-6.18.00/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 -@@ -292,7 +285,6 @@ +@@ -289,7 +282,6 @@ } } #endif @@ -30,10 +30,10 @@ diff -ur root-6.18.00.orig/core/base/src/TApplication.cxx root-6.18.00/core/base // Create WM dependent application environment if (fAppImp) -diff -ur root-6.18.00.orig/graf2d/asimage/CMakeLists.txt root-6.18.00/graf2d/asimage/CMakeLists.txt ---- root-6.18.00.orig/graf2d/asimage/CMakeLists.txt 2019-06-25 10:52:11.000000000 +0200 -+++ root-6.18.00/graf2d/asimage/CMakeLists.txt 2019-06-26 15:05:32.584912789 +0200 -@@ -26,6 +26,7 @@ +diff -ur root-6.22.00.orig/graf2d/asimage/CMakeLists.txt root-6.22.00/graf2d/asimage/CMakeLists.txt +--- root-6.22.00.orig/graf2d/asimage/CMakeLists.txt 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/graf2d/asimage/CMakeLists.txt 2020-06-29 08:53:15.066085533 +0200 +@@ -30,6 +30,7 @@ ${FREETYPE_LIBRARIES} ${X11_LIBRARIES} ZLIB::ZLIB @@ -41,10 +41,10 @@ diff -ur root-6.18.00.orig/graf2d/asimage/CMakeLists.txt root-6.18.00/graf2d/asi DEPENDENCIES Core Graf -diff -ur root-6.18.00.orig/graf2d/asimage/src/TASImage.cxx root-6.18.00/graf2d/asimage/src/TASImage.cxx ---- root-6.18.00.orig/graf2d/asimage/src/TASImage.cxx 2019-06-25 10:52:11.000000000 +0200 -+++ root-6.18.00/graf2d/asimage/src/TASImage.cxx 2019-06-26 15:00:32.062047757 +0200 -@@ -110,6 +110,8 @@ +diff -ur root-6.22.00.orig/graf2d/asimage/src/TASImage.cxx root-6.22.00/graf2d/asimage/src/TASImage.cxx +--- root-6.22.00.orig/graf2d/asimage/src/TASImage.cxx 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/graf2d/asimage/src/TASImage.cxx 2020-06-29 08:53:15.068085538 +0200 +@@ -111,6 +111,8 @@ # include } @@ -53,7 +53,7 @@ diff -ur root-6.18.00.orig/graf2d/asimage/src/TASImage.cxx root-6.18.00/graf2d/a // auxiliary functions for general polygon filling #include "TASPolyUtils.c" -@@ -2593,14 +2595,120 @@ +@@ -2594,14 +2596,120 @@ TString fn = font_name; fn.Strip(); @@ -181,7 +181,7 @@ diff -ur root-6.18.00.orig/graf2d/asimage/src/TASImage.cxx root-6.18.00/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; -@@ -2624,14 +2732,11 @@ +@@ -2625,14 +2733,11 @@ return; } @@ -199,10 +199,10 @@ diff -ur root-6.18.00.orig/graf2d/asimage/src/TASImage.cxx root-6.18.00/graf2d/a } get_text_size(text, font, (ASText3DType)type, &width, &height); -diff -ur root-6.18.00.orig/graf2d/graf/CMakeLists.txt root-6.18.00/graf2d/graf/CMakeLists.txt ---- root-6.18.00.orig/graf2d/graf/CMakeLists.txt 2019-06-25 10:52:11.000000000 +0200 -+++ root-6.18.00/graf2d/graf/CMakeLists.txt 2019-06-26 15:03:42.153064782 +0200 -@@ -87,6 +87,7 @@ +diff -ur root-6.22.00.orig/graf2d/graf/CMakeLists.txt root-6.22.00/graf2d/graf/CMakeLists.txt +--- root-6.22.00.orig/graf2d/graf/CMakeLists.txt 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/graf2d/graf/CMakeLists.txt 2020-06-29 08:53:15.068085538 +0200 +@@ -91,6 +91,7 @@ ${FREETYPE_LIBRARIES} ZLIB::ZLIB mathtext @@ -210,9 +210,9 @@ diff -ur root-6.18.00.orig/graf2d/graf/CMakeLists.txt root-6.18.00/graf2d/graf/C DEPENDENCIES Hist Matrix -diff -ur root-6.18.00.orig/graf2d/graf/inc/TTF.h root-6.18.00/graf2d/graf/inc/TTF.h ---- root-6.18.00.orig/graf2d/graf/inc/TTF.h 2019-06-25 10:52:11.000000000 +0200 -+++ root-6.18.00/graf2d/graf/inc/TTF.h 2019-06-26 15:00:32.063047746 +0200 +diff -ur root-6.22.00.orig/graf2d/graf/inc/TTF.h root-6.22.00/graf2d/graf/inc/TTF.h +--- root-6.22.00.orig/graf2d/graf/inc/TTF.h 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/graf2d/graf/inc/TTF.h 2020-06-29 08:53:15.068085538 +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.18.00.orig/graf2d/graf/inc/TTF.h root-6.18.00/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.18.00.orig/graf2d/graf/src/TTF.cxx root-6.18.00/graf2d/graf/src/TTF.cxx ---- root-6.18.00.orig/graf2d/graf/src/TTF.cxx 2019-06-25 10:52:11.000000000 +0200 -+++ root-6.18.00/graf2d/graf/src/TTF.cxx 2019-06-26 15:00:32.064047736 +0200 +diff -ur root-6.22.00.orig/graf2d/graf/src/TTF.cxx root-6.22.00/graf2d/graf/src/TTF.cxx +--- root-6.22.00.orig/graf2d/graf/src/TTF.cxx 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/graf2d/graf/src/TTF.cxx 2020-06-29 08:53:15.086085582 +0200 @@ -25,6 +25,8 @@ #include "TMath.h" #include "TError.h" @@ -787,10 +787,10 @@ diff -ur root-6.18.00.orig/graf2d/graf/src/TTF.cxx root-6.18.00/graf2d/graf/src/ } //////////////////////////////////////////////////////////////////////////////// -diff -ur root-6.18.00.orig/graf2d/postscript/CMakeLists.txt root-6.18.00/graf2d/postscript/CMakeLists.txt ---- root-6.18.00.orig/graf2d/postscript/CMakeLists.txt 2019-06-25 10:52:11.000000000 +0200 -+++ root-6.18.00/graf2d/postscript/CMakeLists.txt 2019-06-26 15:06:11.017511871 +0200 -@@ -21,6 +21,7 @@ +diff -ur root-6.22.00.orig/graf2d/postscript/CMakeLists.txt root-6.22.00/graf2d/postscript/CMakeLists.txt +--- root-6.22.00.orig/graf2d/postscript/CMakeLists.txt 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/graf2d/postscript/CMakeLists.txt 2020-06-29 08:53:15.086085582 +0200 +@@ -27,6 +27,7 @@ LIBRARIES ZLIB::ZLIB mathtext @@ -798,10 +798,10 @@ diff -ur root-6.18.00.orig/graf2d/postscript/CMakeLists.txt root-6.18.00/graf2d/ DEPENDENCIES Graf ) -diff -ur root-6.18.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.18.00/graf2d/postscript/src/TPostScript.cxx ---- root-6.18.00.orig/graf2d/postscript/src/TPostScript.cxx 2019-06-25 10:52:11.000000000 +0200 -+++ root-6.18.00/graf2d/postscript/src/TPostScript.cxx 2019-06-26 15:00:32.065047726 +0200 -@@ -229,6 +229,7 @@ +diff -ur root-6.22.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.22.00/graf2d/postscript/src/TPostScript.cxx +--- root-6.22.00.orig/graf2d/postscript/src/TPostScript.cxx 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/graf2d/postscript/src/TPostScript.cxx 2020-06-29 08:53:15.087085585 +0200 +@@ -233,6 +233,7 @@ #include #include #include @@ -809,7 +809,7 @@ diff -ur root-6.18.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.18.00/gr #include "Riostream.h" #include "Byteswap.h" -@@ -1575,56 +1576,179 @@ +@@ -1583,56 +1584,179 @@ void TPostScript::FontEmbed(void) { @@ -1034,7 +1034,7 @@ diff -ur root-6.18.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.18.00/gr } else { if (FontEmbedType2(ttfont)) { // nothing -@@ -1633,9 +1757,8 @@ +@@ -1641,9 +1765,8 @@ } else if(FontEmbedType42(ttfont)) { // nothing } else { @@ -1046,7 +1046,7 @@ diff -ur root-6.18.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.18.00/gr } delete [] ttfont; } -@@ -2803,10 +2926,10 @@ +@@ -2835,10 +2958,10 @@ { "Root.PSFont.9", "/FreeMonoOblique" }, { "Root.PSFont.10", "/FreeMonoBold" }, { "Root.PSFont.11", "/FreeMonoBoldOblique" }, @@ -1060,20 +1060,20 @@ diff -ur root-6.18.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.18.00/gr { "Root.PSFont.STIXGen", "/STIXGeneral" }, { "Root.PSFont.STIXGenIt", "/STIXGeneral-Italic" }, { "Root.PSFont.STIXGenBd", "/STIXGeneral-Bold" }, -diff -ur root-6.18.00.orig/graf3d/gl/CMakeLists.txt root-6.18.00/graf3d/gl/CMakeLists.txt ---- root-6.18.00.orig/graf3d/gl/CMakeLists.txt 2019-06-25 10:52:11.000000000 +0200 -+++ root-6.18.00/graf3d/gl/CMakeLists.txt 2019-06-26 15:02:38.318730684 +0200 -@@ -206,6 +206,7 @@ - ${FTGL_LIBRARIES} +diff -ur root-6.22.00.orig/graf3d/gl/CMakeLists.txt root-6.22.00/graf3d/gl/CMakeLists.txt +--- root-6.22.00.orig/graf3d/gl/CMakeLists.txt 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/graf3d/gl/CMakeLists.txt 2020-06-29 08:53:15.087085585 +0200 +@@ -208,6 +208,7 @@ ${GL2PS_LIBRARIES} ${X11_LIBRARIES} + RGlew + fontconfig DEPENDENCIES Hist Gui -diff -ur root-6.18.00.orig/graf3d/gl/src/TGLFontManager.cxx root-6.18.00/graf3d/gl/src/TGLFontManager.cxx ---- root-6.18.00.orig/graf3d/gl/src/TGLFontManager.cxx 2019-06-25 10:52:11.000000000 +0200 -+++ root-6.18.00/graf3d/gl/src/TGLFontManager.cxx 2019-06-26 15:00:32.066047715 +0200 +diff -ur root-6.22.00.orig/graf3d/gl/src/TGLFontManager.cxx root-6.22.00/graf3d/gl/src/TGLFontManager.cxx +--- root-6.22.00.orig/graf3d/gl/src/TGLFontManager.cxx 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/graf3d/gl/src/TGLFontManager.cxx 2020-06-29 08:53:15.087085585 +0200 @@ -37,6 +37,7 @@ # include "FTGLBitmapFont.h" #endif @@ -1329,9 +1329,9 @@ diff -ur root-6.18.00.orig/graf3d/gl/src/TGLFontManager.cxx root-6.18.00/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.18.00.orig/graf3d/gl/src/TGLText.cxx root-6.18.00/graf3d/gl/src/TGLText.cxx ---- root-6.18.00.orig/graf3d/gl/src/TGLText.cxx 2019-06-25 10:52:11.000000000 +0200 -+++ root-6.18.00/graf3d/gl/src/TGLText.cxx 2019-06-26 15:00:32.066047715 +0200 +diff -ur root-6.22.00.orig/graf3d/gl/src/TGLText.cxx root-6.22.00/graf3d/gl/src/TGLText.cxx +--- root-6.22.00.orig/graf3d/gl/src/TGLText.cxx 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/graf3d/gl/src/TGLText.cxx 2020-06-29 08:53:15.088085587 +0200 @@ -34,6 +34,8 @@ # include "FTGLBitmapFont.h" #endif @@ -1466,10 +1466,10 @@ diff -ur root-6.18.00.orig/graf3d/gl/src/TGLText.cxx root-6.18.00/graf3d/gl/src/ Error("SetGLTextFont","Cannot set FTGL::FaceSize"); - delete [] ttfont; } -diff -ur root-6.18.00.orig/gui/gui/src/TGApplication.cxx root-6.18.00/gui/gui/src/TGApplication.cxx ---- root-6.18.00.orig/gui/gui/src/TGApplication.cxx 2019-06-25 10:52:11.000000000 +0200 -+++ root-6.18.00/gui/gui/src/TGApplication.cxx 2019-06-26 15:00:32.066047715 +0200 -@@ -83,20 +83,12 @@ +diff -ur root-6.22.00.orig/gui/gui/src/TGApplication.cxx root-6.22.00/gui/gui/src/TGApplication.cxx +--- root-6.22.00.orig/gui/gui/src/TGApplication.cxx 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/gui/gui/src/TGApplication.cxx 2020-06-29 08:53:15.088085587 +0200 +@@ -80,20 +80,12 @@ gROOT->SetBatch(kFALSE); if (strcmp(appClassName, "proofserv")) { diff --git a/root-format-fix.patch b/root-format-fix.patch deleted file mode 100644 index 9d7f4e2..0000000 --- a/root-format-fix.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 1d4aaf9e503669ccb0275f3f9b8a87a486671334 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Fri, 13 Mar 2020 14:34:48 +0100 -Subject: [PATCH] Size types should use %z - ---- - tree/dataframe/src/RCsvDS.cxx | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tree/dataframe/src/RCsvDS.cxx b/tree/dataframe/src/RCsvDS.cxx -index 81f802285b..fc0a18e21f 100644 ---- a/tree/dataframe/src/RCsvDS.cxx -+++ b/tree/dataframe/src/RCsvDS.cxx -@@ -368,9 +368,9 @@ std::vector> RCsvDS::GetEntryRanges() - - if (gDebug > 0) { - if (fLinesChunkSize == -1LL) { -- Info("GetEntryRanges", "Attempted to read entire CSV file into memory, %lu lines read", fRecords.size()); -+ Info("GetEntryRanges", "Attempted to read entire CSV file into memory, %zu lines read", fRecords.size()); - } else { -- Info("GetEntryRanges", "Attempted to read chunk of %lld lines of CSV file into memory, %lu lines read", fLinesChunkSize, fRecords.size()); -+ Info("GetEntryRanges", "Attempted to read chunk of %lld lines of CSV file into memory, %zu lines read", fLinesChunkSize, fRecords.size()); - } - } - --- -2.24.1 - diff --git a/root-histv7-bin-iterator.patch b/root-histv7-bin-iterator.patch new file mode 100644 index 0000000..9e52725 --- /dev/null +++ b/root-histv7-bin-iterator.patch @@ -0,0 +1,51 @@ +From af2e5c8b1bf17a0a0e1c1492735395bdd49ffd65 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Mon, 29 Jun 2020 12:57:43 +0200 +Subject: [PATCH] Fix off-by-one error in the histogram v7 bin iterator + +The histogram bin iterator should start at 1 and end at N + 1, not +start at 0 and end at N. (As for all iterators, the end element is the +invalid element after the last one.) + +Fixes an assertion in the histhistv7testUnit test + +[----------] 2 tests from BinIterNBins +[ RUN ] BinIterNBins.NumBins +/usr/include/c++/10/bits/stl_vector.h:1045: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = float; _Alloc = std::allocator; std::vector<_Tp, _Alloc>::reference = float&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__builtin_expect(__n < this->size(), true)' failed. +--- + hist/histv7/inc/ROOT/RHist.hxx | 4 ++-- + hist/histv7/test/biniter.cxx | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/hist/histv7/inc/ROOT/RHist.hxx b/hist/histv7/inc/ROOT/RHist.hxx +index ebb319f1ef..9521fe182f 100644 +--- a/hist/histv7/inc/ROOT/RHist.hxx ++++ b/hist/histv7/inc/ROOT/RHist.hxx +@@ -158,9 +158,9 @@ public: + /// Get the uncertainty on the content of the bin at `x`. + double GetBinUncertainty(const CoordArray_t &x) const { return fImpl->GetBinUncertainty(x); } + +- const_iterator begin() const { return const_iterator(*fImpl); } ++ const_iterator begin() const { return const_iterator(*fImpl, 1); } + +- const_iterator end() const { return const_iterator(*fImpl, fImpl->GetNBinsNoOver()); } ++ const_iterator end() const { return const_iterator(*fImpl, fImpl->GetNBinsNoOver() + 1); } + + /// Swap *this and other. + /// +diff --git a/hist/histv7/test/biniter.cxx b/hist/histv7/test/biniter.cxx +index aa1c2dfef9..1f940aa8e7 100644 +--- a/hist/histv7/test/biniter.cxx ++++ b/hist/histv7/test/biniter.cxx +@@ -45,7 +45,7 @@ TEST(BinIterNBins, BinRef) { + double founduncert = -1.; + RH2F::CoordArray_t foundcoord{}; + +- int nBins = 0; ++ int nBins = 1; + for (auto bin: h) { + auto binCenter = bin.GetCenter(); + if (std::fabs(binCenter[0] - x) < 0.1 && std::fabs(binCenter[1] - y) < 0.1) { +-- +2.26.2 + diff --git a/root-jupyroot-static.patch b/root-jupyroot-static.patch index 2cdb5aa..b39110a 100644 --- a/root-jupyroot-static.patch +++ b/root-jupyroot-static.patch @@ -1,6 +1,30 @@ -diff -ur root-6.20.02.orig/bindings/pyroot/JsMVA/JPyInterface.py root-6.20.02/bindings/pyroot/JsMVA/JPyInterface.py ---- root-6.20.02.orig/bindings/pyroot/JsMVA/JPyInterface.py 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/bindings/pyroot/JsMVA/JPyInterface.py 2020-03-15 20:07:18.921423559 +0100 +diff -ur root-6.22.00.orig/bindings/jsmva/python/JsMVA/JPyInterface.py root-6.22.00/bindings/jsmva/python/JsMVA/JPyInterface.py +--- root-6.22.00.orig/bindings/jsmva/python/JsMVA/JPyInterface.py 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/bindings/jsmva/python/JsMVA/JPyInterface.py 2020-06-21 20:20:27.744527667 +0200 +@@ -188,7 +188,7 @@ + ## Class for creating the output scripts and inserting them to cell output + class JsDraw: + ## Base repository +- __jsMVARepo = "https://root.cern.ch/js/jsmva/latest" ++ __jsMVARepo = "/static/JsMVA" + + ## String containing the link to JavaScript files + __jsMVASourceDir = __jsMVARepo + "/js" +diff -ur root-6.22.00.orig/bindings/jupyroot/python/JupyROOT/helpers/utils.py root-6.22.00/bindings/jupyroot/python/JupyROOT/helpers/utils.py +--- root-6.22.00.orig/bindings/jupyroot/python/JupyROOT/helpers/utils.py 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/bindings/jupyroot/python/JupyROOT/helpers/utils.py 2020-06-21 20:18:22.840258397 +0200 +@@ -40,7 +40,7 @@ + _jsNotDrawableClassesPatterns = ["TEve*","TF3","TPolyLine3D"] + + +-_jsROOTSourceDir = "/static/" ++_jsROOTSourceDir = "/static/jsroot/" + _jsCanvasWidth = 800 + _jsCanvasHeight = 600 + +diff -ur root-6.22.00.orig/bindings/pyroot_legacy/JsMVA/JPyInterface.py root-6.22.00/bindings/pyroot_legacy/JsMVA/JPyInterface.py +--- root-6.22.00.orig/bindings/pyroot_legacy/JsMVA/JPyInterface.py 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/bindings/pyroot_legacy/JsMVA/JPyInterface.py 2020-06-21 20:09:42.265004565 +0200 @@ -188,7 +188,7 @@ ## Class for creating the output scripts and inserting them to cell output class JsDraw: @@ -10,9 +34,9 @@ diff -ur root-6.20.02.orig/bindings/pyroot/JsMVA/JPyInterface.py root-6.20.02/bi ## String containing the link to JavaScript files __jsMVASourceDir = __jsMVARepo + "/js" -diff -ur root-6.20.02.orig/bindings/pyroot/JupyROOT/helpers/utils.py root-6.20.02/bindings/pyroot/JupyROOT/helpers/utils.py ---- root-6.20.02.orig/bindings/pyroot/JupyROOT/helpers/utils.py 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/bindings/pyroot/JupyROOT/helpers/utils.py 2020-03-15 20:07:18.921423559 +0100 +diff -ur root-6.22.00.orig/bindings/pyroot_legacy/JupyROOT/helpers/utils.py root-6.22.00/bindings/pyroot_legacy/JupyROOT/helpers/utils.py +--- root-6.22.00.orig/bindings/pyroot_legacy/JupyROOT/helpers/utils.py 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/bindings/pyroot_legacy/JupyROOT/helpers/utils.py 2020-06-21 20:09:42.266004568 +0200 @@ -82,7 +82,7 @@ function requirejs_success(base_url) {{ return function() {{ @@ -22,9 +46,9 @@ diff -ur root-6.20.02.orig/bindings/pyroot/JupyROOT/helpers/utils.py root-6.20.0 }}); display_{jsDivId}(); }} -diff -ur root-6.20.02.orig/etc/notebook/JsMVA/js/JsMVA.js root-6.20.02/etc/notebook/JsMVA/js/JsMVA.js ---- root-6.20.02.orig/etc/notebook/JsMVA/js/JsMVA.js 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/etc/notebook/JsMVA/js/JsMVA.js 2020-03-15 20:07:18.922423549 +0100 +diff -ur root-6.22.00.orig/etc/notebook/JsMVA/js/JsMVA.js root-6.22.00/etc/notebook/JsMVA/js/JsMVA.js +--- root-6.22.00.orig/etc/notebook/JsMVA/js/JsMVA.js 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/etc/notebook/JsMVA/js/JsMVA.js 2020-06-21 20:10:34.552121014 +0200 @@ -16,7 +16,7 @@ (function(factory){ @@ -34,9 +58,9 @@ diff -ur root-6.20.02.orig/etc/notebook/JsMVA/js/JsMVA.js root-6.20.02/etc/noteb var url = ""; if (requirejs.s.contexts.hasOwnProperty("_")) { -diff -ur root-6.20.02.orig/etc/notebook/JsMVA/js/NetworkDesigner.js root-6.20.02/etc/notebook/JsMVA/js/NetworkDesigner.js ---- root-6.20.02.orig/etc/notebook/JsMVA/js/NetworkDesigner.js 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/etc/notebook/JsMVA/js/NetworkDesigner.js 2020-03-15 20:07:18.922423549 +0100 +diff -ur root-6.22.00.orig/etc/notebook/JsMVA/js/NetworkDesigner.js root-6.22.00/etc/notebook/JsMVA/js/NetworkDesigner.js +--- root-6.22.00.orig/etc/notebook/JsMVA/js/NetworkDesigner.js 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/etc/notebook/JsMVA/js/NetworkDesigner.js 2020-06-21 20:10:34.552121014 +0200 @@ -19,7 +19,7 @@ paths: { "jquery-connections": baseURL + "jquery.connections.min", diff --git a/root-memory-usage.patch b/root-memory-usage.patch index 27fac76..9910ec3 100644 --- a/root-memory-usage.patch +++ b/root-memory-usage.patch @@ -1,4 +1,4 @@ -From b587d85a5fc8f706362396dc347830f16797b1f2 Mon Sep 17 00:00:00 2001 +From 636b26baf214559e209e72b2a14946d0cc18c2f1 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Tue, 16 Jan 2018 10:25:50 +0100 Subject: [PATCH] Reduce the needed memory for compilation @@ -18,14 +18,14 @@ A similar dependency existed before the code latest code changes (see commit 2638f6fc7f54b0995f2f9d60363daaf8aae2386e), then between rootcling and libCling. --- - core/metacling/src/CMakeLists.txt | 4 ++++ - 1 file changed, 4 insertions(+) + core/metacling/src/CMakeLists.txt | 5 +++++ + 1 file changed, 5 insertions(+) diff --git a/core/metacling/src/CMakeLists.txt b/core/metacling/src/CMakeLists.txt -index eccd77681d..df941eb3b7 100644 +index 2923345f7c..b44a4d4115 100644 --- a/core/metacling/src/CMakeLists.txt +++ b/core/metacling/src/CMakeLists.txt -@@ -86,6 +86,10 @@ ROOT_LINKER_LIBRARY(Cling +@@ -114,6 +114,11 @@ ROOT_LINKER_LIBRARY(Cling $ LIBRARIES ${CLING_LIBRARIES} ${LINK_LIBS} ${CLING_PLUGIN_LINK_LIBS}) @@ -33,9 +33,10 @@ index eccd77681d..df941eb3b7 100644 +# rootcling_stage1 from being linked in parallel. +# This avoids doing two memory consuming operations in parallel. +add_dependencies(Cling rootcling_stage1) - ++ if(MSVC) set_target_properties(Cling PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE) + set(cling_exports -- -2.20.1 +2.26.2 diff --git a/root-moved-file.patch b/root-moved-file.patch deleted file mode 100644 index 948a78b..0000000 --- a/root-moved-file.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 6492170d74f464286de22c40554adbd400ec838b Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Fri, 13 Mar 2020 12:53:34 +0100 -Subject: [PATCH] The file was moved - update path - ---- - tutorials/legacy/mlp/mlpHiggs.C | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tutorials/legacy/mlp/mlpHiggs.C b/tutorials/legacy/mlp/mlpHiggs.C -index 49d3ca2b30..0516ed7c50 100644 ---- a/tutorials/legacy/mlp/mlpHiggs.C -+++ b/tutorials/legacy/mlp/mlpHiggs.C -@@ -18,8 +18,8 @@ void mlpHiggs(Int_t ntrain=100) { - TFile *input = 0; - if (!gSystem->AccessPathName(fname)) { - input = TFile::Open(fname); -- } else if (!gSystem->AccessPathName(Form("%s/mlp/%s", TROOT::GetTutorialDir().Data(), fname))) { -- input = TFile::Open(Form("%s/mlp/%s", TROOT::GetTutorialDir().Data(), fname)); -+ } else if (!gSystem->AccessPathName(Form("%s/legacy/mlp/%s", TROOT::GetTutorialDir().Data(), fname))) { -+ input = TFile::Open(Form("%s/legacy/mlp/%s", TROOT::GetTutorialDir().Data(), fname)); - } else { - printf("accessing %s file from http://root.cern.ch/files\n",fname); - input = TFile::Open(Form("http://root.cern.ch/files/%s",fname)); --- -2.24.1 - diff --git a/root-ntuple-largefile.patch b/root-ntuple-largefile.patch new file mode 100644 index 0000000..b4242f0 --- /dev/null +++ b/root-ntuple-largefile.patch @@ -0,0 +1,139 @@ +diff -ur root-6.22.00.orig/io/io/src/RRawFileUnix.cxx root-6.22.00/io/io/src/RRawFileUnix.cxx +--- root-6.22.00.orig/io/io/src/RRawFileUnix.cxx 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/io/io/src/RRawFileUnix.cxx 2020-07-02 09:02:48.202677798 +0200 +@@ -9,6 +9,8 @@ + * For the list of contributors see $ROOTSYS/README/CREDITS. * + *************************************************************************/ + ++#include "ROOT/RConfig.hxx" ++ + #include "ROOT/RRawFileUnix.hxx" + #include "ROOT/RMakeUnique.hxx" + +@@ -47,8 +49,13 @@ + + std::uint64_t ROOT::Internal::RRawFileUnix::GetSizeImpl() + { ++#ifdef R__SEEK64 ++ struct stat64 info; ++ int res = fstat64(fFileDes, &info); ++#else + struct stat info; + int res = fstat(fFileDes, &info); ++#endif + if (res != 0) + throw std::runtime_error("Cannot call fstat on '" + fUrl + "', error: " + std::string(strerror(errno))); + return info.st_size; +@@ -68,7 +75,11 @@ + + void ROOT::Internal::RRawFileUnix::OpenImpl() + { ++#ifdef R__SEEK64 ++ fFileDes = open64(GetLocation(fUrl).c_str(), O_RDONLY); ++#else + fFileDes = open(GetLocation(fUrl).c_str(), O_RDONLY); ++#endif + if (fFileDes < 0) { + throw std::runtime_error("Cannot open '" + fUrl + "', error: " + std::string(strerror(errno))); + } +@@ -76,8 +87,13 @@ + if (fOptions.fBlockSize >= 0) + return; + ++#ifdef R__SEEK64 ++ struct stat64 info; ++ int res = fstat64(fFileDes, &info); ++#else + struct stat info; + int res = fstat(fFileDes, &info); ++#endif + if (res != 0) { + throw std::runtime_error("Cannot call fstat on '" + fUrl + "', error: " + std::string(strerror(errno))); + } +@@ -92,7 +108,11 @@ + { + size_t total_bytes = 0; + while (nbytes) { ++#ifdef R__SEEK64 ++ ssize_t res = pread64(fFileDes, buffer, nbytes, offset); ++#else + ssize_t res = pread(fFileDes, buffer, nbytes, offset); ++#endif + if (res < 0) { + if (errno == EINTR) + continue; +diff -ur root-6.22.00.orig/tree/ntuple/v7/src/RMiniFile.cxx root-6.22.00/tree/ntuple/v7/src/RMiniFile.cxx +--- root-6.22.00.orig/tree/ntuple/v7/src/RMiniFile.cxx 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/tree/ntuple/v7/src/RMiniFile.cxx 2020-07-02 10:06:55.066204147 +0200 +@@ -13,6 +13,8 @@ + * For the list of contributors see $ROOTSYS/README/CREDITS. * + *************************************************************************/ + ++#include ++ + #include "ROOT/RMiniFile.hxx" + + #include +@@ -999,7 +1001,11 @@ + R__ASSERT(fFile); + size_t retval; + if ((offset >= 0) && (static_cast(offset) != fFilePos)) { ++#ifdef R__SEEK64 ++ retval = fseeko64(fFile, offset, SEEK_SET); ++#else + retval = fseek(fFile, offset, SEEK_SET); ++#endif + R__ASSERT(retval == 0); + fFilePos = offset; + } +@@ -1099,7 +1105,11 @@ + if (idxDirSep != std::string::npos) { + fileName.erase(0, idxDirSep + 1); + } ++#ifdef R__SEEK64 ++ FILE *fileStream = fopen64(std::string(path.data(), path.size()).c_str(), "wb"); ++#else + FILE *fileStream = fopen(std::string(path.data(), path.size()).c_str(), "wb"); ++#endif + R__ASSERT(fileStream); + + auto writer = new RNTupleFileWriter(ntupleName); +@@ -1319,7 +1329,11 @@ + fFileSimple.Write(&strEmpty, strEmpty.GetSize()); + fFileSimple.Write(&fileRoot, fileRoot.GetSize()); + fFileSimple.fFilePos = tail; ++#ifdef R__SEEK64 ++ auto retval = fseeko64(fFileSimple.fFile, tail, SEEK_SET); ++#else + auto retval = fseek(fFileSimple.fFile, tail, SEEK_SET); ++#endif + R__ASSERT(retval == 0); + fFileSimple.fFilePos = tail; + } +diff -ur root-6.22.00.orig/tree/ntuple/v7/test/ntuple.cxx root-6.22.00/tree/ntuple/v7/test/ntuple.cxx +--- root-6.22.00.orig/tree/ntuple/v7/test/ntuple.cxx 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/tree/ntuple/v7/test/ntuple.cxx 2020-07-02 10:10:54.409737807 +0200 +@@ -1,3 +1,5 @@ ++#include ++ + #include + #include + #include +@@ -891,10 +893,17 @@ + ntuple->Fill(); + } + } ++#ifdef R__SEEK64 ++ FILE *file = fopen64(fileGuard.GetPath().c_str(), "rb"); ++ ASSERT_TRUE(file != nullptr); ++ EXPECT_EQ(0, fseeko64(file, 0, SEEK_END)); ++ EXPECT_GT(ftello64(file), 2048LL * 1024LL * 1024LL); ++#else + FILE *file = fopen(fileGuard.GetPath().c_str(), "rb"); + ASSERT_TRUE(file != nullptr); + EXPECT_EQ(0, fseek(file, 0, SEEK_END)); + EXPECT_GT(ftell(file), 2048LL * 1024LL * 1024LL); ++#endif + fclose(file); + + auto ntuple = RNTupleReader::Open("myNTuple", fileGuard.GetPath()); diff --git a/root-old-gtest-compat.patch b/root-old-gtest-compat.patch new file mode 100644 index 0000000..a25a8e8 --- /dev/null +++ b/root-old-gtest-compat.patch @@ -0,0 +1,161 @@ +diff -ur root-6.22.00.orig/math/mathcore/test/stress/testGenVector.cxx root-6.22.00/math/mathcore/test/stress/testGenVector.cxx +--- root-6.22.00.orig/math/mathcore/test/stress/testGenVector.cxx 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/math/mathcore/test/stress/testGenVector.cxx 2020-06-29 19:38:08.524050438 +0200 +@@ -4,6 +4,16 @@ + + #include "gtest/gtest.h" + ++#ifndef TYPED_TEST_SUITE_P ++#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P ++#endif ++#ifndef REGISTER_TYPED_TEST_SUITE_P ++#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P ++#endif ++#ifndef INSTANTIATE_TYPED_TEST_SUITE_P ++#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P ++#endif ++ + #include "StatFunction.h" + #include "TestHelper.h" + #include "VectorTest.h" +diff -ur root-6.22.00.orig/math/mathcore/test/stress/testSMatrix.cxx root-6.22.00/math/mathcore/test/stress/testSMatrix.cxx +--- root-6.22.00.orig/math/mathcore/test/stress/testSMatrix.cxx 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/math/mathcore/test/stress/testSMatrix.cxx 2020-06-29 19:38:08.524050438 +0200 +@@ -7,6 +7,16 @@ + #include "TestHelper.h" + #include "gtest/gtest.h" + ++#ifndef TYPED_TEST_SUITE_P ++#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P ++#endif ++#ifndef REGISTER_TYPED_TEST_SUITE_P ++#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P ++#endif ++#ifndef INSTANTIATE_TYPED_TEST_SUITE_P ++#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P ++#endif ++ + #include "VectorTest.h" + #include "TROOT.h" + #include "TSystem.h" +diff -ur root-6.22.00.orig/math/mathcore/test/stress/testVector34.cxx root-6.22.00/math/mathcore/test/stress/testVector34.cxx +--- root-6.22.00.orig/math/mathcore/test/stress/testVector34.cxx 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/math/mathcore/test/stress/testVector34.cxx 2020-06-29 19:38:08.525050440 +0200 +@@ -4,6 +4,16 @@ + + #include "gtest/gtest.h" + ++#ifndef TYPED_TEST_SUITE_P ++#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P ++#endif ++#ifndef REGISTER_TYPED_TEST_SUITE_P ++#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P ++#endif ++#ifndef INSTANTIATE_TYPED_TEST_SUITE_P ++#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P ++#endif ++ + #include "StatFunction.h" + #include "VectorTest.h" + +diff -ur root-6.22.00.orig/math/mathcore/test/stress/testVector.cxx root-6.22.00/math/mathcore/test/stress/testVector.cxx +--- root-6.22.00.orig/math/mathcore/test/stress/testVector.cxx 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/math/mathcore/test/stress/testVector.cxx 2020-06-29 19:38:08.525050440 +0200 +@@ -4,6 +4,16 @@ + + #include "gtest/gtest.h" + ++#ifndef TYPED_TEST_SUITE_P ++#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P ++#endif ++#ifndef REGISTER_TYPED_TEST_SUITE_P ++#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P ++#endif ++#ifndef INSTANTIATE_TYPED_TEST_SUITE_P ++#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P ++#endif ++ + #include "StatFunction.h" + #include "TestHelper.h" + #include "VectorTest.h" +diff -ur root-6.22.00.orig/math/mathcore/test/testGradient.cxx root-6.22.00/math/mathcore/test/testGradient.cxx +--- root-6.22.00.orig/math/mathcore/test/testGradient.cxx 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/math/mathcore/test/testGradient.cxx 2020-06-29 19:38:08.525050440 +0200 +@@ -22,6 +22,10 @@ + + #include "gtest/gtest.h" + ++#ifndef TYPED_TEST_SUITE ++#define TYPED_TEST_SUITE TYPED_TEST_CASE ++#endif ++ + #include + #include + #include +diff -ur root-6.22.00.orig/math/mathcore/test/testGradientFitting.cxx root-6.22.00/math/mathcore/test/testGradientFitting.cxx +--- root-6.22.00.orig/math/mathcore/test/testGradientFitting.cxx 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/math/mathcore/test/testGradientFitting.cxx 2020-06-29 19:38:08.525050440 +0200 +@@ -12,6 +12,16 @@ + + #include "gtest/gtest.h" + ++#ifndef TYPED_TEST_SUITE_P ++#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P ++#endif ++#ifndef REGISTER_TYPED_TEST_SUITE_P ++#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P ++#endif ++#ifndef INSTANTIATE_TYPED_TEST_SUITE_P ++#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P ++#endif ++ + #include + #include + +diff -ur root-6.22.00.orig/math/mathmore/test/testStress.cxx root-6.22.00/math/mathmore/test/testStress.cxx +--- root-6.22.00.orig/math/mathmore/test/testStress.cxx 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/math/mathmore/test/testStress.cxx 2020-06-29 19:38:08.526050443 +0200 +@@ -28,6 +28,16 @@ + + #include "gtest/gtest.h" + ++#ifndef TYPED_TEST_SUITE_P ++#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P ++#endif ++#ifndef REGISTER_TYPED_TEST_SUITE_P ++#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P ++#endif ++#ifndef INSTANTIATE_TYPED_TEST_SUITE_P ++#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P ++#endif ++ + using ::testing::TestWithParam; + using ::testing::Values; + +diff -ur root-6.22.00.orig/roofit/roofitcore/test/testProxiesAndCategories.cxx root-6.22.00/roofit/roofitcore/test/testProxiesAndCategories.cxx +--- root-6.22.00.orig/roofit/roofitcore/test/testProxiesAndCategories.cxx 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/roofit/roofitcore/test/testProxiesAndCategories.cxx 2020-06-29 19:38:08.526050443 +0200 +@@ -16,6 +16,9 @@ + + #include "gtest/gtest.h" + ++#ifndef INSTANTIATE_TEST_SUITE_P ++#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P ++#endif + + TEST(RooCategory, CategoryDefineMultiState) { + RooCategory myCat("myCat", "A category", { {"0Lep", 0}, {"1Lep", 1}, {"2Lep", 2}, {"3Lep", 3} }); +diff -ur root-6.22.00.orig/tree/dataframe/test/dataframe_simple.cxx root-6.22.00/tree/dataframe/test/dataframe_simple.cxx +--- root-6.22.00.orig/tree/dataframe/test/dataframe_simple.cxx 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/tree/dataframe/test/dataframe_simple.cxx 2020-06-29 19:38:45.667130468 +0200 +@@ -1,5 +1,10 @@ + /****** Run RDataFrame tests both with and without IMT enabled *******/ + #include ++ ++#ifndef INSTANTIATE_TEST_SUITE_P ++#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P ++#endif ++ + #include + #include + #include diff --git a/root-python2-compat.patch b/root-python2-compat.patch new file mode 100644 index 0000000..8006a8f --- /dev/null +++ b/root-python2-compat.patch @@ -0,0 +1,41 @@ +From 056b67d05c950cf04a8290dcdf376078ee92b449 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Mon, 29 Jun 2020 17:01:03 +0200 +Subject: [PATCH] Compatibility with python 2.7 versions before 2.7.9 + +This is a workaround for https://bugs.python.org/issue21591 which +affect Python 2 versions before 2.7.9. This includes Python 2.7.5 +which is the Python 2 version on RHEL/CentOS 7. +--- + .../pyroot/pythonizations/python/ROOT/_numbadeclare.py | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/bindings/pyroot/pythonizations/python/ROOT/_numbadeclare.py b/bindings/pyroot/pythonizations/python/ROOT/_numbadeclare.py +index 1bef862af5..9aa893b8f0 100644 +--- a/bindings/pyroot/pythonizations/python/ROOT/_numbadeclare.py ++++ b/bindings/pyroot/pythonizations/python/ROOT/_numbadeclare.py +@@ -32,7 +32,7 @@ def _NumbaDeclareDecorator(input_types, return_type, name=None): + import cffi + except: + raise Exception('Failed to import cffi') +- import re ++ import re, sys + + # Normalize input types by stripping ROOT and VecOps namespaces from input types + def normalize_typename(t): +@@ -195,7 +195,11 @@ def pywrapper({SIGNATURE}): + if 'RVec' in return_type: + glob['dtype_r'] = get_numba_type(get_inner_type(return_type)) + +- exec(pywrappercode, glob, locals()) ++ if sys.version_info[0] >= 3: ++ exec(pywrappercode, glob, locals()) in {} ++ else: ++ exec(pywrappercode) in glob, locals() ++ + if not 'pywrapper' in locals(): + raise Exception('Failed to create Python wrapper function:\n{}'.format(pywrappercode)) + +-- +2.26.2 + diff --git a/root-python3.8-object.patch b/root-python3.8-object.patch index 2447e31..a4d2759 100644 --- a/root-python3.8-object.patch +++ b/root-python3.8-object.patch @@ -1,281 +1,21 @@ -diff -ur root-6.20.02.orig/bindings/pyroot/src/MethodProxy.cxx root-6.20.02/bindings/pyroot/src/MethodProxy.cxx ---- root-6.20.02.orig/bindings/pyroot/src/MethodProxy.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/bindings/pyroot/src/MethodProxy.cxx 2020-03-15 19:43:20.946684699 +0100 -@@ -845,7 +845,8 @@ - sizeof(MethodProxy), // tp_basicsize - 0, // tp_itemsize - (destructor)mp_dealloc, // tp_dealloc -- 0, // tp_print -+ 0, // tp_print (python < 3.8) -+ // tp_vectorcall_offset (python >= 3.8) - 0, // tp_getattr - 0, // tp_setattr - 0, // tp_compare -@@ -894,6 +895,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 - }; +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() - } // namespace PyROOT -diff -ur root-6.20.02.orig/bindings/pyroot/src/ObjectProxy.cxx root-6.20.02/bindings/pyroot/src/ObjectProxy.cxx ---- root-6.20.02.orig/bindings/pyroot/src/ObjectProxy.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/bindings/pyroot/src/ObjectProxy.cxx 2020-03-15 19:43:20.946684699 +0100 -@@ -398,7 +398,8 @@ - sizeof(ObjectProxy), // tp_basicsize - 0, // tp_itemsize - (destructor)op_dealloc, // tp_dealloc -- 0, // tp_print -+ 0, // tp_print (python < 3.8) -+ // tp_vectorcall_offset (python >= 3.8) - 0, // tp_getattr - 0, // tp_setattr - 0, // tp_compare -@@ -450,6 +451,12 @@ - #if PY_VERSION_HEX >= 0x03040000 - , 0 // tp_finalize - #endif -+#if PY_VERSION_HEX >= 0x03080000 -+ , 0 // tp_vectorcall -+#if PY_VERSION_HEX < 0x03090000 -+ , 0 // tp_print (python 3.8 only) -+#endif -+#endif - }; - - } // namespace PyROOT -diff -ur root-6.20.02.orig/bindings/pyroot/src/PropertyProxy.cxx root-6.20.02/bindings/pyroot/src/PropertyProxy.cxx ---- root-6.20.02.orig/bindings/pyroot/src/PropertyProxy.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/bindings/pyroot/src/PropertyProxy.cxx 2020-03-15 19:43:20.946684699 +0100 -@@ -133,7 +133,8 @@ - sizeof(PropertyProxy), // tp_basicsize - 0, // tp_itemsize - (destructor)pp_dealloc, // tp_dealloc -- 0, // tp_print -+ 0, // tp_print (python < 3.8) -+ // tp_vectorcall_offset (python >= 3.8) - 0, // tp_getattr - 0, // tp_setattr - 0, // tp_compare -@@ -182,6 +183,12 @@ - #if PY_VERSION_HEX >= 0x03040000 - , 0 // tp_finalize - #endif -+#if PY_VERSION_HEX >= 0x03080000 -+ , 0 // tp_vectorcall -+#if PY_VERSION_HEX < 0x03090000 -+ , 0 // tp_print (python 3.8 only) -+#endif -+#endif - }; - - } // namespace PyROOT -diff -ur root-6.20.02.orig/bindings/pyroot/src/PyRootType.cxx root-6.20.02/bindings/pyroot/src/PyRootType.cxx ---- root-6.20.02.orig/bindings/pyroot/src/PyRootType.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/bindings/pyroot/src/PyRootType.cxx 2020-03-15 19:43:20.946684699 +0100 -@@ -232,7 +232,8 @@ - sizeof(PyROOT::PyRootClass),// tp_basicsize - 0, // tp_itemsize - 0, // tp_dealloc -- 0, // tp_print -+ 0, // tp_print (python < 3.8) -+ // tp_vectorcall_offset (python >= 3.8) - 0, // tp_getattr - 0, // tp_setattr - 0, // tp_compare -@@ -281,6 +282,12 @@ - #if PY_VERSION_HEX >= 0x03040000 - , 0 // tp_finalize - #endif -+#if PY_VERSION_HEX >= 0x03080000 -+ , 0 // tp_vectorcall -+#if PY_VERSION_HEX < 0x03090000 -+ , 0 // tp_print (python 3.8 only) -+#endif -+#endif - }; - - } // namespace PyROOT -diff -ur root-6.20.02.orig/bindings/pyroot/src/Pythonize.cxx root-6.20.02/bindings/pyroot/src/Pythonize.cxx ---- root-6.20.02.orig/bindings/pyroot/src/Pythonize.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/bindings/pyroot/src/Pythonize.cxx 2020-03-15 19:43:20.947684688 +0100 -@@ -944,6 +944,12 @@ - #if PY_VERSION_HEX >= 0x03040000 - , 0 // tp_finalize - #endif -+#if PY_VERSION_HEX >= 0x03080000 -+ , 0 // tp_vectorcall -+#if PY_VERSION_HEX < 0x03090000 -+ , 0 // tp_print (python 3.8 only) -+#endif -+#endif - }; - - static PyObject* vector_iter( PyObject* v ) { -diff -ur root-6.20.02.orig/bindings/pyroot/src/RootModule.cxx root-6.20.02/bindings/pyroot/src/RootModule.cxx ---- root-6.20.02.orig/bindings/pyroot/src/RootModule.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/bindings/pyroot/src/RootModule.cxx 2020-03-15 19:43:20.948684678 +0100 -@@ -134,6 +134,12 @@ - #if PY_VERSION_HEX >= 0x03040000 - , 0 // tp_finalize - #endif -+#if PY_VERSION_HEX >= 0x03080000 -+ , 0 // tp_vectorcall -+#if PY_VERSION_HEX < 0x03090000 -+ , 0 // tp_print (python 3.8 only) -+#endif -+#endif - }; - - PyObject _PyROOT_NullPtrStruct = { -diff -ur root-6.20.02.orig/bindings/pyroot/src/TCustomPyTypes.cxx root-6.20.02/bindings/pyroot/src/TCustomPyTypes.cxx ---- root-6.20.02.orig/bindings/pyroot/src/TCustomPyTypes.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/bindings/pyroot/src/TCustomPyTypes.cxx 2020-03-15 19:43:20.948684678 +0100 -@@ -19,7 +19,8 @@ - 0, // tp_basicsize - 0, // tp_itemsize - 0, // tp_dealloc -- 0, // tp_print -+ 0, // tp_print (python < 3.8) -+ // tp_vectorcall_offset (python >= 3.8) - 0, // tp_getattr - 0, // tp_setattr - 0, // tp_compare -@@ -69,6 +70,12 @@ - #if PY_VERSION_HEX >= 0x03040000 - , 0 // tp_finalize - #endif -+#if PY_VERSION_HEX >= 0x03080000 -+ , 0 // tp_vectorcall -+#if PY_VERSION_HEX < 0x03090000 -+ , 0 // tp_print (python 3.8 only) -+#endif -+#endif - }; - - //= long type allowed for reference passing ================================== -@@ -78,7 +85,8 @@ - 0, // tp_basicsize - 0, // tp_itemsize - 0, // tp_dealloc -- 0, // tp_print -+ 0, // tp_print (python < 3.8) -+ // tp_vectorcall_offset (python >= 3.8) - 0, // tp_getattr - 0, // tp_setattr - 0, // tp_compare -@@ -128,6 +136,12 @@ - #if PY_VERSION_HEX >= 0x03040000 - , 0 // tp_finalize - #endif -+#if PY_VERSION_HEX >= 0x03080000 -+ , 0 // tp_vectorcall -+#if PY_VERSION_HEX < 0x03090000 -+ , 0 // tp_print (python 3.8 only) -+#endif -+#endif - }; - - //= instancemethod object with a more efficient call function ================ -@@ -277,7 +291,8 @@ - 0, // tp_basicsize - 0, // tp_itemsize - (destructor)im_dealloc, // tp_dealloc -- 0, // tp_print -+ 0, // tp_print (python < 3.8) -+ // tp_vectorcall_offset (python >= 3.8) - 0, // tp_getattr - 0, // tp_setattr - 0, // tp_compare -@@ -327,6 +342,12 @@ - #if PY_VERSION_HEX >= 0x03040000 - , 0 // tp_finalize - #endif -+#if PY_VERSION_HEX >= 0x03080000 -+ , 0 // tp_vectorcall -+#if PY_VERSION_HEX < 0x03090000 -+ , 0 // tp_print (python 3.8 only) -+#endif -+#endif - }; - - } // namespace PyROOT -diff -ur root-6.20.02.orig/bindings/pyroot/src/TemplateProxy.cxx root-6.20.02/bindings/pyroot/src/TemplateProxy.cxx ---- root-6.20.02.orig/bindings/pyroot/src/TemplateProxy.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/bindings/pyroot/src/TemplateProxy.cxx 2020-03-15 19:43:20.948684678 +0100 -@@ -492,7 +492,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 -@@ -541,6 +542,12 @@ - #if PY_VERSION_HEX >= 0x03040000 - , 0 // tp_finalize - #endif -+#if PY_VERSION_HEX >= 0x03080000 -+ , 0 // tp_vectorcall -+#if PY_VERSION_HEX < 0x03090000 -+ , 0 // tp_print (python 3.8 only) -+#endif -+#endif - }; - - } // namespace PyROOT -diff -ur root-6.20.02.orig/bindings/pyroot/src/TTupleOfInstances.cxx root-6.20.02/bindings/pyroot/src/TTupleOfInstances.cxx ---- root-6.20.02.orig/bindings/pyroot/src/TTupleOfInstances.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/bindings/pyroot/src/TTupleOfInstances.cxx 2020-03-15 19:43:20.948684678 +0100 -@@ -42,7 +42,8 @@ - 0, // tp_basicsize - 0, // tp_itemsize - 0, // tp_dealloc -- 0, // tp_print -+ 0, // tp_print (python < 3.8) -+ // tp_vectorcall_offset (python >= 3.8) - 0, // tp_getattr - 0, // tp_setattr - 0, // tp_compare -@@ -92,6 +93,12 @@ - #if PY_VERSION_HEX >= 0x03040000 - , 0 // tp_finalize - #endif -+#if PY_VERSION_HEX >= 0x03080000 -+ , 0 // tp_vectorcall -+#if PY_VERSION_HEX < 0x03090000 -+ , 0 // tp_print (python 3.8 only) -+#endif -+#endif - }; - - } // namespace PyROOT -diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/CMakeLists.txt root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/CMakeLists.txt ---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/CMakeLists.txt 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/CMakeLists.txt 2020-03-15 19:43:20.949684667 +0100 -@@ -64,11 +64,6 @@ - target_compile_options(cppyy 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(cppyy PRIVATE -Wno-missing-field-initializers) --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(cppyy PRIVATE ${CMAKE_BINARY_DIR}/include) # needed for string_view backport - - target_include_directories(cppyy PUBLIC ${PYTHON_INCLUDE_DIRS} -diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDataMember.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDataMember.cxx ---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDataMember.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDataMember.cxx 2020-03-15 19:43:20.949684667 +0100 + 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 @@ -299,10 +39,36 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDa }; } // namespace CPyCppyy -diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPInstance.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPInstance.cxx ---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPInstance.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPInstance.cxx 2020-03-15 19:43:20.949684667 +0100 -@@ -565,7 +565,8 @@ +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 @@ -312,7 +78,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPIn 0, // tp_getattr 0, // tp_setattr 0, // tp_compare -@@ -617,6 +618,12 @@ +@@ -798,6 +799,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif @@ -325,10 +91,10 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPIn }; } // namespace CPyCppyy -diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOverload.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOverload.cxx ---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOverload.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOverload.cxx 2020-03-15 19:43:20.950684656 +0100 -@@ -889,7 +889,8 @@ +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 @@ -338,7 +104,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOv 0, // tp_getattr 0, // tp_setattr 0, // tp_compare -@@ -938,6 +939,12 @@ +@@ -915,6 +916,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif @@ -351,10 +117,10 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOv }; } // namespace CPyCppyy -diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPScope.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPScope.cxx ---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPScope.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPScope.cxx 2020-03-15 19:43:20.950684656 +0100 -@@ -596,7 +596,8 @@ +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 @@ -364,7 +130,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPSc 0, // tp_getattr 0, // tp_setattr 0, // tp_compare -@@ -649,6 +650,12 @@ +@@ -669,6 +670,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif @@ -377,10 +143,11 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPSc }; } // namespace CPyCppyy -diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCppyyModule.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCppyyModule.cxx ---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCppyyModule.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCppyyModule.cxx 2020-03-15 19:43:20.951684646 +0100 -@@ -140,6 +140,12 @@ +Endast i root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src: CPPScope.cxx.orig +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 @@ -393,10 +160,10 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCp }; namespace { -diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CustomPyTypes.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CustomPyTypes.cxx ---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CustomPyTypes.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CustomPyTypes.cxx 2020-03-15 19:43:20.951684646 +0100 -@@ -33,6 +33,12 @@ +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 @@ -409,7 +176,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Custo }; //= long type allowed for reference passing ================================== -@@ -59,6 +65,12 @@ +@@ -60,6 +66,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif @@ -422,7 +189,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Custo }; //- custom type representing typedef to pointer of class --------------------- -@@ -89,6 +101,12 @@ +@@ -90,6 +102,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif @@ -435,7 +202,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Custo }; //= instancemethod object with a more efficient call function ================ -@@ -254,6 +272,12 @@ +@@ -255,6 +273,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif @@ -448,7 +215,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Custo }; -@@ -304,6 +328,12 @@ +@@ -305,6 +329,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif @@ -461,7 +228,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Custo }; -@@ -355,6 +385,12 @@ +@@ -364,6 +394,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif @@ -474,9 +241,9 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Custo }; } // namespace CPyCppyy -diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLevelViews.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLevelViews.cxx ---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLevelViews.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLevelViews.cxx 2020-03-15 19:43:20.951684646 +0100 +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 @@ -500,10 +267,10 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLe }; } // namespace CPyCppyy -diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TemplateProxy.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TemplateProxy.cxx ---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TemplateProxy.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TemplateProxy.cxx 2020-03-15 19:43:20.952684635 +0100 -@@ -709,7 +709,8 @@ +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 @@ -513,7 +280,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Templ 0, // tp_getattr 0, // tp_setattr 0, // tp_compare -@@ -758,6 +759,12 @@ +@@ -779,6 +780,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif @@ -526,9 +293,9 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Templ }; } // namespace CPyCppyy -diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TupleOfInstances.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TupleOfInstances.cxx ---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TupleOfInstances.cxx 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TupleOfInstances.cxx 2020-03-15 19:43:20.952684635 +0100 +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 diff --git a/root-setcachefiledir.patch b/root-setcachefiledir.patch new file mode 100644 index 0000000..f73615e --- /dev/null +++ b/root-setcachefiledir.patch @@ -0,0 +1,30 @@ +From 0bf4cdfee3f2189f4d43f7cde9ba114ce682cac5 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Mon, 29 Jun 2020 12:08:15 +0200 +Subject: [PATCH] Add missing call to TFile::SetCacheFileDir(".") + +Without it the following TFile::Open call using the CACHEREAD option +will as work as intrnded: +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-stressGraphics.patch b/root-stressGraphics.patch new file mode 100644 index 0000000..c7ac170 --- /dev/null +++ b/root-stressGraphics.patch @@ -0,0 +1,34 @@ +From 141dc7359fa890b081802532b97c25eeb5be5ee1 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Mon, 29 Jun 2020 12:53:07 +0200 +Subject: [PATCH] Adjust stressGraphics.ref + +--- + test/stressGraphics.ref | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/test/stressGraphics.ref b/test/stressGraphics.ref +index 38474d0549..2aecf462e8 100644 +--- a/test/stressGraphics.ref ++++ b/test/stressGraphics.ref +@@ -3,7 +3,7 @@ Test# PS1Ref# PS1Err# PDFRef# PDFErr# GIFRef# GIFErr# JPGRef# JP + 2 4627 600 14506 100 7608 1500 13368 7900 9208 3000 4690 600 + 3 452 50 12632 50 4797 350 11232 4200 3796 10700 492 50 + 4 23617 1500 19386 100 43077 12000 143320 123000 45665 11000 24908 1500 +- 5 1025 150 12802 150 19715 2900 33468 9900 30846 5000 1072 200 ++ 5 1025 150 12802 200 19715 2900 33468 9900 30846 5000 1072 200 + 6 430 50 12669 50 4041 400 9558 100 5325 700 471 50 + 7 4980 50 13893 50 8215 310 16143 1300 12230 500 5011 70 + 8 5442 80 13473 50 9599 150 18430 700 12398 300 5469 80 +@@ -41,7 +41,7 @@ Test# PS1Ref# PS1Err# PDFRef# PDFErr# GIFRef# GIFErr# JPGRef# JP + 40 38312 200 56877 250 47205 3900 36524 11800 119641 8000 38121 200 + 41 15025 3000 29289 500 34091 1500 42525 11300 33336 3900 14787 4000 + 42 254604 5000 383258 7000 34608 5000 55666 30400 46534 6500 259594 7000 +- 43 4846 150 14075 100 24281 200 33239 600 25303 300 4877 150 ++ 43 4846 150 14075 150 24281 200 33239 600 25303 300 4877 150 + 44 1435879 150000 12837 100 96029 4000 25972 100 359846 15000 1085792 250000 + 45 5884 500 16577 200 30259 3500 40706 14000 30026 4000 0 0 + 46 5723 700 15720 200 14291 2600 32236 11000 16916 3200 5670 800 +-- +2.26.2 + diff --git a/root-testfiles.sh b/root-testfiles.sh index c16a23e..db4d721 100755 --- a/root-testfiles.sh +++ b/root-testfiles.sh @@ -74,9 +74,11 @@ wget -N ${SITE}/wa91.root wget -N ${SITE}/AtlasGraphs.root wget -N ${SITE}/europe.root +wget -N ${SITE}/Higgs_data.root wget -N ${SITE}/linearIO.root wget -N ${SITE}/stressHistogram.5.18.00.root wget -N ${SITE}/tmva_class_example.root +wget -N ${SITE}/tmva_multiclass_example.root wget -N ${SITE}/tmva_reg_example.root wget -N ${SITE}/usa.root diff --git a/root-unbundle-gtest.patch b/root-unbundle-gtest.patch index 44939ca..6821f22 100644 --- a/root-unbundle-gtest.patch +++ b/root-unbundle-gtest.patch @@ -1,7 +1,7 @@ -diff -ur root-6.20.02.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.20.02/cmake/modules/SearchInstalledSoftware.cmake ---- root-6.20.02.orig/cmake/modules/SearchInstalledSoftware.cmake 2020-03-15 16:21:25.000000000 +0100 -+++ root-6.20.02/cmake/modules/SearchInstalledSoftware.cmake 2020-03-15 20:12:34.446078193 +0100 -@@ -1528,83 +1528,18 @@ +diff -ur root-6.22.00.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.22.00/cmake/modules/SearchInstalledSoftware.cmake +--- root-6.22.00.orig/cmake/modules/SearchInstalledSoftware.cmake 2020-06-14 17:51:48.000000000 +0200 ++++ root-6.22.00/cmake/modules/SearchInstalledSoftware.cmake 2020-06-21 18:29:13.973655810 +0200 +@@ -1592,100 +1592,17 @@ #---Download googletest-------------------------------------------------------------- if (testing) @@ -13,20 +13,22 @@ diff -ur root-6.20.02.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.20 + set(_G_LIBRARY_PATH ${CMAKE_SOURCE_DIR}/googlemock) - set(_gtest_byproduct_binary_dir -- ${CMAKE_CURRENT_BINARY_DIR}/googletest-prefix/src/googletest-build/googlemock/) +- ${CMAKE_CURRENT_BINARY_DIR}/googletest-prefix/src/googletest-build) - set(_gtest_byproducts -- ${_gtest_byproduct_binary_dir}/gtest/libgtest.a -- ${_gtest_byproduct_binary_dir}/gtest/libgtest_main.a -- ${_gtest_byproduct_binary_dir}/libgmock.a -- ${_gtest_byproduct_binary_dir}/libgmock_main.a +- ${_gtest_byproduct_binary_dir}/lib/libgtest.a +- ${_gtest_byproduct_binary_dir}/lib/libgtest_main.a +- ${_gtest_byproduct_binary_dir}/lib/libgmock.a +- ${_gtest_byproduct_binary_dir}/lib/libgmock_main.a - ) - - if(MSVC) - set(EXTRA_GTEST_OPTS -- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=\\\"\\\" -- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_MINSIZEREL:PATH=\\\"\\\" -- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=\\\"\\\" -- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO:PATH=\\\"\\\") +- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=${_gtest_byproduct_binary_dir}/lib/ +- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_MINSIZEREL:PATH=${_gtest_byproduct_binary_dir}/lib/ +- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=${_gtest_byproduct_binary_dir}/lib/ +- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO:PATH=${_gtest_byproduct_binary_dir}/lib/ +- -Dgtest_force_shared_crt=ON +- BUILD_COMMAND ${CMAKE_COMMAND} --build --config Release) - endif() - if(APPLE) - set(EXTRA_GTEST_OPTS @@ -37,7 +39,7 @@ diff -ur root-6.20.02.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.20 - googletest - GIT_REPOSITORY https://github.com/google/googletest.git - GIT_SHALLOW 1 -- GIT_TAG release-1.8.0 +- GIT_TAG release-1.10.0 - UPDATE_COMMAND "" - # TIMEOUT 10 - # # Force separate output paths for debug and release builds to allow easy @@ -46,11 +48,11 @@ diff -ur root-6.20.02.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.20 - # -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=ReleaseLibs - # -Dgtest_force_shared_crt=ON - CMAKE_ARGS -G ${CMAKE_GENERATOR} -- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} +- -DCMAKE_BUILD_TYPE=Release - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} - -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -- -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} +- -DCMAKE_CXX_FLAGS=${ROOT_EXTERNAL_CXX_FLAGS} - -DCMAKE_AR=${CMAKE_AR} - -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} - ${EXTRA_GTEST_OPTS} @@ -66,24 +68,38 @@ diff -ur root-6.20.02.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.20 - ExternalProject_Get_Property(googletest source_dir) - set(GTEST_INCLUDE_DIR ${source_dir}/googletest/include) - set(GMOCK_INCLUDE_DIR ${source_dir}/googlemock/include) +- # Create the directories. Prevents bug https://gitlab.kitware.com/cmake/cmake/issues/15052 +- file(MAKE_DIRECTORY ${GTEST_INCLUDE_DIR} ${GMOCK_INCLUDE_DIR}) - - # Libraries - ExternalProject_Get_Property(googletest binary_dir) -- set(_G_LIBRARY_PATH ${binary_dir}/googlemock/) +- set(_G_LIBRARY_PATH ${binary_dir}/lib/) - -- # Register gtest, gtest_main, gmock, gmock_main -- foreach (lib gtest gtest_main gmock gmock_main) -+ # Register gmock, gmock_main -+ foreach (lib gmock gmock_main) +- # Use gmock_main instead of gtest_main because it initializes gtest as well. +- # Note: The libraries are listed in reverse order of their dependancies. +- foreach(lib gtest gtest_main gmock gmock_main) ++ foreach(lib gmock gmock_main) add_library(${lib} IMPORTED STATIC GLOBAL) +- set_target_properties(${lib} PROPERTIES +- IMPORTED_LOCATION "${_G_LIBRARY_PATH}${CMAKE_STATIC_LIBRARY_PREFIX}${lib}${CMAKE_STATIC_LIBRARY_SUFFIX}" +- INTERFACE_INCLUDE_DIRECTORIES "${GTEST_INCLUDE_DIRS}" +- ) - add_dependencies(${lib} googletest) - if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND - ${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER_EQUAL 9) - target_compile_options(${lib} INTERFACE -Wno-deprecated-copy) - endif() endforeach() -- set_property(TARGET gtest PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/gtest/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX}) -- set_property(TARGET gtest_main PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/gtest/${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX}) +- # Once we require at least cmake 3.11, target_include_directories will work for imported targets +- # Because of https://gitlab.kitware.com/cmake/cmake/-/merge_requests/1264 +- # We need this workaround: +- SET_PROPERTY(TARGET gtest APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${GTEST_INCLUDE_DIR}) +- SET_PROPERTY(TARGET gmock APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${GMOCK_INCLUDE_DIR}) +- #target_include_directories(gtest INTERFACE ${GTEST_INCLUDE_DIR}) +- #target_include_directories(gmock INTERFACE ${GMOCK_INCLUDE_DIR}) +- +- set_property(TARGET gtest PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX}) +- set_property(TARGET gtest_main PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX}) set_property(TARGET gmock PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gmock${CMAKE_STATIC_LIBRARY_SUFFIX}) set_property(TARGET gmock_main PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gmock_main${CMAKE_STATIC_LIBRARY_SUFFIX}) diff --git a/root-v7-line.patch b/root-v7-line.patch deleted file mode 100644 index 29eed7e..0000000 --- a/root-v7-line.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -ur root-6.16.00.orig/tutorials/v7/line.cxx root-6.16.00/tutorials/v7/line.cxx ---- root-6.16.00.orig/tutorials/v7/line.cxx 2019-01-23 09:23:37.000000000 +0100 -+++ root-6.16.00/tutorials/v7/line.cxx 2019-05-17 11:02:14.378664352 +0200 -@@ -6,7 +6,6 @@ - /// "normal" coordinates' system and changing the line color linearly from black - /// to red. - /// --/// \macro_image (line.png) - /// \macro_code - /// - /// \date 2018-03-18 diff --git a/root-werror-fix.patch b/root-werror-fix.patch new file mode 100644 index 0000000..341cca9 --- /dev/null +++ b/root-werror-fix.patch @@ -0,0 +1,57 @@ +From a5185f2cdf509314970c1b332c5926283f6962e2 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Mon, 22 Jun 2020 09:21:23 +0200 +Subject: [PATCH] Fix too aggressive -Werror replacements + +The replacements removes the -Werror option for externals, which is +intended. However, it also replaces e.g. -Werror=format-security with +=format-security, which results in compilation failures due to the +unknown option =format-security. +--- + builtins/davix/CMakeLists.txt | 2 +- + cmake/modules/SearchInstalledSoftware.cmake | 2 +- + interpreter/CMakeLists.txt | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/builtins/davix/CMakeLists.txt b/builtins/davix/CMakeLists.txt +index 52614ae2e0..c9b291ec45 100644 +--- a/builtins/davix/CMakeLists.txt ++++ b/builtins/davix/CMakeLists.txt +@@ -21,7 +21,7 @@ foreach(lib davix neon) + list(APPEND DAVIX_LIBRARIES ${DAVIX_PREFIX}/lib/${libname}) + endforeach() + +-string(REPLACE "-Werror" "" DAVIX_CXX_FLAGS ${CMAKE_CXX_FLAGS}) ++string(REPLACE "-Werror " "" DAVIX_CXX_FLAGS "${CMAKE_CXX_FLAGS} ") + + ExternalProject_Add(DAVIX + URL ${DAVIX_URL}/davix-${DAVIX_VERSION}.tar.gz +diff --git a/cmake/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake +index ad63f08cd0..36aa88d8cf 100644 +--- a/cmake/modules/SearchInstalledSoftware.cmake ++++ b/cmake/modules/SearchInstalledSoftware.cmake +@@ -9,7 +9,7 @@ include(ExternalProject) + include(FindPackageHandleStandardArgs) + + set(lcgpackages http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources) +-string(REPLACE "-Werror" "" ROOT_EXTERNAL_CXX_FLAGS ${CMAKE_CXX_FLAGS}) ++string(REPLACE "-Werror " "" ROOT_EXTERNAL_CXX_FLAGS "${CMAKE_CXX_FLAGS} ") + + macro(find_package) + if(NOT "${ARGV0}" IN_LIST ROOT_BUILTINS) +diff --git a/interpreter/CMakeLists.txt b/interpreter/CMakeLists.txt +index 0f43893443..1274758410 100644 +--- a/interpreter/CMakeLists.txt ++++ b/interpreter/CMakeLists.txt +@@ -140,7 +140,7 @@ if(gcctoolchain) + endif() + + # We will not fix llvm or clang. +-string(REPLACE "-Werror" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) ++string(REPLACE "-Werror " "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ") + + if(LLVM_SHARED_LINKER_FLAGS) + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${LLVM_SHARED_LINKER_FLAGS}") +-- +2.26.2 + diff --git a/root-xmlmodify-dep.patch b/root-xmlmodify-dep.patch deleted file mode 100644 index 02a0498..0000000 --- a/root-xmlmodify-dep.patch +++ /dev/null @@ -1,25 +0,0 @@ -From a651fb9278438d5ad7e4ddbf6082a791e1187e0d Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Fri, 13 Mar 2020 12:58:14 +0100 -Subject: [PATCH] The test that creates the file must run before the test that - modifies it - ---- - tutorials/CMakeLists.txt | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt -index f920da54ee..b1abd03d36 100644 ---- a/tutorials/CMakeLists.txt -+++ b/tutorials/CMakeLists.txt -@@ -375,6 +375,7 @@ set(unfold-testUnfold5b-depends tutorial-unfold-testUnfold5a) - set(unfold-testUnfold7d-depends tutorial-unfold-testUnfold7c) - set(unfold-testUnfold7c-depends tutorial-unfold-testUnfold7b) - set(unfold-testUnfold7b-depends tutorial-unfold-testUnfold7a) -+set(xml-xmlmodifyfile-depends tutorial-xml-xmlnewfile) - set(xml-xmlreadfile-depends tutorial-xml-xmlnewfile) - set(roofit-rf503_wspaceread-depends tutorial-roofit-rf502_wspacewrite) - set(histfactory-example-depends tutorial-roostats-CreateExampleFile) --- -2.24.1 - diff --git a/root-xrootd5-compat.patch b/root-xrootd5-compat.patch new file mode 100644 index 0000000..5a7ecda --- /dev/null +++ b/root-xrootd5-compat.patch @@ -0,0 +1,109 @@ +From c81fab4b81b4767abdca612f33604b252fc665b7 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Tue, 14 Jul 2020 08:10:00 +0200 +Subject: [PATCH] Compatibility with xrootd 5. + +The old client library libXrdClient is removed. +Also XrdSysDNS is removed. + +Do not build the legacy XProofD file server and client (already +disabled by default - give error if someone enables it while building +with xrootd 5). + +Do not build the old libNetx. + +Build the new libNetNG without XrdSysDNS, use XrdNetAddr instead. +--- + cmake/modules/SearchInstalledSoftware.cmake | 15 +++++++++++++++ + net/CMakeLists.txt | 2 +- + net/netxng/src/TNetXNGSystem.cxx | 18 +++++++++++++++++- + 3 files changed, 33 insertions(+), 2 deletions(-) + +diff --git a/cmake/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake +index 12f9d65371..3578303c5d 100644 +--- a/cmake/modules/SearchInstalledSoftware.cmake ++++ b/cmake/modules/SearchInstalledSoftware.cmake +@@ -925,6 +925,21 @@ if(xrootd AND XROOTD_VERSIONNUM VERSION_GREATER 300030005) + else() + set(netxng OFF) + endif() ++if(xrootd AND XROOTD_VERSIONNUM VERSION_LESS 500000000) ++ set(netx ON) ++else() ++ set(netx OFF) ++endif() ++if(xrootd AND XROOTD_VERSIONNUM VERSION_GREATER_EQUAL 500000000) ++ if(xproofd) ++ if(fail-on-missing) ++ message(FATAL_ERROR "XROOTD is version 5 or greater. The legacy xproofd servers can not be built with this version. Use -Dxproofd:BOOL=OFF to disable.") ++ else() ++ message(STATUS "XROOTD is version 5 or greater. The legacy xproofd servers can not be built with this version. Disbaling xproofd' option.") ++ set(xproofd OFF CACHE BOOL "Disabled because xrootd version is 5 or greater" FORCE) ++ endif() ++ endif() ++endif() + + #---Alien support---------------------------------------------------------------- + if(alien) +diff --git a/net/CMakeLists.txt b/net/CMakeLists.txt +index 953d9c5d6f..676eb63672 100644 +--- a/net/CMakeLists.txt ++++ b/net/CMakeLists.txt +@@ -11,7 +11,7 @@ if(NOT WIN32 AND ssl) + add_subdirectory(rpdutils) + endif() + +-if(xrootd) ++if(netx) + add_subdirectory(netx) + endif() + +diff --git a/net/netxng/src/TNetXNGSystem.cxx b/net/netxng/src/TNetXNGSystem.cxx +index 6599aa2c2f..d30a12554f 100644 +--- a/net/netxng/src/TNetXNGSystem.cxx ++++ b/net/netxng/src/TNetXNGSystem.cxx +@@ -27,7 +27,12 @@ + #include "TVirtualMutex.h" + #include + #include ++#include ++#if XrdVNUMBER >= 40000 ++#include ++#else + #include ++#endif + + + //////////////////////////////////////////////////////////////////////////////// +@@ -352,6 +357,16 @@ Int_t TNetXNGSystem::Locate(const char *path, TString &endurl) + TNamed *hn = 0; + if (fgAddrFQDN.GetSize() <= 0 || + !(hn = dynamic_cast(fgAddrFQDN.FindObject(loc)))) { ++#if XrdVNUMBER >= 40000 ++ XrdNetAddr netaddr; ++ netaddr.Set(loc.Data()); ++ const char* name = netaddr.Name(); ++ if (name) { ++ hn = new TNamed(loc.Data(), name); ++ } else { ++ hn = new TNamed(loc, loc); ++ } ++#else + char *addr[1] = {0}, *name[1] = {0}; + int naddr = XrdSysDNS::getAddrName(loc.Data(), 1, addr, name); + if (naddr == 1) { +@@ -359,9 +374,10 @@ Int_t TNetXNGSystem::Locate(const char *path, TString &endurl) + } else { + hn = new TNamed(loc, loc); + } +- fgAddrFQDN.Add(hn); + free(addr[0]); + free(name[0]); ++#endif ++ fgAddrFQDN.Add(hn); + if (gDebug > 0) + Info("Locate","caching host name: %s", hn->GetTitle()); + } +-- +2.26.2 + diff --git a/root.spec b/root.spec index 2929aa2..57d53a7 100644 --- a/root.spec +++ b/root.spec @@ -1,19 +1,8 @@ -%if %{?fedora}%{!?fedora:0} >= 29 || %{?rhel}%{!?rhel:0} >= 8 -# Use Python 3 as the default python for Fedora >= 29 -# - Give python3 libPyROOT higher priority than python2 libPyROOT -# - The python scripts in root-cli use python3-root -# - Let root-tmva-python use python3-numpy -# - Don't build python2-jupyroot/jsmva packages -# - Use Python 3 during testing and documentation build -%global py3default 1 -%global py2prio 10 -%global py3prio 20 -%global __pythondef %{__python3} +%if %{?fedora}%{!?fedora:0} >= 32 || %{?rhel}%{!?rhel:0} >= 9 +%undefine __cmake_in_source_build +%global oldcmakemacro 0 %else -%global py3default 0 -%global py2prio 20 -%global py3prio 10 -%global __pythondef %{__python2} +%global oldcmakemacro 1 %endif %if %{?fedora}%{!?fedora:0} >= 31 || %{?rhel}%{!?rhel:0} >= 8 @@ -23,8 +12,12 @@ %global buildpy2 1 %endif +%if %{buildpy2} +%global python2_version_uscore %(tr . _ <<< "%{python2_version}") +%endif +%global python3_version_uscore %(tr . _ <<< "%{python3_version}") + %global py3_soabi %([ -x %{__python3} ] && %{__python3} -c "from distutils import sysconfig; print(sysconfig.get_config_vars().get('SOABI'))") -%global py3_other_soabi %([ -x %{__python3_other} ] && %{__python3_other} -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. @@ -44,14 +37,13 @@ # Do not create .orig files when patching source %global _default_patch_flags --no-backup-if-mismatch -# Do not generate autoprovides for libJupyROOT.so -# Note: the ones from libPyROOT.so we do want though -%global __provides_exclude_from ^(%{?python2_sitearch:%{python2_sitearch}|}%{python3_sitearch}%{?python3_other_sitearch:|%{python3_other_sitearch}})/libJupyROOT\\.so$ +# Do not generate autoprovides for Python modules +%global __provides_exclude_from ^(%{?python2_sitearch:%{python2_sitearch}|}%{python3_sitearch})/lib.*\\.so$ Name: root -Version: 6.20.06 +Version: 6.22.00 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework License: LGPLv2+ @@ -101,37 +93,56 @@ Patch9: %{name}-dont-install-minicern.patch Patch10: %{name}-clang-ignore-gcc-options.patch # Don't create documentation notebooks Patch11: %{name}-doc-no-notebooks.patch -# Don't run tutorial requiring firefox during doc generation -Patch12: %{name}-v7-line.patch -# Fix ppc64le build with gcc 10 -# https://github.com/root-project/root/pull/5157 -Patch13: %{name}-clang-altivec-vector.patch +# Don't run tutorials that crash during doc generation +Patch12: %{name}-doxygen-crash.patch +# Compatibility with older gtest +Patch13: %{name}-old-gtest-compat.patch # Fix -Wmissing-field-initializers in python bindings for # Python 3.8 and 3.9 # https://github.com/root-project/root/pull/5158 Patch14: %{name}-python3.8-object.patch -# Correct broken assert statements -# https://github.com/root-project/root/pull/5159 -Patch15: %{name}-FitData-assert-fix.patch -# The test that creates the file must run before the test that -# modifies it -# https://github.com/root-project/root/pull/5160 -Patch16: %{name}-xmlmodify-dep.patch -# Size types should use %z -# https://github.com/root-project/root/pull/5161 -Patch17: %{name}-format-fix.patch # Run some test on 32 bit that upstream has disabled -Patch18: %{name}-32bit-tests.patch -# The file was moved - update path -# https://github.com/root-project/root/pull/5162 -Patch19: %{name}-moved-file.patch +Patch15: %{name}-32bit-tests.patch # Workaround for initialization problems for PyROOT on # EPEL7 ppc64le # https://sft.its.cern.ch/jira/browse/ROOT-10622 -Patch20: %{name}-epel7-ppc64le-pyroot.patch +Patch16: %{name}-epel7-ppc64le-pyroot.patch # Fix test failure on ppc64le and aarch64 # https://github.com/root-project/root/pull/5867 -Patch21: %{name}-roostats-test-ppc64le-aarch64.patch +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 +# Compatibility with python 2.7 versions before 2.7.9 +# https://github.com/root-project/root/pull/5960 +Patch22: %{name}-python2-compat.patch +# Fix the RNTuple.LargeFile test on 32bit (i386 and armv7hf) +# https://github.com/root-project/root/pull/5977 +Patch23: %{name}-ntuple-largefile.patch +# Fix doxygen issues +# https://github.com/root-project/root/pull/6029 +Patch24: %{name}-doxygen-filenames.patch +Patch25: %{name}-doxygen-endof-part1.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 +# Compatibility with xrootd 5 +# https://github.com/root-project/root/pull/6031 +Patch32: %{name}-xrootd5-compat.patch # s390x suffers from endian issues resulting in failing tests # and broken documentation generation @@ -185,9 +196,6 @@ BuildRequires: postgresql-devel BuildRequires: python2-devel %endif BuildRequires: python%{python3_pkgversion}-devel -%if %{?rhel}%{!?rhel:0} == 7 -BuildRequires: python%{python3_other_pkgversion}-devel -%endif %if %{root7} %ifarch %{qt5_qtwebengine_arches} BuildRequires: qt5-qtbase-devel @@ -218,11 +226,7 @@ BuildRequires: graphviz-devel BuildRequires: expat-devel BuildRequires: pythia8-devel >= 8.1.80 BuildRequires: blas-devel -%if %{py3default} BuildRequires: python%{python3_pkgversion}-numpy -%else -BuildRequires: python2-numpy -%endif BuildRequires: doxygen BuildRequires: graphviz BuildRequires: yuicompressor @@ -372,12 +376,15 @@ Obsoletes: %{name}-net-krb5 < 6.18.00 Obsoletes: %{name}-table < 6.18.00 %if ! %{buildpy2} Obsoletes: python2-%{name} < %{version}-%{release} -%endif -%if %{py3default} Obsoletes: python2-jupyroot < %{version}-%{release} Obsoletes: python2-jsmva < %{version}-%{release} Obsoletes: %{name}-rootaas < 6.08.00 %endif +%if %{?rhel}%{!?rhel:0} == 7 +Obsoletes: python%{python3_other_pkgversion}-%{name} < 6.22.00 +Obsoletes: python%{python3_other_pkgversion}-jupyroot < 6.22.00 +Obsoletes: python%{python3_other_pkgversion}-jsmva < 6.22.00 +%endif %description core This package contains the core libraries used by ROOT: libCore, libNew, @@ -415,6 +422,17 @@ Obsoletes: %{name}-reflex < 6.00.00 Cling is an interactive C++ interpreter, built on top of Clang and LLVM compiler infrastructure. +%package tpython +Summary: ROOT's TPython interface +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: python%{python3_pkgversion}-%{name}%{?_isa} = %{version}-%{release} +# Package split (tpython from Python bindings) +Obsoletes: python%{python3_pkgversion}-%{name} < 6.22.00 + +%description tpython +This package contains ROOT's TPython interface. It makes it possible +to call Python from ROOT. + %if %{buildpy2} %package -n python2-%{name} Summary: Python extension for ROOT @@ -426,11 +444,9 @@ Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} %description -n python2-%{name} -This package contains the Python extension for ROOT. This package -provide a Python interface to ROOT, and a ROOT interface to Python. -%endif +This package contains the Python extension for ROOT. It makes it +possible to use ROOT classes in Python. -%if ! %{py3default} %package -n python2-jupyroot Summary: ROOT Jupyter kernel %{?python_provide:%python_provide python2-jupyroot} @@ -470,10 +486,12 @@ Obsoletes: %{name}-python%{python3_pkgversion} < 6.08.00 Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} +# Package split (tpython from Python bindings) +Obsoletes: python%{python3_pkgversion}-%{name} < 6.22.00 %description -n python%{python3_pkgversion}-%{name} -This package contains the Python extension for ROOT. This package -provide a Python interface to ROOT, and a ROOT interface to Python. +This package contains the Python extension for ROOT. It makes it +possible to use ROOT classes in Python. %package -n python%{python3_pkgversion}-jupyroot Summary: ROOT Jupyter kernel @@ -504,44 +522,12 @@ Requires: %{name}-tmva = %{version}-%{release} %description -n python%{python3_pkgversion}-jsmva TMVA interface used by JupyROOT. -%if %{?rhel}%{!?rhel:0} == 7 -%package -n python%{python3_other_pkgversion}-%{name} -Summary: Python extension for ROOT -%{?python_provide:%python_provide python%{?python3_other_pkgversion}-%{name}} -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} - -%description -n python%{python3_other_pkgversion}-%{name} -This package contains the Python extension for ROOT. This package -provide a Python interface to ROOT, and a ROOT interface to Python. - -%package -n python%{python3_other_pkgversion}-jupyroot -Summary: ROOT Jupyter kernel -%{?python_provide:%python_provide python%{?python3_other_pkgversion}-jupyroot} -Requires: python%{python3_other_pkgversion}-%{name}%{?_isa} = %{version}-%{release} -Requires: python%{python3_other_pkgversion}-jsmva = %{version}-%{release} -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-notebook = %{version}-%{release} -# python-metakernel not available - some functionality missing - -%description -n python%{python3_other_pkgversion}-jupyroot -The Jupyter kernel for the ROOT notebook. - -%package -n python%{python3_other_pkgversion}-jsmva -Summary: TMVA interface used by JupyROOT -BuildArch: noarch -%{?python_provide:%python_provide python%{?python3_other_pkgversion}-jsmva} -Requires: %{name}-tmva = %{version}-%{release} - -%description -n python%{python3_other_pkgversion}-jsmva -TMVA interface used by JupyROOT. -%endif - %package r Summary: R interface for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-matrix%{?_isa} = %{version}-%{release} +Requires: R-Rcpp-devel +Requires: R-RInside-devel %description r ROOT R is an interface in ROOT to call R functions using an R C++ @@ -794,6 +780,7 @@ Requires: %{name}-gui%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} +Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} %description gui-fitpanel This package contains a library to show a pop-up dialog when fitting @@ -1560,11 +1547,7 @@ Summary: Toolkit for multivariate data analysis (Python) License: BSD Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-tmva%{?_isa} = %{version}-%{release} -%if %{py3default} Requires: python%{python3_pkgversion}-numpy -%else -Requires: python2-numpy -%endif %description tmva-python Python integration with TMVA. @@ -1670,11 +1653,7 @@ An algorithm to unfold distributions from detector to truth level. %package cli Summary: ROOT command line utilities BuildArch: noarch -%if %{py3default} Requires: python%{python3_pkgversion}-%{name} = %{version}-%{release} -%else -Requires: python2-%{name} = %{version}-%{release} -%endif %description cli The ROOT command line utilities is a set of scripts for common tasks @@ -1728,16 +1707,26 @@ Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} %description graf3d-eve7 This package contains a library for defining event displays in ROOT 7. +%package gui-browsable +Summary: GUI browsable (ROOT 7) +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpadv7%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} + +%description gui-browsable +This package contains GUI browsable components for ROOT 7. + %package gui-browserv7 Summary: Browser (ROOT 7) Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpadv7%{?_isa} = %{version}-%{release} +Requires: %{name}-gui-browsable%{?_isa} = %{version}-%{release} Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} Requires: %{name}-gui-webgui6%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} %description gui-browserv7 This package contains a file browser for ROOT 7. @@ -1847,6 +1836,17 @@ This package contains an ntuple extension for ROOT 7. %patch19 -p1 %patch20 -p1 %patch21 -p1 +%patch22 -p1 +%patch23 -p1 +%patch24 -p1 +%patch25 -p1 +%patch26 -p1 +%patch27 -p1 +%patch28 -p1 +%patch29 -p1 +%patch30 -p1 +%patch31 -p1 +%patch32 -p1 # Remove bundled sources in order to be sure they are not used # * afterimage @@ -1855,9 +1855,7 @@ rm -rf graf2d/asimage/src/libAfterImage rm -rf graf3d/ftgl/src graf3d/ftgl/inc # * freetype rm -rf graf2d/freetype/src -# * glew -rm -rf graf3d/glew/src graf3d/glew/inc graf3d/glew/isystem -# * davix, lz4, openssl, pcre, xxhash, zlib, zstd +# * davix, glew, lz4, openssl, pcre, xxhash, zlib, zstd rm -rf builtins # * lzma rm -rf core/lzma/src/*.tar.gz @@ -1887,20 +1885,6 @@ 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/* -%if %{py3default} -%if %{buildpy2} -# Build PyROOT for python 2 -cp -pr bindings/pyroot bindings/python2 -%endif -%else -# Build PyROOT for python 3 -cp -pr bindings/pyroot bindings/python3 -%endif -%if %{?rhel}%{!?rhel:0} == 7 -# Build PyROOT for python 3 (other) -cp -pr bindings/pyroot bindings/python3oth -%endif - # Work around missing libraries in Fedora's gmock packaging < 1.8.0 if [ ! -r %{_libdir}/libgmock.so ] ; then mkdir googlemock @@ -1933,12 +1917,13 @@ for s in etc/notebook/JsMVA/css/*.css ; do yuicompressor ${s} -o ${s%.css}.min.css done -mkdir builddir -pushd builddir - # Avoid overlinking (this used to be the default with the old configure script) LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" +%if %{oldcmakemacro} +mkdir %{_vpath_builddir} +pushd %{_vpath_builddir} +%endif %if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8 %cmake \ %else @@ -1995,6 +1980,7 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Ddataframe:BOOL=ON \ -Ddavix:BOOL=ON \ -Ddcache:BOOL=ON \ + -Ddev:BOOL=OFF \ -Dexceptions:BOOL=ON \ -Dfcgi:BOOL=ON \ -Dfftw3:BOOL=ON \ @@ -2027,8 +2013,8 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dpgsql:BOOL=ON \ -Dpythia6:BOOL=OFF \ -Dpythia8:BOOL=ON \ - -DPYTHON_EXECUTABLE:PATH=%{__pythondef} \ -Dpyroot:BOOL=ON \ + -Dpyroot_legacy:BOOL=OFF \ %ifarch %{qt5_qtwebengine_arches} -Dqt5web:BOOL=ON \ %else @@ -2064,127 +2050,23 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dx11:BOOL=ON \ -Dxml:BOOL=ON \ -Dxrootd:BOOL=ON \ + -Dxproofd:BOOL=ON \ -Dfail-on-missing:BOOL=ON \ -Dtesting:BOOL=ON \ -Dclingtest:BOOL=OFF \ -Dcoverage:BOOL=OFF \ -Droottest:BOOL=OFF \ -Drootbench:BOOL=OFF \ + -Dasan:BOOL=OFF \ +%if %{oldcmakemacro} .. - -%if %{py3default} -%if %{buildpy2} -# Build PyROOT for python 2 (prep) -cp -pr bindings/pyroot bindings/python2 -%endif -%else -# Build PyROOT for python 3 (prep) -cp -pr bindings/pyroot bindings/python3 -%endif -%if %{?rhel}%{!?rhel:0} == 7 -# Build PyROOT for python 3 (other) (prep) -cp -pr bindings/pyroot bindings/python3oth -%endif - -make %{?_smp_mflags} - -%if %{py3default} - -%if %{buildpy2} - -# Build PyROOT for python 2 -mkdir python2 -mv CMakeFiles/Makefile2 CMakeFiles/Makefile2.save -sed 's!bindings/pyroot!bindings/python2!g' CMakeFiles/Makefile2.save \ - > CMakeFiles/Makefile2 -py2i=`pkg-config --cflags-only-I python2 | sed -e 's/-I//' -e 's/\s*$//'` -py2l=`pkg-config --libs-only-l python2 | sed -e 's/-l//' -e 's/\s*$//'` -if pkg-config --exists python3-embed ; then - py3i=`pkg-config --cflags-only-I python3-embed | sed -e 's/-I//' -e 's/\s*$//'` - py3l=`pkg-config --libs-only-l python3-embed | sed -e 's/-l//' -e 's/\s*$//'` -else - py3i=`pkg-config --cflags-only-I python3 | sed -e 's/-I//' -e 's/\s*$//'` - py3l=`pkg-config --libs-only-l python3 | sed -e 's/-l//' -e 's/\s*$//'` -fi -sed -e "s,${py3i},${py2i},g" -e "s,-l${py3l},-l${py2l},g" \ - -e "s,lib${py3l},lib${py2l},g" \ - -e 's,%{__python}%{python3_version},%{__python2},g' \ - -e 's,%{__python3},%{__python2},g' \ - -e 's,lib/libPyROOT,python2/libPyROOT,g' \ - -e 's,lib/libJupyROOT,python2/libJupyROOT,g' \ - -e 's!bindings/pyroot!bindings/python2!g' \ - -i `find bindings/python2 -type f` -make %{?_smp_mflags} -f bindings/python2/Makefile PyROOT JupyROOT -mv CMakeFiles/Makefile2.save CMakeFiles/Makefile2 - -%endif - -%else - -# Build PyROOT for python 3 -mkdir python3 -mv CMakeFiles/Makefile2 CMakeFiles/Makefile2.save -sed 's!bindings/pyroot!bindings/python3!g' CMakeFiles/Makefile2.save \ - > CMakeFiles/Makefile2 -py2i=`pkg-config --cflags-only-I python2 | sed -e 's/-I//' -e 's/\s*$//'` -py2l=`pkg-config --libs-only-l python2 | sed -e 's/-l//' -e 's/\s*$//'` -if pkg-config --exists python3-embed ; then - py3i=`pkg-config --cflags-only-I python3-embed | sed -e 's/-I//' -e 's/\s*$//'` - py3l=`pkg-config --libs-only-l python3-embed | sed -e 's/-l//' -e 's/\s*$//'` -else - py3i=`pkg-config --cflags-only-I python3 | sed -e 's/-I//' -e 's/\s*$//'` - py3l=`pkg-config --libs-only-l python3 | sed -e 's/-l//' -e 's/\s*$//'` -fi -sed -e "s,${py2i},${py3i},g" -e "s,-l${py2l},-l${py3l},g" \ - -e "s,%{_libdir}/python%{python2_version}/config/lib${py2l}.so,%{_libdir}/lib${py3l}.so,g" \ - -e "s,lib${py2l},lib${py3l},g" \ - -e 's,%{__python}%{python2_version},%{__python3},g' \ - -e 's,%{__python2},%{__python3},g' \ - -e 's,lib/libPyROOT,python3/libPyROOT,g' \ - -e 's,lib/libJupyROOT,python3/libJupyROOT,g' \ - -e 's!bindings/pyroot!bindings/python3!g' \ - -i `find bindings/python3 -type f` -make %{?_smp_mflags} -f bindings/python3/Makefile PyROOT JupyROOT -mv CMakeFiles/Makefile2.save CMakeFiles/Makefile2 - -%endif - -%if %{?rhel}%{!?rhel:0} == 7 - -# Build PyROOT for python 3 (other) -mkdir python3oth -mv CMakeFiles/Makefile2 CMakeFiles/Makefile2.save -sed 's!bindings/pyroot!bindings/python3oth!g' CMakeFiles/Makefile2.save \ - > CMakeFiles/Makefile2 -py2i=`pkg-config --cflags-only-I python2 | sed -e 's/-I//' -e 's/\s*$//'` -py2l=`pkg-config --libs-only-l python2 | sed -e 's/-l//' -e 's/\s*$//'` -if pkg-config --exists python-%{python3_other_version}-embed ; then - py3i=`pkg-config --cflags-only-I python-%{python3_other_version}-embed | sed -e 's/-I//' -e 's/\s*$//'` - py3l=`pkg-config --libs-only-l python-%{python3_other_version}-embed | sed -e 's/-l//' -e 's/\s*$//'` -else - py3i=`pkg-config --cflags-only-I python-%{python3_other_version} | sed -e 's/-I//' -e 's/\s*$//'` - py3l=`pkg-config --libs-only-l python-%{python3_other_version} | sed -e 's/-l//' -e 's/\s*$//'` -fi -sed -e "s,${py2i},${py3i},g" -e "s,-l${py2l},-l${py3l},g" \ - -e "s,%{_libdir}/python%{python2_version}/config/lib${py2l}.so,%{_libdir}/lib${py3l}.so,g" \ - -e "s,lib${py2l},lib${py3l},g" \ - -e 's,%{__python}%{python2_version},%{__python3_other},g' \ - -e 's,%{__python2},%{__python3_other},g' \ - -e 's,lib/libPyROOT,python3oth/libPyROOT,g' \ - -e 's,lib/libJupyROOT,python3oth/libJupyROOT,g' \ - -e 's!bindings/pyroot!bindings/python3oth!g' \ - -i `find bindings/python3oth -type f` -make %{?_smp_mflags} -f bindings/python3oth/Makefile PyROOT JupyROOT -mv CMakeFiles/Makefile2.save CMakeFiles/Makefile2 - -%endif - popd +%endif + +%make_build -C %{_vpath_builddir} %install -pushd builddir -make %{?_smp_mflags} install DESTDIR=%{buildroot} -popd +%make_install -C %{_vpath_builddir} # Do emacs byte compilation emacs -batch -no-site-file -f batch-byte-compile \ @@ -2210,9 +2092,7 @@ install -p -m 644 %{SOURCE7} %{buildroot}%{_pkgdocdir} mkdir -p %{buildroot}%{_datadir}/%{name}/cli mv %{buildroot}%{_libdir}/%{name}/cmdLineUtils.py* \ %{buildroot}%{_datadir}/%{name}/cli -%if %{py3default} rm %{buildroot}%{_libdir}/%{name}/__pycache__/cmdLineUtils.* -%endif sed -e '/^\#!/d' -i %{buildroot}%{_datadir}/%{name}/cli/cmdLineUtils.py # Install GDB pretty printers to auto load safe path @@ -2228,29 +2108,67 @@ install -p -m 644 build/gdbPrinters/libRooFitCore.so-gdb.py \ %if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8 # This is the default for Fedora 30+, set it for Fedora 28-29 %global _python_bytecompile_extra 0 -%py_byte_compile %{__pythondef} %{buildroot}%{_datadir}/%{name}/cli +%py_byte_compile %{__python3} %{buildroot}%{_datadir}/%{name}/cli %py_byte_compile %{__python3} %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name} %endif -%if %{py3default} +%if %{buildpy2} + +# Move the python modules to sitearch/sitelib +mkdir -p %{buildroot}%{python2_sitearch} + +cp -pr %{buildroot}%{_libdir}/%{name}/cppyy %{buildroot}%{python2_sitearch} +ln -s ../../root/libcppyy%{python3_version_uscore}.so.%{version} \ + %{buildroot}%{python2_sitearch}/libcppyy%{python2_version_uscore}.so + +cp -pr %{buildroot}%{_libdir}/%{name}/cppyy_backend %{buildroot}%{python2_sitearch} +ln -s ../../root/libcppyy_backend%{python3_version_uscore}.so.%{version} \ + %{buildroot}%{python2_sitearch}/libcppyy_backend%{python2_version_uscore}.so + +cp -pr %{buildroot}%{_libdir}/%{name}/ROOT %{buildroot}%{python2_sitearch} +mv %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python2_version_uscore}.so.%{version} \ + %{buildroot}%{python2_sitearch}/libROOTPythonizations%{python2_version_uscore}.so +rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python2_version_uscore}.so.%{libversion} +rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python2_version_uscore}.so + +cp -pr %{buildroot}%{_libdir}/%{name}/JupyROOT %{buildroot}%{python2_sitearch} +mv %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python2_version_uscore}.so.%{version} \ + %{buildroot}%{python2_sitearch}/libJupyROOT%{python2_version_uscore}.so +rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python2_version_uscore}.so.%{libversion} +rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python2_version_uscore}.so + +mkdir -p %{buildroot}%{python2_sitelib} +cp -pr %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python2_sitelib} + +# Create empty .egg-info files so that rpm auto-generates provides +touch %{buildroot}%{python2_sitearch}/ROOT-%{version}.egg-info +touch %{buildroot}%{python2_sitearch}/JupyROOT-%{version}.egg-info +touch %{buildroot}%{python2_sitelib}/JsMVA-%{version}.egg-info + +%endif # Move the python modules to sitearch/sitelib mkdir -p %{buildroot}%{python3_sitearch} -mv %{buildroot}%{_libdir}/%{name}/libPyROOT.so.%{version} \ - %{buildroot}%{python3_sitearch}/libPyROOT.%{py3_soabi}.so -mv %{buildroot}%{_libdir}/%{name}/libPyROOT.rootmap \ - %{buildroot}%{python3_sitearch}/libPyROOT.rootmap -mv %{buildroot}%{_libdir}/%{name}/libPyROOT_rdict.pcm \ - %{buildroot}%{python3_sitearch}/libPyROOT_rdict.pcm -mv %{buildroot}%{_libdir}/%{name}/libJupyROOT.so.%{version} \ - %{buildroot}%{python3_sitearch}/libJupyROOT.so -mv %{buildroot}%{_libdir}/%{name}/*.py %{buildroot}%{python3_sitearch} -mv %{buildroot}%{_libdir}/%{name}/__pycache__ %{buildroot}%{python3_sitearch} -rm %{buildroot}%{_libdir}/%{name}/JupyROOT/README.md -rm -rf %{buildroot}%{_libdir}/%{name}/JupyROOT/src + +mv %{buildroot}%{_libdir}/%{name}/cppyy %{buildroot}%{python3_sitearch} +ln -s ../../root/libcppyy%{python3_version_uscore}.so.%{version} \ + %{buildroot}%{python3_sitearch}/libcppyy%{python3_version_uscore}.%{py3_soabi}.so + +mv %{buildroot}%{_libdir}/%{name}/cppyy_backend %{buildroot}%{python3_sitearch} +ln -s ../../root/libcppyy_backend%{python3_version_uscore}.so.%{version} \ + %{buildroot}%{python3_sitearch}/libcppyy_backend%{python3_version_uscore}.so + +mv %{buildroot}%{_libdir}/%{name}/ROOT %{buildroot}%{python3_sitearch} +mv %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python3_version_uscore}.so.%{version} \ + %{buildroot}%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}.%{py3_soabi}.so +rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python3_version_uscore}.so.%{libversion} +rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python3_version_uscore}.so + mv %{buildroot}%{_libdir}/%{name}/JupyROOT %{buildroot}%{python3_sitearch} -rm %{buildroot}%{_libdir}/%{name}/libJupyROOT.so.%{libversion} -rm %{buildroot}%{_libdir}/%{name}/libJupyROOT.so +mv %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so.%{version} \ + %{buildroot}%{python3_sitearch}/libJupyROOT%{python3_version_uscore}.%{py3_soabi}.so +rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so.%{libversion} +rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so mkdir -p %{buildroot}%{python3_sitelib} mv %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python3_sitelib} @@ -2260,135 +2178,10 @@ touch %{buildroot}%{python3_sitearch}/ROOT-%{version}.egg-info touch %{buildroot}%{python3_sitearch}/JupyROOT-%{version}.egg-info touch %{buildroot}%{python3_sitelib}/JsMVA-%{version}.egg-info -%if %{buildpy2} - -tmpdir=`mktemp -d` - -%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8 -DESTDIR=$tmpdir cmake -P builddir/bindings/python2/cmake_install.cmake -%else -DESTDIR=$tmpdir cmake3 -P builddir/bindings/python2/cmake_install.cmake -%endif - -mkdir -p %{buildroot}%{python2_sitearch} -mv $tmpdir%{_libdir}/%{name}/libPyROOT.so.%{version} \ - %{buildroot}%{python2_sitearch}/libPyROOT.so -mv $tmpdir%{_libdir}/%{name}/libPyROOT.rootmap \ - %{buildroot}%{python2_sitearch}/libPyROOT.rootmap -mv $tmpdir%{_libdir}/%{name}/libPyROOT_rdict.pcm \ - %{buildroot}%{python2_sitearch}/libPyROOT_rdict.pcm -mv $tmpdir%{_libdir}/%{name}/*.py* %{buildroot}%{python2_sitearch} - -rm -rf $tmpdir - -# Create empty .egg-info files so that rpm auto-generates provides -touch %{buildroot}%{python2_sitearch}/ROOT-%{version}.egg-info - -%endif - -%else - -# Move the python modules to sitearch/sitelib -mkdir -p %{buildroot}%{python2_sitearch} -mv %{buildroot}%{_libdir}/%{name}/libPyROOT.so.%{version} \ - %{buildroot}%{python2_sitearch}/libPyROOT.so -mv %{buildroot}%{_libdir}/%{name}/libPyROOT.rootmap \ - %{buildroot}%{python2_sitearch}/libPyROOT.rootmap -mv %{buildroot}%{_libdir}/%{name}/libPyROOT_rdict.pcm \ - %{buildroot}%{python2_sitearch}/libPyROOT_rdict.pcm -mv %{buildroot}%{_libdir}/%{name}/libJupyROOT.so.%{version} \ - %{buildroot}%{python2_sitearch}/libJupyROOT.so -mv %{buildroot}%{_libdir}/%{name}/*.py* %{buildroot}%{python2_sitearch} -rm %{buildroot}%{_libdir}/%{name}/JupyROOT/README.md -rm -rf %{buildroot}%{_libdir}/%{name}/JupyROOT/src -mv %{buildroot}%{_libdir}/%{name}/JupyROOT %{buildroot}%{python2_sitearch} -rm %{buildroot}%{_libdir}/%{name}/libJupyROOT.so.%{libversion} -rm %{buildroot}%{_libdir}/%{name}/libJupyROOT.so - -mkdir -p %{buildroot}%{python2_sitelib} -mv %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python2_sitelib} - -# Create empty .egg-info files so that rpm auto-generates provides -touch %{buildroot}%{python2_sitearch}/ROOT-%{version}.egg-info -touch %{buildroot}%{python2_sitearch}/JupyROOT-%{version}.egg-info -touch %{buildroot}%{python2_sitelib}/JsMVA-%{version}.egg-info - -tmpdir=`mktemp -d` - -%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8 -DESTDIR=$tmpdir cmake -P builddir/bindings/python3/cmake_install.cmake -%else -DESTDIR=$tmpdir cmake3 -P builddir/bindings/python3/cmake_install.cmake -%endif - -mkdir -p %{buildroot}%{python3_sitearch} -mv $tmpdir%{_libdir}/%{name}/libPyROOT.so.%{version} \ - %{buildroot}%{python3_sitearch}/libPyROOT.%{py3_soabi}.so -mv $tmpdir%{_libdir}/%{name}/libPyROOT.rootmap \ - %{buildroot}%{python3_sitearch}/libPyROOT.rootmap -mv $tmpdir%{_libdir}/%{name}/libPyROOT_rdict.pcm \ - %{buildroot}%{python3_sitearch}/libPyROOT_rdict.pcm -mv $tmpdir%{_libdir}/%{name}/libJupyROOT.so.%{version} \ - %{buildroot}%{python3_sitearch}/libJupyROOT.so -mv $tmpdir%{_libdir}/%{name}/*.py %{buildroot}%{python3_sitearch} -mv $tmpdir%{_libdir}/%{name}/__pycache__ %{buildroot}%{python3_sitearch} -rm $tmpdir%{_libdir}/%{name}/JupyROOT/README.md -rm -rf $tmpdir%{_libdir}/%{name}/JupyROOT/src -mv $tmpdir%{_libdir}/%{name}/JupyROOT %{buildroot}%{python3_sitearch} -rm $tmpdir%{_libdir}/%{name}/libJupyROOT.so.%{libversion} -rm $tmpdir%{_libdir}/%{name}/libJupyROOT.so - -mkdir -p %{buildroot}%{python3_sitelib} -mv $tmpdir%{_libdir}/%{name}/JsMVA %{buildroot}%{python3_sitelib} - -rm -rf $tmpdir - -# Create empty .egg-info files so that rpm auto-generates provides -touch %{buildroot}%{python3_sitearch}/ROOT-%{version}.egg-info -touch %{buildroot}%{python3_sitearch}/JupyROOT-%{version}.egg-info -touch %{buildroot}%{python3_sitelib}/JsMVA-%{version}.egg-info - -%endif - -%if %{?rhel}%{!?rhel:0} == 7 - -tmpdir=`mktemp -d` - -DESTDIR=$tmpdir cmake3 -P builddir/bindings/python3oth/cmake_install.cmake - -mkdir -p %{buildroot}%{python3_other_sitearch} -mv $tmpdir%{_libdir}/%{name}/libPyROOT.so.%{version} \ - %{buildroot}%{python3_other_sitearch}/libPyROOT.%{py3_other_soabi}.so -mv $tmpdir%{_libdir}/%{name}/libPyROOT.rootmap \ - %{buildroot}%{python3_other_sitearch}/libPyROOT.rootmap -mv $tmpdir%{_libdir}/%{name}/libPyROOT_rdict.pcm \ - %{buildroot}%{python3_other_sitearch}/libPyROOT_rdict.pcm -mv $tmpdir%{_libdir}/%{name}/libJupyROOT.so.%{version} \ - %{buildroot}%{python3_other_sitearch}/libJupyROOT.so -mv $tmpdir%{_libdir}/%{name}/*.py %{buildroot}%{python3_other_sitearch} -mv $tmpdir%{_libdir}/%{name}/__pycache__ %{buildroot}%{python3_other_sitearch} -rm $tmpdir%{_libdir}/%{name}/JupyROOT/README.md -rm -rf $tmpdir%{_libdir}/%{name}/JupyROOT/src -mv $tmpdir%{_libdir}/%{name}/JupyROOT %{buildroot}%{python3_other_sitearch} -rm $tmpdir%{_libdir}/%{name}/libJupyROOT.so.%{libversion} -rm $tmpdir%{_libdir}/%{name}/libJupyROOT.so - -mkdir -p %{buildroot}%{python3_other_sitelib} -mv $tmpdir%{_libdir}/%{name}/JsMVA %{buildroot}%{python3_other_sitelib} - -rm -rf $tmpdir - -# Create empty .egg-info files so that rpm auto-generates provides -touch %{buildroot}%{python3_other_sitearch}/ROOT-%{version}.egg-info -touch %{buildroot}%{python3_other_sitearch}/JupyROOT-%{version}.egg-info -touch %{buildroot}%{python3_other_sitelib}/JsMVA-%{version}.egg-info - -%endif - # Put jupyter stuff in the right places mkdir -p %{buildroot}%{_datadir}/jupyter/kernels -%if ! %{py3default} +%if %{buildpy2} cp -pr %{buildroot}%{_datadir}/%{name}/notebook/kernels/root \ %{buildroot}%{_datadir}/jupyter/kernels/python2-jupyroot sed -e 's/ROOT C++/& (Python 2)/' \ @@ -2406,16 +2199,6 @@ sed -e 's/ROOT C++/& (Python 3)/' \ sed -e '/^\#!/d' \ -i %{buildroot}%{python3_sitearch}/JupyROOT/kernel/rootkernel.py -%if %{?rhel}%{!?rhel:0} == 7 -cp -pr %{buildroot}%{_datadir}/%{name}/notebook/kernels/root \ - %{buildroot}%{_datadir}/jupyter/kernels/python%{python3_other_pkgversion}-jupyroot -sed -e 's/ROOT C++/& (Python %{python3_other_version})/' \ - -e 's!python[0-9]*\.[0-9]*!%{__python3_other}!' \ - -i %{buildroot}%{_datadir}/jupyter/kernels/python%{python3_other_pkgversion}-jupyroot/kernel.json -sed -e '/^\#!/d' \ - -i %{buildroot}%{python3_other_sitearch}/JupyROOT/kernel/rootkernel.py -%endif - rm -rf %{buildroot}%{_datadir}/%{name}/notebook/custom rm -rf %{buildroot}%{_datadir}/%{name}/notebook/html rm -rf %{buildroot}%{_datadir}/%{name}/notebook/kernels @@ -2438,7 +2221,7 @@ EOF # Avoid /usr/bin/env shebangs (and adapt cli to cmdLineUtils location) sed -e 's!/usr/bin/env bash!/bin/bash!' -i %{buildroot}%{_bindir}/root-config -sed -e 's!/usr/bin/env python.*!%{__pythondef}!' \ +sed -e 's!/usr/bin/env python.*!%{__python3}!' \ -e '/import sys/d' \ -e '/import cmdLineUtils/iimport sys' \ -e '/import cmdLineUtils/isys.path.insert(0, "%{_datadir}/%{name}/cli")' \ @@ -2451,9 +2234,9 @@ sed -e 's!/usr/bin/env python.*!%{__pythondef}!' \ %{buildroot}%{_bindir}/rootprint \ %{buildroot}%{_bindir}/rootrm \ %{buildroot}%{_bindir}/rootslimtree -sed -e 's!/usr/bin/env python.*!%{__pythondef}!' \ +sed -e 's!/usr/bin/env python.*!%{__python3}!' \ -i %{buildroot}%{_bindir}/rootdrawtree -sed -e 's!/usr/bin/env python!%{__pythondef}!' \ +sed -e 's!/usr/bin/env python!%{__python3}!' \ -i %{buildroot}%{_datadir}/%{name}/dictpch/makepch.py \ %{buildroot}%{_pkgdocdir}/tutorials/histfactory/example.py \ %{buildroot}%{_pkgdocdir}/tutorials/histfactory/makeQuickModel.py \ @@ -2491,6 +2274,9 @@ rm TGuiFactory/P030_TWebGuiFactory.C rm TSQLServer/P040_TOracleServer.C rm TSystem/P030_TAlienSystem.C rm TVirtualGeoConverter/P010_TGeoVGConverter.C +%if %{root7} == 0 +rm TVirtualGeoPainter/P020_REveGeoPainter.C +%endif rm TVirtualGLImp/P020_TGWin32GL.C rm TVirtualMonitoringWriter/P010_TMonaLisaWriter.C rm TVirtualX/P030_TGWin32.C @@ -2539,22 +2325,53 @@ for x in df014_CsvDataSource_MuRun2010B_cpp.csv \ ln -sf ../../files/tutorials/df014_CsvDataSource_MuRun2010B.csv $x done # Create the py-hsimple.root file in advance (needed as input) -ROOTIGNOREPREFIX=1 PATH=${PWD}/../../builddir/bin:${PATH} \ - ROOTSYS=${PWD}/../../builddir \ - LD_LIBRARY_PATH=${PWD}/../../builddir/lib \ - PYTHONPATH=${PWD}/../../builddir/lib \ - %{__pythondef} ../../tutorials/pyroot/hsimple.py -ROOTIGNOREPREFIX=1 PATH=${PWD}/../../builddir/bin:${PATH} \ - ROOTSYS=${PWD}/../../builddir \ - LD_LIBRARY_PATH=${PWD}/../../builddir/lib \ - PYTHONPATH=${PWD}/../../builddir/lib \ - make DOXYGEN_OUTPUT_DIRECTORY=${PWD}/doc PYTHON_EXECUTABLE=%{__pythondef} +ROOTIGNOREPREFIX=1 PATH=${PWD}/../../%{_vpath_builddir}/bin:${PATH} \ + ROOTSYS=${PWD}/../../%{_vpath_builddir} \ + LD_LIBRARY_PATH=${PWD}/../../%{_vpath_builddir}/lib \ + PYTHONPATH=${PWD}/../../%{_vpath_builddir}/lib \ + %{__python3} ../../tutorials/pyroot/hsimple.py +ROOTIGNOREPREFIX=1 PATH=${PWD}/../../%{_vpath_builddir}/bin:${PATH} \ + ROOTSYS=${PWD}/../../%{_vpath_builddir} \ + LD_LIBRARY_PATH=${PWD}/../../%{_vpath_builddir}/lib \ + PYTHONPATH=${PWD}/../../%{_vpath_builddir}/lib \ + make DOXYGEN_OUTPUT_DIRECTORY=${PWD}/doc PYTHON_EXECUTABLE=%{__python3} mv doc/html %{buildroot}%{_pkgdocdir}/html popd +# Workaround for doxygen 1.8.17 and 1.8.18 doing slightly different things +# on 32 and 64 bit +doxver=$(doxygen -v) +if [ "$doxver" = "1.8.17" -o "$doxver" = "1.8.18" ] ; then + for f in \ + classDouble__t.html \ + classPdfCacheElem.html \ + classPdfCacheElem__inherit__graph.map \ + classPdfCacheElem__inherit__graph.md5 \ + classPdfCacheElem__inherit__graph.svg \ + classROOT_1_1Experimental_1_1REveMagFieldDuo__coll__graph_org.svg \ + classROOT_1_1Fit_1_1BasicFCN__coll__graph_org.svg \ + classROOT_1_1Math_1_1MemGradFunHandler__coll__graph_org.svg \ + classTAttImage__coll__graph_org.svg \ + classTImagePalette__coll__graph_org.svg \ + inherit_graph_1796.map \ + inherit_graph_1796.md5 \ + inherit_graph_1796.svg \ + structEvent__t__coll__graph_org.svg \ + structGLUvertex__coll__graph_org.svg \ + structROOT_1_1Experimental_1_1REveBoxSet_1_1BEllipticCone__t__coll__graph_org.svg \ + structROOT_1_1Internal_1_1RootCling_1_1DriverConfig__coll__graph_org.svg \ + structTEveDigitSet_1_1DigitBase__t__inherit__graph.map \ + structTEveDigitSet_1_1DigitBase__t__inherit__graph.md5 \ + structTEveDigitSet_1_1DigitBase__t__inherit__graph.svg \ + structTGL5DPainter_1_1Surf__t__coll__graph_org.svg ; do + [ -r %{buildroot}%{_pkgdocdir}/html/${f} ] || \ + touch %{buildroot}%{_pkgdocdir}/html/${f} + done +fi + # Create includelist files ... -for f in `find builddir -name cmake_install.cmake -a '!' -path '*/llvm/*'` ; do - l=`sed 's!builddir/\(.*\)/cmake_install.cmake!includelist-\1!' <<< $f` +for f in `find %{_vpath_builddir} -name cmake_install.cmake -a '!' -path '*/llvm/*'` ; do + l=`sed 's!%{_vpath_builddir}/\(.*\)/cmake_install.cmake!includelist-\1!' <<< $f` l=`tr / - <<< $l` tmpdir=`mktemp -d` %if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8 @@ -2570,10 +2387,11 @@ done cat includelist-core-{[^mw],m[^au]}* > includelist-core cat includelist-geom-geom* > includelist-geom cat includelist-graf2d-x11ttf >> includelist-graf2d-x11 +cat includelist-graf3d-rglew >> includelist-graf3d-gl cat includelist-net-netx* > includelist-netx %check -pushd builddir +pushd %{_vpath_builddir} pushd test ln -s ../../files files popd @@ -2651,6 +2469,10 @@ popd # - tutorial-tmva-tmva103_Application # reads input data over network # http://root.cern/files/tmva101.root +# +# - pyunittests-pyroot-numbadeclare +# - tutorial-pyroot-pyroot004_NumbaDeclare-py +# these tests require the numba python module which is not available excluded="\ test-stressIOPlugins|\ tutorial-dataframe-df101_h1Analysis|\ @@ -2675,7 +2497,9 @@ gtest-tmva-tmva-test-rreader|\ gtest-tmva-tmva-test-rstandardscaler|\ tutorial-tmva-tmva003_RReader|\ tutorial-tmva-tmva004_RStandardScaler|\ -tutorial-tmva-tmva103_Application" +tutorial-tmva-tmva103_Application|\ +pyunittests-pyroot-numbadeclare|\ +tutorial-pyroot-pyroot004_NumbaDeclare-py" %ifarch %{ix86} %{arm} # Tests failing on 32 bit architectures (dataframe) @@ -2683,6 +2507,7 @@ tutorial-tmva-tmva103_Application" # - gtest-tree-dataframe-test-dataframe-cache # - gtest-tree-dataframe-test-dataframe-callbacks # - gtest-tree-dataframe-test-dataframe-colnames +# - gtest-tree-dataframe-test-dataframe-display # - gtest-tree-dataframe-test-dataframe-friends # - gtest-tree-dataframe-test-dataframe-helpers # - gtest-tree-dataframe-test-dataframe-interface @@ -2695,6 +2520,7 @@ excluded="${excluded}|\ gtest-tree-dataframe-test-dataframe-cache|\ gtest-tree-dataframe-test-dataframe-callbacks|\ gtest-tree-dataframe-test-dataframe-colnames|\ +gtest-tree-dataframe-test-dataframe-display|\ gtest-tree-dataframe-test-dataframe-friends|\ gtest-tree-dataframe-test-dataframe-helpers|\ gtest-tree-dataframe-test-dataframe-interface|\ @@ -2720,6 +2546,13 @@ excluded="${excluded}|tutorial-roofit-rf611_weightedfits" %endif %endif +%ifarch %{power64} aarch64 +# This test fails on ppc64le and aarch64 (but not on x86_64) +# The interpreted version works though, only compiled version fails +# - test-stresshistofit +excluded="${excluded}|test-stresshistofit" +%endif + make test ARGS="%{?_smp_mflags} --output-on-failure -E \"${excluded}\"" popd @@ -2742,142 +2575,20 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor >/dev/null 2>&1 || : %endif %if %{buildpy2} - -%post -n python2-%{name} +%pre -n python2-%{name} if [ -r /var/lib/alternatives/libPyROOT.so ] ; then - grep -q %{_libdir}/%{name}/libPyROOT.so.%{version} \ - /var/lib/alternatives/libPyROOT.so || \ - sed 's!\(%{_libdir}/%{name}/libPyROOT\.so\.\).*!\1%{version}!' \ - -i /var/lib/alternatives/libPyROOT.so - for alt in `grep python2 /var/lib/alternatives/libPyROOT.so` ; do - if [ "$alt" != "%{python2_sitearch}/libPyROOT.so" ] ; then - %{_sbindir}/update-alternatives --remove libPyROOT.so $alt - fi + for alt in `grep python2.*/.*.so /var/lib/alternatives/libPyROOT.so` ; do + %{_sbindir}/update-alternatives --remove libPyROOT.so $alt done fi -for f in libPyROOT.rootmap libPyROOT_rdict.pcm ; do - if [ -r %{_libdir}/%{name}/$f -a ! -h %{_libdir}/%{name}/$f ]; then - rm %{_libdir}/%{name}/$f - fi -done -%{_sbindir}/update-alternatives \ - --install %{_libdir}/%{name}/libPyROOT.so.%{version} libPyROOT.so \ - %{python2_sitearch}/libPyROOT.so %{py2prio} \ - --slave %{_libdir}/%{name}/libPyROOT.rootmap libPyROOT.rootmap \ - %{python2_sitearch}/libPyROOT.rootmap \ - --slave %{_libdir}/%{name}/libPyROOT_rdict.pcm libPyROOT_rdict.pcm \ - %{python2_sitearch}/libPyROOT_rdict.pcm -%{?ldconfig} - -%preun -n python2-%{name} -if [ $1 = 0 ] ; then - %{_sbindir}/update-alternatives --remove \ - libPyROOT.so %{python2_sitearch}/libPyROOT.so -fi - -%ldconfig_postun -n python2-%{name} - -%triggerpostun -n python2-%{name} -- %{name}-python -# Uninstalling the old %{name}-python will remove the alternatives -# for python2-%{name} - put them back in this triggerpostun script -%{_sbindir}/update-alternatives \ - --install %{_libdir}/%{name}/libPyROOT.so.%{version} libPyROOT.so \ - %{python2_sitearch}/libPyROOT.so %{py2prio} \ - --slave %{_libdir}/%{name}/libPyROOT.rootmap libPyROOT.rootmap \ - %{python2_sitearch}/libPyROOT.rootmap \ - --slave %{_libdir}/%{name}/libPyROOT_rdict.pcm libPyROOT_rdict.pcm \ - %{python2_sitearch}/libPyROOT_rdict.pcm -%{?ldconfig} - %endif -%post -n python%{python3_pkgversion}-%{name} +%pre -n python%{python3_pkgversion}-%{name} if [ -r /var/lib/alternatives/libPyROOT.so ] ; then - grep -q %{_libdir}/%{name}/libPyROOT.so.%{version} \ - /var/lib/alternatives/libPyROOT.so || \ - sed 's!\(%{_libdir}/%{name}/libPyROOT\.so\.\).*!\1%{version}!' \ - -i /var/lib/alternatives/libPyROOT.so - for alt in `grep python3 /var/lib/alternatives/libPyROOT.so` ; do -%if %{?rhel}%{!?rhel:0} == 7 - if [ "$alt" != "%{python3_sitearch}/libPyROOT.%{py3_soabi}.so" ] && \ - [ "$alt" != "%{python3_other_sitearch}/libPyROOT.%{py3_other_soabi}.so" ] ; then -%else - if [ "$alt" != "%{python3_sitearch}/libPyROOT.%{py3_soabi}.so" ] ; then -%endif - %{_sbindir}/update-alternatives --remove libPyROOT.so $alt - fi + for alt in `grep python3.*/.*.so /var/lib/alternatives/libPyROOT.so` ; do + %{_sbindir}/update-alternatives --remove libPyROOT.so $alt done fi -for f in libPyROOT.rootmap libPyROOT_rdict.pcm ; do - if [ -r %{_libdir}/%{name}/$f -a ! -h %{_libdir}/%{name}/$f ]; then - rm %{_libdir}/%{name}/$f - fi -done -%{_sbindir}/update-alternatives \ - --install %{_libdir}/%{name}/libPyROOT.so.%{version} libPyROOT.so \ - %{python3_sitearch}/libPyROOT.%{py3_soabi}.so %{py3prio} \ - --slave %{_libdir}/%{name}/libPyROOT.rootmap libPyROOT.rootmap \ - %{python3_sitearch}/libPyROOT.rootmap \ - --slave %{_libdir}/%{name}/libPyROOT_rdict.pcm libPyROOT_rdict.pcm \ - %{python3_sitearch}/libPyROOT_rdict.pcm -%{?ldconfig} - -%preun -n python%{python3_pkgversion}-%{name} -if [ $1 = 0 ] ; then - %{_sbindir}/update-alternatives --remove \ - libPyROOT.so %{python3_sitearch}/libPyROOT.%{py3_soabi}.so -fi - -%ldconfig_postun -n python%{python3_pkgversion}-%{name} - -%triggerpostun -n python%{python3_pkgversion}-%{name} -- %{name}-python%{python3_pkgversion} -# Uninstalling the old %{name}-python%{python3_pkgversion} will remove the alternatives -# for python%{python3_pkgversion}-%{name} - put them back in this triggerpostun script -%{_sbindir}/update-alternatives \ - --install %{_libdir}/%{name}/libPyROOT.so.%{version} libPyROOT.so \ - %{python3_sitearch}/libPyROOT.%{py3_soabi}.so %{py3prio} \ - --slave %{_libdir}/%{name}/libPyROOT.rootmap libPyROOT.rootmap \ - %{python3_sitearch}/libPyROOT.rootmap \ - --slave %{_libdir}/%{name}/libPyROOT_rdict.pcm libPyROOT_rdict.pcm \ - %{python3_sitearch}/libPyROOT_rdict.pcm -%{?ldconfig} - -%if %{?rhel}%{!?rhel:0} == 7 -%post -n python%{python3_other_pkgversion}-%{name} -if [ -r /var/lib/alternatives/libPyROOT.so ] ; then - grep -q %{_libdir}/%{name}/libPyROOT.so.%{version} \ - /var/lib/alternatives/libPyROOT.so || \ - sed 's!\(%{_libdir}/%{name}/libPyROOT\.so\.\).*!\1%{version}!' \ - -i /var/lib/alternatives/libPyROOT.so - for alt in `grep python3 /var/lib/alternatives/libPyROOT.so` ; do - if [ "$alt" != "%{python3_sitearch}/libPyROOT.%{py3_soabi}.so" ] && \ - [ "$alt" != "%{python3_other_sitearch}/libPyROOT.%{py3_other_soabi}.so" ] ; then - %{_sbindir}/update-alternatives --remove libPyROOT.so $alt - fi - done -fi -for f in libPyROOT.rootmap libPyROOT_rdict.pcm ; do - if [ -r %{_libdir}/%{name}/$f -a ! -h %{_libdir}/%{name}/$f ]; then - rm %{_libdir}/%{name}/$f - fi -done -%{_sbindir}/update-alternatives \ - --install %{_libdir}/%{name}/libPyROOT.so.%{version} libPyROOT.so \ - %{python3_other_sitearch}/libPyROOT.%{py3_other_soabi}.so 5 \ - --slave %{_libdir}/%{name}/libPyROOT.rootmap libPyROOT.rootmap \ - %{python3_other_sitearch}/libPyROOT.rootmap \ - --slave %{_libdir}/%{name}/libPyROOT_rdict.pcm libPyROOT_rdict.pcm \ - %{python3_other_sitearch}/libPyROOT_rdict.pcm -%{?ldconfig} - -%preun -n python%{python3_other_pkgversion}-%{name} -if [ $1 = 0 ] ; then - %{_sbindir}/update-alternatives --remove \ - libPyROOT.so %{python3_other_sitearch}/libPyROOT.%{py3_other_soabi}.so -fi - -%ldconfig_postun -n python%{python3_other_pkgversion}-%{name} -%endif %post notebook mkdir -p /etc/jupyter @@ -2906,6 +2617,11 @@ fi %ldconfig_scriptlets multiproc %ldconfig_scriptlets cling +%ldconfig_scriptlets tpython +%if %{buildpy2} +%ldconfig_scriptlets -n python2-%{name} +%endif +%ldconfig_scriptlets -n python%{python3_pkgversion}-%{name} %ldconfig_scriptlets r %ldconfig_scriptlets r-tools %ldconfig_scriptlets genetic @@ -2996,6 +2712,7 @@ fi %ldconfig_scriptlets graf-gpadv7 %ldconfig_scriptlets graf-primitives %ldconfig_scriptlets graf3d-eve7 +%ldconfig_scriptlets gui-browsable %ldconfig_scriptlets gui-browserv7 %ldconfig_scriptlets gui-canvaspainter %ldconfig_scriptlets gui-fitpanelv7 @@ -3035,6 +2752,12 @@ fi %files fonts %{_datadir}/%{name}/fonts +%files doc +%doc %{_pkgdocdir}/html + +%files tutorial +%doc %{_pkgdocdir}/tutorials + %files core -f includelist-core %{_bindir}/memprobe %{_bindir}/rmkdepend @@ -3061,6 +2784,7 @@ fi %{_datadir}/%{name}/gdb-backtrace.sh %{_datadir}/%{name}/gitinfo.txt %{_datadir}/%{name}/helgrind-root.supp +%{_datadir}/%{name}/lsan-root.supp %{_datadir}/%{name}/Makefile.arch %{_datadir}/%{name}/root.mimes %{_datadir}/%{name}/system.rootauthrc @@ -3111,98 +2835,58 @@ fi %doc interpreter/llvm/src/llvm-README.txt %license interpreter/llvm/src/llvm-LICENSE.TXT -%files doc -%doc %{_pkgdocdir}/html - -%files tutorial -%doc %{_pkgdocdir}/tutorials +%files tpython -f includelist-bindings-tpython +%{_libdir}/%{name}/libROOTTPython.* +%{_libdir}/%{name}/libROOTTPython_rdict.pcm %if %{buildpy2} -%files -n python2-%{name} -f includelist-bindings-pyroot -%ghost %{_libdir}/%{name}/libPyROOT.rootmap -%{_libdir}/%{name}/libPyROOT.so -%{_libdir}/%{name}/libPyROOT.so.%{libversion} -%ghost %{_libdir}/%{name}/libPyROOT.so.%{version} -%ghost %{_libdir}/%{name}/libPyROOT_rdict.pcm -%{python2_sitearch}/libPyROOT.rootmap -%{python2_sitearch}/libPyROOT.so -%{python2_sitearch}/libPyROOT_rdict.pcm -%{python2_sitearch}/ROOT.py* +%files -n python2-%{name} +%{python2_sitearch}/cppyy +%{python2_sitearch}/cppyy_backend +%{python2_sitearch}/ROOT %{python2_sitearch}/ROOT-*.egg-info -%{python2_sitearch}/cppyy.py* -%{python2_sitearch}/_pythonization.py* -%{python2_sitearch}/_rdf_utils.py* -%endif +%{python2_sitearch}/libcppyy%{python2_version_uscore}.so +%{python2_sitearch}/libcppyy_backend%{python2_version_uscore}.so +%{python2_sitearch}/libROOTPythonizations%{python2_version_uscore}.so +%{_libdir}/%{name}/libcppyy%{python2_version_uscore}.* +%{_libdir}/%{name}/libcppyy_backend%{python2_version_uscore}.* +%{_includedir}/%{name}/CPyCppyy -%if ! %{py3default} %files -n python2-jupyroot %{python2_sitearch}/JupyROOT %{python2_sitearch}/JupyROOT-*.egg-info -%{python2_sitearch}/libJupyROOT.so +%{python2_sitearch}/libJupyROOT%{python2_version_uscore}.so %{_datadir}/jupyter/kernels/python2-jupyroot -%doc bindings/pyroot/JupyROOT/README.md +%doc bindings/jupyroot/README.md %files -n python2-jsmva %{python2_sitelib}/JsMVA %{python2_sitelib}/JsMVA-*.egg-info %endif -%files -n python%{python3_pkgversion}-%{name} -f includelist-bindings-pyroot -%ghost %{_libdir}/%{name}/libPyROOT.rootmap -%{_libdir}/%{name}/libPyROOT.so -%{_libdir}/%{name}/libPyROOT.so.%{libversion} -%ghost %{_libdir}/%{name}/libPyROOT.so.%{version} -%ghost %{_libdir}/%{name}/libPyROOT_rdict.pcm -%{python3_sitearch}/libPyROOT.rootmap -%{python3_sitearch}/libPyROOT.%{py3_soabi}.so -%{python3_sitearch}/libPyROOT_rdict.pcm -%{python3_sitearch}/ROOT.py +%files -n python%{python3_pkgversion}-%{name} +%{python3_sitearch}/cppyy +%{python3_sitearch}/cppyy_backend +%{python3_sitearch}/ROOT %{python3_sitearch}/ROOT-*.egg-info -%{python3_sitearch}/cppyy.py -%{python3_sitearch}/_pythonization.py -%{python3_sitearch}/_rdf_utils.py -%{python3_sitearch}/__pycache__/* +%{python3_sitearch}/libcppyy%{python3_version_uscore}.%{py3_soabi}.so +%{python3_sitearch}/libcppyy_backend%{python3_version_uscore}.so +%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}.%{py3_soabi}.so +%{_libdir}/%{name}/libcppyy%{python3_version_uscore}.* +%{_libdir}/%{name}/libcppyy_backend%{python3_version_uscore}.* +%{_includedir}/%{name}/CPyCppyy %files -n python%{python3_pkgversion}-jupyroot %{python3_sitearch}/JupyROOT %{python3_sitearch}/JupyROOT-*.egg-info -%{python3_sitearch}/libJupyROOT.so +%{python3_sitearch}/libJupyROOT%{python3_version_uscore}.%{py3_soabi}.so %{_datadir}/jupyter/kernels/python%{python3_pkgversion}-jupyroot -%doc bindings/pyroot/JupyROOT/README.md +%doc bindings/jupyroot/README.md %files -n python%{python3_pkgversion}-jsmva %{python3_sitelib}/JsMVA %{python3_sitelib}/JsMVA-*.egg-info -%if %{?rhel}%{!?rhel:0} == 7 -%files -n python%{python3_other_pkgversion}-%{name} -f includelist-bindings-pyroot -%ghost %{_libdir}/%{name}/libPyROOT.rootmap -%{_libdir}/%{name}/libPyROOT.so -%{_libdir}/%{name}/libPyROOT.so.%{libversion} -%ghost %{_libdir}/%{name}/libPyROOT.so.%{version} -%ghost %{_libdir}/%{name}/libPyROOT_rdict.pcm -%{python3_other_sitearch}/libPyROOT.rootmap -%{python3_other_sitearch}/libPyROOT.%{py3_other_soabi}.so -%{python3_other_sitearch}/libPyROOT_rdict.pcm -%{python3_other_sitearch}/ROOT.py -%{python3_other_sitearch}/ROOT-*.egg-info -%{python3_other_sitearch}/cppyy.py -%{python3_other_sitearch}/_pythonization.py -%{python3_other_sitearch}/_rdf_utils.py -%{python3_other_sitearch}/__pycache__/* - -%files -n python%{python3_other_pkgversion}-jupyroot -%{python3_other_sitearch}/JupyROOT -%{python3_other_sitearch}/JupyROOT-*.egg-info -%{python3_other_sitearch}/libJupyROOT.so -%{_datadir}/jupyter/kernels/python%{python3_other_pkgversion}-jupyroot -%doc bindings/pyroot/JupyROOT/README.md - -%files -n python%{python3_other_pkgversion}-jsmva -%{python3_other_sitelib}/JsMVA -%{python3_other_sitelib}/JsMVA-*.egg-info -%endif - %files r -f includelist-bindings-r %{_libdir}/%{name}/libRInterface.* %{_libdir}/%{name}/libRInterface_rdict.pcm @@ -3750,6 +3434,16 @@ fi %files graf3d-eve7 -f includelist-graf3d-eve7 %{_libdir}/%{name}/libROOTEve.* %{_libdir}/%{name}/libROOTEve_rdict.pcm +%{_datadir}/%{name}/plugins/TVirtualGeoPainter/P020_REveGeoPainter.C + +%files gui-browsable -f includelist-gui-browsable +%{_libdir}/%{name}/libROOTBrowsable.* +%{_libdir}/%{name}/libROOTBrowsable_rdict.pcm +%{_libdir}/%{name}/libROOTHistDrawProvider.* +%{_libdir}/%{name}/libROOTLeafDraw6Provider.* +%{_libdir}/%{name}/libROOTLeafDraw7Provider.* +%{_libdir}/%{name}/libROOTObjectDraw6Provider.* +%{_libdir}/%{name}/libROOTObjectDraw7Provider.* %files gui-browserv7 -f includelist-gui-browserv7 %{_libdir}/%{name}/libROOTBrowserv7.* @@ -3791,7 +3485,34 @@ fi %endif %changelog -* Thu Jul 11 2020 Jeff Law - 6.20.06-2 +* Tue Jul 14 2020 Mattias Ellert - 6.22.00-1 +- Update to 6.22.00 +- Drop patches accepted upstream + - root-FitData-assert-fix.patch + - root-clang-altivec-vector.patch + - root-format-fix.patch + - root-moved-file.patch + - root-xmlmodify-dep.patch +- New and improved Python bindings +- The new Python bindings can be built for both Python 2 and Python 3 + out of the box. Dropped the workaround in specfile for this (EPEL 7) +- Dropped the python3-other packages (EPEL 7) +- The new Python bindings has split the TPython interface to a separate + library. Now in a separate root-tpython package +- root-tpython and root-tmva-python are now using Python 3 on EPEL 7 +- New subpackage root-gui-browsable +- New patches (submitted upstream) + - Fix too aggressive -Werror replacements + - Add missing call to TFile::SetCacheFileDir in a TMVA tutorial + - Adjust stressGraphics.ref + - Fix off-by-one error in histogram v7 bin iterator + - Compatibility with python 2.7 versions before 2.7.9 + - Fix the RNTuple.LargeFile test on 32bit (i386 and armv7hf) + - Fix doxygen issues + - Fix bad regex in TProofMgr + - Compatibility with xrootd 5 + +* Sat Jul 11 2020 Jeff Law - 6.20.06-2 - Disable LTO * Thu Jun 11 2020 Mattias Ellert - 6.20.06-1 diff --git a/sources b/sources index 86bdac6..b6ae6df 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (root-6.20.06.tar.xz) = 791f472cb40200c5f8b79efd1803044914bb8e41dc1f424e90508c059d548be7913417a08a770e0f041c9070af8dc6bbddf5366c3db2b1dac43d417992aade22 -SHA512 (root-testfiles.tar.xz) = 7006c6591b587c24cf75dc4f6ed9586165b27102539fdde580d0a95853fcec7e9980a881e49e64a09f90af341a8c8fd2f493305ed88e07af144fabd438ba283e +SHA512 (root-6.22.00.tar.xz) = ca2f72d691619d8afadd3c20f7e3b19d4a12f9f5a38bda340ee4c9fd10993c78db4016a1904851c75478657d971a72f18ad4b1f1bdf61da8be8a0e6de0e1753a +SHA512 (root-testfiles.tar.xz) = 945aef1a0cf5af672d4ab84b0ac00b76118e93008ff72447658ee82d9e955a1540af3ff7126e701418872f1d91b92ee96d4985840a519036c42732023a13f00f

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