diff --git a/.gitignore b/.gitignore index 9ff0650..f6a3a77 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1 @@ /*.tar.gz -/*.tar.xz -/usa.root diff --git a/JupyROOT-on-EPEL b/JupyROOT-on-EPEL deleted file mode 100644 index cf2b5e0..0000000 --- a/JupyROOT-on-EPEL +++ /dev/null @@ -1,37 +0,0 @@ -While all is fine in Fedora and all packages needed to run the JupyROOT -notebook are available there, this is not true for EPEL. - -Hopefully the ipython/jupyter stack will at some point be available in -EPEL too, but at this point in time it is not. - -However, it is possible to work around this issue using a python -virtual environment. - -First, install the required root packages (as root): - -$ yum install root root-notebook python3-jupyroot - -Then return to your non-root user and create a python3 virtual -environment: - -$ python3 -m venv ~/jupyter-env - -Activate the environment: - -$ . ~/jupyter-env/bin/activate - -Then install the missing packages in the virtual environment using pip: - -$ pip install notebook metakernel - -Then start the root notebook: - -$ PYTHONPATH=~/jupyter-env/lib/python3.6/site-packages root --notebook - -And that is it. - -If you want to start it again and you haven't removed the virtual -environment, only two of the steps are necessary: - -$ . ~/jupyter-env/bin/activate -$ PYTHONPATH=~/jupyter-env/lib/python3.6/site-packages root --notebook diff --git a/application-x-root.png b/application-x-root.png deleted file mode 100644 index 64a62f9..0000000 Binary files a/application-x-root.png and /dev/null differ diff --git a/info.png b/info.png new file mode 100644 index 0000000..c0bb348 Binary files /dev/null and b/info.png differ diff --git a/root-32bit-tests.patch b/root-32bit-tests.patch deleted file mode 100644 index cf7956d..0000000 --- a/root-32bit-tests.patch +++ /dev/null @@ -1,53 +0,0 @@ -From ac806becc2aa69898d1c5ca3b195d8fa3003238a Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Fri, 13 Mar 2020 16:21:55 +0100 -Subject: [PATCH] Run tests on 32 bit - ---- - test/stressGeometry.cxx | 8 -------- - tree/tree/test/CMakeLists.txt | 10 +++------- - 2 files changed, 3 insertions(+), 15 deletions(-) - -diff --git a/test/stressGeometry.cxx b/test/stressGeometry.cxx -index 253bc8574e9..48da18b06c3 100644 ---- a/test/stressGeometry.cxx -+++ b/test/stressGeometry.cxx -@@ -257,14 +257,6 @@ void stressGeometry(const char *exp="*", Bool_t generate_ref=kFALSE, Bool_t vecg - if (opt.Contains(exps[i])) iexp[i] = 1; - else iexp[i] = 0; - } --#if defined(linux) && !defined(__x86_64__) -- // 32bit linux: we have an error with ATLAS, see https://sft.its.cern.ch/jira/browse/ROOT-9893 -- // Disable unless explicitly enabled. -- if (all) { -- printf("DISABLED ATLAS TEST due to known failure on Linux 32 bit!\n"); -- iexp[32] = 0; -- } --#endif - TFile::SetCacheFileDir("."); - TString fname; - for (i=0; i -Date: Fri, 26 Jun 2026 06:51:28 +0200 -Subject: [PATCH] Adjust stressGraphics reference - ---- - test/stressGraphics_zlibng.ref | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/test/stressGraphics_zlibng.ref b/test/stressGraphics_zlibng.ref -index b7ca1568c66..2fda1276315 100644 ---- a/test/stressGraphics_zlibng.ref -+++ b/test/stressGraphics_zlibng.ref -@@ -7,7 +7,7 @@ - patterns 23688 1500 19305 200 143676 123000 47075 11000 23076 1500 - crown 2785 50 14546 100 19178 9000 7605 4000 2829 50 - piechart 67345 200 74560 3000 32180 15000 29168 15000 66962 200 -- ttext1 1025 150 12866 150 32266 9900 29901 5000 1072 200 -+ ttext1 1025 150 12866 200 32266 9900 29901 5000 1072 200 - ttext2 432 50 12743 50 9517 150 5306 700 473 50 - tlatex1 5140 50 14050 50 16377 1300 12462 500 5170 70 - tlatex2 5488 80 13507 100 18439 700 12061 500 5502 80 -@@ -18,9 +18,9 @@ - itbf 5600 400 13302 300 16868 400 15083 800 5638 400 - tmathtext 14193187 4000000 12984 100 27112 9500 25080 3000 14193352 4000000 - transparency 2386 50 14700 100 16514 7000 24701 12000 2554 100 -- transpad 16185 5000 17131 350 22801 9500 14232 1000 11271 5000 -+ transpad 16185 5000 17131 350 22801 9500 14232 1500 11271 5000 - statfitparam 27683 400 23370 300 44898 11000 30209 5000 37580 400 -- tgaxis1 20424 400 21388 300 27719 11000 16044 600 20704 400 -+ tgaxis1 20424 400 21388 300 27719 11000 16044 700 20704 400 - tgaxis2 15874 100 19140 300 27682 10300 15197 550 15905 100 - tgaxis3 22678 300 42796 200 44177 17000 20788 11000 22866 300 - tgaxis4 3817 600 14405 250 19907 6300 10674 900 4523 600 -@@ -71,7 +71,7 @@ - annotation3d 547845 3000 193427 3000 32383 12000 58073 20000 547493 3000 - tgraph2d3 16675 3000 29541 500 40536 11300 33519 3900 16452 4000 - ntuple1 256544 5000 382044 7000 54446 30400 45002 6500 261593 7000 -- quarks 4759 180 14134 100 32913 600 25421 1000 4790 180 -+ quarks 4759 180 14134 200 32913 600 25421 1000 4790 180 - timage 1442666 150000 12900 100 26100 100 374206 15000 1102279 250000 - zoomtf1 6130 500 16528 300 49750 14000 29288 4000 5429 500 - zoomfit 6200 700 15706 200 31219 11000 18280 3200 6113 800 --- -2.54.0 - diff --git a/root-Revert-cppyy-Mark-addressof-test-as-xfail-on-modules.patch b/root-Revert-cppyy-Mark-addressof-test-as-xfail-on-modules.patch deleted file mode 100644 index 52273a0..0000000 --- a/root-Revert-cppyy-Mark-addressof-test-as-xfail-on-modules.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 9fc24a9cc827028d78c983eea5d18ac6a705e806 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Fri, 26 Jun 2026 17:20:27 +0200 -Subject: [PATCH] Revert "[cppyy] Mark `addressof` test as `xfail` on - modules=OFF build with C++17" - -This reverts commit 5eb0e6466ed1b2c29853ba4bfa928dd1da3e4bcd. ---- - .../pyroot/cppyy/cppyy/test/test_datatypes.py | 15 +-------------- - 1 file changed, 1 insertion(+), 14 deletions(-) - -diff --git a/bindings/pyroot/cppyy/cppyy/test/test_datatypes.py b/bindings/pyroot/cppyy/cppyy/test/test_datatypes.py -index e66e36529ec..71e26dd1d9b 100644 ---- a/bindings/pyroot/cppyy/cppyy/test/test_datatypes.py -+++ b/bindings/pyroot/cppyy/cppyy/test/test_datatypes.py -@@ -5,18 +5,6 @@ from support import setup_make, pylong, pyunicode, IS_MAC, IS_MAC_ARM, IS_WINDOW - test_dct = "datatypes_cxx" - - --def has_cpp_20(): -- import cppyy -- -- return cppyy.gbl.gInterpreter.ProcessLine("__cplusplus;") >= 202002 -- -- --def is_modules_off(): -- import cppyy -- -- return "runtime_cxxmodules" not in cppyy.gbl.gROOT.GetConfigFeatures() -- -- - class TestDATATYPES: - def setup_class(cls): - import cppyy -@@ -2351,8 +2339,7 @@ class TestDATATYPES: - assert str(bt(1)) == 'True' - assert str(bt(0)) == 'False' - -- @mark.xfail(strict=True, run=not IS_WINDOWS, condition=IS_MAC_ARM or (not has_cpp_20() and is_modules_off()), reason="Crashes on mac-beta ARM64 and fails on Windows \ -- assertion error for runtime_cxxmodules=OFF build that is explained in GitHub issue #21005") -+ @mark.xfail(strict=True, run=not IS_WINDOWS, condition=IS_MAC_ARM, reason="Crashes on mac-beta ARM64 and fails on Windows") - def test49_addressof_method(self): - """Use of addressof for (const) methods""" - --- -2.54.0 - diff --git a/root-Revert-test-Fetch-the-geometries-from-EOS-and-not-fr.patch b/root-Revert-test-Fetch-the-geometries-from-EOS-and-not-fr.patch deleted file mode 100644 index a45ae41..0000000 --- a/root-Revert-test-Fetch-the-geometries-from-EOS-and-not-fr.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 4da50ef374cd231163dff77493f9367cd62583d9 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Sun, 30 Mar 2025 21:23:14 +0200 -Subject: [PATCH] Revert "[test] Fetch the geometries from EOS and not from the - website" - -This reverts commit a8a879ce252e45405452db38d9178c7883582a7d. ---- - test/stressGeometry.cxx | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/test/stressGeometry.cxx b/test/stressGeometry.cxx -index 7fb6bf97e7..f8d78f4f54 100644 ---- a/test/stressGeometry.cxx -+++ b/test/stressGeometry.cxx -@@ -1,6 +1,6 @@ - // Program to check a TGeo geometry - // The first time you run this program, the geometry files will be taken --// from /eos/root-eos/testfiles/ (previously from http://root.cern/files) -+// from http://root.cern/files - // - // How the program works - // If the file _ref.root does not exist, it is generated. The file -@@ -274,13 +274,13 @@ void stressGeometry(const char *exp="*", Bool_t generate_ref=kFALSE, Bool_t vecg - delete gGeoManager; - gGeoManager = 0; - } -- TGeoManager::Import(Form("root://eospublic.cern.ch//eos/root-eos/testfiles/%s",fname.Data())); -+ TGeoManager::Import(Form("http://root.cern/files/%s",fname.Data())); - if (!gGeoManager) return; - if (vecgeom) TVirtualGeoConverter::Instance()->ConvertGeometry(); - - fname = TString::Format("files/%s_ref_%d.root", exps[i],versions[i]); - -- if (gen_ref || !TFile::Open(Form("root://eospublic.cern.ch//eos/root-eos/testfiles//%s_ref_%d.root",exps[i],versions[i]),"CACHEREAD")) { -+ if (gen_ref || !TFile::Open(Form("http://root.cern/files/%s_ref_%d.root",exps[i],versions[i]),"CACHEREAD")) { - if (!gen_ref) fprintf(stderr,"File: %s does not exist, generating it\n", fname.Data()); - else fprintf(stderr,"Generating reference file %s\n", fname.Data()); - WriteRef(i); -@@ -320,7 +320,7 @@ void ReadRef(Int_t kexp) { - TFile *f = 0; - //use ref_[version[i]] files - if (!gen_ref) -- fname = TString::Format("root://eospublic.cern.ch//eos/root-eos/testfiles//%s_ref_%d.root", exps[kexp],versions[kexp]); -+ fname = TString::Format("http://root.cern/files/%s_ref_%d.root", exps[kexp],versions[kexp]); - else - fname.Format("files/%s_ref_%d.root", exps[kexp],versions[kexp]); - -@@ -546,7 +546,7 @@ void InspectDiff(const char* exp="alice",Long64_t ientry=-1) { - Float_t rad = 0.; - TString fname(TString::Format("%s.root",exp)); - if (gSystem->AccessPathName(fname)) { -- TGeoManager::Import(Form("root://eospublic.cern.ch//eos/root-eos/testfiles//%s",fname.Data())); -+ TGeoManager::Import(Form("http://root.cern/files/%s",fname.Data())); - } else { - TGeoManager::Import(fname); - } --- -2.49.0 - diff --git a/root-Save-memory-Do-not-link-to-LLVM-libraries-in-parallel.patch b/root-Save-memory-Do-not-link-to-LLVM-libraries-in-parallel.patch deleted file mode 100644 index 0f91a8c..0000000 --- a/root-Save-memory-Do-not-link-to-LLVM-libraries-in-parallel.patch +++ /dev/null @@ -1,48 +0,0 @@ -From a5b9525ea1575706a523296bb47ac15f33935838 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Mon, 2 Jun 2025 21:22:39 +0200 -Subject: [PATCH] Save memory. Do not link to LLVM libraries in parallel - ---- - core/clingutils/test/CMakeLists.txt | 3 +++ - interpreter/CppInterOp/unittests/CppInterOp/CMakeLists.txt | 6 ++++++ - 2 files changed, 9 insertions(+) - -diff --git a/core/clingutils/test/CMakeLists.txt b/core/clingutils/test/CMakeLists.txt -index a6c7aedac99..90ac0139c24 100644 ---- a/core/clingutils/test/CMakeLists.txt -+++ b/core/clingutils/test/CMakeLists.txt -@@ -36,3 +36,6 @@ if(NOT builtin_clang) - endif() - - ROOT_ADD_UNITTEST_DIR(Core ${CLING_LIBRARIES} $) -+ -+# Save memory. Do not link to LLVM libraries in parallel -+add_dependencies(coreclingutilstestUnit CppInterOpTests) -diff --git a/interpreter/CppInterOp/unittests/CppInterOp/CMakeLists.txt b/interpreter/CppInterOp/unittests/CppInterOp/CMakeLists.txt -index 1d6ccd3e865..dc98cdfc29a 100644 ---- a/interpreter/CppInterOp/unittests/CppInterOp/CMakeLists.txt -+++ b/interpreter/CppInterOp/unittests/CppInterOp/CMakeLists.txt -@@ -67,6 +67,9 @@ add_cppinterop_unittest(CppInterOpTests - ${EXTRA_TEST_SOURCE_FILES} - ) - -+# Save memory. Do not link to LLVM libraries in parallel -+add_dependencies(CppInterOpTests DynamicLibraryManagerTests) -+ - if(NOT WIN32) - set_source_files_properties(VariableReflectionTest.cpp PROPERTIES COMPILE_FLAGS - "-Wno-pedantic" -@@ -113,6 +116,9 @@ endif() - - add_dependencies(DynamicLibraryManagerTests TestSharedLib) - -+# Save memory. Do not link to LLVM libraries in parallel -+add_dependencies(DynamicLibraryManagerTests Cling) -+ - #export_executable_symbols_for_plugins(TestSharedLib) - add_subdirectory(TestSharedLib) - --- -2.54.0 - diff --git a/root-aclic-versioned-libs.patch b/root-aclic-versioned-libs.patch new file mode 100644 index 0000000..acf9650 --- /dev/null +++ b/root-aclic-versioned-libs.patch @@ -0,0 +1,86 @@ +diff -ur root-5.32.03.orig/core/unix/src/TUnixSystem.cxx root-5.32.03/core/unix/src/TUnixSystem.cxx +--- root-5.32.03.orig/core/unix/src/TUnixSystem.cxx 2012-05-09 12:59:38.000000000 +0200 ++++ root-5.32.03/core/unix/src/TUnixSystem.cxx 2012-06-28 19:25:22.486639614 +0200 +@@ -453,6 +453,9 @@ + + TString lib = _dyld_get_image_name(i++); + ++ TRegexp sovers = "libCore\\.[0-9]+\\.*[0-9]*\\.so"; ++ TRegexp dyvers = "libCore\\.[0-9]+\\.*[0-9]*\\.dylib"; ++ + #ifndef ROOTPREFIX + #if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR + // first loaded is the app so set ROOTSYS to app bundle +@@ -467,7 +470,8 @@ + } + } + #else +- if (lib.EndsWith("libCore.dylib") || lib.EndsWith("libCore.so")) { ++ if (lib.EndsWith("libCore.dylib") || lib.EndsWith("libCore.so") || ++ lib.Index(sovers) != kNPOS || lib.Index(dyvers) != kNPOS) { + char respath[kMAXPATHLEN]; + if (!realpath(lib, respath)) { + if (!gSystem->Getenv("ROOTSYS")) +@@ -489,9 +493,23 @@ + + // add all libs loaded before libSystem.B.dylib + if (!gotFirstSo && (lib.EndsWith(".dylib") || lib.EndsWith(".so"))) { +- if (linkedDylibs.Length()) +- linkedDylibs += " "; +- linkedDylibs += lib; ++ sovers = "\\.[0-9]+\\.*[0-9]*\\.so"; ++ Ssiz_t idx = lib.Index(sovers); ++ if (idx != kNPOS) { ++ lib.Remove(idx); ++ lib += ".so"; ++ } ++ dyvers = "\\.[0-9]+\\.*[0-9]*\\.dylib"; ++ idx = lib.Index(dyvers); ++ if (idx != kNPOS) { ++ lib.Remove(idx); ++ lib += ".dylib"; ++ } ++ if (!gSystem->AccessPathName(lib, kReadPermission)) { ++ if (linkedDylibs.Length()) ++ linkedDylibs += " "; ++ linkedDylibs += lib; ++ } + } + } + #endif +@@ -2849,12 +2867,15 @@ + delete [] exe; + exe = longerexe; + } ++ TRegexp sovers = "\\.so\\.[0-9]+"; + #else + const char *cLDD="ldd"; + #if defined(R__AIX) + const char *cSOEXT=".a"; ++ TRegexp sovers = "\\.a\\.[0-9]+"; + #else + const char *cSOEXT=".so"; ++ TRegexp sovers = "\\.so\\.[0-9]+"; + #endif + #endif + FILE *p = OpenPipe(TString::Format("%s %s", cLDD, exe), "r"); +@@ -2874,10 +2895,15 @@ + } + if (solibName) { + TString solib = solibName->String(); +- if (solib.EndsWith(cSOEXT)) { +- if (!linkedLibs.IsNull()) +- linkedLibs += " "; +- linkedLibs += solib; ++ Ssiz_t idx = solib.Index(sovers); ++ if (solib.EndsWith(cSOEXT) || idx != kNPOS) { ++ if (idx != kNPOS) ++ solib.Remove(idx+3); ++ if (!AccessPathName(solib, kReadPermission)) { ++ if (!linkedLibs.IsNull()) ++ linkedLibs += " "; ++ linkedLibs += solib; ++ } + } + } + delete tok; diff --git a/root-banner.png b/root-banner.png new file mode 100644 index 0000000..ee1fef0 Binary files /dev/null and b/root-banner.png differ diff --git a/root-core-The-old-TUUID-constructor-can-create-either-ver.patch b/root-core-The-old-TUUID-constructor-can-create-either-ver.patch deleted file mode 100644 index 26cf519..0000000 --- a/root-core-The-old-TUUID-constructor-can-create-either-ver.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 2920a892a5db1c24bb8af34c63aacc1438a18247 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Sun, 28 Jun 2026 16:54:54 +0200 -Subject: [PATCH 1/3] [core] The old TUUID constructor can create either - version 1 or 3 - -Do not fail test if version 3 is returned. ---- - core/base/test/UUIDTest.cxx | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/core/base/test/UUIDTest.cxx b/core/base/test/UUIDTest.cxx -index dea3700052b..c834223f6d0 100644 ---- a/core/base/test/UUIDTest.cxx -+++ b/core/base/test/UUIDTest.cxx -@@ -14,7 +14,7 @@ TEST(TUUID, UUIDv4) - EXPECT_EQ(10000u, uuids.size()); - - TUUID u; -- EXPECT_EQ('1', u.AsString()[14]); -+ EXPECT_TRUE('1' == u.AsString()[14] || '3' == u.AsString()[14]); - u = TUUID::UUIDv4(); - std::string str = u.AsString(); - EXPECT_EQ('4', str[14]); --- -2.54.0 - diff --git a/root-dont-install-minicern.patch b/root-dont-install-minicern.patch deleted file mode 100644 index aa33081..0000000 --- a/root-dont-install-minicern.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/misc/minicern/CMakeLists.txt b/misc/minicern/CMakeLists.txt -index bae895f701..8d721f97ab 100644 ---- a/misc/minicern/CMakeLists.txt -+++ b/misc/minicern/CMakeLists.txt -@@ -2,7 +2,7 @@ - # CMakeLists.txt file for building ROOT misc/minicern package - ############################################################################ - --ROOT_LINKER_LIBRARY(minicern *.c *.f TYPE STATIC) -+ROOT_LINKER_LIBRARY(minicern *.c *.f TYPE STATIC NOINSTALL) - set_property(TARGET minicern PROPERTY POSITION_INDEPENDENT_CODE ON) - target_link_libraries(minicern ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES}) - diff --git a/root-fontconfig.patch b/root-fontconfig.patch index d732893..ac4e5a4 100644 --- a/root-fontconfig.patch +++ b/root-fontconfig.patch @@ -1,576 +1,226 @@ -From 58bd7d6e0f905efcf436558fdc11796b7145c66d Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Sat, 11 May 2024 20:09:47 +0200 -Subject: [PATCH] Use system fonts via fontconfig - ---- - core/base/src/TApplication.cxx | 11 +- - graf2d/asimage/CMakeLists.txt | 1 + - graf2d/asimage/src/TASImage.cxx | 91 +++++++- - graf2d/graf/CMakeLists.txt | 1 + - graf2d/graf/inc/TTF.h | 3 +- - graf2d/graf/src/TTF.cxx | 295 +++++++++++++++++--------- - graf2d/postscript/CMakeLists.txt | 1 + - graf2d/postscript/src/TPostScript.cxx | 106 ++++----- - graf3d/gl/CMakeLists.txt | 1 + - graf3d/gl/src/TGLFontManager.cxx | 124 ++++++++++- - graf3d/gl/src/TGLText.cxx | 56 +++-- - 11 files changed, 496 insertions(+), 194 deletions(-) - -diff --git a/core/base/src/TApplication.cxx b/core/base/src/TApplication.cxx -index 0c0c9515930..2b9bbb2b2af 100644 ---- a/core/base/src/TApplication.cxx -+++ b/core/base/src/TApplication.cxx -@@ -253,18 +253,12 @@ void TApplication::InitializeGraphics(Bool_t only_web) - LoadGraphicsLibs(); - - // Try to load TrueType font renderer. Only try to load if not in batch -- // mode and Root.UseTTFonts is true and Root.TTFontPath exists. Abort silently -+ // mode and Root.UseTTFonts is true. Abort silently - // if libttf or libGX11TTF are not found in $ROOTSYS/lib or $ROOTSYS/ttf/lib. -- const char *ttpath = gEnv->GetValue("Root.TTFontPath", -- TROOT::GetTTFFontDir()); -- char *ttfont = gSystem->Which(ttpath, "arialbd.ttf", kReadPermission); -- // Check for use of DFSG - fonts -- if (!ttfont) -- ttfont = gSystem->Which(ttpath, "FreeSansBold.ttf", kReadPermission); - - #if !defined(R__WIN32) - if (!gROOT->IsBatch() && !strcmp(gVirtualX->GetName(), "X11") && -- ttfont && gEnv->GetValue("Root.UseTTFonts", 1)) { -+ gEnv->GetValue("Root.UseTTFonts", 1)) { - if (gClassTable->GetDict("TGX11TTF")) { - // in principle we should not have linked anything against libGX11TTF - // but with ACLiC this can happen, initialize TGX11TTF by hand -@@ -278,7 +272,6 @@ void TApplication::InitializeGraphics(Bool_t only_web) - } - } - #endif -- delete [] ttfont; - } - - if (!only_web || !fAppImp) { -diff --git a/graf2d/asimage/CMakeLists.txt b/graf2d/asimage/CMakeLists.txt -index 3b5188c126e..a82efc829fc 100644 ---- a/graf2d/asimage/CMakeLists.txt -+++ b/graf2d/asimage/CMakeLists.txt -@@ -30,6 +30,7 @@ ROOT_STANDARD_LIBRARY_PACKAGE(ASImage - ${FREETYPE_LIBRARIES} - ${X11_LIBRARIES} - ZLIB::ZLIB -+ fontconfig - DEPENDENCIES - Core - Graf -diff --git a/graf2d/asimage/src/TASImage.cxx b/graf2d/asimage/src/TASImage.cxx -index 3784e05a235..0ad74e1ee6f 100644 ---- a/graf2d/asimage/src/TASImage.cxx -+++ b/graf2d/asimage/src/TASImage.cxx -@@ -116,6 +116,8 @@ extern "C" { - # include - } - -+#include -+ - // auxiliary functions for general polygon filling - #include "TASPolyUtils.c" - -@@ -2642,11 +2644,88 @@ void TASImage::DrawText(Int_t x, Int_t y, const char *text, Int_t size, - // This is for backward compatibility... - if (fn.Last('/') == 0) fn = fn(1, fn.Length() - 1); - +diff -ur root-5.30.01.orig/core/base/src/TApplication.cxx root-5.30.01/core/base/src/TApplication.cxx +--- root-5.30.01.orig/core/base/src/TApplication.cxx 2011-08-18 16:45:43.000000000 +0200 ++++ root-5.30.01/core/base/src/TApplication.cxx 2011-08-18 19:28:45.079497320 +0200 +@@ -252,20 +252,9 @@ + // Try to load TrueType font renderer. Only try to load if not in batch + // mode and Root.UseTTFonts is true and Root.TTFontPath exists. Abort silently + // if libttf or libGX11TTF are not found in $ROOTSYS/lib or $ROOTSYS/ttf/lib. - const char *ttpath = gEnv->GetValue("Root.TTFontPath", -- TROOT::GetTTFFontDir()); -- char *tmpstr = gSystem->Which(ttpath, fn, kReadPermission); -- fn = tmpstr; -- delete [] tmpstr; -+ const char *basename = gSystem->BaseName(fn); -+ -+ int ttindex = 0; -+ -+ FcPattern *pat = nullptr, *match; -+ FcResult result; -+ -+ if (strcmp(basename, "timesi.ttf") == 0 || -+ strcmp(basename, "FreeSerifItalic.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freeserif:italic"); -+ } -+ else if (strcmp(basename, "timesbd.ttf") == 0 || -+ strcmp(basename, "FreeSerifBold.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freeserif:bold"); -+ } -+ else if (strcmp(basename, "timesbi.ttf") == 0 || -+ strcmp(basename, "FreeSerifBoldItalic.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freeserif:bold:italic"); -+ } -+ else if (strcmp(basename, "arial.ttf") == 0 || -+ strcmp(basename, "FreeSans.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freesans"); -+ } -+ else if (strcmp(basename, "ariali.ttf") == 0 || -+ strcmp(basename, "FreeSansOblique.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freesans:italic"); -+ } -+ else if (strcmp(basename, "arialbd.ttf") == 0 || -+ strcmp(basename, "FreeSansBold.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freesans:bold"); -+ } -+ else if (strcmp(basename, "arialbi.ttf") == 0 || -+ strcmp(basename, "FreeSansBoldOblique.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freesans:bold:italic"); -+ } -+ else if (strcmp(basename, "cour.ttf") == 0 || -+ strcmp(basename, "FreeMono.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freemono"); -+ } -+ else if (strcmp(basename, "couri.ttf") == 0 || -+ strcmp(basename, "FreeMonoOblique.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freemono:italic"); -+ } -+ else if (strcmp(basename, "courbd.ttf") == 0 || -+ strcmp(basename, "FreeMonoBold.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freemono:bold"); -+ } -+ else if (strcmp(basename, "courbi.ttf") == 0 || -+ strcmp(basename, "FreeMonoBoldOblique.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freemono:bold:italic"); -+ } -+ else if (strcmp(basename, "symbol.ttf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "standardsymbolsps"); -+ } -+ else if (strcmp(basename, "times.ttf") == 0 || -+ strcmp(basename, "FreeSerif.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freeserif"); -+ } -+ else if (strcmp(basename, "wingding.ttf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "dingbats"); -+ } -+ else if (strcmp(basename, "BlackChancery.ttf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "urwchanceryl"); -+ } -+ else if (gSystem->AccessPathName(fn, kReadPermission) != 0) { -+ // Font name is not a file - usae as pattern -+ pat = FcNameParse ((const FcChar8*) fn.Data()); -+ } -+ -+ if (pat) { -+ FcConfigSubstitute (nullptr, pat, FcMatchPattern); -+ FcDefaultSubstitute (pat); -+ match = FcFontMatch (nullptr, pat, &result); -+ if (match) { -+ char *ttfnt; -+ FcPatternGetString (match, FC_FILE, 0, (FcChar8**) &ttfnt); -+ fn = ttfnt; -+ FcPatternGetInteger (match, FC_INDEX, 0, &ttindex); -+ FcPatternDestroy (match); -+ } -+ FcPatternDestroy (pat); -+ } - - if (fn.EndsWith(".pfa") || fn.EndsWith(".PFA") || fn.EndsWith(".pfb") || fn.EndsWith(".PFB") || fn.EndsWith(".ttf") || fn.EndsWith(".TTF") || fn.EndsWith(".otf") || fn.EndsWith(".OTF")) { - ttfont = kTRUE; -@@ -2670,7 +2749,7 @@ void TASImage::DrawText(Int_t x, Int_t y, const char *text, Int_t size, - return; +-#ifdef TTFFONTDIR +- TTFFONTDIR); +-#else +- "$(ROOTSYS)/fonts"); +-#endif +- char *ttfont = gSystem->Which(ttpath, "arialbd.ttf", kReadPermission); +- // Check for use of DFSG - fonts +- if (!ttfont) +- ttfont = gSystem->Which(ttpath, "FreeSansBold.ttf", kReadPermission); +- + #if !defined(R__WIN32) + if (!gROOT->IsBatch() && !strcmp(gVirtualX->GetName(), "X11") && +- ttfont && gEnv->GetValue("Root.UseTTFonts", 1)) { ++ gEnv->GetValue("Root.UseTTFonts", 1)) { + if (gClassTable->GetDict("TGX11TTF")) { + // in principle we should not have linked anything against libGX11TTF + // but with ACLiC this can happen, initialize TGX11TTF by hand +@@ -279,7 +268,6 @@ + } } + #endif +- delete [] ttfont; -- ASFont *font = get_asfont(gFontManager, fn.Data(), 0, size, ASF_GuessWho); -+ ASFont *font = get_asfont(gFontManager, fn.Data(), ttindex, size, ASF_GuessWho); + // Create WM dependent application environment + if (fAppImp) +diff -ur root-5.30.01.orig/graf2d/graf/Module.mk root-5.30.01/graf2d/graf/Module.mk +--- root-5.30.01.orig/graf2d/graf/Module.mk 2011-08-18 16:46:08.000000000 +0200 ++++ root-5.30.01/graf2d/graf/Module.mk 2011-08-18 19:28:45.086497316 +0200 +@@ -45,7 +45,7 @@ + @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ + "$(SOFLAGS)" libGraf.$(SOEXT) $@ \ + "$(GRAFO) $(GRAFDO)" \ +- "$(FREETYPELDFLAGS) $(FREETYPELIB) $(GRAFLIBEXTRA)" ++ "$(FREETYPELDFLAGS) $(FREETYPELIB) $(GRAFLIBEXTRA) -lfontconfig" - if (!font) { - font = get_asfont(gFontManager, "fixed", 0, size, ASF_GuessWho); -diff --git a/graf2d/graf/CMakeLists.txt b/graf2d/graf/CMakeLists.txt -index f7a0f970372..61e49252562 100644 ---- a/graf2d/graf/CMakeLists.txt -+++ b/graf2d/graf/CMakeLists.txt -@@ -91,6 +91,7 @@ ROOT_STANDARD_LIBRARY_PACKAGE(Graf - Freetype::Freetype - ZLIB::ZLIB - mathtext -+ fontconfig - DEPENDENCIES - Hist - Matrix -diff --git a/graf2d/graf/inc/TTF.h b/graf2d/graf/inc/TTF.h -index 864ce06b4f0..050796d1ded 100644 ---- a/graf2d/graf/inc/TTF.h -+++ b/graf2d/graf/inc/TTF.h -@@ -76,9 +76,10 @@ protected: - static FT_BBox fgCBox; ///< string control box - static FT_CharMap fgCharMap[kTTMaxFonts]; ///< font character map - static Int_t fgCurFontIdx; ///< current font index -- static Int_t fgSymbItaFontIdx; ///< Symbol italic font index - static Int_t fgFontCount; ///< number of fonts loaded - static char *fgFontName[kTTMaxFonts]; ///< font name -+ static Int_t fgFontIdx[kTTMaxFonts]; ///< font index in font file -+ static Int_t fgFontIta[kTTMaxFonts]; ///< font slanted using transform - static FT_Face fgFace[kTTMaxFonts]; ///< font face - static TTF::TTGlyph fgGlyphs[kMaxGlyphs]; ///< glyphs - static Bool_t fgHinting; ///< use hinting (true by default) -diff --git a/graf2d/graf/src/TTF.cxx b/graf2d/graf/src/TTF.cxx -index 758bb98c192..c90d0ac70a9 100644 ---- a/graf2d/graf/src/TTF.cxx -+++ b/graf2d/graf/src/TTF.cxx -@@ -25,6 +25,8 @@ Interface to the freetype 2 library. + $(GRAFDS): $(GRAFH) $(GRAFL) $(ROOTCINTTMPDEP) + $(MAKEDIR) +diff -ur root-5.30.01.orig/graf2d/graf/src/TTF.cxx root-5.30.01/graf2d/graf/src/TTF.cxx +--- root-5.30.01.orig/graf2d/graf/src/TTF.cxx 2011-08-18 16:46:08.000000000 +0200 ++++ root-5.30.01/graf2d/graf/src/TTF.cxx 2011-08-18 19:28:45.130497322 +0200 +@@ -26,6 +26,7 @@ #include "TMath.h" #include "TError.h" +#include -+ + // to scale fonts to the same size as the old TT version const Float_t kScale = 0.93376068; - -@@ -38,10 +40,11 @@ Int_t TTF::fgTBlankW = 0; - Int_t TTF::fgWidth = 0; - Int_t TTF::fgAscent = 0; - Int_t TTF::fgCurFontIdx = -1; --Int_t TTF::fgSymbItaFontIdx = -1; - Int_t TTF::fgFontCount = 0; - Int_t TTF::fgNumGlyphs = 0; - char *TTF::fgFontName[kTTMaxFonts]; -+Int_t TTF::fgFontIdx[kTTMaxFonts]; -+Int_t TTF::fgFontIta[kTTMaxFonts]; - FT_Matrix *TTF::fgRotMatrix = nullptr; - FT_Library TTF::fgLibrary; - FT_BBox TTF::fgCBox; -@@ -71,6 +74,11 @@ void TTF::Init() - return; - } - -+ // Add root's font directory -+ const char *ttpath = gEnv->GetValue("Root.TTFontPath", -+ TROOT::GetTTFFontDir()); -+ FcConfigAppFontAddDir (nullptr, (const FcChar8*)ttpath); -+ - // load default font (arialbd) - SetTextFont(62); - } -@@ -108,12 +116,15 @@ Short_t TTF::CharToUnicode(UInt_t code) +@@ -112,10 +113,13 @@ charmap = fgFace[fgCurFontIdx]->charmaps[i]; platform = charmap->platform_id; encoding = charmap->encoding_id; - if ((platform == 3 && encoding == 1) || + if ((platform == 3 && encoding == 1 && -+ (fgFontIta[fgCurFontIdx] & 2) == 0) || ++ strcmp(fgFontName[fgCurFontIdx], "symbol.ttf")) || (platform == 0 && encoding == 0) || -+ (platform == 7 && encoding == 2 && -+ (fgFontIta[fgCurFontIdx] & 2) != 0) || -+ (platform == 0 && encoding == 3 && -+ (fgFontIta[fgCurFontIdx] & 2) != 0) || (platform == 1 && encoding == 0 && -- !strcmp(fgFontName[fgCurFontIdx], "wingding.ttf")) || -- (platform == 1 && encoding == 0 && -- !strcmp(fgFontName[fgCurFontIdx], "symbol.ttf"))) -+ (fgFontIta[fgCurFontIdx] & 2) != 0)) + !strcmp(fgFontName[fgCurFontIdx], "wingding.ttf")) || ++ (platform == 7 && encoding == 2 && ++ !strcmp(fgFontName[fgCurFontIdx], "symbol.ttf")) || + (platform == 1 && encoding == 0 && + !strcmp(fgFontName[fgCurFontIdx], "symbol.ttf"))) { - fgCharMap[fgCurFontIdx] = charmap; - if (FT_Set_Charmap(fgFace[fgCurFontIdx], fgCharMap[fgCurFontIdx])) -@@ -392,21 +403,145 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic) - } - const char *basename = gSystem->BaseName(fontname); - -+ char *ttfont = nullptr; -+ int ttindex = 0; -+ -+ FcPattern *pat = nullptr, *match; -+ FcResult result; -+ -+ if (strcmp(basename, "timesi.ttf") == 0 || -+ strcmp(basename, "FreeSerifItalic.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freeserif:italic"); -+ } -+ else if (strcmp(basename, "timesbd.ttf") == 0 || -+ strcmp(basename, "FreeSerifBold.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freeserif:bold"); -+ } -+ else if (strcmp(basename, "timesbi.ttf") == 0 || -+ strcmp(basename, "FreeSerifBoldItalic.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freeserif:bold:italic"); -+ } -+ else if (strcmp(basename, "arial.ttf") == 0 || -+ strcmp(basename, "FreeSans.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freesans"); -+ } -+ else if (strcmp(basename, "ariali.ttf") == 0 || -+ strcmp(basename, "FreeSansOblique.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freesans:italic"); -+ } -+ else if (strcmp(basename, "arialbd.ttf") == 0 || -+ strcmp(basename, "FreeSansBold.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freesans:bold"); -+ } -+ else if (strcmp(basename, "arialbi.ttf") == 0 || -+ strcmp(basename, "FreeSansBoldOblique.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freesans:bold:italic"); -+ } -+ else if (strcmp(basename, "cour.ttf") == 0 || -+ strcmp(basename, "FreeMono.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freemono"); -+ } -+ else if (strcmp(basename, "couri.ttf") == 0 || -+ strcmp(basename, "FreeMonoOblique.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freemono:italic"); -+ } -+ else if (strcmp(basename, "courbd.ttf") == 0 || -+ strcmp(basename, "FreeMonoBold.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freemono:bold"); -+ } -+ else if (strcmp(basename, "courbi.ttf") == 0 || -+ strcmp(basename, "FreeMonoBoldOblique.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freemono:bold:italic"); -+ } -+ else if (strcmp(basename, "symbol.ttf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "standardsymbolsps"); -+ italic &= 2; -+ } -+ else if (strcmp(basename, "times.ttf") == 0 || -+ strcmp(basename, "FreeSerif.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freeserif"); -+ } -+ else if (strcmp(basename, "wingding.ttf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "dingbats"); -+ italic &= 2; -+ } -+ else if (strcmp(basename, "STIXGeneral.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixgeneral"); -+ } -+ else if (strcmp(basename, "STIXGeneralItalic.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixgeneral:italic"); -+ } -+ else if (strcmp(basename, "STIXGeneralBol.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixgeneral:bold"); -+ } -+ else if (strcmp(basename, "STIXGeneralBolIta.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixgeneral:bold:italic"); -+ } -+ else if (strcmp(basename, "STIXSiz1Sym.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixsize1"); -+ } -+ else if (strcmp(basename, "STIXSiz1SymBol.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixsize1:bold"); -+ } -+ else if (strcmp(basename, "STIXSiz2Sym.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixsize2"); -+ } -+ else if (strcmp(basename, "STIXSiz2SymBol.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixsize2:bold"); -+ } -+ else if (strcmp(basename, "STIXSiz3Sym.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixsize3"); -+ } -+ else if (strcmp(basename, "STIXSiz3SymBol.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixsize3:bold"); -+ } -+ else if (strcmp(basename, "STIXSiz4Sym.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixsize4"); -+ } -+ else if (strcmp(basename, "STIXSiz4SymBol.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixsize4:bold"); -+ } -+ else if (strcmp(basename, "STIXSiz5Sym.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixsize5"); -+ } -+ else if (strcmp(basename, "DroidSansFallback.ttf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "droidsansfallback:charset=4e00 0410"); -+ } -+ else if (strcmp(basename, "BlackChancery.ttf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "urwchanceryl"); -+ } -+ else if (gSystem->AccessPathName(fontname, kReadPermission) != 0) { -+ // Font name is not a file - usae as pattern -+ pat = FcNameParse ((const FcChar8*) fontname); -+ } -+ -+ if (pat) { -+ FcConfigSubstitute (nullptr, pat, FcMatchPattern); -+ FcDefaultSubstitute (pat); -+ match = FcFontMatch (nullptr, pat, &result); -+ if (match) { -+ const char *ttfnt; -+ FcPatternGetString (match, FC_FILE, 0, (FcChar8**) &ttfnt); -+ ttfont = StrDup(ttfnt); -+ FcPatternGetInteger (match, FC_INDEX, 0, &ttindex); -+ FcPatternDestroy (match); -+ } -+ FcPatternDestroy (pat); -+ } -+ -+ if (!ttfont) ttfont = StrDup(fontname); -+ -+ basename = gSystem->BaseName(ttfont); -+ - // check if font is in cache - int i; - for (i = 0; i < fgFontCount; i++) { -- if (!strcmp(fgFontName[i], basename)) { -- if (italic) { -- if (i==fgSymbItaFontIdx) { -- fgCurFontIdx = i; -- return 0; -- } -- } else { -- if (i!=fgSymbItaFontIdx) { -- fgCurFontIdx = i; -- return 0; -- } -- } -+ if (!strcmp(fgFontName[i], basename) && -+ (fgFontIdx[i] == ttindex) && -+ (fgFontIta[i] == italic)) { -+ fgCurFontIdx = i; -+ delete [] ttfont; -+ return 0; - } - } - -@@ -416,28 +551,13 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic) - kTTMaxFonts); - Warning("TTF::SetTextFont", "using default font %s", fgFontName[0]); - fgCurFontIdx = 0; // use font 0 (default font, set in ctor) -+ delete [] ttfont; +@@ -360,19 +364,86 @@ return 0; } - // try to load font (font must be in Root.TTFontPath resource) - const char *ttpath = gEnv->GetValue("Root.TTFontPath", -- TROOT::GetTTFFontDir()); +-# ifdef TTFFONTDIR +- TTFFONTDIR +-# else +- "$(ROOTSYS)/fonts" +-# endif +- ); +- - char *ttfont = gSystem->Which(ttpath, fontname, kReadPermission); - - if (!ttfont) { -- Error("TTF::SetTextFont", "font file %s not found in path %s", fontname, ttpath); -- if (fgFontCount) { -- Warning("TTF::SetTextFont", "using default font %s", fgFontName[0]); -- fgCurFontIdx = 0; // use font 0 (default font, set in ctor) -- return 0; -- } else { -- return 1; -- } -- } -- - FT_Face tface = (FT_Face) 0; +- Error("TTF::SetTextFont", "font file %s not found in path", fontname); ++ FcPattern *pat, *match; ++ FcResult result; ++ char *ttfont; ++ int ttindex; ++ ++ pat = FcPatternCreate (); ++ ++ if (strcmp(basename, /* 13 */ "times.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ } ++ else if (strcmp(basename, /* 1 */ "timesi.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ } ++ else if (strcmp(basename, /* 2 */ "timesbd.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ } ++ else if (strcmp(basename, /* 3 */ "timesbi.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ } ++ else if (strcmp(basename, /* 4 */ "arial.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ } ++ else if (strcmp(basename, /* 5 */ "ariali.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ } ++ else if (strcmp(basename, /* 6 and 0 */ "arialbd.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ } ++ else if (strcmp(basename, /* 7 */ "arialbi.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ } ++ else if (strcmp(basename, /* 8 */ "cour.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ } ++ else if (strcmp(basename, /* 9 */ "couri.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ } ++ else if (strcmp(basename, /* 10 */ "courbd.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ } ++ else if (strcmp(basename, /* 11 */ "courbi.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ } ++ else if (strcmp(basename, /* 12 and 15 */ "symbol.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"symbol"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ } ++ else if (strcmp(basename, /* 14 */ "wingding.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"wingdings"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ } ++ else { ++ Error("TTF::SetTextFont", "font %s not known to ROOT", basename); ++ FcPatternDestroy (pat); + if (fgFontCount) { + Warning("TTF::SetTextFont", "using default font %s", fgFontName[0]); + fgCurFontIdx = 0; // use font 0 (default font, set in ctor) +@@ -382,11 +453,18 @@ + } + } + ++ FcConfigSubstitute (NULL, pat, FcMatchPattern); ++ FcDefaultSubstitute (pat); ++ match = FcFontMatch (NULL, pat, &result); ++ FcPatternGetString (match, FC_FILE, 0, (FcChar8**)&ttfont); ++ FcPatternGetInteger (match, FC_INDEX, 0, &ttindex); ++ + FT_Face tface = 0; - if (FT_New_Face(fgLibrary, ttfont, 0, &tface)) { + if (FT_New_Face(fgLibrary, ttfont, ttindex, &tface)) { Error("TTF::SetTextFont", "error loading font %s", ttfont); - delete [] ttfont; +- delete [] ttfont; ++ FcPatternDestroy (match); ++ FcPatternDestroy (pat); if (tface) FT_Done_Face(tface); -@@ -450,24 +570,25 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic) + if (fgFontCount) { + Warning("TTF::SetTextFont", "using default font %s", fgFontName[0]); +@@ -397,7 +475,8 @@ } } - delete [] ttfont; -- ++ FcPatternDestroy (match); ++ FcPatternDestroy (pat); + fgFontName[fgFontCount] = StrDup(basename); -+ fgFontIdx[fgFontCount] = ttindex; -+ fgFontIta[fgFontCount] = italic; fgCurFontIdx = fgFontCount; - fgFace[fgCurFontIdx] = tface; - fgCharMap[fgCurFontIdx] = (FT_CharMap) 0; - fgFontCount++; - -- if (italic) { -- fgSymbItaFontIdx = fgCurFontIdx; -+ if ((italic & 1) != 0) { - FT_Matrix slantMat; - slantMat.xx = (1 << 16); - slantMat.xy = ((1 << 16) >> 2); - slantMat.yx = 0; - slantMat.yy = (1 << 16); -- FT_Set_Transform( fgFace[fgSymbItaFontIdx], &slantMat, NULL ); -+ FT_Set_Transform( fgFace[fgCurFontIdx], &slantMat, nullptr ); - } - -+ delete [] ttfont; -+ - return 0; - } - -@@ -494,70 +615,50 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic) - - void TTF::SetTextFont(Font_t fontnumber) - { -- // Added by cholm for use of DFSG - fonts - based on Kevins fix. -- // Table of Microsoft and (for non-MSFT operating systems) backup -- // FreeFont TTF fonts. -- static const char *fonttable[][2] = { -- { "Root.TTFont.0", "FreeSansBold.otf" }, -- { "Root.TTFont.1", "FreeSerifItalic.otf" }, -- { "Root.TTFont.2", "FreeSerifBold.otf" }, -- { "Root.TTFont.3", "FreeSerifBoldItalic.otf" }, -- { "Root.TTFont.4", "texgyreheros-regular.otf" }, -- { "Root.TTFont.5", "texgyreheros-italic.otf" }, -- { "Root.TTFont.6", "texgyreheros-bold.otf" }, -- { "Root.TTFont.7", "texgyreheros-bolditalic.otf" }, -- { "Root.TTFont.8", "FreeMono.otf" }, -- { "Root.TTFont.9", "FreeMonoOblique.otf" }, -- { "Root.TTFont.10", "FreeMonoBold.otf" }, -- { "Root.TTFont.11", "FreeMonoBoldOblique.otf" }, -- { "Root.TTFont.12", "symbol.ttf" }, -- { "Root.TTFont.13", "FreeSerif.otf" }, -- { "Root.TTFont.14", "wingding.ttf" }, -- { "Root.TTFont.15", "symbol.ttf" }, -- { "Root.TTFont.STIXGen", "STIXGeneral.otf" }, -- { "Root.TTFont.STIXGenIt", "STIXGeneralItalic.otf" }, -- { "Root.TTFont.STIXGenBd", "STIXGeneralBol.otf" }, -- { "Root.TTFont.STIXGenBdIt", "STIXGeneralBolIta.otf" }, -- { "Root.TTFont.STIXSiz1Sym", "STIXSiz1Sym.otf" }, -- { "Root.TTFont.STIXSiz1SymBd", "STIXSiz1SymBol.otf" }, -- { "Root.TTFont.STIXSiz2Sym", "STIXSiz2Sym.otf" }, -- { "Root.TTFont.STIXSiz2SymBd", "STIXSiz2SymBol.otf" }, -- { "Root.TTFont.STIXSiz3Sym", "STIXSiz3Sym.otf" }, -- { "Root.TTFont.STIXSiz3SymBd", "STIXSiz3SymBol.otf" }, -- { "Root.TTFont.STIXSiz4Sym", "STIXSiz4Sym.otf" }, -- { "Root.TTFont.STIXSiz4SymBd", "STIXSiz4SymBol.otf" }, -- { "Root.TTFont.STIXSiz5Sym", "STIXSiz5Sym.otf" }, -- { "Root.TTFont.ME", "DroidSansFallback.ttf" }, -- { "Root.TTFont.CJKMing", "DroidSansFallback.ttf" }, -- { "Root.TTFont.CJKGothic", "DroidSansFallback.ttf" } -+ static const char *fonttable[] = { -+ "freesans:bold", -+ "freeserif:italic", -+ "freeserif:bold", -+ "freeserif:bold:italic", -+ "freesans", -+ "freesans:italic", -+ "freesans:bold", -+ "freesans:bold:italic", -+ "freemono", -+ "freemono:italic", -+ "freemono:bold", -+ "freemono:bold:italic", -+ "standardsymbolsps", -+ "freeserif", -+ "dingbats", -+ "standardsymbolsps", -+ "stixgeneral", -+ "stixgeneral:italic", -+ "stixgeneral:bold", -+ "stixgeneral:bold:italic", -+ "stixsize1", -+ "stixsize1:bold", -+ "stixsize2", -+ "stixsize2:bold", -+ "stixsize3", -+ "stixsize3:bold", -+ "stixsize4", -+ "stixsize4:bold", -+ "stixsize5", -+ "droidsansfallback:charset=4e00 0410", -+ "droidsansfallback:charset=4e00 0410", -+ "droidsansfallback:charset=4e00 0410" +@@ -464,37 +543,12 @@ + /*15 */ { "symbol.ttf", "symbol.ttf" } }; - static int fontset = -1; - int thisset = fontset; - int fontid = fontnumber / 10; - if (fontid < 0 || fontid > 31) fontid = 0; + if (fontid < 0 || fontid > 15) fontid = 0; - if (thisset == -1) { - // try to load font (font must be in Root.TTFontPath resource) - // to see which fontset we have available - const char *ttpath = gEnv->GetValue("Root.TTFontPath", -- TROOT::GetTTFFontDir()); -- char *ttfont = gSystem->Which(ttpath, gEnv->GetValue(fonttable[fontid][0], fonttable[fontid][1]), kReadPermission); +-#ifdef TTFFONTDIR +- TTFFONTDIR +-#else +- "$(ROOTSYS)/fonts" +-#endif +- ); +- char *ttfont = gSystem->Which(ttpath, fonttable[fontid][0], kReadPermission); - if (ttfont) { - delete [] ttfont; - thisset = 0; @@ -580,339 +230,159 @@ index 758bb98c192..c90d0ac70a9 100644 - } - } Int_t italic = 0; -- if (fontid==15) italic = 1; -- int ret = SetTextFont(gEnv->GetValue(fonttable[fontid][thisset], fonttable[fontid][1]), italic); + if (fontid==15) italic = 1; +- int ret = SetTextFont(fonttable[fontid][thisset], italic); - // Do not define font set is we're loading the symbol.ttf - it's - // the same in both cases. - if (ret == 0 && fontid != 12) fontset = thisset; -+ if (fontid==12) italic = 2; -+ if (fontid==14) italic = 2; -+ if (fontid==15) italic = 3; -+ -+ SetTextFont(fonttable[fontid], italic); ++ SetTextFont(fonttable[fontid][0], italic); } - //////////////////////////////////////////////////////////////////////////////// -diff --git a/graf2d/postscript/CMakeLists.txt b/graf2d/postscript/CMakeLists.txt -index eb091bbb396..a05023a3f41 100644 ---- a/graf2d/postscript/CMakeLists.txt -+++ b/graf2d/postscript/CMakeLists.txt -@@ -27,6 +27,7 @@ ROOT_STANDARD_LIBRARY_PACKAGE(Postscript - LIBRARIES - ZLIB::ZLIB - mathtext -+ fontconfig - DEPENDENCIES - Graf - ) -diff --git a/graf2d/postscript/src/TPostScript.cxx b/graf2d/postscript/src/TPostScript.cxx -index 8d4343736d1..c2efa7914da 100644 ---- a/graf2d/postscript/src/TPostScript.cxx -+++ b/graf2d/postscript/src/TPostScript.cxx -@@ -234,6 +234,7 @@ To change the color model use `gStyle->SetColorModelPS(c)`. - #include - #include - #include -+#include + //______________________________________________________________________________ +diff -ur root-5.30.01.orig/graf3d/gl/Module.mk root-5.30.01/graf3d/gl/Module.mk +--- root-5.30.01.orig/graf3d/gl/Module.mk 2011-08-18 16:45:57.000000000 +0200 ++++ root-5.30.01/graf3d/gl/Module.mk 2011-08-18 19:30:30.171500251 +0200 +@@ -70,7 +70,7 @@ + @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ + "$(SOFLAGS)" libRGL.$(SOEXT) $@ "$(GLO) $(GLO1) $(GLDO)" \ + "$(GLLIBEXTRA) $(FTGLLIBDIR) $(FTGLLIBS) \ +- $(GLEWLIBDIR) $(GLEWLIBS) $(GLLIBS)" ++ $(GLEWLIBDIR) $(GLEWLIBS) $(GLLIBS) -lfontconfig" - #include "strlcpy.h" - #include "snprintf.h" -@@ -1584,56 +1585,60 @@ Bool_t TPostScript::FontEmbedType42(const char *filename) - - void TPostScript::FontEmbed(void) - { -- static const char *fonttable[32][2] = { -- { "Root.TTFont.0", "FreeSansBold.otf" }, -- { "Root.TTFont.1", "FreeSerifItalic.otf" }, -- { "Root.TTFont.2", "FreeSerifBold.otf" }, -- { "Root.TTFont.3", "FreeSerifBoldItalic.otf" }, -- { "Root.TTFont.4", "FreeSans.otf" }, -- { "Root.TTFont.5", "FreeSansOblique.otf" }, -- { "Root.TTFont.6", "FreeSansBold.otf" }, -- { "Root.TTFont.7", "FreeSansBoldOblique.otf" }, -- { "Root.TTFont.8", "FreeMono.otf" }, -- { "Root.TTFont.9", "FreeMonoOblique.otf" }, -- { "Root.TTFont.10", "FreeMonoBold.otf" }, -- { "Root.TTFont.11", "FreeMonoBoldOblique.otf" }, -- { "Root.TTFont.12", "symbol.ttf" }, -- { "Root.TTFont.13", "FreeSerif.otf" }, -- { "Root.TTFont.14", "wingding.ttf" }, -- { "Root.TTFont.15", "symbol.ttf" }, -- { "Root.TTFont.STIXGen", "STIXGeneral.otf" }, -- { "Root.TTFont.STIXGenIt", "STIXGeneralItalic.otf" }, -- { "Root.TTFont.STIXGenBd", "STIXGeneralBol.otf" }, -- { "Root.TTFont.STIXGenBdIt", "STIXGeneralBolIta.otf" }, -- { "Root.TTFont.STIXSiz1Sym", "STIXSiz1Sym.otf" }, -- { "Root.TTFont.STIXSiz1SymBd", "STIXSiz1SymBol.otf" }, -- { "Root.TTFont.STIXSiz2Sym", "STIXSiz2Sym.otf" }, -- { "Root.TTFont.STIXSiz2SymBd", "STIXSiz2SymBol.otf" }, -- { "Root.TTFont.STIXSiz3Sym", "STIXSiz3Sym.otf" }, -- { "Root.TTFont.STIXSiz3SymBd", "STIXSiz3SymBol.otf" }, -- { "Root.TTFont.STIXSiz4Sym", "STIXSiz4Sym.otf" }, -- { "Root.TTFont.STIXSiz4SymBd", "STIXSiz4SymBol.otf" }, -- { "Root.TTFont.STIXSiz5Sym", "STIXSiz5Sym.otf" }, -- { "Root.TTFont.ME", "DroidSansFallback.ttf" }, -- { "Root.TTFont.CJKMing", "DroidSansFallback.ttf" }, -- { "Root.TTFont.CJKCothic", "DroidSansFallback.ttf" } -+ static const char *fonttable[] = { -+ "freesans:bold", -+ "freeserif:italic", -+ "freeserif:bold", -+ "freeserif:bold:italic", -+ "freesans", -+ "freesans:italic", -+ "freesans:bold", -+ "freesans:bold:italic", -+ "freemono", -+ "freemono:italic", -+ "freemono:bold", -+ "freemono:bold:italic", -+ "standardsymbolsps", -+ "freeserif", -+ "dingbats", -+ "standardsymbolsps", -+ "stixgeneral", -+ "stixgeneral:italic", -+ "stixgeneral:bold", -+ "stixgeneral:bold:italic", -+ "stixsize1", -+ "stixsize1:bold", -+ "stixsize2", -+ "stixsize2:bold", -+ "stixsize3", -+ "stixsize3:bold", -+ "stixsize4", -+ "stixsize4:bold", -+ "stixsize5", -+ "droidsansfallback:charset=4e00 0410", -+ "droidsansfallback:charset=4e00 0410", -+ "droidsansfallback:charset=4e00 0410" - }; - - PrintStr("%%IncludeResource: ProcSet (FontSetInit)@"); - -- // try to load font (font must be in Root.TTFontPath resource) -- const char *ttpath = gEnv->GetValue("Root.TTFontPath", -- TROOT::GetTTFFontDir()); -- - for (Int_t fontid = 1; fontid < 30; fontid++) { - if (fontid != 15 && MustEmbed[fontid-1]) { -- const char *filename = gEnv->GetValue( -- fonttable[fontid][0], fonttable[fontid][1]); -- char *ttfont = gSystem->Which(ttpath, filename, kReadPermission); -+ char *ttfont = nullptr; -+ -+ FcPattern *pat, *match; -+ FcResult result; -+ -+ pat = FcNameParse ((const FcChar8*) fonttable[fontid]); -+ -+ FcConfigSubstitute (nullptr, pat, FcMatchPattern); -+ FcDefaultSubstitute (pat); -+ match = FcFontMatch (nullptr, pat, &result); -+ FcPatternGetString (match, FC_FILE, 0, (FcChar8**) &ttfont); -+ - if (!ttfont) { -- Error("TPostScript::FontEmbed", -- "font %d (filename `%s') not found in path", -- fontid, filename); -+ Error("TPostScript::FontEmbed", "font %d not found", -+ fontid); - } else { - if (FontEmbedType2(ttfont)) { - // nothing -@@ -1642,12 +1647,13 @@ void TPostScript::FontEmbed(void) - } else if(FontEmbedType42(ttfont)) { - // nothing - } else { -- Error("TPostScript::FontEmbed", -- "failed to embed font %d (filename `%s')", -- fontid, filename); -+ Error("TPostScript::FontEmbed", "failed to embed font %d)", -+ fontid); - } -- delete [] ttfont; - } -+ -+ FcPatternDestroy (match); -+ FcPatternDestroy (pat); - } - } - PrintStr("%%IncludeResource: font Times-Roman@"); -@@ -2852,10 +2858,10 @@ void TPostScript::Text(Double_t xx, Double_t yy, const wchar_t *chars) - { "Root.PSFont.9", "/FreeMonoOblique" }, - { "Root.PSFont.10", "/FreeMonoBold" }, - { "Root.PSFont.11", "/FreeMonoBoldOblique" }, -- { "Root.PSFont.12", "/SymbolMT" }, -+ { "Root.PSFont.12", "/StandardSymbolsL" }, - { "Root.PSFont.13", "/FreeSerif" }, -- { "Root.PSFont.14", "/Wingdings-Regular" }, -- { "Root.PSFont.15", "/SymbolMT" }, -+ { "Root.PSFont.14", "/Dingbats" }, -+ { "Root.PSFont.15", "/StandardSymbolsL" }, - { "Root.PSFont.STIXGen", "/STIXGeneral" }, - { "Root.PSFont.STIXGenIt", "/STIXGeneral-Italic" }, - { "Root.PSFont.STIXGenBd", "/STIXGeneral-Bold" }, -diff --git a/graf3d/gl/CMakeLists.txt b/graf3d/gl/CMakeLists.txt -index 7850fd46b9f..14782767b4c 100644 ---- a/graf3d/gl/CMakeLists.txt -+++ b/graf3d/gl/CMakeLists.txt -@@ -208,6 +208,7 @@ ROOT_STANDARD_LIBRARY_PACKAGE(RGL - ZLIB::ZLIB - ${X11_LIBRARIES} - ROOTGlad -+ fontconfig - DEPENDENCIES - Hist - Gui -diff --git a/graf3d/gl/src/TGLFontManager.cxx b/graf3d/gl/src/TGLFontManager.cxx -index e6f67b4f828..3671c132fd9 100644 ---- a/graf3d/gl/src/TGLFontManager.cxx -+++ b/graf3d/gl/src/TGLFontManager.cxx -@@ -36,6 +36,8 @@ - # include "FTGLBitmapFont.h" + $(GLDS): $(GLH2) $(GLL) $(ROOTCINTTMPDEP) + $(MAKEDIR) +diff -ur root-5.30.01.orig/graf3d/gl/src/TGLFontManager.cxx root-5.30.01/graf3d/gl/src/TGLFontManager.cxx +--- root-5.30.01.orig/graf3d/gl/src/TGLFontManager.cxx 2011-08-18 16:45:57.000000000 +0200 ++++ root-5.30.01/graf3d/gl/src/TGLFontManager.cxx 2011-08-18 19:28:45.153497322 +0200 +@@ -37,6 +37,8 @@ #endif + +#include + - namespace { - #ifdef HAVE_UTF8 - // https://github.com/root-project/root/issues/22076#issuecomment-4342764706 -@@ -481,16 +483,120 @@ void TGLFontManager::RegisterFont(Int_t sizeIn, Int_t fileID, TGLFont::EMode mod + //______________________________________________________________________________ + // TGLFont + // +@@ -391,17 +393,91 @@ FontMap_i it = fFontMap.find(TGLFont(size, fileID, mode)); if (it == fFontMap.end()) { - TString ttpath, file; -- ttpath = gEnv->GetValue("Root.TTGLFontPath", TROOT::GetTTFFontDir()); +-# ifdef TTFFONTDIR +- ttpath = gEnv->GetValue("Root.TTGLFontPath", TTFFONTDIR ); +-# else +- ttpath = gEnv->GetValue("Root.TTGLFontPath", "$(ROOTSYS)/fonts"); +-# endif - { -- //For extenede we have both ttf and otf. -- char *fp = gSystem->Which(ttpath, fileID < fgExtendedFontStart ? -- ((TObjString*)fgFontFileArray[fileID])->String() + ".ttf" : -- ((TObjString*)fgFontFileArray[fileID])->String()); +- char *fp = gSystem->Which(ttpath, ((TObjString*)fgFontFileArray[fileID])->String() + ".ttf"); - file = fp; - delete [] fp; -+ TString file; ++ const char *fontname = ((TObjString*)fgFontFileArray[fileID])->String().Data(); + -+ TString fontname = fileID < fgExtendedFontStart ? -+ ((TObjString*)fgFontFileArray[fileID])->String() + ".ttf" : -+ ((TObjString*)fgFontFileArray[fileID])->String(); -+ -+ FcPattern *pat = nullptr, *match; ++ FcPattern *pat, *match; + FcResult result; ++ char *file; ++ int ttindex; + -+ if (strcmp(fontname, "timesi.ttf") == 0 || -+ strcmp(fontname, "FreeSerifItalic.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freeserif:italic"); ++ pat = FcPatternCreate (); ++ ++ if (strcmp(fontname, /* 13 */ "times") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); + } -+ else if (strcmp(fontname, "timesbd.ttf") == 0 || -+ strcmp(fontname, "FreeSerifBold.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freeserif:bold"); ++ else if (strcmp(fontname, /* 1 */ "timesi") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); + } -+ else if (strcmp(fontname, "timesbi.ttf") == 0 || -+ strcmp(fontname, "FreeSerifBoldItalic.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freeserif:bold:italic"); ++ else if (strcmp(fontname, /* 2 */ "timesbd") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); + } -+ else if (strcmp(fontname, "arial.ttf") == 0 || -+ strcmp(fontname, "FreeSans.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freesans"); ++ else if (strcmp(fontname, /* 3 */ "timesbi") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); + } -+ else if (strcmp(fontname, "ariali.ttf") == 0 || -+ strcmp(fontname, "FreeSansOblique.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freesans:italic"); ++ else if (strcmp(fontname, /* 4 */ "arial") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); + } -+ else if (strcmp(fontname, "arialbd.ttf") == 0 || -+ strcmp(fontname, "FreeSansBold.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freesans:bold"); ++ else if (strcmp(fontname, /* 5 */ "ariali") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); + } -+ else if (strcmp(fontname, "arialbi.ttf") == 0 || -+ strcmp(fontname, "FreeSansBoldOblique.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freesans:bold:italic"); -+ } -+ else if (strcmp(fontname, "cour.ttf") == 0 || -+ strcmp(fontname, "FreeMono.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freemono"); -+ } -+ else if (strcmp(fontname, "couri.ttf") == 0 || -+ strcmp(fontname, "FreeMonoOblique.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freemono:italic"); -+ } -+ else if (strcmp(fontname, "courbd.ttf") == 0 || -+ strcmp(fontname, "FreeMonoBold.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freemono:bold"); -+ } -+ else if (strcmp(fontname, "courbi.ttf") == 0 || -+ strcmp(fontname, "FreeMonoBoldOblique.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freemono:bold:italic"); -+ } -+ else if (strcmp(fontname, "symbol.ttf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "standardsymbolsps"); -+ } -+ else if (strcmp(fontname, "times.ttf") == 0 || -+ strcmp(fontname, "FreeSerif.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "freeserif"); ++ else if (strcmp(fontname, /* 6 and 0 */ "arialbd") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); } -+ else if (strcmp(fontname, "wingding.ttf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "dingbats"); ++ else if (strcmp(fontname, /* 7 */ "arialbi") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); + } -+ else if (strcmp(fontname, "STIXGeneral.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixgeneral"); ++ else if (strcmp(fontname, /* 8 */ "cour") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); + } -+ else if (strcmp(fontname, "STIXGeneralItalic.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixgeneral:italic"); ++ else if (strcmp(fontname, /* 9 */ "couri") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); + } -+ else if (strcmp(fontname, "STIXGeneralBol.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixgeneral:bold"); ++ else if (strcmp(fontname, /* 10 */ "courbd") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); + } -+ else if (strcmp(fontname, "STIXGeneralBolIta.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixgeneral:bold:italic"); ++ else if (strcmp(fontname, /* 11 */ "courbi") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); + } -+ else if (strcmp(fontname, "STIXSiz1Sym.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixsize1"); ++ else if (strcmp(fontname, /* 12 and 15 */ "symbol") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"symbol"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); + } -+ else if (strcmp(fontname, "STIXSiz1SymBol.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixsize1:bold"); -+ } -+ else if (strcmp(fontname, "STIXSiz2Sym.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixsize2"); -+ } -+ else if (strcmp(fontname, "STIXSiz2SymBol.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixsize2:bold"); -+ } -+ else if (strcmp(fontname, "STIXSiz3Sym.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixsize3"); -+ } -+ else if (strcmp(fontname, "STIXSiz3SymBol.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixsize3:bold"); -+ } -+ else if (strcmp(fontname, "STIXSiz4Sym.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixsize4"); -+ } -+ else if (strcmp(fontname, "STIXSiz4SymBol.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixsize4:bold"); -+ } -+ else if (strcmp(fontname, "STIXSiz5Sym.otf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "stixsize5"); -+ } -+ else if (strcmp(fontname, "DroidSansFallback.ttf") == 0) { -+ pat = FcNameParse ((const FcChar8*) "droidsansfallback:charset=4e00 0410"); ++ else if (strcmp(fontname, /* 14 */ "wingding") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"wingdings"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); + } + -+ FcConfigSubstitute (nullptr, pat, FcMatchPattern); ++ FcConfigSubstitute (NULL, pat, FcMatchPattern); + FcDefaultSubstitute (pat); -+ match = FcFontMatch (nullptr, pat, &result); -+ char *ttfnt; -+ FcPatternGetString (match, FC_FILE, 0, (FcChar8**) &ttfnt); -+ file = ttfnt; -+ FcPatternDestroy (match); -+ FcPatternDestroy (pat); ++ match = FcFontMatch (NULL, pat, &result); ++ FcPatternGetString (match, FC_FILE, 0, (FcChar8**)&file); ++ FcPatternGetInteger (match, FC_INDEX, 0, &ttindex); FTFont* ftfont = 0; switch (mode) -diff --git a/graf3d/gl/src/TGLText.cxx b/graf3d/gl/src/TGLText.cxx -index 2ed3ee0917a..03feb0ee0a4 100644 ---- a/graf3d/gl/src/TGLText.cxx -+++ b/graf3d/gl/src/TGLText.cxx -@@ -32,6 +32,8 @@ +@@ -427,9 +503,13 @@ + break; + default: + Error("TGLFontManager::GetFont", "invalid FTGL type"); ++ FcPatternDestroy (match); ++ FcPatternDestroy (pat); + return; + break; + } ++ FcPatternDestroy (match); ++ FcPatternDestroy (pat); + ftfont->FaceSize(size); + const TGLFont &mf = fFontMap.insert(std::make_pair(TGLFont(size, fileID, mode, ftfont, 0), 1)).first->first; + out.CopyAttributes(mf); +diff -ur root-5.30.01.orig/graf3d/gl/src/TGLText.cxx root-5.30.01/graf3d/gl/src/TGLText.cxx +--- root-5.30.01.orig/graf3d/gl/src/TGLText.cxx 2011-08-18 16:45:57.000000000 +0200 ++++ root-5.30.01/graf3d/gl/src/TGLText.cxx 2011-08-18 19:28:45.162497322 +0200 +@@ -34,6 +34,8 @@ # include "FTGLBitmapFont.h" #endif @@ -921,74 +391,173 @@ index 2ed3ee0917a..03feb0ee0a4 100644 #define FTGL_BITMAP 0 #define FTGL_PIXMAP 1 #define FTGL_OUTLINE 2 -@@ -175,27 +177,35 @@ void TGLText::SetGLTextFont(Font_t fontnumber) - { - int fontid = fontnumber / 10; +@@ -190,16 +192,89 @@ + if (fontid == 13) fontname = "times.ttf"; + if (fontid == 14) fontname = "wingding.ttf"; -- const char *fontname=0; -- if (fontid == 0) fontname = "arialbd.ttf"; -- if (fontid == 1) fontname = "timesi.ttf"; -- if (fontid == 2) fontname = "timesbd.ttf"; -- if (fontid == 3) fontname = "timesbi.ttf"; -- if (fontid == 4) fontname = "arial.ttf"; -- if (fontid == 5) fontname = "ariali.ttf"; -- if (fontid == 6) fontname = "arialbd.ttf"; -- if (fontid == 7) fontname = "arialbi.ttf"; -- if (fontid == 8) fontname = "cour.ttf"; -- if (fontid == 9) fontname = "couri.ttf"; -- if (fontid == 10) fontname = "courbd.ttf"; -- if (fontid == 11) fontname = "courbi.ttf"; -- if (fontid == 12) fontname = "symbol.ttf"; -- if (fontid == 13) fontname = "times.ttf"; -- if (fontid == 14) fontname = "wingding.ttf"; -- - // try to load font (font must be in Root.TTFontPath resource) - const char *ttpath = gEnv->GetValue("Root.TTFontPath", -- TROOT::GetTTFFontDir()); -- char *ttfont = gSystem->Which(ttpath, fontname, kReadPermission); -+ static const char *fonttable[] = { -+ "freesans:bold", -+ "freeserif:italic", -+ "freeserif:bold", -+ "freeserif:bold:italic", -+ "freesans", -+ "freesans:italic", -+ "freesans:bold", -+ "freesans:bold:italic", -+ "freemono", -+ "freemono:italic", -+ "freemono:bold", -+ "freemono:bold:italic", -+ "standardsymbolsps", -+ "freeserif", -+ "dingbats", -+ }; -+ -+ char *ttfont; -+ +-# ifdef TTFFONTDIR +- TTFFONTDIR +-# else +- "$(ROOTSYS)/fonts" +-# endif +- ); + FcPattern *pat, *match; + FcResult result; ++ char *ttfont; ++ int ttindex; + -+ pat = FcNameParse ((const FcChar8*) fonttable[fontid]); ++ pat = FcPatternCreate (); + -+ FcConfigSubstitute (nullptr, pat, FcMatchPattern); ++ if (strcmp(fontname, /* 13 */ "times.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ } ++ else if (strcmp(fontname, /* 1 */ "timesi.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ } ++ else if (strcmp(fontname, /* 2 */ "timesbd.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ } ++ else if (strcmp(fontname, /* 3 */ "timesbi.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ } ++ else if (strcmp(fontname, /* 4 */ "arial.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ } ++ else if (strcmp(fontname, /* 5 */ "ariali.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ } ++ else if (strcmp(fontname, /* 6 and 0 */ "arialbd.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ } ++ else if (strcmp(fontname, /* 7 */ "arialbi.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ } ++ else if (strcmp(fontname, /* 8 */ "cour.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ } ++ else if (strcmp(fontname, /* 9 */ "couri.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ } ++ else if (strcmp(fontname, /* 10 */ "courbd.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ } ++ else if (strcmp(fontname, /* 11 */ "courbi.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ } ++ else if (strcmp(fontname, /* 12 */ "symbol.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"symbol"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ } ++ else if (strcmp(fontname, /* 14 */ "wingding.ttf") == 0) { ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"wingdings"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ } + +- char *ttfont = gSystem->Which(ttpath, fontname, kReadPermission); ++ FcConfigSubstitute (NULL, pat, FcMatchPattern); + FcDefaultSubstitute (pat); -+ match = FcFontMatch (nullptr, pat, &result); -+ FcPatternGetString (match, FC_FILE, 0, (FcChar8**) &ttfont); ++ match = FcFontMatch (NULL, pat, &result); ++ FcPatternGetString (match, FC_FILE, 0, (FcChar8**)&ttfont); ++ FcPatternGetInteger (match, FC_INDEX, 0, &ttindex); if (fGLTextFont) delete fGLTextFont; -@@ -203,7 +213,9 @@ void TGLText::SetGLTextFont(Font_t fontnumber) - - fGLTextFont = new FTGLPolygonFont(ttfont); +@@ -209,5 +284,6 @@ + if (!fGLTextFont->FaceSize(1)) + Error("SetGLTextFont","Cannot set FTGL::FaceSize"), +- delete [] ttfont; + FcPatternDestroy (match); + FcPatternDestroy (pat); -+ - if (!fGLTextFont->FaceSize(1)) - Error("SetGLTextFont","Cannot set FTGL::FaceSize"); -- delete [] ttfont; } --- -2.54.0 - +diff -ur root-5.30.01.orig/gui/gui/src/TGApplication.cxx root-5.30.01/gui/gui/src/TGApplication.cxx +--- root-5.30.01.orig/gui/gui/src/TGApplication.cxx 2011-08-18 16:46:02.000000000 +0200 ++++ root-5.30.01/gui/gui/src/TGApplication.cxx 2011-08-18 19:28:45.169497323 +0200 +@@ -83,25 +83,12 @@ + gROOT->SetBatch(kFALSE); + + if (strcmp(appClassName, "proofserv")) { +- const char *ttpath = gEnv->GetValue("Root.TTFontPath", +-#ifdef TTFFONTDIR +- TTFFONTDIR); +-#else +- "$(ROOTSYS)/fonts"); +-#endif +- +- char *ttfont = gSystem->Which(ttpath, "arialbd.ttf", kReadPermission); +- // Added by cholm for use of DFSG - fonts - based on fix by Kevin +- if (!ttfont) +- ttfont = gSystem->Which(ttpath, "FreeSansBold.ttf", kReadPermission); +- if (ttfont && gEnv->GetValue("Root.UseTTFonts", 1)) { ++ if (gEnv->GetValue("Root.UseTTFonts", 1)) { + TPluginHandler *h; + if ((h = gROOT->GetPluginManager()->FindHandler("TVirtualX", "x11ttf"))) + if (h->LoadPlugin() == -1) + Info("TGApplication", "no TTF support"); + } +- +- delete [] ttfont; + } + + // Create the canvas colors early so they are allocated before +diff -ur root-5.30.01.orig/gui/gui/src/TGSpeedo.cxx root-5.30.01/gui/gui/src/TGSpeedo.cxx +--- root-5.30.01.orig/gui/gui/src/TGSpeedo.cxx 2011-08-18 16:46:02.000000000 +0200 ++++ root-5.30.01/gui/gui/src/TGSpeedo.cxx 2011-08-18 19:28:45.170497323 +0200 +@@ -117,8 +117,7 @@ + + TString sc; + Float_t step, mark[5]; +- TString fp = gEnv->GetValue("Root.TTFontPath", ""); +- TString ar = fp + "/arialbd.ttf"; ++ TString ar = "arialbd.ttf"; + Int_t i, nexe, offset; + + const TGFont *counterFont = fClient->GetFont("-*-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*"); +@@ -521,8 +520,7 @@ + if (fImage2 && fImage2->IsValid()) + delete fImage2; + fImage2 = (TImage*)fImage->Clone("fImage2"); +- TString fp = gEnv->GetValue("Root.TTFontPath", ""); +- TString ar = fp + "/arialbd.ttf"; ++ TString ar = "arialbd.ttf"; + // format counter value + Int_t nexe = 0; + Int_t ww = fCounter; +@@ -601,8 +599,7 @@ + if (fImage2 && fImage2->IsValid()) + delete fImage2; + fImage2 = (TImage*)fImage->Clone("fImage2"); +- TString fp = gEnv->GetValue("Root.TTFontPath", ""); +- TString ar = fp + "/arialbd.ttf"; ++ TString ar = "arialbd.ttf"; + // format counter value + Int_t nexe = 0; + Int_t ww = fCounter; diff --git a/root-ftgl.patch b/root-ftgl.patch new file mode 100644 index 0000000..b4bf1e4 --- /dev/null +++ b/root-ftgl.patch @@ -0,0 +1,55 @@ +diff -ur root-trunk.orig/configure root-trunk/configure +--- root-trunk.orig/configure 2010-12-04 00:23:49.000000000 +0100 ++++ root-trunk/configure 2010-12-04 19:40:46.810052008 +0100 +@@ -2502,13 +2502,13 @@ + message "Checking for libftgl" + if pkg-config --exists ftgl ; then + result "ok" +- message "Checking for ftgl version > 2.1.2" ++ message "Checking for ftgl" + ftgl_version=`pkg-config --modversion ftgl | \ + tr '.' ' ' | \ + awk 'BEGIN { FS = " "; } \ + { printf "%d", ($''1 * 1000 + $''2) * 1000 + $''3;}'` + # Use FTGL/ftgl.h when > 2.1.2 +- if test $ftgl_version -gt 2001002 ; then ++ if test $ftgl_version -gt 0 ; then + result "ok" + ftglincdir=`pkg-config --cflags-only-I ftgl | sed 's/-I//g'` + ftgllibs=`pkg-config --libs-only-l ftgl` +diff -ur root-trunk.orig/graf3d/gl/src/TGLFontManager.cxx root-trunk/graf3d/gl/src/TGLFontManager.cxx +--- root-trunk.orig/graf3d/gl/src/TGLFontManager.cxx 2010-11-03 22:51:45.000000000 +0100 ++++ root-trunk/graf3d/gl/src/TGLFontManager.cxx 2010-12-04 19:36:46.716052000 +0100 +@@ -25,7 +25,13 @@ + // Direct inclussion of FTGL headers is deprecated in ftgl-2.1.3 while + // ftgl-2.1.2 shipped with ROOT requires manual inclusion. + #ifndef BUILTIN_FTGL +-# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include + #else + # include "FTFont.h" + # include "FTGLExtrdFont.h" +diff -ur root-trunk.orig/graf3d/gl/src/TGLText.cxx root-trunk/graf3d/gl/src/TGLText.cxx +--- root-trunk.orig/graf3d/gl/src/TGLText.cxx 2010-11-03 22:51:45.000000000 +0100 ++++ root-trunk/graf3d/gl/src/TGLText.cxx 2010-12-04 19:36:46.716052000 +0100 +@@ -23,7 +23,13 @@ + // Direct inclussion of FTGL headers is deprecated in ftgl-2.1.3 while + // ftgl-2.1.2 shipped with ROOT requires manual inclusion. + #ifndef BUILTIN_FTGL +-# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include + #else + # include "FTFont.h" + # include "FTGLExtrdFont.h" diff --git a/root-get-src.sh b/root-get-src.sh deleted file mode 100755 index d83c34a..0000000 --- a/root-get-src.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -VERSION=$1 -wget -N https://root.cern/download/root_v${VERSION}.source.tar.gz -tar -z -x -f root_v${VERSION}.source.tar.gz -find root-${VERSION}/fonts -type f -a '!' -name 'STIX*' -exec rm {} ';' -tar -J -c --group root --owner root -f root-${VERSION}.tar.xz root-${VERSION} diff --git a/root-gfal-bits.patch b/root-gfal-bits.patch new file mode 100644 index 0000000..050e522 --- /dev/null +++ b/root-gfal-bits.patch @@ -0,0 +1,61 @@ +diff -ur root-5.28.00h.orig/config/Makefile.in root-5.28.00h/config/Makefile.in +--- root-5.28.00h.orig/config/Makefile.in 2011-11-24 17:12:55.000000000 +0100 ++++ root-5.28.00h/config/Makefile.in 2013-03-02 08:09:02.230002472 +0100 +@@ -154,6 +154,7 @@ + GFALLIBDIR := @gfallibdir@ + GFALCLILIB := @gfallib@ + GFALINCDIR := $(filter-out /usr/include, @gfalincdir@) ++SRMIFCEINCDIR := $(filter-out /usr/include, @srmifceincdir@) + + BUILDGLITE := @buildglite@ + GLITELIBDIR := @glitelibdir@ +diff -ur root-5.28.00h.orig/configure root-5.28.00h/configure +--- root-5.28.00h.orig/configure 2011-11-24 17:12:57.000000000 +0100 ++++ root-5.28.00h/configure 2013-03-02 08:10:33.684863607 +0100 +@@ -1426,6 +1426,7 @@ + gviz-incdir Graphviz support, location of gvc.h + gviz-libdir Graphviz support, location of libgvplugin_core + gfal-incdir GFAL support, location of gfal_api.h ++ srm-ifce-incdir GFAL support, location of gfal_srm_ifce_types.h + gfal-libdir GFAL support, location of libgfal + glew-incdir GLEW support, location of glew.h + glew-libdir GLEW support, location of libGLEW +@@ -1733,6 +1734,7 @@ + --with-gviz-libdir=*) gvizlibdir=$optarg ; enable_gviz="yes" ;; + --with-gfal-incdir=*) gfalincdir=$optarg ; enable_gfal="yes" ;; + --with-gfal-libdir=*) gfallibdir=$optarg ; enable_gfal="yes" ;; ++ --with-srm-ifce-incdir=*) srmifceincdir=$optarg;; + --with-glew-incdir=*) glewincdir=$optarg ; enable_builtin_glew=no;; + --with-glew-libdir=*) glewlibdir=$optarg ; enable_builtin_glew=no;; + --with-gsl-incdir=*) gslincdir=$optarg ; enable_gsl="yes" ;; +@@ -3199,6 +3201,12 @@ + gfallib=$found_lib + gfallibdir=$found_dir + ++ check_header "gfal_srm_ifce_types.h" "$srmifceincdir" \ ++ /opt/lcg/include /opt/srm-ifce/include /usr/local/lcg/include \ ++ /usr/local/srm-ifce/include ++ srmifceinc=$found_hdr ++ srmifceincdir=$found_dir ++ + if test "x$gfalincdir" = "x" || test "x$gfallib" = "x"; then + enable_gfal="no" + fi +@@ -6341,6 +6349,7 @@ + -e "s|@exceptions@|$enable_exceptions|" \ + -e "s|@explicitlink@|$enable_explicitlink|" \ + -e "s|@gfalincdir@|$gfalincdir|" \ ++ -e "s|@srmifceincdir@|$srmifceincdir|" \ + -e "s|@gfallib@|$gfallib|" \ + -e "s|@gfallibdir@|$gfallibdir|" \ + -e "s|@enable_xft@|$enable_xft|" \ +diff -ur root-5.28.00h.orig/io/gfal/Module.mk root-5.28.00h/io/gfal/Module.mk +--- root-5.28.00h.orig/io/gfal/Module.mk 2011-11-24 17:12:56.000000000 +0100 ++++ root-5.28.00h/io/gfal/Module.mk 2013-03-02 08:04:00.349761906 +0100 +@@ -70,3 +70,6 @@ + ##### extra rules ###### + $(GFALO) $(GFALDO): CXXFLAGS := $(filter-out -Wshadow,$(CXXFLAGS)) + $(GFALO): CXXFLAGS += $(GFALINCDIR:%=-I%) ++$(GFALO): CXXFLAGS += $(SRMIFCEINCDIR:%=-I%) ++$(GFALO): CXXFLAGS += $(shell pkg-config --cflags glib-2.0) ++$(GFALO): CXXFLAGS += -D_FILE_OFFSET_BITS=64 diff --git a/root-glibc.patch b/root-glibc.patch new file mode 100644 index 0000000..b2da159 --- /dev/null +++ b/root-glibc.patch @@ -0,0 +1,35 @@ +diff -ur root-5.34.00.orig/build/rmkdepend/main.c root-5.34.00/build/rmkdepend/main.c +--- root-5.34.00.orig/build/rmkdepend/main.c 2012-06-05 15:31:46.000000000 +0200 ++++ root-5.34.00/build/rmkdepend/main.c 2012-07-05 20:42:58.938953353 +0200 +@@ -60,7 +60,7 @@ + # endif + # elif defined(__CYGWIN__) + extern int fchmod(int, mode_t); +-#else ++# elif !defined(__GLIBC__) || __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 16) + extern int fchmod(int, int); + # endif + #endif +diff -ur root-5.34.00.orig/cint/tool/rmkdepend/main.c root-5.34.00/cint/tool/rmkdepend/main.c +--- root-5.34.00.orig/cint/tool/rmkdepend/main.c 2012-06-05 15:31:30.000000000 +0200 ++++ root-5.34.00/cint/tool/rmkdepend/main.c 2012-07-05 20:42:58.492949104 +0200 +@@ -58,7 +58,7 @@ + #if !defined(MAC_OS_X_VERSION_10_4) + extern int fchmod(); + #endif +-#else ++#elif !defined(__GLIBC__) || __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 16) + extern int fchmod(); + #endif + #endif +diff -ur root-5.34.00.orig/core/unix/src/TUnixSystem.cxx root-5.34.00/core/unix/src/TUnixSystem.cxx +--- root-5.34.00.orig/core/unix/src/TUnixSystem.cxx 2012-06-05 15:31:17.000000000 +0200 ++++ root-5.34.00/core/unix/src/TUnixSystem.cxx 2012-07-05 20:29:29.969242837 +0200 +@@ -98,6 +98,7 @@ + #include + #include + #include ++#include + #include + #include + #include diff --git a/root-html.C b/root-html.C new file mode 100644 index 0000000..82b0244 --- /dev/null +++ b/root-html.C @@ -0,0 +1,35 @@ +{ + gEnv->SetValue("Root.DynamicPath", "@PWD@/lib"); + gEnv->SetValue("Root.MacroPath", "@PWD@/macros"); + gEnv->SetValue("Root.PluginPath", "@PWD@/etc/plugins"); + gSystem->AddIncludePath("-I@PWD@/include"); + gSystem->AddIncludePath("-I@PWD@/cint/cint/include"); + gSystem->AddIncludePath("-I@PWD@/cint/cint/stl"); + gSystem->AddIncludePath("-I@PWD@/cint/cint/lib"); + TInterpreter::Instance()->AddIncludePath("@PWD@/include"); + TInterpreter::Instance()->AddIncludePath("@PWD@/cint/cint/include"); + TInterpreter::Instance()->AddIncludePath("@PWD@/cint/cint/stl"); + TInterpreter::Instance()->AddIncludePath("@PWD@/cint/cint/lib"); + #include + #include + #include + #include + gROOT->GetPluginManager()->LoadHandlersFromPluginDirs(""); + gROOT->GetPluginManager()->AddHandler("TVirtualPS","image", + "TImageDump","Postscript", + "TImageDump()"); + gROOT->GetPluginManager()->AddHandler("TVirtualStreamerInfo", + "*","TStreamerInfo", + "RIO","TStreamerInfo()"); + gROOT->GetPluginManager()->AddHandler("TVirtualGraphPainter", "*", + "TGraphPainter","GraphPainter", + "TGraphPainter()"); + delete (TFile*) gROOT->ProcessLine(".x tutorials/hsimple.C"); + THtml html; + html.SetProductName("ROOT"); + html.SetEtcDir("@PWD@/etc/html"); + html.SetHomepage("http://root.cern.ch"); + html.LoadAllLibs(); + html.SetBatch(kTRUE); + html.MakeAll(); +} diff --git a/root-includelist b/root-includelist new file mode 100644 index 0000000..cd7842c --- /dev/null +++ b/root-includelist @@ -0,0 +1,11 @@ +include $(MODULE)/Module.mk +includelist: + @list=includelist-`tr / - <<< $(MODULE)` ; \ + rm -f $$list ; \ + for h in $(filter-out %.cw %.pri, $(ALLHDRS)) ; do \ + sed 's!^include!%{_includedir}/%{name}!' <<< $$h >> $$list ; \ + done ; \ + if [ -r $$list ] ; then \ + sort -u $$list > $$list.unique ; \ + mv $$list.unique $$list ; \ + fi diff --git a/root-memory-arm-x86.patch b/root-memory-arm-x86.patch deleted file mode 100644 index 2de8e36..0000000 --- a/root-memory-arm-x86.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- root-6.12.04.orig/interpreter/CMakeLists.txt 2017-12-13 08:27:42.000000000 +0100 -+++ root-6.12.04/interpreter/CMakeLists.txt 2018-01-11 16:33:13.034850962 +0100 -@@ -75,6 +75,12 @@ - set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /ignore:4049,4206,4217,4221") - endif() - -+# Reduce memory usage during linking on ARM and x86 by generating minimal debuginfo -+if(ROOT_ARCHITECTURE STREQUAL "linuxarm" OR ROOT_ARCHITECTURE STREQUAL "linux") -+ string(REPLACE " -g " " -g1 " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") -+ string(REPLACE " -g " " -g1 " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") -+endif() -+ - set(LLVM_TARGETS_TO_BUILD ${ROOT_CLING_TARGET} CACHE STRING "Semicolon-separated list of targets to build, or \"all\".") - - if(clingtest) diff --git a/root-meta.patch b/root-meta.patch new file mode 100644 index 0000000..6395e3a --- /dev/null +++ b/root-meta.patch @@ -0,0 +1,44 @@ +diff -ur root-5.32.00.orig/core/meta/src/TCint.cxx root-5.32.00/core/meta/src/TCint.cxx +--- root-5.32.00.orig/core/meta/src/TCint.cxx 2011-12-02 12:41:50.000000000 +0100 ++++ root-5.32.00/core/meta/src/TCint.cxx 2012-02-18 12:07:12.157520013 +0100 +@@ -320,23 +320,27 @@ + ProcessLine("#define ROOT_TError 0"); + ProcessLine("#define ROOT_TGenericClassInfo 0"); + +- TString include; +- // Add the root include directory to list searched by default ++ Int_t includes = gEnv->GetValue("Cint.Includes", 1); ++ if (includes > 0) { ++ TString include; ++ // Add the root include directory to list searched by default + #ifndef ROOTINCDIR +- include = gSystem->Getenv("ROOTSYS"); +- include.Append("/include"); ++ include = gSystem->Getenv("ROOTSYS"); ++ include.Append("/include"); + #else +- include = ROOTINCDIR; ++ include = ROOTINCDIR; + #endif +- TCint::AddIncludePath(include); ++ TCint::AddIncludePath(include); + +- // Allow the usage of ClassDef and ClassImp in interpreted macros +- // if RtypesCint.h can be found (think of static executable without include/) +- char* whichTypesCint = gSystem->Which(include, "RtypesCint.h"); +- if (whichTypesCint) { +- ProcessLine("#include "); +- delete[] whichTypesCint; +- } ++ // Allow the usage of ClassDef and ClassImp in interpreted macros ++ // if RtypesCint.h can be found (think of static executable without ++ // include/) ++ char* whichTypesCint = gSystem->Which(include, "RtypesCint.h"); ++ if (whichTypesCint) { ++ ProcessLine("#include "); ++ delete[] whichTypesCint; ++ } ++ } + + } + diff --git a/root-no-export-python-modules.patch b/root-no-export-python-modules.patch deleted file mode 100644 index d3522f5..0000000 --- a/root-no-export-python-modules.patch +++ /dev/null @@ -1,54 +0,0 @@ -From ea7bed3a096949588b1b9086ddf66b2f7892a385 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Thu, 4 Dec 2025 23:13:28 +0100 -Subject: [PATCH] Dont export Python modules - ---- - bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt | 3 +-- - bindings/pyroot/pythonizations/CMakeLists.txt | 9 +-------- - 2 files changed, 2 insertions(+), 10 deletions(-) - -diff --git a/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt b/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt -index 95ca00bde9f..a12d3f05e4d 100644 ---- a/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt -+++ b/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt -@@ -120,8 +120,7 @@ install(TARGETS CPyCppyy EXPORT ${CMAKE_PROJECT_NAME}Exports - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries) - --install(TARGETS cppyy EXPORT ${CMAKE_PROJECT_NAME}Exports -- RUNTIME DESTINATION ${CPPYY_INSTALL_DIR} COMPONENT libraries # Windows -+install(TARGETS cppyy RUNTIME DESTINATION ${CPPYY_INSTALL_DIR} COMPONENT libraries # Windows - LIBRARY DESTINATION ${CPPYY_INSTALL_DIR} COMPONENT libraries - ARCHIVE DESTINATION ${CPPYY_INSTALL_DIR} COMPONENT libraries) - -diff --git a/bindings/pyroot/pythonizations/CMakeLists.txt b/bindings/pyroot/pythonizations/CMakeLists.txt -index 32d7d54b8da..5128e6d337c 100644 ---- a/bindings/pyroot/pythonizations/CMakeLists.txt -+++ b/bindings/pyroot/pythonizations/CMakeLists.txt -@@ -63,12 +63,6 @@ if(NOT MSVC) - target_compile_options(${libname} PRIVATE -Wno-strict-aliasing) - endif() - -- --# Create meta-target PyROOT3 (INTERFACE library) --# Export of targets are not supported for custom targets(add_custom_targets()) --add_library(PyROOT INTERFACE) --target_link_libraries(PyROOT INTERFACE cppyy_backend cppyy ROOTPythonizations) -- - # Define library output directories for build and install trees - set(pymoduledir_build "${localruntimedir}/ROOT") - set(pymoduledir_install "${CMAKE_INSTALL_PYTHONDIR}/ROOT") -@@ -93,8 +87,7 @@ if(NOT MSVC) - endif() - - # Install library --install(TARGETS ${libname} EXPORT ${CMAKE_PROJECT_NAME}Exports -- RUNTIME DESTINATION ${pymoduledir_install} COMPONENT libraries -+install(TARGETS ${libname} RUNTIME DESTINATION ${pymoduledir_install} COMPONENT libraries - LIBRARY DESTINATION ${pymoduledir_install} COMPONENT libraries - ARCHIVE DESTINATION ${pymoduledir_install} COMPONENT libraries) - --- -2.55.0 - diff --git a/root-pdf-Fix-calculation-of-kerning-distances-in-generate.patch b/root-pdf-Fix-calculation-of-kerning-distances-in-generate.patch deleted file mode 100644 index 598d7b0..0000000 --- a/root-pdf-Fix-calculation-of-kerning-distances-in-generate.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 87e5571eef573a1ab802c9b5b68e4215045689b9 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Sat, 29 Aug 2026 13:15:53 +0200 -Subject: [PATCH] [pdf] Fix calculation of kerning distances in generated PDF - files - -Note that this uses the system fonts on Fedora rather than the bundled -fonts in the root sources. - -Using the following test program - -void ttest() -{ - auto c = new TCanvas("c", "", 300, 100); - auto t = new TText(0.1, 0.4, "Raw assymmetry"); - t->SetTextSize(0.5); - t->SetTextFont(132); - t->Draw(); - c->Print("ttest.pdf"); - c->Print("ttest.eps"); - c->Print("ttest.png"); -} - -The .eps and .png images look like expected. But the .pdf image only -shows the initial capital "R", not the full "Raw assymmetry" text. - -After decompressing the generated .pdf file: - -cpdf -decompress ttest.pdf -o ttest.dec.pdf - -the decompressed file shows that the kerning distances are incorrect: - -[(R) -2147483648(a) 24(w) -2147483648( ) 0(a) 0(s) -2147483648(s) 17(y) 0(m) 0(m) 8(e) 8(t) 0(r) -2147483648(y) ] - -Something has clearly gone wrong here. -2147483648 is the minimum -value that can be stored in a 16 bit signed integer. - -The origin of the problem is a calculation of a difference between a -UInt_t (i.e. unsigned) value and an Int_t (i.e. signed) value in the -TPDF::Text() method. Casting the UInt_t to an Int_t before calculating -the difference, as done in this commit, fixes the problem. With this -change the kerning distances are better: - -[(R) -2(a) 24(w) -2( ) 0(a) 0(s) -2(s) 17(y) 0(m) 0(m) 8(e) 8(t) 0(r) -2(y) ] - -and the generated .pdf file shows the complete text. The generated -.png and .eps files do not change (except for the time stamp in the -.eps file). ---- - graf2d/postscript/src/TPDF.cxx | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/graf2d/postscript/src/TPDF.cxx b/graf2d/postscript/src/TPDF.cxx -index 21a2506010f..e1cd9b10d10 100644 ---- a/graf2d/postscript/src/TPDF.cxx -+++ b/graf2d/postscript/src/TPDF.cxx -@@ -1943,7 +1943,7 @@ void TPDF::Text(Double_t xx, Double_t yy, const char *chars) - tmp[0] = chars[i-1]; - UInt_t width=0; - t.GetTextAdvance(width, &tmp[0], kFALSE); -- Double_t wwl = gPad->AbsPixeltoX(width - charDeltas[i]) - gPad->AbsPixeltoX(0); -+ Double_t wwl = gPad->AbsPixeltoX((Int_t)width - charDeltas[i]) - gPad->AbsPixeltoX(0); - wwl -= 0.5*(gPad->AbsPixeltoX(1) - gPad->AbsPixeltoX(0)); // half a pixel ~ rounding error - charDeltas[i] = (Int_t)((1000.0/Float_t(fontsize))*(XtoPDF(wwl) - XtoPDF(0))/scale); - } --- -2.55.0 - diff --git a/root-qt.patch b/root-qt.patch new file mode 100644 index 0000000..353b6fb --- /dev/null +++ b/root-qt.patch @@ -0,0 +1,25 @@ +diff -ur root-5.28.00h.orig/configure root-5.28.00h/configure +--- root-5.28.00h.orig/configure 2011-11-24 17:12:57.000000000 +0100 ++++ root-5.28.00h/configure 2013-03-02 12:52:21.823338782 +0100 +@@ -2955,21 +2955,6 @@ + check_library "libQt3Support Qt3Support Qt3Support$qt4suffix Qt3Support4" \ + "$enable_shared" "$found_raw_dir" "" + qtlib="$qtlib $found_lib" +- check_library "libQtOpenGL QtOpenGL QtOpenGL$qt4suffix QtOpenGL4" \ +- "$enable_shared" "$found_raw_dir" "" +- qtlib="$qtlib $found_lib" +- check_library "libQtSvg QtSvg QtSvg$qt4suffix QtSvg4" \ +- "$enable_shared" "$found_raw_dir" "" +- qtlib="$qtlib $found_lib" +- check_library "libQtXml QtXml QtXml$qt4suffix QtXml4" \ +- "$enable_shared" "$found_raw_dir" "" +- qtlib="$qtlib $found_lib" +- check_library "libQtWebKit QtWebKit QtWebKit$qt4suffix QtWebKit4" \ +- "$enable_shared" "$found_raw_dir" "" +- qtlib="$qtlib $found_lib" +- check_library "libQtNetwork QtNetwork QtNetwork$qt4suffix QtNetwork4" \ +- "$enable_shared" "$found_raw_dir" "" +- qtlib="$qtlib $found_lib" + else + qtinc= + qtmainincdir= diff --git a/root-testfiles.sh b/root-testfiles.sh deleted file mode 100755 index c2451e9..0000000 --- a/root-testfiles.sh +++ /dev/null @@ -1,87 +0,0 @@ -#! /bin/sh - -SITE="https://root.cern/files" - -mkdir files -pushd files - -wget -N ${SITE}/aleph_ref_5.root -wget -N ${SITE}/aleph.root -wget -N ${SITE}/alice3_ref_6.root -wget -N ${SITE}/alice3.root -wget -N ${SITE}/ams_ref_4.root -wget -N ${SITE}/ams.root -wget -N ${SITE}/atlas_ref_6.root -wget -N ${SITE}/atlas.root -wget -N ${SITE}/babar2_ref_4.root -wget -N ${SITE}/babar2.root -wget -N ${SITE}/barres_ref_3.root -wget -N ${SITE}/barres.root -wget -N ${SITE}/belle_ref_3.root -wget -N ${SITE}/belle.root -wget -N ${SITE}/bes_ref_3.root -wget -N ${SITE}/bes.root -wget -N ${SITE}/brahms_ref_3.root -wget -N ${SITE}/brahms.root -wget -N ${SITE}/btev_ref_3.root -wget -N ${SITE}/btev.root -wget -N ${SITE}/cdf_ref_6.root -wget -N ${SITE}/cdf.root -wget -N ${SITE}/chambers_ref_3.root -wget -N ${SITE}/chambers.root -wget -N ${SITE}/cms_ref_4.root -wget -N ${SITE}/cms.root -wget -N ${SITE}/dubna_ref_3.root -wget -N ${SITE}/dubna.root -wget -N ${SITE}/e907_ref_3.root -wget -N ${SITE}/e907.root -wget -N ${SITE}/felix_ref_3.root -wget -N ${SITE}/felix.root -wget -N ${SITE}/ganil_ref_3.root -wget -N ${SITE}/ganil.root -wget -N ${SITE}/gem_ref_5.root -wget -N ${SITE}/gem.root -wget -N ${SITE}/hades2_ref_4.root -wget -N ${SITE}/hades2.root -wget -N ${SITE}/hermes_ref_3.root -wget -N ${SITE}/hermes.root -wget -N ${SITE}/integral_ref_4.root -wget -N ${SITE}/integral.root -wget -N ${SITE}/lhcbfull_ref_4.root -wget -N ${SITE}/lhcbfull.root -wget -N ${SITE}/na35_ref_3.root -wget -N ${SITE}/na35.root -wget -N ${SITE}/na47_ref_3.root -wget -N ${SITE}/na47.root -wget -N ${SITE}/na49_ref_3.root -wget -N ${SITE}/na49.root -wget -N ${SITE}/p326_ref_4.root -wget -N ${SITE}/p326.root -wget -N ${SITE}/phenix_ref_3.root -wget -N ${SITE}/phenix.root -wget -N ${SITE}/phobos2_ref_4.root -wget -N ${SITE}/phobos2.root -wget -N ${SITE}/sdc_ref_3.root -wget -N ${SITE}/sdc.root -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_4.root -wget -N ${SITE}/tesla.root -wget -N ${SITE}/wa91_ref_3.root -wget -N ${SITE}/wa91.root - -wget -N ${SITE}/europe.root -wget -N ${SITE}/usa.root - -for f in *.root ; do ln -s $f $f.ROOT.cachefile ; done - -mkdir tutorials -pushd tutorials -wget -N ${SITE}/tutorials/df014_CsvDataSource_MuRun2010B.csv -popd - -popd - -tar -J -c --group root --owner root -f root-testfiles.tar.xz files diff --git a/root-tmva-sofie-Complete-big-endian-support-for-ONNX-init.patch b/root-tmva-sofie-Complete-big-endian-support-for-ONNX-init.patch deleted file mode 100644 index d7d0181..0000000 --- a/root-tmva-sofie-Complete-big-endian-support-for-ONNX-init.patch +++ /dev/null @@ -1,146 +0,0 @@ -From 2fec5822e305b9b203894aa0fe3e4dded1f673cc Mon Sep 17 00:00:00 2001 -From: Jonas Rembser -Date: Wed, 8 Jul 2026 11:13:16 +0200 -Subject: [PATCH] [tmva][sofie] Complete big-endian support for ONNX - initializer tensors -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Follow-up to the last commit ("[tmva][sofie] Fix big endian"), which -byte-swapped raw_data initializers on big-endian platforms but left a -few gaps: - -- Initializers with data_location == EXTERNAL were still read from the - external weights file without swapping, silently producing - byte-reversed weights on big-endian machines. - -- The type switch only handled FLOAT, DOUBLE, INT32 and INT64. One-byte - types (BOOL, UINT8, INT8), which parse fine on little-endian via - plain memcpy, now threw on big-endian, and the other fixed-width - types (INT16, UINT16, UINT32, UINT64) were rejected as well. - -- The swap loops dereferenced the protobuf string buffer through - reinterpret_cast'ed uint32_t*/uint64_t* pointers, which is a - misaligned access on strict-alignment targets (e.g. SPARC) since - the buffer carries no alignment guarantee. - -Replace the four copy-pasted swap loops with a width-dispatched helper, -CopyLEToHost, that plain-copies 1-byte element types and byte-swaps -2/4/8-byte elements through a memcpy'd temporary (no misaligned loads, -valid for in-place use), and call it from both the raw_data and the -external-data paths. - -🤖 Done with the help of AI ---- - tmva/sofie_parsers/src/RModelParser_ONNX.cxx | 73 ++++++++++++-------- - 1 file changed, 45 insertions(+), 28 deletions(-) - -diff --git a/tmva/sofie_parsers/src/RModelParser_ONNX.cxx b/tmva/sofie_parsers/src/RModelParser_ONNX.cxx -index ac4cc7d5740..1c14d12ba30 100644 ---- a/tmva/sofie_parsers/src/RModelParser_ONNX.cxx -+++ b/tmva/sofie_parsers/src/RModelParser_ONNX.cxx -@@ -4,6 +4,7 @@ - - #include - #include -+#include - #include - #include - #include -@@ -155,6 +156,45 @@ struct ExtractDataFromTP { - } - }; - -+#ifndef R__BYTESWAP -+namespace { -+ -+// Copy nbytes from source to dest, byte-swapping each N-byte element. The -+// temporary avoids misaligned loads from the protobuf string buffer and makes -+// in-place swapping (dest == source) valid. -+template -+void CopyBswap(void *dest, const void *source, std::size_t nbytes) -+{ -+ using value_type = typename RByteSwap::value_type; -+ auto dst = static_cast(dest); -+ auto src = static_cast(source); -+ for (std::size_t k = 0; k < nbytes; k += N) { -+ value_type v; -+ std::memcpy(&v, src + k, N); -+ v = RByteSwap::bswap(v); -+ std::memcpy(dst + k, &v, N); -+ } -+} -+ -+// Copy a buffer of little-endian tensor elements to host (big-endian) byte order -+void CopyLEToHost(void *dest, const void *source, std::size_t nbytes, ETensorType tensor_type) -+{ -+ switch (GetTypeSize(tensor_type)) { -+ case 1: -+ if (dest != source) -+ std::memcpy(dest, source, nbytes); -+ break; -+ case 2: CopyBswap<2>(dest, source, nbytes); break; -+ case 4: CopyBswap<4>(dest, source, nbytes); break; -+ case 8: CopyBswap<8>(dest, source, nbytes); break; -+ default: -+ throw std::runtime_error("Data type " + ConvertTypeToString(tensor_type) + " in tensor is not supported!\n"); -+ } -+} -+ -+} // anonymous namespace -+#endif -+ - std::shared_ptr RModelParser_ONNX::GetInitializedTensorData(onnx::TensorProto *tensorproto, size_t tensor_size, ETensorType tensor_type) - { - -@@ -172,34 +212,7 @@ std::shared_ptr RModelParser_ONNX::GetInitializedTensorData(onnx::TensorPr - std::memcpy(data.get(), tensorproto->raw_data().c_str(), tensor_size); - #else - // big-endian architectures - need to swap bytes -- switch (tensor_type) { -- case ETensorType::FLOAT: -- for (std::size_t k = 0; k < tensor_size / sizeof(float); ++k) -- (reinterpret_cast::value_type *>(data.get()))[k] = -- RByteSwap::bswap((reinterpret_cast::value_type *>( -- tensorproto->raw_data().c_str()))[k]); -- break; -- case ETensorType::DOUBLE: -- for (std::size_t k = 0; k < tensor_size / sizeof(double); ++k) -- (reinterpret_cast::value_type *>(data.get()))[k] = -- RByteSwap::bswap((reinterpret_cast::value_type *>( -- tensorproto->raw_data().c_str()))[k]); -- break; -- case ETensorType::INT32: -- for (std::size_t k = 0; k < tensor_size / sizeof(int32_t); ++k) -- (reinterpret_cast::value_type *>(data.get()))[k] = -- RByteSwap::bswap((reinterpret_cast::value_type *>( -- tensorproto->raw_data().c_str()))[k]); -- break; -- case ETensorType::INT64: -- for (std::size_t k = 0; k < tensor_size / sizeof(int64_t); ++k) -- (reinterpret_cast::value_type *>(data.get()))[k] = -- RByteSwap::bswap((reinterpret_cast::value_type *>( -- tensorproto->raw_data().c_str()))[k]); -- break; -- default: -- throw std::runtime_error("Data type " + ConvertTypeToString(tensor_type) + " in tensor is not supported!\n"); -- } -+ CopyLEToHost(data.get(), tensorproto->raw_data().c_str(), tensor_size, tensor_type); - #endif - } else { - // case tensor data are stored as specific types and not in raw_data -@@ -262,6 +275,10 @@ std::shared_ptr RModelParser_ONNX::GetInitializedTensorData(onnx::TensorPr - - fDataFile.seekg(offset); - fDataFile.read(reinterpret_cast(data.get()), buffer_size); -+#ifndef R__BYTESWAP -+ // external data is stored little-endian like raw_data - swap in place -+ CopyLEToHost(data.get(), data.get(), buffer_size, tensor_type); -+#endif - } - - return data; --- -2.55.0 - diff --git a/root-tmva-sofie-Fix-big-endian.patch b/root-tmva-sofie-Fix-big-endian.patch deleted file mode 100644 index fb1663d..0000000 --- a/root-tmva-sofie-Fix-big-endian.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 8554bf49749efd8de5538bf99c12a04d2691102d Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Sun, 28 Jun 2026 16:49:23 +0200 -Subject: [PATCH] [tmva][sofie] Fix big endian - ---- - tmva/sofie_parsers/src/RModelParser_ONNX.cxx | 36 ++++++++++++++++---- - 1 file changed, 30 insertions(+), 6 deletions(-) - -diff --git a/tmva/sofie_parsers/src/RModelParser_ONNX.cxx b/tmva/sofie_parsers/src/RModelParser_ONNX.cxx -index aa196c510ad..ac4cc7d5740 100644 ---- a/tmva/sofie_parsers/src/RModelParser_ONNX.cxx -+++ b/tmva/sofie_parsers/src/RModelParser_ONNX.cxx -@@ -172,13 +172,37 @@ std::shared_ptr RModelParser_ONNX::GetInitializedTensorData(onnx::TensorPr - std::memcpy(data.get(), tensorproto->raw_data().c_str(), tensor_size); - #else - // big-endian architectures - need to swap bytes -- for (std::size_t k = 0; k < tensor_size; ++k) -- (reinterpret_cast::value_type *>(data.get()))[k] = -- RByteSwap::bswap((reinterpret_cast::value_type *>( -- tensorproto->raw_data().c_str()))[k]); -+ switch (tensor_type) { -+ case ETensorType::FLOAT: -+ for (std::size_t k = 0; k < tensor_size / sizeof(float); ++k) -+ (reinterpret_cast::value_type *>(data.get()))[k] = -+ RByteSwap::bswap((reinterpret_cast::value_type *>( -+ tensorproto->raw_data().c_str()))[k]); -+ break; -+ case ETensorType::DOUBLE: -+ for (std::size_t k = 0; k < tensor_size / sizeof(double); ++k) -+ (reinterpret_cast::value_type *>(data.get()))[k] = -+ RByteSwap::bswap((reinterpret_cast::value_type *>( -+ tensorproto->raw_data().c_str()))[k]); -+ break; -+ case ETensorType::INT32: -+ for (std::size_t k = 0; k < tensor_size / sizeof(int32_t); ++k) -+ (reinterpret_cast::value_type *>(data.get()))[k] = -+ RByteSwap::bswap((reinterpret_cast::value_type *>( -+ tensorproto->raw_data().c_str()))[k]); -+ break; -+ case ETensorType::INT64: -+ for (std::size_t k = 0; k < tensor_size / sizeof(int64_t); ++k) -+ (reinterpret_cast::value_type *>(data.get()))[k] = -+ RByteSwap::bswap((reinterpret_cast::value_type *>( -+ tensorproto->raw_data().c_str()))[k]); -+ break; -+ default: -+ throw std::runtime_error("Data type " + ConvertTypeToString(tensor_type) + " in tensor is not supported!\n"); -+ } - #endif - } else { -- // case tensor data are stored as specific types and now in raw_data -+ // case tensor data are stored as specific types and not in raw_data - switch (tensor_type) { - case ETensorType::FLOAT: { - ExtractDataFromTP::Copy(tensorproto, data.get(), tensor_size/ 4); -@@ -200,7 +224,7 @@ std::shared_ptr RModelParser_ONNX::GetInitializedTensorData(onnx::TensorPr - throw std::runtime_error("TMVA::SOFIE - ExtractData from TP in BOOL not supported"); - break; - } -- case ETensorType::UINT8: { -+ case ETensorType::UINT8: { - throw std::runtime_error("TMVA::SOFIE - ExtractData from TP in UINT8 not supported"); - break; - } --- -2.54.0 - diff --git a/root-tree-df-Do-not-fail-test-on-32-bit-due-to-mis-aligne.patch b/root-tree-df-Do-not-fail-test-on-32-bit-due-to-mis-aligne.patch deleted file mode 100644 index ecca598..0000000 --- a/root-tree-df-Do-not-fail-test-on-32-bit-due-to-mis-aligne.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 58b38e29586975e714deee6ac195b286eb9a73cf Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Sun, 28 Jun 2026 16:59:36 +0200 -Subject: [PATCH 2/3] [tree][df] Do not fail test on 32 bit due to mis-aligned - atomic - ---- - tree/dataframe/test/dataframe_hist.cxx | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/tree/dataframe/test/dataframe_hist.cxx b/tree/dataframe/test/dataframe_hist.cxx -index f5fe396b50d..7a2c6659a84 100644 ---- a/tree/dataframe/test/dataframe_hist.cxx -+++ b/tree/dataframe/test/dataframe_hist.cxx -@@ -31,6 +31,7 @@ public: - RDFHist() - { - fDiag.optionalDiag(kWarning, "", "Filling RHist is experimental", /*matchFullMessage=*/false); -+ fDiag.optionalDiag(kWarning, "cling", "expected alignment (8 bytes) exceeds the actual alignment (4 bytes) [-Watomic-alignment]", false); - if (GetParam()) - ROOT::EnableImplicitMT(4); - } --- -2.54.0 - diff --git a/root-tree-nt-Compare-size-to-the-size-of-the-struct.patch b/root-tree-nt-Compare-size-to-the-size-of-the-struct.patch deleted file mode 100644 index 4092d83..0000000 --- a/root-tree-nt-Compare-size-to-the-size-of-the-struct.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 07cbb0515e4f45808696037adce7c0f1bc5e903d Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Sun, 28 Jun 2026 17:01:40 +0200 -Subject: [PATCH 3/3] [tree][nt] Compare size to the size of the struct - -Do not assume it is 2 * sizeof(double), which is not true on 32 bit. ---- - tree/ntuple/test/ntuple_modelext.cxx | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tree/ntuple/test/ntuple_modelext.cxx b/tree/ntuple/test/ntuple_modelext.cxx -index 8ec3886f921..ef27e844e84 100644 ---- a/tree/ntuple/test/ntuple_modelext.cxx -+++ b/tree/ntuple/test/ntuple_modelext.cxx -@@ -810,12 +810,12 @@ TEST(RNTuple, ModelExtensionRecordNested) - modelUpdater->AddField(std::make_unique>("ptHP"), "r1.r2.r3.r4"); - modelUpdater->CommitUpdate(); - -- EXPECT_EQ(2 * sizeof(double), writer->GetModel().GetConstField("r1").GetValueSize()); -- entry = writer->CreateEntry(); - struct FloatAndDouble { - float pt; - double ptHP; - }; -+ EXPECT_EQ(sizeof(FloatAndDouble), writer->GetModel().GetConstField("r1").GetValueSize()); -+ entry = writer->CreateEntry(); - - auto ptrFloatAndDouble = static_cast(entry->GetPtr("r1").get()); - ptrFloatAndDouble->pt = 2.0; --- -2.54.0 - diff --git a/root-unuran.patch b/root-unuran.patch new file mode 100644 index 0000000..b051e6e --- /dev/null +++ b/root-unuran.patch @@ -0,0 +1,39 @@ +diff -ur root-trunk.orig/math/unuran/Module.mk root-trunk/math/unuran/Module.mk +--- root-trunk.orig/math/unuran/Module.mk 2010-11-25 20:41:32.000000000 +0100 ++++ root-trunk/math/unuran/Module.mk 2010-11-25 20:51:47.190704977 +0100 +@@ -20,7 +20,7 @@ + UNURANETAG := $(call stripsrc,$(UNURANDIRS)/headers.d) + UNRCFG := $(call stripsrc,$(UNURANDIRS)/$(UNRVERS)/config.h) + +-UNRTARCONTENT:=$(subst $(UNRVERS),$(UNRDIRS),$(shell mkdir -p $(UNRDIR); cd $(UNRDIR); gunzip -c $(UNRSRCS) | tar tf -)) ++UNRTARCONTENT:= + UNRS := $(filter %.c, \ + $(filter $(UNRDIRS)/src/utils/%,$(UNRTARCONTENT)) \ + $(filter $(UNRDIRS)/src/methods/%,$(UNRTARCONTENT)) \ +@@ -69,10 +69,9 @@ + ##### local rules ##### + .PHONY: all-$(MODNAME) clean-$(MODNAME) distclean-$(MODNAME) + +-include/%.h: $(UNURANDIRI)/%.h $(UNURANETAG) ++include/%.h: $(UNURANDIRI)/%.h + cp $< $@ + +-$(UNURANDEP): $(UNRCFG) + $(UNRS): $(UNURANETAG) + + $(UNURANETAG): $(UNRSRCS) +@@ -125,12 +124,12 @@ + GNUMAKE=$(MAKE) ./configure CC="$$ACC" \ + CFLAGS="$$ACFLAGS"); + +-$(UNURANLIB): $(UNRCFG) $(UNRO) $(UNURANO) $(UNURANDO) $(ORDER_) \ ++$(UNURANLIB): $(UNURANO) $(UNURANDO) $(ORDER_) \ + $(MAINLIBS) $(UNURANLIBDEP) + @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ + "$(SOFLAGS)" libUnuran.$(SOEXT) $@ \ + "$(UNURANO) $(UNURANDO)" \ +- "$(UNURANLIBEXTRA) $(UNRO)" ++ "$(UNURANLIBEXTRA) -lunuran" + + $(UNURANDS): $(UNRINIT) $(UNURANDH1) $(UNURANL) $(ROOTCINTTMPDEP) + $(MAKEDIR) diff --git a/root-xrootd.patch b/root-xrootd.patch new file mode 100644 index 0000000..06f423a --- /dev/null +++ b/root-xrootd.patch @@ -0,0 +1,809 @@ +diff -Nur root-5.32.04.orig/cmake/modules/FindXROOTD.cmake root-5.32.04/cmake/modules/FindXROOTD.cmake +--- root-5.32.04.orig/cmake/modules/FindXROOTD.cmake 2012-07-13 15:54:18.000000000 +0200 ++++ root-5.32.04/cmake/modules/FindXROOTD.cmake 2013-03-08 07:23:10.891952543 +0100 +@@ -28,32 +28,37 @@ + ) + + if (XROOTD_INCLUDE_DIR) +- file(STRINGS ${XROOTD_INCLUDE_DIR}/XrdVersion.hh xrdvers REGEX "^#define XrdVERSION") ++ file(STRINGS ${XROOTD_INCLUDE_DIR}/XrdVersion.hh xrdvers REGEX "^#define XrdVERSION ") + string(REGEX REPLACE "#define[ ]+XrdVERSION[ ]+" "" xrdvers ${xrdvers}) + string(REGEX REPLACE "[^v\\.]+" "" xrdversdots ${xrdvers}) + if (${xrdversdots} STREQUAL "v..") + # Regular version string; parse it out + string(REGEX MATCH "[0-9\\.]+" xrdvers ${xrdvers}) +- string(REGEX MATCH "[0-9]" xrdversmajor ${xrdvers}) +- string(REPLACE "${xrdversmajor}." "" xrdversminor ${xrdvers}) +- string(REGEX MATCH "[0-9]" xrdversminor ${xrdversminor}) +- string(REPLACE "${xrdversmajor}.${xrdversminor}." "" xrdverspatch ${xrdvers}) +- string(REGEX MATCH "[0-9]+" xrdverspatch ${xrdverspatch}) ++ string(REGEX REPLACE "^([^.]*)\\.(.*)\\.(.*)" "\\1" xrdversmajor ${xrdvers}) ++ string(REGEX REPLACE "^([^.]*)\\.(.*)\\.(.*)" "\\2" xrdversminor ${xrdvers}) ++ string(REGEX REPLACE "^([^.]*)\\.(.*)\\.(.*)" "\\3" xrdverspatch ${xrdvers}) + math(EXPR xrdversnum ${xrdversmajor}*100000000+${xrdversminor}*10000+${xrdverspatch}) + else () + # Old version string: we keep only the first numerics, i.e. the date + string(REGEX REPLACE "[v\"]" "" xrdvers ${xrdvers}) +- message(STATUS "Found Xrootd version ${xrdvers}") +- string(REGEX REPLACE "[^0-9-]+" " " xrdvers ${xrdvers}) + string(SUBSTRING ${xrdvers} 0 8 xrdversnum) + endif () ++ if ( ${xrdversnum} EQUAL 300030000 ) ++ SET(XROOTD_FOUND FALSE) ++ message(WARNING " >>> Cannot build with XRootD version 3.3.0: please install >=3.3.1 or <= 3.2.x") ++ else() ++ SET(XROOTD_FOUND TRUE) ++ endif () ++endif() ++ ++if(XROOTD_FOUND) + # This we used as a compiler macro variable + if(NOT XROOTD_FIND_QUIETLY ) +- message(STATUS "Found Xrootd version num: ${xrdvers}") ++ message(STATUS "Found Xrootd version num: ${xrdvers} (setting -DROOTXRDVERS=${xrdversnum})") + endif() + SET(XROOTD_CFLAGS "-DROOTXRDVERS=${xrdversnum}") + +- if ( ${xrdversnum} LESS 300010000 ) ++ if ( ${xrdversnum} LESS 300010000 AND ${xrdversnum} LESS 20111022) + SET(XROOTD_OLDPACK TRUE) + message(STATUS "Setting OLDPACK TRUE") + else() +@@ -72,14 +77,16 @@ + XrdOuc/XrdOucPthread.hh + XrdOuc/XrdOucSemWait.hh + XrdOuc/XrdOucTimer.hh ++ PATHS + ${XROOTD_INCLUDE_DIR} + ) + else() +- if ( ${xrdversnum} LESS 300010000 ) ++ if ( ${xrdversnum} LESS 300010000 AND ${xrdversnum} LESS 20111022) + # DNS stuff was under XrdNet + find_path(XROOTD_INCLUDE_DIR + NAMES + XrdNet/XrdNetDNS.hh ++ PATHS + ${XROOTD_INCLUDE_DIR} + ) + else () +@@ -87,6 +94,7 @@ + find_path(XROOTD_INCLUDE_DIR + NAMES + XrdSys/XrdSysDNS.hh ++ PATHS + ${XROOTD_INCLUDE_DIR} + ) + endif () +@@ -101,9 +109,20 @@ + XrdSys/XrdSysPthread.hh + XrdSys/XrdSysSemWait.hh + XrdSys/XrdSysTimer.hh ++ PATHS + ${XROOTD_INCLUDE_DIR} + ) + endif() ++ ++ if (XROOTD_INCLUDE_DIR) ++ # Check for additional headers in new directories ++ find_path(XROOTD_PRIVATE_INCLUDE_DIR ++ NAMES ++ XrdSys/XrdSysPriv.hh ++ PATHS ++ ${XROOTD_INCLUDE_DIR}/private ++ ) ++ endif() + endif() + if (XROOTD_INCLUDE_DIR) + SET(XROOTD_FOUND TRUE) +@@ -152,7 +171,7 @@ + if(XROOTD_LIBRARIES) + set(XROOTD_FOUND TRUE) + if(NOT XROOTD_FIND_QUIETLY ) +- message(STATUS " include_dir: ${XROOTD_INCLUDE_DIR}") ++ message(STATUS " include_dir: ${XROOTD_INCLUDE_DIR} ${XROOTD_PRIVATE_INCLUDE_DIR}") + message(STATUS " libraries: ${XROOTD_LIBRARIES}") + endif() + else () +@@ -160,7 +179,8 @@ + endif () + endif() + +-mark_as_advanced(XROOTD_INCLUDE_DIR ++mark_as_advanced(XROOTD_INCLUDE_DIR ++ XROOTD_PRIVATE_INCLUDE_DIR + XROOTD_XrdMain_LIBRARY + XROOTD_XrdUtils_LIBRARY + XROOTD_XrdClient_LIBRARY +diff -Nur root-5.32.04.orig/config/Makefile.in root-5.32.04/config/Makefile.in +--- root-5.32.04.orig/config/Makefile.in 2012-07-13 15:55:01.000000000 +0200 ++++ root-5.32.04/config/Makefile.in 2013-03-08 07:23:10.901952610 +0100 +@@ -251,6 +251,7 @@ + EXTRA_XRDFLAGS := @extraxrdflags@ + XRDVERSION := @xrdversion@ + HASXRDUTILS := @hasxrdutils@ ++XRDINCPRIVATE := @xrdincprivate@ + + SRPLIBDIR := @srplibdir@ + SRPLIB := @srplib@ +diff -Nur root-5.32.04.orig/configure root-5.32.04/configure +--- root-5.32.04.orig/configure 2012-07-13 15:55:07.000000000 +0200 ++++ root-5.32.04/configure 2013-03-08 07:23:10.895952570 +0100 +@@ -4473,9 +4473,16 @@ + fi + fi + fi +- echo "$xrdver" ++ # Protect against 3.3.0, first version with 'include/xrootd/private' ++ if [ $decver -eq 300030000 ] ; then ++ echo "Cannot build against version $xrdver (missing headers)" ++ enable_xrootd="no" ++ else ++ echo "$xrdver" ++ fi + fi + ++xrdincprivate="no" + if test "x$enable_xrootd" = "xyes" ; then + + extraxrdflags="-DROOTXRDVERS=$decver" +@@ -4514,14 +4521,27 @@ + done + + # ++ # Check also if 'include/private' exists: we need to signal this to the build modules ++ # for correct location of some headers available form the dlevel packages for version >= 3.3.x ++ if test "x$enable_xrootd" = "xyes"; then ++ if test -d "$xrdincdir/private"; then ++ xrdincprivate="yes" ++ fi ++ fi ++ ++ # + # Check if bonjour is available for code potentially using it ... + if test "x$enable_xrootd" = "xyes"; then + xrdlibdir="$tmpxrdlibdir" + if test "x$enable_bonjour" = "xyes"; then +- check_symbol XrdOucBonjour "$libxrdoucbjr" "$xrdlibdir" +- if test $found_symbol -eq 0 ; then +- bonjourcppflags= +- fi ++ # This check is broken. The xrootd libraries are C++ hence their ++ # symbol names are mangled. The check_symbol macro is designed ++ # to check for unmangled symbol names in C libraries. ++ # check_symbol XrdOucBonjour "$libxrdoucbjr" "$xrdlibdir" ++ # if test $found_symbol -eq 0 ; then ++ # bonjourcppflags= ++ # fi ++ bonjourcppflags= + fi + fi + fi +@@ -6667,6 +6687,7 @@ + -e "s|@xpmlibdir@|$xpmlibdir|" \ + -e "s|@xrdlibdir@|$xrdlibdir|" \ + -e "s|@xrdincdir@|$xrdincdir|" \ ++ -e "s|@xrdincprivate@|$xrdincprivate|" \ + -e "s|@xrdversion@|$decver|" \ + -e "s|@hasxrdutils@|$hasxrdutils|" \ + -e "s|@cfitsioincdir@|$cfitsioincdir|" \ +diff -Nur root-5.32.04.orig/net/netx/CMakeLists.txt root-5.32.04/net/netx/CMakeLists.txt +--- root-5.32.04.orig/net/netx/CMakeLists.txt 2012-07-13 15:54:54.000000000 +0200 ++++ root-5.32.04/net/netx/CMakeLists.txt 2013-03-08 07:23:10.901952610 +0100 +@@ -6,7 +6,7 @@ + ROOT_USE_PACKAGE(net/net) + ROOT_USE_PACKAGE(proof/proofd) + +-include_directories(${XROOTD_INCLUDE_DIR}) ++include_directories(${XROOTD_INCLUDE_DIR} ${XROOTD_PRIVATE_INCLUDE_DIR}) + add_definitions(${XROOTD_CFLAGS}) + #--------------------------------------------------------------------------- + +diff -Nur root-5.32.04.orig/net/netx/Module.mk root-5.32.04/net/netx/Module.mk +--- root-5.32.04.orig/net/netx/Module.mk 2012-07-13 15:54:54.000000000 +0200 ++++ root-5.32.04/net/netx/Module.mk 2013-03-08 07:23:10.900952603 +0100 +@@ -55,6 +55,9 @@ + ifneq ($(EXTRA_XRDFLAGS),) + NETXINCEXTRA += -I$(ROOT_SRCDIR)/proof/proofd/inc + endif ++ifeq ($(XRDINCPRIVATE),yes) ++NETXINCEXTRA += -I$(XRDINCDIR)/private ++endif + + # Xrootd client libs + ifeq ($(PLATFORM),win32) +diff -Nur root-5.32.04.orig/net/netx/src/TXNetFile.cxx root-5.32.04/net/netx/src/TXNetFile.cxx +--- root-5.32.04.orig/net/netx/src/TXNetFile.cxx 2012-07-13 15:54:54.000000000 +0200 ++++ root-5.32.04/net/netx/src/TXNetFile.cxx 2013-03-08 07:27:48.977933665 +0100 +@@ -56,6 +56,7 @@ + #include "TVirtualPerfStats.h" + + #include ++#include + #include + #include + #include +diff -Nur root-5.32.04.orig/proof/proofd/CMakeLists.txt root-5.32.04/proof/proofd/CMakeLists.txt +--- root-5.32.04.orig/proof/proofd/CMakeLists.txt 2012-07-13 15:54:19.000000000 +0200 ++++ root-5.32.04/proof/proofd/CMakeLists.txt 2013-03-08 07:23:10.899952597 +0100 +@@ -7,7 +7,7 @@ + ROOT_USE_PACKAGE(net/rpdutils) + ROOT_USE_PACKAGE(net/auth) + +-include_directories(${XROOTD_INCLUDE_DIR}) ++include_directories(${XROOTD_INCLUDE_DIR} ${XROOTD_PRIVATE_INCLUDE_DIR}) + add_definitions(${XROOTD_CFLAGS}) + + if(WIN32) +diff -Nur root-5.32.04.orig/proof/proofd/inc/XpdObject.h root-5.32.04/proof/proofd/inc/XpdObject.h +--- root-5.32.04.orig/proof/proofd/inc/XpdObject.h 1970-01-01 01:00:00.000000000 +0100 ++++ root-5.32.04/proof/proofd/inc/XpdObject.h 2013-03-08 07:23:10.898952590 +0100 +@@ -0,0 +1,100 @@ ++// @(#)root/proofd:$Id$ ++// Author: Gerardo Ganis Feb 2013 ++ ++/************************************************************************* ++ * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. * ++ * All rights reserved. * ++ * * ++ * For the licensing terms see $ROOTSYS/LICENSE. * ++ * For the list of contributors see $ROOTSYS/README/CREDITS. * ++ *************************************************************************/ ++ ++////////////////////////////////////////////////////////////////////////// ++// // ++// XpdObject // ++// // ++// Authors: G. Ganis, CERN, 2013 // ++// // ++// Auxilliary class to stack protocols. // ++// Adapted version of XrdObject. // ++// // ++////////////////////////////////////////////////////////////////////////// ++ ++#ifndef ROOT_XpdObject ++#define ROOT_XpdObject ++ ++#include ++#include ++#include ++#include ++#include "Xrd/XrdJob.hh" ++#include "XrdOuc/XrdOucTrace.hh" ++#include "XrdSys/XrdSysPthread.hh" ++ ++class XpdObjectQ; ++class XrdProofdProtocol; ++class XrdScheduler; ++ ++class XpdObject { ++public: ++ friend class XpdObjectQ; ++ ++ // Item() supplies the item value associated with itself (used with Next()). ++ XrdProofdProtocol *objectItem() { return fItem; } ++ ++ // Next() supplies the next list node. ++ XpdObject *nextObject() { return fNext; } ++ ++ // Set the item pointer ++ void setItem(XrdProofdProtocol *ival) { fItem = ival; } ++ ++ XpdObject(XrdProofdProtocol *ival=0) { fNext = 0; fItem = ival; fQTime = 0; } ++ ~XpdObject() {} ++ ++private: ++ XpdObject *fNext; ++ XrdProofdProtocol *fItem; ++ time_t fQTime; // Only used for time-managed objects ++}; ++ ++/******************************************************************************/ ++/* x r d _ O b j e c t Q */ ++/******************************************************************************/ ++ ++// Note to properly cleanup this type of queue you must call Set() at least ++// once to cause the time element to be sceduled. ++ ++class XrdOucTrace; ++ ++class XpdObjectQ : public XrdJob { ++public: ++ ++ XrdProofdProtocol *Pop(); ++ void Push(XpdObject *Node); ++ void Set(int inQMax, time_t agemax=1800); ++ void Set(XrdScheduler *sp, XrdOucTrace *tp, int traceChk = 0) ++ {fSched = sp; fTrace = tp; fTraceON = traceChk;} ++ void DoIt(); ++ ++ XpdObjectQ(const char *id, const char *desc) : XrdJob(desc) ++ {fCurage = fCount = 0; fMaxage = 0; fTraceID = id; ++ fMaxinQ = 32; fMininQ = 16; fFirst = 0; } ++ ++ ~XpdObjectQ() {} ++ ++private: ++ ++ XrdSysMutex fQMutex; ++ XpdObject *fFirst; ++ int fCount; ++ int fCurage; ++ int fMininQ; ++ int fMaxinQ; ++ time_t fMaxage; ++ XrdOucTrace *fTrace; ++ XrdScheduler *fSched; ++ int fTraceON; ++ const char *fTraceID; ++}; ++ ++#endif +diff -Nur root-5.32.04.orig/proof/proofd/inc/XrdProofdProofServMgr.h root-5.32.04/proof/proofd/inc/XrdProofdProofServMgr.h +--- root-5.32.04.orig/proof/proofd/inc/XrdProofdProofServMgr.h 2012-07-13 15:54:19.000000000 +0200 ++++ root-5.32.04/proof/proofd/inc/XrdProofdProofServMgr.h 2013-03-08 07:21:22.170070457 +0100 +@@ -41,6 +41,9 @@ + #define PSMMAXCNTS 3 + #define PSMCNTOK(t) (t >= 0 && t < PSMMAXCNTS) + ++// Security handle ++typedef int (*XrdSecCredsSaver_t)(XrdSecCredentials *, const char *fn, const XrdProofUI &ui); ++ + // Aux structure for session set env inputs + typedef struct { + XrdProofdProofServ *fPS; +@@ -158,6 +161,8 @@ + std::list fActiveSessions; // List of active sessions (non-idle) + std::list *fRecoverClients; // List of client potentially recovering + ++ XrdSecCredsSaver_t fCredsSaver; // If defined, function to be used to save the credentials ++ + int DoDirectiveProofServMgr(char *, XrdOucStream *, bool); + int DoDirectivePutEnv(char *, XrdOucStream *, bool); + int DoDirectivePutRc(char *, XrdOucStream *, bool); +@@ -263,8 +268,6 @@ + + int SetProofServEnv(XrdProofdProtocol *p, void *in); + int SetProofServEnvOld(XrdProofdProtocol *p, void *in); +- +- int SaveAFSkey(XrdSecCredentials *c, const char *fn, XrdProofUI ui); + int SetUserEnvironment(XrdProofdProtocol *p); + + static int SetProofServEnv(XrdProofdManager *m, XrdROOT *r); +diff -Nur root-5.32.04.orig/proof/proofd/inc/XrdProofdProtocol.h root-5.32.04/proof/proofd/inc/XrdProofdProtocol.h +--- root-5.32.04.orig/proof/proofd/inc/XrdProofdProtocol.h 2012-07-13 15:54:19.000000000 +0200 ++++ root-5.32.04/proof/proofd/inc/XrdProofdProtocol.h 2013-03-08 07:23:10.898952590 +0100 +@@ -37,10 +37,10 @@ + #include "XpdSysPthread.h" + + #include "Xrd/XrdLink.hh" +-#include "Xrd/XrdObject.hh" + #include "Xrd/XrdProtocol.hh" + #include "XrdOuc/XrdOucString.hh" + #include "XrdSec/XrdSecInterface.hh" ++#include "XpdObject.h" + #include "XProofProtocol.h" + + class XrdBuffer; +@@ -130,7 +130,7 @@ + // + // Protocol variables + +- XrdObject fProtLink; ++ XpdObject fProtLink; + XrdBuffer *fArgp; + + XrdLink *fLink; +@@ -175,7 +175,7 @@ + // + static bool fgConfigDone; + static int fgCount; +- static XrdObjectQ fgProtStack; ++ static XpdObjectQ fgProtStack; + static XrdBuffManager *fgBPool; // Buffer manager + static int fgMaxBuffsz; // Maximum buffer size we can have + static XrdSysRecMutex fgBMutex; // Buffer management mutex +diff -Nur root-5.32.04.orig/proof/proofd/Module.mk root-5.32.04/proof/proofd/Module.mk +--- root-5.32.04.orig/proof/proofd/Module.mk 2012-07-13 15:54:19.000000000 +0200 ++++ root-5.32.04/proof/proofd/Module.mk 2013-03-08 07:23:10.899952597 +0100 +@@ -127,6 +127,10 @@ + ifeq ($(HASXRD),yes) + XPDINCEXTRA := $(XROOTDDIRI:%=-I%) + XPDINCEXTRA += $(PROOFDDIRI:%=-I%) ++ifeq ($(XRDINCPRIVATE),yes) ++XPDINCEXTRA += -I$(XRDINCDIR)/private ++endif ++ + + ifeq ($(HASXRDUTILS),no) + +diff -Nur root-5.32.04.orig/proof/proofd/src/XpdObject.cxx root-5.32.04/proof/proofd/src/XpdObject.cxx +--- root-5.32.04.orig/proof/proofd/src/XpdObject.cxx 1970-01-01 01:00:00.000000000 +0100 ++++ root-5.32.04/proof/proofd/src/XpdObject.cxx 2013-03-08 07:23:10.896952577 +0100 +@@ -0,0 +1,125 @@ ++// @(#)root/proofd:$Id$ ++// Author: Gerardo Ganis Feb 2013 ++ ++/************************************************************************* ++ * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. * ++ * All rights reserved. * ++ * * ++ * For the licensing terms see $ROOTSYS/LICENSE. * ++ * For the list of contributors see $ROOTSYS/README/CREDITS. * ++ *************************************************************************/ ++ ++////////////////////////////////////////////////////////////////////////// ++// // ++// XpdObject // ++// // ++// Authors: G. Ganis, CERN, 2013 // ++// // ++// Auxilliary class to stack protocols. // ++// // ++////////////////////////////////////////////////////////////////////////// ++ ++#include "XpdObject.h" ++#include "XrdProofdAux.h" ++#include "XrdProofdProtocol.h" ++#include "Xrd/XrdScheduler.hh" ++#include "XrdOuc/XrdOucTrace.hh" ++ ++//_______________________________________________________________________ ++XrdProofdProtocol *XpdObjectQ::Pop() ++{ ++ // Pop up a protocol object ++ ++ XpdObject *node; ++ fQMutex.Lock(); ++ if ((node = fFirst)) { ++ fFirst = fFirst->fNext; ++ fCount--; ++ } ++ fQMutex.UnLock(); ++ if (node) return node->fItem; ++ return (XrdProofdProtocol *)0; ++} ++ ++//_______________________________________________________________________ ++void XpdObjectQ::Push(XpdObject *node) ++{ ++ // Push back a protocol ++ ++ node->fQTime = fCurage; ++ fQMutex.Lock(); ++ if (fCount >= fMaxinQ) { ++ delete node->fItem; ++ } else { ++ node->fNext = fFirst; ++ fFirst = node; ++ fCount++; ++ } ++ fQMutex.UnLock(); ++} ++ ++//_______________________________________________________________________ ++void XpdObjectQ::Set(int inQMax, time_t agemax) ++{ ++ // Lock the data area and set the values ++ ++ fQMutex.Lock(); ++ fMaxinQ = inQMax; fMaxage = agemax; ++ if (!(fMininQ = inQMax/2)) fMininQ = 1; ++ fQMutex.UnLock(); ++ ++ // Schedule ourselves using the new values ++ if (agemax > 0) ++ fSched->Schedule((XrdJob *)this, agemax + time(0)); ++} ++ ++//_______________________________________________________________________ ++void XpdObjectQ::DoIt() ++{ ++ // Process method ++ ++ XpdObject *pp, *p; ++ int oldcnt, agemax; ++ ++ // Lock the anchor and see if we met the threshold for deletion ++ // ++ fQMutex.Lock(); ++ agemax = fMaxage; ++ if ((oldcnt = fCount) > fMininQ) { ++ ++ // Prepare to scan down the queue. ++ if ((pp = fFirst)) { ++ p = pp->fNext; ++ } else { p = 0; } ++ ++ // Find the first object that's been idle for too long ++ while(p && (p->fQTime >= fCurage)) { pp = p; p = p->fNext;} ++ ++ // Now delete half of the idle objects. The object queue element must be ++ // part of the actual object being deleted for this to properly work. ++ if (pp) { ++ while (p) { ++ pp->fNext = p->fNext; ++ delete p->fItem; ++ fCount--; ++ p = ((pp = pp->fNext) ? pp->fNext : 0); ++ } ++ } ++ } ++ ++ // Increase the age and unlock the queue ++ fCurage++; ++ fQMutex.UnLock(); ++ ++ // Trace as needed ++ if (fTraceON && fTrace->Tracing(fTraceON)) ++ {fTrace->Beg(fTraceID); ++ cerr <End(); ++ } ++ ++ // Reschedule ourselves if we must do so ++ if (agemax > 0) ++ fSched->Schedule((XrdJob *)this, agemax+time(0)); ++} ++ +diff -Nur root-5.32.04.orig/proof/proofd/src/XrdProofConn.cxx root-5.32.04/proof/proofd/src/XrdProofConn.cxx +--- root-5.32.04.orig/proof/proofd/src/XrdProofConn.cxx 2012-07-13 15:54:19.000000000 +0200 ++++ root-5.32.04/proof/proofd/src/XrdProofConn.cxx 2013-03-08 07:23:10.896952577 +0100 +@@ -31,7 +31,6 @@ + + #include "XrdClient/XrdClientConnMgr.hh" + #include "XrdClient/XrdClientConst.hh" +-#include "XrdClient/XrdClientDebug.hh" + #include "XrdClient/XrdClientEnv.hh" + #include "XrdClient/XrdClientLogConnection.hh" + #include "XrdClient/XrdClientPhyConnection.hh" +@@ -40,6 +39,7 @@ + #include "XrdOuc/XrdOucErrInfo.hh" + #include "XrdOuc/XrdOucString.hh" + #include "XrdSec/XrdSecInterface.hh" ++#include "XrdSys/XrdSysLogger.hh" + #include "XrdSys/XrdSysPlatform.hh" + + // Dynamic libs +diff -Nur root-5.32.04.orig/proof/proofd/src/XrdProofdProofServMgr.cxx root-5.32.04/proof/proofd/src/XrdProofdProofServMgr.cxx +--- root-5.32.04.orig/proof/proofd/src/XrdProofdProofServMgr.cxx 2012-07-13 15:54:19.000000000 +0200 ++++ root-5.32.04/proof/proofd/src/XrdProofdProofServMgr.cxx 2013-03-08 07:21:22.173070483 +0100 +@@ -32,8 +32,7 @@ + #include "XrdOuc/XrdOucRash.hh" + #include "XrdOuc/XrdOucStream.hh" + #include "XrdSys/XrdSysPriv.hh" +-#include "XrdSut/XrdSutAux.hh" +- ++#include "XrdSys/XrdSysPlugin.hh" + #include "XrdProofdClient.h" + #include "XrdProofdClientMgr.h" + #include "XrdProofdManager.h" +@@ -286,6 +285,8 @@ + fCurrentSessions = 0; + + fSeqSessionN = 0; ++ ++ fCredsSaver = 0; + + // Defaults can be changed via 'proofservmgr' + fCheckFrequency = 30; +@@ -3067,26 +3068,20 @@ + putenv(ev); + TRACE(DBG, "XrdSecCREDS set"); + +- // If 'pwd', save AFS key, if any +- if (!strncmp(p->AuthProt()->Entity.prot, "pwd", 3)) { ++ if (fCredsSaver) { + XrdOucString credsdir = udir; + credsdir += "/.creds"; + // Make sure the directory exists + if (!XrdProofdAux::AssertDir(credsdir.c_str(), p->Client()->UI(), fMgr->ChangeOwn())) { +- if (SaveAFSkey(creds, credsdir.c_str(), p->Client()->UI()) == 0) { +- ev = new char[strlen("ROOTPROOFAFSCREDS=")+credsdir.length()+strlen("/.afs")+2]; +- sprintf(ev, "ROOTPROOFAFSCREDS=%s/.afs", credsdir.c_str()); +- putenv(ev); +- fprintf(fenv, "ROOTPROOFAFSCREDS has been set\n"); +- TRACE(DBG, ev); +- } else { +- TRACE(DBG, "problems in saving AFS key"); ++ if ((*fCredsSaver)(creds, credsdir.c_str(), p->Client()->UI()) != 0) { ++ TRACE(DBG, "problems in saving authentication creds under "<fOld); + TRACE(DBG, "XrdSecCREDS set"); + +- // If 'pwd', save AFS key, if any +- if (!strncmp(p->AuthProt()->Entity.prot, "pwd", 3)) { ++ if (fCredsSaver) { + XrdOucString credsdir = p->Client()->Sandbox()->Dir(); + credsdir += "/.creds"; + // Make sure the directory exists + if (!XrdProofdAux::AssertDir(credsdir.c_str(), p->Client()->UI(), fMgr->ChangeOwn())) { +- if (SaveAFSkey(creds, credsdir.c_str(), p->Client()->UI()) == 0) { +- ev = new char[strlen("ROOTPROOFAFSCREDS=")+credsdir.length()+strlen("/.afs")+2]; +- sprintf(ev, "ROOTPROOFAFSCREDS=%s/.afs", credsdir.c_str()); +- fprintf(fenv, "ROOTPROOFAFSCREDS has been set\n"); +- TRACE(DBG, ev); +- PutEnv(ev, in->fOld); +- } else { +- TRACE(DBG, "problems in saving AFS key"); ++ if ((*fCredsSaver)(creds, credsdir.c_str(), p->Client()->UI()) != 0) { ++ TRACE(DBG, "problems in saving authentication creds under "<size]; +- if (XrdSutFromHex(c->buffer, out, lout) != 0) { +- TRACE(XERR, "problems unparsing hex string"); +- delete [] out; +- return -1; +- } +- +- // Locate the key +- char *key = out + 5; +- if (strncmp(key, "afs:", 4)) { +- TRACE(DBG, "string does not contain an AFS key"); +- delete [] out; +- return 0; +- } +- key += 4; +- +- // Save to file, if not existing already +- XrdOucString fn = dir; +- fn += "/.afs"; +- +- int rc = 0; +- struct stat st; +- if (stat(fn.c_str(), &st) != 0 && errno == ENOENT) { +- +- // Open the file, truncating if already existing +- int fd = open(fn.c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0600); +- if (fd <= 0) { +- TRACE(XERR, "problems creating file - errno: " << errno); +- delete [] out; +- return -1; +- } +- // Write out the key +- int lkey = lout - 9; +- if (XrdProofdAux::Write(fd, key, lkey) != lkey) { +- TRACE(XERR, "problems writing to file - errno: " << errno); +- rc = -1; +- } +- +- // Cleanup +- delete [] out; +- close(fd); +- } else { +- TRACE(XERR, "cannot stat existing file "< +- XrdProofdProtocol::fgProtStack("ProtStack", ++XpdObjectQ XrdProofdProtocol::fgProtStack("ProtStack", + "xproofd protocol anchor"); + XrdSysRecMutex XrdProofdProtocol::fgBMutex; // Buffer management mutex + XrdBuffManager *XrdProofdProtocol::fgBPool = 0; +@@ -542,8 +542,12 @@ + // Schedule protocol object cleanup; the maximum number of objects + // and the max age are taken from XrdXrootdProtocol: this may need + // some optimization in the future. ++#if 1 + fgProtStack.Set(pi->Sched, XrdProofdTrace, TRACE_MEM); + fgProtStack.Set((pi->ConnMax/3 ? pi->ConnMax/3 : 30), 60*60); ++#else ++ fgProtStack.Set(pi->Sched, 3600); ++#endif + + // Default tracing options: always trace logins and errors for all + // domains; if the '-d' option was specified on the command line then +@@ -790,6 +794,13 @@ + + // Push ourselves on the stack + fgProtStack.Push(&fProtLink); ++#if 0 ++ if(fgProtStack.Push(&fProtLink) != 0) { ++ XrdProofdProtocol *xp = fProtLink.objectItem(); ++ fProtLink.setItem(0); ++ delete xp; ++ } ++#endif + } + + //______________________________________________________________________________ +diff -Nur root-5.32.04.orig/proof/proofx/CMakeLists.txt root-5.32.04/proof/proofx/CMakeLists.txt +--- root-5.32.04.orig/proof/proofx/CMakeLists.txt 2012-07-13 15:54:19.000000000 +0200 ++++ root-5.32.04/proof/proofx/CMakeLists.txt 2013-03-08 07:23:10.900952603 +0100 +@@ -16,7 +16,7 @@ + file(GLOB sources RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cxx) + endif() + +-include_directories(${XROOTD_INCLUDE_DIR}) ++include_directories(${XROOTD_INCLUDE_DIR} ${XROOTD_PRIVATE_INCLUDE_DIR}) + link_directories(${XROOTD_LIBRARY_DIR}) + add_definitions(${XROOTD_CFLAGS}) + +diff -Nur root-5.32.04.orig/proof/proofx/Module.mk root-5.32.04/proof/proofx/Module.mk +--- root-5.32.04.orig/proof/proofx/Module.mk 2012-07-13 15:54:19.000000000 +0200 ++++ root-5.32.04/proof/proofx/Module.mk 2013-03-08 07:23:10.899952597 +0100 +@@ -63,6 +63,9 @@ + PROOFXINCEXTRA := $(PROOFXDIRI:%=-I%) + PROOFXINCEXTRA += $(XROOTDDIRI:%=-I%) + PROOFXINCEXTRA += $(PROOFDDIRI:%=-I%) ++ifeq ($(XRDINCPRIVATE),yes) ++PROOFXINCEXTRA += -I$(XRDINCDIR)/private ++endif + + # Xrootd client libs + ifeq ($(PLATFORM),win32) diff --git a/root.desktop b/root.desktop deleted file mode 100644 index 159a1db..0000000 --- a/root.desktop +++ /dev/null @@ -1,11 +0,0 @@ -[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 deleted file mode 100644 index a7813e5..0000000 Binary files a/root.png and /dev/null differ diff --git a/root.spec b/root.spec index 0b03a05..bc39033 100644 --- a/root.spec +++ b/root.spec @@ -1,212 +1,153 @@ -# Disable package note flags, since root saves the compiler/linker flags -# used during the build -%undefine _package_note_flags +%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} -%global root7 1 -%global dataframe 1 -%global roofit 1 -%global tmvasofieparser 1 -%global distrdf %{dataframe} - -%global bundlejson 0 - -%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 10 -%ifarch %{ix86} %{arm} -%global pandas 0 -%else -%global pandas 1 -%endif -%else -%global pandas 0 +%if "%{?rhel}" == "5" +%global __python26 /usr/bin/python26 +%{!?python26_sitearch: %global python26_sitearch %(%{__python26} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} +# Disable the default python byte code compilation +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') %endif -%global rrr 1 +%{!?ruby_sitearchdir: %global ruby_sitearchdir %(ruby -rrbconfig -e 'puts RbConfig::CONFIG["sitearchdir"]' 2>/dev/null)} -%if %{?fedora}%{!?fedora:0} >= 40 || %{?rhel}%{!?rhel:0} >= 10 -%global roofitmp 1 +%if %{?fedora}%{!?fedora:0} >= 17 || %{?rhel}%{!?rhel:0} >= 7 +%global ruby_installdir %{ruby_vendorarchdir} +%global ruby_abi 1.9.1 %else -%global roofitmp 0 +%global ruby_installdir %{ruby_sitearchdir} +%global ruby_abi 1.8 %endif -%if %{?fedora}%{!?fedora:0} >= 45 || %{?rhel}%{!?rhel:0} >= 11 -%global davix 0 +%if %($(pkg-config emacs) ; echo $?) +%global emacs_version 21.4 +%global emacs_lispdir %{_datadir}/emacs/site-lisp %else -%global davix 1 +%global emacs_version %(pkg-config emacs --modversion) +%global emacs_lispdir %(pkg-config emacs --variable sitepkglispdir) %endif -# Do not generate autoprovides for Python modules -%global __provides_exclude_from ^%{python3_sitearch}/.*/lib.*\\.so$ - Name: root -Version: 6.40.04 +Version: 5.32.04 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework -License: LGPL-2.1-or-later -URL: https://root.cern/ -# The upstream source is modified to exclude proprietary fonts -# See Source8 for how to create Source0 -Source0: %{name}-%{version}.tar.xz -# Input data for the tests -Source1: %{name}-testfiles.tar.xz -# 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 -# Instructions for setting up a python virtual environment -# for running the JupyROOT notebook on EPEL -Source7: JupyROOT-on-EPEL -# Script to generate Source0 -Source8: %{name}-get-src.sh -# Clad is a source-transformation automatic differentiation (AD) -# library for C++, implemented as a plugin for the Clang compiler -Source9: https://github.com/vgvassilev/clad/archive/v2.3/clad-2.3.tar.gz -# Use system fonts -Patch0: %{name}-fontconfig.patch -# Reduce memory usage during linking on ARM and x86 by generating -# smaller debuginfo for the llvm libraries -# Fedora builders run out of memory with the default setting -Patch1: %{name}-memory-arm-x86.patch -# Don't install minicern static library -Patch2: %{name}-dont-install-minicern.patch -# Do not export Python modules in CMake config -Patch3: %{name}-no-export-python-modules.patch -# Run some test on 32 bit that upstream has disabled -Patch4: %{name}-32bit-tests.patch -# Revert test change that breaks the test -Patch5: %{name}-Revert-test-Fetch-the-geometries-from-EOS-and-not-fr.patch -# Preserve memory during parallel build -# https://github.com/root-project/root/pull/18991 -Patch6: %{name}-Save-memory-Do-not-link-to-LLVM-libraries-in-parallel.patch -# Revert xfail mark (test works except on RHEL/EPEL 9) -Patch7: %{name}-Revert-cppyy-Mark-addressof-test-as-xfail-on-modules.patch -# Adjust stressGraphics reference -Patch8: %{name}-Adjust-stressGraphics-reference.patch -# https://github.com/root-project/root/pull/22723 -Patch9: %{name}-tmva-sofie-Fix-big-endian.patch -Patch10: %{name}-tmva-sofie-Complete-big-endian-support-for-ONNX-init.patch -# https://github.com/root-project/root/pull/22724 -Patch11: %{name}-core-The-old-TUUID-constructor-can-create-either-ver.patch -Patch12: %{name}-tree-df-Do-not-fail-test-on-32-bit-due-to-mis-aligne.patch -Patch13: %{name}-tree-nt-Compare-size-to-the-size-of-the-struct.patch -# https://github.com/root-project/root/pull/23188 -Patch14: %{name}-pdf-Fix-calculation-of-kerning-distances-in-generate.patch +Group: Applications/Engineering +License: LGPLv2+ +URL: http://root.cern.ch/ +# The upstream source is modified to exclude proprietary fonts: +# wget -N ftp://root.cern.ch/root/root_v%{version}.source.tar.gz +# tar -z -x -f root_v%{version}.source.tar.gz +# rm -rf root/fonts +# mv root root-%{version} +# tar -z -c -f root-%{version}.tar.gz root-%{version} +Source0: %{name}-%{version}.tar.gz +# Script to extract the list of include files in a subpackage +Source1: root-includelist +# Documentation generation script +Source2: root-html.C +# Images included in order to make documentation selfcontained +Source3: http://root.cern.ch/drupal/sites/default/files/rootdrawing-logo.png +Source4: http://root.cern.ch/drupal/sites/all/themes/newsflash/images/blue/root-banner.png +Source5: http://root.cern.ch/drupal/sites/all/themes/newsflash/images/info.png +# Patch for ftgl older than version 2.1.3: +Patch0: %{name}-ftgl.patch +# Use system fonts: +Patch1: %{name}-fontconfig.patch +# Use system unuran: +Patch2: %{name}-unuran.patch +# Fixes for new xrootd (backported from trunk): +Patch3: %{name}-xrootd.patch +# Fix hardcoded include path: +# https://savannah.cern.ch/bugs/index.php?91463 +Patch4: %{name}-meta.patch +# Backport fixes for using aclic with versioned libraries: +Patch5: %{name}-aclic-versioned-libs.patch +# Fixes for latest glibc headers: +Patch6: %{name}-glibc.patch +# Fixes for gfal (mostly backported from trunk): +Patch7: %{name}-gfal-bits.patch +# Remove unnecessary Qt linkage (backported from trunk): +Patch8: %{name}-qt.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +# The build segfaults on ppc64 during an invocation of cint: +# https://savannah.cern.ch/bugs/index.php?70542 +ExcludeArch: ppc64 -BuildRequires: gcc-c++ -BuildRequires: gcc-gfortran -BuildRequires: make -BuildRequires: cmake >= 3.20 BuildRequires: libX11-devel BuildRequires: libXpm-devel BuildRequires: libXft-devel BuildRequires: libXext-devel BuildRequires: fontconfig-devel BuildRequires: freetype-devel -BuildRequires: fcgi-devel BuildRequires: ftgl-devel +BuildRequires: glew-devel BuildRequires: gl2ps-devel -BuildRequires: pcre2-devel +BuildRequires: pcre-devel BuildRequires: zlib-devel BuildRequires: xz-devel -BuildRequires: lz4-devel -BuildRequires: xxhash-devel -BuildRequires: libzstd-devel -BuildRequires: libtiff-devel -BuildRequires: libpng-devel -BuildRequires: giflib-devel +%if %{?fedora}%{!?fedora:0} >= 13 || %{?rhel}%{!?rhel:0} >= 6 +BuildRequires: libAfterImage-devel >= 1.20 +%else BuildRequires: libjpeg-devel +BuildRequires: libpng-devel +BuildRequires: libtiff-devel +%endif BuildRequires: ncurses-devel +BuildRequires: avahi-compat-libdns_sd-devel +BuildRequires: avahi-devel +BuildRequires: xmlrpc-c-devel BuildRequires: libxml2-devel BuildRequires: fftw-devel BuildRequires: gsl-devel BuildRequires: unuran-devel -BuildRequires: sqlite-devel -BuildRequires: libGL-devel -BuildRequires: libGLU-devel -BuildRequires: libxcrypt-devel -BuildRequires: python3-devel >= 3.9 -BuildRequires: python3-setuptools -BuildRequires: python3-numpy -%ifarch %{qt6_qtwebengine_arches} -BuildRequires: qt6-qtbase-devel -BuildRequires: qt6-qtwebengine-devel +BuildRequires: krb5-devel +BuildRequires: krb5-workstation +BuildRequires: openldap-devel +BuildRequires: mysql-devel +BuildRequires: unixODBC-devel +BuildRequires: mesa-libGL-devel +BuildRequires: mesa-libGLU-devel +BuildRequires: postgresql-devel +BuildRequires: python-devel +%if "%{?rhel}" == "5" +BuildRequires: python26-devel %endif +%if %{?fedora}%{!?fedora:0} >= 9 || %{?rhel}%{!?rhel:0} >= 6 +BuildRequires: qt4-devel +%endif +BuildRequires: ruby +BuildRequires: ruby-devel 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: xrootd-client-devel >= 1:5.0.0 +BuildRequires: dpm-devel +BuildRequires: xrootd-client-devel +BuildRequires: xrootd-private-devel BuildRequires: cfitsio-devel -BuildRequires: civetweb-devel -BuildRequires: curl-devel -%if %{davix} -# Davix version >= 0.6.4, but not between 0.6.8 and 0.7.0 -BuildRequires: davix-devel >= 0.7.1 -%endif -%if %{rrr} -BuildRequires: R-Rcpp-devel -BuildRequires: R-RInside-devel -%endif -BuildRequires: readline-devel -BuildRequires: tbb-devel >= 2020 -BuildRequires: libuuid-devel +BuildRequires: gfal-devel +BuildRequires: srm-ifce-devel +BuildRequires: emacs +BuildRequires: emacs-el +BuildRequires: gcc-gfortran BuildRequires: graphviz-devel +%if "%{?rhel}" == "5" +BuildRequires: graphviz-gd +%endif BuildRequires: expat-devel -BuildRequires: pythia8-devel >= 8.1.80 -BuildRequires: flexiblas-devel -%if ! %{bundlejson} -BuildRequires: json-devel >= 3.9 +%if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} >= 6 +BuildRequires: font(liberationsans) +BuildRequires: font(liberationserif) +BuildRequires: font(liberationmono) +%else +BuildRequires: liberation-fonts %endif -BuildRequires: liburing-devel -%if %{tmvasofieparser} -BuildRequires: protobuf-devel >= 3.0 -%endif -%ifnarch %{ix86} %{arm} -BuildRequires: libarrow-devel -%endif -%if %{roofit} -%if %{roofitmp} -# Required for roofit-multiprocess -# Requires new zeromq with zmq_ppoll -BuildRequires: zeromq-devel >= 4.3.5 -BuildRequires: cppzmq-devel -%endif -%endif -BuildRequires: python3-pytest -%if %{pandas} -BuildRequires: python3-pandas -%endif -BuildRequires: perl-generators -BuildRequires: gtest-devel -BuildRequires: gmock-devel -# Fonts -BuildRequires: font(freesans) -BuildRequires: font(freeserif) -BuildRequires: font(freemono) -BuildRequires: font(standardsymbolsps) -BuildRequires: font(d050000l) -BuildRequires: font(z003) -BuildRequires: font(droidsansfallback) -# With gdb installed test failures will show backtraces -BuildRequires: gdb -# Defines _jsdir -BuildRequires: web-assets-devel -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-multiproc%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-ntuple%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} +# This contains a Symbol font that can be used by fontconfig +BuildRequires: urw-fonts Requires: hicolor-icon-theme -Obsoletes: emacs-%{name} < 5.34.28 -Obsoletes: emacs-%{name}-el < 5.34.28 %description The ROOT system provides a set of object oriented frameworks with all @@ -214,368 +155,208 @@ the functionality needed to handle and analyze large amounts of data in a very efficient way. Having the data defined as a set of objects, specialized storage methods are used to get direct access to the separate attributes of the selected objects, without having to touch -the bulk of the data. Included are histogramming methods in an -arbitrary number of dimensions, curve fitting, function evaluation, -minimization, graphics and visualization classes to allow the easy -setup of an analysis system that can query and process the data -interactively or in batch mode. +the bulk of the data. Included are histogramming methods in 1, 2 and 3 +dimensions, curve fitting, function evaluation, minimization, graphics +and visualization classes to allow the easy setup of an analysis +system that can query and process the data interactively or in batch +mode. -Thanks to the built-in C++ interpreter cling, the command, the -scripting and the programming language are all C++. The interpreter -allows for fast prototyping of the macros since it removes the, time -consuming, compile/link cycle. It also provides a good environment to -learn C++. If more performance is needed the interactively developed -macros can be compiled using a C++ compiler via a machine independent -transparent compiler interface called ACliC. +Thanks to the built in CINT C++ interpreter the command language, the +scripting, or macro, language and the programming language are all +C++. The interpreter allows for fast prototyping of the macros since +it removes the time consuming compile/link cycle. It also provides a +good environment to learn C++. If more performance is needed the +interactively developed macros can be compiled using a C++ compiler. The system has been designed in such a way that it can query its -databases in parallel on clusters of workstations or many-core -machines. ROOT is an open system that can be dynamically extended by -linking external libraries. This makes ROOT a premier platform on -which to build data acquisition, simulation and data analysis systems. +databases in parallel on MPP machines or on clusters of workstations +or high-end PCs. ROOT is an open system that can be dynamically +extended by linking external libraries. This makes ROOT a premier +platform on which to build data acquisition, simulation and data +analysis systems. %package icons Summary: ROOT icon collection +Group: Applications/Engineering +%if %{?fedora}%{!?fedora:0} >= 10 || %{?rhel}%{!?rhel:0} >= 6 BuildArch: noarch +%endif Requires: %{name}-core = %{version}-%{release} %description icons This package contains icons used by the ROOT GUI. -%package font-files -Summary: ROOT font collection +%package doc +Summary: Documentation for the ROOT system +Group: Applications/Engineering +%if %{?fedora}%{!?fedora:0} >= 10 || %{?rhel}%{!?rhel:0} >= 6 BuildArch: noarch -# STIX version 0.9 only -License: OFL-1.1 -Requires: %{name}-core = %{version}-%{release} -# Package renamed -Provides: %{name}-fonts = %{version}-%{release} -Obsoletes: %{name}-fonts < 6.36.00-2 +%endif +License: LGPLv2+ and GPLv2+ and BSD +Requires: %{name}-cint = %{version}-%{release} -%description font-files -This package contains fonts used by ROOT that are not available in Fedora. -In particular it contains STIX version 0.9 that is used by TMathText. +%description doc +This package contains the automatically generated ROOT class +documentation. %package tutorial Summary: ROOT tutorial scripts and test suite +Group: Applications/Engineering +%if %{?fedora}%{!?fedora:0} >= 10 || %{?rhel}%{!?rhel:0} >= 6 BuildArch: noarch -Requires: %{name} = %{version}-%{release} +%endif +Requires: %{name}-cint = %{version}-%{release} %description tutorial This package contains the tutorial scripts and test suite for ROOT. %package core Summary: ROOT core libraries -License: LGPL-2.1-or-later AND LGPL-2.0-or-later AND ISC AND MIT AND NCSA -Requires: %{name}-font-files = %{version}-%{release} +Group: Applications/Engineering +License: LGPLv2+ and BSD Requires: %{name}-icons = %{version}-%{release} -# Dynamic dependencies -Requires: %{name}-cling%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-asimage%{?_isa} = %{version}-%{release} -# Packages providing the libraries listed by "root-config --libs" -# (Only root-physics and root-multiproc are not dragged in by -# recursively resolving the dependency on root-graf-asimage -# above, so it is not that much of a bloat...) -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-postscript%{?_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}-matrix%{?_isa} = %{version}-%{release} -Requires: %{name}-multiproc%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_isa} = %{version}-%{release} -Requires: %{name}-physics%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} -%if %{dataframe} -Requires: %{name}-tree-dataframe%{?_isa} = %{version}-%{release} -%endif -Requires: %{name}-tree-ntuple%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-ntuple-utils%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} -Requires: %{name}-vecops%{?_isa} = %{version}-%{release} -# To resolve dependency in installed ROOTConfig.cmake -%if %{bundlejson} -Provides: bundled(json-devel) = 3.10.5 -%else -Requires: json-devel >= 3.9 -%endif -# Fonts +Requires: %{name}-graf-asimage = %{version}-%{release} Requires: xorg-x11-fonts-ISO8859-1-75dpi -Requires: font(freesans) -Requires: font(freeserif) -Requires: font(freemono) -Requires: font(standardsymbolsps) -Requires: font(d050000l) -Requires: font(z003) -Requires: font(droidsansfallback) -Obsoletes: %{name}-ruby < 6.00.00 -Obsoletes: %{name}-vdt < 6.10.00 -Obsoletes: %{name}-proof-pq2 < 6.16.00 -Obsoletes: %{name}-proofd < 6.16.00 -Obsoletes: %{name}-rootd < 6.16.00 -Obsoletes: %{name}-geocad < 6.18.00 -Obsoletes: %{name}-graf-qt < 6.18.00 -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 -Obsoletes: %{name}-xproof < 6.22.08-2 -Obsoletes: %{name}-memstat < 6.26.00 -Obsoletes: %{name}-montecarlo-vmc < 6.26.00 -Obsoletes: %{name}-doc < 6.26.00 -Obsoletes: %{name}-io-gfal < 6.30.00 -Obsoletes: %{name}-roofit-common < 6.30.00 -Obsoletes: %{name}-gui-qt5webdisplay < 6.36.00 -Obsoletes: %{name}-hist-draw < 6.36.00 -Obsoletes: %{name}-html < 6.36.00 -Obsoletes: %{name}-proof < 6.38.00 -Obsoletes: %{name}-proof-bench < 6.38.00 -Obsoletes: %{name}-proof-player < 6.38.00 -Obsoletes: %{name}-proof-sessionviewer < 6.38.00 -Obsoletes: %{name}-sql-mysql < 6.38.00 -Obsoletes: %{name}-sql-odbc < 6.38.00 -Obsoletes: %{name}-sql-pgsql < 6.38.00 -%if ! %{davix} -Obsoletes: %{name}-net-davix < 6.40.02-5 +%if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} >= 6 +Requires: font(liberationsans) +Requires: font(liberationserif) +Requires: font(liberationmono) +%else +Requires: liberation-fonts %endif +# This contains a Symbol font that can be used by fontconfig +Requires: urw-fonts %description core This package contains the core libraries used by ROOT: libCore, libNew, libRint and libThread. -%package multiproc -Summary: Multi-processor support for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_isa} = %{version}-%{release} - -%description multiproc -This package provides ROOT's multi-processor support library: libMultiProc. - -%package cling -Summary: Cling C++ interpreter -License: (NCSA OR LGPL-2.1-only) AND (Apache-2.0 WITH LLVM-exception OR NCSA) AND BSD-2-Clause AND BSD-3-Clause AND MIT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -# Root's cling interpreter uses a particular git commit of -# llvm and clang with application specific changes. It does -# not work with the system libraries. The bundled llvm and -# clang are compiled using -fvisibility=hidden, and are not -# visible outside of the libCling module. -Provides: bundled(clang-libs) -Provides: bundled(llvm-libs) -Requires: gcc-c++ -Requires: redhat-rpm-config +%package cint +Summary: CINT C++ interpreter +Group: Applications/Engineering Obsoletes: %{name}-cint7 < 5.26.00c -Obsoletes: %{name}-cint < 6.00.00 -Obsoletes: %{name}-cintex < 6.00.00 -Obsoletes: %{name}-reflex < 6.00.00 +License: MIT -%description cling -Cling is an interactive C++ interpreter, built on top of Clang and -LLVM compiler infrastructure. +%description cint +This package contains the CINT C++ interpreter version 5. -%package testsupport -Summary: Unit test support library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} +%package reflex +Summary: Reflex dictionary generator +Group: Applications/Engineering +Requires: gccxml -%description testsupport -This package contains the unit test support library for ROOT. +%description reflex +This package contains the reflex dictionary generator for ROOT. -%package tpython -Summary: ROOT's TPython interface -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: python3-%{name}%{?_isa} = %{version}-%{release} -# Package split (tpython from Python bindings) -Obsoletes: python3-%{name} < 6.22.00 +%ifarch %{ix86} x86_64 +# Cintex does not work on ppc +# https://savannah.cern.ch/bugs/?22003#comment16 +# ./configure only allows --enable-cintex for ix86 and x86_64 +%package cintex +Summary: Reflex to CINT dictionary converter +Group: Applications/Engineering +Requires: %{name}-python = %{version}-%{release} -%description tpython -This package contains ROOT's TPython interface. It makes it possible -to call Python from ROOT. +%description cintex +Cintex is a library that converts Reflex dictionary information to +CINT data structures used by ROOT. This package allows to interact +with CINT with any class for which a Reflex dictionary is provided. +%endif -%package -n python3-%{name} +%package proofd +Summary: Parallel ROOT Facility - distributed, parallel computing +Group: Applications/Engineering +Requires: %{name}-net-rpdutils = %{version}-%{release} +Requires: %{name}-proof = %{version}-%{release} +Requires(preun): chkconfig +Requires(preun): initscripts +Requires(post): chkconfig +Requires(postun): initscripts + +%description proofd +This package contains the PROOF server. Proofd is the core daemon of +the PROOF (Parallel ROOT Facility) system for distributed parallel +computing. Installing this package on a machine makes it possible +for the machine to participate in a parallel computing farm (cluster +or via the Internet), either as a master or a slave, using a +transparent interface. + +%package rootd +Summary: ROOT remote file server +Group: Applications/Engineering +Requires: %{name}-net-rpdutils = %{version}-%{release} +Requires(preun): chkconfig +Requires(preun): initscripts +Requires(post): chkconfig +Requires(postun): initscripts + +%description rootd +This package contains the ROOT file server. Rootd is a server for ROOT +files, serving files over the Internet. Using this daemon, you can +access files on the machine from anywhere on the Internet, using a +transparent interface. + +%package python Summary: Python extension for ROOT -%py_provides python3-%{name} -Provides: %{name}-python3 = %{version}-%{release} -Obsoletes: %{name}-python3 < 6.08.00 -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} -# Package split (tpython from Python bindings) -Obsoletes: python3-%{name} < 6.22.00 -Obsoletes: python3-jsmva < 6.32.00 +Group: Applications/Engineering -%description -n python3-%{name} -This package contains the Python extension for ROOT. It makes it -possible to use ROOT classes in Python. +%description python +This package contains the Python extension for ROOT. This package +provide a Python interface to ROOT, and a ROOT interface to Python. -%package -n python3-root+jupyroot -Summary: ROOT Jupyter kernel -%py_provides python3-root+jupyroot -Requires: python3-%{name}%{?_isa} = %{version}-%{release} -Requires: %{name}-core%{?_isa} = %{version}-%{release} -# notebook package was merged with JupyROOT package -Provides: %{name}-notebook = %{version}-%{release} -Obsoletes: %{name}-notebook < 6.32.00 -# Package renamed (jupyroot is now a submodule) -%py_provides python3-jupyroot -Obsoletes: python3-jupyroot < 6.40.00 -Requires: js-jsroot >= 7.11.1 -%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 10 -# jupyter-notebook not available in RHEL/EPEL -# some functionality missing -Requires: jupyter-notebook -# python-metakernel not available in RHEL/EPEL -# some functionality missing -Requires: python3-ipython -Requires: python3-metakernel -Requires: python-jupyter-filesystem +%if "%{?rhel}" == "5" +%package python26 +Summary: Python extension for ROOT +Group: Applications/Engineering + +%description python26 +This package contains the Python extension for ROOT. This package +provide a Python interface to ROOT, and a ROOT interface to Python. %endif -%description -n python3-root+jupyroot -The Jupyter kernel for the ROOT notebook. +%package ruby +Summary: Ruby extension for ROOT +Group: Applications/Engineering +Provides: ruby(libRuby) = %{version} +Requires: ruby(abi) = %{ruby_abi} -%if %{distrdf} -%package -n python3-root+distrdf -Summary: Distributed RDataFrame -%py_provides python3-root+distrdf -# Package renamed (distrdf is now a submodule) -%py_provides python3-distrdf -Obsoletes: python3-distrdf < 6.40.00 -Requires: python3-%{name}%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-dataframe%{?_isa} = %{version}-%{release} - -%description -n python3-root+distrdf -A layer on top of RDataFrame to enable distributed computations. It is -a port of the previously known PyRDF python package. -%endif - -%if %{rrr} -%package r -Summary: R interface for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-matrix%{?_isa} = %{version}-%{release} -Requires: R-Rcpp-devel -Requires: R-RInside-devel - -%description r -ROOT R is an interface in ROOT to call R functions using an R C++ -interface. This interface opens the possibility in ROOT to use the -very large set of mathematical and statistical tools provided by R. -With ROOT R you can perform a conversion from ROOT's C++ objects to -R's objects, transform the returned R objects into ROOT's C++ objects, -then the R functionality can be used directly for statistical studies -in ROOT. - -%package r-tools -Summary: R Tools -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-matrix%{?_isa} = %{version}-%{release} -Requires: %{name}-r%{?_isa} = %{version}-%{release} - -%description r-tools -This package contains a minimizer module for ROOT that uses the ROOT -R interface. -%endif +%description ruby +This package contains the Ruby extension for ROOT. The interface +goes both ways - that is, you can call ROOT functions from Ruby, and +invoke the Ruby interpreter from ROOT. %package genetic Summary: Genetic algorithms for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-tmva%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description genetic This package contains a genetic minimizer module for ROOT. %package geom Summary: Geometry library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -# Package split (geom-builder and geom-painter from geom) -Obsoletes: %{name}-geom < 6.28.00 +Group: Applications/Engineering %description geom This package contains a library for defining geometries in ROOT. -%package geom-builder -Summary: Geometry builder library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-geom%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-gui%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-ged%{?_isa} = %{version}-%{release} -# Package split (geom-builder and geom-painter from geom) -Obsoletes: %{name}-geom < 6.28.00 - -%description geom-builder -This package contains a library for building geometries in ROOT. - -%package geom-checker -Summary: Geometry checker library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-geom%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} - -%description geom-checker -This package contains a library for checking geometries in ROOT. - -%package geom-painter -Summary: Geometry painter library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-geom%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -# Package split (geom-builder and geom-painter from geom) -Obsoletes: %{name}-geom < 6.28.00 - -%description geom-painter -This package contains a library for drawing geometries in ROOT. - %package gdml Summary: GDML import/export for ROOT geometries -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-geom%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io-xml%{?_isa} = %{version}-%{release} +Group: Applications/Engineering +Requires: %{name}-python = %{version}-%{release} %description gdml This package contains an import/export module for ROOT geometries. %package graf Summary: 2D graphics library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description graf This package contains the 2-dimensional graphics library for ROOT. %package graf-asimage Summary: AfterImage graphics renderer for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-postscript%{?_isa} = %{version}-%{release} -Requires: %{name}-gui%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description graf-asimage This package contains the AfterImage renderer for ROOT, which allows @@ -584,11 +365,7 @@ TIFF. %package graf-fitsio Summary: ROOT interface for the Flexible Image Transport System (FITS) -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-matrix%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description graf-fitsio This package contains a library for using the Flexible Image Transport @@ -596,39 +373,39 @@ System (FITS) data format in root. %package graf-gpad Summary: Canvas and pad library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -# Dynamic dependency -Requires: %{name}-graf-postscript%{?_isa} = %{version}-%{release} +Group: Applications/Engineering +Requires: %{name}-graf-postscript = %{version}-%{release} %description graf-gpad This package contains a library for canvas and pad manipulations. %package graf-gviz Summary: Graphviz 2D library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description graf-gviz This package contains the 2-dimensional graphviz library for ROOT. %package graf-postscript Summary: Postscript/PDF renderer library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description graf-postscript This package contains a library for ROOT, which allows rendering postscript and PDF output. +%if %{?fedora}%{!?fedora:0} >= 9 || %{?rhel}%{!?rhel:0} >= 6 +%package graf-qt +Summary: Qt renderer for ROOT +Group: Applications/Engineering + +%description graf-qt +This package contains the Qt renderer for ROOT. +%endif + %package graf-x11 Summary: X window system renderer for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description graf-x11 This package contains the X11 renderer for ROOT, which allows using an @@ -636,59 +413,22 @@ X display for showing graphics. %package graf3d Summary: Basic 3D shapes library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description graf3d 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} -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-gl%{?_isa} = %{version}-%{release} -Requires: %{name}-graf3d-glad%{?_isa} = %{version}-%{release} -Requires: %{name}-gui%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-ged%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-montecarlo-eg%{?_isa} = %{version}-%{release} -Requires: %{name}-physics%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description graf3d-eve This package contains a library for defining event displays in ROOT. %package graf3d-gl Summary: GL renderer for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-asimage%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} -Requires: %{name}-graf3d-csg%{?_isa} = %{version}-%{release} -Requires: %{name}-graf3d-glad%{?_isa} = %{version}-%{release} -Requires: %{name}-gui%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-ged%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description graf3d-gl This package contains the GL renderer for ROOT. This library provides @@ -696,32 +436,16 @@ This package contains the GL renderer for ROOT. This library provides rendering of histograms, and similar. Included is also a high quality 3D viewer for ROOT defined geometries. -%package graf3d-glad -Summary: OpenGL loader library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} - -%description graf3d-glad -This package contains an OpenGL loader library for ROOT generated by -the Glad tool (https://github.com/Dav1dde/glad). - %package graf3d-gviz3d Summary: Graphviz 3D library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-geom%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} -Requires: %{name}-graf3d-gl%{?_isa} = %{version}-%{release} -Requires: %{name}-gui%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-ged%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description graf3d-gviz3d This package contains the 3-dimensional graphviz library for ROOT. %package graf3d-x3d Summary: X 3D renderer for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} -Requires: %{name}-gui%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description graf3d-x3d This package contains the X 3D renderer for ROOT. This library provides @@ -730,43 +454,16 @@ a low quality 3D viewer for ROOT defined geometries. %package gui Summary: GUI library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-ntuple%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-ntuple-browse%{?_isa} = %{version}-%{release} -# Dynamic dependencies -Requires: %{name}-graf-x11%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-ged%{?_isa} = %{version}-%{release} -# Package split (gui-html from gui) -Obsoletes: %{name}-gui < 6.14.00 +Group: Applications/Engineering +Requires: %{name}-graf-x11 = %{version}-%{release} +Requires: %{name}-gui-ged = %{version}-%{release} %description gui This package contains a library for defining graphical user interfaces. -%package gui-html -Summary: HTML GUI library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-gui%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_isa} = %{version}-%{release} -# Package split (gui-html from gui) -Obsoletes: %{name}-gui < 6.14.00 - -%description gui-html -This package contains a library for defining HTML graphical user interfaces. - %package gui-fitpanel Summary: GUI element for fits in ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-gui%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description gui-fitpanel This package contains a library to show a pop-up dialog when fitting @@ -774,41 +471,32 @@ various kinds of data. %package gui-ged Summary: GUI element for editing various ROOT objects -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-gui%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} -# Dynamic dependency -Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description gui-ged This package contains a library to show a pop-up window for editing various ROOT objects. -%package gui-builder +%package guibuilder Summary: GUI editor library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-gui%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -# Package renamed -Provides: %{name}-guibuilder = %{version}-%{release} -Provides: %{name}-guibuilder%{?_isa} = %{version}-%{release} -Obsoletes: %{name}-guibuilder < 6.14.00 +Group: Applications/Engineering -%description gui-builder +%description guibuilder This package contains a library for editing graphical user interfaces in ROOT. +%if %{?fedora}%{!?fedora:0} >= 9 || %{?rhel}%{!?rhel:0} >= 6 +%package gui-qt +Summary: Qt GUI for ROOT +Group: Applications/Engineering + +%description gui-qt +This package contains the Qt GUI for ROOT. +%endif + %package gui-recorder Summary: Interface for recording and replaying events in ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-gui%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description gui-recorder This library provides interface for recording and replaying events in ROOT. @@ -818,20 +506,9 @@ Recorded events are: All the recorded events from one session are stored in one TFile and can be replayed again anytime. -%package gui-treemap -Summary: GUI element for tree maps in ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} - -%description gui-treemap -This package contains a library to show tree maps in the ROOT GUI. - %package hbook Summary: Hbook library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description hbook This package contains the Hbook library for ROOT, allowing you to @@ -839,66 +516,80 @@ access legacy Hbook files (NTuples and Histograms from PAW). %package hist Summary: Histogram library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-matrix%{?_isa} = %{version}-%{release} -# Dynamic dependency -Requires: %{name}-hist-painter%{?_isa} = %{version}-%{release} +Group: Applications/Engineering +Requires: %{name}-hist-painter = %{version}-%{release} %description hist This package contains a library for histogramming in ROOT. %package hist-painter Summary: Histogram painter plugin for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-matrix%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description hist-painter This package contains a painter of histograms for ROOT. %package spectrum Summary: Spectra analysis library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description spectrum This package contains the Spectrum library for ROOT. %package spectrum-painter Summary: Spectrum painter plugin for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description spectrum-painter This package contains a painter of spectra for ROOT. +%package hist-factory +Summary: RooFit PDFs from ROOT histograms +Group: Applications/Engineering + +%description hist-factory +Create RooFit probability density functions from ROOT histograms. + +%package html +Summary: HTML documentation generator for ROOT +Group: Applications/Engineering +Requires: graphviz + +%description html +This package contains classes to automatically extract documentation +from marked up sources. + %package io Summary: Input/output of ROOT objects -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: liburing-devel +Group: Applications/Engineering %description io This package provides I/O routines for ROOT objects. %package io-dcache Summary: dCache input/output library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description io-dcache This package contains the dCache extension for ROOT. +%package io-gfal +Summary: Grid File Access Library input/output library for ROOT +Group: Applications/Engineering + +%description io-gfal +This package contains the Grid File Access Library extension for ROOT. + +%package io-rfio +Summary: Remote File input/output library for ROOT +Group: Applications/Engineering + +%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} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description io-sql This package contains the SQL extension for ROOT, that allows @@ -907,28 +598,14 @@ TFile interface. %package io-xml Summary: XML reader library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -# Package split (io-xmlparser from io-xml) -Obsoletes: %{name}-io-xml < 6.14.00 +Group: Applications/Engineering %description io-xml This package contains the XML reader library for ROOT. -%package io-xmlparser -Summary: XML parser library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -# Package split (io-xmlparser from io-xml) -Obsoletes: %{name}-io-xml < 6.14.00 - -%description io-xmlparser -This package contains the XML parser library for ROOT. - %package foam Summary: A Compact Version of the Cellular Event Generator -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description foam The general-purpose self-adapting Monte Carlo (MC) event @@ -939,8 +616,8 @@ easier to use for the average user. %package fftw Summary: FFTW library for ROOT -License: GPL-2.0-or-later -Requires: %{name}-core%{?_isa} = %{version}-%{release} +Group: Applications/Engineering +License: GPLv2+ %description fftw This package contains the Fast Fourier Transform extension for ROOT. @@ -948,9 +625,7 @@ It uses the very fast fftw (version 3) library. %package fumili Summary: Fumili library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description fumili This package contains the fumili library for ROOT. This provides an @@ -958,7 +633,7 @@ alternative fitting algorithm for ROOT. %package genvector Summary: Generalized vector library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description genvector This package contains the Genvector library for ROOT. This provides @@ -966,19 +641,16 @@ a generalized vector library. %package mathcore Summary: Core mathematics library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -# Dynamic dependencies -Requires: %{name}-mathmore%{?_isa} = %{version}-%{release} -Requires: %{name}-minuit2%{?_isa} = %{version}-%{release} +Group: Applications/Engineering +Requires: %{name}-minuit = %{version}-%{release} %description mathcore This package contains the MathCore library for ROOT. %package mathmore Summary: GSL interface library for ROOT -License: GPL-2.0-or-later -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Group: Applications/Engineering +License: GPLv2+ %description mathmore This package contains the MathMore library for ROOT. This provides @@ -988,18 +660,14 @@ is licensed under GPLv2+ due to its use of GSL. %package matrix Summary: Matrix library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description matrix This package contains the Matrix library for ROOT. %package minuit Summary: Minuit library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-matrix%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description minuit This package contains the MINUIT library for ROOT. This provides a @@ -1007,9 +675,7 @@ fitting algorithm for ROOT. %package minuit2 Summary: Minuit version 2 library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description minuit2 This package contains the MINUIT version 2 library for ROOT. This @@ -1017,14 +683,7 @@ provides an fitting algorithm for ROOT. %package mlp Summary: Multi-layer perceptron extension for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-matrix%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description mlp This package contains the mlp library for ROOT. This library provides @@ -1032,17 +691,14 @@ a multi-layer perceptron neural network package for ROOT. %package physics Summary: Physics library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-matrix%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description physics This package contains the physics library for ROOT. %package quadp Summary: QuadP library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-matrix%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description quadp This package contains the QuadP library for ROOT. This provides the a @@ -1052,18 +708,14 @@ subject to linear constraints. %package smatrix Summary: Sparse matrix library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description smatrix This package contains the Smatrix library for ROOT. %package splot Summary: Splot library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-matrix%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description splot A common method used in High Energy Physics to perform measurements @@ -1095,10 +747,8 @@ discriminating variables. %package unuran Summary: Random number generator library -License: GPL-2.0-or-later -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Group: Applications/Engineering +License: GPLv2+ %description unuran Contains universal (also called automatic or black-box) algorithms @@ -1115,134 +765,164 @@ init-program computes all tables and constants necessary for the random variate generation. The sample program can then generate variates from the desired distribution. -%package vecops -Summary: Vector operation extension for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -# Library split (tree-dataframe and vecops from tree-player) -Obsoletes: %{name}-tree-player < 6.14.00 +%package memstat +Summary: Memory statistics tool for use with ROOT +Group: Applications/Engineering -%description vecops -This package contains a vector operation extension for ROOT. +%description memstat +This package contains the memory statistics tool for debugging memory +leaks and such. + +%package table +Summary: Table library for ROOT +Group: Applications/Engineering + +%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} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description montecarlo-eg This package contains an event generator library for ROOT. -%package montecarlo-pythia8 -Summary: Pythia version 8 plugin for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-montecarlo-eg%{?_isa} = %{version}-%{release} +%package montecarlo-vmc +Summary: Virtual Monte-Carlo (simulation) library for ROOT +Group: Applications/Engineering -%description montecarlo-pythia8 -This package contains the Pythia version 8 plug-in for ROOT. This -package provides the ROOT user with transparent interface to the Pythia -(version 8) event generators for hadronic interactions. If the term -"hadronic" does not ring any bells, this package is not for you. +%description montecarlo-vmc +This package contains the VMC library for ROOT. %package net Summary: Net library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description net This package contains the ROOT networking library. %package net-rpdutils -Summary: Authentication utilities used by rootd -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_isa} = %{version}-%{release} +Summary: Authentication utilities used by rootd and proofd +Group: Applications/Engineering %description net-rpdutils -This package contains authentication utilities used by rootd. +This package contains authentication utilities used by rootd and proofd. + +%package net-bonjour +Summary: Bonjour extension for ROOT +Group: Applications/Engineering + +%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} -Requires: %{name}-net%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description net-auth This package contains the basic authentication algorithms used by ROOT. -%package net-curl -Summary: Curl extension for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} +%package net-globus +Summary: Globus extension for ROOT +Group: Applications/Engineering +Requires: globus-proxy-utils -%description net-curl -This package contains the curl extension for TOOT. It provides access -to http based storage e.g. S3. +%description net-globus +This package contains the Globus extension for ROOT, that allows +authentication and authorization against Globus. -%if %{davix} -%package net-davix -Summary: Davix extension for ROOT -Requires: davix-libs%{?_isa} >= 0.7.1 -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} +%package net-krb5 +Summary: Kerberos (version 5) extension for ROOT +Group: Applications/Engineering +Requires: krb5-workstation -%description net-davix -This package contains the davix extension for ROOT, that provides -access to http based storage such as webdav and S3. -%endif +%description net-krb5 +This package contains the Kerberos (version 5) extension for ROOT, that +allows authentication and authorization using Kerberos tokens. -%package net-http -Summary: HTTP server extension for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: js-jsroot >= 7.11.1 -# Library split (net-httpsniff from net-http) -Obsoletes: %{name}-net-http < 6.14.00 +%package net-ldap +Summary: LDAP extension for ROOT +Group: Applications/Engineering -%description net-http -This package contains the HTTP server extension for ROOT. It provides -an http interface to arbitrary ROOT applications. - -%package net-httpsniff -Summary: HTTP sniffer extension for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-io-xml%{?_isa} = %{version}-%{release} -Requires: %{name}-net-http%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} -# Library split (net-httpsniff from net-http) -Obsoletes: %{name}-net-http < 6.14.00 - -%description net-httpsniff -This package contains the HTTP sniffer extension for ROOT. +%description net-ldap +This package contains the LDAP extension for ROOT. This gives you +access to LDAP directories via ROOT. %package netx Summary: NetX extension for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description netx This package contains the NetX extension for ROOT, i.e. a client for -the xrootd server. Only the new (NetXNG) version is provided. +the xrootd server. + +%package proof +Summary: PROOF extension for ROOT +Group: Applications/Engineering + +%description proof +This package contains the proof extension for ROOT. This provides a +client to use in a PROOF environment. + +%package proof-bench +Summary: PROOF benchmarking +Group: Applications/Engineering + +%description proof-bench +This package contains the steering class for PROOF benchmarks. + +%package proof-pq2 +Summary: PROOF Quick Query (pq2) +Group: Applications/Engineering + +%description proof-pq2 +Shell-based interface to the PROOF dataset handling. + +%package proof-sessionviewer +Summary: GUI to browse an interactive PROOF session +Group: Applications/Engineering + +%description proof-sessionviewer +This package contains a library for browsing an interactive PROOF +session in ROOT. + +%package clarens +Summary: Clarens extension for ROOT +Group: Applications/Engineering + +%description clarens +This package contains the Clarens extension for ROOT, for use in a +GRID enabled analysis environment. + +The Clarens Grid-Enabled Web Services Framework is an open source, +secure, high-performance "portal" for ubiquitous access to data and +computational resources provided by computing grids. + +%package peac +Summary: PEAC extension for ROOT - run-time libraries +Group: Applications/Engineering + +%description peac +This package contains the PEAC (Proof Enabled Analysis Center) +extension for ROOT. + +PEAC is an interactive distributed analysis framework that uses +Clarens as a "glue" protocol to advertise and communicate amongst +SAM, Global Manager (GM), Local Manager (LM), DCache, and PROOF +services. + +%package xproof +Summary: XPROOF extension for ROOT +Group: Applications/Engineering + +%description xproof +This package contains the xproof extension for ROOT. This provides a +client to be used in a PROOF environment. -%if %{roofit} %package roofit -Summary: ROOT extension for modeling expected distributions - toolkit -License: BSD-2-Clause -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-matrix%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit-batchcompute%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit-core%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} -# Package split / Library split (from roofit) -Obsoletes: %{name}-roofit < 6.20.00 +Summary: ROOT extension for modeling expected distributions +Group: Applications/Engineering +License: BSD %description roofit The RooFit packages provide a toolkit for modeling the expected @@ -1257,240 +937,39 @@ primarily targeted to the high-energy physicists using the ROOT analysis environment, but the general nature of the package make it suitable for adoption in different disciplines as well. -This package contains the RooFit toolkit classes. +%package sql-mysql +Summary: MySQL client plugin for ROOT +Group: Applications/Engineering -%package roofit-core -Summary: ROOT extension for modeling expected distributions - core -License: BSD-2-Clause -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-foam%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-matrix%{?_isa} = %{version}-%{release} -Requires: %{name}-minuit2%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit-batchcompute%{?_isa} = %{version}-%{release} -%if %{roofitmp} -Requires: %{name}-roofit-multiprocess%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit-zmq%{?_isa} = %{version}-%{release} -%endif -Requires: %{name}-tree%{?_isa} = %{version}-%{release} -# Package split / Library split (from roofit) -Obsoletes: %{name}-roofit < 6.20.00 -# Dataframe helpers are now part of core -Obsoletes: %{name}-roofit-dataframe-helpers < 6.34.00 +%description sql-mysql +This package contains the MySQL plugin for ROOT. This plugin +provides a thin client (interface) to MySQL servers. Using this +client, one can obtain information from a MySQL database into the +ROOT environment. -%description roofit-core -The RooFit packages provide a toolkit for modeling the expected -distribution of events in a physics analysis. Models can be used to -perform likelihood fits, produce plots, and generate "toy Monte -Carlo" samples for various studies. The RooFit tools are integrated -with the object-oriented and interactive ROOT graphical environment. +%package sql-odbc +Summary: ODBC plugin for ROOT +Group: Applications/Engineering -RooFit has been developed for the BaBar collaboration, a high energy -physics experiment at the Stanford Linear Accelerator Center, and is -primarily targeted to the high-energy physicists using the ROOT -analysis environment, but the general nature of the package make it -suitable for adoption in different disciplines as well. +%description sql-odbc +This package contains the ODBC (Open DataBase Connectivity) plugin +for ROOT, that allows transparent access to any kind of database that +supports the ODBC protocol. -This package contains the core RooFit classes. +%package sql-pgsql +Summary: PostgreSQL client plugin for ROOT +Group: Applications/Engineering -%package roofit-more -Summary: ROOT extension for modeling expected distributions - more -License: BSD-2-Clause -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-mathmore%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit-core%{?_isa} = %{version}-%{release} -# Package split / Library split (from roofit) -Obsoletes: %{name}-roofit < 6.20.00 - -%description roofit-more -The RooFit packages provide a toolkit for modeling the expected -distribution of events in a physics analysis. Models can be used to -perform likelihood fits, produce plots, and generate "toy Monte -Carlo" samples for various studies. The RooFit tools are integrated -with the object-oriented and interactive ROOT graphical environment. - -RooFit has been developed for the BaBar collaboration, a high energy -physics experiment at the Stanford Linear Accelerator Center, and is -primarily targeted to the high-energy physicists using the ROOT -analysis environment, but the general nature of the package make it -suitable for adoption in different disciplines as well. - -This package contains RooFit classes that use the mathmore library. - -%package roofit-batchcompute -Summary: Optimized computation functions for PDFs -License: BSD-2-Clause -Requires: %{name}-core%{?_isa} = %{version}-%{release} - -%description roofit-batchcompute -While fitting, a significant amount of time and processing power is -spent on computing the probability function for every event and PDF -involved in the fitting model. To speed up this process, roofit can -use the computation functions provided in this library. The functions -provided here process whole data arrays (batches) instead of a single -event at a time, as in the legacy evaluate() function in roofit. In -addition, the code is written in a manner that allows for compiler -optimizations, notably auto-vectorization. This library is compiled -multiple times for different vector instruction set architectures and -the optimal code is executed during runtime, as a result of an -automatic hardware detection mechanism that this library contains. - -%package roofit-hs3 -Summary: RooFit HS3 -License: BSD-2-Clause -# roofit-jsoninterface was merged with roofit-hs3 -Provides: %{name}-roofit-jsoninterface = %{version}-%{release} -Obsoletes: %{name}-roofit-jsoninterface < 6.40.04 -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-hist-factory%{?_isa} = %{version}-%{release} -Requires: %{name}-matrix%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit-core%{?_isa} = %{version}-%{release} - -%description roofit-hs3 -When using RooFit, statistical models can be conveniently handled and -stored as a RooWorkspace. However, for the sake of interoperability -with other statistical frameworks, and also ease of manipulation, it -may be useful to store statistical models in text form. This library -sets out to achieve exactly that, exporting to and importing from JSON. - -%package roofit-codegen -Summary: Code generation support for RooFit -License: BSD-2-Clause -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-hist-factory%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit-core%{?_isa} = %{version}-%{release} - -%description roofit-codegen -This package contains a library providing classes that implement -code generation support for RooFit. - -%if %{roofitmp} -%package roofit-multiprocess -Summary: Multi-process support for RooFit -License: BSD-2-Clause -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit-zmq%{?_isa} = %{version}-%{release} - -%description roofit-multiprocess -This package contains a library providing classes that implement -mult-process support for RooFit. - -%package roofit-zmq -Summary: ZeroMQ interface library for RooFit -License: BSD-2-Clause - -%description roofit-zmq -This package contains a helper library used by RooFit::MultiProcess to -interface to the ZeroMQ library. -%endif - -%package roostats -Summary: Statistical tools built on top of RooFit -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-matrix%{?_isa} = %{version}-%{release} -Requires: %{name}-minuit%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit-core%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} -# Package split / Library split (from roofit) -Obsoletes: %{name}-roofit < 6.20.00 - -%description roostats -RooStats is a package containing statistical tools built on top of -RooFit. - -%package hist-factory -Summary: RooFit PDFs from ROOT histograms -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-io-xmlparser%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit-core%{?_isa} = %{version}-%{release} -Requires: %{name}-roostats%{?_isa} = %{version}-%{release} - -%description hist-factory -Create RooFit probability density functions from ROOT histograms. - -%package xroofit -Summary: Extra tools for RooFit projects -License: BSD-2-Clause -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-fitpanel%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-ged%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-hist-factory%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-matrix%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit-core%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit-hs3%{?_isa} = %{version}-%{release} -Requires: %{name}-roostats%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} - -%description xroofit -The RooFit packages provide a toolkit for modeling the expected -distribution of events in a physics analysis. Models can be used to -perform likelihood fits, produce plots, and generate "toy Monte -Carlo" samples for various studies. The RooFit tools are integrated -with the object-oriented and interactive ROOT graphical environment. - -RooFit has been developed for the BaBar collaboration, a high energy -physics experiment at the Stanford Linear Accelerator Center, and is -primarily targeted to the high-energy physicists using the ROOT -analysis environment, but the general nature of the package make it -suitable for adoption in different disciplines as well. - -This package contains extra tools for RooFit projects. -%endif - -%package sql-sqlite -Summary: Sqlite client plugin for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_isa} = %{version}-%{release} - -%description sql-sqlite -This package contains the sqlite plugin for ROOT. This plugin -provides a thin client (interface) to sqlite servers. Using this -client, one can obtain information from a sqlite database into the +%description sql-pgsql +This package contains the PostGreSQL plugin for ROOT. This plugin +provides a thin client (interface) to PostGreSQL servers. Using this +client, one can obtain information from a PostGreSQL database into the ROOT environment. %package tmva Summary: Toolkit for multivariate data analysis -License: BSD-3-Clause -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-io-xml%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-matrix%{?_isa} = %{version}-%{release} -Requires: %{name}-minuit%{?_isa} = %{version}-%{release} -Requires: %{name}-mlp%{?_isa} = %{version}-%{release} -Requires: %{name}-multiproc%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} -# Library split (tmva-utils from tmva) -Obsoletes: %{name}-tmva < 6.28.08 +Group: Applications/Engineering +License: BSD %description tmva The Toolkit for Multivariate Analysis (TMVA) provides a @@ -1512,1481 +991,941 @@ evaluation). In addition all these methods can be tested in parallel, and hence their performance on a particular data set may easily be compared. -%if %{dataframe} -%package tmva-utils -Summary: Toolkit for multivariate data analysis (dataframe utilities) -License: BSD-3-Clause -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -# Library split (tmva-utils from tmva) -Obsoletes: %{name}-tmva < 6.28.08 -# Library split (tree-ml from tmva-utils) -Obsoletes: %{name}-tmva-utils < 6.40.00 - -%description tmva-utils -TMVA utilities using dataframe. -%endif - -%package tmva-python -Summary: Toolkit for multivariate data analysis (Python) -License: BSD-3-Clause -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-tmva%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} -Requires: python3-numpy -# Package split (tmva-sofie-parser-python from tmva-python) -Obsoletes: %{name}-tmva-python < 6.40.00 - -%description tmva-python -Python integration with TMVA. - -%if %{rrr} -%package tmva-r -Summary: Toolkit for multivariate data analysis (R) -License: BSD-3-Clause -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-matrix%{?_isa} = %{version}-%{release} -Requires: %{name}-r%{?_isa} = %{version}-%{release} -Requires: %{name}-tmva%{?_isa} = %{version}-%{release} - -%description tmva-r -R integration with TMVA. -%endif - -%package tmva-sofie -Summary: ROOT/TMVA SOFIE (System for Optimized Fast Inference code Emit) -License: BSD-3-Clause -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} - -%description tmva-sofie -ROOT/TMVA SOFIE (System for Optimized Fast Inference code Emit) -generates C++ functions easily invokable for the fast inference of -trained neural network models. It takes ONNX model files as inputs and -produces C++ header files that can be included and utilized in a -"plug-and-go" style. - -%if %{tmvasofieparser} -%package tmva-sofie-parser -Summary: ROOT/TMVA SOFIE Parsers -License: BSD-3-Clause AND MIT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-tmva-sofie%{?_isa} = %{version}-%{release} - -%description tmva-sofie-parser -Parsers for ROOT/TMVA SOFIE - -%package tmva-sofie-parser-python -Summary: ROOT/TMVA SOFIE Parsers for Python -License: BSD-3-Clause AND MIT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-tmva-sofie%{?_isa} = %{version}-%{release} -Requires: python3-numpy -# Package split (tmva-sofie-parser-python from tmva-python) -Obsoletes: %{name}-tmva-python < 6.40.00 - -%description tmva-sofie-parser-python -Parsers for ROOT/TMVA SOFIE for Python -%endif - -%package tmva-gui -Summary: Toolkit for multivariate data analysis GUI -License: BSD-3-Clause -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-gui%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-io-xml%{?_isa} = %{version}-%{release} -Requires: %{name}-matrix%{?_isa} = %{version}-%{release} -Requires: %{name}-tmva%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-viewer%{?_isa} = %{version}-%{release} - -%description tmva-gui -GUI for the Toolkit for Multivariate Analysis (TMVA) - %package tree Summary: Tree library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description tree This package contains the Tree library for ROOT. -%if %{dataframe} -%package tree-dataframe -Summary: A high level interface to ROOT trees -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-ntuple%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} -Requires: %{name}-vecops%{?_isa} = %{version}-%{release} -# Library split (tree-dataframe and vecops from tree-player) -Obsoletes: %{name}-tree-player < 6.14.00 - -%description tree-dataframe -This package contains a high level interface to ROOT trees. - -%package tree-ml -Summary: ROOT dataframe python -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-vecops%{?_isa} = %{version}-%{release} -# Library split (tree-ml from tmva-utils) -Obsoletes: %{name}-tmva-utils < 6.40.00 - -%description tree-ml -This package contains ... -%endif - %package tree-player Summary: Library to loop over a ROOT tree -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}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-multiproc%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} -# Library split (tree-dataframe and vecops from tree-player) -Obsoletes: %{name}-tree-player < 6.14.00 +Group: Applications/Engineering %description tree-player This package contains a plugin to loop over a ROOT tree. %package tree-viewer Summary: GUI to browse a ROOT tree -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-ged%{?_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} -Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} +Group: Applications/Engineering %description tree-viewer This package contains a plugin for browsing a ROOT tree in ROOT. -%package tree-webviewer -Summary: ROOT tree web viewer library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} - -%description tree-webviewer -This package contains a plugin for browsing a ROOT tree in a web GUI. - -%package unfold -Summary: Distribution unfolding -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io-xmlparser%{?_isa} = %{version}-%{release} -Requires: %{name}-matrix%{?_isa} = %{version}-%{release} - -%description unfold -An algorithm to unfold distributions from detector to truth level. - -%package cli -Summary: ROOT command line utilities +%package -n emacs-%{name} +Summary: Compiled elisp files to run root under GNU Emacs +Group: Applications/Engineering +%if %{?fedora}%{!?fedora:0} >= 10 || %{?rhel}%{!?rhel:0} >= 6 BuildArch: noarch -Requires: python3-%{name} = %{version}-%{release} - -%description cli -The ROOT command line utilities is a set of scripts for common tasks -written in python. - -%package gui-webdisplay -Summary: Web display for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_isa} = %{version}-%{release} -Requires: %{name}-net-http%{?_isa} = %{version}-%{release} - -%description gui-webdisplay -This package contains a web display extension for ROOT. - -%ifarch %{qt6_qtwebengine_arches} -%package gui-qt6webdisplay -Summary: Qt6 Web display -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} -Requires: %{name}-net-http%{?_isa} = %{version}-%{release} - -%description gui-qt6webdisplay -This package contains a Qt6 web display extension for ROOT. +%endif +Requires: %{name} = %{version}-%{release} +%if "%{?rhel}" == "5" +Requires: emacs >= %{emacs_version} +%else +Requires: emacs(bin) >= %{emacs_version} %endif -%package gui-webgui6 -Summary: Web based GUI for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-net-http%{?_isa} = %{version}-%{release} +%description -n emacs-%{name} +emacs-root is an add-on package for GNU Emacs. It provides integration +with ROOT. -%description gui-webgui6 -This package provides a Web based GUI for ROOT. - -%package gui-browsable -Summary: ROOT GUI browsable providers -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-geom%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-treemap%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-ntuple%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-ntuple-browse%{?_isa} = %{version}-%{release} -# Package split (gui-browsable-v7 from gui-browsable) -Obsoletes: %{name}-gui-browsable < 6.32.06 - -%description gui-browsable -This package contains ROOT GUI browsable providers. - -%package gui-browserv7 -Summary: ROOT file browser and browser widgets -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-geom%{?_isa} = %{version}-%{release} -Requires: %{name}-geom-webviewer%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-browsable%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-webgui6%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-webviewer%{?_isa} = %{version}-%{release} -# Package split (gui-browserv7-v7 from gui-browserv7) -Obsoletes: %{name}-gui-browserv7 < 6.32.06 - -%description gui-browserv7 -This package contains the ROOT file browser (RBrowser) and browser widgets. - -%package geom-webviewer -Summary: Geometry web viewer library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-geom%{?_isa} = %{version}-%{release} -Requires: %{name}-geom-painter%{?_isa} = %{version}-%{release} -Requires: %{name}-graf3d-csg%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} - -%description geom-webviewer -This package contains a library for viewing geometries in a web GUI. - -%package tree-ntuple -Summary: The new ROOT n-tuple class -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} - -%description tree-ntuple -This package contains the new ROOT n-tuple class (RNTuple). - -%package tree-ntuple-browse -Summary: N-Tuple browsing library for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-treemap%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-ntuple%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-ntuple-utils%{?_isa} = %{version}-%{release} - -%description tree-ntuple-browse -This package contains a library for browsing n-tuples. - -%package tree-ntuple-utils -Summary: Ntuple utility library -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-ntuple%{?_isa} = %{version}-%{release} - -%description tree-ntuple-utils -This package contains utility functions for ntuples. - -%if %{root7} -%package graf-gpadv7 -Summary: Canvas and pad library for ROOT (ROOT 7) -Requires: %{name}-core%{?_isa} = %{version}-%{release} - -%description graf-gpadv7 -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 - -%package graf3d-eve7 -Summary: Event display library for ROOT (ROOT 7) -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-geom%{?_isa} = %{version}-%{release} -Requires: %{name}-geom-webviewer%{?_isa} = %{version}-%{release} -Requires: %{name}-graf%{?_isa} = %{version}-%{release} -Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} -Requires: %{name}-graf3d-csg%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} -Requires: %{name}-montecarlo-eg%{?_isa} = %{version}-%{release} -Requires: %{name}-net-http%{?_isa} = %{version}-%{release} -Requires: %{name}-physics%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} - -%description graf3d-eve7 -This package contains a library for defining event displays in ROOT 7. - -%package gui-browsable-v7 -Summary: Additional ROOT GUI browsable providers (ROOT 7) -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpadv7%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-browsable%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-treemap%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-ntuple%{?_isa} = %{version}-%{release} -Requires: %{name}-tree-ntuple-browse%{?_isa} = %{version}-%{release} -# Package split (gui-browsable-v7 from gui-browsable) -Obsoletes: %{name}-gui-browsable < 6.32.06 - -%description gui-browsable-v7 -This package contains additional ROOT GUI browsable providers for ROOT 7. - -%package gui-browserv7-v7 -Summary: Additional ROOT browser widgets (ROOT 7) -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpadv7%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-browsable%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-browserv7%{?_isa} = %{version}-%{release} -# Package split (gui-browserv7-v7 from gui-browserv7) -Obsoletes: %{name}-gui-browserv7 < 6.32.06 - -%description gui-browserv7-v7 -This package contains additional ROOT browser widgets for ROOT 7. - -%package gui-canvaspainter -Summary: Canvas painter (ROOT 7) -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpadv7%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} - -%description gui-canvaspainter -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-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpadv7%{?_isa} = %{version}-%{release} -Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} - -%description gui-fitpanelv7 -This package contains a library to show a pop-up dialog when fitting -various kinds of data. - -%package histv7 -Summary: Conversion functions from RHist to THist -Requires: %{name}-core%{?_isa} = %{version}-%{release} - -%description histv7 -This package contains converters from the "old" THn* Hist library and -the "new" histv7 package. - -%package histv7util -Summary: Histogram library for ROOT 7 -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-hist%{?_isa} = %{version}-%{release} - -%description histv7util -This package contains a library for histogramming in ROOT 7. +%package -n emacs-%{name}-el +Summary: Elisp source files for root under GNU Emacs +Group: Applications/Engineering +%if %{?fedora}%{!?fedora:0} >= 10 || %{?rhel}%{!?rhel:0} >= 6 +BuildArch: noarch %endif +Requires: emacs-%{name} = %{version}-%{release} + +%description -n emacs-%{name}-el +This package contains the elisp source files for root under GNU Emacs. You +do not need to install this package to run root. Install the emacs-root +package to use root with GNU Emacs. %prep -%setup -q -a 1 -a 9 +%setup -q +if pkg-config --max-version 2.1.2 ftgl ; then +%patch0 -p1 +fi +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 -%patch -P0 -p1 -%patch -P1 -p1 -%patch -P2 -p1 -%patch -P3 -p1 -%patch -P4 -p1 -%patch -P5 -p1 -%patch -P6 -p1 -%patch -P7 -p1 -%patch -P8 -p1 -%patch -P9 -p1 -%patch -P10 -p1 -%patch -P11 -p1 -%patch -P12 -p1 -%patch -P13 -p1 -%patch -P14 -p1 +find . '(' -name '*.cxx' -o -name '*.cpp' -o -name '*.C' -o -name '*.c' -o \ + -name '*.h' -o -name '*.hh' -o -name '*.hi' -o -name '*.py' -o \ + -name '*.html' -o -name '*.js' -o -name '*.css' -o \ + -name '*.xpm' -o -name '*.gif' -o -name '*.png' \ + ')' -exec chmod 644 {} ';' -# Remove bundled sources in order to be sure they are not used +chmod 644 cint/cint/include/makehpib \ + cint/cint/stl/_climits \ + test/DrawTest.sh \ + test/dt_RunDrawTest.sh \ + test/dt_MakeFiles.sh \ + test/ProofBench/make_event_par.sh \ + test/RootIDE/Makefile \ + tutorials/fitsio/sample1.fits + +# Badly named file - not python - aborts python byte compilation +mv tutorials/pyroot/fit1_py.py tutorials/pyroot/fit1_py.txt +sed s/fit1_py.py/fit1_py.txt/ -i tutorials/pyroot/fit1.py + +# Remove embedded sources in order to be sure they are not used +# * afterimage +%if %{?fedora}%{!?fedora:0} >= 13 || %{?rhel}%{!?rhel:0} >= 6 +rm -rf graf2d/asimage/src/libAfterImage +%else +rm -rf graf2d/asimage/src/libAfterImage/libjpeg +rm -rf graf2d/asimage/src/libAfterImage/libpng +rm -rf graf2d/asimage/src/libAfterImage/zlib +sed '/zlib\/zlib.h/d' -i graf2d/asimage/src/libAfterImage/.depend +%endif # * ftgl rm -rf graf3d/ftgl/src graf3d/ftgl/inc -# * nlohmann -%if ! %{bundlejson} -rm builtins/nlohmann/json.hpp -%endif +# * freetype +rm -rf graf2d/freetype/src +# * glew +rm -rf graf3d/glew/src graf3d/glew/inc # * pcre -rm builtins/pcre/pcre-*.tar.bz2 -# * xxhash -rm builtins/xxhash/xxhash.c builtins/xxhash/xxhash.h +rm -rf core/pcre/src +# * zlib +rm -rf core/zip/src/[a-z]* core/zip/inc/[a-z]* +# * lzma +rm -rf core/lzma/src/*.tar.gz +# * gl2ps +rm graf3d/gl/src/gl2ps.cxx graf3d/gl/inc/gl2ps.h +sed 's/^GLLIBS *:= .* $(OPENGLLIB)/& -lgl2ps/' -i graf3d/gl/Module.mk # * unuran -rm math/unuran/src/*.tar.gz -# * civetweb -rm -rf net/http/civetweb -# * x11 extension headers -rm -rf graf2d/x11/inc/X11 -# * jsroot -rm -rf js/[^f]* js/files/draw.htm js/files/online.htm +rm -rf math/unuran/src/*.tar.gz +# * xrootd +rm -rf net/xrootd/src -# Additional documentation -install -p -m 644 %{SOURCE7} \ - bindings/pyroot/pythonizations/python/ROOT/_jupyroot +# Remove unsupported man page macros +sed -e '/^\.UR/d' -e '/^\.UE/d' -i man/man1/* + +# Make images local +sed 's!http://root.cern.ch/drupal/sites/all/themes/newsflash/images/blue/!!' \ + -i etc/html/ROOT.css +sed 's!http://root.cern.ch/drupal/sites/all/themes/newsflash/images/!!' \ + -i etc/html/ROOT.css +sed 's!http://root.cern.ch/drupal/sites/default/files/!!' \ + -i etc/html/header.html +install -p -m 644 %{SOURCE3} %{SOURCE4} %{SOURCE5} etc/html +sed '/CopyFileFromEtcDir("ROOT.css");/a\ + CopyFileFromEtcDir("info.png");\ + CopyFileFromEtcDir("root-banner.png");\ + CopyFileFromEtcDir("rootdrawing-logo.png");' -i html/src/THtml.cxx + +# Rename canvases to avoid name conflicts during doc generation +sed s/c1/c1c/g -i tutorials/graphics/earth.C +sed s/c3/c3c/g -i tutorials/graphs/multipalette.C +sed s/c1/c1simp/g -i tutorials/hsimple.C + +%if "%{?rhel}" == "5" +# Build PyROOT for python 2.6 +cp -pr bindings/pyroot bindings/pyroot26 +sed -e 's/= pyroot/= pyroot26/' -e 's/python /python26 /' \ + -i bindings/pyroot26/Module.mk +%endif %build -%if %{?rhel}%{!?rhel:0} == 10 -# This package triggers a fault in LLVM when LTO is enabled. Until LLVM -# is analyzed and fixed, disable LTO -%define _lto_cflags %{nil} +unset QTDIR +unset QTLIB +unset QTINC +./configure --prefix=%{_prefix} \ + --libdir=%{_libdir}/%{name} \ + --etcdir=%{_datadir}/%{name} \ + --docdir=%{_defaultdocdir}/%{name}-%{version} \ + --elispdir=%{emacs_lispdir}/%{name} \ +%if %{?fedora}%{!?fedora:0} >= 13 || %{?rhel}%{!?rhel:0} >= 6 + --disable-builtin-afterimage \ +%else + --enable-builtin-afterimage \ %endif + --disable-builtin-ftgl \ + --disable-builtin-freetype \ + --disable-builtin-glew \ + --disable-builtin-lzma \ + --disable-builtin-pcre \ + --disable-builtin-zlib \ + --enable-asimage \ + --enable-astiff \ + --enable-bonjour \ + --enable-clarens \ + --enable-dcache \ + --enable-exceptions \ + --enable-explicitlink \ + --enable-fftw3 \ + --enable-fitsio \ + --enable-gdml \ + --enable-genvector \ + --enable-gfal \ + --with-gfal-incdir=%{_includedir} \ + --with-gfal-libdir=%{_libdir} \ + --enable-globus \ + --enable-gsl-shared \ + --enable-gviz \ + --enable-krb5 \ + --enable-ldap \ + --enable-mathmore \ + --enable-memstat \ + --enable-minuit2 \ + --enable-mysql \ + --enable-odbc \ + --enable-opengl \ + --enable-peac \ + --enable-pgsql \ + --enable-python \ +%if %{?fedora}%{!?fedora:0} >= 9 || %{?rhel}%{!?rhel:0} >= 6 + --enable-qt \ + --enable-qtgsi \ +%else + --disable-qt \ + --disable-qtgsi \ +%endif + --enable-reflex \ + --enable-rfio \ + --with-rfio-incdir=%{_includedir}/dpm \ + --with-rfio-libdir=%{_libdir} \ + --enable-roofit \ + --enable-ruby \ + --enable-soversion \ + --enable-shadowpw \ + --enable-shared \ + --enable-ssl \ + --enable-table \ + --enable-tmva \ + --enable-unuran \ + --enable-x11 \ + --enable-xft \ + --enable-xml \ + --enable-xrootd \ + --with-xrootd-incdir=%{_includedir}/xrootd \ + --with-xrootd-libdir=%{_libdir} \ +%ifarch %{ix86} x86_64 + --enable-cintex \ +%else + --disable-cintex \ +%endif + --disable-afdsmgrd \ + --disable-afs \ + --disable-alien \ + --disable-alloc \ + --disable-castor \ + --disable-chirp \ + --disable-cling \ + --disable-glite \ + --disable-hdfs \ + --disable-monalisa \ + --disable-oracle \ + --disable-pythia6 \ + --disable-pythia8 \ + --disable-rpath \ + --disable-sapdb \ + --disable-srp \ + --fail-on-missing -%cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \ - -DCMAKE_INSTALL_LIBDIR:PATH=%{_libdir}/%{name} \ - -DCMAKE_INSTALL_PYTHONDIR:PATH=%{python3_sitearch} \ - -DCMAKE_INSTALL_SYSCONFDIR:PATH=%{_datadir}/%{name} \ - -DCMAKE_INSTALL_DOCDIR:PATH=%{_pkgdocdir} \ - -DCMAKE_SKIP_INSTALL_RPATH:BOOL=ON \ - -DPython3_EXECUTABLE:PATH=%{__python3} \ - -Dgnuinstall:BOOL=ON \ - -Dbuiltin_cfitsio:BOOL=OFF \ - -Dbuiltin_civetweb:BOOL=OFF \ - -Dbuiltin_clang:BOOL=ON \ - -Dbuiltin_cling:BOOL=ON \ - -Dbuiltin_cppzmq:BOOL=OFF \ - -Dbuiltin_fftw3:BOOL=OFF \ - -Dbuiltin_freetype:BOOL=OFF \ - -Dbuiltin_ftgl:BOOL=OFF \ - -Dbuiltin_gif:BOOL=OFF \ - -Dbuiltin_gl2ps:BOOL=OFF \ - -Dbuiltin_gsl:BOOL=OFF \ - -Dbuiltin_gtest:BOOL=OFF \ - -Dbuiltin_jpeg:BOOL=OFF \ - -Dbuiltin_llvm:BOOL=ON \ - -Dbuiltin_lz4:BOOL=OFF \ - -Dbuiltin_lzma:BOOL=OFF \ -%if %{bundlejson} - -Dbuiltin_nlohmannjson:BOOL=ON \ -%else - -Dbuiltin_nlohmannjson:BOOL=OFF \ +make OPTFLAGS="%{optflags}" \ + EXTRA_LDFLAGS="%{?__global_ldflags}" %{?_smp_mflags} + +%if "%{?rhel}" == "5" +# Build PyROOT for python 2.6 +mkdir pyroot26 +cp bindings/pyroot26/ROOT.py pyroot26 +make OPTFLAGS="%{optflags}" \ + EXTRA_LDFLAGS="%{?__global_ldflags}" %{?_smp_mflags} \ + MODULES="build cint/cint core/utils bindings/pyroot26" \ + PYTHONINCDIR=/usr/include/python2.6 PYTHONLIB=-lpython2.6 \ + PYROOTLIB=pyroot26/libPyROOT.so ROOTPY=pyroot26/ROOT.py %endif - -Dbuiltin_openssl:BOOL=OFF \ - -Dbuiltin_openui5:BOOL=ON \ - -Dbuiltin_pcre:BOOL=OFF \ - -Dbuiltin_png:BOOL=OFF \ - -Dbuiltin_tbb:BOOL=OFF \ - -Dbuiltin_unuran:BOOL=OFF \ - -Dbuiltin_vdt:BOOL=OFF \ - -Dbuiltin_xrootd:BOOL=OFF \ - -Dbuiltin_xxhash:BOOL=OFF \ - -Dbuiltin_zeromq:BOOL=OFF \ - -Dbuiltin_zlib:BOOL=OFF \ - -Dbuiltin_zstd:BOOL=OFF \ -%ifnarch %{ix86} %{arm} - -Darrow:BOOL=ON \ -%else - -Darrow:BOOL=OFF \ -%endif - -Dasimage:BOOL=ON \ - -Dasimage_tiff:BOOL=ON \ - -Dccache:BOOL=OFF \ - -Ddistcc:BOOL=OFF \ - -Dcefweb:BOOL=OFF \ - -Dcheck_connection:BOOL=OFF \ - -Dclad:BOOL=ON \ - -DCLAD_SOURCE_DIR:PATH=${PWD}/clad-2.3 \ - -Dcocoa:BOOL=OFF \ - -Dcuda:BOOL=OFF \ - -Dcurl:BOOL=ON \ - -Ddaos:BOOL=OFF \ -%if %{dataframe} - -Ddataframe:BOOL=ON \ -%else - -Ddataframe:BOOL=OFF \ -%endif -%if %{davix} - -Ddavix:BOOL=ON \ -%else - -Ddavix:BOOL=OFF \ -%endif - -Ddcache:BOOL=ON \ - -Ddev:BOOL=OFF \ - -Dexperimental_adaptivecpp=OFF \ - -Dexperimental_genvectorx=OFF \ - -Dfcgi:BOOL=ON \ - -Dfftw3:BOOL=ON \ - -DFIREFOX_EXECUTABLE:PATH=/usr/bin/firefox \ - -Dfitsio:BOOL=ON \ - -Dfortran:BOOL=ON \ - -Dgdml:BOOL=ON \ - -Dgeom:BOOL=ON \ - -Dgeombuilder:BOOL=ON \ - -Dgviz:BOOL=ON \ - -Dhttp:BOOL=ON \ - -Dimt:BOOL=ON \ - -Dlibcxx:BOOL=OFF \ - -Dmathmore:BOOL=ON \ - -Dmemory_termination:BOOL=OFF \ - -Dminuit2_mpi:BOOL=OFF \ - -Dminuit2_omp:BOOL=ON \ - -Dmpi:BOOL=OFF \ - -Dopengl:BOOL=ON \ - -Dpyroot:BOOL=ON \ - -Dpythia8:BOOL=ON \ -%ifarch %{qt6_qtwebengine_arches} - -Dqt6web:BOOL=ON \ -%else - -Dqt6web:BOOL=OFF \ -%endif -%if %{rrr} - -Dr:BOOL=ON \ -%else - -Dr:BOOL=OFF \ -%endif -%if %{roofit} - -Droofit:BOOL=ON \ -%if %{roofitmp} - -Droofit_multiprocess:BOOL=ON \ -%else - -Droofit_multiprocess:BOOL=OFF \ -%endif -%else - -Droofit:BOOL=OFF \ - -Droofit_multiprocess:BOOL=OFF \ -%endif - -Droofit_hs3_ryml:BOOL=OFF \ -%if %{root7} - -Droot7:BOOL=ON \ -%else - -Droot7:BOOL=OFF \ -%endif - -Druby:BOOL=OFF \ - -Druntime_cxxmodules:BOOL=OFF \ - -Dshadowpw:BOOL=ON \ - -Dshared:BOOL=ON \ - -Dsoversion:BOOL=ON \ - -Dspectrum:BOOL=ON \ - -Dsqlite:BOOL=ON \ - -Dssl:BOOL=ON \ - -Dthisroot_scripts:BOOL=OFF \ - -Dtmva:BOOL=ON \ - -Dtmva-cpu:BOOL=ON \ - -Dtmva-cudnn:BOOL=OFF \ - -Dtmva-gpu:BOOL=OFF \ - -Dtmva-pymva:BOOL=ON \ -%if %{rrr} - -Dtmva-rmva:BOOL=ON \ -%else - -Dtmva-rmva:BOOL=OFF \ -%endif -%if %{tmvasofieparser} - -Dtmva-sofie:BOOL=ON \ -%else - -Dtmva-sofie:BOOL=OFF \ -%endif - -Dtpython:BOOL=ON \ - -Dunfold:BOOL=ON \ - -Dunuran:BOOL=ON \ - -During:BOOL=ON \ - -Duse_gsl_cblas:BOOL=OFF \ - -Dvdt:BOOL=OFF \ - -Dvecgeom:BOOL=OFF \ - -Dwebgui:BOOL=ON \ - -Dx11:BOOL=ON \ - -Dxml:BOOL=ON \ - -Dxrootd:BOOL=ON \ - -Dfail-on-missing:BOOL=ON \ - -Dtesting:BOOL=ON \ - -Dtestsupport:BOOL=ON \ - -Dtest_distrdf_pyspark:BOOL=OFF \ - -Dtest_distrdf_dask:BOOL=OFF \ - -Dclingtest:BOOL=OFF \ - -Dcoverage:BOOL=OFF \ - -Droottest:BOOL=OFF \ - -Drootbench:BOOL=OFF \ - -Dasan:BOOL=OFF -%cmake_build %install -%cmake_install +rm -rf $RPM_BUILD_ROOT +make install DESTDIR=$RPM_BUILD_ROOT -# Let rpm redo the python byte compilation -find %{buildroot}%{python3_sitearch} -depth -type d -name __pycache__ -exec rm -r {} ';' +# Move python modules to the sitelib +mkdir -p ${RPM_BUILD_ROOT}%{python_sitearch} +mv ${RPM_BUILD_ROOT}%{_libdir}/%{name}/*.py* \ + ${RPM_BUILD_ROOT}%{python_sitearch} + +# Do emacs byte compilation +emacs -batch -no-site-file -f batch-byte-compile \ + ${RPM_BUILD_ROOT}%{emacs_lispdir}/%{name}/*.el # Install desktop entry and icon -mkdir -p %{buildroot}%{_datadir}/applications -mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps -desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE3} -install -p -m 644 %{SOURCE4} %{buildroot}%{_datadir}/icons/hicolor/48x48/apps +mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/applications +mkdir -p ${RPM_BUILD_ROOT}%{_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=${RPM_BUILD_ROOT}%{_datadir}/applications \ + --vendor "" root.desktop +install -p -m 644 build/package/debian/root-system-bin.png \ + ${RPM_BUILD_ROOT}%{_datadir}/icons/hicolor/48x48/apps/root.png # Install mime type and icon -mkdir -p %{buildroot}%{_datadir}/mime/packages -mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/mimetypes -install -p -m 644 %{SOURCE5} %{buildroot}%{_datadir}/mime/packages -install -p -m 644 %{SOURCE6} \ - %{buildroot}%{_datadir}/icons/hicolor/48x48/mimetypes +mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/mime/packages +mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/icons/hicolor/48x48/mimetypes +install -p -m 644 build/package/debian/root-system-bin.sharedmimeinfo \ + ${RPM_BUILD_ROOT}%{_datadir}/mime/packages/root.xml +install -p -m 644 build/package/debian/application-x-root.png \ + ${RPM_BUILD_ROOT}%{_datadir}/icons/hicolor/48x48/mimetypes -# Move python cli helper to its own directory -mkdir -p %{buildroot}%{_datadir}/%{name}/cli -mv %{buildroot}%{python3_sitearch}/cmdLineUtils.py \ - %{buildroot}%{_datadir}/%{name}/cli -sed -e '/^\#!/d' -i %{buildroot}%{_datadir}/%{name}/cli/cmdLineUtils.py +# Init scripts for services +mkdir -p ${RPM_BUILD_ROOT}%{_initrddir} +mv ${RPM_BUILD_ROOT}%{_datadir}/%{name}/daemons/proofd.rc.d \ + ${RPM_BUILD_ROOT}%{_initrddir}/proofd +mv ${RPM_BUILD_ROOT}%{_datadir}/%{name}/daemons/rootd.rc.d \ + ${RPM_BUILD_ROOT}%{_initrddir}/rootd -# Install 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} +# Turn off services by default +sed 's/\(chkconfig: \)[0-9]*/\1-/' -i ${RPM_BUILD_ROOT}%{_initrddir}/* -# Fix python extension suffix -mv %{buildroot}%{python3_sitearch}/ROOT/libROOTPythonizations.so \ - %{buildroot}%{python3_sitearch}/ROOT/libROOTPythonizations%{python3_ext_suffix} -mv %{buildroot}%{python3_sitearch}/cppyy/libcppyy.so \ - %{buildroot}%{python3_sitearch}/cppyy/libcppyy%{python3_ext_suffix} +# The Python interface library must be in two places +mkdir -p ${RPM_BUILD_ROOT}%{python_sitearch} +mv ${RPM_BUILD_ROOT}%{_libdir}/%{name}/libPyROOT.so.%{libversion} \ + ${RPM_BUILD_ROOT}%{python_sitearch}/libPyROOT.so +%if "%{?rhel}" == "5" +touch ${RPM_BUILD_ROOT}%{_libdir}/%{name}/libPyROOT.so.%{libversion} +%else +ln -s ..`sed 's!%{_libdir}!!' <<< %{python_sitearch}`/libPyROOT.so \ + ${RPM_BUILD_ROOT}%{_libdir}/%{name}/libPyROOT.so.%{libversion} +%endif -# Create .dist-info files so that rpm auto-generates provides -mkdir %{buildroot}%{python3_sitearch}/ROOT-%{version}.dist-info -cat > %{buildroot}%{python3_sitearch}/ROOT-%{version}.dist-info/METADATA << EOF -Name: ROOT -Version: %{version} -Provides-Extra: distrdf -Provides-Extra: jupyroot -EOF +%if "%{?rhel}" == "5" +mkdir -p ${RPM_BUILD_ROOT}%{python26_sitearch} +install pyroot26/libPyROOT.so.%{libversion} \ + ${RPM_BUILD_ROOT}%{python26_sitearch}/libPyROOT.so +install -m 644 pyroot26/ROOT.py* ${RPM_BUILD_ROOT}%{python26_sitearch} +%endif -# Put jupyter stuff in the right places -mkdir -p %{buildroot}%{_datadir}/jupyter/kernels +# Same for the Ruby interface library +mkdir -p ${RPM_BUILD_ROOT}%{ruby_installdir} +mv ${RPM_BUILD_ROOT}%{_libdir}/%{name}/libRuby.so.%{libversion} \ + ${RPM_BUILD_ROOT}%{ruby_installdir}/libRuby.so +ln -s ..`sed 's!%{_libdir}!!' <<< %{ruby_installdir}`/libRuby.so \ + ${RPM_BUILD_ROOT}%{_libdir}/%{name}/libRuby.so.%{libversion} -cp -pr %{buildroot}%{_datadir}/%{name}/notebook/kernels/root \ - %{buildroot}%{_datadir}/jupyter/kernels/root -sed -e 's!python[0-9]*\.[0-9]*!%{__python3}!' \ - -i %{buildroot}%{_datadir}/jupyter/kernels/root/kernel.json -sed -e '/^\#!/d' \ - -i %{buildroot}%{python3_sitearch}/ROOT/_jupyroot/kernel/rootkernel.py - -rm -rf %{buildroot}%{_datadir}/%{name}/notebook/custom -rm -rf %{buildroot}%{_datadir}/%{name}/notebook/html -rm -rf %{buildroot}%{_datadir}/%{name}/notebook/kernels -rm %{buildroot}%{_datadir}/%{name}/notebook/jupyter_notebook_config.py -rmdir %{buildroot}%{_datadir}/%{name}/notebook - -# Replace the rootnb.exe wrapper with a simpler one -cat > %{buildroot}%{_bindir}/rootnb.exe << EOF -#! /bin/sh -if [ -z "\$(type jupyter 2>/dev/null)" ] ; then - echo jupyter not found in path. Exiting. - exit 1 -fi -if [ -z "\$(type jupyter-notebook 2>/dev/null)" ] ; then - echo jupyter-notebook not found in path. Exiting. - exit 1 -fi -jupyter notebook "\$@" -EOF - -# Avoid /usr/bin/env shebangs (and adapt cli to cmdLineUtils location) -sed -e 's!/usr/bin/env bash!/bin/bash!' \ - -i %{buildroot}%{_bindir}/root-config \ - %{buildroot}%{_bindir}/rootssh -sed -e 's!/usr/bin/env python3!%{__python3}!' \ - -e '/import sys/d' \ - -e '/import cmdLineUtils/iimport sys' \ - -e '/import cmdLineUtils/isys.path.insert(0, "%{_datadir}/%{name}/cli")' \ - -i %{buildroot}%{_bindir}/rooteventselector \ - %{buildroot}%{_bindir}/rootmv \ - %{buildroot}%{_bindir}/rootprint \ - %{buildroot}%{_bindir}/rootslimtree -sed -e 's!/usr/bin/env python3!%{__python3}!' \ - -i %{buildroot}%{_bindir}/rootdrawtree -sed -e 's!/usr/bin/env python!%{__python3}!' \ - -i %{buildroot}%{_datadir}/%{name}/dictpch/makepch.py -sed -e 's!/usr/bin/python!%{__python3}!' \ - -i %{buildroot}%{_datadir}/%{name}/pdg_table_update.py +# These should be in PATH +mv ${RPM_BUILD_ROOT}%{_datadir}/%{name}/proof/utils/pq2/pq2* \ + ${RPM_BUILD_ROOT}%{_bindir} # Remove some junk -rm %{buildroot}%{_datadir}/%{name}/root.desktop -rm %{buildroot}%{_pkgdocdir}/INSTALL -rm %{buildroot}%{_pkgdocdir}/README.CXXMODULES.md +rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/daemons/*.plist +rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/daemons/*.xinetd +rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/daemons/README +rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/hostcert.conf +rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/proof/*.sample +rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}/proof/utils +rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/root.desktop +rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/system.plugins-ios +rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/svninfo.txt +%if %{?fedora}%{!?fedora:0} < 13 && %{?rhel}%{!?rhel:0} < 6 +rm ${RPM_BUILD_ROOT}%{_libdir}/%{name}/libAfterImage.a +%endif +rm ${RPM_BUILD_ROOT}%{_bindir}/setxrd* +rm ${RPM_BUILD_ROOT}%{_bindir}/thisroot* +rm ${RPM_BUILD_ROOT}%{_mandir}/man1/cint.1 +rm ${RPM_BUILD_ROOT}%{_mandir}/man1/g2rootold.1 +rm ${RPM_BUILD_ROOT}%{_mandir}/man1/makecint.1 +rm ${RPM_BUILD_ROOT}%{_mandir}/man1/proofserva.1 +rm ${RPM_BUILD_ROOT}%{_mandir}/man1/roota.1 +rm ${RPM_BUILD_ROOT}%{_mandir}/man1/setup-pq2.1 +%if %{?fedora}%{!?fedora:0} >= 9 || %{?rhel}%{!?rhel:0} >= 6 +rm ${RPM_BUILD_ROOT}%{_includedir}/%{name}/*.cw +rm ${RPM_BUILD_ROOT}%{_includedir}/%{name}/*.pri +%endif +rm ${RPM_BUILD_ROOT}%{_includedir}/%{name}/proofdp.h +rm ${RPM_BUILD_ROOT}%{_includedir}/%{name}/rootdp.h +rm ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-%{version}/BUILDSYSTEM +rm ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-%{version}/ChangeLog-2-24 +rm ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-%{version}/INSTALL +rm ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-%{version}/README.ALIEN +rm ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-%{version}/README.MONALISA + +# Remove cintdll sources - keep the prec_stl directory +rm -rf ${RPM_BUILD_ROOT}%{_libdir}/%{name}/cint/cint/lib/{[^p],p[^r]}* # Only used on Windows -rm %{buildroot}%{_datadir}/%{name}/macros/fileopen.C +rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/macros/fileopen.C # Remove plugin definitions for non-built and obsolete plugins -pushd %{buildroot}%{_datadir}/%{name}/plugins -%if ! %{rrr} -rm ROOT@@Math@@Minimizer/P090_RMinimizer.C -%endif -%if ! %{davix} -rm ROOT@@Internal@@RRawFile/P010_RRawFileDavix.C -rm TFile/P130_TDavixFile.C -rm TSystem/P045_TDavixSystem.C -%endif +pushd ${RPM_BUILD_ROOT}%{_datadir}/%{name}/plugins +rm TAFS/P010_TAFS.C +rm TDataProgressDialog/P010_TDataProgressDialog.C +rm TFile/P030_TCastorFile.C +rm TFile/P060_TChirpFile.C +rm TFile/P070_TAlienFile.C +rm TFile/P110_THDFSFile.C rm TGLManager/P020_TGWin32GLManager.C -rm TGLManager/P030_TGOSXGLManager.C -rm TVirtualGeoConverter/P010_TGeoVGConverter.C +rm TGrid/P010_TAlien.C +rm TGrid/P020_TGLite.C +%if %{?fedora}%{!?fedora:0} < 9 && %{?rhel}%{!?rhel:0} < 6 +rm TGuiFactory/P020_TQtRootGuiFactory.C +%endif +rm TImagePlugin/P010_TASPluginGS.C +rm TSQLServer/P030_TSapDBServer.C +rm TSQLServer/P040_TOracleServer.C +rm TSystem/P030_TAlienSystem.C +rm TSystem/P060_THDFSSystem.C +rm TViewerX3D/P020_TQtViewerX3D.C rm TVirtualGLImp/P020_TGWin32GL.C +rm TVirtualMonitoringWriter/P010_TMonaLisaWriter.C rm TVirtualX/P030_TGWin32.C -rm TVirtualX/P050_TGQuartz.C -rmdir TVirtualGeoConverter +%if %{?fedora}%{!?fedora:0} < 9 && %{?rhel}%{!?rhel:0} < 6 +rm TVirtualX/P040_TGQt.C +%endif +rmdir TAFS +rmdir TDataProgressDialog +rmdir TGrid +rmdir TImagePlugin popd -# Replace bundled jsroot with symlinks to system version -for x in build img mathjax modules scripts files/draw.htm files/online.htm ; do - ln -nrs %{buildroot}%{_jsdir}/jsroot/$x \ - %{buildroot}%{_datadir}/%{name}/js/$x -done - # Create ldconfig configuration -mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d +mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/ld.so.conf.d echo %{_libdir}/%{name} > \ - %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf + ${RPM_BUILD_ROOT}%{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf -# Make ROOTConfig-targets.cmake not error on missing files to work better with -# subpackages -sed -e 's/FATAL_ERROR \(.*imported\)/WARNING \1/' \ - -e '/Possible reasons include/i\ -but this file does not exist.\ -If this target is used you need to install the package that provides this\ -file using \\"dnf install\\".\ -If this target is not used this warning can be ignored.'$'\x22'')' \ - -e '/Possible reasons include/,/)/d' \ - -i %{buildroot}%{_datadir}/%{name}/cmake/ROOTConfig-targets.cmake +# Generate documentation +echo Rint.Includes: 0 > .rootrc +echo Cint.Includes: 0 >> .rootrc +echo Root.StacktraceScript: ${PWD}/etc/gdb-backtrace.sh >> .rootrc +echo Gui.MimeTypeFile: ${PWD}/etc/root.mimes >> .rootrc +sed "s!@PWD@!${PWD}!g" %{SOURCE2} > html.C +LD_LIBRARY_PATH=${PWD}/lib:${PWD}/cint/cint/include:${PWD}/cint/cint/stl \ +ROOTSYS=${PWD} ./bin/root.exe -l -b -q html.C +rm .rootrc +mv htmldoc ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-%{version}/html # Create includelist files ... -for f in `find %{_vpath_builddir} -name cmake_install.cmake -a '!' -path '*/llvm-project/*'` ; do - l=`sed 's!%{_vpath_builddir}/\(.*\)/cmake_install.cmake!includelist-\1!' <<< $f` - l=`tr / - <<< $l` - tmpdir=`mktemp -d` - DESTDIR=$tmpdir cmake -DCMAKE_INSTALL_COMPONENT=headers -P $f > /dev/null - ( cd $tmpdir ; find . -type f) | sort | sed 's!^\.!!' > $l - rm -rf $tmpdir +for module in `find * -name Module.mk` ; do + module=`dirname $module` + make -f %{SOURCE1} includelist MODULE=$module ROOT_SRCDIR=$PWD \ + HASXRD=yes CRYPTOLIB=yes SSLLIB=yes done # ... and merge some of them -cat includelist-core-{[^mw],m[^au]}* > includelist-core +cat includelist-core-[^w]* > includelist-core +cat includelist-geom-geom* > includelist-geom +cat includelist-roofit-roo* > includelist-roofit +cat includelist-gui-qt* > includelist-gui-qt cat includelist-graf2d-x11ttf >> includelist-graf2d-x11 +cat includelist-gui-guihtml >> includelist-gui-gui +cat includelist-io-xmlparser >> includelist-io-xml +cat includelist-proof-proofplayer >> includelist-proof-proof -# Do python byte compilation (for non-standard paths) -%py_byte_compile %{__python3} %{buildroot}%{_datadir}/%{name}/cli -%py_byte_compile %{__python3} %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name} - -%check -pushd %{_vpath_builddir} -pushd test -ln -s ../../files files -popd -pushd runtutorials -ln -s ../../files files -ln -s ../../files/usa.root usa.root -popd -popd - -# Exclude some tests that can not be run -# -# - test-stressIOPlugins-http -# - test-stressIOPlugins-xroot -# requires network access (by design since they test the remote file IO) -# -# - tutorial-analysis-dataframe-df101_h1Analysis -# - tutorial-analysis-tree-run_h1analysis -# - tutorial-legacy-multicore-mp104_processH1 -# requires network access: http://root.cern.ch/files/h1/ -# -# - tutorial-io-tree-imt_parTreeProcessing -# requires input data: http://root.cern.ch/files/tp_process_imt.root (707 MB) -# -# - tutorial-analysis-dataframe-df###_SQlite* -# reads sqlite data over network: -# http://root.cern.ch/files/root_download_stats.sqlite -# -# - tutorial-analysis-dataframe-df033_Describe-py -# - tutorial-analysis-dataframe-df102_NanoAODDimuonAnalysis(-py)? -# - tutorial-hist-histv7-hist102_NanoAODDimuonAnalysis -# reads input data over network: -# root://eospublic.cern.ch//eos/opendata/cms/derived-data/ -# AOD2NanoAODOutreachTool/Run2012BC_DoubleMuParked_Muons.root -# -# - gtest-tree-treeplayer-treeprocessormt-remotefiles -# - tutorial-analysis-dataframe-df103_NanoAODHiggsAnalysis(-py)? -# - tutorial-hist-histv7-hist103_NanoAODHiggsAnalysis -# reads input data over network: -# root://eospublic.cern.ch//eos/root-eos/cms_opendata_2012_nanoaod/ -# -# - tutorial-analysis-dataframe-df104_HiggsToTwoPhotons-py -# - tutorial-analysis-dataframe-df105_WBosonAnalysis-py -# - tutorial-analysis-dataframe-df106_HiggsToFourLeptons(-py) -# - tutorial-analysis-dataframe-df107_SingleTopAnalysis-py -# - tutorial-visualisation-rcanvas-df104-py -# - tutorial-visualisation-rcanvas-df105-py -# reads input data over network: -# root://eospublic.cern.ch//eos/opendata/atlas/OutreachDatasets/2020-01-22/ -# -# - tutorial-analysis-dataframe-df014_CSVDataSource(-py) -# - tutorial-analysis-dataframe-df015_LazyDataSource -# reads input data over network: -# http://root.cern/files/tutorials/df014_CsvDataSource_MuRun2010B.csv -# -# - tutorial-hist-hist039_TH2Poly_usa-py -# reads input data over network: -# http://root.cern/files/usa.root -# -# - tutorial-io-ntuple-ntpl004_dimuon -# reads input data over network -# http://root.cern.ch/files/NanoAOD_DoubleMuon_CMS2011OpenData.root (1.5 GB) -# -# - tutorial-io-ntuple-ntpl008_import -# reads input data over network -# http://root.cern.ch/files/HiggsTauTauReduced/GluGluToHToTauTau.root (20 MB) -# -# - gtest-net-curl-rawfile-curl -# - gtest-net-curl-tfile-curl -# reads input file over network -# -# - gtest-net-davix-RRawFileDavix -# reads input file over network -# http://root.cern.ch/files/davix.test -# -# - gtest-net-netxng-RRawFileNetXNG -# reads input file over network -# root://eospublic.cern.ch/eos/root-eos/xrootd.test -# -# - gtest-net-netxng-TNetXNGFileTest -# - tutorial-analysis-parallel-mp_processSelector -# reads input file over network -# root://eospublic.cern.ch/eos/root-eos/h1/dstarmb.root -# -# - tutorial-machine_learning-tmva100_DataPreparation-py -# reads input data over network -# root://eospublic.cern.ch/eos/root-eos/cms_opendata_2012_nanoaod/SMHiggsToZZTo4L.root -# -# - test-webgui-ping -# error: Cannot display window in native -# -# - test-stressgraphics-firefox-skip3d -# requires firefox... -# -# - test-stressgraphics-svg -# Font metric differences -# -# - tutorial-visualisation-webcanv-fonts_ttf.cxx: -# Requires web graphics -excluded="\ -test-stressIOPlugins-http|\ -test-stressIOPlugins-xroot|\ -tutorial-analysis-dataframe-df101_h1Analysis|\ -tutorial-analysis-tree-run_h1analysis|\ -tutorial-legacy-multicore-mp104_processH1|\ -tutorial-io-tree-imt_parTreeProcessing|\ -tutorial-analysis-dataframe-df..._SQlite|\ -tutorial-analysis-dataframe-df033_Describe-py|\ -tutorial-analysis-dataframe-df102_NanoAODDimuonAnalysis|\ -tutorial-hist-histv7-hist102_NanoAODDimuonAnalysis|\ -gtest-tree-treeplayer-treeprocessormt-remotefiles|\ -tutorial-analysis-dataframe-df103_NanoAODHiggsAnalysis|\ -tutorial-hist-histv7-hist103_NanoAODHiggsAnalysis|\ -tutorial-analysis-dataframe-df104_HiggsToTwoPhotons-py|\ -tutorial-analysis-dataframe-df105_WBosonAnalysis-py|\ -tutorial-analysis-dataframe-df106_HiggsToFourLeptons|\ -tutorial-analysis-dataframe-df107_SingleTopAnalysis-py|\ -tutorial-visualisation-rcanvas-df104-py|\ -tutorial-visualisation-rcanvas-df105-py|\ -tutorial-analysis-dataframe-df014_CSVDataSource|\ -tutorial-analysis-dataframe-df015_LazyDataSource|\ -tutorial-hist-hist039_TH2Poly_usa-py|\ -tutorial-io-ntuple-ntpl004_dimuon|\ -tutorial-io-ntuple-ntpl008_import|\ -gtest-net-curl-rawfile-curl|\ -gtest-net-curl-tfile-curl|\ -gtest-net-davix-RRawFileDavix|\ -gtest-net-netxng-RRawFileNetXNG|\ -gtest-net-netxng-TNetXNGFileTest|\ -tutorial-analysis-parallel-mp_processSelector|\ -tutorial-machine_learning-tmva100_DataPreparation-py|\ -test-webgui-ping|\ -test-stressgraphics-firefox-skip3d|\ -test-stressgraphics-svg|\ -tutorial-visualisation-webcanv-fonts_ttf.cxx" - -%if %{?rhel}%{!?rhel:0} == 9 -# - pyunittests-bindings-pyroot-cppyy-cppyy-test-datatypes -# Fails on EPEL 9 (see patch above) -excluded="${excluded}|\ -pyunittests-bindings-pyroot-cppyy-cppyy-test-datatypes" +%if "%{?rhel}" == "5" +# Python byte code compilation +%{__python} -c 'import compileall; compileall.compile_dir("'"$RPM_BUILD_ROOT%{_libdir}/%{name}/python"'", 10, "%{_libdir}/%{name}/python", 1)' > /dev/null +%{__python} -O -c 'import compileall; compileall.compile_dir("'"$RPM_BUILD_ROOT%{_libdir}/%{name}/python"'", 10, "%{_libdir}/%{name}/python", 1)' > /dev/null +%{__python} -c 'import compileall; compileall.compile_dir("'"$RPM_BUILD_ROOT%{python_sitearch}"'", 10, "%{python_sitearch}", 1)' > /dev/null +%{__python} -O -c 'import compileall; compileall.compile_dir("'"$RPM_BUILD_ROOT%{python_sitearch}"'", 10, "%{python_sitearch}", 1)' > /dev/null +%{__python26} -c 'import compileall; compileall.compile_dir("'"$RPM_BUILD_ROOT%{python26_sitearch}"'", 10, "%{python26_sitearch}", 1)' > /dev/null +%{__python26} -O -c 'import compileall; compileall.compile_dir("'"$RPM_BUILD_ROOT%{python26_sitearch}"'", 10, "%{python26_sitearch}", 1)' > /dev/null %endif -%ifarch %{ix86} -# - gtest-hist-hist-TFormulaGradientTests -# out of memory -# -# - tmva-sofie-test-TestCustomModelsFromONNX -# many failures ... -# -# - pyunittests-bindings-pyroot-cppyy-cppyy-test-datatypes -# - pyunittests-bindings-pyroot-cppyy-cppyy-test-lowlevel -# - pyunittests-bindings-pyroot-cppyy-cppyy-test-regression -# cppyy tests failing -excluded="${excluded}|\ -gtest-hist-hist-TFormulaGradientTests|\ -tmva-sofie-test-TestCustomModelsFromONNX|\ -pyunittests-bindings-pyroot-cppyy-cppyy-test-datatypes|\ -pyunittests-bindings-pyroot-cppyy-cppyy-test-lowlevel|\ -pyunittests-bindings-pyroot-cppyy-cppyy-test-regression" -%endif +%clean +rm -rf $RPM_BUILD_ROOT -%ifarch %{power64} -# - gtest-tree-ntuple-ntuple-emulated -# - gtest-tree-ntuple-ntuple-evolution-shape -# waitpid() failed -excluded="${excluded}|\ -gtest-tree-ntuple-ntuple-emulated|\ -gtest-tree-ntuple-ntuple-evolution-shape" -%endif +%post +touch --no-create %{_datadir}/icons/hicolor >/dev/null 2>&1 || : +update-desktop-database >/dev/null 2>&1 || : +update-mime-database %{_datadir}/mime >/dev/null 2>&1 || : -%ifarch s390x -# - gtest-roofit-roofitcore-testNaNPacker -# Uses "Packed NaN" feature, not implemented for big endian. -excluded="${excluded}|\ -gtest-roofit-roofitcore-testNaNPacker" - -# - gtest-core-dictgen-dictgen-base -# - gtest-net-httpsniff-testRootSniffer -# - gtest-net-net-testParallelMergingFile -# - gtest-roofit-roofitcore-testLikelihoodGradientJob -# - gtest-tree-dataframe-dataframe-concurrency -# - gtest-tree-dataframe-dataframe-snapshot-interpreted-class-read -# - gtest-tree-dataframe-dataframe-snapshot-interpreted-class-write -# - gtest-tree-dataframe-dataframe-snapshot-ntuple -# - gtest-tree-dataframe-dataframe-unified-constructor -# - gtest-tree-dataframe-dataframe-vary -# - gtest-tree-dataframe-datasource-ntuple -# - gtest-tree-ntuple-ntuple-basics -# - gtest-tree-ntuple-ntuple-bulk -# - gtest-tree-ntuple-ntuple-cast -# - gtest-tree-ntuple-ntuple-compat -# - gtest-tree-ntuple-ntuple-evolution-type -# - gtest-tree-ntuple-ntuple-extended -# - gtest-tree-ntuple-ntuple-join-table -# - gtest-tree-ntuple-ntuple-largefile2 -# - gtest-tree-ntuple-ntuple-merger -# - gtest-tree-ntuple-ntuple-metrics -# - gtest-tree-ntuple-ntuple-model -# - gtest-tree-ntuple-ntuple-modelext -# - gtest-tree-ntuple-ntuple-multi-column -# - gtest-tree-ntuple-ntuple-packing -# - gtest-tree-ntuple-ntuple-parallel-writer -# - gtest-tree-ntuple-ntuple-processor -# - gtest-tree-ntuple-ntuple-processor-chain -# - gtest-tree-ntuple-ntuple-processor-join -# - gtest-tree-ntuple-ntuple-project -# - gtest-tree-ntuple-ntuple-show -# - gtest-tree-ntuple-ntuple-soa -# - gtest-tree-ntuple-ntuple-storage -# - gtest-tree-ntuple-ntuple-storage-daos -# - gtest-tree-ntuple-ntuple-types -# - gtest-tree-ntuple-ntuple-view -# - gtest-tree-ntuple-rfield-class -# - gtest-tree-ntuple-rfield-streamer -# - gtest-tree-ntuple-rfield-variant -# - gtest-tree-ntuple-rfield-vector -# - gtest-tree-ntupleutil-ntuple-importer -# - gtest-tree-ntupleutil-ntuple-inspector -# - gtest-tree-tree-testTTreeRegressions -# https://github.com/root-project/root/issues/12426 -# -# - pyunittests-bindings-distrdf-backend-distrdf-unit-backend-graph-caching -# - pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-rtensor -# - pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-stl-vector -# - pyunittests-hist-histv7-hist-py -# - pyunittests-io-io-rfile-py -# - tmva-sofie-test-TestCustomModelsFromONNX -# - tutorial-analysis-dataframe-df006_ranges-py -# - tutorial-math-exampleFunction-py -# - tutorial-math-fit-combinedFit-py -# - tutorial-math-fit-NumericalMinimization-py -# - tutorial-visualisation-rcanvas-rbox-py -# https://github.com/root-project/root/issues/12429 -# -# - test-stresshistofit -# - test-stresshistofit-interpreted -# - test-stresshistogram -# - test-stresshistogram-interpreted -# -# - pyunittests-bindings-pyroot-cppyy-cppyy-test-* -excluded="${excluded}|\ -gtest-core-dictgen-dictgen-base|\ -gtest-net-httpsniff-testRootSniffer|\ -gtest-net-net-testParallelMergingFile|\ -gtest-roofit-roofitcore-testLikelihoodGradientJob|\ -gtest-tree-dataframe-dataframe-concurrency|\ -gtest-tree-dataframe-dataframe-snapshot-interpreted-class-read|\ -gtest-tree-dataframe-dataframe-snapshot-interpreted-class-write|\ -gtest-tree-dataframe-dataframe-snapshot-ntuple|\ -gtest-tree-dataframe-dataframe-unified-constructor|\ -gtest-tree-dataframe-dataframe-vary|\ -gtest-tree-dataframe-datasource-ntuple|\ -gtest-tree-ntuple-ntuple-basics|\ -gtest-tree-ntuple-ntuple-bulk|\ -gtest-tree-ntuple-ntuple-cast|\ -gtest-tree-ntuple-ntuple-compat|\ -gtest-tree-ntuple-ntuple-evolution-type|\ -gtest-tree-ntuple-ntuple-extended|\ -gtest-tree-ntuple-ntuple-join-table|\ -gtest-tree-ntuple-ntuple-largefile2|\ -gtest-tree-ntuple-ntuple-merger|\ -gtest-tree-ntuple-ntuple-metrics|\ -gtest-tree-ntuple-ntuple-model\$\$|\ -gtest-tree-ntuple-ntuple-modelext|\ -gtest-tree-ntuple-ntuple-multi-column|\ -gtest-tree-ntuple-ntuple-packing|\ -gtest-tree-ntuple-ntuple-parallel-writer|\ -gtest-tree-ntuple-ntuple-processor\$\$|\ -gtest-tree-ntuple-ntuple-processor-chain|\ -gtest-tree-ntuple-ntuple-processor-join|\ -gtest-tree-ntuple-ntuple-project|\ -gtest-tree-ntuple-ntuple-show|\ -gtest-tree-ntuple-ntuple-soa|\ -gtest-tree-ntuple-ntuple-storage\$\$|\ -gtest-tree-ntuple-ntuple-storage-daos|\ -gtest-tree-ntuple-ntuple-types|\ -gtest-tree-ntuple-ntuple-view|\ -gtest-tree-ntuple-rfield-class|\ -gtest-tree-ntuple-rfield-streamer|\ -gtest-tree-ntuple-rfield-variant|\ -gtest-tree-ntuple-rfield-vector|\ -gtest-tree-ntupleutil-ntuple-importer|\ -gtest-tree-ntupleutil-ntuple-inspector|\ -gtest-tree-tree-testTTreeRegressions|\ -pyunittests-bindings-distrdf-backend-distrdf-unit-backend-graph-caching|\ -pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-rtensor|\ -pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-stl-vector|\ -pyunittests-hist-histv7-hist-py|\ -pyunittests-io-io-rfile-py|\ -tmva-sofie-test-TestCustomModelsFromONNX|\ -tutorial-analysis-dataframe-df006_ranges-py|\ -tutorial-math-exampleFunction-py|\ -tutorial-math-fit-combinedFit-py|\ -tutorial-math-fit-NumericalMinimization-py|\ -tutorial-visualisation-rcanvas-rbox-py|\ -test-stresshistofit\$\$|\ -test-stresshistofit-interpreted|\ -test-stresshistogram\$\$|\ -test-stresshistogram-interpreted|\ -pyunittests-bindings-pyroot-cppyy-cppyy-test" - -# The zlib-ng library is compiled with hardware acceleration support on s390x -# in Fedora 43 and later and RHEL 10.1 and later -# This means that some tests that compare the size of compressed data fail. -# - test-stress -%if %{?fedora}%{!?fedora:0} >= 43 || %{?rhel}%{!?rhel:0} >= 10 -excluded="${excluded}|\ -test-stress\$\$" -%endif -%endif - -# Fails with gcc 14 on aarch64, ppc64le and s390x (on EPEL 10 also x86_64) -# https://github.com/root-project/root/issues/14446 -# - gtest-math-matrix-testMatrixTSparse -%if %{?fedora}%{!?fedora:0} >= 40 -%ifarch aarch64 %{power64} s390x -excluded="${excluded}|\ -gtest-math-matrix-testMatrixTSparse" -%endif -%endif -%if %{?rhel}%{!?rhel:0} >= 10 -excluded="${excluded}|\ -gtest-math-matrix-testMatrixTSparse" -%endif - -# Filter out parts of tests that require remote network access -# gtest-io-io-rfile: RFile.RemoteRead -# gtest-io-io-RRawFile: RRawFile.Remote -# gtest-io-io-TFile: TFile.ReadWithoutGlobalRegistrationNet -# TFile.ReadWithoutGlobalRegistrationWeb -# TFile.ReadWithCacheWithoutGlobalRegistration -# gtest-tree-dataframe-datasource-csv: RCsvDS.Remote -# gtest-tree-dataframe-datasource-sqlite: RSqliteDS.Remote -# gtest-tree-ntuple-ntuple-storage: RNTuple.OpenHTTP -# gtest-tree-tree-testTChainParsing: TChainParsing.DoubleSlash -# TChainParsing.RemoteGlob -# -# Fails on ix86 (different alignment 64 bit (non)atomic) -# gtest-tree-ntuple-ntuple-types: RNTuple.StdAtomic -# -# Fails on ppc64le (no __float128 support) -# cppinterop-CppInterOpTests: CppInterOpTest/InProcessJIT.Interpreter_Evaluate -# -# Fails on s390x (big endian) -# https://github.com/root-project/root/issues/14512 -# cppinterop-CppInterOpTests: CppInterOpTest/InProcessJIT.Interpreter_Evaluate -# gtest-core-metacling-TClingTest: TClingDataMemberInfo.Offset -# gtest-io-io-rfile: RFile.RNTuple -# gtest-tree-treeplayer-treeplayer-branchobject: TTreeReaderBasic.LorentzVector32 -# gtest-tree-tree-testTTreeRegressions: TTreeRegressions.TTreeFormulaMemberIndex -# -# Fails on s390x (differnt compression size with zlib-ng) -# https://github.com/root-project/root/issues/18995 -# gtest-tree-tree-testTTreeRegressions: TTreeRegressions.PrintClustersRounding -export GTEST_FILTER=-\ -%ifarch %{ix86} -RNTuple.StdAtomic:\ -%endif -%ifarch %{power64} -CppInterOpTest/InProcessJIT.Interpreter_Evaluate:\ -%endif -%ifarch s390x -CppInterOpTest/InProcessJIT.Interpreter_Evaluate:\ -TClingDataMemberInfo.Offset:\ -RFile.RNTuple:\ -TTreeReaderBasic.LorentzVector32:\ -TTreeRegressions.TTreeFormulaMemberIndex:\ -TTreeRegressions.PrintClustersRounding:\ -%endif -RCsvDS.Remote:\ -RFile.RemoteRead:\ -RNTuple.OpenHTTP:\ -RRawFile.Remote:\ -RSqliteDS.Davix:\ -RSqliteDS.Remote:\ -TChainParsing.DoubleSlash:\ -TChainParsing.RemoteGlob:\ -TFile.ReadWithoutGlobalRegistrationNet:\ -TFile.ReadWithoutGlobalRegistrationWeb:\ -TFile.ReadWithCacheWithoutGlobalRegistration -%ctest -- -E "${excluded}" - -%pretrans net-http -p -path = "%{_datadir}/%{name}/js" -st = posix.stat(path) -if st and st.type == "link" then - os.remove(path) -end - -%post net-http -# Replace bundled jsroot with symlinks to system version -for x in build img mathjax modules scripts files/draw.htm files/online.htm ; do - ln -fnrs %{_jsdir}/jsroot/$x %{_datadir}/%{name}/js/$x -done - -%pre -n python3-%{name} -if [ -r /var/lib/alternatives/libPyROOT.so ] ; then - for alt in `grep python3.*/.*.so /var/lib/alternatives/libPyROOT.so` ; do - %{_sbindir}/update-alternatives --remove libPyROOT.so $alt - done -fi - -%post -n python3-root+jupyroot -mkdir -p /etc/jupyter -if [ -e /etc/jupyter/jupyter_notebook_config.py ] ; then - sed '/Extra static paths for JupyROOT - start/','/Extra static paths for JupyROOT - end/'d -i /etc/jupyter/jupyter_notebook_config.py -fi -cat << EOF >> /etc/jupyter/jupyter_notebook_config.py -# Extra static paths for JupyROOT - start - do not remove this line -c.NotebookApp.extra_static_paths.append('%{_jsdir}/jsroot') -# Extra static paths for JupyROOT - end - do not remove this line -EOF -if [ -e /etc/jupyter/jupyter_server_config.py ] ; then - sed '/Extra static paths for JupyROOT - start/','/Extra static paths for JupyROOT - end/'d -i /etc/jupyter/jupyter_server_config.py -fi -cat << EOF >> /etc/jupyter/jupyter_server_config.py -# Extra static paths for JupyROOT - start - do not remove this line -c.ServerApp.extra_static_paths.append('%{_jsdir}/jsroot') -# Extra static paths for JupyROOT - end - do not remove this line -EOF - -%postun -n python3-root+jupyroot +%postun if [ $1 -eq 0 ] ; then - if [ -e /etc/jupyter/jupyter_notebook_config.py ] ; then - sed '/Extra static paths for JupyROOT - start/','/Extra static paths for JupyROOT - end/'d -i /etc/jupyter/jupyter_notebook_config.py - if [ ! -s /etc/jupyter/jupyter_notebook_config.py ] ; then - rm /etc/jupyter/jupyter_notebook_config.py - rmdir /etc/jupyter 2>/dev/null || : - fi - fi - if [ -e /etc/jupyter/jupyter_server_config.py ] ; then - sed '/Extra static paths for JupyROOT - start/','/Extra static paths for JupyROOT - end/'d -i /etc/jupyter/jupyter_server_config.py - if [ ! -s /etc/jupyter/jupyter_server_config.py ] ; then - rm /etc/jupyter/jupyter_server_config.py - rmdir /etc/jupyter 2>/dev/null || : - fi - fi + touch --no-create %{_datadir}/icons/hicolor >/dev/null 2>&1 + gtk-update-icon-cache %{_datadir}/icons/hicolor >/dev/null 2>&1 || : fi +update-desktop-database >/dev/null 2>&1 || : +update-mime-database %{_datadir}/mime >/dev/null 2>&1 || : + +%posttrans +gtk-update-icon-cache %{_datadir}/icons/hicolor >/dev/null 2>&1 || : + +%post rootd +/sbin/chkconfig --add rootd + +%preun rootd +if [ $1 = 0 ] ; then + /sbin/service rootd stop >/dev/null 2>&1 + /sbin/chkconfig --del rootd +fi + +%postun rootd +if [ "$1" -ge "1" ] ; then + /sbin/service rootd condrestart >/dev/null 2>&1 || : +fi + +%post proofd +/sbin/chkconfig --add proofd + +%preun proofd +if [ $1 = 0 ] ; then + /sbin/service proofd stop >/dev/null 2>&1 + /sbin/chkconfig --del proofd +fi + +%postun proofd +if [ "$1" -ge "1" ] ; then + /sbin/service proofd condrestart >/dev/null 2>&1 || : +fi + +%if "%{?rhel}" == "5" +%post python +[ -h %{_libdir}/%{name}/libPyROOT.so.%{libversion} ] && \ + readlink %{_libdir}/%{name}/libPyROOT.so.%{libversion} | \ + grep -q site-packages && rm %{_libdir}/%{name}/libPyROOT.so.%{libversion} +%{_sbindir}/update-alternatives --install \ + %{_libdir}/%{name}/libPyROOT.so.%{libversion} \ + libPyROOT.so %{python_sitearch}/libPyROOT.so 20 +/sbin/ldconfig + +%postun python -p /sbin/ldconfig + +%preun python +if [ $1 = 0 ]; then + %{_sbindir}/update-alternatives --remove \ + libPyROOT.so %{python_sitearch}/libPyROOT.so +fi + +%post python26 +[ -h %{_libdir}/%{name}/libPyROOT.so.%{libversion} ] && \ + readlink %{_libdir}/%{name}/libPyROOT.so.%{libversion} | \ + grep -q site-packages && rm %{_libdir}/%{name}/libPyROOT.so.%{libversion} +%{_sbindir}/update-alternatives --install \ + %{_libdir}/%{name}/libPyROOT.so.%{libversion} \ + libPyROOT.so %{python26_sitearch}/libPyROOT.so 10 +/sbin/ldconfig + +%preun python26 +if [ $1 = 0 ]; then + %{_sbindir}/update-alternatives --remove \ + libPyROOT.so %{python26_sitearch}/libPyROOT.so +fi + +%postun python26 -p /sbin/ldconfig +%else +%post python -p /sbin/ldconfig +%postun python -p /sbin/ldconfig +%endif %post core -p /sbin/ldconfig %postun core -p /sbin/ldconfig +%post cint -p /sbin/ldconfig +%postun cint -p /sbin/ldconfig +%post reflex -p /sbin/ldconfig +%postun reflex -p /sbin/ldconfig +%ifarch %{ix86} x86_64 +%post cintex -p /sbin/ldconfig +%postun cintex -p /sbin/ldconfig +%endif +%post ruby -p /sbin/ldconfig +%postun ruby -p /sbin/ldconfig +%post genetic -p /sbin/ldconfig +%postun genetic -p /sbin/ldconfig +%post geom -p /sbin/ldconfig +%postun geom -p /sbin/ldconfig +%post gdml -p /sbin/ldconfig +%postun gdml -p /sbin/ldconfig +%post graf -p /sbin/ldconfig +%postun graf -p /sbin/ldconfig +%post graf-asimage -p /sbin/ldconfig +%postun graf-asimage -p /sbin/ldconfig +%post graf-fitsio -p /sbin/ldconfig +%postun graf-fitsio -p /sbin/ldconfig +%post graf-gpad -p /sbin/ldconfig +%postun graf-gpad -p /sbin/ldconfig +%post graf-gviz -p /sbin/ldconfig +%postun graf-gviz -p /sbin/ldconfig +%post graf-postscript -p /sbin/ldconfig +%postun graf-postscript -p /sbin/ldconfig +%if %{?fedora}%{!?fedora:0} >= 9 || %{?rhel}%{!?rhel:0} >= 6 +%post graf-qt -p /sbin/ldconfig +%postun graf-qt -p /sbin/ldconfig +%endif +%post graf-x11 -p /sbin/ldconfig +%postun graf-x11 -p /sbin/ldconfig +%post graf3d -p /sbin/ldconfig +%postun graf3d -p /sbin/ldconfig +%post graf3d-eve -p /sbin/ldconfig +%postun graf3d-eve -p /sbin/ldconfig +%post graf3d-gl -p /sbin/ldconfig +%postun graf3d-gl -p /sbin/ldconfig +%post graf3d-gviz3d -p /sbin/ldconfig +%postun graf3d-gviz3d -p /sbin/ldconfig +%post graf3d-x3d -p /sbin/ldconfig +%postun graf3d-x3d -p /sbin/ldconfig +%post gui -p /sbin/ldconfig +%postun gui -p /sbin/ldconfig +%post gui-fitpanel -p /sbin/ldconfig +%postun gui-fitpanel -p /sbin/ldconfig +%post gui-ged -p /sbin/ldconfig +%postun gui-ged -p /sbin/ldconfig +%post guibuilder -p /sbin/ldconfig +%postun guibuilder -p /sbin/ldconfig +%if %{?fedora}%{!?fedora:0} >= 9 || %{?rhel}%{!?rhel:0} >= 6 +%post gui-qt -p /sbin/ldconfig +%postun gui-qt -p /sbin/ldconfig +%endif +%post gui-recorder -p /sbin/ldconfig +%postun gui-recorder -p /sbin/ldconfig +%post hbook -p /sbin/ldconfig +%postun hbook -p /sbin/ldconfig +%post hist -p /sbin/ldconfig +%postun hist -p /sbin/ldconfig +%post hist-painter -p /sbin/ldconfig +%postun hist-painter -p /sbin/ldconfig +%post spectrum -p /sbin/ldconfig +%postun spectrum -p /sbin/ldconfig +%post spectrum-painter -p /sbin/ldconfig +%postun spectrum-painter -p /sbin/ldconfig +%post hist-factory -p /sbin/ldconfig +%postun hist-factory -p /sbin/ldconfig +%post html -p /sbin/ldconfig +%postun html -p /sbin/ldconfig +%post io -p /sbin/ldconfig +%postun io -p /sbin/ldconfig +%post io-dcache -p /sbin/ldconfig +%postun io-dcache -p /sbin/ldconfig +%post io-gfal -p /sbin/ldconfig +%postun io-gfal -p /sbin/ldconfig +%post io-rfio -p /sbin/ldconfig +%postun io-rfio -p /sbin/ldconfig +%post io-sql -p /sbin/ldconfig +%postun io-sql -p /sbin/ldconfig +%post io-xml -p /sbin/ldconfig +%postun io-xml -p /sbin/ldconfig +%post foam -p /sbin/ldconfig +%postun foam -p /sbin/ldconfig +%post fftw -p /sbin/ldconfig +%postun fftw -p /sbin/ldconfig +%post fumili -p /sbin/ldconfig +%postun fumili -p /sbin/ldconfig +%post genvector -p /sbin/ldconfig +%postun genvector -p /sbin/ldconfig +%post mathcore -p /sbin/ldconfig +%postun mathcore -p /sbin/ldconfig +%post mathmore -p /sbin/ldconfig +%postun mathmore -p /sbin/ldconfig +%post matrix -p /sbin/ldconfig +%postun matrix -p /sbin/ldconfig +%post minuit -p /sbin/ldconfig +%postun minuit -p /sbin/ldconfig +%post minuit2 -p /sbin/ldconfig +%postun minuit2 -p /sbin/ldconfig +%post mlp -p /sbin/ldconfig +%postun mlp -p /sbin/ldconfig +%post physics -p /sbin/ldconfig +%postun physics -p /sbin/ldconfig +%post quadp -p /sbin/ldconfig +%postun quadp -p /sbin/ldconfig +%post smatrix -p /sbin/ldconfig +%postun smatrix -p /sbin/ldconfig +%post splot -p /sbin/ldconfig +%postun splot -p /sbin/ldconfig +%post unuran -p /sbin/ldconfig +%postun unuran -p /sbin/ldconfig +%post memstat -p /sbin/ldconfig +%postun memstat -p /sbin/ldconfig +%post table -p /sbin/ldconfig +%postun table -p /sbin/ldconfig +%post montecarlo-eg -p /sbin/ldconfig +%postun montecarlo-eg -p /sbin/ldconfig +%post montecarlo-vmc -p /sbin/ldconfig +%postun montecarlo-vmc -p /sbin/ldconfig +%post net -p /sbin/ldconfig +%postun net -p /sbin/ldconfig +%post net-rpdutils -p /sbin/ldconfig +%postun net-rpdutils -p /sbin/ldconfig +%post net-bonjour -p /sbin/ldconfig +%postun net-bonjour -p /sbin/ldconfig +%post net-auth -p /sbin/ldconfig +%postun net-auth -p /sbin/ldconfig +%post net-globus -p /sbin/ldconfig +%postun net-globus -p /sbin/ldconfig +%post net-krb5 -p /sbin/ldconfig +%postun net-krb5 -p /sbin/ldconfig +%post net-ldap -p /sbin/ldconfig +%postun net-ldap -p /sbin/ldconfig +%post netx -p /sbin/ldconfig +%postun netx -p /sbin/ldconfig +%post proof -p /sbin/ldconfig +%postun proof -p /sbin/ldconfig +%post proof-sessionviewer -p /sbin/ldconfig +%postun proof-sessionviewer -p /sbin/ldconfig +%post clarens -p /sbin/ldconfig +%postun clarens -p /sbin/ldconfig +%post peac -p /sbin/ldconfig +%postun peac -p /sbin/ldconfig +%post xproof -p /sbin/ldconfig +%postun xproof -p /sbin/ldconfig +%post roofit -p /sbin/ldconfig +%postun roofit -p /sbin/ldconfig +%post sql-mysql -p /sbin/ldconfig +%postun sql-mysql -p /sbin/ldconfig +%post sql-odbc -p /sbin/ldconfig +%postun sql-odbc -p /sbin/ldconfig +%post sql-pgsql -p /sbin/ldconfig +%postun sql-pgsql -p /sbin/ldconfig +%post tmva -p /sbin/ldconfig +%postun tmva -p /sbin/ldconfig +%post tree -p /sbin/ldconfig +%postun tree -p /sbin/ldconfig +%post tree-player -p /sbin/ldconfig +%postun tree-player -p /sbin/ldconfig +%post tree-viewer -p /sbin/ldconfig +%postun tree-viewer -p /sbin/ldconfig %files +%defattr(-,root,root,-) %{_bindir}/hadd %{_bindir}/root %{_bindir}/root.exe -%{_bindir}/rootbrowse -%{_bindir}/rootcp -%{_bindir}/rootls -%{_bindir}/rootmkdir %{_bindir}/rootn.exe -%{_bindir}/rootreadspeed -%{_bindir}/rootrm %{_bindir}/roots %{_bindir}/roots.exe -%{_bindir}/rootssh +%{_bindir}/ssh2rpd %{_mandir}/man1/hadd.1* %{_mandir}/man1/root.1* %{_mandir}/man1/root.exe.1* %{_mandir}/man1/rootn.exe.1* %{_mandir}/man1/roots.exe.1* +%{_mandir}/man1/ssh2rpd.1* %{_datadir}/applications/root.desktop %{_datadir}/icons/hicolor/48x48/apps/root.png %{_datadir}/icons/hicolor/48x48/mimetypes/application-x-root.png %{_datadir}/mime/packages/root.xml %files icons +%defattr(-,root,root,-) %{_datadir}/%{name}/icons -%files font-files -%{_datadir}/%{name}/fonts - -%files tutorial -%doc %{_pkgdocdir}/tutorials - %files core -f includelist-core +%defattr(-,root,root,-) +%{_bindir}/memprobe +%{_bindir}/rlibmap %{_bindir}/rmkdepend %{_bindir}/root-config +%{_mandir}/man1/memprobe.1* %{_mandir}/man1/rmkdepend.1* +%{_mandir}/man1/rlibmap.1* %{_mandir}/man1/root-config.1* -%dir %{_libdir}/%{name} %{_libdir}/%{name}/libCore.* -%{_libdir}/%{name}/libImt.* %{_libdir}/%{name}/libNew.* %{_libdir}/%{name}/libRint.* %{_libdir}/%{name}/libThread.* -%{_libdir}/%{name}/lib*Dict.* -%dir %{_datadir}/gdb/auto-load%{_libdir}/%{name} -%{_datadir}/gdb/auto-load%{_libdir}/%{name}/libCore.* -%dir %{_datadir}/gdb/auto-load%{_libdir}/%{name}/__pycache__ -%{_datadir}/gdb/auto-load%{_libdir}/%{name}/__pycache__/libCore.* +%{_libdir}/%{name}/lib[^R]*Dict.* %dir %{_datadir}/%{name} -%{_datadir}/%{name}/allDict.cxx.pch %{_datadir}/%{name}/class.rules %{_datadir}/%{name}/gdb-backtrace.sh -%{_datadir}/%{name}/gitinfo.txt -%{_datadir}/%{name}/helgrind-root.supp -%{_datadir}/%{name}/lsan-root.supp %{_datadir}/%{name}/Makefile.arch %{_datadir}/%{name}/root.mimes %{_datadir}/%{name}/system.rootauthrc %{_datadir}/%{name}/system.rootdaemonrc %{_datadir}/%{name}/system.rootrc -%{_datadir}/%{name}/valgrind-root.supp -%{_datadir}/%{name}/valgrind-root-python.supp %{_mandir}/man1/system.rootdaemonrc.1* -%dir %{_datadir}/%{name}/cmake -%{_datadir}/%{name}/cmake/*.cmake -%dir %{_datadir}/%{name}/cmake/modules -%{_datadir}/%{name}/cmake/modules/*.cmake %dir %{_datadir}/%{name}/macros %{_datadir}/%{name}/macros/Dialogs.C %dir %{_datadir}/%{name}/plugins %dir %{_datadir}/%{name}/plugins/* -%dir %{_includedir}/%{name} -%if %{bundlejson} -%dir %{_includedir}/%{name}/nlohmann -%{_includedir}/%{name}/nlohmann/json.hpp -%endif %{_includedir}/%{name}/RConfigOptions.h %{_includedir}/%{name}/RConfigure.h -%{_includedir}/%{name}/ROOT.modulemap %{_includedir}/%{name}/compiledata.h +%{_includedir}/%{name}/rmain.cxx %dir %{_includedir}/%{name}/Math -%dir %{_includedir}/%{name}/ROOT -%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 -# They therefore should not be marked doc. -%{_pkgdocdir}/CREDITS -%{_pkgdocdir}/LICENSE -%doc %{_pkgdocdir}/DEVELOPMENT.md -%doc %{_pkgdocdir}/ReleaseNotes -%doc %{_pkgdocdir}/root_citation.bib -%license LICENSE LGPL2_1.txt +%{_datadir}/aclocal/root.m4 +%doc %{_defaultdocdir}/%{name}-%{version}/CREDITS +%doc %{_defaultdocdir}/%{name}-%{version}/LICENSE +%doc %{_defaultdocdir}/%{name}-%{version}/README -%files multiproc -f includelist-core-multiproc -%{_libdir}/%{name}/libMultiProc.* - -%files cling -%{_bindir}/genreflex +%files cint -f includelist-cint-cint +%defattr(-,root,root,-) %{_bindir}/rootcint -%{_bindir}/rootcling -%{_mandir}/man1/rootcling.1* -%{_libdir}/%{name}/libCling.* -%{_datadir}/%{name}/cling -%{_datadir}/%{name}/dictpch -%doc interpreter/cling/CREDITS.txt -%doc interpreter/cling/README.md -%license interpreter/cling/LICENSE.TXT +%{_mandir}/man1/rootcint.1* +%dir %{_libdir}/%{name} +%{_libdir}/%{name}/libCint.* +%{_libdir}/%{name}/cint +%dir %{_includedir}/%{name} +%config(noreplace) %{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf +%doc %dir %{_defaultdocdir}/%{name}-%{version} +%doc %{_defaultdocdir}/%{name}-%{version}/COPYING.CINT -%files testsupport -%{_includedir}/%{name}/ROOT/TestSupport.hxx -%{_libdir}/%{name}/libTestSupport -%doc core/testsupport/README.md - -%files tpython -f includelist-bindings-tpython -%{_libdir}/%{name}/libROOTTPython.* -%{_libdir}/%{name}/libROOTTPython_rdict.pcm - -%files -n python3-%{name} -f includelist-bindings-pyroot -%{python3_sitearch}/cppyy -%{python3_sitearch}/ROOT -%exclude %{python3_sitearch}/ROOT/_distrdf -%exclude %{python3_sitearch}/ROOT/_jupyroot -%{python3_sitearch}/ROOT-*.dist-info -%{_libdir}/%{name}/libCPyCppyy.* -%dir %{_includedir}/%{name}/CPyCppyy - -%files -n python3-root+jupyroot -%{python3_sitearch}/ROOT/_jupyroot -%ghost %{python3_sitearch}/ROOT-*.dist-info -%{_datadir}/jupyter/kernels/root -%{_bindir}/rootnb.exe -%doc bindings/pyroot/pythonizations/python/ROOT/_jupyroot/README.md -%doc bindings/pyroot/pythonizations/python/ROOT/_jupyroot/JupyROOT-on-EPEL - -%if %{distrdf} -%files -n python3-root+distrdf -%{python3_sitearch}/ROOT/_distrdf -%ghost %{python3_sitearch}/ROOT-*.dist-info +%ifarch %{ix86} x86_64 +%files cintex -f includelist-cint-cintex +%defattr(-,root,root,-) +%{_libdir}/%{name}/libCintex.* +%{python_sitearch}/PyCintex.py* +%dir %{_includedir}/%{name}/Cintex %endif -%if %{rrr} -%files r -f includelist-bindings-r -%{_libdir}/%{name}/libRInterface.* -%{_libdir}/%{name}/libRInterface_rdict.pcm -%doc bindings/r/doc/users-guide/*.md +%files reflex -f includelist-cint-reflex +%defattr(-,root,root,-) +%{_bindir}/genmap +%{_bindir}/genreflex +%{_bindir}/genreflex-rootcint +%{_mandir}/man1/genmap.1* +%{_mandir}/man1/genreflex.1* +%{_mandir}/man1/genreflex-rootcint.1* +%{_libdir}/%{name}/libReflex.* +%{_libdir}/%{name}/libReflexDict.* +%{_libdir}/%{name}/python +%dir %{_includedir}/%{name}/Reflex +%dir %{_includedir}/%{name}/Reflex/Builder +%dir %{_includedir}/%{name}/Reflex/internal -%files r-tools -f includelist-math-rtools -%{_libdir}/%{name}/libRtools.* -%{_libdir}/%{name}/libRtools_rdict.pcm -%{_datadir}/%{name}/plugins/ROOT@@Math@@Minimizer/P090_RMinimizer.C +%files doc +%defattr(-,root,root,-) +%doc %{_defaultdocdir}/%{name}-%{version}/html + +%files tutorial +%defattr(-,root,root,-) +%doc %{_defaultdocdir}/%{name}-%{version}/test +%doc %{_defaultdocdir}/%{name}-%{version}/tutorials + +%files proofd +%defattr(-,root,root,-) +%{_bindir}/proofd +%{_bindir}/proofexecv +%{_bindir}/proofserv +%{_bindir}/proofserv.exe +%{_bindir}/xproofd +%{_mandir}/man1/proofd.1* +%{_mandir}/man1/proofserv.1* +%{_mandir}/man1/xproofd.1* +%{_initrddir}/proofd + +%files rootd +%defattr(-,root,root,-) +%{_bindir}/rootd +%{_mandir}/man1/rootd.1* +%{_initrddir}/rootd + +%files python -f includelist-bindings-pyroot +%defattr(-,root,root,-) +%if "%{?rhel}" == "5" +%{_libdir}/%{name}/libPyROOT.rootmap +%{_libdir}/%{name}/libPyROOT.so +%{_libdir}/%{name}/libPyROOT.so.5 +%ghost %{_libdir}/%{name}/libPyROOT.so.%{libversion} +%else +%{_libdir}/%{name}/libPyROOT.* %endif +%{python_sitearch}/libPyROOT.* +%{python_sitearch}/ROOT.py* + +%if "%{?rhel}" == "5" +%files python26 -f includelist-bindings-pyroot +%defattr(-,root,root,-) +%{_libdir}/%{name}/libPyROOT.rootmap +%{_libdir}/%{name}/libPyROOT.so +%{_libdir}/%{name}/libPyROOT.so.5 +%ghost %{_libdir}/%{name}/libPyROOT.so.%{libversion} +%{python26_sitearch}/libPyROOT.* +%{python26_sitearch}/ROOT.py* +%endif + +%files ruby -f includelist-bindings-ruby +%defattr(-,root,root,-) +%{_libdir}/%{name}/libRuby.* +%{ruby_installdir}/libRuby.* %files genetic -f includelist-math-genetic +%defattr(-,root,root,-) %{_libdir}/%{name}/libGenetic.* -%{_libdir}/%{name}/libGenetic_rdict.pcm %{_datadir}/%{name}/plugins/ROOT@@Math@@Minimizer/P080_GeneticMinimizer.C -%files geom -f includelist-geom-geom +%files geom -f includelist-geom +%defattr(-,root,root,-) %{_libdir}/%{name}/libGeom.* -%{_libdir}/%{name}/libGeom_rdict.pcm +%{_libdir}/%{name}/libGeomBuilder.* +%{_libdir}/%{name}/libGeomPainter.* +%{_datadir}/%{name}/plugins/TGeoManagerEditor/P010_TGeoManagerEditor.C +%{_datadir}/%{name}/plugins/TVirtualGeoPainter/P010_TGeoPainter.C %{_datadir}/%{name}/RadioNuclides.txt -%files geom-builder -f includelist-geom-geombuilder -%{_libdir}/%{name}/libGeomBuilder.* -%{_libdir}/%{name}/libGeomBuilder_rdict.pcm -%{_datadir}/%{name}/plugins/TGeoManagerEditor/P010_TGeoManagerEditor.C - -%files geom-painter -f includelist-geom-geompainter -%{_libdir}/%{name}/libGeomPainter.* -%{_libdir}/%{name}/libGeomPainter_rdict.pcm -%{_datadir}/%{name}/plugins/TVirtualGeoPainter/P010_TGeoPainter.C - %files gdml -f includelist-geom-gdml +%defattr(-,root,root,-) %{_libdir}/%{name}/libGdml.* -%{_libdir}/%{name}/libGdml_rdict.pcm +%{python_sitearch}/ROOTwriter.py* +%{python_sitearch}/writer.py* %files graf -f includelist-graf2d-graf +%defattr(-,root,root,-) %{_libdir}/%{name}/libGraf.* -%{_libdir}/%{name}/libGraf_rdict.pcm %{_datadir}/%{name}/plugins/TMinuitGraph/P010_TGraph.C %files graf-asimage -f includelist-graf2d-asimage +%defattr(-,root,root,-) %{_libdir}/%{name}/libASImage.* -%{_libdir}/%{name}/libASImage_rdict.pcm %{_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 +%defattr(-,root,root,-) %{_libdir}/%{name}/libFITSIO.* -%{_libdir}/%{name}/libFITSIO_rdict.pcm %files graf-gpad -f includelist-graf2d-gpad +%defattr(-,root,root,-) %{_libdir}/%{name}/libGpad.* -%{_libdir}/%{name}/libGpad_rdict.pcm %{_datadir}/%{name}/plugins/TVirtualPad/P010_TPad.C %files graf-gviz -f includelist-graf2d-gviz +%defattr(-,root,root,-) %{_libdir}/%{name}/libGviz.* -%{_libdir}/%{name}/libGviz_rdict.pcm %files graf-postscript -f includelist-graf2d-postscript +%defattr(-,root,root,-) %{_libdir}/%{name}/libPostscript.* -%{_libdir}/%{name}/libPostscript_rdict.pcm %{_datadir}/%{name}/plugins/TVirtualPS/P010_TPostScript.C %{_datadir}/%{name}/plugins/TVirtualPS/P020_TSVG.C %{_datadir}/%{name}/plugins/TVirtualPS/P030_TPDF.C %{_datadir}/%{name}/plugins/TVirtualPS/P040_TImageDump.C -%{_datadir}/%{name}/plugins/TVirtualPS/P050_TTeXDump.C + +%if %{?fedora}%{!?fedora:0} >= 9 || %{?rhel}%{!?rhel:0} >= 6 +%files graf-qt -f includelist-graf2d-qt +%defattr(-,root,root,-) +%{_libdir}/%{name}/libGQt.* +%{_datadir}/%{name}/plugins/TVirtualX/P040_TGQt.C +%endif %files graf-x11 -f includelist-graf2d-x11 +%defattr(-,root,root,-) %{_libdir}/%{name}/libGX11.* -%{_libdir}/%{name}/libGX11_rdict.pcm %{_libdir}/%{name}/libGX11TTF.* -%{_libdir}/%{name}/libGX11TTF_rdict.pcm %{_datadir}/%{name}/plugins/TVirtualX/P010_TGX11.C %{_datadir}/%{name}/plugins/TVirtualX/P020_TGX11TTF.C %files graf3d -f includelist-graf3d-g3d +%defattr(-,root,root,-) %{_libdir}/%{name}/libGraf3d.* -%{_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 +%defattr(-,root,root,-) %{_libdir}/%{name}/libEve.* -%{_libdir}/%{name}/libEve_rdict.pcm %files graf3d-gl -f includelist-graf3d-gl +%defattr(-,root,root,-) %{_libdir}/%{name}/libRGL.* -%{_libdir}/%{name}/libRGL_rdict.pcm %{_datadir}/%{name}/plugins/TGLHistPainter/P010_TGLHistPainter.C %{_datadir}/%{name}/plugins/TGLManager/P010_TX11GLManager.C %{_datadir}/%{name}/plugins/TVirtualGLImp/P010_TX11GL.C @@ -2994,140 +1933,163 @@ fi %{_datadir}/%{name}/plugins/TVirtualViewer3D/P020_TGLSAViewer.C %{_datadir}/%{name}/plugins/TVirtualViewer3D/P030_TGLViewer.C -%files graf3d-glad -%{_libdir}/%{name}/libROOTGlad.* - %files graf3d-gviz3d -f includelist-graf3d-gviz3d +%defattr(-,root,root,-) %{_libdir}/%{name}/libGviz3d.* -%{_libdir}/%{name}/libGviz3d_rdict.pcm %files graf3d-x3d -f includelist-graf3d-x3d +%defattr(-,root,root,-) %{_libdir}/%{name}/libX3d.* -%{_libdir}/%{name}/libX3d_rdict.pcm %{_datadir}/%{name}/plugins/TViewerX3D/P010_TViewerX3D.C -%{_datadir}/%{name}/plugins/TVirtualViewer3D/P010_TVirtualViewerX3D.C +%{_datadir}/%{name}/plugins/TVirtualViewer3D/P010_TViewerX3D.C %files gui -f includelist-gui-gui +%defattr(-,root,root,-) %{_libdir}/%{name}/libGui.* -%{_libdir}/%{name}/libGui_rdict.pcm +%{_libdir}/%{name}/libGuiHtml.* %{_datadir}/%{name}/plugins/TBrowserImp/P010_TRootBrowser.C %{_datadir}/%{name}/plugins/TBrowserImp/P020_TRootBrowserLite.C %{_datadir}/%{name}/plugins/TGPasswdDialog/P010_TGPasswdDialog.C %{_datadir}/%{name}/plugins/TGuiFactory/P010_TRootGuiFactory.C -%files gui-html -f includelist-gui-guihtml -%{_libdir}/%{name}/libGuiHtml.* -%{_libdir}/%{name}/libGuiHtml_rdict.pcm - %files gui-fitpanel -f includelist-gui-fitpanel +%defattr(-,root,root,-) %{_libdir}/%{name}/libFitPanel.* -%{_libdir}/%{name}/libFitPanel_rdict.pcm %{_datadir}/%{name}/plugins/TFitEditor/P010_TFitEditor.C %files gui-ged -f includelist-gui-ged +%defattr(-,root,root,-) %{_libdir}/%{name}/libGed.* -%{_libdir}/%{name}/libGed_rdict.pcm %{_datadir}/%{name}/plugins/TVirtualPadEditor/P010_TGedEditor.C -%files gui-builder -f includelist-gui-guibuilder +%files guibuilder -f includelist-gui-guibuilder +%defattr(-,root,root,-) %{_libdir}/%{name}/libGuiBld.* -%{_libdir}/%{name}/libGuiBld_rdict.pcm %{_datadir}/%{name}/plugins/TGuiBuilder/P010_TRootGuiBuilder.C %{_datadir}/%{name}/plugins/TVirtualDragManager/P010_TGuiBldDragManager.C -%files gui-recorder -f includelist-gui-recorder -%{_libdir}/%{name}/libRecorder.* -%{_libdir}/%{name}/libRecorder_rdict.pcm +%if %{?fedora}%{!?fedora:0} >= 9 || %{?rhel}%{!?rhel:0} >= 6 +%files gui-qt -f includelist-gui-qt +%defattr(-,root,root,-) +%{_libdir}/%{name}/libQtRoot.* +%{_libdir}/%{name}/libQtGSI.* +%{_datadir}/%{name}/plugins/TGuiFactory/P020_TQtRootGuiFactory.C +%endif -%files gui-treemap -f includelist-gui-treemap -%{_libdir}/%{name}/libROOTTreeMap.* -%{_libdir}/%{name}/libROOTTreeMap_rdict.pcm +%files gui-recorder -f includelist-gui-recorder +%defattr(-,root,root,-) +%{_libdir}/%{name}/libRecorder.* %files hbook -f includelist-hist-hbook +%defattr(-,root,root,-) %{_bindir}/g2root %{_bindir}/h2root %{_mandir}/man1/g2root.1* %{_mandir}/man1/h2root.1* +%{_libdir}/%{name}/libminicern.* %{_libdir}/%{name}/libHbook.* -%{_libdir}/%{name}/libHbook_rdict.pcm %files hist -f includelist-hist-hist +%defattr(-,root,root,-) %{_libdir}/%{name}/libHist.* -%{_libdir}/%{name}/libHist_rdict.pcm -%dir %{_includedir}/%{name}/v5 %files hist-painter -f includelist-hist-histpainter +%defattr(-,root,root,-) %{_libdir}/%{name}/libHistPainter.* -%{_libdir}/%{name}/libHistPainter_rdict.pcm %{_datadir}/%{name}/plugins/TVirtualHistPainter/P010_THistPainter.C %{_datadir}/%{name}/plugins/TVirtualGraphPainter/P010_TGraphPainter.C %files spectrum -f includelist-hist-spectrum +%defattr(-,root,root,-) %{_libdir}/%{name}/libSpectrum.* -%{_libdir}/%{name}/libSpectrum_rdict.pcm %files spectrum-painter -f includelist-hist-spectrumpainter +%defattr(-,root,root,-) %{_libdir}/%{name}/libSpectrumPainter.* -%{_libdir}/%{name}/libSpectrumPainter_rdict.pcm + +%files hist-factory -f includelist-roofit-histfactory +%defattr(-,root,root,-) +%{_bindir}/hist2workspace +%{_bindir}/prepareHistFactory +%{_mandir}/man1/hist2workspace.1* +%{_mandir}/man1/prepareHistFactory.1* +%{_libdir}/%{name}/libHistFactory.* +%{_datadir}/%{name}/HistFactorySchema.dtd +%dir %{_includedir}/%{name}/RooStats/HistFactory +%doc roofit/histfactory/doc/README + +%files html -f includelist-html +%defattr(-,root,root,-) +%{_libdir}/%{name}/libHtml.* +%{_datadir}/%{name}/html +%{_datadir}/%{name}/macros/html.C %files io -f includelist-io-io +%defattr(-,root,root,-) %{_libdir}/%{name}/libRIO.* %{_datadir}/%{name}/plugins/TArchiveFile/P010_TZIPFile.C %{_datadir}/%{name}/plugins/TVirtualStreamerInfo/P010_TStreamerInfo.C %files io-dcache -f includelist-io-dcache +%defattr(-,root,root,-) %{_libdir}/%{name}/libDCache.* -%{_libdir}/%{name}/libDCache_rdict.pcm %{_datadir}/%{name}/plugins/TFile/P040_TDCacheFile.C %{_datadir}/%{name}/plugins/TSystem/P020_TDCacheSystem.C +%files io-gfal -f includelist-io-gfal +%defattr(-,root,root,-) +%{_libdir}/%{name}/libGFAL.* +%{_datadir}/%{name}/plugins/TFile/P050_TGFALFile.C + +%files io-rfio -f includelist-io-rfio +%defattr(-,root,root,-) +%{_libdir}/%{name}/libRFIO.* +%{_datadir}/%{name}/plugins/TFile/P020_TRFIOFile.C +%{_datadir}/%{name}/plugins/TSystem/P010_TRFIOSystem.C + %files io-sql -f includelist-io-sql +%defattr(-,root,root,-) %{_libdir}/%{name}/libSQLIO.* -%{_libdir}/%{name}/libSQLIO_rdict.pcm +%{_datadir}/%{name}/plugins/TFile/P090_TSQLFile.C %files io-xml -f includelist-io-xml +%defattr(-,root,root,-) %{_libdir}/%{name}/libXMLIO.* -%{_libdir}/%{name}/libXMLIO_rdict.pcm +%{_libdir}/%{name}/libXMLParser.* %{_datadir}/%{name}/plugins/TFile/P080_TXMLFile.C -%files io-xmlparser -f includelist-io-xmlparser -%{_libdir}/%{name}/libXMLParser.* -%{_libdir}/%{name}/libXMLParser_rdict.pcm - %files foam -f includelist-math-foam +%defattr(-,root,root,-) %{_libdir}/%{name}/libFoam.* -%{_libdir}/%{name}/libFoam_rdict.pcm %{_datadir}/%{name}/plugins/ROOT@@Math@@DistSampler/P020_TFoamSampler.C %files fftw -f includelist-math-fftw +%defattr(-,root,root,-) %{_libdir}/%{name}/libFFTW.* -%{_libdir}/%{name}/libFFTW_rdict.pcm %{_datadir}/%{name}/plugins/TVirtualFFT/P010_TFFTComplex.C %{_datadir}/%{name}/plugins/TVirtualFFT/P020_TFFTComplexReal.C %{_datadir}/%{name}/plugins/TVirtualFFT/P030_TFFTRealComplex.C %{_datadir}/%{name}/plugins/TVirtualFFT/P040_TFFTReal.C %files fumili -f includelist-math-fumili +%defattr(-,root,root,-) %{_libdir}/%{name}/libFumili.* -%{_libdir}/%{name}/libFumili_rdict.pcm %{_datadir}/%{name}/plugins/ROOT@@Math@@Minimizer/P070_TFumiliMinimizer.C %{_datadir}/%{name}/plugins/TVirtualFitter/P020_TFumili.C %files genvector -f includelist-math-genvector +%defattr(-,root,root,-) %{_libdir}/%{name}/libGenVector.* -%{_libdir}/%{name}/libGenVector_rdict.pcm -%{_libdir}/%{name}/libGenVector32.rootmap -%{_libdir}/%{name}/libGenVector_G__GenVector32_rdict.pcm %dir %{_includedir}/%{name}/Math/GenVector %files mathcore -f includelist-math-mathcore +%defattr(-,root,root,-) %{_libdir}/%{name}/libMathCore.* -%{_libdir}/%{name}/libMathCore_rdict.pcm %dir %{_includedir}/%{name}/Fit %files mathmore -f includelist-math-mathmore +%defattr(-,root,root,-) %{_libdir}/%{name}/libMathMore.* -%{_libdir}/%{name}/libMathMore_rdict.pcm %{_datadir}/%{name}/plugins/ROOT@@Math@@IRootFinderMethod/P010_Brent.C %{_datadir}/%{name}/plugins/ROOT@@Math@@IRootFinderMethod/P020_Bisection.C %{_datadir}/%{name}/plugins/ROOT@@Math@@IRootFinderMethod/P030_FalsePos.C @@ -3141,1697 +2103,235 @@ fi %{_datadir}/%{name}/plugins/ROOT@@Math@@VirtualIntegrator/P020_GSLMCIntegrator.C %files matrix -f includelist-math-matrix +%defattr(-,root,root,-) %{_libdir}/%{name}/libMatrix.* -%{_libdir}/%{name}/libMatrix_rdict.pcm %files minuit -f includelist-math-minuit +%defattr(-,root,root,-) %{_libdir}/%{name}/libMinuit.* -%{_libdir}/%{name}/libMinuit_rdict.pcm %{_datadir}/%{name}/plugins/ROOT@@Math@@Minimizer/P020_TMinuitMinimizer.C %{_datadir}/%{name}/plugins/ROOT@@Math@@Minimizer/P060_TLinearMinimizer.C %{_datadir}/%{name}/plugins/TVirtualFitter/P010_TFitter.C %files minuit2 -f includelist-math-minuit2 +%defattr(-,root,root,-) %{_libdir}/%{name}/libMinuit2.* -%{_libdir}/%{name}/libMinuit2_rdict.pcm %dir %{_includedir}/%{name}/Minuit2 %{_datadir}/%{name}/plugins/ROOT@@Math@@Minimizer/P010_Minuit2Minimizer.C +%{_datadir}/%{name}/plugins/TVirtualFitter/P030_TFitterMinuit.C +%{_datadir}/%{name}/plugins/TVirtualFitter/P040_TFitterFumili.C %files mlp -f includelist-math-mlp +%defattr(-,root,root,-) %{_libdir}/%{name}/libMLP.* -%{_libdir}/%{name}/libMLP_rdict.pcm %files physics -f includelist-math-physics +%defattr(-,root,root,-) %{_libdir}/%{name}/libPhysics.* -%{_libdir}/%{name}/libPhysics_rdict.pcm %files quadp -f includelist-math-quadp +%defattr(-,root,root,-) %{_libdir}/%{name}/libQuadp.* -%{_libdir}/%{name}/libQuadp_rdict.pcm %files smatrix -f includelist-math-smatrix +%defattr(-,root,root,-) %{_libdir}/%{name}/libSmatrix.* -%{_libdir}/%{name}/libSmatrix_rdict.pcm -%{_libdir}/%{name}/libSmatrix32.rootmap -%{_libdir}/%{name}/libSmatrix_G__Smatrix32_rdict.pcm %files splot -f includelist-math-splot +%defattr(-,root,root,-) %{_libdir}/%{name}/libSPlot.* -%{_libdir}/%{name}/libSPlot_rdict.pcm %files unuran -f includelist-math-unuran +%defattr(-,root,root,-) %{_libdir}/%{name}/libUnuran.* -%{_libdir}/%{name}/libUnuran_rdict.pcm %{_datadir}/%{name}/plugins/ROOT@@Math@@DistSampler/P010_TUnuranSampler.C -%files vecops -f includelist-math-vecops -%{_libdir}/%{name}/libROOTVecOps.* -%{_libdir}/%{name}/libROOTVecOps_rdict.pcm +%files memstat -f includelist-misc-memstat +%defattr(-,root,root,-) +%{_libdir}/%{name}/libMemStat.* + +%files table -f includelist-misc-table +%defattr(-,root,root,-) +%{_libdir}/%{name}/libTable.* %files montecarlo-eg -f includelist-montecarlo-eg +%defattr(-,root,root,-) %{_libdir}/%{name}/libEG.* -%{_libdir}/%{name}/libEG_rdict.pcm %{_datadir}/%{name}/pdg_table.txt -%{_datadir}/%{name}/pdg_table_update.py -%doc %{_pkgdocdir}/cfortran.doc +%doc %{_defaultdocdir}/%{name}-%{version}/cfortran.doc -%files montecarlo-pythia8 -f includelist-montecarlo-pythia8 -%{_libdir}/%{name}/libEGPythia8.* -%{_libdir}/%{name}/libEGPythia8_rdict.pcm +%files montecarlo-vmc -f includelist-montecarlo-vmc +%defattr(-,root,root,-) +%{_libdir}/%{name}/libVMC.* +%{_datadir}/%{name}/vmc %files net -f includelist-net-net +%defattr(-,root,root,-) %{_libdir}/%{name}/libNet.* -%{_libdir}/%{name}/libNet_rdict.pcm %{_datadir}/%{name}/plugins/TApplication/P010_TApplicationRemote.C %{_datadir}/%{name}/plugins/TApplication/P020_TApplicationServer.C %{_datadir}/%{name}/plugins/TFile/P010_TWebFile.C %{_datadir}/%{name}/plugins/TFile/P120_TNetFile.C -%{_datadir}/%{name}/plugins/TFile/P150_TS3WebFile.C +%{_datadir}/%{name}/plugins/TFile/P130_TAS3File.C +%{_datadir}/%{name}/plugins/TFile/P140_TGSFile.C %{_datadir}/%{name}/plugins/TFileStager/P020_TNetFileStager.C %{_datadir}/%{name}/plugins/TSystem/P050_TWebSystem.C %{_datadir}/%{name}/plugins/TSystem/P070_TNetSystem.C %{_datadir}/%{name}/plugins/TVirtualMonitoringWriter/P020_TSQLMonitoringWriter.C -%files net-rpdutils +%files net-rpdutils -f includelist-net-rpdutils +%defattr(-,root,root,-) %{_libdir}/%{name}/libSrvAuth.* +%files net-bonjour -f includelist-net-bonjour +%defattr(-,root,root,-) +%{_libdir}/%{name}/libBonjour.* + %files net-auth -f includelist-net-auth +%defattr(-,root,root,-) %{_libdir}/%{name}/libRootAuth.* -%{_libdir}/%{name}/libRootAuth_rdict.pcm %{_datadir}/%{name}/plugins/TVirtualAuth/P010_TRootAuth.C -%doc %{_pkgdocdir}/README.AUTH +%doc %{_defaultdocdir}/%{name}-%{version}/README.AUTH -%files net-curl -f includelist-net-curl -%{_libdir}/%{name}/libRCurlHttp.* -%{_libdir}/%{name}/libRCurlHttp_rdict.pcm -%{_datadir}/%{name}/plugins/ROOT@@Internal@@RRawFile/P015_RRawFileCurl.C -%{_datadir}/%{name}/plugins/TFile/P140_TCurlFile.C +%files net-globus +%defattr(-,root,root,-) +%{_libdir}/%{name}/libGlobusAuth.* +%doc %{_defaultdocdir}/%{name}-%{version}/README.GLOBUS -%if %{davix} -%files net-davix -f includelist-net-davix -%{_libdir}/%{name}/libRDAVIX.* -%{_libdir}/%{name}/libRDAVIX_rdict.pcm -%{_datadir}/%{name}/plugins/TFile/P130_TDavixFile.C -%{_datadir}/%{name}/plugins/TSystem/P045_TDavixSystem.C -%{_datadir}/%{name}/plugins/ROOT@@Internal@@RRawFile/P010_RRawFileDavix.C -%endif +%files net-krb5 -f includelist-net-krb5auth +%defattr(-,root,root,-) +%{_libdir}/%{name}/libKrb5Auth.* -%files net-http -f includelist-net-http -%{_libdir}/%{name}/libRHTTP.* -%{_libdir}/%{name}/libRHTTP_rdict.pcm -%dir %{_datadir}/%{name}/js -%dir %{_datadir}/%{name}/js/files -%{_datadir}/%{name}/js/files/canv_batch.htm -%{_datadir}/%{name}/js/files/geom_batch.htm -%{_datadir}/%{name}/js/files/web.config -%{_datadir}/%{name}/js/files/wslist.htm -%ghost %{_datadir}/%{name}/js/build -%ghost %{_datadir}/%{name}/js/img -%ghost %{_datadir}/%{name}/js/mathjax -%ghost %{_datadir}/%{name}/js/modules -%ghost %{_datadir}/%{name}/js/scripts -%ghost %{_datadir}/%{name}/js/files/draw.htm -%ghost %{_datadir}/%{name}/js/files/online.htm -%doc net/http/README.txt +%files net-ldap -f includelist-net-ldap +%defattr(-,root,root,-) +%{_libdir}/%{name}/libRLDAP.* -%files net-httpsniff -f includelist-net-httpsniff -%{_libdir}/%{name}/libRHTTPSniff.* -%{_libdir}/%{name}/libRHTTPSniff_rdict.pcm - -%files netx -f includelist-net-netxng -%{_libdir}/%{name}/libNetxNG.* -%{_libdir}/%{name}/libNetxNG_rdict.pcm +%files netx -f includelist-net-netx +%defattr(-,root,root,-) +%{_libdir}/%{name}/libNetx.* %{_datadir}/%{name}/plugins/TFile/P100_TXNetFile.C %{_datadir}/%{name}/plugins/TFileStager/P010_TXNetFileStager.C %{_datadir}/%{name}/plugins/TSystem/P040_TXNetSystem.C -%{_datadir}/%{name}/plugins/ROOT@@Internal@@RRawFile/P020_RRawFileNetXNG.C -%if %{roofit} -%files roofit -f includelist-roofit-roofit +%files proof -f includelist-proof-proof +%defattr(-,root,root,-) +%{_libdir}/%{name}/libProof.* +%{_libdir}/%{name}/libProofDraw.* +%{_libdir}/%{name}/libProofPlayer.* +%{_datadir}/%{name}/plugins/TChain/P010_TProofChain.C +%{_datadir}/%{name}/plugins/TDataSetManager/P010_TDataSetManagerFile.C +%{_datadir}/%{name}/plugins/TProof/P010_TProofCondor.C +%{_datadir}/%{name}/plugins/TProof/P020_TProofSuperMaster.C +%{_datadir}/%{name}/plugins/TProof/P040_TProof.C +%{_datadir}/%{name}/plugins/TProofMonSender/P010_TProofMonSenderML.C +%{_datadir}/%{name}/plugins/TProofMonSender/P020_TProofMonSenderSQL.C +%{_datadir}/%{name}/plugins/TVirtualProofPlayer/P010_TProofPlayer.C +%{_datadir}/%{name}/plugins/TVirtualProofPlayer/P020_TProofPlayerRemote.C +%{_datadir}/%{name}/plugins/TVirtualProofPlayer/P030_TProofPlayerLocal.C +%{_datadir}/%{name}/plugins/TVirtualProofPlayer/P040_TProofPlayerSlave.C +%{_datadir}/%{name}/plugins/TVirtualProofPlayer/P050_TProofPlayerSuperMaster.C +%{_datadir}/%{name}/plugins/TVirtualProofPlayer/P060_TProofPlayerLite.C +%{_datadir}/%{name}/valgrind-root.supp +%doc %{_defaultdocdir}/%{name}-%{version}/README.PROOF + +%files proof-bench -f includelist-proof-proofbench +%defattr(-,root,root,-) +%{_libdir}/%{name}/libProofBench.* +%{_datadir}/%{name}/proof + +%files proof-pq2 -f includelist-proof-pq2 +%defattr(-,root,root,-) +%{_bindir}/pq2* +%{_mandir}/man1/pq2*.1* + +%files proof-sessionviewer -f includelist-gui-sessionviewer +%defattr(-,root,root,-) +%{_libdir}/%{name}/libSessionViewer.* +%{_datadir}/%{name}/plugins/TProofProgressDialog/P010_TProofProgressDialog.C +%{_datadir}/%{name}/plugins/TProofProgressLog/P010_TProofProgressLog.C +%{_datadir}/%{name}/plugins/TSessionViewer/P010_TSessionViewer.C + +%files clarens -f includelist-proof-clarens +%defattr(-,root,root,-) +%{_libdir}/%{name}/libClarens.* + +%files peac -f includelist-proof-peac +%defattr(-,root,root,-) +%{_libdir}/%{name}/libPeac.* +%{_libdir}/%{name}/libPeacGui.* +%{_datadir}/%{name}/plugins/TProof/P030_TProofPEAC.C + +%files xproof -f includelist-proof-proofx +%defattr(-,root,root,-) +%{_libdir}/%{name}/libProofx.* +%{_libdir}/%{name}/libXrdProofd.* +%{_datadir}/%{name}/plugins/TProofMgr/P010_TXProofMgr.C +%{_datadir}/%{name}/plugins/TProofServ/P010_TXProofServ.C +%{_datadir}/%{name}/plugins/TSlave/P010_TXSlave.C + +%files roofit -f includelist-roofit +%defattr(-,root,root,-) %{_libdir}/%{name}/libRooFit.* -%{_libdir}/%{name}/libRooFit_rdict.pcm - -%files roofit-core -f includelist-roofit-roofitcore %{_libdir}/%{name}/libRooFitCore.* -%{_libdir}/%{name}/libRooFitCore_rdict.pcm -%dir %{_includedir}/%{name}/RooFit -%dir %{_includedir}/%{name}/RooFit/Detail -%dir %{_includedir}/%{name}/RooFit/TestStatistics -%dir %{_includedir}/%{name}/RooFitLegacy -%{_datadir}/gdb/auto-load%{_libdir}/%{name}/libRooFitCore.* -%{_datadir}/gdb/auto-load%{_libdir}/%{name}/__pycache__/libRooFitCore.* - -%files roofit-more -f includelist-roofit-roofitmore -%{_libdir}/%{name}/libRooFitMore.* -%{_libdir}/%{name}/libRooFitMore_rdict.pcm - -%files roofit-batchcompute -%{_libdir}/%{name}/libRooBatchCompute.* -%{_libdir}/%{name}/libRooBatchCompute_* - -%files roofit-hs3 -f includelist-roofit-hs3 -%{_libdir}/%{name}/libRooFitHS3.* -%{_libdir}/%{name}/libRooFitHS3_rdict.pcm -%dir %{_includedir}/%{name}/RooFitHS3 - -%files roofit-codegen -f includelist-roofit-codegen -%{_libdir}/%{name}/libRooFitCodegen.* -%{_libdir}/%{name}/libRooFitCodegen_rdict.pcm - -%if %{roofitmp} -%files roofit-multiprocess -f includelist-roofit-multiprocess -%{_libdir}/%{name}/libRooFitMultiProcess.* -%dir %{_includedir}/%{name}/RooFit -%dir %{_includedir}/%{name}/RooFit/MultiProcess - -%files roofit-zmq -%{_libdir}/%{name}/libRooFitZMQ.* -%endif - -%files roostats -f includelist-roofit-roostats %{_libdir}/%{name}/libRooStats.* -%{_libdir}/%{name}/libRooStats_rdict.pcm %dir %{_includedir}/%{name}/RooStats -%files hist-factory -f includelist-roofit-histfactory -%{_bindir}/hist2workspace -%{_bindir}/prepareHistFactory -%{_mandir}/man1/hist2workspace.1* -%{_mandir}/man1/prepareHistFactory.1* -%{_libdir}/%{name}/libHistFactory.* -%{_libdir}/%{name}/libHistFactory_rdict.pcm -%{_datadir}/%{name}/HistFactorySchema.dtd -%dir %{_includedir}/%{name}/RooStats/HistFactory -%dir %{_includedir}/%{name}/RooStats/HistFactory/Detail -%doc roofit/histfactory/doc/README +%files sql-mysql -f includelist-sql-mysql +%defattr(-,root,root,-) +%{_libdir}/%{name}/libRMySQL.* +%{_datadir}/%{name}/plugins/TSQLServer/P010_TMySQLServer.C -%files xroofit -f includelist-roofit-xroofit -%{_libdir}/%{name}/libRooFitXRooFit.* -%{_libdir}/%{name}/libRooFitXRooFit_rdict.pcm -%dir %{_includedir}/%{name}/RooFit/xRooFit -%endif +%files sql-odbc -f includelist-sql-odbc +%defattr(-,root,root,-) +%{_libdir}/%{name}/libRODBC.* +%{_datadir}/%{name}/plugins/TSQLServer/P050_TODBCServer.C -%files sql-sqlite -f includelist-sql-sqlite -%{_libdir}/%{name}/libRSQLite.* -%{_libdir}/%{name}/libRSQLite_rdict.pcm -%{_datadir}/%{name}/plugins/TSQLServer/P060_TSQLiteServer.C +%files sql-pgsql -f includelist-sql-pgsql +%defattr(-,root,root,-) +%{_libdir}/%{name}/libPgSQL.* +%{_datadir}/%{name}/plugins/TSQLServer/P020_TPgSQLServer.C -%files tmva -f includelist-tmva-tmva +%files tmva -f includelist-tmva +%defattr(-,root,root,-) %{_libdir}/%{name}/libTMVA.* -%{_libdir}/%{name}/libTMVA_rdict.pcm %dir %{_includedir}/%{name}/TMVA -%dir %{_includedir}/%{name}/TMVA/DNN -%dir %{_includedir}/%{name}/TMVA/DNN/Architectures -%dir %{_includedir}/%{name}/TMVA/DNN/Architectures/Cpu -%dir %{_includedir}/%{name}/TMVA/DNN/Architectures/Reference -%dir %{_includedir}/%{name}/TMVA/DNN/CNN -%dir %{_includedir}/%{name}/TMVA/DNN/RNN -%license tmva/doc/LICENSE -%exclude %{_includedir}/%{name}/TMVA/RBDT.hxx -%exclude %{_includedir}/%{name}/TMVA/RInferenceUtils.hxx -%exclude %{_includedir}/%{name}/TMVA/RReader.hxx -%exclude %{_includedir}/%{name}/TMVA/RSofieReader.hxx -%exclude %{_includedir}/%{name}/TMVA/RStandardScaler.hxx -%exclude %{_includedir}/%{name}/TMVA/RTensorUtils.hxx - -%if %{dataframe} -%files tmva-utils -%{_libdir}/%{name}/libTMVAUtils.* -%{_libdir}/%{name}/libTMVAUtils_rdict.pcm -%dir %{_includedir}/%{name}/TMVA -%{_includedir}/%{name}/TMVA/RBDT.hxx -%{_includedir}/%{name}/TMVA/RInferenceUtils.hxx -%{_includedir}/%{name}/TMVA/RReader.hxx -%{_includedir}/%{name}/TMVA/RSofieReader.hxx -%{_includedir}/%{name}/TMVA/RStandardScaler.hxx -%{_includedir}/%{name}/TMVA/RTensorUtils.hxx -%endif - -%files tmva-python -f includelist-tmva-pymva -%{_libdir}/%{name}/libPyMVA.* -%{_libdir}/%{name}/libPyMVA_rdict.pcm - -%if %{rrr} -%files tmva-r -f includelist-tmva-rmva -%{_libdir}/%{name}/libRMVA.* -%{_libdir}/%{name}/libRMVA_rdict.pcm -%endif - -%files tmva-sofie -f includelist-tmva-sofie -%{_libdir}/%{name}/libROOTTMVASofie.* -%{_libdir}/%{name}/libROOTTMVASofie_rdict.pcm -%doc tmva/sofie/README.md - -%if %{tmvasofieparser} -%files tmva-sofie-parser -f includelist-tmva-sofie_parsers -%{_libdir}/%{name}/libROOTTMVASofieParser.* -%{_libdir}/%{name}/libROOTTMVASofieParser_rdict.pcm -%exclude %{_includedir}/%{name}/TMVA/RModelParser_Keras.h -%exclude %{_includedir}/%{name}/TMVA/RModelParser_PyTorch.h - -%files tmva-sofie-parser-python -%{_libdir}/%{name}/libROOTTMVASofiePyParsers.* -%{_includedir}/%{name}/TMVA/RModelParser_Keras.h -%{_includedir}/%{name}/TMVA/RModelParser_PyTorch.h -%endif - -%files tmva-gui -f includelist-tmva-tmvagui -%{_libdir}/%{name}/libTMVAGui.* -%{_libdir}/%{name}/libTMVAGui_rdict.pcm +%doc tmva/doc/LICENSE %files tree -f includelist-tree-tree +%defattr(-,root,root,-) %{_libdir}/%{name}/libTree.* -%{_libdir}/%{name}/libTree_rdict.pcm -%doc %{_pkgdocdir}/README.SELECTOR - -%if %{dataframe} -%files tree-dataframe -f includelist-tree-dataframe -%{_libdir}/%{name}/libROOTDataFrame.* -%{_libdir}/%{name}/libROOTDataFrame_rdict.pcm - -%files tree-ml -f includelist-tree-ml -%{_libdir}/%{name}/libROOTMLDataLoader.* -%{_libdir}/%{name}/libROOTMLDataLoader_rdict.pcm -%dir %{_includedir}/%{name}/ROOT/ML -%endif +%doc %{_defaultdocdir}/%{name}-%{version}/README.SELECTOR %files tree-player -f includelist-tree-treeplayer +%defattr(-,root,root,-) %{_libdir}/%{name}/libTreePlayer.* -%{_libdir}/%{name}/libTreePlayer_rdict.pcm %{_datadir}/%{name}/plugins/TFileDrawMap/P010_TFileDrawMap.C %{_datadir}/%{name}/plugins/TVirtualTreePlayer/P010_TTreePlayer.C %files tree-viewer -f includelist-tree-treeviewer +%defattr(-,root,root,-) %{_libdir}/%{name}/libTreeViewer.* -%{_libdir}/%{name}/libTreeViewer_rdict.pcm %{_datadir}/%{name}/plugins/TVirtualTreeViewer/P010_TTreeViewer.C -%files tree-webviewer -f includelist-tree-webviewer -%{_libdir}/%{name}/libROOTTreeViewer.* -%{_libdir}/%{name}/libROOTTreeViewer_rdict.pcm -%{_datadir}/%{name}/plugins/TVirtualTreeViewer/P020_RTreeViewer.C +%files -n emacs-%{name} +%defattr(-,root,root,-) +%dir %{emacs_lispdir}/root +%{emacs_lispdir}/root/*.elc -%files unfold -f includelist-hist-unfold -%{_libdir}/%{name}/libUnfold.* -%{_libdir}/%{name}/libUnfold_rdict.pcm - -%files cli -%{_bindir}/rootdrawtree -%{_bindir}/rooteventselector -%{_bindir}/rootmv -%{_bindir}/rootprint -%{_bindir}/rootslimtree -%{_datadir}/%{name}/cli - -%files gui-webdisplay -f includelist-gui-webdisplay -%{_libdir}/%{name}/libROOTWebDisplay.* -%{_libdir}/%{name}/libROOTWebDisplay_rdict.pcm -%{_datadir}/%{name}/runfirefox.sh -%{_datadir}/%{name}/ui5 - -%ifarch %{qt6_qtwebengine_arches} -%files gui-qt6webdisplay -%{_libdir}/%{name}/libROOTQt6WebDisplay.* -%endif - -%files gui-webgui6 -f includelist-gui-webgui6 -%{_libdir}/%{name}/libWebGui6.* -%{_libdir}/%{name}/libWebGui6_rdict.pcm -%{_datadir}/%{name}/plugins/TCanvasImp/P010_TWebCanvas.C -%{_datadir}/%{name}/plugins/TControlBarImp/P010_TWebControlBar.C - -%files gui-browsable -f includelist-gui-browsable -%{_libdir}/%{name}/libROOTBrowsable.* -%{_libdir}/%{name}/libROOTBrowsable_rdict.pcm -%{_libdir}/%{name}/libROOTBranchBrowseProvider.* -%{_libdir}/%{name}/libROOTGeoBrowseProvider.* -%{_libdir}/%{name}/libROOTLeafDraw6Provider.* -%{_libdir}/%{name}/libROOTNTupleBrowseProvider.* -%{_libdir}/%{name}/libROOTNTupleDraw6Provider.* -%{_libdir}/%{name}/libROOTObjectDraw6Provider.* - -%files gui-browserv7 -f includelist-gui-browserv7 -%{_libdir}/%{name}/libROOTBrowserv7.* -%{_libdir}/%{name}/libROOTBrowserv7_rdict.pcm -%{_libdir}/%{name}/libROOTBrowserGeomWidget.* -%{_libdir}/%{name}/libROOTBrowserTCanvasWidget.* -%{_libdir}/%{name}/libROOTBrowserTreeWidget.* -%{_libdir}/%{name}/libROOTBrowserWidgets.* -%{_datadir}/%{name}/plugins/TBrowserImp/P030_RWebBrowserImp.C - -%files geom-checker -f includelist-geom-geomchecker -%{_libdir}/%{name}/libGeomChecker.* -%{_libdir}/%{name}/libGeomChecker_rdict.pcm -%{_datadir}/%{name}/plugins/TVirtualGeoChecker/P010_TGeoChecker.C - -%files geom-webviewer -f includelist-geom-webviewer -%{_libdir}/%{name}/libROOTGeomViewer.* -%{_libdir}/%{name}/libROOTGeomViewer_rdict.pcm -%{_datadir}/%{name}/plugins/TVirtualGeoPainter/P020_RGeoPainter.C - -%files tree-ntuple -f includelist-tree-ntuple -%{_libdir}/%{name}/libROOTNTuple.* -%{_libdir}/%{name}/libROOTNTuple_rdict.pcm -%dir %{_includedir}/%{name}/ROOT/libdaos_mock - -%files tree-ntuple-browse -f includelist-tree-ntuplebrowse -%{_libdir}/%{name}/libROOTNTupleBrowse.* -%{_libdir}/%{name}/libROOTNTupleBrowse_rdict.pcm - -%files tree-ntuple-utils -f includelist-tree-ntupleutil -%{_libdir}/%{name}/libROOTNTupleUtil.* -%{_libdir}/%{name}/libROOTNTupleUtil_rdict.pcm - -%if %{root7} -%files graf-gpadv7 -f includelist-graf2d-gpadv7 -%{_libdir}/%{name}/libROOTGpadv7.* -%{_libdir}/%{name}/libROOTGpadv7_rdict.pcm - -%files graf-primitives -f includelist-graf2d-primitivesv7 -%{_libdir}/%{name}/libROOTGraphicsPrimitives.* -%{_libdir}/%{name}/libROOTGraphicsPrimitives_rdict.pcm - -%files graf3d-eve7 -f includelist-graf3d-eve7 -%{_libdir}/%{name}/libROOTEve.* -%{_libdir}/%{name}/libROOTEve_rdict.pcm - -%files gui-browsable-v7 -%{_libdir}/%{name}/libROOTLeafDraw7Provider.* -%{_libdir}/%{name}/libROOTNTupleDraw7Provider.* -%{_libdir}/%{name}/libROOTObjectDraw7Provider.* - -%files gui-browserv7-v7 -%{_libdir}/%{name}/libROOTBrowserRCanvasWidget.* - -%files gui-canvaspainter -%{_libdir}/%{name}/libROOTCanvasPainter.* - -%files gui-fitpanelv7 -f includelist-gui-fitpanelv7 -%{_libdir}/%{name}/libROOTFitPanelv7.* -%{_libdir}/%{name}/libROOTFitPanelv7_rdict.pcm - -%files histv7 -f includelist-hist-histv7 -%{_libdir}/%{name}/libROOTHist.* -%{_libdir}/%{name}/libROOTHist_rdict.pcm - -%files histv7util -f includelist-hist-histv7util -%{_libdir}/%{name}/libROOTHistUtil.* -%{_libdir}/%{name}/libROOTHistUtil_rdict.pcm -%dir %{_includedir}/%{name}/ROOT/Hist -%endif +%files -n emacs-%{name}-el +%defattr(-,root,root,-) +%{emacs_lispdir}/root/*.el %changelog -* Sat Aug 29 2026 Mattias Ellert - 6.40.04-1 -- Update to 6.40.04 -- The root-roofit-jsoninterface package was merged with root-roofit-hs3 -- Fix calculation of kerning distances in generated PDF files -- Dropped patches: 1 -- New patches: 2 - -* Wed Aug 26 2026 Mattias Ellert - 6.40.02-5 -- Use the system civetweb library since it now supports web sockets -- Drop the davix module for Fedora 45+ (davix will soon be retired) - -* Wed Aug 19 2026 Jaroslav Škarvada - 6.40.02-4 -- Rebuilt for new graphviz - -* Wed Jul 22 2026 Python Maint - 6.40.02-3 -- Rebuilt for Python 3.15.0b4 ABI change - -* Thu Jul 16 2026 Fedora Release Engineering - 6.40.02-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild - -* Sat Jun 20 2026 Mattias Ellert - 6.40.02-1 -- Update to 6.40.02 -- Rename the jupyroot and distrdf packages to reflect that they are - now submodules of the main python package -- New subpackages: root-graf3d-glad, root-net-curl, - root-tmva-sofie-parser-python, root-tree-ml, root-histv7util -- Dropped patches: 2 -- New patches: 7 - -* Fri Jun 12 2026 Yaakov Selkowitz - 6.38.04-7 -- Rebuilt for openssl 4.0 - -* Thu Jun 04 2026 Python Maint - 6.38.04-6 -- Rebuilt for Python 3.15 - -* Wed May 06 2026 Mattias Ellert - 6.38.04-6 -- Combined rebuild for xrootd and R - -* Sat Apr 25 2026 Iñaki Úcar - 6.38.04-5 -- R-maint-sig mass rebuild - -* Wed Apr 22 2026 Mattias Ellert - 6.38.04-4 -- Rebuilt for xrootd 6 - -* Thu Apr 09 2026 Mattias Ellert - 6.38.04-3 -- Run some tests on aarch64 Fedora 44+ again (gcc 16 regression fixed) - -* Sun Apr 05 2026 Mattias Ellert - 6.38.04-2 -- Compatibility with Python 3.15 - -* Fri Mar 13 2026 Mattias Ellert - 6.38.04-1 -- Update to 6.38.04 -- Rebuild for pythia8 8.3.17 -- Dropped patches: 11 -- New patches: 1 - -* Sat Jan 17 2026 Fedora Release Engineering - 6.38.00-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild - -* Mon Jan 12 2026 Mattias Ellert - 6.38.00-6 -- Fixes for gcc 16 - -* Thu Dec 25 2025 Mattias Ellert - 6.38.00-5 -- Fix test for stricter syntax in numpy 2.4.0 (backport) - -* Fri Dec 19 2025 Mattias Ellert - 6.38.00-4 -- Exclude tests for Fedora 43+ on s390x that fail due to hardware - acceleration in the zlib-ng library. - -* Thu Dec 18 2025 Mattias Ellert - 6.38.00-3 -- Don't install the python modules twice -- Fix Requires and Provides in the python3-root rpm - -* Thu Dec 11 2025 Mattias Ellert - 6.38.00-2 -- Skip RPATH using -DCMAKE_SKIP_INSTALL_RPATH:BOOL=ON (replaces - previously used root specific -Drpath:BOOL=OFF no longer available) -- Backport fixes to python module -- Rebuild for pythia8 8.3.16 - -* Tue Dec 09 2025 Mattias Ellert - 6.38.00-1 -- Update to 6.38.00 -- Removed subpackages: root-proof, root-proof-bench, root-proof-player, - root-proof-sessionviewer, root-sql-mysql, root-sql-odbc, root-sql-pgsql -- New subpackages: root-geom-checker, root-gui-treemap, - root-tree-ntuple-browse, root-histv7 -- JsMVA python (sub)module dropped from python3-root package -- Compile minuit2 with Open MP support -- Dropped patches: 7 -- New patches: 4 - -* Wed Oct 29 2025 Stephen Gallagher - 6.36.04-4 -- Rebuild for libarrow 22 - -* Thu Oct 09 2025 Jaroslav Škarvada - 6.36.04-3 -- Rebuilt for new graphviz - -* Fri Sep 19 2025 Python Maint - 6.36.04-2 -- Rebuilt for Python 3.14.0rc3 bytecode - -* Mon Aug 25 2025 Mattias Ellert - 6.36.04-1 -- Update to 6.36.04 - -* Wed Aug 20 2025 Jerry James - 6.36.02-7 -- Rebuild for tbb 2022.2.0 - -* Tue Aug 19 2025 Mattias Ellert - 6.36.02-6 -- Support libarrow 21 - -* Mon Aug 18 2025 Orion Poplawski - 6.36.02-5 -- Rebuild for libarrow 21 - -* Fri Aug 15 2025 Python Maint - 6.36.02-4 -- Rebuilt for Python 3.14.0rc2 bytecode - -* Wed Aug 13 2025 Orion Poplawski - 6.36.02-3 -- Rebuild for libarrow 21 - -* Fri Jul 25 2025 Fedora Release Engineering - 6.36.02-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Sun Jul 13 2025 Mattias Ellert - 6.36.02-1 -- Update to 6.36.02 - -* Thu Jul 10 2025 Stephen Gallagher - 6.36.00-3 -- Rebuilt for libarrow 20 - -* Sat Jun 21 2025 Mattias Ellert - 6.36.00-2 -- Add root-tree-ntuple and root-tree-ntuple-utils dependensies to root-core - (listed in root-config --libs) -- Rename root-fonts package to root-font-files -- Add optional test dependency python3-pandas now available in EPEL 10 -- Add dependency jupyter-notebook to root-jupyroot for EPEL 10.1 and later -- Fix Python 3.14 refcount issues in tests - -* Sat Jun 07 2025 Mattias Ellert - 6.36.00-1 -- Update to 6.36.00 -- Enable the R interface for EPEL 10.1 -- Removed subpackages: root-gui-qt5webdisplay, -hist-draw, -histv7 and -html -- New subpackage: root-roofit-codegen - -* Tue Jun 03 2025 Python Maint - 6.34.08-5 -- Rebuilt for Python 3.14 - -* Fri Apr 18 2025 Iñaki Úcar - 6.34.08-4 -- R-maint-sig mass rebuild - -* Fri Apr 18 2025 Iñaki Úcar - 6.34.08-3 -- R-maint-sig mass rebuild - -* Fri Apr 18 2025 Iñaki Úcar - 6.34.08-2 -- R-maint-sig mass rebuild - -* Thu Apr 17 2025 Mattias Ellert - 6.34.08-1 -- Update to 6.34.08 - -* Fri Mar 28 2025 Mattias Ellert - 6.34.06-1 -- Update to 6.34.06 -- Drop patches accepted upstream or previously backported - -* Wed Feb 19 2025 Mattias Ellert - 6.34.04-2 -- Fix roofit/roostats test failures with gcc 15 - -* Fri Feb 14 2025 Mattias Ellert - 6.34.04-1 -- Update to 6.34.04 -- Drop patches accepted upstream or previously backported - -* Fri Feb 14 2025 Benjamin A. Beasley - 6.34.02-8 -- Rebuilt for libarrow 19 - -* Sun Feb 02 2025 Orion Poplawski - 6.34.02-7 -- Rebuild with gsl 2.8 - -* Sat Feb 01 2025 Björn Esser - 6.34.02-6 -- Add explicit BR: libxcrypt-devel - -* Fri Jan 31 2025 Mattias Ellert - 6.34.02-5 -- Apply patches to fix build with gcc 15 -- Enable roofit-multiprocess for EPEL 10 (dependencies available) -- Rebuild for pythia8 8.3.13 - -* Sat Jan 18 2025 Fedora Release Engineering - 6.34.02-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Wed Jan 15 2025 Mattias Ellert - 6.34.02-3 -- Don't add dependencies on root-roofit-multiprocess and root-roofit-zmq - to root-roofit-core for EPEL builds - -* Sun Jan 12 2025 Mattias Ellert - 6.34.02-2 -- Adjust stressGraphics.ref -- Build for EPEL 10 -- Disable the R interface for EPEL 10 (R not yet abailable) -- Enable uring support for EPEL 9 (supported in kernel since RHEL 9.3) - -* Wed Dec 25 2024 Mattias Ellert - 6.34.02-1 -- Update to 6.34.02 -- Build CLAD plugin -- Removed package: root-roofit-dataframe-helpers - -* Wed Nov 27 2024 Richard W.M. Jones - 6.32.08-2 -- Rebuild for libarrow 18 - -* Thu Nov 14 2024 Mattias Ellert - 6.32.08-1 -- Update to 6.32.08 - -* Mon Sep 23 2024 Mattias Ellert - 6.32.06-1 -- Update to 6.32.06 -- Split out ROOT 7 dependent parts of root-browsable to a separate package -- Split out ROOT 7 dependent parts of root-browserv7 to a separate package - -* Wed Aug 21 2024 Mattias Ellert - 6.32.04-2 -- Re-enable Qt5 Web display for Fedora 41+ (qt5-qtwebengine fixed) - -* Wed Aug 14 2024 Mattias Ellert - 6.32.04-1 -- Update to 6.32.04 -- Drop patches accepted upstream -- Disable Qt5 Web display for Fedora 41+ (broken qt5-qtwebengine package) - -* Sun Jul 21 2024 Mattias Ellert - 6.32.02-4 -- Update ROOT's R interface for Rcpp 1.0.13 - -* Fri Jul 19 2024 Fedora Release Engineering - 6.32.02-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Thu Jul 11 2024 Mattias Ellert - 6.32.02-2 -- Add openssl-devel-engine build requirement on Fedora 41+ -- Fixes for TUri class (PCRE2 compatibility) -- Fix test failure with tbb 2021.13.0 - -* Tue Jun 18 2024 Mattias Ellert - 6.32.02-1 -- Update to 6.32.02 -- Drop patches accepted upstream - -* Mon Jun 17 2024 Mattias Ellert - 6.32.00-5 -- Add dependency on liburing-devel to root-io -- Exclude failing tutorial-tmva-RBatchGenerator_filters_vectors-py test - on aarch64 (Fedora 40+) - -* Mon Jun 10 2024 Mattias Ellert - 6.32.00-4 -- Backport fix for failing test with Python 3.13 - -* Sun Jun 09 2024 Python Maint - 6.32.00-3 -- Rebuilt for Python 3.13 - -* Sat Jun 08 2024 Mattias Ellert - 6.32.00-2 -- Python 3.13 compatibility - -* Mon Jun 03 2024 Mattias Ellert - 6.32.00-1 -- Update to 6.32.00 -- Drop EPEL 8 build (now requires Python >= 3.7 and tbb >= 2020) -- Dropped patches: 12 -- New patches: 6 -- The JsMVA python module is now a submodule of the ROOT python module -- The notebook package was merged with the JupyROOT package - -* Wed May 15 2024 Mattias Ellert - 6.30.06-5 -- Rebuilt for libarrow.so.1601 -- Improved fontconfig support - -* Sun Apr 28 2024 Benjamin A. Beasley - 6.30.06-4 -- Do not test with Pandas on 32-bit architectures - -* Thu Apr 25 2024 Iñaki Úcar - 6.30.06-3 -- R-maint-sig mass rebuild - -* Tue Apr 23 2024 Mattias Ellert - 6.30.06-2 -- Rebuilt for libarrow.so.1600 - -* Fri Apr 05 2024 Mattias Ellert - 6.30.06-1 -- Update to 6.30.06 - -* Mon Mar 25 2024 Mattias Ellert - 6.30.04-2 -- Support StandardSymbolsPS.otf - -* Wed Jan 31 2024 Mattias Ellert - 6.30.04-1 -- Update to 6.30.04 -- Drop patch root-adjust-test-for-failures-on-aarch64-ppc64le-s390x.patch - (accepted upstrem) -- Exclude failing TClingDataMemberInfo.Offset test on s390x - -* Fri Jan 26 2024 Mattias Ellert - 6.30.02-9 -- Rebuilt for libarrow.so.1500 - -* Fri Jan 26 2024 Mattias Ellert - 6.30.02-8 -- Exclude failing gtest-math-matrix-test-testMatrixTSparse on Fedora 40 - (aarch64, ppc64le and s390x) - -* Mon Jan 22 2024 Fedora Release Engineering - 6.30.02-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Wed Jan 17 2024 Jonathan Wakely - 6.30.02-6 -- Rebuilt for TBB 2021.11 - -* Fri Jan 12 2024 Mattias Ellert - 6.30.02-5 -- Define PYTHON_EXECUTABLE when calling cmake (Fixes EPEL 8 build) - -* Thu Dec 21 2023 Mattias Ellert - 6.30.02-4 -- Adjust tests for zlib-ng - -* Mon Dec 18 2023 Mattias Ellert - 6.30.02-3 -- Use "standardsymbolsps" instead of "symbol" when searching for the - Symbols font in order to not find Noto Symbols instead - -* Fri Dec 15 2023 Mattias Ellert - 6.30.02-2 -- Exclude pyunittests-pyroot-numbadeclare test - -* Sat Dec 02 2023 Mattias Ellert - 6.30.02-1 -- Update to 6.30.02 - -* Sat Nov 25 2023 Mattias Ellert - 6.30.00-1 -- Update to 6.30.00 -- Removed subpackages: root-io-gfal and root-roofit-common -- Dropped patches: 6 -- New patches: 6 - -* Thu Nov 02 2023 Mattias Ellert - 6.28.08-3 -- Rebuilt for libarrow.so.1400 - -* Wed Nov 01 2023 Mattias Ellert - 6.28.08-2 -- Enable RooFit::MultiProcess on Fedora 40+ - -* Sat Oct 14 2023 Mattias Ellert - 6.28.08-1 -- Update to 6.28.08 -- New subpackage root-tmva-utils (split off from root-tmva) -- Port to pcre2 - -* Tue Sep 05 2023 Mattias Ellert - 6.28.06-1 -- Update to 6.28.06 -- Drop patches root-testRooAbsL-test-compares-two-doubles-and-fails.patch and - root-strlcpy.patch (fixed upstream) - -* Sun Aug 06 2023 Mattias Ellert - 6.28.04-5 -- Rebuilt for libarrow.so.1300 - -* Fri Jul 21 2023 Fedora Release Engineering - 6.28.04-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Sun Jul 09 2023 Mattias Ellert - 6.28.04-3 -- Fix build on Fedora 39+ where glibc has strlcpy and strlcat -- Enable build of root-gui-qt6webdisplay sub-package if Qt6 is available - -* Mon Jun 26 2023 Orion Poplawski - 6.28.04-2 -- Rebuilt for Python 3.12 - -* Mon May 08 2023 Mattias Ellert - 6.28.04-1 -- Update to 6.28.04 -- Drop patch root-RF-Rewrite-RooProdPdf.TestGetPartIntList-unit-test.patch - (previously backported) -- Enable Apache Arrow support (64 bit architectures only) - -* Fri Apr 21 2023 Iñaki Úcar - 6.28.02-3 -- R-maint-sig mass rebuild - -* Thu Mar 23 2023 Mattias Ellert - 6.28.02-2 -- Disable uring in EPEL 9 (liburing is available, but uring not - supported by kernel) - -* Wed Mar 22 2023 Mattias Ellert - 6.28.02-1 -- Update to 6.28.02 -- Dropped patches: 13 -- New patches: 1 - -* Sat Mar 18 2023 Mattias Ellert - 6.28.00-1 -- Update to 6.28.00 -- ROOT now uses llvm/clang version 13 (updated from version 9) -- Clean up specfile by removing EPEL 7 conditionals -- Drop dataframe, roofit and tmva-sofieparser on EPEL 8 ppc64le due to - "pure virtual method called" errors -- Split the root-geom sub-package into three separate sub-packages: - root-geom, root-geom-builder and root-geom-painter -- Enable uring support in EPEL 9 (liburing now available) -- New sub-packages: root-geom-webviewer, root-roofit-jsoninterface, - root-testsupport, root-tree-ntuple-utils, root-tree-webviewer, root-xroofit -- Dropped patches: 31 -- New patches: 17 -- Updated patches: 4 - -* Mon Jan 30 2023 Miro Hrončok - 6.26.10-2 -- Rebuilt to change Python shebangs to /usr/bin/python3.6 on EPEL 8 - -* Mon Jan 30 2023 Mattias Ellert - 6.26.10-5 -- Adapt to numpy 1.24 - -* Fri Jan 20 2023 Mattias Ellert - 6.26.10-4 -- Add missing #include - -* Fri Jan 20 2023 Fedora Release Engineering - 6.26.10-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Thu Dec 29 2022 Maxwell G - 6.26.10-2 -- Rebuild for cfitsio 4.2 - -* Wed Nov 16 2022 Mattias Ellert - 6.26.10-1 -- Update to 6.26.10 -- Drop patches root-Fixes-for-garbage-collection-in-Python-3.11.patch - and root-Guard-gInterpreterMutex-in-TClingClassInfo-IsEnum.patch - (fixed upstream) -- Use different filenames in io/loopdir tests -- Update root-test-timeout.patch to address one more issue - -* Fri Oct 28 2022 Mattias Ellert - 6.26.08-2 -- Avoid race condition between C++ and Python version of a roofit test - -* Wed Oct 19 2022 Mattias Ellert - 6.26.08-1 -- Update to 6.26.08 -- Drop patch root-move-private-decl.patch (fixed upstream) -- Drop some previously backported patches -- Rename patch root-blas-linking-and-ignore-prefix.patch (partially fixed) -- Backport locking of gInterpreterMutex in TClingClassInfo::IsEnum - -* Sat Oct 01 2022 Mattias Ellert - 6.26.06-5 -- Use upstream's proposed change for the Python garbage collection issue - -* Tue Aug 23 2022 Mamoru TASAKA - 6.26.06-4 -- Rebuild for gsl-2.7.1 - -* Fri Aug 19 2022 Mattias Ellert - 6.26.06-3 -- Use the json 3.11 fix upstream settled on - -* Wed Aug 17 2022 Mattias Ellert - 6.26.06-2 -- Compatibility with nlohmann json 3.11+ -- Enable gfal support in EPEL 9 (gfal2 now available) - -* Sat Jul 30 2022 Mattias Ellert - 6.26.06-1 -- Update to 6.26.06 - -* Sat Jul 23 2022 Fedora Release Engineering - 6.26.04-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Mon Jul 18 2022 Mattias Ellert - 6.26.04-4 -- Don't use yuicompressor on Fedora (Java no longer available on ix86) - -* Sun Jul 03 2022 Mattias Ellert - 6.26.04-3 -- Backport python 3.11 fixes from upstream -- Backport additional python 3.11 fixes from CPyCppyy upstream -- Exclude some failing tests on Fedora 37+ - (segfaults during Python garbage collection with Python 3.11) -- Adjust some test timeouts - -* Wed Jun 15 2022 Python Maint - 6.26.04-2 -- Rebuilt for Python 3.11 - -* Tue Jun 14 2022 Mattias Ellert - 6.26.04-1 -- Update to 6.26.04 -- Drop patch root-missing-include.patch (accepted upstream) - -* Fri May 20 2022 Mattias Ellert - 6.26.02-3 -- Rebuild for gcc 12.1 (Fedora 36) -- Update the root-tmva-threads patch - -* Fri Apr 29 2022 Mattias Ellert - 6.26.02-2 -- Rebuild for gcc 11.3 (Fedora 35) -- Use upstream's version of the dataframe-snapshot on 32 bit patch - -* Thu Apr 14 2022 Mattias Ellert - 6.26.02-1 -- Update to 6.26.02 -- Drop patch root-roofit-overflow.patch (previously backported) - -* Sat Mar 26 2022 Mattias Ellert - 6.26.00-1 -- Update to 6.26.00 -- New subpackages: root-roofit-common, root-roofit-dataframe-helpers, - root-roofit-hs3, root-tmva-sofie and root-tmva-sofie-parser -- Removed subpackages: root-memstat and root-montecarlo-vmc -- Drop the doxygen generated root-doc package (doxygen runs out of memory) -- Dropped patches: 17 -- New patches: 22 -- Updated patches: 5 - -* Thu Feb 10 2022 Orion Poplawski - 6.24.06-6 -- Rebuild for glew 2.2 - -* Fri Jan 28 2022 Mattias Ellert - 6.24.06-5 -- Exclude failing test on Fedora 36 ppc64le: - test-stressHistFactory(-interpreted) -- Disable package note flags - -* Fri Jan 21 2022 Fedora Release Engineering - 6.24.06-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Sun Jan 16 2022 Mattias Ellert - 6.24.06-3 -- Backport gcc 12 fix from LLVM -- Fix test failure on ppc64le and aarch64 with gcc 12 - -* Tue Dec 07 2021 Mattias Ellert - 6.24.06-2 -- Fix segfaults on ppc64le when using the large code model - -* Thu Nov 04 2021 Mattias Ellert - 6.24.06-1 -- Update to 6.24.06 - -* Tue Sep 14 2021 Sahana Prasad - 6.24.04-2 -- Rebuilt with OpenSSL 3.0.0 - -* Fri Aug 27 2021 Mattias Ellert - 6.24.04-1 -- Update to 6.24.04 -- Add dependency on json-devel to root-core -- Disable uring in EPEL 8 (liburing is available, but uring not - supported by kernel) - -* Wed Aug 04 2021 Mattias Ellert - 6.24.02-1 -- Update to 6.24.02 -- ROOT now uses llvm/clang version 9 (updated from version 5) -- No longer exclude arch s390x (better supported in llvm/clang 9) -- Drop patches accepted upstream or previously backported -- Backport some fixes that make more tests work -- New subpackages: python{2,3}-distrdf, root-roofit-batchcompute -- Require js-jsroot >= 6 - -* Mon Jul 26 2021 Mattias Ellert - 6.22.08-11 -- Drop the memstat module for Fedora 35+ - The required __malloc_hook was removed from glibc 2.33.9000-48 - The memstat module is deprecated and will be removed in root 6.26 - -* Fri Jul 23 2021 Fedora Release Engineering - 6.22.08-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Thu Jun 17 2021 Mattias Ellert - 6.22.08-9 -- Backport fix for jsroot loading in jupyterlab - -* Mon Jun 14 2021 Mattias Ellert - 6.22.08-8 -- Add configuration for jupyterlab - -* Sun Jun 13 2021 Mattias Ellert - 6.22.08-7 -- cmake in EPEL 8 no longer provides cmake3 - -* Fri Jun 04 2021 Python Maint - 6.22.08-6 -- Rebuilt for Python 3.10 - -* Thu Jun 03 2021 Mattias Ellert - 6.22.08-5 -- Use C++17 for Fedora 34+ (gcc 11) - -* Tue Jun 01 2021 Mattias Ellert - 6.22.08-4 -- Adapt to new Python RPM generators (empty .egg-info no longer works) -- Filter out parts of tests that require remote network access instead of - excluding the whole test -- Fix multicore tests when running on machines with few cores - -* Mon May 10 2021 Jonathan Wakely - 6.22.08-3 -- Rebuilt for removed libstdc++ symbols (#1937698) - -* Tue Mar 30 2021 Jonathan Wakely - 6.22.08-2 -- Rebuilt for removed libstdc++ symbol (#1937698) - -* Fri Mar 19 2021 Mattias Ellert - 6.22.08-1 -- Update to 6.22.08 - -* Mon Feb 08 2021 Pavel Raiskup - 6.22.06-4 -- rebuild for libpq ABI fix rhbz#1908268 - -* Wed Feb 03 2021 Mattias Ellert - 6.22.06-3 -- Rebuilt for cfitsio 3.490 - -* Wed Jan 27 2021 Fedora Release Engineering - 6.22.06-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Sat Nov 28 2020 Mattias Ellert - 6.22.06-1 -- Update to 6.22.06 -- Filter out additional vDSO names for ppc - -* Thu Nov 26 2020 Mattias Ellert - 6.22.04-2 -- Do not attempt to load_library the ROOT Pythonizations module - -* Fri Nov 13 2020 Mattias Ellert - 6.22.04-1 -- Update to 6.22.04 -- Drop patch root-xrootd5-compat.patch (accepted upstream) - -* Sat Nov 07 2020 Mattias Ellert - 6.22.02-4 -- Rebuild for C++ standard library __GLIBCXX__ 20201016 - -* Fri Oct 02 2020 Mattias Ellert - 6.22.02-3 -- Drop obsolete patch root-add-flexiblas-detection.patch (cmake's - FindBLAS.cmake supports flexiblas now) -- Drop the workaround for the bug in doxygen causing different results - on 32 and 64 bit architectures (use doxygen < 1.8.17 or >= 1.8.20-3) -- Build require xrootd 5 (Fedora 33+, EPEL 7+) - -* Sun Aug 30 2020 Mattias Ellert - 6.22.02-2 -- Adapt to xrootd 5 (Fedora 33+, EPEL 7+) - - Don't build the old proof client (xproofd) - - Don't build the old NetX module - -* Fri Aug 21 2020 Mattias Ellert - 6.22.02-1 -- Update to 6.22.02 -- Drop patch previously backported: root-doxygen-endof-part1.patch -- Drop patch accepted upstream: root-python2-compat.patch -- Add back line accidentally removed in root-config -- Install headers in new PyROOT with COMPONENT headers -- Increase test timeout for ppc64le - -* Thu Aug 20 2020 Mattias Ellert - 6.22.00-7 -- Avoid unneeded build requirement on srm-ifce-devel -- Do not export Python modules in CMake config -- Drop patch root-clang-ignore-gcc-options.patch - ("Recent ROOT does not send all possible compiler flags to rootcling.") - -* Sun Aug 16 2020 Iñaki Úcar - 6.22.00-6 -- https://fedoraproject.org/wiki/Changes/FlexiBLAS_as_BLAS/LAPACK_manager - -* Tue Aug 11 2020 Mattias Ellert - 6.22.00-5 -- Fix wrong symlinks in EPEL 7 python2-root package - -* Sat Aug 01 2020 Fedora Release Engineering - 6.22.00-4 -- Second attempt - Rebuilt for - https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Wed Jul 29 2020 Fedora Release Engineering - 6.22.00-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Wed Jul 15 2020 Mattias Ellert - 6.22.00-2 -- Fix broken update on EPEL 7 with python34-root installed - -* Tue Jul 14 2020 Mattias Ellert - 6.22.00-1 -- Update to 6.22.00 -- Drop patches accepted upstream - - root-FitData-assert-fix.patch - - root-clang-altivec-vector.patch - - root-format-fix.patch - - root-moved-file.patch - - root-xmlmodify-dep.patch -- New and improved Python bindings -- The new Python bindings can be built for both Python 2 and Python 3 - out of the box. Dropped the workaround in specfile for this (EPEL 7) -- Dropped the python3-other packages (EPEL 7) -- The new Python bindings has split the TPython interface to a separate - library. Now in a separate root-tpython package -- root-tpython and root-tmva-python are now using Python 3 on EPEL 7 -- New subpackage root-gui-browsable -- New patches (submitted upstream) - - Fix too aggressive -Werror replacements - - Add missing call to TFile::SetCacheFileDir in a TMVA tutorial - - Adjust stressGraphics.ref - - Fix off-by-one error in histogram v7 bin iterator - - Compatibility with python 2.7 versions before 2.7.9 - - Fix the RNTuple.LargeFile test on 32bit (i386 and armv7hf) - - Fix doxygen issues - - Fix bad regex in TProofMgr - - Compatibility with xrootd 5 -- Add workaround for a bug in doxygen 1.8.17 and later causing different - results on 32 and 64 bit - -* Sat Jul 11 2020 Jeff Law - 6.20.06-2 -- Disable LTO - -* Thu Jun 11 2020 Mattias Ellert - 6.20.06-1 -- Update to 6.20.06 -- Fix test failure on ppc64le and aarch64 - -* Tue May 26 2020 Miro Hrončok - 6.20.04-3 -- Rebuilt for Python 3.9 - -* Fri Apr 10 2020 Mattias Ellert - 6.20.04-2 -- Replace BR qt5-devel with qt5-qtbase-devel - -* Wed Apr 01 2020 Mattias Ellert - 6.20.04-1 -- Update to 6.20.04 -- Drop previously backported patch root-tutorials-unique-filenames.patch -- Improved patch for the PyROOT issue on EPEL 7 ppc64le - -* Sun Mar 22 2020 Mattias Ellert - 6.20.02-1 -- Update to 6.20.02 -- Drop patches accepted upstream - - root-dont-download-input-file-if-it-already-exists.patch - - root-fix-plugin-definition.patch - - root-man-install.patch - - root-pretty-printers.patch - - root-python3.patch - - root-stress-aarch64-ppc64le.patch -- Drop patches no longer relevant due to changes to the code - - root-missing-include-string.patch - - root-static-constexpr.patch -- Add workaround for PyROOT issues on ppc64le in EPEL 7 - - root-epel7-ppc64le-pyroot.patch (patch conditionally applied) -- Fix path to moved data file in tutorial - - root-moved-file.patch -- Split the root-roofit subpackage into four different packages - - root-roofit, root-roofit-core, root-roofit-more and root-roostats - - The root-roofit-more library splits out the part of roofit that depends on - the root-mathmore package -- New subpackage: root-histv7 - -* Sat Mar 14 2020 Mattias Ellert - 6.18.04-6 -- Build for 32 bit ARM again - gcc-10.0.1-0.9 fixes the problem - -* Sat Feb 22 2020 Mattias Ellert - 6.18.04-5 -- Fixes and workarounds for gcc 10 -- ExcludeArch for 32 bit ARM because rootcling_stage1 segfaults (bug #1811604) - -* Thu Jan 30 2020 Fedora Release Engineering - 6.18.04-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Wed Dec 04 2019 Mattias Ellert - 6.18.04-3 -- Fix shebangs in root-cli for EPEL 8 - -* Tue Dec 03 2019 Mattias Ellert - 6.18.04-2 -- Remove workarounds for RHEL 7 aarch64 (architecture dropped by EPEL 7) -- Enable QtWebEngine dependent modules on EPEL 8 (now available) - -* Mon Sep 30 2019 Mattias Ellert - 6.18.04-1 -- Update to 6.18.04 -- First build for EPEL 8 - -* Thu Sep 12 2019 Mattias Ellert - 6.18.02-2 -- Rebuild for g++ 9.2 - -* Mon Aug 26 2019 Mattias Ellert - 6.18.02-1 -- Update to 6.18.02 -- Add workarounds for issues caused by the RHEL 7.7 update, that left the - aarch64 architecture at RHEL 7.6. - -* Tue Aug 20 2019 Susi Lehtola - 6.18.00-5 -- Rebuilt for GSL 2.6. - -* Mon Aug 19 2019 Miro Hrončok - 6.18.00-4 -- Rebuilt for Python 3.8 - -* Wed Jul 31 2019 Mattias Ellert - 6.18.00-3 -- Root 6.18 requires pcm files to be in the same directory as libraries -- Add libPyROOT.rootmap and libPyROOT_rdict.pcm as slaves to libPyROOT.so - in update-alternatives - -* Fri Jul 26 2019 Fedora Release Engineering - 6.18.00-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Wed Jun 26 2019 Mattias Ellert - 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 - 6.16.00-6 -- Use python-embed pkg-config module if it exists (python 3.8 compatibility) - -* Fri May 17 2019 Mattias Ellert - 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 - 6.16.00-4 -- Rebuilt to change main python from 3.4 to 3.6 - -* Mon Feb 18 2019 Mattias Ellert - 6.16.00-3 -- Fix typo in patch (missing space) - -* Sun Feb 17 2019 Igor Gnatenko - 6.16.00-2 -- Rebuild for readline 8.0 - -* Mon Feb 11 2019 Mattias Ellert - 6.16.00-1 -- Update to 6.16.00 -- Drop patches accepted upstream: - - root-adjust-allowed-test-difference-for-32-bit-ix86.patch - - root-crypto.patch - - root-js-syntax.patch - - root-missing-header.patch - - root-set-cache-file-dir.patch - - root-stressgraphics-ref.patch - - root-test-compilation-epel7.patch - - root-test-subdirs.patch - - root-unique-filenames.patch -- Dropped subpackages: - - root-rootd (obsolete - use xrootd) - - root-proofd (obsolete - use root-xproofd) - - root-proof-pq2 -- New ROOT 7 subpackage: - - root-graf3d-eve7 - - root-gui-webgui6 -- Make tutorial/v7/line.cxx run in batch mode - -* Mon Feb 04 2019 Mattias Ellert - 6.14.08-4 -- Remove obsolete /sbin/ldconfig scriptlets -- The root-core package installs a file in /etc/ld.so.conf.d, so it should - always call /sbin/ldconfig and not use the macros - -* Sat Feb 02 2019 Fedora Release Engineering -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Mon Jan 14 2019 Björn Esser - 6.14.08-2 -- Rebuilt for libcrypt.so.2 (#1666033) - -* Fri Nov 23 2018 Mattias Ellert - 6.14.08-1 -- Update to 6.14.08 -- Make tutorial filenames unique to avoid overwrites - -* Tue Nov 06 2018 Mattias Ellert - 6.14.06-1 -- Update to 6.14.06 -- Let clang ignore some gcc options it hasn't implemented -- Don't build python2-jupyroot/jsmva packages for Fedora >= 29 -- Drop previously backported patch root-TGHtmlBrowser-crash.patch - -* Thu Oct 25 2018 Mattias Ellert - 6.14.04-3 -- Fix crash in TBrowser when root-gui-html is not installed -- Use empty .egg-info files instead of empty .dist-info files to make - virtualenv happy -- Add Requires on root-mathmore to root-mathcore (for default integrator) - -* Sat Oct 13 2018 Jerry James - 6.14.04-2 -- Rebuild for tbb 2019_U1 - -* Fri Aug 24 2018 Mattias Ellert - 6.14.04-1 -- Update to 6.14.04 -- Drop patch accepted upstream: root-python-3.7.patch - -* Thu Aug 23 2018 Nicolas Chauvet - 6.14.02-2 -- Rebuilt for glew 2.1.0 - -* Mon Aug 06 2018 Mattias Ellert - 6.14.02-1 -- Update to 6.14.02 -- Make python3 the preferred 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 -- Fix build issue with undefined symbols in libSrvAuth -- Make ROOTConfig-targets.cmake not error on missing files to work better with - subpackages - -* Sat Jul 14 2018 Fedora Release Engineering - 6.14.00-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Thu Jul 12 2018 Mattias Ellert - 6.14.00-2 -- Add Python 3.6 packages for EPEL 7 - -* Sun Jul 01 2018 Mattias Ellert - 6.14.00-1 -- Update to 6.14.00 -- Drop patches previously backported: - - root-doxygen-makefile.patch - - root-crash-fix.patch - - root-test-stress-32bit.patch -- Drop patches accepted upstream: - - root-test-subdirs.patch - - root-test-fixes.patch - - root-out-of-bounds.patch - - root-doxygen-tilde.patch - - root-noinst.patch -- Drop patches for issues fixed upstream: - - root-dont-link-jvm.patch - - root-system-pythia.patch -- Drop patch root-urw-otf-hack.patch - broken font file no longer present -- Drop Google Droid Sans Fallback font from EPEL 7 root-fonts package - (the font is now available in EPEL 7) -- Use two more patches from Fedora's llvm5.0 package -- New root-test-subdirs.patch patch for more instances of the same issue -- Fix a test not setting cache file directory so that it works offline -- Fix a compatibility issue with the EPEL 7 gtest version -- Fix a missing include -- Workaround optimization problems in the Geom library -- New subpackages due to library splits - - root-tree-dataframe and root-vecops from root-tree-player - - root-net-httpsniff from root-net-http -- New subpackages due to package splits - - root-gui-html from root-gui - - root-gui-qtgsi from root-gui-qt - - root-io-xmlparser from root-io-xml - - root-proof-player from root-proof -- New ROOT 7 subpackages - - root-graf-gpadv7 - - root-graf-primitives - - root-gui-fitpanelv7 - - root-gui-qt5webdisplay -- Rename root-guibuilder package to root-gui-builder -- Create empty .dist-info files so that rpm auto-generates provides - -* Sat Jun 30 2018 Mattias Ellert - 6.12.06-5 -- Adjust Vavilov test for Fedora 29 ix86 -- Adapt to python 3.7 - -* Tue Jun 19 2018 Miro Hrončok - 6.12.06-4 -- Rebuilt for Python 3.7 - -* Sat May 26 2018 Christian Dersch - 6.12.06-3 -- rebuilt for cfitsio 3.450 -- Adjust allowed deviation for PDF file sizes in stressGraphics test (aarch64) - -* Fri Feb 23 2018 Christian Dersch - 6.12.06-2 -- rebuilt for cfitsio 3.420 (so version bump) -- modified patch 13 to also produce smaller debuginfo on x86 (ld out of memory) -- disabled test gtest-tree-treeplayer-test-dataframe-snapshot on ARM - -* Sat Feb 17 2018 Mattias Ellert - 6.12.06-1 -- Update to 6.12.06 -- Drop patch root-Fix-constructing-the-GSL-MC-Integrator.patch (previously - backported) - -* Fri Feb 16 2018 Mattias Ellert - 6.12.04-4 -- Fix test failures found with new default compiler flags in Fedora 28 - -* Fri Feb 09 2018 Fedora Release Engineering - 6.12.04-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Sat Jan 20 2018 Björn Esser - 6.12.04-2 -- Rebuilt for switch to libxcrypt - -* Tue Dec 19 2017 Mattias Ellert - 6.12.04-1 -- Update to 6.12.04 -- Drop patches accepted upstream -- Drop previously backported patches -- Unbundle jsroot in root-net-http -- Add hack to work around broken charmaps in StandardSymbolsPS.otf -- Use local static script and style files for JupyROOT -- Fix some javascript errors -- Fix build rules for test binaries so that they are not installed -- Address memory usage issue for ARM build -- Drop pre-minified javascript and style files (Fedora packaging guidelines) -- Enable builds on ppc/ppc64/ppc64le (do not pass all tests, but the list - of failing tests is much shorter with this release) -- Add dependency on python[23]-jsmva to python[23]-jupyroot -- New sub-packages: root-gui-canvaspainter, root-gui-webdisplay and - root-hist-draw (not for EPEL 7 since they are root7 specific and - require c++-14) - -* Fri Oct 20 2017 Mattias Ellert - 6.10.08-1 -- Update to 6.10.08 -- Add BuildRequires on lz4-devel and xxhash-devel -- Workaround for missing gmock libraries only needed for gmock < 0.1.8 -- Address some warnings during documentation generation - -* Wed Sep 27 2017 Mattias Ellert - 6.10.06-1 -- Update to 6.10.06 -- Fixes for new mysql_config - -* Sat Aug 05 2017 Mattias Ellert - 6.10.04-1 -- Update to 6.10.04 -- Add temporary workaround for broken mariadb headers in Fedora 27 - -* Thu Aug 03 2017 Fedora Release Engineering - 6.10.02-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Thu Jul 27 2017 Fedora Release Engineering - 6.10.02-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Wed Jul 12 2017 Mattias Ellert - 6.10.02-3 -- Remove additional references in cmake files - -* Mon Jul 10 2017 Mattias Ellert - 6.10.02-2 -- Fix removal of mathtext, minicern and JupyROOT references from cmake files - -* Fri Jul 07 2017 Mattias Ellert - 6.10.02-1 -- Update to 6.10.02 - -* Wed Jun 14 2017 Mattias Ellert - 6.10.00-1 -- Update to 6.10.00 -- Drop patches accepted upstream -- Drop previously backported patches -- New sub-package: root-unfold -- Dropped sub-package: root-vdt - -* Tue May 16 2017 Mattias Ellert - 6.08.06-7 -- Remove JupyROOT references from cmake files -- Do not generate autoprovides for libJupyROOT.so - -* Mon May 15 2017 Fedora Release Engineering - 6.08.06-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild - -* Fri May 12 2017 Mattias Ellert - 6.08.06-5 -- Fix for macro scope issue (backport from upstream) -- Fix a problem loading the libJupyROOT CDLL module (use absolute path) -- Add ipython dependencies to the jupyroot packages -- Exclude s390x - endian issues -- Re-enable two tests on 32 bit arm - no longer failing -- Add BuildRequires on blas-devel (for TMVA) - -* Thu May 11 2017 Richard Shaw - 6.08.06-4 -- Rebuild for OCE 0.18.1. - -* Fri Apr 21 2017 Mattias Ellert - 6.08.06-3 -- Python 3 compatibility fixes (backport from upstream) - -* Wed Mar 15 2017 Mattias Ellert - 6.08.06-2 -- Fix relocation problems on aarch64 - using patch from the llvm package -- Re-enable building on aarch64 - works again with the above patch - -* Thu Mar 02 2017 Mattias Ellert - 6.08.06-1 -- Update to 6.08.06 -- Drop obsolete patch: root-tformulaparsingtests.patch -- Drop patches accepted upstream: root-spectrum-batch.patch and - root-missing-header-gcc7.patch -- Disable failing tests on s390x - -* Wed Mar 01 2017 Mattias Ellert - 6.08.04-3 -- Disable building on aarch64 (it is now broken again) -- Add missing header (gcc 7) -- Fix a test failure on Fedora 26 i686 -- Fix some format warnings/errors in GlobusAuth -- Use the right delimiter when splitting the icon path in TASImage -- Disable two more tests on 32 bit arm - -* Sat Feb 11 2017 Fedora Release Engineering - 6.08.04-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Sat Jan 14 2017 Mattias Ellert - 6.08.04-1 -- Update to 6.08.04 -- Fix broken TPad::WaitPrimitive (backport from git) -- Rebuild for gcc 6.3 - -* Thu Jan 12 2017 Igor Gnatenko - 6.08.02-4 -- Rebuild for readline 7.x - -* Tue Jan 10 2017 Orion Poplawski - 6.08.02-3 -- Rebuild for glew 2.0.0 - -* Thu Dec 22 2016 Miro Hrončok - 6.08.02-2 -- Rebuild for Python 3.6 - -* Tue Dec 06 2016 Mattias Ellert - 6.08.02-1 -- Update to 6.08.02 -- Drop patches accepted upstream -- Drop previously backported patches -- Drop obsolete patches -- Enable hadoop/hdfs support for all architectures - * libhdfs is now available for more architectures than ix86 and x86_64 -- Enable building on aarch64 -- Rename the python packages to python2-root and python3-root -- New sub-packages: python{2,3}-jupyroot, python{2,3}-jsmva -- Dropped sub-package: root-rootaas (replaced by python{2,3}-jupyroot) - -* Wed Sep 28 2016 Mattias Ellert - 6.06.08-2 -- Rebuild for gcc 6.2 - -* Thu Sep 08 2016 Mattias Ellert - 6.06.08-1 -- Update to 6.06.08 -- Add the packages providing the libraries listed by "root-config --libs" - as dependencies to root-core -- Add missing scriptlets to root-multiproc - -* Sun Aug 14 2016 Mattias Ellert - 6.06.06-4 -- Convert init scripts to systemd unit files - -* Tue Jul 19 2016 Fedora Release Engineering - 6.06.06-3 -- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages - -* Mon Jul 18 2016 Mattias Ellert - 6.06.06-2 -- Add requires on redhat-rpm-config to root-cling - -* Sun Jul 10 2016 Mattias Ellert - 6.06.06-1 -- Update to 6.06.06 -- Drop patches root-gfal2.patch and root-keysymbols.patch -- Make root-vdt package noarch - -* Sun Jun 19 2016 Mattias Ellert - 6.06.04-4 -- Add GuiTypes.h, KeySymbols.h and Buttons.h to dict (backport) -- Minor updates to patches - mostly backported from upstream -- Reenable hadoop/hdfs support for F24+ - -* Mon Jun 13 2016 Mattias Ellert - 6.06.04-3 -- Remove mathtext and minicern references from cmake files -- Fix the spelling of CMAKE_Fortran_FLAGS in a few places - -* Sat Jun 04 2016 Mattias Ellert - 6.06.04-2 -- Disable hadoop/hdfs support for F24+ (hadoop was retired) - -* Mon May 09 2016 Mattias Ellert - 6.06.04-1 -- Update to 6.06.04 -- Drop patch root-no-hexfloat-const.patch -- Add requires on gcc-c++ to root-cling - -* Fri Apr 15 2016 Mattias Ellert - 6.06.02-2 -- Rebuild for OCE-0.17.1 - -* Fri Apr 08 2016 Mattias Ellert - 6.06.02-1 -- Update to 6.06.02 (F24+, EPEL7) -- Change to cmake configuration (was using ./configure) -- Change to doxygen documentation generation (was using THTML) -- Run the test suite -- Remove compatibility with older EPEL (Group tags, BuildRoot tag, etc.) -- New sub-packages: root-multiproc, root-cling, root-r, root-r-tools, - root-geocad, root-tmva-python, root-tmva-r, root-tmva-gui, root-cli, - root-notebook and root-rootaas -- New subpackage for EPEL7: root-python34 -- Dropped sub-packages: root-cint, root-reflex, root-cintex, root-ruby - -* Fri Apr 08 2016 Mattias Ellert - 5.34.36-1 -- Update to 5.34.36 - -* Thu Feb 04 2016 Fedora Release Engineering - 5.34.32-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Sat Jan 16 2016 Mamoru TASAKA - 5.34.32-8 -- Rebuild again for https://fedoraproject.org/wiki/Changes/Ruby_2.3 - -* Thu Jan 14 2016 Adam Jackson - 5.34.32-7 -- Rebuild for glew 1.13 - -* Tue Jan 12 2016 Vít Ondruch - 5.34.32-6 -- Rebuilt for https://fedoraproject.org/wiki/Changes/Ruby_2.3 - -* Tue Nov 17 2015 Mattias Ellert - 5.34.32-5 -- Adapt to gfal 2.10 - uses a different #define -- Exclude ppc64le - has the same issues with cint as ppc and ppc64 - -* Tue Nov 10 2015 Fedora Release Engineering - 5.34.32-4 -- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5 - -* Fri Sep 25 2015 Mattias Ellert - 5.34.32-3 -- Add versioned dependencies between packages -- Reenable hadoop/hdfs support for F23+ - -* Wed Sep 16 2015 David Abdurachmanov - 5.34.32-2 -- Disable run-time dependency on gccxml in Reflex (allows installing on aarch64) (#1263206) -- Enable Cintex on aarch64 - -* Thu Jul 02 2015 Mattias Ellert - 5.34.32-1 -- Update to 5.34.32 -- New sub-package: root-fonts (STIX version 0.9 required by TMathText) -- Use GNU Free instead of Liberation, works better with TMathText -- Fix segfault when embedding Type 1 fonts -- Drop patch root-no-extra-formats.patch (workaround for above problem) - -* Thu Jun 18 2015 Fedora Release Engineering - 5.34.30-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Fri Apr 24 2015 Mattias Ellert - 5.34.30-1 -- Update to 5.34.30 -- New sub-package: root-python3 -- Disable hadoop/hdfs support for F23+ (not installable) -- Drop previously backported gcc 5 patches - -* Fri Apr 03 2015 Mattias Ellert - 5.34.28-1 -- Update to 5.34.28 -- Merge emacs support files into main package (guidelines updated) - -* Tue Feb 24 2015 Mattias Ellert - 5.34.26-1 -- Update to 5.34.26 -- Drop patch root-xrdversion.patch - -* Thu Jan 29 2015 Mattias Ellert - 5.34.24-3 -- Rebuild with fixed cairo (bz 1183242) - -* Sat Jan 17 2015 Mamoru TASAKA - 5.34.24-2 -- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_2.2 - -* Fri Dec 19 2014 Mattias Ellert - 5.34.24-1 -- Update to 5.34.24 -- Drop patch root-bsd-misc.patch - -* Thu Aug 28 2014 Mattias Ellert - 5.34.20-2 -- Move xproofd binaries from root-proofd to root-xproof -- Adjust EPEL 7 font dependencies -- Rebuild using new binutils (ld bug fixed - F21+) - -* Wed Aug 20 2014 Mattias Ellert - 5.34.20-1 -- Update to 5.34.20 -- Re-enable xrootd support for F21+ and EPEL7 (now ported to xrootd 4) -- Do not depend on wine's fonts -- Drop patch root-gccopt.patch - -* Mon Aug 18 2014 Fedora Release Engineering - 5.34.19-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Mon Jul 14 2014 Mattias Ellert - 5.34.19-1 -- Update to 5.34.19 -- Disable xrootd support for F21+ and EPEL7 (root not yet ported to xrootd 4) -- New sub-package: root-net-http -- Drop patches root-thtml-revert.patch, root-gfal2.patch and - root-proofx-link-iolib.patch - -* Mon Jun 30 2014 Mattias Ellert - 5.34.18-4 -- Add Requires on root-tree-player to root-gui-ged - -* Sun Jun 08 2014 Fedora Release Engineering - 5.34.18-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Sun May 04 2014 Mattias Ellert - 5.34.18-2 -- Rebuild for ruby 2.1 -- Fix build failure on F21 (missing symbol in libProofx linking) - -* Sat Mar 22 2014 Mattias Ellert - 5.34.18-1 -- Update to 5.34.18 -- Build GFAL module using libgfal2 -- New sub-package: root-vdt - -* Wed Feb 26 2014 Mattias Ellert - 5.34.17-1 -- Update to 5.34.17 - -* Fri Feb 14 2014 Mattias Ellert - 5.34.15-1 -- Update to 5.34.15 -- Drop patch root-davix.patch - -* Thu Jan 09 2014 Mattias Ellert - 5.34.14-3 -- Rebuild for cfitsio 3.360 - -* Mon Dec 23 2013 Mattias Ellert - 5.34.14-2 -- Adapt to davix >= 0.2.8 - -* Thu Dec 19 2013 Mattias Ellert - 5.34.14-1 -- Update to 5.34.14 -- New sub-package: root-net-davix -- Drop patch root-pythia8-incdir.patch - -* Tue Dec 03 2013 Mattias Ellert - 5.34.13-1 -- Update to 5.34.13 -- Remove java-devel build dependency (not needed with Fedora's libhdfs) -- Adapt to pythia8 >= 8.1.80 - -* Mon Nov 25 2013 Orion Poplawski - 5.34.10-3 -- Fix hadoop lib location - -* Mon Nov 18 2013 Dave Airlie - 5.34.10-2 -- rebuilt for GLEW 1.10 - -* Mon Sep 09 2013 Mattias Ellert - 5.34.10-1 -- Update to 5.34.10 -- New sub-package: root-io-hdfs (Fedora 20+) -- New sub-package: root-sql-sqlite - -* Thu Aug 08 2013 Mattias Ellert - 5.34.09-5 -- Exclude armv7hl - cint is not working -- Use _pkgdocdir when defined -- Use texlive-stix - -* Sun Aug 04 2013 Fedora Release Engineering - 5.34.09-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Thu Jul 18 2013 Petr Pisar - 5.34.09-3 -- Perl 5.18 rebuild - -* Tue Jul 16 2013 Mattias Ellert - 5.34.09-2 -- Rebuild for cfitsio 3.350 - -* Fri Jun 28 2013 Mattias Ellert - 5.34.09-1 -- Update to 5.34.09 -- New sub-package: root-montecarlo-pythia8 -- Drop patch root-gfal-bits.patch -- Use xz compression for source tarfile -- Update ancient root version in EPEL - -* Sat Apr 27 2013 Mattias Ellert - 5.34.07-1 -- Update to 5.34.07 - -* Sat Apr 27 2013 Mattias Ellert - 5.34.06-1 -- Update to 5.34.06 -- Drop patches root-gviz.patch, root-ruby-version.patch, - root-rev48681.patch and root-rev48831.patch - -* Wed Mar 20 2013 Mattias Ellert - 5.34.05-2 -- Rebuild for ruby 2.0 -- Rebuild for cfitsio 3.340 - -* Wed Feb 27 2013 Mattias Ellert - 5.34.05-1 -- Update to 5.34.05 +* Fri Mar 08 2013 Mattias Ellert - 5.32.04-2 - Rebuild for xrootd 3.3 -- Patch for latest graphviz (libcgraph) -- Drop patches root-glibc.patch and root-tclass-fix.patch +- Backport gfal fixes -* Thu Feb 14 2013 Fedora Release Engineering - 5.34.02-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild +* Wed Jul 18 2012 Mattias Ellert - 5.32.04-1 +- Update to 5.32.04 -* Thu Dec 13 2012 Adam Jackson - 5.34.02-2 -- Rebuild for glew 1.9.0 - -* Fri Oct 12 2012 Mattias Ellert - 5.34.02-1 -- Update to 5.34.02 - -* Sat Jul 28 2012 Mattias Ellert - 5.34.01-2 -- Rebuild for glew 1.7 - -* Tue Jul 17 2012 Mattias Ellert - 5.34.01-1 -- Update to 5.34.01 -- Remove sub-packages root-clarens and root-peac (dropped by upstream) - -* Thu Jul 05 2012 Mattias Ellert - 5.34.00-2 -- Do the glibc 2.16 patch properly - -* Sat Jun 09 2012 Mattias Ellert - 5.34.00-1 -- Update to 5.34.00 +* Thu Jun 28 2012 Mattias Ellert - 5.32.03-2 +- Backport fixes for using aclic with versioned libraries - New sub-package: root-io-gfal * Thu May 17 2012 Mattias Ellert - 5.32.03-1 @@ -5004,7 +2504,7 @@ fi - Enable dCache support - dcap library is now in Fedora - Use system unuran library instead of embedded sources -* Mon Feb 01 2010 Mattias Ellert - 5.26.00a-1 +* Mon Feb 1 2010 Mattias Ellert - 5.26.00a-1 - Update to 5.26.00a - Disable cintex package for non-intel architectures - Remove embedded gl2ps sources diff --git a/root.xml b/root.xml deleted file mode 100644 index 956f69e..0000000 --- a/root.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - ROOT data file - ROOT Datei - ROOT banque de donnees - ROOT data fil - ROOT data fil - ROOT data fil - - - - - - diff --git a/rootdrawing-logo.png b/rootdrawing-logo.png new file mode 100644 index 0000000..20ac823 Binary files /dev/null and b/rootdrawing-logo.png differ diff --git a/sources b/sources index a9df00b..aadd806 100644 --- a/sources +++ b/sources @@ -1,3 +1 @@ -SHA512 (root-6.40.04.tar.xz) = 674ea3de3f58d3bde15637925bec80984552cb5c4f6259ec68c2f7dc566014d9a3b2ee005e0f89b5cf20d9e5188dc5c9185d886a6701e315bb4771b068939282 -SHA512 (root-testfiles.tar.xz) = 4bb7f8ca00b1427ba49f6428e9cfe5908a2ffdd2ce4134d3bc169a0629198352b5500fe0cf92c121d148e5af41f7016c96038a77794a4d37d94e6ec0a9d75670 -SHA512 (clad-2.3.tar.gz) = 2d7e008ad88dd9e4b44d73e3187f8b1883e475845f5ac2d3b2c8e728508422e1e60e279940fefe322995751490f61f7d4768498c3660f9afa1206cc0e83bea33 +a7ab4544dc165a28a7a95f8eef1ae3d8 root-5.32.04.tar.gz