The package rpms/root.git has added or updated architecture specific content in its spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s): https://src.fedoraproject.org/cgit/rpms/root.git/commit/?id=aff214ede0bc640c... https://src.fedoraproject.org/cgit/rpms/root.git/commit/?id=637fe32582a2eb88....
Change: +%ifarch ppc64le +%ifarch %{arm} %{ix86}
Thanks.
Full change: ============
commit aff214ede0bc640ca66d08bf4fe69107d086af49 Author: Mattias Ellert mattias.ellert@physics.uu.se Date: Wed Jul 3 14:52:40 2019 +0200
Update to 6.18.00 Drop patches accepted upstream: root-avoid-gui-crash.patch root-doxygen-generation-with-python-3.patch Drop patches with alternative fix implemented upstream: root-dont-install-eve7-files.patch root-ix32-geom-opt.patch Drop ppc64 specific workaround (ppc64 no longer built in Fedora or EPEL): root-ppc64-doc.patch Dropped subpackages: root-geocad root-graf-qt root-gui-qt root-gui-qtgsi root-io-hdfs root-io-rfio root-net-bonjour root-net-globus root-net-ldap root-net-krb5 root-table Drop BuildRequires needed by the dropped subpackages New subpackages: root-graf3d-csg (split off from root-graf3d-gl) root-gui-browserv7 root-tree-ntuple Don't build python2-root for Fedora >= 31 Include desktop and MIME type files in source RPM (removed from source) Install man pages in correct directory Use correct library names in plugin definitions Don't download test input file if it already exists Python 3 fixes Increase test tolerance (aarch64 and ppc64le) Fix GDB pretty printers install name and location
diff --git a/application-x-root.png b/application-x-root.png new file mode 100644 index 0000000..64a62f9 Binary files /dev/null and b/application-x-root.png differ diff --git a/root-32bit-dataframe.patch b/root-32bit-dataframe.patch index 90a4222..5a34084 100644 --- a/root-32bit-dataframe.patch +++ b/root-32bit-dataframe.patch @@ -1,9 +1,9 @@ -diff -ur root-6.16.00.orig/bindings/pyroot/ROOT.py root-6.16.00/bindings/pyroot/ROOT.py ---- root-6.16.00.orig/bindings/pyroot/ROOT.py 2019-01-23 09:23:37.000000000 +0100 -+++ root-6.16.00/bindings/pyroot/ROOT.py 2019-02-12 03:57:19.824223542 +0100 -@@ -379,9 +379,7 @@ - else: - return reshaped_matrix_np +diff -ur root-6.18.00.orig/bindings/pyroot/ROOT.py root-6.18.00/bindings/pyroot/ROOT.py +--- root-6.18.00.orig/bindings/pyroot/ROOT.py 2019-06-25 10:52:11.000000000 +0200 ++++ root-6.18.00/bindings/pyroot/ROOT.py 2019-06-26 15:14:34.684257765 +0200 +@@ -449,9 +449,7 @@ + # This function is injected as method to the respective classes in Pythonize.cxx. + _root._RDataFrameAsNumpy = _RDataFrameAsNumpy
-# This Pythonisation is there only for 64 bits builds -if (sys.maxsize > 2**32): # https://docs.python.org/3/library/platform.html#cross-platform @@ -12,24 +12,26 @@ diff -ur root-6.16.00.orig/bindings/pyroot/ROOT.py root-6.16.00/bindings/pyroot/
### RINT command emulation ------------------------------------------------------ -diff -ur root-6.16.00.orig/bindings/pyroot/test/CMakeLists.txt root-6.16.00/bindings/pyroot/test/CMakeLists.txt ---- root-6.16.00.orig/bindings/pyroot/test/CMakeLists.txt 2019-01-23 09:23:37.000000000 +0100 -+++ root-6.16.00/bindings/pyroot/test/CMakeLists.txt 2019-02-11 19:30:17.443068631 +0100 -@@ -4,9 +4,6 @@ +diff -ur root-6.18.00.orig/bindings/pyroot/test/CMakeLists.txt root-6.18.00/bindings/pyroot/test/CMakeLists.txt +--- root-6.18.00.orig/bindings/pyroot/test/CMakeLists.txt 2019-06-25 10:52:11.000000000 +0200 ++++ root-6.18.00/bindings/pyroot/test/CMakeLists.txt 2019-06-26 15:22:03.843577496 +0200 +@@ -4,10 +4,7 @@ ROOT_ADD_PYUNITTEST(pyroot_rvec rvec.py) if(NUMPY_FOUND) ROOT_ADD_PYUNITTEST(pyroot_array_interface array_interface.py) - # this excludes RDF for 32 bits builds because of clang/gcc abi issues - if( CMAKE_SIZEOF_VOID_P EQUAL 8 ) +- ROOT_ADD_PYUNITTEST(pyroot_rdataframe_asnumpy rdataframe_asnumpy.py) - ROOT_ADD_PYUNITTEST(pyroot_ttree_asmatrix ttree_asmatrix.py) - endif() ++ ROOT_ADD_PYUNITTEST(pyroot_rdataframe_asnumpy rdataframe_asnumpy.py) + ROOT_ADD_PYUNITTEST(pyroot_ttree_asmatrix ttree_asmatrix.py) endif()
-diff -ur root-6.16.00.orig/build/unix/makepchinput.py root-6.16.00/build/unix/makepchinput.py ---- root-6.16.00.orig/build/unix/makepchinput.py 2019-01-23 09:23:37.000000000 +0100 -+++ root-6.16.00/build/unix/makepchinput.py 2019-02-12 04:01:47.071320473 +0100 -@@ -261,9 +261,6 @@ +diff -ur root-6.18.00.orig/build/unix/makepchinput.py root-6.18.00/build/unix/makepchinput.py +--- root-6.18.00.orig/build/unix/makepchinput.py 2019-06-25 10:52:11.000000000 +0200 ++++ root-6.18.00/build/unix/makepchinput.py 2019-06-26 15:14:34.760256972 +0200 +@@ -263,9 +263,6 @@ "math/vdt", "tmva/rmva"]
@@ -39,9 +41,9 @@ diff -ur root-6.16.00.orig/build/unix/makepchinput.py root-6.16.00/build/unix/ma accepted = isAnyPatternInString(PCHPatternsWhitelist,dirName) and \ not isAnyPatternInString(PCHPatternsBlacklist,dirName)
-diff -ur root-6.16.00.orig/cmake/scripts/ROOTConfig.cmake.in root-6.16.00/cmake/scripts/ROOTConfig.cmake.in ---- root-6.16.00.orig/cmake/scripts/ROOTConfig.cmake.in 2019-01-23 09:23:37.000000000 +0100 -+++ root-6.16.00/cmake/scripts/ROOTConfig.cmake.in 2019-02-11 19:42:40.603045735 +0100 +diff -ur root-6.18.00.orig/cmake/scripts/ROOTConfig.cmake.in root-6.18.00/cmake/scripts/ROOTConfig.cmake.in +--- root-6.18.00.orig/cmake/scripts/ROOTConfig.cmake.in 2019-06-25 10:52:11.000000000 +0200 ++++ root-6.18.00/cmake/scripts/ROOTConfig.cmake.in 2019-06-26 15:14:34.768256889 +0200 @@ -83,7 +83,7 @@ set(CMAKE_FIND_LIBRARY_PREFIXES "lib") set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".dll") @@ -51,9 +53,9 @@ diff -ur root-6.16.00.orig/cmake/scripts/ROOTConfig.cmake.in root-6.16.00/cmake/ find_library(ROOT_${_cpt}_LIBRARY ${_cpt} HINTS ${ROOT_LIBRARY_DIR}) if(ROOT_${_cpt}_LIBRARY) mark_as_advanced(ROOT_${_cpt}_LIBRARY) -diff -ur root-6.16.00.orig/config/root-config.in root-6.16.00/config/root-config.in ---- root-6.16.00.orig/config/root-config.in 2019-01-23 09:23:37.000000000 +0100 -+++ root-6.16.00/config/root-config.in 2019-02-11 19:42:38.951063533 +0100 +diff -ur root-6.18.00.orig/config/root-config.in root-6.18.00/config/root-config.in +--- root-6.18.00.orig/config/root-config.in 2019-06-25 10:52:11.000000000 +0200 ++++ root-6.18.00/config/root-config.in 2019-06-26 15:41:39.518330743 +0200 @@ -72,15 +72,10 @@ newlib="-lNew" rootglibs="-lGui" @@ -63,7 +65,7 @@ diff -ur root-6.16.00.orig/config/root-config.in root-6.16.00/config/root-config -lRint -lPostscript -lMatrix -lPhysics -lMathCore -lThread\ -lMultiProc"
--if [ `uname -m` != 'i686' ]; then +-if [ "@UNIX@" != "1" ] || [ "@CMAKE_SIZEOF_VOID_P@" != "4" ]; then - rootlibs="$rootlibs -lROOTDataFrame" -fi - @@ -71,9 +73,9 @@ diff -ur root-6.16.00.orig/config/root-config.in root-6.16.00/config/root-config if test "$platform" = "win32"; then rootulibs="-include:_G__cpp_setupG__Net \ -include:_G__cpp_setupG__IO \ -diff -ur root-6.16.00.orig/tree/dataframe/CMakeLists.txt root-6.16.00/tree/dataframe/CMakeLists.txt ---- root-6.16.00.orig/tree/dataframe/CMakeLists.txt 2019-01-23 09:23:37.000000000 +0100 -+++ root-6.16.00/tree/dataframe/CMakeLists.txt 2019-02-11 19:26:43.236382519 +0100 +diff -ur root-6.18.00.orig/tree/dataframe/CMakeLists.txt root-6.18.00/tree/dataframe/CMakeLists.txt +--- root-6.18.00.orig/tree/dataframe/CMakeLists.txt 2019-06-25 10:52:11.000000000 +0200 ++++ root-6.18.00/tree/dataframe/CMakeLists.txt 2019-06-26 15:14:34.827256273 +0200 @@ -3,11 +3,6 @@ # @author Danilo Piparo CERN, Pere Mato CERN ############################################################################ @@ -86,21 +88,21 @@ diff -ur root-6.16.00.orig/tree/dataframe/CMakeLists.txt root-6.16.00/tree/dataf if(arrow) list(APPEND RDATAFRAME_EXTRA_HEADERS ROOT/RArrowDS.hxx) list(APPEND RDATAFRAME_EXTRA_INCLUDES -I${ARROW_INCLUDE_DIR}) -diff -ur root-6.16.00.orig/tutorials/CMakeLists.txt root-6.16.00/tutorials/CMakeLists.txt ---- root-6.16.00.orig/tutorials/CMakeLists.txt 2019-01-23 09:23:37.000000000 +0100 -+++ root-6.16.00/tutorials/CMakeLists.txt 2019-02-11 19:29:09.215805630 +0100 -@@ -207,10 +207,6 @@ - ) +diff -ur root-6.18.00.orig/tutorials/CMakeLists.txt root-6.18.00/tutorials/CMakeLists.txt +--- root-6.18.00.orig/tutorials/CMakeLists.txt 2019-06-25 10:52:11.000000000 +0200 ++++ root-6.18.00/tutorials/CMakeLists.txt 2019-06-26 15:18:15.834951333 +0200 +@@ -212,10 +212,6 @@ + v7/ntuple/ntpl004_dimuon.C) endif()
-if( CMAKE_SIZEOF_VOID_P EQUAL 4 ) -- set(bits32_veto dataframe/*.C graphs/timeSeriesFrom*.C) +- set(bits32_veto dataframe/*.C graphs/timeSeriesFrom*.C v7/ntuple/ntpl004_dimuon.C) -endif() - #---These ones are disabled !!! ------------------------------------ set(extra_veto htmlex.C -@@ -262,7 +258,6 @@ +@@ -266,7 +262,6 @@ ${classic_veto} ${pythia_veto} ${root7_veto} @@ -108,7 +110,7 @@ diff -ur root-6.16.00.orig/tutorials/CMakeLists.txt root-6.16.00/tutorials/CMake ${xrootd_veto} )
-@@ -418,13 +413,6 @@ +@@ -424,13 +419,6 @@
list(REMOVE_ITEM pytutorials ${pyveto})
diff --git a/root-avoid-gui-crash.patch b/root-avoid-gui-crash.patch deleted file mode 100644 index 98c0c1c..0000000 --- a/root-avoid-gui-crash.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff -ur root-6.06.02.orig/gui/gui/src/TGTable.cxx root-6.06.02/gui/gui/src/TGTable.cxx ---- root-6.06.02.orig/gui/gui/src/TGTable.cxx 2016-03-03 10:36:03.000000000 +0100 -+++ root-6.06.02/gui/gui/src/TGTable.cxx 2016-03-29 15:05:17.952862862 +0200 -@@ -72,7 +72,7 @@ - <br><br> - A simple macro to use a TGTable with a TGSimpleTableInterface: - End_Html --Begin_Macro(source, gui) -+~~~ - { - Int_t i = 0, j = 0; - UInt_t nrows = 6, ncolumns = 5; -@@ -111,13 +111,13 @@ - - return mainframe; - } --End_Macro -+~~~ - Begin_Html - - It is also possible to visualise data from a tree. A simple macro - showing the use of a TTreeTableInterface follows. - End_Html --Begin_Macro(source, gui) -+~~~ - { - // Open a root file. - TFile *file = new TFile("$ROOTSYS/tutorials/hsimple.root"); -@@ -153,7 +153,7 @@ - - return mainframe; - } --End_Macro -+~~~ - */ - - // const TGGC *TGTable::fgDefaultSelectGC = 0; diff --git a/root-dont-download-input-file-if-it-already-exists.patch b/root-dont-download-input-file-if-it-already-exists.patch new file mode 100644 index 0000000..78557b2 --- /dev/null +++ b/root-dont-download-input-file-if-it-already-exists.patch @@ -0,0 +1,64 @@ +From 3207d634576d48462b41b4aec0e9198293aa4a9f Mon Sep 17 00:00:00 2001 +From: Mattias Ellert mattias.ellert@physics.uu.se +Date: Fri, 28 Jun 2019 09:23:19 +0200 +Subject: [PATCH] Don't download input file if it already exists This allows + running the tests with pre-fetched file in environments without network - + like e.g. the Fedora package build server + +--- + tutorials/dataframe/df014_CSVDataSource.C | 3 ++- + tutorials/dataframe/df014_CSVDataSource.py | 4 +++- + tutorials/dataframe/df015_LazyDataSource.C | 3 ++- + 3 files changed, 7 insertions(+), 3 deletions(-) + +diff --git a/tutorials/dataframe/df014_CSVDataSource.C b/tutorials/dataframe/df014_CSVDataSource.C +index 18a6a5afaf..9f1b69688a 100644 +--- a/tutorials/dataframe/df014_CSVDataSource.C ++++ b/tutorials/dataframe/df014_CSVDataSource.C +@@ -23,7 +23,8 @@ int df014_CSVDataSource() + // The types of the columns will be automatically inferred. + auto fileNameUrl = "http://root.cern.ch/files/tutorials/df014_CsvDataSource_MuRun2010B.csv"; + auto fileName = "df014_CsvDataSource_MuRun2010B_cpp.csv"; +- TFile::Cp(fileNameUrl, fileName); ++ if(gSystem->AccessPathName(fileName)) ++ TFile::Cp(fileNameUrl, fileName); + auto tdf = ROOT::RDF::MakeCsvDataFrame(fileName); + + // Now we will apply a first filter based on two columns of the CSV, +diff --git a/tutorials/dataframe/df014_CSVDataSource.py b/tutorials/dataframe/df014_CSVDataSource.py +index dd4823d62f..a8668f5e49 100644 +--- a/tutorials/dataframe/df014_CSVDataSource.py ++++ b/tutorials/dataframe/df014_CSVDataSource.py +@@ -18,12 +18,14 @@ + ## \author Enric Tejedor + + import ROOT ++import os + + # Let's first create a RDF that will read from the CSV file. + # The types of the columns will be automatically inferred. + fileNameUrl = "http://root.cern.ch/files/tutorials/df014_CsvDataSource_MuRun2010B.csv" + fileName = "df014_CsvDataSource_MuRun2010B_py.csv" +-ROOT.TFile.Cp(fileNameUrl, fileName) ++if not os.path.isfile(fileName): ++ ROOT.TFile.Cp(fileNameUrl, fileName) + + MakeCsvDataFrame = ROOT.ROOT.RDF.MakeCsvDataFrame + tdf = MakeCsvDataFrame(fileName) +diff --git a/tutorials/dataframe/df015_LazyDataSource.C b/tutorials/dataframe/df015_LazyDataSource.C +index fc5567b5bd..f8623ddce4 100644 +--- a/tutorials/dataframe/df015_LazyDataSource.C ++++ b/tutorials/dataframe/df015_LazyDataSource.C +@@ -25,7 +25,8 @@ int df015_LazyDataSource() + // See the tutorial relative to CSV data sources for more details! + auto fileNameUrl = "http://root.cern.ch/files/tutorials/df014_CsvDataSource_MuRun2010B.csv"; + auto fileName = "df015_CsvDataSource_MuRun2010B.csv"; +- TFile::Cp(fileNameUrl, fileName); ++ if(gSystem->AccessPathName(fileName)) ++ TFile::Cp(fileNameUrl, fileName); + + auto csv_rdf = MakeCsvDataFrame(fileName); + +-- +2.21.0 + diff --git a/root-dont-install-eve7-files.patch b/root-dont-install-eve7-files.patch deleted file mode 100644 index e2c0561..0000000 --- a/root-dont-install-eve7-files.patch +++ /dev/null @@ -1,39 +0,0 @@ -From fb33e1aa0b7c0f2ea539a813df2d41b2c000f5b3 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert mattias.ellert@physics.uu.se -Date: Thu, 14 Feb 2019 13:09:02 +0100 -Subject: [PATCH] Don't install eve7 files if eve7 is not built - ---- - CMakeLists.txt | 11 +++++------ - 1 file changed, 5 insertions(+), 6 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 74d24d4419..ce38150875 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -446,17 +446,16 @@ if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_INSTALL_PREFIX) - else() - install(DIRECTORY README DESTINATION ${CMAKE_INSTALL_DOCDIR}) - endif() -+ if (NOT root7) -+ set(excludeeve7 PATTERN "eve7" EXCLUDE) -+ endif() - install(DIRECTORY etc/ DESTINATION ${CMAKE_INSTALL_SYSCONFDIR} USE_SOURCE_PERMISSIONS - PATTERN "system.rootrc" EXCLUDE - PATTERN "system.rootauthrc" EXCLUDE - PATTERN "system.rootdaemonrc" EXCLUDE -- PATTERN "rootd.rc.d" EXCLUDE -- PATTERN "proofd.rc.d" EXCLUDE -- PATTERN "rootd.xinetd" EXCLUDE -- PATTERN "proofd.xinetd" EXCLUDE - PATTERN "root.mimes" EXCLUDE -- PATTERN "cmake" EXCLUDE -- PATTERN "*.in" EXCLUDE) -+ PATTERN "*.in" EXCLUDE -+ ${excludeeve7}) - install(DIRECTORY fonts/ DESTINATION ${CMAKE_INSTALL_FONTDIR}) - install(DIRECTORY icons/ DESTINATION ${CMAKE_INSTALL_ICONDIR}) - install(DIRECTORY macros/ DESTINATION ${CMAKE_INSTALL_MACRODIR}) --- -2.20.1 - diff --git a/root-doxygen-generation-with-python-3.patch b/root-doxygen-generation-with-python-3.patch deleted file mode 100644 index 05e17c1..0000000 --- a/root-doxygen-generation-with-python-3.patch +++ /dev/null @@ -1,248 +0,0 @@ -From b8b0d770b71b779812ec07b5689ccb30ea35d56e Mon Sep 17 00:00:00 2001 -From: Mattias Ellert mattias.ellert@physics.uu.se -Date: Thu, 14 Feb 2019 14:22:22 +0100 -Subject: [PATCH] Fix doxygen generation with Python 3 - ---- - documentation/doxygen/Makefile | 3 +++ - documentation/doxygen/converttonotebook.py | 4 ++-- - documentation/doxygen/filter.cxx | 19 +++++++++++++------ - documentation/doxygen/makeimage.py | 4 ++-- - documentation/doxygen/parallelNotebooks.py | 6 +++--- - tutorials/dataframe/df003_profiles.py | 5 ++--- - tutorials/dataframe/df017_vecOpsHEP.py | 13 ++++++------- - tutorials/math/tStudent.py | 7 ++++++- - 8 files changed, 37 insertions(+), 24 deletions(-) - -diff --git a/documentation/doxygen/Makefile b/documentation/doxygen/Makefile -index a886c1b729..b50f3cea9a 100644 ---- a/documentation/doxygen/Makefile -+++ b/documentation/doxygen/Makefile -@@ -1,6 +1,9 @@ - - .PHONY: filter folders mathjax images doxygen - -+PYTHON_EXECUTABLE ?= /usr/bin/python -+export PYTHON_EXECUTABLE -+ - DOXYGEN_OUTPUT_DIRECTORY ?= $(HOME)/rootdoc - export DOXYGEN_OUTPUT_DIRECTORY - export DOXYGEN_SOURCE_DIRECTORY := ../.. -diff --git a/documentation/doxygen/converttonotebook.py b/documentation/doxygen/converttonotebook.py -index 77aeacedf8..5c9b6cdbd8 100755 ---- a/documentation/doxygen/converttonotebook.py -+++ b/documentation/doxygen/converttonotebook.py -@@ -727,7 +727,7 @@ def mainfunction(text): - - # add the corresponding metadata - if extension == "py": -- json_data[u'metadata'] = { -+ json_data['metadata'] = { - "kernelspec": { - "display_name": "Python 2", - "language": "python", -@@ -747,7 +747,7 @@ def mainfunction(text): - } - } - elif isCpp(): -- json_data[u'metadata'] = { -+ json_data['metadata'] = { - "kernelspec": { - "display_name": "ROOT C++", - "language": "c++", -diff --git a/documentation/doxygen/filter.cxx b/documentation/doxygen/filter.cxx -index a199f8137b..6d0f49aacd 100644 ---- a/documentation/doxygen/filter.cxx -+++ b/documentation/doxygen/filter.cxx -@@ -106,6 +106,7 @@ string gImageWidth; // Width of image - string gCwd; // Current working directory - string gOutDir; // Output directory - string gSourceDir; // Source directory -+string gPythonExec; // Python executable - string gOutputName; // File containing a macro std::out - bool gHeader; // True if the input file is a header - bool gSource; // True if the input file is a source file -@@ -150,6 +151,10 @@ int main(int argc, char *argv[]) - gSourceDir = getenv("DOXYGEN_SOURCE_DIRECTORY"); - ReplaceAll(gSourceDir,""",""); - -+ // Retrieve the python executable -+ gPythonExec = getenv("PYTHON_EXECUTABLE"); -+ ReplaceAll(gPythonExec,""",""); -+ - // Open the input file name. - f = fopen(gFileName.c_str(),"r"); - -@@ -331,10 +336,12 @@ void FilterTutorial() - } else { - if (gPython) { - if (nobatch) { -- ExecuteCommand(StringFormat("./makeimage.py %s %s %s 0 1 0", -+ ExecuteCommand(StringFormat("%s makeimage.py %s %s %s 0 1 0", -+ gPythonExec.c_str(), - gFileName.c_str(), gImageName.c_str(), gOutDir.c_str())); - } else { -- ExecuteCommand(StringFormat("./makeimage.py %s %s %s 0 1 1", -+ ExecuteCommand(StringFormat("%s makeimage.py %s %s %s 0 1 1", -+ gPythonExec.c_str(), - gFileName.c_str(), gImageName.c_str(), gOutDir.c_str())); - } - } else { -@@ -360,9 +367,9 @@ void FilterTutorial() - - // notebook found - if (gLineString.find("\notebook") != string::npos) { -- ExecuteCommand(StringFormat("python converttonotebook.py %s %s/notebooks/", -+ ExecuteCommand(StringFormat("%s converttonotebook.py %s %s/notebooks/", -+ gPythonExec.c_str(), - gFileName.c_str(), gOutDir.c_str())); -- - if (gPython){ - gLineString = "## "; - } -@@ -370,13 +377,13 @@ void FilterTutorial() - gLineString = "/// "; - } - gLineString += StringFormat( "\htmlonly <a href="http://nbviewer.jupyter.org/url/root.cern.ch/doc/master/notebooks/%s.nbconve..." target="_blank"><img src= notebook.gif alt="View in nbviewer" style="height:1em" ></a> <a href="https://cern.ch/swanserver/cgi-bin/go?projurl=https://root.cern.ch/doc/maste..." target="_blank"><img src="http://swanserver.web.cern.ch/swanserver/images/badge_swan_white_150.png%5C" alt="Open in SWAN" style="height:1em" ></a> \endhtmlonly \n", gMacroName.c_str() , gMacroName.c_str()); -- - } -+ - // \macro_output found - if (gLineString.find("\macro_output") != string::npos) { - remove(gOutputName.c_str()); - if (!gPython) ExecuteCommand(StringFormat("root -l -b -q %s", gFileName.c_str()).c_str()); -- else ExecuteCommand(StringFormat("python %s", gFileName.c_str()).c_str()); -+ else ExecuteCommand(StringFormat("%s %s", gPythonExec.c_str(), gFileName.c_str()).c_str()); - ExecuteCommand(StringFormat("sed -i '/Processing/d' %s", gOutputName.c_str()).c_str()); - rename(gOutputName.c_str(), StringFormat("%s/macros/%s",gOutDir.c_str(), gOutputName.c_str()).c_str()); - ReplaceAll(gLineString, "\macro_output", StringFormat("\include %s",gOutputName.c_str())); -diff --git a/documentation/doxygen/makeimage.py b/documentation/doxygen/makeimage.py -index 8c68ac6314..f4f0ee9565 100755 ---- a/documentation/doxygen/makeimage.py -+++ b/documentation/doxygen/makeimage.py -@@ -12,7 +12,7 @@ def makeimage(MacroName, ImageName, OutDir, cp, py, batch): - if batch: - ROOT.gROOT.SetBatch(1) - -- if py: execfile(MacroName) -+ if py: exec(compile(open(MacroName, "rb").read(), MacroName, 'exec')) - else: ROOT.gInterpreter.ProcessLine(".x " + MacroName) - - if cp: -@@ -37,4 +37,4 @@ def makeimage(MacroName, ImageName, OutDir, cp, py, batch): - - if __name__ == "__main__": - from sys import argv -- makeimage(argv[1], argv[2], argv[3], bool(argv[4]), bool(argv[5]), bool(argv[6])) -\ No newline at end of file -+ makeimage(argv[1], argv[2], argv[3], bool(argv[4]), bool(argv[5]), bool(argv[6])) -diff --git a/documentation/doxygen/parallelNotebooks.py b/documentation/doxygen/parallelNotebooks.py -index 1c8d1f4ef1..6144b72f5a 100644 ---- a/documentation/doxygen/parallelNotebooks.py -+++ b/documentation/doxygen/parallelNotebooks.py -@@ -52,7 +52,7 @@ try: - iterator.remove(element) - - for i in newinputs: -- print i -+ print(i) - - def processInput(inputFile): - subprocess.call(['python', -@@ -69,5 +69,5 @@ try: - parallel(input) - - except: -- print 'Parallel notebooks converter failed!!' -- pass -\ No newline at end of file -+ print('Parallel notebooks converter failed!!') -+ pass -diff --git a/tutorials/dataframe/df003_profiles.py b/tutorials/dataframe/df003_profiles.py -index c80febfaed..cd8c324086 100644 ---- a/tutorials/dataframe/df003_profiles.py -+++ b/tutorials/dataframe/df003_profiles.py -@@ -12,12 +12,11 @@ - ## \author Danilo Piparo - - import ROOT --RDataFrame = ROOT.ROOT.RDataFrame - - # A simple helper function to fill a test tree: this makes the example - # stand-alone. - def fill_tree(treeName, fileName): -- d = RDataFrame(25000) -+ d = ROOT.ROOT.RDataFrame(25000) - d.Define("px", "gRandom->Gaus()")\ - .Define("py", "gRandom->Gaus()")\ - .Define("pz", "sqrt(px * px + py * py)")\ -@@ -35,7 +34,7 @@ columns = ROOT.vector('string')() - columns.push_back("px") - columns.push_back("py") - columns.push_back("pz") --d = RDataFrame(treeName, fileName, columns) -+d = ROOT.ROOT.RDataFrame(treeName, fileName, columns) - - # Create the profiles - hprof1d = d.Profile1D(("hprof1d", "Profile of pz versus px", 64, -4, 4)) -diff --git a/tutorials/dataframe/df017_vecOpsHEP.py b/tutorials/dataframe/df017_vecOpsHEP.py -index c213c612c0..348b10de5f 100644 ---- a/tutorials/dataframe/df017_vecOpsHEP.py -+++ b/tutorials/dataframe/df017_vecOpsHEP.py -@@ -11,13 +11,12 @@ - ## \author Danilo Piparo, Andre Vieira Silva - - import ROOT --from math import sqrt - - filename = ROOT.gROOT.GetTutorialDir().Data() + "/dataframe/df017_vecOpsHEP.root" - treename = "myDataset" --RDF = ROOT.ROOT.RDataFrame - --def WithPyROOT(): -+def WithPyROOT(filename): -+ from math import sqrt - f = ROOT.TFile(filename) - h = ROOT.TH1F("pt", "pt", 16, 0, 4) - for event in f.myDataset: -@@ -26,8 +25,8 @@ def WithPyROOT(): - h.Fill(sqrt(px*px + py*py)) - h.DrawCopy() - --def WithRDataFrameVecOpsJit(): -- f = RDF(treename, filename) -+def WithRDataFrameVecOpsJit(treename, filename): -+ f = ROOT.ROOT.RDataFrame(treename, filename) - h = f.Define("good_pt", "sqrt(px*px + py*py)[E>100]")\ - .Histo1D(("pt", "pt", 16, 0, 4), "good_pt") - h.DrawCopy() -@@ -37,6 +36,6 @@ def WithRDataFrameVecOpsJit(): - c = ROOT.TCanvas() - c.Divide(2,1) - c.cd(1) --WithPyROOT() -+WithPyROOT(filename) - c.cd(2) --WithRDataFrameVecOpsJit() -+WithRDataFrameVecOpsJit(treename, filename) -diff --git a/tutorials/math/tStudent.py b/tutorials/math/tStudent.py -index fe920c843a..12761d49fb 100644 ---- a/tutorials/math/tStudent.py -+++ b/tutorials/math/tStudent.py -@@ -38,7 +38,12 @@ for i in range(1, 10): - 3.0)) - - # For each quantile fill with the pdf --xx = [-1.5] + [quant.GetBinContent(i)for i in range(1, 9)] + [1.5] -+xx = [] -+xx.append(-1.5) -+for i in range(1, 9): -+ xx.append(quant.GetBinContent(i)) -+xx.append(1.5) -+ - pdfq = [] - for i in range(9): - nbin = int(n * (xx[i+1] - xx[i]) / 3.0 + 1.0) --- -2.20.1 - diff --git a/root-fix-plugin-definition.patch b/root-fix-plugin-definition.patch new file mode 100644 index 0000000..3f3d3d5 --- /dev/null +++ b/root-fix-plugin-definition.patch @@ -0,0 +1,92 @@ +From 444b03b6e3ce0554f687443a42310fe01fba276c Mon Sep 17 00:00:00 2001 +From: Mattias Ellert mattias.ellert@physics.uu.se +Date: Thu, 27 Jun 2019 18:24:58 +0200 +Subject: [PATCH 2/2] Use the correct library name in the plugin definitions + +--- + etc/plugins/TFile/P090_TSQLFile.C | 4 ++-- + etc/plugins/TFileStager/P010_TXNetFileStager.C | 2 +- + etc/plugins/TGuiFactory/P030_TWebGuiFactory.C | 2 +- + etc/plugins/TImagePlugin/P010_TASPluginGS.C | 6 +++--- + etc/plugins/TVirtualGraphPainter/P010_TGraphPainter.C | 2 +- + etc/plugins/TVirtualX/P060_TWebVirtualX.C | 2 +- + 6 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/etc/plugins/TFile/P090_TSQLFile.C b/etc/plugins/TFile/P090_TSQLFile.C +index bc006053d4..a6441ffbef 100644 +--- a/etc/plugins/TFile/P090_TSQLFile.C ++++ b/etc/plugins/TFile/P090_TSQLFile.C +@@ -1,7 +1,7 @@ + void P090_TSQLFile() + { + gPluginMgr->AddHandler("TFile", "^mysql:", "TSQLFile", +- "SQL", "TSQLFile(const char*,Option_t*,const char*,const char*)"); ++ "SQLIO", "TSQLFile(const char*,Option_t*,const char*,const char*)"); + gPluginMgr->AddHandler("TFile", "^oracle:", "TSQLFile", +- "SQL", "TSQLFile(const char*,Option_t*,const char*,const char*)"); ++ "SQLIO", "TSQLFile(const char*,Option_t*,const char*,const char*)"); + } +diff --git a/etc/plugins/TFileStager/P010_TXNetFileStager.C b/etc/plugins/TFileStager/P010_TXNetFileStager.C +index 884ce7e103..66cd8d575e 100644 +--- a/etc/plugins/TFileStager/P010_TXNetFileStager.C ++++ b/etc/plugins/TFileStager/P010_TXNetFileStager.C +@@ -2,7 +2,7 @@ void P010_TXNetFileStager() + { + if (!gEnv->GetValue("XNet.UseOldClient", 0)) { + gPluginMgr->AddHandler("TFileStager", "^[x]?root:", "TNetXNGFileStager", +- "NetXNG", "TNetXNGFileStager(const char *)"); ++ "NetxNG", "TNetXNGFileStager(const char *)"); + } else { + gPluginMgr->AddHandler("TFileStager", "^[x]?root:", "TXNetFileStager", + "Netx", "TXNetFileStager(const char *)"); +diff --git a/etc/plugins/TGuiFactory/P030_TWebGuiFactory.C b/etc/plugins/TGuiFactory/P030_TWebGuiFactory.C +index 873ba03ebd..fe83cf06e1 100644 +--- a/etc/plugins/TGuiFactory/P030_TWebGuiFactory.C ++++ b/etc/plugins/TGuiFactory/P030_TWebGuiFactory.C +@@ -1,4 +1,4 @@ + void P030_TWebGuiFactory() + { +- gPluginMgr->AddHandler("TGuiFactory", "web", "TWebGuiFactory", "WebGui", "TWebGuiFactory()"); ++ gPluginMgr->AddHandler("TGuiFactory", "web", "TWebGuiFactory", "WebGui6", "TWebGuiFactory()"); + } +diff --git a/etc/plugins/TImagePlugin/P010_TASPluginGS.C b/etc/plugins/TImagePlugin/P010_TASPluginGS.C +index c2e3e45c1a..9e401e74f1 100644 +--- a/etc/plugins/TImagePlugin/P010_TASPluginGS.C ++++ b/etc/plugins/TImagePlugin/P010_TASPluginGS.C +@@ -1,9 +1,9 @@ + void P010_TASPluginGS() + { + gPluginMgr->AddHandler("TImagePlugin", "ps", "TASPluginGS", +- "ASPluginGS", "TASPluginGS(const char*)"); ++ "ASImage", "TASPluginGS(const char*)"); + gPluginMgr->AddHandler("TImagePlugin", "eps", "TASPluginGS", +- "ASPluginGS", "TASPluginGS(const char*)"); ++ "ASImage", "TASPluginGS(const char*)"); + gPluginMgr->AddHandler("TImagePlugin", "pdf", "TASPluginGS", +- "ASPluginGS", "TASPluginGS(const char*)"); ++ "ASImage", "TASPluginGS(const char*)"); + } +diff --git a/etc/plugins/TVirtualGraphPainter/P010_TGraphPainter.C b/etc/plugins/TVirtualGraphPainter/P010_TGraphPainter.C +index 2a919023f9..f1be760487 100644 +--- a/etc/plugins/TVirtualGraphPainter/P010_TGraphPainter.C ++++ b/etc/plugins/TVirtualGraphPainter/P010_TGraphPainter.C +@@ -1,5 +1,5 @@ + void P010_TGraphPainter() + { + gPluginMgr->AddHandler("TVirtualGraphPainter", "*", "TGraphPainter", +- "GraphPainter", "TGraphPainter()"); ++ "HistPainter", "TGraphPainter()"); + } +diff --git a/etc/plugins/TVirtualX/P060_TWebVirtualX.C b/etc/plugins/TVirtualX/P060_TWebVirtualX.C +index e624c34e7b..26f9650e94 100644 +--- a/etc/plugins/TVirtualX/P060_TWebVirtualX.C ++++ b/etc/plugins/TVirtualX/P060_TWebVirtualX.C +@@ -1,4 +1,4 @@ + void P060_TWebVirtualX() + { +- gPluginMgr->AddHandler("TVirtualX", "web", "TWebVirtualX", "WebGui", "TWebVirtualX(const char*,const char*)"); ++ gPluginMgr->AddHandler("TVirtualX", "web", "TWebVirtualX", "WebGui6", "TWebVirtualX(const char*,const char*)"); + } +-- +2.21.0 + diff --git a/root-fontconfig.patch b/root-fontconfig.patch index d540b45..4f39a68 100644 --- a/root-fontconfig.patch +++ b/root-fontconfig.patch @@ -1,7 +1,7 @@ -diff -ur root-6.14.00.orig/core/base/src/TApplication.cxx root-6.14.00/core/base/src/TApplication.cxx ---- root-6.14.00.orig/core/base/src/TApplication.cxx 2018-06-13 12:10:40.000000000 +0200 -+++ root-6.14.00/core/base/src/TApplication.cxx 2018-06-14 10:28:26.052618314 +0200 -@@ -277,18 +277,11 @@ +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 @@ LoadGraphicsLibs();
// Try to load TrueType font renderer. Only try to load if not in batch @@ -22,7 +22,7 @@ diff -ur root-6.14.00.orig/core/base/src/TApplication.cxx root-6.14.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 -@@ -302,7 +295,6 @@ +@@ -292,7 +285,6 @@ } } #endif @@ -30,21 +30,20 @@ diff -ur root-6.14.00.orig/core/base/src/TApplication.cxx root-6.14.00/core/base
// Create WM dependent application environment if (fAppImp) -diff -ur root-6.14.00.orig/graf2d/asimage/CMakeLists.txt root-6.14.00/graf2d/asimage/CMakeLists.txt ---- root-6.14.00.orig/graf2d/asimage/CMakeLists.txt 2018-06-13 12:10:40.000000000 +0200 -+++ root-6.14.00/graf2d/asimage/CMakeLists.txt 2018-06-14 10:32:01.365570910 +0200 -@@ -15,7 +15,7 @@ - HEADERS TASImage.h TASImagePlugin.h TASPluginGS.h - SOURCES TASImage.cxx TASPluginGS.cxx - DICTIONARY_OPTIONS "-writeEmptyRootPCM" -- LIBRARIES Core ${AFTERIMAGE_LIBRARIES} ${FREETYPE_LIBRARIES} ${ASEXTRA_LIBRARIES} ${X11_LIBRARIES} ZLIB::ZLIB -+ LIBRARIES Core ${AFTERIMAGE_LIBRARIES} ${FREETYPE_LIBRARIES} fontconfig ${ASEXTRA_LIBRARIES} ${X11_LIBRARIES} ZLIB::ZLIB - DEPENDENCIES Graf BUILTINS AFTERIMAGE) - - -diff -ur root-6.14.00.orig/graf2d/asimage/src/TASImage.cxx root-6.14.00/graf2d/asimage/src/TASImage.cxx ---- root-6.14.00.orig/graf2d/asimage/src/TASImage.cxx 2018-06-13 12:10:40.000000000 +0200 -+++ root-6.14.00/graf2d/asimage/src/TASImage.cxx 2018-06-14 10:28:26.054618292 +0200 +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 @@ + ${FREETYPE_LIBRARIES} + ${X11_LIBRARIES} + ZLIB::ZLIB ++ fontconfig + 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 @@ # include <draw.h> } @@ -200,19 +199,20 @@ diff -ur root-6.14.00.orig/graf2d/asimage/src/TASImage.cxx root-6.14.00/graf2d/a }
get_text_size(text, font, (ASText3DType)type, &width, &height); -diff -ur root-6.14.00.orig/graf2d/graf/CMakeLists.txt root-6.14.00/graf2d/graf/CMakeLists.txt ---- root-6.14.00.orig/graf2d/graf/CMakeLists.txt 2018-06-13 12:10:40.000000000 +0200 -+++ root-6.14.00/graf2d/graf/CMakeLists.txt 2018-06-14 10:36:18.869871880 +0200 -@@ -7,5 +7,5 @@ - - ROOT_STANDARD_LIBRARY_PACKAGE(Graf - DICTIONARY_OPTIONS "-writeEmptyRootPCM" -- LIBRARIES ${FREETYPE_LIBRARIES} ZLIB::ZLIB mathtext -+ LIBRARIES ${FREETYPE_LIBRARIES} ZLIB::ZLIB mathtext fontconfig - DEPENDENCIES Hist Matrix MathCore RIO BUILTINS FREETYPE) -diff -ur root-6.14.00.orig/graf2d/graf/inc/TTF.h root-6.14.00/graf2d/graf/inc/TTF.h ---- root-6.14.00.orig/graf2d/graf/inc/TTF.h 2018-06-13 12:10:40.000000000 +0200 -+++ root-6.14.00/graf2d/graf/inc/TTF.h 2018-06-14 10:28:26.055618281 +0200 +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 @@ + ${FREETYPE_LIBRARIES} + ZLIB::ZLIB + mathtext ++ fontconfig + 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 @@ -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.14.00.orig/graf2d/graf/inc/TTF.h root-6.14.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.14.00.orig/graf2d/graf/src/TTF.cxx root-6.14.00/graf2d/graf/src/TTF.cxx ---- root-6.14.00.orig/graf2d/graf/src/TTF.cxx 2018-06-13 12:10:40.000000000 +0200 -+++ root-6.14.00/graf2d/graf/src/TTF.cxx 2018-06-14 10:28:26.055618281 +0200 +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 @@ -25,6 +25,8 @@ #include "TMath.h" #include "TError.h" @@ -787,19 +787,20 @@ diff -ur root-6.14.00.orig/graf2d/graf/src/TTF.cxx root-6.14.00/graf2d/graf/src/ }
//////////////////////////////////////////////////////////////////////////////// -diff -ur root-6.14.00.orig/graf2d/postscript/CMakeLists.txt root-6.14.00/graf2d/postscript/CMakeLists.txt ---- root-6.14.00.orig/graf2d/postscript/CMakeLists.txt 2018-06-13 12:10:40.000000000 +0200 -+++ root-6.14.00/graf2d/postscript/CMakeLists.txt 2018-06-14 10:35:47.829194226 +0200 -@@ -5,5 +5,5 @@ - - ROOT_STANDARD_LIBRARY_PACKAGE(Postscript - DICTIONARY_OPTIONS "-writeEmptyRootPCM" -- LIBRARIES ZLIB::ZLIB mathtext -+ LIBRARIES ZLIB::ZLIB mathtext fontconfig - DEPENDENCIES Graf) -diff -ur root-6.14.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.14.00/graf2d/postscript/src/TPostScript.cxx ---- root-6.14.00.orig/graf2d/postscript/src/TPostScript.cxx 2018-06-13 12:10:40.000000000 +0200 -+++ root-6.14.00/graf2d/postscript/src/TPostScript.cxx 2018-06-14 10:28:26.057618259 +0200 +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 @@ + LIBRARIES + ZLIB::ZLIB + mathtext ++ fontconfig + 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 @@ #include <string.h> #include <ctype.h> @@ -1059,20 +1060,20 @@ diff -ur root-6.14.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.14.00/gr { "Root.PSFont.STIXGen", "/STIXGeneral" }, { "Root.PSFont.STIXGenIt", "/STIXGeneral-Italic" }, { "Root.PSFont.STIXGenBd", "/STIXGeneral-Bold" }, -diff -ur root-6.14.00.orig/graf3d/gl/CMakeLists.txt root-6.14.00/graf3d/gl/CMakeLists.txt ---- root-6.14.00.orig/graf3d/gl/CMakeLists.txt 2018-06-13 12:10:40.000000000 +0200 -+++ root-6.14.00/graf3d/gl/CMakeLists.txt 2018-06-14 10:28:26.057618259 +0200 -@@ -41,6 +41,6 @@ - HEADERS ${headers} - SOURCES ${sources} - DICTIONARY_OPTIONS "-writeEmptyRootPCM" -- LIBRARIES ${gllibs} ${GL2PS_LIBRARIES} GLEW ${FTGL_LIBRARIES} -+ LIBRARIES ${gllibs} ${GL2PS_LIBRARIES} GLEW ${FTGL_LIBRARIES} fontconfig - DEPENDENCIES Hist Gui Ged - INSTALL_OPTIONS ${installoptions}) -diff -ur root-6.14.00.orig/graf3d/gl/src/TGLFontManager.cxx root-6.14.00/graf3d/gl/src/TGLFontManager.cxx ---- root-6.14.00.orig/graf3d/gl/src/TGLFontManager.cxx 2018-06-13 12:10:40.000000000 +0200 -+++ root-6.14.00/graf3d/gl/src/TGLFontManager.cxx 2018-06-14 10:28:26.058618248 +0200 +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} + ${GL2PS_LIBRARIES} + ${X11_LIBRARIES} ++ 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 @@ -37,6 +37,7 @@ # include "FTGLBitmapFont.h" #endif @@ -1328,9 +1329,9 @@ diff -ur root-6.14.00.orig/graf3d/gl/src/TGLFontManager.cxx root-6.14.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.14.00.orig/graf3d/gl/src/TGLText.cxx root-6.14.00/graf3d/gl/src/TGLText.cxx ---- root-6.14.00.orig/graf3d/gl/src/TGLText.cxx 2018-06-13 12:10:40.000000000 +0200 -+++ root-6.14.00/graf3d/gl/src/TGLText.cxx 2018-06-14 10:28:26.058618248 +0200 +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 @@ -34,6 +34,8 @@ # include "FTGLBitmapFont.h" #endif @@ -1465,9 +1466,9 @@ diff -ur root-6.14.00.orig/graf3d/gl/src/TGLText.cxx root-6.14.00/graf3d/gl/src/ Error("SetGLTextFont","Cannot set FTGL::FaceSize"); - delete [] ttfont; } -diff -ur root-6.14.00.orig/gui/gui/src/TGApplication.cxx root-6.14.00/gui/gui/src/TGApplication.cxx ---- root-6.14.00.orig/gui/gui/src/TGApplication.cxx 2018-06-13 12:10:40.000000000 +0200 -+++ root-6.14.00/gui/gui/src/TGApplication.cxx 2018-06-14 10:28:26.058618248 +0200 +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 @@ gROOT->SetBatch(kFALSE);
diff --git a/root-ix32-geom-opt.patch b/root-ix32-geom-opt.patch deleted file mode 100644 index 153629b..0000000 --- a/root-ix32-geom-opt.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/geom/geom/CMakeLists.txt b/geom/geom/CMakeLists.txt -index 520be8b5d5..d197cc3db3 100644 ---- a/geom/geom/CMakeLists.txt -+++ b/geom/geom/CMakeLists.txt -@@ -24,7 +24,7 @@ ROOT_STANDARD_LIBRARY_PACKAGE(Geom - HEADERS ${headers1} ${headers2} - DEPENDENCIES Thread RIO MathCore) - --# GCC 4.x has bugs with -O3 or -Ofast that break Geom --if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5) -+# 32 bit ix86 has bugs with -O3 or -Ofast that break Geom -+if(CMAKE_COMPILER_IS_GNUCXX AND ROOT_ARCHITECTURE STREQUAL "linux") - target_compile_options(Geom PRIVATE -O2) - endif() diff --git a/root-jupyroot-static.patch b/root-jupyroot-static.patch index 551e019..bb8e721 100644 --- a/root-jupyroot-static.patch +++ b/root-jupyroot-static.patch @@ -1,6 +1,6 @@ -diff -ur root-6.12.04.orig/bindings/pyroot/JsMVA/JPyInterface.py root-6.12.04/bindings/pyroot/JsMVA/JPyInterface.py ---- root-6.12.04.orig/bindings/pyroot/JsMVA/JPyInterface.py 2017-12-13 08:27:42.000000000 +0100 -+++ root-6.12.04/bindings/pyroot/JsMVA/JPyInterface.py 2018-01-08 13:07:08.088711528 +0100 +diff -ur root-6.18.00.orig/bindings/pyroot/JsMVA/JPyInterface.py root-6.18.00/bindings/pyroot/JsMVA/JPyInterface.py +--- root-6.18.00.orig/bindings/pyroot/JsMVA/JPyInterface.py 2019-06-25 10:52:11.000000000 +0200 ++++ root-6.18.00/bindings/pyroot/JsMVA/JPyInterface.py 2019-06-28 22:54:03.937480738 +0200 @@ -188,7 +188,7 @@ ## Class for creating the output scripts and inserting them to cell output class JsDraw: @@ -10,9 +10,9 @@ diff -ur root-6.12.04.orig/bindings/pyroot/JsMVA/JPyInterface.py root-6.12.04/bi
## String containing the link to JavaScript files __jsMVASourceDir = __jsMVARepo + "/js" -diff -ur root-6.12.04.orig/bindings/pyroot/JupyROOT/helpers/utils.py root-6.12.04/bindings/pyroot/JupyROOT/helpers/utils.py ---- root-6.12.04.orig/bindings/pyroot/JupyROOT/helpers/utils.py 2017-12-13 08:27:42.000000000 +0100 -+++ root-6.12.04/bindings/pyroot/JupyROOT/helpers/utils.py 2018-01-08 13:13:40.857391851 +0100 +diff -ur root-6.18.00.orig/bindings/pyroot/JupyROOT/helpers/utils.py root-6.18.00/bindings/pyroot/JupyROOT/helpers/utils.py +--- root-6.18.00.orig/bindings/pyroot/JupyROOT/helpers/utils.py 2019-06-25 10:52:11.000000000 +0200 ++++ root-6.18.00/bindings/pyroot/JupyROOT/helpers/utils.py 2019-06-28 22:54:03.938480727 +0200 @@ -39,7 +39,7 @@ _jsNotDrawableClassesPatterns = ["TEve*","TF3","TPolyLine3D"]
@@ -22,9 +22,9 @@ diff -ur root-6.12.04.orig/bindings/pyroot/JupyROOT/helpers/utils.py root-6.12.0 _jsCanvasWidth = 800 _jsCanvasHeight = 600
-diff -ur root-6.12.04.orig/etc/notebook/JsMVA/js/JsMVA.js root-6.12.04/etc/notebook/JsMVA/js/JsMVA.js ---- root-6.12.04.orig/etc/notebook/JsMVA/js/JsMVA.js 2017-12-13 08:27:42.000000000 +0100 -+++ root-6.12.04/etc/notebook/JsMVA/js/JsMVA.js 2018-01-08 13:20:04.248138322 +0100 +diff -ur root-6.18.00.orig/etc/notebook/JsMVA/js/JsMVA.js root-6.18.00/etc/notebook/JsMVA/js/JsMVA.js +--- root-6.18.00.orig/etc/notebook/JsMVA/js/JsMVA.js 2019-06-25 10:52:11.000000000 +0200 ++++ root-6.18.00/etc/notebook/JsMVA/js/JsMVA.js 2019-06-28 22:54:03.938480727 +0200 @@ -16,7 +16,7 @@
(function(factory){ @@ -34,3 +34,15 @@ diff -ur root-6.12.04.orig/etc/notebook/JsMVA/js/JsMVA.js root-6.12.04/etc/noteb
var url = ""; if (requirejs.s.contexts.hasOwnProperty("_")) { +diff -ur root-6.18.00.orig/etc/notebook/JsMVA/js/NetworkDesigner.js root-6.18.00/etc/notebook/JsMVA/js/NetworkDesigner.js +--- root-6.18.00.orig/etc/notebook/JsMVA/js/NetworkDesigner.js 2019-06-25 10:52:11.000000000 +0200 ++++ root-6.18.00/etc/notebook/JsMVA/js/NetworkDesigner.js 2019-06-29 07:08:46.582682582 +0200 +@@ -19,7 +19,7 @@ + paths: { + "jquery-connections": baseURL + "jquery.connections.min", + "jquery-timing": baseURL + "jquery-timing.min", +- "d3": "https://root.cern.ch/js/notebook/scripts/d3.min" ++ "d3": "/static/jsroot/scripts/d3.min" + }, + shim: { + "jquery-ui": { diff --git a/root-man-install.patch b/root-man-install.patch new file mode 100644 index 0000000..b5d54e1 --- /dev/null +++ b/root-man-install.patch @@ -0,0 +1,24 @@ +From 3f1e65654ddec561e5161d0f62367497d16aa223 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert mattias.ellert@physics.uu.se +Date: Thu, 27 Jun 2019 18:22:13 +0200 +Subject: [PATCH 1/2] Install generated man pages in the correct subdirectory + (man/man1) + +--- + cmake/modules/RootNewMacros.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cmake/modules/RootNewMacros.cmake b/cmake/modules/RootNewMacros.cmake +index 0780ea5a5a..58e403a249 100644 +--- a/cmake/modules/RootNewMacros.cmake ++++ b/cmake/modules/RootNewMacros.cmake +@@ -1540,5 +1540,5 @@ function(generateManual name input output) + ${PYTHON_EXECUTABLE} -B ${CMAKE_SOURCE_DIR}/build/misc/argparse2help.py ${input} ${output} + ) + +- install(FILES ${output} DESTINATION ${CMAKE_INSTALL_MANDIR}) ++ install(FILES ${output} DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) + endfunction() +-- +2.21.0 + diff --git a/root-ppc64-doc.patch b/root-ppc64-doc.patch deleted file mode 100644 index 843e94e..0000000 --- a/root-ppc64-doc.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff -ur root-6.16.00.orig/tutorials/dataframe/df006_ranges.py root-6.16.00/tutorials/dataframe/df006_ranges.py ---- root-6.16.00.orig/tutorials/dataframe/df006_ranges.py 2019-01-23 09:23:37.000000000 +0100 -+++ root-6.16.00/tutorials/dataframe/df006_ranges.py 2019-02-14 15:05:28.515294288 +0100 -@@ -4,7 +4,6 @@ - ## This tutorial shows how to express the concept of ranges when working with the RDataFrame. - ## - ## \macro_code --## \macro_output - ## - ## \date March 2017 - ## \author Danilo Piparo -diff -ur root-6.16.00.orig/tutorials/roostats/rs102_hypotestwithshapes.C root-6.16.00/tutorials/roostats/rs102_hypotestwithshapes.C ---- root-6.16.00.orig/tutorials/roostats/rs102_hypotestwithshapes.C 2019-01-23 09:23:37.000000000 +0100 -+++ root-6.16.00/tutorials/roostats/rs102_hypotestwithshapes.C 2019-02-14 15:00:40.498382881 +0100 -@@ -13,8 +13,6 @@ - /// In this example, shape uncertainties are not taken into account, but - /// normalization uncertainties are. - /// --/// \macro_image --/// \macro_output - /// \macro_code - /// - /// \author Kyle Cranmer -diff -ur root-6.16.00.orig/tutorials/roostats/rs701_BayesianCalculator.C root-6.16.00/tutorials/roostats/rs701_BayesianCalculator.C ---- root-6.16.00.orig/tutorials/roostats/rs701_BayesianCalculator.C 2019-01-23 09:23:37.000000000 +0100 -+++ root-6.16.00/tutorials/roostats/rs701_BayesianCalculator.C 2019-02-14 15:00:40.510382752 +0100 -@@ -5,8 +5,6 @@ - /// - /// This tutorial shows an example of using the BayesianCalculator class - /// --/// \macro_image --/// \macro_output - /// \macro_code - /// - /// \author Gregory Schott diff --git a/root-pretty-printers.patch b/root-pretty-printers.patch new file mode 100644 index 0000000..eb198e7 --- /dev/null +++ b/root-pretty-printers.patch @@ -0,0 +1,50 @@ +From 88f6e1b332489582f457d17afd6a2a6f6a4f988d Mon Sep 17 00:00:00 2001 +From: Mattias Ellert mattias.ellert@physics.uu.se +Date: Mon, 1 Jul 2019 08:56:27 +0200 +Subject: [PATCH] Install GDB pretty printers with correct filename when using + soversion + +The name of the pretty printer script must match the name of the +binary, not a symlink. When soversion is used the unversioned .so file +is a symlink to the versioned library file. +--- + build/CMakeLists.txt | 23 +++++++++++++++++------ + 1 file changed, 17 insertions(+), 6 deletions(-) + +diff --git a/build/CMakeLists.txt b/build/CMakeLists.txt +index b84481041b..03644b6c00 100644 +--- a/build/CMakeLists.txt ++++ b/build/CMakeLists.txt +@@ -20,12 +20,23 @@ ROOT_EXECUTABLE(rmkdepend + ) + + IF(CMAKE_BUILD_TYPE MATCHES "Debug|RelWithDebInfo") +- file(COPY "gdbPrinters/" +- DESTINATION ${CMAKE_BINARY_DIR}/lib +- FILES_MATCHING PATTERN "*-gdb.py") ++ file(GLOB PRETTY_PRINTERS "gdbPrinters/*.so-gdb.py") ++ set(PRETTY_PRINTER_DESTS) ++ foreach(PRETTY_PRINTER ${PRETTY_PRINTERS}) ++ get_filename_component(PRETTY_PRINTER_DEST ${PRETTY_PRINTER} NAME) ++ if(soversion) ++ string(REPLACE ".so-gdb.py" ".so.${ROOT_VERSION}-gdb.py" ++ PRETTY_PRINTER_DEST ${PRETTY_PRINTER_DEST}) ++ endif(soversion) ++ string(PREPEND PRETTY_PRINTER_DEST ${CMAKE_BINARY_DIR}/lib/) ++ add_custom_command(OUTPUT ${PRETTY_PRINTER_DEST} ++ COMMAND ${CMAKE_COMMAND} -E copy ${PRETTY_PRINTER} ${PRETTY_PRINTER_DEST} ++ DEPENDS ${PRETTY_PRINTER}) ++ list(APPEND PRETTY_PRINTER_DESTS ${PRETTY_PRINTER_DEST}) ++ endforeach() ++ add_custom_target(copy_pretty_printers ALL DEPENDS ${PRETTY_PRINTER_DESTS}) + +- file(GLOB PRETTY_PRINTERS "gdbPrinters/*-gdb.py") +- install(FILES ${PRETTY_PRINTERS} +- DESTINATION lib ++ install(FILES ${PRETTY_PRINTER_DESTS} ++ DESTINATION ${CMAKE_INSTALL_LIBDIR} + CONFIGURATIONS Debug RelWithDebInfo) + ENDIF() +-- +2.21.0 + diff --git a/root-python3.patch b/root-python3.patch new file mode 100644 index 0000000..e1cda30 --- /dev/null +++ b/root-python3.patch @@ -0,0 +1,69 @@ +From 4cf9170f308934688e7f767086589cd8cc0a0a85 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert mattias.ellert@physics.uu.se +Date: Fri, 28 Jun 2019 22:23:49 +0200 +Subject: [PATCH] Python 3 compatibility + +--- + tutorials/histfactory/example.py | 2 +- + tutorials/pyroot/mrt.py | 20 ++++++++++---------- + 2 files changed, 11 insertions(+), 11 deletions(-) + +diff --git a/tutorials/histfactory/example.py b/tutorials/histfactory/example.py +index 91e1d26939..6ccf3bb350 100755 +--- a/tutorials/histfactory/example.py ++++ b/tutorials/histfactory/example.py +@@ -12,7 +12,7 @@ def main(): + try: + import ROOT + except: +- print "It seems that pyROOT isn't properly configured" ++ print("It seems that pyROOT isn't properly configured") + return + + """ +diff --git a/tutorials/pyroot/mrt.py b/tutorials/pyroot/mrt.py +index b3a8c0d719..17a73f6881 100644 +--- a/tutorials/pyroot/mrt.py ++++ b/tutorials/pyroot/mrt.py +@@ -10,28 +10,28 @@ + ## + ## \author Wim Lavrijsen + +-import sys, string, os +-from ROOT import TFile, TNtuple ++import sys, os ++from ROOT import TFile, TNtuple, TROOT + + +-ifn = os.path.expandvars("${ROOTSYS}/tutorials/pyroot/aptuple.txt") ++ifn = os.path.join(str(TROOT.GetTutorialDir()), 'pyroot', 'aptuple.txt') + ofn = 'aptuple.root' + +-print 'opening file', ifn, '...' ++print('opening file %s ...' % ifn) + infile = open( ifn, 'r' ) + lines = infile.readlines() + title = lines[0] +-labels = string.split( lines[1] ) ++labels = lines[1].split() + +-print 'writing file', ofn, '...' ++print('writing file %s ...' % ofn) + outfile = TFile( ofn, 'RECREATE', 'ROOT file with an NTuple' ) +-ntuple = TNtuple( 'ntuple', title, string.join( labels, ':') ) ++ntuple = TNtuple( 'ntuple', title, ':'.join( labels ) ) + + for line in lines[2:]: +- words = string.split( line ) ++ words = line.split() + row = map( float, words ) +- apply( ntuple.Fill, row ) ++ ntuple.Fill(*row) + + outfile.Write() + +-print 'done' ++print('done') +-- +2.21.0 + diff --git a/root-stress-aarch64-ppc64le.patch b/root-stress-aarch64-ppc64le.patch new file mode 100644 index 0000000..a925460 --- /dev/null +++ b/root-stress-aarch64-ppc64le.patch @@ -0,0 +1,29 @@ +From dd6d00b07778023449a7e6fe01f90a524237b20a Mon Sep 17 00:00:00 2001 +From: Mattias Ellert mattias.ellert@physics.uu.se +Date: Mon, 1 Jul 2019 08:53:15 +0200 +Subject: [PATCH] Increase test tolerence + +Test fails on aarch64 and ppc64le on Fedora 30 and Fedora rawhide: +Test 3 : Purge, Reuse of gaps in TFile......................... FAILED + File size= 52010 (expected 51886 +/- 100) + Comp Fact= 2.00 (expected 2.1 +/- 0.3) +--- + test/stress.cxx | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/test/stress.cxx b/test/stress.cxx +index 509bb0f17d..c0b44d9b77 100644 +--- a/test/stress.cxx ++++ b/test/stress.cxx +@@ -406,7 +406,7 @@ void stress3() + #else + constexpr Long64_t lastgood = 51886; + #endif +- constexpr Long64_t tolerance = 100; ++ constexpr Long64_t tolerance = 150; + #ifdef R__HAS_DEFAULT_LZ4 + constexpr Long64_t difflastgoodlz4 = 5500; + if (last < lastgood - tolerance || last > lastgood + difflastgoodlz4 + tolerance || comp < 1.5 || comp > 2.1) +-- +2.21.0 + diff --git a/root-testfiles.sh b/root-testfiles.sh index 5984c5f..c16a23e 100755 --- a/root-testfiles.sh +++ b/root-testfiles.sh @@ -67,7 +67,7 @@ wget -N ${SITE}/sld_ref_4.root wget -N ${SITE}/sld.root wget -N ${SITE}/star_ref_4.root wget -N ${SITE}/star.root -wget -N ${SITE}/tesla_ref_3.root +wget -N ${SITE}/tesla_ref_4.root wget -N ${SITE}/tesla.root wget -N ${SITE}/wa91_ref_3.root wget -N ${SITE}/wa91.root diff --git a/root-unbundle-gtest.patch b/root-unbundle-gtest.patch index 3daf4b9..0fe4103 100644 --- a/root-unbundle-gtest.patch +++ b/root-unbundle-gtest.patch @@ -1,7 +1,7 @@ -diff -ur root-6.16.00.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.16.00/cmake/modules/SearchInstalledSoftware.cmake ---- root-6.16.00.orig/cmake/modules/SearchInstalledSoftware.cmake 2019-01-23 09:23:37.000000000 +0100 -+++ root-6.16.00/cmake/modules/SearchInstalledSoftware.cmake 2019-01-25 12:43:58.106532400 +0100 -@@ -1525,76 +1525,18 @@ +diff -ur root-6.18.00.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.18.00/cmake/modules/SearchInstalledSoftware.cmake +--- root-6.18.00.orig/cmake/modules/SearchInstalledSoftware.cmake 2019-06-25 10:52:11.000000000 +0200 ++++ root-6.18.00/cmake/modules/SearchInstalledSoftware.cmake 2019-06-26 16:00:21.275634375 +0200 +@@ -1380,80 +1380,18 @@
#---Download googletest-------------------------------------------------------------- if (testing) @@ -74,6 +74,10 @@ diff -ur root-6.16.00.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.16 + foreach (lib gmock gmock_main) add_library(${lib} IMPORTED STATIC GLOBAL) - 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}) @@ -83,4 +87,4 @@ diff -ur root-6.16.00.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.16 + endif() endif()
- + #------------------------------------------------------------------------------------ diff --git a/root.desktop b/root.desktop new file mode 100644 index 0000000..159a1db --- /dev/null +++ b/root.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=Root +GenericName=Root +Comment=Numerical data analysis framework +Exec=root +Icon=root +Terminal=true +Type=Application +MimeType=application/x-root; +Categories=Utility; +Encoding=UTF-8 diff --git a/root.png b/root.png new file mode 100644 index 0000000..a7813e5 Binary files /dev/null and b/root.png differ diff --git a/root.spec b/root.spec index 350aa6e..8663a17 100644 --- a/root.spec +++ b/root.spec @@ -1,4 +1,10 @@ %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 @@ -10,31 +16,16 @@ %global __pythondef %{__python2} %endif
-%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} >= 31 -# Hadoop is FTBFS and uninstallable due to missing Java dependencies -%global hadoop 0 -%else -%if %{?fedora}%{!?fedora:0} >= 30 -# Hadoop is not installable on 32 bit archs due to missing Eclipse dependencies -%ifarch %{arm} %{ix86} -%global hadoop 0 +# Don't build python2-root for Fedora >= 31 +%global buildpy2 0 %else -%global hadoop 1 -%endif -%else -%if %{?fedora}%{!?fedora:0} >= 24 -# libhdfs is available for all architectures for Fedora 24 and later. -# For Fedora 20-23 it was only available on Intel (ix86 and x86_64). -%global hadoop 1 -%else -%global hadoop 0 -%endif -%endif +%global buildpy2 1 %endif
+%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. # This is the default for gcc 6.1 and later. @@ -58,9 +49,9 @@ %global __provides_exclude_from ^(%{python2_sitearch}|%{python3_sitearch}%{?python3_other_sitearch:|%{python3_other_sitearch}})/libJupyROOT\.so$
Name: root -Version: 6.16.00 +Version: 6.18.00 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 6%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework
License: LGPLv2+ @@ -75,49 +66,58 @@ Source0: %{name}-%{version}.tar.xz Source1: %{name}-testfiles.tar.xz # Script to generate above source Source2: %{name}-testfiles.sh +# Desktop file and icon +Source3: %{name}.desktop +Source4: %{name}.png +# MIME type file and icon +Source5: %{name}.xml +Source6: application-x-root.png # Use system fonts Patch0: %{name}-fontconfig.patch # Revert the removal of DataFrame for 32 bit architectures Patch1: %{name}-32bit-dataframe.patch -# Don't run gui macros -# https://github.com/root-project/root/pull/3563 -Patch2: %{name}-avoid-gui-crash.patch # Unbundle gtest -Patch3: %{name}-unbundle-gtest.patch +Patch2: %{name}-unbundle-gtest.patch # Use local static script and style files for JupyROOT -Patch4: %{name}-jupyroot-static.patch +Patch3: %{name}-jupyroot-static.patch # Fedora's llvm patches -Patch5: %{name}-PowerPC-Don-t-use-xscvdpspn-on-the-P7.patch -Patch6: %{name}-Fix-return-type-in-ORC-readMem-client-interface.patch -Patch7: %{name}-PPC-Avoid-non-simple-MVT-in-STBRX-optimization.patch +Patch4: %{name}-PowerPC-Don-t-use-xscvdpspn-on-the-P7.patch +Patch5: %{name}-Fix-return-type-in-ORC-readMem-client-interface.patch +Patch6: %{name}-PPC-Avoid-non-simple-MVT-in-STBRX-optimization.patch # Reduce memory usage of build # https://github.com/root-project/root/pull/1516 -Patch8: %{name}-memory-usage.patch +Patch7: %{name}-memory-usage.patch # Reduce memory usage during linking on ARM and x86 by generating # smaller debuginfo for the llmv libraries. # Fedora builders run out of memory with the default setting. -Patch9: %{name}-memory-arm-x86.patch -# Don't run tutorials that crash on ppc64 during doc generation. -# Ensures content of doc package is the same on all architecture -# so that koji accepts it as a noarch package. -Patch10: %{name}-ppc64-doc.patch +Patch8: %{name}-memory-arm-x86.patch # Don't install minicern static library -Patch11: %{name}-dont-install-minicern.patch -# Optimization issue in Geom library -Patch12: %{name}-ix32-geom-opt.patch +Patch9: %{name}-dont-install-minicern.patch # Let clang ignore some gcc options it hasn't implemented # https://github.com/root-project/root/pull/2933 -Patch13: %{name}-clang-ignore-gcc-options.patch -# Make doxygen generation wotk with Python 3 -# https://github.com/root-project/root/pull/3434 -Patch14: %{name}-doxygen-generation-with-python-3.patch +Patch10: %{name}-clang-ignore-gcc-options.patch # Don't create documentation notebooks -Patch15: %{name}-doc-no-notebooks.patch +Patch11: %{name}-doc-no-notebooks.patch # Don't run tutorial requiring firefox during doc generation -Patch16: %{name}-v7-line.patch -# Only install eve7 js files when eve7 is built -# https://github.com/root-project/root/pull/3436 -Patch17: %{name}-dont-install-eve7-files.patch +Patch12: %{name}-v7-line.patch +# Install man pages in correct directory +# https://github.com/root-project/root/pull/4026 +Patch13: %{name}-man-install.patch +# Use correct library names in plugin definitions +# https://github.com/root-project/root/pull/4026 +Patch14: %{name}-fix-plugin-definition.patch +# Don't download test input file if it already exists +# https://github.com/root-project/root/pull/4026 +Patch15: %{name}-dont-download-input-file-if-it-already-exists.patch +# Python 3 fixes +# https://github.com/root-project/root/pull/4026 +Patch16: %{name}-python3.patch +# Increase test tolerance (aarch64 and ppc64le) +# https://github.com/root-project/root/pull/4025 +Patch17: %{name}-stress-aarch64-ppc64le.patch +# Fix GDB pretty printers install name and location +# https://github.com/root-project/root/pull/4024 +Patch18: %{name}-pretty-printers.patch
# s390x suffers from endian issues resulting in failing tests # and broken documentation generation @@ -148,15 +148,10 @@ BuildRequires: xxhash-devel # its dependencies BuildRequires: libAfterImage-devel >= 1.20-21 BuildRequires: ncurses-devel -BuildRequires: avahi-compat-libdns_sd-devel -BuildRequires: avahi-devel BuildRequires: libxml2-devel BuildRequires: fftw-devel BuildRequires: gsl-devel BuildRequires: unuran-devel -BuildRequires: krb5-devel -BuildRequires: krb5-workstation -BuildRequires: openldap-devel %if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8 BuildRequires: mariadb-connector-c-devel %else @@ -171,15 +166,13 @@ BuildRequires: libpq-devel %else BuildRequires: postgresql-devel %endif +%if %{buildpy2} BuildRequires: python2-devel -%if %{?fedora}%{!?fedora:0} >= 15 || %{?rhel}%{!?rhel:0} >= 8 -BuildRequires: python3-devel %endif -%if %{?rhel}%{!?rhel:0} == 7 BuildRequires: python%{python3_pkgversion}-devel +%if %{?rhel}%{!?rhel:0} == 7 BuildRequires: python%{python3_other_pkgversion}-devel %endif -BuildRequires: qt4-devel %if %{root7} %ifarch %{qt5_qtwebengine_arches} BuildRequires: qt5-devel @@ -187,23 +180,15 @@ BuildRequires: qt5-qtwebengine-devel %endif %endif BuildRequires: openssl-devel -BuildRequires: globus-gss-assist-devel -BuildRequires: globus-gsi-credential-devel -BuildRequires: globus-proxy-utils BuildRequires: libtool-ltdl-devel BuildRequires: desktop-file-utils BuildRequires: dcap-devel -BuildRequires: dpm-devel BuildRequires: xrootd-client-devel >= 1:3.3.5 BuildRequires: xrootd-private-devel >= 1:3.3.5 BuildRequires: cfitsio-devel BuildRequires: davix-devel >= 0.2.8 BuildRequires: gfal2-devel BuildRequires: srm-ifce-devel -%if %{hadoop} -BuildRequires: hadoop-devel -%endif -BuildRequires: OCE-devel BuildRequires: R-Rcpp-devel BuildRequires: R-RInside-devel BuildRequires: readline-devel @@ -372,15 +357,25 @@ Obsoletes: %{name}-ruby < 6.00.00 Obsoletes: %{name}-vdt < 6.10.00 Obsoletes: %{name}-proof-pq2 < 6.16.00 Obsoletes: %{name}-rootd < 6.16.00 +Obsoletes: %{name}-geocad < 6.18.00 +Obsoletes: %{name}-graf-qt < 6.18.00 +Obsoletes: %{name}-gui-qt < 6.18.00 +Obsoletes: %{name}-gui-qtgsi < 6.18.00 +Obsoletes: %{name}-io-hdfs < 6.18.00 +Obsoletes: %{name}-io-rfio < 6.18.00 +Obsoletes: %{name}-net-bonjour < 6.18.00 +Obsoletes: %{name}-net-globus < 6.18.00 +Obsoletes: %{name}-net-ldap < 6.18.00 +Obsoletes: %{name}-net-krb5 < 6.18.00 +Obsoletes: %{name}-table < 6.18.00 +%if ! %{buildpy2} +Obsoletes: python2-%{name} < %{version}-%{release} +%endif %if %{py3default} -# Don't build python2-jupyroot/jsmva packages for Fedora >= 29 Obsoletes: python2-jupyroot < %{version}-%{release} Obsoletes: python2-jsmva < %{version}-%{release} Obsoletes: %{name}-rootaas < 6.08.00 %endif -%if ! %{hadoop} -Obsoletes: %{name}-io-hdfs < %{version}-%{release} -%endif
%description core This package contains the core libraries used by ROOT: libCore, libNew, @@ -418,8 +413,10 @@ Obsoletes: %{name}-reflex < 6.00.00 Cling is an interactive C++ interpreter, built on top of Clang and LLVM compiler infrastructure.
+%if %{buildpy2} %package -n python2-%{name} Summary: Python extension for ROOT +%{?python_provide:%python_provide python2-%{name}} Provides: %{name}-python = %{version}-%{release} Obsoletes: %{name}-python < 6.08.00 Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -429,10 +426,12 @@ 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
%if ! %{py3default} %package -n python2-jupyroot Summary: ROOT Jupyter kernel +%{?python_provide:%python_provide python2-jupyroot} Requires: python2-%{name}%{?_isa} = %{version}-%{release} Requires: python2-jsmva = %{version}-%{release} Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -453,6 +452,7 @@ The Jupyter kernel for the ROOT notebook.
%package -n python2-jsmva Summary: TMVA interface used by JupyROOT +%{?python_provide:%python_provide python2-jsmva} BuildArch: noarch Requires: %{name}-tmva = %{version}-%{release}
@@ -462,6 +462,7 @@ TMVA interface used by JupyROOT.
%package -n python%{python3_pkgversion}-%{name} Summary: Python extension for ROOT +%{?python_provide:%python_provide python%{python3_pkgversion}-%{name}} Provides: %{name}-python%{python3_pkgversion} = %{version}-%{release} Obsoletes: %{name}-python%{python3_pkgversion} < 6.08.00 Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -474,6 +475,7 @@ provide a Python interface to ROOT, and a ROOT interface to Python.
%package -n python%{python3_pkgversion}-jupyroot Summary: ROOT Jupyter kernel +%{?python_provide:%python_provide python%{python3_pkgversion}-jupyroot} Requires: python%{python3_pkgversion}-%{name}%{?_isa} = %{version}-%{release} Requires: python%{python3_pkgversion}-jsmva = %{version}-%{release} Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -493,6 +495,7 @@ The Jupyter kernel for the ROOT notebook.
%package -n python%{python3_pkgversion}-jsmva Summary: TMVA interface used by JupyROOT +%{?python_provide:%python_provide python%{python3_pkgversion}-jsmva} BuildArch: noarch Requires: %{name}-tmva = %{version}-%{release}
@@ -502,6 +505,7 @@ 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} @@ -512,6 +516,7 @@ 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} @@ -523,6 +528,7 @@ The Jupyter kernel for the ROOT notebook.
%package -n python%{python3_other_pkgversion}-jsmva Summary: TMVA interface used by JupyROOT +%{?python_provide:%python_provide python%{python3_other_pkgversion}-jsmva} BuildArch: noarch Requires: %{name}-tmva = %{version}-%{release}
@@ -589,14 +595,6 @@ Requires: %{name}-io-xml%{?_isa} = %{version}-%{release} %description gdml This package contains an import/export module for ROOT geometries.
-%package geocad -Summary: OpenCascade import/export for ROOT geometries -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-geom%{?_isa} = %{version}-%{release} - -%description geocad -This package contains an import/export module for ROOT geometries. - %package graf Summary: 2D graphics library for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -666,15 +664,6 @@ Requires: %{name}-graf%{?_isa} = %{version}-%{release} This package contains a library for ROOT, which allows rendering postscript and PDF output.
-%package graf-qt -Summary: Qt renderer for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} - -%description graf-qt -This package contains the Qt renderer for ROOT. - %package graf-x11 Summary: X window system renderer for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -696,6 +685,13 @@ Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} This library contains the basic 3D shapes and classes for ROOT. For a more full-blown geometry library, see the root-geom package.
+%package graf3d-csg +Summary: Constructive solid geometry +Requires: %{name}-core%{?_isa} = %{version}-%{release} + +%description graf3d-csg +This library is used to generate composite shapes. + %package graf3d-eve Summary: Event display library for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -723,6 +719,7 @@ Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} +Requires: %{name}-graf3d-csg%{?_isa} = %{version}-%{release} Requires: %{name}-gui%{?_isa} = %{version}-%{release} Requires: %{name}-gui-ged%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} @@ -830,28 +827,6 @@ Obsoletes: %{name}-guibuilder < 6.14.00 This package contains a library for editing graphical user interfaces in ROOT.
-%package gui-qt -Summary: Qt GUI for ROOT (BNL) -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-qt%{?_isa} = %{version}-%{release} -Requires: %{name}-gui%{?_isa} = %{version}-%{release} -# Package split (gui-qtgsi from gui-qt) -Obsoletes: %{name}-qt < 6.14.00 - -%description gui-qt -This package contains the BNL Qt GUI for ROOT. - -%package gui-qtgsi -Summary: Qt GUI for ROOT (GSI) -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-gui%{?_isa} = %{version}-%{release} -# Package split (gui-qtgsi from gui-qt) -Obsoletes: %{name}-qt < 6.14.00 - -%description gui-qtgsi -This package contains the GSI Qt GUI for ROOT. - %package gui-recorder Summary: Interface for recording and replaying events in ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -970,24 +945,6 @@ Requires: %{name}-io%{?_isa} = %{version}-%{release} %description io-gfal This package contains the Grid File Access Library extension for ROOT.
-%if %{hadoop} -%package io-hdfs -Summary: Hadoop File System input/output library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} - -%description io-hdfs -This package contains the Hadoop File System extension for ROOT. -%endif - -%package io-rfio -Summary: Remote File input/output library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} - -%description io-rfio -This package contains the Remote File IO extension for ROOT. - %package io-sql Summary: SQL input/output library for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1229,19 +1186,6 @@ Requires: %{name}-tree%{?_isa} = %{version}-%{release} This package contains the memory statistics tool for debugging memory leaks and such.
-%package table -Summary: Table library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} - -%description table -This package contains the Table library for ROOT. - %package montecarlo-eg Summary: Event generator library for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1270,6 +1214,7 @@ Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-geom%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} Requires: %{name}-montecarlo-eg%{?_isa} = %{version}-%{release} +Requires: %{name}-physics%{?_isa} = %{version}-%{release}
%description montecarlo-vmc This package contains the VMC library for ROOT. @@ -1289,13 +1234,6 @@ Requires: %{name}-core%{?_isa} = %{version}-%{release} %description net-rpdutils This package contains authentication utilities used by xproofd.
-%package net-bonjour -Summary: Bonjour extension for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} - -%description net-bonjour -This package contains a bonjour extension for ROOT. - %package net-auth Summary: Authentication extension for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1315,36 +1253,6 @@ Requires: %{name}-io%{?_isa} = %{version}-%{release} This package contains the davix extension for ROOT, that provides access to http based storage such as webdav and S3.
-%package net-globus -Summary: Globus extension for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_isa} = %{version}-%{release} -Requires: %{name}-net-auth%{?_isa} = %{version}-%{release} -Requires: globus-proxy-utils - -%description net-globus -This package contains the Globus extension for ROOT, that allows -authentication and authorization against Globus. - -%package net-krb5 -Summary: Kerberos (version 5) extension for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_isa} = %{version}-%{release} -Requires: %{name}-net-auth%{?_isa} = %{version}-%{release} -Requires: krb5-workstation - -%description net-krb5 -This package contains the Kerberos (version 5) extension for ROOT, that -allows authentication and authorization using Kerberos tokens. - -%package net-ldap -Summary: LDAP extension for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} - -%description net-ldap -This package contains the LDAP extension for ROOT. This gives you -access to LDAP directories via ROOT. - %package net-http Summary: HTTP server extension for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1627,6 +1535,9 @@ Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} +%if %{root7} +Requires: %{name}-tree-ntuple%{?_isa} = %{version}-%{release} +%endif Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} # Library split (tree-dataframe and vecops from tree-player) Obsoletes: %{name}-tree-player < 6.14.00 @@ -1704,7 +1615,6 @@ Javascript and style files for the Jupyter ROOT Notebook. %package graf-gpadv7 Summary: Canvas and pad library for ROOT (ROOT 7) Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-primitives%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release}
%description graf-gpadv7 @@ -1713,6 +1623,7 @@ This package contains a library for canvas and pad manipulations. %package graf-primitives Summary: Graphics primitives (ROOT 7) Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpadv7%{?_isa} = %{version}-%{release}
%description graf-primitives This package contains graphics primitives for ROOT 7 @@ -1722,11 +1633,9 @@ Summary: Event display library for ROOT (ROOT 7) Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-geom%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} +Requires: %{name}-graf3d-csg%{?_isa} = %{version}-%{release} Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-net-http%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} Requires: %{name}-montecarlo-eg%{?_isa} = %{version}-%{release} Requires: %{name}-physics%{?_isa} = %{version}-%{release} @@ -1736,6 +1645,15 @@ Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} %description graf3d-eve7 This package contains a library for defining event displays in ROOT 7.
+%package gui-browserv7 +Summary: Browser (ROOT 7) +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} + +%description gui-browserv7 +This package contains a file browser for ROOT 7. + %package gui-canvaspainter Summary: Canvas painter (ROOT 7) Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1749,11 +1667,11 @@ This package contains a canvas painter extension for ROOT 7 %package gui-fitpanelv7 Summary: GUI element for fits in ROOT (ROOT 7) Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpadv7%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-primitives%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} -Requires: %{name}-hist-draw%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release}
%description gui-fitpanelv7 This package contains a library to show a pop-up dialog when fitting @@ -1782,6 +1700,7 @@ This package contains a web display extension for ROOT 7. %package gui-webgui6 Summary: Web based GUI for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} Requires: %{name}-gui%{?_isa} = %{version}-%{release} Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} @@ -1794,10 +1713,18 @@ This package provides a Web based GUI for ROOT. %package hist-draw Summary: Histogram drawing (ROOT 7) Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-primitives%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpadv7%{?_isa} = %{version}-%{release}
%description hist-draw This package contains an histogram drawing extension for ROOT 7. + +%package tree-ntuple +Summary: Ntuple (ROOT 7) +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} + +%description tree-ntuple +This package contains an ntuple extension for ROOT 7. %endif
%prep @@ -1813,10 +1740,7 @@ This package contains an histogram drawing extension for ROOT 7. %patch7 -p1 %patch8 -p1 %patch9 -p1 -%if %{?fedora}%{!?fedora:0} <= 28 && %{?rhel}%{!?rhel:0} <= 7 -# Only relevant for distributions with ppc64 build (ppc64le not affected) %patch10 -p1 -%endif %patch11 -p1 %patch12 -p1 %patch13 -p1 @@ -1824,6 +1748,7 @@ This package contains an histogram drawing extension for ROOT 7. %patch15 -p1 %patch16 -p1 %patch17 -p1 +%patch18 -p1
# Remove bundled sources in order to be sure they are not used # * afterimage @@ -1834,9 +1759,7 @@ rm -rf graf3d/ftgl/src graf3d/ftgl/inc rm -rf graf2d/freetype/src # * glew rm -rf graf3d/glew/src graf3d/glew/inc graf3d/glew/isystem -# * pcre -rm -rf core/pcre/src -# * zlib, lz4, xxhash +# * lz4, pcre, xxhash, zlib rm -rf builtins # * lzma rm -rf core/lzma/src/*.tar.gz @@ -1851,15 +1774,13 @@ rm -rf graf2d/x11/inc/X11 # * mathjax rm -rf documentation/doxygen/mathjax.tar.gz sed /mathjax.tar.gz/d -i documentation/doxygen/Makefile -sed 's!(MATHJAX_RELPATH\s*=).*!\1 file:///usr/share/javascript/mathjax!' \ - -i documentation/doxygen/Doxyfile %if %{root7} # * string_view (<experimental/string_view> requires c++-14) rm core/foundation/inc/ROOT/libcpp_string_view.h \ core/foundation/inc/ROOT/RWrap_libcpp_string_view.h %endif # * jsroot -rm -rf etc/http/* +rm -rf etc/js/*
# Fix file permissions chmod -x interpreter/llvm/src/lib/Target/X86/X86EvexToVex.cpp @@ -1868,14 +1789,16 @@ chmod -x interpreter/llvm/src/lib/Target/X86/X86EvexToVex.cpp 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.6 +# Build PyROOT for python 3 (other) cp -pr bindings/pyroot bindings/python3oth %endif
@@ -1947,13 +1870,10 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dbuiltin_xrootd:BOOL=OFF \ -Dbuiltin_xxhash:BOOL=OFF \ -Dbuiltin_zlib:BOOL=OFF \ - -Dafdsmgrd:BOOL=OFF \ -Dalien:BOOL=OFF \ -Darrow:BOOL=OFF \ -Dasimage:BOOL=ON \ -Dastiff:BOOL=ON \ - -Dbonjour:BOOL=ON \ - -Dcastor:BOOL=OFF \ -Dccache:BOOL=OFF \ -Dcefweb:BOOL=OFF \ -Dclad:BOOL=OFF \ @@ -1961,13 +1881,14 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dcocoa:BOOL=OFF \ -Dcuda:BOOL=OFF \ %if %{root7} - -Dcxx14:BOOL=ON \ + -DCMAKE_CXX_STANDARD=14 \ -Droot7:BOOL=ON \ + -Dwebgui:BOOL=ON \ %else - -Dcxx14:BOOL=OFF \ + -DCMAKE_CXX_STANDARD=11 \ -Droot7:BOOL=OFF \ + -Dwebgui:BOOL=OFF \ %endif - -Dcxx17:BOOL=OFF \ -Dcxxmodules:BOOL=OFF \ -Ddavix:BOOL=ON \ -Ddcache:BOOL=ON \ @@ -1978,16 +1899,9 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dfitsio:BOOL=ON \ -Dfortran:BOOL=ON \ -Dgdml:BOOL=ON \ - -Dgeocad:BOOL=ON \ -Dgfal:BOOL=ON \ - -Dglobus:BOOL=ON \ -Dgsl_shared:BOOL=ON \ -Dgviz:BOOL=ON \ -%if %{hadoop} - -Dhdfs:BOOL=ON \ -%else - -Dhdfs:BOOL=OFF \ -%endif -Dhttp:BOOL=ON \ %if %{tbb} -Dimt:BOOL=ON \ @@ -1995,8 +1909,6 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dimt:BOOL=OFF \ %endif -Djemalloc:BOOL=OFF \ - -Dkrb5:BOOL=ON \ - -Dldap:BOOL=ON \ -Dlibcxx:BOOL=OFF \ -Dmathmore:BOOL=ON \ -Dmemory_termination:BOOL=OFF \ @@ -2013,15 +1925,12 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dpythia8:BOOL=ON \ -Dpython:BOOL=ON \ -DPYTHON_EXECUTABLE:PATH=%{__pythondef} \ - -Dqt:BOOL=ON \ - -Dqtgsi:BOOL=ON \ %ifarch %{qt5_qtwebengine_arches} -Dqt5web:BOOL=ON \ %else -Dqt5web:BOOL=OFF \ %endif -Dr:BOOL=ON \ - -Drfio:BOOL=ON \ -Droofit:BOOL=ON \ -Drpath:BOOL=OFF \ -Druby:BOOL=OFF \ @@ -2031,7 +1940,6 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dsoversion:BOOL=ON \ -Dsqlite:BOOL=ON \ -Dssl:BOOL=ON \ - -Dtable:BOOL=ON \ -Dtcmalloc:BOOL=OFF \ -Dthread:BOOL=ON \ -Dtmva:BOOL=ON \ @@ -2048,8 +1956,8 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dvdt:BOOL=OFF \ -Dveccore:BOOL=OFF \ -Dvecgeom:BOOL=OFF \ + -Dvmc:BOOL=ON \ -Dx11:BOOL=ON \ - -Dxft:BOOL=ON \ -Dxml:BOOL=ON \ -Dxrootd:BOOL=ON \ -Dfail-on-missing:BOOL=ON \ @@ -2061,14 +1969,16 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" ..
%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.6 (prep) +# Build PyROOT for python 3 (other) (prep) cp -pr bindings/pyroot bindings/python3oth %endif
@@ -2076,6 +1986,8 @@ make %{?_smp_mflags}
%if %{py3default}
+%if %{buildpy2} + # Build PyROOT for python 2 mkdir python2 mv CMakeFiles/Makefile2 CMakeFiles/Makefile2.save @@ -2099,6 +2011,8 @@ sed -e "s,${py3i},${py2i},g" -e "s,-l${py3l},-l${py2l},g" \ make %{?_smp_mflags} -f bindings/python2/Makefile PyROOT JupyROOT mv CMakeFiles/Makefile2.save CMakeFiles/Makefile2
+%endif + %else
# Build PyROOT for python 3 @@ -2128,7 +2042,7 @@ mv CMakeFiles/Makefile2.save CMakeFiles/Makefile2
%if %{?rhel}%{!?rhel:0} == 7
-# Build PyROOT for python 3.6 +# Build PyROOT for python 3 (other) mkdir python3oth mv CMakeFiles/Makefile2 CMakeFiles/Makefile2.save sed 's!bindings/pyroot!bindings/python3oth!g' CMakeFiles/Makefile2.save \ @@ -2167,32 +2081,14 @@ emacs -batch -no-site-file -f batch-byte-compile \ # Install desktop entry and icon mkdir -p %{buildroot}%{_datadir}/applications mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps - -cat > root.desktop << EOF -[Desktop Entry] -Name=Root -GenericName=Root -Comment=Numerical data analysis framework -Exec=root -Icon=root -Terminal=true -Type=Application -MimeType=application/x-root; -Categories=Utility; -Encoding=UTF-8 -EOF - -desktop-file-install --dir=%{buildroot}%{_datadir}/applications \ - --vendor "" root.desktop -install -p -m 644 build/package/debian/root-system-bin.png \ - %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/root.png +desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE3} +install -p -m 644 %{SOURCE4} %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
# Install mime type and icon mkdir -p %{buildroot}%{_datadir}/mime/packages mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/mimetypes -install -p -m 644 build/package/debian/root-system-bin.sharedmimeinfo \ - %{buildroot}%{_datadir}/mime/packages/root.xml -install -p -m 644 build/package/debian/application-x-root.png \ +install -p -m 644 %{SOURCE5} %{buildroot}%{_datadir}/mime/packages +install -p -m 644 %{SOURCE6} \ %{buildroot}%{_datadir}/icons/hicolor/48x48/mimetypes
# Move python cli helper to its own directory @@ -2201,8 +2097,21 @@ mv %{buildroot}%{_libdir}/%{name}/cmdLineUtils.py* \ %{buildroot}%{_datadir}/%{name}/cli sed -e '/^#!/d' -i %{buildroot}%{_datadir}/%{name}/cli/cmdLineUtils.py
+# Move GDB pretty printers to auto load safe path +mkdir -p %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name} +mv %{buildroot}%{_libdir}/%{name}/*-gdb.py \ + %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name} + +# Do python byte compilation (for non-standard paths) +%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8 +# This is the default for Fedora 30+, set it for Fedora 28-29 +%global _python_bytecompile_extra 0 %if %{py3default} %py_byte_compile %{__python3} %{buildroot}%{_datadir}/%{name}/cli +%else +%py_byte_compile %{__python2} %{buildroot}%{_datadir}/%{name}/cli +%endif +%py_byte_compile %{__python3} %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name} %endif
%if %{py3default} @@ -2229,6 +2138,8 @@ 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 @@ -2247,6 +2158,8 @@ 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 @@ -2416,19 +2329,15 @@ sed -e 's!/usr/bin/env python!%{__pythondef}!' \ %{buildroot}%{_pkgdocdir}/tutorials/tmva/keras/RegressionKeras.py
# Remove some junk -rm %{buildroot}%{_datadir}/%{name}/hostcert.conf rm %{buildroot}%{_datadir}/%{name}/proof/*.sample rm -rf %{buildroot}%{_datadir}/%{name}/proof/utils rm %{buildroot}%{_datadir}/%{name}/root.desktop -rm %{buildroot}%{_bindir}/setenvwrap.csh rm %{buildroot}%{_bindir}/setxrd* rm %{buildroot}%{_bindir}/thisroot* rm %{buildroot}%{_mandir}/man1/g2rootold.1 rm %{buildroot}%{_mandir}/man1/genmap.1 rm %{buildroot}%{_mandir}/man1/proofserva.1 rm %{buildroot}%{_mandir}/man1/roota.1 -rm %{buildroot}%{_includedir}/%{name}/*.cw -rm %{buildroot}%{_includedir}/%{name}/*.pri rm %{buildroot}%{_pkgdocdir}/INSTALL rm %{buildroot}%{_pkgdocdir}/README.ALIEN rm %{buildroot}%{_pkgdocdir}/README.CXXMODULES.md @@ -2439,47 +2348,31 @@ rm %{buildroot}%{_datadir}/%{name}/macros/fileopen.C
# Remove plugin definitions for non-built and obsolete plugins pushd %{buildroot}%{_datadir}/%{name}/plugins -rm TAFS/P010_TAFS.C rm TDataProgressDialog/P010_TDataProgressDialog.C rm TDataSetManager/P020_TDataSetManagerAliEn.C -rm TFile/P030_TCastorFile.C rm TFile/P070_TAlienFile.C -%if %{hadoop} == 0 -rm TFile/P110_THDFSFile.C -%endif rm TGLManager/P020_TGWin32GLManager.C rm TGLManager/P030_TGOSXGLManager.C rm TGrid/P010_TAlien.C -rm TGrid/P020_TGLite.C %if %{root7} == 0 rm TGuiFactory/P030_TWebGuiFactory.C %endif -rm TImagePlugin/P010_TASPluginGS.C -rm TSQLServer/P030_TSapDBServer.C rm TSQLServer/P040_TOracleServer.C rm TSystem/P030_TAlienSystem.C -%if %{hadoop} == 0 -rm TSystem/P060_THDFSSystem.C -%endif -rm TViewerX3D/P020_TQtViewerX3D.C rm TVirtualGeoConverter/P010_TGeoVGConverter.C rm TVirtualGLImp/P020_TGWin32GL.C rm TVirtualMonitoringWriter/P010_TMonaLisaWriter.C rm TVirtualX/P030_TGWin32.C rm TVirtualX/P050_TGQuartz.C -%if %{root7} == 0 rm TVirtualX/P060_TWebVirtualX.C -%endif -rmdir TAFS rmdir TDataProgressDialog rmdir TGrid -rmdir TImagePlugin rmdir TVirtualGeoConverter popd
# Replace bundled jsroot with symlink to system version -rm -rf %{buildroot}%{_datadir}/%{name}/http -ln -s /usr/share/javascript/jsroot %{buildroot}%{_datadir}/%{name}/http +rm -rf %{buildroot}%{_datadir}/%{name}/js +ln -s /usr/share/javascript/jsroot %{buildroot}%{_datadir}/%{name}/js
# Create ldconfig configuration mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d @@ -2508,8 +2401,14 @@ cp -p interpreter/llvm/src/README.txt interpreter/llvm/src/llvm-README.txt
# Generate documentation pushd documentation/doxygen +mkdir -p doc/html +ln -s /usr/share/javascript/mathjax doc/html/mathjax ln -s ../../files files -ln -sf ../../files/tutorials/df014_CsvDataSource_MuRun2010B.csv +for x in df014_CsvDataSource_MuRun2010B_cpp.csv \ + df014_CsvDataSource_MuRun2010B_py.csv \ + df015_CsvDataSource_MuRun2010B.csv ; do + ln -sf ../../files/tutorials/df014_CsvDataSource_MuRun2010B.csv $x +done # Create the py-hsimple.root file in advance (needed as input) ROOTIGNOREPREFIX=1 PATH=${PWD}/../../builddir/bin:${PATH} \ ROOTSYS=${PWD}/../../builddir \ @@ -2534,8 +2433,7 @@ for f in `find builddir -name cmake_install.cmake -a '!' -path '*/llvm/*'` ; do %else DESTDIR=$tmpdir cmake3 -DCMAKE_INSTALL_COMPONENT=headers -P $f > /dev/null %endif - ( cd $tmpdir ; find . -type f -a '!' -name '*.cw' -a '!' -name '*.pri') | \ - sort | sed 's!^.!!' > $l + ( cd $tmpdir ; find . -type f) | sort | sed 's!^.!!' > $l rm -rf $tmpdir done
@@ -2553,7 +2451,11 @@ ln -s ../../files files popd pushd runtutorials ln -s ../../files files -ln -sf ../../files/tutorials/df014_CsvDataSource_MuRun2010B.csv +for x in df014_CsvDataSource_MuRun2010B_cpp.csv \ + df014_CsvDataSource_MuRun2010B_py.csv \ + df015_CsvDataSource_MuRun2010B.csv ; do + ln -sf ../../files/tutorials/df014_CsvDataSource_MuRun2010B.csv $x +done popd pushd tmva/tmva/test/DNN ln -s ../../../../../files files @@ -2581,40 +2483,92 @@ popd # reads sqlite data over network: # http://root.cern.ch/files/RSqliteDS_test.sqlite # +# - tutorial-dataframe-df###_SQlite* +# reads sqlite data over network: +# http://root.cern.ch/files/root_download_stats.sqlite +# +# - gtest-tree-treeplayer-test-treeprocessormt # - tutorial-dataframe-df102_NanoAODDimuonAnalysis # - tutorial-dataframe-df103_NanoAODHiggsAnalysis # reads input data over network: # root://eospublic.cern.ch//eos/root-eos/cms_opendata_2012_nanoaod/ # +# - tutorial-v7-ntuple-ntpl003_lhcbOpenData +# reads input data over network +# http://root.cern.ch/files/LHCb/lhcb_B2HHH_MagnetUp.root (425 MB) +# +# - tutorial-v7-ntuple-ntpl004_dimuon +# reads input data over network +# http://root.cern.ch/files/NanoAOD_DoubleMuon_CMS2011OpenData.root (1.5 GB) +# # - tutorial-pythia-pythia8 # sometimes times out # # - tutorial-v7-line.cxx # requires a web browser (and js-jsroot) to render javascript graphics -excluded="test-stressIOPlugins-.*|tutorial-dataframe-df101_h1Analysis|tutorial-tree-run_h1analysis|tutorial-multicore-imt001_parBranchProcessing|tutorial-multicore-mp103_processSelector|tutorial-multicore-mp104_processH1|tutorial-multicore-mp105_processEntryList|tutorial-multicore-imt101_parTreeProcessing|gtest-tree-dataframe-test-datasource-sqlite|tutorial-dataframe-df102_NanoAODDimuonAnalysis|tutorial-dataframe-df103_NanoAODHiggsAnalysis|tutorial-pythia-pythia8|tutorial-v7-line.cxx" - -%ifarch %{ix86} -%if %{?fedora}%{!?fedora:0} == 28 -# Test failing on ix86 on Fedora 28 -# https://sft.its.cern.ch/jira/browse/ROOT-9893 -# - test-stressgeometry(-interpreted) -excluded="${excluded}|test-stressgeometry" +excluded="\ +test-stressIOPlugins|\ +tutorial-dataframe-df101_h1Analysis|\ +tutorial-tree-run_h1analysis|\ +tutorial-multicore-imt001_parBranchProcessing|\ +tutorial-multicore-mp103_processSelector|\ +tutorial-multicore-mp104_processH1|\ +tutorial-multicore-mp105_processEntryList|\ +tutorial-multicore-imt101_parTreeProcessing|\ +gtest-tree-dataframe-test-datasource-sqlite|\ +tutorial-dataframe-df..._SQlite|\ +gtest-tree-treeplayer-test-treeprocessormt|\ +tutorial-dataframe-df102_NanoAODDimuonAnalysis|\ +tutorial-dataframe-df103_NanoAODHiggsAnalysis|\ +tutorial-v7-ntuple-ntpl003_lhcbOpenData|\ +tutorial-v7-ntuple-ntpl004_dimuon|\ +tutorial-pythia-pythia8|\ +tutorial-v7-line.cxx" + +%ifarch %{ix86} %{arm} +%if %{?fedora}%{!?fedora:0} >= 30 +# Tests failing on 32 bit architectures on Fedoea 30+ (gcc 9?) +# A bit random - not all the tests fail every time... +# - gtest-tree-dataframe-test-dataframe-cache +# - gtest-tree-dataframe-test-dataframe-callbacks +# - gtest-tree-dataframe-test-dataframe-colnames +# - gtest-tree-dataframe-test-dataframe-friends +# - gtest-tree-dataframe-test-dataframe-helpers +# - gtest-tree-dataframe-test-dataframe-simple +# - gtest-tree-dataframe-test-dataframe-snapshot +excluded="${excluded}|\ +gtest-tree-dataframe-test-dataframe-cache|\ +gtest-tree-dataframe-test-dataframe-callbacks|\ +gtest-tree-dataframe-test-dataframe-colnames|\ +gtest-tree-dataframe-test-dataframe-friends|\ +gtest-tree-dataframe-test-dataframe-helpers|\ +gtest-tree-dataframe-test-dataframe-simple|\ +gtest-tree-dataframe-test-dataframe-snapshot" %endif %endif
-%ifarch ppc64 -# Tests failing on ppc64 -# https://sft.its.cern.ch/jira/browse/ROOT-6434 -# - test-stresshistofit(-interpreted) -# - test-stresshistogram(-interpreted) -# - test-stressroostats(-interpreted) -# - tutorial-dataframe-df006_ranges-py -# - tutorial-roofit-rf203_ranges-py -# - tutorial-roofit-rf511_wsfactory_basic(-py) -# - tutorial-roofit-rf902_numgenconfig-py -# - tutorial-roostats-rs102_hypotestwithshapes (work on EPEL 7) -# - tutorial-roostats-rs701_BayesianCalculator -excluded="${excluded}|test-stresshistofit|test-stresshistogram|test-stressroostats|tutorial-dataframe-df006_ranges-py|tutorial-roofit-rf203_ranges-py|tutorial-roofit-rf511_wsfactory_basic|tutorial-roofit-rf902_numgenconfig-py|tutorial-roostats-rs102_hypotestwithshapes|tutorial-roostats-rs701_BayesianCalculator" +%ifarch %{arm} +# Tests failing on 32 bit arm +# - tutorial-v7-draw.cxx +# - tutorial-v7-draw_mt.cxx +# - tutorial-v7-draw_rh1.cxx +# - tutorial-v7-draw_subpads.cxx +excluded="${excluded}|\ +tutorial-v7-draw.cxx|\ +tutorial-v7-draw_mt.cxx|\ +tutorial-v7-draw_rh1.cxx|\ +tutorial-v7-draw_subpads.cxx" +%endif + +%ifarch ppc64le +%if %{?fedora}%{!?fedora:0} == 30 +# This test fails on Fedora 30 ppc64le with the following error: +# cling::DynamicLibraryManager::loadLibrary(): +# /lib64/libGLdispatch.so.0: cannot allocate memory in static TLS block +# Error in TInterpreter::TCling::AutoLoad: +# failure loading library libRGL.so for TGLHistPainter +excluded="${excluded}|tutorial-roofit-rf608_fitresultaspdf-py" +%endif %endif
make test ARGS="%{?_smp_mflags} --output-on-failure -E "${excluded}"" @@ -2638,6 +2592,8 @@ update-mime-database %{_datadir}/mime >/dev/null 2>&1 || : gtk-update-icon-cache %{_datadir}/icons/hicolor >/dev/null 2>&1 || : %endif
+%if %{buildpy2} + %post -n python2-%{name} if [ -r /var/lib/alternatives/libPyROOT.so ] ; then grep -q %{_libdir}/%{name}/libPyROOT.so.%{version} \ @@ -2671,6 +2627,8 @@ fi libPyROOT.so %{python2_sitearch}/libPyROOT.so %{py2prio} %{?ldconfig}
+%endif + %post -n python%{python3_pkgversion}-%{name} if [ -r /var/lib/alternatives/libPyROOT.so ] ; then grep -q %{_libdir}/%{name}/libPyROOT.so.%{version} \ @@ -2769,16 +2727,15 @@ fi %ldconfig_scriptlets genetic %ldconfig_scriptlets geom %ldconfig_scriptlets gdml -%ldconfig_scriptlets geocad %ldconfig_scriptlets graf %ldconfig_scriptlets graf-asimage %ldconfig_scriptlets graf-fitsio %ldconfig_scriptlets graf-gpad %ldconfig_scriptlets graf-gviz %ldconfig_scriptlets graf-postscript -%ldconfig_scriptlets graf-qt %ldconfig_scriptlets graf-x11 %ldconfig_scriptlets graf3d +%ldconfig_scriptlets graf3d-csg %ldconfig_scriptlets graf3d-eve %ldconfig_scriptlets graf3d-gl %ldconfig_scriptlets graf3d-gviz3d @@ -2788,8 +2745,6 @@ fi %ldconfig_scriptlets gui-fitpanel %ldconfig_scriptlets gui-ged %ldconfig_scriptlets gui-builder -%ldconfig_scriptlets gui-qt -%ldconfig_scriptlets gui-qtgsi %ldconfig_scriptlets gui-recorder %ldconfig_scriptlets hbook %ldconfig_scriptlets hist @@ -2801,10 +2756,6 @@ fi %ldconfig_scriptlets io %ldconfig_scriptlets io-dcache %ldconfig_scriptlets io-gfal -%if %{hadoop} -%ldconfig_scriptlets io-hdfs -%endif -%ldconfig_scriptlets io-rfio %ldconfig_scriptlets io-sql %ldconfig_scriptlets io-xml %ldconfig_scriptlets io-xmlparser @@ -2825,27 +2776,14 @@ fi %ldconfig_scriptlets unuran %ldconfig_scriptlets vecops %ldconfig_scriptlets memstat -%ldconfig_scriptlets table %ldconfig_scriptlets montecarlo-eg %ldconfig_scriptlets montecarlo-pythia8 %ldconfig_scriptlets montecarlo-vmc %ldconfig_scriptlets net %ldconfig_scriptlets net-rpdutils -%ldconfig_scriptlets net-bonjour %ldconfig_scriptlets net-auth %ldconfig_scriptlets net-davix -%ldconfig_scriptlets net-globus -%ldconfig_scriptlets net-krb5 -%ldconfig_scriptlets net-ldap %ldconfig_scriptlets net-http - -%pretrans net-http -p <lua> -path = "%{_datadir}/%{name}/http" -st = posix.stat(path) -if st and st.type == "directory" then - os.execute("rm -rf " .. path) -end - %ldconfig_scriptlets net-httpsniff %ldconfig_scriptlets netx %ldconfig_scriptlets proof @@ -2871,6 +2809,7 @@ end %ldconfig_scriptlets graf-gpadv7 %ldconfig_scriptlets graf-primitives %ldconfig_scriptlets graf3d-eve7 +%ldconfig_scriptlets gui-browserv7 %ldconfig_scriptlets gui-canvaspainter %ldconfig_scriptlets gui-fitpanelv7 %ifarch %{qt5_qtwebengine_arches} @@ -2879,6 +2818,7 @@ end %ldconfig_scriptlets gui-webdisplay %ldconfig_scriptlets gui-webgui6 %ldconfig_scriptlets hist-draw +%ldconfig_scriptlets tree-ntuple %endif
%files @@ -2921,6 +2861,12 @@ end %{_libdir}/%{name}/libRint.* %{_libdir}/%{name}/libThread.* %{_libdir}/%{name}/lib*Dict.* +%dir %{_datadir}/gdb/auto-load%{_libdir}/%{name} +%{_datadir}/gdb/auto-load%{_libdir}/%{name}/libCore.* +%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8 +%dir %{_datadir}/gdb/auto-load%{_libdir}/%{name}/__pycache__ +%{_datadir}/gdb/auto-load%{_libdir}/%{name}/__pycache__/libCore.* +%endif %dir %{_datadir}/%{name} %{_datadir}/%{name}/allDict.cxx.pch %{_datadir}/%{name}/class.rules @@ -2951,10 +2897,8 @@ end %{_includedir}/%{name}/libc.modulemap %{_includedir}/%{name}/module.modulemap %{_includedir}/%{name}/stl.modulemap -%{_includedir}/%{name}/modulemap.overlay.yaml %dir %{_includedir}/%{name}/Math %dir %{_includedir}/%{name}/ROOT -%{_datadir}/aclocal/root.m4 %config(noreplace) %{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf %dir %{_pkgdocdir} # CREDITS and LICENSE are used at runtime by the .credits and .license commands @@ -2973,6 +2917,7 @@ end %{_bindir}/genreflex %{_bindir}/rootcint %{_bindir}/rootcling +%{_mandir}/man1/rootcling.1* %{_libdir}/%{name}/libCling.* %{_datadir}/%{name}/cling %{_datadir}/%{name}/dictpch @@ -2987,9 +2932,9 @@ end %doc %{_pkgdocdir}/html
%files tutorial -%doc %{_pkgdocdir}/test %doc %{_pkgdocdir}/tutorials
+%if %{buildpy2} %files -n python2-%{name} -f includelist-bindings-pyroot %{_libdir}/%{name}/libPyROOT.rootmap %{_libdir}/%{name}/libPyROOT.so @@ -3001,6 +2946,7 @@ end %{python2_sitearch}/ROOT-*.egg-info %{python2_sitearch}/cppyy.py* %{python2_sitearch}/_pythonization.py* +%endif
%if ! %{py3default} %files -n python2-jupyroot @@ -3095,10 +3041,6 @@ end %{_libdir}/%{name}/libGdml.* %{_libdir}/%{name}/libGdml_rdict.pcm
-%files geocad -f includelist-geom-geocad -%{_libdir}/%{name}/libGeoCad.* -%{_libdir}/%{name}/libGeoCad_rdict.pcm - %files graf -f includelist-graf2d-graf %{_libdir}/%{name}/libGraf.* %{_libdir}/%{name}/libGraf_rdict.pcm @@ -3110,6 +3052,7 @@ end %{_libdir}/%{name}/libASImageGui.* %{_libdir}/%{name}/libASImageGui_rdict.pcm %{_datadir}/%{name}/plugins/TImage/P010_TASImage.C +%{_datadir}/%{name}/plugins/TImagePlugin/P010_TASPluginGS.C %{_datadir}/%{name}/plugins/TPaletteEditor/P010_TASPaletteEditor.C
%files graf-fitsio -f includelist-graf2d-fitsio @@ -3134,11 +3077,6 @@ end %{_datadir}/%{name}/plugins/TVirtualPS/P040_TImageDump.C %{_datadir}/%{name}/plugins/TVirtualPS/P050_TTeXDump.C
-%files graf-qt -f includelist-graf2d-qt -%{_libdir}/%{name}/libGQt.* -%{_libdir}/%{name}/libGQt_rdict.pcm -%{_datadir}/%{name}/plugins/TVirtualX/P040_TGQt.C - %files graf-x11 -f includelist-graf2d-x11 %{_libdir}/%{name}/libGX11.* %{_libdir}/%{name}/libGX11_rdict.pcm @@ -3152,6 +3090,10 @@ end %{_libdir}/%{name}/libGraf3d_rdict.pcm %{_datadir}/%{name}/plugins/TView/P010_TView3D.C
+%files graf3d-csg -f includelist-graf3d-csg +%{_libdir}/%{name}/libRCsg.* +%{_libdir}/%{name}/libRCsg_rdict.pcm + %files graf3d-eve -f includelist-graf3d-eve %{_libdir}/%{name}/libEve.* %{_libdir}/%{name}/libEve_rdict.pcm @@ -3204,15 +3146,6 @@ end %{_datadir}/%{name}/plugins/TGuiBuilder/P010_TRootGuiBuilder.C %{_datadir}/%{name}/plugins/TVirtualDragManager/P010_TGuiBldDragManager.C
-%files gui-qt -f includelist-gui-qtroot -%{_libdir}/%{name}/libQtRoot.* -%{_libdir}/%{name}/libQtRoot_rdict.pcm -%{_datadir}/%{name}/plugins/TGuiFactory/P020_TQtRootGuiFactory.C - -%files gui-qtgsi -f includelist-gui-qtgsi -%{_libdir}/%{name}/libQtGSI.* -%{_libdir}/%{name}/libQtGSI_rdict.pcm - %files gui-recorder -f includelist-gui-recorder %{_libdir}/%{name}/libRecorder.* %{_libdir}/%{name}/libRecorder_rdict.pcm @@ -3276,20 +3209,6 @@ end %{_libdir}/%{name}/libGFAL_rdict.pcm %{_datadir}/%{name}/plugins/TFile/P050_TGFALFile.C
-%if %{hadoop} -%files io-hdfs -f includelist-io-hdfs -%{_libdir}/%{name}/libHDFS.* -%{_libdir}/%{name}/libHDFS_rdict.pcm -%{_datadir}/%{name}/plugins/TFile/P110_THDFSFile.C -%{_datadir}/%{name}/plugins/TSystem/P060_THDFSSystem.C -%endif - -%files io-rfio -f includelist-io-rfio -%{_libdir}/%{name}/libRFIO.* -%{_libdir}/%{name}/libRFIO_rdict.pcm -%{_datadir}/%{name}/plugins/TFile/P020_TRFIOFile.C -%{_datadir}/%{name}/plugins/TSystem/P010_TRFIOSystem.C - %files io-sql -f includelist-io-sql %{_libdir}/%{name}/libSQLIO.* %{_libdir}/%{name}/libSQLIO_rdict.pcm @@ -3404,10 +3323,6 @@ end %{_libdir}/%{name}/libMemStat.* %{_libdir}/%{name}/libMemStat_rdict.pcm
-%files table -f includelist-misc-table -%{_libdir}/%{name}/libTable.* -%{_libdir}/%{name}/libTable_rdict.pcm - %files montecarlo-eg -f includelist-montecarlo-eg %{_libdir}/%{name}/libEG.* %{_libdir}/%{name}/libEG_rdict.pcm @@ -3439,10 +3354,6 @@ end %files net-rpdutils %{_libdir}/%{name}/libSrvAuth.*
-%files net-bonjour -f includelist-net-bonjour -%{_libdir}/%{name}/libBonjour.* -%{_libdir}/%{name}/libBonjour_rdict.pcm - %files net-auth -f includelist-net-auth %{_libdir}/%{name}/libRootAuth.* %{_libdir}/%{name}/libRootAuth_rdict.pcm @@ -3455,22 +3366,10 @@ end %{_datadir}/%{name}/plugins/TFile/P130_TDavixFile.C %{_datadir}/%{name}/plugins/TSystem/P045_TDavixSystem.C
-%files net-globus -%{_libdir}/%{name}/libGlobusAuth.* -%doc %{_pkgdocdir}/README.GLOBUS - -%files net-krb5 -f includelist-net-krb5auth -%{_libdir}/%{name}/libKrb5Auth.* -%{_libdir}/%{name}/libKrb5Auth_rdict.pcm - -%files net-ldap -f includelist-net-ldap -%{_libdir}/%{name}/libRLDAP.* -%{_libdir}/%{name}/libRLDAP_rdict.pcm - %files net-http -f includelist-net-http %{_libdir}/%{name}/libRHTTP.* %{_libdir}/%{name}/libRHTTP_rdict.pcm -%{_datadir}/%{name}/http +%{_datadir}/%{name}/js %doc net/http/README.txt net/http/civetweb/*.md
%files net-httpsniff -f includelist-net-httpsniff @@ -3544,6 +3443,10 @@ end %{_libdir}/%{name}/libRooFit_rdict.pcm %{_libdir}/%{name}/libRooFitCore.* %{_libdir}/%{name}/libRooFitCore_rdict.pcm +%{_datadir}/gdb/auto-load%{_libdir}/%{name}/libRooFitCore.* +%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8 +%{_datadir}/gdb/auto-load%{_libdir}/%{name}/__pycache__/libRooFitCore.* +%endif %{_libdir}/%{name}/libRooStats.* %{_libdir}/%{name}/libRooStats_rdict.pcm %dir %{_includedir}/%{name}/RooStats @@ -3645,7 +3548,10 @@ end %files graf3d-eve7 -f includelist-graf3d-eve7 %{_libdir}/%{name}/libROOTEve.* %{_libdir}/%{name}/libROOTEve_rdict.pcm -%{_datadir}/%{name}/eve7 + +%files gui-browserv7 -f includelist-gui-browserv7 +%{_libdir}/%{name}/libROOTBrowserv7.* +%{_libdir}/%{name}/libROOTBrowserv7_rdict.pcm
%files gui-canvaspainter %{_libdir}/%{name}/libROOTCanvasPainter.* @@ -3662,21 +3568,61 @@ end %files gui-webdisplay -f includelist-gui-webdisplay %{_libdir}/%{name}/libROOTWebDisplay.* %{_libdir}/%{name}/libROOTWebDisplay_rdict.pcm +%{_datadir}/%{name}/ui5
%files gui-webgui6 -f includelist-gui-webgui6 %{_libdir}/%{name}/libWebGui6.* %{_libdir}/%{name}/libWebGui6_rdict.pcm %{_datadir}/%{name}/plugins/TGuiFactory/P030_TWebGuiFactory.C -%{_datadir}/%{name}/plugins/TVirtualX/P060_TWebVirtualX.C
%files hist-draw -f includelist-hist-histdraw %{_libdir}/%{name}/libROOTHistDraw.* %{_libdir}/%{name}/libROOTHistDraw_rdict.pcm + +%files tree-ntuple -f includelist-tree-ntuple +%{_libdir}/%{name}/libROOTNTuple.* +%{_libdir}/%{name}/libROOTNTuple_rdict.pcm %endif
%changelog +* Wed Jun 26 2019 Mattias Ellert mattias.ellert@physics.uu.se - 6.18.00-1 +- Update to 6.18.00 +- Drop patches accepted upstream: + - root-avoid-gui-crash.patch + - root-doxygen-generation-with-python-3.patch +- Drop patches with alternative fix implemented upstream: + - root-dont-install-eve7-files.patch + - root-ix32-geom-opt.patch +- Drop ppc64 specific workaround (ppc64 no longer built in Fedora or EPEL): + - root-ppc64-doc.patch +- Dropped subpackages: + - root-geocad + - root-graf-qt + - root-gui-qt + - root-gui-qtgsi + - root-io-hdfs + - root-io-rfio + - root-net-bonjour + - root-net-globus + - root-net-ldap + - root-net-krb5 + - root-table +- Drop BuildRequires needed by the dropped subpackages +- New subpackages: + - root-graf3d-csg (split off from root-graf3d-gl) + - root-gui-browserv7 + - root-tree-ntuple +- Don't build python2-root for Fedora >= 31 +- Include desktop and MIME type files in source RPM (removed from source) +- Install man pages in correct directory +- Use correct library names in plugin definitions +- Don't download test input file if it already exists +- Python 3 fixes +- Increase test tolerance (aarch64 and ppc64le) +- Fix GDB pretty printers install name and location + * Tue Jun 11 2019 Mattias Ellert mattias.ellert@physics.uu.se - 6.16.00-6 -- Check python-config for --embed flag (python 3.8 compatibility) +- Use python-embed pkg-config module if it exists (python 3.8 compatibility)
* Fri May 17 2019 Mattias Ellert mattias.ellert@physics.uu.se - 6.16.00-5 - Build without HDFS support on Fedora 31+ diff --git a/root.xml b/root.xml new file mode 100644 index 0000000..956f69e --- /dev/null +++ b/root.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info"> + <mime-type type="application/x-root"> + <comment>ROOT data file</comment> + <comment xml:lang="de">ROOT Datei</comment> + <comment xml:lang="fr">ROOT banque de donnees</comment> + <comment xml:lang="sv">ROOT data fil</comment> + <comment xml:lang="no">ROOT data fil</comment> + <comment xml:lang="da">ROOT data fil</comment> + <glob pattern="*.root"/> + <magic priority="80"> + <match type="string" value="ROOT" offset="0:3"/> + </magic> + </mime-type> +</mime-info> diff --git a/sources b/sources index bbb7292..e1e5742 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (root-6.16.00.tar.xz) = 2e8906f8cf7c4c434e5e695c379f34aee3f421e6370ccff42dcd4519e281c3844760957f434b737c21f2b5bdf86deaf3928a67e1b952b424f2954d2c6a98ee0b -SHA512 (root-testfiles.tar.xz) = 309231f065f4165b28816f2f511830077f3d1bf8920800b2390bf956481753b304db85719b251e862376bc94a65b3319cff7383fdf9b2a949dc9d7cf0d0114d5 +SHA512 (root-6.18.00.tar.xz) = d7e34c04f22ed2f3a6caf94263126c296df7fda176fc644a166ac47f93663134bd3b34c5d1dfb99cf84071eb93a08602b1cb0a8526610993f099fd3161c897c7 +SHA512 (root-testfiles.tar.xz) = 7006c6591b587c24cf75dc4f6ed9586165b27102539fdde580d0a95853fcec7e9980a881e49e64a09f90af341a8c8fd2f493305ed88e07af144fabd438ba283e
commit dd4b4780b488edbd99508624e8af03f8475cc8c6 Author: Mattias Ellert mattias.ellert@physics.uu.se Date: Tue Jun 11 09:14:28 2019 +0200
Check python-config for --embed flag (python 3.8 compatibility)
diff --git a/root.spec b/root.spec index 813f9ed..350aa6e 100644 --- a/root.spec +++ b/root.spec @@ -60,7 +60,7 @@ Name: root Version: 6.16.00 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 5%{?dist} +Release: 6%{?dist} Summary: Numerical data analysis framework
License: LGPLv2+ @@ -2083,8 +2083,13 @@ 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*$//'` -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*$//'` +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,%{__python3},%{__python2},g' \ -e 's,lib/libPyROOT,python2/libPyROOT,g' \ @@ -2103,8 +2108,13 @@ 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*$//'` -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*$//'` +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,lib${py2l},lib${py3l},g" -e 's,%{__python2},%{__python3},g' \ -e 's,lib/libPyROOT,python3/libPyROOT,g' \ @@ -2125,8 +2135,13 @@ 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*$//'` -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*$//'` +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,lib${py2l},lib${py3l},g" -e 's,%{__python2},%{__python3_other},g' \ -e 's,lib/libPyROOT,python3oth/libPyROOT,g' \ @@ -3660,6 +3675,9 @@ end %endif
%changelog +* Tue Jun 11 2019 Mattias Ellert mattias.ellert@physics.uu.se - 6.16.00-6 +- Check python-config for --embed flag (python 3.8 compatibility) + * Fri May 17 2019 Mattias Ellert mattias.ellert@physics.uu.se - 6.16.00-5 - Build without HDFS support on Fedora 31+ - Hadoop is FTBFS and uninstallable due to missing Java dependencies
commit 637fe32582a2eb88c6c94ac231d48220e2d0cea3 Author: Mattias Ellert mattias.ellert@physics.uu.se Date: Sat May 18 08:19:09 2019 +0200
Build without HDFS support on Fedora 31+ Hadoop is FTBFS and uninstallable due to missing Java dependencies Build without HDFS support for 32 bit architectures on Fedora 30 Hadoop is not installable due to missing Eclipse dependencies
diff --git a/root-v7-line.patch b/root-v7-line.patch index db9da4a..29eed7e 100644 --- a/root-v7-line.patch +++ b/root-v7-line.patch @@ -1,16 +1,6 @@ -From 197ba8fbeccaa49d70a3593ed0e4b1595dd64218 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert mattias.ellert@physics.uu.se -Date: Thu, 14 Feb 2019 13:14:54 +0100 -Subject: [PATCH] Fix v7 line tutorial when running in batch mode - ---- - tutorials/v7/line.cxx | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/tutorials/v7/line.cxx b/tutorials/v7/line.cxx -index b016fd0371..3256de4ecf 100644 ---- a/tutorials/v7/line.cxx -+++ b/tutorials/v7/line.cxx +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. @@ -19,14 +9,3 @@ index b016fd0371..3256de4ecf 100644 /// \macro_code /// /// \date 2018-03-18 -@@ -43,6 +42,5 @@ void line() - canvas->Draw(RLine({0.1_normal, 0.1_normal}, {0.1_normal,0.9_normal})); - canvas->Draw(RLine({0.0_normal, 1.0_normal}, {1.0_normal,0.0_normal})); - -- // canvas->Show(); -- canvas->SaveAs("line.png"); -+ canvas->Show(); - } --- -2.20.1 - diff --git a/root.spec b/root.spec index d2fff96..813f9ed 100644 --- a/root.spec +++ b/root.spec @@ -13,6 +13,18 @@ %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} >= 31 +# Hadoop is FTBFS and uninstallable due to missing Java dependencies +%global hadoop 0 +%else +%if %{?fedora}%{!?fedora:0} >= 30 +# Hadoop is not installable on 32 bit archs due to missing Eclipse dependencies +%ifarch %{arm} %{ix86} +%global hadoop 0 +%else +%global hadoop 1 +%endif +%else %if %{?fedora}%{!?fedora:0} >= 24 # libhdfs is available for all architectures for Fedora 24 and later. # For Fedora 20-23 it was only available on Intel (ix86 and x86_64). @@ -20,6 +32,8 @@ %else %global hadoop 0 %endif +%endif +%endif
%if %{?fedora}%{!?fedora:0} >= 24 || %{?rhel}%{!?rhel:0} >= 8 # Building the experimental ROOT 7 classes requires c++-14. @@ -46,7 +60,7 @@ Name: root Version: 6.16.00 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 4%{?dist} +Release: 5%{?dist} Summary: Numerical data analysis framework
License: LGPLv2+ @@ -66,6 +80,7 @@ Patch0: %{name}-fontconfig.patch # Revert the removal of DataFrame for 32 bit architectures Patch1: %{name}-32bit-dataframe.patch # Don't run gui macros +# https://github.com/root-project/root/pull/3563 Patch2: %{name}-avoid-gui-crash.patch # Unbundle gtest Patch3: %{name}-unbundle-gtest.patch @@ -98,8 +113,7 @@ Patch13: %{name}-clang-ignore-gcc-options.patch Patch14: %{name}-doxygen-generation-with-python-3.patch # Don't create documentation notebooks Patch15: %{name}-doc-no-notebooks.patch -# Make tutorial/v7/line.cxx run in batch mode -# https://github.com/root-project/root/pull/3435 +# Don't run tutorial requiring firefox during doc generation Patch16: %{name}-v7-line.patch # Only install eve7 js files when eve7 is built # https://github.com/root-project/root/pull/3436 @@ -130,7 +144,9 @@ BuildRequires: zlib-devel BuildRequires: xz-devel BuildRequires: lz4-devel BuildRequires: xxhash-devel -BuildRequires: libAfterImage-devel >= 1.20 +# Require a version of libAfterImage that is properly linked to +# its dependencies +BuildRequires: libAfterImage-devel >= 1.20-21 BuildRequires: ncurses-devel BuildRequires: avahi-compat-libdns_sd-devel BuildRequires: avahi-devel @@ -362,6 +378,9 @@ Obsoletes: python2-jupyroot < %{version}-%{release} Obsoletes: python2-jsmva < %{version}-%{release} Obsoletes: %{name}-rootaas < 6.08.00 %endif +%if ! %{hadoop} +Obsoletes: %{name}-io-hdfs < %{version}-%{release} +%endif
%description core This package contains the core libraries used by ROOT: libCore, libNew, @@ -596,6 +615,9 @@ Requires: %{name}-gui%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +# Require a version of libAfterImage that is properly linked to +# its dependencies +Requires: libAfterImage >= 1.20-21
%description graf-asimage This package contains the AfterImage renderer for ROOT, which allows @@ -1952,6 +1974,7 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dexceptions:BOOL=ON \ -Dexplicitlink:BOOL=ON \ -Dfftw3:BOOL=ON \ + -DFIREFOX_EXECUTABLE:PATH=/usr/bin/firefox \ -Dfitsio:BOOL=ON \ -Dfortran:BOOL=ON \ -Dgdml:BOOL=ON \ @@ -2550,7 +2573,10 @@ popd # # - tutorial-pythia-pythia8 # sometimes times out -excluded="test-stressIOPlugins-.*|tutorial-dataframe-df101_h1Analysis|tutorial-tree-run_h1analysis|tutorial-multicore-imt001_parBranchProcessing|tutorial-multicore-mp103_processSelector|tutorial-multicore-mp104_processH1|tutorial-multicore-mp105_processEntryList|tutorial-multicore-imt101_parTreeProcessing|gtest-tree-dataframe-test-datasource-sqlite|tutorial-dataframe-df102_NanoAODDimuonAnalysis|tutorial-dataframe-df103_NanoAODHiggsAnalysis|tutorial-pythia-pythia8" +# +# - tutorial-v7-line.cxx +# requires a web browser (and js-jsroot) to render javascript graphics +excluded="test-stressIOPlugins-.*|tutorial-dataframe-df101_h1Analysis|tutorial-tree-run_h1analysis|tutorial-multicore-imt001_parBranchProcessing|tutorial-multicore-mp103_processSelector|tutorial-multicore-mp104_processH1|tutorial-multicore-mp105_processEntryList|tutorial-multicore-imt101_parTreeProcessing|gtest-tree-dataframe-test-datasource-sqlite|tutorial-dataframe-df102_NanoAODDimuonAnalysis|tutorial-dataframe-df103_NanoAODHiggsAnalysis|tutorial-pythia-pythia8|tutorial-v7-line.cxx"
%ifarch %{ix86} %if %{?fedora}%{!?fedora:0} == 28 @@ -3634,6 +3660,12 @@ end %endif
%changelog +* Fri May 17 2019 Mattias Ellert mattias.ellert@physics.uu.se - 6.16.00-5 +- Build without HDFS support on Fedora 31+ + - Hadoop is FTBFS and uninstallable due to missing Java dependencies +- Build without HDFS support for 32 bit architectures on Fedora 30 + - Hadoop is not installable due to missing Eclipse dependencies + * Fri Mar 08 2019 Troy Dawson tdawson@redhat.com - 6.16.00-4 - Rebuilt to change main python from 3.4 to 3.6
commit 3cde189ab8ca2cc768ae52007779b48e25be6b6c Author: Troy Dawson tdawson@redhat.com Date: Fri Mar 8 07:10:52 2019 -0800
Rebuilt to change main python from 3.4 to 3.6
diff --git a/root.spec b/root.spec index 0915def..d2fff96 100644 --- a/root.spec +++ b/root.spec @@ -46,7 +46,7 @@ Name: root Version: 6.16.00 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 3%{?dist} +Release: 4%{?dist} Summary: Numerical data analysis framework
License: LGPLv2+ @@ -160,8 +160,8 @@ BuildRequires: python2-devel BuildRequires: python3-devel %endif %if %{?rhel}%{!?rhel:0} == 7 -BuildRequires: python34-devel -BuildRequires: python36-devel +BuildRequires: python%{python3_pkgversion}-devel +BuildRequires: python%{python3_other_pkgversion}-devel %endif BuildRequires: qt4-devel %if %{root7} @@ -3634,6 +3634,9 @@ end %endif
%changelog +* Fri Mar 08 2019 Troy Dawson tdawson@redhat.com - 6.16.00-4 +- Rebuilt to change main python from 3.4 to 3.6 + * Mon Feb 18 2019 Mattias Ellert mattias.ellert@physics.uu.se - 6.16.00-3 - Fix typo in patch (missing space)
arch-excludes@lists.fedoraproject.org