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: + ///