The package rpms/root.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/root.git/commit/?id=4a05ecac340ab....
Change:
+%ifarch %{ix86}
Thanks.
Full change:
============
commit 4a05ecac340abced89d52c6f4b54cc37e41f05ae
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Thu Aug 4 05:35:58 2022 +0200
Update to 6.26.06
diff --git a/root-get-rid-of-lsb_release.patch b/root-get-rid-of-lsb_release.patch
new file mode 100644
index 0000000..8dca2cc
--- /dev/null
+++ b/root-get-rid-of-lsb_release.patch
@@ -0,0 +1,245 @@
+From 2dde3d060aa21ff9d4a0612b991bd300b7704bdc Mon Sep 17 00:00:00 2001
+From: Axel Naumann <Axel.Naumann(a)cern.ch>
+Date: Fri, 22 Jul 2022 15:54:03 +0200
+Subject: [PATCH] [cmake,test] Get rid of `lsb_release`:
+
+It is available less and less often, and we do not actually
+benefit a lot from printing the distro (stress) or we can get
+the same info from /etc/os-release (cmake).
+---
+ cmake/modules/RootCPack.cmake | 11 +++++++++--
+ math/mathcore/test/stressGoFTest.cxx | 4 ----
+ test/bench.cxx | 4 ----
+ test/stress.cxx | 4 ----
+ test/stressFit.cxx | 4 ----
+ test/stressGUI.cxx | 4 ----
+ test/stressGeometry.cxx | 4 ----
+ test/stressGraphics.cxx | 4 ----
+ test/stressHepix.cxx | 4 ----
+ test/stressHistFactory.cxx | 4 ----
+ test/stressLinear.cxx | 4 ----
+ test/stressRooFit.cxx | 4 ----
+ test/stressRooStats.cxx | 4 ----
+ test/stressTMVA.cxx | 4 ----
+ 14 files changed, 9 insertions(+), 54 deletions(-)
+
+diff --git a/cmake/modules/RootCPack.cmake b/cmake/modules/RootCPack.cmake
+index a960eb81fd..807eac6ef2 100644
+--- a/cmake/modules/RootCPack.cmake
++++ b/cmake/modules/RootCPack.cmake
+@@ -107,8 +107,15 @@ elseif(WIN32)
+ set(OS_NAME_VERSION win32)
+ endif()
+ else()
+- execute_process(COMMAND lsb_release -is OUTPUT_VARIABLE osid
OUTPUT_STRIP_TRAILING_WHITESPACE)
+- execute_process(COMMAND lsb_release -rs OUTPUT_VARIABLE osvers
OUTPUT_STRIP_TRAILING_WHITESPACE)
++ if(EXISTS "/etc/os-release")
++ file(STRINGS /etc/os-release osid REGEX "^NAME=")
++ string(REGEX REPLACE "NAME=\"(.*)\"" "\\1" osid
"${osid}")
++ file(STRINGS /etc/os-release osvers REGEX "^VERSION_ID=")
++ string(REGEX REPLACE "NAME=\"(.*)\"" "\\1" osvers
"${osvers}")
++ else()
++ execute_process(COMMAND lsb_release -is OUTPUT_VARIABLE osid
OUTPUT_STRIP_TRAILING_WHITESPACE)
++ execute_process(COMMAND lsb_release -rs OUTPUT_VARIABLE osvers
OUTPUT_STRIP_TRAILING_WHITESPACE)
++ endif()
+ if(osid MATCHES Ubuntu)
+ string(REGEX REPLACE "([0-9]+)[.].*" "\\1" osvers
"${osvers}")
+ set(OS_NAME_VERSION Linux-ubuntu${osvers}-${arch})
+diff --git a/math/mathcore/test/stressGoFTest.cxx b/math/mathcore/test/stressGoFTest.cxx
+index a78ca99c90..5aa1b4ef70 100644
+--- a/math/mathcore/test/stressGoFTest.cxx
++++ b/math/mathcore/test/stressGoFTest.cxx
+@@ -56,10 +56,6 @@ struct GoFTStress {
+ TString sp = gSystem->GetFromPipe("uname -a");
+ sp.Resize(60);
+ printf("* SYS: %s\n",sp.Data());
+- if (strstr(gSystem->GetBuildNode(),"Linux")) {
+- sp = gSystem->GetFromPipe("lsb_release -d -s");
+- printf("* SYS: %s\n",sp.Data());
+- }
+ if (strstr(gSystem->GetBuildNode(),"Darwin")) {
+ sp = gSystem->GetFromPipe("sw_vers -productVersion");
+ sp += " Mac OS X ";
+diff --git a/test/bench.cxx b/test/bench.cxx
+index 82bc537e05..e89024e9d9 100644
+--- a/test/bench.cxx
++++ b/test/bench.cxx
+@@ -295,10 +295,6 @@ int main(int argc, char **argv)
+ TString sp = gSystem->GetFromPipe("uname -a");
+ sp.Resize(60);
+ printf("* SYS: %s\n",sp.Data());
+- if (strstr(gSystem->GetBuildNode(),"Linux")) {
+- sp = gSystem->GetFromPipe("lsb_release -d -s");
+- printf("* SYS: %s\n",sp.Data());
+- }
+ if (strstr(gSystem->GetBuildNode(),"Darwin")) {
+ sp = gSystem->GetFromPipe("sw_vers -productVersion");
+ sp += " Mac OS X ";
+diff --git a/test/stress.cxx b/test/stress.cxx
+index d3087fdd56..29dba1625d 100644
+--- a/test/stress.cxx
++++ b/test/stress.cxx
+@@ -200,10 +200,6 @@ void stress(Int_t nevent, Int_t style = 1,
+ TString sp = gSystem->GetFromPipe("uname -a");
+ sp.Resize(60);
+ printf("* SYS: %s\n",sp.Data());
+- if (strstr(gSystem->GetBuildNode(),"Linux")) {
+- sp = gSystem->GetFromPipe("lsb_release -d -s");
+- printf("* SYS: %s\n",sp.Data());
+- }
+ if (strstr(gSystem->GetBuildNode(),"Darwin")) {
+ sp = gSystem->GetFromPipe("sw_vers -productVersion");
+ sp += " Mac OS X ";
+diff --git a/test/stressFit.cxx b/test/stressFit.cxx
+index 667142eff9..80bbd0200f 100644
+--- a/test/stressFit.cxx
++++ b/test/stressFit.cxx
+@@ -646,10 +646,6 @@ Int_t stressFit(const char *type, const char *algo, Int_t N)
+ TString sp = gSystem->GetFromPipe("uname -a");
+ sp.Resize(60);
+ printf("* SYS: %s\n",sp.Data());
+- if (strstr(gSystem->GetBuildNode(),"Linux")) {
+- sp = gSystem->GetFromPipe("lsb_release -d -s");
+- printf("* SYS: %s\n",sp.Data());
+- }
+ if (strstr(gSystem->GetBuildNode(),"Darwin")) {
+ sp = gSystem->GetFromPipe("sw_vers -productVersion");
+ sp += " Mac OS X ";
+diff --git a/test/stressGUI.cxx b/test/stressGUI.cxx
+index 1a92df5341..9daae5f5fe 100644
+--- a/test/stressGUI.cxx
++++ b/test/stressGUI.cxx
+@@ -307,10 +307,6 @@ void stressGUI()
+ TString sp = gSystem->GetFromPipe("uname -a");
+ sp.Resize(60);
+ printf("* SYS: %s\n",sp.Data());
+- if (strstr(gSystem->GetBuildNode(),"Linux")) {
+- sp = gSystem->GetFromPipe("lsb_release -d -s");
+- printf("* SYS: %s\n",sp.Data());
+- }
+ if (strstr(gSystem->GetBuildNode(),"Darwin")) {
+ sp = gSystem->GetFromPipe("sw_vers -productVersion");
+ sp += " Mac OS X ";
+diff --git a/test/stressGeometry.cxx b/test/stressGeometry.cxx
+index 5e81f5f2ca..2dc366cbf8 100644
+--- a/test/stressGeometry.cxx
++++ b/test/stressGeometry.cxx
+@@ -295,10 +295,6 @@ void stressGeometry(const char *exp="*", Bool_t
generate_ref=kFALSE, Bool_t vecg
+ TString sp = gSystem->GetFromPipe("uname -a");
+ sp.Resize(60);
+ printf("* SYS: %s\n",sp.Data());
+- if (strstr(gSystem->GetBuildNode(),"Linux")) {
+- sp = gSystem->GetFromPipe("lsb_release -d -s");
+- printf("* SYS: %s\n",sp.Data());
+- }
+ if (strstr(gSystem->GetBuildNode(),"Darwin")) {
+ sp = gSystem->GetFromPipe("sw_vers -productVersion");
+ sp += " Mac OS X ";
+diff --git a/test/stressGraphics.cxx b/test/stressGraphics.cxx
+index 5fe958774d..8b6aa9af9a 100644
+--- a/test/stressGraphics.cxx
++++ b/test/stressGraphics.cxx
+@@ -419,10 +419,6 @@ void stressGraphics(Int_t verbose = 0)
+ TString sp = gSystem->GetFromPipe("uname -a");
+ sp.Resize(60);
+ printf("* SYS: %s\n",sp.Data());
+- if (strstr(gSystem->GetBuildNode(),"Linux")) {
+- sp = gSystem->GetFromPipe("lsb_release -d -s");
+- printf("* SYS: %s\n",sp.Data());
+- }
+ if (strstr(gSystem->GetBuildNode(),"Darwin")) {
+ sp = gSystem->GetFromPipe("sw_vers -productVersion");
+ sp += " Mac OS X ";
+diff --git a/test/stressHepix.cxx b/test/stressHepix.cxx
+index d8d2a65a64..01dfc67a54 100644
+--- a/test/stressHepix.cxx
++++ b/test/stressHepix.cxx
+@@ -143,10 +143,6 @@ int main(int argc, char **argv)
+ TString sp = gSystem->GetFromPipe("uname -a");
+ sp.Resize(60);
+ printf("* SYS: %s\n",sp.Data());
+- if (strstr(gSystem->GetBuildNode(),"Linux")) {
+- sp = gSystem->GetFromPipe("lsb_release -d -s");
+- printf("* SYS: %s\n",sp.Data());
+- }
+ if (strstr(gSystem->GetBuildNode(),"Darwin")) {
+ sp = gSystem->GetFromPipe("sw_vers -productVersion");
+ sp += " Mac OS X ";
+diff --git a/test/stressHistFactory.cxx b/test/stressHistFactory.cxx
+index b84fa70f86..ec6deac031 100644
+--- a/test/stressHistFactory.cxx
++++ b/test/stressHistFactory.cxx
+@@ -139,10 +139,6 @@ Int_t stressHistFactory(const char* refFile, Bool_t writeRef, Int_t
verbose, Boo
+ if (UNIX) {
+ TString sp = gSystem->GetFromPipe("uname -a");
+ cout << "* SYS: " << sp << endl;
+- if (strstr(gSystem->GetBuildNode(), "Linux")) {
+- sp = gSystem->GetFromPipe("lsb_release -d -s");
+- cout << "* SYS: " << sp << endl;
+- }
+ if (strstr(gSystem->GetBuildNode(), "Darwin")) {
+ sp = gSystem->GetFromPipe("sw_vers -productVersion");
+ sp += " Mac OS X ";
+diff --git a/test/stressLinear.cxx b/test/stressLinear.cxx
+index ce2e1af23d..e34ddf85a2 100644
+--- a/test/stressLinear.cxx
++++ b/test/stressLinear.cxx
+@@ -296,10 +296,6 @@ void stressLinear(Int_t maxSizeReq,Int_t verbose)
+ TString sp = gSystem->GetFromPipe("uname -a");
+ sp.Resize(60);
+ printf("* SYS: %s\n",sp.Data());
+- if (strstr(gSystem->GetBuildNode(),"Linux")) {
+- sp = gSystem->GetFromPipe("lsb_release -d -s");
+- printf("* SYS: %s\n",sp.Data());
+- }
+ if (strstr(gSystem->GetBuildNode(),"Darwin")) {
+ sp = gSystem->GetFromPipe("sw_vers -productVersion");
+ sp += " Mac OS X ";
+diff --git a/test/stressRooFit.cxx b/test/stressRooFit.cxx
+index 18e214ec0c..4f7c5a3d83 100644
+--- a/test/stressRooFit.cxx
++++ b/test/stressRooFit.cxx
+@@ -197,10 +197,6 @@ Int_t stressRooFit(const char* refFile, Bool_t writeRef, Int_t
doVerbose, Int_t
+ TString sp = gSystem->GetFromPipe("uname -a");
+ sp.Resize(60);
+ printf("* SYS: %s\n",sp.Data());
+- if (strstr(gSystem->GetBuildNode(),"Linux")) {
+- sp = gSystem->GetFromPipe("lsb_release -d -s");
+- printf("* SYS: %s\n",sp.Data());
+- }
+ if (strstr(gSystem->GetBuildNode(),"Darwin")) {
+ sp = gSystem->GetFromPipe("sw_vers -productVersion");
+ sp += " Mac OS X ";
+diff --git a/test/stressRooStats.cxx b/test/stressRooStats.cxx
+index 35598b5919..adb3dc4cd8 100644
+--- a/test/stressRooStats.cxx
++++ b/test/stressRooStats.cxx
+@@ -232,10 +232,6 @@ Int_t stressRooStats(const char* refFile, Bool_t writeRef, Int_t
verbose, Bool_t
+ if (UNIX) {
+ TString sp = gSystem->GetFromPipe("uname -a");
+ cout << "* SYS: " << sp << endl;
+- if (strstr(gSystem->GetBuildNode(), "Linux")) {
+- sp = gSystem->GetFromPipe("lsb_release -d -s");
+- cout << "* SYS: " << sp << endl;
+- }
+ if (strstr(gSystem->GetBuildNode(), "Darwin")) {
+ sp = gSystem->GetFromPipe("sw_vers -productVersion");
+ sp += " Mac OS X ";
+diff --git a/test/stressTMVA.cxx b/test/stressTMVA.cxx
+index f7638a73f6..22e3feaf65 100644
+--- a/test/stressTMVA.cxx
++++ b/test/stressTMVA.cxx
+@@ -3193,10 +3193,6 @@ int main(int argc, char **argv)
+ TString sp = gSystem->GetFromPipe("uname -a");
+ sp.Resize(60);
+ printf("* SYS: %s\n",sp.Data());
+- if (strstr(gSystem->GetBuildNode(),"Linux")) {
+- sp = gSystem->GetFromPipe("lsb_release -d -s");
+- printf("* SYS: %s\n",sp.Data());
+- }
+ if (strstr(gSystem->GetBuildNode(),"Darwin")) {
+ sp = gSystem->GetFromPipe("sw_vers -productVersion");
+ sp += " Mac OS X ";
+--
+2.37.1
+
diff --git a/root-old-gtest-compat.patch b/root-old-gtest-compat.patch
index e9f4140..7bce796 100644
--- a/root-old-gtest-compat.patch
+++ b/root-old-gtest-compat.patch
@@ -441,3 +441,37 @@ index 7b513a858b..bea39636ce 100644
--
2.35.1
+From cae450e0210fe584ef30d155a4217cfe2f5aa358 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Sat, 30 Jul 2022 17:05:31 +0200
+Subject: [PATCH] Backward compatibility with older googletest versions in EPEL
+
+---
+ tree/dataframe/test/dataframe_datasetspec.cxx | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/tree/dataframe/test/dataframe_datasetspec.cxx
b/tree/dataframe/test/dataframe_datasetspec.cxx
+index b422dcf28b..14329102af 100644
+--- a/tree/dataframe/test/dataframe_datasetspec.cxx
++++ b/tree/dataframe/test/dataframe_datasetspec.cxx
+@@ -1,4 +1,9 @@
+ #include <gtest/gtest.h>
++
++#ifndef INSTANTIATE_TEST_SUITE_P
++#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
++#endif
++
+ #include <ROOT/RDataFrame.hxx>
+ #include <ROOT/RVec.hxx>
+ #include <ROOT/RDFHelpers.hxx>
+@@ -36,6 +41,7 @@ protected:
+
+ ~RDatasetSpecTest() {}
+
++public:
+ static void SetUpTestCase()
+ {
+ auto dfWriter0 = RDataFrame(5).Define("z", [](ULong64_t e) { return e +
100; }, {"rdfentry_"});
+--
+2.37.1
+
diff --git a/root.spec b/root.spec
index e548c21..89a6c6e 100644
--- a/root.spec
+++ b/root.spec
@@ -68,9 +68,9 @@
%global __provides_exclude_from
^(%{?python2_sitearch:%{python2_sitearch}|}%{python3_sitearch})/lib.*\\.so$
Name: root
-Version: 6.26.04
+Version: 6.26.06
%global libversion %(cut -d. -f 1-2 <<< %{version})
-Release: 5%{?dist}
+Release: 1%{?dist}
Summary: Numerical data analysis framework
License: LGPLv2+
@@ -187,6 +187,8 @@
Patch35: %{name}-PyROOT-code.h-must-not-be-included-directly-in-3.11.patch
Patch36: %{name}-PyROOT-Prevent-cast-error-when-calling-PyTuple_SET_I.patch
# Backport additional python 3.11 fixes from CPyCppyy upstream
Patch37: %{name}-Python-3.11-support-backported-from-CPyCppyy.patch
+# Backport
+Patch38: %{name}-get-rid-of-lsb_release.patch
%if %{?rhel}%{!?rhel:0} == 7
BuildRequires: devtoolset-8-toolchain
@@ -2053,6 +2055,7 @@ This package contains an ntuple extension for ROOT 7.
%patch35 -p1
%patch36 -p1
%patch37 -p1
+%patch38 -p1
# Remove bundled sources in order to be sure they are not used
# * afterimage
@@ -2096,6 +2099,17 @@ sed -e '/^\.UR/d' -e '/^\.UE/d' -i man/man1/*
rm etc/notebook/JsMVA/js/*.min.js
rm etc/notebook/JsMVA/css/*.min.css
+%if %{?rhel}%{!?rhel:0} == 7 || %{?rhel}%{!?rhel:0} == 8
+# Allow older json on EPEL 7/8
+sed 's!nlohmann_json 3.9! nlohmann_json 3.6!' \
+ -i cmake/modules/SearchInstalledSoftware.cmake
+%endif
+
+%if %{?rhel}%{!?rhel:0} == 7
+# On EPEL 7 disable test that fails to compile
+sed 's!.*dataframe_datasetspec!### &!' -i tree/dataframe/test/CMakeLists.txt
+%endif
+
%build
%if %{?rhel}%{!?rhel:0} == 7
. /opt/rh/devtoolset-8/enable
@@ -2630,14 +2644,6 @@ pushd tmva/tmva/test/envelope
ln -s ../../../../../files files
popd
-# Some of the tests call lsb_release -d -s
-# Provide a replacement script instead of build requiring redhat-lsb-core
-cat > bin/lsb_release << EOF
-#! /bin/sh
-cat /etc/redhat-release
-EOF
-chmod +x bin/lsb_release
-
# Exclude some tests that can not be run
#
# - test-stressIOPlugins-*
@@ -2764,13 +2770,20 @@ tutorial-dataframe-df026_AsNumpyArrays-py|\
tutorial-roofit-rf409_NumPyPandasToRooFit-py"
%endif
+%ifarch %{ix86}
+# Test failing on ix86 only
+# - gtest-tree-dataframe-test-dataframe-snapshot
+excluded="${excluded}|gtest-tree-dataframe-test-dataframe-snapshot"
+%endif
+
%ifarch %{ix86} %{arm}
%if %{?fedora}%{!?fedora:0} <= 35
# Tests failing on 32 bit architectures (dataframe)
-#
+# - gtest-roofit-RDataFrameHelpers-test-testActionHelpers
# - gtest-tree-dataframe-test-dataframe-*
# - gtest-tree-dataframe-test-datasource-*
excluded="${excluded}|\
+gtest-roofit-RDataFrameHelpers-test-testActionHelpers|\
gtest-tree-dataframe-test-dataframe|\
gtest-tree-dataframe-test-datasource"
%endif
@@ -2843,7 +2856,6 @@ tutorial-dataframe-df032_MakeNumpyDataFrame-py"
# - tutorial-pyroot-formula1-py
excluded="${excluded}|\
gtest-tmva-tmva-test-branchlessForest|\
-tutorial-gl-gltf3|\
tutorial-math-kdTreeBinning|\
tutorial-unfold-testUnfold7c|\
tutorial-hist-fillrandom-py|\
@@ -2951,12 +2963,15 @@ pyunittests-pyroot-pyz-ttree-iterable|\
pyunittests-pyroot-pyz-ttree-setbranchaddress|\
tutorial-dataframe-df014_CSVDataSource-py|\
tutorial-dataframe-df017_vecOpsHEP-py|\
+tutorial-pyroot-fit1-py|\
tutorial-pyroot-h1ReadAndDraw-py|\
tutorial-pyroot-hsimple-py|\
+tutorial-pyroot-hsum-py|\
tutorial-pyroot-ntuple1-py|\
tutorial-pyroot-staff-py|\
tutorial-pyroot-tornado-py|\
-tutorial-roofit-rf503_wspaceread-py"
+tutorial-roofit-rf503_wspaceread-py|\
+tutorial-roofit-rf512_wsfactory_oper-py"
%endif
# Filter out parts of tests that require remote network access
@@ -3986,6 +4001,9 @@ fi
%endif
%changelog
+* Sat Jul 30 2022 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.06-1
+- Update to 6.26.06
+
* Sat Jul 23 2022 Fedora Release Engineering <releng(a)fedoraproject.org> -
6.26.04-5
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
diff --git a/sources b/sources
index 0ac5ec5..bd0e6ae 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (root-6.26.04.tar.xz) =
0ca0efa082cedce8017293d06ec92c76948f70b6b565efbc6cf4cc78da54017b5022d249dd69abd3588fb874942437318f9a136ed4b144adc820ff41fc1154ee
+SHA512 (root-6.26.06.tar.xz) =
6002de6c8b1f43647356d008ca4ed369107ed67ba129271f01180544ad38120f0a26180cd297065fab3669e55671b7ceb53a5ead0c4f61b2ed31b68753bc8adb
SHA512 (root-testfiles.tar.xz) =
945aef1a0cf5af672d4ab84b0ac00b76118e93008ff72447658ee82d9e955a1540af3ff7126e701418872f1d91b92ee96d4985840a519036c42732023a13f00f
commit ddfa4e1c9bb29155f99efc17c568eebde31eb026
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Sat Jul 23 00:57:28 2022 +0000
Rebuilt for
https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/root.spec b/root.spec
index 7f2fc8f..e548c21 100644
--- a/root.spec
+++ b/root.spec
@@ -70,7 +70,7 @@
Name: root
Version: 6.26.04
%global libversion %(cut -d. -f 1-2 <<< %{version})
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: Numerical data analysis framework
License: LGPLv2+
@@ -3986,6 +3986,9 @@ fi
%endif
%changelog
+* Sat Jul 23 2022 Fedora Release Engineering <releng(a)fedoraproject.org> -
6.26.04-5
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
+
* Mon Jul 18 2022 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.04-4
- Don't use yuicompressor on Fedora (Java no longer available on ix86)
commit b2e4c897d28dee2ecfb4e35c14b58889dd699206
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Mon Jul 18 23:37:13 2022 +0200
Don't use yuicompressor on Fedora (Java no longer available on ix86)
diff --git a/root.spec b/root.spec
index b92f433..7f2fc8f 100644
--- a/root.spec
+++ b/root.spec
@@ -70,7 +70,7 @@
Name: root
Version: 6.26.04
%global libversion %(cut -d. -f 1-2 <<< %{version})
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: Numerical data analysis framework
License: LGPLv2+
@@ -294,7 +294,12 @@ BuildRequires: protobuf-devel >= 3.0
%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} == 8
BuildRequires: python%{python3_pkgversion}-pandas
%endif
+%if %{?fedora}%{!?fedora:0}
+BuildRequires: python3-rcssmin
+BuildRequires: uglify-js
+%else
BuildRequires: yuicompressor
+%endif
BuildRequires: perl-generators
BuildRequires: gtest-devel
BuildRequires: gmock-devel
@@ -2106,10 +2111,18 @@ unset QTINC
# Minify script and style files
for s in etc/notebook/JsMVA/js/*.js ; do
+%if %{?fedora}%{!?fedora:0}
+ uglifyjs ${s} -c -m -o ${s%.js}.min.js
+%else
yuicompressor ${s} -o ${s%.js}.min.js
+%endif
done
for s in etc/notebook/JsMVA/css/*.css ; do
+%if %{?fedora}%{!?fedora:0}
+ python3 -m rcssmin < ${s} > ${s%.css}.min.css
+%else
yuicompressor ${s} -o ${s%.css}.min.css
+%endif
done
# Avoid overlinking (this used to be the default with the old configure script)
@@ -3973,6 +3986,9 @@ fi
%endif
%changelog
+* Mon Jul 18 2022 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.04-4
+- Don't use yuicompressor on Fedora (Java no longer available on ix86)
+
* Sun Jul 03 2022 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.04-3
- Backport python 3.11 fixes from upstream
- Backport additional python 3.11 fixes from CPyCppyy upstream
commit dacf8d779ae7ee3db6d1ea09327963f857946c94
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Sun Jul 3 10:21:52 2022 +0200
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
diff --git a/root-PyROOT-Prevent-cast-error-when-calling-PyTuple_SET_I.patch
b/root-PyROOT-Prevent-cast-error-when-calling-PyTuple_SET_I.patch
new file mode 100644
index 0000000..ca908b8
--- /dev/null
+++ b/root-PyROOT-Prevent-cast-error-when-calling-PyTuple_SET_I.patch
@@ -0,0 +1,29 @@
+From a12f3b736a9c69e0d69e7f483e50e7cdf59d9fd2 Mon Sep 17 00:00:00 2001
+From: Enric Tejedor Saavedra <enric.tejedor.saavedra(a)cern.ch>
+Date: Fri, 10 Jun 2022 16:42:49 +0200
+Subject: [PATCH] [PyROOT] Prevent cast error when calling PyTuple_SET_ITEM in
+ 3.11
+
+PyTuple_SET_ITEM ends up calling _PyObject_CAST(nullptr) which
+causes "error: invalid cast from type 'std::nullptr_t' to type
+'const PyObject*' {aka 'const _object*'}
+---
+ bindings/pyroot/cppyy/CPyCppyy/src/CPPMethod.cxx | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/bindings/pyroot/cppyy/CPyCppyy/src/CPPMethod.cxx
b/bindings/pyroot/cppyy/CPyCppyy/src/CPPMethod.cxx
+index 685ad3dc60..2189348594 100644
+--- a/bindings/pyroot/cppyy/CPyCppyy/src/CPPMethod.cxx
++++ b/bindings/pyroot/cppyy/CPyCppyy/src/CPPMethod.cxx
+@@ -580,7 +580,7 @@ PyObject* CPyCppyy::CPPMethod::ProcessKeywords(PyObject* self,
PyObject* args, P
+ // set all values to zero to be able to check them later (this also guarantees normal
+ // cleanup by the tuple deallocation)
+ for (Py_ssize_t i = 0; i < nArgs+nKeys; ++i)
+- PyTuple_SET_ITEM(newArgs, i, nullptr);
++ PyTuple_SET_ITEM(newArgs, i, static_cast<PyObject*>(nullptr));
+
+ // next, insert the keyword values
+ PyObject *key, *value;
+--
+2.36.1
+
diff --git a/root-PyROOT-code.h-must-not-be-included-directly-in-3.11.patch
b/root-PyROOT-code.h-must-not-be-included-directly-in-3.11.patch
new file mode 100644
index 0000000..a845fa4
--- /dev/null
+++ b/root-PyROOT-code.h-must-not-be-included-directly-in-3.11.patch
@@ -0,0 +1,34 @@
+From 484deb056dacf768aba4954073b41105c431bffc Mon Sep 17 00:00:00 2001
+From: Enric Tejedor Saavedra <enric.tejedor.saavedra(a)cern.ch>
+Date: Thu, 9 Jun 2022 12:24:07 +0200
+Subject: [PATCH] [PyROOT] code.h must not be included directly in 3.11
+
+It has been moved to Include/cpython, and it is included by Python.h.
+
+See:
+https://docs.python.org/3.11/whatsnew/3.11.html
+---
+ bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx
b/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx
+index 59997e390d..28bbd635c2 100644
+--- a/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx
++++ b/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx
+@@ -1,10 +1,10 @@
+ // Bindings
+ #include "CPyCppyy.h"
+ #include "structmember.h" // from Python
+-#if PY_VERSION_HEX >= 0x02050000
+-#include "code.h" // from Python
+-#else
++#if PY_VERSION_HEX < 0x02050000
+ #include "compile.h" // from Python
++#elif PY_VERSION_HEX < 0x030b0000
++#include "code.h" // from Python
+ #endif
+ #ifndef CO_NOFREE
+ // python2.2 does not have CO_NOFREE defined
+--
+2.36.1
+
diff --git a/root-Python-3.11-support-backported-from-CPyCppyy.patch
b/root-Python-3.11-support-backported-from-CPyCppyy.patch
new file mode 100644
index 0000000..734e22e
--- /dev/null
+++ b/root-Python-3.11-support-backported-from-CPyCppyy.patch
@@ -0,0 +1,220 @@
+From 07693d05ad785d495a9c1d5af27399481b43c3f5 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Fri, 1 Jul 2022 06:50:31 +0200
+Subject: [PATCH] Python 3.11 support - backported from CPyCppyy
+
+---
+ bindings/pyroot/cppyy/CPyCppyy/src/API.cxx | 11 ++++++++++-
+ .../pyroot/cppyy/CPyCppyy/src/CPPInstance.cxx | 1 -
+ .../pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx | 8 +++++---
+ bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyy.h | 5 ++++-
+ .../cppyy/CPyCppyy/src/CPyCppyyModule.cxx | 19 +++++++++++++++++++
+ .../cppyy/CPyCppyy/src/MemoryRegulator.cxx | 2 +-
+ .../pyroot/cppyy/CPyCppyy/src/Utility.cxx | 2 ++
+ bindings/pyroot/cppyy/CPyCppyy/src/Utility.h | 2 ++
+ 8 files changed, 43 insertions(+), 7 deletions(-)
+
+diff --git a/bindings/pyroot/cppyy/CPyCppyy/src/API.cxx
b/bindings/pyroot/cppyy/CPyCppyy/src/API.cxx
+index 0cc4c8247b..4c17f54bb0 100644
+--- a/bindings/pyroot/cppyy/CPyCppyy/src/API.cxx
++++ b/bindings/pyroot/cppyy/CPyCppyy/src/API.cxx
+@@ -49,7 +49,14 @@ static bool Initialize()
+ #if PY_VERSION_HEX < 0x03020000
+ PyEval_InitThreads();
+ #endif
++#if PY_VERSION_HEX < 0x03080000
+ Py_Initialize();
++#else
++ PyConfig config;
++ PyConfig_InitPythonConfig(&config);
++ PyConfig_SetString(&config, &config.program_name, L"cppyy");
++ Py_InitializeFromConfig(&config);
++#endif
+ #if PY_VERSION_HEX >= 0x03020000
+ #if PY_VERSION_HEX < 0x03090000
+ PyEval_InitThreads();
+@@ -66,10 +73,12 @@ static bool Initialize()
+ // set the command line arguments on python's sys.argv
+ #if PY_VERSION_HEX < 0x03000000
+ char* argv[] = {const_cast<char*>("cppyy")};
+-#else
++#elif PY_VERSION_HEX < 0x03080000
+ wchar_t* argv[] = {const_cast<wchar_t*>(L"cppyy")};
+ #endif
++#if PY_VERSION_HEX < 0x03080000
+ PySys_SetArgv(sizeof(argv)/sizeof(argv[0]), argv);
++#endif
+
+ // force loading of the cppyy module
+ PyRun_SimpleString(const_cast<char*>("import cppyy"));
+diff --git a/bindings/pyroot/cppyy/CPyCppyy/src/CPPInstance.cxx
b/bindings/pyroot/cppyy/CPyCppyy/src/CPPInstance.cxx
+index 73fb8099b5..f2eea396af 100644
+--- a/bindings/pyroot/cppyy/CPyCppyy/src/CPPInstance.cxx
++++ b/bindings/pyroot/cppyy/CPyCppyy/src/CPPInstance.cxx
+@@ -764,7 +764,6 @@ PyTypeObject CPPInstance_Type = {
+ 0, // tp_as_buffer
+ Py_TPFLAGS_DEFAULT |
+ Py_TPFLAGS_BASETYPE |
+- Py_TPFLAGS_HAVE_GC |
+ Py_TPFLAGS_CHECKTYPES, // tp_flags
+ (char*)"cppyy object proxy (internal)", // tp_doc
+ 0, // tp_traverse
+diff --git a/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx
b/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx
+index 28bbd635c2..7eb2de8b01 100644
+--- a/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx
++++ b/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx
+@@ -1,11 +1,13 @@
+ // Bindings
+ #include "CPyCppyy.h"
+ #include "structmember.h" // from Python
+-#if PY_VERSION_HEX < 0x02050000
+-#include "compile.h" // from Python
+-#elif PY_VERSION_HEX < 0x030b0000
++#if PY_VERSION_HEX >= 0x02050000
++#if PY_VERSION_HEX < 0x030b0000
+ #include "code.h" // from Python
+ #endif
++#else
++#include "compile.h" // from Python
++#endif
+ #ifndef CO_NOFREE
+ // python2.2 does not have CO_NOFREE defined
+ #define CO_NOFREE 0x0040
+diff --git a/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyy.h
b/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyy.h
+index 11221cd7ef..35af3c8a56 100644
+--- a/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyy.h
++++ b/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyy.h
+@@ -68,7 +68,10 @@ typedef dim_t* dims_t;
+ #if PY_VERSION_HEX < 0x03030000
+ typedef PyDictEntry* (*dict_lookup_func)(PyDictObject*, PyObject*, long);
+ #else
+-#if PY_VERSION_HEX >= 0x03060000
++#if PY_VERSION_HEX >= 0x030b0000
++ typedef Py_ssize_t (*dict_lookup_func)(
++ PyDictObject*, PyObject*, Py_hash_t, PyObject**);
++#elif PY_VERSION_HEX >= 0x03060000
+ typedef Py_ssize_t (*dict_lookup_func)(
+ PyDictObject*, PyObject*, Py_hash_t, PyObject***, Py_ssize_t*);
+ #else
+diff --git a/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyyModule.cxx
b/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyyModule.cxx
+index 411a57a862..7a32ab365f 100644
+--- a/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyyModule.cxx
++++ b/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyyModule.cxx
+@@ -26,6 +26,11 @@
+ #include <vector>
+
+
++// Note: as of py3.11, dictionary objects no longer carry a function pointer for
++// the lookup, so it can no longer be shimmed and "from cppyy.interactive import
*"
++// thus no longer works.
++#if PY_VERSION_HEX < 0x030b0000
++
+ //- from Python's dictobject.c -------------------------------------------------
+ #if PY_VERSION_HEX >= 0x03030000
+ typedef struct PyDictKeyEntry {
+@@ -65,6 +70,8 @@
+
+ #endif
+
++#endif // PY_VERSION_HEX < 0x030b0000
++
+ //- data -----------------------------------------------------------------------
+ static PyObject* nullptr_repr(PyObject*)
+ {
+@@ -177,7 +184,9 @@ namespace {
+
+ using namespace CPyCppyy;
+
++
+ //----------------------------------------------------------------------------
++#if PY_VERSION_HEX < 0x030b0000
+ namespace {
+
+ class GblGetter {
+@@ -330,9 +339,12 @@ PyDictEntry* CPyCppyyLookDictString(PyDictObject* mp, PyObject* key,
long hash)
+ return ep;
+ }
+
++#endif // PY_VERSION_HEX < 0x030b0000
++
+ //----------------------------------------------------------------------------
+ static PyObject* SetCppLazyLookup(PyObject*, PyObject* args)
+ {
++#if PY_VERSION_HEX < 0x030b0000
+ // Modify the given dictionary to install the lookup function that also
+ // tries the global C++ namespace before failing. Called on a module's dictionary,
+ // this allows for lazy lookups. This works fine for p3.2 and earlier, but should
+@@ -343,6 +355,11 @@ static PyObject* SetCppLazyLookup(PyObject*, PyObject* args)
+ return nullptr;
+
+ CPYCPPYY_GET_DICT_LOOKUP(dict) = CPyCppyyLookDictString;
++#else
++// As of py3.11, there is no longer a lookup function pointer in the dict object
++// to replace. Since this feature is not widely advertised, it's simply droped
++ PyErr_Warn(PyExc_RuntimeWarning, (char*)"lazy lookup is no longer
supported");
++#endif
+
+ Py_RETURN_NONE;
+ }
+@@ -813,6 +830,7 @@ LIBCPPYY_INIT_FUNCTION(extern "C" void initlibcppyy,
PY_MAJOR_VERSION, _, PY_MIN
+ PyEval_InitThreads();
+ #endif
+
++#if PY_VERSION_HEX < 0x030b0000
+ // prepare for lazyness (the insert is needed to capture the most generic lookup
+ // function, just in case ...)
+ PyObject* dict = PyDict_New();
+@@ -825,6 +843,7 @@ LIBCPPYY_INIT_FUNCTION(extern "C" void initlibcppyy,
PY_MAJOR_VERSION, _, PY_MIN
+ gDictLookupOrg = (dict_lookup_func)((PyDictObject*)dict)->ma_lookup;
+ #endif
+ Py_DECREF(dict);
++#endif // PY_VERSION_HEX < 0x030b0000
+
+ // setup this module
+ #if PY_VERSION_HEX >= 0x03000000
+diff --git a/bindings/pyroot/cppyy/CPyCppyy/src/MemoryRegulator.cxx
b/bindings/pyroot/cppyy/CPyCppyy/src/MemoryRegulator.cxx
+index f9e92f9c8c..5da48364ac 100644
+--- a/bindings/pyroot/cppyy/CPyCppyy/src/MemoryRegulator.cxx
++++ b/bindings/pyroot/cppyy/CPyCppyy/src/MemoryRegulator.cxx
+@@ -45,7 +45,7 @@ struct InitCPyCppyy_NoneType_t {
+ ((PyVarObject&)CPyCppyy_NoneType).ob_size = 0;
+
+ CPyCppyy_NoneType.tp_name =
const_cast<char*>("CPyCppyy_NoneType");
+- CPyCppyy_NoneType.tp_flags = Py_TPFLAGS_HAVE_RICHCOMPARE |
Py_TPFLAGS_HAVE_GC;
++ CPyCppyy_NoneType.tp_flags = Py_TPFLAGS_HAVE_RICHCOMPARE;
+
+ CPyCppyy_NoneType.tp_traverse = (traverseproc)0;
+ CPyCppyy_NoneType.tp_clear = (inquiry)0;
+diff --git a/bindings/pyroot/cppyy/CPyCppyy/src/Utility.cxx
b/bindings/pyroot/cppyy/CPyCppyy/src/Utility.cxx
+index 14ea1b83e8..1cf8f89bd2 100644
+--- a/bindings/pyroot/cppyy/CPyCppyy/src/Utility.cxx
++++ b/bindings/pyroot/cppyy/CPyCppyy/src/Utility.cxx
+@@ -24,8 +24,10 @@
+
+
+ //- data _____________________________________________________________________
++#if PY_VERSION_HEX < 0x030b0000
+ dict_lookup_func CPyCppyy::gDictLookupOrg = 0;
+ bool CPyCppyy::gDictLookupActive = false;
++#endif
+
+ typedef std::map<std::string, std::string> TC2POperatorMapping_t;
+ static TC2POperatorMapping_t gC2POperatorMapping;
+diff --git a/bindings/pyroot/cppyy/CPyCppyy/src/Utility.h
b/bindings/pyroot/cppyy/CPyCppyy/src/Utility.h
+index 6bc9314b99..2db76b31b0 100644
+--- a/bindings/pyroot/cppyy/CPyCppyy/src/Utility.h
++++ b/bindings/pyroot/cppyy/CPyCppyy/src/Utility.h
+@@ -10,8 +10,10 @@ namespace CPyCppyy {
+
+ class PyCallable;
+
++#if PY_VERSION_HEX < 0x030b0000
+ extern dict_lookup_func gDictLookupOrg;
+ extern bool gDictLookupActive;
++#endif
+
+ // additional converter functions
+ unsigned long PyLongOrInt_AsULong(PyObject* pyobject);
+--
+2.36.1
+
diff --git a/root-test-timeout.patch b/root-test-timeout.patch
new file mode 100644
index 0000000..acbedcc
--- /dev/null
+++ b/root-test-timeout.patch
@@ -0,0 +1,48 @@
+From bfa7b7e59c3bcee4d6a5501c800b49334af326e5 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Sun, 3 Jul 2022 08:18:57 +0200
+Subject: [PATCH] Increase test timeout
+
+---
+ tmva/tmva/test/DNN/CMakeLists.txt | 2 +-
+ tutorials/CMakeLists.txt | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/tmva/tmva/test/DNN/CMakeLists.txt b/tmva/tmva/test/DNN/CMakeLists.txt
+index a9233682f6..653540e9e3 100644
+--- a/tmva/tmva/test/DNN/CMakeLists.txt
++++ b/tmva/tmva/test/DNN/CMakeLists.txt
+@@ -144,7 +144,7 @@ ROOT_ADD_TEST(TMVA-DNN-MethodDL-SGD-Optimization-Cpu COMMAND
testMethodDLSGDOpti
+
+ # DNN - MethodDL Adam Optimization CPU
+ ROOT_EXECUTABLE(testMethodDLAdamOptimizationCpu TestMethodDLAdamOptimizationCpu.cxx
LIBRARIES ${Libraries})
+-ROOT_ADD_TEST(TMVA-DNN-MethodDL-Adam-Optimization-Cpu COMMAND
testMethodDLAdamOptimizationCpu)
++ROOT_ADD_TEST(TMVA-DNN-MethodDL-Adam-Optimization-Cpu COMMAND
testMethodDLAdamOptimizationCpu TIMEOUT 1800)
+
+ # DNN - MethodDL Adagrad Optimization CPU
+ ROOT_EXECUTABLE(testMethodDLAdagradOptimizationCpu
TestMethodDLAdagradOptimizationCpu.cxx LIBRARIES ${Libraries})
+diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt
+index 520d682d2d..a846e7552f 100644
+--- a/tutorials/CMakeLists.txt
++++ b/tutorials/CMakeLists.txt
+@@ -532,7 +532,7 @@ foreach(t ${tutorials})
+
+ # These tests on ARM64 need much more than 20 minutes - increase the timeout
+ if(ROOT_ARCHITECTURE MATCHES arm64 OR ROOT_ARCHITECTURE MATCHES ppc64)
+- set(thisTestTimeout 2400) # 40m
++ set(thisTestTimeout 3000) # 50m
+ else()
+ set(thisTestTimeout 1200) # 20m
+ endif()
+@@ -566,7 +566,7 @@ foreach(t ${mpi_tutorials})
+
+ # These tests on ARM64 need much more than 20 minutes - increase the timeout
+ if(ROOT_ARCHITECTURE MATCHES arm64 OR ROOT_ARCHITECTURE MATCHES ppc64)
+- set(thisTestTimeout 2400) # 40m
++ set(thisTestTimeout 3000) # 50m
+ else()
+ set(thisTestTimeout 1200) # 20m
+ endif()
+--
+2.36.1
+
diff --git a/root.spec b/root.spec
index ff143a3..b92f433 100644
--- a/root.spec
+++ b/root.spec
@@ -70,7 +70,7 @@
Name: root
Version: 6.26.04
%global libversion %(cut -d. -f 1-2 <<< %{version})
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: Numerical data analysis framework
License: LGPLv2+
@@ -130,6 +130,9 @@ Patch12: %{name}-fix-compilation-with-gcc-12.patch
# Fix test failure on ppc64le and aarch64 with gcc 12
#
https://github.com/root-project/root/pull/9601
Patch13: %{name}-fix-test-failure-on-ppc64le-and-aarch64-with-gcc-12.patch
+# Adjust some test timeouts
+#
https://github.com/root-project/root/pull/10886
+Patch14: %{name}-test-timeout.patch
# Fixes for tmva-sofie test compilation
#
https://github.com/root-project/root/pull/10117
Patch15: %{name}-blas-linking-and-ignore-prefix.patch
@@ -180,6 +183,10 @@ Patch31: %{name}-core-base-test.patch
Patch32: %{name}-make-dyld-based-library-search-behavior-default.patch
Patch33: %{name}-fix-TMVA-tutorial-using-internally-python.patch
Patch34: %{name}-threadsh1-avoid-heap-use-after-free.patch
+Patch35: %{name}-PyROOT-code.h-must-not-be-included-directly-in-3.11.patch
+Patch36: %{name}-PyROOT-Prevent-cast-error-when-calling-PyTuple_SET_I.patch
+# Backport additional python 3.11 fixes from CPyCppyy upstream
+Patch37: %{name}-Python-3.11-support-backported-from-CPyCppyy.patch
%if %{?rhel}%{!?rhel:0} == 7
BuildRequires: devtoolset-8-toolchain
@@ -2017,6 +2024,7 @@ This package contains an ntuple extension for ROOT 7.
%patch11 -p1
%patch12 -p1
%patch13 -p1
+%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
@@ -2037,6 +2045,9 @@ This package contains an ntuple extension for ROOT 7.
%patch32 -p1
%patch33 -p1
%patch34 -p1
+%patch35 -p1
+%patch36 -p1
+%patch37 -p1
# Remove bundled sources in order to be sure they are not used
# * afterimage
@@ -2911,6 +2922,30 @@ test-stressgraphics"
%endif
%endif
+%if %{?fedora}%{!?fedora:0} >= 37
+# Fails during garbage collection with Python 3.11
+# See:
https://github.com/root-project/root/issues/10799
+excluded="${excluded}|\
+pyunittests-dataframe-histograms|\
+pyunittests-distrdf-unit-backend-test-dist|\
+pyunittests-distrdf-unit-test-buildranges|\
+pyunittests-distrdf-unit-test-friendinfo|\
+pyunittests-distrdf-unit-test-headnode|\
+pyunittests-pyroot-pyz-tfile-attrsyntax-get-writeobject-open|\
+pyunittests-pyroot-pyz-ttree-branch|\
+pyunittests-pyroot-pyz-ttree-branch-attr|\
+pyunittests-pyroot-pyz-ttree-iterable|\
+pyunittests-pyroot-pyz-ttree-setbranchaddress|\
+tutorial-dataframe-df014_CSVDataSource-py|\
+tutorial-dataframe-df017_vecOpsHEP-py|\
+tutorial-pyroot-h1ReadAndDraw-py|\
+tutorial-pyroot-hsimple-py|\
+tutorial-pyroot-ntuple1-py|\
+tutorial-pyroot-staff-py|\
+tutorial-pyroot-tornado-py|\
+tutorial-roofit-rf503_wspaceread-py"
+%endif
+
# Filter out parts of tests that require remote network access
GTEST_FILTER=-RCsvDS.Remote:RRawFile.Remote:RSqliteDS.Davix \
make test ARGS="%{?_smp_mflags} --output-on-failure -E
\"${excluded}\""
@@ -3938,6 +3973,13 @@ fi
%endif
%changelog
+* Sun Jul 03 2022 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 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 <python-maint(a)redhat.com> - 6.26.04-2
- Rebuilt for Python 3.11
commit 9505e4b28aa7d2da3dbeda88ccb75d33ae77503a
Author: Python Maint <python-maint(a)redhat.com>
Date: Wed Jun 15 14:00:40 2022 +0200
Rebuilt for Python 3.11
diff --git a/root.spec b/root.spec
index 2130700..ff143a3 100644
--- a/root.spec
+++ b/root.spec
@@ -70,7 +70,7 @@
Name: root
Version: 6.26.04
%global libversion %(cut -d. -f 1-2 <<< %{version})
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Numerical data analysis framework
License: LGPLv2+
@@ -3938,6 +3938,9 @@ fi
%endif
%changelog
+* Wed Jun 15 2022 Python Maint <python-maint(a)redhat.com> - 6.26.04-2
+- Rebuilt for Python 3.11
+
* Tue Jun 14 2022 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.04-1
- Update to 6.26.04
- Drop patch root-missing-include.patch (accepted upstream)