Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2024
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
List overview
Download
Arch-excludes
March 2023
----- 2024 -----
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
arch-excludes@lists.fedoraproject.org
2 participants
624 discussions
Start a n
N
ew thread
Architecture specific change in rpms/rust-libhandy.git
by githook-noreply@fedoraproject.org
20 Mar '23
20 Mar '23
The package rpms/rust-libhandy.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/rust-libhandy.git/commit/?id=90e7cc…
. Change: -ExclusiveArch: %{rust_arches} Thanks. Full change: ============ commit 90e7ccffb272de39755f4e37de4aef3426ca2e94 Author: Fabio Valentini <decathorpe(a)gmail.com> Date: Sun Mar 19 14:27:36 2023 +0100 Update to version 0.10.0; Fixes RHBZ#2168958 diff --git a/.gitignore b/.gitignore index 0161072..ddf4111 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /libhandy-0.7.1.crate /libhandy-0.8.0.crate /libhandy-0.9.0.crate +/libhandy-0.10.0.crate diff --git a/.rust2rpm.conf b/.rust2rpm.conf deleted file mode 100644 index f6f080b..0000000 --- a/.rust2rpm.conf +++ /dev/null @@ -1,3 +0,0 @@ -[DEFAULT] -unwanted-features = - v1_6 diff --git a/README.md b/README.md deleted file mode 100644 index ca05d6d..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# rust-libhandy - -The rust-libhandy package \ No newline at end of file diff --git a/rust-libhandy.spec b/rust-libhandy.spec index 81d2a10..369f91e 100644 --- a/rust-libhandy.spec +++ b/rust-libhandy.spec @@ -1,23 +1,20 @@ -# Generated by rust2rpm 20 +# Generated by rust2rpm 24 # * tests require a running display server %bcond_with check %global debug_package %{nil} %global crate libhandy -Name: rust-%{crate} -Version: 0.9.0 +Name: rust-libhandy +Version: 0.10.0 Release: %autorelease Summary: Rust bindings for libhandy -# Upstream license specification: LGPL-2.1-only -License: LGPLv2 +License: LGPL-2.1-only URL:
https://crates.io/crates/libhandy
Source: %{crates_source} -ExclusiveArch: %{rust_arches} - -BuildRequires: rust-packaging +BuildRequires: rust-packaging >= 21 %global _description %{expand: Rust bindings for libhandy.} @@ -34,8 +31,8 @@ This package contains library source intended for building other packages which use the "%{crate}" crate. %files devel -%license LICENSE -%{cargo_registry}/%{crate}-%{version_no_tilde}/ +%license %{crate_instdir}/LICENSE +%{crate_instdir}/ %package -n %{name}+default-devel Summary: %{summary} @@ -47,7 +44,7 @@ This package contains library source intended for building other packages which use the "default" feature of the "%{crate}" crate. %files -n %{name}+default-devel -%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml +%ghost %{crate_instdir}/Cargo.toml %package -n %{name}+dox-devel Summary: %{summary} @@ -59,7 +56,7 @@ This package contains library source intended for building other packages which use the "dox" feature of the "%{crate}" crate. %files -n %{name}+dox-devel -%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml +%ghost %{crate_instdir}/Cargo.toml %package -n %{name}+v1_0-devel Summary: %{summary} @@ -71,7 +68,7 @@ This package contains library source intended for building other packages which use the "v1_0" feature of the "%{crate}" crate. %files -n %{name}+v1_0-devel -%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml +%ghost %{crate_instdir}/Cargo.toml %package -n %{name}+v1_2-devel Summary: %{summary} @@ -83,7 +80,7 @@ This package contains library source intended for building other packages which use the "v1_2" feature of the "%{crate}" crate. %files -n %{name}+v1_2-devel -%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml +%ghost %{crate_instdir}/Cargo.toml %package -n %{name}+v1_4-devel Summary: %{summary} @@ -95,7 +92,19 @@ This package contains library source intended for building other packages which use the "v1_4" feature of the "%{crate}" crate. %files -n %{name}+v1_4-devel -%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+v1_6-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+v1_6-devel %{_description} + +This package contains library source intended for building other packages which +use the "v1_6" feature of the "%{crate}" crate. + +%files -n %{name}+v1_6-devel +%ghost %{crate_instdir}/Cargo.toml %prep %autosetup -n %{crate}-%{version_no_tilde} -p1 diff --git a/sources b/sources index eda80f4..c500d29 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libhandy-0.9.0.crate) = 1d500cab27795a374db150c25b9d6564ab3d6515e1e61c866b8b855caf25b66d924987ae8db51c9fa7063aca9e8328dee553a426cab15ef2d999dd87f3ad90ca +SHA512 (libhandy-0.10.0.crate) = 4c3b137670030b68cd6f9f1352e70918395ed799217126dc0993150824cd7ff48f6d4cb424e26f6ab35c9ea8501423159c707d7f3472f9001177d96851ddf778 commit 9547e236117a64653234dc71896988dd0da25c44 Author: Fedora Release Engineering <releng(a)fedoraproject.org> Date: Fri Jan 20 23:43:52 2023 +0000 Rebuilt for
https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
1
0
0
0
Architecture specific change in rpms/rust-libhandy-sys.git
by githook-noreply@fedoraproject.org
20 Mar '23
20 Mar '23
The package rpms/rust-libhandy-sys.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/rust-libhandy-sys.git/commit/?id=82…
. Change: -ExclusiveArch: %{rust_arches} Thanks. Full change: ============ commit 82812c49fed26bdac9684dca33a6febc577f837f Author: Fabio Valentini <decathorpe(a)gmail.com> Date: Sun Mar 19 14:05:53 2023 +0100 Update to version 0.10.0; Fixes RHBZ#2168959 diff --git a/.gitignore b/.gitignore index 9c8b909..7de6ce7 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /libhandy-sys-0.7.0.crate /libhandy-sys-0.8.0.crate /libhandy-sys-0.9.0.crate +/libhandy-sys-0.10.0.crate diff --git a/README.md b/README.md deleted file mode 100644 index 98bdf18..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# rust-libhandy-sys - -The rust-libhandy-sys package \ No newline at end of file diff --git a/rust-libhandy-sys.spec b/rust-libhandy-sys.spec index d3e97da..e44ce04 100644 --- a/rust-libhandy-sys.spec +++ b/rust-libhandy-sys.spec @@ -1,26 +1,23 @@ -# Generated by rust2rpm 20 +# Generated by rust2rpm 24 # * tests are broken:
https://github.com/gtk-rs/gtk-rs-core/issues/64
%bcond_with check %global debug_package %{nil} %global crate libhandy-sys -Name: rust-%{crate} -Version: 0.9.0 +Name: rust-libhandy-sys +Version: 0.10.0 Release: %autorelease Summary: Sys part of the rust bindings for libhandy -# Upstream license specification: LGPL-2.1-only -License: LGPLv2 +License: LGPL-2.1-only URL:
https://crates.io/crates/libhandy-sys
Source: %{crates_source} -ExclusiveArch: %{rust_arches} - -BuildRequires: rust-packaging +BuildRequires: rust-packaging >= 21 %global _description %{expand: -Sys part of the rust bindings for libhandy.} +The sys part of the rust bindings for libhandy.} %description %{_description} @@ -35,8 +32,8 @@ This package contains library source intended for building other packages which use the "%{crate}" crate. %files devel -%license LICENSE -%{cargo_registry}/%{crate}-%{version_no_tilde}/ +%license %{crate_instdir}/LICENSE +%{crate_instdir}/ %package -n %{name}+default-devel Summary: %{summary} @@ -48,7 +45,7 @@ This package contains library source intended for building other packages which use the "default" feature of the "%{crate}" crate. %files -n %{name}+default-devel -%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml +%ghost %{crate_instdir}/Cargo.toml %package -n %{name}+dox-devel Summary: %{summary} @@ -60,7 +57,7 @@ This package contains library source intended for building other packages which use the "dox" feature of the "%{crate}" crate. %files -n %{name}+dox-devel -%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml +%ghost %{crate_instdir}/Cargo.toml %package -n %{name}+v1_0-devel Summary: %{summary} @@ -73,7 +70,7 @@ This package contains library source intended for building other packages which use the "v1_0" feature of the "%{crate}" crate. %files -n %{name}+v1_0-devel -%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml +%ghost %{crate_instdir}/Cargo.toml %package -n %{name}+v1_2-devel Summary: %{summary} @@ -86,7 +83,7 @@ This package contains library source intended for building other packages which use the "v1_2" feature of the "%{crate}" crate. %files -n %{name}+v1_2-devel -%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml +%ghost %{crate_instdir}/Cargo.toml %package -n %{name}+v1_4-devel Summary: %{summary} @@ -99,7 +96,20 @@ This package contains library source intended for building other packages which use the "v1_4" feature of the "%{crate}" crate. %files -n %{name}+v1_4-devel -%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+v1_6-devel +Summary: %{summary} +BuildArch: noarch +Requires: pkgconfig(libhandy-1) >= 1.6 + +%description -n %{name}+v1_6-devel %{_description} + +This package contains library source intended for building other packages which +use the "v1_6" feature of the "%{crate}" crate. + +%files -n %{name}+v1_6-devel +%ghost %{crate_instdir}/Cargo.toml %prep %autosetup -n %{crate}-%{version_no_tilde} -p1 diff --git a/.rust2rpm.conf b/rust2rpm.conf similarity index 83% rename from .rust2rpm.conf rename to rust2rpm.conf index 8cfcbc7..bdc5cda 100644 --- a/.rust2rpm.conf +++ b/rust2rpm.conf @@ -1,6 +1,4 @@ [DEFAULT] -unwanted-features = - v1_6 buildrequires = pkgconfig(libhandy-1) >= 1 lib.requires = @@ -11,3 +9,5 @@ lib+v1_2.requires = pkgconfig(libhandy-1) >= 1.2 lib+v1_4.requires = pkgconfig(libhandy-1) >= 1.4 +lib+v1_6.requires = + pkgconfig(libhandy-1) >= 1.6 diff --git a/sources b/sources index e8bf53c..6e5cafb 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libhandy-sys-0.9.0.crate) = fd9d2e6c408534b44f0089f2b38bd985df5d5dbbe53c8e76d1fcd05411249566e68b36d651834e78b94e018d0fad511d195feba66134bc059856e87be5ca4fcc +SHA512 (libhandy-sys-0.10.0.crate) = 6b85f241ca8d3fa8e551c07fc2083cd01ce63afa7c3451294fab2c9becad5edd0599331bbad7f8154bfec81979188ac38ddb7da3ca0d054f96f1fdb1b60d3492
1
0
0
0
Architecture specific change in rpms/rust-libhandy.git
by githook-noreply@fedoraproject.org
20 Mar '23
20 Mar '23
The package rpms/rust-libhandy.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/rust-libhandy.git/commit/?id=90e7cc…
. Change: -ExclusiveArch: %{rust_arches} Thanks. Full change: ============ commit 90e7ccffb272de39755f4e37de4aef3426ca2e94 Author: Fabio Valentini <decathorpe(a)gmail.com> Date: Sun Mar 19 14:27:36 2023 +0100 Update to version 0.10.0; Fixes RHBZ#2168958 diff --git a/.gitignore b/.gitignore index 0161072..ddf4111 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /libhandy-0.7.1.crate /libhandy-0.8.0.crate /libhandy-0.9.0.crate +/libhandy-0.10.0.crate diff --git a/.rust2rpm.conf b/.rust2rpm.conf deleted file mode 100644 index f6f080b..0000000 --- a/.rust2rpm.conf +++ /dev/null @@ -1,3 +0,0 @@ -[DEFAULT] -unwanted-features = - v1_6 diff --git a/README.md b/README.md deleted file mode 100644 index ca05d6d..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# rust-libhandy - -The rust-libhandy package \ No newline at end of file diff --git a/rust-libhandy.spec b/rust-libhandy.spec index 81d2a10..369f91e 100644 --- a/rust-libhandy.spec +++ b/rust-libhandy.spec @@ -1,23 +1,20 @@ -# Generated by rust2rpm 20 +# Generated by rust2rpm 24 # * tests require a running display server %bcond_with check %global debug_package %{nil} %global crate libhandy -Name: rust-%{crate} -Version: 0.9.0 +Name: rust-libhandy +Version: 0.10.0 Release: %autorelease Summary: Rust bindings for libhandy -# Upstream license specification: LGPL-2.1-only -License: LGPLv2 +License: LGPL-2.1-only URL:
https://crates.io/crates/libhandy
Source: %{crates_source} -ExclusiveArch: %{rust_arches} - -BuildRequires: rust-packaging +BuildRequires: rust-packaging >= 21 %global _description %{expand: Rust bindings for libhandy.} @@ -34,8 +31,8 @@ This package contains library source intended for building other packages which use the "%{crate}" crate. %files devel -%license LICENSE -%{cargo_registry}/%{crate}-%{version_no_tilde}/ +%license %{crate_instdir}/LICENSE +%{crate_instdir}/ %package -n %{name}+default-devel Summary: %{summary} @@ -47,7 +44,7 @@ This package contains library source intended for building other packages which use the "default" feature of the "%{crate}" crate. %files -n %{name}+default-devel -%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml +%ghost %{crate_instdir}/Cargo.toml %package -n %{name}+dox-devel Summary: %{summary} @@ -59,7 +56,7 @@ This package contains library source intended for building other packages which use the "dox" feature of the "%{crate}" crate. %files -n %{name}+dox-devel -%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml +%ghost %{crate_instdir}/Cargo.toml %package -n %{name}+v1_0-devel Summary: %{summary} @@ -71,7 +68,7 @@ This package contains library source intended for building other packages which use the "v1_0" feature of the "%{crate}" crate. %files -n %{name}+v1_0-devel -%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml +%ghost %{crate_instdir}/Cargo.toml %package -n %{name}+v1_2-devel Summary: %{summary} @@ -83,7 +80,7 @@ This package contains library source intended for building other packages which use the "v1_2" feature of the "%{crate}" crate. %files -n %{name}+v1_2-devel -%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml +%ghost %{crate_instdir}/Cargo.toml %package -n %{name}+v1_4-devel Summary: %{summary} @@ -95,7 +92,19 @@ This package contains library source intended for building other packages which use the "v1_4" feature of the "%{crate}" crate. %files -n %{name}+v1_4-devel -%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+v1_6-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+v1_6-devel %{_description} + +This package contains library source intended for building other packages which +use the "v1_6" feature of the "%{crate}" crate. + +%files -n %{name}+v1_6-devel +%ghost %{crate_instdir}/Cargo.toml %prep %autosetup -n %{crate}-%{version_no_tilde} -p1 diff --git a/sources b/sources index eda80f4..c500d29 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libhandy-0.9.0.crate) = 1d500cab27795a374db150c25b9d6564ab3d6515e1e61c866b8b855caf25b66d924987ae8db51c9fa7063aca9e8328dee553a426cab15ef2d999dd87f3ad90ca +SHA512 (libhandy-0.10.0.crate) = 4c3b137670030b68cd6f9f1352e70918395ed799217126dc0993150824cd7ff48f6d4cb424e26f6ab35c9ea8501423159c707d7f3472f9001177d96851ddf778
1
0
0
0
Architecture specific change in rpms/rust-atom.git
by githook-noreply@fedoraproject.org
20 Mar '23
20 Mar '23
The package rpms/rust-atom.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/rust-atom.git/commit/?id=cad7a636c6…
. Change: -ExclusiveArch: %{rust_arches} Thanks. Full change: ============ commit cad7a636c68779238aaf22db17d6ea3cf67f3686 Author: Fabio Valentini <decathorpe(a)gmail.com> Date: Mon Mar 20 21:24:01 2023 +0100 Update to version 0.3.6 diff --git a/.gitignore b/.gitignore index d14e785..1aa4e56 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /atom-0.3.5.crate +/atom-0.3.6.crate diff --git a/README.md b/README.md deleted file mode 100644 index a869f95..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# rust-atom - -The rust-atom package \ No newline at end of file diff --git a/rust-atom.spec b/rust-atom.spec index 484136b..945fc0b 100644 --- a/rust-atom.spec +++ b/rust-atom.spec @@ -1,25 +1,22 @@ -# Generated by rust2rpm -%bcond_with check +# Generated by rust2rpm 24 +%bcond_without check %global debug_package %{nil} %global crate atom -Name: rust-%{crate} -Version: 0.3.5 +Name: rust-atom +Version: 0.3.6 Release: %autorelease Summary: Safe abstraction around AtomicPtr -# Upstream license specification: Apache-2.0 -License: ASL 2.0 +License: Apache-2.0 URL:
https://crates.io/crates/atom
Source: %{crates_source} -ExclusiveArch: %{rust_arches} +BuildRequires: rust-packaging >= 21 -BuildRequires: rust-packaging - -%global _description \ -A safe abstraction around AtomicPtr. +%global _description %{expand: +A safe abstraction around AtomicPtr.} %description %{_description} @@ -29,13 +26,13 @@ BuildArch: noarch %description devel %{_description} -This package contains library source intended for building other packages -which use "%{crate}" crate. +This package contains library source intended for building other packages which +use the "%{crate}" crate. %files devel -%license LICENSE -%doc readme.md -%{cargo_registry}/%{crate}-%{version}/ +%license %{crate_instdir}/LICENSE +%doc %{crate_instdir}/readme.md +%{crate_instdir}/ %package -n %{name}+default-devel Summary: %{summary} @@ -43,16 +40,19 @@ BuildArch: noarch %description -n %{name}+default-devel %{_description} -This package contains library source intended for building other packages -which use "default" feature of "%{crate}" crate. +This package contains library source intended for building other packages which +use the "default" feature of the "%{crate}" crate. %files -n %{name}+default-devel -%ghost %{cargo_registry}/%{crate}-%{version}/Cargo.toml +%ghost %{crate_instdir}/Cargo.toml %prep %autosetup -n %{crate}-%{version_no_tilde} -p1 %cargo_prep +%generate_buildrequires +%cargo_generate_buildrequires + %build %cargo_build diff --git a/sources b/sources index 99d05fa..864a83c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (atom-0.3.5.crate) = 5ffb9ffcaaaa246bf076e563f7f9b6cb60ded2048cba979a9dbe005e43aacb6fce85083561c0b0a0ecb5321658c7096ca83f235ae6d6816fdb3276bb82b075a7 +SHA512 (atom-0.3.6.crate) = ae3b7c516e305281105318835cf7f90bbca4cad397d19f7fbd3de29895fac4feced6ec34ddf843be9bf7b9581065465db4ab35df8f0a33599650bbe3118c6121 commit ead3d105fb8f49692c9b537be0e379b9f96efab0 Author: Fabio Valentini <decathorpe(a)gmail.com> Date: Mon Mar 20 21:21:59 2023 +0100 Convert to %autorelease and %autochangelog [skip changelog] diff --git a/changelog b/changelog new file mode 100644 index 0000000..7650ab4 --- /dev/null +++ b/changelog @@ -0,0 +1,29 @@ +* Fri Jan 20 2023 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-10 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
+ +* Sat Jul 23 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-9 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
+ +* Fri Jan 21 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-8 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
+ +* Fri Jul 23 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-7 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
+ +* Wed Jan 27 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-6 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+ +* Wed Jul 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-5 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+ +* Thu Jan 30 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-4 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+ +* Fri Jul 26 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-3 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+ +* Mon Mar 18 18:30:30 CET 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 0.3.5-2 +- Trivial fixes + +* Tue Feb 19 2019 Artem Polishchuk <ego.cordatus(a)gmail.com> - 0.3.5-1 +- Initial package diff --git a/rust-atom.spec b/rust-atom.spec index 3324ce4..484136b 100644 --- a/rust-atom.spec +++ b/rust-atom.spec @@ -6,7 +6,7 @@ Name: rust-%{crate} Version: 0.3.5 -Release: 10%{?dist} +Release: %autorelease Summary: Safe abstraction around AtomicPtr # Upstream license specification: Apache-2.0 @@ -65,32 +65,4 @@ which use "default" feature of "%{crate}" crate. %endif %changelog -* Fri Jan 20 2023 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-10 -- Rebuilt for
https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
- -* Sat Jul 23 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-9 -- Rebuilt for
https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
- -* Fri Jan 21 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-8 -- Rebuilt for
https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
- -* Fri Jul 23 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-7 -- Rebuilt for
https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
- -* Wed Jan 27 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-6 -- Rebuilt for
https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
- -* Wed Jul 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-5 -- Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
- -* Thu Jan 30 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-4 -- Rebuilt for
https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
- -* Fri Jul 26 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-3 -- Rebuilt for
https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
- -* Mon Mar 18 18:30:30 CET 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 0.3.5-2 -- Trivial fixes - -* Tue Feb 19 2019 Artem Polishchuk <ego.cordatus(a)gmail.com> - 0.3.5-1 -- Initial package +%autochangelog commit f9ae148c794990357c7c751ce18b9f3ad6958751 Author: Fedora Release Engineering <releng(a)fedoraproject.org> Date: Fri Jan 20 21:39:44 2023 +0000 Rebuilt for
https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org> diff --git a/rust-atom.spec b/rust-atom.spec index 00ca49d..3324ce4 100644 --- a/rust-atom.spec +++ b/rust-atom.spec @@ -6,7 +6,7 @@ Name: rust-%{crate} Version: 0.3.5 -Release: 9%{?dist} +Release: 10%{?dist} Summary: Safe abstraction around AtomicPtr # Upstream license specification: Apache-2.0 @@ -65,6 +65,9 @@ which use "default" feature of "%{crate}" crate. %endif %changelog +* Fri Jan 20 2023 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-10 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
+ * Sat Jul 23 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-9 - Rebuilt for
https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
commit 1f282012f28dd6d79c6177c27cf6990c42c47793 Author: Fedora Release Engineering <releng(a)fedoraproject.org> Date: Sat Jul 23 02:50:25 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/rust-atom.spec b/rust-atom.spec index 5301a1e..00ca49d 100644 --- a/rust-atom.spec +++ b/rust-atom.spec @@ -6,7 +6,7 @@ Name: rust-%{crate} Version: 0.3.5 -Release: 8%{?dist} +Release: 9%{?dist} Summary: Safe abstraction around AtomicPtr # Upstream license specification: Apache-2.0 @@ -65,6 +65,9 @@ which use "default" feature of "%{crate}" crate. %endif %changelog +* Sat Jul 23 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-9 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
+ * Fri Jan 21 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-8 - Rebuilt for
https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
1
0
0
0
Architecture specific change in rpms/rust-atom.git
by githook-noreply@fedoraproject.org
20 Mar '23
20 Mar '23
The package rpms/rust-atom.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/rust-atom.git/commit/?id=cad7a636c6…
. Change: -ExclusiveArch: %{rust_arches} Thanks. Full change: ============ commit cad7a636c68779238aaf22db17d6ea3cf67f3686 Author: Fabio Valentini <decathorpe(a)gmail.com> Date: Mon Mar 20 21:24:01 2023 +0100 Update to version 0.3.6 diff --git a/.gitignore b/.gitignore index d14e785..1aa4e56 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /atom-0.3.5.crate +/atom-0.3.6.crate diff --git a/README.md b/README.md deleted file mode 100644 index a869f95..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# rust-atom - -The rust-atom package \ No newline at end of file diff --git a/rust-atom.spec b/rust-atom.spec index 484136b..945fc0b 100644 --- a/rust-atom.spec +++ b/rust-atom.spec @@ -1,25 +1,22 @@ -# Generated by rust2rpm -%bcond_with check +# Generated by rust2rpm 24 +%bcond_without check %global debug_package %{nil} %global crate atom -Name: rust-%{crate} -Version: 0.3.5 +Name: rust-atom +Version: 0.3.6 Release: %autorelease Summary: Safe abstraction around AtomicPtr -# Upstream license specification: Apache-2.0 -License: ASL 2.0 +License: Apache-2.0 URL:
https://crates.io/crates/atom
Source: %{crates_source} -ExclusiveArch: %{rust_arches} +BuildRequires: rust-packaging >= 21 -BuildRequires: rust-packaging - -%global _description \ -A safe abstraction around AtomicPtr. +%global _description %{expand: +A safe abstraction around AtomicPtr.} %description %{_description} @@ -29,13 +26,13 @@ BuildArch: noarch %description devel %{_description} -This package contains library source intended for building other packages -which use "%{crate}" crate. +This package contains library source intended for building other packages which +use the "%{crate}" crate. %files devel -%license LICENSE -%doc readme.md -%{cargo_registry}/%{crate}-%{version}/ +%license %{crate_instdir}/LICENSE +%doc %{crate_instdir}/readme.md +%{crate_instdir}/ %package -n %{name}+default-devel Summary: %{summary} @@ -43,16 +40,19 @@ BuildArch: noarch %description -n %{name}+default-devel %{_description} -This package contains library source intended for building other packages -which use "default" feature of "%{crate}" crate. +This package contains library source intended for building other packages which +use the "default" feature of the "%{crate}" crate. %files -n %{name}+default-devel -%ghost %{cargo_registry}/%{crate}-%{version}/Cargo.toml +%ghost %{crate_instdir}/Cargo.toml %prep %autosetup -n %{crate}-%{version_no_tilde} -p1 %cargo_prep +%generate_buildrequires +%cargo_generate_buildrequires + %build %cargo_build diff --git a/sources b/sources index 99d05fa..864a83c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (atom-0.3.5.crate) = 5ffb9ffcaaaa246bf076e563f7f9b6cb60ded2048cba979a9dbe005e43aacb6fce85083561c0b0a0ecb5321658c7096ca83f235ae6d6816fdb3276bb82b075a7 +SHA512 (atom-0.3.6.crate) = ae3b7c516e305281105318835cf7f90bbca4cad397d19f7fbd3de29895fac4feced6ec34ddf843be9bf7b9581065465db4ab35df8f0a33599650bbe3118c6121 commit ead3d105fb8f49692c9b537be0e379b9f96efab0 Author: Fabio Valentini <decathorpe(a)gmail.com> Date: Mon Mar 20 21:21:59 2023 +0100 Convert to %autorelease and %autochangelog [skip changelog] diff --git a/changelog b/changelog new file mode 100644 index 0000000..7650ab4 --- /dev/null +++ b/changelog @@ -0,0 +1,29 @@ +* Fri Jan 20 2023 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-10 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
+ +* Sat Jul 23 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-9 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
+ +* Fri Jan 21 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-8 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
+ +* Fri Jul 23 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-7 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
+ +* Wed Jan 27 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-6 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+ +* Wed Jul 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-5 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+ +* Thu Jan 30 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-4 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+ +* Fri Jul 26 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-3 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+ +* Mon Mar 18 18:30:30 CET 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 0.3.5-2 +- Trivial fixes + +* Tue Feb 19 2019 Artem Polishchuk <ego.cordatus(a)gmail.com> - 0.3.5-1 +- Initial package diff --git a/rust-atom.spec b/rust-atom.spec index 3324ce4..484136b 100644 --- a/rust-atom.spec +++ b/rust-atom.spec @@ -6,7 +6,7 @@ Name: rust-%{crate} Version: 0.3.5 -Release: 10%{?dist} +Release: %autorelease Summary: Safe abstraction around AtomicPtr # Upstream license specification: Apache-2.0 @@ -65,32 +65,4 @@ which use "default" feature of "%{crate}" crate. %endif %changelog -* Fri Jan 20 2023 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-10 -- Rebuilt for
https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
- -* Sat Jul 23 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-9 -- Rebuilt for
https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
- -* Fri Jan 21 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-8 -- Rebuilt for
https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
- -* Fri Jul 23 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-7 -- Rebuilt for
https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
- -* Wed Jan 27 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-6 -- Rebuilt for
https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
- -* Wed Jul 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-5 -- Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
- -* Thu Jan 30 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-4 -- Rebuilt for
https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
- -* Fri Jul 26 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-3 -- Rebuilt for
https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
- -* Mon Mar 18 18:30:30 CET 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 0.3.5-2 -- Trivial fixes - -* Tue Feb 19 2019 Artem Polishchuk <ego.cordatus(a)gmail.com> - 0.3.5-1 -- Initial package +%autochangelog commit f9ae148c794990357c7c751ce18b9f3ad6958751 Author: Fedora Release Engineering <releng(a)fedoraproject.org> Date: Fri Jan 20 21:39:44 2023 +0000 Rebuilt for
https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org> diff --git a/rust-atom.spec b/rust-atom.spec index 00ca49d..3324ce4 100644 --- a/rust-atom.spec +++ b/rust-atom.spec @@ -6,7 +6,7 @@ Name: rust-%{crate} Version: 0.3.5 -Release: 9%{?dist} +Release: 10%{?dist} Summary: Safe abstraction around AtomicPtr # Upstream license specification: Apache-2.0 @@ -65,6 +65,9 @@ which use "default" feature of "%{crate}" crate. %endif %changelog +* Fri Jan 20 2023 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-10 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
+ * Sat Jul 23 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-9 - Rebuilt for
https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
1
0
0
0
Architecture specific change in rpms/rust-atom.git
by githook-noreply@fedoraproject.org
20 Mar '23
20 Mar '23
The package rpms/rust-atom.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/rust-atom.git/commit/?id=cad7a636c6…
. Change: -ExclusiveArch: %{rust_arches} Thanks. Full change: ============ commit cad7a636c68779238aaf22db17d6ea3cf67f3686 Author: Fabio Valentini <decathorpe(a)gmail.com> Date: Mon Mar 20 21:24:01 2023 +0100 Update to version 0.3.6 diff --git a/.gitignore b/.gitignore index d14e785..1aa4e56 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /atom-0.3.5.crate +/atom-0.3.6.crate diff --git a/README.md b/README.md deleted file mode 100644 index a869f95..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# rust-atom - -The rust-atom package \ No newline at end of file diff --git a/rust-atom.spec b/rust-atom.spec index 484136b..945fc0b 100644 --- a/rust-atom.spec +++ b/rust-atom.spec @@ -1,25 +1,22 @@ -# Generated by rust2rpm -%bcond_with check +# Generated by rust2rpm 24 +%bcond_without check %global debug_package %{nil} %global crate atom -Name: rust-%{crate} -Version: 0.3.5 +Name: rust-atom +Version: 0.3.6 Release: %autorelease Summary: Safe abstraction around AtomicPtr -# Upstream license specification: Apache-2.0 -License: ASL 2.0 +License: Apache-2.0 URL:
https://crates.io/crates/atom
Source: %{crates_source} -ExclusiveArch: %{rust_arches} +BuildRequires: rust-packaging >= 21 -BuildRequires: rust-packaging - -%global _description \ -A safe abstraction around AtomicPtr. +%global _description %{expand: +A safe abstraction around AtomicPtr.} %description %{_description} @@ -29,13 +26,13 @@ BuildArch: noarch %description devel %{_description} -This package contains library source intended for building other packages -which use "%{crate}" crate. +This package contains library source intended for building other packages which +use the "%{crate}" crate. %files devel -%license LICENSE -%doc readme.md -%{cargo_registry}/%{crate}-%{version}/ +%license %{crate_instdir}/LICENSE +%doc %{crate_instdir}/readme.md +%{crate_instdir}/ %package -n %{name}+default-devel Summary: %{summary} @@ -43,16 +40,19 @@ BuildArch: noarch %description -n %{name}+default-devel %{_description} -This package contains library source intended for building other packages -which use "default" feature of "%{crate}" crate. +This package contains library source intended for building other packages which +use the "default" feature of the "%{crate}" crate. %files -n %{name}+default-devel -%ghost %{cargo_registry}/%{crate}-%{version}/Cargo.toml +%ghost %{crate_instdir}/Cargo.toml %prep %autosetup -n %{crate}-%{version_no_tilde} -p1 %cargo_prep +%generate_buildrequires +%cargo_generate_buildrequires + %build %cargo_build diff --git a/sources b/sources index 99d05fa..864a83c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (atom-0.3.5.crate) = 5ffb9ffcaaaa246bf076e563f7f9b6cb60ded2048cba979a9dbe005e43aacb6fce85083561c0b0a0ecb5321658c7096ca83f235ae6d6816fdb3276bb82b075a7 +SHA512 (atom-0.3.6.crate) = ae3b7c516e305281105318835cf7f90bbca4cad397d19f7fbd3de29895fac4feced6ec34ddf843be9bf7b9581065465db4ab35df8f0a33599650bbe3118c6121 commit ead3d105fb8f49692c9b537be0e379b9f96efab0 Author: Fabio Valentini <decathorpe(a)gmail.com> Date: Mon Mar 20 21:21:59 2023 +0100 Convert to %autorelease and %autochangelog [skip changelog] diff --git a/changelog b/changelog new file mode 100644 index 0000000..7650ab4 --- /dev/null +++ b/changelog @@ -0,0 +1,29 @@ +* Fri Jan 20 2023 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-10 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
+ +* Sat Jul 23 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-9 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
+ +* Fri Jan 21 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-8 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
+ +* Fri Jul 23 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-7 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
+ +* Wed Jan 27 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-6 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+ +* Wed Jul 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-5 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+ +* Thu Jan 30 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-4 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+ +* Fri Jul 26 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-3 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+ +* Mon Mar 18 18:30:30 CET 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 0.3.5-2 +- Trivial fixes + +* Tue Feb 19 2019 Artem Polishchuk <ego.cordatus(a)gmail.com> - 0.3.5-1 +- Initial package diff --git a/rust-atom.spec b/rust-atom.spec index 3324ce4..484136b 100644 --- a/rust-atom.spec +++ b/rust-atom.spec @@ -6,7 +6,7 @@ Name: rust-%{crate} Version: 0.3.5 -Release: 10%{?dist} +Release: %autorelease Summary: Safe abstraction around AtomicPtr # Upstream license specification: Apache-2.0 @@ -65,32 +65,4 @@ which use "default" feature of "%{crate}" crate. %endif %changelog -* Fri Jan 20 2023 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-10 -- Rebuilt for
https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
- -* Sat Jul 23 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-9 -- Rebuilt for
https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
- -* Fri Jan 21 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-8 -- Rebuilt for
https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
- -* Fri Jul 23 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-7 -- Rebuilt for
https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
- -* Wed Jan 27 2021 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-6 -- Rebuilt for
https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
- -* Wed Jul 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-5 -- Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
- -* Thu Jan 30 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-4 -- Rebuilt for
https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
- -* Fri Jul 26 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.5-3 -- Rebuilt for
https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
- -* Mon Mar 18 18:30:30 CET 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 0.3.5-2 -- Trivial fixes - -* Tue Feb 19 2019 Artem Polishchuk <ego.cordatus(a)gmail.com> - 0.3.5-1 -- Initial package +%autochangelog
1
0
0
0
Architecture specific change in rpms/root.git
by githook-noreply@fedoraproject.org
20 Mar '23
20 Mar '23
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=a08fcbc5ad2eb7b…
https://src.fedoraproject.org/cgit/rpms/root.git/commit/?id=1801745923d911a…
https://src.fedoraproject.org/cgit/rpms/root.git/commit/?id=635da91690ffdb7…
. Change: +%ifarch %{power64} +%ifarch %{ix86} -%ifarch %{ix86} %{arm} Thanks. Full change: ============ commit b75f0821798920a0467930e296cb446805525282 Merge: a08fcbc e41288d Author: Mattias Ellert <mattias.ellert(a)physics.uu.se> Date: Mon Mar 20 20:39:10 2023 +0100 Merge branch 'epel8' into rawhide diff --cc root.spec index eb06a82,0cb36c8..c551e00 --- a/root.spec +++ b/root.spec @@@ -3780,33 -3985,9 +3780,36 @@@ f %endif %changelog +* Sat Mar 18 2023 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 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 <mhroncok(a)redhat.com> - 6.26.10-2 + - Rebuilt to change Python shebangs to /usr/bin/python3.6 on EPEL 8 + +* Mon Jan 30 2023 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.10-5 +- Adapt to numpy 1.24 + +* Fri Jan 20 2023 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.10-4 +- Add missing #include <cstdint> + +* Fri Jan 20 2023 Fedora Release Engineering <releng(a)fedoraproject.org> - 6.26.10-3 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
+ +* Thu Dec 29 2022 Maxwell G <gotmax(a)e.email> - 6.26.10-2 +- Rebuild for cfitsio 4.2 + * Wed Nov 16 2022 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.10-1 - Update to 6.26.10 - Drop patches root-Fixes-for-garbage-collection-in-Python-3.11.patch commit a08fcbc5ad2eb7bbf4e170ffe106d439909c9867 Author: Mattias Ellert <mattias.ellert(a)physics.uu.se> Date: Sun Mar 19 07:53:00 2023 +0100 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 diff --git a/root-32bit-dataframe.patch b/root-32bit-dataframe.patch deleted file mode 100644 index 89e3c95..0000000 --- a/root-32bit-dataframe.patch +++ /dev/null @@ -1,170 +0,0 @@ -From 686d5011df607fde2a42c729d6bd446486163784 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Fri, 13 Mar 2020 16:20:17 +0100 -Subject: [PATCH] Restore 32-bit dataframe - ---- - build/unix/makepchinput.py | 3 --- - cmake/modules/RootBuildOptions.cmake | 5 ----- - tree/dataframe/test/dataframe_cache.cxx | 4 ---- - tree/dataframe/test/datasource_arrow.cxx | 4 ---- - tree/dataframe/test/datasource_csv.cxx | 4 ---- - tree/dataframe/test/datasource_root.cxx | 4 ---- - tree/dataframe/test/datasource_trivial.cxx | 4 ---- - tutorials/CMakeLists.txt | 5 ----- - 8 files changed, 33 deletions(-) - -diff --git a/build/unix/makepchinput.py b/build/unix/makepchinput.py -index 1adff487de..eec73f946d 100755 ---- a/build/unix/makepchinput.py -+++ b/build/unix/makepchinput.py -@@ -252,9 +252,6 @@ def isDirForPCH(dirName, legacyPyROOT): - "math/vdt", - "tmva/rmva"] - -- if (sys.platform != 'win32' and sys.maxsize <= 2**32): #
https://docs.python.org/3/library/platform.html#cross-platform
-- PCHPatternsBlacklist.append("tree/dataframe") -- - accepted = isAnyPatternInString(PCHPatternsWhitelist,dirName) and \ - not isAnyPatternInString(PCHPatternsBlacklist,dirName) - -diff --git a/cmake/modules/RootBuildOptions.cmake b/cmake/modules/RootBuildOptions.cmake -index 7886c5f3e9..6fbd8873f1 100644 ---- a/cmake/modules/RootBuildOptions.cmake -+++ b/cmake/modules/RootBuildOptions.cmake -@@ -344,11 +344,6 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES aarch64) - set(runtime_cxxmodules_defvalue OFF) - endif() - --# Disable RDataFrame on 32-bit UNIX platforms due to ROOT-9236 --if(UNIX AND CMAKE_SIZEOF_VOID_P EQUAL 4) -- set(dataframe_defvalue OFF) --endif() -- - # MultiProcess is not possible on Windows, so fail if it is manually set: - if(roofit_multiprocess AND WIN32) - message(FATAL_ERROR ">>> Option 'roofit_multiprocess' is not supported on Windows.") -diff --git a/tree/dataframe/test/dataframe_cache.cxx b/tree/dataframe/test/dataframe_cache.cxx -index 77be488052..8475b98acb 100644 ---- a/tree/dataframe/test/dataframe_cache.cxx -+++ b/tree/dataframe/test/dataframe_cache.cxx -@@ -224,8 +224,6 @@ TEST(Cache, evtCounter) - - } - --#ifdef R__B64 -- - TEST(Cache, Regex) - { - -@@ -329,8 +327,6 @@ TEST(Cache, Carrays) - gSystem->Unlink(fileName); - } - --#endif // R__B64 -- - // ROOT-10563 - TEST(Cache, Alias) - { -diff --git a/tree/dataframe/test/datasource_arrow.cxx b/tree/dataframe/test/datasource_arrow.cxx -index 5ac9fcf09a..5f5f94a666 100644 ---- a/tree/dataframe/test/datasource_arrow.cxx -+++ b/tree/dataframe/test/datasource_arrow.cxx -@@ -177,8 +177,6 @@ TEST(RArrowDS, SetNSlotsTwice) - } - #endif - --#ifdef R__B64 -- - TEST(RArrowDS, FromARDF) - { - std::unique_ptr<RDataSource> tds(new RArrowDS(createTestTable(), {})); -@@ -250,5 +248,3 @@ TEST(RArrowDS, FromARDFWithJittingMT) - } - - #endif // R__USE_IMT -- --#endif // R__B64 -diff --git a/tree/dataframe/test/datasource_csv.cxx b/tree/dataframe/test/datasource_csv.cxx -index 6554719f98..d93117b67a 100644 ---- a/tree/dataframe/test/datasource_csv.cxx -+++ b/tree/dataframe/test/datasource_csv.cxx -@@ -210,8 +210,6 @@ TEST(RCsvDS, SetNSlotsTwice) - } - #endif - --#ifdef R__B64 -- - TEST(RCsvDS, FromARDF) - { - std::unique_ptr<RDataSource> tds(new RCsvDS(fileName0)); -@@ -324,5 +322,3 @@ TEST(RCsvDS, ProgressiveReadingRDFMT) - } - - #endif // R__USE_IMT -- --#endif // R__B64 -diff --git a/tree/dataframe/test/datasource_root.cxx b/tree/dataframe/test/datasource_root.cxx -index 79840d9fff..4c795fee6f 100644 ---- a/tree/dataframe/test/datasource_root.cxx -+++ b/tree/dataframe/test/datasource_root.cxx -@@ -117,8 +117,6 @@ TEST(TRootTDS, SetNSlotsTwice) - } - #endif - --#ifdef R__B64 -- - TEST(TRootTDS, FromARDF) - { - std::unique_ptr<RDataSource> tds(new ROOT::Internal::RDF::RRootDS(treeName, fileGlob)); -@@ -190,5 +188,3 @@ TEST(TRootTDS, FromARDFWithJittingMT) - } - - #endif // R__USE_IMT -- --#endif // R__B64 -diff --git a/tree/dataframe/test/datasource_trivial.cxx b/tree/dataframe/test/datasource_trivial.cxx -index 7da675c83b..deb89301c7 100644 ---- a/tree/dataframe/test/datasource_trivial.cxx -+++ b/tree/dataframe/test/datasource_trivial.cxx -@@ -141,8 +141,6 @@ TEST(RTrivialDS, EarlyQuitWithRange) - EXPECT_EQ(df.Range(10).Count().GetValue(), 10); - } - --#ifdef R__B64 -- - TEST(RTrivialDS, FromARDFWithJitting) - { - std::unique_ptr<RDataSource> tds(new RTrivialDS(32)); -@@ -245,5 +243,3 @@ TEST(RTrivialDS, SkipEntriesMT) - } - - #endif // R__USE_IMT -- --#endif // R__B64 -diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt -index a6e5c97703..12bb610d67 100644 ---- a/tutorials/CMakeLists.txt -+++ b/tutorials/CMakeLists.txt -@@ -332,10 +332,6 @@ else() - list(APPEND root7_veto ${v7_veto_files}) - endif() - --if( CMAKE_SIZEOF_VOID_P EQUAL 4 ) -- set(bits32_veto dataframe/*.C graphs/timeSeriesFrom*.C v7/ntuple/ntpl004_dimuon.C) --endif() -- - if (APPLE AND CMAKE_SYSTEM_PROCESSOR MATCHES arm64) - set(macm1_veto dataframe/df107_SingleTopAnalysis.py) - endif() -@@ -391,7 +387,6 @@ set(all_veto hsimple.C - ${classic_veto} - ${pythia_veto} - ${root7_veto} -- ${bits32_veto} - ${xrootd_veto} - ${mlp_veto} - ${spectrum_veto} --- -2.35.1 - 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 deleted file mode 100644 index ca908b8..0000000 --- a/root-PyROOT-Prevent-cast-error-when-calling-PyTuple_SET_I.patch +++ /dev/null @@ -1,29 +0,0 @@ -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 deleted file mode 100644 index a845fa4..0000000 --- a/root-PyROOT-code.h-must-not-be-included-directly-in-3.11.patch +++ /dev/null @@ -1,34 +0,0 @@ -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-PyROOT-only-build-RooFit-and-TMVA-pythonizations-if-enabled.patch b/root-PyROOT-only-build-RooFit-and-TMVA-pythonizations-if-enabled.patch new file mode 100644 index 0000000..0ca4387 --- /dev/null +++ b/root-PyROOT-only-build-RooFit-and-TMVA-pythonizations-if-enabled.patch @@ -0,0 +1,117 @@ +From d759a42a33fe6a9195c3c79275fe05e4da2b4195 Mon Sep 17 00:00:00 2001 +From: Jonas Rembser <jonas.rembser(a)cern.ch> +Date: Sat, 14 Jan 2023 12:25:20 +0100 +Subject: [PATCH] [PyROOT] Only build RooFit and TMVA pythonizations if needed + +Like this, we are polluting the build and install directories less with +unneeded files and it also speeds up the build process a bit if RooFit +and/or TMVA are disabled. Their pythonization files don't need to be +compiled to `.pyc` files. +--- + bindings/pyroot/pythonizations/CMakeLists.txt | 76 ++++++++++--------- + 1 file changed, 42 insertions(+), 34 deletions(-) + +diff --git a/bindings/pyroot/pythonizations/CMakeLists.txt b/bindings/pyroot/pythonizations/CMakeLists.txt +index 9e853d1885..8395785b24 100644 +--- a/bindings/pyroot/pythonizations/CMakeLists.txt ++++ b/bindings/pyroot/pythonizations/CMakeLists.txt +@@ -25,6 +25,48 @@ if(dataframe) + inc/RNumpyDS.hxx) + endif() + ++if(roofit) ++ list(APPEND PYROOT_EXTRA_PY2_PY3_SOURCE ++ ROOT/_pythonization/_roofit/__init__.py ++ ROOT/_pythonization/_roofit/_rooabscollection.py ++ ROOT/_pythonization/_roofit/_rooabsdata.py ++ ROOT/_pythonization/_roofit/_rooabspdf.py ++ ROOT/_pythonization/_roofit/_rooabsreallvalue.py ++ ROOT/_pythonization/_roofit/_rooabsreal.py ++ ROOT/_pythonization/_roofit/_rooarglist.py ++ ROOT/_pythonization/_roofit/_rooargset.py ++ ROOT/_pythonization/_roofit/_roocategory.py ++ ROOT/_pythonization/_roofit/_roochi2var.py ++ ROOT/_pythonization/_roofit/_roodatahist.py ++ ROOT/_pythonization/_roofit/_roodataset.py ++ ROOT/_pythonization/_roofit/_roodecays.py ++ ROOT/_pythonization/_roofit/_roogenfitstudy.py ++ ROOT/_pythonization/_roofit/_rooglobalfunc.py ++ ROOT/_pythonization/_roofit/_roojsonfactorywstool.py ++ ROOT/_pythonization/_roofit/_roomcstudy.py ++ ROOT/_pythonization/_roofit/_roomsgservice.py ++ ROOT/_pythonization/_roofit/_roonllvar.py ++ ROOT/_pythonization/_roofit/_rooprodpdf.py ++ ROOT/_pythonization/_roofit/_roorealvar.py ++ ROOT/_pythonization/_roofit/_roosimultaneous.py ++ ROOT/_pythonization/_roofit/_roosimwstool.py ++ ROOT/_pythonization/_roofit/_roovectordatastore.py ++ ROOT/_pythonization/_roofit/_rooworkspace.py ++ ROOT/_pythonization/_roofit/_utils.py) ++endif() ++ ++if(tmva) ++ list(APPEND PYROOT_EXTRA_PY2_PY3_SOURCE ++ ROOT/_pythonization/_tmva/_crossvalidation.py ++ ROOT/_pythonization/_tmva/_dataloader.py ++ ROOT/_pythonization/_tmva/_factory.py ++ ROOT/_pythonization/_tmva/__init__.py ++ ROOT/_pythonization/_tmva/_rbdt.py ++ ROOT/_pythonization/_tmva/_rtensor.py ++ ROOT/_pythonization/_tmva/_tree_inference.py ++ ROOT/_pythonization/_tmva/_utils.py) ++endif() ++ + list(APPEND PYROOT_EXTRA_HEADERS + inc/TPyDispatcher.h) + +@@ -39,32 +81,6 @@ set(py2_py3_sources + ROOT/_pythonization/_generic.py + ROOT/_pythonization/__init__.py + ROOT/_pythonization/_pyz_utils.py +- ROOT/_pythonization/_roofit/__init__.py +- ROOT/_pythonization/_roofit/_rooabscollection.py +- ROOT/_pythonization/_roofit/_rooabsdata.py +- ROOT/_pythonization/_roofit/_rooabspdf.py +- ROOT/_pythonization/_roofit/_rooabsreallvalue.py +- ROOT/_pythonization/_roofit/_rooabsreal.py +- ROOT/_pythonization/_roofit/_rooarglist.py +- ROOT/_pythonization/_roofit/_rooargset.py +- ROOT/_pythonization/_roofit/_roocategory.py +- ROOT/_pythonization/_roofit/_roochi2var.py +- ROOT/_pythonization/_roofit/_roodatahist.py +- ROOT/_pythonization/_roofit/_roodataset.py +- ROOT/_pythonization/_roofit/_roodecays.py +- ROOT/_pythonization/_roofit/_roogenfitstudy.py +- ROOT/_pythonization/_roofit/_rooglobalfunc.py +- ROOT/_pythonization/_roofit/_roojsonfactorywstool.py +- ROOT/_pythonization/_roofit/_roomcstudy.py +- ROOT/_pythonization/_roofit/_roomsgservice.py +- ROOT/_pythonization/_roofit/_roonllvar.py +- ROOT/_pythonization/_roofit/_rooprodpdf.py +- ROOT/_pythonization/_roofit/_roorealvar.py +- ROOT/_pythonization/_roofit/_roosimultaneous.py +- ROOT/_pythonization/_roofit/_roosimwstool.py +- ROOT/_pythonization/_roofit/_roovectordatastore.py +- ROOT/_pythonization/_roofit/_rooworkspace.py +- ROOT/_pythonization/_roofit/_utils.py + ROOT/_pythonization/_rvec.py + ROOT/_pythonization/_stl_vector.py + ROOT/_pythonization/_tarray.py +@@ -79,14 +95,6 @@ set(py2_py3_sources + ROOT/_pythonization/_tgraph.py + ROOT/_pythonization/_th1.py + ROOT/_pythonization/_titer.py +- ROOT/_pythonization/_tmva/_crossvalidation.py +- ROOT/_pythonization/_tmva/_dataloader.py +- ROOT/_pythonization/_tmva/_factory.py +- ROOT/_pythonization/_tmva/__init__.py +- ROOT/_pythonization/_tmva/_rbdt.py +- ROOT/_pythonization/_tmva/_rtensor.py +- ROOT/_pythonization/_tmva/_tree_inference.py +- ROOT/_pythonization/_tmva/_utils.py + ROOT/_pythonization/_tobject.py + ROOT/_pythonization/_tobjstring.py + ROOT/_pythonization/_tseqcollection.py +-- +2.39.2 + diff --git a/root-RF-Rewrite-RooProdPdf.TestGetPartIntList-unit-test.patch b/root-RF-Rewrite-RooProdPdf.TestGetPartIntList-unit-test.patch new file mode 100644 index 0000000..d295c53 --- /dev/null +++ b/root-RF-Rewrite-RooProdPdf.TestGetPartIntList-unit-test.patch @@ -0,0 +1,168 @@ +From c20004230608a5679ee6c0a7648af5f190c415c9 Mon Sep 17 00:00:00 2001 +From: Jonas Rembser <jonas.rembser(a)cern.ch> +Date: Tue, 7 Mar 2023 11:53:01 +0100 +Subject: [PATCH] [RF] Rewrite `RooProdPdf.TestGetPartIntList` unit test + +In the ROOT 6.26 development cycle, the RooProdPdf was partially +rewritten in moden C++ with less manual memory allocation to improve +performance (PR #7907). + +In that PR, a unit test that verifies the RooProdPdf can correctly deal +with factorizing PDFs was implemented. However, that test used an +arbitrary PDF where the correct factorization was checked in a rather +crude way: check by hashing the content of the RooProdPdf cache element +for a given normalization set that said PR doesn't change any behavior +(the reference hash was hardcoded in the unit test). + +This commit suggests a better alternative for the unit test, checking +for a multidimensional product pdf of factorizing uniform pdfs that the +pdf values for differenc normalization sets is as expected. This should +cover the same functionality and is less fragile and implementation +dependend than hashing the cache elements. + +This closes GitHub issue #12430, as the rewritten test is not affected +anymore by the problem reported in that issue. +--- + roofit/roofitcore/inc/RooProdPdf.h | 2 - + roofit/roofitcore/src/RooProdPdf.cxx | 4 -- + roofit/roofitcore/test/testRooProdPdf.cxx | 88 +++++++---------------- + 3 files changed, 26 insertions(+), 68 deletions(-) + +diff --git a/roofit/roofitcore/inc/RooProdPdf.h b/roofit/roofitcore/inc/RooProdPdf.h +index 3d779a4901..0a76c839aa 100644 +--- a/roofit/roofitcore/inc/RooProdPdf.h ++++ b/roofit/roofitcore/inc/RooProdPdf.h +@@ -96,8 +96,6 @@ public: + + RooArgSet* findPdfNSet(RooAbsPdf const& pdf) const ; + +- void writeCacheToStream(std::ostream& os, RooArgSet const* nset) const; +- + std::unique_ptr<RooAbsArg> compileForNormSet(RooArgSet const &normSet, RooFit::Detail::CompileContext & ctx) const override; + + private: +diff --git a/roofit/roofitcore/src/RooProdPdf.cxx b/roofit/roofitcore/src/RooProdPdf.cxx +index 8c8c7e01c6..6af7279603 100644 +--- a/roofit/roofitcore/src/RooProdPdf.cxx ++++ b/roofit/roofitcore/src/RooProdPdf.cxx +@@ -2324,10 +2324,6 @@ void RooProdPdf::CacheElem::writeToStream(std::ostream& os) const { + } + } + +-void RooProdPdf::writeCacheToStream(std::ostream& os, RooArgSet const* nset) const { +- getCacheElem(nset)->writeToStream(os); +-} +- + std::unique_ptr<RooArgSet> RooProdPdf::fillNormSetForServer(RooArgSet const &normSet, RooAbsArg const &server) const + { + if (normSet.empty()) +diff --git a/roofit/roofitcore/test/testRooProdPdf.cxx b/roofit/roofitcore/test/testRooProdPdf.cxx +index d794fb415a..ff334211d2 100644 +--- a/roofit/roofitcore/test/testRooProdPdf.cxx ++++ b/roofit/roofitcore/test/testRooProdPdf.cxx +@@ -74,76 +74,40 @@ INSTANTIATE_TEST_SUITE_P(RooProdPdf, TestProdPdf, + return ss.str(); + }); + +-std::vector<std::vector<RooAbsArg *>> allPossibleSubset(RooAbsCollection const &arr) ++TEST(RooProdPdf, TestGetPartIntList) + { +- std::vector<std::vector<RooAbsArg *>> out; +- std::size_t n = arr.size(); +- +- std::size_t count = std::pow(2, n); +- for (std::size_t i = 0; i < count; i++) { +- out.emplace_back(); +- auto &back = out.back(); +- for (std::size_t j = 0; j < n; j++) { +- if ((i & (1 << j)) != 0) { +- back.push_back(arr[j]); +- } +- } +- } +- return out; +-} ++ RooHelpers::LocalChangeMsgLevel chmsglvl1{RooFit::ERROR, 0u, RooFit::InputArguments, true}; ++ RooHelpers::LocalChangeMsgLevel chmsglvl2{RooFit::WARNING, 0u, RooFit::NumIntegration, true}; + +-// Hash the integral configuration for all possible normalization sets. +-unsigned int hashRooProduct(RooProdPdf const &prod) +-{ +- RooArgSet params; +- prod.getParameters(nullptr, params); +- auto subsets = allPossibleSubset(params); ++ // This test checks if RooProdPdf::getPartIntList factorizes the integrals ++ // as expected, for the example of a three dimensional RooProdPdf. + +- std::stringstream ss; ++ RooWorkspace ws; + +- for (auto const &subset : subsets) { +- // this can't be on the stack, otherwise we will always get the same +- // address and therefore get wrong cache hits! +- auto nset = std::make_unique<RooArgSet>(subset.begin(), subset.end()); +- prod.writeCacheToStream(ss, nset.get()); +- } ++ double a = 10.; ++ double b = 4.; ++ double c = 2.5; + +- std::string s = ss.str(); +- return TString::Hash(s.c_str(), s.size()); +-} ++ auto &x = static_cast<RooRealVar &>(*ws.factory("x[0, 0, " + std::to_string(a) + "]")); ++ auto &y = static_cast<RooRealVar &>(*ws.factory("y[0, 0, " + std::to_string(b) + "]")); ++ auto &z = static_cast<RooRealVar &>(*ws.factory("z[0, 0, " + std::to_string(c) + "]")); + +-TEST(RooProdPdf, TestGetPartIntList) +-{ +- // This test checks if RooProdPdf::getPartIntList factorizes the integrals +- // as expected. +- // Instead of trying to construct tests for all possible cases by hand, +- // this test creates a product where the factors have different patters of +- // overlapping parameters. To make sure all possible cases are covered, we +- // are using all possible subsets of the parameters one after the other to +- // create the reference test result. +- +- RooRealVar x{"x", "x", 1., 0, 10}; +- RooRealVar y{"y", "y", 1., 0, 10}; +- RooRealVar z{"z", "z", 1., 0, 10}; +- +- RooRealVar m1{"m1", "m1", 1., 0, 10}; +- RooRealVar m2{"m2", "m2", 1., 0, 10}; +- RooRealVar m3{"m3", "m3", 1., 0, 10}; +- +- RooGenericPdf gauss1{"gauss1", "gauss1", "x+m1", {x, m1}}; +- RooGenericPdf gauss2{"gauss2", "gauss2", "x+m2", {x, m2}}; +- RooGenericPdf gauss3{"gauss3", "gauss3", "y+m3", {y, m3}}; +- RooGenericPdf gauss4{"gauss4", "gauss4", "z+m1", {z, m1}}; +- RooGenericPdf gauss5{"gauss5", "gauss5", "x+m1", {x, m1}}; ++ // Factorize the product in one 1D and one 2D pdf to get a more complicated ++ // and complete test case. ++ ws.factory("Uniform::pdf1({x})"); ++ ws.factory("Uniform::pdf2({y, z})"); + + // Product of all the pdfs. +- RooProdPdf prod{"prod", "prod", RooArgList{gauss1, gauss2, gauss3, gauss4, gauss5}}; +- +- // We hash the string serializations of caches for all possible +- // normalization sets and compare it to the expected hash. +- // This value must be updated if the convention for integral names in +- // RooProdPdf changes. +- EXPECT_EQ(hashRooProduct(prod), 2448666198); ++ auto &prod = static_cast<RooProdPdf &>(*ws.factory("PROD::prod(pdf1, pdf2)")); ++ ++ EXPECT_DOUBLE_EQ(prod.getVal({}), 1.0); ++ EXPECT_DOUBLE_EQ(prod.getVal({x}), 1. / a); ++ EXPECT_DOUBLE_EQ(prod.getVal({y}), 1. / b); ++ EXPECT_DOUBLE_EQ(prod.getVal({z}), 1. / c); ++ EXPECT_DOUBLE_EQ(prod.getVal({x, y}), 1. / a / b); ++ EXPECT_DOUBLE_EQ(prod.getVal({x, z}), 1. / a / c); ++ EXPECT_DOUBLE_EQ(prod.getVal({y, z}), 1. / b / c); ++ EXPECT_DOUBLE_EQ(prod.getVal({x, y, z}), 1. / a / b / c); + } + + TEST(RooProdPdf, TestDepsAreCond) +-- +2.39.2 + diff --git a/root-Set-DataLayout-from-our-TargetMachine.patch b/root-Set-DataLayout-from-our-TargetMachine.patch new file mode 100644 index 0000000..d936302 --- /dev/null +++ b/root-Set-DataLayout-from-our-TargetMachine.patch @@ -0,0 +1,32 @@ +From d4c66a41ae50ecfb905ebe66eb296de4e5c146d7 Mon Sep 17 00:00:00 2001 +From: Jonas Hahnfeld <jonas.hahnfeld(a)cern.ch> +Date: Thu, 16 Feb 2023 16:40:16 +0100 +Subject: [PATCH 2/2] [cling] Set DataLayout from our TargetMachine + +Otherwise LLJIT's constructor will ask the LLJITBuilder's JTMB to +create a DataLayout. As we don't propagate the JTMB (yet -- we +probably should!), this will be wrong if target features influence +the DataLayout. + +This should fix #12293. + +(cherry picked from commit 254bac6cfad78ed671ec3af3d2001c52487b4c86) +--- + interpreter/cling/lib/Interpreter/IncrementalJIT.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp b/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp +index 80b6761491..e1721a4d45 100644 +--- a/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp ++++ b/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp +@@ -358,6 +358,7 @@ IncrementalJIT::IncrementalJIT( + ErrorAsOutParameter _(&Err); + + LLJITBuilder Builder; ++ Builder.setDataLayout(TM->createDataLayout()); + Builder.setExecutorProcessControl(std::move(EPC)); + + // Create ObjectLinkingLayer with our own MemoryManager. +-- +2.39.2 + diff --git a/root-Simplify-creation-of-TargetMachine.patch b/root-Simplify-creation-of-TargetMachine.patch new file mode 100644 index 0000000..8eaa5d8 --- /dev/null +++ b/root-Simplify-creation-of-TargetMachine.patch @@ -0,0 +1,94 @@ +From 63d16de24e695a847274fa3044127cefffc7b0b6 Mon Sep 17 00:00:00 2001 +From: Jonas Hahnfeld <jonas.hahnfeld(a)cern.ch> +Date: Fri, 3 Feb 2023 11:52:22 +0100 +Subject: [PATCH 1/2] [cling] Simplify creation of TargetMachine + +We know exactly which target triple and features the CompilerInstance +wants, we don't need to (and probably must not) second-guess that. This +brings us closer to upstream clang-repl and also includes the change of +https://reviews.llvm.org/D128853 which is crucial for RISC-V. + +(cherry picked from commit df0905c499a541eaac3be63c0455a07946022983) +--- + .../cling/lib/Interpreter/IncrementalJIT.cpp | 34 ++++++------------- + 1 file changed, 11 insertions(+), 23 deletions(-) + +diff --git a/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp b/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp +index 5342945ed1..80b6761491 100644 +--- a/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp ++++ b/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp +@@ -15,6 +15,7 @@ + #include "cling/Utils/Output.h" + #include "cling/Utils/Utils.h" + ++#include <clang/Basic/TargetInfo.h> + #include <clang/Basic/TargetOptions.h> + #include <clang/Frontend/CompilerInstance.h> + +@@ -292,45 +293,32 @@ Error RTDynamicLibrarySearchGenerator::tryToGenerate( + } + + static std::unique_ptr<TargetMachine> +-CreateHostTargetMachine(const clang::CompilerInstance& CI) { +- const clang::TargetOptions& TargetOpts = CI.getTargetOpts(); +- const clang::CodeGenOptions& CGOpt = CI.getCodeGenOpts(); +- const std::string& Triple = TargetOpts.Triple; +- +- std::string Error; +- const Target *TheTarget = TargetRegistry::lookupTarget(Triple, Error); +- if (!TheTarget) { +- cling::errs() << "cling::IncrementalExecutor: unable to find target:\n" +- << Error; +- return std::unique_ptr<TargetMachine>(); +- } +- ++CreateTargetMachine(const clang::CompilerInstance& CI) { + CodeGenOpt::Level OptLevel = CodeGenOpt::Default; +- switch (CGOpt.OptimizationLevel) { ++ switch (CI.getCodeGenOpts().OptimizationLevel) { + case 0: OptLevel = CodeGenOpt::None; break; + case 1: OptLevel = CodeGenOpt::Less; break; + case 2: OptLevel = CodeGenOpt::Default; break; + case 3: OptLevel = CodeGenOpt::Aggressive; break; + default: OptLevel = CodeGenOpt::Default; + } ++ + using namespace llvm::orc; +- auto JTMB = JITTargetMachineBuilder::detectHost(); +- if (!JTMB) +- logAllUnhandledErrors(JTMB.takeError(), llvm::errs(), +- "Error detecting host"); ++ auto JTMB = JITTargetMachineBuilder(CI.getTarget().getTriple()); ++ JTMB.addFeatures(CI.getTargetOpts().Features); + +- JTMB->setCodeGenOptLevel(OptLevel); ++ JTMB.setCodeGenOptLevel(OptLevel); + #ifdef _WIN32 +- JTMB->getOptions().EmulatedTLS = false; ++ JTMB.getOptions().EmulatedTLS = false; + #endif // _WIN32 + + #if defined(__powerpc64__) || defined(__PPC64__) + // We have to use large code model for PowerPC64 because TOC and text sections + // can be more than 2GB apart. +- JTMB->setCodeModel(CodeModel::Large); ++ JTMB.setCodeModel(CodeModel::Large); + #endif + +- std::unique_ptr<TargetMachine> TM = cantFail(JTMB->createTargetMachine()); ++ std::unique_ptr<TargetMachine> TM = cantFail(JTMB.createTargetMachine()); + + // Forcefully disable GlobalISel, it might be enabled on AArch64 without + // optimizations. In tests on an Apple M1 after the upgrade to LLVM 9, this +@@ -365,7 +353,7 @@ IncrementalJIT::IncrementalJIT( + std::unique_ptr<llvm::orc::ExecutorProcessControl> EPC, Error& Err, + void *ExtraLibHandle, bool Verbose) + : SkipHostProcessLookup(false), +- TM(CreateHostTargetMachine(CI)), ++ TM(CreateTargetMachine(CI)), + SingleThreadedContext(std::make_unique<LLVMContext>()) { + ErrorAsOutParameter _(&Err); + +-- +2.39.2 + diff --git a/root-add-missing-include-cstdint.patch b/root-add-missing-include-cstdint.patch index f86f0ee..0572ac3 100644 --- a/root-add-missing-include-cstdint.patch +++ b/root-add-missing-include-cstdint.patch @@ -1,4 +1,4 @@ -From cf6a925dfda2411b979da368e4cea769dbe6238a Mon Sep 17 00:00:00 2001 +From 87d302b9192538e18645f4c3efadc70e9a20a913 Mon Sep 17 00:00:00 2001 From: Mattias Ellert <mattias.ellert(a)physics.uu.se> Date: Fri, 20 Jan 2023 06:34:11 +0100 Subject: [PATCH] Add missing #include <cstdint> @@ -14,8 +14,8 @@ index 69ee9ba99d..6367dfa93f 100644 --- a/tree/ntuple/v7/inc/ROOT/RDaos.hxx +++ b/tree/ntuple/v7/inc/ROOT/RDaos.hxx @@ -22,6 +22,7 @@ - // Also, this header file is known to provide macros that conflict with std::min()/std::max(). - extern "C" void d_rank_list_free(d_rank_list_t *rank_list); + + #include <daos.h> +#include <cstdint> #include <functional> @@ -31,8 +31,8 @@ index a975b5ce5d..be08eba924 100644 +#include <cstdint> #include <string> + #include <variant> #include <vector> - -- -2.39.0 +2.39.1 diff --git a/root-avoid-deleting-TFormulas-twice.patch b/root-avoid-deleting-TFormulas-twice.patch deleted file mode 100644 index af758ed..0000000 --- a/root-avoid-deleting-TFormulas-twice.patch +++ /dev/null @@ -1,37 +0,0 @@ -From c7dd58f3bc012690bab16763b1d73a4b7106ced9 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Tue, 29 Mar 2022 15:40:35 +0200 -Subject: [PATCH] Avoid deleting TFormulas twice - -Example failure: - - 562/1224 Test #541: tutorial-gl-gltf3 ...................................................***Failed Error regular expression found in output. Regex=[Error in <] 1.36 sec -Processing /builddir/build/BUILD/root-6.26.00/tutorials/gl/gltf3.C... -Error in <TList::Delete>: A list is accessing an object (0x7fffd1c959a0) already deleted (list name = Functions) -Error in <TList::Delete>: A list is accessing an object (0x7fffd1c95750) already deleted (list name = Functions) - -The commit also changes the filename used in -tutorials/hist/fillrandom.py to be different form the one used in -tutorials/hist/fillrandom.C (and tutorials/pyroot/fillrandom.py) ---- - tutorials/gl/gltf3.C | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tutorials/gl/gltf3.C b/tutorials/gl/gltf3.C -index 3697e69b7a..4089f0d2b7 100644 ---- a/tutorials/gl/gltf3.C -+++ b/tutorials/gl/gltf3.C -@@ -27,8 +27,8 @@ void gltf3() - TPad *tf3Pad = new TPad("box", "box", 0.04, 0.04, 0.96, 0.8); - tf3Pad->Draw(); - -- TFormula f1 = TFormula("f1", "x*x + y*y + z*z + 2*y - 1"); -- TFormula f2 = TFormula("f2", "x*x + y*y + z*z - 2*y - 1"); -+ TFormula *f1 = new TFormula("f1", "x*x + y*y + z*z + 2*y - 1"); -+ TFormula *f2 = new TFormula("f2", "x*x + y*y + z*z - 2*y - 1"); - - // Klein bottle with cut top&bottom parts - // The Klein bottle is a closed non-orientable surface that has no --- -2.35.1 - diff --git a/root-avoid-deprecated-numpy.object.patch b/root-avoid-deprecated-numpy.object.patch deleted file mode 100644 index 9330bac..0000000 --- a/root-avoid-deprecated-numpy.object.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 1e7dc9fcd60133375c3b725d8317fab339c2bf38 Mon Sep 17 00:00:00 2001 -From: Vincenzo Eduardo Padulano <v.e.padulano(a)gmail.com> -Date: Mon, 30 Jan 2023 10:31:29 +0100 -Subject: [PATCH] [DF][PyROOT] Avoid deprecated numpy.object - ---- - .../pythonizations/python/ROOT/_pythonization/_rdataframe.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py b/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py -index 59cb0cd260dd..01cb08b0365f 100644 ---- a/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py -+++ b/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py -@@ -287,7 +287,7 @@ def GetValue(self): - tmp = numpy.asarray(cpp_reference) # This adopts the memory of the C++ object. - self._py_arrays[column] = ndarray(tmp, self._result_ptrs[column]) - else: -- tmp = numpy.empty(len(cpp_reference), dtype=numpy.object) -+ tmp = numpy.empty(len(cpp_reference), dtype=object) - for i, x in enumerate(cpp_reference): - tmp[i] = x # This creates only the wrapping of the objects and does not copy. - self._py_arrays[column] = ndarray(tmp, self._result_ptrs[column]) diff --git a/root-avoid-race-condition-tutorial-roofit-rf512.patch b/root-avoid-race-condition-tutorial-roofit-rf512.patch deleted file mode 100644 index d0c40e8..0000000 --- a/root-avoid-race-condition-tutorial-roofit-rf512.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 91de99623d0e945610be46d46e84b54985415aeb Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Fri, 28 Oct 2022 06:27:10 +0200 -Subject: [PATCH] Avoid race condition between - tutorial/roofit/rf512_wsfactory_oper.C and - tutorial/roofit/rf512_wsfactory_oper.py - -When run in parallel they delete eachother's files: - -cc1plus: fatal error: /builddir/build/BUILD/root-6.26.08/redhat-linux-build/runtutorials/RooCFAuto000Pdf_cxx_ACLiC_dict.cxx: No such file or directory -compilation terminated. -/usr/bin/ld: cannot find /builddir/build/BUILD/root-6.26.08/redhat-linux-build/runtutorials/RooCFAuto000Pdf_cxx_ACLiC_dict.o: No such file or directory -collect2: error: ld returned 1 exit status ---- - tutorials/CMakeLists.txt | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt -index cfba4d3ed9..6ae9be5869 100644 ---- a/tutorials/CMakeLists.txt -+++ b/tutorials/CMakeLists.txt -@@ -483,7 +483,7 @@ set(hist-hbars-depends tutorial-tree-cernbuild) - set(benchmarks-depends tutorial-hsimple - tutorial-fit-fit1 - tutorial-fit-myfit -- tutorial-hist-h1ReadAndDraw -+ tutorial-hist-h1ReadAndDraw - tutorial-hist-FirstContour - tutorial-geom-na49view - tutorial-tree-ntuple1 -@@ -731,7 +731,7 @@ if(ROOT_pyroot_FOUND) - set(pyroot-benchmarks-depends tutorial-pyroot-hsimple-py - tutorial-pyroot-fit1-py - tutorial-pyroot-na49view-py -- tutorial-pyroot-h1ReadAndDraw-py -+ tutorial-pyroot-h1ReadAndDraw-py - tutorial-pyroot-ntuple1-py) - set(pyroot-fit1-depends tutorial-pyroot-fillrandom-py) - set(pyroot-na49view-depends tutorial-pyroot-geometry-py) -@@ -739,6 +739,7 @@ if(ROOT_pyroot_FOUND) - - # Avoid a race condition: make sure Python tutorial is ran after C++ tutorial - set(roofit-rf104_classfactory-depends tutorial-roofit-rf104_classfactory) -+ set(roofit-rf512_wsfactory_oper-depends tutorial-roofit-rf512_wsfactory_oper) - - #---------------------------------------------------------------------- - # List requirements for python tutorials. --- -2.37.3 - diff --git a/root-big-endian-byte-swap.patch b/root-big-endian-byte-swap.patch index 63490b5..caa3076 100644 --- a/root-big-endian-byte-swap.patch +++ b/root-big-endian-byte-swap.patch @@ -1,15 +1,15 @@ -From d9e03aad7a5132fe9db9992eecb47ee4e91c354c Mon Sep 17 00:00:00 2001 +From b32c7a1b080cb5d14f242070bf906ea6929d604d Mon Sep 17 00:00:00 2001 From: Mattias Ellert <mattias.ellert(a)physics.uu.se> Date: Fri, 25 Mar 2022 11:13:12 +0100 Subject: [PATCH] Byte swap values read from the protobuf raw data stream on big endian --- - tmva/sofie_parsers/src/RModelParser_ONNX.cxx | 12 +++++++++--- - 1 file changed, 9 insertions(+), 3 deletions(-) + tmva/sofie_parsers/src/RModelParser_ONNX.cxx | 23 +++++++++++++++----- + 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/tmva/sofie_parsers/src/RModelParser_ONNX.cxx b/tmva/sofie_parsers/src/RModelParser_ONNX.cxx -index 3b0a30cdb0..23e41d746f 100644 +index ab457dcddc..d701fb3299 100644 --- a/tmva/sofie_parsers/src/RModelParser_ONNX.cxx +++ b/tmva/sofie_parsers/src/RModelParser_ONNX.cxx @@ -1,3 +1,4 @@ @@ -17,24 +17,42 @@ index 3b0a30cdb0..23e41d746f 100644 #include "TMVA/RModelParser_ONNX.hxx" #include "onnx_proto3.pb.h" -@@ -980,9 +981,14 @@ RModel RModelParser_ONNX::Parse(std::string filename){ - //void* data = malloc (fLength * sizeof(float)); - std::shared_ptr<void> data(malloc(fLength * sizeof(float)), free); +@@ -335,9 +336,14 @@ RModel RModelParser_ONNX::Parse(std::string filename, bool verbose) + case ETensorType::FLOAT: { + std::shared_ptr<void> data(malloc(fLength * sizeof(float)), free); -- if (tensorproto->raw_data().empty() == false){ -- auto raw_data_ptr = reinterpret_cast<float*>(const_cast<char*>(tensorproto->raw_data().c_str())); -- std::memcpy(data.get(), raw_data_ptr, fLength * sizeof(float)); -+ if (!tensorproto->raw_data().empty()) { +- if (tensorproto->raw_data().empty() == false) { +- auto raw_data_ptr = reinterpret_cast<float *>(const_cast<char *>(tensorproto->raw_data().c_str())); +- std::memcpy(data.get(), raw_data_ptr, fLength * sizeof(float)); ++ if (!tensorproto->raw_data().empty()) { +#ifdef R__BYTESWAP -+ std::memcpy(data.get(), tensorproto->raw_data().c_str(), fLength * sizeof(float)); ++ std::memcpy(data.get(), tensorproto->raw_data().c_str(), fLength * sizeof(float)); +#else -+ for (std::size_t k = 0; k < fLength; ++k) -+ (reinterpret_cast<UInt_t*>(data.get()))[k] = -+ R__bswap_32((reinterpret_cast<const UInt_t*>(tensorproto->raw_data().c_str()))[k]); ++ for (std::size_t k = 0; k < fLength; ++k) ++ (reinterpret_cast<uint32_t *>(data.get()))[k] = ++ Rbswap_32((reinterpret_cast<const uint32_t *>(tensorproto->raw_data().c_str()))[k]); +#endif - }else{ - tensorproto->mutable_float_data()->ExtractSubrange(0, tensorproto->float_data_size(), static_cast<float*>(data.get())); - } + } else { + tensorproto->mutable_float_data()->ExtractSubrange(0, tensorproto->float_data_size(), + static_cast<float *>(data.get())); +@@ -350,9 +356,14 @@ RModel RModelParser_ONNX::Parse(std::string filename, bool verbose) + case ETensorType::INT64: { + std::shared_ptr<void> data(malloc(fLength * sizeof(int64_t)), free); + +- if (tensorproto->raw_data().empty() == false) { +- auto raw_data_ptr = reinterpret_cast<int64_t *>(const_cast<char *>(tensorproto->raw_data().c_str())); +- std::memcpy(data.get(), raw_data_ptr, fLength * sizeof(int64_t)); ++ if (!tensorproto->raw_data().empty()) { ++#ifdef R__BYTESWAP ++ std::memcpy(data.get(), tensorproto->raw_data().c_str(), fLength * sizeof(int64_t)); ++#else ++ for (std::size_t k = 0; k < fLength; ++k) ++ (reinterpret_cast<uint64_t *>(data.get()))[k] = ++ Rbswap_64((reinterpret_cast<const uint64_t *>(tensorproto->raw_data().c_str()))[k]); ++#endif + } else { + tensorproto->mutable_int64_data()->ExtractSubrange(0, tensorproto->int64_data_size(), + static_cast<int64_t *>(data.get())); -- -2.35.1 +2.39.2 diff --git a/root-cling-Disable-outline-atomics-on-AArch64.patch b/root-cling-Disable-outline-atomics-on-AArch64.patch new file mode 100644 index 0000000..ca00e5f --- /dev/null +++ b/root-cling-Disable-outline-atomics-on-AArch64.patch @@ -0,0 +1,35 @@ +From ddf9a8c3d113e3a3d48dbe13b6b4a6bf2338fb7a Mon Sep 17 00:00:00 2001 +From: Jonas Hahnfeld <jonas.hahnfeld(a)cern.ch> +Date: Mon, 20 Feb 2023 10:08:00 +0100 +Subject: [PATCH] [cling] Disable outline-atomics on AArch64 + +The routines __aarch64_* are defined in the static library libgcc.a +and not necessarily included in libCling or otherwise present in the +process, so the interpreter has a hard time finding them. + +Fixes #12294 +--- + interpreter/cling/lib/Interpreter/CIFactory.cpp | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/interpreter/cling/lib/Interpreter/CIFactory.cpp b/interpreter/cling/lib/Interpreter/CIFactory.cpp +index b135bf21aa..b5b5df2e8e 100644 +--- a/interpreter/cling/lib/Interpreter/CIFactory.cpp ++++ b/interpreter/cling/lib/Interpreter/CIFactory.cpp +@@ -1254,6 +1254,13 @@ namespace { + #if __APPLE__ && __arm64__ + argvCompile.push_back("--target=arm64-apple-darwin20.3.0"); + #endif ++#if __aarch64__ ++ // Disable outline-atomics on AArch64; the routines __aarch64_* are defined ++ // in the static library libgcc.a and not necessarily included in libCling ++ // or otherwise present in the process, so the interpreter has a hard time ++ // finding them. ++ argvCompile.push_back("-mno-outline-atomics"); ++#endif + + // Variables for storing the memory of the C-string arguments. + // FIXME: We shouldn't use C-strings in the first place, but just use +-- +2.39.2 + diff --git a/root-core-base-test.patch b/root-core-base-test.patch deleted file mode 100644 index c268390..0000000 --- a/root-core-base-test.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 12d52a60629e1639ced23a1919bd85628d9135ea Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Sun, 3 Apr 2022 23:23:00 +0200 -Subject: [PATCH] Fix library link order - -Fixes undefined references when linking CoreBaseTests - -../../../lib/libCling.so.6.26.00: undefined reference to `TMemFile::TMemFile(char const*, TMemFile::ZeroCopyView_t const&)' -../../../lib/libCling.so.6.26.00: undefined reference to `TFile::TFile(char const*, char const*, char const*, int)' -../../../lib/libCling.so.6.26.00: undefined reference to `TFile::~TFile()' -../../../lib/libCling.so.6.26.00: undefined reference to `TStreamerInfo::TStreamerInfo()' -../../../lib/libCling.so.6.26.00: undefined reference to `TMemFile::~TMemFile()' ---- - core/base/test/CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/core/base/test/CMakeLists.txt b/core/base/test/CMakeLists.txt -index 4b08cb0390..9b52e83405 100644 ---- a/core/base/test/CMakeLists.txt -+++ b/core/base/test/CMakeLists.txt -@@ -22,6 +22,6 @@ ROOT_ADD_GTEST(CoreBaseTests - TExceptionHandlerTests.cxx - TStringTest.cxx - TBitsTests.cxx -- LIBRARIES Core RIO ${extralibs}) -+ LIBRARIES ${extralibs} RIO Core) - - ROOT_ADD_GTEST(CoreErrorTests TErrorTests.cxx LIBRARIES Core) --- -2.35.1 - diff --git a/root-dataframe-callback.patch b/root-dataframe-callback.patch deleted file mode 100644 index 57ffc08..0000000 --- a/root-dataframe-callback.patch +++ /dev/null @@ -1,45 +0,0 @@ -From d849bc502eec4ec95d15ca41319ba0467ab22759 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Thu, 24 Mar 2022 15:55:29 +0100 -Subject: [PATCH] =?UTF-8?q?NENTRIES=20is=20not=20always=20a=20multiple=20o?= - =?UTF-8?q?f=20the=20expected=20size.=20NENTRIES=20is=2010.=20On=20a=204?= - =?UTF-8?q?=20core=20machine=20the=20expected=20size=20in=202=20=C3=97=204?= - =?UTF-8?q?=20=3D=208.=20Looping=20over=20the=208=20IDs,=202=20have=202=20?= - =?UTF-8?q?entries=20the=20remaining=206=20have=201=20entry=20for=20a=20to?= - =?UTF-8?q?tal=20of=2010=20(NENTRIES)=20entries.=20The=20test=20checked=20?= - =?UTF-8?q?that=20each=20ID=20had=20NENTRIES/(expected=20size)=20entries,?= - =?UTF-8?q?=20which=20in=20this=20case=20with=20integer=20division=20equal?= - =?UTF-8?q?s=201=20entry,=20which=20was=20not=20the=20correct=20test.=20Th?= - =?UTF-8?q?is=20commit=20chenges=20to=20test=20to=20check=20that=20the=20t?= - =?UTF-8?q?otal=20number=20of=20entries=20summed=20for=20all=20IDs=20equal?= - =?UTF-8?q?s=20NENTRIES.?= -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - ---- - tree/dataframe/test/dataframe_samplecallback.cxx | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/tree/dataframe/test/dataframe_samplecallback.cxx b/tree/dataframe/test/dataframe_samplecallback.cxx -index 188d58dd31..d387ea5f86 100644 ---- a/tree/dataframe/test/dataframe_samplecallback.cxx -+++ b/tree/dataframe/test/dataframe_samplecallback.cxx -@@ -125,11 +125,13 @@ TEST_P(RDFSampleCallback, EmptySourceSampleID) { - // RDF with empty sources tries to produce 2 tasks per slot when MT is enabled - const auto expectedSize = std::min(NENTRIES, df.GetNSlots() * 2ull); - ASSERT_EQ(result->size(), expectedSize); -+ ULong64_t entries = 0; - for (auto &id : *result) { - // check that all entries start with the expected string - EXPECT_TRUE(id.AsString().rfind("Empty source, range: {", 0) == 0); -- EXPECT_EQ(id.NEntries(), NENTRIES / expectedSize); -+ entries += id.NEntries(); - } -+ EXPECT_EQ(entries, NENTRIES); - } else { - ASSERT_EQ(result->size(), 1); - const auto &id = result->at(0); --- -2.35.1 - diff --git a/root-different-filename.patch b/root-different-filename.patch deleted file mode 100644 index ef42c3d..0000000 --- a/root-different-filename.patch +++ /dev/null @@ -1,48 +0,0 @@ -From a486081a8065154308b23381c3a77f3fdb73de97 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Wed, 16 Nov 2022 20:44:48 +0100 -Subject: [PATCH] Use different filename in loopdir.C and loopdir11.C to avoid - race condition - - Start 672: tutorial-io-loopdir - 690/1156 Test #666: tutorial-io-double32 ................................................ Passed 2.42 sec - Start 673: tutorial-io-loopdir11 - 691/1156 Test #673: tutorial-io-loopdir11 ............................................... Passed 0.76 sec - Start 674: tutorial-io-mergeSelective - 692/1156 Test #672: tutorial-io-loopdir .................................................***Failed Error regular expression found in output. Regex=[Error in <] 1.23 sec -Processing /builddir/build/BUILD/root-6.26.10/tutorials/io/loopdir.C... -Info in <TCanvas::Print>: ps file hsimple.ps has been created -Info in <TCanvas::Print>: Current canvas added to ps file hsimple.ps -Info in <TCanvas::Print>: Current canvas added to ps file hsimple.ps -Info in <TCanvas::Print>: Current canvas added to ps file hsimple.ps -Info in <TCanvas::Print>: ps file hsimple.ps has been closed -Error in <TPostScript::Text>: Cannot open temporary file: hsimple.ps_tmp_2089748 ---- - tutorials/io/loopdir11.C | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/tutorials/io/loopdir11.C b/tutorials/io/loopdir11.C -index b5f9f4719c..bf8c33b442 100644 ---- a/tutorials/io/loopdir11.C -+++ b/tutorials/io/loopdir11.C -@@ -12,14 +12,14 @@ - void loopdir11() { - TFile *f1 = TFile::Open("hsimple.root"); - TCanvas c1; -- c1.Print("hsimple.ps["); -+ c1.Print("hsimple11.ps["); - for(auto k : *f1->GetListOfKeys()) { - TKey *key = static_cast<TKey*>(k); - TClass *cl = gROOT->GetClass(key->GetClassName()); - if (!cl->InheritsFrom("TH1")) continue; - TH1 *h = key->ReadObject<TH1>(); - h->Draw(); -- c1.Print("hsimple.ps"); -+ c1.Print("hsimple11.ps"); - } -- c1.Print("hsimple.ps]"); -+ c1.Print("hsimple11.ps]"); - } --- -2.38.1 - diff --git a/root-do-not-remove-Wp-before-D-and-U.patch b/root-do-not-remove-Wp-before-D-and-U.patch new file mode 100644 index 0000000..820b7af --- /dev/null +++ b/root-do-not-remove-Wp-before-D-and-U.patch @@ -0,0 +1,44 @@ +From 0191a987b7583c2aa84b1293105db353fee40b1d Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Fri, 10 Mar 2023 20:49:02 +0100 +Subject: [PATCH] Do not remove -Wp, before -D and -U when recording used + compiler flags + +This breaks the pattern used when undefining and then defining a +variable in the same flag: + +$ echo | g++ -Wp,-UVAR,-DVAR=1 -c -x c++ - + +Here -Wp,-UVAR,-DVAR=1 will first undefine VAR and then define it to 1 + +If the -Wp, is dropped, this fails: +$ echo | g++ -UVAR,-DVAR=1 -c -x c++ - +<command-line>: warning: extra tokens at end of #undef directive + +Now it will only undefine VAR, but not defin it. I.e. + +insted of + +you get + +which explains the rather cryptic warning about extra token after #undef. +--- + cmake/modules/RootConfiguration.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cmake/modules/RootConfiguration.cmake b/cmake/modules/RootConfiguration.cmake +index 3d1ae9be53..042b43f039 100644 +--- a/cmake/modules/RootConfiguration.cmake ++++ b/cmake/modules/RootConfiguration.cmake +@@ -729,7 +729,7 @@ if (cxxmodules) + endif() + + string(REGEX REPLACE "(^|[ ]*)-W[^ ]*" "" __fflags "${CMAKE_Fortran_FLAGS}") +-string(REGEX MATCHALL "-(D|U)[^ ]*" __defs "${CMAKE_CXX_FLAGS}") ++string(REGEX MATCHALL "(-Wp,)?-(D|U)[^ ]*" __defs "${CMAKE_CXX_FLAGS}") + set(ROOT_COMPILER_FLAG_HINTS "# + set(ROOT_DEFINITIONS \"${__defs}\") + set(ROOT_CXX_FLAGS \"${__cxxflags}\") +-- +2.39.2 + diff --git a/root-dont-install-roofit-files-fix.patch b/root-dont-install-roofit-files-fix.patch new file mode 100644 index 0000000..295a4b7 --- /dev/null +++ b/root-dont-install-roofit-files-fix.patch @@ -0,0 +1,26 @@ +From 74aaf99530443a712f9b0577d8edde615ea8902d Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Sat, 4 Mar 2023 21:27:35 +0100 +Subject: [PATCH] Use FILTER instead of REMOVE_ITEM since GLOB returns absolute + paths + +--- + build/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/build/CMakeLists.txt b/build/CMakeLists.txt +index e964b5e255..2b24b1d6e6 100644 +--- a/build/CMakeLists.txt ++++ b/build/CMakeLists.txt +@@ -30,7 +30,7 @@ ROOT_EXECUTABLE(rmkdepend + if(NOT MSVC AND _BUILD_TYPE_UPPER MATCHES "DEBUG|RELWITHDEBINFO") + file(GLOB PRETTY_PRINTERS "gdbPrinters/*.so-gdb.py") + if(NOT roofit) +- list(REMOVE_ITEM PRETTY_PRINTERS gdbPrinters/libRooFitCore.so-gdb.py) ++ list(FILTER PRETTY_PRINTERS EXCLUDE REGEX libRooFitCore.so-gdb.py) + endif() + set(PRETTY_PRINTER_DESTS) + foreach(PRETTY_PRINTER ${PRETTY_PRINTERS}) +-- +2.39.2 + diff --git a/root-dont-install-roofit-files-when-roofit-is-disabled.patch b/root-dont-install-roofit-files-when-roofit-is-disabled.patch new file mode 100644 index 0000000..7b4881d --- /dev/null +++ b/root-dont-install-roofit-files-when-roofit-is-disabled.patch @@ -0,0 +1,75 @@ +From df636dcc05d0284f39427ea5be1d72e7faca90d8 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Wed, 1 Mar 2023 18:30:35 +0100 +Subject: [PATCH] Don't install roofit files when roofit is disabled + +--- + CMakeLists.txt | 14 ++++++++++++-- + build/CMakeLists.txt | 3 +++ + core/base/CMakeLists.txt | 2 ++ + 3 files changed, 17 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e1d998fde2..7992e27b64 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -591,7 +591,14 @@ if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_INSTALL_PREFIX) + else() + install(DIRECTORY README DESTINATION ${CMAKE_INSTALL_DOCDIR}) + endif() ++ set(ETC_PATT_EXCL) ++ if(NOT roofit) ++ list(APPEND ETC_PATT_EXCL PATTERN HistFactorySchema.dtd EXCLUDE) ++ list(APPEND ETC_PATT_EXCL PATTERN RooFitHS3_wsexportkeys.json EXCLUDE) ++ list(APPEND ETC_PATT_EXCL PATTERN RooFitHS3_wsfactoryexpressions.json EXCLUDE) ++ endif() + install(DIRECTORY etc/ DESTINATION ${CMAKE_INSTALL_SYSCONFDIR} USE_SOURCE_PERMISSIONS ++ ${ETC_PATT_EXCL} + PATTERN "system.rootrc" EXCLUDE + PATTERN "system.rootauthrc" EXCLUDE + PATTERN "system.rootdaemonrc" EXCLUDE +@@ -612,8 +619,11 @@ if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_INSTALL_PREFIX) + set(MAN_PATT_EXCL PATTERN xproofd.1 EXCLUDE) + endif() + if(NOT fortran OR NOT CMAKE_Fortran_COMPILER) +- set(MAN_PATT_EXCL ${MAN_PATT_EXCL} PATTERN h2root.1 EXCLUDE) +- set(MAN_PATT_EXCL ${MAN_PATT_EXCL} PATTERN g2root.1 EXCLUDE) ++ list(APPEND MAN_PATT_EXCL PATTERN h2root.1 EXCLUDE) ++ list(APPEND MAN_PATT_EXCL PATTERN g2root.1 EXCLUDE) ++ endif() ++ if(NOT roofit) ++ list(APPEND MAN_PATT_EXCL PATTERN prepareHistFactory.1 EXCLUDE) + endif() + install(DIRECTORY man/ DESTINATION ${CMAKE_INSTALL_MANDIR} ${MAN_PATT_EXCL}) + install(DIRECTORY tutorials/ DESTINATION ${CMAKE_INSTALL_TUTDIR} COMPONENT tests) +diff --git a/build/CMakeLists.txt b/build/CMakeLists.txt +index 9f60c813ac..e964b5e255 100644 +--- a/build/CMakeLists.txt ++++ b/build/CMakeLists.txt +@@ -29,6 +29,9 @@ ROOT_EXECUTABLE(rmkdepend + + if(NOT MSVC AND _BUILD_TYPE_UPPER MATCHES "DEBUG|RELWITHDEBINFO") + file(GLOB PRETTY_PRINTERS "gdbPrinters/*.so-gdb.py") ++ if(NOT roofit) ++ list(REMOVE_ITEM PRETTY_PRINTERS gdbPrinters/libRooFitCore.so-gdb.py) ++ endif() + set(PRETTY_PRINTER_DESTS) + foreach(PRETTY_PRINTER ${PRETTY_PRINTERS}) + get_filename_component(PRETTY_PRINTER_DEST ${PRETTY_PRINTER} NAME) +diff --git a/core/base/CMakeLists.txt b/core/base/CMakeLists.txt +index 0c9df7c896..df701fedea 100644 +--- a/core/base/CMakeLists.txt ++++ b/core/base/CMakeLists.txt +@@ -224,7 +224,9 @@ if(NOT MSVC) + #---addRootC++CmdMan------------------------------------------------------------------------- + generateManual(rootMan ${CMAKE_CURRENT_SOURCE_DIR}/src/root-argparse.py ${CMAKE_BINARY_DIR}/man/root.1) + generateManual(haddMan ${CMAKE_SOURCE_DIR}/main/src/hadd-argparse.py ${CMAKE_BINARY_DIR}/man/hadd.1) ++if (roofit) + generateManual(hist2workspaceMan ${CMAKE_SOURCE_DIR}/roofit/histfactory/src/hist2workspace-argparse.py ${CMAKE_BINARY_DIR}/man/hist2workspace.1) ++endif() + generateManual(rootclingMan ${CMAKE_SOURCE_DIR}/core/dictgen/src/rootcling-argparse.py ${CMAKE_BINARY_DIR}/man/rootcling.1) + + #---addRootPyCmdMan--------------------------------------------------------------------------- +-- +2.39.2 + diff --git a/root-endian-warn.patch b/root-endian-warn.patch deleted file mode 100644 index 77cd6b9..0000000 --- a/root-endian-warn.patch +++ /dev/null @@ -1,33 +0,0 @@ -From ba0dc65e558fd916dbe18f8dbe8208a3be932c25 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Mon, 28 Mar 2022 09:20:18 +0200 -Subject: [PATCH 2/2] Ignore warnings about RooNaNPacker not being implemented - for big endian - -This warning is triggered in many tests, so it makes sense to put it -in the default ignored set. ---- - test/unit_testing_support/ROOTUnitTestSupport.cxx | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/test/unit_testing_support/ROOTUnitTestSupport.cxx b/test/unit_testing_support/ROOTUnitTestSupport.cxx -index 259ab4e09c..79cd476950 100644 ---- a/test/unit_testing_support/ROOTUnitTestSupport.cxx -+++ b/test/unit_testing_support/ROOTUnitTestSupport.cxx -@@ -73,6 +73,13 @@ static struct ForbidDiagnostics { - return; - } - -+ // FIXME: RooNaNPacker warns about not being implemented for big endian -+ if (level == kWarning -+ && strcmp(msg, "Fast recovery from undefined function values only implemented for little-endian machines. If necessary, request an extension of functionality on
https://root.cern
") == 0) { -+ std::cerr << "Warning in " << location << " " << msg << std::endl; -+ return; -+ } -+ - FAIL() << "Received unexpected diagnostic of severity " - << level - << " at '" << location << "' reading '" << msg << "'.\n" --- -2.35.1 - diff --git a/root-fix-compilation-with-gcc-12.patch b/root-fix-compilation-with-gcc-12.patch deleted file mode 100644 index 2c34516..0000000 --- a/root-fix-compilation-with-gcc-12.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 3bc55ece1db8b32c5e86fd6b85856addd67265fb Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Sat, 15 Jan 2022 06:35:58 +0100 -Subject: [PATCH] Fix compilation with gcc 12 - -Fixes error: use of deleted function - -/builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp: In member function 'std::string llvm::NVPTXAsmPrinter::getPTXFundamentalTypeStr(llvm::Type*, bool) const': -/builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp:1319:10: error: use of deleted function 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::nullptr_t) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::nullptr_t = std::nullptr_t]' - 1319 | return nullptr; - | ^~~~~~~ -In file included from /usr/include/c++/12/string:53, - from /usr/include/c++/12/bits/locale_classes.h:40, - from /usr/include/c++/12/bits/ios_base.h:41, - from /usr/include/c++/12/streambuf:41, - from /usr/include/c++/12/bits/streambuf_iterator.h:35, - from /usr/include/c++/12/iterator:66, - from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/include/llvm/ADT/iterator_range.h:21, - from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/include/llvm/ADT/SmallVector.h:16, - from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/include/llvm/ADT/STLExtras.h:20, - from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/include/llvm/ADT/StringRef.h:12, - from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/include/llvm/Pass.h:31, - from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/lib/Target/NVPTX/NVPTX.h:17, - from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.h:17, - from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp:14: -/usr/include/c++/12/bits/basic_string.h:732:7: note: declared here - 732 | basic_string(nullptr_t) = delete; - | ^~~~~~~~~~~~ - -Fix backported from LLVM upstrea
https://reviews.llvm.org/D87697
---- - interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -diff --git a/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp b/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp -index 5f38b4a3c4..bfa74bd98f 100644 ---- a/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp -+++ b/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp -@@ -1281,9 +1281,6 @@ void NVPTXAsmPrinter::emitPTXAddressSpace(unsigned int AddressSpace, - std::string - NVPTXAsmPrinter::getPTXFundamentalTypeStr(Type *Ty, bool useB4PTR) const { - switch (Ty->getTypeID()) { -- default: -- llvm_unreachable("unexpected type"); -- break; - case Type::IntegerTyID: { - unsigned NumBits = cast<IntegerType>(Ty)->getBitWidth(); - if (NumBits == 1) -@@ -1314,9 +1311,10 @@ NVPTXAsmPrinter::getPTXFundamentalTypeStr(Type *Ty, bool useB4PTR) const { - return "b32"; - else - return "u32"; -+ default: -+ break; - } - llvm_unreachable("unexpected type"); -- return nullptr; - } - - void NVPTXAsmPrinter::emitPTXGlobalVariable(const GlobalVariable *GVar, --- -2.34.1 - diff --git a/root-fix-compilation-with-gcc13.patch b/root-fix-compilation-with-gcc13.patch deleted file mode 100644 index bf411a8..0000000 --- a/root-fix-compilation-with-gcc13.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 37ac6654194f90db625e760dcb2d48fd7938ba6d Mon Sep 17 00:00:00 2001 -From: scott snyder <sss@karma> -Date: Tue, 29 Nov 2022 22:05:39 -0500 -Subject: [PATCH] Fix compilation with gcc13. - -Missing #include <cstdint>. ---- - math/mathcore/inc/Math/Random.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/math/mathcore/inc/Math/Random.h b/math/mathcore/inc/Math/Random.h -index 87eaaee5af..23bfabc4a1 100644 ---- a/math/mathcore/inc/Math/Random.h -+++ b/math/mathcore/inc/Math/Random.h -@@ -25,6 +25,7 @@ - - #include <string> - #include <vector> -+#include <cstdint> - - - namespace ROOT { --- -2.39.0 - diff --git a/root-fix-test-failure-on-ppc64le-and-aarch64-with-gcc-12.patch b/root-fix-test-failure-on-ppc64le-and-aarch64-with-gcc-12.patch index 007c3cd..274aa66 100644 --- a/root-fix-test-failure-on-ppc64le-and-aarch64-with-gcc-12.patch +++ b/root-fix-test-failure-on-ppc64le-and-aarch64-with-gcc-12.patch @@ -1,6 +1,6 @@ -From ddc155795baa9d4690717c204e54a7fd4600c688 Mon Sep 17 00:00:00 2001 +From 15f50c71b4d89bfbf06ce817dee38e843f0f55cd Mon Sep 17 00:00:00 2001 From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Mon, 17 Jan 2022 18:49:30 +0100 +Date: Mon, 17 Jan 2022 23:50:47 +0100 Subject: [PATCH] Fix test failure on ppc64le and aarch64 with gcc 12 .../hist/hist/test/test_tprofile2poly.cxx:61: Failure @@ -14,19 +14,19 @@ cont1 evaluates to 109868.61342004745, cont2 evaluates to 109868.61342004743. The abs_error parameter delta evaluates to 9.999999960041972e-12 which is smaller than the minimum distance between doubles for numbers of this magnitude which is 1.4551915228366852e-11, thus making this EXPECT_NEAR check equivalent to EXPECT_EQUAL. Consider using EXPECT_DOUBLE_EQ instead. --- - hist/hist/test/test_tprofile2poly.cxx | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) + hist/hist/test/test_tprofile2poly.cxx | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/hist/hist/test/test_tprofile2poly.cxx b/hist/hist/test/test_tprofile2poly.cxx -index 40cb3052a2..5150da0bea 100644 +index 40cb3052a2..ecf559a4b3 100644 --- a/hist/hist/test/test_tprofile2poly.cxx +++ b/hist/hist/test/test_tprofile2poly.cxx -@@ -58,14 +58,14 @@ void binEntriesCompare(TProfile2D* tp2d, TProfile2Poly* tpp) { +@@ -58,15 +58,14 @@ void binEntriesCompare(TProfile2D* tp2d, TProfile2Poly* tpp) { for(Double_t x=0.5; x<10; x+=2.0) { cont1 = tp2d->GetBinEffectiveEntries(tp2d->FindBin(x,y)); cont2 = tpp->GetBinEffectiveEntries(tpp->FindBin(x,y)); - ASSERT_NEAR(cont1, cont2, delta); -+ ASSERT_NEAR(cont1, cont2, 2*delta); ++ ASSERT_NEAR(cont1, cont2, 2 * delta); } } @@ -34,10 +34,11 @@ index 40cb3052a2..5150da0bea 100644 cont1 = tp2d->GetBinEffectiveEntries(tp2d->FindBin(11,11)); cont2 = tpp->GetBinEffectiveEntries(tpp->FindBin(11,11)); - ASSERT_NEAR(cont1, cont2, delta); -+ ASSERT_NEAR(cont1, cont2, 2*delta); - +- ++ ASSERT_NEAR(cont1, cont2, 2 * delta); } + void binErrorCompare(TProfile2D* tp2d, TProfile2Poly* tpp) { -- -2.34.1 +2.39.2 diff --git a/root-fixes-for-32bit-builds.patch b/root-fixes-for-32bit-builds.patch new file mode 100644 index 0000000..bcff78d --- /dev/null +++ b/root-fixes-for-32bit-builds.patch @@ -0,0 +1,185 @@ +From 6f69a59010a60c949b1955e52275137e39a85b82 Mon Sep 17 00:00:00 2001 +From: Jakob Blomer <jblomer(a)cern.ch> +Date: Thu, 9 Mar 2023 15:14:22 +0100 +Subject: [PATCH] [ntuple] fixes for 32bit / non-x86_64 builds + +--- + tree/dataframe/src/RNTupleDS.cxx | 1 + + tree/ntuple/v7/inc/ROOT/RField.hxx | 21 +++++++++++++++++++-- + tree/ntuple/v7/test/ntuple_extended.cxx | 8 ++++---- + 3 files changed, 24 insertions(+), 6 deletions(-) + +diff --git a/tree/dataframe/src/RNTupleDS.cxx b/tree/dataframe/src/RNTupleDS.cxx +index f7eb0ab5f284..aaea6df81622 100644 +--- a/tree/dataframe/src/RNTupleDS.cxx ++++ b/tree/dataframe/src/RNTupleDS.cxx +@@ -94,6 +94,7 @@ class RRDFCardinalityField : public ROOT::Experimental::Detail::RFieldBase { + return ROOT::Experimental::Detail::RFieldValue(true /* captureFlag */, this, where); + } + size_t GetValueSize() const final { return sizeof(std::size_t); } ++ size_t GetAlignment() const final { return alignof(std::size_t); } + + /// Get the number of elements of the collection identified by globalIndex + void +diff --git a/tree/ntuple/v7/inc/ROOT/RField.hxx b/tree/ntuple/v7/inc/ROOT/RField.hxx +index b05267d16030..9a85368a94e3 100644 +--- a/tree/ntuple/v7/inc/ROOT/RField.hxx ++++ b/tree/ntuple/v7/inc/ROOT/RField.hxx +@@ -270,8 +270,9 @@ public: + virtual std::vector<RFieldValue> SplitValue(const RFieldValue &value) const; + /// The number of bytes taken by a value of the appropriate type + virtual size_t GetValueSize() const = 0; +- /// For many types, the alignment requirement is equal to the size; otherwise override. +- virtual size_t GetAlignment() const { return GetValueSize(); } ++ /// As a rule of thumb, the alignment is equal to the size of the type. There are, however, various exceptions ++ /// to this rule depending on OS and CPU architecture. So enforce the alignment to be explicitly spelled out. ++ virtual size_t GetAlignment() const = 0; + int GetTraits() const { return fTraits; } + bool HasReadCallbacks() const { return !fReadCallbacks.empty(); } + +@@ -383,6 +384,7 @@ public: + Detail::RFieldValue GenerateValue(void*) override { return Detail::RFieldValue(); } + Detail::RFieldValue CaptureValue(void*) final { return Detail::RFieldValue(); } + size_t GetValueSize() const final { return 0; } ++ size_t GetAlignment() const final { return 0; } + + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; +@@ -889,6 +891,7 @@ public: + Detail::RColumnElement<ClusterSize_t>(static_cast<ClusterSize_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(ClusterSize_t); } ++ size_t GetAlignment() const final { return alignof(ClusterSize_t); } + void CommitCluster() final; + }; + +@@ -990,6 +993,7 @@ public: + Detail::RColumnElement<ClusterSize_t>(static_cast<ClusterSize_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(ClusterSize_t); } ++ size_t GetAlignment() const final { return alignof(ClusterSize_t); } + + /// Special help for offset fields + void GetCollectionInfo(NTupleSize_t globalIndex, RClusterIndex *collectionStart, ClusterSize_t *size) { +@@ -1110,6 +1115,7 @@ public: + Detail::RColumnElement<bool>(static_cast<bool*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(bool); } ++ size_t GetAlignment() const final { return alignof(bool); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1162,6 +1168,7 @@ public: + Detail::RColumnElement<float>(static_cast<float*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(float); } ++ size_t GetAlignment() const final { return alignof(float); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1215,6 +1222,7 @@ public: + Detail::RColumnElement<double>(static_cast<double*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(double); } ++ size_t GetAlignment() const final { return alignof(double); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1267,6 +1275,7 @@ public: + Detail::RColumnElement<char>(static_cast<char*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(char); } ++ size_t GetAlignment() const final { return alignof(char); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1319,6 +1328,7 @@ public: + Detail::RColumnElement<std::int8_t>(static_cast<std::int8_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(std::int8_t); } ++ size_t GetAlignment() const final { return alignof(std::int8_t); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1371,6 +1381,7 @@ public: + Detail::RColumnElement<std::uint8_t>(static_cast<std::uint8_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(std::uint8_t); } ++ size_t GetAlignment() const final { return alignof(std::uint8_t); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1423,6 +1434,7 @@ public: + Detail::RColumnElement<std::int16_t>(static_cast<std::int16_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(std::int16_t); } ++ size_t GetAlignment() const final { return alignof(std::int16_t); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1475,6 +1487,7 @@ public: + Detail::RColumnElement<std::uint16_t>(static_cast<std::uint16_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(std::uint16_t); } ++ size_t GetAlignment() const final { return alignof(std::uint16_t); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1527,6 +1540,7 @@ public: + Detail::RColumnElement<std::int32_t>(static_cast<std::int32_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(std::int32_t); } ++ size_t GetAlignment() const final { return alignof(std::int32_t); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1579,6 +1593,7 @@ public: + Detail::RColumnElement<std::uint32_t>(static_cast<std::uint32_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(std::uint32_t); } ++ size_t GetAlignment() const final { return alignof(std::uint32_t); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1631,6 +1646,7 @@ public: + Detail::RColumnElement<std::uint64_t>(static_cast<std::uint64_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(std::uint64_t); } ++ size_t GetAlignment() const final { return alignof(std::uint64_t); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1683,6 +1699,7 @@ public: + Detail::RColumnElement<std::int64_t>(static_cast<std::int64_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(std::int64_t); } ++ size_t GetAlignment() const final { return alignof(std::int64_t); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +diff --git a/tree/ntuple/v7/test/ntuple_extended.cxx b/tree/ntuple/v7/test/ntuple_extended.cxx +index 91871e288e98..d3b6ee466359 100644 +--- a/tree/ntuple/v7/test/ntuple_extended.cxx ++++ b/tree/ntuple/v7/test/ntuple_extended.cxx +@@ -123,8 +123,8 @@ TEST(RNTuple, LargeFile1) + RNTupleWriteOptions options; + options.SetCompression(0); + auto ntuple = RNTupleWriter::Recreate(std::move(modelWrite), "myNTuple", fileGuard.GetPath(), options); +- constexpr unsigned long nEvents = 1024 * 1024 * 256; // Exceed 2GB file size +- for (unsigned int i = 0; i < nEvents; ++i) { ++ constexpr std::uint64_t nEvents = 1024 * 1024 * 256; // Exceed 2GB file size ++ for (std::uint64_t i = 0; i < nEvents; ++i) { + wrEnergy = rnd.Rndm(); + chksumWrite += wrEnergy; + ntuple->Fill(); +@@ -195,8 +195,8 @@ TEST(RNTuple, LargeFile2) + + TRandom3 rnd(42); + double chksumWrite = 0.0; +- constexpr unsigned long nEvents = 1024 * 1024 * 256; // Exceed 2GB file size +- for (unsigned int i = 0; i < nEvents; ++i) { ++ constexpr std::uint64_t nEvents = 1024 * 1024 * 256; // Exceed 2GB file size ++ for (std::uint64_t i = 0; i < nEvents; ++i) { + *E = rnd.Rndm(); + chksumWrite += *E; + writer->Fill(); diff --git a/root-fontconfig.patch b/root-fontconfig.patch index 35705a4..e19c4b4 100644 --- a/root-fontconfig.patch +++ b/root-fontconfig.patch @@ -1,38 +1,38 @@ -diff -ur root-6.24.02.orig/core/base/src/TApplication.cxx root-6.24.02/core/base/src/TApplication.cxx ---- root-6.24.02.orig/core/base/src/TApplication.cxx 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/core/base/src/TApplication.cxx 2021-08-11 10:49:08.583579248 +0200 -@@ -265,18 +265,11 @@ - LoadGraphicsLibs(); +diff -ur root-6.28.00.orig/core/base/src/TApplication.cxx root-6.28.00/core/base/src/TApplication.cxx +--- root-6.28.00.orig/core/base/src/TApplication.cxx 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/core/base/src/TApplication.cxx 2023-02-04 12:47:19.757759982 +0100 +@@ -251,18 +251,11 @@ + 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); + // 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 -@@ -290,7 +283,6 @@ + #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 +@@ -276,7 +269,6 @@ + } } + #endif +- delete [] ttfont; } - #endif -- delete [] ttfont; - // Create WM dependent application environment - if (fAppImp) -diff -ur root-6.24.02.orig/graf2d/asimage/CMakeLists.txt root-6.24.02/graf2d/asimage/CMakeLists.txt ---- root-6.24.02.orig/graf2d/asimage/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf2d/asimage/CMakeLists.txt 2021-08-11 10:49:08.583579248 +0200 + if (!only_web || !fAppImp) { +diff -ur root-6.28.00.orig/graf2d/asimage/CMakeLists.txt root-6.28.00/graf2d/asimage/CMakeLists.txt +--- root-6.28.00.orig/graf2d/asimage/CMakeLists.txt 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf2d/asimage/CMakeLists.txt 2023-02-04 12:47:19.757759982 +0100 @@ -30,6 +30,7 @@ ${FREETYPE_LIBRARIES} ${X11_LIBRARIES} @@ -41,10 +41,10 @@ diff -ur root-6.24.02.orig/graf2d/asimage/CMakeLists.txt root-6.24.02/graf2d/asi DEPENDENCIES Core Graf -diff -ur root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx root-6.24.02/graf2d/asimage/src/TASImage.cxx ---- root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf2d/asimage/src/TASImage.cxx 2021-08-11 10:49:08.585579253 +0200 -@@ -112,6 +112,8 @@ +diff -ur root-6.28.00.orig/graf2d/asimage/src/TASImage.cxx root-6.28.00/graf2d/asimage/src/TASImage.cxx +--- root-6.28.00.orig/graf2d/asimage/src/TASImage.cxx 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf2d/asimage/src/TASImage.cxx 2023-02-04 12:47:19.760759989 +0100 +@@ -115,6 +115,8 @@ # include <draw.h> } @@ -53,7 +53,7 @@ diff -ur root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx root-6.24.02/graf2d/a // auxiliary functions for general polygon filling #include "TASPolyUtils.c" -@@ -2595,14 +2597,120 @@ +@@ -2590,14 +2592,120 @@ TString fn = font_name; fn.Strip(); @@ -181,7 +181,7 @@ diff -ur root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx root-6.24.02/graf2d/a if (fn.EndsWith(".pfa") || fn.EndsWith(".PFA") || fn.EndsWith(".pfb") || fn.EndsWith(".PFB") || fn.EndsWith(".ttf") || fn.EndsWith(".TTF") || fn.EndsWith(".otf") || fn.EndsWith(".OTF")) { ttfont = kTRUE; -@@ -2626,14 +2734,11 @@ +@@ -2621,14 +2729,11 @@ return; } @@ -199,9 +199,9 @@ diff -ur root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx root-6.24.02/graf2d/a } get_text_size(text, font, (ASText3DType)type, &width, &height); -diff -ur root-6.24.02.orig/graf2d/graf/CMakeLists.txt root-6.24.02/graf2d/graf/CMakeLists.txt ---- root-6.24.02.orig/graf2d/graf/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf2d/graf/CMakeLists.txt 2021-08-11 10:49:08.586579256 +0200 +diff -ur root-6.28.00.orig/graf2d/graf/CMakeLists.txt root-6.28.00/graf2d/graf/CMakeLists.txt +--- root-6.28.00.orig/graf2d/graf/CMakeLists.txt 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf2d/graf/CMakeLists.txt 2023-02-04 12:47:19.861760233 +0100 @@ -91,6 +91,7 @@ ${FREETYPE_LIBRARIES} ZLIB::ZLIB @@ -210,9 +210,9 @@ diff -ur root-6.24.02.orig/graf2d/graf/CMakeLists.txt root-6.24.02/graf2d/graf/C DEPENDENCIES Hist Matrix -diff -ur root-6.24.02.orig/graf2d/graf/inc/TTF.h root-6.24.02/graf2d/graf/inc/TTF.h ---- root-6.24.02.orig/graf2d/graf/inc/TTF.h 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf2d/graf/inc/TTF.h 2021-08-11 10:49:08.586579256 +0200 +diff -ur root-6.28.00.orig/graf2d/graf/inc/TTF.h root-6.28.00/graf2d/graf/inc/TTF.h +--- root-6.28.00.orig/graf2d/graf/inc/TTF.h 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf2d/graf/inc/TTF.h 2023-02-04 12:47:19.862760235 +0100 @@ -76,9 +76,8 @@ static FT_BBox fgCBox; ///< string control box static FT_CharMap fgCharMap[kTTMaxFonts]; ///< font character map @@ -224,9 +224,9 @@ diff -ur root-6.24.02.orig/graf2d/graf/inc/TTF.h root-6.24.02/graf2d/graf/inc/TT static FT_Face fgFace[kTTMaxFonts]; ///< font face static TTF::TTGlyph fgGlyphs[kMaxGlyphs]; ///< glyphs static Bool_t fgHinting; ///< use hinting (true by default) -diff -ur root-6.24.02.orig/graf2d/graf/src/TTF.cxx root-6.24.02/graf2d/graf/src/TTF.cxx ---- root-6.24.02.orig/graf2d/graf/src/TTF.cxx 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf2d/graf/src/TTF.cxx 2021-08-11 10:49:08.587579259 +0200 +diff -ur root-6.28.00.orig/graf2d/graf/src/TTF.cxx root-6.28.00/graf2d/graf/src/TTF.cxx +--- root-6.28.00.orig/graf2d/graf/src/TTF.cxx 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf2d/graf/src/TTF.cxx 2023-02-04 12:47:19.863760238 +0100 @@ -25,6 +25,8 @@ #include "TMath.h" #include "TError.h" @@ -654,7 +654,7 @@ diff -ur root-6.24.02.orig/graf2d/graf/src/TTF.cxx root-6.24.02/graf2d/graf/src/ + FcPatternDestroy (pat); + if (set) FcCharSetDestroy (set); + - FT_Face tface = 0; + FT_Face tface = (FT_Face) 0; - if (FT_New_Face(fgLibrary, ttfont, 0, &tface)) { + if (FT_New_Face(fgLibrary, ttfont, ttindex, &tface)) { @@ -679,7 +679,7 @@ diff -ur root-6.24.02.orig/graf2d/graf/src/TTF.cxx root-6.24.02/graf2d/graf/src/ + fgFontID[fgFontCount] = fontid; fgCurFontIdx = fgFontCount; fgFace[fgCurFontIdx] = tface; - fgCharMap[fgCurFontIdx] = 0; + fgCharMap[fgCurFontIdx] = (FT_CharMap) 0; fgFontCount++; if (italic) { @@ -787,9 +787,9 @@ diff -ur root-6.24.02.orig/graf2d/graf/src/TTF.cxx root-6.24.02/graf2d/graf/src/ } //////////////////////////////////////////////////////////////////////////////// -diff -ur root-6.24.02.orig/graf2d/postscript/CMakeLists.txt root-6.24.02/graf2d/postscript/CMakeLists.txt ---- root-6.24.02.orig/graf2d/postscript/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf2d/postscript/CMakeLists.txt 2021-08-11 10:49:08.587579259 +0200 +diff -ur root-6.28.00.orig/graf2d/postscript/CMakeLists.txt root-6.28.00/graf2d/postscript/CMakeLists.txt +--- root-6.28.00.orig/graf2d/postscript/CMakeLists.txt 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf2d/postscript/CMakeLists.txt 2023-02-04 12:47:19.863760238 +0100 @@ -27,6 +27,7 @@ LIBRARIES ZLIB::ZLIB @@ -798,9 +798,9 @@ diff -ur root-6.24.02.orig/graf2d/postscript/CMakeLists.txt root-6.24.02/graf2d/ DEPENDENCIES Graf ) -diff -ur root-6.24.02.orig/graf2d/postscript/src/TPostScript.cxx root-6.24.02/graf2d/postscript/src/TPostScript.cxx ---- root-6.24.02.orig/graf2d/postscript/src/TPostScript.cxx 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf2d/postscript/src/TPostScript.cxx 2021-08-11 10:49:08.588579261 +0200 +diff -ur root-6.28.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.28.00/graf2d/postscript/src/TPostScript.cxx +--- root-6.28.00.orig/graf2d/postscript/src/TPostScript.cxx 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf2d/postscript/src/TPostScript.cxx 2023-02-04 12:47:19.864760240 +0100 @@ -234,6 +234,7 @@ #include <cctype> #include <cwchar> @@ -1060,9 +1060,9 @@ diff -ur root-6.24.02.orig/graf2d/postscript/src/TPostScript.cxx root-6.24.02/gr { "Root.PSFont.STIXGen", "/STIXGeneral" }, { "Root.PSFont.STIXGenIt", "/STIXGeneral-Italic" }, { "Root.PSFont.STIXGenBd", "/STIXGeneral-Bold" }, -diff -ur root-6.24.02.orig/graf3d/gl/CMakeLists.txt root-6.24.02/graf3d/gl/CMakeLists.txt ---- root-6.24.02.orig/graf3d/gl/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf3d/gl/CMakeLists.txt 2021-08-11 10:49:08.589579264 +0200 +diff -ur root-6.28.00.orig/graf3d/gl/CMakeLists.txt root-6.28.00/graf3d/gl/CMakeLists.txt +--- root-6.28.00.orig/graf3d/gl/CMakeLists.txt 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf3d/gl/CMakeLists.txt 2023-02-04 12:47:19.867760247 +0100 @@ -208,6 +208,7 @@ ${GL2PS_LIBRARIES} ${X11_LIBRARIES} @@ -1071,9 +1071,9 @@ diff -ur root-6.24.02.orig/graf3d/gl/CMakeLists.txt root-6.24.02/graf3d/gl/CMake DEPENDENCIES Hist Gui -diff -ur root-6.24.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.24.02/graf3d/gl/src/TGLFontManager.cxx ---- root-6.24.02.orig/graf3d/gl/src/TGLFontManager.cxx 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf3d/gl/src/TGLFontManager.cxx 2021-08-11 10:49:08.589579264 +0200 +diff -ur root-6.28.00.orig/graf3d/gl/src/TGLFontManager.cxx root-6.28.00/graf3d/gl/src/TGLFontManager.cxx +--- root-6.28.00.orig/graf3d/gl/src/TGLFontManager.cxx 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf3d/gl/src/TGLFontManager.cxx 2023-02-04 12:47:19.867760247 +0100 @@ -36,6 +36,7 @@ # include "FTGLBitmapFont.h" #endif @@ -1329,9 +1329,9 @@ diff -ur root-6.24.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.24.02/graf3d/ fgFontFileArray.Add(new TObjString("STIXGeneral.otf")); // 200 fgFontFileArray.Add(new TObjString("STIXGeneralItalic.otf")); // 210 fgFontFileArray.Add(new TObjString("STIXGeneralBol.otf")); // 220 -diff -ur root-6.24.02.orig/graf3d/gl/src/TGLText.cxx root-6.24.02/graf3d/gl/src/TGLText.cxx ---- root-6.24.02.orig/graf3d/gl/src/TGLText.cxx 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf3d/gl/src/TGLText.cxx 2021-08-11 10:49:08.590579267 +0200 +diff -ur root-6.28.00.orig/graf3d/gl/src/TGLText.cxx root-6.28.00/graf3d/gl/src/TGLText.cxx +--- root-6.28.00.orig/graf3d/gl/src/TGLText.cxx 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf3d/gl/src/TGLText.cxx 2023-02-04 12:47:19.868760250 +0100 @@ -32,6 +32,8 @@ # include "FTGLBitmapFont.h" #endif @@ -1466,10 +1466,10 @@ diff -ur root-6.24.02.orig/graf3d/gl/src/TGLText.cxx root-6.24.02/graf3d/gl/src/ Error("SetGLTextFont","Cannot set FTGL::FaceSize"); - delete [] ttfont; } -diff -ur root-6.24.02.orig/gui/gui/src/TGApplication.cxx root-6.24.02/gui/gui/src/TGApplication.cxx ---- root-6.24.02.orig/gui/gui/src/TGApplication.cxx 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/gui/gui/src/TGApplication.cxx 2021-08-11 10:49:08.590579267 +0200 -@@ -80,20 +80,12 @@ +diff -ur root-6.28.00.orig/gui/gui/src/TGApplication.cxx root-6.28.00/gui/gui/src/TGApplication.cxx +--- root-6.28.00.orig/gui/gui/src/TGApplication.cxx 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/gui/gui/src/TGApplication.cxx 2023-02-04 12:47:19.868760250 +0100 +@@ -81,20 +81,12 @@ gROOT->SetBatch(kFALSE); if (strcmp(appClassName, "proofserv")) { diff --git a/root-get-rid-of-lsb_release.patch b/root-get-rid-of-lsb_release.patch deleted file mode 100644 index 8dca2cc..0000000 --- a/root-get-rid-of-lsb_release.patch +++ /dev/null @@ -1,245 +0,0 @@ -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-gtest-compat.patch b/root-gtest-compat.patch new file mode 100644 index 0000000..4dd4b58 --- /dev/null +++ b/root-gtest-compat.patch @@ -0,0 +1,85 @@ +From 922290ebdc5e3363adfa82dd45208862bb01630a Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Wed, 8 Feb 2023 09:50:00 +0100 +Subject: [PATCH] Fix build with -Dbuiltin_gtest:BOOL=OFF on EPEL 8 + +--- + roofit/roofitcore/test/testRooBinSamplingPdf.cxx | 7 ++++++- + roofit/roofitcore/test/testRooProdPdf.cxx | 5 +++++ + roofit/roofitcore/test/testRooRealIntegral.cxx | 5 +++++ + roofit/roofitcore/test/testTestStatistics.cxx | 2 +- + 4 files changed, 17 insertions(+), 2 deletions(-) + +diff --git a/roofit/roofitcore/test/testRooBinSamplingPdf.cxx b/roofit/roofitcore/test/testRooBinSamplingPdf.cxx +index 823fef712f..116000f9f8 100644 +--- a/roofit/roofitcore/test/testRooBinSamplingPdf.cxx ++++ b/roofit/roofitcore/test/testRooBinSamplingPdf.cxx +@@ -13,6 +13,11 @@ + + #include <gtest/gtest.h> + ++// Backward compatibility for gtest version < 1.10.0 ++#ifndef INSTANTIATE_TEST_SUITE_P ++#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P ++#endif ++ + #include <memory> + + class ParamTest : public testing::TestWithParam<std::tuple<std::string>> { +@@ -123,7 +128,7 @@ TEST(RooBinSamplingPdf, CheckConsistentNormalization) + EXPECT_FLOAT_EQ(int2->getVal(), int3->getVal()); + } + +-INSTANTIATE_TEST_SUITE_P(RooBinSamplingPdf, ParamTest, testing::Combine(testing::Values("Off", "Cpu")), ++INSTANTIATE_TEST_SUITE_P(RooBinSamplingPdf, ParamTest, testing::Values("Off", "Cpu"), + [](testing::TestParamInfo<ParamTest::ParamType> const ¶mInfo) { + std::stringstream ss; + ss << "BatchMode" << std::get<0>(paramInfo.param); +diff --git a/roofit/roofitcore/test/testRooProdPdf.cxx b/roofit/roofitcore/test/testRooProdPdf.cxx +index 86bcf6eb48..d794fb415a 100644 +--- a/roofit/roofitcore/test/testRooProdPdf.cxx ++++ b/roofit/roofitcore/test/testRooProdPdf.cxx +@@ -16,6 +16,11 @@ + + #include <gtest/gtest.h> + ++// Backward compatibility for gtest version < 1.10.0 ++#ifndef INSTANTIATE_TEST_SUITE_P ++#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P ++#endif ++ + #include <memory> + #include <sstream> + #include <string> +diff --git a/roofit/roofitcore/test/testRooRealIntegral.cxx b/roofit/roofitcore/test/testRooRealIntegral.cxx +index c33c6ae138..0ab6ab973f 100644 +--- a/roofit/roofitcore/test/testRooRealIntegral.cxx ++++ b/roofit/roofitcore/test/testRooRealIntegral.cxx +@@ -20,6 +20,11 @@ + + #include <gtest/gtest.h> + ++// Backward compatibility for gtest version < 1.10.0 ++#ifndef INSTANTIATE_TEST_SUITE_P ++#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P ++#endif ++ + #include <memory> + + namespace { +diff --git a/roofit/roofitcore/test/testTestStatistics.cxx b/roofit/roofitcore/test/testTestStatistics.cxx +index dc20b4e1c9..1623637653 100644 +--- a/roofit/roofitcore/test/testTestStatistics.cxx ++++ b/roofit/roofitcore/test/testTestStatistics.cxx +@@ -490,7 +490,7 @@ TEST_P(OffsetBinTest, CrossCheck) + EXPECT_NEAR(nllVal1, 0.0, 1e-8) << "NLL with bin offsetting is " << nllVal1 << ", and " << nllVal0 << " without it."; + } + +-INSTANTIATE_TEST_SUITE_P(RooNLLVar, TestStatisticTest, testing::Combine(testing::Values("Off", "Cpu")), ++INSTANTIATE_TEST_SUITE_P(RooNLLVar, TestStatisticTest, testing::Values("Off", "Cpu"), + [](testing::TestParamInfo<TestStatisticTest::ParamType> const ¶mInfo) { + std::stringstream ss; + ss << "BatchMode" << std::get<0>(paramInfo.param); +-- +2.39.1 + diff --git a/root-ignore-prefix.patch b/root-ignore-prefix.patch deleted file mode 100644 index 5b9918a..0000000 --- a/root-ignore-prefix.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 1aa9231becda09a89ec576e4a17ca4d9b6e2f310 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Tue, 15 Mar 2022 14:55:37 +0100 -Subject: [PATCH] Link to the blas library found by cmake, not hardcoded - "blas". Set ROOTIGNOREPREFIX=1 when running built binaries during build. Make - sure PCH is created before running emitters. - ---- - tmva/sofie/test/CMakeLists.txt | 14 ++++++++------ - 1 file changed, 8 insertions(+), 6 deletions(-) - -diff --git a/tmva/sofie/test/CMakeLists.txt b/tmva/sofie/test/CMakeLists.txt -index e4f9d28748..a3a2c9ae16 100644 ---- a/tmva/sofie/test/CMakeLists.txt -+++ b/tmva/sofie/test/CMakeLists.txt -@@ -51,7 +51,7 @@ foreach(onnx_file ${ONNX_FILES}) - get_filename_component(fname ${onnx_file} NAME_WE) - get_filename_component(fdir ${onnx_file} DIRECTORY) - add_custom_command(TARGET SofieCompileModels_ONNX POST_BUILD -- COMMAND ./emitFromONNX ${onnx_file} ${CMAKE_CURRENT_BINARY_DIR}/${fname} -+ COMMAND ${CMAKE_COMMAND} -E env ROOTIGNOREPREFIX=1 ./emitFromONNX ${onnx_file} ${CMAKE_CURRENT_BINARY_DIR}/${fname} - USES_TERMINAL - ) - endforeach() -@@ -100,7 +101,7 @@ foreach(onnx_file ${ONNX_FILES}) - get_filename_component(fname ${onnx_file} NAME_WE) - get_filename_component(fdir ${onnx_file} DIRECTORY) - add_custom_command(TARGET SofieCompileModels_ROOT POST_BUILD -- COMMAND ./emitFromROOT ${onnx_file} ${CMAKE_CURRENT_BINARY_DIR}/${fname} -+ COMMAND ${CMAKE_COMMAND} -E env ROOTIGNOREPREFIX=1 ./emitFromROOT ${onnx_file} ${CMAKE_CURRENT_BINARY_DIR}/${fname} - USES_TERMINAL - ) - endforeach() --- -2.35.1 - diff --git a/root-longlong.patch b/root-longlong.patch deleted file mode 100644 index 3c43542..0000000 --- a/root-longlong.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 2aa02353663674a338c92fa4e72a0c0e529c410e Mon Sep 17 00:00:00 2001 -From: Enrico Guiraud <enrico.guiraud(a)cern.ch> -Date: Fri, 8 Apr 2022 17:52:18 +0200 -Subject: [PATCH] [DF] Fix long int + Snapshot test on 32 bit platforms - -Co-authored-by: Mattias Ellert <mattias.ellert(a)physics.uu.se> ---- - tree/dataframe/test/dataframe_snapshot.cxx | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/tree/dataframe/test/dataframe_snapshot.cxx b/tree/dataframe/test/dataframe_snapshot.cxx -index f41848e96a..ddbacaba0f 100644 ---- a/tree/dataframe/test/dataframe_snapshot.cxx -+++ b/tree/dataframe/test/dataframe_snapshot.cxx -@@ -495,11 +495,14 @@ void ReadWriteCarray(const char *outFileNameBase) - t.Branch("vb", vb, "vb[size]/O"); - t.Branch("vl", vl, "vl[size]/G"); - -+ // use 2**33 as a larger-than-int value on 64 bits, otherwise just something larger than short (2**30) -+ static constexpr long int longintTestValue = sizeof(long int) == 8 ? 8589934592 : 1073741824; -+ - // Size 1 - size = 1; - v[0] = 12; - vb[0] = true; -- vl[0] = 8589934592; // 2**33 -+ vl[0] = longintTestValue; - t.Fill(); - - // Size 0 (see ROOT-9860) -@@ -546,7 +549,7 @@ void ReadWriteCarray(const char *outFileNameBase) - EXPECT_EQ(rvb.GetSize(), 1u); - EXPECT_TRUE(rvb[0]); - EXPECT_EQ(rvl.GetSize(), 1u); -- EXPECT_EQ(rvl[0], 8589934592); -+ EXPECT_EQ(rvl[0], longintTestValue); - - // Size 0 - EXPECT_TRUE(r.Next()); --- -2.35.1 - diff --git a/root-make-DistRDF-optional.patch b/root-make-DistRDF-optional.patch new file mode 100644 index 0000000..653e14e --- /dev/null +++ b/root-make-DistRDF-optional.patch @@ -0,0 +1,32 @@ +From 90e7f868bc115da821c0f04dbafd80ef72e7490a Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Thu, 2 Mar 2023 08:31:29 +0100 +Subject: [PATCH 2/2] Missing experimental add-on module + ROOT.RDF.Experimental.Distributed (DistRDF) should not fail the loading of + the rest of the ROOT.RDF namespace. + +--- + bindings/pyroot/pythonizations/python/ROOT/_facade.py | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/bindings/pyroot/pythonizations/python/ROOT/_facade.py b/bindings/pyroot/pythonizations/python/ROOT/_facade.py +index 865321e713..69046fc71c 100644 +--- a/bindings/pyroot/pythonizations/python/ROOT/_facade.py ++++ b/bindings/pyroot/pythonizations/python/ROOT/_facade.py +@@ -336,8 +336,11 @@ class ROOTFacade(types.ModuleType): + ns.FromNumpy = MakeNumpyDataFrame + + if sys.version_info >= (3, 8): +- # Inject Experimental.Distributed package into namespace RDF +- ns.Experimental.Distributed = _create_rdf_experimental_distributed_module(ns.Experimental) ++ try: ++ # Inject Experimental.Distributed package into namespace RDF if available ++ ns.Experimental.Distributed = _create_rdf_experimental_distributed_module(ns.Experimental) ++ except ImportError: ++ pass + except: + raise Exception('Failed to pythonize the namespace RDF') + del type(self).RDF +-- +2.39.2 + diff --git a/root-make-dyld-based-library-search-behavior-default.patch b/root-make-dyld-based-library-search-behavior-default.patch deleted file mode 100644 index 9b88576..0000000 --- a/root-make-dyld-based-library-search-behavior-default.patch +++ /dev/null @@ -1,147 +0,0 @@ -From 6ae602bba7d33c900a117c9de0187ab5a28e14b8 Mon Sep 17 00:00:00 2001 -From: Vassil Vassilev <v.g.vassilev(a)gmail.com> -Date: Mon, 21 Mar 2022 22:16:54 +0000 -Subject: [PATCH] Make the dyld-based library search behavior default for - non-modules. - -The dyld-based system was developed in the context on C++ modules but it turned -into a modules-agnostic feature. Instead of having to maintain more code, we -should rely on it even for non-modules build of ROOT. ---- - core/metacling/src/TCling.cxx | 109 +++------------------------------- - 1 file changed, 8 insertions(+), 101 deletions(-) - -diff --git a/core/metacling/src/TCling.cxx b/core/metacling/src/TCling.cxx -index dec399cf2b..3eae1c8570 100644 ---- a/core/metacling/src/TCling.cxx -+++ b/core/metacling/src/TCling.cxx -@@ -6501,14 +6501,18 @@ bool TCling::LibraryLoadingFailed(const std::string& errmessage, const std::stri - return false; - } - --static void* LazyFunctionCreatorAutoloadForModule(const std::string &mangled_name, -- const cling::DynamicLibraryManager &DLM) { -+//////////////////////////////////////////////////////////////////////////////// -+/// Autoload a library based on a missing symbol. -+ -+void* TCling::LazyFunctionCreatorAutoload(const std::string& mangled_name) { -+ -+ const cling::DynamicLibraryManager &DLM = *GetInterpreterImpl()->getDynamicLibraryManager(); - R__LOCKGUARD(gInterpreterMutex); - - auto LibLoader = [](const std::string& LibName) -> bool { - if (gSystem->Load(LibName.c_str(), "", false) < 0) { -- Error("TCling__LazyFunctionCreatorAutoloadForModule", -- "Failed to load library %s", LibName.c_str()); -+ ::Error("TCling__LazyFunctionCreatorAutoloadForModule", -+ "Failed to load library %s", LibName.c_str()); - return false; - } - return true; //success. -@@ -6536,103 +6540,6 @@ static void* LazyFunctionCreatorAutoloadForModule(const std::string &mangled_nam - return nullptr; - - return llvm::sys::DynamicLibrary::SearchForAddressOfSymbol(mangled_name); -- --} -- --//////////////////////////////////////////////////////////////////////////////// --/// Autoload a library based on a missing symbol. -- --void* TCling::LazyFunctionCreatorAutoload(const std::string& mangled_name) { -- if (fCxxModulesEnabled) -- return LazyFunctionCreatorAutoloadForModule(mangled_name, -- *GetInterpreterImpl()->getDynamicLibraryManager()); -- -- // First see whether the symbol is in the library that we are currently -- // loading. It will have access to the symbols of its dependent libraries, -- // thus checking "back()" is sufficient. -- if (!fRegisterModuleDyLibs.empty()) { -- if (void* addr = dlsym(fRegisterModuleDyLibs.back(), -- mangled_name.c_str())) { -- return addr; -- } -- } -- -- int err = 0; -- char* demangled_name_c = TClassEdit::DemangleName(mangled_name.c_str(), err); -- if (err) { -- return 0; -- } -- -- std::string name(demangled_name_c); -- free(demangled_name_c); -- -- //fprintf(stderr, "demangled name: '%s'\n", demangled_name); -- // -- // Separate out the class or namespace part of the -- // function name. -- // -- -- std::string::size_type pos = name.find("__thiscall "); -- if (pos != std::string::npos) { -- name.erase(0, pos + sizeof("__thiscall ")-1); -- } -- pos = name.find("__cdecl "); -- if (pos != std::string::npos) { -- name.erase(0, pos + sizeof("__cdecl ")-1); -- } -- if (!strncmp(name.c_str(), "typeinfo for ", sizeof("typeinfo for ")-1)) { -- name.erase(0, sizeof("typeinfo for ")-1); -- } else if (!strncmp(name.c_str(), "vtable for ", sizeof("vtable for ")-1)) { -- name.erase(0, sizeof("vtable for ")-1); -- } else if (!strncmp(name.c_str(), "operator", sizeof("operator")-1) -- && !isalnum(name[sizeof("operator")])) { -- // operator...(A, B) - let's try with A! -- name.erase(0, sizeof("operator")-1); -- pos = name.rfind('('); -- if (pos != std::string::npos) { -- name.erase(0, pos + 1); -- pos = name.find(","); -- if (pos != std::string::npos) { -- // remove next arg up to end, leaving only the first argument type. -- name.erase(pos); -- } -- pos = name.rfind(" const"); -- if (pos != std::string::npos) { -- name.erase(pos, strlen(" const")); -- } -- while (!name.empty() && strchr("&*", name.back())) -- name.erase(name.length() - 1); -- } -- } else { -- TClassEdit::FunctionSplitInfo fsi; -- TClassEdit::SplitFunction(name, fsi); -- name = fsi.fScopeName; -- } -- //fprintf(stderr, "name: '%s'\n", name.c_str()); -- // Now we have the class or namespace name, so do the lookup. -- TString libs = GetClassSharedLibs(name.c_str()); -- if (libs.IsNull()) { -- // Not found in the map, all done. -- return 0; -- } -- //fprintf(stderr, "library: %s\n", iter->second.c_str()); -- // Now we have the name of the libraries to load, so load them. -- -- TString lib; -- Ssiz_t posLib = 0; -- while (libs.Tokenize(lib, posLib)) { -- if (gSystem->Load(lib, "", kFALSE /*system*/) < 0) { -- // The library load failed, all done. -- //fprintf(stderr, "load failed: %s\n", errmsg.c_str()); -- return 0; -- } -- } -- -- //fprintf(stderr, "load succeeded.\n"); -- // Get the address of the function being called. -- void* addr = llvm::sys::DynamicLibrary::SearchForAddressOfSymbol(mangled_name.c_str()); -- //fprintf(stderr, "addr: %016lx\n", reinterpret_cast<unsigned long>(addr)); -- return addr; - } - - //////////////////////////////////////////////////////////////////////////////// --- -2.35.1 - diff --git a/root-namespace-pymva.patch b/root-namespace-pymva.patch deleted file mode 100644 index cd2fa57..0000000 --- a/root-namespace-pymva.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 0a969f5376af248e76cbcee45c9bdb6463e18c05 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Thu, 24 Mar 2022 21:20:07 +0100 -Subject: [PATCH 3/3] Add namespaces to LinkDef - -Fixes error: - -IncrementalExecutor::executeFunction: symbol '_ZN4TMVA12Experimental5SOFIE7PyTorch5ParseENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS9_ImSaImEESaISB_EE' unresolved while linking function '_GLOBAL__sub_I_cling_module_8'! -You are probably missing the definition of TMVA::Experimental::SOFIE::PyTorch::Parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::vector<unsigned long, std::allocator<unsigned long> >, std::allocator<std::vector<unsigned long, std::allocator<unsigned long> > > >) -Maybe you need to load the corresponding shared library? -Symbol found in '/builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libPyMVA.so.6.26.00'; did you mean to load it with '.L /builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libPyMVA.so.6.26.00'? ---- - tmva/pymva/inc/LinkDef.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/tmva/pymva/inc/LinkDef.h b/tmva/pymva/inc/LinkDef.h -index 92da99a4f7..83145077dd 100644 ---- a/tmva/pymva/inc/LinkDef.h -+++ b/tmva/pymva/inc/LinkDef.h -@@ -15,6 +15,8 @@ - #pragma link C++ class TMVA::MethodPyGTB+; - #pragma link C++ class TMVA::MethodPyKeras+; - #pragma link C++ class TMVA::MethodPyTorch+; -+#pragma link C++ namespace TMVA::Experimental::SOFIE::PyKeras; - #pragma link C++ function TMVA::Experimental::SOFIE::PyKeras::Parse+; -+#pragma link C++ namespace TMVA::Experimental::SOFIE::PyTorch; - #pragma link C++ function TMVA::Experimental::SOFIE::PyTorch::Parse+; - #endif --- -2.35.1 - diff --git a/root-namespace-roofit.patch b/root-namespace-roofit.patch deleted file mode 100644 index c8aa92e..0000000 --- a/root-namespace-roofit.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 4a4df0190ad24c0a3636994c2c23cb6c22e04589 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Thu, 24 Mar 2022 15:41:33 +0100 -Subject: [PATCH 2/3] Remove namespace RooFit from libRooFitCore's LinkDef - -The namespace is listed in the LinkDef's for both libRooFit and libRooFitCore. - -ROOT only autoloads one of the libraries, for some reason usually -libRooFitCore. After this only symbols in the namespace from that -library are present. By removing the namespace from liRooFitCore's -LinkDef, only libRooFit can be chosen when autoloading. Since -libRooFit depends on libRooFitCore, both libraries are loaded, and the -symbols from the namespace in both libraries are available. - -Fixes error: - -IncrementalExecutor::executeFunction: symbol '_ZN6RooFit12bindFunctionEPKcPFddER10RooAbsReal' unresolved while linking function '_GLOBAL__sub_I_cling_module_217'! -You are probably missing the definition of RooFit::bindFunction(char const*, double (*)(double), RooAbsReal&) -Maybe you need to load the corresponding shared library? -Symbol found in '/builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libRooFit.so.6.26.00'; did you mean to load it with '.L /builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libRooFit.so.6.26.00'? ---- - roofit/roofitcore/inc/LinkDef.h | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/roofit/roofitcore/inc/LinkDef.h b/roofit/roofitcore/inc/LinkDef.h -index d421fd95cd..72c66db33b 100644 ---- a/roofit/roofitcore/inc/LinkDef.h -+++ b/roofit/roofitcore/inc/LinkDef.h -@@ -105,7 +105,10 @@ - - - // Old LinkDef2.h --#pragma link C++ namespace RooFit ; -+ -+// "namespace RooFit" is in roofit/roofit/inc/Linkdef1.h -+// should not be in the dictionary for two different libraries -+// #pragma link C++ namespace RooFit ; - #pragma link C++ namespace RooFitShortHand ; - #pragma link C++ class RooDouble+ ; - #pragma link C++ class RooEffGenContext+ ; --- -2.35.1 - diff --git a/root-namespace-sofie.patch b/root-namespace-sofie.patch deleted file mode 100644 index a011634..0000000 --- a/root-namespace-sofie.patch +++ /dev/null @@ -1,30 +0,0 @@ -From c66ae9d9c035090584f465a41ce2e438e502be81 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Thu, 24 Mar 2022 15:23:59 +0100 -Subject: [PATCH 1/3] Add namespace TMVA::Experimental::SOFIE to LinkDef - -Fixes error: - -IncrementalExecutor::executeFunction: symbol '_ZN4TMVA12Experimental5SOFIE19ConvertTypeToStringB5cxx11ENS1_11ETensorTypeE' unresolved while linking function '_GLOBAL__sub_I_cling_module_8'! -You are probably missing the definition of TMVA::Experimental::SOFIE::ConvertTypeToString[abi:cxx11](TMVA::Experimental::SOFIE::ETensorType) -Maybe you need to load the corresponding shared library? -Symbol found in '/builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libROOTTMVASofie.so.6.26.00'; did you mean to load it with '.L /builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libROOTTMVASofie.so.6.26.00'? ---- - tmva/sofie/inc/LinkDef.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/tmva/sofie/inc/LinkDef.h b/tmva/sofie/inc/LinkDef.h -index 715cf35560..3282ff22c1 100644 ---- a/tmva/sofie/inc/LinkDef.h -+++ b/tmva/sofie/inc/LinkDef.h -@@ -7,6 +7,7 @@ - - #pragma link C++ nestedclass; - -+#pragma link C++ namespace TMVA::Experimental::SOFIE; - #pragma link C++ class TMVA::Experimental::SOFIE::RModel-; - #pragma link C++ class TMVA::Experimental::SOFIE::ROperator+; - #pragma link C++ struct TMVA::Experimental::SOFIE::InitializedTensor+; --- -2.35.1 - diff --git a/root-ntuple-RPageSinkBuf-add-missing-call-to-ReleasePage.patch b/root-ntuple-RPageSinkBuf-add-missing-call-to-ReleasePage.patch new file mode 100644 index 0000000..c833930 --- /dev/null +++ b/root-ntuple-RPageSinkBuf-add-missing-call-to-ReleasePage.patch @@ -0,0 +1,30 @@ +From 4ab2a1695a3f6350b454203c044db5d6f0c75dd2 Mon Sep 17 00:00:00 2001 +From: Javier Lopez-Gomez <javier.lopez.gomez(a)cern.ch> +Date: Mon, 13 Feb 2023 15:05:39 +0100 +Subject: [PATCH] [ntuple] RPageSinkBuf: add missing call to ReleasePage() + +--- + tree/ntuple/v7/src/RPageSinkBuf.cxx | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/tree/ntuple/v7/src/RPageSinkBuf.cxx b/tree/ntuple/v7/src/RPageSinkBuf.cxx +index b22ef705ef..88babb456f 100644 +--- a/tree/ntuple/v7/src/RPageSinkBuf.cxx ++++ b/tree/ntuple/v7/src/RPageSinkBuf.cxx +@@ -106,8 +106,11 @@ ROOT::Experimental::Detail::RPageSinkBuf::CommitClusterImpl(ROOT::Experimental:: + } + fInnerSink->CommitSealedPageV(toCommit); + +- for (auto &bufColumn : fBufferedColumns) +- bufColumn.DrainBufferedPages(); ++ for (auto &bufColumn : fBufferedColumns) { ++ auto drained = bufColumn.DrainBufferedPages(); ++ for (auto &bufPage : std::get<std::deque<RColumnBuf::RPageZipItem>>(drained)) ++ ReleasePage(bufPage.fPage); ++ } + return fInnerSink->CommitCluster(nEntries); + } + +-- +2.39.2 + diff --git a/root-ntuplewait.patch b/root-ntuplewait.patch deleted file mode 100644 index b464b69..0000000 --- a/root-ntuplewait.patch +++ /dev/null @@ -1,39 +0,0 @@ -From ad043f8e3304aab4f0ee3ad9e0cf8480c4bbadf0 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Thu, 24 Mar 2022 16:10:22 +0100 -Subject: [PATCH] Always call WaitForInFlightClusters before checking cluster - IDs - ---- - tree/ntuple/v7/test/ntuple_cluster.cxx | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/tree/ntuple/v7/test/ntuple_cluster.cxx b/tree/ntuple/v7/test/ntuple_cluster.cxx -index afc2fc32e9..0c299d97de 100644 ---- a/tree/ntuple/v7/test/ntuple_cluster.cxx -+++ b/tree/ntuple/v7/test/ntuple_cluster.cxx -@@ -213,6 +213,7 @@ TEST(ClusterPool, GetClusterBasics) - RPageSourceMock p1; - RClusterPool c1(p1, 1); - c1.GetCluster(3, {0}); -+ c1.WaitForInFlightClusters(); - ASSERT_EQ(2U, p1.fReqsClusterIds.size()); - EXPECT_EQ(3U, p1.fReqsClusterIds[0]); - EXPECT_EQ(4U, p1.fReqsClusterIds[1]); -@@ -267,11 +268,13 @@ TEST(ClusterPool, GetClusterIncrementally) - RPageSourceMock p1; - RClusterPool c1(p1, 1); - c1.GetCluster(3, {0}); -+ c1.WaitForInFlightClusters(); - ASSERT_EQ(2U, p1.fReqsClusterIds.size()); - EXPECT_EQ(3U, p1.fReqsClusterIds[0]); - EXPECT_EQ(RCluster::ColumnSet_t({0}), p1.fReqsColumns[0]); - - c1.GetCluster(3, {1}); -+ c1.WaitForInFlightClusters(); - ASSERT_EQ(4U, p1.fReqsClusterIds.size()); - EXPECT_EQ(3U, p1.fReqsClusterIds[2]); - EXPECT_EQ(RCluster::ColumnSet_t({1}), p1.fReqsColumns[2]); --- -2.35.1 - diff --git a/root-old-gtest-compat.patch b/root-old-gtest-compat.patch deleted file mode 100644 index 7bce796..0000000 --- a/root-old-gtest-compat.patch +++ /dev/null @@ -1,477 +0,0 @@ -From 99e9ad9ea54369296537ceb012ccdcb333b5f513 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Sat, 26 Mar 2022 10:55:38 +0100 -Subject: [PATCH 2/2] Backward compatibility with older googletest versions in - EPEL - ---- - hist/hist/test/test_THBinIterator.cxx | 5 +++++ - math/mathcore/test/stress/testGenVector.cxx | 10 ++++++++++ - math/mathcore/test/stress/testSMatrix.cxx | 10 ++++++++++ - math/mathcore/test/stress/testVector.cxx | 10 ++++++++++ - math/mathcore/test/stress/testVector34.cxx | 10 ++++++++++ - math/mathcore/test/testGradient.cxx | 4 ++++ - math/mathcore/test/testGradientFitting.cxx | 10 ++++++++++ - math/mathmore/test/testStress.cxx | 10 ++++++++++ - roofit/histfactory/test/testHistFactory.cxx | 4 ++++ - roofit/multiprocess/test/test_Job.cxx | 5 +++++ - roofit/roofitZMQ/test/test_ZMQ.cpp | 4 ++++ - roofit/roofitcore/test/TestStatistics/RooRealL.cpp | 4 ++++ - .../test/TestStatistics/testLikelihoodGradientJob.cpp | 5 +++++ - roofit/roofitcore/test/testProxiesAndCategories.cxx | 3 +++ - roofit/roofitcore/test/testRooDataHist.cxx | 4 ++++ - roofit/roofitcore/test/testRooGradMinimizerFcn.cxx | 5 +++++ - tree/dataframe/test/dataframe_definepersample.cxx | 4 ++++ - tree/dataframe/test/dataframe_merge_results.cxx | 2 +- - tree/dataframe/test/dataframe_regression.cxx | 4 ++++ - tree/dataframe/test/dataframe_samplecallback.cxx | 4 ++++ - tree/dataframe/test/dataframe_simple.cxx | 5 +++++ - tree/dataframe/test/dataframe_vary.cxx | 4 ++++ - tree/tree/test/TOffsetGeneration.cxx | 4 ++++ - 23 files changed, 129 insertions(+), 1 deletion(-) - -diff --git a/hist/hist/test/test_THBinIterator.cxx b/hist/hist/test/test_THBinIterator.cxx -index e30585b8cb..04f1e1487b 100644 ---- a/hist/hist/test/test_THBinIterator.cxx -+++ b/hist/hist/test/test_THBinIterator.cxx -@@ -1,5 +1,10 @@ - #include "gtest/gtest.h" - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define SetUpTestSuite SetUpTestCase -+#define TearDownTestSuite TearDownTestCase -+#endif -+ - // test iterating histogram bins and using the new THistRange and - // THBinIterator classes - -diff --git a/math/mathcore/test/stress/testGenVector.cxx b/math/mathcore/test/stress/testGenVector.cxx -index 93c0bb6aec..b3259158da 100644 ---- a/math/mathcore/test/stress/testGenVector.cxx -+++ b/math/mathcore/test/stress/testGenVector.cxx -@@ -4,6 +4,16 @@ - - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE_P -+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P -+#endif -+#ifndef REGISTER_TYPED_TEST_SUITE_P -+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P -+#endif -+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P -+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P -+#endif -+ - #include "StatFunction.h" - #include "TestHelper.h" - #include "VectorTest.h" -diff --git a/math/mathcore/test/stress/testSMatrix.cxx b/math/mathcore/test/stress/testSMatrix.cxx -index a4d7fc4cd5..a35d88b7c2 100644 ---- a/math/mathcore/test/stress/testSMatrix.cxx -+++ b/math/mathcore/test/stress/testSMatrix.cxx -@@ -7,6 +7,16 @@ - #include "TestHelper.h" - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE_P -+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P -+#endif -+#ifndef REGISTER_TYPED_TEST_SUITE_P -+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P -+#endif -+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P -+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P -+#endif -+ - #include "VectorTest.h" - #include "TROOT.h" - #include "TSystem.h" -diff --git a/math/mathcore/test/stress/testVector.cxx b/math/mathcore/test/stress/testVector.cxx -index 72e933f0d5..938e27d83c 100644 ---- a/math/mathcore/test/stress/testVector.cxx -+++ b/math/mathcore/test/stress/testVector.cxx -@@ -4,6 +4,16 @@ - - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE_P -+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P -+#endif -+#ifndef REGISTER_TYPED_TEST_SUITE_P -+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P -+#endif -+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P -+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P -+#endif -+ - #include "StatFunction.h" - #include "TestHelper.h" - #include "VectorTest.h" -diff --git a/math/mathcore/test/stress/testVector34.cxx b/math/mathcore/test/stress/testVector34.cxx -index 4b31184559..80d6dd6314 100644 ---- a/math/mathcore/test/stress/testVector34.cxx -+++ b/math/mathcore/test/stress/testVector34.cxx -@@ -4,6 +4,16 @@ - - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE_P -+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P -+#endif -+#ifndef REGISTER_TYPED_TEST_SUITE_P -+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P -+#endif -+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P -+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P -+#endif -+ - #include "StatFunction.h" - #include "VectorTest.h" - -diff --git a/math/mathcore/test/testGradient.cxx b/math/mathcore/test/testGradient.cxx -index 49a5391b7b..271e89e43c 100644 ---- a/math/mathcore/test/testGradient.cxx -+++ b/math/mathcore/test/testGradient.cxx -@@ -22,6 +22,10 @@ - - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE -+#define TYPED_TEST_SUITE TYPED_TEST_CASE -+#endif -+ - #include <chrono> - #include <iostream> - #include <string> -diff --git a/math/mathcore/test/testGradientFitting.cxx b/math/mathcore/test/testGradientFitting.cxx -index f85f826d9f..1818d1c22f 100644 ---- a/math/mathcore/test/testGradientFitting.cxx -+++ b/math/mathcore/test/testGradientFitting.cxx -@@ -13,6 +13,16 @@ - - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE_P -+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P -+#endif -+#ifndef REGISTER_TYPED_TEST_SUITE_P -+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P -+#endif -+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P -+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P -+#endif -+ - #include <iostream> - #include <string> - -diff --git a/math/mathmore/test/testStress.cxx b/math/mathmore/test/testStress.cxx -index 47bcdd250f..5cf20e69a1 100644 ---- a/math/mathmore/test/testStress.cxx -+++ b/math/mathmore/test/testStress.cxx -@@ -26,6 +26,16 @@ - - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE_P -+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P -+#endif -+#ifndef REGISTER_TYPED_TEST_SUITE_P -+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P -+#endif -+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P -+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P -+#endif -+ - using ::testing::TestWithParam; - using ::testing::Values; - -diff --git a/roofit/histfactory/test/testHistFactory.cxx b/roofit/histfactory/test/testHistFactory.cxx -index 71d7b632d2..9063e51070 100644 ---- a/roofit/histfactory/test/testHistFactory.cxx -+++ b/roofit/histfactory/test/testHistFactory.cxx -@@ -22,6 +22,10 @@ - #include "TCanvas.h" - #include "gtest/gtest.h" - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include <set> - - using namespace RooStats; -diff --git a/roofit/multiprocess/test/test_Job.cxx b/roofit/multiprocess/test/test_Job.cxx -index 22e66fc73c..61cc11771d 100644 ---- a/roofit/multiprocess/test/test_Job.cxx -+++ b/roofit/multiprocess/test/test_Job.cxx -@@ -24,6 +24,11 @@ - #include "RooFit/MultiProcess/Queue.h" // ... JobManager::queue() - - #include "gtest/gtest.h" -+ -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include "utils.h" - - class xSquaredPlusBVectorSerial { -diff --git a/roofit/roofitZMQ/test/test_ZMQ.cpp b/roofit/roofitZMQ/test/test_ZMQ.cpp -index 6dcceaff08..73e75be147 100644 ---- a/roofit/roofitZMQ/test/test_ZMQ.cpp -+++ b/roofit/roofitZMQ/test/test_ZMQ.cpp -@@ -16,6 +16,10 @@ - - #include "gtest/gtest.h" - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include <unistd.h> // fork, usleep - - #include <sstream> -diff --git a/roofit/roofitcore/test/TestStatistics/RooRealL.cpp b/roofit/roofitcore/test/TestStatistics/RooRealL.cpp -index f8421613ac..3ae6285a12 100644 ---- a/roofit/roofitcore/test/TestStatistics/RooRealL.cpp -+++ b/roofit/roofitcore/test/TestStatistics/RooRealL.cpp -@@ -34,6 +34,10 @@ - - #include "gtest/gtest.h" - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - class RooRealL - : public ::testing::TestWithParam<std::tuple<std::size_t>> { - }; -diff --git a/roofit/roofitcore/test/TestStatistics/testLikelihoodGradientJob.cpp b/roofit/roofitcore/test/TestStatistics/testLikelihoodGradientJob.cpp -index f4adf63eec..05164277f0 100644 ---- a/roofit/roofitcore/test/TestStatistics/testLikelihoodGradientJob.cpp -+++ b/roofit/roofitcore/test/TestStatistics/testLikelihoodGradientJob.cpp -@@ -33,6 +33,11 @@ - #include <stdexcept> // runtime_error - - #include "gtest/gtest.h" -+ -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include "../test_lib.h" // generate_1D_gaussian_pdf_nll - - using RooFit::TestStatistics::LikelihoodWrapper; -diff --git a/roofit/roofitcore/test/testProxiesAndCategories.cxx b/roofit/roofitcore/test/testProxiesAndCategories.cxx -index bed3c399bb..550e0c5ac9 100644 ---- a/roofit/roofitcore/test/testProxiesAndCategories.cxx -+++ b/roofit/roofitcore/test/testProxiesAndCategories.cxx -@@ -16,6 +16,9 @@ - - #include "gtest/gtest.h" - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif - - TEST(RooCategory, CategoryDefineMultiState) { - RooCategory myCat("myCat", "A category", { {"0Lep", 0}, {"1Lep", 1}, {"2Lep", 2}, {"3Lep", 3} }); -diff --git a/roofit/roofitcore/test/testRooDataHist.cxx b/roofit/roofitcore/test/testRooDataHist.cxx -index 90782e0749..f6b5e087ae 100644 ---- a/roofit/roofitcore/test/testRooDataHist.cxx -+++ b/roofit/roofitcore/test/testRooDataHist.cxx -@@ -18,6 +18,10 @@ - - #include "gtest/gtest.h" - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include <algorithm> - #include <memory> - -diff --git a/roofit/roofitcore/test/testRooGradMinimizerFcn.cxx b/roofit/roofitcore/test/testRooGradMinimizerFcn.cxx -index c1978ae47e..877ab1525f 100644 ---- a/roofit/roofitcore/test/testRooGradMinimizerFcn.cxx -+++ b/roofit/roofitcore/test/testRooGradMinimizerFcn.cxx -@@ -22,6 +22,11 @@ - #include <stdio.h> // remove redundant workspace files - - #include "gtest/gtest.h" -+ -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include "test_lib.h" - - #include <RooMsgService.h> -diff --git a/tree/dataframe/test/dataframe_definepersample.cxx b/tree/dataframe/test/dataframe_definepersample.cxx -index 772b8baa70..37da9f3f95 100644 ---- a/tree/dataframe/test/dataframe_definepersample.cxx -+++ b/tree/dataframe/test/dataframe_definepersample.cxx -@@ -6,6 +6,10 @@ - - #include <gtest/gtest.h> - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include <atomic> - #include <memory> - #include <thread> // std::thread::hardware_concurrency -diff --git a/tree/dataframe/test/dataframe_merge_results.cxx b/tree/dataframe/test/dataframe_merge_results.cxx -index 9354b75a39..ea439ea006 100644 ---- a/tree/dataframe/test/dataframe_merge_results.cxx -+++ b/tree/dataframe/test/dataframe_merge_results.cxx -@@ -340,7 +340,7 @@ TEST(RDataFrameMergeResults, Merge5Hists) - EXPECT_FALSE(mh3); - EXPECT_FALSE(mh4); - EXPECT_FALSE(mh5); -- EXPECT_TRUE(mergedptr); -+ EXPECT_TRUE(!!mergedptr); - - const auto &mh = mergedptr->GetValue(); - -diff --git a/tree/dataframe/test/dataframe_regression.cxx b/tree/dataframe/test/dataframe_regression.cxx -index 9801067cf4..8a991f40c5 100644 ---- a/tree/dataframe/test/dataframe_regression.cxx -+++ b/tree/dataframe/test/dataframe_regression.cxx -@@ -9,6 +9,10 @@ - - #include "gtest/gtest.h" - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - // Fixture for all tests in this file. If parameter is true, run with implicit MT, else run sequentially - class RDFRegressionTests : public ::testing::TestWithParam<bool> { - protected: -diff --git a/tree/dataframe/test/dataframe_samplecallback.cxx b/tree/dataframe/test/dataframe_samplecallback.cxx -index 188d58dd31..7734586eb3 100644 ---- a/tree/dataframe/test/dataframe_samplecallback.cxx -+++ b/tree/dataframe/test/dataframe_samplecallback.cxx -@@ -11,6 +11,10 @@ - - #include <gtest/gtest.h> - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include <algorithm> // std::min - #include <memory> - #include <mutex> -diff --git a/tree/dataframe/test/dataframe_simple.cxx b/tree/dataframe/test/dataframe_simple.cxx -index 6006f99017..b507edc13f 100644 ---- a/tree/dataframe/test/dataframe_simple.cxx -+++ b/tree/dataframe/test/dataframe_simple.cxx -@@ -1,5 +1,10 @@ - /****** Run RDataFrame tests both with and without IMT enabled *******/ - #include <gtest/gtest.h> -+ -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include <ROOTUnitTestSupport.h> - #include <ROOT/RDataFrame.hxx> - #include <ROOT/TSeq.hxx> -diff --git a/tree/dataframe/test/dataframe_vary.cxx b/tree/dataframe/test/dataframe_vary.cxx -index 2284b21f53..5a26c43cdc 100644 ---- a/tree/dataframe/test/dataframe_vary.cxx -+++ b/tree/dataframe/test/dataframe_vary.cxx -@@ -7,6 +7,10 @@ - - #include <gtest/gtest.h> - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - using ROOT::RDF::Experimental::VariationsFor; - - class RDFVary : public ::testing::TestWithParam<bool> { -diff --git a/tree/tree/test/TOffsetGeneration.cxx b/tree/tree/test/TOffsetGeneration.cxx -index 7b6b7647aa..77f125ca60 100644 ---- a/tree/tree/test/TOffsetGeneration.cxx -+++ b/tree/tree/test/TOffsetGeneration.cxx -@@ -9,6 +9,10 @@ - #include "ROOTUnitTestSupport.h" - #include "gtest/gtest.h" - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define SetUpTestSuite SetUpTestCase -+#endif -+ - #include "ElementStruct.h" - - class TOffsetGeneration : public ::testing::Test { --- -2.35.1 - -From 33e5da8c1f678382ab2fd65d000d388bb0dbf3ab Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Sun, 17 Apr 2022 22:17:56 +0200 -Subject: [PATCH] Backward compatibility with older googletest versions in EPEL - ---- - math/vecops/test/vecops_rvec.cxx | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/math/vecops/test/vecops_rvec.cxx b/math/vecops/test/vecops_rvec.cxx -index 7b513a858b..bea39636ce 100644 ---- a/math/vecops/test/vecops_rvec.cxx -+++ b/math/vecops/test/vecops_rvec.cxx -@@ -13,6 +13,10 @@ - #include <sstream> - #include <cmath> - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - using namespace ROOT; - using namespace ROOT::VecOps; - using namespace ROOT::Detail::VecOps; // for `IsSmall` and `IsAdopting` --- -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-older-python.patch b/root-older-python.patch deleted file mode 100644 index fa6a05a..0000000 --- a/root-older-python.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 61116151cce8fe5b397555a65f7b55001b8e416b Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Fri, 23 Apr 2021 21:39:17 +0200 -Subject: [PATCH] Compat with no f-strings - ---- - tutorials/tmva/PyTorch_Generate_CNN_Model.py | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/tutorials/tmva/PyTorch_Generate_CNN_Model.py b/tutorials/tmva/PyTorch_Generate_CNN_Model.py -index 7024112f03..5a314f86dd 100644 ---- a/tutorials/tmva/PyTorch_Generate_CNN_Model.py -+++ b/tutorials/tmva/PyTorch_Generate_CNN_Model.py -@@ -56,7 +56,7 @@ def fit(model, train_loader, val_loader, num_epochs, batch_size, optimizer, crit - # print train statistics - running_train_loss += train_loss.item() - if i % 4 == 3: # print every 4 mini-batches -- print(f"[{epoch+1}, {i+1}] train loss: {running_train_loss / 4 :.3f}") -+ print("[{}, {}] train loss: {:.3f}".format(epoch+1, i+1, running_train_loss / 4)) - running_train_loss = 0.0 - - if schedule: -@@ -75,15 +75,15 @@ def fit(model, train_loader, val_loader, num_epochs, batch_size, optimizer, crit - - curr_val = running_val_loss / len(val_loader) - if save_best: -- if best_val==None: -- best_val = curr_val -- best_val = save_best(model, curr_val, best_val) -+ if best_val is None: -+ best_val = curr_val -+ best_val = save_best(model, curr_val, best_val) - - # print val statistics per epoch -- print(f"[{epoch+1}] val loss: {curr_val :.3f}") -+ print("[{}] val loss: {:.3f}".format(epoch+1, curr_val)) - running_val_loss = 0.0 - -- print(f"Finished Training on {epoch+1} Epochs!") -+ print("Finished Training on {} Epochs!".format(epoch+1)) - - return model - --- -2.30.2 - diff --git a/root-rcolor-static-init.patch b/root-rcolor-static-init.patch deleted file mode 100644 index 18e4299..0000000 --- a/root-rcolor-static-init.patch +++ /dev/null @@ -1,42 +0,0 @@ -From c4df90861879f45b281c2a8e55212b711cfdbfa0 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Tue, 29 Mar 2022 15:30:20 +0200 -Subject: [PATCH] Avoid crashes due to static initialization order - -Most commonly seen on ppc64le. Backtrace: - -=========================================================== -The lines below might hint at the cause of the crash. -You may get help by asking at the ROOT forum
https://root.cern/forum
-Only if you are really convinced it is a bug in ROOT then please submit a -report at
https://root.cern/bugs
Please post the ENTIRE stack trace -from above as an attachment in addition to anything else -that might help us fixing this issue. -=========================================================== - #11 ROOT::Experimental::RColor::toHex[abi:cxx11](unsigned char) (v=<optimized out>) at /usr/include/c++/11/ext/new_allocator.h:82 - #12 0x00007fff90c220ec in ROOT::Experimental::RColor::SetRGB (this=0x7fffeadf5d10, r=<optimized out>, g=<optimized out>, b=<optimized out>) at /usr/include/c++/11/ext/new_allocator.h:89 ---- - graf2d/gpadv7/src/RColor.cxx | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/graf2d/gpadv7/src/RColor.cxx b/graf2d/gpadv7/src/RColor.cxx -index de325f1ea3..6878360073 100644 ---- a/graf2d/gpadv7/src/RColor.cxx -+++ b/graf2d/gpadv7/src/RColor.cxx -@@ -232,10 +232,10 @@ std::vector<uint8_t> RColor::AsRGBA() const - - std::string RColor::toHex(uint8_t v) - { -- static const char *digits = "0123456789ABCDEF"; -+ auto digits = [](auto d) { return d < 10 ? '0' + d : 'A' - 10 + d; }; - std::string res(2,'0'); -- res[0] = digits[v >> 4]; -- res[1] = digits[v & 0xf]; -+ res[0] = digits(v >> 4); -+ res[1] = digits(v & 0xf); - return res; - } - --- -2.35.1 - diff --git a/root-roofit-tutorial.patch b/root-roofit-tutorial.patch deleted file mode 100644 index 9d73e11..0000000 --- a/root-roofit-tutorial.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 914e46f1c591f8b9b34115863ff31e42e19bfb97 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Mon, 28 Mar 2022 09:32:24 +0200 -Subject: [PATCH] Use calls from Python directly - -The rf105_funcbinding.py tutorial used to trigger errors due to unknown -symbols. In particular the custum new and delete operators used in RooFit -were not autoloaded when needed. - -In the tutorial there was a workaround implemented to call ProcessLine -instead of making calls directly form Python, to make the autoloading -from the C++ side of ROOT instead. This did not quite fix the problem, -and the tutorial still randomly failed due to missing symbols. - -After changing the algorthm used for autoloading in commit -6ae602bba7d33c900a117c9de0187ab5a28e14b8 these problems were solved. - -After this fix using the direct calls from Python also works, so this -PR suggests updating the tutorial to do that. ---- - tutorials/roofit/rf105_funcbinding.py | 30 ++++++--------------------- - 1 file changed, 6 insertions(+), 24 deletions(-) - -diff --git a/tutorials/roofit/rf105_funcbinding.py b/tutorials/roofit/rf105_funcbinding.py -index 72d9cf62fc..b9de2a095a 100644 ---- a/tutorials/roofit/rf105_funcbinding.py -+++ b/tutorials/roofit/rf105_funcbinding.py -@@ -17,15 +17,8 @@ import ROOT - # --------------------------------------------------- - - # Bind one-dimensional ROOT.TMath.Erf function as ROOT.RooAbsReal function --# Directly trying this in python doesn't work: --# x = ROOT.RooRealVar("x", "x", -3, 3) --# erf = ROOT.RooFit.bindFunction("erf", ROOT.TMath.Erf, x) --# Need to go through C interface --ROOT.gInterpreter.ProcessLine( -- 'auto x = RooRealVar("x", "x", -3, 3); auto myerf = RooFit::bindFunction("erf", TMath::Erf, x)' --) --x = ROOT.x --erf = ROOT.myerf -+x = ROOT.RooRealVar("x", "x", -3, 3) -+erf = ROOT.RooFit.bindFunction("erf", ROOT.TMath.Erf, x) - - # Print erf definition - erf.Print() -@@ -38,21 +31,10 @@ erf.plotOn(frame1) - # ----------------------------------------------------------------------- - - # Bind pdf ROOT.Math.Beta with three variables as ROOT.RooAbsPdf function --# As above, this does not work directly in python --# x2 = ROOT.RooRealVar("x2", "x2", 0, 0.999) --# a = ROOT.RooRealVar("a", "a", 5, 0, 10) --# b = ROOT.RooRealVar("b", "b", 2, 0, 10) --# beta = ROOT.RooFit.bindPdf("beta", ROOT.Math.beta_pdf, x2, a, b) --ROOT.gInterpreter.ProcessLine( -- 'auto x2 = RooRealVar("x2", "x2", 0, 0.999);\ -- auto a = RooRealVar("a", "a", 5, 0, 10);\ -- auto b = RooRealVar("b", "b", 5, 0, 10);\ -- auto beta = RooFit::bindPdf("beta", ROOT::Math::beta_pdf, x2, a, b)' --) --x2 = ROOT.x2 --a = ROOT.a --b = ROOT.b --beta = ROOT.beta -+x2 = ROOT.RooRealVar("x2", "x2", 0, 0.999) -+a = ROOT.RooRealVar("a", "a", 5, 0, 10) -+b = ROOT.RooRealVar("b", "b", 2, 0, 10) -+beta = ROOT.RooFit.bindPdf("beta", ROOT.Math.beta_pdf, x2, a, b) - - # Perf beta definition - beta.Print() --- -2.35.1 - diff --git a/root-stressvector-test-fails-on-ix86.patch b/root-stressvector-test-fails-on-ix86.patch new file mode 100644 index 0000000..ca3f212 --- /dev/null +++ b/root-stressvector-test-fails-on-ix86.patch @@ -0,0 +1,37 @@ +From df2902f6c970aa903200a272fd6a79788da3df4f Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Tue, 28 Feb 2023 11:33:28 +0100 +Subject: [PATCH] The stressVector test fails on ix86 due to too strict check: + +DeltaR TLorentzVector time = 0.2610929 (sec) +DeltaR XYZTVector time = 0.22973299 (sec) +DeltaR PtEtaPhiEVector time = 0.0016570091 (sec) +-12823.3585955796 -12823.35859557827 -12823.35859557827 +Test DeltaR failed !! + +The new value for the scale parameter (50) was calculated from the +above values: + +root [2] (-12823.3585955796 - (-12823.35859557827)) / -12823.3585955796 / std::numeric_limits<double>::epsilon() / 10 +(double) 46.762663 +--- + test/stressVector.cxx | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/test/stressVector.cxx b/test/stressVector.cxx +index 83b86fb2b4..18dc97d421 100644 +--- a/test/stressVector.cxx ++++ b/test/stressVector.cxx +@@ -540,8 +540,7 @@ int main(int argc,const char *argv[]) { + s1=a.testDeltaR (v1, t, t1, "DeltaR TLorentzVector " ); + s2=a.testDeltaR (v2, t, t2, "DeltaR XYZTVector " ); + s3=a.testDeltaR (v3, t, t3, "DeltaR PtEtaPhiEVector " ); +- a.check("DeltaR",s1,s2,s3,15); +- ++ a.check("DeltaR", s1, s2, s3, 50); + + int n1, n2, n3; + n1 = a.testAnalysis (v1, t, t1, "Analysis1 TLorentzVector " ); +-- +2.39.2 + diff --git a/root-symbol-rewrite.patch b/root-symbol-rewrite.patch deleted file mode 100644 index c91bbe6..0000000 --- a/root-symbol-rewrite.patch +++ /dev/null @@ -1,31 +0,0 @@ -From f99eedeb72644671cd584f48e4c136d47f6b0020 Mon Sep 17 00:00:00 2001 -From: Fangrui Song <maskray(a)google.com> -Date: Thu, 12 Dec 2019 16:18:57 -0800 -Subject: [PATCH] [MC][PowerPC] Fix a crash when redefining a symbol after .set - -Fix PR44284. This is probably not valid assembly but we should not crash. - -Reviewed By: luporl, #powerpc, steven.zhang - -Differential Revision:
https://reviews.llvm.org/D71443
---- - interpreter/llvm/src/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/interpreter/llvm/src/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp b/interpreter/llvm/src/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp -index 00df9e41fdae..5e91bdb2f8de 100644 ---- a/interpreter/llvm/src/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp -+++ b/interpreter/llvm/src/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp -@@ -201,7 +201,8 @@ public: - - void finish() override { - for (auto *Sym : UpdateOther) -- copyLocalEntry(Sym, Sym->getVariableValue()); -+ if (Sym->isVariable()) -+ copyLocalEntry(Sym, Sym->getVariableValue()); - } - - private: --- -2.33.1 - diff --git a/root-test-timeout.patch b/root-test-timeout.patch deleted file mode 100644 index a07aa39..0000000 --- a/root-test-timeout.patch +++ /dev/null @@ -1,110 +0,0 @@ -From 4d09235937ea29913cbf9a9b5bcd002b52557c0e 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 - ---- - cmake/modules/RootMacros.cmake | 14 +++++++------- - tmva/tmva/test/DNN/CMakeLists.txt | 2 +- - tree/tree/test/CMakeLists.txt | 2 +- - tutorials/CMakeLists.txt | 4 ++-- - 4 files changed, 11 insertions(+), 11 deletions(-) - -diff --git a/cmake/modules/RootMacros.cmake b/cmake/modules/RootMacros.cmake -index cc61f4bbad..3e4559fc19 100644 ---- a/cmake/modules/RootMacros.cmake -+++ b/cmake/modules/RootMacros.cmake -@@ -1779,6 +1779,7 @@ endfunction() - #---------------------------------------------------------------------------- - # function ROOT_ADD_GTEST(<testsuite> source1 source2... - # [WILLFAIL] Negate output of test -+# [TIMEOUT seconds] - # [COPY_TO_BUILDDIR file1 file2] Copy listed files when ctest invokes the test. - # [LIBRARIES lib1 lib2...] -- Libraries to link against - # [LABELS label1 label2...] -- Labels to annotate the test -@@ -1790,7 +1791,7 @@ endfunction() - function(ROOT_ADD_GTEST test_suite) - cmake_parse_arguments(ARG - "WILLFAIL" -- "REPEATS;FAILREGEX" -+ "TIMEOUT;REPEATS;FAILREGEX" - "COPY_TO_BUILDDIR;LIBRARIES;LABELS;INCLUDE_DIRS" ${ARGN}) - - ROOT_GET_SOURCES(source_files . ${ARG_UNPARSED_ARGUMENTS}) -@@ -1821,9 +1822,7 @@ function(ROOT_ADD_GTEST test_suite) - if(ARG_WILLFAIL) - set(willfail WILLFAIL) - endif() -- if(ARG_LABELS) -- set(labels "LABELS ${ARG_LABELS}") -- endif() -+ - if(ARG_REPEATS) - set(extra_command --gtest_repeat=${ARG_REPEATS} --gtest_break_on_failure) - endif() -@@ -1833,10 +1832,11 @@ function(ROOT_ADD_GTEST test_suite) - gtest${mangled_name} - COMMAND ${test_suite} ${extra_command} - WORKING_DIR ${CMAKE_CURRENT_BINARY_DIR} -- COPY_TO_BUILDDIR ${ARG_COPY_TO_BUILDDIR} -+ COPY_TO_BUILDDIR "${ARG_COPY_TO_BUILDDIR}" - ${willfail} -- ${labels} -- FAILREGEX ${ARG_FAILREGEX} -+ TIMEOUT "${ARG_TIMEOUT}" -+ LABELS "${ARG_LABELS}" -+ FAILREGEX "${ARG_FAILREGEX}" - ) - endfunction() - -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/tree/tree/test/CMakeLists.txt b/tree/tree/test/CMakeLists.txt -index dbe664f8a0..6284e3c4c5 100644 ---- a/tree/tree/test/CMakeLists.txt -+++ b/tree/tree/test/CMakeLists.txt -@@ -20,7 +20,7 @@ ROOT_ADD_GTEST(testBulkApi BulkApi.cxx LIBRARIES RIO Tree TreePlayer) - target_include_directories(testTOffsetGeneration PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) - ROOT_STANDARD_LIBRARY_PACKAGE(SillyStruct NO_INSTALL_HEADERS HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/SillyStruct.h SOURCES SillyStruct.cxx LINKDEF SillyStructLinkDef.h DEPENDENCIES RIO) - ROOT_ADD_GTEST(testBulkApi BulkApi.cxx LIBRARIES RIO Tree TreePlayer) --ROOT_ADD_GTEST(testBulkApiMultiple BulkApiMultiple.cxx LIBRARIES RIO Tree TreePlayer) -+ROOT_ADD_GTEST(testBulkApiMultiple BulkApiMultiple.cxx LIBRARIES RIO Tree TreePlayer TIMEOUT 3000) - ROOT_ADD_GTEST(testBulkApiVarLength BulkApiVarLength.cxx LIBRARIES RIO Tree TreePlayer) - ROOT_ADD_GTEST(testBulkApiSillyStruct BulkApiSillyStruct.cxx LIBRARIES RIO Tree TreePlayer SillyStruct) - ROOT_ADD_GTEST(testTBasket TBasket.cxx LIBRARIES RIO Tree) -diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt -index 6ae9be5869..982432fe15 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.38.1 - diff --git a/root-testRooAbsL-test-compares-two-doubles-and-fails.patch b/root-testRooAbsL-test-compares-two-doubles-and-fails.patch new file mode 100644 index 0000000..24a4148 --- /dev/null +++ b/root-testRooAbsL-test-compares-two-doubles-and-fails.patch @@ -0,0 +1,49 @@ +From d6a11ace0d3d25c96dd20cef1436642b5caa102e Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Tue, 28 Feb 2023 11:02:03 +0100 +Subject: [PATCH] The testRooAbsL test compares two doubles and fails due to + rounding errors. The failure happens on ppc64le and aarch64. + +This PR changes EXPECT_EQ to EXPECT_DOUBLE_EQ in the affected test. + +[ RUN ] SimBinnedConstrainedTest.SubEventSections +/builddir/build/BUILD/root-6.28.00/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx:293: Failure +Expected equality of these values: + whole.Sum() + Which is: -1263.796050661927 + N_events_total_parts.Sum() + Which is: -1263.7960506619268 +/builddir/build/BUILD/root-6.28.00/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx:303: Failure +Expected equality of these values: + whole.Sum() + Which is: -1263.796050661927 + thrice_N_events_total_parts.Sum() + Which is: -1263.7960506619268 +[ FAILED ] SimBinnedConstrainedTest.SubEventSections (199 ms) +--- + roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx b/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx +index 600f4da7be..05dcd6a241 100644 +--- a/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx ++++ b/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx +@@ -293,7 +293,7 @@ TEST_F(SimBinnedConstrainedTest, SubEventSections) + {static_cast<double>(ix) / N_events_total, static_cast<double>(ix + 1) / N_events_total}, 0, + likelihood->getNComponents()); + } +- EXPECT_EQ(whole.Sum(), N_events_total_parts.Sum()); ++ EXPECT_DOUBLE_EQ(whole.Sum(), N_events_total_parts.Sum()); + + // now let's do it again over a number of sections 3 times the number of events + ROOT::Math::KahanSum<double> thrice_N_events_total_parts; +@@ -303,5 +303,5 @@ TEST_F(SimBinnedConstrainedTest, SubEventSections) + {static_cast<double>(ix) / (3 * N_events_total), static_cast<double>(ix + 1) / (3 * N_events_total)}, 0, + likelihood->getNComponents()); + } +- EXPECT_EQ(whole.Sum(), thrice_N_events_total_parts.Sum()); ++ EXPECT_DOUBLE_EQ(whole.Sum(), thrice_N_events_total_parts.Sum()); + } +-- +2.39.2 + diff --git a/root-threadsh1-avoid-heap-use-after-free.patch b/root-threadsh1-avoid-heap-use-after-free.patch deleted file mode 100644 index 6111f2b..0000000 --- a/root-threadsh1-avoid-heap-use-after-free.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 493c4210168fa475aa4130c12e8fdff3b7d85c09 Mon Sep 17 00:00:00 2001 -From: Philippe Canal <pcanal(a)fnal.gov> -Date: Mon, 7 Mar 2022 13:32:37 -0600 -Subject: [PATCH] threadsh1: Avoid heap-use-after-free. - -Previously, the Canvas `Close` signal which triggers a call to the local function `close` which -was unconditionally call `Kill` on its associated thread would call it on an already deleted -object if the `TThread` was deleted before the `TCanvas`. - -This fix #10015 (detected by using ASAN). ---- - tutorials/legacy/thread/threadsh1.C | 13 +++++++------ - 1 file changed, 7 insertions(+), 6 deletions(-) - -diff --git a/tutorials/legacy/thread/threadsh1.C b/tutorials/legacy/thread/threadsh1.C -index b819f5d020..d6abc67e36 100644 ---- a/tutorials/legacy/thread/threadsh1.C -+++ b/tutorials/legacy/thread/threadsh1.C -@@ -67,7 +67,8 @@ void *joiner(void *) - void closed(Int_t id) - { - // kill the thread matching the canvas being closed -- t[id]->Kill(); -+ if (t[id]) -+ t[id]->Kill(); - // and set the canvas pointer to 0 - c[id] = 0; - } -@@ -142,11 +143,11 @@ void threadsh1() - t[4]->Join(); - TThread::Ps(); - -- delete t[0]; -- delete t[1]; -- delete t[2]; -- delete t[3]; -- delete t[4]; -+ delete t[0]; t[0] = nullptr; // Prevents after deletion access. -+ delete t[1]; t[1] = nullptr; -+ delete t[2]; t[2] = nullptr; -+ delete t[3]; t[3] = nullptr; -+ delete t[4]; t[4] = nullptr; - - delete rng[0]; - delete rng[1]; --- -2.35.1 - diff --git a/root-tmva-Speed-up-TMVA-CNN-and-RNN-tutorials.patch b/root-tmva-Speed-up-TMVA-CNN-and-RNN-tutorials.patch new file mode 100644 index 0000000..6a719c5 --- /dev/null +++ b/root-tmva-Speed-up-TMVA-CNN-and-RNN-tutorials.patch @@ -0,0 +1,239 @@ +From 54a05a995bef827413d69b63559494a78ed56946 Mon Sep 17 00:00:00 2001 +From: moneta <lorenzo.moneta(a)cern.ch> +Date: Tue, 14 Feb 2023 11:00:44 +0100 +Subject: [PATCH] [tmva] Speed up TMVA CNN and RNN tutorials + +Run tutorials with a amximum of 4 threads to avoid MT problems on some machines. +Disable also OpenMP when running in MT in ROOT + +Reduce also by a factor of 5 the number of input events +--- + tutorials/tmva/TMVA_CNN_Classification.C | 25 +++++++++++++++------- + tutorials/tmva/TMVA_CNN_Classification.py | 12 +++++------ + tutorials/tmva/TMVA_RNN_Classification.C | 11 +++++----- + tutorials/tmva/TMVA_RNN_Classification.py | 26 ++++++++++------------- + 4 files changed, 39 insertions(+), 35 deletions(-) + +diff --git a/tutorials/tmva/TMVA_CNN_Classification.C b/tutorials/tmva/TMVA_CNN_Classification.C +index 0966017ae2..cc6829a24d 100644 +--- a/tutorials/tmva/TMVA_CNN_Classification.C ++++ b/tutorials/tmva/TMVA_CNN_Classification.C +@@ -107,7 +107,16 @@ void MakeImagesTree(int n, int nh, int nw) + f.Close(); + } + +-void TMVA_CNN_Classification(std::vector<bool> opt = {1, 1, 1, 1, 1}) ++/// @brief Run the TMVA CNN Classification example ++/// @param nevts : number of signal/background events. Use by default a low value (1000) ++/// but increase to at least 5000 to get a good result ++/// @param opt : vector of bool with method used (default all on if available). The order is: ++/// - TMVA CNN ++/// - Keras CNN ++/// - TMVA DNN ++/// - TMVA BDT ++/// - PyTorch CNN ++void TMVA_CNN_Classification(int nevts = 1000, std::vector<bool> opt = {1, 1, 1, 1, 1}) + { + + bool useTMVACNN = (opt.size() > 0) ? opt[0] : false; +@@ -125,17 +134,17 @@ void TMVA_CNN_Classification(std::vector<bool> opt = {1, 1, 1, 1, 1}) + + bool writeOutputFile = true; + +- int num_threads = 0; // use default threads ++ int num_threads = 4; // use by default 4 threads if value is not set before ++ // switch off MT in OpenBLAS to avoid conflict with tbb ++ gSystem->Setenv("OMP_NUM_THREADS", "1"); + + TMVA::Tools::Instance(); + + // do enable MT running + if (num_threads >= 0) { + ROOT::EnableImplicitMT(num_threads); +- if (num_threads > 0) gSystem->Setenv("OMP_NUM_THREADS", TString::Format("%d",num_threads)); + } +- else +- gSystem->Setenv("OMP_NUM_THREADS", "1"); ++ + + std::cout << "Running with nthreads = " << ROOT::GetThreadPoolSize() << std::endl; + +@@ -161,7 +170,7 @@ void TMVA_CNN_Classification(std::vector<bool> opt = {1, 1, 1, 1, 1}) + The factory is the major TMVA object you have to interact with. Here is the list of parameters you need to pass + + - The first argument is the base of the name of all the output +- weightfiles in the directory weight/ that will be created with the ++ weight files in the directory weight/ that will be created with the + method parameters + + - The second argument is the output file for the training results +@@ -208,7 +217,7 @@ void TMVA_CNN_Classification(std::vector<bool> opt = {1, 1, 1, 1, 1}) + + // if file does not exists create it + if (!fileExist) { +- MakeImagesTree(5000, 16, 16); ++ MakeImagesTree(nevts, 16, 16); + } + + // TString inputFileName = "tmva_class_example.root"; +@@ -289,7 +298,7 @@ void TMVA_CNN_Classification(std::vector<bool> opt = {1, 1, 1, 1, 1}) + // Boosted Decision Trees + if (useTMVABDT) { + factory.BookMethod(loader, TMVA::Types::kBDT, "BDT", +- "!V:NTrees=400:MinNodeSize=2.5%:MaxDepth=2:BoostType=AdaBoost:AdaBoostBeta=0.5:" ++ "!V:NTrees=200:MinNodeSize=2.5%:MaxDepth=2:BoostType=AdaBoost:AdaBoostBeta=0.5:" + "UseBaggedBoost:BaggedSampleFraction=0.5:SeparationType=GiniIndex:nCuts=20"); + } + /** +diff --git a/tutorials/tmva/TMVA_CNN_Classification.py b/tutorials/tmva/TMVA_CNN_Classification.py +index 0760bacfd9..85fde20763 100644 +--- a/tutorials/tmva/TMVA_CNN_Classification.py ++++ b/tutorials/tmva/TMVA_CNN_Classification.py +@@ -25,6 +25,9 @@ + + import ROOT + ++#switch off MT in OpenMP (BLAS) ++ROOT.gSystem.Setenv("OMP_NUM_THREADS", "1") ++ + TMVA = ROOT.TMVA + TFile = ROOT.TFile + +@@ -105,6 +108,7 @@ def MakeImagesTree(n, nh, nw): + hasGPU = ROOT.gSystem.GetFromPipe("root-config --has-tmva-gpu") == "yes" + hasCPU = ROOT.gSystem.GetFromPipe("root-config --has-tmva-cpu") == "yes" + ++nevt = 1000 # use a larger value to get better results + opt = [1, 1, 1, 1, 1] + useTMVACNN = opt[0] if len(opt) > 0 else False + useKerasCNN = opt[1] if len(opt) > 1 else False +@@ -141,17 +145,13 @@ if not useTMVACNN: + + writeOutputFile = True + +-num_threads = 0 # use default threads ++num_threads = 4 # use default threads + max_epochs = 10 # maximum number of epochs used for training + + + # do enable MT running + if num_threads >= 0: + ROOT.EnableImplicitMT(num_threads) +- if (num_threads > 0) : +- ROOT.gSystem.Setenv("OMP_NUM_THREADS", str(num_threads)) +-else: +- ROOT.gSystem.Setenv("OMP_NUM_THREADS", "1") + + print("Running with nthreads = ", ROOT.GetThreadPoolSize()) + +@@ -218,7 +218,7 @@ inputFileName = "images_data_16x16.root" + + # if the input file does not exist create it + if ROOT.gSystem.AccessPathName(inputFileName): +- MakeImagesTree(5000, 16, 16) ++ MakeImagesTree(nevt, 16, 16) + + inputFile = TFile.Open(inputFileName) + if inputFile is None: +diff --git a/tutorials/tmva/TMVA_RNN_Classification.C b/tutorials/tmva/TMVA_RNN_Classification.C +index 2711673ec9..8701ba6c19 100644 +--- a/tutorials/tmva/TMVA_RNN_Classification.C ++++ b/tutorials/tmva/TMVA_RNN_Classification.C +@@ -136,13 +136,14 @@ void MakeTimeData(int n, int ntime, int ndim ) + } + } + /// macro for performing a classification using a Recurrent Neural Network ++/// @param nevts = 2000 Number of events used. (increase for better classification results) + /// @param use_type + /// use_type = 0 use Simple RNN network + /// use_type = 1 use LSTM network + /// use_type = 2 use GRU + /// use_type = 3 build 3 different networks with RNN, LSTM and GRU + +-void TMVA_RNN_Classification(int use_type = 1) ++void TMVA_RNN_Classification(int nevts = 2000, int use_type = 1) + { + + const int ninput = 30; +@@ -150,7 +151,7 @@ void TMVA_RNN_Classification(int use_type = 1) + const int batchSize = 100; + const int maxepochs = 20; + +- int nTotEvts = 10000; // total events to be generated for signal or background ++ int nTotEvts = nevts; // total events to be generated for signal or background + + bool useKeras = true; + +@@ -190,14 +191,12 @@ void TMVA_RNN_Classification(int use_type = 1) + useKeras = false; + #endif + +- int num_threads = 0; // use by default all threads ++ int num_threads = 4; // use by default all threads ++ gSystem->Setenv("OMP_NUM_THREADS", "1"); // switch off MT in OpenBLAS + // do enable MT running + if (num_threads >= 0) { + ROOT::EnableImplicitMT(num_threads); +- if (num_threads > 0) gSystem->Setenv("OMP_NUM_THREADS", TString::Format("%d",num_threads)); + } +- else +- gSystem->Setenv("OMP_NUM_THREADS", "1"); + + TMVA::Config::Instance(); + +diff --git a/tutorials/tmva/TMVA_RNN_Classification.py b/tutorials/tmva/TMVA_RNN_Classification.py +index 88280a5849..625a120b3d 100644 +--- a/tutorials/tmva/TMVA_RNN_Classification.py ++++ b/tutorials/tmva/TMVA_RNN_Classification.py +@@ -22,6 +22,16 @@ + + import ROOT + ++num_threads = 4 # use max 4 threads ++# do enable MT running ++if ROOT.gSystem.GetFromPipe("root-config --has-imt") == "yes": ++ ROOT.EnableImplicitMT(num_threads) ++ ROOT.gSystem.Setenv("OMP_NUM_THREADS", "1") # switch OFF MT in OpenBLAS ++ print("Running with nthreads = {}".format(ROOT.GetThreadPoolSize())) ++else: ++ print("Running in serail mode since ROOT does not support MT") ++ ++ + TMVA = ROOT.TMVA + TFile = ROOT.TFile + +@@ -141,7 +151,7 @@ ntime = 10 + batchSize = 100 + maxepochs = 10 + +-nTotEvts = 10000 # total events to be generated for signal or background ++nTotEvts = 2000 # total events to be generated for signal or background + + useKeras = True + +@@ -184,22 +194,8 @@ if ROOT.gSystem.GetFromPipe("root-config --has-tmva-pymva") == "yes": + else: + useKeras = False + +-num_threads = 0 # use by default all threads +-# do enable MT running +-if ROOT.gSystem.GetFromPipe("root-config --has-imt") == "yes": +- if num_threads >= 0: +- ROOT.EnableImplicitMT(num_threads) +- if num_threads > 0: +- ROOT.gSystem.Setenv("OMP_NUM_THREADS", str(num_threads)) +- else: +- ROOT.gSystem.Setenv("OMP_NUM_THREADS", "1") + + +- print("Running with nthreads = {}".format(ROOT.GetThreadPoolSize())) +- +-else: +- print("Running in serail mode since ROOT does not support MT") +- + inputFileName = "time_data_t10_d30.root" + + fileDoesNotExist = ROOT.gSystem.AccessPathName(inputFileName) +-- +2.39.2 + diff --git a/root-tmva-threads.patch b/root-tmva-threads.patch deleted file mode 100644 index 7506abc..0000000 --- a/root-tmva-threads.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 589ac491519446191b7d480a476ab831dc09b5f9 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Wed, 30 Mar 2022 15:51:07 +0200 -Subject: [PATCH] Limit the number of threads in TMVA CNN/DNN test to save - memory - -Processing /builddir/build/BUILD/root-6.26.00/tutorials/tmva/TMVA_CNN_Classification.C... -Running with nthreads = 224 - -[ ... ] - -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. - *** Break *** segmentation violation - *** Break *** segmentation violation - *** Break *** segmentation violation - *** Break *** segmentation violation - *** Break *** segmentation violation - *** Break *** segmentation violation ---- - tutorials/tmva/TMVA_CNN_Classification.C | 6 ++++-- - tutorials/tmva/TMVA_RNN_Classification.C | 6 ++++-- - 2 files changed, 8 insertions(+), 4 deletions(-) - -diff --git a/tutorials/tmva/TMVA_CNN_Classification.C b/tutorials/tmva/TMVA_CNN_Classification.C -index 3e590c5958..b748fcee6c 100644 ---- a/tutorials/tmva/TMVA_CNN_Classification.C -+++ b/tutorials/tmva/TMVA_CNN_Classification.C -@@ -125,14 +125,16 @@ void TMVA_CNN_Classification(std::vector<bool> opt = {1, 1, 1, 1, 1}) - - bool writeOutputFile = true; - -- int num_threads = 0; // use default threads -+ int num_threads = 32; - - TMVA::Tools::Instance(); - - // do enable MT running - if (num_threads >= 0) { - ROOT::EnableImplicitMT(num_threads); -- if (num_threads > 0) gSystem->Setenv("OMP_NUM_THREADS", TString::Format("%d",num_threads)); -+ if (ROOT::GetThreadPoolSize() > 0) -+ gSystem->Setenv("OMP_NUM_THREADS", -+ TString::Format("%u", ROOT::GetThreadPoolSize())); - } - else - gSystem->Setenv("OMP_NUM_THREADS", "1"); -diff --git a/tutorials/tmva/TMVA_RNN_Classification.C b/tutorials/tmva/TMVA_RNN_Classification.C -index 5be80824f9..f902025875 100644 ---- a/tutorials/tmva/TMVA_RNN_Classification.C -+++ b/tutorials/tmva/TMVA_RNN_Classification.C -@@ -190,11 +190,13 @@ void TMVA_RNN_Classification(int use_type = 1) - useKeras = false; - #endif - -- int num_threads = 0; // use by default all threads -+ int num_threads = 32; - // do enable MT running - if (num_threads >= 0) { - ROOT::EnableImplicitMT(num_threads); -- if (num_threads > 0) gSystem->Setenv("OMP_NUM_THREADS", TString::Format("%d",num_threads)); -+ if (ROOT::GetThreadPoolSize() > 0) -+ gSystem->Setenv("OMP_NUM_THREADS", -+ TString::Format("%u", ROOT::GetThreadPoolSize())); - } - else - gSystem->Setenv("OMP_NUM_THREADS", "1"); --- -2.35.1 - diff --git a/root-unbundle-gtest.patch b/root-unbundle-gtest.patch deleted file mode 100644 index 1bdf869..0000000 --- a/root-unbundle-gtest.patch +++ /dev/null @@ -1,202 +0,0 @@ -From 29884ae01fde27204d92f554da4e92227a2ed1e6 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Sat, 26 Mar 2022 10:22:07 +0100 -Subject: [PATCH 1/2] Implement builtin_gtest option - -By setting the option to OFF the system gtest and gmock are used. -This allows doing tests without network available, e.g. during a -package build for Fedora/EPEL. ---- - cmake/modules/FindGTest.cmake | 81 +++++++++++++++++++++ - cmake/modules/RootBuildOptions.cmake | 2 + - cmake/modules/RootMacros.cmake | 2 +- - cmake/modules/SearchInstalledSoftware.cmake | 44 ++++++++--- - 4 files changed, 118 insertions(+), 11 deletions(-) - create mode 100644 cmake/modules/FindGTest.cmake - -diff --git a/cmake/modules/FindGTest.cmake b/cmake/modules/FindGTest.cmake -new file mode 100644 -index 0000000000..438ec501c2 ---- /dev/null -+++ b/cmake/modules/FindGTest.cmake -@@ -0,0 +1,81 @@ -+# Find the gtest and gmock includes and library. -+# -+# This module defines -+# GTEST_LIBRARIES -+# GTEST_MAIN_LIBRARIES -+# GTEST_INCLUDE_DIRS -+# GMOCK_LIBRARIES -+# GMOCK_MAIN_LIBRARIES -+# GMOCK_INCLUDE_DIRS -+# -+# GTEST_FOUND true if all libraries present -+ -+find_package(Threads QUIET) -+ -+find_path(GTEST_INCLUDE_DIRS NAMES gtest/gtest.h) -+find_library(GTEST_LIBRARIES NAMES gtest) -+find_library(GTEST_MAIN_LIBRARIES NAMES gtest_main) -+ -+find_path(GMOCK_INCLUDE_DIRS NAMES gmock/gmock.h) -+find_library(GMOCK_LIBRARIES NAMES gmock) -+find_library(GMOCK_MAIN_LIBRARIES NAMES gmock_main) -+ -+# Special for EPEL 7's gmock -+if(NOT GMOCK_LIBRARIES) -+ find_path(GMOCK_SRC_DIR NAMES gmock-all.cc PATHS /usr/src/gmock) -+endif() -+ -+if(NOT GMOCK_MAIN_LIBRARIES) -+ find_path(GMOCK_MAIN_SRC_DIR NAMES gmock_main.cc PATHS /usr/src/gmock) -+endif() -+ -+if (GTEST_INCLUDE_DIRS AND -+ GTEST_LIBRARIES AND -+ GTEST_MAIN_LIBRARIES AND -+ GMOCK_INCLUDE_DIRS AND -+ (GMOCK_LIBRARIES OR GMOCK_SRC_DIR) AND -+ (GMOCK_MAIN_LIBRARIES OR GMOCK_MAIN_SRC_DIR)) -+ -+ add_library(gtest UNKNOWN IMPORTED) -+ set_target_properties(gtest PROPERTIES -+ IMPORTED_LOCATION ${GTEST_LIBRARIES} -+ INTERFACE_INCLUDE_DIRECTORIES ${GTEST_INCLUDE_DIRS}) -+ target_link_libraries(gtest INTERFACE Threads::Threads) -+ -+ add_library(gtest_main UNKNOWN IMPORTED) -+ set_target_properties(gtest_main PROPERTIES -+ IMPORTED_LOCATION ${GTEST_MAIN_LIBRARIES}) -+ target_link_libraries(gtest_main INTERFACE gtest Threads::Threads) -+ -+ if(GMOCK_LIBRARIES) -+ add_library(gmock UNKNOWN IMPORTED) -+ set_target_properties(gmock PROPERTIES -+ IMPORTED_LOCATION ${GMOCK_LIBRARIES} -+ INTERFACE_INCLUDE_DIRECTORIES ${GMOCK_INCLUDE_DIRS}) -+ else() -+ add_library(gmock STATIC ${GMOCK_SRC_DIR}/gmock-all.cc) -+ target_include_directories(gmock PUBLIC ${GMOCK_INCLUDE_DIRS}) -+ set(GMOCK_LIBRARIES gmock) -+ endif() -+ target_link_libraries(gmock INTERFACE gtest Threads::Threads) -+ -+ if(GMOCK_MAIN_LIBRARIES) -+ add_library(gmock_main UNKNOWN IMPORTED) -+ set_target_properties(gmock_main PROPERTIES -+ IMPORTED_LOCATION ${GMOCK_MAIN_LIBRARIES}) -+ else() -+ add_library(gmock_main STATIC ${GMOCK_MAIN_SRC_DIR}/gmock_main.cc) -+ set(GMOCK_MAIN_LIBRARIES gmock_main) -+ endif() -+ target_link_libraries(gmock_main INTERFACE gmock Threads::Threads) -+ -+endif() -+ -+include(FindPackageHandleStandardArgs) -+find_package_handle_standard_args(GTest DEFAULT_MSG -+ GTEST_LIBRARIES -+ GTEST_MAIN_LIBRARIES -+ GTEST_INCLUDE_DIRS -+ GMOCK_LIBRARIES -+ GMOCK_MAIN_LIBRARIES -+ GMOCK_INCLUDE_DIRS) -diff --git a/cmake/modules/RootBuildOptions.cmake b/cmake/modules/RootBuildOptions.cmake -index 7886c5f3e9..01108a18c9 100644 ---- a/cmake/modules/RootBuildOptions.cmake -+++ b/cmake/modules/RootBuildOptions.cmake -@@ -94,6 +94,7 @@ ROOT_BUILD_OPTION(builtin_ftgl OFF "Build bundled copy of FTGL") - ROOT_BUILD_OPTION(builtin_gl2ps OFF "Build bundled copy of gl2ps") - ROOT_BUILD_OPTION(builtin_glew OFF "Build bundled copy of GLEW") - ROOT_BUILD_OPTION(builtin_gsl OFF "Build GSL internally (requires network)") -+ROOT_BUILD_OPTION(builtin_gtest OFF "Build googletest internally (requires network)") - ROOT_BUILD_OPTION(builtin_llvm ON "Build bundled copy of LLVM") - ROOT_BUILD_OPTION(builtin_lz4 OFF "Build bundled copy of lz4") - ROOT_BUILD_OPTION(builtin_lzma OFF "Build bundled copy of lzma") -@@ -293,6 +294,7 @@ if(builtin_all) - set(builtin_gl2ps_defvalue ON) - set(builtin_glew_defvalue ON) - set(builtin_gsl_defvalue ON) -+ set(builtin_gtest_defvalue ON) - set(builtin_llvm_defvalue ON) - set(builtin_lz4_defvalue ON) - set(builtin_lzma_defvalue ON) -diff --git a/cmake/modules/RootMacros.cmake b/cmake/modules/RootMacros.cmake -index cb75c0b1da..38fd5d6baf 100644 ---- a/cmake/modules/RootMacros.cmake -+++ b/cmake/modules/RootMacros.cmake -@@ -1671,7 +1671,7 @@ function(ROOT_ADD_TEST test) - - set_property(TEST ${test} APPEND PROPERTY ENVIRONMENT ROOT_HIST=0) - -- #- Handle TIMOUT and DEPENDS arguments -+ #- Handle TIMEOUT and DEPENDS arguments - if(ARG_TIMEOUT) - set_property(TEST ${test} PROPERTY TIMEOUT ${ARG_TIMEOUT}) - endif() -diff --git a/cmake/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake -index fe40898d12..b6a3cc4c76 100644 ---- a/cmake/modules/SearchInstalledSoftware.cmake -+++ b/cmake/modules/SearchInstalledSoftware.cmake -@@ -1860,15 +1860,6 @@ if (mpi) - endif() - endif() - --if(testing AND NO_CONNECTION) -- if(fail-on-missing) -- message(FATAL_ERROR "No internet connection. Please check your connection, or either disable the 'testing' option or the 'fail-on-missing' to automatically disable options requiring internet access") -- else() -- message(STATUS "No internet connection, disabling 'testing' option") -- set(testing OFF CACHE BOOL "Disabled because there is no internet connection" FORCE) -- endif() --endif() -- - #---Check for ZeroMQ when building RooFit::MultiProcess-------------------------------------------- - - if (roofit_multiprocess) -@@ -1942,8 +1933,41 @@ if (roofit_multiprocess) - target_compile_definitions(cppzmq INTERFACE ZMQ_NO_EXPORT) - endif (roofit_multiprocess) - --#---Download googletest-------------------------------------------------------------- -+#---Check for googletest--------------------------------------------------------------- - if (testing) -+ if (NOT builtin_gtest) -+ if(fail-on-missing) -+ find_package(GTest REQUIRED) -+ else() -+ find_package(GTest) -+ if(NOT GTEST_FOUND) -+ if(NO_CONNECTION) -+ if(fail-on-missing) -+ message(FATAL_ERROR "No internet connection and GTest was not found. Please check your connection, or either disable the 'testing' option or the 'fail-on-missing' to automatically disable options requiring internet access") -+ else() -+ message(STATUS "GTest not found, and no internet connection. Disabing the 'testing' option.") -+ set(testing OFF CACHE BOOL "Disabled because testing requested and GTest not found (${builtin_gtest_description}) and there is no internet connection" FORCE) -+ endif() -+ else() -+ message(STATUS "GTest not found, switching ON 'builtin_gtest' option.") -+ set(builtin_gtest ON CACHE BOOL "Enabled because testing requested and GTest not found (${builtin_gtest_description})" FORCE) -+ endif() -+ endif() -+ endif() -+ else() -+ if(NO_CONNECTION) -+ if(fail-on-missing) -+ message(FATAL_ERROR "No internet connection. Please check your connection, or either disable the 'testing' option or the 'builtin_gtest' option or the 'fail-on-missing' option to automatically disable options requiring internet access") -+ else() -+ message(STATUS "No internet connection, disabling the 'testing' and 'builtin_gtest' options") -+ set(testing OFF CACHE BOOL "Disabled because there is no internet connection" FORCE) -+ set(builtin_gtest OFF CACHE BOOL "Disabled because there is no internet connection" FORCE) -+ endif() -+ endif() -+ endif() -+endif() -+ -+if (builtin_gtest) - # FIXME: Remove our version of gtest in roottest. We can reuse this one. - # Add googletest - #
http://stackoverflow.com/questions/9689183/cmake-googletest
--- -2.35.1 - diff --git a/root-uring-warn.patch b/root-uring-warn.patch deleted file mode 100644 index 05cfd56..0000000 --- a/root-uring-warn.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 580fcf8fe95c45e337d222a7fd2338fdef2f52c5 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Thu, 24 Mar 2022 16:18:57 +0100 -Subject: [PATCH 1/2] Ignore warnings about uring failing during test - ---- - tree/ntuple/v7/test/ntuple_extended.cxx | 13 +++++++++++++ - 1 file changed, 13 insertions(+) - -diff --git a/tree/ntuple/v7/test/ntuple_extended.cxx b/tree/ntuple/v7/test/ntuple_extended.cxx -index 8e3998996c..98d65ef319 100644 ---- a/tree/ntuple/v7/test/ntuple_extended.cxx -+++ b/tree/ntuple/v7/test/ntuple_extended.cxx -@@ -4,6 +4,8 @@ - - #include "TROOT.h" - -+#include "ROOTUnitTestSupport.h" -+ - TEST(RNTuple, RealWorld1) - { - ROOT::EnableImplicitMT(); -@@ -111,6 +113,17 @@ TEST(RNTuple, RandomAccess) - #if !defined(_MSC_VER) || defined(R__ENABLE_BROKEN_WIN_TESTS) - TEST(RNTuple, LargeFile) - { -+ ROOTUnitTestSupport::CheckDiagsRAII raii; -+ raii.optionalDiag(kWarning, "RIoUring", -+ "io_uring is unexpectedly not available because:", false); -+ raii.optionalDiag(kWarning, "RRawFileUnix", -+ "io_uring setup failed, falling back to blocking I/O in ReadV", true); -+ -+ raii.optionalDiag(kWarning, "ROOT.NTuple", -+ "The RNTuple file format will change. Do not store real data with this version of RNTuple!", true); -+ raii.optionalDiag(kWarning, "ROOT.NTuple", -+ "Pre-release format version: ", false); -+ - ROOT::EnableImplicitMT(); - FileRaii fileGuard("test_large_file.root"); - --- -2.35.1 - diff --git a/root-use-consistent-minimum-python-version-for-DistRDF.patch b/root-use-consistent-minimum-python-version-for-DistRDF.patch new file mode 100644 index 0000000..23e9e5c --- /dev/null +++ b/root-use-consistent-minimum-python-version-for-DistRDF.patch @@ -0,0 +1,27 @@ +From 8624d1c7eb4f532d6843118251d9564650f89924 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Thu, 2 Mar 2023 08:25:36 +0100 +Subject: [PATCH 1/2] Use consistent minimum Python version for DistRDF The + minimum version was changed in bindings/CMakeLists.txt but not in the check + in the code. + +--- + bindings/pyroot/pythonizations/python/ROOT/_facade.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/bindings/pyroot/pythonizations/python/ROOT/_facade.py b/bindings/pyroot/pythonizations/python/ROOT/_facade.py +index 7370a234d1..865321e713 100644 +--- a/bindings/pyroot/pythonizations/python/ROOT/_facade.py ++++ b/bindings/pyroot/pythonizations/python/ROOT/_facade.py +@@ -335,7 +335,7 @@ class ROOTFacade(types.ModuleType): + ns.MakeNumpyDataFrame = DeprecatedMakeNumpy + ns.FromNumpy = MakeNumpyDataFrame + +- if sys.version_info >= (3, 7): ++ if sys.version_info >= (3, 8): + # Inject Experimental.Distributed package into namespace RDF + ns.Experimental.Distributed = _create_rdf_experimental_distributed_module(ns.Experimental) + except: +-- +2.39.2 + diff --git a/root-use-unique-filenames-in-fillrandom-tutorials.patch b/root-use-unique-filenames-in-fillrandom-tutorials.patch deleted file mode 100644 index 724eb79..0000000 --- a/root-use-unique-filenames-in-fillrandom-tutorials.patch +++ /dev/null @@ -1,25 +0,0 @@ -From b781f954ac80cc227777992dcb4fbe1837c7e351 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Tue, 29 Mar 2022 15:44:17 +0200 -Subject: [PATCH] Use unique filenames in fillrandom.py and fillrandom.C - ---- - tutorials/hist/fillrandom.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tutorials/hist/fillrandom.py b/tutorials/hist/fillrandom.py -index d5eb3f6f38..4b1a94a37e 100644 ---- a/tutorials/hist/fillrandom.py -+++ b/tutorials/hist/fillrandom.py -@@ -41,7 +41,7 @@ h1f.FillRandom("sqroot",10000) - h1f.Draw() - c1.Update() - --f = ROOT.TFile("fillrandom.root","RECREATE") -+f = ROOT.TFile("fillrandom-py.root","RECREATE") - form1.Write() - sqroot.Write() - h1f.Write() --- -2.35.1 - diff --git a/root-veto-tests-using-clad-when-clad-is-disabled.patch b/root-veto-tests-using-clad-when-clad-is-disabled.patch new file mode 100644 index 0000000..d201fdb --- /dev/null +++ b/root-veto-tests-using-clad-when-clad-is-disabled.patch @@ -0,0 +1,66 @@ +From 6583668f3e5f1b4e1d219a5a92a19da31d8d5494 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Wed, 1 Mar 2023 18:32:45 +0100 +Subject: [PATCH] Veto tests using clad when clad is disabled + +--- + math/minuit2/test/CMakeLists.txt | 8 ++++---- + tutorials/CMakeLists.txt | 9 ++++++--- + 2 files changed, 10 insertions(+), 7 deletions(-) + +diff --git a/math/minuit2/test/CMakeLists.txt b/math/minuit2/test/CMakeLists.txt +index 7ecf30350c..8951ac0a84 100644 +--- a/math/minuit2/test/CMakeLists.txt ++++ b/math/minuit2/test/CMakeLists.txt +@@ -11,10 +11,10 @@ if(NOT DEFINED ROOT_SOURCE_DIR) + include(${ROOT_USE_FILE}) + endif() + +-set(TestSource +- testMinimizer.cxx +- testADMinim.cxx +-) ++set(TestSource testMinimizer.cxx) ++if (clad) ++ list(APPEND TestSource testADMinim.cxx) ++endif() + + set(TestSourceMnTutorial + MnTutorial/Quad1FMain.cxx +diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt +index bf7c1d4089..deb5f67d23 100644 +--- a/tutorials/CMakeLists.txt ++++ b/tutorials/CMakeLists.txt +@@ -65,16 +65,18 @@ endfunction() + + #---Tutorials disabled depending on the build components------------- + if(NOT ROOT_minuit2_FOUND) +- set(minuit2_veto fit/fit2dHist.C fit/fit2dHist.C +- fit/fitCircle.C fit/minuit2FitBench2D.C ++ set(minuit2_veto fit/fit2dHist.C fit/fitCircle.C + fit/minuit2FitBench2D.C fit/minuit2FitBench.C +- fit/minuit2FitBench.C fit/minuit2GausFit.C + fit/minuit2GausFit.C fit/NumericalMinimization.C + fit/combinedFit.C fit/TestBinomial.C + fit/fitNormSum.C fit/vectorizedFit.C + tutorials/roostats/rs_bernsteinCorrection.C) + endif() + ++if(NOT clad) ++ set(clad_veto fit/minuit2GausFit.C) ++endif() ++ + if (NOT dataframe) + # RDataFrame + list(APPEND dataframe_veto dataframe/*.C dataframe/*.py) +@@ -457,6 +459,7 @@ set(all_veto hsimple.C + ${spectrum_veto} + ${dataframe_veto} + ${macm1_veto} ++ ${clad_veto} + ) + + file(GLOB_RECURSE tutorials RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.C) +-- +2.39.2 + diff --git a/root.spec b/root.spec index 7b8e3be..eb06a82 100644 --- a/root.spec +++ b/root.spec @@ -1,23 +1,13 @@ +# Needed for EPEL 8 %undefine __cmake_in_source_build -%undefine __cmake3_in_source_build # Disable package note flags, since root saves the compiler/linker flags # used during the build %undefine _package_note_flags -%if %{?fedora}%{!?fedora:0} >= 31 || %{?rhel}%{!?rhel:0} >= 8 -# Don't build python2-root for Fedora >= 31 -%global buildpy2 0 -%else -%global buildpy2 1 -%endif - -%if %{buildpy2} -%global python2_version_uscore %(tr . _ <<< "%{python2_version}") -%endif %global python3_version_uscore %(tr . _ <<< "%{python3_version}") -%if %{?fedora}%{!?fedora:0} >= 34 || %{?rhel}%{!?rhel:0} >= 9 +%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 9 # Building the experimental ROOT 7 classes requires c++-17. # This is the default for gcc 11 and later. %global root7 1 @@ -25,46 +15,41 @@ %global root7 0 %endif -%global xrootd5 1 - -%global webgui 1 - -%global gfal2 1 - -%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8 -# The SOFIE parser requires protobuf 3.0 +%if %{?rhel}%{!?rhel:0} == 8 +%ifarch %{power64} +# These modules cause "pure virtual method called" errors +#
https://github.com/root-project/root/issues/12372
+%global dataframe 0 +%global roofit 0 +%global tmvasofieparser 0 +%else +%global dataframe 1 +%global roofit 1 %global tmvasofieparser 1 +%endif %else -%global tmvasofieparser 0 +%global dataframe 1 +%global roofit 1 +%global tmvasofieparser 1 %endif %if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 9 -# DistRDF requires Python 3.7+ -%global distrdf 1 +# DistRDF requires Python 3.8+ +%global distrdf %{dataframe} %else %global distrdf 0 %endif -%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8 -# Multi-threading support requires TBB version >= 2018 -%global tbb 1 -%else -%global tbb 0 -%endif - -# Do not create .orig files when patching source -%global _default_patch_flags --no-backup-if-mismatch - # Do not generate autoprovides for Python modules -%global __provides_exclude_from ^(%{?python2_sitearch:%{python2_sitearch}|}%{python3_sitearch})/lib.*\\.so$ +%global __provides_exclude_from ^%{python3_sitearch}/lib.*\\.so$ Name: root -Version: 6.26.10 +Version: 6.28.00 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 5%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework -License: LGPLv2+ +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 @@ -86,118 +71,75 @@ Source7: JupyROOT-on-EPEL Source8: %{name}-get-src.sh # Use system fonts Patch0: %{name}-fontconfig.patch -# Revert the removal of DataFrame for 32 bit architectures -#
https://github.com/root-project/root/pull/10300
-Patch1: %{name}-32bit-dataframe.patch -# Unbundle gtest -# Add builtin_gtest cmake option -# Compatibility with older gtest -#
https://github.com/root-project/root/pull/10301
-Patch2: %{name}-unbundle-gtest.patch -Patch3: %{name}-old-gtest-compat.patch # Reduce memory usage of build # Do not link rootcling_stage1 and libCling in parallel -Patch4: %{name}-memory-usage.patch +Patch1: %{name}-memory-usage.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 -Patch5: %{name}-memory-arm-x86.patch +Patch2: %{name}-memory-arm-x86.patch # Don't install minicern static library -Patch6: %{name}-dont-install-minicern.patch +Patch3: %{name}-dont-install-minicern.patch # Do not export Python modules in CMake config -Patch7: %{name}-no-export-python-modules.patch +Patch4: %{name}-no-export-python-modules.patch # Run some test on 32 bit that upstream has disabled -Patch8: %{name}-32bit-tests.patch +Patch5: %{name}-32bit-tests.patch # Use local static script and style files for JsMVA -Patch9: %{name}-jsmva-static.patch -# Fix python bytecode compilation on EPEL 7 -# Compatibility with older python versions (no f-strings) -Patch10: %{name}-older-python.patch -# Backported fix from LLVM upstream -Patch11: %{name}-symbol-rewrite.patch -# Backport gcc 12 fix from LLVM -#
https://github.com/root-project/root/pull/9586
-Patch12: %{name}-fix-compilation-with-gcc-12.patch +Patch6: %{name}-jsmva-static.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}-ignore-prefix.patch -# Use different filenames in io/loopdir tests -#
https://github.com/root-project/root/pull/11725
-Patch16: %{name}-different-filename.patch -# Fix test when long is 32 bits -#
https://github.com/root-project/root/pull/10302
-Patch17: %{name}-longlong.patch -# Ignore warnings (uring and RooNaNPacker) -#
https://github.com/root-project/root/pull/10303
-Patch18: %{name}-uring-warn.patch -Patch19: %{name}-endian-warn.patch -# Always call WaitForInFlightClusters before checking cluster IDs -#
https://github.com/root-project/root/pull/10304
-Patch20: %{name}-ntuplewait.patch -# NENTRIES is not always a multiple of the expected size -#
https://github.com/root-project/root/pull/10305
-Patch21: %{name}-dataframe-callback.patch -# Add/remove namespaces from Linkdef -#
https://github.com/root-project/root/pull/10306
-Patch22: %{name}-namespace-sofie.patch -Patch23: %{name}-namespace-roofit.patch -Patch24: %{name}-namespace-pymva.patch -# Use calls from Python directly in tutorial -#
https://github.com/root-project/root/pull/10307
-Patch25: %{name}-roofit-tutorial.patch +Patch7: %{name}-fix-test-failure-on-ppc64le-and-aarch64-with-gcc-12.patch # Byte swap values read from the protobuf raw data stream on # big endian architectures #
https://github.com/root-project/root/pull/10308
-Patch26: %{name}-big-endian-byte-swap.patch -# Avoid crashes due to static initialization order -#
https://github.com/root-project/root/pull/10309
-Patch27: %{name}-rcolor-static-init.patch -# Avoid deleting TFormulas twice -#
https://github.com/root-project/root/pull/10310
-Patch28: %{name}-avoid-deleting-TFormulas-twice.patch -# Use unique filenames in fillrandom.py and fillrandom.C -#
https://github.com/root-project/root/pull/10311
-Patch29: %{name}-use-unique-filenames-in-fillrandom-tutorials.patch -# Limit the number of threads in TMVA CNN/DNN test to save memory -#
https://github.com/root-project/root/pull/10312
-Patch30: %{name}-tmva-threads.patch -# Fix library link order -#
https://github.com/root-project/root/pull/10313
-Patch31: %{name}-core-base-test.patch -# Backports -Patch32: %{name}-make-dyld-based-library-search-behavior-default.patch -Patch33: %{name}-get-rid-of-lsb_release.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 -# Avoid race condition between C++ an Python version of test -#
https://github.com/root-project/root/pull/11643
-Patch37: %{name}-avoid-race-condition-tutorial-roofit-rf512.patch +Patch8: %{name}-big-endian-byte-swap.patch # Add missing #include <cstdint> #
https://github.com/root-project/root/pull/12065
-Patch38: %{name}-add-missing-include-cstdint.patch -# Backport from upstream -Patch39: %{name}-fix-compilation-with-gcc13.patch -# numpy.object obsolete since numpy 1.20 and removed since 1.24 -#
https://github.com/root-project/root/issues/12148
-#
https://github.com/root-project/root/pull/12159
-Patch40: %{name}-avoid-deprecated-numpy.object.patch - -%if %{?rhel}%{!?rhel:0} == 7 -BuildRequires: devtoolset-8-toolchain -BuildRequires: cmake3 >= 3.9 -%else +Patch9: %{name}-add-missing-include-cstdint.patch +#
https://github.com/root-project/root/pull/12218
+Patch10: %{name}-Simplify-creation-of-TargetMachine.patch +# Fix build with -Dbuiltin_gtest:BOOL=OFF on EPEL 8 +#
https://github.com/root-project/root/pull/12250
+Patch11: %{name}-gtest-compat.patch +# Limit the number of threads in TMVA CNN/DNN test to save memory +#
https://github.com/root-project/root/pull/12310
+Patch12: %{name}-tmva-Speed-up-TMVA-CNN-and-RNN-tutorials.patch +#
https://github.com/root-project/root/issues/12293
+#
https://github.com/root-project/root/pull/12335
+Patch13: %{name}-Set-DataLayout-from-our-TargetMachine.patch +#
https://github.com/root-project/root/issues/12294
+#
https://github.com/root-project/root/pull/12353
+Patch14: %{name}-cling-Disable-outline-atomics-on-AArch64.patch +#
https://github.com/root-project/root/pull/12385
+Patch15: %{name}-PyROOT-only-build-RooFit-and-TMVA-pythonizations-if-enabled.patch +#
https://github.com/root-project/root/pull/12389
+Patch16: %{name}-testRooAbsL-test-compares-two-doubles-and-fails.patch +#
https://github.com/root-project/root/pull/12390
+Patch17: %{name}-stressvector-test-fails-on-ix86.patch +#
https://github.com/root-project/root/pull/12402
+Patch18: %{name}-dont-install-roofit-files-when-roofit-is-disabled.patch +#
https://github.com/root-project/root/pull/12403
+Patch19: %{name}-veto-tests-using-clad-when-clad-is-disabled.patch +#
https://github.com/root-project/root/pull/12407
+Patch20: %{name}-use-consistent-minimum-python-version-for-DistRDF.patch +Patch21: %{name}-make-DistRDF-optional.patch +#
https://github.com/root-project/root/pull/12423
+Patch22: %{name}-dont-install-roofit-files-fix.patch +#
https://github.com/root-project/root/issues/12430
+#
https://github.com/root-project/root/pull/12447
+Patch23: %{name}-RF-Rewrite-RooProdPdf.TestGetPartIntList-unit-test.patch +#
https://github.com/root-project/root/issues/12427
+#
https://github.com/root-project/root/pull/12468
+Patch24: %{name}-fixes-for-32bit-builds.patch +#
https://github.com/root-project/root/pull/12476
+Patch25: %{name}-do-not-remove-Wp-before-D-and-U.patch +# Backport (fixes a failing test on ix86) +Patch26: %{name}-ntuple-RPageSinkBuf-add-missing-call-to-ReleasePage.patch + BuildRequires: gcc-c++ BuildRequires: gcc-gfortran BuildRequires: make -BuildRequires: cmake >= 3.9 -%endif +BuildRequires: cmake >= 3.16 BuildRequires: libX11-devel BuildRequires: libXpm-devel BuildRequires: libXft-devel @@ -222,62 +164,38 @@ BuildRequires: libxml2-devel BuildRequires: fftw-devel BuildRequires: gsl-devel BuildRequires: unuran-devel -%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8 BuildRequires: mariadb-connector-c-devel -%else -BuildRequires: mysql-devel -%endif BuildRequires: sqlite-devel BuildRequires: unixODBC-devel BuildRequires: libGL-devel BuildRequires: libGLU-devel -%if %{?fedora}%{!?fedora:0} >= 27 || %{?rhel}%{!?rhel:0} >= 8 BuildRequires: libpq-devel -%else -BuildRequires: postgresql-devel -%endif -%if %{buildpy2} -BuildRequires: python2-devel -BuildRequires: python2-setuptools -BuildRequires: python2-numpy -%endif BuildRequires: python%{python3_pkgversion}-devel BuildRequires: python%{python3_pkgversion}-setuptools BuildRequires: python%{python3_pkgversion}-numpy -%if %{webgui} %ifarch %{qt5_qtwebengine_arches} BuildRequires: qt5-qtbase-devel BuildRequires: qt5-qtwebengine-devel %endif -%endif BuildRequires: openssl-devel BuildRequires: libtool-ltdl-devel BuildRequires: desktop-file-utils BuildRequires: dcap-devel -%if %{xrootd5} BuildRequires: xrootd-client-devel >= 1:5.0.0 -%else -BuildRequires: xrootd-client-devel >= 1:3.3.5 -BuildRequires: xrootd-private-devel >= 1:3.3.5 -%endif BuildRequires: cfitsio-devel BuildRequires: davix-devel >= 0.6.4 -%if %{gfal2} BuildRequires: gfal2-devel -%endif BuildRequires: R-Rcpp-devel BuildRequires: R-RInside-devel BuildRequires: readline-devel -%if %{tbb} BuildRequires: tbb-devel >= 2018 -%endif BuildRequires: libuuid-devel BuildRequires: emacs BuildRequires: emacs-el BuildRequires: graphviz-devel BuildRequires: expat-devel BuildRequires: pythia8-devel >= 8.1.80 -%if %{?fedora}%{!?fedora:0} >= 33 || %{?rhel}%{!?rhel:0} >= 9 +%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 9 BuildRequires: flexiblas-devel # Required for FlexiBLAS support in FindBLAS.cmake # (in cmake 3.19.0, backported to cmake 3.18.3-1 in Fedora) @@ -286,7 +204,9 @@ BuildRequires: cmake-data >= 3.18.3-1 BuildRequires: openblas-devel %endif BuildRequires: json-devel -%if %{?fedora}%{!?fedora:0} +%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 9 +# Disable uring in EPEL 8 (liburing is available, but uring not +# supported by the kernel) BuildRequires: liburing-devel %endif %if %{tmvasofieparser} @@ -310,12 +230,15 @@ 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-player%{?_isa} = %{version}-%{release} Requires: hicolor-icon-theme Requires: emacs-filesystem >= %{_emacs_version} Provides: emacs-%{name} = %{version}-%{release} @@ -363,7 +286,7 @@ This package contains icons used by the ROOT GUI. Summary: ROOT font collection BuildArch: noarch # STIX version 0.9 only -License: OFL +License: OFL-1.1 Requires: %{name}-core = %{version}-%{release} %description fonts @@ -380,7 +303,7 @@ This package contains the tutorial scripts and test suite for ROOT. %package core Summary: ROOT core libraries -License: LGPLv2+ and BSD +License: LGPL-2.1-or-later AND LGPL-2.0-or-later AND ISC AND MIT AND NCSA Requires: %{name}-fonts = %{version}-%{release} Requires: %{name}-icons = %{version}-%{release} # Dynamic dependencies @@ -402,7 +325,9 @@ 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-player%{?_isa} = %{version}-%{release} Requires: %{name}-vecops%{?_isa} = %{version}-%{release} # To resolve dependency in installed ROOTConfig.cmake @@ -431,17 +356,6 @@ Obsoletes: %{name}-net-globus < 6.18.00 Obsoletes: %{name}-net-ldap < 6.18.00 Obsoletes: %{name}-net-krb5 < 6.18.00 Obsoletes: %{name}-table < 6.18.00 -%if ! %{buildpy2} -Obsoletes: python2-%{name} < %{version}-%{release} -Obsoletes: python2-jupyroot < %{version}-%{release} -Obsoletes: python2-jsmva < %{version}-%{release} -Obsoletes: %{name}-rootaas < 6.08.00 -%endif -%if %{?rhel}%{!?rhel:0} == 7 -Obsoletes: python%{?python3_other_pkgversion}-%{name} < 6.22.00 -Obsoletes: python%{?python3_other_pkgversion}-jupyroot < 6.22.00 -Obsoletes: python%{?python3_other_pkgversion}-jsmva < 6.22.00 -%endif Obsoletes: %{name}-memstat < 6.26.00 Obsoletes: %{name}-montecarlo-vmc < 6.26.00 Obsoletes: %{name}-doc < 6.26.00 @@ -458,12 +372,24 @@ Obsoletes: %{name}-gui-fitpanelv7 < 6.26.00 Obsoletes: %{name}-histv7 < 6.26.00 Obsoletes: %{name}-hist-draw < 6.26.00 Obsoletes: %{name}-tree-ntuple < 6.26.00 -%endif -%if %{buildpy2} -Obsoletes: python2-distrdf < 6.26.00 -%endif -%if ! %{distrdf} +# Obsolete the DistRDF package in EPEL 8 +# Minimum Python version requirement introduced Obsoletes: python%{python3_pkgversion}-distrdf < 6.26.00 +%ifarch %{power64} +# Obsolete for ppc64le in EPEL 8 +# These modules cause "pure virtual method called" errors +Obsoletes: %{name}-tree-dataframe < 6.28.00 +Obsoletes: %{name}-roofit < 6.28.00 +Obsoletes: %{name}-roofit-common < 6.28.00 +Obsoletes: %{name}-roofit-core < 6.28.00 +Obsoletes: %{name}-roofit-more < 6.28.00 +Obsoletes: %{name}-roofit-batchcompute < 6.28.00 +Obsoletes: %{name}-roofit-dataframe-helpers < 6.28.00 +Obsoletes: %{name}-roofit-hs3 < 6.28.00 +Obsoletes: %{name}-roostats < 6.28.00 +Obsoletes: %{name}-hist-factory < 6.28.00 +Obsoletes: %{name}-tmva-sofie-parser < 6.28.00 +%endif %endif %description core @@ -481,7 +407,7 @@ This package provides ROOT's multi-processor support library: libMultiProc. %package cling Summary: Cling C++ interpreter -License: NCSA and (NCSA or LGPLv2+) +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 @@ -491,11 +417,7 @@ Requires: %{name}-io%{?_isa} = %{version}-%{release} # visible outside of the libCling module. Provides: bundled(clang-libs) Provides: bundled(llvm-libs) -%if %{?rhel}%{!?rhel:0} == 7 -Requires: devtoolset-8-toolchain -%else Requires: gcc-c++ -%endif Requires: redhat-rpm-config Obsoletes: %{name}-cint7 < 5.26.00c Obsoletes: %{name}-cint < 6.00.00 @@ -506,6 +428,13 @@ Obsoletes: %{name}-reflex < 6.00.00 Cling is an interactive C++ interpreter, built on top of Clang and LLVM compiler infrastructure. +%package testsupport +Summary: Unit test support library for ROOT +Requires: %{name}-core%{?_isa} = %{version}-%{release} + +%description testsupport +This package contains the unit test support library for ROOT. + %package tpython Summary: ROOT's TPython interface Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -517,51 +446,6 @@ Obsoletes: python%{python3_pkgversion}-%{name} < 6.22.00 This package contains ROOT's TPython interface. It makes it possible to call Python from ROOT. -%if %{buildpy2} -%package -n python2-%{name} -Summary: Python extension for ROOT -%py_provides python2-%{name} -Provides: %{name}-python = %{version}-%{release} -Obsoletes: %{name}-python < 6.08.00 -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} - -%description -n python2-%{name} -This package contains the Python extension for ROOT. It makes it -possible to use ROOT classes in Python. - -%package -n python2-jupyroot -Summary: ROOT Jupyter kernel -%py_provides python2-jupyroot -Requires: python2-%{name}%{?_isa} = %{version}-%{release} -Requires: python2-jsmva = %{version}-%{release} -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-notebook = %{version}-%{release} -%if %{?fedora}%{!?fedora:0} >= 26 -# python-metakernel for python2 not available in -# Fedora <= 25 or RHEL/EPEL - some functionality missing -Requires: python2-ipython -Requires: python2-metakernel -%endif -%if %{?fedora}%{!?fedora:0} >= 28 -Requires: python-jupyter-filesystem -%endif -Obsoletes: %{name}-rootaas < 6.08.00 - -%description -n python2-jupyroot -The Jupyter kernel for the ROOT notebook. - -%package -n python2-jsmva -Summary: TMVA interface used by JupyROOT -BuildArch: noarch -%py_provides python2-jsmva -Requires: %{name}-tmva = %{version}-%{release} - -%description -n python2-jsmva -TMVA interface used by JupyROOT. -%endif - %package -n python%{python3_pkgversion}-%{name} Summary: Python extension for ROOT %py_provides python%{python3_pkgversion}-%{name} @@ -584,13 +468,11 @@ Requires: python%{python3_pkgversion}-%{name}%{?_isa} = %{version}-%{release} Requires: python%{python3_pkgversion}-jsmva = %{version}-%{release} Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-notebook = %{version}-%{release} -%if %{?fedora}%{!?fedora:0} >= 26 -# python-metakernel for python3 not available in -# Fedora <= 25 or RHEL/EPEL - some functionality missing +%if %{?fedora}%{!?fedora:0} +# python-metakernel not available in RHEL/EPEL +# some functionality missing Requires: python%{python3_pkgversion}-ipython Requires: python%{python3_pkgversion}-metakernel -%endif -%if %{?fedora}%{!?fedora:0} >= 28 Requires: python-jupyter-filesystem %endif @@ -658,17 +540,41 @@ This package contains a genetic minimizer module for ROOT. %package geom Summary: Geometry library for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-graf3d%{?_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 + +%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}-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-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} Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} +# Package split (geom-builder and geom-painter from geom) +Obsoletes: %{name}-geom < 6.28.00 -%description geom -This package contains a library for defining geometries in ROOT. +%description geom-painter +This package contains a library for drawing geometries in ROOT. %package gdml Summary: GDML import/export for ROOT geometries @@ -724,6 +630,7 @@ 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} @@ -981,24 +888,6 @@ Requires: %{name}-hist%{?_isa} = %{version}-%{release} %description spectrum-painter This package contains a painter of spectra for ROOT. -%package hist-factory -Summary: RooFit PDFs from ROOT histograms -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-xmlparser%{?_isa} = %{version}-%{release} -Requires: %{name}-matrix%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit-batchcompute%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit-core%{?_isa} = %{version}-%{release} -Requires: %{name}-roostats%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} - -%description hist-factory -Create RooFit probability density functions from ROOT histograms. - %package html Summary: HTML documentation generator for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1024,7 +913,6 @@ Requires: %{name}-io%{?_isa} = %{version}-%{release} %description io-dcache This package contains the dCache extension for ROOT. -%if %{gfal2} %package io-gfal Summary: Grid File Access Library input/output library for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1032,7 +920,6 @@ Requires: %{name}-io%{?_isa} = %{version}-%{release} %description io-gfal This package contains the Grid File Access Library extension for ROOT. -%endif %package io-sql Summary: SQL input/output library for ROOT @@ -1079,7 +966,7 @@ easier to use for the average user. %package fftw Summary: FFTW library for ROOT -License: GPLv2+ +License: GPL-2.0-or-later Requires: %{name}-core%{?_isa} = %{version}-%{release} %description fftw @@ -1116,7 +1003,7 @@ This package contains the MathCore library for ROOT. %package mathmore Summary: GSL interface library for ROOT -License: GPLv2+ +License: GPL-2.0-or-later Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} @@ -1235,7 +1122,7 @@ discriminating variables. %package unuran Summary: Random number generator library -License: GPLv2+ +License: GPL-2.0-or-later Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} @@ -1324,7 +1211,7 @@ access to http based storage such as webdav and S3. Summary: HTTP server extension for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: js-jsroot >= 6 +Requires: js-jsroot >= 7 # Library split (net-httpsniff from net-http) Obsoletes: %{name}-net-http < 6.14.00 @@ -1356,8 +1243,7 @@ Requires: %{name}-net%{?_isa} = %{version}-%{release} %description netx This package contains the NetX extension for ROOT, i.e. a client for -the xrootd server. Both the old (NetX) and the new (NetXNG) version are -provided. +the xrootd server. Only the new (NetXNG) version is provided. %package proof Summary: PROOF extension for ROOT @@ -1371,9 +1257,7 @@ Obsoletes: %{name}-peac < 5.34.01 # Package split (proof-player from proof) Obsoletes: %{name}-proof < 6.14.00 Obsoletes: %{name}-proofd < 6.16.00 -%if %{xrootd5} -Obsoletes: %{name}-xproof < %{version}-%{release} -%endif +Obsoletes: %{name}-xproof < 6.22.08-2 %description proof This package contains the proof extension for ROOT. This provides a @@ -1425,25 +1309,10 @@ Requires: %{name}-tree%{?_isa} = %{version}-%{release} This package contains a library for browsing an interactive PROOF session in ROOT. -%if ! %{xrootd5} -%package xproof -Summary: XPROOF extension for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_isa} = %{version}-%{release} -Requires: %{name}-proof%{?_isa} = %{version}-%{release} -# Dynamic dependency -Requires: %{name}-net-rpdutils%{?_isa} = %{version}-%{release} -Requires: xrootd-server%{?_isa} - -%description xproof -This package contains the xproof extension for ROOT. This provides a -client to be used in a PROOF environment. -%endif - +%if %{roofit} %package roofit Summary: ROOT extension for modeling expected distributions - toolkit -License: BSD +License: BSD-2-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} @@ -1472,7 +1341,7 @@ This package contains the RooFit toolkit classes. %package roofit-common Summary: ROOT extension for modeling expected distributions - common -License: BSD +License: BSD-2-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} %description roofit-common @@ -1492,7 +1361,7 @@ This package contains the RooFit common classes. %package roofit-core Summary: ROOT extension for modeling expected distributions - core -License: BSD +License: BSD-2-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-foam%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} @@ -1501,7 +1370,6 @@ 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}-minuit2%{?_isa} = %{version}-%{release} Requires: %{name}-roofit-batchcompute%{?_isa} = %{version}-%{release} Requires: %{name}-roofit-common%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} @@ -1525,11 +1393,10 @@ This package contains the core RooFit classes. %package roofit-more Summary: ROOT extension for modeling expected distributions - more -License: BSD +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-batchcompute%{?_isa} = %{version}-%{release} Requires: %{name}-roofit-core%{?_isa} = %{version}-%{release} # Package split / Library split (from roofit) Obsoletes: %{name}-roofit < 6.20.00 @@ -1551,6 +1418,7 @@ 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} Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-multiproc%{?_isa} = %{version}-%{release} @@ -1569,9 +1437,10 @@ multiple times for different vector instuction set architectures and the optimal code is executed during runtime, as a result of an automatic hardware detection mechanism that this library contains. +%if %{dataframe} %package roofit-dataframe-helpers Summary: RooFit DaraFrame helpers -License: BSD +License: BSD-2-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} %description roofit-dataframe-helpers @@ -1588,14 +1457,16 @@ analysis environment, but the general nature of the package make it suitable for adoption in different disciplines as well. This package contains DaraFrame helper classes for RooFit +%endif %package roofit-hs3 Summary: RooFit HS3 -License: BSD +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} +Requires: %{name}-roofit-jsoninterface%{?_isa} = %{version}-%{release} Requires: %{name}-roostats%{?_isa} = %{version}-%{release} %description roofit-hs3 @@ -1606,9 +1477,28 @@ may be useful to store statistical models in text form. This library sets out to achieve exactly that, exporting to and importing from JSON and YML. +%package roofit-jsoninterface +Summary: JSON interface to RooFit +License: BSD-2-Clause +Requires: %{name}-core%{?_isa} = %{version}-%{release} + +%description roofit-jsoninterface +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 the JSON interface to RooFit. + %package roostats Summary: Statistical tools built on top of RooFit -License: BSD Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} @@ -1627,6 +1517,22 @@ Obsoletes: %{name}-roofit < 6.20.00 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}-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-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. +%endif + %package sql-mysql Summary: MySQL client plugin for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1672,7 +1578,7 @@ ROOT environment. %package tmva Summary: Toolkit for multivariate data analysis -License: BSD +License: BSD-3-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} @@ -1710,7 +1616,7 @@ compared. %package tmva-python Summary: Toolkit for multivariate data analysis (Python) -License: BSD +License: BSD-3-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-tmva%{?_isa} = %{version}-%{release} Requires: %{name}-tmva-sofie%{?_isa} = %{version}-%{release} @@ -1721,7 +1627,7 @@ Python integration with TMVA. %package tmva-r Summary: Toolkit for multivariate data analysis (R) -License: BSD +License: BSD-3-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-matrix%{?_isa} = %{version}-%{release} Requires: %{name}-r%{?_isa} = %{version}-%{release} @@ -1732,6 +1638,7 @@ R integration with TMVA. %package tmva-sofie Summary: ROOT/TMVA SOFIE (System for Optimized Fast Inference code Emit) +License: BSD-3-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} %description tmva-sofie @@ -1744,6 +1651,7 @@ produces C++ header files that can be included and utilized in a %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} @@ -1753,7 +1661,7 @@ Parsers for ROOT/TMVA SOFIE %package tmva-gui Summary: Toolkit for multivariate data analysis GUI -License: BSD +License: BSD-3-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} @@ -1777,6 +1685,7 @@ Requires: %{name}-net%{?_isa} = %{version}-%{release} %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} @@ -1794,6 +1703,7 @@ Obsoletes: %{name}-tree-player < 6.14.00 %description tree-dataframe This package contains a high level interface to ROOT trees. +%endif %package tree-player Summary: Library to loop over a ROOT tree @@ -1829,6 +1739,17 @@ Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} %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} @@ -1853,34 +1774,34 @@ Summary: Static files for the Jupyter ROOT Notebook BuildArch: noarch Requires: %{name}-core = %{version}-%{release} Requires: js-jsroot >= 6 -%if %{?fedora}%{!?fedora:0} >= 26 -# jupyter-notebook not available in -# Fedora <= 25 or RHEL/EPEL - some functionality missing +%if %{?fedora}%{!?fedora:0} +# jupyter-notebook not available in RHEL/EPEL +# some functionality missing Requires: jupyter-notebook %endif %description notebook Javascript and style files for the Jupyter ROOT Notebook. -%if %{webgui} %package gui-webdisplay -Summary: Web display (ROOT 7) +Summary: Web display for ROOT Requires: %{name}-core%{?_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 7. +This package contains a web display extension for ROOT. %ifarch %{qt5_qtwebengine_arches} %package gui-qt5webdisplay -Summary: Qt5 Web display (ROOT 7) +Summary: Qt5 Web display Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} Requires: %{name}-net-http%{?_isa} = %{version}-%{release} %description gui-qt5webdisplay -This package contains a Qt5 web display extension for ROOT 7. +This package contains a Qt5 web display extension for ROOT. %endif %package gui-webgui6 @@ -1888,16 +1809,25 @@ Summary: Web based GUI for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-gui%{?_isa} = %{version}-%{release} Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} %description gui-webgui6 This package provides a Web based GUI for ROOT. -%endif %if %{root7} +%package geom-webviewer +Summary: Geometry web viewer library for ROOT +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-geom%{?_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 graf-gpadv7 Summary: Canvas and pad library for ROOT (ROOT 7) Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1950,13 +1880,15 @@ This package contains GUI browsable components for ROOT 7. Summary: Browser (ROOT 7) 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}-graf-gpadv7%{?_isa} = %{version}-%{release} -Requires: %{name}-graf3d-eve7%{?_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} %description gui-browserv7 This package contains a file browser for ROOT 7. @@ -2003,10 +1935,52 @@ This package contains an histogram drawing extension for ROOT 7. Summary: Ntuple (ROOT 7) Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-vecops%{?_isa} = %{version}-%{release} %description tree-ntuple This package contains an ntuple extension for ROOT 7. + +%package tree-ntuple-utils +Summary: Ntuple utility library (ROOT 7) +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-tree-ntuple%{?_isa} = %{version}-%{release} + +%description tree-ntuple-utils +This package contains utility functions for ntuples. + +%if %{roofit} +%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-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} + +%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 %endif %prep @@ -2039,20 +2013,6 @@ This package contains an ntuple extension for ROOT 7. %patch24 -p1 %patch25 -p1 %patch26 -p1 -%patch27 -p1 -%patch28 -p1 -%patch29 -p1 -%patch30 -p1 -%patch31 -p1 -%patch32 -p1 -%patch33 -p1 -%patch34 -p1 -%patch35 -p1 -%patch36 -p1 -%patch37 -p1 -%patch38 -p1 -%patch39 -p1 -%patch40 -p1 # Remove bundled sources in order to be sure they are not used # * afterimage @@ -2089,30 +2049,17 @@ rm -rf documentation/doxygen/mathjax.tar.gz # * jsroot rm -rf js/[^f]* js/files/draw.htm js/files/online.htm -# Remove unsupported man page macros -sed -e '/^\.UR/d' -e '/^\.UE/d' -i man/man1/* - # Remove pre-minified script and style files 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 +%if %{?rhel}%{!?rhel:0} == 8 +# Allow older json on EPEL 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 -# Brace initialization list is ambiguous with old compiler -sed 's!.*dataframe_datasetspec!### &!' -i tree/dataframe/test/CMakeLists.txt -%endif - %build -%if %{?rhel}%{!?rhel:0} == 7 -. /opt/rh/devtoolset-8/enable -%endif - # This package triggers a fault in LLVM when LTO is enabled. Until LLVM # is analyzed and fixed, disable LTO %define _lto_cflags %{nil} @@ -2129,12 +2076,15 @@ for s in etc/notebook/JsMVA/css/*.css ; do python3 -m rcssmin < ${s} > ${s%.css}.min.css done -# Avoid overlinking (this used to be the default with the old configure script) +# Avoid overlinking (this is the default on Fedora and EPEL 9) +%if %{?rhel}%{!?rhel:0} == 8 LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" +%endif -%cmake3 \ +%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_INSTALL_ELISPDIR:PATH=%{_emacs_sitelispdir}/%{name} \ @@ -2180,7 +2130,11 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dcuda:BOOL=OFF \ -Dcxxmodules:BOOL=OFF \ -Ddaos:BOOL=OFF \ +%if %{dataframe} -Ddataframe:BOOL=ON \ +%else + -Ddataframe:BOOL=OFF \ +%endif -Ddavix:BOOL=ON \ -Ddcache:BOOL=ON \ -Ddev:BOOL=OFF \ @@ -2191,24 +2145,18 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dfitsio:BOOL=ON \ -Dfortran:BOOL=ON \ -Dgdml:BOOL=ON \ -%if %{gfal2} -Dgfal:BOOL=ON \ -%else - -Dgfal:BOOL=OFF \ -%endif -Dgsl_shared:BOOL=ON \ -Dgviz:BOOL=ON \ -Dhttp:BOOL=ON \ -%if %{tbb} -Dimt:BOOL=ON \ -%else - -Dimt:BOOL=OFF \ -%endif -Djemalloc:BOOL=OFF \ -Dlibcxx:BOOL=OFF \ -Dmathmore:BOOL=ON \ -Dmemory_termination:BOOL=OFF \ -Dminuit2:BOOL=ON \ + -Dminuit2_mpi:BOOL=OFF \ + -Dminuit2_omp:BOOL=OFF \ -Dmlp:BOOL=ON \ -Dmonalisa:BOOL=OFF \ -Dmpi:BOOL=OFF \ @@ -2228,7 +2176,11 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" %endif -Dqt6web:BOOL=OFF \ -Dr:BOOL=ON \ +%if %{roofit} -Droofit:BOOL=ON \ +%else + -Droofit:BOOL=OFF \ +%endif -Droofit_multiprocess:BOOL=OFF \ -Droofit_hs3_ryml:BOOL=OFF \ %if %{root7} @@ -2247,11 +2199,7 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dssl:BOOL=ON \ -Dtcmalloc:BOOL=OFF \ -Dtmva:BOOL=ON \ -%if %{tbb} -Dtmva-cpu:BOOL=ON \ -%else - -Dtmva-cpu:BOOL=OFF \ -%endif -Dtmva-gpu:BOOL=OFF \ -Dtmva-pymva:BOOL=ON \ -Dtmva-rmva:BOOL=ON \ @@ -2261,7 +2209,7 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dtmva-sofie:BOOL=OFF \ %endif -Dunuran:BOOL=ON \ -%if %{?fedora}%{!?fedora:0} +%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 9 -During:BOOL=ON \ %else -During:BOOL=OFF \ @@ -2270,19 +2218,11 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dvdt:BOOL=OFF \ -Dveccore:BOOL=OFF \ -Dvecgeom:BOOL=OFF \ -%if %{webgui} -Dwebgui:BOOL=ON \ -%else - -Dwebgui:BOOL=OFF \ -%endif -Dx11:BOOL=ON \ -Dxml:BOOL=ON \ -Dxrootd:BOOL=ON \ -%if %{xrootd5} -Dxproofd:BOOL=OFF \ -%else - -Dxproofd:BOOL=ON \ -%endif -Dfail-on-missing:BOOL=ON \ -Dtesting:BOOL=ON \ -Dtest_distrdf_pyspark:BOOL=OFF \ @@ -2292,10 +2232,10 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Droottest:BOOL=OFF \ -Drootbench:BOOL=OFF \ -Dasan:BOOL=OFF -%cmake3_build +%cmake_build %install -%cmake3_install +%cmake_install # Do emacs byte compilation emacs -batch -no-site-file -f batch-byte-compile \ @@ -2319,100 +2259,41 @@ install -p -m 644 %{SOURCE7} %{buildroot}%{_pkgdocdir} # Move python cli helper to its own directory mkdir -p %{buildroot}%{_datadir}/%{name}/cli -mv %{buildroot}%{_libdir}/%{name}/cmdLineUtils.py* \ +mv %{buildroot}%{python3_sitearch}/cmdLineUtils.py \ %{buildroot}%{_datadir}/%{name}/cli -rm %{buildroot}%{_libdir}/%{name}/__pycache__/cmdLineUtils.* sed -e '/^\#!/d' -i %{buildroot}%{_datadir}/%{name}/cli/cmdLineUtils.py # Install GDB pretty printers to auto load safe path -# These are installed (in libdir) by "make install" if CMAKE_BUILD_TYPE -# matches Debug or RelWithDebInfo mkdir -p %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name} -install -p -m 644 build/gdbPrinters/libCore.so-gdb.py \ - %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name}/libCore.so.%{version}-gdb.py -install -p -m 644 build/gdbPrinters/libRooFitCore.so-gdb.py \ - %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name}/libRooFitCore.so.%{version}-gdb.py +mv %{buildroot}%{_libdir}/%{name}/*-gdb.py \ + %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name} + +# Let rpm redo the python byte compilation +find %{buildroot}%{python3_sitearch} -depth -type d -name __pycache__ -exec rm -r {} ';' # Do python byte compilation (for non-standard paths) -%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8 -# This is the default for Fedora 30+, set it for Fedora 28-29 -%global _python_bytecompile_extra 0 %py_byte_compile %{__python3} %{buildroot}%{_datadir}/%{name}/cli %py_byte_compile %{__python3} %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name} -%endif - -%if %{buildpy2} - -# Move the python modules to sitearch/sitelib -mkdir -p %{buildroot}%{python2_sitearch} - -cp -pr %{buildroot}%{_libdir}/%{name}/cppyy %{buildroot}%{python2_sitearch} -ln -s ../../root/libcppyy%{python2_version_uscore}.so.%{version} \ - %{buildroot}%{python2_sitearch}/libcppyy%{python2_version_uscore}.so - -cp -pr %{buildroot}%{_libdir}/%{name}/cppyy_backend %{buildroot}%{python2_sitearch} -ln -s ../../root/libcppyy_backend%{python2_version_uscore}.so.%{version} \ - %{buildroot}%{python2_sitearch}/libcppyy_backend%{python2_version_uscore}.so - -cp -pr %{buildroot}%{_libdir}/%{name}/ROOT %{buildroot}%{python2_sitearch} -mv %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python2_version_uscore}.so.%{version} \ - %{buildroot}%{python2_sitearch}/libROOTPythonizations%{python2_version_uscore}.so -rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python2_version_uscore}.so.%{libversion} -rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python2_version_uscore}.so - -cp -pr %{buildroot}%{_libdir}/%{name}/JupyROOT %{buildroot}%{python2_sitearch} -mv %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python2_version_uscore}.so.%{version} \ - %{buildroot}%{python2_sitearch}/libJupyROOT%{python2_version_uscore}.so -rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python2_version_uscore}.so.%{libversion} -rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python2_version_uscore}.so - -mkdir -p %{buildroot}%{python2_sitelib} -cp -pr %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python2_sitelib} - -# Create .egg-info files so that rpm auto-generates provides -echo 'Name: ROOT' > \ - %{buildroot}%{python2_sitearch}/ROOT-%{version}.egg-info -echo 'Version: %{version}' >> \ - %{buildroot}%{python2_sitearch}/ROOT-%{version}.egg-info -echo 'Name: JupyROOT' > \ - %{buildroot}%{python2_sitearch}/JupyROOT-%{version}.egg-info -echo 'Version: %{version}' >> \ - %{buildroot}%{python2_sitearch}/JupyROOT-%{version}.egg-info -echo 'Name: JsMVA' > \ - %{buildroot}%{python2_sitelib}/JsMVA-%{version}.egg-info -echo 'Version: %{version}' >> \ - %{buildroot}%{python2_sitelib}/JsMVA-%{version}.egg-info - -%endif -# Move the python modules to sitearch/sitelib -mkdir -p %{buildroot}%{python3_sitearch} - -mv %{buildroot}%{_libdir}/%{name}/cppyy %{buildroot}%{python3_sitearch} -ln -s ../../root/libcppyy%{python3_version_uscore}.so.%{version} \ - %{buildroot}%{python3_sitearch}/libcppyy%{python3_version_uscore}%{python3_ext_suffix} - -mv %{buildroot}%{_libdir}/%{name}/cppyy_backend %{buildroot}%{python3_sitearch} -ln -s ../../root/libcppyy_backend%{python3_version_uscore}.so.%{version} \ - %{buildroot}%{python3_sitearch}/libcppyy_backend%{python3_version_uscore}.so - -mv %{buildroot}%{_libdir}/%{name}/ROOT %{buildroot}%{python3_sitearch} -mv %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python3_version_uscore}.so.%{version} \ +# Fix python extension suffix +mv %{buildroot}%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}.so.%{version} \ %{buildroot}%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}%{python3_ext_suffix} -rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python3_version_uscore}.so.%{libversion} -rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python3_version_uscore}.so +rm %{buildroot}%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}.so.%{libversion} +rm %{buildroot}%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}.so -mv %{buildroot}%{_libdir}/%{name}/JupyROOT %{buildroot}%{python3_sitearch} -mv %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so.%{version} \ +mv %{buildroot}%{python3_sitearch}/libJupyROOT%{python3_version_uscore}.so.%{version} \ %{buildroot}%{python3_sitearch}/libJupyROOT%{python3_version_uscore}%{python3_ext_suffix} -rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so.%{libversion} -rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so +rm %{buildroot}%{python3_sitearch}/libJupyROOT%{python3_version_uscore}.so.%{libversion} +rm %{buildroot}%{python3_sitearch}/libJupyROOT%{python3_version_uscore}.so +# Move noarch python modules to sitelib +if [ "%{python3_sitelib}" != "%{python3_sitearch}" ] ; then mkdir -p %{buildroot}%{python3_sitelib} -mv %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python3_sitelib} +mv %{buildroot}%{python3_sitearch}/JsMVA %{buildroot}%{python3_sitelib} %if %{distrdf} -mv %{buildroot}%{_libdir}/%{name}/DistRDF %{buildroot}%{python3_sitelib} +mv %{buildroot}%{python3_sitearch}/DistRDF %{buildroot}%{python3_sitelib} %endif +fi # Create .egg-info files so that rpm auto-generates provides echo 'Name: ROOT' > \ @@ -2437,16 +2318,6 @@ echo 'Version: %{version}' >> \ # Put jupyter stuff in the right places mkdir -p %{buildroot}%{_datadir}/jupyter/kernels -%if %{buildpy2} -cp -pr %{buildroot}%{_datadir}/%{name}/notebook/kernels/root \ - %{buildroot}%{_datadir}/jupyter/kernels/python2-jupyroot -sed -e 's/ROOT C++/& (Python 2)/' \ - -e 's!python[0-9]*\.[0-9]*!%{__python2}!' \ - -i %{buildroot}%{_datadir}/jupyter/kernels/python2-jupyroot/kernel.json -sed -e '/^\#!/d' \ - -i %{buildroot}%{python2_sitearch}/JupyROOT/kernel/rootkernel.py -%endif - cp -pr %{buildroot}%{_datadir}/%{name}/notebook/kernels/root \ %{buildroot}%{_datadir}/jupyter/kernels/python%{python3_pkgversion}-jupyroot sed -e 's/ROOT C++/& (Python 3)/' \ @@ -2522,43 +2393,34 @@ pushd %{buildroot}%{_datadir}/%{name}/plugins rm TBrowserImp/P030_RWebBrowserImp.C %endif rm TDataSetManager/P020_TDataSetManagerAliEn.C -%if ! %{gfal2} -rm TFile/P050_TGFALFile.C -%endif rm TFile/P070_TAlienFile.C rm TGLManager/P020_TGWin32GLManager.C rm TGLManager/P030_TGOSXGLManager.C rm TGrid/P010_TAlien.C -%if ! %{webgui} -rm TGuiFactory/P030_TWebGuiFactory.C -%endif -%if %{xrootd5} rm TProofMgr/P010_TXProofMgr.C rm TProofServ/P010_TXProofServ.C rm TSlave/P010_TXSlave.C -%endif rm TSQLServer/P040_TOracleServer.C rm TSystem/P030_TAlienSystem.C rm TVirtualGeoConverter/P010_TGeoVGConverter.C %if ! %{root7} -rm TVirtualGeoPainter/P020_REveGeoPainter.C +rm TVirtualGeoPainter/P020_RGeoPainter.C %endif rm TVirtualGLImp/P020_TGWin32GL.C rm TVirtualMonitoringWriter/P010_TMonaLisaWriter.C rm TVirtualX/P030_TGWin32.C rm TVirtualX/P050_TGQuartz.C rmdir TGrid -%if %{xrootd5} rmdir TProofMgr rmdir TProofServ rmdir TSlave -%endif rmdir TVirtualGeoConverter popd # Replace bundled jsroot with symlinks to system version -for x in img libs scripts style files/draw.htm files/online.htm ; do - ln -s /usr/share/javascript/jsroot/$x %{buildroot}%{_datadir}/%{name}/js/$x +for x in build img modules scripts files/draw.htm files/online.htm ; do + ln -nrs %{buildroot}%{_jsdir}/jsroot/$x \ + %{buildroot}%{_datadir}/%{name}/js/$x done # Create ldconfig configuration @@ -2568,17 +2430,13 @@ echo %{_libdir}/%{name} > \ # Make ROOTConfig-targets.cmake not error on missing files to work better with # subpackages -%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8 -%global pkgmgr dnf -%else -%global pkgmgr yum -%endif -sed -e '/FATAL.*import/i\ message(WARNING "The imported target \\"\${target}\\" references the file\ - \\"\${file}\\"\ -but this file does not exist. If this target is used you need to install the package that provides this file\ - %{pkgmgr} install \${file}\ +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.")' \ - -e '/FATAL.*import/,/)/d' \ + -e '/Possible reasons include/,/)/d' \ -i %{buildroot}%{_datadir}/%{name}/cmake/ROOTConfig-targets.cmake # Rename to avoid name clashes @@ -2591,30 +2449,17 @@ for f in `find %{_vpath_builddir} -name cmake_install.cmake -a '!' -path '*/llvm l=`sed 's!%{_vpath_builddir}/\(.*\)/cmake_install.cmake!includelist-\1!' <<< $f` l=`tr / - <<< $l` tmpdir=`mktemp -d` -%if %{?rhel}%{!?rhel:0} == 7 - DESTDIR=$tmpdir cmake3 -DCMAKE_INSTALL_COMPONENT=headers -P $f > /dev/null -%else DESTDIR=$tmpdir cmake -DCMAKE_INSTALL_COMPONENT=headers -P $f > /dev/null -%endif ( cd $tmpdir ; find . -type f) | sort | sed 's!^\.!!' > $l rm -rf $tmpdir done # ... and merge some of them cat includelist-core-{[^mw],m[^au]}* > includelist-core -cat includelist-geom-geom* > includelist-geom cat includelist-graf2d-x11ttf >> includelist-graf2d-x11 cat includelist-graf3d-rglew >> includelist-graf3d-gl -cat includelist-net-netxng > includelist-netx -%if ! %{xrootd5} -cat includelist-net-netx >> includelist-netx -%endif %check -%if %{?rhel}%{!?rhel:0} == 7 -. /opt/rh/devtoolset-8/enable -%endif - pushd %{_vpath_builddir} pushd test ln -s ../../files files @@ -2704,8 +2549,6 @@ popd # reads input data over network #
http://root.cern/files/tmva101.root
# -# - pyunittests-pyroot-dependency-versions -# - pyunittests-pyroot-numbadeclare # - test-import-numba # - tutorial-pyroot-pyroot004_NumbaDeclare-py # these tests require the numba python module which is not available @@ -2742,8 +2585,6 @@ gtest-tmva-tmva-test-rstandardscaler|\ tutorial-tmva-tmva003_RReader|\ tutorial-tmva-tmva004_RStandardScaler|\ tutorial-tmva-tmva103_Application|\ -pyunittests-pyroot-dependency-versions|\ -pyunittests-pyroot-numbadeclare|\ test-import-numba|\ tutorial-pyroot-pyroot004_NumbaDeclare-py|\ test-webgui-ping" @@ -2752,29 +2593,25 @@ test-webgui-ping" # - test-import-pandas # - tutorial-dataframe-df026_AsNumpyArrays-py # - tutorial-roofit-rf409_NumPyPandasToRooFit-py -# requires the pandas python module which is not available in EPEL 7 -# or EPEL 9 +# Requires the pandas python module not (yet) available in RHEL/EPEL 9 excluded="${excluded}|\ test-import-pandas|\ tutorial-dataframe-df026_AsNumpyArrays-py|\ tutorial-roofit-rf409_NumPyPandasToRooFit-py" %endif -%if %{?rhel}%{!?rhel:0} == 7 -# - pyunittests-pyroot-roofit-roodataset-numpy -# AttributeError: module 'numpy' has no attribute 'isin' -excluded="${excluded}|\ -pyunittests-pyroot-roofit-roodataset-numpy" -%endif - %if %{?fedora}%{!?fedora:0} >= 38 -# Failures with Fedora 38 (GCC 13 related?) +# - pyunittests-dataframe-histograms +# - tutorial-legacy-rootenv +# Failures with Fedora 38 (GCC 13 related?) excluded="${excluded}|\ pyunittests-dataframe-histograms|\ tutorial-legacy-rootenv" %ifarch %{ix86} -# Failures with Fedora 38 i686 (after numpy 1.24 update) +# - pyunittests-pyroot-roofit-roodataset-numpy +# Failures with Fedora 38 i686 (after numpy 1.24 update) +#
https://github.com/root-project/root/issues/12162
excluded="${excluded}|\ pyunittests-pyroot-roofit-roodataset-numpy" %endif @@ -2782,7 +2619,6 @@ pyunittests-pyroot-roofit-roodataset-numpy" %ifarch %{arm} # 32 bit arm specific failures -# # - gtest-tree-tree-test-testBulkApi # - gtest-tree-tree-test-testBulkApiSillyStruct # - gtest-tree-dataframe-test-dataframe-snapshot @@ -2799,76 +2635,34 @@ pyunittests-distrdf-unit-test-headnode" %endif %ifarch %{power64} aarch64 -# This test fails on ppc64le and aarch64 (but not on x86_64) -# The interpreted version works though, only compiled version fails # - test-stresshistofit -excluded="${excluded}|test-stresshistofit\$\$" +# - test-stressroofit +# - test-stressroofit-batchmode-cpu +# - test-stressroofit-interpreted +excluded="${excluded}|\ +test-stresshistofit\$\$|\ +test-stressroofit\$\$|\ +test-stressroofit-batchmode-cpu|\ +test-stressroofit-interpreted" %endif %ifarch %{power64} # PPC64LE specific failures -# # - test-stresshistofit-interpreted # - test-stresshistogram-interpreted # - test-stressmathcore-interpreted # - test-stressroostats-interpreted # # Always timeout (hang?) -# - pyunittests-pyroot-pyz-rdataframe-makenumpy -# - tutorial-dataframe-df032_MakeNumpyDataFrame-py +# - test-stressinterpreter +# - tutorial-unuran-unuranFoamTest excluded="${excluded}|\ test-stresshistofit-interpreted|\ test-stresshistogram-interpreted|\ test-stressmathcore-interpreted|\ test-stressroostats-interpreted|\ -pyunittests-pyroot-pyz-rdataframe-makenumpy|\ -tutorial-dataframe-df032_MakeNumpyDataFrame-py" - -%if %{?rhel}%{!?rhel:0} == 9 -# tmva/tmva/test/branchlessForest.cxx:215: Failure -# Expected equality of these values: -# predictions[1] -# Which is: -1 -# -1.0 + 2.0 -# Which is: 1 -# - gtest-tmva-tmva-test-branchlessForest -# -# Error in <TAxis::TAxis::Set>: bins must be in increasing order -# Error in <TGraphPainter::PaintGrapHist>: X must be in increasing order -# - tutorial-math-kdTreeBinning -# -# Segmentation violation - malloc(): unaligned tcache chunk detected -# - tutorial-unfold-testUnfold7c -# -# TFormula double free in Python -# - tutorial-hist-fillrandom-py -# - tutorial-pyroot-fillrandom-py -# - tutorial-pyroot-fit1-py (uses output of tutorial-pyroot-fillrandom-py) -# - tutorial-pyroot-formula1-py -excluded="${excluded}|\ -gtest-tmva-tmva-test-branchlessForest|\ -tutorial-math-kdTreeBinning|\ -tutorial-unfold-testUnfold7c|\ -tutorial-hist-fillrandom-py|\ -tutorial-pyroot-fillrandom-py|\ -tutorial-pyroot-fit1-py|\ -tutorial-pyroot-formula1-py" -%endif - -%if %{?rhel}%{!?rhel:0} == 7 || %{?rhel}%{!?rhel:0} == 8 -# crash - free(): corrupted unsorted chunks -# - gtest-roofit-RDataFrameHelpers-test-testActionHelpers -# - gtest-tmva-tmva-test-rtensor-utils -# - gtest-tree-dataframe-test-dataframe-* -# - gtest-tree-dataframe-test-datasource-* -# - tutorial-dataframe-df004_cutFlowReport -excluded="${excluded}|\ -gtest-roofit-RDataFrameHelpers-test-testActionHelpers|\ -gtest-tmva-tmva-test-rtensor-utils|\ -gtest-tree-dataframe-test-dataframe|\ -gtest-tree-dataframe-test-datasource|\ -tutorial-dataframe-df004_cutFlowReport" -%endif +test-stressinterpreter|\ +tutorial-unuran-unuranFoamTest" %if %{?rhel}%{!?rhel:0} == 8 # Fails on ppc64le since RHEL 8.5 update @@ -2879,115 +2673,121 @@ tutorial-dataframe-df004_cutFlowReport" # - librt-2.28 # - pyunittests-pyroot-import-load-libs # -# crash - double free or corruption (out) +# - tutorial-fit-combinedFit(-py) +# - tutorial-fit-exampleFit3D +# - tutorial-fit-fit2dHist +# - tutorial-fit-fitCircle +# - tutorial-fit-line3Dfit +# - tutorial-multicore-mt103_fillNtupleFromMultipleThreads # - tutorial-multicore-mt201_parallelHistoFill -# -# segmentation violation # - tutorial-multicore-mt304_fillHistos +# - tutorial-multicore-mtbb001_fillHistos +# - tutorial-multicore-mtbb101_fillNtuples +# - tutorial-multicore-mtbb201_parallelHistoFill excluded="${excluded}|\ pyunittests-pyroot-import-load-libs|\ +tutorial-fit-combinedFit|\ +tutorial-fit-exampleFit3D|\ +tutorial-fit-fit2dHist|\ +tutorial-fit-fitCircle|\ +tutorial-fit-line3Dfit|\ +tutorial-multicore-mt103_fillNtupleFromMultipleThreads|\ tutorial-multicore-mt201_parallelHistoFill|\ -tutorial-multicore-mt304_fillHistos" +tutorial-multicore-mt304_fillHistos|\ +tutorial-multicore-mtbb001_fillHistos|\ +tutorial-multicore-mtbb101_fillNtuples|\ +tutorial-multicore-mtbb201_parallelHistoFill" %endif %endif %ifarch s390x -# s390x specific failures -# # - gtest-roofit-roofitcore-test-testNaNPacker -# - gtest-roofit-roofitcore-test-testRooProdPdf -# - gtest-tree-dataframe-test-datasource-ntuple +# - tutorial-roofit-rf612_recoverFromInvalidParameters +# Uses "Packed NaN" feature, not implemented for big endian. +excluded="${excluded}|\ +gtest-roofit-roofitcore-test-testNaNPacker|\ +tutorial-roofit-rf612_recoverFromInvalidParameters" + # - gtest-tree-ntuple-v7-test-ntuple-basics +# - gtest-tree-ntuple-v7-test-ntuple-endian # - gtest-tree-ntuple-v7-test-ntuple-extended -# - gtest-tree-ntuple-v7-test-ntuple-merger # - gtest-tree-ntuple-v7-test-ntuple-minifile +# - gtest-tree-ntuple-v7-test-ntuple-rdf # - gtest-tree-ntuple-v7-test-ntuple-serialize +# - gtest-tree-ntuple-v7-test-ntuple-types +#
https://github.com/root-project/root/issues/12426
+# # - pyunittests-pyroot-pyz-rtensor # - pyunittests-pyroot-pyz-stl-vector -# - test-stresshistofit(-interpreted) -# - test-stresshistogram(-interpreted) # - tutorial-dataframe-df006_ranges-py +# - tutorial-fit-combinedFit-py # - tutorial-math-exampleFunction-py -# - tutorial-roofit-rf612_recoverFromInvalidParameters +# - tutorial-tmva-TMVA_CNN_Classification-py +# - tutorial-tmva-TMVA_Higgs_Classification-py +# - tutorial-tmva-TMVA_RNN_Classification-py +#
https://github.com/root-project/root/issues/12429
+# +# - tutorial-tree-drawsparse +#
https://github.com/root-project/root/issues/12431
+# +# - test-stresshistofit +# - test-stresshistofit-interpreted +# - test-stresshistogram +# - test-stresshistogram-interpreted +# - test-stressroofit +# - test-stressroofit-batchmode-cpu +# - test-stressroofit-interpreted excluded="${excluded}|\ -gtest-roofit-roofitcore-test-testNaNPacker|\ -gtest-roofit-roofitcore-test-testRooProdPdf|\ -gtest-tree-dataframe-test-datasource-ntuple|\ gtest-tree-ntuple-v7-test-ntuple-basics|\ +gtest-tree-ntuple-v7-test-ntuple-endian|\ gtest-tree-ntuple-v7-test-ntuple-extended|\ -gtest-tree-ntuple-v7-test-ntuple-merger|\ gtest-tree-ntuple-v7-test-ntuple-minifile|\ +gtest-tree-ntuple-v7-test-ntuple-rdf|\ gtest-tree-ntuple-v7-test-ntuple-serialize|\ +gtest-tree-ntuple-v7-test-ntuple-types|\ pyunittests-pyroot-pyz-rtensor|\ pyunittests-pyroot-pyz-stl-vector|\ -test-stresshistofit|\ -test-stresshistogram|\ tutorial-dataframe-df006_ranges-py|\ +tutorial-fit-combinedFit-py|\ tutorial-math-exampleFunction-py|\ -tutorial-roofit-rf612_recoverFromInvalidParameters" +tutorial-tmva-TMVA_CNN_Classification-py|\ +tutorial-tmva-TMVA_Higgs_Classification-py|\ +tutorial-tmva-TMVA_RNN_Classification-py|\ +tutorial-tree-drawsparse|\ +test-stresshistofit\$\$|\ +test-stresshistofit-interpreted|\ +test-stresshistogram\$\$|\ +test-stresshistogram-interpreted|\ +test-stressroofit\$\$|\ +test-stressroofit-batchmode-cpu|\ +test-stressroofit-interpreted" %if %{?rhel}%{!?rhel:0} == 8 # Issues with file sizes on EPEL 8 s390x +# - gtest-tree-readspeed-test-readspeed-general # - gtest-tree-tree-test-testTBranch # - test-stress # - test-stressgraphics(-interpreted) excluded="${excluded}|\ +gtest-tree-readspeed-test-readspeed-general|\ gtest-tree-tree-test-testTBranch|\ test-stress\$\$|\ test-stressgraphics" %endif - -%if %{?fedora}%{!?fedora:0} >= 38 -# Segmentation faults and invalid pointers -# Mainly related to DataFrame -excluded="${excluded}|\ -pyunittests-dataframe|\ -pyunittests-distrdf-unit-backend-test-dist|\ -pyunittests-distrdf-unit-test-headnode|\ -pyunittests-pyroot-pyz-rdataframe-asnumpy|\ -pyunittests-pyroot-pyz-rdataframe-makenumpy|\ -pyunittests-pyroot-rdfdescription|\ -gtest-roofit-RDataFrameHelpers-test-testActionHelpers|\ -gtest-tree-dataframe-test-dataframe|\ -gtest-tree-dataframe-test-datasource|\ -gtest-tree-ntuple-v7-test-ntuple-rdf|\ -tutorial-dataframe-df|\ -tutorial-graphs-timeSeriesFromCSV_TDF|\ -tutorial-multicore-mt304_fillHistos|\ -tutorial-rcanvas|\ -tutorial-roofit-rf408_RDataFrameToRooFit-py|\ -tutorial-roofit-rf508_listsetmanip-py|\ -tutorial-tmva-tmva002_RDataFrameAsTensor|\ -tutorial-v7-concurrentfill.cxx|\ -tutorial-v7-histops.cxx|\ -tutorial-v7-perf.cxx|\ -tutorial-v7-perfcomp.cxx|\ -tutorial-v7-simple.cxx" -%endif %endif # Filter out parts of tests that require remote network access -GTEST_FILTER=-RCsvDS.Remote:RRawFile.Remote:RSqliteDS.Davix \ +# RNTuple.TClassEBO seg fault +#
https://github.com/root-project/root/issues/12428
+GTEST_FILTER=-RCsvDS.Remote:RRawFile.Remote:RSqliteDS.Davix:TFile.ReadWithoutGlobalRegistrationWeb:TFile.ReadWithoutGlobalRegistrationNet:RNTuple.TClassEBO \ +%if ! ( %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} == 8 ) +ROOTTEST_IGNORE_PANDAS_PY3=1 \ +%endif +ROOTTEST_IGNORE_NUMBA_PY3=1 \ +ROOTTEST_IGNORE_JUPYTER_PY3=1 \ make test ARGS="%{?_smp_mflags} --output-on-failure -E \"${excluded}\"" -popd - -%if %{?rhel}%{!?rhel:0} == 7 -%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 || : -%postun -if [ $1 -eq 0 ] ; then - 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 || : -%endif +popd %pretrans net-http -p <lua> path = "%{_datadir}/%{name}/js" @@ -2998,22 +2798,13 @@ end %post net-http # Replace bundled jsroot with symlinks to system version -for x in img libs scripts style files/draw.htm files/online.htm ; do - ln -fs /usr/share/javascript/jsroot/$x %{_datadir}/%{name}/js/$x +for x in build img modules scripts files/draw.htm files/online.htm ; do + ln -fnrs %{_jsdir}/jsroot/$x %{_datadir}/%{name}/js/$x done %{?ldconfig} %ldconfig_postun net-http -%if %{buildpy2} -%pre -n python2-%{name} -if [ -r /var/lib/alternatives/libPyROOT.so ] ; then - for alt in `grep python2.*/.*.so /var/lib/alternatives/libPyROOT.so` ; do - %{_sbindir}/update-alternatives --remove libPyROOT.so $alt - done -fi -%endif - %pre -n python%{python3_pkgversion}-%{name} if [ -r /var/lib/alternatives/libPyROOT.so ] ; then for alt in `grep python3.*/.*.so /var/lib/alternatives/libPyROOT.so` ; do @@ -3028,7 +2819,7 @@ if [ -e /etc/jupyter/jupyter_notebook_config.py ] ; then fi cat << EOF >> /etc/jupyter/jupyter_notebook_config.py # Extra static path for JupyROOT - start - do not remove this line -c.NotebookApp.extra_static_paths.append('%{_datadir}/javascript/jsroot') +c.NotebookApp.extra_static_paths.append('%{_jsdir}/jsroot') c.NotebookApp.extra_static_paths.append('%{_datadir}/%{name}/notebook') # Extra static path for JupyROOT - end - do not remove this line EOF @@ -3037,7 +2828,7 @@ if [ -e /etc/jupyter/jupyter_server_config.py ] ; then fi cat << EOF >> /etc/jupyter/jupyter_server_config.py # Extra static path for JupyROOT - start - do not remove this line -c.ServerApp.extra_static_paths.append('%{_datadir}/javascript/jsroot') +c.ServerApp.extra_static_paths.append('%{_jsdir}/jsroot') c.ServerApp.extra_static_paths.append('%{_datadir}/%{name}/notebook') # Extra static path for JupyROOT - end - do not remove this line EOF @@ -3066,14 +2857,13 @@ fi %ldconfig_scriptlets multiproc %ldconfig_scriptlets cling %ldconfig_scriptlets tpython -%if %{buildpy2} -%ldconfig_scriptlets -n python2-%{name} -%endif %ldconfig_scriptlets -n python%{python3_pkgversion}-%{name} %ldconfig_scriptlets r %ldconfig_scriptlets r-tools %ldconfig_scriptlets genetic %ldconfig_scriptlets geom +%ldconfig_scriptlets geom-builder +%ldconfig_scriptlets geom-painter %ldconfig_scriptlets gdml %ldconfig_scriptlets graf %ldconfig_scriptlets graf-asimage @@ -3099,13 +2889,10 @@ fi %ldconfig_scriptlets hist-painter %ldconfig_scriptlets spectrum %ldconfig_scriptlets spectrum-painter -%ldconfig_scriptlets hist-factory %ldconfig_scriptlets html %ldconfig_scriptlets io %ldconfig_scriptlets io-dcache -%if %{gfal2} %ldconfig_scriptlets io-gfal -%endif %ldconfig_scriptlets io-sql %ldconfig_scriptlets io-xml %ldconfig_scriptlets io-xmlparser @@ -3137,17 +2924,20 @@ fi %ldconfig_scriptlets proof-bench %ldconfig_scriptlets proof-player %ldconfig_scriptlets proof-sessionviewer -%if ! %{xrootd5} -%ldconfig_scriptlets xproof -%endif +%if %{roofit} %ldconfig_scriptlets roofit %ldconfig_scriptlets roofit-common %ldconfig_scriptlets roofit-core %ldconfig_scriptlets roofit-more %ldconfig_scriptlets roofit-batchcompute +%if %{dataframe} %ldconfig_scriptlets roofit-dataframe-helpers +%endif +%ldconfig_scriptlets roofit-jsoninterface %ldconfig_scriptlets roofit-hs3 %ldconfig_scriptlets roostats +%ldconfig_scriptlets hist-factory +%endif %ldconfig_scriptlets sql-mysql %ldconfig_scriptlets sql-odbc %ldconfig_scriptlets sql-sqlite @@ -3161,18 +2951,20 @@ fi %endif %ldconfig_scriptlets tmva-gui %ldconfig_scriptlets tree +%if %{dataframe} %ldconfig_scriptlets tree-dataframe +%endif %ldconfig_scriptlets tree-player %ldconfig_scriptlets tree-viewer +%ldconfig_scriptlets tree-webviewer %ldconfig_scriptlets unfold -%if %{webgui} %ldconfig_scriptlets gui-webdisplay %ifarch %{qt5_qtwebengine_arches} %ldconfig_scriptlets gui-qt5webdisplay %endif %ldconfig_scriptlets gui-webgui6 -%endif %if %{root7} +%ldconfig_scriptlets geom-webviewer %ldconfig_scriptlets graf-gpadv7 %ldconfig_scriptlets graf-primitives %ldconfig_scriptlets graf3d-eve7 @@ -3183,6 +2975,10 @@ fi %ldconfig_scriptlets histv7 %ldconfig_scriptlets hist-draw %ldconfig_scriptlets tree-ntuple +%ldconfig_scriptlets tree-ntuple-utils +%if %{roofit} +%ldconfig_scriptlets xroofit +%endif %endif %files @@ -3190,8 +2986,10 @@ fi %{_bindir}/root %{_bindir}/root.exe %{_bindir}/rootn.exe +%{_bindir}/rootreadspeed %{_bindir}/roots %{_bindir}/roots.exe +%{_bindir}/rootssh %{_mandir}/man1/hadd.1* %{_mandir}/man1/root.1* %{_mandir}/man1/root.exe.1* @@ -3228,10 +3026,8 @@ fi %{_libdir}/%{name}/lib*Dict.* %dir %{_datadir}/gdb/auto-load%{_libdir}/%{name} %{_datadir}/gdb/auto-load%{_libdir}/%{name}/libCore.* -%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8 %dir %{_datadir}/gdb/auto-load%{_libdir}/%{name}/__pycache__ %{_datadir}/gdb/auto-load%{_libdir}/%{name}/__pycache__/libCore.* -%endif %dir %{_datadir}/%{name} %{_datadir}/%{name}/allDict.cxx.pch %{_datadir}/%{name}/class.rules @@ -3288,41 +3084,21 @@ fi %doc interpreter/llvm/src/llvm-README.txt %license interpreter/llvm/src/llvm-LICENSE.TXT +%files testsupport +%{_includedir}/%{name}/ROOT/TestSupport.hxx +%{_libdir}/%{name}/libTestSupport.a +%doc core/testsupport/README.md + %files tpython -f includelist-bindings-tpython %{_libdir}/%{name}/libROOTTPython.* %{_libdir}/%{name}/libROOTTPython_rdict.pcm -%if %{buildpy2} -%files -n python2-%{name} -f includelist-bindings-pyroot -%{python2_sitearch}/cppyy -%{python2_sitearch}/cppyy_backend -%{python2_sitearch}/ROOT -%{python2_sitearch}/ROOT-*.egg-info -%{python2_sitearch}/libcppyy%{python2_version_uscore}.so -%{python2_sitearch}/libcppyy_backend%{python2_version_uscore}.so -%{python2_sitearch}/libROOTPythonizations%{python2_version_uscore}.so -%{_libdir}/%{name}/libcppyy%{python2_version_uscore}.* -%{_libdir}/%{name}/libcppyy_backend%{python2_version_uscore}.* -%dir %{_includedir}/%{name}/CPyCppyy - -%files -n python2-jupyroot -%{python2_sitearch}/JupyROOT -%{python2_sitearch}/JupyROOT-*.egg-info -%{python2_sitearch}/libJupyROOT%{python2_version_uscore}.so -%{_datadir}/jupyter/kernels/python2-jupyroot -%doc bindings/jupyroot/README.md - -%files -n python2-jsmva -%{python2_sitelib}/JsMVA -%{python2_sitelib}/JsMVA-*.egg-info -%endif - %files -n python%{python3_pkgversion}-%{name} -f includelist-bindings-pyroot %{python3_sitearch}/cppyy %{python3_sitearch}/cppyy_backend %{python3_sitearch}/ROOT %{python3_sitearch}/ROOT-*.egg-info -%{python3_sitearch}/libcppyy%{python3_version_uscore}%{python3_ext_suffix} +%{python3_sitearch}/libcppyy%{python3_version_uscore}.so %{python3_sitearch}/libcppyy_backend%{python3_version_uscore}.so %{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}%{python3_ext_suffix} %{_libdir}/%{name}/libcppyy%{python3_version_uscore}.* @@ -3361,16 +3137,20 @@ fi %{_libdir}/%{name}/libGenetic_rdict.pcm %{_datadir}/%{name}/plugins/ROOT@@Math@@Minimizer/P080_GeneticMinimizer.C -%files geom -f includelist-geom +%files geom -f includelist-geom-geom %{_libdir}/%{name}/libGeom.* %{_libdir}/%{name}/libGeom_rdict.pcm +%{_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/TGeoManagerEditor/P010_TGeoManagerEditor.C %{_datadir}/%{name}/plugins/TVirtualGeoPainter/P010_TGeoPainter.C -%{_datadir}/%{name}/RadioNuclides.txt %files gdml -f includelist-geom-gdml %{_libdir}/%{name}/libGdml.* @@ -3512,17 +3292,6 @@ fi %{_libdir}/%{name}/libSpectrumPainter.* %{_libdir}/%{name}/libSpectrumPainter_rdict.pcm -%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 -%doc roofit/histfactory/doc/README - %files html -f includelist-html %{_libdir}/%{name}/libHtml.* %{_libdir}/%{name}/libHtml_rdict.pcm @@ -3539,12 +3308,10 @@ fi %{_datadir}/%{name}/plugins/TFile/P040_TDCacheFile.C %{_datadir}/%{name}/plugins/TSystem/P020_TDCacheSystem.C -%if %{gfal2} %files io-gfal -f includelist-io-gfal %{_libdir}/%{name}/libGFAL.* %{_libdir}/%{name}/libGFAL_rdict.pcm %{_datadir}/%{name}/plugins/TFile/P050_TGFALFile.C -%endif %files io-sql -f includelist-io-sql %{_libdir}/%{name}/libSQLIO.* @@ -3701,12 +3468,13 @@ fi %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/libs +%ghost %{_datadir}/%{name}/js/modules %ghost %{_datadir}/%{name}/js/scripts -%ghost %{_datadir}/%{name}/js/style %ghost %{_datadir}/%{name}/js/files/draw.htm %ghost %{_datadir}/%{name}/js/files/online.htm %doc net/http/README.txt net/http/civetweb/*.md @@ -3715,11 +3483,7 @@ fi %{_libdir}/%{name}/libRHTTPSniff.* %{_libdir}/%{name}/libRHTTPSniff_rdict.pcm -%files netx -f includelist-netx -%if ! %{xrootd5} -%{_libdir}/%{name}/libNetx.* -%{_libdir}/%{name}/libNetx_rdict.pcm -%endif +%files netx -f includelist-net-netxng %{_libdir}/%{name}/libNetxNG.* %{_libdir}/%{name}/libNetxNG_rdict.pcm %{_datadir}/%{name}/plugins/TFile/P100_TXNetFile.C @@ -3769,19 +3533,7 @@ fi %{_datadir}/%{name}/plugins/TProofProgressLog/P010_TProofProgressLog.C %{_datadir}/%{name}/plugins/TSessionViewer/P010_TSessionViewer.C -%if ! %{xrootd5} -%files xproof -f includelist-proof-proofx -%{_bindir}/proofexecv -%{_bindir}/xproofd -%{_mandir}/man1/xproofd.1* -%{_libdir}/%{name}/libProofx.* -%{_libdir}/%{name}/libProofx_rdict.pcm -%{_libdir}/%{name}/libXrdProofd.* -%{_datadir}/%{name}/plugins/TProofMgr/P010_TXProofMgr.C -%{_datadir}/%{name}/plugins/TProofServ/P010_TXProofServ.C -%{_datadir}/%{name}/plugins/TSlave/P010_TXSlave.C -%endif - +%if %{roofit} %files roofit -f includelist-roofit-roofit %{_libdir}/%{name}/libRooFit.* %{_libdir}/%{name}/libRooFit_rdict.pcm @@ -3793,9 +3545,7 @@ fi %{_libdir}/%{name}/libRooFitCore.* %{_libdir}/%{name}/libRooFitCore_rdict.pcm %{_datadir}/gdb/auto-load%{_libdir}/%{name}/libRooFitCore.* -%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8 %{_datadir}/gdb/auto-load%{_libdir}/%{name}/__pycache__/libRooFitCore.* -%endif %files roofit-more -f includelist-roofit-roofitmore %{_libdir}/%{name}/libRooFitMore.* @@ -3806,9 +3556,11 @@ fi %{_libdir}/%{name}/libRooBatchCompute_* %doc roofit/batchcompute/README.md +%if %{dataframe} %files roofit-dataframe-helpers -f includelist-roofit-RDataFrameHelpers %{_libdir}/%{name}/libRooFitRDataFrameHelpers.* %{_libdir}/%{name}/libRooFitRDataFrameHelpers_rdict.pcm +%endif %files roofit-hs3 -f includelist-roofit-hs3 %{_libdir}/%{name}/libRooFitHS3.* @@ -3817,11 +3569,27 @@ fi %{_datadir}/%{name}/RooFitHS3_wsfactoryexpressions.json %doc roofit/hs3/README.md +%files roofit-jsoninterface -f includelist-roofit-jsoninterface +%{_libdir}/%{name}/libRooFitJSONInterface.* +%{_libdir}/%{name}/libRooFitJSONInterface_rdict.pcm + %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 +%doc roofit/histfactory/doc/README +%endif + %files sql-mysql -f includelist-sql-mysql %{_libdir}/%{name}/libRMySQL.* %{_libdir}/%{name}/libRMySQL_rdict.pcm @@ -3848,9 +3616,7 @@ fi %dir %{_includedir}/%{name}/TMVA %dir %{_includedir}/%{name}/TMVA/DNN %dir %{_includedir}/%{name}/TMVA/DNN/Architectures -%if %{tbb} %dir %{_includedir}/%{name}/TMVA/DNN/Architectures/Cpu -%endif %dir %{_includedir}/%{name}/TMVA/DNN/Architectures/Reference %license tmva/doc/LICENSE @@ -3882,9 +3648,11 @@ fi %{_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 +%endif %files tree-player -f includelist-tree-treeplayer %{_libdir}/%{name}/libTreePlayer.* @@ -3897,6 +3665,11 @@ fi %{_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 unfold -f includelist-hist-unfold %{_libdir}/%{name}/libUnfold.* %{_libdir}/%{name}/libUnfold_rdict.pcm @@ -3919,7 +3692,6 @@ fi %{_datadir}/%{name}/notebook %doc %{_pkgdocdir}/JupyROOT-on-EPEL -%if %{webgui} %files gui-webdisplay -f includelist-gui-webdisplay %{_libdir}/%{name}/libROOTWebDisplay.* %{_libdir}/%{name}/libROOTWebDisplay_rdict.pcm @@ -3933,10 +3705,15 @@ fi %files gui-webgui6 -f includelist-gui-webgui6 %{_libdir}/%{name}/libWebGui6.* %{_libdir}/%{name}/libWebGui6_rdict.pcm -%{_datadir}/%{name}/plugins/TGuiFactory/P030_TWebGuiFactory.C -%endif +%{_datadir}/%{name}/plugins/TCanvasImp/P010_TWebCanvas.C +%{_datadir}/%{name}/plugins/TControlBarImp/P010_TWebControlBar.C %if %{root7} +%files geom-webviewer -f includelist-geom-webviewer +%{_libdir}/%{name}/libROOTGeomViewer.* +%{_libdir}/%{name}/libROOTGeomViewer_rdict.pcm +%{_datadir}/%{name}/plugins/TVirtualGeoPainter/P020_RGeoPainter.C + %files graf-gpadv7 -f includelist-graf2d-gpadv7 %{_libdir}/%{name}/libROOTGpadv7.* %{_libdir}/%{name}/libROOTGpadv7_rdict.pcm @@ -3948,7 +3725,6 @@ fi %files graf3d-eve7 -f includelist-graf3d-eve7 %{_libdir}/%{name}/libROOTEve.* %{_libdir}/%{name}/libROOTEve_rdict.pcm -%{_datadir}/%{name}/plugins/TVirtualGeoPainter/P020_REveGeoPainter.C %files gui-browsable -f includelist-gui-browsable %{_libdir}/%{name}/libROOTBrowsable.* @@ -3969,6 +3745,7 @@ fi %{_libdir}/%{name}/libROOTBrowserGeomWidget.* %{_libdir}/%{name}/libROOTBrowserRCanvasWidget.* %{_libdir}/%{name}/libROOTBrowserTCanvasWidget.* +%{_libdir}/%{name}/libROOTBrowserTreeWidget.* %{_libdir}/%{name}/libROOTBrowserWidgets.* %{_datadir}/%{name}/plugins/TBrowserImp/P030_RWebBrowserImp.C @@ -3990,9 +3767,34 @@ fi %files tree-ntuple -f includelist-tree-ntuple %{_libdir}/%{name}/libROOTNTuple.* %{_libdir}/%{name}/libROOTNTuple_rdict.pcm + +%files tree-ntuple-utils -f includelist-tree-ntupleutil +%{_libdir}/%{name}/libROOTNTupleUtil.* +%{_libdir}/%{name}/libROOTNTupleUtil_rdict.pcm + +%if %{roofit} +%files xroofit -f includelist-roofit-xroofit +%{_libdir}/%{name}/libRooFitXRooFit.* +%{_libdir}/%{name}/libRooFitXRooFit_rdict.pcm +%endif %endif %changelog +* Sat Mar 18 2023 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 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 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.10-5 - Adapt to numpy 1.24 diff --git a/sources b/sources index ef0a91f..e37c144 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (root-6.26.10.tar.xz) = 896727ce6da68871a52894a0a3c1b749fece9f08c8cefe62f5beac505710d579c41b84832a727a2ba39dab09e4456773c05b5b23a0fd859ace8062470653bbdb +SHA512 (root-6.28.00.tar.xz) = 57e5e111e41d3942b63a9e038198e6cc91457d7724cc9dcf9673679b12b13acb6980e7786828a8527a292c018bd13af51854e83f99301f6bc5e4455cdc23c30e SHA512 (root-testfiles.tar.xz) = 945aef1a0cf5af672d4ab84b0ac00b76118e93008ff72447658ee82d9e955a1540af3ff7126e701418872f1d91b92ee96d4985840a519036c42732023a13f00f commit e41288dd187d613cfcbd4760a6bb92e33b0f1797 Author: Miro Hrončok <miro(a)hroncok.cz> Date: Mon Jan 30 22:16:05 2023 +0100 Rebuilt to change Python shebangs to /usr/bin/python3.6 on EPEL 8 See
https://lists.fedoraproject.org/archives/list/epel-devel@lists.fedoraprojec…
diff --git a/root.spec b/root.spec index bead5ca..0cb36c8 100644 --- a/root.spec +++ b/root.spec @@ -65,7 +65,7 @@ Name: root Version: 6.26.10 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework License: LGPLv2+ @@ -3985,6 +3985,9 @@ fi %endif %changelog +* Mon Jan 30 2023 Miro Hrončok <mhroncok(a)redhat.com> - 6.26.10-2 +- Rebuilt to change Python shebangs to /usr/bin/python3.6 on EPEL 8 + * Wed Nov 16 2022 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.10-1 - Update to 6.26.10 - Drop patches root-Fixes-for-garbage-collection-in-Python-3.11.patch commit 1801745923d911ad2b2b0d529a86e2bdd8836fb3 Author: Mattias Ellert <mattias.ellert(a)physics.uu.se> Date: Mon Jan 30 19:16:25 2023 +0100 Adapt to numpy 1.24 diff --git a/root-avoid-deprecated-numpy.object.patch b/root-avoid-deprecated-numpy.object.patch new file mode 100644 index 0000000..9330bac --- /dev/null +++ b/root-avoid-deprecated-numpy.object.patch @@ -0,0 +1,22 @@ +From 1e7dc9fcd60133375c3b725d8317fab339c2bf38 Mon Sep 17 00:00:00 2001 +From: Vincenzo Eduardo Padulano <v.e.padulano(a)gmail.com> +Date: Mon, 30 Jan 2023 10:31:29 +0100 +Subject: [PATCH] [DF][PyROOT] Avoid deprecated numpy.object + +--- + .../pythonizations/python/ROOT/_pythonization/_rdataframe.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py b/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py +index 59cb0cd260dd..01cb08b0365f 100644 +--- a/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py ++++ b/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py +@@ -287,7 +287,7 @@ def GetValue(self): + tmp = numpy.asarray(cpp_reference) # This adopts the memory of the C++ object. + self._py_arrays[column] = ndarray(tmp, self._result_ptrs[column]) + else: +- tmp = numpy.empty(len(cpp_reference), dtype=numpy.object) ++ tmp = numpy.empty(len(cpp_reference), dtype=object) + for i, x in enumerate(cpp_reference): + tmp[i] = x # This creates only the wrapping of the objects and does not copy. + self._py_arrays[column] = ndarray(tmp, self._result_ptrs[column]) diff --git a/root.spec b/root.spec index 6df3ae4..7b8e3be 100644 --- a/root.spec +++ b/root.spec @@ -61,7 +61,7 @@ Name: root Version: 6.26.10 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 4%{?dist} +Release: 5%{?dist} Summary: Numerical data analysis framework License: LGPLv2+ @@ -184,6 +184,10 @@ Patch37: %{name}-avoid-race-condition-tutorial-roofit-rf512.patch Patch38: %{name}-add-missing-include-cstdint.patch # Backport from upstream Patch39: %{name}-fix-compilation-with-gcc13.patch +# numpy.object obsolete since numpy 1.20 and removed since 1.24 +#
https://github.com/root-project/root/issues/12148
+#
https://github.com/root-project/root/pull/12159
+Patch40: %{name}-avoid-deprecated-numpy.object.patch %if %{?rhel}%{!?rhel:0} == 7 BuildRequires: devtoolset-8-toolchain @@ -291,12 +295,8 @@ 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: uglify-js3 BuildRequires: perl-generators BuildRequires: gtest-devel BuildRequires: gmock-devel @@ -2052,6 +2052,7 @@ This package contains an ntuple extension for ROOT 7. %patch37 -p1 %patch38 -p1 %patch39 -p1 +%patch40 -p1 # Remove bundled sources in order to be sure they are not used # * afterimage @@ -2122,18 +2123,10 @@ 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 + uglifyjs-3 ${s} -c -m -o ${s%.js}.min.js 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) @@ -2779,6 +2772,12 @@ pyunittests-pyroot-roofit-roodataset-numpy" excluded="${excluded}|\ pyunittests-dataframe-histograms|\ tutorial-legacy-rootenv" + +%ifarch %{ix86} +# Failures with Fedora 38 i686 (after numpy 1.24 update) +excluded="${excluded}|\ +pyunittests-pyroot-roofit-roodataset-numpy" +%endif %endif %ifarch %{arm} @@ -3994,6 +3993,9 @@ fi %endif %changelog +* Mon Jan 30 2023 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.10-5 +- Adapt to numpy 1.24 + * Fri Jan 20 2023 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.10-4 - Add missing #include <cstdint> commit 635da91690ffdb72e0fb1b401d970c663b0eedfb Author: Mattias Ellert <mattias.ellert(a)physics.uu.se> Date: Sat Jan 21 08:32:07 2023 +0100 Add missing #include <cstdint> diff --git a/root-add-missing-include-cstdint.patch b/root-add-missing-include-cstdint.patch new file mode 100644 index 0000000..f86f0ee --- /dev/null +++ b/root-add-missing-include-cstdint.patch @@ -0,0 +1,38 @@ +From cf6a925dfda2411b979da368e4cea769dbe6238a Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Fri, 20 Jan 2023 06:34:11 +0100 +Subject: [PATCH] Add missing #include <cstdint> + +Fixes compilation error with gcc 13 +--- + tree/ntuple/v7/inc/ROOT/RDaos.hxx | 1 + + tree/ntuple/v7/test/CustomStruct.hxx | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/tree/ntuple/v7/inc/ROOT/RDaos.hxx b/tree/ntuple/v7/inc/ROOT/RDaos.hxx +index 69ee9ba99d..6367dfa93f 100644 +--- a/tree/ntuple/v7/inc/ROOT/RDaos.hxx ++++ b/tree/ntuple/v7/inc/ROOT/RDaos.hxx +@@ -22,6 +22,7 @@ + // Also, this header file is known to provide macros that conflict with std::min()/std::max(). + extern "C" void d_rank_list_free(d_rank_list_t *rank_list); + ++#include <cstdint> + #include <functional> + #include <memory> + #include <string> +diff --git a/tree/ntuple/v7/test/CustomStruct.hxx b/tree/ntuple/v7/test/CustomStruct.hxx +index a975b5ce5d..be08eba924 100644 +--- a/tree/ntuple/v7/test/CustomStruct.hxx ++++ b/tree/ntuple/v7/test/CustomStruct.hxx +@@ -1,6 +1,7 @@ + #ifndef ROOT7_RNTuple_Test_CustomStruct + #define ROOT7_RNTuple_Test_CustomStruct + ++#include <cstdint> + #include <string> + #include <vector> + +-- +2.39.0 + diff --git a/root-fix-compilation-with-gcc13.patch b/root-fix-compilation-with-gcc13.patch new file mode 100644 index 0000000..bf411a8 --- /dev/null +++ b/root-fix-compilation-with-gcc13.patch @@ -0,0 +1,25 @@ +From 37ac6654194f90db625e760dcb2d48fd7938ba6d Mon Sep 17 00:00:00 2001 +From: scott snyder <sss@karma> +Date: Tue, 29 Nov 2022 22:05:39 -0500 +Subject: [PATCH] Fix compilation with gcc13. + +Missing #include <cstdint>. +--- + math/mathcore/inc/Math/Random.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/math/mathcore/inc/Math/Random.h b/math/mathcore/inc/Math/Random.h +index 87eaaee5af..23bfabc4a1 100644 +--- a/math/mathcore/inc/Math/Random.h ++++ b/math/mathcore/inc/Math/Random.h +@@ -25,6 +25,7 @@ + + #include <string> + #include <vector> ++#include <cstdint> + + + namespace ROOT { +-- +2.39.0 + diff --git a/root-test-timeout.patch b/root-test-timeout.patch index 1943318..a07aa39 100644 --- a/root-test-timeout.patch +++ b/root-test-timeout.patch @@ -79,7 +79,7 @@ index dbe664f8a0..6284e3c4c5 100644 ROOT_STANDARD_LIBRARY_PACKAGE(SillyStruct NO_INSTALL_HEADERS HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/SillyStruct.h SOURCES SillyStruct.cxx LINKDEF SillyStructLinkDef.h DEPENDENCIES RIO) ROOT_ADD_GTEST(testBulkApi BulkApi.cxx LIBRARIES RIO Tree TreePlayer) -ROOT_ADD_GTEST(testBulkApiMultiple BulkApiMultiple.cxx LIBRARIES RIO Tree TreePlayer) -+ROOT_ADD_GTEST(testBulkApiMultiple BulkApiMultiple.cxx LIBRARIES RIO Tree TreePlayer TIMEOUT 2400) ++ROOT_ADD_GTEST(testBulkApiMultiple BulkApiMultiple.cxx LIBRARIES RIO Tree TreePlayer TIMEOUT 3000) ROOT_ADD_GTEST(testBulkApiVarLength BulkApiVarLength.cxx LIBRARIES RIO Tree TreePlayer) ROOT_ADD_GTEST(testBulkApiSillyStruct BulkApiSillyStruct.cxx LIBRARIES RIO Tree TreePlayer SillyStruct) ROOT_ADD_GTEST(testTBasket TBasket.cxx LIBRARIES RIO Tree) diff --git a/root.spec b/root.spec index 11e148a..6df3ae4 100644 --- a/root.spec +++ b/root.spec @@ -25,11 +25,7 @@ %global root7 0 %endif -%if %{?fedora}%{!?fedora:0} >= 33 || %{?rhel}%{!?rhel:0} >= 7 %global xrootd5 1 -%else -%global xrootd5 0 -%endif %global webgui 1 @@ -65,7 +61,7 @@ Name: root Version: 6.26.10 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 3%{?dist} +Release: 4%{?dist} Summary: Numerical data analysis framework License: LGPLv2+ @@ -183,6 +179,11 @@ Patch36: %{name}-PyROOT-Prevent-cast-error-when-calling-PyTuple_SET_I.patch # Avoid race condition between C++ an Python version of test #
https://github.com/root-project/root/pull/11643
Patch37: %{name}-avoid-race-condition-tutorial-roofit-rf512.patch +# Add missing #include <cstdint> +#
https://github.com/root-project/root/pull/12065
+Patch38: %{name}-add-missing-include-cstdint.patch +# Backport from upstream +Patch39: %{name}-fix-compilation-with-gcc13.patch %if %{?rhel}%{!?rhel:0} == 7 BuildRequires: devtoolset-8-toolchain @@ -519,7 +520,7 @@ to call Python from ROOT. %if %{buildpy2} %package -n python2-%{name} Summary: Python extension for ROOT -%{?python_provide:%python_provide python2-%{name}} +%py_provides python2-%{name} Provides: %{name}-python = %{version}-%{release} Obsoletes: %{name}-python < 6.08.00 Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -532,7 +533,7 @@ possible to use ROOT classes in Python. %package -n python2-jupyroot Summary: ROOT Jupyter kernel -%{?python_provide:%python_provide python2-jupyroot} +%py_provides python2-jupyroot Requires: python2-%{name}%{?_isa} = %{version}-%{release} Requires: python2-jsmva = %{version}-%{release} Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -554,7 +555,7 @@ The Jupyter kernel for the ROOT notebook. %package -n python2-jsmva Summary: TMVA interface used by JupyROOT BuildArch: noarch -%{?python_provide:%python_provide python2-jsmva} +%py_provides python2-jsmva Requires: %{name}-tmva = %{version}-%{release} %description -n python2-jsmva @@ -563,7 +564,7 @@ TMVA interface used by JupyROOT. %package -n python%{python3_pkgversion}-%{name} Summary: Python extension for ROOT -%{?python_provide:%python_provide python%{python3_pkgversion}-%{name}} +%py_provides python%{python3_pkgversion}-%{name} Provides: %{name}-python%{python3_pkgversion} = %{version}-%{release} Obsoletes: %{name}-python%{python3_pkgversion} < 6.08.00 Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -578,7 +579,7 @@ possible to use ROOT classes in Python. %package -n python%{python3_pkgversion}-jupyroot Summary: ROOT Jupyter kernel -%{?python_provide:%python_provide python%{python3_pkgversion}-jupyroot} +%py_provides python%{python3_pkgversion}-jupyroot Requires: python%{python3_pkgversion}-%{name}%{?_isa} = %{version}-%{release} Requires: python%{python3_pkgversion}-jsmva = %{version}-%{release} Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -599,7 +600,7 @@ The Jupyter kernel for the ROOT notebook. %package -n python%{python3_pkgversion}-jsmva Summary: TMVA interface used by JupyROOT BuildArch: noarch -%{?python_provide:%python_provide python%{python3_pkgversion}-jsmva} +%py_provides python%{python3_pkgversion}-jsmva Requires: %{name}-tmva = %{version}-%{release} %description -n python%{python3_pkgversion}-jsmva @@ -609,7 +610,7 @@ TMVA interface used by JupyROOT. %package -n python%{python3_pkgversion}-distrdf Summary: Distributed RDataFrame BuildArch: noarch -%{?python_provide:%python_provide python%{python3_pkgversion}-distrdf} +%py_provides python%{python3_pkgversion}-distrdf Requires: python%{python3_pkgversion}-%{name} = %{version}-%{release} Requires: %{name}-tree-dataframe = %{version}-%{release} @@ -2049,6 +2050,8 @@ This package contains an ntuple extension for ROOT 7. %patch35 -p1 %patch36 -p1 %patch37 -p1 +%patch38 -p1 +%patch39 -p1 # Remove bundled sources in order to be sure they are not used # * afterimage @@ -2771,17 +2774,11 @@ excluded="${excluded}|\ pyunittests-pyroot-roofit-roodataset-numpy" %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-* +%if %{?fedora}%{!?fedora:0} >= 38 +# Failures with Fedora 38 (GCC 13 related?) excluded="${excluded}|\ -gtest-roofit-RDataFrameHelpers-test-testActionHelpers|\ -gtest-tree-dataframe-test-dataframe|\ -gtest-tree-dataframe-test-datasource" -%endif +pyunittests-dataframe-histograms|\ +tutorial-legacy-rootenv" %endif %ifarch %{arm} @@ -2828,7 +2825,7 @@ test-stressroostats-interpreted|\ pyunittests-pyroot-pyz-rdataframe-makenumpy|\ tutorial-dataframe-df032_MakeNumpyDataFrame-py" -%if %{?fedora}%{!?fedora:0} == 34 || %{?fedora}%{!?fedora:0} == 35 || %{?rhel}%{!?rhel:0} == 9 +%if %{?rhel}%{!?rhel:0} == 9 # tmva/tmva/test/branchlessForest.cxx:215: Failure # Expected equality of these values: # predictions[1] @@ -2942,19 +2939,31 @@ test-stressgraphics" %endif %if %{?fedora}%{!?fedora:0} >= 38 -# - pyunittests-pyroot-pyz-rdataframe-asnumpy -# - pyunittests-pyroot-pyz-rdataframe-makenumpy -# - tutorial-dataframe-df024_Display(-py) -# - tutorial-dataframe-df026_AsNumpyArrays-py -# - tutorial-dataframe-df032_MakeNumpyDataFrame-py -# - tutorial-tmva-tmva002_RDataFrameAsTensor +# Segmentation faults and invalid pointers +# Mainly related to DataFrame excluded="${excluded}|\ +pyunittests-dataframe|\ +pyunittests-distrdf-unit-backend-test-dist|\ +pyunittests-distrdf-unit-test-headnode|\ pyunittests-pyroot-pyz-rdataframe-asnumpy|\ pyunittests-pyroot-pyz-rdataframe-makenumpy|\ -tutorial-dataframe-df024_Display|\ -tutorial-dataframe-df026_AsNumpyArrays-py|\ -tutorial-dataframe-df032_MakeNumpyDataFrame-py|\ -tutorial-tmva-tmva002_RDataFrameAsTensor" +pyunittests-pyroot-rdfdescription|\ +gtest-roofit-RDataFrameHelpers-test-testActionHelpers|\ +gtest-tree-dataframe-test-dataframe|\ +gtest-tree-dataframe-test-datasource|\ +gtest-tree-ntuple-v7-test-ntuple-rdf|\ +tutorial-dataframe-df|\ +tutorial-graphs-timeSeriesFromCSV_TDF|\ +tutorial-multicore-mt304_fillHistos|\ +tutorial-rcanvas|\ +tutorial-roofit-rf408_RDataFrameToRooFit-py|\ +tutorial-roofit-rf508_listsetmanip-py|\ +tutorial-tmva-tmva002_RDataFrameAsTensor|\ +tutorial-v7-concurrentfill.cxx|\ +tutorial-v7-histops.cxx|\ +tutorial-v7-perf.cxx|\ +tutorial-v7-perfcomp.cxx|\ +tutorial-v7-simple.cxx" %endif %endif @@ -3985,6 +3994,9 @@ fi %endif %changelog +* Fri Jan 20 2023 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.10-4 +- Add missing #include <cstdint> + * Fri Jan 20 2023 Fedora Release Engineering <releng(a)fedoraproject.org> - 6.26.10-3 - Rebuilt for
https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
commit 6d31b558eef8167f0d09704df669da1de6e1a4ef Author: Fedora Release Engineering <releng(a)fedoraproject.org> Date: Fri Jan 20 19:53:22 2023 +0000 Rebuilt for
https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org> diff --git a/root.spec b/root.spec index b40be96..11e148a 100644 --- a/root.spec +++ b/root.spec @@ -65,7 +65,7 @@ Name: root Version: 6.26.10 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 3%{?dist} Summary: Numerical data analysis framework License: LGPLv2+ @@ -3985,6 +3985,9 @@ fi %endif %changelog +* Fri Jan 20 2023 Fedora Release Engineering <releng(a)fedoraproject.org> - 6.26.10-3 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
+ * Thu Dec 29 2022 Maxwell G <gotmax(a)e.email> - 6.26.10-2 - Rebuild for cfitsio 4.2 commit bcb1ddcccf7115e8e31efead61522aaf674c8ad2 Author: Maxwell G <gotmax(a)e.email> Date: Thu Dec 29 09:45:29 2022 -1000 Rebuild for cfitsio 4.2 diff --git a/root.spec b/root.spec index bead5ca..b40be96 100644 --- a/root.spec +++ b/root.spec @@ -65,7 +65,7 @@ Name: root Version: 6.26.10 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework License: LGPLv2+ @@ -3985,6 +3985,9 @@ fi %endif %changelog +* Thu Dec 29 2022 Maxwell G <gotmax(a)e.email> - 6.26.10-2 +- Rebuild for cfitsio 4.2 + * Wed Nov 16 2022 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.10-1 - Update to 6.26.10 - Drop patches root-Fixes-for-garbage-collection-in-Python-3.11.patch
1
0
0
0
Architecture specific change in rpms/root.git
by githook-noreply@fedoraproject.org
20 Mar '23
20 Mar '23
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=a08fcbc5ad2eb7b…
. Change: +%ifarch %{power64} Thanks. Full change: ============ commit b75f0821798920a0467930e296cb446805525282 Merge: a08fcbc e41288d Author: Mattias Ellert <mattias.ellert(a)physics.uu.se> Date: Mon Mar 20 20:39:10 2023 +0100 Merge branch 'epel8' into rawhide diff --cc root.spec index eb06a82,0cb36c8..c551e00 --- a/root.spec +++ b/root.spec @@@ -3780,33 -3985,9 +3780,36 @@@ f %endif %changelog +* Sat Mar 18 2023 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 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 <mhroncok(a)redhat.com> - 6.26.10-2 + - Rebuilt to change Python shebangs to /usr/bin/python3.6 on EPEL 8 + +* Mon Jan 30 2023 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.10-5 +- Adapt to numpy 1.24 + +* Fri Jan 20 2023 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.10-4 +- Add missing #include <cstdint> + +* Fri Jan 20 2023 Fedora Release Engineering <releng(a)fedoraproject.org> - 6.26.10-3 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
+ +* Thu Dec 29 2022 Maxwell G <gotmax(a)e.email> - 6.26.10-2 +- Rebuild for cfitsio 4.2 + * Wed Nov 16 2022 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.10-1 - Update to 6.26.10 - Drop patches root-Fixes-for-garbage-collection-in-Python-3.11.patch commit a08fcbc5ad2eb7bbf4e170ffe106d439909c9867 Author: Mattias Ellert <mattias.ellert(a)physics.uu.se> Date: Sun Mar 19 07:53:00 2023 +0100 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 diff --git a/root-32bit-dataframe.patch b/root-32bit-dataframe.patch deleted file mode 100644 index 89e3c95..0000000 --- a/root-32bit-dataframe.patch +++ /dev/null @@ -1,170 +0,0 @@ -From 686d5011df607fde2a42c729d6bd446486163784 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Fri, 13 Mar 2020 16:20:17 +0100 -Subject: [PATCH] Restore 32-bit dataframe - ---- - build/unix/makepchinput.py | 3 --- - cmake/modules/RootBuildOptions.cmake | 5 ----- - tree/dataframe/test/dataframe_cache.cxx | 4 ---- - tree/dataframe/test/datasource_arrow.cxx | 4 ---- - tree/dataframe/test/datasource_csv.cxx | 4 ---- - tree/dataframe/test/datasource_root.cxx | 4 ---- - tree/dataframe/test/datasource_trivial.cxx | 4 ---- - tutorials/CMakeLists.txt | 5 ----- - 8 files changed, 33 deletions(-) - -diff --git a/build/unix/makepchinput.py b/build/unix/makepchinput.py -index 1adff487de..eec73f946d 100755 ---- a/build/unix/makepchinput.py -+++ b/build/unix/makepchinput.py -@@ -252,9 +252,6 @@ def isDirForPCH(dirName, legacyPyROOT): - "math/vdt", - "tmva/rmva"] - -- if (sys.platform != 'win32' and sys.maxsize <= 2**32): #
https://docs.python.org/3/library/platform.html#cross-platform
-- PCHPatternsBlacklist.append("tree/dataframe") -- - accepted = isAnyPatternInString(PCHPatternsWhitelist,dirName) and \ - not isAnyPatternInString(PCHPatternsBlacklist,dirName) - -diff --git a/cmake/modules/RootBuildOptions.cmake b/cmake/modules/RootBuildOptions.cmake -index 7886c5f3e9..6fbd8873f1 100644 ---- a/cmake/modules/RootBuildOptions.cmake -+++ b/cmake/modules/RootBuildOptions.cmake -@@ -344,11 +344,6 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES aarch64) - set(runtime_cxxmodules_defvalue OFF) - endif() - --# Disable RDataFrame on 32-bit UNIX platforms due to ROOT-9236 --if(UNIX AND CMAKE_SIZEOF_VOID_P EQUAL 4) -- set(dataframe_defvalue OFF) --endif() -- - # MultiProcess is not possible on Windows, so fail if it is manually set: - if(roofit_multiprocess AND WIN32) - message(FATAL_ERROR ">>> Option 'roofit_multiprocess' is not supported on Windows.") -diff --git a/tree/dataframe/test/dataframe_cache.cxx b/tree/dataframe/test/dataframe_cache.cxx -index 77be488052..8475b98acb 100644 ---- a/tree/dataframe/test/dataframe_cache.cxx -+++ b/tree/dataframe/test/dataframe_cache.cxx -@@ -224,8 +224,6 @@ TEST(Cache, evtCounter) - - } - --#ifdef R__B64 -- - TEST(Cache, Regex) - { - -@@ -329,8 +327,6 @@ TEST(Cache, Carrays) - gSystem->Unlink(fileName); - } - --#endif // R__B64 -- - // ROOT-10563 - TEST(Cache, Alias) - { -diff --git a/tree/dataframe/test/datasource_arrow.cxx b/tree/dataframe/test/datasource_arrow.cxx -index 5ac9fcf09a..5f5f94a666 100644 ---- a/tree/dataframe/test/datasource_arrow.cxx -+++ b/tree/dataframe/test/datasource_arrow.cxx -@@ -177,8 +177,6 @@ TEST(RArrowDS, SetNSlotsTwice) - } - #endif - --#ifdef R__B64 -- - TEST(RArrowDS, FromARDF) - { - std::unique_ptr<RDataSource> tds(new RArrowDS(createTestTable(), {})); -@@ -250,5 +248,3 @@ TEST(RArrowDS, FromARDFWithJittingMT) - } - - #endif // R__USE_IMT -- --#endif // R__B64 -diff --git a/tree/dataframe/test/datasource_csv.cxx b/tree/dataframe/test/datasource_csv.cxx -index 6554719f98..d93117b67a 100644 ---- a/tree/dataframe/test/datasource_csv.cxx -+++ b/tree/dataframe/test/datasource_csv.cxx -@@ -210,8 +210,6 @@ TEST(RCsvDS, SetNSlotsTwice) - } - #endif - --#ifdef R__B64 -- - TEST(RCsvDS, FromARDF) - { - std::unique_ptr<RDataSource> tds(new RCsvDS(fileName0)); -@@ -324,5 +322,3 @@ TEST(RCsvDS, ProgressiveReadingRDFMT) - } - - #endif // R__USE_IMT -- --#endif // R__B64 -diff --git a/tree/dataframe/test/datasource_root.cxx b/tree/dataframe/test/datasource_root.cxx -index 79840d9fff..4c795fee6f 100644 ---- a/tree/dataframe/test/datasource_root.cxx -+++ b/tree/dataframe/test/datasource_root.cxx -@@ -117,8 +117,6 @@ TEST(TRootTDS, SetNSlotsTwice) - } - #endif - --#ifdef R__B64 -- - TEST(TRootTDS, FromARDF) - { - std::unique_ptr<RDataSource> tds(new ROOT::Internal::RDF::RRootDS(treeName, fileGlob)); -@@ -190,5 +188,3 @@ TEST(TRootTDS, FromARDFWithJittingMT) - } - - #endif // R__USE_IMT -- --#endif // R__B64 -diff --git a/tree/dataframe/test/datasource_trivial.cxx b/tree/dataframe/test/datasource_trivial.cxx -index 7da675c83b..deb89301c7 100644 ---- a/tree/dataframe/test/datasource_trivial.cxx -+++ b/tree/dataframe/test/datasource_trivial.cxx -@@ -141,8 +141,6 @@ TEST(RTrivialDS, EarlyQuitWithRange) - EXPECT_EQ(df.Range(10).Count().GetValue(), 10); - } - --#ifdef R__B64 -- - TEST(RTrivialDS, FromARDFWithJitting) - { - std::unique_ptr<RDataSource> tds(new RTrivialDS(32)); -@@ -245,5 +243,3 @@ TEST(RTrivialDS, SkipEntriesMT) - } - - #endif // R__USE_IMT -- --#endif // R__B64 -diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt -index a6e5c97703..12bb610d67 100644 ---- a/tutorials/CMakeLists.txt -+++ b/tutorials/CMakeLists.txt -@@ -332,10 +332,6 @@ else() - list(APPEND root7_veto ${v7_veto_files}) - endif() - --if( CMAKE_SIZEOF_VOID_P EQUAL 4 ) -- set(bits32_veto dataframe/*.C graphs/timeSeriesFrom*.C v7/ntuple/ntpl004_dimuon.C) --endif() -- - if (APPLE AND CMAKE_SYSTEM_PROCESSOR MATCHES arm64) - set(macm1_veto dataframe/df107_SingleTopAnalysis.py) - endif() -@@ -391,7 +387,6 @@ set(all_veto hsimple.C - ${classic_veto} - ${pythia_veto} - ${root7_veto} -- ${bits32_veto} - ${xrootd_veto} - ${mlp_veto} - ${spectrum_veto} --- -2.35.1 - 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 deleted file mode 100644 index ca908b8..0000000 --- a/root-PyROOT-Prevent-cast-error-when-calling-PyTuple_SET_I.patch +++ /dev/null @@ -1,29 +0,0 @@ -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 deleted file mode 100644 index a845fa4..0000000 --- a/root-PyROOT-code.h-must-not-be-included-directly-in-3.11.patch +++ /dev/null @@ -1,34 +0,0 @@ -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-PyROOT-only-build-RooFit-and-TMVA-pythonizations-if-enabled.patch b/root-PyROOT-only-build-RooFit-and-TMVA-pythonizations-if-enabled.patch new file mode 100644 index 0000000..0ca4387 --- /dev/null +++ b/root-PyROOT-only-build-RooFit-and-TMVA-pythonizations-if-enabled.patch @@ -0,0 +1,117 @@ +From d759a42a33fe6a9195c3c79275fe05e4da2b4195 Mon Sep 17 00:00:00 2001 +From: Jonas Rembser <jonas.rembser(a)cern.ch> +Date: Sat, 14 Jan 2023 12:25:20 +0100 +Subject: [PATCH] [PyROOT] Only build RooFit and TMVA pythonizations if needed + +Like this, we are polluting the build and install directories less with +unneeded files and it also speeds up the build process a bit if RooFit +and/or TMVA are disabled. Their pythonization files don't need to be +compiled to `.pyc` files. +--- + bindings/pyroot/pythonizations/CMakeLists.txt | 76 ++++++++++--------- + 1 file changed, 42 insertions(+), 34 deletions(-) + +diff --git a/bindings/pyroot/pythonizations/CMakeLists.txt b/bindings/pyroot/pythonizations/CMakeLists.txt +index 9e853d1885..8395785b24 100644 +--- a/bindings/pyroot/pythonizations/CMakeLists.txt ++++ b/bindings/pyroot/pythonizations/CMakeLists.txt +@@ -25,6 +25,48 @@ if(dataframe) + inc/RNumpyDS.hxx) + endif() + ++if(roofit) ++ list(APPEND PYROOT_EXTRA_PY2_PY3_SOURCE ++ ROOT/_pythonization/_roofit/__init__.py ++ ROOT/_pythonization/_roofit/_rooabscollection.py ++ ROOT/_pythonization/_roofit/_rooabsdata.py ++ ROOT/_pythonization/_roofit/_rooabspdf.py ++ ROOT/_pythonization/_roofit/_rooabsreallvalue.py ++ ROOT/_pythonization/_roofit/_rooabsreal.py ++ ROOT/_pythonization/_roofit/_rooarglist.py ++ ROOT/_pythonization/_roofit/_rooargset.py ++ ROOT/_pythonization/_roofit/_roocategory.py ++ ROOT/_pythonization/_roofit/_roochi2var.py ++ ROOT/_pythonization/_roofit/_roodatahist.py ++ ROOT/_pythonization/_roofit/_roodataset.py ++ ROOT/_pythonization/_roofit/_roodecays.py ++ ROOT/_pythonization/_roofit/_roogenfitstudy.py ++ ROOT/_pythonization/_roofit/_rooglobalfunc.py ++ ROOT/_pythonization/_roofit/_roojsonfactorywstool.py ++ ROOT/_pythonization/_roofit/_roomcstudy.py ++ ROOT/_pythonization/_roofit/_roomsgservice.py ++ ROOT/_pythonization/_roofit/_roonllvar.py ++ ROOT/_pythonization/_roofit/_rooprodpdf.py ++ ROOT/_pythonization/_roofit/_roorealvar.py ++ ROOT/_pythonization/_roofit/_roosimultaneous.py ++ ROOT/_pythonization/_roofit/_roosimwstool.py ++ ROOT/_pythonization/_roofit/_roovectordatastore.py ++ ROOT/_pythonization/_roofit/_rooworkspace.py ++ ROOT/_pythonization/_roofit/_utils.py) ++endif() ++ ++if(tmva) ++ list(APPEND PYROOT_EXTRA_PY2_PY3_SOURCE ++ ROOT/_pythonization/_tmva/_crossvalidation.py ++ ROOT/_pythonization/_tmva/_dataloader.py ++ ROOT/_pythonization/_tmva/_factory.py ++ ROOT/_pythonization/_tmva/__init__.py ++ ROOT/_pythonization/_tmva/_rbdt.py ++ ROOT/_pythonization/_tmva/_rtensor.py ++ ROOT/_pythonization/_tmva/_tree_inference.py ++ ROOT/_pythonization/_tmva/_utils.py) ++endif() ++ + list(APPEND PYROOT_EXTRA_HEADERS + inc/TPyDispatcher.h) + +@@ -39,32 +81,6 @@ set(py2_py3_sources + ROOT/_pythonization/_generic.py + ROOT/_pythonization/__init__.py + ROOT/_pythonization/_pyz_utils.py +- ROOT/_pythonization/_roofit/__init__.py +- ROOT/_pythonization/_roofit/_rooabscollection.py +- ROOT/_pythonization/_roofit/_rooabsdata.py +- ROOT/_pythonization/_roofit/_rooabspdf.py +- ROOT/_pythonization/_roofit/_rooabsreallvalue.py +- ROOT/_pythonization/_roofit/_rooabsreal.py +- ROOT/_pythonization/_roofit/_rooarglist.py +- ROOT/_pythonization/_roofit/_rooargset.py +- ROOT/_pythonization/_roofit/_roocategory.py +- ROOT/_pythonization/_roofit/_roochi2var.py +- ROOT/_pythonization/_roofit/_roodatahist.py +- ROOT/_pythonization/_roofit/_roodataset.py +- ROOT/_pythonization/_roofit/_roodecays.py +- ROOT/_pythonization/_roofit/_roogenfitstudy.py +- ROOT/_pythonization/_roofit/_rooglobalfunc.py +- ROOT/_pythonization/_roofit/_roojsonfactorywstool.py +- ROOT/_pythonization/_roofit/_roomcstudy.py +- ROOT/_pythonization/_roofit/_roomsgservice.py +- ROOT/_pythonization/_roofit/_roonllvar.py +- ROOT/_pythonization/_roofit/_rooprodpdf.py +- ROOT/_pythonization/_roofit/_roorealvar.py +- ROOT/_pythonization/_roofit/_roosimultaneous.py +- ROOT/_pythonization/_roofit/_roosimwstool.py +- ROOT/_pythonization/_roofit/_roovectordatastore.py +- ROOT/_pythonization/_roofit/_rooworkspace.py +- ROOT/_pythonization/_roofit/_utils.py + ROOT/_pythonization/_rvec.py + ROOT/_pythonization/_stl_vector.py + ROOT/_pythonization/_tarray.py +@@ -79,14 +95,6 @@ set(py2_py3_sources + ROOT/_pythonization/_tgraph.py + ROOT/_pythonization/_th1.py + ROOT/_pythonization/_titer.py +- ROOT/_pythonization/_tmva/_crossvalidation.py +- ROOT/_pythonization/_tmva/_dataloader.py +- ROOT/_pythonization/_tmva/_factory.py +- ROOT/_pythonization/_tmva/__init__.py +- ROOT/_pythonization/_tmva/_rbdt.py +- ROOT/_pythonization/_tmva/_rtensor.py +- ROOT/_pythonization/_tmva/_tree_inference.py +- ROOT/_pythonization/_tmva/_utils.py + ROOT/_pythonization/_tobject.py + ROOT/_pythonization/_tobjstring.py + ROOT/_pythonization/_tseqcollection.py +-- +2.39.2 + diff --git a/root-RF-Rewrite-RooProdPdf.TestGetPartIntList-unit-test.patch b/root-RF-Rewrite-RooProdPdf.TestGetPartIntList-unit-test.patch new file mode 100644 index 0000000..d295c53 --- /dev/null +++ b/root-RF-Rewrite-RooProdPdf.TestGetPartIntList-unit-test.patch @@ -0,0 +1,168 @@ +From c20004230608a5679ee6c0a7648af5f190c415c9 Mon Sep 17 00:00:00 2001 +From: Jonas Rembser <jonas.rembser(a)cern.ch> +Date: Tue, 7 Mar 2023 11:53:01 +0100 +Subject: [PATCH] [RF] Rewrite `RooProdPdf.TestGetPartIntList` unit test + +In the ROOT 6.26 development cycle, the RooProdPdf was partially +rewritten in moden C++ with less manual memory allocation to improve +performance (PR #7907). + +In that PR, a unit test that verifies the RooProdPdf can correctly deal +with factorizing PDFs was implemented. However, that test used an +arbitrary PDF where the correct factorization was checked in a rather +crude way: check by hashing the content of the RooProdPdf cache element +for a given normalization set that said PR doesn't change any behavior +(the reference hash was hardcoded in the unit test). + +This commit suggests a better alternative for the unit test, checking +for a multidimensional product pdf of factorizing uniform pdfs that the +pdf values for differenc normalization sets is as expected. This should +cover the same functionality and is less fragile and implementation +dependend than hashing the cache elements. + +This closes GitHub issue #12430, as the rewritten test is not affected +anymore by the problem reported in that issue. +--- + roofit/roofitcore/inc/RooProdPdf.h | 2 - + roofit/roofitcore/src/RooProdPdf.cxx | 4 -- + roofit/roofitcore/test/testRooProdPdf.cxx | 88 +++++++---------------- + 3 files changed, 26 insertions(+), 68 deletions(-) + +diff --git a/roofit/roofitcore/inc/RooProdPdf.h b/roofit/roofitcore/inc/RooProdPdf.h +index 3d779a4901..0a76c839aa 100644 +--- a/roofit/roofitcore/inc/RooProdPdf.h ++++ b/roofit/roofitcore/inc/RooProdPdf.h +@@ -96,8 +96,6 @@ public: + + RooArgSet* findPdfNSet(RooAbsPdf const& pdf) const ; + +- void writeCacheToStream(std::ostream& os, RooArgSet const* nset) const; +- + std::unique_ptr<RooAbsArg> compileForNormSet(RooArgSet const &normSet, RooFit::Detail::CompileContext & ctx) const override; + + private: +diff --git a/roofit/roofitcore/src/RooProdPdf.cxx b/roofit/roofitcore/src/RooProdPdf.cxx +index 8c8c7e01c6..6af7279603 100644 +--- a/roofit/roofitcore/src/RooProdPdf.cxx ++++ b/roofit/roofitcore/src/RooProdPdf.cxx +@@ -2324,10 +2324,6 @@ void RooProdPdf::CacheElem::writeToStream(std::ostream& os) const { + } + } + +-void RooProdPdf::writeCacheToStream(std::ostream& os, RooArgSet const* nset) const { +- getCacheElem(nset)->writeToStream(os); +-} +- + std::unique_ptr<RooArgSet> RooProdPdf::fillNormSetForServer(RooArgSet const &normSet, RooAbsArg const &server) const + { + if (normSet.empty()) +diff --git a/roofit/roofitcore/test/testRooProdPdf.cxx b/roofit/roofitcore/test/testRooProdPdf.cxx +index d794fb415a..ff334211d2 100644 +--- a/roofit/roofitcore/test/testRooProdPdf.cxx ++++ b/roofit/roofitcore/test/testRooProdPdf.cxx +@@ -74,76 +74,40 @@ INSTANTIATE_TEST_SUITE_P(RooProdPdf, TestProdPdf, + return ss.str(); + }); + +-std::vector<std::vector<RooAbsArg *>> allPossibleSubset(RooAbsCollection const &arr) ++TEST(RooProdPdf, TestGetPartIntList) + { +- std::vector<std::vector<RooAbsArg *>> out; +- std::size_t n = arr.size(); +- +- std::size_t count = std::pow(2, n); +- for (std::size_t i = 0; i < count; i++) { +- out.emplace_back(); +- auto &back = out.back(); +- for (std::size_t j = 0; j < n; j++) { +- if ((i & (1 << j)) != 0) { +- back.push_back(arr[j]); +- } +- } +- } +- return out; +-} ++ RooHelpers::LocalChangeMsgLevel chmsglvl1{RooFit::ERROR, 0u, RooFit::InputArguments, true}; ++ RooHelpers::LocalChangeMsgLevel chmsglvl2{RooFit::WARNING, 0u, RooFit::NumIntegration, true}; + +-// Hash the integral configuration for all possible normalization sets. +-unsigned int hashRooProduct(RooProdPdf const &prod) +-{ +- RooArgSet params; +- prod.getParameters(nullptr, params); +- auto subsets = allPossibleSubset(params); ++ // This test checks if RooProdPdf::getPartIntList factorizes the integrals ++ // as expected, for the example of a three dimensional RooProdPdf. + +- std::stringstream ss; ++ RooWorkspace ws; + +- for (auto const &subset : subsets) { +- // this can't be on the stack, otherwise we will always get the same +- // address and therefore get wrong cache hits! +- auto nset = std::make_unique<RooArgSet>(subset.begin(), subset.end()); +- prod.writeCacheToStream(ss, nset.get()); +- } ++ double a = 10.; ++ double b = 4.; ++ double c = 2.5; + +- std::string s = ss.str(); +- return TString::Hash(s.c_str(), s.size()); +-} ++ auto &x = static_cast<RooRealVar &>(*ws.factory("x[0, 0, " + std::to_string(a) + "]")); ++ auto &y = static_cast<RooRealVar &>(*ws.factory("y[0, 0, " + std::to_string(b) + "]")); ++ auto &z = static_cast<RooRealVar &>(*ws.factory("z[0, 0, " + std::to_string(c) + "]")); + +-TEST(RooProdPdf, TestGetPartIntList) +-{ +- // This test checks if RooProdPdf::getPartIntList factorizes the integrals +- // as expected. +- // Instead of trying to construct tests for all possible cases by hand, +- // this test creates a product where the factors have different patters of +- // overlapping parameters. To make sure all possible cases are covered, we +- // are using all possible subsets of the parameters one after the other to +- // create the reference test result. +- +- RooRealVar x{"x", "x", 1., 0, 10}; +- RooRealVar y{"y", "y", 1., 0, 10}; +- RooRealVar z{"z", "z", 1., 0, 10}; +- +- RooRealVar m1{"m1", "m1", 1., 0, 10}; +- RooRealVar m2{"m2", "m2", 1., 0, 10}; +- RooRealVar m3{"m3", "m3", 1., 0, 10}; +- +- RooGenericPdf gauss1{"gauss1", "gauss1", "x+m1", {x, m1}}; +- RooGenericPdf gauss2{"gauss2", "gauss2", "x+m2", {x, m2}}; +- RooGenericPdf gauss3{"gauss3", "gauss3", "y+m3", {y, m3}}; +- RooGenericPdf gauss4{"gauss4", "gauss4", "z+m1", {z, m1}}; +- RooGenericPdf gauss5{"gauss5", "gauss5", "x+m1", {x, m1}}; ++ // Factorize the product in one 1D and one 2D pdf to get a more complicated ++ // and complete test case. ++ ws.factory("Uniform::pdf1({x})"); ++ ws.factory("Uniform::pdf2({y, z})"); + + // Product of all the pdfs. +- RooProdPdf prod{"prod", "prod", RooArgList{gauss1, gauss2, gauss3, gauss4, gauss5}}; +- +- // We hash the string serializations of caches for all possible +- // normalization sets and compare it to the expected hash. +- // This value must be updated if the convention for integral names in +- // RooProdPdf changes. +- EXPECT_EQ(hashRooProduct(prod), 2448666198); ++ auto &prod = static_cast<RooProdPdf &>(*ws.factory("PROD::prod(pdf1, pdf2)")); ++ ++ EXPECT_DOUBLE_EQ(prod.getVal({}), 1.0); ++ EXPECT_DOUBLE_EQ(prod.getVal({x}), 1. / a); ++ EXPECT_DOUBLE_EQ(prod.getVal({y}), 1. / b); ++ EXPECT_DOUBLE_EQ(prod.getVal({z}), 1. / c); ++ EXPECT_DOUBLE_EQ(prod.getVal({x, y}), 1. / a / b); ++ EXPECT_DOUBLE_EQ(prod.getVal({x, z}), 1. / a / c); ++ EXPECT_DOUBLE_EQ(prod.getVal({y, z}), 1. / b / c); ++ EXPECT_DOUBLE_EQ(prod.getVal({x, y, z}), 1. / a / b / c); + } + + TEST(RooProdPdf, TestDepsAreCond) +-- +2.39.2 + diff --git a/root-Set-DataLayout-from-our-TargetMachine.patch b/root-Set-DataLayout-from-our-TargetMachine.patch new file mode 100644 index 0000000..d936302 --- /dev/null +++ b/root-Set-DataLayout-from-our-TargetMachine.patch @@ -0,0 +1,32 @@ +From d4c66a41ae50ecfb905ebe66eb296de4e5c146d7 Mon Sep 17 00:00:00 2001 +From: Jonas Hahnfeld <jonas.hahnfeld(a)cern.ch> +Date: Thu, 16 Feb 2023 16:40:16 +0100 +Subject: [PATCH 2/2] [cling] Set DataLayout from our TargetMachine + +Otherwise LLJIT's constructor will ask the LLJITBuilder's JTMB to +create a DataLayout. As we don't propagate the JTMB (yet -- we +probably should!), this will be wrong if target features influence +the DataLayout. + +This should fix #12293. + +(cherry picked from commit 254bac6cfad78ed671ec3af3d2001c52487b4c86) +--- + interpreter/cling/lib/Interpreter/IncrementalJIT.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp b/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp +index 80b6761491..e1721a4d45 100644 +--- a/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp ++++ b/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp +@@ -358,6 +358,7 @@ IncrementalJIT::IncrementalJIT( + ErrorAsOutParameter _(&Err); + + LLJITBuilder Builder; ++ Builder.setDataLayout(TM->createDataLayout()); + Builder.setExecutorProcessControl(std::move(EPC)); + + // Create ObjectLinkingLayer with our own MemoryManager. +-- +2.39.2 + diff --git a/root-Simplify-creation-of-TargetMachine.patch b/root-Simplify-creation-of-TargetMachine.patch new file mode 100644 index 0000000..8eaa5d8 --- /dev/null +++ b/root-Simplify-creation-of-TargetMachine.patch @@ -0,0 +1,94 @@ +From 63d16de24e695a847274fa3044127cefffc7b0b6 Mon Sep 17 00:00:00 2001 +From: Jonas Hahnfeld <jonas.hahnfeld(a)cern.ch> +Date: Fri, 3 Feb 2023 11:52:22 +0100 +Subject: [PATCH 1/2] [cling] Simplify creation of TargetMachine + +We know exactly which target triple and features the CompilerInstance +wants, we don't need to (and probably must not) second-guess that. This +brings us closer to upstream clang-repl and also includes the change of +https://reviews.llvm.org/D128853 which is crucial for RISC-V. + +(cherry picked from commit df0905c499a541eaac3be63c0455a07946022983) +--- + .../cling/lib/Interpreter/IncrementalJIT.cpp | 34 ++++++------------- + 1 file changed, 11 insertions(+), 23 deletions(-) + +diff --git a/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp b/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp +index 5342945ed1..80b6761491 100644 +--- a/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp ++++ b/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp +@@ -15,6 +15,7 @@ + #include "cling/Utils/Output.h" + #include "cling/Utils/Utils.h" + ++#include <clang/Basic/TargetInfo.h> + #include <clang/Basic/TargetOptions.h> + #include <clang/Frontend/CompilerInstance.h> + +@@ -292,45 +293,32 @@ Error RTDynamicLibrarySearchGenerator::tryToGenerate( + } + + static std::unique_ptr<TargetMachine> +-CreateHostTargetMachine(const clang::CompilerInstance& CI) { +- const clang::TargetOptions& TargetOpts = CI.getTargetOpts(); +- const clang::CodeGenOptions& CGOpt = CI.getCodeGenOpts(); +- const std::string& Triple = TargetOpts.Triple; +- +- std::string Error; +- const Target *TheTarget = TargetRegistry::lookupTarget(Triple, Error); +- if (!TheTarget) { +- cling::errs() << "cling::IncrementalExecutor: unable to find target:\n" +- << Error; +- return std::unique_ptr<TargetMachine>(); +- } +- ++CreateTargetMachine(const clang::CompilerInstance& CI) { + CodeGenOpt::Level OptLevel = CodeGenOpt::Default; +- switch (CGOpt.OptimizationLevel) { ++ switch (CI.getCodeGenOpts().OptimizationLevel) { + case 0: OptLevel = CodeGenOpt::None; break; + case 1: OptLevel = CodeGenOpt::Less; break; + case 2: OptLevel = CodeGenOpt::Default; break; + case 3: OptLevel = CodeGenOpt::Aggressive; break; + default: OptLevel = CodeGenOpt::Default; + } ++ + using namespace llvm::orc; +- auto JTMB = JITTargetMachineBuilder::detectHost(); +- if (!JTMB) +- logAllUnhandledErrors(JTMB.takeError(), llvm::errs(), +- "Error detecting host"); ++ auto JTMB = JITTargetMachineBuilder(CI.getTarget().getTriple()); ++ JTMB.addFeatures(CI.getTargetOpts().Features); + +- JTMB->setCodeGenOptLevel(OptLevel); ++ JTMB.setCodeGenOptLevel(OptLevel); + #ifdef _WIN32 +- JTMB->getOptions().EmulatedTLS = false; ++ JTMB.getOptions().EmulatedTLS = false; + #endif // _WIN32 + + #if defined(__powerpc64__) || defined(__PPC64__) + // We have to use large code model for PowerPC64 because TOC and text sections + // can be more than 2GB apart. +- JTMB->setCodeModel(CodeModel::Large); ++ JTMB.setCodeModel(CodeModel::Large); + #endif + +- std::unique_ptr<TargetMachine> TM = cantFail(JTMB->createTargetMachine()); ++ std::unique_ptr<TargetMachine> TM = cantFail(JTMB.createTargetMachine()); + + // Forcefully disable GlobalISel, it might be enabled on AArch64 without + // optimizations. In tests on an Apple M1 after the upgrade to LLVM 9, this +@@ -365,7 +353,7 @@ IncrementalJIT::IncrementalJIT( + std::unique_ptr<llvm::orc::ExecutorProcessControl> EPC, Error& Err, + void *ExtraLibHandle, bool Verbose) + : SkipHostProcessLookup(false), +- TM(CreateHostTargetMachine(CI)), ++ TM(CreateTargetMachine(CI)), + SingleThreadedContext(std::make_unique<LLVMContext>()) { + ErrorAsOutParameter _(&Err); + +-- +2.39.2 + diff --git a/root-add-missing-include-cstdint.patch b/root-add-missing-include-cstdint.patch index f86f0ee..0572ac3 100644 --- a/root-add-missing-include-cstdint.patch +++ b/root-add-missing-include-cstdint.patch @@ -1,4 +1,4 @@ -From cf6a925dfda2411b979da368e4cea769dbe6238a Mon Sep 17 00:00:00 2001 +From 87d302b9192538e18645f4c3efadc70e9a20a913 Mon Sep 17 00:00:00 2001 From: Mattias Ellert <mattias.ellert(a)physics.uu.se> Date: Fri, 20 Jan 2023 06:34:11 +0100 Subject: [PATCH] Add missing #include <cstdint> @@ -14,8 +14,8 @@ index 69ee9ba99d..6367dfa93f 100644 --- a/tree/ntuple/v7/inc/ROOT/RDaos.hxx +++ b/tree/ntuple/v7/inc/ROOT/RDaos.hxx @@ -22,6 +22,7 @@ - // Also, this header file is known to provide macros that conflict with std::min()/std::max(). - extern "C" void d_rank_list_free(d_rank_list_t *rank_list); + + #include <daos.h> +#include <cstdint> #include <functional> @@ -31,8 +31,8 @@ index a975b5ce5d..be08eba924 100644 +#include <cstdint> #include <string> + #include <variant> #include <vector> - -- -2.39.0 +2.39.1 diff --git a/root-avoid-deleting-TFormulas-twice.patch b/root-avoid-deleting-TFormulas-twice.patch deleted file mode 100644 index af758ed..0000000 --- a/root-avoid-deleting-TFormulas-twice.patch +++ /dev/null @@ -1,37 +0,0 @@ -From c7dd58f3bc012690bab16763b1d73a4b7106ced9 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Tue, 29 Mar 2022 15:40:35 +0200 -Subject: [PATCH] Avoid deleting TFormulas twice - -Example failure: - - 562/1224 Test #541: tutorial-gl-gltf3 ...................................................***Failed Error regular expression found in output. Regex=[Error in <] 1.36 sec -Processing /builddir/build/BUILD/root-6.26.00/tutorials/gl/gltf3.C... -Error in <TList::Delete>: A list is accessing an object (0x7fffd1c959a0) already deleted (list name = Functions) -Error in <TList::Delete>: A list is accessing an object (0x7fffd1c95750) already deleted (list name = Functions) - -The commit also changes the filename used in -tutorials/hist/fillrandom.py to be different form the one used in -tutorials/hist/fillrandom.C (and tutorials/pyroot/fillrandom.py) ---- - tutorials/gl/gltf3.C | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tutorials/gl/gltf3.C b/tutorials/gl/gltf3.C -index 3697e69b7a..4089f0d2b7 100644 ---- a/tutorials/gl/gltf3.C -+++ b/tutorials/gl/gltf3.C -@@ -27,8 +27,8 @@ void gltf3() - TPad *tf3Pad = new TPad("box", "box", 0.04, 0.04, 0.96, 0.8); - tf3Pad->Draw(); - -- TFormula f1 = TFormula("f1", "x*x + y*y + z*z + 2*y - 1"); -- TFormula f2 = TFormula("f2", "x*x + y*y + z*z - 2*y - 1"); -+ TFormula *f1 = new TFormula("f1", "x*x + y*y + z*z + 2*y - 1"); -+ TFormula *f2 = new TFormula("f2", "x*x + y*y + z*z - 2*y - 1"); - - // Klein bottle with cut top&bottom parts - // The Klein bottle is a closed non-orientable surface that has no --- -2.35.1 - diff --git a/root-avoid-deprecated-numpy.object.patch b/root-avoid-deprecated-numpy.object.patch deleted file mode 100644 index 9330bac..0000000 --- a/root-avoid-deprecated-numpy.object.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 1e7dc9fcd60133375c3b725d8317fab339c2bf38 Mon Sep 17 00:00:00 2001 -From: Vincenzo Eduardo Padulano <v.e.padulano(a)gmail.com> -Date: Mon, 30 Jan 2023 10:31:29 +0100 -Subject: [PATCH] [DF][PyROOT] Avoid deprecated numpy.object - ---- - .../pythonizations/python/ROOT/_pythonization/_rdataframe.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py b/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py -index 59cb0cd260dd..01cb08b0365f 100644 ---- a/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py -+++ b/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py -@@ -287,7 +287,7 @@ def GetValue(self): - tmp = numpy.asarray(cpp_reference) # This adopts the memory of the C++ object. - self._py_arrays[column] = ndarray(tmp, self._result_ptrs[column]) - else: -- tmp = numpy.empty(len(cpp_reference), dtype=numpy.object) -+ tmp = numpy.empty(len(cpp_reference), dtype=object) - for i, x in enumerate(cpp_reference): - tmp[i] = x # This creates only the wrapping of the objects and does not copy. - self._py_arrays[column] = ndarray(tmp, self._result_ptrs[column]) diff --git a/root-avoid-race-condition-tutorial-roofit-rf512.patch b/root-avoid-race-condition-tutorial-roofit-rf512.patch deleted file mode 100644 index d0c40e8..0000000 --- a/root-avoid-race-condition-tutorial-roofit-rf512.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 91de99623d0e945610be46d46e84b54985415aeb Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Fri, 28 Oct 2022 06:27:10 +0200 -Subject: [PATCH] Avoid race condition between - tutorial/roofit/rf512_wsfactory_oper.C and - tutorial/roofit/rf512_wsfactory_oper.py - -When run in parallel they delete eachother's files: - -cc1plus: fatal error: /builddir/build/BUILD/root-6.26.08/redhat-linux-build/runtutorials/RooCFAuto000Pdf_cxx_ACLiC_dict.cxx: No such file or directory -compilation terminated. -/usr/bin/ld: cannot find /builddir/build/BUILD/root-6.26.08/redhat-linux-build/runtutorials/RooCFAuto000Pdf_cxx_ACLiC_dict.o: No such file or directory -collect2: error: ld returned 1 exit status ---- - tutorials/CMakeLists.txt | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt -index cfba4d3ed9..6ae9be5869 100644 ---- a/tutorials/CMakeLists.txt -+++ b/tutorials/CMakeLists.txt -@@ -483,7 +483,7 @@ set(hist-hbars-depends tutorial-tree-cernbuild) - set(benchmarks-depends tutorial-hsimple - tutorial-fit-fit1 - tutorial-fit-myfit -- tutorial-hist-h1ReadAndDraw -+ tutorial-hist-h1ReadAndDraw - tutorial-hist-FirstContour - tutorial-geom-na49view - tutorial-tree-ntuple1 -@@ -731,7 +731,7 @@ if(ROOT_pyroot_FOUND) - set(pyroot-benchmarks-depends tutorial-pyroot-hsimple-py - tutorial-pyroot-fit1-py - tutorial-pyroot-na49view-py -- tutorial-pyroot-h1ReadAndDraw-py -+ tutorial-pyroot-h1ReadAndDraw-py - tutorial-pyroot-ntuple1-py) - set(pyroot-fit1-depends tutorial-pyroot-fillrandom-py) - set(pyroot-na49view-depends tutorial-pyroot-geometry-py) -@@ -739,6 +739,7 @@ if(ROOT_pyroot_FOUND) - - # Avoid a race condition: make sure Python tutorial is ran after C++ tutorial - set(roofit-rf104_classfactory-depends tutorial-roofit-rf104_classfactory) -+ set(roofit-rf512_wsfactory_oper-depends tutorial-roofit-rf512_wsfactory_oper) - - #---------------------------------------------------------------------- - # List requirements for python tutorials. --- -2.37.3 - diff --git a/root-big-endian-byte-swap.patch b/root-big-endian-byte-swap.patch index 63490b5..caa3076 100644 --- a/root-big-endian-byte-swap.patch +++ b/root-big-endian-byte-swap.patch @@ -1,15 +1,15 @@ -From d9e03aad7a5132fe9db9992eecb47ee4e91c354c Mon Sep 17 00:00:00 2001 +From b32c7a1b080cb5d14f242070bf906ea6929d604d Mon Sep 17 00:00:00 2001 From: Mattias Ellert <mattias.ellert(a)physics.uu.se> Date: Fri, 25 Mar 2022 11:13:12 +0100 Subject: [PATCH] Byte swap values read from the protobuf raw data stream on big endian --- - tmva/sofie_parsers/src/RModelParser_ONNX.cxx | 12 +++++++++--- - 1 file changed, 9 insertions(+), 3 deletions(-) + tmva/sofie_parsers/src/RModelParser_ONNX.cxx | 23 +++++++++++++++----- + 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/tmva/sofie_parsers/src/RModelParser_ONNX.cxx b/tmva/sofie_parsers/src/RModelParser_ONNX.cxx -index 3b0a30cdb0..23e41d746f 100644 +index ab457dcddc..d701fb3299 100644 --- a/tmva/sofie_parsers/src/RModelParser_ONNX.cxx +++ b/tmva/sofie_parsers/src/RModelParser_ONNX.cxx @@ -1,3 +1,4 @@ @@ -17,24 +17,42 @@ index 3b0a30cdb0..23e41d746f 100644 #include "TMVA/RModelParser_ONNX.hxx" #include "onnx_proto3.pb.h" -@@ -980,9 +981,14 @@ RModel RModelParser_ONNX::Parse(std::string filename){ - //void* data = malloc (fLength * sizeof(float)); - std::shared_ptr<void> data(malloc(fLength * sizeof(float)), free); +@@ -335,9 +336,14 @@ RModel RModelParser_ONNX::Parse(std::string filename, bool verbose) + case ETensorType::FLOAT: { + std::shared_ptr<void> data(malloc(fLength * sizeof(float)), free); -- if (tensorproto->raw_data().empty() == false){ -- auto raw_data_ptr = reinterpret_cast<float*>(const_cast<char*>(tensorproto->raw_data().c_str())); -- std::memcpy(data.get(), raw_data_ptr, fLength * sizeof(float)); -+ if (!tensorproto->raw_data().empty()) { +- if (tensorproto->raw_data().empty() == false) { +- auto raw_data_ptr = reinterpret_cast<float *>(const_cast<char *>(tensorproto->raw_data().c_str())); +- std::memcpy(data.get(), raw_data_ptr, fLength * sizeof(float)); ++ if (!tensorproto->raw_data().empty()) { +#ifdef R__BYTESWAP -+ std::memcpy(data.get(), tensorproto->raw_data().c_str(), fLength * sizeof(float)); ++ std::memcpy(data.get(), tensorproto->raw_data().c_str(), fLength * sizeof(float)); +#else -+ for (std::size_t k = 0; k < fLength; ++k) -+ (reinterpret_cast<UInt_t*>(data.get()))[k] = -+ R__bswap_32((reinterpret_cast<const UInt_t*>(tensorproto->raw_data().c_str()))[k]); ++ for (std::size_t k = 0; k < fLength; ++k) ++ (reinterpret_cast<uint32_t *>(data.get()))[k] = ++ Rbswap_32((reinterpret_cast<const uint32_t *>(tensorproto->raw_data().c_str()))[k]); +#endif - }else{ - tensorproto->mutable_float_data()->ExtractSubrange(0, tensorproto->float_data_size(), static_cast<float*>(data.get())); - } + } else { + tensorproto->mutable_float_data()->ExtractSubrange(0, tensorproto->float_data_size(), + static_cast<float *>(data.get())); +@@ -350,9 +356,14 @@ RModel RModelParser_ONNX::Parse(std::string filename, bool verbose) + case ETensorType::INT64: { + std::shared_ptr<void> data(malloc(fLength * sizeof(int64_t)), free); + +- if (tensorproto->raw_data().empty() == false) { +- auto raw_data_ptr = reinterpret_cast<int64_t *>(const_cast<char *>(tensorproto->raw_data().c_str())); +- std::memcpy(data.get(), raw_data_ptr, fLength * sizeof(int64_t)); ++ if (!tensorproto->raw_data().empty()) { ++#ifdef R__BYTESWAP ++ std::memcpy(data.get(), tensorproto->raw_data().c_str(), fLength * sizeof(int64_t)); ++#else ++ for (std::size_t k = 0; k < fLength; ++k) ++ (reinterpret_cast<uint64_t *>(data.get()))[k] = ++ Rbswap_64((reinterpret_cast<const uint64_t *>(tensorproto->raw_data().c_str()))[k]); ++#endif + } else { + tensorproto->mutable_int64_data()->ExtractSubrange(0, tensorproto->int64_data_size(), + static_cast<int64_t *>(data.get())); -- -2.35.1 +2.39.2 diff --git a/root-cling-Disable-outline-atomics-on-AArch64.patch b/root-cling-Disable-outline-atomics-on-AArch64.patch new file mode 100644 index 0000000..ca00e5f --- /dev/null +++ b/root-cling-Disable-outline-atomics-on-AArch64.patch @@ -0,0 +1,35 @@ +From ddf9a8c3d113e3a3d48dbe13b6b4a6bf2338fb7a Mon Sep 17 00:00:00 2001 +From: Jonas Hahnfeld <jonas.hahnfeld(a)cern.ch> +Date: Mon, 20 Feb 2023 10:08:00 +0100 +Subject: [PATCH] [cling] Disable outline-atomics on AArch64 + +The routines __aarch64_* are defined in the static library libgcc.a +and not necessarily included in libCling or otherwise present in the +process, so the interpreter has a hard time finding them. + +Fixes #12294 +--- + interpreter/cling/lib/Interpreter/CIFactory.cpp | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/interpreter/cling/lib/Interpreter/CIFactory.cpp b/interpreter/cling/lib/Interpreter/CIFactory.cpp +index b135bf21aa..b5b5df2e8e 100644 +--- a/interpreter/cling/lib/Interpreter/CIFactory.cpp ++++ b/interpreter/cling/lib/Interpreter/CIFactory.cpp +@@ -1254,6 +1254,13 @@ namespace { + #if __APPLE__ && __arm64__ + argvCompile.push_back("--target=arm64-apple-darwin20.3.0"); + #endif ++#if __aarch64__ ++ // Disable outline-atomics on AArch64; the routines __aarch64_* are defined ++ // in the static library libgcc.a and not necessarily included in libCling ++ // or otherwise present in the process, so the interpreter has a hard time ++ // finding them. ++ argvCompile.push_back("-mno-outline-atomics"); ++#endif + + // Variables for storing the memory of the C-string arguments. + // FIXME: We shouldn't use C-strings in the first place, but just use +-- +2.39.2 + diff --git a/root-core-base-test.patch b/root-core-base-test.patch deleted file mode 100644 index c268390..0000000 --- a/root-core-base-test.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 12d52a60629e1639ced23a1919bd85628d9135ea Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Sun, 3 Apr 2022 23:23:00 +0200 -Subject: [PATCH] Fix library link order - -Fixes undefined references when linking CoreBaseTests - -../../../lib/libCling.so.6.26.00: undefined reference to `TMemFile::TMemFile(char const*, TMemFile::ZeroCopyView_t const&)' -../../../lib/libCling.so.6.26.00: undefined reference to `TFile::TFile(char const*, char const*, char const*, int)' -../../../lib/libCling.so.6.26.00: undefined reference to `TFile::~TFile()' -../../../lib/libCling.so.6.26.00: undefined reference to `TStreamerInfo::TStreamerInfo()' -../../../lib/libCling.so.6.26.00: undefined reference to `TMemFile::~TMemFile()' ---- - core/base/test/CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/core/base/test/CMakeLists.txt b/core/base/test/CMakeLists.txt -index 4b08cb0390..9b52e83405 100644 ---- a/core/base/test/CMakeLists.txt -+++ b/core/base/test/CMakeLists.txt -@@ -22,6 +22,6 @@ ROOT_ADD_GTEST(CoreBaseTests - TExceptionHandlerTests.cxx - TStringTest.cxx - TBitsTests.cxx -- LIBRARIES Core RIO ${extralibs}) -+ LIBRARIES ${extralibs} RIO Core) - - ROOT_ADD_GTEST(CoreErrorTests TErrorTests.cxx LIBRARIES Core) --- -2.35.1 - diff --git a/root-dataframe-callback.patch b/root-dataframe-callback.patch deleted file mode 100644 index 57ffc08..0000000 --- a/root-dataframe-callback.patch +++ /dev/null @@ -1,45 +0,0 @@ -From d849bc502eec4ec95d15ca41319ba0467ab22759 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Thu, 24 Mar 2022 15:55:29 +0100 -Subject: [PATCH] =?UTF-8?q?NENTRIES=20is=20not=20always=20a=20multiple=20o?= - =?UTF-8?q?f=20the=20expected=20size.=20NENTRIES=20is=2010.=20On=20a=204?= - =?UTF-8?q?=20core=20machine=20the=20expected=20size=20in=202=20=C3=97=204?= - =?UTF-8?q?=20=3D=208.=20Looping=20over=20the=208=20IDs,=202=20have=202=20?= - =?UTF-8?q?entries=20the=20remaining=206=20have=201=20entry=20for=20a=20to?= - =?UTF-8?q?tal=20of=2010=20(NENTRIES)=20entries.=20The=20test=20checked=20?= - =?UTF-8?q?that=20each=20ID=20had=20NENTRIES/(expected=20size)=20entries,?= - =?UTF-8?q?=20which=20in=20this=20case=20with=20integer=20division=20equal?= - =?UTF-8?q?s=201=20entry,=20which=20was=20not=20the=20correct=20test.=20Th?= - =?UTF-8?q?is=20commit=20chenges=20to=20test=20to=20check=20that=20the=20t?= - =?UTF-8?q?otal=20number=20of=20entries=20summed=20for=20all=20IDs=20equal?= - =?UTF-8?q?s=20NENTRIES.?= -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - ---- - tree/dataframe/test/dataframe_samplecallback.cxx | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/tree/dataframe/test/dataframe_samplecallback.cxx b/tree/dataframe/test/dataframe_samplecallback.cxx -index 188d58dd31..d387ea5f86 100644 ---- a/tree/dataframe/test/dataframe_samplecallback.cxx -+++ b/tree/dataframe/test/dataframe_samplecallback.cxx -@@ -125,11 +125,13 @@ TEST_P(RDFSampleCallback, EmptySourceSampleID) { - // RDF with empty sources tries to produce 2 tasks per slot when MT is enabled - const auto expectedSize = std::min(NENTRIES, df.GetNSlots() * 2ull); - ASSERT_EQ(result->size(), expectedSize); -+ ULong64_t entries = 0; - for (auto &id : *result) { - // check that all entries start with the expected string - EXPECT_TRUE(id.AsString().rfind("Empty source, range: {", 0) == 0); -- EXPECT_EQ(id.NEntries(), NENTRIES / expectedSize); -+ entries += id.NEntries(); - } -+ EXPECT_EQ(entries, NENTRIES); - } else { - ASSERT_EQ(result->size(), 1); - const auto &id = result->at(0); --- -2.35.1 - diff --git a/root-different-filename.patch b/root-different-filename.patch deleted file mode 100644 index ef42c3d..0000000 --- a/root-different-filename.patch +++ /dev/null @@ -1,48 +0,0 @@ -From a486081a8065154308b23381c3a77f3fdb73de97 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Wed, 16 Nov 2022 20:44:48 +0100 -Subject: [PATCH] Use different filename in loopdir.C and loopdir11.C to avoid - race condition - - Start 672: tutorial-io-loopdir - 690/1156 Test #666: tutorial-io-double32 ................................................ Passed 2.42 sec - Start 673: tutorial-io-loopdir11 - 691/1156 Test #673: tutorial-io-loopdir11 ............................................... Passed 0.76 sec - Start 674: tutorial-io-mergeSelective - 692/1156 Test #672: tutorial-io-loopdir .................................................***Failed Error regular expression found in output. Regex=[Error in <] 1.23 sec -Processing /builddir/build/BUILD/root-6.26.10/tutorials/io/loopdir.C... -Info in <TCanvas::Print>: ps file hsimple.ps has been created -Info in <TCanvas::Print>: Current canvas added to ps file hsimple.ps -Info in <TCanvas::Print>: Current canvas added to ps file hsimple.ps -Info in <TCanvas::Print>: Current canvas added to ps file hsimple.ps -Info in <TCanvas::Print>: ps file hsimple.ps has been closed -Error in <TPostScript::Text>: Cannot open temporary file: hsimple.ps_tmp_2089748 ---- - tutorials/io/loopdir11.C | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/tutorials/io/loopdir11.C b/tutorials/io/loopdir11.C -index b5f9f4719c..bf8c33b442 100644 ---- a/tutorials/io/loopdir11.C -+++ b/tutorials/io/loopdir11.C -@@ -12,14 +12,14 @@ - void loopdir11() { - TFile *f1 = TFile::Open("hsimple.root"); - TCanvas c1; -- c1.Print("hsimple.ps["); -+ c1.Print("hsimple11.ps["); - for(auto k : *f1->GetListOfKeys()) { - TKey *key = static_cast<TKey*>(k); - TClass *cl = gROOT->GetClass(key->GetClassName()); - if (!cl->InheritsFrom("TH1")) continue; - TH1 *h = key->ReadObject<TH1>(); - h->Draw(); -- c1.Print("hsimple.ps"); -+ c1.Print("hsimple11.ps"); - } -- c1.Print("hsimple.ps]"); -+ c1.Print("hsimple11.ps]"); - } --- -2.38.1 - diff --git a/root-do-not-remove-Wp-before-D-and-U.patch b/root-do-not-remove-Wp-before-D-and-U.patch new file mode 100644 index 0000000..820b7af --- /dev/null +++ b/root-do-not-remove-Wp-before-D-and-U.patch @@ -0,0 +1,44 @@ +From 0191a987b7583c2aa84b1293105db353fee40b1d Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Fri, 10 Mar 2023 20:49:02 +0100 +Subject: [PATCH] Do not remove -Wp, before -D and -U when recording used + compiler flags + +This breaks the pattern used when undefining and then defining a +variable in the same flag: + +$ echo | g++ -Wp,-UVAR,-DVAR=1 -c -x c++ - + +Here -Wp,-UVAR,-DVAR=1 will first undefine VAR and then define it to 1 + +If the -Wp, is dropped, this fails: +$ echo | g++ -UVAR,-DVAR=1 -c -x c++ - +<command-line>: warning: extra tokens at end of #undef directive + +Now it will only undefine VAR, but not defin it. I.e. + +insted of + +you get + +which explains the rather cryptic warning about extra token after #undef. +--- + cmake/modules/RootConfiguration.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cmake/modules/RootConfiguration.cmake b/cmake/modules/RootConfiguration.cmake +index 3d1ae9be53..042b43f039 100644 +--- a/cmake/modules/RootConfiguration.cmake ++++ b/cmake/modules/RootConfiguration.cmake +@@ -729,7 +729,7 @@ if (cxxmodules) + endif() + + string(REGEX REPLACE "(^|[ ]*)-W[^ ]*" "" __fflags "${CMAKE_Fortran_FLAGS}") +-string(REGEX MATCHALL "-(D|U)[^ ]*" __defs "${CMAKE_CXX_FLAGS}") ++string(REGEX MATCHALL "(-Wp,)?-(D|U)[^ ]*" __defs "${CMAKE_CXX_FLAGS}") + set(ROOT_COMPILER_FLAG_HINTS "# + set(ROOT_DEFINITIONS \"${__defs}\") + set(ROOT_CXX_FLAGS \"${__cxxflags}\") +-- +2.39.2 + diff --git a/root-dont-install-roofit-files-fix.patch b/root-dont-install-roofit-files-fix.patch new file mode 100644 index 0000000..295a4b7 --- /dev/null +++ b/root-dont-install-roofit-files-fix.patch @@ -0,0 +1,26 @@ +From 74aaf99530443a712f9b0577d8edde615ea8902d Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Sat, 4 Mar 2023 21:27:35 +0100 +Subject: [PATCH] Use FILTER instead of REMOVE_ITEM since GLOB returns absolute + paths + +--- + build/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/build/CMakeLists.txt b/build/CMakeLists.txt +index e964b5e255..2b24b1d6e6 100644 +--- a/build/CMakeLists.txt ++++ b/build/CMakeLists.txt +@@ -30,7 +30,7 @@ ROOT_EXECUTABLE(rmkdepend + if(NOT MSVC AND _BUILD_TYPE_UPPER MATCHES "DEBUG|RELWITHDEBINFO") + file(GLOB PRETTY_PRINTERS "gdbPrinters/*.so-gdb.py") + if(NOT roofit) +- list(REMOVE_ITEM PRETTY_PRINTERS gdbPrinters/libRooFitCore.so-gdb.py) ++ list(FILTER PRETTY_PRINTERS EXCLUDE REGEX libRooFitCore.so-gdb.py) + endif() + set(PRETTY_PRINTER_DESTS) + foreach(PRETTY_PRINTER ${PRETTY_PRINTERS}) +-- +2.39.2 + diff --git a/root-dont-install-roofit-files-when-roofit-is-disabled.patch b/root-dont-install-roofit-files-when-roofit-is-disabled.patch new file mode 100644 index 0000000..7b4881d --- /dev/null +++ b/root-dont-install-roofit-files-when-roofit-is-disabled.patch @@ -0,0 +1,75 @@ +From df636dcc05d0284f39427ea5be1d72e7faca90d8 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Wed, 1 Mar 2023 18:30:35 +0100 +Subject: [PATCH] Don't install roofit files when roofit is disabled + +--- + CMakeLists.txt | 14 ++++++++++++-- + build/CMakeLists.txt | 3 +++ + core/base/CMakeLists.txt | 2 ++ + 3 files changed, 17 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e1d998fde2..7992e27b64 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -591,7 +591,14 @@ if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_INSTALL_PREFIX) + else() + install(DIRECTORY README DESTINATION ${CMAKE_INSTALL_DOCDIR}) + endif() ++ set(ETC_PATT_EXCL) ++ if(NOT roofit) ++ list(APPEND ETC_PATT_EXCL PATTERN HistFactorySchema.dtd EXCLUDE) ++ list(APPEND ETC_PATT_EXCL PATTERN RooFitHS3_wsexportkeys.json EXCLUDE) ++ list(APPEND ETC_PATT_EXCL PATTERN RooFitHS3_wsfactoryexpressions.json EXCLUDE) ++ endif() + install(DIRECTORY etc/ DESTINATION ${CMAKE_INSTALL_SYSCONFDIR} USE_SOURCE_PERMISSIONS ++ ${ETC_PATT_EXCL} + PATTERN "system.rootrc" EXCLUDE + PATTERN "system.rootauthrc" EXCLUDE + PATTERN "system.rootdaemonrc" EXCLUDE +@@ -612,8 +619,11 @@ if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_INSTALL_PREFIX) + set(MAN_PATT_EXCL PATTERN xproofd.1 EXCLUDE) + endif() + if(NOT fortran OR NOT CMAKE_Fortran_COMPILER) +- set(MAN_PATT_EXCL ${MAN_PATT_EXCL} PATTERN h2root.1 EXCLUDE) +- set(MAN_PATT_EXCL ${MAN_PATT_EXCL} PATTERN g2root.1 EXCLUDE) ++ list(APPEND MAN_PATT_EXCL PATTERN h2root.1 EXCLUDE) ++ list(APPEND MAN_PATT_EXCL PATTERN g2root.1 EXCLUDE) ++ endif() ++ if(NOT roofit) ++ list(APPEND MAN_PATT_EXCL PATTERN prepareHistFactory.1 EXCLUDE) + endif() + install(DIRECTORY man/ DESTINATION ${CMAKE_INSTALL_MANDIR} ${MAN_PATT_EXCL}) + install(DIRECTORY tutorials/ DESTINATION ${CMAKE_INSTALL_TUTDIR} COMPONENT tests) +diff --git a/build/CMakeLists.txt b/build/CMakeLists.txt +index 9f60c813ac..e964b5e255 100644 +--- a/build/CMakeLists.txt ++++ b/build/CMakeLists.txt +@@ -29,6 +29,9 @@ ROOT_EXECUTABLE(rmkdepend + + if(NOT MSVC AND _BUILD_TYPE_UPPER MATCHES "DEBUG|RELWITHDEBINFO") + file(GLOB PRETTY_PRINTERS "gdbPrinters/*.so-gdb.py") ++ if(NOT roofit) ++ list(REMOVE_ITEM PRETTY_PRINTERS gdbPrinters/libRooFitCore.so-gdb.py) ++ endif() + set(PRETTY_PRINTER_DESTS) + foreach(PRETTY_PRINTER ${PRETTY_PRINTERS}) + get_filename_component(PRETTY_PRINTER_DEST ${PRETTY_PRINTER} NAME) +diff --git a/core/base/CMakeLists.txt b/core/base/CMakeLists.txt +index 0c9df7c896..df701fedea 100644 +--- a/core/base/CMakeLists.txt ++++ b/core/base/CMakeLists.txt +@@ -224,7 +224,9 @@ if(NOT MSVC) + #---addRootC++CmdMan------------------------------------------------------------------------- + generateManual(rootMan ${CMAKE_CURRENT_SOURCE_DIR}/src/root-argparse.py ${CMAKE_BINARY_DIR}/man/root.1) + generateManual(haddMan ${CMAKE_SOURCE_DIR}/main/src/hadd-argparse.py ${CMAKE_BINARY_DIR}/man/hadd.1) ++if (roofit) + generateManual(hist2workspaceMan ${CMAKE_SOURCE_DIR}/roofit/histfactory/src/hist2workspace-argparse.py ${CMAKE_BINARY_DIR}/man/hist2workspace.1) ++endif() + generateManual(rootclingMan ${CMAKE_SOURCE_DIR}/core/dictgen/src/rootcling-argparse.py ${CMAKE_BINARY_DIR}/man/rootcling.1) + + #---addRootPyCmdMan--------------------------------------------------------------------------- +-- +2.39.2 + diff --git a/root-endian-warn.patch b/root-endian-warn.patch deleted file mode 100644 index 77cd6b9..0000000 --- a/root-endian-warn.patch +++ /dev/null @@ -1,33 +0,0 @@ -From ba0dc65e558fd916dbe18f8dbe8208a3be932c25 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Mon, 28 Mar 2022 09:20:18 +0200 -Subject: [PATCH 2/2] Ignore warnings about RooNaNPacker not being implemented - for big endian - -This warning is triggered in many tests, so it makes sense to put it -in the default ignored set. ---- - test/unit_testing_support/ROOTUnitTestSupport.cxx | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/test/unit_testing_support/ROOTUnitTestSupport.cxx b/test/unit_testing_support/ROOTUnitTestSupport.cxx -index 259ab4e09c..79cd476950 100644 ---- a/test/unit_testing_support/ROOTUnitTestSupport.cxx -+++ b/test/unit_testing_support/ROOTUnitTestSupport.cxx -@@ -73,6 +73,13 @@ static struct ForbidDiagnostics { - return; - } - -+ // FIXME: RooNaNPacker warns about not being implemented for big endian -+ if (level == kWarning -+ && strcmp(msg, "Fast recovery from undefined function values only implemented for little-endian machines. If necessary, request an extension of functionality on
https://root.cern
") == 0) { -+ std::cerr << "Warning in " << location << " " << msg << std::endl; -+ return; -+ } -+ - FAIL() << "Received unexpected diagnostic of severity " - << level - << " at '" << location << "' reading '" << msg << "'.\n" --- -2.35.1 - diff --git a/root-fix-compilation-with-gcc-12.patch b/root-fix-compilation-with-gcc-12.patch deleted file mode 100644 index 2c34516..0000000 --- a/root-fix-compilation-with-gcc-12.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 3bc55ece1db8b32c5e86fd6b85856addd67265fb Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Sat, 15 Jan 2022 06:35:58 +0100 -Subject: [PATCH] Fix compilation with gcc 12 - -Fixes error: use of deleted function - -/builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp: In member function 'std::string llvm::NVPTXAsmPrinter::getPTXFundamentalTypeStr(llvm::Type*, bool) const': -/builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp:1319:10: error: use of deleted function 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::nullptr_t) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::nullptr_t = std::nullptr_t]' - 1319 | return nullptr; - | ^~~~~~~ -In file included from /usr/include/c++/12/string:53, - from /usr/include/c++/12/bits/locale_classes.h:40, - from /usr/include/c++/12/bits/ios_base.h:41, - from /usr/include/c++/12/streambuf:41, - from /usr/include/c++/12/bits/streambuf_iterator.h:35, - from /usr/include/c++/12/iterator:66, - from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/include/llvm/ADT/iterator_range.h:21, - from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/include/llvm/ADT/SmallVector.h:16, - from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/include/llvm/ADT/STLExtras.h:20, - from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/include/llvm/ADT/StringRef.h:12, - from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/include/llvm/Pass.h:31, - from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/lib/Target/NVPTX/NVPTX.h:17, - from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.h:17, - from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp:14: -/usr/include/c++/12/bits/basic_string.h:732:7: note: declared here - 732 | basic_string(nullptr_t) = delete; - | ^~~~~~~~~~~~ - -Fix backported from LLVM upstrea
https://reviews.llvm.org/D87697
---- - interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -diff --git a/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp b/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp -index 5f38b4a3c4..bfa74bd98f 100644 ---- a/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp -+++ b/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp -@@ -1281,9 +1281,6 @@ void NVPTXAsmPrinter::emitPTXAddressSpace(unsigned int AddressSpace, - std::string - NVPTXAsmPrinter::getPTXFundamentalTypeStr(Type *Ty, bool useB4PTR) const { - switch (Ty->getTypeID()) { -- default: -- llvm_unreachable("unexpected type"); -- break; - case Type::IntegerTyID: { - unsigned NumBits = cast<IntegerType>(Ty)->getBitWidth(); - if (NumBits == 1) -@@ -1314,9 +1311,10 @@ NVPTXAsmPrinter::getPTXFundamentalTypeStr(Type *Ty, bool useB4PTR) const { - return "b32"; - else - return "u32"; -+ default: -+ break; - } - llvm_unreachable("unexpected type"); -- return nullptr; - } - - void NVPTXAsmPrinter::emitPTXGlobalVariable(const GlobalVariable *GVar, --- -2.34.1 - diff --git a/root-fix-compilation-with-gcc13.patch b/root-fix-compilation-with-gcc13.patch deleted file mode 100644 index bf411a8..0000000 --- a/root-fix-compilation-with-gcc13.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 37ac6654194f90db625e760dcb2d48fd7938ba6d Mon Sep 17 00:00:00 2001 -From: scott snyder <sss@karma> -Date: Tue, 29 Nov 2022 22:05:39 -0500 -Subject: [PATCH] Fix compilation with gcc13. - -Missing #include <cstdint>. ---- - math/mathcore/inc/Math/Random.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/math/mathcore/inc/Math/Random.h b/math/mathcore/inc/Math/Random.h -index 87eaaee5af..23bfabc4a1 100644 ---- a/math/mathcore/inc/Math/Random.h -+++ b/math/mathcore/inc/Math/Random.h -@@ -25,6 +25,7 @@ - - #include <string> - #include <vector> -+#include <cstdint> - - - namespace ROOT { --- -2.39.0 - diff --git a/root-fix-test-failure-on-ppc64le-and-aarch64-with-gcc-12.patch b/root-fix-test-failure-on-ppc64le-and-aarch64-with-gcc-12.patch index 007c3cd..274aa66 100644 --- a/root-fix-test-failure-on-ppc64le-and-aarch64-with-gcc-12.patch +++ b/root-fix-test-failure-on-ppc64le-and-aarch64-with-gcc-12.patch @@ -1,6 +1,6 @@ -From ddc155795baa9d4690717c204e54a7fd4600c688 Mon Sep 17 00:00:00 2001 +From 15f50c71b4d89bfbf06ce817dee38e843f0f55cd Mon Sep 17 00:00:00 2001 From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Mon, 17 Jan 2022 18:49:30 +0100 +Date: Mon, 17 Jan 2022 23:50:47 +0100 Subject: [PATCH] Fix test failure on ppc64le and aarch64 with gcc 12 .../hist/hist/test/test_tprofile2poly.cxx:61: Failure @@ -14,19 +14,19 @@ cont1 evaluates to 109868.61342004745, cont2 evaluates to 109868.61342004743. The abs_error parameter delta evaluates to 9.999999960041972e-12 which is smaller than the minimum distance between doubles for numbers of this magnitude which is 1.4551915228366852e-11, thus making this EXPECT_NEAR check equivalent to EXPECT_EQUAL. Consider using EXPECT_DOUBLE_EQ instead. --- - hist/hist/test/test_tprofile2poly.cxx | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) + hist/hist/test/test_tprofile2poly.cxx | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/hist/hist/test/test_tprofile2poly.cxx b/hist/hist/test/test_tprofile2poly.cxx -index 40cb3052a2..5150da0bea 100644 +index 40cb3052a2..ecf559a4b3 100644 --- a/hist/hist/test/test_tprofile2poly.cxx +++ b/hist/hist/test/test_tprofile2poly.cxx -@@ -58,14 +58,14 @@ void binEntriesCompare(TProfile2D* tp2d, TProfile2Poly* tpp) { +@@ -58,15 +58,14 @@ void binEntriesCompare(TProfile2D* tp2d, TProfile2Poly* tpp) { for(Double_t x=0.5; x<10; x+=2.0) { cont1 = tp2d->GetBinEffectiveEntries(tp2d->FindBin(x,y)); cont2 = tpp->GetBinEffectiveEntries(tpp->FindBin(x,y)); - ASSERT_NEAR(cont1, cont2, delta); -+ ASSERT_NEAR(cont1, cont2, 2*delta); ++ ASSERT_NEAR(cont1, cont2, 2 * delta); } } @@ -34,10 +34,11 @@ index 40cb3052a2..5150da0bea 100644 cont1 = tp2d->GetBinEffectiveEntries(tp2d->FindBin(11,11)); cont2 = tpp->GetBinEffectiveEntries(tpp->FindBin(11,11)); - ASSERT_NEAR(cont1, cont2, delta); -+ ASSERT_NEAR(cont1, cont2, 2*delta); - +- ++ ASSERT_NEAR(cont1, cont2, 2 * delta); } + void binErrorCompare(TProfile2D* tp2d, TProfile2Poly* tpp) { -- -2.34.1 +2.39.2 diff --git a/root-fixes-for-32bit-builds.patch b/root-fixes-for-32bit-builds.patch new file mode 100644 index 0000000..bcff78d --- /dev/null +++ b/root-fixes-for-32bit-builds.patch @@ -0,0 +1,185 @@ +From 6f69a59010a60c949b1955e52275137e39a85b82 Mon Sep 17 00:00:00 2001 +From: Jakob Blomer <jblomer(a)cern.ch> +Date: Thu, 9 Mar 2023 15:14:22 +0100 +Subject: [PATCH] [ntuple] fixes for 32bit / non-x86_64 builds + +--- + tree/dataframe/src/RNTupleDS.cxx | 1 + + tree/ntuple/v7/inc/ROOT/RField.hxx | 21 +++++++++++++++++++-- + tree/ntuple/v7/test/ntuple_extended.cxx | 8 ++++---- + 3 files changed, 24 insertions(+), 6 deletions(-) + +diff --git a/tree/dataframe/src/RNTupleDS.cxx b/tree/dataframe/src/RNTupleDS.cxx +index f7eb0ab5f284..aaea6df81622 100644 +--- a/tree/dataframe/src/RNTupleDS.cxx ++++ b/tree/dataframe/src/RNTupleDS.cxx +@@ -94,6 +94,7 @@ class RRDFCardinalityField : public ROOT::Experimental::Detail::RFieldBase { + return ROOT::Experimental::Detail::RFieldValue(true /* captureFlag */, this, where); + } + size_t GetValueSize() const final { return sizeof(std::size_t); } ++ size_t GetAlignment() const final { return alignof(std::size_t); } + + /// Get the number of elements of the collection identified by globalIndex + void +diff --git a/tree/ntuple/v7/inc/ROOT/RField.hxx b/tree/ntuple/v7/inc/ROOT/RField.hxx +index b05267d16030..9a85368a94e3 100644 +--- a/tree/ntuple/v7/inc/ROOT/RField.hxx ++++ b/tree/ntuple/v7/inc/ROOT/RField.hxx +@@ -270,8 +270,9 @@ public: + virtual std::vector<RFieldValue> SplitValue(const RFieldValue &value) const; + /// The number of bytes taken by a value of the appropriate type + virtual size_t GetValueSize() const = 0; +- /// For many types, the alignment requirement is equal to the size; otherwise override. +- virtual size_t GetAlignment() const { return GetValueSize(); } ++ /// As a rule of thumb, the alignment is equal to the size of the type. There are, however, various exceptions ++ /// to this rule depending on OS and CPU architecture. So enforce the alignment to be explicitly spelled out. ++ virtual size_t GetAlignment() const = 0; + int GetTraits() const { return fTraits; } + bool HasReadCallbacks() const { return !fReadCallbacks.empty(); } + +@@ -383,6 +384,7 @@ public: + Detail::RFieldValue GenerateValue(void*) override { return Detail::RFieldValue(); } + Detail::RFieldValue CaptureValue(void*) final { return Detail::RFieldValue(); } + size_t GetValueSize() const final { return 0; } ++ size_t GetAlignment() const final { return 0; } + + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; +@@ -889,6 +891,7 @@ public: + Detail::RColumnElement<ClusterSize_t>(static_cast<ClusterSize_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(ClusterSize_t); } ++ size_t GetAlignment() const final { return alignof(ClusterSize_t); } + void CommitCluster() final; + }; + +@@ -990,6 +993,7 @@ public: + Detail::RColumnElement<ClusterSize_t>(static_cast<ClusterSize_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(ClusterSize_t); } ++ size_t GetAlignment() const final { return alignof(ClusterSize_t); } + + /// Special help for offset fields + void GetCollectionInfo(NTupleSize_t globalIndex, RClusterIndex *collectionStart, ClusterSize_t *size) { +@@ -1110,6 +1115,7 @@ public: + Detail::RColumnElement<bool>(static_cast<bool*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(bool); } ++ size_t GetAlignment() const final { return alignof(bool); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1162,6 +1168,7 @@ public: + Detail::RColumnElement<float>(static_cast<float*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(float); } ++ size_t GetAlignment() const final { return alignof(float); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1215,6 +1222,7 @@ public: + Detail::RColumnElement<double>(static_cast<double*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(double); } ++ size_t GetAlignment() const final { return alignof(double); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1267,6 +1275,7 @@ public: + Detail::RColumnElement<char>(static_cast<char*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(char); } ++ size_t GetAlignment() const final { return alignof(char); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1319,6 +1328,7 @@ public: + Detail::RColumnElement<std::int8_t>(static_cast<std::int8_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(std::int8_t); } ++ size_t GetAlignment() const final { return alignof(std::int8_t); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1371,6 +1381,7 @@ public: + Detail::RColumnElement<std::uint8_t>(static_cast<std::uint8_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(std::uint8_t); } ++ size_t GetAlignment() const final { return alignof(std::uint8_t); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1423,6 +1434,7 @@ public: + Detail::RColumnElement<std::int16_t>(static_cast<std::int16_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(std::int16_t); } ++ size_t GetAlignment() const final { return alignof(std::int16_t); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1475,6 +1487,7 @@ public: + Detail::RColumnElement<std::uint16_t>(static_cast<std::uint16_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(std::uint16_t); } ++ size_t GetAlignment() const final { return alignof(std::uint16_t); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1527,6 +1540,7 @@ public: + Detail::RColumnElement<std::int32_t>(static_cast<std::int32_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(std::int32_t); } ++ size_t GetAlignment() const final { return alignof(std::int32_t); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1579,6 +1593,7 @@ public: + Detail::RColumnElement<std::uint32_t>(static_cast<std::uint32_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(std::uint32_t); } ++ size_t GetAlignment() const final { return alignof(std::uint32_t); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1631,6 +1646,7 @@ public: + Detail::RColumnElement<std::uint64_t>(static_cast<std::uint64_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(std::uint64_t); } ++ size_t GetAlignment() const final { return alignof(std::uint64_t); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1683,6 +1699,7 @@ public: + Detail::RColumnElement<std::int64_t>(static_cast<std::int64_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(std::int64_t); } ++ size_t GetAlignment() const final { return alignof(std::int64_t); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +diff --git a/tree/ntuple/v7/test/ntuple_extended.cxx b/tree/ntuple/v7/test/ntuple_extended.cxx +index 91871e288e98..d3b6ee466359 100644 +--- a/tree/ntuple/v7/test/ntuple_extended.cxx ++++ b/tree/ntuple/v7/test/ntuple_extended.cxx +@@ -123,8 +123,8 @@ TEST(RNTuple, LargeFile1) + RNTupleWriteOptions options; + options.SetCompression(0); + auto ntuple = RNTupleWriter::Recreate(std::move(modelWrite), "myNTuple", fileGuard.GetPath(), options); +- constexpr unsigned long nEvents = 1024 * 1024 * 256; // Exceed 2GB file size +- for (unsigned int i = 0; i < nEvents; ++i) { ++ constexpr std::uint64_t nEvents = 1024 * 1024 * 256; // Exceed 2GB file size ++ for (std::uint64_t i = 0; i < nEvents; ++i) { + wrEnergy = rnd.Rndm(); + chksumWrite += wrEnergy; + ntuple->Fill(); +@@ -195,8 +195,8 @@ TEST(RNTuple, LargeFile2) + + TRandom3 rnd(42); + double chksumWrite = 0.0; +- constexpr unsigned long nEvents = 1024 * 1024 * 256; // Exceed 2GB file size +- for (unsigned int i = 0; i < nEvents; ++i) { ++ constexpr std::uint64_t nEvents = 1024 * 1024 * 256; // Exceed 2GB file size ++ for (std::uint64_t i = 0; i < nEvents; ++i) { + *E = rnd.Rndm(); + chksumWrite += *E; + writer->Fill(); diff --git a/root-fontconfig.patch b/root-fontconfig.patch index 35705a4..e19c4b4 100644 --- a/root-fontconfig.patch +++ b/root-fontconfig.patch @@ -1,38 +1,38 @@ -diff -ur root-6.24.02.orig/core/base/src/TApplication.cxx root-6.24.02/core/base/src/TApplication.cxx ---- root-6.24.02.orig/core/base/src/TApplication.cxx 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/core/base/src/TApplication.cxx 2021-08-11 10:49:08.583579248 +0200 -@@ -265,18 +265,11 @@ - LoadGraphicsLibs(); +diff -ur root-6.28.00.orig/core/base/src/TApplication.cxx root-6.28.00/core/base/src/TApplication.cxx +--- root-6.28.00.orig/core/base/src/TApplication.cxx 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/core/base/src/TApplication.cxx 2023-02-04 12:47:19.757759982 +0100 +@@ -251,18 +251,11 @@ + 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); + // 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 -@@ -290,7 +283,6 @@ + #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 +@@ -276,7 +269,6 @@ + } } + #endif +- delete [] ttfont; } - #endif -- delete [] ttfont; - // Create WM dependent application environment - if (fAppImp) -diff -ur root-6.24.02.orig/graf2d/asimage/CMakeLists.txt root-6.24.02/graf2d/asimage/CMakeLists.txt ---- root-6.24.02.orig/graf2d/asimage/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf2d/asimage/CMakeLists.txt 2021-08-11 10:49:08.583579248 +0200 + if (!only_web || !fAppImp) { +diff -ur root-6.28.00.orig/graf2d/asimage/CMakeLists.txt root-6.28.00/graf2d/asimage/CMakeLists.txt +--- root-6.28.00.orig/graf2d/asimage/CMakeLists.txt 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf2d/asimage/CMakeLists.txt 2023-02-04 12:47:19.757759982 +0100 @@ -30,6 +30,7 @@ ${FREETYPE_LIBRARIES} ${X11_LIBRARIES} @@ -41,10 +41,10 @@ diff -ur root-6.24.02.orig/graf2d/asimage/CMakeLists.txt root-6.24.02/graf2d/asi DEPENDENCIES Core Graf -diff -ur root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx root-6.24.02/graf2d/asimage/src/TASImage.cxx ---- root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf2d/asimage/src/TASImage.cxx 2021-08-11 10:49:08.585579253 +0200 -@@ -112,6 +112,8 @@ +diff -ur root-6.28.00.orig/graf2d/asimage/src/TASImage.cxx root-6.28.00/graf2d/asimage/src/TASImage.cxx +--- root-6.28.00.orig/graf2d/asimage/src/TASImage.cxx 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf2d/asimage/src/TASImage.cxx 2023-02-04 12:47:19.760759989 +0100 +@@ -115,6 +115,8 @@ # include <draw.h> } @@ -53,7 +53,7 @@ diff -ur root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx root-6.24.02/graf2d/a // auxiliary functions for general polygon filling #include "TASPolyUtils.c" -@@ -2595,14 +2597,120 @@ +@@ -2590,14 +2592,120 @@ TString fn = font_name; fn.Strip(); @@ -181,7 +181,7 @@ diff -ur root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx root-6.24.02/graf2d/a if (fn.EndsWith(".pfa") || fn.EndsWith(".PFA") || fn.EndsWith(".pfb") || fn.EndsWith(".PFB") || fn.EndsWith(".ttf") || fn.EndsWith(".TTF") || fn.EndsWith(".otf") || fn.EndsWith(".OTF")) { ttfont = kTRUE; -@@ -2626,14 +2734,11 @@ +@@ -2621,14 +2729,11 @@ return; } @@ -199,9 +199,9 @@ diff -ur root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx root-6.24.02/graf2d/a } get_text_size(text, font, (ASText3DType)type, &width, &height); -diff -ur root-6.24.02.orig/graf2d/graf/CMakeLists.txt root-6.24.02/graf2d/graf/CMakeLists.txt ---- root-6.24.02.orig/graf2d/graf/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf2d/graf/CMakeLists.txt 2021-08-11 10:49:08.586579256 +0200 +diff -ur root-6.28.00.orig/graf2d/graf/CMakeLists.txt root-6.28.00/graf2d/graf/CMakeLists.txt +--- root-6.28.00.orig/graf2d/graf/CMakeLists.txt 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf2d/graf/CMakeLists.txt 2023-02-04 12:47:19.861760233 +0100 @@ -91,6 +91,7 @@ ${FREETYPE_LIBRARIES} ZLIB::ZLIB @@ -210,9 +210,9 @@ diff -ur root-6.24.02.orig/graf2d/graf/CMakeLists.txt root-6.24.02/graf2d/graf/C DEPENDENCIES Hist Matrix -diff -ur root-6.24.02.orig/graf2d/graf/inc/TTF.h root-6.24.02/graf2d/graf/inc/TTF.h ---- root-6.24.02.orig/graf2d/graf/inc/TTF.h 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf2d/graf/inc/TTF.h 2021-08-11 10:49:08.586579256 +0200 +diff -ur root-6.28.00.orig/graf2d/graf/inc/TTF.h root-6.28.00/graf2d/graf/inc/TTF.h +--- root-6.28.00.orig/graf2d/graf/inc/TTF.h 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf2d/graf/inc/TTF.h 2023-02-04 12:47:19.862760235 +0100 @@ -76,9 +76,8 @@ static FT_BBox fgCBox; ///< string control box static FT_CharMap fgCharMap[kTTMaxFonts]; ///< font character map @@ -224,9 +224,9 @@ diff -ur root-6.24.02.orig/graf2d/graf/inc/TTF.h root-6.24.02/graf2d/graf/inc/TT static FT_Face fgFace[kTTMaxFonts]; ///< font face static TTF::TTGlyph fgGlyphs[kMaxGlyphs]; ///< glyphs static Bool_t fgHinting; ///< use hinting (true by default) -diff -ur root-6.24.02.orig/graf2d/graf/src/TTF.cxx root-6.24.02/graf2d/graf/src/TTF.cxx ---- root-6.24.02.orig/graf2d/graf/src/TTF.cxx 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf2d/graf/src/TTF.cxx 2021-08-11 10:49:08.587579259 +0200 +diff -ur root-6.28.00.orig/graf2d/graf/src/TTF.cxx root-6.28.00/graf2d/graf/src/TTF.cxx +--- root-6.28.00.orig/graf2d/graf/src/TTF.cxx 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf2d/graf/src/TTF.cxx 2023-02-04 12:47:19.863760238 +0100 @@ -25,6 +25,8 @@ #include "TMath.h" #include "TError.h" @@ -654,7 +654,7 @@ diff -ur root-6.24.02.orig/graf2d/graf/src/TTF.cxx root-6.24.02/graf2d/graf/src/ + FcPatternDestroy (pat); + if (set) FcCharSetDestroy (set); + - FT_Face tface = 0; + FT_Face tface = (FT_Face) 0; - if (FT_New_Face(fgLibrary, ttfont, 0, &tface)) { + if (FT_New_Face(fgLibrary, ttfont, ttindex, &tface)) { @@ -679,7 +679,7 @@ diff -ur root-6.24.02.orig/graf2d/graf/src/TTF.cxx root-6.24.02/graf2d/graf/src/ + fgFontID[fgFontCount] = fontid; fgCurFontIdx = fgFontCount; fgFace[fgCurFontIdx] = tface; - fgCharMap[fgCurFontIdx] = 0; + fgCharMap[fgCurFontIdx] = (FT_CharMap) 0; fgFontCount++; if (italic) { @@ -787,9 +787,9 @@ diff -ur root-6.24.02.orig/graf2d/graf/src/TTF.cxx root-6.24.02/graf2d/graf/src/ } //////////////////////////////////////////////////////////////////////////////// -diff -ur root-6.24.02.orig/graf2d/postscript/CMakeLists.txt root-6.24.02/graf2d/postscript/CMakeLists.txt ---- root-6.24.02.orig/graf2d/postscript/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf2d/postscript/CMakeLists.txt 2021-08-11 10:49:08.587579259 +0200 +diff -ur root-6.28.00.orig/graf2d/postscript/CMakeLists.txt root-6.28.00/graf2d/postscript/CMakeLists.txt +--- root-6.28.00.orig/graf2d/postscript/CMakeLists.txt 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf2d/postscript/CMakeLists.txt 2023-02-04 12:47:19.863760238 +0100 @@ -27,6 +27,7 @@ LIBRARIES ZLIB::ZLIB @@ -798,9 +798,9 @@ diff -ur root-6.24.02.orig/graf2d/postscript/CMakeLists.txt root-6.24.02/graf2d/ DEPENDENCIES Graf ) -diff -ur root-6.24.02.orig/graf2d/postscript/src/TPostScript.cxx root-6.24.02/graf2d/postscript/src/TPostScript.cxx ---- root-6.24.02.orig/graf2d/postscript/src/TPostScript.cxx 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf2d/postscript/src/TPostScript.cxx 2021-08-11 10:49:08.588579261 +0200 +diff -ur root-6.28.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.28.00/graf2d/postscript/src/TPostScript.cxx +--- root-6.28.00.orig/graf2d/postscript/src/TPostScript.cxx 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf2d/postscript/src/TPostScript.cxx 2023-02-04 12:47:19.864760240 +0100 @@ -234,6 +234,7 @@ #include <cctype> #include <cwchar> @@ -1060,9 +1060,9 @@ diff -ur root-6.24.02.orig/graf2d/postscript/src/TPostScript.cxx root-6.24.02/gr { "Root.PSFont.STIXGen", "/STIXGeneral" }, { "Root.PSFont.STIXGenIt", "/STIXGeneral-Italic" }, { "Root.PSFont.STIXGenBd", "/STIXGeneral-Bold" }, -diff -ur root-6.24.02.orig/graf3d/gl/CMakeLists.txt root-6.24.02/graf3d/gl/CMakeLists.txt ---- root-6.24.02.orig/graf3d/gl/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf3d/gl/CMakeLists.txt 2021-08-11 10:49:08.589579264 +0200 +diff -ur root-6.28.00.orig/graf3d/gl/CMakeLists.txt root-6.28.00/graf3d/gl/CMakeLists.txt +--- root-6.28.00.orig/graf3d/gl/CMakeLists.txt 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf3d/gl/CMakeLists.txt 2023-02-04 12:47:19.867760247 +0100 @@ -208,6 +208,7 @@ ${GL2PS_LIBRARIES} ${X11_LIBRARIES} @@ -1071,9 +1071,9 @@ diff -ur root-6.24.02.orig/graf3d/gl/CMakeLists.txt root-6.24.02/graf3d/gl/CMake DEPENDENCIES Hist Gui -diff -ur root-6.24.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.24.02/graf3d/gl/src/TGLFontManager.cxx ---- root-6.24.02.orig/graf3d/gl/src/TGLFontManager.cxx 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf3d/gl/src/TGLFontManager.cxx 2021-08-11 10:49:08.589579264 +0200 +diff -ur root-6.28.00.orig/graf3d/gl/src/TGLFontManager.cxx root-6.28.00/graf3d/gl/src/TGLFontManager.cxx +--- root-6.28.00.orig/graf3d/gl/src/TGLFontManager.cxx 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf3d/gl/src/TGLFontManager.cxx 2023-02-04 12:47:19.867760247 +0100 @@ -36,6 +36,7 @@ # include "FTGLBitmapFont.h" #endif @@ -1329,9 +1329,9 @@ diff -ur root-6.24.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.24.02/graf3d/ fgFontFileArray.Add(new TObjString("STIXGeneral.otf")); // 200 fgFontFileArray.Add(new TObjString("STIXGeneralItalic.otf")); // 210 fgFontFileArray.Add(new TObjString("STIXGeneralBol.otf")); // 220 -diff -ur root-6.24.02.orig/graf3d/gl/src/TGLText.cxx root-6.24.02/graf3d/gl/src/TGLText.cxx ---- root-6.24.02.orig/graf3d/gl/src/TGLText.cxx 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf3d/gl/src/TGLText.cxx 2021-08-11 10:49:08.590579267 +0200 +diff -ur root-6.28.00.orig/graf3d/gl/src/TGLText.cxx root-6.28.00/graf3d/gl/src/TGLText.cxx +--- root-6.28.00.orig/graf3d/gl/src/TGLText.cxx 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf3d/gl/src/TGLText.cxx 2023-02-04 12:47:19.868760250 +0100 @@ -32,6 +32,8 @@ # include "FTGLBitmapFont.h" #endif @@ -1466,10 +1466,10 @@ diff -ur root-6.24.02.orig/graf3d/gl/src/TGLText.cxx root-6.24.02/graf3d/gl/src/ Error("SetGLTextFont","Cannot set FTGL::FaceSize"); - delete [] ttfont; } -diff -ur root-6.24.02.orig/gui/gui/src/TGApplication.cxx root-6.24.02/gui/gui/src/TGApplication.cxx ---- root-6.24.02.orig/gui/gui/src/TGApplication.cxx 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/gui/gui/src/TGApplication.cxx 2021-08-11 10:49:08.590579267 +0200 -@@ -80,20 +80,12 @@ +diff -ur root-6.28.00.orig/gui/gui/src/TGApplication.cxx root-6.28.00/gui/gui/src/TGApplication.cxx +--- root-6.28.00.orig/gui/gui/src/TGApplication.cxx 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/gui/gui/src/TGApplication.cxx 2023-02-04 12:47:19.868760250 +0100 +@@ -81,20 +81,12 @@ gROOT->SetBatch(kFALSE); if (strcmp(appClassName, "proofserv")) { diff --git a/root-get-rid-of-lsb_release.patch b/root-get-rid-of-lsb_release.patch deleted file mode 100644 index 8dca2cc..0000000 --- a/root-get-rid-of-lsb_release.patch +++ /dev/null @@ -1,245 +0,0 @@ -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-gtest-compat.patch b/root-gtest-compat.patch new file mode 100644 index 0000000..4dd4b58 --- /dev/null +++ b/root-gtest-compat.patch @@ -0,0 +1,85 @@ +From 922290ebdc5e3363adfa82dd45208862bb01630a Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Wed, 8 Feb 2023 09:50:00 +0100 +Subject: [PATCH] Fix build with -Dbuiltin_gtest:BOOL=OFF on EPEL 8 + +--- + roofit/roofitcore/test/testRooBinSamplingPdf.cxx | 7 ++++++- + roofit/roofitcore/test/testRooProdPdf.cxx | 5 +++++ + roofit/roofitcore/test/testRooRealIntegral.cxx | 5 +++++ + roofit/roofitcore/test/testTestStatistics.cxx | 2 +- + 4 files changed, 17 insertions(+), 2 deletions(-) + +diff --git a/roofit/roofitcore/test/testRooBinSamplingPdf.cxx b/roofit/roofitcore/test/testRooBinSamplingPdf.cxx +index 823fef712f..116000f9f8 100644 +--- a/roofit/roofitcore/test/testRooBinSamplingPdf.cxx ++++ b/roofit/roofitcore/test/testRooBinSamplingPdf.cxx +@@ -13,6 +13,11 @@ + + #include <gtest/gtest.h> + ++// Backward compatibility for gtest version < 1.10.0 ++#ifndef INSTANTIATE_TEST_SUITE_P ++#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P ++#endif ++ + #include <memory> + + class ParamTest : public testing::TestWithParam<std::tuple<std::string>> { +@@ -123,7 +128,7 @@ TEST(RooBinSamplingPdf, CheckConsistentNormalization) + EXPECT_FLOAT_EQ(int2->getVal(), int3->getVal()); + } + +-INSTANTIATE_TEST_SUITE_P(RooBinSamplingPdf, ParamTest, testing::Combine(testing::Values("Off", "Cpu")), ++INSTANTIATE_TEST_SUITE_P(RooBinSamplingPdf, ParamTest, testing::Values("Off", "Cpu"), + [](testing::TestParamInfo<ParamTest::ParamType> const ¶mInfo) { + std::stringstream ss; + ss << "BatchMode" << std::get<0>(paramInfo.param); +diff --git a/roofit/roofitcore/test/testRooProdPdf.cxx b/roofit/roofitcore/test/testRooProdPdf.cxx +index 86bcf6eb48..d794fb415a 100644 +--- a/roofit/roofitcore/test/testRooProdPdf.cxx ++++ b/roofit/roofitcore/test/testRooProdPdf.cxx +@@ -16,6 +16,11 @@ + + #include <gtest/gtest.h> + ++// Backward compatibility for gtest version < 1.10.0 ++#ifndef INSTANTIATE_TEST_SUITE_P ++#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P ++#endif ++ + #include <memory> + #include <sstream> + #include <string> +diff --git a/roofit/roofitcore/test/testRooRealIntegral.cxx b/roofit/roofitcore/test/testRooRealIntegral.cxx +index c33c6ae138..0ab6ab973f 100644 +--- a/roofit/roofitcore/test/testRooRealIntegral.cxx ++++ b/roofit/roofitcore/test/testRooRealIntegral.cxx +@@ -20,6 +20,11 @@ + + #include <gtest/gtest.h> + ++// Backward compatibility for gtest version < 1.10.0 ++#ifndef INSTANTIATE_TEST_SUITE_P ++#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P ++#endif ++ + #include <memory> + + namespace { +diff --git a/roofit/roofitcore/test/testTestStatistics.cxx b/roofit/roofitcore/test/testTestStatistics.cxx +index dc20b4e1c9..1623637653 100644 +--- a/roofit/roofitcore/test/testTestStatistics.cxx ++++ b/roofit/roofitcore/test/testTestStatistics.cxx +@@ -490,7 +490,7 @@ TEST_P(OffsetBinTest, CrossCheck) + EXPECT_NEAR(nllVal1, 0.0, 1e-8) << "NLL with bin offsetting is " << nllVal1 << ", and " << nllVal0 << " without it."; + } + +-INSTANTIATE_TEST_SUITE_P(RooNLLVar, TestStatisticTest, testing::Combine(testing::Values("Off", "Cpu")), ++INSTANTIATE_TEST_SUITE_P(RooNLLVar, TestStatisticTest, testing::Values("Off", "Cpu"), + [](testing::TestParamInfo<TestStatisticTest::ParamType> const ¶mInfo) { + std::stringstream ss; + ss << "BatchMode" << std::get<0>(paramInfo.param); +-- +2.39.1 + diff --git a/root-ignore-prefix.patch b/root-ignore-prefix.patch deleted file mode 100644 index 5b9918a..0000000 --- a/root-ignore-prefix.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 1aa9231becda09a89ec576e4a17ca4d9b6e2f310 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Tue, 15 Mar 2022 14:55:37 +0100 -Subject: [PATCH] Link to the blas library found by cmake, not hardcoded - "blas". Set ROOTIGNOREPREFIX=1 when running built binaries during build. Make - sure PCH is created before running emitters. - ---- - tmva/sofie/test/CMakeLists.txt | 14 ++++++++------ - 1 file changed, 8 insertions(+), 6 deletions(-) - -diff --git a/tmva/sofie/test/CMakeLists.txt b/tmva/sofie/test/CMakeLists.txt -index e4f9d28748..a3a2c9ae16 100644 ---- a/tmva/sofie/test/CMakeLists.txt -+++ b/tmva/sofie/test/CMakeLists.txt -@@ -51,7 +51,7 @@ foreach(onnx_file ${ONNX_FILES}) - get_filename_component(fname ${onnx_file} NAME_WE) - get_filename_component(fdir ${onnx_file} DIRECTORY) - add_custom_command(TARGET SofieCompileModels_ONNX POST_BUILD -- COMMAND ./emitFromONNX ${onnx_file} ${CMAKE_CURRENT_BINARY_DIR}/${fname} -+ COMMAND ${CMAKE_COMMAND} -E env ROOTIGNOREPREFIX=1 ./emitFromONNX ${onnx_file} ${CMAKE_CURRENT_BINARY_DIR}/${fname} - USES_TERMINAL - ) - endforeach() -@@ -100,7 +101,7 @@ foreach(onnx_file ${ONNX_FILES}) - get_filename_component(fname ${onnx_file} NAME_WE) - get_filename_component(fdir ${onnx_file} DIRECTORY) - add_custom_command(TARGET SofieCompileModels_ROOT POST_BUILD -- COMMAND ./emitFromROOT ${onnx_file} ${CMAKE_CURRENT_BINARY_DIR}/${fname} -+ COMMAND ${CMAKE_COMMAND} -E env ROOTIGNOREPREFIX=1 ./emitFromROOT ${onnx_file} ${CMAKE_CURRENT_BINARY_DIR}/${fname} - USES_TERMINAL - ) - endforeach() --- -2.35.1 - diff --git a/root-longlong.patch b/root-longlong.patch deleted file mode 100644 index 3c43542..0000000 --- a/root-longlong.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 2aa02353663674a338c92fa4e72a0c0e529c410e Mon Sep 17 00:00:00 2001 -From: Enrico Guiraud <enrico.guiraud(a)cern.ch> -Date: Fri, 8 Apr 2022 17:52:18 +0200 -Subject: [PATCH] [DF] Fix long int + Snapshot test on 32 bit platforms - -Co-authored-by: Mattias Ellert <mattias.ellert(a)physics.uu.se> ---- - tree/dataframe/test/dataframe_snapshot.cxx | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/tree/dataframe/test/dataframe_snapshot.cxx b/tree/dataframe/test/dataframe_snapshot.cxx -index f41848e96a..ddbacaba0f 100644 ---- a/tree/dataframe/test/dataframe_snapshot.cxx -+++ b/tree/dataframe/test/dataframe_snapshot.cxx -@@ -495,11 +495,14 @@ void ReadWriteCarray(const char *outFileNameBase) - t.Branch("vb", vb, "vb[size]/O"); - t.Branch("vl", vl, "vl[size]/G"); - -+ // use 2**33 as a larger-than-int value on 64 bits, otherwise just something larger than short (2**30) -+ static constexpr long int longintTestValue = sizeof(long int) == 8 ? 8589934592 : 1073741824; -+ - // Size 1 - size = 1; - v[0] = 12; - vb[0] = true; -- vl[0] = 8589934592; // 2**33 -+ vl[0] = longintTestValue; - t.Fill(); - - // Size 0 (see ROOT-9860) -@@ -546,7 +549,7 @@ void ReadWriteCarray(const char *outFileNameBase) - EXPECT_EQ(rvb.GetSize(), 1u); - EXPECT_TRUE(rvb[0]); - EXPECT_EQ(rvl.GetSize(), 1u); -- EXPECT_EQ(rvl[0], 8589934592); -+ EXPECT_EQ(rvl[0], longintTestValue); - - // Size 0 - EXPECT_TRUE(r.Next()); --- -2.35.1 - diff --git a/root-make-DistRDF-optional.patch b/root-make-DistRDF-optional.patch new file mode 100644 index 0000000..653e14e --- /dev/null +++ b/root-make-DistRDF-optional.patch @@ -0,0 +1,32 @@ +From 90e7f868bc115da821c0f04dbafd80ef72e7490a Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Thu, 2 Mar 2023 08:31:29 +0100 +Subject: [PATCH 2/2] Missing experimental add-on module + ROOT.RDF.Experimental.Distributed (DistRDF) should not fail the loading of + the rest of the ROOT.RDF namespace. + +--- + bindings/pyroot/pythonizations/python/ROOT/_facade.py | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/bindings/pyroot/pythonizations/python/ROOT/_facade.py b/bindings/pyroot/pythonizations/python/ROOT/_facade.py +index 865321e713..69046fc71c 100644 +--- a/bindings/pyroot/pythonizations/python/ROOT/_facade.py ++++ b/bindings/pyroot/pythonizations/python/ROOT/_facade.py +@@ -336,8 +336,11 @@ class ROOTFacade(types.ModuleType): + ns.FromNumpy = MakeNumpyDataFrame + + if sys.version_info >= (3, 8): +- # Inject Experimental.Distributed package into namespace RDF +- ns.Experimental.Distributed = _create_rdf_experimental_distributed_module(ns.Experimental) ++ try: ++ # Inject Experimental.Distributed package into namespace RDF if available ++ ns.Experimental.Distributed = _create_rdf_experimental_distributed_module(ns.Experimental) ++ except ImportError: ++ pass + except: + raise Exception('Failed to pythonize the namespace RDF') + del type(self).RDF +-- +2.39.2 + diff --git a/root-make-dyld-based-library-search-behavior-default.patch b/root-make-dyld-based-library-search-behavior-default.patch deleted file mode 100644 index 9b88576..0000000 --- a/root-make-dyld-based-library-search-behavior-default.patch +++ /dev/null @@ -1,147 +0,0 @@ -From 6ae602bba7d33c900a117c9de0187ab5a28e14b8 Mon Sep 17 00:00:00 2001 -From: Vassil Vassilev <v.g.vassilev(a)gmail.com> -Date: Mon, 21 Mar 2022 22:16:54 +0000 -Subject: [PATCH] Make the dyld-based library search behavior default for - non-modules. - -The dyld-based system was developed in the context on C++ modules but it turned -into a modules-agnostic feature. Instead of having to maintain more code, we -should rely on it even for non-modules build of ROOT. ---- - core/metacling/src/TCling.cxx | 109 +++------------------------------- - 1 file changed, 8 insertions(+), 101 deletions(-) - -diff --git a/core/metacling/src/TCling.cxx b/core/metacling/src/TCling.cxx -index dec399cf2b..3eae1c8570 100644 ---- a/core/metacling/src/TCling.cxx -+++ b/core/metacling/src/TCling.cxx -@@ -6501,14 +6501,18 @@ bool TCling::LibraryLoadingFailed(const std::string& errmessage, const std::stri - return false; - } - --static void* LazyFunctionCreatorAutoloadForModule(const std::string &mangled_name, -- const cling::DynamicLibraryManager &DLM) { -+//////////////////////////////////////////////////////////////////////////////// -+/// Autoload a library based on a missing symbol. -+ -+void* TCling::LazyFunctionCreatorAutoload(const std::string& mangled_name) { -+ -+ const cling::DynamicLibraryManager &DLM = *GetInterpreterImpl()->getDynamicLibraryManager(); - R__LOCKGUARD(gInterpreterMutex); - - auto LibLoader = [](const std::string& LibName) -> bool { - if (gSystem->Load(LibName.c_str(), "", false) < 0) { -- Error("TCling__LazyFunctionCreatorAutoloadForModule", -- "Failed to load library %s", LibName.c_str()); -+ ::Error("TCling__LazyFunctionCreatorAutoloadForModule", -+ "Failed to load library %s", LibName.c_str()); - return false; - } - return true; //success. -@@ -6536,103 +6540,6 @@ static void* LazyFunctionCreatorAutoloadForModule(const std::string &mangled_nam - return nullptr; - - return llvm::sys::DynamicLibrary::SearchForAddressOfSymbol(mangled_name); -- --} -- --//////////////////////////////////////////////////////////////////////////////// --/// Autoload a library based on a missing symbol. -- --void* TCling::LazyFunctionCreatorAutoload(const std::string& mangled_name) { -- if (fCxxModulesEnabled) -- return LazyFunctionCreatorAutoloadForModule(mangled_name, -- *GetInterpreterImpl()->getDynamicLibraryManager()); -- -- // First see whether the symbol is in the library that we are currently -- // loading. It will have access to the symbols of its dependent libraries, -- // thus checking "back()" is sufficient. -- if (!fRegisterModuleDyLibs.empty()) { -- if (void* addr = dlsym(fRegisterModuleDyLibs.back(), -- mangled_name.c_str())) { -- return addr; -- } -- } -- -- int err = 0; -- char* demangled_name_c = TClassEdit::DemangleName(mangled_name.c_str(), err); -- if (err) { -- return 0; -- } -- -- std::string name(demangled_name_c); -- free(demangled_name_c); -- -- //fprintf(stderr, "demangled name: '%s'\n", demangled_name); -- // -- // Separate out the class or namespace part of the -- // function name. -- // -- -- std::string::size_type pos = name.find("__thiscall "); -- if (pos != std::string::npos) { -- name.erase(0, pos + sizeof("__thiscall ")-1); -- } -- pos = name.find("__cdecl "); -- if (pos != std::string::npos) { -- name.erase(0, pos + sizeof("__cdecl ")-1); -- } -- if (!strncmp(name.c_str(), "typeinfo for ", sizeof("typeinfo for ")-1)) { -- name.erase(0, sizeof("typeinfo for ")-1); -- } else if (!strncmp(name.c_str(), "vtable for ", sizeof("vtable for ")-1)) { -- name.erase(0, sizeof("vtable for ")-1); -- } else if (!strncmp(name.c_str(), "operator", sizeof("operator")-1) -- && !isalnum(name[sizeof("operator")])) { -- // operator...(A, B) - let's try with A! -- name.erase(0, sizeof("operator")-1); -- pos = name.rfind('('); -- if (pos != std::string::npos) { -- name.erase(0, pos + 1); -- pos = name.find(","); -- if (pos != std::string::npos) { -- // remove next arg up to end, leaving only the first argument type. -- name.erase(pos); -- } -- pos = name.rfind(" const"); -- if (pos != std::string::npos) { -- name.erase(pos, strlen(" const")); -- } -- while (!name.empty() && strchr("&*", name.back())) -- name.erase(name.length() - 1); -- } -- } else { -- TClassEdit::FunctionSplitInfo fsi; -- TClassEdit::SplitFunction(name, fsi); -- name = fsi.fScopeName; -- } -- //fprintf(stderr, "name: '%s'\n", name.c_str()); -- // Now we have the class or namespace name, so do the lookup. -- TString libs = GetClassSharedLibs(name.c_str()); -- if (libs.IsNull()) { -- // Not found in the map, all done. -- return 0; -- } -- //fprintf(stderr, "library: %s\n", iter->second.c_str()); -- // Now we have the name of the libraries to load, so load them. -- -- TString lib; -- Ssiz_t posLib = 0; -- while (libs.Tokenize(lib, posLib)) { -- if (gSystem->Load(lib, "", kFALSE /*system*/) < 0) { -- // The library load failed, all done. -- //fprintf(stderr, "load failed: %s\n", errmsg.c_str()); -- return 0; -- } -- } -- -- //fprintf(stderr, "load succeeded.\n"); -- // Get the address of the function being called. -- void* addr = llvm::sys::DynamicLibrary::SearchForAddressOfSymbol(mangled_name.c_str()); -- //fprintf(stderr, "addr: %016lx\n", reinterpret_cast<unsigned long>(addr)); -- return addr; - } - - //////////////////////////////////////////////////////////////////////////////// --- -2.35.1 - diff --git a/root-namespace-pymva.patch b/root-namespace-pymva.patch deleted file mode 100644 index cd2fa57..0000000 --- a/root-namespace-pymva.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 0a969f5376af248e76cbcee45c9bdb6463e18c05 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Thu, 24 Mar 2022 21:20:07 +0100 -Subject: [PATCH 3/3] Add namespaces to LinkDef - -Fixes error: - -IncrementalExecutor::executeFunction: symbol '_ZN4TMVA12Experimental5SOFIE7PyTorch5ParseENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS9_ImSaImEESaISB_EE' unresolved while linking function '_GLOBAL__sub_I_cling_module_8'! -You are probably missing the definition of TMVA::Experimental::SOFIE::PyTorch::Parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::vector<unsigned long, std::allocator<unsigned long> >, std::allocator<std::vector<unsigned long, std::allocator<unsigned long> > > >) -Maybe you need to load the corresponding shared library? -Symbol found in '/builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libPyMVA.so.6.26.00'; did you mean to load it with '.L /builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libPyMVA.so.6.26.00'? ---- - tmva/pymva/inc/LinkDef.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/tmva/pymva/inc/LinkDef.h b/tmva/pymva/inc/LinkDef.h -index 92da99a4f7..83145077dd 100644 ---- a/tmva/pymva/inc/LinkDef.h -+++ b/tmva/pymva/inc/LinkDef.h -@@ -15,6 +15,8 @@ - #pragma link C++ class TMVA::MethodPyGTB+; - #pragma link C++ class TMVA::MethodPyKeras+; - #pragma link C++ class TMVA::MethodPyTorch+; -+#pragma link C++ namespace TMVA::Experimental::SOFIE::PyKeras; - #pragma link C++ function TMVA::Experimental::SOFIE::PyKeras::Parse+; -+#pragma link C++ namespace TMVA::Experimental::SOFIE::PyTorch; - #pragma link C++ function TMVA::Experimental::SOFIE::PyTorch::Parse+; - #endif --- -2.35.1 - diff --git a/root-namespace-roofit.patch b/root-namespace-roofit.patch deleted file mode 100644 index c8aa92e..0000000 --- a/root-namespace-roofit.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 4a4df0190ad24c0a3636994c2c23cb6c22e04589 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Thu, 24 Mar 2022 15:41:33 +0100 -Subject: [PATCH 2/3] Remove namespace RooFit from libRooFitCore's LinkDef - -The namespace is listed in the LinkDef's for both libRooFit and libRooFitCore. - -ROOT only autoloads one of the libraries, for some reason usually -libRooFitCore. After this only symbols in the namespace from that -library are present. By removing the namespace from liRooFitCore's -LinkDef, only libRooFit can be chosen when autoloading. Since -libRooFit depends on libRooFitCore, both libraries are loaded, and the -symbols from the namespace in both libraries are available. - -Fixes error: - -IncrementalExecutor::executeFunction: symbol '_ZN6RooFit12bindFunctionEPKcPFddER10RooAbsReal' unresolved while linking function '_GLOBAL__sub_I_cling_module_217'! -You are probably missing the definition of RooFit::bindFunction(char const*, double (*)(double), RooAbsReal&) -Maybe you need to load the corresponding shared library? -Symbol found in '/builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libRooFit.so.6.26.00'; did you mean to load it with '.L /builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libRooFit.so.6.26.00'? ---- - roofit/roofitcore/inc/LinkDef.h | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/roofit/roofitcore/inc/LinkDef.h b/roofit/roofitcore/inc/LinkDef.h -index d421fd95cd..72c66db33b 100644 ---- a/roofit/roofitcore/inc/LinkDef.h -+++ b/roofit/roofitcore/inc/LinkDef.h -@@ -105,7 +105,10 @@ - - - // Old LinkDef2.h --#pragma link C++ namespace RooFit ; -+ -+// "namespace RooFit" is in roofit/roofit/inc/Linkdef1.h -+// should not be in the dictionary for two different libraries -+// #pragma link C++ namespace RooFit ; - #pragma link C++ namespace RooFitShortHand ; - #pragma link C++ class RooDouble+ ; - #pragma link C++ class RooEffGenContext+ ; --- -2.35.1 - diff --git a/root-namespace-sofie.patch b/root-namespace-sofie.patch deleted file mode 100644 index a011634..0000000 --- a/root-namespace-sofie.patch +++ /dev/null @@ -1,30 +0,0 @@ -From c66ae9d9c035090584f465a41ce2e438e502be81 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Thu, 24 Mar 2022 15:23:59 +0100 -Subject: [PATCH 1/3] Add namespace TMVA::Experimental::SOFIE to LinkDef - -Fixes error: - -IncrementalExecutor::executeFunction: symbol '_ZN4TMVA12Experimental5SOFIE19ConvertTypeToStringB5cxx11ENS1_11ETensorTypeE' unresolved while linking function '_GLOBAL__sub_I_cling_module_8'! -You are probably missing the definition of TMVA::Experimental::SOFIE::ConvertTypeToString[abi:cxx11](TMVA::Experimental::SOFIE::ETensorType) -Maybe you need to load the corresponding shared library? -Symbol found in '/builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libROOTTMVASofie.so.6.26.00'; did you mean to load it with '.L /builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libROOTTMVASofie.so.6.26.00'? ---- - tmva/sofie/inc/LinkDef.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/tmva/sofie/inc/LinkDef.h b/tmva/sofie/inc/LinkDef.h -index 715cf35560..3282ff22c1 100644 ---- a/tmva/sofie/inc/LinkDef.h -+++ b/tmva/sofie/inc/LinkDef.h -@@ -7,6 +7,7 @@ - - #pragma link C++ nestedclass; - -+#pragma link C++ namespace TMVA::Experimental::SOFIE; - #pragma link C++ class TMVA::Experimental::SOFIE::RModel-; - #pragma link C++ class TMVA::Experimental::SOFIE::ROperator+; - #pragma link C++ struct TMVA::Experimental::SOFIE::InitializedTensor+; --- -2.35.1 - diff --git a/root-ntuple-RPageSinkBuf-add-missing-call-to-ReleasePage.patch b/root-ntuple-RPageSinkBuf-add-missing-call-to-ReleasePage.patch new file mode 100644 index 0000000..c833930 --- /dev/null +++ b/root-ntuple-RPageSinkBuf-add-missing-call-to-ReleasePage.patch @@ -0,0 +1,30 @@ +From 4ab2a1695a3f6350b454203c044db5d6f0c75dd2 Mon Sep 17 00:00:00 2001 +From: Javier Lopez-Gomez <javier.lopez.gomez(a)cern.ch> +Date: Mon, 13 Feb 2023 15:05:39 +0100 +Subject: [PATCH] [ntuple] RPageSinkBuf: add missing call to ReleasePage() + +--- + tree/ntuple/v7/src/RPageSinkBuf.cxx | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/tree/ntuple/v7/src/RPageSinkBuf.cxx b/tree/ntuple/v7/src/RPageSinkBuf.cxx +index b22ef705ef..88babb456f 100644 +--- a/tree/ntuple/v7/src/RPageSinkBuf.cxx ++++ b/tree/ntuple/v7/src/RPageSinkBuf.cxx +@@ -106,8 +106,11 @@ ROOT::Experimental::Detail::RPageSinkBuf::CommitClusterImpl(ROOT::Experimental:: + } + fInnerSink->CommitSealedPageV(toCommit); + +- for (auto &bufColumn : fBufferedColumns) +- bufColumn.DrainBufferedPages(); ++ for (auto &bufColumn : fBufferedColumns) { ++ auto drained = bufColumn.DrainBufferedPages(); ++ for (auto &bufPage : std::get<std::deque<RColumnBuf::RPageZipItem>>(drained)) ++ ReleasePage(bufPage.fPage); ++ } + return fInnerSink->CommitCluster(nEntries); + } + +-- +2.39.2 + diff --git a/root-ntuplewait.patch b/root-ntuplewait.patch deleted file mode 100644 index b464b69..0000000 --- a/root-ntuplewait.patch +++ /dev/null @@ -1,39 +0,0 @@ -From ad043f8e3304aab4f0ee3ad9e0cf8480c4bbadf0 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Thu, 24 Mar 2022 16:10:22 +0100 -Subject: [PATCH] Always call WaitForInFlightClusters before checking cluster - IDs - ---- - tree/ntuple/v7/test/ntuple_cluster.cxx | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/tree/ntuple/v7/test/ntuple_cluster.cxx b/tree/ntuple/v7/test/ntuple_cluster.cxx -index afc2fc32e9..0c299d97de 100644 ---- a/tree/ntuple/v7/test/ntuple_cluster.cxx -+++ b/tree/ntuple/v7/test/ntuple_cluster.cxx -@@ -213,6 +213,7 @@ TEST(ClusterPool, GetClusterBasics) - RPageSourceMock p1; - RClusterPool c1(p1, 1); - c1.GetCluster(3, {0}); -+ c1.WaitForInFlightClusters(); - ASSERT_EQ(2U, p1.fReqsClusterIds.size()); - EXPECT_EQ(3U, p1.fReqsClusterIds[0]); - EXPECT_EQ(4U, p1.fReqsClusterIds[1]); -@@ -267,11 +268,13 @@ TEST(ClusterPool, GetClusterIncrementally) - RPageSourceMock p1; - RClusterPool c1(p1, 1); - c1.GetCluster(3, {0}); -+ c1.WaitForInFlightClusters(); - ASSERT_EQ(2U, p1.fReqsClusterIds.size()); - EXPECT_EQ(3U, p1.fReqsClusterIds[0]); - EXPECT_EQ(RCluster::ColumnSet_t({0}), p1.fReqsColumns[0]); - - c1.GetCluster(3, {1}); -+ c1.WaitForInFlightClusters(); - ASSERT_EQ(4U, p1.fReqsClusterIds.size()); - EXPECT_EQ(3U, p1.fReqsClusterIds[2]); - EXPECT_EQ(RCluster::ColumnSet_t({1}), p1.fReqsColumns[2]); --- -2.35.1 - diff --git a/root-old-gtest-compat.patch b/root-old-gtest-compat.patch deleted file mode 100644 index 7bce796..0000000 --- a/root-old-gtest-compat.patch +++ /dev/null @@ -1,477 +0,0 @@ -From 99e9ad9ea54369296537ceb012ccdcb333b5f513 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Sat, 26 Mar 2022 10:55:38 +0100 -Subject: [PATCH 2/2] Backward compatibility with older googletest versions in - EPEL - ---- - hist/hist/test/test_THBinIterator.cxx | 5 +++++ - math/mathcore/test/stress/testGenVector.cxx | 10 ++++++++++ - math/mathcore/test/stress/testSMatrix.cxx | 10 ++++++++++ - math/mathcore/test/stress/testVector.cxx | 10 ++++++++++ - math/mathcore/test/stress/testVector34.cxx | 10 ++++++++++ - math/mathcore/test/testGradient.cxx | 4 ++++ - math/mathcore/test/testGradientFitting.cxx | 10 ++++++++++ - math/mathmore/test/testStress.cxx | 10 ++++++++++ - roofit/histfactory/test/testHistFactory.cxx | 4 ++++ - roofit/multiprocess/test/test_Job.cxx | 5 +++++ - roofit/roofitZMQ/test/test_ZMQ.cpp | 4 ++++ - roofit/roofitcore/test/TestStatistics/RooRealL.cpp | 4 ++++ - .../test/TestStatistics/testLikelihoodGradientJob.cpp | 5 +++++ - roofit/roofitcore/test/testProxiesAndCategories.cxx | 3 +++ - roofit/roofitcore/test/testRooDataHist.cxx | 4 ++++ - roofit/roofitcore/test/testRooGradMinimizerFcn.cxx | 5 +++++ - tree/dataframe/test/dataframe_definepersample.cxx | 4 ++++ - tree/dataframe/test/dataframe_merge_results.cxx | 2 +- - tree/dataframe/test/dataframe_regression.cxx | 4 ++++ - tree/dataframe/test/dataframe_samplecallback.cxx | 4 ++++ - tree/dataframe/test/dataframe_simple.cxx | 5 +++++ - tree/dataframe/test/dataframe_vary.cxx | 4 ++++ - tree/tree/test/TOffsetGeneration.cxx | 4 ++++ - 23 files changed, 129 insertions(+), 1 deletion(-) - -diff --git a/hist/hist/test/test_THBinIterator.cxx b/hist/hist/test/test_THBinIterator.cxx -index e30585b8cb..04f1e1487b 100644 ---- a/hist/hist/test/test_THBinIterator.cxx -+++ b/hist/hist/test/test_THBinIterator.cxx -@@ -1,5 +1,10 @@ - #include "gtest/gtest.h" - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define SetUpTestSuite SetUpTestCase -+#define TearDownTestSuite TearDownTestCase -+#endif -+ - // test iterating histogram bins and using the new THistRange and - // THBinIterator classes - -diff --git a/math/mathcore/test/stress/testGenVector.cxx b/math/mathcore/test/stress/testGenVector.cxx -index 93c0bb6aec..b3259158da 100644 ---- a/math/mathcore/test/stress/testGenVector.cxx -+++ b/math/mathcore/test/stress/testGenVector.cxx -@@ -4,6 +4,16 @@ - - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE_P -+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P -+#endif -+#ifndef REGISTER_TYPED_TEST_SUITE_P -+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P -+#endif -+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P -+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P -+#endif -+ - #include "StatFunction.h" - #include "TestHelper.h" - #include "VectorTest.h" -diff --git a/math/mathcore/test/stress/testSMatrix.cxx b/math/mathcore/test/stress/testSMatrix.cxx -index a4d7fc4cd5..a35d88b7c2 100644 ---- a/math/mathcore/test/stress/testSMatrix.cxx -+++ b/math/mathcore/test/stress/testSMatrix.cxx -@@ -7,6 +7,16 @@ - #include "TestHelper.h" - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE_P -+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P -+#endif -+#ifndef REGISTER_TYPED_TEST_SUITE_P -+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P -+#endif -+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P -+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P -+#endif -+ - #include "VectorTest.h" - #include "TROOT.h" - #include "TSystem.h" -diff --git a/math/mathcore/test/stress/testVector.cxx b/math/mathcore/test/stress/testVector.cxx -index 72e933f0d5..938e27d83c 100644 ---- a/math/mathcore/test/stress/testVector.cxx -+++ b/math/mathcore/test/stress/testVector.cxx -@@ -4,6 +4,16 @@ - - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE_P -+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P -+#endif -+#ifndef REGISTER_TYPED_TEST_SUITE_P -+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P -+#endif -+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P -+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P -+#endif -+ - #include "StatFunction.h" - #include "TestHelper.h" - #include "VectorTest.h" -diff --git a/math/mathcore/test/stress/testVector34.cxx b/math/mathcore/test/stress/testVector34.cxx -index 4b31184559..80d6dd6314 100644 ---- a/math/mathcore/test/stress/testVector34.cxx -+++ b/math/mathcore/test/stress/testVector34.cxx -@@ -4,6 +4,16 @@ - - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE_P -+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P -+#endif -+#ifndef REGISTER_TYPED_TEST_SUITE_P -+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P -+#endif -+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P -+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P -+#endif -+ - #include "StatFunction.h" - #include "VectorTest.h" - -diff --git a/math/mathcore/test/testGradient.cxx b/math/mathcore/test/testGradient.cxx -index 49a5391b7b..271e89e43c 100644 ---- a/math/mathcore/test/testGradient.cxx -+++ b/math/mathcore/test/testGradient.cxx -@@ -22,6 +22,10 @@ - - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE -+#define TYPED_TEST_SUITE TYPED_TEST_CASE -+#endif -+ - #include <chrono> - #include <iostream> - #include <string> -diff --git a/math/mathcore/test/testGradientFitting.cxx b/math/mathcore/test/testGradientFitting.cxx -index f85f826d9f..1818d1c22f 100644 ---- a/math/mathcore/test/testGradientFitting.cxx -+++ b/math/mathcore/test/testGradientFitting.cxx -@@ -13,6 +13,16 @@ - - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE_P -+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P -+#endif -+#ifndef REGISTER_TYPED_TEST_SUITE_P -+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P -+#endif -+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P -+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P -+#endif -+ - #include <iostream> - #include <string> - -diff --git a/math/mathmore/test/testStress.cxx b/math/mathmore/test/testStress.cxx -index 47bcdd250f..5cf20e69a1 100644 ---- a/math/mathmore/test/testStress.cxx -+++ b/math/mathmore/test/testStress.cxx -@@ -26,6 +26,16 @@ - - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE_P -+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P -+#endif -+#ifndef REGISTER_TYPED_TEST_SUITE_P -+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P -+#endif -+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P -+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P -+#endif -+ - using ::testing::TestWithParam; - using ::testing::Values; - -diff --git a/roofit/histfactory/test/testHistFactory.cxx b/roofit/histfactory/test/testHistFactory.cxx -index 71d7b632d2..9063e51070 100644 ---- a/roofit/histfactory/test/testHistFactory.cxx -+++ b/roofit/histfactory/test/testHistFactory.cxx -@@ -22,6 +22,10 @@ - #include "TCanvas.h" - #include "gtest/gtest.h" - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include <set> - - using namespace RooStats; -diff --git a/roofit/multiprocess/test/test_Job.cxx b/roofit/multiprocess/test/test_Job.cxx -index 22e66fc73c..61cc11771d 100644 ---- a/roofit/multiprocess/test/test_Job.cxx -+++ b/roofit/multiprocess/test/test_Job.cxx -@@ -24,6 +24,11 @@ - #include "RooFit/MultiProcess/Queue.h" // ... JobManager::queue() - - #include "gtest/gtest.h" -+ -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include "utils.h" - - class xSquaredPlusBVectorSerial { -diff --git a/roofit/roofitZMQ/test/test_ZMQ.cpp b/roofit/roofitZMQ/test/test_ZMQ.cpp -index 6dcceaff08..73e75be147 100644 ---- a/roofit/roofitZMQ/test/test_ZMQ.cpp -+++ b/roofit/roofitZMQ/test/test_ZMQ.cpp -@@ -16,6 +16,10 @@ - - #include "gtest/gtest.h" - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include <unistd.h> // fork, usleep - - #include <sstream> -diff --git a/roofit/roofitcore/test/TestStatistics/RooRealL.cpp b/roofit/roofitcore/test/TestStatistics/RooRealL.cpp -index f8421613ac..3ae6285a12 100644 ---- a/roofit/roofitcore/test/TestStatistics/RooRealL.cpp -+++ b/roofit/roofitcore/test/TestStatistics/RooRealL.cpp -@@ -34,6 +34,10 @@ - - #include "gtest/gtest.h" - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - class RooRealL - : public ::testing::TestWithParam<std::tuple<std::size_t>> { - }; -diff --git a/roofit/roofitcore/test/TestStatistics/testLikelihoodGradientJob.cpp b/roofit/roofitcore/test/TestStatistics/testLikelihoodGradientJob.cpp -index f4adf63eec..05164277f0 100644 ---- a/roofit/roofitcore/test/TestStatistics/testLikelihoodGradientJob.cpp -+++ b/roofit/roofitcore/test/TestStatistics/testLikelihoodGradientJob.cpp -@@ -33,6 +33,11 @@ - #include <stdexcept> // runtime_error - - #include "gtest/gtest.h" -+ -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include "../test_lib.h" // generate_1D_gaussian_pdf_nll - - using RooFit::TestStatistics::LikelihoodWrapper; -diff --git a/roofit/roofitcore/test/testProxiesAndCategories.cxx b/roofit/roofitcore/test/testProxiesAndCategories.cxx -index bed3c399bb..550e0c5ac9 100644 ---- a/roofit/roofitcore/test/testProxiesAndCategories.cxx -+++ b/roofit/roofitcore/test/testProxiesAndCategories.cxx -@@ -16,6 +16,9 @@ - - #include "gtest/gtest.h" - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif - - TEST(RooCategory, CategoryDefineMultiState) { - RooCategory myCat("myCat", "A category", { {"0Lep", 0}, {"1Lep", 1}, {"2Lep", 2}, {"3Lep", 3} }); -diff --git a/roofit/roofitcore/test/testRooDataHist.cxx b/roofit/roofitcore/test/testRooDataHist.cxx -index 90782e0749..f6b5e087ae 100644 ---- a/roofit/roofitcore/test/testRooDataHist.cxx -+++ b/roofit/roofitcore/test/testRooDataHist.cxx -@@ -18,6 +18,10 @@ - - #include "gtest/gtest.h" - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include <algorithm> - #include <memory> - -diff --git a/roofit/roofitcore/test/testRooGradMinimizerFcn.cxx b/roofit/roofitcore/test/testRooGradMinimizerFcn.cxx -index c1978ae47e..877ab1525f 100644 ---- a/roofit/roofitcore/test/testRooGradMinimizerFcn.cxx -+++ b/roofit/roofitcore/test/testRooGradMinimizerFcn.cxx -@@ -22,6 +22,11 @@ - #include <stdio.h> // remove redundant workspace files - - #include "gtest/gtest.h" -+ -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include "test_lib.h" - - #include <RooMsgService.h> -diff --git a/tree/dataframe/test/dataframe_definepersample.cxx b/tree/dataframe/test/dataframe_definepersample.cxx -index 772b8baa70..37da9f3f95 100644 ---- a/tree/dataframe/test/dataframe_definepersample.cxx -+++ b/tree/dataframe/test/dataframe_definepersample.cxx -@@ -6,6 +6,10 @@ - - #include <gtest/gtest.h> - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include <atomic> - #include <memory> - #include <thread> // std::thread::hardware_concurrency -diff --git a/tree/dataframe/test/dataframe_merge_results.cxx b/tree/dataframe/test/dataframe_merge_results.cxx -index 9354b75a39..ea439ea006 100644 ---- a/tree/dataframe/test/dataframe_merge_results.cxx -+++ b/tree/dataframe/test/dataframe_merge_results.cxx -@@ -340,7 +340,7 @@ TEST(RDataFrameMergeResults, Merge5Hists) - EXPECT_FALSE(mh3); - EXPECT_FALSE(mh4); - EXPECT_FALSE(mh5); -- EXPECT_TRUE(mergedptr); -+ EXPECT_TRUE(!!mergedptr); - - const auto &mh = mergedptr->GetValue(); - -diff --git a/tree/dataframe/test/dataframe_regression.cxx b/tree/dataframe/test/dataframe_regression.cxx -index 9801067cf4..8a991f40c5 100644 ---- a/tree/dataframe/test/dataframe_regression.cxx -+++ b/tree/dataframe/test/dataframe_regression.cxx -@@ -9,6 +9,10 @@ - - #include "gtest/gtest.h" - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - // Fixture for all tests in this file. If parameter is true, run with implicit MT, else run sequentially - class RDFRegressionTests : public ::testing::TestWithParam<bool> { - protected: -diff --git a/tree/dataframe/test/dataframe_samplecallback.cxx b/tree/dataframe/test/dataframe_samplecallback.cxx -index 188d58dd31..7734586eb3 100644 ---- a/tree/dataframe/test/dataframe_samplecallback.cxx -+++ b/tree/dataframe/test/dataframe_samplecallback.cxx -@@ -11,6 +11,10 @@ - - #include <gtest/gtest.h> - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include <algorithm> // std::min - #include <memory> - #include <mutex> -diff --git a/tree/dataframe/test/dataframe_simple.cxx b/tree/dataframe/test/dataframe_simple.cxx -index 6006f99017..b507edc13f 100644 ---- a/tree/dataframe/test/dataframe_simple.cxx -+++ b/tree/dataframe/test/dataframe_simple.cxx -@@ -1,5 +1,10 @@ - /****** Run RDataFrame tests both with and without IMT enabled *******/ - #include <gtest/gtest.h> -+ -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include <ROOTUnitTestSupport.h> - #include <ROOT/RDataFrame.hxx> - #include <ROOT/TSeq.hxx> -diff --git a/tree/dataframe/test/dataframe_vary.cxx b/tree/dataframe/test/dataframe_vary.cxx -index 2284b21f53..5a26c43cdc 100644 ---- a/tree/dataframe/test/dataframe_vary.cxx -+++ b/tree/dataframe/test/dataframe_vary.cxx -@@ -7,6 +7,10 @@ - - #include <gtest/gtest.h> - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - using ROOT::RDF::Experimental::VariationsFor; - - class RDFVary : public ::testing::TestWithParam<bool> { -diff --git a/tree/tree/test/TOffsetGeneration.cxx b/tree/tree/test/TOffsetGeneration.cxx -index 7b6b7647aa..77f125ca60 100644 ---- a/tree/tree/test/TOffsetGeneration.cxx -+++ b/tree/tree/test/TOffsetGeneration.cxx -@@ -9,6 +9,10 @@ - #include "ROOTUnitTestSupport.h" - #include "gtest/gtest.h" - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define SetUpTestSuite SetUpTestCase -+#endif -+ - #include "ElementStruct.h" - - class TOffsetGeneration : public ::testing::Test { --- -2.35.1 - -From 33e5da8c1f678382ab2fd65d000d388bb0dbf3ab Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Sun, 17 Apr 2022 22:17:56 +0200 -Subject: [PATCH] Backward compatibility with older googletest versions in EPEL - ---- - math/vecops/test/vecops_rvec.cxx | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/math/vecops/test/vecops_rvec.cxx b/math/vecops/test/vecops_rvec.cxx -index 7b513a858b..bea39636ce 100644 ---- a/math/vecops/test/vecops_rvec.cxx -+++ b/math/vecops/test/vecops_rvec.cxx -@@ -13,6 +13,10 @@ - #include <sstream> - #include <cmath> - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - using namespace ROOT; - using namespace ROOT::VecOps; - using namespace ROOT::Detail::VecOps; // for `IsSmall` and `IsAdopting` --- -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-older-python.patch b/root-older-python.patch deleted file mode 100644 index fa6a05a..0000000 --- a/root-older-python.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 61116151cce8fe5b397555a65f7b55001b8e416b Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Fri, 23 Apr 2021 21:39:17 +0200 -Subject: [PATCH] Compat with no f-strings - ---- - tutorials/tmva/PyTorch_Generate_CNN_Model.py | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/tutorials/tmva/PyTorch_Generate_CNN_Model.py b/tutorials/tmva/PyTorch_Generate_CNN_Model.py -index 7024112f03..5a314f86dd 100644 ---- a/tutorials/tmva/PyTorch_Generate_CNN_Model.py -+++ b/tutorials/tmva/PyTorch_Generate_CNN_Model.py -@@ -56,7 +56,7 @@ def fit(model, train_loader, val_loader, num_epochs, batch_size, optimizer, crit - # print train statistics - running_train_loss += train_loss.item() - if i % 4 == 3: # print every 4 mini-batches -- print(f"[{epoch+1}, {i+1}] train loss: {running_train_loss / 4 :.3f}") -+ print("[{}, {}] train loss: {:.3f}".format(epoch+1, i+1, running_train_loss / 4)) - running_train_loss = 0.0 - - if schedule: -@@ -75,15 +75,15 @@ def fit(model, train_loader, val_loader, num_epochs, batch_size, optimizer, crit - - curr_val = running_val_loss / len(val_loader) - if save_best: -- if best_val==None: -- best_val = curr_val -- best_val = save_best(model, curr_val, best_val) -+ if best_val is None: -+ best_val = curr_val -+ best_val = save_best(model, curr_val, best_val) - - # print val statistics per epoch -- print(f"[{epoch+1}] val loss: {curr_val :.3f}") -+ print("[{}] val loss: {:.3f}".format(epoch+1, curr_val)) - running_val_loss = 0.0 - -- print(f"Finished Training on {epoch+1} Epochs!") -+ print("Finished Training on {} Epochs!".format(epoch+1)) - - return model - --- -2.30.2 - diff --git a/root-rcolor-static-init.patch b/root-rcolor-static-init.patch deleted file mode 100644 index 18e4299..0000000 --- a/root-rcolor-static-init.patch +++ /dev/null @@ -1,42 +0,0 @@ -From c4df90861879f45b281c2a8e55212b711cfdbfa0 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Tue, 29 Mar 2022 15:30:20 +0200 -Subject: [PATCH] Avoid crashes due to static initialization order - -Most commonly seen on ppc64le. Backtrace: - -=========================================================== -The lines below might hint at the cause of the crash. -You may get help by asking at the ROOT forum
https://root.cern/forum
-Only if you are really convinced it is a bug in ROOT then please submit a -report at
https://root.cern/bugs
Please post the ENTIRE stack trace -from above as an attachment in addition to anything else -that might help us fixing this issue. -=========================================================== - #11 ROOT::Experimental::RColor::toHex[abi:cxx11](unsigned char) (v=<optimized out>) at /usr/include/c++/11/ext/new_allocator.h:82 - #12 0x00007fff90c220ec in ROOT::Experimental::RColor::SetRGB (this=0x7fffeadf5d10, r=<optimized out>, g=<optimized out>, b=<optimized out>) at /usr/include/c++/11/ext/new_allocator.h:89 ---- - graf2d/gpadv7/src/RColor.cxx | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/graf2d/gpadv7/src/RColor.cxx b/graf2d/gpadv7/src/RColor.cxx -index de325f1ea3..6878360073 100644 ---- a/graf2d/gpadv7/src/RColor.cxx -+++ b/graf2d/gpadv7/src/RColor.cxx -@@ -232,10 +232,10 @@ std::vector<uint8_t> RColor::AsRGBA() const - - std::string RColor::toHex(uint8_t v) - { -- static const char *digits = "0123456789ABCDEF"; -+ auto digits = [](auto d) { return d < 10 ? '0' + d : 'A' - 10 + d; }; - std::string res(2,'0'); -- res[0] = digits[v >> 4]; -- res[1] = digits[v & 0xf]; -+ res[0] = digits(v >> 4); -+ res[1] = digits(v & 0xf); - return res; - } - --- -2.35.1 - diff --git a/root-roofit-tutorial.patch b/root-roofit-tutorial.patch deleted file mode 100644 index 9d73e11..0000000 --- a/root-roofit-tutorial.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 914e46f1c591f8b9b34115863ff31e42e19bfb97 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Mon, 28 Mar 2022 09:32:24 +0200 -Subject: [PATCH] Use calls from Python directly - -The rf105_funcbinding.py tutorial used to trigger errors due to unknown -symbols. In particular the custum new and delete operators used in RooFit -were not autoloaded when needed. - -In the tutorial there was a workaround implemented to call ProcessLine -instead of making calls directly form Python, to make the autoloading -from the C++ side of ROOT instead. This did not quite fix the problem, -and the tutorial still randomly failed due to missing symbols. - -After changing the algorthm used for autoloading in commit -6ae602bba7d33c900a117c9de0187ab5a28e14b8 these problems were solved. - -After this fix using the direct calls from Python also works, so this -PR suggests updating the tutorial to do that. ---- - tutorials/roofit/rf105_funcbinding.py | 30 ++++++--------------------- - 1 file changed, 6 insertions(+), 24 deletions(-) - -diff --git a/tutorials/roofit/rf105_funcbinding.py b/tutorials/roofit/rf105_funcbinding.py -index 72d9cf62fc..b9de2a095a 100644 ---- a/tutorials/roofit/rf105_funcbinding.py -+++ b/tutorials/roofit/rf105_funcbinding.py -@@ -17,15 +17,8 @@ import ROOT - # --------------------------------------------------- - - # Bind one-dimensional ROOT.TMath.Erf function as ROOT.RooAbsReal function --# Directly trying this in python doesn't work: --# x = ROOT.RooRealVar("x", "x", -3, 3) --# erf = ROOT.RooFit.bindFunction("erf", ROOT.TMath.Erf, x) --# Need to go through C interface --ROOT.gInterpreter.ProcessLine( -- 'auto x = RooRealVar("x", "x", -3, 3); auto myerf = RooFit::bindFunction("erf", TMath::Erf, x)' --) --x = ROOT.x --erf = ROOT.myerf -+x = ROOT.RooRealVar("x", "x", -3, 3) -+erf = ROOT.RooFit.bindFunction("erf", ROOT.TMath.Erf, x) - - # Print erf definition - erf.Print() -@@ -38,21 +31,10 @@ erf.plotOn(frame1) - # ----------------------------------------------------------------------- - - # Bind pdf ROOT.Math.Beta with three variables as ROOT.RooAbsPdf function --# As above, this does not work directly in python --# x2 = ROOT.RooRealVar("x2", "x2", 0, 0.999) --# a = ROOT.RooRealVar("a", "a", 5, 0, 10) --# b = ROOT.RooRealVar("b", "b", 2, 0, 10) --# beta = ROOT.RooFit.bindPdf("beta", ROOT.Math.beta_pdf, x2, a, b) --ROOT.gInterpreter.ProcessLine( -- 'auto x2 = RooRealVar("x2", "x2", 0, 0.999);\ -- auto a = RooRealVar("a", "a", 5, 0, 10);\ -- auto b = RooRealVar("b", "b", 5, 0, 10);\ -- auto beta = RooFit::bindPdf("beta", ROOT::Math::beta_pdf, x2, a, b)' --) --x2 = ROOT.x2 --a = ROOT.a --b = ROOT.b --beta = ROOT.beta -+x2 = ROOT.RooRealVar("x2", "x2", 0, 0.999) -+a = ROOT.RooRealVar("a", "a", 5, 0, 10) -+b = ROOT.RooRealVar("b", "b", 2, 0, 10) -+beta = ROOT.RooFit.bindPdf("beta", ROOT.Math.beta_pdf, x2, a, b) - - # Perf beta definition - beta.Print() --- -2.35.1 - diff --git a/root-stressvector-test-fails-on-ix86.patch b/root-stressvector-test-fails-on-ix86.patch new file mode 100644 index 0000000..ca3f212 --- /dev/null +++ b/root-stressvector-test-fails-on-ix86.patch @@ -0,0 +1,37 @@ +From df2902f6c970aa903200a272fd6a79788da3df4f Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Tue, 28 Feb 2023 11:33:28 +0100 +Subject: [PATCH] The stressVector test fails on ix86 due to too strict check: + +DeltaR TLorentzVector time = 0.2610929 (sec) +DeltaR XYZTVector time = 0.22973299 (sec) +DeltaR PtEtaPhiEVector time = 0.0016570091 (sec) +-12823.3585955796 -12823.35859557827 -12823.35859557827 +Test DeltaR failed !! + +The new value for the scale parameter (50) was calculated from the +above values: + +root [2] (-12823.3585955796 - (-12823.35859557827)) / -12823.3585955796 / std::numeric_limits<double>::epsilon() / 10 +(double) 46.762663 +--- + test/stressVector.cxx | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/test/stressVector.cxx b/test/stressVector.cxx +index 83b86fb2b4..18dc97d421 100644 +--- a/test/stressVector.cxx ++++ b/test/stressVector.cxx +@@ -540,8 +540,7 @@ int main(int argc,const char *argv[]) { + s1=a.testDeltaR (v1, t, t1, "DeltaR TLorentzVector " ); + s2=a.testDeltaR (v2, t, t2, "DeltaR XYZTVector " ); + s3=a.testDeltaR (v3, t, t3, "DeltaR PtEtaPhiEVector " ); +- a.check("DeltaR",s1,s2,s3,15); +- ++ a.check("DeltaR", s1, s2, s3, 50); + + int n1, n2, n3; + n1 = a.testAnalysis (v1, t, t1, "Analysis1 TLorentzVector " ); +-- +2.39.2 + diff --git a/root-symbol-rewrite.patch b/root-symbol-rewrite.patch deleted file mode 100644 index c91bbe6..0000000 --- a/root-symbol-rewrite.patch +++ /dev/null @@ -1,31 +0,0 @@ -From f99eedeb72644671cd584f48e4c136d47f6b0020 Mon Sep 17 00:00:00 2001 -From: Fangrui Song <maskray(a)google.com> -Date: Thu, 12 Dec 2019 16:18:57 -0800 -Subject: [PATCH] [MC][PowerPC] Fix a crash when redefining a symbol after .set - -Fix PR44284. This is probably not valid assembly but we should not crash. - -Reviewed By: luporl, #powerpc, steven.zhang - -Differential Revision:
https://reviews.llvm.org/D71443
---- - interpreter/llvm/src/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/interpreter/llvm/src/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp b/interpreter/llvm/src/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp -index 00df9e41fdae..5e91bdb2f8de 100644 ---- a/interpreter/llvm/src/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp -+++ b/interpreter/llvm/src/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp -@@ -201,7 +201,8 @@ public: - - void finish() override { - for (auto *Sym : UpdateOther) -- copyLocalEntry(Sym, Sym->getVariableValue()); -+ if (Sym->isVariable()) -+ copyLocalEntry(Sym, Sym->getVariableValue()); - } - - private: --- -2.33.1 - diff --git a/root-test-timeout.patch b/root-test-timeout.patch deleted file mode 100644 index a07aa39..0000000 --- a/root-test-timeout.patch +++ /dev/null @@ -1,110 +0,0 @@ -From 4d09235937ea29913cbf9a9b5bcd002b52557c0e 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 - ---- - cmake/modules/RootMacros.cmake | 14 +++++++------- - tmva/tmva/test/DNN/CMakeLists.txt | 2 +- - tree/tree/test/CMakeLists.txt | 2 +- - tutorials/CMakeLists.txt | 4 ++-- - 4 files changed, 11 insertions(+), 11 deletions(-) - -diff --git a/cmake/modules/RootMacros.cmake b/cmake/modules/RootMacros.cmake -index cc61f4bbad..3e4559fc19 100644 ---- a/cmake/modules/RootMacros.cmake -+++ b/cmake/modules/RootMacros.cmake -@@ -1779,6 +1779,7 @@ endfunction() - #---------------------------------------------------------------------------- - # function ROOT_ADD_GTEST(<testsuite> source1 source2... - # [WILLFAIL] Negate output of test -+# [TIMEOUT seconds] - # [COPY_TO_BUILDDIR file1 file2] Copy listed files when ctest invokes the test. - # [LIBRARIES lib1 lib2...] -- Libraries to link against - # [LABELS label1 label2...] -- Labels to annotate the test -@@ -1790,7 +1791,7 @@ endfunction() - function(ROOT_ADD_GTEST test_suite) - cmake_parse_arguments(ARG - "WILLFAIL" -- "REPEATS;FAILREGEX" -+ "TIMEOUT;REPEATS;FAILREGEX" - "COPY_TO_BUILDDIR;LIBRARIES;LABELS;INCLUDE_DIRS" ${ARGN}) - - ROOT_GET_SOURCES(source_files . ${ARG_UNPARSED_ARGUMENTS}) -@@ -1821,9 +1822,7 @@ function(ROOT_ADD_GTEST test_suite) - if(ARG_WILLFAIL) - set(willfail WILLFAIL) - endif() -- if(ARG_LABELS) -- set(labels "LABELS ${ARG_LABELS}") -- endif() -+ - if(ARG_REPEATS) - set(extra_command --gtest_repeat=${ARG_REPEATS} --gtest_break_on_failure) - endif() -@@ -1833,10 +1832,11 @@ function(ROOT_ADD_GTEST test_suite) - gtest${mangled_name} - COMMAND ${test_suite} ${extra_command} - WORKING_DIR ${CMAKE_CURRENT_BINARY_DIR} -- COPY_TO_BUILDDIR ${ARG_COPY_TO_BUILDDIR} -+ COPY_TO_BUILDDIR "${ARG_COPY_TO_BUILDDIR}" - ${willfail} -- ${labels} -- FAILREGEX ${ARG_FAILREGEX} -+ TIMEOUT "${ARG_TIMEOUT}" -+ LABELS "${ARG_LABELS}" -+ FAILREGEX "${ARG_FAILREGEX}" - ) - endfunction() - -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/tree/tree/test/CMakeLists.txt b/tree/tree/test/CMakeLists.txt -index dbe664f8a0..6284e3c4c5 100644 ---- a/tree/tree/test/CMakeLists.txt -+++ b/tree/tree/test/CMakeLists.txt -@@ -20,7 +20,7 @@ ROOT_ADD_GTEST(testBulkApi BulkApi.cxx LIBRARIES RIO Tree TreePlayer) - target_include_directories(testTOffsetGeneration PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) - ROOT_STANDARD_LIBRARY_PACKAGE(SillyStruct NO_INSTALL_HEADERS HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/SillyStruct.h SOURCES SillyStruct.cxx LINKDEF SillyStructLinkDef.h DEPENDENCIES RIO) - ROOT_ADD_GTEST(testBulkApi BulkApi.cxx LIBRARIES RIO Tree TreePlayer) --ROOT_ADD_GTEST(testBulkApiMultiple BulkApiMultiple.cxx LIBRARIES RIO Tree TreePlayer) -+ROOT_ADD_GTEST(testBulkApiMultiple BulkApiMultiple.cxx LIBRARIES RIO Tree TreePlayer TIMEOUT 3000) - ROOT_ADD_GTEST(testBulkApiVarLength BulkApiVarLength.cxx LIBRARIES RIO Tree TreePlayer) - ROOT_ADD_GTEST(testBulkApiSillyStruct BulkApiSillyStruct.cxx LIBRARIES RIO Tree TreePlayer SillyStruct) - ROOT_ADD_GTEST(testTBasket TBasket.cxx LIBRARIES RIO Tree) -diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt -index 6ae9be5869..982432fe15 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.38.1 - diff --git a/root-testRooAbsL-test-compares-two-doubles-and-fails.patch b/root-testRooAbsL-test-compares-two-doubles-and-fails.patch new file mode 100644 index 0000000..24a4148 --- /dev/null +++ b/root-testRooAbsL-test-compares-two-doubles-and-fails.patch @@ -0,0 +1,49 @@ +From d6a11ace0d3d25c96dd20cef1436642b5caa102e Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Tue, 28 Feb 2023 11:02:03 +0100 +Subject: [PATCH] The testRooAbsL test compares two doubles and fails due to + rounding errors. The failure happens on ppc64le and aarch64. + +This PR changes EXPECT_EQ to EXPECT_DOUBLE_EQ in the affected test. + +[ RUN ] SimBinnedConstrainedTest.SubEventSections +/builddir/build/BUILD/root-6.28.00/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx:293: Failure +Expected equality of these values: + whole.Sum() + Which is: -1263.796050661927 + N_events_total_parts.Sum() + Which is: -1263.7960506619268 +/builddir/build/BUILD/root-6.28.00/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx:303: Failure +Expected equality of these values: + whole.Sum() + Which is: -1263.796050661927 + thrice_N_events_total_parts.Sum() + Which is: -1263.7960506619268 +[ FAILED ] SimBinnedConstrainedTest.SubEventSections (199 ms) +--- + roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx b/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx +index 600f4da7be..05dcd6a241 100644 +--- a/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx ++++ b/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx +@@ -293,7 +293,7 @@ TEST_F(SimBinnedConstrainedTest, SubEventSections) + {static_cast<double>(ix) / N_events_total, static_cast<double>(ix + 1) / N_events_total}, 0, + likelihood->getNComponents()); + } +- EXPECT_EQ(whole.Sum(), N_events_total_parts.Sum()); ++ EXPECT_DOUBLE_EQ(whole.Sum(), N_events_total_parts.Sum()); + + // now let's do it again over a number of sections 3 times the number of events + ROOT::Math::KahanSum<double> thrice_N_events_total_parts; +@@ -303,5 +303,5 @@ TEST_F(SimBinnedConstrainedTest, SubEventSections) + {static_cast<double>(ix) / (3 * N_events_total), static_cast<double>(ix + 1) / (3 * N_events_total)}, 0, + likelihood->getNComponents()); + } +- EXPECT_EQ(whole.Sum(), thrice_N_events_total_parts.Sum()); ++ EXPECT_DOUBLE_EQ(whole.Sum(), thrice_N_events_total_parts.Sum()); + } +-- +2.39.2 + diff --git a/root-threadsh1-avoid-heap-use-after-free.patch b/root-threadsh1-avoid-heap-use-after-free.patch deleted file mode 100644 index 6111f2b..0000000 --- a/root-threadsh1-avoid-heap-use-after-free.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 493c4210168fa475aa4130c12e8fdff3b7d85c09 Mon Sep 17 00:00:00 2001 -From: Philippe Canal <pcanal(a)fnal.gov> -Date: Mon, 7 Mar 2022 13:32:37 -0600 -Subject: [PATCH] threadsh1: Avoid heap-use-after-free. - -Previously, the Canvas `Close` signal which triggers a call to the local function `close` which -was unconditionally call `Kill` on its associated thread would call it on an already deleted -object if the `TThread` was deleted before the `TCanvas`. - -This fix #10015 (detected by using ASAN). ---- - tutorials/legacy/thread/threadsh1.C | 13 +++++++------ - 1 file changed, 7 insertions(+), 6 deletions(-) - -diff --git a/tutorials/legacy/thread/threadsh1.C b/tutorials/legacy/thread/threadsh1.C -index b819f5d020..d6abc67e36 100644 ---- a/tutorials/legacy/thread/threadsh1.C -+++ b/tutorials/legacy/thread/threadsh1.C -@@ -67,7 +67,8 @@ void *joiner(void *) - void closed(Int_t id) - { - // kill the thread matching the canvas being closed -- t[id]->Kill(); -+ if (t[id]) -+ t[id]->Kill(); - // and set the canvas pointer to 0 - c[id] = 0; - } -@@ -142,11 +143,11 @@ void threadsh1() - t[4]->Join(); - TThread::Ps(); - -- delete t[0]; -- delete t[1]; -- delete t[2]; -- delete t[3]; -- delete t[4]; -+ delete t[0]; t[0] = nullptr; // Prevents after deletion access. -+ delete t[1]; t[1] = nullptr; -+ delete t[2]; t[2] = nullptr; -+ delete t[3]; t[3] = nullptr; -+ delete t[4]; t[4] = nullptr; - - delete rng[0]; - delete rng[1]; --- -2.35.1 - diff --git a/root-tmva-Speed-up-TMVA-CNN-and-RNN-tutorials.patch b/root-tmva-Speed-up-TMVA-CNN-and-RNN-tutorials.patch new file mode 100644 index 0000000..6a719c5 --- /dev/null +++ b/root-tmva-Speed-up-TMVA-CNN-and-RNN-tutorials.patch @@ -0,0 +1,239 @@ +From 54a05a995bef827413d69b63559494a78ed56946 Mon Sep 17 00:00:00 2001 +From: moneta <lorenzo.moneta(a)cern.ch> +Date: Tue, 14 Feb 2023 11:00:44 +0100 +Subject: [PATCH] [tmva] Speed up TMVA CNN and RNN tutorials + +Run tutorials with a amximum of 4 threads to avoid MT problems on some machines. +Disable also OpenMP when running in MT in ROOT + +Reduce also by a factor of 5 the number of input events +--- + tutorials/tmva/TMVA_CNN_Classification.C | 25 +++++++++++++++------- + tutorials/tmva/TMVA_CNN_Classification.py | 12 +++++------ + tutorials/tmva/TMVA_RNN_Classification.C | 11 +++++----- + tutorials/tmva/TMVA_RNN_Classification.py | 26 ++++++++++------------- + 4 files changed, 39 insertions(+), 35 deletions(-) + +diff --git a/tutorials/tmva/TMVA_CNN_Classification.C b/tutorials/tmva/TMVA_CNN_Classification.C +index 0966017ae2..cc6829a24d 100644 +--- a/tutorials/tmva/TMVA_CNN_Classification.C ++++ b/tutorials/tmva/TMVA_CNN_Classification.C +@@ -107,7 +107,16 @@ void MakeImagesTree(int n, int nh, int nw) + f.Close(); + } + +-void TMVA_CNN_Classification(std::vector<bool> opt = {1, 1, 1, 1, 1}) ++/// @brief Run the TMVA CNN Classification example ++/// @param nevts : number of signal/background events. Use by default a low value (1000) ++/// but increase to at least 5000 to get a good result ++/// @param opt : vector of bool with method used (default all on if available). The order is: ++/// - TMVA CNN ++/// - Keras CNN ++/// - TMVA DNN ++/// - TMVA BDT ++/// - PyTorch CNN ++void TMVA_CNN_Classification(int nevts = 1000, std::vector<bool> opt = {1, 1, 1, 1, 1}) + { + + bool useTMVACNN = (opt.size() > 0) ? opt[0] : false; +@@ -125,17 +134,17 @@ void TMVA_CNN_Classification(std::vector<bool> opt = {1, 1, 1, 1, 1}) + + bool writeOutputFile = true; + +- int num_threads = 0; // use default threads ++ int num_threads = 4; // use by default 4 threads if value is not set before ++ // switch off MT in OpenBLAS to avoid conflict with tbb ++ gSystem->Setenv("OMP_NUM_THREADS", "1"); + + TMVA::Tools::Instance(); + + // do enable MT running + if (num_threads >= 0) { + ROOT::EnableImplicitMT(num_threads); +- if (num_threads > 0) gSystem->Setenv("OMP_NUM_THREADS", TString::Format("%d",num_threads)); + } +- else +- gSystem->Setenv("OMP_NUM_THREADS", "1"); ++ + + std::cout << "Running with nthreads = " << ROOT::GetThreadPoolSize() << std::endl; + +@@ -161,7 +170,7 @@ void TMVA_CNN_Classification(std::vector<bool> opt = {1, 1, 1, 1, 1}) + The factory is the major TMVA object you have to interact with. Here is the list of parameters you need to pass + + - The first argument is the base of the name of all the output +- weightfiles in the directory weight/ that will be created with the ++ weight files in the directory weight/ that will be created with the + method parameters + + - The second argument is the output file for the training results +@@ -208,7 +217,7 @@ void TMVA_CNN_Classification(std::vector<bool> opt = {1, 1, 1, 1, 1}) + + // if file does not exists create it + if (!fileExist) { +- MakeImagesTree(5000, 16, 16); ++ MakeImagesTree(nevts, 16, 16); + } + + // TString inputFileName = "tmva_class_example.root"; +@@ -289,7 +298,7 @@ void TMVA_CNN_Classification(std::vector<bool> opt = {1, 1, 1, 1, 1}) + // Boosted Decision Trees + if (useTMVABDT) { + factory.BookMethod(loader, TMVA::Types::kBDT, "BDT", +- "!V:NTrees=400:MinNodeSize=2.5%:MaxDepth=2:BoostType=AdaBoost:AdaBoostBeta=0.5:" ++ "!V:NTrees=200:MinNodeSize=2.5%:MaxDepth=2:BoostType=AdaBoost:AdaBoostBeta=0.5:" + "UseBaggedBoost:BaggedSampleFraction=0.5:SeparationType=GiniIndex:nCuts=20"); + } + /** +diff --git a/tutorials/tmva/TMVA_CNN_Classification.py b/tutorials/tmva/TMVA_CNN_Classification.py +index 0760bacfd9..85fde20763 100644 +--- a/tutorials/tmva/TMVA_CNN_Classification.py ++++ b/tutorials/tmva/TMVA_CNN_Classification.py +@@ -25,6 +25,9 @@ + + import ROOT + ++#switch off MT in OpenMP (BLAS) ++ROOT.gSystem.Setenv("OMP_NUM_THREADS", "1") ++ + TMVA = ROOT.TMVA + TFile = ROOT.TFile + +@@ -105,6 +108,7 @@ def MakeImagesTree(n, nh, nw): + hasGPU = ROOT.gSystem.GetFromPipe("root-config --has-tmva-gpu") == "yes" + hasCPU = ROOT.gSystem.GetFromPipe("root-config --has-tmva-cpu") == "yes" + ++nevt = 1000 # use a larger value to get better results + opt = [1, 1, 1, 1, 1] + useTMVACNN = opt[0] if len(opt) > 0 else False + useKerasCNN = opt[1] if len(opt) > 1 else False +@@ -141,17 +145,13 @@ if not useTMVACNN: + + writeOutputFile = True + +-num_threads = 0 # use default threads ++num_threads = 4 # use default threads + max_epochs = 10 # maximum number of epochs used for training + + + # do enable MT running + if num_threads >= 0: + ROOT.EnableImplicitMT(num_threads) +- if (num_threads > 0) : +- ROOT.gSystem.Setenv("OMP_NUM_THREADS", str(num_threads)) +-else: +- ROOT.gSystem.Setenv("OMP_NUM_THREADS", "1") + + print("Running with nthreads = ", ROOT.GetThreadPoolSize()) + +@@ -218,7 +218,7 @@ inputFileName = "images_data_16x16.root" + + # if the input file does not exist create it + if ROOT.gSystem.AccessPathName(inputFileName): +- MakeImagesTree(5000, 16, 16) ++ MakeImagesTree(nevt, 16, 16) + + inputFile = TFile.Open(inputFileName) + if inputFile is None: +diff --git a/tutorials/tmva/TMVA_RNN_Classification.C b/tutorials/tmva/TMVA_RNN_Classification.C +index 2711673ec9..8701ba6c19 100644 +--- a/tutorials/tmva/TMVA_RNN_Classification.C ++++ b/tutorials/tmva/TMVA_RNN_Classification.C +@@ -136,13 +136,14 @@ void MakeTimeData(int n, int ntime, int ndim ) + } + } + /// macro for performing a classification using a Recurrent Neural Network ++/// @param nevts = 2000 Number of events used. (increase for better classification results) + /// @param use_type + /// use_type = 0 use Simple RNN network + /// use_type = 1 use LSTM network + /// use_type = 2 use GRU + /// use_type = 3 build 3 different networks with RNN, LSTM and GRU + +-void TMVA_RNN_Classification(int use_type = 1) ++void TMVA_RNN_Classification(int nevts = 2000, int use_type = 1) + { + + const int ninput = 30; +@@ -150,7 +151,7 @@ void TMVA_RNN_Classification(int use_type = 1) + const int batchSize = 100; + const int maxepochs = 20; + +- int nTotEvts = 10000; // total events to be generated for signal or background ++ int nTotEvts = nevts; // total events to be generated for signal or background + + bool useKeras = true; + +@@ -190,14 +191,12 @@ void TMVA_RNN_Classification(int use_type = 1) + useKeras = false; + #endif + +- int num_threads = 0; // use by default all threads ++ int num_threads = 4; // use by default all threads ++ gSystem->Setenv("OMP_NUM_THREADS", "1"); // switch off MT in OpenBLAS + // do enable MT running + if (num_threads >= 0) { + ROOT::EnableImplicitMT(num_threads); +- if (num_threads > 0) gSystem->Setenv("OMP_NUM_THREADS", TString::Format("%d",num_threads)); + } +- else +- gSystem->Setenv("OMP_NUM_THREADS", "1"); + + TMVA::Config::Instance(); + +diff --git a/tutorials/tmva/TMVA_RNN_Classification.py b/tutorials/tmva/TMVA_RNN_Classification.py +index 88280a5849..625a120b3d 100644 +--- a/tutorials/tmva/TMVA_RNN_Classification.py ++++ b/tutorials/tmva/TMVA_RNN_Classification.py +@@ -22,6 +22,16 @@ + + import ROOT + ++num_threads = 4 # use max 4 threads ++# do enable MT running ++if ROOT.gSystem.GetFromPipe("root-config --has-imt") == "yes": ++ ROOT.EnableImplicitMT(num_threads) ++ ROOT.gSystem.Setenv("OMP_NUM_THREADS", "1") # switch OFF MT in OpenBLAS ++ print("Running with nthreads = {}".format(ROOT.GetThreadPoolSize())) ++else: ++ print("Running in serail mode since ROOT does not support MT") ++ ++ + TMVA = ROOT.TMVA + TFile = ROOT.TFile + +@@ -141,7 +151,7 @@ ntime = 10 + batchSize = 100 + maxepochs = 10 + +-nTotEvts = 10000 # total events to be generated for signal or background ++nTotEvts = 2000 # total events to be generated for signal or background + + useKeras = True + +@@ -184,22 +194,8 @@ if ROOT.gSystem.GetFromPipe("root-config --has-tmva-pymva") == "yes": + else: + useKeras = False + +-num_threads = 0 # use by default all threads +-# do enable MT running +-if ROOT.gSystem.GetFromPipe("root-config --has-imt") == "yes": +- if num_threads >= 0: +- ROOT.EnableImplicitMT(num_threads) +- if num_threads > 0: +- ROOT.gSystem.Setenv("OMP_NUM_THREADS", str(num_threads)) +- else: +- ROOT.gSystem.Setenv("OMP_NUM_THREADS", "1") + + +- print("Running with nthreads = {}".format(ROOT.GetThreadPoolSize())) +- +-else: +- print("Running in serail mode since ROOT does not support MT") +- + inputFileName = "time_data_t10_d30.root" + + fileDoesNotExist = ROOT.gSystem.AccessPathName(inputFileName) +-- +2.39.2 + diff --git a/root-tmva-threads.patch b/root-tmva-threads.patch deleted file mode 100644 index 7506abc..0000000 --- a/root-tmva-threads.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 589ac491519446191b7d480a476ab831dc09b5f9 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Wed, 30 Mar 2022 15:51:07 +0200 -Subject: [PATCH] Limit the number of threads in TMVA CNN/DNN test to save - memory - -Processing /builddir/build/BUILD/root-6.26.00/tutorials/tmva/TMVA_CNN_Classification.C... -Running with nthreads = 224 - -[ ... ] - -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. - *** Break *** segmentation violation - *** Break *** segmentation violation - *** Break *** segmentation violation - *** Break *** segmentation violation - *** Break *** segmentation violation - *** Break *** segmentation violation ---- - tutorials/tmva/TMVA_CNN_Classification.C | 6 ++++-- - tutorials/tmva/TMVA_RNN_Classification.C | 6 ++++-- - 2 files changed, 8 insertions(+), 4 deletions(-) - -diff --git a/tutorials/tmva/TMVA_CNN_Classification.C b/tutorials/tmva/TMVA_CNN_Classification.C -index 3e590c5958..b748fcee6c 100644 ---- a/tutorials/tmva/TMVA_CNN_Classification.C -+++ b/tutorials/tmva/TMVA_CNN_Classification.C -@@ -125,14 +125,16 @@ void TMVA_CNN_Classification(std::vector<bool> opt = {1, 1, 1, 1, 1}) - - bool writeOutputFile = true; - -- int num_threads = 0; // use default threads -+ int num_threads = 32; - - TMVA::Tools::Instance(); - - // do enable MT running - if (num_threads >= 0) { - ROOT::EnableImplicitMT(num_threads); -- if (num_threads > 0) gSystem->Setenv("OMP_NUM_THREADS", TString::Format("%d",num_threads)); -+ if (ROOT::GetThreadPoolSize() > 0) -+ gSystem->Setenv("OMP_NUM_THREADS", -+ TString::Format("%u", ROOT::GetThreadPoolSize())); - } - else - gSystem->Setenv("OMP_NUM_THREADS", "1"); -diff --git a/tutorials/tmva/TMVA_RNN_Classification.C b/tutorials/tmva/TMVA_RNN_Classification.C -index 5be80824f9..f902025875 100644 ---- a/tutorials/tmva/TMVA_RNN_Classification.C -+++ b/tutorials/tmva/TMVA_RNN_Classification.C -@@ -190,11 +190,13 @@ void TMVA_RNN_Classification(int use_type = 1) - useKeras = false; - #endif - -- int num_threads = 0; // use by default all threads -+ int num_threads = 32; - // do enable MT running - if (num_threads >= 0) { - ROOT::EnableImplicitMT(num_threads); -- if (num_threads > 0) gSystem->Setenv("OMP_NUM_THREADS", TString::Format("%d",num_threads)); -+ if (ROOT::GetThreadPoolSize() > 0) -+ gSystem->Setenv("OMP_NUM_THREADS", -+ TString::Format("%u", ROOT::GetThreadPoolSize())); - } - else - gSystem->Setenv("OMP_NUM_THREADS", "1"); --- -2.35.1 - diff --git a/root-unbundle-gtest.patch b/root-unbundle-gtest.patch deleted file mode 100644 index 1bdf869..0000000 --- a/root-unbundle-gtest.patch +++ /dev/null @@ -1,202 +0,0 @@ -From 29884ae01fde27204d92f554da4e92227a2ed1e6 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Sat, 26 Mar 2022 10:22:07 +0100 -Subject: [PATCH 1/2] Implement builtin_gtest option - -By setting the option to OFF the system gtest and gmock are used. -This allows doing tests without network available, e.g. during a -package build for Fedora/EPEL. ---- - cmake/modules/FindGTest.cmake | 81 +++++++++++++++++++++ - cmake/modules/RootBuildOptions.cmake | 2 + - cmake/modules/RootMacros.cmake | 2 +- - cmake/modules/SearchInstalledSoftware.cmake | 44 ++++++++--- - 4 files changed, 118 insertions(+), 11 deletions(-) - create mode 100644 cmake/modules/FindGTest.cmake - -diff --git a/cmake/modules/FindGTest.cmake b/cmake/modules/FindGTest.cmake -new file mode 100644 -index 0000000000..438ec501c2 ---- /dev/null -+++ b/cmake/modules/FindGTest.cmake -@@ -0,0 +1,81 @@ -+# Find the gtest and gmock includes and library. -+# -+# This module defines -+# GTEST_LIBRARIES -+# GTEST_MAIN_LIBRARIES -+# GTEST_INCLUDE_DIRS -+# GMOCK_LIBRARIES -+# GMOCK_MAIN_LIBRARIES -+# GMOCK_INCLUDE_DIRS -+# -+# GTEST_FOUND true if all libraries present -+ -+find_package(Threads QUIET) -+ -+find_path(GTEST_INCLUDE_DIRS NAMES gtest/gtest.h) -+find_library(GTEST_LIBRARIES NAMES gtest) -+find_library(GTEST_MAIN_LIBRARIES NAMES gtest_main) -+ -+find_path(GMOCK_INCLUDE_DIRS NAMES gmock/gmock.h) -+find_library(GMOCK_LIBRARIES NAMES gmock) -+find_library(GMOCK_MAIN_LIBRARIES NAMES gmock_main) -+ -+# Special for EPEL 7's gmock -+if(NOT GMOCK_LIBRARIES) -+ find_path(GMOCK_SRC_DIR NAMES gmock-all.cc PATHS /usr/src/gmock) -+endif() -+ -+if(NOT GMOCK_MAIN_LIBRARIES) -+ find_path(GMOCK_MAIN_SRC_DIR NAMES gmock_main.cc PATHS /usr/src/gmock) -+endif() -+ -+if (GTEST_INCLUDE_DIRS AND -+ GTEST_LIBRARIES AND -+ GTEST_MAIN_LIBRARIES AND -+ GMOCK_INCLUDE_DIRS AND -+ (GMOCK_LIBRARIES OR GMOCK_SRC_DIR) AND -+ (GMOCK_MAIN_LIBRARIES OR GMOCK_MAIN_SRC_DIR)) -+ -+ add_library(gtest UNKNOWN IMPORTED) -+ set_target_properties(gtest PROPERTIES -+ IMPORTED_LOCATION ${GTEST_LIBRARIES} -+ INTERFACE_INCLUDE_DIRECTORIES ${GTEST_INCLUDE_DIRS}) -+ target_link_libraries(gtest INTERFACE Threads::Threads) -+ -+ add_library(gtest_main UNKNOWN IMPORTED) -+ set_target_properties(gtest_main PROPERTIES -+ IMPORTED_LOCATION ${GTEST_MAIN_LIBRARIES}) -+ target_link_libraries(gtest_main INTERFACE gtest Threads::Threads) -+ -+ if(GMOCK_LIBRARIES) -+ add_library(gmock UNKNOWN IMPORTED) -+ set_target_properties(gmock PROPERTIES -+ IMPORTED_LOCATION ${GMOCK_LIBRARIES} -+ INTERFACE_INCLUDE_DIRECTORIES ${GMOCK_INCLUDE_DIRS}) -+ else() -+ add_library(gmock STATIC ${GMOCK_SRC_DIR}/gmock-all.cc) -+ target_include_directories(gmock PUBLIC ${GMOCK_INCLUDE_DIRS}) -+ set(GMOCK_LIBRARIES gmock) -+ endif() -+ target_link_libraries(gmock INTERFACE gtest Threads::Threads) -+ -+ if(GMOCK_MAIN_LIBRARIES) -+ add_library(gmock_main UNKNOWN IMPORTED) -+ set_target_properties(gmock_main PROPERTIES -+ IMPORTED_LOCATION ${GMOCK_MAIN_LIBRARIES}) -+ else() -+ add_library(gmock_main STATIC ${GMOCK_MAIN_SRC_DIR}/gmock_main.cc) -+ set(GMOCK_MAIN_LIBRARIES gmock_main) -+ endif() -+ target_link_libraries(gmock_main INTERFACE gmock Threads::Threads) -+ -+endif() -+ -+include(FindPackageHandleStandardArgs) -+find_package_handle_standard_args(GTest DEFAULT_MSG -+ GTEST_LIBRARIES -+ GTEST_MAIN_LIBRARIES -+ GTEST_INCLUDE_DIRS -+ GMOCK_LIBRARIES -+ GMOCK_MAIN_LIBRARIES -+ GMOCK_INCLUDE_DIRS) -diff --git a/cmake/modules/RootBuildOptions.cmake b/cmake/modules/RootBuildOptions.cmake -index 7886c5f3e9..01108a18c9 100644 ---- a/cmake/modules/RootBuildOptions.cmake -+++ b/cmake/modules/RootBuildOptions.cmake -@@ -94,6 +94,7 @@ ROOT_BUILD_OPTION(builtin_ftgl OFF "Build bundled copy of FTGL") - ROOT_BUILD_OPTION(builtin_gl2ps OFF "Build bundled copy of gl2ps") - ROOT_BUILD_OPTION(builtin_glew OFF "Build bundled copy of GLEW") - ROOT_BUILD_OPTION(builtin_gsl OFF "Build GSL internally (requires network)") -+ROOT_BUILD_OPTION(builtin_gtest OFF "Build googletest internally (requires network)") - ROOT_BUILD_OPTION(builtin_llvm ON "Build bundled copy of LLVM") - ROOT_BUILD_OPTION(builtin_lz4 OFF "Build bundled copy of lz4") - ROOT_BUILD_OPTION(builtin_lzma OFF "Build bundled copy of lzma") -@@ -293,6 +294,7 @@ if(builtin_all) - set(builtin_gl2ps_defvalue ON) - set(builtin_glew_defvalue ON) - set(builtin_gsl_defvalue ON) -+ set(builtin_gtest_defvalue ON) - set(builtin_llvm_defvalue ON) - set(builtin_lz4_defvalue ON) - set(builtin_lzma_defvalue ON) -diff --git a/cmake/modules/RootMacros.cmake b/cmake/modules/RootMacros.cmake -index cb75c0b1da..38fd5d6baf 100644 ---- a/cmake/modules/RootMacros.cmake -+++ b/cmake/modules/RootMacros.cmake -@@ -1671,7 +1671,7 @@ function(ROOT_ADD_TEST test) - - set_property(TEST ${test} APPEND PROPERTY ENVIRONMENT ROOT_HIST=0) - -- #- Handle TIMOUT and DEPENDS arguments -+ #- Handle TIMEOUT and DEPENDS arguments - if(ARG_TIMEOUT) - set_property(TEST ${test} PROPERTY TIMEOUT ${ARG_TIMEOUT}) - endif() -diff --git a/cmake/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake -index fe40898d12..b6a3cc4c76 100644 ---- a/cmake/modules/SearchInstalledSoftware.cmake -+++ b/cmake/modules/SearchInstalledSoftware.cmake -@@ -1860,15 +1860,6 @@ if (mpi) - endif() - endif() - --if(testing AND NO_CONNECTION) -- if(fail-on-missing) -- message(FATAL_ERROR "No internet connection. Please check your connection, or either disable the 'testing' option or the 'fail-on-missing' to automatically disable options requiring internet access") -- else() -- message(STATUS "No internet connection, disabling 'testing' option") -- set(testing OFF CACHE BOOL "Disabled because there is no internet connection" FORCE) -- endif() --endif() -- - #---Check for ZeroMQ when building RooFit::MultiProcess-------------------------------------------- - - if (roofit_multiprocess) -@@ -1942,8 +1933,41 @@ if (roofit_multiprocess) - target_compile_definitions(cppzmq INTERFACE ZMQ_NO_EXPORT) - endif (roofit_multiprocess) - --#---Download googletest-------------------------------------------------------------- -+#---Check for googletest--------------------------------------------------------------- - if (testing) -+ if (NOT builtin_gtest) -+ if(fail-on-missing) -+ find_package(GTest REQUIRED) -+ else() -+ find_package(GTest) -+ if(NOT GTEST_FOUND) -+ if(NO_CONNECTION) -+ if(fail-on-missing) -+ message(FATAL_ERROR "No internet connection and GTest was not found. Please check your connection, or either disable the 'testing' option or the 'fail-on-missing' to automatically disable options requiring internet access") -+ else() -+ message(STATUS "GTest not found, and no internet connection. Disabing the 'testing' option.") -+ set(testing OFF CACHE BOOL "Disabled because testing requested and GTest not found (${builtin_gtest_description}) and there is no internet connection" FORCE) -+ endif() -+ else() -+ message(STATUS "GTest not found, switching ON 'builtin_gtest' option.") -+ set(builtin_gtest ON CACHE BOOL "Enabled because testing requested and GTest not found (${builtin_gtest_description})" FORCE) -+ endif() -+ endif() -+ endif() -+ else() -+ if(NO_CONNECTION) -+ if(fail-on-missing) -+ message(FATAL_ERROR "No internet connection. Please check your connection, or either disable the 'testing' option or the 'builtin_gtest' option or the 'fail-on-missing' option to automatically disable options requiring internet access") -+ else() -+ message(STATUS "No internet connection, disabling the 'testing' and 'builtin_gtest' options") -+ set(testing OFF CACHE BOOL "Disabled because there is no internet connection" FORCE) -+ set(builtin_gtest OFF CACHE BOOL "Disabled because there is no internet connection" FORCE) -+ endif() -+ endif() -+ endif() -+endif() -+ -+if (builtin_gtest) - # FIXME: Remove our version of gtest in roottest. We can reuse this one. - # Add googletest - #
http://stackoverflow.com/questions/9689183/cmake-googletest
--- -2.35.1 - diff --git a/root-uring-warn.patch b/root-uring-warn.patch deleted file mode 100644 index 05cfd56..0000000 --- a/root-uring-warn.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 580fcf8fe95c45e337d222a7fd2338fdef2f52c5 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Thu, 24 Mar 2022 16:18:57 +0100 -Subject: [PATCH 1/2] Ignore warnings about uring failing during test - ---- - tree/ntuple/v7/test/ntuple_extended.cxx | 13 +++++++++++++ - 1 file changed, 13 insertions(+) - -diff --git a/tree/ntuple/v7/test/ntuple_extended.cxx b/tree/ntuple/v7/test/ntuple_extended.cxx -index 8e3998996c..98d65ef319 100644 ---- a/tree/ntuple/v7/test/ntuple_extended.cxx -+++ b/tree/ntuple/v7/test/ntuple_extended.cxx -@@ -4,6 +4,8 @@ - - #include "TROOT.h" - -+#include "ROOTUnitTestSupport.h" -+ - TEST(RNTuple, RealWorld1) - { - ROOT::EnableImplicitMT(); -@@ -111,6 +113,17 @@ TEST(RNTuple, RandomAccess) - #if !defined(_MSC_VER) || defined(R__ENABLE_BROKEN_WIN_TESTS) - TEST(RNTuple, LargeFile) - { -+ ROOTUnitTestSupport::CheckDiagsRAII raii; -+ raii.optionalDiag(kWarning, "RIoUring", -+ "io_uring is unexpectedly not available because:", false); -+ raii.optionalDiag(kWarning, "RRawFileUnix", -+ "io_uring setup failed, falling back to blocking I/O in ReadV", true); -+ -+ raii.optionalDiag(kWarning, "ROOT.NTuple", -+ "The RNTuple file format will change. Do not store real data with this version of RNTuple!", true); -+ raii.optionalDiag(kWarning, "ROOT.NTuple", -+ "Pre-release format version: ", false); -+ - ROOT::EnableImplicitMT(); - FileRaii fileGuard("test_large_file.root"); - --- -2.35.1 - diff --git a/root-use-consistent-minimum-python-version-for-DistRDF.patch b/root-use-consistent-minimum-python-version-for-DistRDF.patch new file mode 100644 index 0000000..23e9e5c --- /dev/null +++ b/root-use-consistent-minimum-python-version-for-DistRDF.patch @@ -0,0 +1,27 @@ +From 8624d1c7eb4f532d6843118251d9564650f89924 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Thu, 2 Mar 2023 08:25:36 +0100 +Subject: [PATCH 1/2] Use consistent minimum Python version for DistRDF The + minimum version was changed in bindings/CMakeLists.txt but not in the check + in the code. + +--- + bindings/pyroot/pythonizations/python/ROOT/_facade.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/bindings/pyroot/pythonizations/python/ROOT/_facade.py b/bindings/pyroot/pythonizations/python/ROOT/_facade.py +index 7370a234d1..865321e713 100644 +--- a/bindings/pyroot/pythonizations/python/ROOT/_facade.py ++++ b/bindings/pyroot/pythonizations/python/ROOT/_facade.py +@@ -335,7 +335,7 @@ class ROOTFacade(types.ModuleType): + ns.MakeNumpyDataFrame = DeprecatedMakeNumpy + ns.FromNumpy = MakeNumpyDataFrame + +- if sys.version_info >= (3, 7): ++ if sys.version_info >= (3, 8): + # Inject Experimental.Distributed package into namespace RDF + ns.Experimental.Distributed = _create_rdf_experimental_distributed_module(ns.Experimental) + except: +-- +2.39.2 + diff --git a/root-use-unique-filenames-in-fillrandom-tutorials.patch b/root-use-unique-filenames-in-fillrandom-tutorials.patch deleted file mode 100644 index 724eb79..0000000 --- a/root-use-unique-filenames-in-fillrandom-tutorials.patch +++ /dev/null @@ -1,25 +0,0 @@ -From b781f954ac80cc227777992dcb4fbe1837c7e351 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Tue, 29 Mar 2022 15:44:17 +0200 -Subject: [PATCH] Use unique filenames in fillrandom.py and fillrandom.C - ---- - tutorials/hist/fillrandom.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tutorials/hist/fillrandom.py b/tutorials/hist/fillrandom.py -index d5eb3f6f38..4b1a94a37e 100644 ---- a/tutorials/hist/fillrandom.py -+++ b/tutorials/hist/fillrandom.py -@@ -41,7 +41,7 @@ h1f.FillRandom("sqroot",10000) - h1f.Draw() - c1.Update() - --f = ROOT.TFile("fillrandom.root","RECREATE") -+f = ROOT.TFile("fillrandom-py.root","RECREATE") - form1.Write() - sqroot.Write() - h1f.Write() --- -2.35.1 - diff --git a/root-veto-tests-using-clad-when-clad-is-disabled.patch b/root-veto-tests-using-clad-when-clad-is-disabled.patch new file mode 100644 index 0000000..d201fdb --- /dev/null +++ b/root-veto-tests-using-clad-when-clad-is-disabled.patch @@ -0,0 +1,66 @@ +From 6583668f3e5f1b4e1d219a5a92a19da31d8d5494 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Wed, 1 Mar 2023 18:32:45 +0100 +Subject: [PATCH] Veto tests using clad when clad is disabled + +--- + math/minuit2/test/CMakeLists.txt | 8 ++++---- + tutorials/CMakeLists.txt | 9 ++++++--- + 2 files changed, 10 insertions(+), 7 deletions(-) + +diff --git a/math/minuit2/test/CMakeLists.txt b/math/minuit2/test/CMakeLists.txt +index 7ecf30350c..8951ac0a84 100644 +--- a/math/minuit2/test/CMakeLists.txt ++++ b/math/minuit2/test/CMakeLists.txt +@@ -11,10 +11,10 @@ if(NOT DEFINED ROOT_SOURCE_DIR) + include(${ROOT_USE_FILE}) + endif() + +-set(TestSource +- testMinimizer.cxx +- testADMinim.cxx +-) ++set(TestSource testMinimizer.cxx) ++if (clad) ++ list(APPEND TestSource testADMinim.cxx) ++endif() + + set(TestSourceMnTutorial + MnTutorial/Quad1FMain.cxx +diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt +index bf7c1d4089..deb5f67d23 100644 +--- a/tutorials/CMakeLists.txt ++++ b/tutorials/CMakeLists.txt +@@ -65,16 +65,18 @@ endfunction() + + #---Tutorials disabled depending on the build components------------- + if(NOT ROOT_minuit2_FOUND) +- set(minuit2_veto fit/fit2dHist.C fit/fit2dHist.C +- fit/fitCircle.C fit/minuit2FitBench2D.C ++ set(minuit2_veto fit/fit2dHist.C fit/fitCircle.C + fit/minuit2FitBench2D.C fit/minuit2FitBench.C +- fit/minuit2FitBench.C fit/minuit2GausFit.C + fit/minuit2GausFit.C fit/NumericalMinimization.C + fit/combinedFit.C fit/TestBinomial.C + fit/fitNormSum.C fit/vectorizedFit.C + tutorials/roostats/rs_bernsteinCorrection.C) + endif() + ++if(NOT clad) ++ set(clad_veto fit/minuit2GausFit.C) ++endif() ++ + if (NOT dataframe) + # RDataFrame + list(APPEND dataframe_veto dataframe/*.C dataframe/*.py) +@@ -457,6 +459,7 @@ set(all_veto hsimple.C + ${spectrum_veto} + ${dataframe_veto} + ${macm1_veto} ++ ${clad_veto} + ) + + file(GLOB_RECURSE tutorials RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.C) +-- +2.39.2 + diff --git a/root.spec b/root.spec index 7b8e3be..eb06a82 100644 --- a/root.spec +++ b/root.spec @@ -1,23 +1,13 @@ +# Needed for EPEL 8 %undefine __cmake_in_source_build -%undefine __cmake3_in_source_build # Disable package note flags, since root saves the compiler/linker flags # used during the build %undefine _package_note_flags -%if %{?fedora}%{!?fedora:0} >= 31 || %{?rhel}%{!?rhel:0} >= 8 -# Don't build python2-root for Fedora >= 31 -%global buildpy2 0 -%else -%global buildpy2 1 -%endif - -%if %{buildpy2} -%global python2_version_uscore %(tr . _ <<< "%{python2_version}") -%endif %global python3_version_uscore %(tr . _ <<< "%{python3_version}") -%if %{?fedora}%{!?fedora:0} >= 34 || %{?rhel}%{!?rhel:0} >= 9 +%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 9 # Building the experimental ROOT 7 classes requires c++-17. # This is the default for gcc 11 and later. %global root7 1 @@ -25,46 +15,41 @@ %global root7 0 %endif -%global xrootd5 1 - -%global webgui 1 - -%global gfal2 1 - -%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8 -# The SOFIE parser requires protobuf 3.0 +%if %{?rhel}%{!?rhel:0} == 8 +%ifarch %{power64} +# These modules cause "pure virtual method called" errors +#
https://github.com/root-project/root/issues/12372
+%global dataframe 0 +%global roofit 0 +%global tmvasofieparser 0 +%else +%global dataframe 1 +%global roofit 1 %global tmvasofieparser 1 +%endif %else -%global tmvasofieparser 0 +%global dataframe 1 +%global roofit 1 +%global tmvasofieparser 1 %endif %if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 9 -# DistRDF requires Python 3.7+ -%global distrdf 1 +# DistRDF requires Python 3.8+ +%global distrdf %{dataframe} %else %global distrdf 0 %endif -%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8 -# Multi-threading support requires TBB version >= 2018 -%global tbb 1 -%else -%global tbb 0 -%endif - -# Do not create .orig files when patching source -%global _default_patch_flags --no-backup-if-mismatch - # Do not generate autoprovides for Python modules -%global __provides_exclude_from ^(%{?python2_sitearch:%{python2_sitearch}|}%{python3_sitearch})/lib.*\\.so$ +%global __provides_exclude_from ^%{python3_sitearch}/lib.*\\.so$ Name: root -Version: 6.26.10 +Version: 6.28.00 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 5%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework -License: LGPLv2+ +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 @@ -86,118 +71,75 @@ Source7: JupyROOT-on-EPEL Source8: %{name}-get-src.sh # Use system fonts Patch0: %{name}-fontconfig.patch -# Revert the removal of DataFrame for 32 bit architectures -#
https://github.com/root-project/root/pull/10300
-Patch1: %{name}-32bit-dataframe.patch -# Unbundle gtest -# Add builtin_gtest cmake option -# Compatibility with older gtest -#
https://github.com/root-project/root/pull/10301
-Patch2: %{name}-unbundle-gtest.patch -Patch3: %{name}-old-gtest-compat.patch # Reduce memory usage of build # Do not link rootcling_stage1 and libCling in parallel -Patch4: %{name}-memory-usage.patch +Patch1: %{name}-memory-usage.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 -Patch5: %{name}-memory-arm-x86.patch +Patch2: %{name}-memory-arm-x86.patch # Don't install minicern static library -Patch6: %{name}-dont-install-minicern.patch +Patch3: %{name}-dont-install-minicern.patch # Do not export Python modules in CMake config -Patch7: %{name}-no-export-python-modules.patch +Patch4: %{name}-no-export-python-modules.patch # Run some test on 32 bit that upstream has disabled -Patch8: %{name}-32bit-tests.patch +Patch5: %{name}-32bit-tests.patch # Use local static script and style files for JsMVA -Patch9: %{name}-jsmva-static.patch -# Fix python bytecode compilation on EPEL 7 -# Compatibility with older python versions (no f-strings) -Patch10: %{name}-older-python.patch -# Backported fix from LLVM upstream -Patch11: %{name}-symbol-rewrite.patch -# Backport gcc 12 fix from LLVM -#
https://github.com/root-project/root/pull/9586
-Patch12: %{name}-fix-compilation-with-gcc-12.patch +Patch6: %{name}-jsmva-static.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}-ignore-prefix.patch -# Use different filenames in io/loopdir tests -#
https://github.com/root-project/root/pull/11725
-Patch16: %{name}-different-filename.patch -# Fix test when long is 32 bits -#
https://github.com/root-project/root/pull/10302
-Patch17: %{name}-longlong.patch -# Ignore warnings (uring and RooNaNPacker) -#
https://github.com/root-project/root/pull/10303
-Patch18: %{name}-uring-warn.patch -Patch19: %{name}-endian-warn.patch -# Always call WaitForInFlightClusters before checking cluster IDs -#
https://github.com/root-project/root/pull/10304
-Patch20: %{name}-ntuplewait.patch -# NENTRIES is not always a multiple of the expected size -#
https://github.com/root-project/root/pull/10305
-Patch21: %{name}-dataframe-callback.patch -# Add/remove namespaces from Linkdef -#
https://github.com/root-project/root/pull/10306
-Patch22: %{name}-namespace-sofie.patch -Patch23: %{name}-namespace-roofit.patch -Patch24: %{name}-namespace-pymva.patch -# Use calls from Python directly in tutorial -#
https://github.com/root-project/root/pull/10307
-Patch25: %{name}-roofit-tutorial.patch +Patch7: %{name}-fix-test-failure-on-ppc64le-and-aarch64-with-gcc-12.patch # Byte swap values read from the protobuf raw data stream on # big endian architectures #
https://github.com/root-project/root/pull/10308
-Patch26: %{name}-big-endian-byte-swap.patch -# Avoid crashes due to static initialization order -#
https://github.com/root-project/root/pull/10309
-Patch27: %{name}-rcolor-static-init.patch -# Avoid deleting TFormulas twice -#
https://github.com/root-project/root/pull/10310
-Patch28: %{name}-avoid-deleting-TFormulas-twice.patch -# Use unique filenames in fillrandom.py and fillrandom.C -#
https://github.com/root-project/root/pull/10311
-Patch29: %{name}-use-unique-filenames-in-fillrandom-tutorials.patch -# Limit the number of threads in TMVA CNN/DNN test to save memory -#
https://github.com/root-project/root/pull/10312
-Patch30: %{name}-tmva-threads.patch -# Fix library link order -#
https://github.com/root-project/root/pull/10313
-Patch31: %{name}-core-base-test.patch -# Backports -Patch32: %{name}-make-dyld-based-library-search-behavior-default.patch -Patch33: %{name}-get-rid-of-lsb_release.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 -# Avoid race condition between C++ an Python version of test -#
https://github.com/root-project/root/pull/11643
-Patch37: %{name}-avoid-race-condition-tutorial-roofit-rf512.patch +Patch8: %{name}-big-endian-byte-swap.patch # Add missing #include <cstdint> #
https://github.com/root-project/root/pull/12065
-Patch38: %{name}-add-missing-include-cstdint.patch -# Backport from upstream -Patch39: %{name}-fix-compilation-with-gcc13.patch -# numpy.object obsolete since numpy 1.20 and removed since 1.24 -#
https://github.com/root-project/root/issues/12148
-#
https://github.com/root-project/root/pull/12159
-Patch40: %{name}-avoid-deprecated-numpy.object.patch - -%if %{?rhel}%{!?rhel:0} == 7 -BuildRequires: devtoolset-8-toolchain -BuildRequires: cmake3 >= 3.9 -%else +Patch9: %{name}-add-missing-include-cstdint.patch +#
https://github.com/root-project/root/pull/12218
+Patch10: %{name}-Simplify-creation-of-TargetMachine.patch +# Fix build with -Dbuiltin_gtest:BOOL=OFF on EPEL 8 +#
https://github.com/root-project/root/pull/12250
+Patch11: %{name}-gtest-compat.patch +# Limit the number of threads in TMVA CNN/DNN test to save memory +#
https://github.com/root-project/root/pull/12310
+Patch12: %{name}-tmva-Speed-up-TMVA-CNN-and-RNN-tutorials.patch +#
https://github.com/root-project/root/issues/12293
+#
https://github.com/root-project/root/pull/12335
+Patch13: %{name}-Set-DataLayout-from-our-TargetMachine.patch +#
https://github.com/root-project/root/issues/12294
+#
https://github.com/root-project/root/pull/12353
+Patch14: %{name}-cling-Disable-outline-atomics-on-AArch64.patch +#
https://github.com/root-project/root/pull/12385
+Patch15: %{name}-PyROOT-only-build-RooFit-and-TMVA-pythonizations-if-enabled.patch +#
https://github.com/root-project/root/pull/12389
+Patch16: %{name}-testRooAbsL-test-compares-two-doubles-and-fails.patch +#
https://github.com/root-project/root/pull/12390
+Patch17: %{name}-stressvector-test-fails-on-ix86.patch +#
https://github.com/root-project/root/pull/12402
+Patch18: %{name}-dont-install-roofit-files-when-roofit-is-disabled.patch +#
https://github.com/root-project/root/pull/12403
+Patch19: %{name}-veto-tests-using-clad-when-clad-is-disabled.patch +#
https://github.com/root-project/root/pull/12407
+Patch20: %{name}-use-consistent-minimum-python-version-for-DistRDF.patch +Patch21: %{name}-make-DistRDF-optional.patch +#
https://github.com/root-project/root/pull/12423
+Patch22: %{name}-dont-install-roofit-files-fix.patch +#
https://github.com/root-project/root/issues/12430
+#
https://github.com/root-project/root/pull/12447
+Patch23: %{name}-RF-Rewrite-RooProdPdf.TestGetPartIntList-unit-test.patch +#
https://github.com/root-project/root/issues/12427
+#
https://github.com/root-project/root/pull/12468
+Patch24: %{name}-fixes-for-32bit-builds.patch +#
https://github.com/root-project/root/pull/12476
+Patch25: %{name}-do-not-remove-Wp-before-D-and-U.patch +# Backport (fixes a failing test on ix86) +Patch26: %{name}-ntuple-RPageSinkBuf-add-missing-call-to-ReleasePage.patch + BuildRequires: gcc-c++ BuildRequires: gcc-gfortran BuildRequires: make -BuildRequires: cmake >= 3.9 -%endif +BuildRequires: cmake >= 3.16 BuildRequires: libX11-devel BuildRequires: libXpm-devel BuildRequires: libXft-devel @@ -222,62 +164,38 @@ BuildRequires: libxml2-devel BuildRequires: fftw-devel BuildRequires: gsl-devel BuildRequires: unuran-devel -%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8 BuildRequires: mariadb-connector-c-devel -%else -BuildRequires: mysql-devel -%endif BuildRequires: sqlite-devel BuildRequires: unixODBC-devel BuildRequires: libGL-devel BuildRequires: libGLU-devel -%if %{?fedora}%{!?fedora:0} >= 27 || %{?rhel}%{!?rhel:0} >= 8 BuildRequires: libpq-devel -%else -BuildRequires: postgresql-devel -%endif -%if %{buildpy2} -BuildRequires: python2-devel -BuildRequires: python2-setuptools -BuildRequires: python2-numpy -%endif BuildRequires: python%{python3_pkgversion}-devel BuildRequires: python%{python3_pkgversion}-setuptools BuildRequires: python%{python3_pkgversion}-numpy -%if %{webgui} %ifarch %{qt5_qtwebengine_arches} BuildRequires: qt5-qtbase-devel BuildRequires: qt5-qtwebengine-devel %endif -%endif BuildRequires: openssl-devel BuildRequires: libtool-ltdl-devel BuildRequires: desktop-file-utils BuildRequires: dcap-devel -%if %{xrootd5} BuildRequires: xrootd-client-devel >= 1:5.0.0 -%else -BuildRequires: xrootd-client-devel >= 1:3.3.5 -BuildRequires: xrootd-private-devel >= 1:3.3.5 -%endif BuildRequires: cfitsio-devel BuildRequires: davix-devel >= 0.6.4 -%if %{gfal2} BuildRequires: gfal2-devel -%endif BuildRequires: R-Rcpp-devel BuildRequires: R-RInside-devel BuildRequires: readline-devel -%if %{tbb} BuildRequires: tbb-devel >= 2018 -%endif BuildRequires: libuuid-devel BuildRequires: emacs BuildRequires: emacs-el BuildRequires: graphviz-devel BuildRequires: expat-devel BuildRequires: pythia8-devel >= 8.1.80 -%if %{?fedora}%{!?fedora:0} >= 33 || %{?rhel}%{!?rhel:0} >= 9 +%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 9 BuildRequires: flexiblas-devel # Required for FlexiBLAS support in FindBLAS.cmake # (in cmake 3.19.0, backported to cmake 3.18.3-1 in Fedora) @@ -286,7 +204,9 @@ BuildRequires: cmake-data >= 3.18.3-1 BuildRequires: openblas-devel %endif BuildRequires: json-devel -%if %{?fedora}%{!?fedora:0} +%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 9 +# Disable uring in EPEL 8 (liburing is available, but uring not +# supported by the kernel) BuildRequires: liburing-devel %endif %if %{tmvasofieparser} @@ -310,12 +230,15 @@ 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-player%{?_isa} = %{version}-%{release} Requires: hicolor-icon-theme Requires: emacs-filesystem >= %{_emacs_version} Provides: emacs-%{name} = %{version}-%{release} @@ -363,7 +286,7 @@ This package contains icons used by the ROOT GUI. Summary: ROOT font collection BuildArch: noarch # STIX version 0.9 only -License: OFL +License: OFL-1.1 Requires: %{name}-core = %{version}-%{release} %description fonts @@ -380,7 +303,7 @@ This package contains the tutorial scripts and test suite for ROOT. %package core Summary: ROOT core libraries -License: LGPLv2+ and BSD +License: LGPL-2.1-or-later AND LGPL-2.0-or-later AND ISC AND MIT AND NCSA Requires: %{name}-fonts = %{version}-%{release} Requires: %{name}-icons = %{version}-%{release} # Dynamic dependencies @@ -402,7 +325,9 @@ 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-player%{?_isa} = %{version}-%{release} Requires: %{name}-vecops%{?_isa} = %{version}-%{release} # To resolve dependency in installed ROOTConfig.cmake @@ -431,17 +356,6 @@ Obsoletes: %{name}-net-globus < 6.18.00 Obsoletes: %{name}-net-ldap < 6.18.00 Obsoletes: %{name}-net-krb5 < 6.18.00 Obsoletes: %{name}-table < 6.18.00 -%if ! %{buildpy2} -Obsoletes: python2-%{name} < %{version}-%{release} -Obsoletes: python2-jupyroot < %{version}-%{release} -Obsoletes: python2-jsmva < %{version}-%{release} -Obsoletes: %{name}-rootaas < 6.08.00 -%endif -%if %{?rhel}%{!?rhel:0} == 7 -Obsoletes: python%{?python3_other_pkgversion}-%{name} < 6.22.00 -Obsoletes: python%{?python3_other_pkgversion}-jupyroot < 6.22.00 -Obsoletes: python%{?python3_other_pkgversion}-jsmva < 6.22.00 -%endif Obsoletes: %{name}-memstat < 6.26.00 Obsoletes: %{name}-montecarlo-vmc < 6.26.00 Obsoletes: %{name}-doc < 6.26.00 @@ -458,12 +372,24 @@ Obsoletes: %{name}-gui-fitpanelv7 < 6.26.00 Obsoletes: %{name}-histv7 < 6.26.00 Obsoletes: %{name}-hist-draw < 6.26.00 Obsoletes: %{name}-tree-ntuple < 6.26.00 -%endif -%if %{buildpy2} -Obsoletes: python2-distrdf < 6.26.00 -%endif -%if ! %{distrdf} +# Obsolete the DistRDF package in EPEL 8 +# Minimum Python version requirement introduced Obsoletes: python%{python3_pkgversion}-distrdf < 6.26.00 +%ifarch %{power64} +# Obsolete for ppc64le in EPEL 8 +# These modules cause "pure virtual method called" errors +Obsoletes: %{name}-tree-dataframe < 6.28.00 +Obsoletes: %{name}-roofit < 6.28.00 +Obsoletes: %{name}-roofit-common < 6.28.00 +Obsoletes: %{name}-roofit-core < 6.28.00 +Obsoletes: %{name}-roofit-more < 6.28.00 +Obsoletes: %{name}-roofit-batchcompute < 6.28.00 +Obsoletes: %{name}-roofit-dataframe-helpers < 6.28.00 +Obsoletes: %{name}-roofit-hs3 < 6.28.00 +Obsoletes: %{name}-roostats < 6.28.00 +Obsoletes: %{name}-hist-factory < 6.28.00 +Obsoletes: %{name}-tmva-sofie-parser < 6.28.00 +%endif %endif %description core @@ -481,7 +407,7 @@ This package provides ROOT's multi-processor support library: libMultiProc. %package cling Summary: Cling C++ interpreter -License: NCSA and (NCSA or LGPLv2+) +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 @@ -491,11 +417,7 @@ Requires: %{name}-io%{?_isa} = %{version}-%{release} # visible outside of the libCling module. Provides: bundled(clang-libs) Provides: bundled(llvm-libs) -%if %{?rhel}%{!?rhel:0} == 7 -Requires: devtoolset-8-toolchain -%else Requires: gcc-c++ -%endif Requires: redhat-rpm-config Obsoletes: %{name}-cint7 < 5.26.00c Obsoletes: %{name}-cint < 6.00.00 @@ -506,6 +428,13 @@ Obsoletes: %{name}-reflex < 6.00.00 Cling is an interactive C++ interpreter, built on top of Clang and LLVM compiler infrastructure. +%package testsupport +Summary: Unit test support library for ROOT +Requires: %{name}-core%{?_isa} = %{version}-%{release} + +%description testsupport +This package contains the unit test support library for ROOT. + %package tpython Summary: ROOT's TPython interface Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -517,51 +446,6 @@ Obsoletes: python%{python3_pkgversion}-%{name} < 6.22.00 This package contains ROOT's TPython interface. It makes it possible to call Python from ROOT. -%if %{buildpy2} -%package -n python2-%{name} -Summary: Python extension for ROOT -%py_provides python2-%{name} -Provides: %{name}-python = %{version}-%{release} -Obsoletes: %{name}-python < 6.08.00 -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} - -%description -n python2-%{name} -This package contains the Python extension for ROOT. It makes it -possible to use ROOT classes in Python. - -%package -n python2-jupyroot -Summary: ROOT Jupyter kernel -%py_provides python2-jupyroot -Requires: python2-%{name}%{?_isa} = %{version}-%{release} -Requires: python2-jsmva = %{version}-%{release} -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-notebook = %{version}-%{release} -%if %{?fedora}%{!?fedora:0} >= 26 -# python-metakernel for python2 not available in -# Fedora <= 25 or RHEL/EPEL - some functionality missing -Requires: python2-ipython -Requires: python2-metakernel -%endif -%if %{?fedora}%{!?fedora:0} >= 28 -Requires: python-jupyter-filesystem -%endif -Obsoletes: %{name}-rootaas < 6.08.00 - -%description -n python2-jupyroot -The Jupyter kernel for the ROOT notebook. - -%package -n python2-jsmva -Summary: TMVA interface used by JupyROOT -BuildArch: noarch -%py_provides python2-jsmva -Requires: %{name}-tmva = %{version}-%{release} - -%description -n python2-jsmva -TMVA interface used by JupyROOT. -%endif - %package -n python%{python3_pkgversion}-%{name} Summary: Python extension for ROOT %py_provides python%{python3_pkgversion}-%{name} @@ -584,13 +468,11 @@ Requires: python%{python3_pkgversion}-%{name}%{?_isa} = %{version}-%{release} Requires: python%{python3_pkgversion}-jsmva = %{version}-%{release} Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-notebook = %{version}-%{release} -%if %{?fedora}%{!?fedora:0} >= 26 -# python-metakernel for python3 not available in -# Fedora <= 25 or RHEL/EPEL - some functionality missing +%if %{?fedora}%{!?fedora:0} +# python-metakernel not available in RHEL/EPEL +# some functionality missing Requires: python%{python3_pkgversion}-ipython Requires: python%{python3_pkgversion}-metakernel -%endif -%if %{?fedora}%{!?fedora:0} >= 28 Requires: python-jupyter-filesystem %endif @@ -658,17 +540,41 @@ This package contains a genetic minimizer module for ROOT. %package geom Summary: Geometry library for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-graf3d%{?_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 + +%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}-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-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} Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} +# Package split (geom-builder and geom-painter from geom) +Obsoletes: %{name}-geom < 6.28.00 -%description geom -This package contains a library for defining geometries in ROOT. +%description geom-painter +This package contains a library for drawing geometries in ROOT. %package gdml Summary: GDML import/export for ROOT geometries @@ -724,6 +630,7 @@ 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} @@ -981,24 +888,6 @@ Requires: %{name}-hist%{?_isa} = %{version}-%{release} %description spectrum-painter This package contains a painter of spectra for ROOT. -%package hist-factory -Summary: RooFit PDFs from ROOT histograms -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-xmlparser%{?_isa} = %{version}-%{release} -Requires: %{name}-matrix%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit-batchcompute%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit-core%{?_isa} = %{version}-%{release} -Requires: %{name}-roostats%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} - -%description hist-factory -Create RooFit probability density functions from ROOT histograms. - %package html Summary: HTML documentation generator for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1024,7 +913,6 @@ Requires: %{name}-io%{?_isa} = %{version}-%{release} %description io-dcache This package contains the dCache extension for ROOT. -%if %{gfal2} %package io-gfal Summary: Grid File Access Library input/output library for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1032,7 +920,6 @@ Requires: %{name}-io%{?_isa} = %{version}-%{release} %description io-gfal This package contains the Grid File Access Library extension for ROOT. -%endif %package io-sql Summary: SQL input/output library for ROOT @@ -1079,7 +966,7 @@ easier to use for the average user. %package fftw Summary: FFTW library for ROOT -License: GPLv2+ +License: GPL-2.0-or-later Requires: %{name}-core%{?_isa} = %{version}-%{release} %description fftw @@ -1116,7 +1003,7 @@ This package contains the MathCore library for ROOT. %package mathmore Summary: GSL interface library for ROOT -License: GPLv2+ +License: GPL-2.0-or-later Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} @@ -1235,7 +1122,7 @@ discriminating variables. %package unuran Summary: Random number generator library -License: GPLv2+ +License: GPL-2.0-or-later Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} @@ -1324,7 +1211,7 @@ access to http based storage such as webdav and S3. Summary: HTTP server extension for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: js-jsroot >= 6 +Requires: js-jsroot >= 7 # Library split (net-httpsniff from net-http) Obsoletes: %{name}-net-http < 6.14.00 @@ -1356,8 +1243,7 @@ Requires: %{name}-net%{?_isa} = %{version}-%{release} %description netx This package contains the NetX extension for ROOT, i.e. a client for -the xrootd server. Both the old (NetX) and the new (NetXNG) version are -provided. +the xrootd server. Only the new (NetXNG) version is provided. %package proof Summary: PROOF extension for ROOT @@ -1371,9 +1257,7 @@ Obsoletes: %{name}-peac < 5.34.01 # Package split (proof-player from proof) Obsoletes: %{name}-proof < 6.14.00 Obsoletes: %{name}-proofd < 6.16.00 -%if %{xrootd5} -Obsoletes: %{name}-xproof < %{version}-%{release} -%endif +Obsoletes: %{name}-xproof < 6.22.08-2 %description proof This package contains the proof extension for ROOT. This provides a @@ -1425,25 +1309,10 @@ Requires: %{name}-tree%{?_isa} = %{version}-%{release} This package contains a library for browsing an interactive PROOF session in ROOT. -%if ! %{xrootd5} -%package xproof -Summary: XPROOF extension for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_isa} = %{version}-%{release} -Requires: %{name}-proof%{?_isa} = %{version}-%{release} -# Dynamic dependency -Requires: %{name}-net-rpdutils%{?_isa} = %{version}-%{release} -Requires: xrootd-server%{?_isa} - -%description xproof -This package contains the xproof extension for ROOT. This provides a -client to be used in a PROOF environment. -%endif - +%if %{roofit} %package roofit Summary: ROOT extension for modeling expected distributions - toolkit -License: BSD +License: BSD-2-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} @@ -1472,7 +1341,7 @@ This package contains the RooFit toolkit classes. %package roofit-common Summary: ROOT extension for modeling expected distributions - common -License: BSD +License: BSD-2-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} %description roofit-common @@ -1492,7 +1361,7 @@ This package contains the RooFit common classes. %package roofit-core Summary: ROOT extension for modeling expected distributions - core -License: BSD +License: BSD-2-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-foam%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} @@ -1501,7 +1370,6 @@ 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}-minuit2%{?_isa} = %{version}-%{release} Requires: %{name}-roofit-batchcompute%{?_isa} = %{version}-%{release} Requires: %{name}-roofit-common%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} @@ -1525,11 +1393,10 @@ This package contains the core RooFit classes. %package roofit-more Summary: ROOT extension for modeling expected distributions - more -License: BSD +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-batchcompute%{?_isa} = %{version}-%{release} Requires: %{name}-roofit-core%{?_isa} = %{version}-%{release} # Package split / Library split (from roofit) Obsoletes: %{name}-roofit < 6.20.00 @@ -1551,6 +1418,7 @@ 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} Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-multiproc%{?_isa} = %{version}-%{release} @@ -1569,9 +1437,10 @@ multiple times for different vector instuction set architectures and the optimal code is executed during runtime, as a result of an automatic hardware detection mechanism that this library contains. +%if %{dataframe} %package roofit-dataframe-helpers Summary: RooFit DaraFrame helpers -License: BSD +License: BSD-2-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} %description roofit-dataframe-helpers @@ -1588,14 +1457,16 @@ analysis environment, but the general nature of the package make it suitable for adoption in different disciplines as well. This package contains DaraFrame helper classes for RooFit +%endif %package roofit-hs3 Summary: RooFit HS3 -License: BSD +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} +Requires: %{name}-roofit-jsoninterface%{?_isa} = %{version}-%{release} Requires: %{name}-roostats%{?_isa} = %{version}-%{release} %description roofit-hs3 @@ -1606,9 +1477,28 @@ may be useful to store statistical models in text form. This library sets out to achieve exactly that, exporting to and importing from JSON and YML. +%package roofit-jsoninterface +Summary: JSON interface to RooFit +License: BSD-2-Clause +Requires: %{name}-core%{?_isa} = %{version}-%{release} + +%description roofit-jsoninterface +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 the JSON interface to RooFit. + %package roostats Summary: Statistical tools built on top of RooFit -License: BSD Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} @@ -1627,6 +1517,22 @@ Obsoletes: %{name}-roofit < 6.20.00 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}-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-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. +%endif + %package sql-mysql Summary: MySQL client plugin for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1672,7 +1578,7 @@ ROOT environment. %package tmva Summary: Toolkit for multivariate data analysis -License: BSD +License: BSD-3-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} @@ -1710,7 +1616,7 @@ compared. %package tmva-python Summary: Toolkit for multivariate data analysis (Python) -License: BSD +License: BSD-3-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-tmva%{?_isa} = %{version}-%{release} Requires: %{name}-tmva-sofie%{?_isa} = %{version}-%{release} @@ -1721,7 +1627,7 @@ Python integration with TMVA. %package tmva-r Summary: Toolkit for multivariate data analysis (R) -License: BSD +License: BSD-3-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-matrix%{?_isa} = %{version}-%{release} Requires: %{name}-r%{?_isa} = %{version}-%{release} @@ -1732,6 +1638,7 @@ R integration with TMVA. %package tmva-sofie Summary: ROOT/TMVA SOFIE (System for Optimized Fast Inference code Emit) +License: BSD-3-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} %description tmva-sofie @@ -1744,6 +1651,7 @@ produces C++ header files that can be included and utilized in a %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} @@ -1753,7 +1661,7 @@ Parsers for ROOT/TMVA SOFIE %package tmva-gui Summary: Toolkit for multivariate data analysis GUI -License: BSD +License: BSD-3-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} @@ -1777,6 +1685,7 @@ Requires: %{name}-net%{?_isa} = %{version}-%{release} %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} @@ -1794,6 +1703,7 @@ Obsoletes: %{name}-tree-player < 6.14.00 %description tree-dataframe This package contains a high level interface to ROOT trees. +%endif %package tree-player Summary: Library to loop over a ROOT tree @@ -1829,6 +1739,17 @@ Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} %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} @@ -1853,34 +1774,34 @@ Summary: Static files for the Jupyter ROOT Notebook BuildArch: noarch Requires: %{name}-core = %{version}-%{release} Requires: js-jsroot >= 6 -%if %{?fedora}%{!?fedora:0} >= 26 -# jupyter-notebook not available in -# Fedora <= 25 or RHEL/EPEL - some functionality missing +%if %{?fedora}%{!?fedora:0} +# jupyter-notebook not available in RHEL/EPEL +# some functionality missing Requires: jupyter-notebook %endif %description notebook Javascript and style files for the Jupyter ROOT Notebook. -%if %{webgui} %package gui-webdisplay -Summary: Web display (ROOT 7) +Summary: Web display for ROOT Requires: %{name}-core%{?_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 7. +This package contains a web display extension for ROOT. %ifarch %{qt5_qtwebengine_arches} %package gui-qt5webdisplay -Summary: Qt5 Web display (ROOT 7) +Summary: Qt5 Web display Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} Requires: %{name}-net-http%{?_isa} = %{version}-%{release} %description gui-qt5webdisplay -This package contains a Qt5 web display extension for ROOT 7. +This package contains a Qt5 web display extension for ROOT. %endif %package gui-webgui6 @@ -1888,16 +1809,25 @@ Summary: Web based GUI for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-gui%{?_isa} = %{version}-%{release} Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} %description gui-webgui6 This package provides a Web based GUI for ROOT. -%endif %if %{root7} +%package geom-webviewer +Summary: Geometry web viewer library for ROOT +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-geom%{?_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 graf-gpadv7 Summary: Canvas and pad library for ROOT (ROOT 7) Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1950,13 +1880,15 @@ This package contains GUI browsable components for ROOT 7. Summary: Browser (ROOT 7) 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}-graf-gpadv7%{?_isa} = %{version}-%{release} -Requires: %{name}-graf3d-eve7%{?_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} %description gui-browserv7 This package contains a file browser for ROOT 7. @@ -2003,10 +1935,52 @@ This package contains an histogram drawing extension for ROOT 7. Summary: Ntuple (ROOT 7) Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-vecops%{?_isa} = %{version}-%{release} %description tree-ntuple This package contains an ntuple extension for ROOT 7. + +%package tree-ntuple-utils +Summary: Ntuple utility library (ROOT 7) +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-tree-ntuple%{?_isa} = %{version}-%{release} + +%description tree-ntuple-utils +This package contains utility functions for ntuples. + +%if %{roofit} +%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-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} + +%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 %endif %prep @@ -2039,20 +2013,6 @@ This package contains an ntuple extension for ROOT 7. %patch24 -p1 %patch25 -p1 %patch26 -p1 -%patch27 -p1 -%patch28 -p1 -%patch29 -p1 -%patch30 -p1 -%patch31 -p1 -%patch32 -p1 -%patch33 -p1 -%patch34 -p1 -%patch35 -p1 -%patch36 -p1 -%patch37 -p1 -%patch38 -p1 -%patch39 -p1 -%patch40 -p1 # Remove bundled sources in order to be sure they are not used # * afterimage @@ -2089,30 +2049,17 @@ rm -rf documentation/doxygen/mathjax.tar.gz # * jsroot rm -rf js/[^f]* js/files/draw.htm js/files/online.htm -# Remove unsupported man page macros -sed -e '/^\.UR/d' -e '/^\.UE/d' -i man/man1/* - # Remove pre-minified script and style files 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 +%if %{?rhel}%{!?rhel:0} == 8 +# Allow older json on EPEL 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 -# Brace initialization list is ambiguous with old compiler -sed 's!.*dataframe_datasetspec!### &!' -i tree/dataframe/test/CMakeLists.txt -%endif - %build -%if %{?rhel}%{!?rhel:0} == 7 -. /opt/rh/devtoolset-8/enable -%endif - # This package triggers a fault in LLVM when LTO is enabled. Until LLVM # is analyzed and fixed, disable LTO %define _lto_cflags %{nil} @@ -2129,12 +2076,15 @@ for s in etc/notebook/JsMVA/css/*.css ; do python3 -m rcssmin < ${s} > ${s%.css}.min.css done -# Avoid overlinking (this used to be the default with the old configure script) +# Avoid overlinking (this is the default on Fedora and EPEL 9) +%if %{?rhel}%{!?rhel:0} == 8 LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" +%endif -%cmake3 \ +%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_INSTALL_ELISPDIR:PATH=%{_emacs_sitelispdir}/%{name} \ @@ -2180,7 +2130,11 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dcuda:BOOL=OFF \ -Dcxxmodules:BOOL=OFF \ -Ddaos:BOOL=OFF \ +%if %{dataframe} -Ddataframe:BOOL=ON \ +%else + -Ddataframe:BOOL=OFF \ +%endif -Ddavix:BOOL=ON \ -Ddcache:BOOL=ON \ -Ddev:BOOL=OFF \ @@ -2191,24 +2145,18 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dfitsio:BOOL=ON \ -Dfortran:BOOL=ON \ -Dgdml:BOOL=ON \ -%if %{gfal2} -Dgfal:BOOL=ON \ -%else - -Dgfal:BOOL=OFF \ -%endif -Dgsl_shared:BOOL=ON \ -Dgviz:BOOL=ON \ -Dhttp:BOOL=ON \ -%if %{tbb} -Dimt:BOOL=ON \ -%else - -Dimt:BOOL=OFF \ -%endif -Djemalloc:BOOL=OFF \ -Dlibcxx:BOOL=OFF \ -Dmathmore:BOOL=ON \ -Dmemory_termination:BOOL=OFF \ -Dminuit2:BOOL=ON \ + -Dminuit2_mpi:BOOL=OFF \ + -Dminuit2_omp:BOOL=OFF \ -Dmlp:BOOL=ON \ -Dmonalisa:BOOL=OFF \ -Dmpi:BOOL=OFF \ @@ -2228,7 +2176,11 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" %endif -Dqt6web:BOOL=OFF \ -Dr:BOOL=ON \ +%if %{roofit} -Droofit:BOOL=ON \ +%else + -Droofit:BOOL=OFF \ +%endif -Droofit_multiprocess:BOOL=OFF \ -Droofit_hs3_ryml:BOOL=OFF \ %if %{root7} @@ -2247,11 +2199,7 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dssl:BOOL=ON \ -Dtcmalloc:BOOL=OFF \ -Dtmva:BOOL=ON \ -%if %{tbb} -Dtmva-cpu:BOOL=ON \ -%else - -Dtmva-cpu:BOOL=OFF \ -%endif -Dtmva-gpu:BOOL=OFF \ -Dtmva-pymva:BOOL=ON \ -Dtmva-rmva:BOOL=ON \ @@ -2261,7 +2209,7 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dtmva-sofie:BOOL=OFF \ %endif -Dunuran:BOOL=ON \ -%if %{?fedora}%{!?fedora:0} +%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 9 -During:BOOL=ON \ %else -During:BOOL=OFF \ @@ -2270,19 +2218,11 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dvdt:BOOL=OFF \ -Dveccore:BOOL=OFF \ -Dvecgeom:BOOL=OFF \ -%if %{webgui} -Dwebgui:BOOL=ON \ -%else - -Dwebgui:BOOL=OFF \ -%endif -Dx11:BOOL=ON \ -Dxml:BOOL=ON \ -Dxrootd:BOOL=ON \ -%if %{xrootd5} -Dxproofd:BOOL=OFF \ -%else - -Dxproofd:BOOL=ON \ -%endif -Dfail-on-missing:BOOL=ON \ -Dtesting:BOOL=ON \ -Dtest_distrdf_pyspark:BOOL=OFF \ @@ -2292,10 +2232,10 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Droottest:BOOL=OFF \ -Drootbench:BOOL=OFF \ -Dasan:BOOL=OFF -%cmake3_build +%cmake_build %install -%cmake3_install +%cmake_install # Do emacs byte compilation emacs -batch -no-site-file -f batch-byte-compile \ @@ -2319,100 +2259,41 @@ install -p -m 644 %{SOURCE7} %{buildroot}%{_pkgdocdir} # Move python cli helper to its own directory mkdir -p %{buildroot}%{_datadir}/%{name}/cli -mv %{buildroot}%{_libdir}/%{name}/cmdLineUtils.py* \ +mv %{buildroot}%{python3_sitearch}/cmdLineUtils.py \ %{buildroot}%{_datadir}/%{name}/cli -rm %{buildroot}%{_libdir}/%{name}/__pycache__/cmdLineUtils.* sed -e '/^\#!/d' -i %{buildroot}%{_datadir}/%{name}/cli/cmdLineUtils.py # Install GDB pretty printers to auto load safe path -# These are installed (in libdir) by "make install" if CMAKE_BUILD_TYPE -# matches Debug or RelWithDebInfo mkdir -p %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name} -install -p -m 644 build/gdbPrinters/libCore.so-gdb.py \ - %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name}/libCore.so.%{version}-gdb.py -install -p -m 644 build/gdbPrinters/libRooFitCore.so-gdb.py \ - %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name}/libRooFitCore.so.%{version}-gdb.py +mv %{buildroot}%{_libdir}/%{name}/*-gdb.py \ + %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name} + +# Let rpm redo the python byte compilation +find %{buildroot}%{python3_sitearch} -depth -type d -name __pycache__ -exec rm -r {} ';' # Do python byte compilation (for non-standard paths) -%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8 -# This is the default for Fedora 30+, set it for Fedora 28-29 -%global _python_bytecompile_extra 0 %py_byte_compile %{__python3} %{buildroot}%{_datadir}/%{name}/cli %py_byte_compile %{__python3} %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name} -%endif - -%if %{buildpy2} - -# Move the python modules to sitearch/sitelib -mkdir -p %{buildroot}%{python2_sitearch} - -cp -pr %{buildroot}%{_libdir}/%{name}/cppyy %{buildroot}%{python2_sitearch} -ln -s ../../root/libcppyy%{python2_version_uscore}.so.%{version} \ - %{buildroot}%{python2_sitearch}/libcppyy%{python2_version_uscore}.so - -cp -pr %{buildroot}%{_libdir}/%{name}/cppyy_backend %{buildroot}%{python2_sitearch} -ln -s ../../root/libcppyy_backend%{python2_version_uscore}.so.%{version} \ - %{buildroot}%{python2_sitearch}/libcppyy_backend%{python2_version_uscore}.so - -cp -pr %{buildroot}%{_libdir}/%{name}/ROOT %{buildroot}%{python2_sitearch} -mv %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python2_version_uscore}.so.%{version} \ - %{buildroot}%{python2_sitearch}/libROOTPythonizations%{python2_version_uscore}.so -rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python2_version_uscore}.so.%{libversion} -rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python2_version_uscore}.so - -cp -pr %{buildroot}%{_libdir}/%{name}/JupyROOT %{buildroot}%{python2_sitearch} -mv %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python2_version_uscore}.so.%{version} \ - %{buildroot}%{python2_sitearch}/libJupyROOT%{python2_version_uscore}.so -rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python2_version_uscore}.so.%{libversion} -rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python2_version_uscore}.so - -mkdir -p %{buildroot}%{python2_sitelib} -cp -pr %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python2_sitelib} - -# Create .egg-info files so that rpm auto-generates provides -echo 'Name: ROOT' > \ - %{buildroot}%{python2_sitearch}/ROOT-%{version}.egg-info -echo 'Version: %{version}' >> \ - %{buildroot}%{python2_sitearch}/ROOT-%{version}.egg-info -echo 'Name: JupyROOT' > \ - %{buildroot}%{python2_sitearch}/JupyROOT-%{version}.egg-info -echo 'Version: %{version}' >> \ - %{buildroot}%{python2_sitearch}/JupyROOT-%{version}.egg-info -echo 'Name: JsMVA' > \ - %{buildroot}%{python2_sitelib}/JsMVA-%{version}.egg-info -echo 'Version: %{version}' >> \ - %{buildroot}%{python2_sitelib}/JsMVA-%{version}.egg-info - -%endif -# Move the python modules to sitearch/sitelib -mkdir -p %{buildroot}%{python3_sitearch} - -mv %{buildroot}%{_libdir}/%{name}/cppyy %{buildroot}%{python3_sitearch} -ln -s ../../root/libcppyy%{python3_version_uscore}.so.%{version} \ - %{buildroot}%{python3_sitearch}/libcppyy%{python3_version_uscore}%{python3_ext_suffix} - -mv %{buildroot}%{_libdir}/%{name}/cppyy_backend %{buildroot}%{python3_sitearch} -ln -s ../../root/libcppyy_backend%{python3_version_uscore}.so.%{version} \ - %{buildroot}%{python3_sitearch}/libcppyy_backend%{python3_version_uscore}.so - -mv %{buildroot}%{_libdir}/%{name}/ROOT %{buildroot}%{python3_sitearch} -mv %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python3_version_uscore}.so.%{version} \ +# Fix python extension suffix +mv %{buildroot}%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}.so.%{version} \ %{buildroot}%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}%{python3_ext_suffix} -rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python3_version_uscore}.so.%{libversion} -rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python3_version_uscore}.so +rm %{buildroot}%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}.so.%{libversion} +rm %{buildroot}%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}.so -mv %{buildroot}%{_libdir}/%{name}/JupyROOT %{buildroot}%{python3_sitearch} -mv %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so.%{version} \ +mv %{buildroot}%{python3_sitearch}/libJupyROOT%{python3_version_uscore}.so.%{version} \ %{buildroot}%{python3_sitearch}/libJupyROOT%{python3_version_uscore}%{python3_ext_suffix} -rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so.%{libversion} -rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so +rm %{buildroot}%{python3_sitearch}/libJupyROOT%{python3_version_uscore}.so.%{libversion} +rm %{buildroot}%{python3_sitearch}/libJupyROOT%{python3_version_uscore}.so +# Move noarch python modules to sitelib +if [ "%{python3_sitelib}" != "%{python3_sitearch}" ] ; then mkdir -p %{buildroot}%{python3_sitelib} -mv %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python3_sitelib} +mv %{buildroot}%{python3_sitearch}/JsMVA %{buildroot}%{python3_sitelib} %if %{distrdf} -mv %{buildroot}%{_libdir}/%{name}/DistRDF %{buildroot}%{python3_sitelib} +mv %{buildroot}%{python3_sitearch}/DistRDF %{buildroot}%{python3_sitelib} %endif +fi # Create .egg-info files so that rpm auto-generates provides echo 'Name: ROOT' > \ @@ -2437,16 +2318,6 @@ echo 'Version: %{version}' >> \ # Put jupyter stuff in the right places mkdir -p %{buildroot}%{_datadir}/jupyter/kernels -%if %{buildpy2} -cp -pr %{buildroot}%{_datadir}/%{name}/notebook/kernels/root \ - %{buildroot}%{_datadir}/jupyter/kernels/python2-jupyroot -sed -e 's/ROOT C++/& (Python 2)/' \ - -e 's!python[0-9]*\.[0-9]*!%{__python2}!' \ - -i %{buildroot}%{_datadir}/jupyter/kernels/python2-jupyroot/kernel.json -sed -e '/^\#!/d' \ - -i %{buildroot}%{python2_sitearch}/JupyROOT/kernel/rootkernel.py -%endif - cp -pr %{buildroot}%{_datadir}/%{name}/notebook/kernels/root \ %{buildroot}%{_datadir}/jupyter/kernels/python%{python3_pkgversion}-jupyroot sed -e 's/ROOT C++/& (Python 3)/' \ @@ -2522,43 +2393,34 @@ pushd %{buildroot}%{_datadir}/%{name}/plugins rm TBrowserImp/P030_RWebBrowserImp.C %endif rm TDataSetManager/P020_TDataSetManagerAliEn.C -%if ! %{gfal2} -rm TFile/P050_TGFALFile.C -%endif rm TFile/P070_TAlienFile.C rm TGLManager/P020_TGWin32GLManager.C rm TGLManager/P030_TGOSXGLManager.C rm TGrid/P010_TAlien.C -%if ! %{webgui} -rm TGuiFactory/P030_TWebGuiFactory.C -%endif -%if %{xrootd5} rm TProofMgr/P010_TXProofMgr.C rm TProofServ/P010_TXProofServ.C rm TSlave/P010_TXSlave.C -%endif rm TSQLServer/P040_TOracleServer.C rm TSystem/P030_TAlienSystem.C rm TVirtualGeoConverter/P010_TGeoVGConverter.C %if ! %{root7} -rm TVirtualGeoPainter/P020_REveGeoPainter.C +rm TVirtualGeoPainter/P020_RGeoPainter.C %endif rm TVirtualGLImp/P020_TGWin32GL.C rm TVirtualMonitoringWriter/P010_TMonaLisaWriter.C rm TVirtualX/P030_TGWin32.C rm TVirtualX/P050_TGQuartz.C rmdir TGrid -%if %{xrootd5} rmdir TProofMgr rmdir TProofServ rmdir TSlave -%endif rmdir TVirtualGeoConverter popd # Replace bundled jsroot with symlinks to system version -for x in img libs scripts style files/draw.htm files/online.htm ; do - ln -s /usr/share/javascript/jsroot/$x %{buildroot}%{_datadir}/%{name}/js/$x +for x in build img modules scripts files/draw.htm files/online.htm ; do + ln -nrs %{buildroot}%{_jsdir}/jsroot/$x \ + %{buildroot}%{_datadir}/%{name}/js/$x done # Create ldconfig configuration @@ -2568,17 +2430,13 @@ echo %{_libdir}/%{name} > \ # Make ROOTConfig-targets.cmake not error on missing files to work better with # subpackages -%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8 -%global pkgmgr dnf -%else -%global pkgmgr yum -%endif -sed -e '/FATAL.*import/i\ message(WARNING "The imported target \\"\${target}\\" references the file\ - \\"\${file}\\"\ -but this file does not exist. If this target is used you need to install the package that provides this file\ - %{pkgmgr} install \${file}\ +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.")' \ - -e '/FATAL.*import/,/)/d' \ + -e '/Possible reasons include/,/)/d' \ -i %{buildroot}%{_datadir}/%{name}/cmake/ROOTConfig-targets.cmake # Rename to avoid name clashes @@ -2591,30 +2449,17 @@ for f in `find %{_vpath_builddir} -name cmake_install.cmake -a '!' -path '*/llvm l=`sed 's!%{_vpath_builddir}/\(.*\)/cmake_install.cmake!includelist-\1!' <<< $f` l=`tr / - <<< $l` tmpdir=`mktemp -d` -%if %{?rhel}%{!?rhel:0} == 7 - DESTDIR=$tmpdir cmake3 -DCMAKE_INSTALL_COMPONENT=headers -P $f > /dev/null -%else DESTDIR=$tmpdir cmake -DCMAKE_INSTALL_COMPONENT=headers -P $f > /dev/null -%endif ( cd $tmpdir ; find . -type f) | sort | sed 's!^\.!!' > $l rm -rf $tmpdir done # ... and merge some of them cat includelist-core-{[^mw],m[^au]}* > includelist-core -cat includelist-geom-geom* > includelist-geom cat includelist-graf2d-x11ttf >> includelist-graf2d-x11 cat includelist-graf3d-rglew >> includelist-graf3d-gl -cat includelist-net-netxng > includelist-netx -%if ! %{xrootd5} -cat includelist-net-netx >> includelist-netx -%endif %check -%if %{?rhel}%{!?rhel:0} == 7 -. /opt/rh/devtoolset-8/enable -%endif - pushd %{_vpath_builddir} pushd test ln -s ../../files files @@ -2704,8 +2549,6 @@ popd # reads input data over network #
http://root.cern/files/tmva101.root
# -# - pyunittests-pyroot-dependency-versions -# - pyunittests-pyroot-numbadeclare # - test-import-numba # - tutorial-pyroot-pyroot004_NumbaDeclare-py # these tests require the numba python module which is not available @@ -2742,8 +2585,6 @@ gtest-tmva-tmva-test-rstandardscaler|\ tutorial-tmva-tmva003_RReader|\ tutorial-tmva-tmva004_RStandardScaler|\ tutorial-tmva-tmva103_Application|\ -pyunittests-pyroot-dependency-versions|\ -pyunittests-pyroot-numbadeclare|\ test-import-numba|\ tutorial-pyroot-pyroot004_NumbaDeclare-py|\ test-webgui-ping" @@ -2752,29 +2593,25 @@ test-webgui-ping" # - test-import-pandas # - tutorial-dataframe-df026_AsNumpyArrays-py # - tutorial-roofit-rf409_NumPyPandasToRooFit-py -# requires the pandas python module which is not available in EPEL 7 -# or EPEL 9 +# Requires the pandas python module not (yet) available in RHEL/EPEL 9 excluded="${excluded}|\ test-import-pandas|\ tutorial-dataframe-df026_AsNumpyArrays-py|\ tutorial-roofit-rf409_NumPyPandasToRooFit-py" %endif -%if %{?rhel}%{!?rhel:0} == 7 -# - pyunittests-pyroot-roofit-roodataset-numpy -# AttributeError: module 'numpy' has no attribute 'isin' -excluded="${excluded}|\ -pyunittests-pyroot-roofit-roodataset-numpy" -%endif - %if %{?fedora}%{!?fedora:0} >= 38 -# Failures with Fedora 38 (GCC 13 related?) +# - pyunittests-dataframe-histograms +# - tutorial-legacy-rootenv +# Failures with Fedora 38 (GCC 13 related?) excluded="${excluded}|\ pyunittests-dataframe-histograms|\ tutorial-legacy-rootenv" %ifarch %{ix86} -# Failures with Fedora 38 i686 (after numpy 1.24 update) +# - pyunittests-pyroot-roofit-roodataset-numpy +# Failures with Fedora 38 i686 (after numpy 1.24 update) +#
https://github.com/root-project/root/issues/12162
excluded="${excluded}|\ pyunittests-pyroot-roofit-roodataset-numpy" %endif @@ -2782,7 +2619,6 @@ pyunittests-pyroot-roofit-roodataset-numpy" %ifarch %{arm} # 32 bit arm specific failures -# # - gtest-tree-tree-test-testBulkApi # - gtest-tree-tree-test-testBulkApiSillyStruct # - gtest-tree-dataframe-test-dataframe-snapshot @@ -2799,76 +2635,34 @@ pyunittests-distrdf-unit-test-headnode" %endif %ifarch %{power64} aarch64 -# This test fails on ppc64le and aarch64 (but not on x86_64) -# The interpreted version works though, only compiled version fails # - test-stresshistofit -excluded="${excluded}|test-stresshistofit\$\$" +# - test-stressroofit +# - test-stressroofit-batchmode-cpu +# - test-stressroofit-interpreted +excluded="${excluded}|\ +test-stresshistofit\$\$|\ +test-stressroofit\$\$|\ +test-stressroofit-batchmode-cpu|\ +test-stressroofit-interpreted" %endif %ifarch %{power64} # PPC64LE specific failures -# # - test-stresshistofit-interpreted # - test-stresshistogram-interpreted # - test-stressmathcore-interpreted # - test-stressroostats-interpreted # # Always timeout (hang?) -# - pyunittests-pyroot-pyz-rdataframe-makenumpy -# - tutorial-dataframe-df032_MakeNumpyDataFrame-py +# - test-stressinterpreter +# - tutorial-unuran-unuranFoamTest excluded="${excluded}|\ test-stresshistofit-interpreted|\ test-stresshistogram-interpreted|\ test-stressmathcore-interpreted|\ test-stressroostats-interpreted|\ -pyunittests-pyroot-pyz-rdataframe-makenumpy|\ -tutorial-dataframe-df032_MakeNumpyDataFrame-py" - -%if %{?rhel}%{!?rhel:0} == 9 -# tmva/tmva/test/branchlessForest.cxx:215: Failure -# Expected equality of these values: -# predictions[1] -# Which is: -1 -# -1.0 + 2.0 -# Which is: 1 -# - gtest-tmva-tmva-test-branchlessForest -# -# Error in <TAxis::TAxis::Set>: bins must be in increasing order -# Error in <TGraphPainter::PaintGrapHist>: X must be in increasing order -# - tutorial-math-kdTreeBinning -# -# Segmentation violation - malloc(): unaligned tcache chunk detected -# - tutorial-unfold-testUnfold7c -# -# TFormula double free in Python -# - tutorial-hist-fillrandom-py -# - tutorial-pyroot-fillrandom-py -# - tutorial-pyroot-fit1-py (uses output of tutorial-pyroot-fillrandom-py) -# - tutorial-pyroot-formula1-py -excluded="${excluded}|\ -gtest-tmva-tmva-test-branchlessForest|\ -tutorial-math-kdTreeBinning|\ -tutorial-unfold-testUnfold7c|\ -tutorial-hist-fillrandom-py|\ -tutorial-pyroot-fillrandom-py|\ -tutorial-pyroot-fit1-py|\ -tutorial-pyroot-formula1-py" -%endif - -%if %{?rhel}%{!?rhel:0} == 7 || %{?rhel}%{!?rhel:0} == 8 -# crash - free(): corrupted unsorted chunks -# - gtest-roofit-RDataFrameHelpers-test-testActionHelpers -# - gtest-tmva-tmva-test-rtensor-utils -# - gtest-tree-dataframe-test-dataframe-* -# - gtest-tree-dataframe-test-datasource-* -# - tutorial-dataframe-df004_cutFlowReport -excluded="${excluded}|\ -gtest-roofit-RDataFrameHelpers-test-testActionHelpers|\ -gtest-tmva-tmva-test-rtensor-utils|\ -gtest-tree-dataframe-test-dataframe|\ -gtest-tree-dataframe-test-datasource|\ -tutorial-dataframe-df004_cutFlowReport" -%endif +test-stressinterpreter|\ +tutorial-unuran-unuranFoamTest" %if %{?rhel}%{!?rhel:0} == 8 # Fails on ppc64le since RHEL 8.5 update @@ -2879,115 +2673,121 @@ tutorial-dataframe-df004_cutFlowReport" # - librt-2.28 # - pyunittests-pyroot-import-load-libs # -# crash - double free or corruption (out) +# - tutorial-fit-combinedFit(-py) +# - tutorial-fit-exampleFit3D +# - tutorial-fit-fit2dHist +# - tutorial-fit-fitCircle +# - tutorial-fit-line3Dfit +# - tutorial-multicore-mt103_fillNtupleFromMultipleThreads # - tutorial-multicore-mt201_parallelHistoFill -# -# segmentation violation # - tutorial-multicore-mt304_fillHistos +# - tutorial-multicore-mtbb001_fillHistos +# - tutorial-multicore-mtbb101_fillNtuples +# - tutorial-multicore-mtbb201_parallelHistoFill excluded="${excluded}|\ pyunittests-pyroot-import-load-libs|\ +tutorial-fit-combinedFit|\ +tutorial-fit-exampleFit3D|\ +tutorial-fit-fit2dHist|\ +tutorial-fit-fitCircle|\ +tutorial-fit-line3Dfit|\ +tutorial-multicore-mt103_fillNtupleFromMultipleThreads|\ tutorial-multicore-mt201_parallelHistoFill|\ -tutorial-multicore-mt304_fillHistos" +tutorial-multicore-mt304_fillHistos|\ +tutorial-multicore-mtbb001_fillHistos|\ +tutorial-multicore-mtbb101_fillNtuples|\ +tutorial-multicore-mtbb201_parallelHistoFill" %endif %endif %ifarch s390x -# s390x specific failures -# # - gtest-roofit-roofitcore-test-testNaNPacker -# - gtest-roofit-roofitcore-test-testRooProdPdf -# - gtest-tree-dataframe-test-datasource-ntuple +# - tutorial-roofit-rf612_recoverFromInvalidParameters +# Uses "Packed NaN" feature, not implemented for big endian. +excluded="${excluded}|\ +gtest-roofit-roofitcore-test-testNaNPacker|\ +tutorial-roofit-rf612_recoverFromInvalidParameters" + # - gtest-tree-ntuple-v7-test-ntuple-basics +# - gtest-tree-ntuple-v7-test-ntuple-endian # - gtest-tree-ntuple-v7-test-ntuple-extended -# - gtest-tree-ntuple-v7-test-ntuple-merger # - gtest-tree-ntuple-v7-test-ntuple-minifile +# - gtest-tree-ntuple-v7-test-ntuple-rdf # - gtest-tree-ntuple-v7-test-ntuple-serialize +# - gtest-tree-ntuple-v7-test-ntuple-types +#
https://github.com/root-project/root/issues/12426
+# # - pyunittests-pyroot-pyz-rtensor # - pyunittests-pyroot-pyz-stl-vector -# - test-stresshistofit(-interpreted) -# - test-stresshistogram(-interpreted) # - tutorial-dataframe-df006_ranges-py +# - tutorial-fit-combinedFit-py # - tutorial-math-exampleFunction-py -# - tutorial-roofit-rf612_recoverFromInvalidParameters +# - tutorial-tmva-TMVA_CNN_Classification-py +# - tutorial-tmva-TMVA_Higgs_Classification-py +# - tutorial-tmva-TMVA_RNN_Classification-py +#
https://github.com/root-project/root/issues/12429
+# +# - tutorial-tree-drawsparse +#
https://github.com/root-project/root/issues/12431
+# +# - test-stresshistofit +# - test-stresshistofit-interpreted +# - test-stresshistogram +# - test-stresshistogram-interpreted +# - test-stressroofit +# - test-stressroofit-batchmode-cpu +# - test-stressroofit-interpreted excluded="${excluded}|\ -gtest-roofit-roofitcore-test-testNaNPacker|\ -gtest-roofit-roofitcore-test-testRooProdPdf|\ -gtest-tree-dataframe-test-datasource-ntuple|\ gtest-tree-ntuple-v7-test-ntuple-basics|\ +gtest-tree-ntuple-v7-test-ntuple-endian|\ gtest-tree-ntuple-v7-test-ntuple-extended|\ -gtest-tree-ntuple-v7-test-ntuple-merger|\ gtest-tree-ntuple-v7-test-ntuple-minifile|\ +gtest-tree-ntuple-v7-test-ntuple-rdf|\ gtest-tree-ntuple-v7-test-ntuple-serialize|\ +gtest-tree-ntuple-v7-test-ntuple-types|\ pyunittests-pyroot-pyz-rtensor|\ pyunittests-pyroot-pyz-stl-vector|\ -test-stresshistofit|\ -test-stresshistogram|\ tutorial-dataframe-df006_ranges-py|\ +tutorial-fit-combinedFit-py|\ tutorial-math-exampleFunction-py|\ -tutorial-roofit-rf612_recoverFromInvalidParameters" +tutorial-tmva-TMVA_CNN_Classification-py|\ +tutorial-tmva-TMVA_Higgs_Classification-py|\ +tutorial-tmva-TMVA_RNN_Classification-py|\ +tutorial-tree-drawsparse|\ +test-stresshistofit\$\$|\ +test-stresshistofit-interpreted|\ +test-stresshistogram\$\$|\ +test-stresshistogram-interpreted|\ +test-stressroofit\$\$|\ +test-stressroofit-batchmode-cpu|\ +test-stressroofit-interpreted" %if %{?rhel}%{!?rhel:0} == 8 # Issues with file sizes on EPEL 8 s390x +# - gtest-tree-readspeed-test-readspeed-general # - gtest-tree-tree-test-testTBranch # - test-stress # - test-stressgraphics(-interpreted) excluded="${excluded}|\ +gtest-tree-readspeed-test-readspeed-general|\ gtest-tree-tree-test-testTBranch|\ test-stress\$\$|\ test-stressgraphics" %endif - -%if %{?fedora}%{!?fedora:0} >= 38 -# Segmentation faults and invalid pointers -# Mainly related to DataFrame -excluded="${excluded}|\ -pyunittests-dataframe|\ -pyunittests-distrdf-unit-backend-test-dist|\ -pyunittests-distrdf-unit-test-headnode|\ -pyunittests-pyroot-pyz-rdataframe-asnumpy|\ -pyunittests-pyroot-pyz-rdataframe-makenumpy|\ -pyunittests-pyroot-rdfdescription|\ -gtest-roofit-RDataFrameHelpers-test-testActionHelpers|\ -gtest-tree-dataframe-test-dataframe|\ -gtest-tree-dataframe-test-datasource|\ -gtest-tree-ntuple-v7-test-ntuple-rdf|\ -tutorial-dataframe-df|\ -tutorial-graphs-timeSeriesFromCSV_TDF|\ -tutorial-multicore-mt304_fillHistos|\ -tutorial-rcanvas|\ -tutorial-roofit-rf408_RDataFrameToRooFit-py|\ -tutorial-roofit-rf508_listsetmanip-py|\ -tutorial-tmva-tmva002_RDataFrameAsTensor|\ -tutorial-v7-concurrentfill.cxx|\ -tutorial-v7-histops.cxx|\ -tutorial-v7-perf.cxx|\ -tutorial-v7-perfcomp.cxx|\ -tutorial-v7-simple.cxx" -%endif %endif # Filter out parts of tests that require remote network access -GTEST_FILTER=-RCsvDS.Remote:RRawFile.Remote:RSqliteDS.Davix \ +# RNTuple.TClassEBO seg fault +#
https://github.com/root-project/root/issues/12428
+GTEST_FILTER=-RCsvDS.Remote:RRawFile.Remote:RSqliteDS.Davix:TFile.ReadWithoutGlobalRegistrationWeb:TFile.ReadWithoutGlobalRegistrationNet:RNTuple.TClassEBO \ +%if ! ( %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} == 8 ) +ROOTTEST_IGNORE_PANDAS_PY3=1 \ +%endif +ROOTTEST_IGNORE_NUMBA_PY3=1 \ +ROOTTEST_IGNORE_JUPYTER_PY3=1 \ make test ARGS="%{?_smp_mflags} --output-on-failure -E \"${excluded}\"" -popd - -%if %{?rhel}%{!?rhel:0} == 7 -%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 || : -%postun -if [ $1 -eq 0 ] ; then - 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 || : -%endif +popd %pretrans net-http -p <lua> path = "%{_datadir}/%{name}/js" @@ -2998,22 +2798,13 @@ end %post net-http # Replace bundled jsroot with symlinks to system version -for x in img libs scripts style files/draw.htm files/online.htm ; do - ln -fs /usr/share/javascript/jsroot/$x %{_datadir}/%{name}/js/$x +for x in build img modules scripts files/draw.htm files/online.htm ; do + ln -fnrs %{_jsdir}/jsroot/$x %{_datadir}/%{name}/js/$x done %{?ldconfig} %ldconfig_postun net-http -%if %{buildpy2} -%pre -n python2-%{name} -if [ -r /var/lib/alternatives/libPyROOT.so ] ; then - for alt in `grep python2.*/.*.so /var/lib/alternatives/libPyROOT.so` ; do - %{_sbindir}/update-alternatives --remove libPyROOT.so $alt - done -fi -%endif - %pre -n python%{python3_pkgversion}-%{name} if [ -r /var/lib/alternatives/libPyROOT.so ] ; then for alt in `grep python3.*/.*.so /var/lib/alternatives/libPyROOT.so` ; do @@ -3028,7 +2819,7 @@ if [ -e /etc/jupyter/jupyter_notebook_config.py ] ; then fi cat << EOF >> /etc/jupyter/jupyter_notebook_config.py # Extra static path for JupyROOT - start - do not remove this line -c.NotebookApp.extra_static_paths.append('%{_datadir}/javascript/jsroot') +c.NotebookApp.extra_static_paths.append('%{_jsdir}/jsroot') c.NotebookApp.extra_static_paths.append('%{_datadir}/%{name}/notebook') # Extra static path for JupyROOT - end - do not remove this line EOF @@ -3037,7 +2828,7 @@ if [ -e /etc/jupyter/jupyter_server_config.py ] ; then fi cat << EOF >> /etc/jupyter/jupyter_server_config.py # Extra static path for JupyROOT - start - do not remove this line -c.ServerApp.extra_static_paths.append('%{_datadir}/javascript/jsroot') +c.ServerApp.extra_static_paths.append('%{_jsdir}/jsroot') c.ServerApp.extra_static_paths.append('%{_datadir}/%{name}/notebook') # Extra static path for JupyROOT - end - do not remove this line EOF @@ -3066,14 +2857,13 @@ fi %ldconfig_scriptlets multiproc %ldconfig_scriptlets cling %ldconfig_scriptlets tpython -%if %{buildpy2} -%ldconfig_scriptlets -n python2-%{name} -%endif %ldconfig_scriptlets -n python%{python3_pkgversion}-%{name} %ldconfig_scriptlets r %ldconfig_scriptlets r-tools %ldconfig_scriptlets genetic %ldconfig_scriptlets geom +%ldconfig_scriptlets geom-builder +%ldconfig_scriptlets geom-painter %ldconfig_scriptlets gdml %ldconfig_scriptlets graf %ldconfig_scriptlets graf-asimage @@ -3099,13 +2889,10 @@ fi %ldconfig_scriptlets hist-painter %ldconfig_scriptlets spectrum %ldconfig_scriptlets spectrum-painter -%ldconfig_scriptlets hist-factory %ldconfig_scriptlets html %ldconfig_scriptlets io %ldconfig_scriptlets io-dcache -%if %{gfal2} %ldconfig_scriptlets io-gfal -%endif %ldconfig_scriptlets io-sql %ldconfig_scriptlets io-xml %ldconfig_scriptlets io-xmlparser @@ -3137,17 +2924,20 @@ fi %ldconfig_scriptlets proof-bench %ldconfig_scriptlets proof-player %ldconfig_scriptlets proof-sessionviewer -%if ! %{xrootd5} -%ldconfig_scriptlets xproof -%endif +%if %{roofit} %ldconfig_scriptlets roofit %ldconfig_scriptlets roofit-common %ldconfig_scriptlets roofit-core %ldconfig_scriptlets roofit-more %ldconfig_scriptlets roofit-batchcompute +%if %{dataframe} %ldconfig_scriptlets roofit-dataframe-helpers +%endif +%ldconfig_scriptlets roofit-jsoninterface %ldconfig_scriptlets roofit-hs3 %ldconfig_scriptlets roostats +%ldconfig_scriptlets hist-factory +%endif %ldconfig_scriptlets sql-mysql %ldconfig_scriptlets sql-odbc %ldconfig_scriptlets sql-sqlite @@ -3161,18 +2951,20 @@ fi %endif %ldconfig_scriptlets tmva-gui %ldconfig_scriptlets tree +%if %{dataframe} %ldconfig_scriptlets tree-dataframe +%endif %ldconfig_scriptlets tree-player %ldconfig_scriptlets tree-viewer +%ldconfig_scriptlets tree-webviewer %ldconfig_scriptlets unfold -%if %{webgui} %ldconfig_scriptlets gui-webdisplay %ifarch %{qt5_qtwebengine_arches} %ldconfig_scriptlets gui-qt5webdisplay %endif %ldconfig_scriptlets gui-webgui6 -%endif %if %{root7} +%ldconfig_scriptlets geom-webviewer %ldconfig_scriptlets graf-gpadv7 %ldconfig_scriptlets graf-primitives %ldconfig_scriptlets graf3d-eve7 @@ -3183,6 +2975,10 @@ fi %ldconfig_scriptlets histv7 %ldconfig_scriptlets hist-draw %ldconfig_scriptlets tree-ntuple +%ldconfig_scriptlets tree-ntuple-utils +%if %{roofit} +%ldconfig_scriptlets xroofit +%endif %endif %files @@ -3190,8 +2986,10 @@ fi %{_bindir}/root %{_bindir}/root.exe %{_bindir}/rootn.exe +%{_bindir}/rootreadspeed %{_bindir}/roots %{_bindir}/roots.exe +%{_bindir}/rootssh %{_mandir}/man1/hadd.1* %{_mandir}/man1/root.1* %{_mandir}/man1/root.exe.1* @@ -3228,10 +3026,8 @@ fi %{_libdir}/%{name}/lib*Dict.* %dir %{_datadir}/gdb/auto-load%{_libdir}/%{name} %{_datadir}/gdb/auto-load%{_libdir}/%{name}/libCore.* -%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8 %dir %{_datadir}/gdb/auto-load%{_libdir}/%{name}/__pycache__ %{_datadir}/gdb/auto-load%{_libdir}/%{name}/__pycache__/libCore.* -%endif %dir %{_datadir}/%{name} %{_datadir}/%{name}/allDict.cxx.pch %{_datadir}/%{name}/class.rules @@ -3288,41 +3084,21 @@ fi %doc interpreter/llvm/src/llvm-README.txt %license interpreter/llvm/src/llvm-LICENSE.TXT +%files testsupport +%{_includedir}/%{name}/ROOT/TestSupport.hxx +%{_libdir}/%{name}/libTestSupport.a +%doc core/testsupport/README.md + %files tpython -f includelist-bindings-tpython %{_libdir}/%{name}/libROOTTPython.* %{_libdir}/%{name}/libROOTTPython_rdict.pcm -%if %{buildpy2} -%files -n python2-%{name} -f includelist-bindings-pyroot -%{python2_sitearch}/cppyy -%{python2_sitearch}/cppyy_backend -%{python2_sitearch}/ROOT -%{python2_sitearch}/ROOT-*.egg-info -%{python2_sitearch}/libcppyy%{python2_version_uscore}.so -%{python2_sitearch}/libcppyy_backend%{python2_version_uscore}.so -%{python2_sitearch}/libROOTPythonizations%{python2_version_uscore}.so -%{_libdir}/%{name}/libcppyy%{python2_version_uscore}.* -%{_libdir}/%{name}/libcppyy_backend%{python2_version_uscore}.* -%dir %{_includedir}/%{name}/CPyCppyy - -%files -n python2-jupyroot -%{python2_sitearch}/JupyROOT -%{python2_sitearch}/JupyROOT-*.egg-info -%{python2_sitearch}/libJupyROOT%{python2_version_uscore}.so -%{_datadir}/jupyter/kernels/python2-jupyroot -%doc bindings/jupyroot/README.md - -%files -n python2-jsmva -%{python2_sitelib}/JsMVA -%{python2_sitelib}/JsMVA-*.egg-info -%endif - %files -n python%{python3_pkgversion}-%{name} -f includelist-bindings-pyroot %{python3_sitearch}/cppyy %{python3_sitearch}/cppyy_backend %{python3_sitearch}/ROOT %{python3_sitearch}/ROOT-*.egg-info -%{python3_sitearch}/libcppyy%{python3_version_uscore}%{python3_ext_suffix} +%{python3_sitearch}/libcppyy%{python3_version_uscore}.so %{python3_sitearch}/libcppyy_backend%{python3_version_uscore}.so %{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}%{python3_ext_suffix} %{_libdir}/%{name}/libcppyy%{python3_version_uscore}.* @@ -3361,16 +3137,20 @@ fi %{_libdir}/%{name}/libGenetic_rdict.pcm %{_datadir}/%{name}/plugins/ROOT@@Math@@Minimizer/P080_GeneticMinimizer.C -%files geom -f includelist-geom +%files geom -f includelist-geom-geom %{_libdir}/%{name}/libGeom.* %{_libdir}/%{name}/libGeom_rdict.pcm +%{_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/TGeoManagerEditor/P010_TGeoManagerEditor.C %{_datadir}/%{name}/plugins/TVirtualGeoPainter/P010_TGeoPainter.C -%{_datadir}/%{name}/RadioNuclides.txt %files gdml -f includelist-geom-gdml %{_libdir}/%{name}/libGdml.* @@ -3512,17 +3292,6 @@ fi %{_libdir}/%{name}/libSpectrumPainter.* %{_libdir}/%{name}/libSpectrumPainter_rdict.pcm -%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 -%doc roofit/histfactory/doc/README - %files html -f includelist-html %{_libdir}/%{name}/libHtml.* %{_libdir}/%{name}/libHtml_rdict.pcm @@ -3539,12 +3308,10 @@ fi %{_datadir}/%{name}/plugins/TFile/P040_TDCacheFile.C %{_datadir}/%{name}/plugins/TSystem/P020_TDCacheSystem.C -%if %{gfal2} %files io-gfal -f includelist-io-gfal %{_libdir}/%{name}/libGFAL.* %{_libdir}/%{name}/libGFAL_rdict.pcm %{_datadir}/%{name}/plugins/TFile/P050_TGFALFile.C -%endif %files io-sql -f includelist-io-sql %{_libdir}/%{name}/libSQLIO.* @@ -3701,12 +3468,13 @@ fi %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/libs +%ghost %{_datadir}/%{name}/js/modules %ghost %{_datadir}/%{name}/js/scripts -%ghost %{_datadir}/%{name}/js/style %ghost %{_datadir}/%{name}/js/files/draw.htm %ghost %{_datadir}/%{name}/js/files/online.htm %doc net/http/README.txt net/http/civetweb/*.md @@ -3715,11 +3483,7 @@ fi %{_libdir}/%{name}/libRHTTPSniff.* %{_libdir}/%{name}/libRHTTPSniff_rdict.pcm -%files netx -f includelist-netx -%if ! %{xrootd5} -%{_libdir}/%{name}/libNetx.* -%{_libdir}/%{name}/libNetx_rdict.pcm -%endif +%files netx -f includelist-net-netxng %{_libdir}/%{name}/libNetxNG.* %{_libdir}/%{name}/libNetxNG_rdict.pcm %{_datadir}/%{name}/plugins/TFile/P100_TXNetFile.C @@ -3769,19 +3533,7 @@ fi %{_datadir}/%{name}/plugins/TProofProgressLog/P010_TProofProgressLog.C %{_datadir}/%{name}/plugins/TSessionViewer/P010_TSessionViewer.C -%if ! %{xrootd5} -%files xproof -f includelist-proof-proofx -%{_bindir}/proofexecv -%{_bindir}/xproofd -%{_mandir}/man1/xproofd.1* -%{_libdir}/%{name}/libProofx.* -%{_libdir}/%{name}/libProofx_rdict.pcm -%{_libdir}/%{name}/libXrdProofd.* -%{_datadir}/%{name}/plugins/TProofMgr/P010_TXProofMgr.C -%{_datadir}/%{name}/plugins/TProofServ/P010_TXProofServ.C -%{_datadir}/%{name}/plugins/TSlave/P010_TXSlave.C -%endif - +%if %{roofit} %files roofit -f includelist-roofit-roofit %{_libdir}/%{name}/libRooFit.* %{_libdir}/%{name}/libRooFit_rdict.pcm @@ -3793,9 +3545,7 @@ fi %{_libdir}/%{name}/libRooFitCore.* %{_libdir}/%{name}/libRooFitCore_rdict.pcm %{_datadir}/gdb/auto-load%{_libdir}/%{name}/libRooFitCore.* -%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8 %{_datadir}/gdb/auto-load%{_libdir}/%{name}/__pycache__/libRooFitCore.* -%endif %files roofit-more -f includelist-roofit-roofitmore %{_libdir}/%{name}/libRooFitMore.* @@ -3806,9 +3556,11 @@ fi %{_libdir}/%{name}/libRooBatchCompute_* %doc roofit/batchcompute/README.md +%if %{dataframe} %files roofit-dataframe-helpers -f includelist-roofit-RDataFrameHelpers %{_libdir}/%{name}/libRooFitRDataFrameHelpers.* %{_libdir}/%{name}/libRooFitRDataFrameHelpers_rdict.pcm +%endif %files roofit-hs3 -f includelist-roofit-hs3 %{_libdir}/%{name}/libRooFitHS3.* @@ -3817,11 +3569,27 @@ fi %{_datadir}/%{name}/RooFitHS3_wsfactoryexpressions.json %doc roofit/hs3/README.md +%files roofit-jsoninterface -f includelist-roofit-jsoninterface +%{_libdir}/%{name}/libRooFitJSONInterface.* +%{_libdir}/%{name}/libRooFitJSONInterface_rdict.pcm + %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 +%doc roofit/histfactory/doc/README +%endif + %files sql-mysql -f includelist-sql-mysql %{_libdir}/%{name}/libRMySQL.* %{_libdir}/%{name}/libRMySQL_rdict.pcm @@ -3848,9 +3616,7 @@ fi %dir %{_includedir}/%{name}/TMVA %dir %{_includedir}/%{name}/TMVA/DNN %dir %{_includedir}/%{name}/TMVA/DNN/Architectures -%if %{tbb} %dir %{_includedir}/%{name}/TMVA/DNN/Architectures/Cpu -%endif %dir %{_includedir}/%{name}/TMVA/DNN/Architectures/Reference %license tmva/doc/LICENSE @@ -3882,9 +3648,11 @@ fi %{_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 +%endif %files tree-player -f includelist-tree-treeplayer %{_libdir}/%{name}/libTreePlayer.* @@ -3897,6 +3665,11 @@ fi %{_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 unfold -f includelist-hist-unfold %{_libdir}/%{name}/libUnfold.* %{_libdir}/%{name}/libUnfold_rdict.pcm @@ -3919,7 +3692,6 @@ fi %{_datadir}/%{name}/notebook %doc %{_pkgdocdir}/JupyROOT-on-EPEL -%if %{webgui} %files gui-webdisplay -f includelist-gui-webdisplay %{_libdir}/%{name}/libROOTWebDisplay.* %{_libdir}/%{name}/libROOTWebDisplay_rdict.pcm @@ -3933,10 +3705,15 @@ fi %files gui-webgui6 -f includelist-gui-webgui6 %{_libdir}/%{name}/libWebGui6.* %{_libdir}/%{name}/libWebGui6_rdict.pcm -%{_datadir}/%{name}/plugins/TGuiFactory/P030_TWebGuiFactory.C -%endif +%{_datadir}/%{name}/plugins/TCanvasImp/P010_TWebCanvas.C +%{_datadir}/%{name}/plugins/TControlBarImp/P010_TWebControlBar.C %if %{root7} +%files geom-webviewer -f includelist-geom-webviewer +%{_libdir}/%{name}/libROOTGeomViewer.* +%{_libdir}/%{name}/libROOTGeomViewer_rdict.pcm +%{_datadir}/%{name}/plugins/TVirtualGeoPainter/P020_RGeoPainter.C + %files graf-gpadv7 -f includelist-graf2d-gpadv7 %{_libdir}/%{name}/libROOTGpadv7.* %{_libdir}/%{name}/libROOTGpadv7_rdict.pcm @@ -3948,7 +3725,6 @@ fi %files graf3d-eve7 -f includelist-graf3d-eve7 %{_libdir}/%{name}/libROOTEve.* %{_libdir}/%{name}/libROOTEve_rdict.pcm -%{_datadir}/%{name}/plugins/TVirtualGeoPainter/P020_REveGeoPainter.C %files gui-browsable -f includelist-gui-browsable %{_libdir}/%{name}/libROOTBrowsable.* @@ -3969,6 +3745,7 @@ fi %{_libdir}/%{name}/libROOTBrowserGeomWidget.* %{_libdir}/%{name}/libROOTBrowserRCanvasWidget.* %{_libdir}/%{name}/libROOTBrowserTCanvasWidget.* +%{_libdir}/%{name}/libROOTBrowserTreeWidget.* %{_libdir}/%{name}/libROOTBrowserWidgets.* %{_datadir}/%{name}/plugins/TBrowserImp/P030_RWebBrowserImp.C @@ -3990,9 +3767,34 @@ fi %files tree-ntuple -f includelist-tree-ntuple %{_libdir}/%{name}/libROOTNTuple.* %{_libdir}/%{name}/libROOTNTuple_rdict.pcm + +%files tree-ntuple-utils -f includelist-tree-ntupleutil +%{_libdir}/%{name}/libROOTNTupleUtil.* +%{_libdir}/%{name}/libROOTNTupleUtil_rdict.pcm + +%if %{roofit} +%files xroofit -f includelist-roofit-xroofit +%{_libdir}/%{name}/libRooFitXRooFit.* +%{_libdir}/%{name}/libRooFitXRooFit_rdict.pcm +%endif %endif %changelog +* Sat Mar 18 2023 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 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 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.10-5 - Adapt to numpy 1.24 diff --git a/sources b/sources index ef0a91f..e37c144 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (root-6.26.10.tar.xz) = 896727ce6da68871a52894a0a3c1b749fece9f08c8cefe62f5beac505710d579c41b84832a727a2ba39dab09e4456773c05b5b23a0fd859ace8062470653bbdb +SHA512 (root-6.28.00.tar.xz) = 57e5e111e41d3942b63a9e038198e6cc91457d7724cc9dcf9673679b12b13acb6980e7786828a8527a292c018bd13af51854e83f99301f6bc5e4455cdc23c30e SHA512 (root-testfiles.tar.xz) = 945aef1a0cf5af672d4ab84b0ac00b76118e93008ff72447658ee82d9e955a1540af3ff7126e701418872f1d91b92ee96d4985840a519036c42732023a13f00f commit e41288dd187d613cfcbd4760a6bb92e33b0f1797 Author: Miro Hrončok <miro(a)hroncok.cz> Date: Mon Jan 30 22:16:05 2023 +0100 Rebuilt to change Python shebangs to /usr/bin/python3.6 on EPEL 8 See
https://lists.fedoraproject.org/archives/list/epel-devel@lists.fedoraprojec…
diff --git a/root.spec b/root.spec index bead5ca..0cb36c8 100644 --- a/root.spec +++ b/root.spec @@ -65,7 +65,7 @@ Name: root Version: 6.26.10 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework License: LGPLv2+ @@ -3985,6 +3985,9 @@ fi %endif %changelog +* Mon Jan 30 2023 Miro Hrončok <mhroncok(a)redhat.com> - 6.26.10-2 +- Rebuilt to change Python shebangs to /usr/bin/python3.6 on EPEL 8 + * Wed Nov 16 2022 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.10-1 - Update to 6.26.10 - Drop patches root-Fixes-for-garbage-collection-in-Python-3.11.patch
1
0
0
0
Architecture specific change in rpms/root.git
by githook-noreply@fedoraproject.org
20 Mar '23
20 Mar '23
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=a08fcbc5ad2eb7b…
https://src.fedoraproject.org/cgit/rpms/root.git/commit/?id=1801745923d911a…
https://src.fedoraproject.org/cgit/rpms/root.git/commit/?id=635da91690ffdb7…
. Change: +%ifarch %{power64} +%ifarch %{ix86} -%ifarch %{ix86} %{arm} Thanks. Full change: ============ commit b75f0821798920a0467930e296cb446805525282 Merge: a08fcbc e41288d Author: Mattias Ellert <mattias.ellert(a)physics.uu.se> Date: Mon Mar 20 20:39:10 2023 +0100 Merge branch 'epel8' into rawhide diff --cc root.spec index eb06a82,0cb36c8..c551e00 --- a/root.spec +++ b/root.spec @@@ -3780,33 -3985,9 +3780,36 @@@ f %endif %changelog +* Sat Mar 18 2023 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 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 <mhroncok(a)redhat.com> - 6.26.10-2 + - Rebuilt to change Python shebangs to /usr/bin/python3.6 on EPEL 8 + +* Mon Jan 30 2023 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.10-5 +- Adapt to numpy 1.24 + +* Fri Jan 20 2023 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.10-4 +- Add missing #include <cstdint> + +* Fri Jan 20 2023 Fedora Release Engineering <releng(a)fedoraproject.org> - 6.26.10-3 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
+ +* Thu Dec 29 2022 Maxwell G <gotmax(a)e.email> - 6.26.10-2 +- Rebuild for cfitsio 4.2 + * Wed Nov 16 2022 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.10-1 - Update to 6.26.10 - Drop patches root-Fixes-for-garbage-collection-in-Python-3.11.patch commit a08fcbc5ad2eb7bbf4e170ffe106d439909c9867 Author: Mattias Ellert <mattias.ellert(a)physics.uu.se> Date: Sun Mar 19 07:53:00 2023 +0100 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 diff --git a/root-32bit-dataframe.patch b/root-32bit-dataframe.patch deleted file mode 100644 index 89e3c95..0000000 --- a/root-32bit-dataframe.patch +++ /dev/null @@ -1,170 +0,0 @@ -From 686d5011df607fde2a42c729d6bd446486163784 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Fri, 13 Mar 2020 16:20:17 +0100 -Subject: [PATCH] Restore 32-bit dataframe - ---- - build/unix/makepchinput.py | 3 --- - cmake/modules/RootBuildOptions.cmake | 5 ----- - tree/dataframe/test/dataframe_cache.cxx | 4 ---- - tree/dataframe/test/datasource_arrow.cxx | 4 ---- - tree/dataframe/test/datasource_csv.cxx | 4 ---- - tree/dataframe/test/datasource_root.cxx | 4 ---- - tree/dataframe/test/datasource_trivial.cxx | 4 ---- - tutorials/CMakeLists.txt | 5 ----- - 8 files changed, 33 deletions(-) - -diff --git a/build/unix/makepchinput.py b/build/unix/makepchinput.py -index 1adff487de..eec73f946d 100755 ---- a/build/unix/makepchinput.py -+++ b/build/unix/makepchinput.py -@@ -252,9 +252,6 @@ def isDirForPCH(dirName, legacyPyROOT): - "math/vdt", - "tmva/rmva"] - -- if (sys.platform != 'win32' and sys.maxsize <= 2**32): #
https://docs.python.org/3/library/platform.html#cross-platform
-- PCHPatternsBlacklist.append("tree/dataframe") -- - accepted = isAnyPatternInString(PCHPatternsWhitelist,dirName) and \ - not isAnyPatternInString(PCHPatternsBlacklist,dirName) - -diff --git a/cmake/modules/RootBuildOptions.cmake b/cmake/modules/RootBuildOptions.cmake -index 7886c5f3e9..6fbd8873f1 100644 ---- a/cmake/modules/RootBuildOptions.cmake -+++ b/cmake/modules/RootBuildOptions.cmake -@@ -344,11 +344,6 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES aarch64) - set(runtime_cxxmodules_defvalue OFF) - endif() - --# Disable RDataFrame on 32-bit UNIX platforms due to ROOT-9236 --if(UNIX AND CMAKE_SIZEOF_VOID_P EQUAL 4) -- set(dataframe_defvalue OFF) --endif() -- - # MultiProcess is not possible on Windows, so fail if it is manually set: - if(roofit_multiprocess AND WIN32) - message(FATAL_ERROR ">>> Option 'roofit_multiprocess' is not supported on Windows.") -diff --git a/tree/dataframe/test/dataframe_cache.cxx b/tree/dataframe/test/dataframe_cache.cxx -index 77be488052..8475b98acb 100644 ---- a/tree/dataframe/test/dataframe_cache.cxx -+++ b/tree/dataframe/test/dataframe_cache.cxx -@@ -224,8 +224,6 @@ TEST(Cache, evtCounter) - - } - --#ifdef R__B64 -- - TEST(Cache, Regex) - { - -@@ -329,8 +327,6 @@ TEST(Cache, Carrays) - gSystem->Unlink(fileName); - } - --#endif // R__B64 -- - // ROOT-10563 - TEST(Cache, Alias) - { -diff --git a/tree/dataframe/test/datasource_arrow.cxx b/tree/dataframe/test/datasource_arrow.cxx -index 5ac9fcf09a..5f5f94a666 100644 ---- a/tree/dataframe/test/datasource_arrow.cxx -+++ b/tree/dataframe/test/datasource_arrow.cxx -@@ -177,8 +177,6 @@ TEST(RArrowDS, SetNSlotsTwice) - } - #endif - --#ifdef R__B64 -- - TEST(RArrowDS, FromARDF) - { - std::unique_ptr<RDataSource> tds(new RArrowDS(createTestTable(), {})); -@@ -250,5 +248,3 @@ TEST(RArrowDS, FromARDFWithJittingMT) - } - - #endif // R__USE_IMT -- --#endif // R__B64 -diff --git a/tree/dataframe/test/datasource_csv.cxx b/tree/dataframe/test/datasource_csv.cxx -index 6554719f98..d93117b67a 100644 ---- a/tree/dataframe/test/datasource_csv.cxx -+++ b/tree/dataframe/test/datasource_csv.cxx -@@ -210,8 +210,6 @@ TEST(RCsvDS, SetNSlotsTwice) - } - #endif - --#ifdef R__B64 -- - TEST(RCsvDS, FromARDF) - { - std::unique_ptr<RDataSource> tds(new RCsvDS(fileName0)); -@@ -324,5 +322,3 @@ TEST(RCsvDS, ProgressiveReadingRDFMT) - } - - #endif // R__USE_IMT -- --#endif // R__B64 -diff --git a/tree/dataframe/test/datasource_root.cxx b/tree/dataframe/test/datasource_root.cxx -index 79840d9fff..4c795fee6f 100644 ---- a/tree/dataframe/test/datasource_root.cxx -+++ b/tree/dataframe/test/datasource_root.cxx -@@ -117,8 +117,6 @@ TEST(TRootTDS, SetNSlotsTwice) - } - #endif - --#ifdef R__B64 -- - TEST(TRootTDS, FromARDF) - { - std::unique_ptr<RDataSource> tds(new ROOT::Internal::RDF::RRootDS(treeName, fileGlob)); -@@ -190,5 +188,3 @@ TEST(TRootTDS, FromARDFWithJittingMT) - } - - #endif // R__USE_IMT -- --#endif // R__B64 -diff --git a/tree/dataframe/test/datasource_trivial.cxx b/tree/dataframe/test/datasource_trivial.cxx -index 7da675c83b..deb89301c7 100644 ---- a/tree/dataframe/test/datasource_trivial.cxx -+++ b/tree/dataframe/test/datasource_trivial.cxx -@@ -141,8 +141,6 @@ TEST(RTrivialDS, EarlyQuitWithRange) - EXPECT_EQ(df.Range(10).Count().GetValue(), 10); - } - --#ifdef R__B64 -- - TEST(RTrivialDS, FromARDFWithJitting) - { - std::unique_ptr<RDataSource> tds(new RTrivialDS(32)); -@@ -245,5 +243,3 @@ TEST(RTrivialDS, SkipEntriesMT) - } - - #endif // R__USE_IMT -- --#endif // R__B64 -diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt -index a6e5c97703..12bb610d67 100644 ---- a/tutorials/CMakeLists.txt -+++ b/tutorials/CMakeLists.txt -@@ -332,10 +332,6 @@ else() - list(APPEND root7_veto ${v7_veto_files}) - endif() - --if( CMAKE_SIZEOF_VOID_P EQUAL 4 ) -- set(bits32_veto dataframe/*.C graphs/timeSeriesFrom*.C v7/ntuple/ntpl004_dimuon.C) --endif() -- - if (APPLE AND CMAKE_SYSTEM_PROCESSOR MATCHES arm64) - set(macm1_veto dataframe/df107_SingleTopAnalysis.py) - endif() -@@ -391,7 +387,6 @@ set(all_veto hsimple.C - ${classic_veto} - ${pythia_veto} - ${root7_veto} -- ${bits32_veto} - ${xrootd_veto} - ${mlp_veto} - ${spectrum_veto} --- -2.35.1 - 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 deleted file mode 100644 index ca908b8..0000000 --- a/root-PyROOT-Prevent-cast-error-when-calling-PyTuple_SET_I.patch +++ /dev/null @@ -1,29 +0,0 @@ -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 deleted file mode 100644 index a845fa4..0000000 --- a/root-PyROOT-code.h-must-not-be-included-directly-in-3.11.patch +++ /dev/null @@ -1,34 +0,0 @@ -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-PyROOT-only-build-RooFit-and-TMVA-pythonizations-if-enabled.patch b/root-PyROOT-only-build-RooFit-and-TMVA-pythonizations-if-enabled.patch new file mode 100644 index 0000000..0ca4387 --- /dev/null +++ b/root-PyROOT-only-build-RooFit-and-TMVA-pythonizations-if-enabled.patch @@ -0,0 +1,117 @@ +From d759a42a33fe6a9195c3c79275fe05e4da2b4195 Mon Sep 17 00:00:00 2001 +From: Jonas Rembser <jonas.rembser(a)cern.ch> +Date: Sat, 14 Jan 2023 12:25:20 +0100 +Subject: [PATCH] [PyROOT] Only build RooFit and TMVA pythonizations if needed + +Like this, we are polluting the build and install directories less with +unneeded files and it also speeds up the build process a bit if RooFit +and/or TMVA are disabled. Their pythonization files don't need to be +compiled to `.pyc` files. +--- + bindings/pyroot/pythonizations/CMakeLists.txt | 76 ++++++++++--------- + 1 file changed, 42 insertions(+), 34 deletions(-) + +diff --git a/bindings/pyroot/pythonizations/CMakeLists.txt b/bindings/pyroot/pythonizations/CMakeLists.txt +index 9e853d1885..8395785b24 100644 +--- a/bindings/pyroot/pythonizations/CMakeLists.txt ++++ b/bindings/pyroot/pythonizations/CMakeLists.txt +@@ -25,6 +25,48 @@ if(dataframe) + inc/RNumpyDS.hxx) + endif() + ++if(roofit) ++ list(APPEND PYROOT_EXTRA_PY2_PY3_SOURCE ++ ROOT/_pythonization/_roofit/__init__.py ++ ROOT/_pythonization/_roofit/_rooabscollection.py ++ ROOT/_pythonization/_roofit/_rooabsdata.py ++ ROOT/_pythonization/_roofit/_rooabspdf.py ++ ROOT/_pythonization/_roofit/_rooabsreallvalue.py ++ ROOT/_pythonization/_roofit/_rooabsreal.py ++ ROOT/_pythonization/_roofit/_rooarglist.py ++ ROOT/_pythonization/_roofit/_rooargset.py ++ ROOT/_pythonization/_roofit/_roocategory.py ++ ROOT/_pythonization/_roofit/_roochi2var.py ++ ROOT/_pythonization/_roofit/_roodatahist.py ++ ROOT/_pythonization/_roofit/_roodataset.py ++ ROOT/_pythonization/_roofit/_roodecays.py ++ ROOT/_pythonization/_roofit/_roogenfitstudy.py ++ ROOT/_pythonization/_roofit/_rooglobalfunc.py ++ ROOT/_pythonization/_roofit/_roojsonfactorywstool.py ++ ROOT/_pythonization/_roofit/_roomcstudy.py ++ ROOT/_pythonization/_roofit/_roomsgservice.py ++ ROOT/_pythonization/_roofit/_roonllvar.py ++ ROOT/_pythonization/_roofit/_rooprodpdf.py ++ ROOT/_pythonization/_roofit/_roorealvar.py ++ ROOT/_pythonization/_roofit/_roosimultaneous.py ++ ROOT/_pythonization/_roofit/_roosimwstool.py ++ ROOT/_pythonization/_roofit/_roovectordatastore.py ++ ROOT/_pythonization/_roofit/_rooworkspace.py ++ ROOT/_pythonization/_roofit/_utils.py) ++endif() ++ ++if(tmva) ++ list(APPEND PYROOT_EXTRA_PY2_PY3_SOURCE ++ ROOT/_pythonization/_tmva/_crossvalidation.py ++ ROOT/_pythonization/_tmva/_dataloader.py ++ ROOT/_pythonization/_tmva/_factory.py ++ ROOT/_pythonization/_tmva/__init__.py ++ ROOT/_pythonization/_tmva/_rbdt.py ++ ROOT/_pythonization/_tmva/_rtensor.py ++ ROOT/_pythonization/_tmva/_tree_inference.py ++ ROOT/_pythonization/_tmva/_utils.py) ++endif() ++ + list(APPEND PYROOT_EXTRA_HEADERS + inc/TPyDispatcher.h) + +@@ -39,32 +81,6 @@ set(py2_py3_sources + ROOT/_pythonization/_generic.py + ROOT/_pythonization/__init__.py + ROOT/_pythonization/_pyz_utils.py +- ROOT/_pythonization/_roofit/__init__.py +- ROOT/_pythonization/_roofit/_rooabscollection.py +- ROOT/_pythonization/_roofit/_rooabsdata.py +- ROOT/_pythonization/_roofit/_rooabspdf.py +- ROOT/_pythonization/_roofit/_rooabsreallvalue.py +- ROOT/_pythonization/_roofit/_rooabsreal.py +- ROOT/_pythonization/_roofit/_rooarglist.py +- ROOT/_pythonization/_roofit/_rooargset.py +- ROOT/_pythonization/_roofit/_roocategory.py +- ROOT/_pythonization/_roofit/_roochi2var.py +- ROOT/_pythonization/_roofit/_roodatahist.py +- ROOT/_pythonization/_roofit/_roodataset.py +- ROOT/_pythonization/_roofit/_roodecays.py +- ROOT/_pythonization/_roofit/_roogenfitstudy.py +- ROOT/_pythonization/_roofit/_rooglobalfunc.py +- ROOT/_pythonization/_roofit/_roojsonfactorywstool.py +- ROOT/_pythonization/_roofit/_roomcstudy.py +- ROOT/_pythonization/_roofit/_roomsgservice.py +- ROOT/_pythonization/_roofit/_roonllvar.py +- ROOT/_pythonization/_roofit/_rooprodpdf.py +- ROOT/_pythonization/_roofit/_roorealvar.py +- ROOT/_pythonization/_roofit/_roosimultaneous.py +- ROOT/_pythonization/_roofit/_roosimwstool.py +- ROOT/_pythonization/_roofit/_roovectordatastore.py +- ROOT/_pythonization/_roofit/_rooworkspace.py +- ROOT/_pythonization/_roofit/_utils.py + ROOT/_pythonization/_rvec.py + ROOT/_pythonization/_stl_vector.py + ROOT/_pythonization/_tarray.py +@@ -79,14 +95,6 @@ set(py2_py3_sources + ROOT/_pythonization/_tgraph.py + ROOT/_pythonization/_th1.py + ROOT/_pythonization/_titer.py +- ROOT/_pythonization/_tmva/_crossvalidation.py +- ROOT/_pythonization/_tmva/_dataloader.py +- ROOT/_pythonization/_tmva/_factory.py +- ROOT/_pythonization/_tmva/__init__.py +- ROOT/_pythonization/_tmva/_rbdt.py +- ROOT/_pythonization/_tmva/_rtensor.py +- ROOT/_pythonization/_tmva/_tree_inference.py +- ROOT/_pythonization/_tmva/_utils.py + ROOT/_pythonization/_tobject.py + ROOT/_pythonization/_tobjstring.py + ROOT/_pythonization/_tseqcollection.py +-- +2.39.2 + diff --git a/root-RF-Rewrite-RooProdPdf.TestGetPartIntList-unit-test.patch b/root-RF-Rewrite-RooProdPdf.TestGetPartIntList-unit-test.patch new file mode 100644 index 0000000..d295c53 --- /dev/null +++ b/root-RF-Rewrite-RooProdPdf.TestGetPartIntList-unit-test.patch @@ -0,0 +1,168 @@ +From c20004230608a5679ee6c0a7648af5f190c415c9 Mon Sep 17 00:00:00 2001 +From: Jonas Rembser <jonas.rembser(a)cern.ch> +Date: Tue, 7 Mar 2023 11:53:01 +0100 +Subject: [PATCH] [RF] Rewrite `RooProdPdf.TestGetPartIntList` unit test + +In the ROOT 6.26 development cycle, the RooProdPdf was partially +rewritten in moden C++ with less manual memory allocation to improve +performance (PR #7907). + +In that PR, a unit test that verifies the RooProdPdf can correctly deal +with factorizing PDFs was implemented. However, that test used an +arbitrary PDF where the correct factorization was checked in a rather +crude way: check by hashing the content of the RooProdPdf cache element +for a given normalization set that said PR doesn't change any behavior +(the reference hash was hardcoded in the unit test). + +This commit suggests a better alternative for the unit test, checking +for a multidimensional product pdf of factorizing uniform pdfs that the +pdf values for differenc normalization sets is as expected. This should +cover the same functionality and is less fragile and implementation +dependend than hashing the cache elements. + +This closes GitHub issue #12430, as the rewritten test is not affected +anymore by the problem reported in that issue. +--- + roofit/roofitcore/inc/RooProdPdf.h | 2 - + roofit/roofitcore/src/RooProdPdf.cxx | 4 -- + roofit/roofitcore/test/testRooProdPdf.cxx | 88 +++++++---------------- + 3 files changed, 26 insertions(+), 68 deletions(-) + +diff --git a/roofit/roofitcore/inc/RooProdPdf.h b/roofit/roofitcore/inc/RooProdPdf.h +index 3d779a4901..0a76c839aa 100644 +--- a/roofit/roofitcore/inc/RooProdPdf.h ++++ b/roofit/roofitcore/inc/RooProdPdf.h +@@ -96,8 +96,6 @@ public: + + RooArgSet* findPdfNSet(RooAbsPdf const& pdf) const ; + +- void writeCacheToStream(std::ostream& os, RooArgSet const* nset) const; +- + std::unique_ptr<RooAbsArg> compileForNormSet(RooArgSet const &normSet, RooFit::Detail::CompileContext & ctx) const override; + + private: +diff --git a/roofit/roofitcore/src/RooProdPdf.cxx b/roofit/roofitcore/src/RooProdPdf.cxx +index 8c8c7e01c6..6af7279603 100644 +--- a/roofit/roofitcore/src/RooProdPdf.cxx ++++ b/roofit/roofitcore/src/RooProdPdf.cxx +@@ -2324,10 +2324,6 @@ void RooProdPdf::CacheElem::writeToStream(std::ostream& os) const { + } + } + +-void RooProdPdf::writeCacheToStream(std::ostream& os, RooArgSet const* nset) const { +- getCacheElem(nset)->writeToStream(os); +-} +- + std::unique_ptr<RooArgSet> RooProdPdf::fillNormSetForServer(RooArgSet const &normSet, RooAbsArg const &server) const + { + if (normSet.empty()) +diff --git a/roofit/roofitcore/test/testRooProdPdf.cxx b/roofit/roofitcore/test/testRooProdPdf.cxx +index d794fb415a..ff334211d2 100644 +--- a/roofit/roofitcore/test/testRooProdPdf.cxx ++++ b/roofit/roofitcore/test/testRooProdPdf.cxx +@@ -74,76 +74,40 @@ INSTANTIATE_TEST_SUITE_P(RooProdPdf, TestProdPdf, + return ss.str(); + }); + +-std::vector<std::vector<RooAbsArg *>> allPossibleSubset(RooAbsCollection const &arr) ++TEST(RooProdPdf, TestGetPartIntList) + { +- std::vector<std::vector<RooAbsArg *>> out; +- std::size_t n = arr.size(); +- +- std::size_t count = std::pow(2, n); +- for (std::size_t i = 0; i < count; i++) { +- out.emplace_back(); +- auto &back = out.back(); +- for (std::size_t j = 0; j < n; j++) { +- if ((i & (1 << j)) != 0) { +- back.push_back(arr[j]); +- } +- } +- } +- return out; +-} ++ RooHelpers::LocalChangeMsgLevel chmsglvl1{RooFit::ERROR, 0u, RooFit::InputArguments, true}; ++ RooHelpers::LocalChangeMsgLevel chmsglvl2{RooFit::WARNING, 0u, RooFit::NumIntegration, true}; + +-// Hash the integral configuration for all possible normalization sets. +-unsigned int hashRooProduct(RooProdPdf const &prod) +-{ +- RooArgSet params; +- prod.getParameters(nullptr, params); +- auto subsets = allPossibleSubset(params); ++ // This test checks if RooProdPdf::getPartIntList factorizes the integrals ++ // as expected, for the example of a three dimensional RooProdPdf. + +- std::stringstream ss; ++ RooWorkspace ws; + +- for (auto const &subset : subsets) { +- // this can't be on the stack, otherwise we will always get the same +- // address and therefore get wrong cache hits! +- auto nset = std::make_unique<RooArgSet>(subset.begin(), subset.end()); +- prod.writeCacheToStream(ss, nset.get()); +- } ++ double a = 10.; ++ double b = 4.; ++ double c = 2.5; + +- std::string s = ss.str(); +- return TString::Hash(s.c_str(), s.size()); +-} ++ auto &x = static_cast<RooRealVar &>(*ws.factory("x[0, 0, " + std::to_string(a) + "]")); ++ auto &y = static_cast<RooRealVar &>(*ws.factory("y[0, 0, " + std::to_string(b) + "]")); ++ auto &z = static_cast<RooRealVar &>(*ws.factory("z[0, 0, " + std::to_string(c) + "]")); + +-TEST(RooProdPdf, TestGetPartIntList) +-{ +- // This test checks if RooProdPdf::getPartIntList factorizes the integrals +- // as expected. +- // Instead of trying to construct tests for all possible cases by hand, +- // this test creates a product where the factors have different patters of +- // overlapping parameters. To make sure all possible cases are covered, we +- // are using all possible subsets of the parameters one after the other to +- // create the reference test result. +- +- RooRealVar x{"x", "x", 1., 0, 10}; +- RooRealVar y{"y", "y", 1., 0, 10}; +- RooRealVar z{"z", "z", 1., 0, 10}; +- +- RooRealVar m1{"m1", "m1", 1., 0, 10}; +- RooRealVar m2{"m2", "m2", 1., 0, 10}; +- RooRealVar m3{"m3", "m3", 1., 0, 10}; +- +- RooGenericPdf gauss1{"gauss1", "gauss1", "x+m1", {x, m1}}; +- RooGenericPdf gauss2{"gauss2", "gauss2", "x+m2", {x, m2}}; +- RooGenericPdf gauss3{"gauss3", "gauss3", "y+m3", {y, m3}}; +- RooGenericPdf gauss4{"gauss4", "gauss4", "z+m1", {z, m1}}; +- RooGenericPdf gauss5{"gauss5", "gauss5", "x+m1", {x, m1}}; ++ // Factorize the product in one 1D and one 2D pdf to get a more complicated ++ // and complete test case. ++ ws.factory("Uniform::pdf1({x})"); ++ ws.factory("Uniform::pdf2({y, z})"); + + // Product of all the pdfs. +- RooProdPdf prod{"prod", "prod", RooArgList{gauss1, gauss2, gauss3, gauss4, gauss5}}; +- +- // We hash the string serializations of caches for all possible +- // normalization sets and compare it to the expected hash. +- // This value must be updated if the convention for integral names in +- // RooProdPdf changes. +- EXPECT_EQ(hashRooProduct(prod), 2448666198); ++ auto &prod = static_cast<RooProdPdf &>(*ws.factory("PROD::prod(pdf1, pdf2)")); ++ ++ EXPECT_DOUBLE_EQ(prod.getVal({}), 1.0); ++ EXPECT_DOUBLE_EQ(prod.getVal({x}), 1. / a); ++ EXPECT_DOUBLE_EQ(prod.getVal({y}), 1. / b); ++ EXPECT_DOUBLE_EQ(prod.getVal({z}), 1. / c); ++ EXPECT_DOUBLE_EQ(prod.getVal({x, y}), 1. / a / b); ++ EXPECT_DOUBLE_EQ(prod.getVal({x, z}), 1. / a / c); ++ EXPECT_DOUBLE_EQ(prod.getVal({y, z}), 1. / b / c); ++ EXPECT_DOUBLE_EQ(prod.getVal({x, y, z}), 1. / a / b / c); + } + + TEST(RooProdPdf, TestDepsAreCond) +-- +2.39.2 + diff --git a/root-Set-DataLayout-from-our-TargetMachine.patch b/root-Set-DataLayout-from-our-TargetMachine.patch new file mode 100644 index 0000000..d936302 --- /dev/null +++ b/root-Set-DataLayout-from-our-TargetMachine.patch @@ -0,0 +1,32 @@ +From d4c66a41ae50ecfb905ebe66eb296de4e5c146d7 Mon Sep 17 00:00:00 2001 +From: Jonas Hahnfeld <jonas.hahnfeld(a)cern.ch> +Date: Thu, 16 Feb 2023 16:40:16 +0100 +Subject: [PATCH 2/2] [cling] Set DataLayout from our TargetMachine + +Otherwise LLJIT's constructor will ask the LLJITBuilder's JTMB to +create a DataLayout. As we don't propagate the JTMB (yet -- we +probably should!), this will be wrong if target features influence +the DataLayout. + +This should fix #12293. + +(cherry picked from commit 254bac6cfad78ed671ec3af3d2001c52487b4c86) +--- + interpreter/cling/lib/Interpreter/IncrementalJIT.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp b/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp +index 80b6761491..e1721a4d45 100644 +--- a/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp ++++ b/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp +@@ -358,6 +358,7 @@ IncrementalJIT::IncrementalJIT( + ErrorAsOutParameter _(&Err); + + LLJITBuilder Builder; ++ Builder.setDataLayout(TM->createDataLayout()); + Builder.setExecutorProcessControl(std::move(EPC)); + + // Create ObjectLinkingLayer with our own MemoryManager. +-- +2.39.2 + diff --git a/root-Simplify-creation-of-TargetMachine.patch b/root-Simplify-creation-of-TargetMachine.patch new file mode 100644 index 0000000..8eaa5d8 --- /dev/null +++ b/root-Simplify-creation-of-TargetMachine.patch @@ -0,0 +1,94 @@ +From 63d16de24e695a847274fa3044127cefffc7b0b6 Mon Sep 17 00:00:00 2001 +From: Jonas Hahnfeld <jonas.hahnfeld(a)cern.ch> +Date: Fri, 3 Feb 2023 11:52:22 +0100 +Subject: [PATCH 1/2] [cling] Simplify creation of TargetMachine + +We know exactly which target triple and features the CompilerInstance +wants, we don't need to (and probably must not) second-guess that. This +brings us closer to upstream clang-repl and also includes the change of +https://reviews.llvm.org/D128853 which is crucial for RISC-V. + +(cherry picked from commit df0905c499a541eaac3be63c0455a07946022983) +--- + .../cling/lib/Interpreter/IncrementalJIT.cpp | 34 ++++++------------- + 1 file changed, 11 insertions(+), 23 deletions(-) + +diff --git a/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp b/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp +index 5342945ed1..80b6761491 100644 +--- a/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp ++++ b/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp +@@ -15,6 +15,7 @@ + #include "cling/Utils/Output.h" + #include "cling/Utils/Utils.h" + ++#include <clang/Basic/TargetInfo.h> + #include <clang/Basic/TargetOptions.h> + #include <clang/Frontend/CompilerInstance.h> + +@@ -292,45 +293,32 @@ Error RTDynamicLibrarySearchGenerator::tryToGenerate( + } + + static std::unique_ptr<TargetMachine> +-CreateHostTargetMachine(const clang::CompilerInstance& CI) { +- const clang::TargetOptions& TargetOpts = CI.getTargetOpts(); +- const clang::CodeGenOptions& CGOpt = CI.getCodeGenOpts(); +- const std::string& Triple = TargetOpts.Triple; +- +- std::string Error; +- const Target *TheTarget = TargetRegistry::lookupTarget(Triple, Error); +- if (!TheTarget) { +- cling::errs() << "cling::IncrementalExecutor: unable to find target:\n" +- << Error; +- return std::unique_ptr<TargetMachine>(); +- } +- ++CreateTargetMachine(const clang::CompilerInstance& CI) { + CodeGenOpt::Level OptLevel = CodeGenOpt::Default; +- switch (CGOpt.OptimizationLevel) { ++ switch (CI.getCodeGenOpts().OptimizationLevel) { + case 0: OptLevel = CodeGenOpt::None; break; + case 1: OptLevel = CodeGenOpt::Less; break; + case 2: OptLevel = CodeGenOpt::Default; break; + case 3: OptLevel = CodeGenOpt::Aggressive; break; + default: OptLevel = CodeGenOpt::Default; + } ++ + using namespace llvm::orc; +- auto JTMB = JITTargetMachineBuilder::detectHost(); +- if (!JTMB) +- logAllUnhandledErrors(JTMB.takeError(), llvm::errs(), +- "Error detecting host"); ++ auto JTMB = JITTargetMachineBuilder(CI.getTarget().getTriple()); ++ JTMB.addFeatures(CI.getTargetOpts().Features); + +- JTMB->setCodeGenOptLevel(OptLevel); ++ JTMB.setCodeGenOptLevel(OptLevel); + #ifdef _WIN32 +- JTMB->getOptions().EmulatedTLS = false; ++ JTMB.getOptions().EmulatedTLS = false; + #endif // _WIN32 + + #if defined(__powerpc64__) || defined(__PPC64__) + // We have to use large code model for PowerPC64 because TOC and text sections + // can be more than 2GB apart. +- JTMB->setCodeModel(CodeModel::Large); ++ JTMB.setCodeModel(CodeModel::Large); + #endif + +- std::unique_ptr<TargetMachine> TM = cantFail(JTMB->createTargetMachine()); ++ std::unique_ptr<TargetMachine> TM = cantFail(JTMB.createTargetMachine()); + + // Forcefully disable GlobalISel, it might be enabled on AArch64 without + // optimizations. In tests on an Apple M1 after the upgrade to LLVM 9, this +@@ -365,7 +353,7 @@ IncrementalJIT::IncrementalJIT( + std::unique_ptr<llvm::orc::ExecutorProcessControl> EPC, Error& Err, + void *ExtraLibHandle, bool Verbose) + : SkipHostProcessLookup(false), +- TM(CreateHostTargetMachine(CI)), ++ TM(CreateTargetMachine(CI)), + SingleThreadedContext(std::make_unique<LLVMContext>()) { + ErrorAsOutParameter _(&Err); + +-- +2.39.2 + diff --git a/root-add-missing-include-cstdint.patch b/root-add-missing-include-cstdint.patch index f86f0ee..0572ac3 100644 --- a/root-add-missing-include-cstdint.patch +++ b/root-add-missing-include-cstdint.patch @@ -1,4 +1,4 @@ -From cf6a925dfda2411b979da368e4cea769dbe6238a Mon Sep 17 00:00:00 2001 +From 87d302b9192538e18645f4c3efadc70e9a20a913 Mon Sep 17 00:00:00 2001 From: Mattias Ellert <mattias.ellert(a)physics.uu.se> Date: Fri, 20 Jan 2023 06:34:11 +0100 Subject: [PATCH] Add missing #include <cstdint> @@ -14,8 +14,8 @@ index 69ee9ba99d..6367dfa93f 100644 --- a/tree/ntuple/v7/inc/ROOT/RDaos.hxx +++ b/tree/ntuple/v7/inc/ROOT/RDaos.hxx @@ -22,6 +22,7 @@ - // Also, this header file is known to provide macros that conflict with std::min()/std::max(). - extern "C" void d_rank_list_free(d_rank_list_t *rank_list); + + #include <daos.h> +#include <cstdint> #include <functional> @@ -31,8 +31,8 @@ index a975b5ce5d..be08eba924 100644 +#include <cstdint> #include <string> + #include <variant> #include <vector> - -- -2.39.0 +2.39.1 diff --git a/root-avoid-deleting-TFormulas-twice.patch b/root-avoid-deleting-TFormulas-twice.patch deleted file mode 100644 index af758ed..0000000 --- a/root-avoid-deleting-TFormulas-twice.patch +++ /dev/null @@ -1,37 +0,0 @@ -From c7dd58f3bc012690bab16763b1d73a4b7106ced9 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Tue, 29 Mar 2022 15:40:35 +0200 -Subject: [PATCH] Avoid deleting TFormulas twice - -Example failure: - - 562/1224 Test #541: tutorial-gl-gltf3 ...................................................***Failed Error regular expression found in output. Regex=[Error in <] 1.36 sec -Processing /builddir/build/BUILD/root-6.26.00/tutorials/gl/gltf3.C... -Error in <TList::Delete>: A list is accessing an object (0x7fffd1c959a0) already deleted (list name = Functions) -Error in <TList::Delete>: A list is accessing an object (0x7fffd1c95750) already deleted (list name = Functions) - -The commit also changes the filename used in -tutorials/hist/fillrandom.py to be different form the one used in -tutorials/hist/fillrandom.C (and tutorials/pyroot/fillrandom.py) ---- - tutorials/gl/gltf3.C | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tutorials/gl/gltf3.C b/tutorials/gl/gltf3.C -index 3697e69b7a..4089f0d2b7 100644 ---- a/tutorials/gl/gltf3.C -+++ b/tutorials/gl/gltf3.C -@@ -27,8 +27,8 @@ void gltf3() - TPad *tf3Pad = new TPad("box", "box", 0.04, 0.04, 0.96, 0.8); - tf3Pad->Draw(); - -- TFormula f1 = TFormula("f1", "x*x + y*y + z*z + 2*y - 1"); -- TFormula f2 = TFormula("f2", "x*x + y*y + z*z - 2*y - 1"); -+ TFormula *f1 = new TFormula("f1", "x*x + y*y + z*z + 2*y - 1"); -+ TFormula *f2 = new TFormula("f2", "x*x + y*y + z*z - 2*y - 1"); - - // Klein bottle with cut top&bottom parts - // The Klein bottle is a closed non-orientable surface that has no --- -2.35.1 - diff --git a/root-avoid-deprecated-numpy.object.patch b/root-avoid-deprecated-numpy.object.patch deleted file mode 100644 index 9330bac..0000000 --- a/root-avoid-deprecated-numpy.object.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 1e7dc9fcd60133375c3b725d8317fab339c2bf38 Mon Sep 17 00:00:00 2001 -From: Vincenzo Eduardo Padulano <v.e.padulano(a)gmail.com> -Date: Mon, 30 Jan 2023 10:31:29 +0100 -Subject: [PATCH] [DF][PyROOT] Avoid deprecated numpy.object - ---- - .../pythonizations/python/ROOT/_pythonization/_rdataframe.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py b/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py -index 59cb0cd260dd..01cb08b0365f 100644 ---- a/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py -+++ b/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py -@@ -287,7 +287,7 @@ def GetValue(self): - tmp = numpy.asarray(cpp_reference) # This adopts the memory of the C++ object. - self._py_arrays[column] = ndarray(tmp, self._result_ptrs[column]) - else: -- tmp = numpy.empty(len(cpp_reference), dtype=numpy.object) -+ tmp = numpy.empty(len(cpp_reference), dtype=object) - for i, x in enumerate(cpp_reference): - tmp[i] = x # This creates only the wrapping of the objects and does not copy. - self._py_arrays[column] = ndarray(tmp, self._result_ptrs[column]) diff --git a/root-avoid-race-condition-tutorial-roofit-rf512.patch b/root-avoid-race-condition-tutorial-roofit-rf512.patch deleted file mode 100644 index d0c40e8..0000000 --- a/root-avoid-race-condition-tutorial-roofit-rf512.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 91de99623d0e945610be46d46e84b54985415aeb Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Fri, 28 Oct 2022 06:27:10 +0200 -Subject: [PATCH] Avoid race condition between - tutorial/roofit/rf512_wsfactory_oper.C and - tutorial/roofit/rf512_wsfactory_oper.py - -When run in parallel they delete eachother's files: - -cc1plus: fatal error: /builddir/build/BUILD/root-6.26.08/redhat-linux-build/runtutorials/RooCFAuto000Pdf_cxx_ACLiC_dict.cxx: No such file or directory -compilation terminated. -/usr/bin/ld: cannot find /builddir/build/BUILD/root-6.26.08/redhat-linux-build/runtutorials/RooCFAuto000Pdf_cxx_ACLiC_dict.o: No such file or directory -collect2: error: ld returned 1 exit status ---- - tutorials/CMakeLists.txt | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt -index cfba4d3ed9..6ae9be5869 100644 ---- a/tutorials/CMakeLists.txt -+++ b/tutorials/CMakeLists.txt -@@ -483,7 +483,7 @@ set(hist-hbars-depends tutorial-tree-cernbuild) - set(benchmarks-depends tutorial-hsimple - tutorial-fit-fit1 - tutorial-fit-myfit -- tutorial-hist-h1ReadAndDraw -+ tutorial-hist-h1ReadAndDraw - tutorial-hist-FirstContour - tutorial-geom-na49view - tutorial-tree-ntuple1 -@@ -731,7 +731,7 @@ if(ROOT_pyroot_FOUND) - set(pyroot-benchmarks-depends tutorial-pyroot-hsimple-py - tutorial-pyroot-fit1-py - tutorial-pyroot-na49view-py -- tutorial-pyroot-h1ReadAndDraw-py -+ tutorial-pyroot-h1ReadAndDraw-py - tutorial-pyroot-ntuple1-py) - set(pyroot-fit1-depends tutorial-pyroot-fillrandom-py) - set(pyroot-na49view-depends tutorial-pyroot-geometry-py) -@@ -739,6 +739,7 @@ if(ROOT_pyroot_FOUND) - - # Avoid a race condition: make sure Python tutorial is ran after C++ tutorial - set(roofit-rf104_classfactory-depends tutorial-roofit-rf104_classfactory) -+ set(roofit-rf512_wsfactory_oper-depends tutorial-roofit-rf512_wsfactory_oper) - - #---------------------------------------------------------------------- - # List requirements for python tutorials. --- -2.37.3 - diff --git a/root-big-endian-byte-swap.patch b/root-big-endian-byte-swap.patch index 63490b5..caa3076 100644 --- a/root-big-endian-byte-swap.patch +++ b/root-big-endian-byte-swap.patch @@ -1,15 +1,15 @@ -From d9e03aad7a5132fe9db9992eecb47ee4e91c354c Mon Sep 17 00:00:00 2001 +From b32c7a1b080cb5d14f242070bf906ea6929d604d Mon Sep 17 00:00:00 2001 From: Mattias Ellert <mattias.ellert(a)physics.uu.se> Date: Fri, 25 Mar 2022 11:13:12 +0100 Subject: [PATCH] Byte swap values read from the protobuf raw data stream on big endian --- - tmva/sofie_parsers/src/RModelParser_ONNX.cxx | 12 +++++++++--- - 1 file changed, 9 insertions(+), 3 deletions(-) + tmva/sofie_parsers/src/RModelParser_ONNX.cxx | 23 +++++++++++++++----- + 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/tmva/sofie_parsers/src/RModelParser_ONNX.cxx b/tmva/sofie_parsers/src/RModelParser_ONNX.cxx -index 3b0a30cdb0..23e41d746f 100644 +index ab457dcddc..d701fb3299 100644 --- a/tmva/sofie_parsers/src/RModelParser_ONNX.cxx +++ b/tmva/sofie_parsers/src/RModelParser_ONNX.cxx @@ -1,3 +1,4 @@ @@ -17,24 +17,42 @@ index 3b0a30cdb0..23e41d746f 100644 #include "TMVA/RModelParser_ONNX.hxx" #include "onnx_proto3.pb.h" -@@ -980,9 +981,14 @@ RModel RModelParser_ONNX::Parse(std::string filename){ - //void* data = malloc (fLength * sizeof(float)); - std::shared_ptr<void> data(malloc(fLength * sizeof(float)), free); +@@ -335,9 +336,14 @@ RModel RModelParser_ONNX::Parse(std::string filename, bool verbose) + case ETensorType::FLOAT: { + std::shared_ptr<void> data(malloc(fLength * sizeof(float)), free); -- if (tensorproto->raw_data().empty() == false){ -- auto raw_data_ptr = reinterpret_cast<float*>(const_cast<char*>(tensorproto->raw_data().c_str())); -- std::memcpy(data.get(), raw_data_ptr, fLength * sizeof(float)); -+ if (!tensorproto->raw_data().empty()) { +- if (tensorproto->raw_data().empty() == false) { +- auto raw_data_ptr = reinterpret_cast<float *>(const_cast<char *>(tensorproto->raw_data().c_str())); +- std::memcpy(data.get(), raw_data_ptr, fLength * sizeof(float)); ++ if (!tensorproto->raw_data().empty()) { +#ifdef R__BYTESWAP -+ std::memcpy(data.get(), tensorproto->raw_data().c_str(), fLength * sizeof(float)); ++ std::memcpy(data.get(), tensorproto->raw_data().c_str(), fLength * sizeof(float)); +#else -+ for (std::size_t k = 0; k < fLength; ++k) -+ (reinterpret_cast<UInt_t*>(data.get()))[k] = -+ R__bswap_32((reinterpret_cast<const UInt_t*>(tensorproto->raw_data().c_str()))[k]); ++ for (std::size_t k = 0; k < fLength; ++k) ++ (reinterpret_cast<uint32_t *>(data.get()))[k] = ++ Rbswap_32((reinterpret_cast<const uint32_t *>(tensorproto->raw_data().c_str()))[k]); +#endif - }else{ - tensorproto->mutable_float_data()->ExtractSubrange(0, tensorproto->float_data_size(), static_cast<float*>(data.get())); - } + } else { + tensorproto->mutable_float_data()->ExtractSubrange(0, tensorproto->float_data_size(), + static_cast<float *>(data.get())); +@@ -350,9 +356,14 @@ RModel RModelParser_ONNX::Parse(std::string filename, bool verbose) + case ETensorType::INT64: { + std::shared_ptr<void> data(malloc(fLength * sizeof(int64_t)), free); + +- if (tensorproto->raw_data().empty() == false) { +- auto raw_data_ptr = reinterpret_cast<int64_t *>(const_cast<char *>(tensorproto->raw_data().c_str())); +- std::memcpy(data.get(), raw_data_ptr, fLength * sizeof(int64_t)); ++ if (!tensorproto->raw_data().empty()) { ++#ifdef R__BYTESWAP ++ std::memcpy(data.get(), tensorproto->raw_data().c_str(), fLength * sizeof(int64_t)); ++#else ++ for (std::size_t k = 0; k < fLength; ++k) ++ (reinterpret_cast<uint64_t *>(data.get()))[k] = ++ Rbswap_64((reinterpret_cast<const uint64_t *>(tensorproto->raw_data().c_str()))[k]); ++#endif + } else { + tensorproto->mutable_int64_data()->ExtractSubrange(0, tensorproto->int64_data_size(), + static_cast<int64_t *>(data.get())); -- -2.35.1 +2.39.2 diff --git a/root-cling-Disable-outline-atomics-on-AArch64.patch b/root-cling-Disable-outline-atomics-on-AArch64.patch new file mode 100644 index 0000000..ca00e5f --- /dev/null +++ b/root-cling-Disable-outline-atomics-on-AArch64.patch @@ -0,0 +1,35 @@ +From ddf9a8c3d113e3a3d48dbe13b6b4a6bf2338fb7a Mon Sep 17 00:00:00 2001 +From: Jonas Hahnfeld <jonas.hahnfeld(a)cern.ch> +Date: Mon, 20 Feb 2023 10:08:00 +0100 +Subject: [PATCH] [cling] Disable outline-atomics on AArch64 + +The routines __aarch64_* are defined in the static library libgcc.a +and not necessarily included in libCling or otherwise present in the +process, so the interpreter has a hard time finding them. + +Fixes #12294 +--- + interpreter/cling/lib/Interpreter/CIFactory.cpp | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/interpreter/cling/lib/Interpreter/CIFactory.cpp b/interpreter/cling/lib/Interpreter/CIFactory.cpp +index b135bf21aa..b5b5df2e8e 100644 +--- a/interpreter/cling/lib/Interpreter/CIFactory.cpp ++++ b/interpreter/cling/lib/Interpreter/CIFactory.cpp +@@ -1254,6 +1254,13 @@ namespace { + #if __APPLE__ && __arm64__ + argvCompile.push_back("--target=arm64-apple-darwin20.3.0"); + #endif ++#if __aarch64__ ++ // Disable outline-atomics on AArch64; the routines __aarch64_* are defined ++ // in the static library libgcc.a and not necessarily included in libCling ++ // or otherwise present in the process, so the interpreter has a hard time ++ // finding them. ++ argvCompile.push_back("-mno-outline-atomics"); ++#endif + + // Variables for storing the memory of the C-string arguments. + // FIXME: We shouldn't use C-strings in the first place, but just use +-- +2.39.2 + diff --git a/root-core-base-test.patch b/root-core-base-test.patch deleted file mode 100644 index c268390..0000000 --- a/root-core-base-test.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 12d52a60629e1639ced23a1919bd85628d9135ea Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Sun, 3 Apr 2022 23:23:00 +0200 -Subject: [PATCH] Fix library link order - -Fixes undefined references when linking CoreBaseTests - -../../../lib/libCling.so.6.26.00: undefined reference to `TMemFile::TMemFile(char const*, TMemFile::ZeroCopyView_t const&)' -../../../lib/libCling.so.6.26.00: undefined reference to `TFile::TFile(char const*, char const*, char const*, int)' -../../../lib/libCling.so.6.26.00: undefined reference to `TFile::~TFile()' -../../../lib/libCling.so.6.26.00: undefined reference to `TStreamerInfo::TStreamerInfo()' -../../../lib/libCling.so.6.26.00: undefined reference to `TMemFile::~TMemFile()' ---- - core/base/test/CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/core/base/test/CMakeLists.txt b/core/base/test/CMakeLists.txt -index 4b08cb0390..9b52e83405 100644 ---- a/core/base/test/CMakeLists.txt -+++ b/core/base/test/CMakeLists.txt -@@ -22,6 +22,6 @@ ROOT_ADD_GTEST(CoreBaseTests - TExceptionHandlerTests.cxx - TStringTest.cxx - TBitsTests.cxx -- LIBRARIES Core RIO ${extralibs}) -+ LIBRARIES ${extralibs} RIO Core) - - ROOT_ADD_GTEST(CoreErrorTests TErrorTests.cxx LIBRARIES Core) --- -2.35.1 - diff --git a/root-dataframe-callback.patch b/root-dataframe-callback.patch deleted file mode 100644 index 57ffc08..0000000 --- a/root-dataframe-callback.patch +++ /dev/null @@ -1,45 +0,0 @@ -From d849bc502eec4ec95d15ca41319ba0467ab22759 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Thu, 24 Mar 2022 15:55:29 +0100 -Subject: [PATCH] =?UTF-8?q?NENTRIES=20is=20not=20always=20a=20multiple=20o?= - =?UTF-8?q?f=20the=20expected=20size.=20NENTRIES=20is=2010.=20On=20a=204?= - =?UTF-8?q?=20core=20machine=20the=20expected=20size=20in=202=20=C3=97=204?= - =?UTF-8?q?=20=3D=208.=20Looping=20over=20the=208=20IDs,=202=20have=202=20?= - =?UTF-8?q?entries=20the=20remaining=206=20have=201=20entry=20for=20a=20to?= - =?UTF-8?q?tal=20of=2010=20(NENTRIES)=20entries.=20The=20test=20checked=20?= - =?UTF-8?q?that=20each=20ID=20had=20NENTRIES/(expected=20size)=20entries,?= - =?UTF-8?q?=20which=20in=20this=20case=20with=20integer=20division=20equal?= - =?UTF-8?q?s=201=20entry,=20which=20was=20not=20the=20correct=20test.=20Th?= - =?UTF-8?q?is=20commit=20chenges=20to=20test=20to=20check=20that=20the=20t?= - =?UTF-8?q?otal=20number=20of=20entries=20summed=20for=20all=20IDs=20equal?= - =?UTF-8?q?s=20NENTRIES.?= -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - ---- - tree/dataframe/test/dataframe_samplecallback.cxx | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/tree/dataframe/test/dataframe_samplecallback.cxx b/tree/dataframe/test/dataframe_samplecallback.cxx -index 188d58dd31..d387ea5f86 100644 ---- a/tree/dataframe/test/dataframe_samplecallback.cxx -+++ b/tree/dataframe/test/dataframe_samplecallback.cxx -@@ -125,11 +125,13 @@ TEST_P(RDFSampleCallback, EmptySourceSampleID) { - // RDF with empty sources tries to produce 2 tasks per slot when MT is enabled - const auto expectedSize = std::min(NENTRIES, df.GetNSlots() * 2ull); - ASSERT_EQ(result->size(), expectedSize); -+ ULong64_t entries = 0; - for (auto &id : *result) { - // check that all entries start with the expected string - EXPECT_TRUE(id.AsString().rfind("Empty source, range: {", 0) == 0); -- EXPECT_EQ(id.NEntries(), NENTRIES / expectedSize); -+ entries += id.NEntries(); - } -+ EXPECT_EQ(entries, NENTRIES); - } else { - ASSERT_EQ(result->size(), 1); - const auto &id = result->at(0); --- -2.35.1 - diff --git a/root-different-filename.patch b/root-different-filename.patch deleted file mode 100644 index ef42c3d..0000000 --- a/root-different-filename.patch +++ /dev/null @@ -1,48 +0,0 @@ -From a486081a8065154308b23381c3a77f3fdb73de97 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Wed, 16 Nov 2022 20:44:48 +0100 -Subject: [PATCH] Use different filename in loopdir.C and loopdir11.C to avoid - race condition - - Start 672: tutorial-io-loopdir - 690/1156 Test #666: tutorial-io-double32 ................................................ Passed 2.42 sec - Start 673: tutorial-io-loopdir11 - 691/1156 Test #673: tutorial-io-loopdir11 ............................................... Passed 0.76 sec - Start 674: tutorial-io-mergeSelective - 692/1156 Test #672: tutorial-io-loopdir .................................................***Failed Error regular expression found in output. Regex=[Error in <] 1.23 sec -Processing /builddir/build/BUILD/root-6.26.10/tutorials/io/loopdir.C... -Info in <TCanvas::Print>: ps file hsimple.ps has been created -Info in <TCanvas::Print>: Current canvas added to ps file hsimple.ps -Info in <TCanvas::Print>: Current canvas added to ps file hsimple.ps -Info in <TCanvas::Print>: Current canvas added to ps file hsimple.ps -Info in <TCanvas::Print>: ps file hsimple.ps has been closed -Error in <TPostScript::Text>: Cannot open temporary file: hsimple.ps_tmp_2089748 ---- - tutorials/io/loopdir11.C | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/tutorials/io/loopdir11.C b/tutorials/io/loopdir11.C -index b5f9f4719c..bf8c33b442 100644 ---- a/tutorials/io/loopdir11.C -+++ b/tutorials/io/loopdir11.C -@@ -12,14 +12,14 @@ - void loopdir11() { - TFile *f1 = TFile::Open("hsimple.root"); - TCanvas c1; -- c1.Print("hsimple.ps["); -+ c1.Print("hsimple11.ps["); - for(auto k : *f1->GetListOfKeys()) { - TKey *key = static_cast<TKey*>(k); - TClass *cl = gROOT->GetClass(key->GetClassName()); - if (!cl->InheritsFrom("TH1")) continue; - TH1 *h = key->ReadObject<TH1>(); - h->Draw(); -- c1.Print("hsimple.ps"); -+ c1.Print("hsimple11.ps"); - } -- c1.Print("hsimple.ps]"); -+ c1.Print("hsimple11.ps]"); - } --- -2.38.1 - diff --git a/root-do-not-remove-Wp-before-D-and-U.patch b/root-do-not-remove-Wp-before-D-and-U.patch new file mode 100644 index 0000000..820b7af --- /dev/null +++ b/root-do-not-remove-Wp-before-D-and-U.patch @@ -0,0 +1,44 @@ +From 0191a987b7583c2aa84b1293105db353fee40b1d Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Fri, 10 Mar 2023 20:49:02 +0100 +Subject: [PATCH] Do not remove -Wp, before -D and -U when recording used + compiler flags + +This breaks the pattern used when undefining and then defining a +variable in the same flag: + +$ echo | g++ -Wp,-UVAR,-DVAR=1 -c -x c++ - + +Here -Wp,-UVAR,-DVAR=1 will first undefine VAR and then define it to 1 + +If the -Wp, is dropped, this fails: +$ echo | g++ -UVAR,-DVAR=1 -c -x c++ - +<command-line>: warning: extra tokens at end of #undef directive + +Now it will only undefine VAR, but not defin it. I.e. + +insted of + +you get + +which explains the rather cryptic warning about extra token after #undef. +--- + cmake/modules/RootConfiguration.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cmake/modules/RootConfiguration.cmake b/cmake/modules/RootConfiguration.cmake +index 3d1ae9be53..042b43f039 100644 +--- a/cmake/modules/RootConfiguration.cmake ++++ b/cmake/modules/RootConfiguration.cmake +@@ -729,7 +729,7 @@ if (cxxmodules) + endif() + + string(REGEX REPLACE "(^|[ ]*)-W[^ ]*" "" __fflags "${CMAKE_Fortran_FLAGS}") +-string(REGEX MATCHALL "-(D|U)[^ ]*" __defs "${CMAKE_CXX_FLAGS}") ++string(REGEX MATCHALL "(-Wp,)?-(D|U)[^ ]*" __defs "${CMAKE_CXX_FLAGS}") + set(ROOT_COMPILER_FLAG_HINTS "# + set(ROOT_DEFINITIONS \"${__defs}\") + set(ROOT_CXX_FLAGS \"${__cxxflags}\") +-- +2.39.2 + diff --git a/root-dont-install-roofit-files-fix.patch b/root-dont-install-roofit-files-fix.patch new file mode 100644 index 0000000..295a4b7 --- /dev/null +++ b/root-dont-install-roofit-files-fix.patch @@ -0,0 +1,26 @@ +From 74aaf99530443a712f9b0577d8edde615ea8902d Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Sat, 4 Mar 2023 21:27:35 +0100 +Subject: [PATCH] Use FILTER instead of REMOVE_ITEM since GLOB returns absolute + paths + +--- + build/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/build/CMakeLists.txt b/build/CMakeLists.txt +index e964b5e255..2b24b1d6e6 100644 +--- a/build/CMakeLists.txt ++++ b/build/CMakeLists.txt +@@ -30,7 +30,7 @@ ROOT_EXECUTABLE(rmkdepend + if(NOT MSVC AND _BUILD_TYPE_UPPER MATCHES "DEBUG|RELWITHDEBINFO") + file(GLOB PRETTY_PRINTERS "gdbPrinters/*.so-gdb.py") + if(NOT roofit) +- list(REMOVE_ITEM PRETTY_PRINTERS gdbPrinters/libRooFitCore.so-gdb.py) ++ list(FILTER PRETTY_PRINTERS EXCLUDE REGEX libRooFitCore.so-gdb.py) + endif() + set(PRETTY_PRINTER_DESTS) + foreach(PRETTY_PRINTER ${PRETTY_PRINTERS}) +-- +2.39.2 + diff --git a/root-dont-install-roofit-files-when-roofit-is-disabled.patch b/root-dont-install-roofit-files-when-roofit-is-disabled.patch new file mode 100644 index 0000000..7b4881d --- /dev/null +++ b/root-dont-install-roofit-files-when-roofit-is-disabled.patch @@ -0,0 +1,75 @@ +From df636dcc05d0284f39427ea5be1d72e7faca90d8 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Wed, 1 Mar 2023 18:30:35 +0100 +Subject: [PATCH] Don't install roofit files when roofit is disabled + +--- + CMakeLists.txt | 14 ++++++++++++-- + build/CMakeLists.txt | 3 +++ + core/base/CMakeLists.txt | 2 ++ + 3 files changed, 17 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e1d998fde2..7992e27b64 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -591,7 +591,14 @@ if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_INSTALL_PREFIX) + else() + install(DIRECTORY README DESTINATION ${CMAKE_INSTALL_DOCDIR}) + endif() ++ set(ETC_PATT_EXCL) ++ if(NOT roofit) ++ list(APPEND ETC_PATT_EXCL PATTERN HistFactorySchema.dtd EXCLUDE) ++ list(APPEND ETC_PATT_EXCL PATTERN RooFitHS3_wsexportkeys.json EXCLUDE) ++ list(APPEND ETC_PATT_EXCL PATTERN RooFitHS3_wsfactoryexpressions.json EXCLUDE) ++ endif() + install(DIRECTORY etc/ DESTINATION ${CMAKE_INSTALL_SYSCONFDIR} USE_SOURCE_PERMISSIONS ++ ${ETC_PATT_EXCL} + PATTERN "system.rootrc" EXCLUDE + PATTERN "system.rootauthrc" EXCLUDE + PATTERN "system.rootdaemonrc" EXCLUDE +@@ -612,8 +619,11 @@ if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_INSTALL_PREFIX) + set(MAN_PATT_EXCL PATTERN xproofd.1 EXCLUDE) + endif() + if(NOT fortran OR NOT CMAKE_Fortran_COMPILER) +- set(MAN_PATT_EXCL ${MAN_PATT_EXCL} PATTERN h2root.1 EXCLUDE) +- set(MAN_PATT_EXCL ${MAN_PATT_EXCL} PATTERN g2root.1 EXCLUDE) ++ list(APPEND MAN_PATT_EXCL PATTERN h2root.1 EXCLUDE) ++ list(APPEND MAN_PATT_EXCL PATTERN g2root.1 EXCLUDE) ++ endif() ++ if(NOT roofit) ++ list(APPEND MAN_PATT_EXCL PATTERN prepareHistFactory.1 EXCLUDE) + endif() + install(DIRECTORY man/ DESTINATION ${CMAKE_INSTALL_MANDIR} ${MAN_PATT_EXCL}) + install(DIRECTORY tutorials/ DESTINATION ${CMAKE_INSTALL_TUTDIR} COMPONENT tests) +diff --git a/build/CMakeLists.txt b/build/CMakeLists.txt +index 9f60c813ac..e964b5e255 100644 +--- a/build/CMakeLists.txt ++++ b/build/CMakeLists.txt +@@ -29,6 +29,9 @@ ROOT_EXECUTABLE(rmkdepend + + if(NOT MSVC AND _BUILD_TYPE_UPPER MATCHES "DEBUG|RELWITHDEBINFO") + file(GLOB PRETTY_PRINTERS "gdbPrinters/*.so-gdb.py") ++ if(NOT roofit) ++ list(REMOVE_ITEM PRETTY_PRINTERS gdbPrinters/libRooFitCore.so-gdb.py) ++ endif() + set(PRETTY_PRINTER_DESTS) + foreach(PRETTY_PRINTER ${PRETTY_PRINTERS}) + get_filename_component(PRETTY_PRINTER_DEST ${PRETTY_PRINTER} NAME) +diff --git a/core/base/CMakeLists.txt b/core/base/CMakeLists.txt +index 0c9df7c896..df701fedea 100644 +--- a/core/base/CMakeLists.txt ++++ b/core/base/CMakeLists.txt +@@ -224,7 +224,9 @@ if(NOT MSVC) + #---addRootC++CmdMan------------------------------------------------------------------------- + generateManual(rootMan ${CMAKE_CURRENT_SOURCE_DIR}/src/root-argparse.py ${CMAKE_BINARY_DIR}/man/root.1) + generateManual(haddMan ${CMAKE_SOURCE_DIR}/main/src/hadd-argparse.py ${CMAKE_BINARY_DIR}/man/hadd.1) ++if (roofit) + generateManual(hist2workspaceMan ${CMAKE_SOURCE_DIR}/roofit/histfactory/src/hist2workspace-argparse.py ${CMAKE_BINARY_DIR}/man/hist2workspace.1) ++endif() + generateManual(rootclingMan ${CMAKE_SOURCE_DIR}/core/dictgen/src/rootcling-argparse.py ${CMAKE_BINARY_DIR}/man/rootcling.1) + + #---addRootPyCmdMan--------------------------------------------------------------------------- +-- +2.39.2 + diff --git a/root-endian-warn.patch b/root-endian-warn.patch deleted file mode 100644 index 77cd6b9..0000000 --- a/root-endian-warn.patch +++ /dev/null @@ -1,33 +0,0 @@ -From ba0dc65e558fd916dbe18f8dbe8208a3be932c25 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Mon, 28 Mar 2022 09:20:18 +0200 -Subject: [PATCH 2/2] Ignore warnings about RooNaNPacker not being implemented - for big endian - -This warning is triggered in many tests, so it makes sense to put it -in the default ignored set. ---- - test/unit_testing_support/ROOTUnitTestSupport.cxx | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/test/unit_testing_support/ROOTUnitTestSupport.cxx b/test/unit_testing_support/ROOTUnitTestSupport.cxx -index 259ab4e09c..79cd476950 100644 ---- a/test/unit_testing_support/ROOTUnitTestSupport.cxx -+++ b/test/unit_testing_support/ROOTUnitTestSupport.cxx -@@ -73,6 +73,13 @@ static struct ForbidDiagnostics { - return; - } - -+ // FIXME: RooNaNPacker warns about not being implemented for big endian -+ if (level == kWarning -+ && strcmp(msg, "Fast recovery from undefined function values only implemented for little-endian machines. If necessary, request an extension of functionality on
https://root.cern
") == 0) { -+ std::cerr << "Warning in " << location << " " << msg << std::endl; -+ return; -+ } -+ - FAIL() << "Received unexpected diagnostic of severity " - << level - << " at '" << location << "' reading '" << msg << "'.\n" --- -2.35.1 - diff --git a/root-fix-compilation-with-gcc-12.patch b/root-fix-compilation-with-gcc-12.patch deleted file mode 100644 index 2c34516..0000000 --- a/root-fix-compilation-with-gcc-12.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 3bc55ece1db8b32c5e86fd6b85856addd67265fb Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Sat, 15 Jan 2022 06:35:58 +0100 -Subject: [PATCH] Fix compilation with gcc 12 - -Fixes error: use of deleted function - -/builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp: In member function 'std::string llvm::NVPTXAsmPrinter::getPTXFundamentalTypeStr(llvm::Type*, bool) const': -/builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp:1319:10: error: use of deleted function 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::nullptr_t) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::nullptr_t = std::nullptr_t]' - 1319 | return nullptr; - | ^~~~~~~ -In file included from /usr/include/c++/12/string:53, - from /usr/include/c++/12/bits/locale_classes.h:40, - from /usr/include/c++/12/bits/ios_base.h:41, - from /usr/include/c++/12/streambuf:41, - from /usr/include/c++/12/bits/streambuf_iterator.h:35, - from /usr/include/c++/12/iterator:66, - from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/include/llvm/ADT/iterator_range.h:21, - from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/include/llvm/ADT/SmallVector.h:16, - from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/include/llvm/ADT/STLExtras.h:20, - from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/include/llvm/ADT/StringRef.h:12, - from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/include/llvm/Pass.h:31, - from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/lib/Target/NVPTX/NVPTX.h:17, - from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.h:17, - from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp:14: -/usr/include/c++/12/bits/basic_string.h:732:7: note: declared here - 732 | basic_string(nullptr_t) = delete; - | ^~~~~~~~~~~~ - -Fix backported from LLVM upstrea
https://reviews.llvm.org/D87697
---- - interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -diff --git a/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp b/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp -index 5f38b4a3c4..bfa74bd98f 100644 ---- a/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp -+++ b/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp -@@ -1281,9 +1281,6 @@ void NVPTXAsmPrinter::emitPTXAddressSpace(unsigned int AddressSpace, - std::string - NVPTXAsmPrinter::getPTXFundamentalTypeStr(Type *Ty, bool useB4PTR) const { - switch (Ty->getTypeID()) { -- default: -- llvm_unreachable("unexpected type"); -- break; - case Type::IntegerTyID: { - unsigned NumBits = cast<IntegerType>(Ty)->getBitWidth(); - if (NumBits == 1) -@@ -1314,9 +1311,10 @@ NVPTXAsmPrinter::getPTXFundamentalTypeStr(Type *Ty, bool useB4PTR) const { - return "b32"; - else - return "u32"; -+ default: -+ break; - } - llvm_unreachable("unexpected type"); -- return nullptr; - } - - void NVPTXAsmPrinter::emitPTXGlobalVariable(const GlobalVariable *GVar, --- -2.34.1 - diff --git a/root-fix-compilation-with-gcc13.patch b/root-fix-compilation-with-gcc13.patch deleted file mode 100644 index bf411a8..0000000 --- a/root-fix-compilation-with-gcc13.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 37ac6654194f90db625e760dcb2d48fd7938ba6d Mon Sep 17 00:00:00 2001 -From: scott snyder <sss@karma> -Date: Tue, 29 Nov 2022 22:05:39 -0500 -Subject: [PATCH] Fix compilation with gcc13. - -Missing #include <cstdint>. ---- - math/mathcore/inc/Math/Random.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/math/mathcore/inc/Math/Random.h b/math/mathcore/inc/Math/Random.h -index 87eaaee5af..23bfabc4a1 100644 ---- a/math/mathcore/inc/Math/Random.h -+++ b/math/mathcore/inc/Math/Random.h -@@ -25,6 +25,7 @@ - - #include <string> - #include <vector> -+#include <cstdint> - - - namespace ROOT { --- -2.39.0 - diff --git a/root-fix-test-failure-on-ppc64le-and-aarch64-with-gcc-12.patch b/root-fix-test-failure-on-ppc64le-and-aarch64-with-gcc-12.patch index 007c3cd..274aa66 100644 --- a/root-fix-test-failure-on-ppc64le-and-aarch64-with-gcc-12.patch +++ b/root-fix-test-failure-on-ppc64le-and-aarch64-with-gcc-12.patch @@ -1,6 +1,6 @@ -From ddc155795baa9d4690717c204e54a7fd4600c688 Mon Sep 17 00:00:00 2001 +From 15f50c71b4d89bfbf06ce817dee38e843f0f55cd Mon Sep 17 00:00:00 2001 From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Mon, 17 Jan 2022 18:49:30 +0100 +Date: Mon, 17 Jan 2022 23:50:47 +0100 Subject: [PATCH] Fix test failure on ppc64le and aarch64 with gcc 12 .../hist/hist/test/test_tprofile2poly.cxx:61: Failure @@ -14,19 +14,19 @@ cont1 evaluates to 109868.61342004745, cont2 evaluates to 109868.61342004743. The abs_error parameter delta evaluates to 9.999999960041972e-12 which is smaller than the minimum distance between doubles for numbers of this magnitude which is 1.4551915228366852e-11, thus making this EXPECT_NEAR check equivalent to EXPECT_EQUAL. Consider using EXPECT_DOUBLE_EQ instead. --- - hist/hist/test/test_tprofile2poly.cxx | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) + hist/hist/test/test_tprofile2poly.cxx | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/hist/hist/test/test_tprofile2poly.cxx b/hist/hist/test/test_tprofile2poly.cxx -index 40cb3052a2..5150da0bea 100644 +index 40cb3052a2..ecf559a4b3 100644 --- a/hist/hist/test/test_tprofile2poly.cxx +++ b/hist/hist/test/test_tprofile2poly.cxx -@@ -58,14 +58,14 @@ void binEntriesCompare(TProfile2D* tp2d, TProfile2Poly* tpp) { +@@ -58,15 +58,14 @@ void binEntriesCompare(TProfile2D* tp2d, TProfile2Poly* tpp) { for(Double_t x=0.5; x<10; x+=2.0) { cont1 = tp2d->GetBinEffectiveEntries(tp2d->FindBin(x,y)); cont2 = tpp->GetBinEffectiveEntries(tpp->FindBin(x,y)); - ASSERT_NEAR(cont1, cont2, delta); -+ ASSERT_NEAR(cont1, cont2, 2*delta); ++ ASSERT_NEAR(cont1, cont2, 2 * delta); } } @@ -34,10 +34,11 @@ index 40cb3052a2..5150da0bea 100644 cont1 = tp2d->GetBinEffectiveEntries(tp2d->FindBin(11,11)); cont2 = tpp->GetBinEffectiveEntries(tpp->FindBin(11,11)); - ASSERT_NEAR(cont1, cont2, delta); -+ ASSERT_NEAR(cont1, cont2, 2*delta); - +- ++ ASSERT_NEAR(cont1, cont2, 2 * delta); } + void binErrorCompare(TProfile2D* tp2d, TProfile2Poly* tpp) { -- -2.34.1 +2.39.2 diff --git a/root-fixes-for-32bit-builds.patch b/root-fixes-for-32bit-builds.patch new file mode 100644 index 0000000..bcff78d --- /dev/null +++ b/root-fixes-for-32bit-builds.patch @@ -0,0 +1,185 @@ +From 6f69a59010a60c949b1955e52275137e39a85b82 Mon Sep 17 00:00:00 2001 +From: Jakob Blomer <jblomer(a)cern.ch> +Date: Thu, 9 Mar 2023 15:14:22 +0100 +Subject: [PATCH] [ntuple] fixes for 32bit / non-x86_64 builds + +--- + tree/dataframe/src/RNTupleDS.cxx | 1 + + tree/ntuple/v7/inc/ROOT/RField.hxx | 21 +++++++++++++++++++-- + tree/ntuple/v7/test/ntuple_extended.cxx | 8 ++++---- + 3 files changed, 24 insertions(+), 6 deletions(-) + +diff --git a/tree/dataframe/src/RNTupleDS.cxx b/tree/dataframe/src/RNTupleDS.cxx +index f7eb0ab5f284..aaea6df81622 100644 +--- a/tree/dataframe/src/RNTupleDS.cxx ++++ b/tree/dataframe/src/RNTupleDS.cxx +@@ -94,6 +94,7 @@ class RRDFCardinalityField : public ROOT::Experimental::Detail::RFieldBase { + return ROOT::Experimental::Detail::RFieldValue(true /* captureFlag */, this, where); + } + size_t GetValueSize() const final { return sizeof(std::size_t); } ++ size_t GetAlignment() const final { return alignof(std::size_t); } + + /// Get the number of elements of the collection identified by globalIndex + void +diff --git a/tree/ntuple/v7/inc/ROOT/RField.hxx b/tree/ntuple/v7/inc/ROOT/RField.hxx +index b05267d16030..9a85368a94e3 100644 +--- a/tree/ntuple/v7/inc/ROOT/RField.hxx ++++ b/tree/ntuple/v7/inc/ROOT/RField.hxx +@@ -270,8 +270,9 @@ public: + virtual std::vector<RFieldValue> SplitValue(const RFieldValue &value) const; + /// The number of bytes taken by a value of the appropriate type + virtual size_t GetValueSize() const = 0; +- /// For many types, the alignment requirement is equal to the size; otherwise override. +- virtual size_t GetAlignment() const { return GetValueSize(); } ++ /// As a rule of thumb, the alignment is equal to the size of the type. There are, however, various exceptions ++ /// to this rule depending on OS and CPU architecture. So enforce the alignment to be explicitly spelled out. ++ virtual size_t GetAlignment() const = 0; + int GetTraits() const { return fTraits; } + bool HasReadCallbacks() const { return !fReadCallbacks.empty(); } + +@@ -383,6 +384,7 @@ public: + Detail::RFieldValue GenerateValue(void*) override { return Detail::RFieldValue(); } + Detail::RFieldValue CaptureValue(void*) final { return Detail::RFieldValue(); } + size_t GetValueSize() const final { return 0; } ++ size_t GetAlignment() const final { return 0; } + + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; +@@ -889,6 +891,7 @@ public: + Detail::RColumnElement<ClusterSize_t>(static_cast<ClusterSize_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(ClusterSize_t); } ++ size_t GetAlignment() const final { return alignof(ClusterSize_t); } + void CommitCluster() final; + }; + +@@ -990,6 +993,7 @@ public: + Detail::RColumnElement<ClusterSize_t>(static_cast<ClusterSize_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(ClusterSize_t); } ++ size_t GetAlignment() const final { return alignof(ClusterSize_t); } + + /// Special help for offset fields + void GetCollectionInfo(NTupleSize_t globalIndex, RClusterIndex *collectionStart, ClusterSize_t *size) { +@@ -1110,6 +1115,7 @@ public: + Detail::RColumnElement<bool>(static_cast<bool*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(bool); } ++ size_t GetAlignment() const final { return alignof(bool); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1162,6 +1168,7 @@ public: + Detail::RColumnElement<float>(static_cast<float*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(float); } ++ size_t GetAlignment() const final { return alignof(float); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1215,6 +1222,7 @@ public: + Detail::RColumnElement<double>(static_cast<double*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(double); } ++ size_t GetAlignment() const final { return alignof(double); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1267,6 +1275,7 @@ public: + Detail::RColumnElement<char>(static_cast<char*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(char); } ++ size_t GetAlignment() const final { return alignof(char); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1319,6 +1328,7 @@ public: + Detail::RColumnElement<std::int8_t>(static_cast<std::int8_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(std::int8_t); } ++ size_t GetAlignment() const final { return alignof(std::int8_t); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1371,6 +1381,7 @@ public: + Detail::RColumnElement<std::uint8_t>(static_cast<std::uint8_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(std::uint8_t); } ++ size_t GetAlignment() const final { return alignof(std::uint8_t); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1423,6 +1434,7 @@ public: + Detail::RColumnElement<std::int16_t>(static_cast<std::int16_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(std::int16_t); } ++ size_t GetAlignment() const final { return alignof(std::int16_t); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1475,6 +1487,7 @@ public: + Detail::RColumnElement<std::uint16_t>(static_cast<std::uint16_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(std::uint16_t); } ++ size_t GetAlignment() const final { return alignof(std::uint16_t); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1527,6 +1540,7 @@ public: + Detail::RColumnElement<std::int32_t>(static_cast<std::int32_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(std::int32_t); } ++ size_t GetAlignment() const final { return alignof(std::int32_t); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1579,6 +1593,7 @@ public: + Detail::RColumnElement<std::uint32_t>(static_cast<std::uint32_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(std::uint32_t); } ++ size_t GetAlignment() const final { return alignof(std::uint32_t); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1631,6 +1646,7 @@ public: + Detail::RColumnElement<std::uint64_t>(static_cast<std::uint64_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(std::uint64_t); } ++ size_t GetAlignment() const final { return alignof(std::uint64_t); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +@@ -1683,6 +1699,7 @@ public: + Detail::RColumnElement<std::int64_t>(static_cast<std::int64_t*>(where)), this, where); + } + size_t GetValueSize() const final { return sizeof(std::int64_t); } ++ size_t GetAlignment() const final { return alignof(std::int64_t); } + void AcceptVisitor(Detail::RFieldVisitor &visitor) const final; + }; + +diff --git a/tree/ntuple/v7/test/ntuple_extended.cxx b/tree/ntuple/v7/test/ntuple_extended.cxx +index 91871e288e98..d3b6ee466359 100644 +--- a/tree/ntuple/v7/test/ntuple_extended.cxx ++++ b/tree/ntuple/v7/test/ntuple_extended.cxx +@@ -123,8 +123,8 @@ TEST(RNTuple, LargeFile1) + RNTupleWriteOptions options; + options.SetCompression(0); + auto ntuple = RNTupleWriter::Recreate(std::move(modelWrite), "myNTuple", fileGuard.GetPath(), options); +- constexpr unsigned long nEvents = 1024 * 1024 * 256; // Exceed 2GB file size +- for (unsigned int i = 0; i < nEvents; ++i) { ++ constexpr std::uint64_t nEvents = 1024 * 1024 * 256; // Exceed 2GB file size ++ for (std::uint64_t i = 0; i < nEvents; ++i) { + wrEnergy = rnd.Rndm(); + chksumWrite += wrEnergy; + ntuple->Fill(); +@@ -195,8 +195,8 @@ TEST(RNTuple, LargeFile2) + + TRandom3 rnd(42); + double chksumWrite = 0.0; +- constexpr unsigned long nEvents = 1024 * 1024 * 256; // Exceed 2GB file size +- for (unsigned int i = 0; i < nEvents; ++i) { ++ constexpr std::uint64_t nEvents = 1024 * 1024 * 256; // Exceed 2GB file size ++ for (std::uint64_t i = 0; i < nEvents; ++i) { + *E = rnd.Rndm(); + chksumWrite += *E; + writer->Fill(); diff --git a/root-fontconfig.patch b/root-fontconfig.patch index 35705a4..e19c4b4 100644 --- a/root-fontconfig.patch +++ b/root-fontconfig.patch @@ -1,38 +1,38 @@ -diff -ur root-6.24.02.orig/core/base/src/TApplication.cxx root-6.24.02/core/base/src/TApplication.cxx ---- root-6.24.02.orig/core/base/src/TApplication.cxx 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/core/base/src/TApplication.cxx 2021-08-11 10:49:08.583579248 +0200 -@@ -265,18 +265,11 @@ - LoadGraphicsLibs(); +diff -ur root-6.28.00.orig/core/base/src/TApplication.cxx root-6.28.00/core/base/src/TApplication.cxx +--- root-6.28.00.orig/core/base/src/TApplication.cxx 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/core/base/src/TApplication.cxx 2023-02-04 12:47:19.757759982 +0100 +@@ -251,18 +251,11 @@ + 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); + // 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 -@@ -290,7 +283,6 @@ + #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 +@@ -276,7 +269,6 @@ + } } + #endif +- delete [] ttfont; } - #endif -- delete [] ttfont; - // Create WM dependent application environment - if (fAppImp) -diff -ur root-6.24.02.orig/graf2d/asimage/CMakeLists.txt root-6.24.02/graf2d/asimage/CMakeLists.txt ---- root-6.24.02.orig/graf2d/asimage/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf2d/asimage/CMakeLists.txt 2021-08-11 10:49:08.583579248 +0200 + if (!only_web || !fAppImp) { +diff -ur root-6.28.00.orig/graf2d/asimage/CMakeLists.txt root-6.28.00/graf2d/asimage/CMakeLists.txt +--- root-6.28.00.orig/graf2d/asimage/CMakeLists.txt 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf2d/asimage/CMakeLists.txt 2023-02-04 12:47:19.757759982 +0100 @@ -30,6 +30,7 @@ ${FREETYPE_LIBRARIES} ${X11_LIBRARIES} @@ -41,10 +41,10 @@ diff -ur root-6.24.02.orig/graf2d/asimage/CMakeLists.txt root-6.24.02/graf2d/asi DEPENDENCIES Core Graf -diff -ur root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx root-6.24.02/graf2d/asimage/src/TASImage.cxx ---- root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf2d/asimage/src/TASImage.cxx 2021-08-11 10:49:08.585579253 +0200 -@@ -112,6 +112,8 @@ +diff -ur root-6.28.00.orig/graf2d/asimage/src/TASImage.cxx root-6.28.00/graf2d/asimage/src/TASImage.cxx +--- root-6.28.00.orig/graf2d/asimage/src/TASImage.cxx 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf2d/asimage/src/TASImage.cxx 2023-02-04 12:47:19.760759989 +0100 +@@ -115,6 +115,8 @@ # include <draw.h> } @@ -53,7 +53,7 @@ diff -ur root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx root-6.24.02/graf2d/a // auxiliary functions for general polygon filling #include "TASPolyUtils.c" -@@ -2595,14 +2597,120 @@ +@@ -2590,14 +2592,120 @@ TString fn = font_name; fn.Strip(); @@ -181,7 +181,7 @@ diff -ur root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx root-6.24.02/graf2d/a if (fn.EndsWith(".pfa") || fn.EndsWith(".PFA") || fn.EndsWith(".pfb") || fn.EndsWith(".PFB") || fn.EndsWith(".ttf") || fn.EndsWith(".TTF") || fn.EndsWith(".otf") || fn.EndsWith(".OTF")) { ttfont = kTRUE; -@@ -2626,14 +2734,11 @@ +@@ -2621,14 +2729,11 @@ return; } @@ -199,9 +199,9 @@ diff -ur root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx root-6.24.02/graf2d/a } get_text_size(text, font, (ASText3DType)type, &width, &height); -diff -ur root-6.24.02.orig/graf2d/graf/CMakeLists.txt root-6.24.02/graf2d/graf/CMakeLists.txt ---- root-6.24.02.orig/graf2d/graf/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf2d/graf/CMakeLists.txt 2021-08-11 10:49:08.586579256 +0200 +diff -ur root-6.28.00.orig/graf2d/graf/CMakeLists.txt root-6.28.00/graf2d/graf/CMakeLists.txt +--- root-6.28.00.orig/graf2d/graf/CMakeLists.txt 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf2d/graf/CMakeLists.txt 2023-02-04 12:47:19.861760233 +0100 @@ -91,6 +91,7 @@ ${FREETYPE_LIBRARIES} ZLIB::ZLIB @@ -210,9 +210,9 @@ diff -ur root-6.24.02.orig/graf2d/graf/CMakeLists.txt root-6.24.02/graf2d/graf/C DEPENDENCIES Hist Matrix -diff -ur root-6.24.02.orig/graf2d/graf/inc/TTF.h root-6.24.02/graf2d/graf/inc/TTF.h ---- root-6.24.02.orig/graf2d/graf/inc/TTF.h 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf2d/graf/inc/TTF.h 2021-08-11 10:49:08.586579256 +0200 +diff -ur root-6.28.00.orig/graf2d/graf/inc/TTF.h root-6.28.00/graf2d/graf/inc/TTF.h +--- root-6.28.00.orig/graf2d/graf/inc/TTF.h 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf2d/graf/inc/TTF.h 2023-02-04 12:47:19.862760235 +0100 @@ -76,9 +76,8 @@ static FT_BBox fgCBox; ///< string control box static FT_CharMap fgCharMap[kTTMaxFonts]; ///< font character map @@ -224,9 +224,9 @@ diff -ur root-6.24.02.orig/graf2d/graf/inc/TTF.h root-6.24.02/graf2d/graf/inc/TT static FT_Face fgFace[kTTMaxFonts]; ///< font face static TTF::TTGlyph fgGlyphs[kMaxGlyphs]; ///< glyphs static Bool_t fgHinting; ///< use hinting (true by default) -diff -ur root-6.24.02.orig/graf2d/graf/src/TTF.cxx root-6.24.02/graf2d/graf/src/TTF.cxx ---- root-6.24.02.orig/graf2d/graf/src/TTF.cxx 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf2d/graf/src/TTF.cxx 2021-08-11 10:49:08.587579259 +0200 +diff -ur root-6.28.00.orig/graf2d/graf/src/TTF.cxx root-6.28.00/graf2d/graf/src/TTF.cxx +--- root-6.28.00.orig/graf2d/graf/src/TTF.cxx 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf2d/graf/src/TTF.cxx 2023-02-04 12:47:19.863760238 +0100 @@ -25,6 +25,8 @@ #include "TMath.h" #include "TError.h" @@ -654,7 +654,7 @@ diff -ur root-6.24.02.orig/graf2d/graf/src/TTF.cxx root-6.24.02/graf2d/graf/src/ + FcPatternDestroy (pat); + if (set) FcCharSetDestroy (set); + - FT_Face tface = 0; + FT_Face tface = (FT_Face) 0; - if (FT_New_Face(fgLibrary, ttfont, 0, &tface)) { + if (FT_New_Face(fgLibrary, ttfont, ttindex, &tface)) { @@ -679,7 +679,7 @@ diff -ur root-6.24.02.orig/graf2d/graf/src/TTF.cxx root-6.24.02/graf2d/graf/src/ + fgFontID[fgFontCount] = fontid; fgCurFontIdx = fgFontCount; fgFace[fgCurFontIdx] = tface; - fgCharMap[fgCurFontIdx] = 0; + fgCharMap[fgCurFontIdx] = (FT_CharMap) 0; fgFontCount++; if (italic) { @@ -787,9 +787,9 @@ diff -ur root-6.24.02.orig/graf2d/graf/src/TTF.cxx root-6.24.02/graf2d/graf/src/ } //////////////////////////////////////////////////////////////////////////////// -diff -ur root-6.24.02.orig/graf2d/postscript/CMakeLists.txt root-6.24.02/graf2d/postscript/CMakeLists.txt ---- root-6.24.02.orig/graf2d/postscript/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf2d/postscript/CMakeLists.txt 2021-08-11 10:49:08.587579259 +0200 +diff -ur root-6.28.00.orig/graf2d/postscript/CMakeLists.txt root-6.28.00/graf2d/postscript/CMakeLists.txt +--- root-6.28.00.orig/graf2d/postscript/CMakeLists.txt 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf2d/postscript/CMakeLists.txt 2023-02-04 12:47:19.863760238 +0100 @@ -27,6 +27,7 @@ LIBRARIES ZLIB::ZLIB @@ -798,9 +798,9 @@ diff -ur root-6.24.02.orig/graf2d/postscript/CMakeLists.txt root-6.24.02/graf2d/ DEPENDENCIES Graf ) -diff -ur root-6.24.02.orig/graf2d/postscript/src/TPostScript.cxx root-6.24.02/graf2d/postscript/src/TPostScript.cxx ---- root-6.24.02.orig/graf2d/postscript/src/TPostScript.cxx 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf2d/postscript/src/TPostScript.cxx 2021-08-11 10:49:08.588579261 +0200 +diff -ur root-6.28.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.28.00/graf2d/postscript/src/TPostScript.cxx +--- root-6.28.00.orig/graf2d/postscript/src/TPostScript.cxx 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf2d/postscript/src/TPostScript.cxx 2023-02-04 12:47:19.864760240 +0100 @@ -234,6 +234,7 @@ #include <cctype> #include <cwchar> @@ -1060,9 +1060,9 @@ diff -ur root-6.24.02.orig/graf2d/postscript/src/TPostScript.cxx root-6.24.02/gr { "Root.PSFont.STIXGen", "/STIXGeneral" }, { "Root.PSFont.STIXGenIt", "/STIXGeneral-Italic" }, { "Root.PSFont.STIXGenBd", "/STIXGeneral-Bold" }, -diff -ur root-6.24.02.orig/graf3d/gl/CMakeLists.txt root-6.24.02/graf3d/gl/CMakeLists.txt ---- root-6.24.02.orig/graf3d/gl/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf3d/gl/CMakeLists.txt 2021-08-11 10:49:08.589579264 +0200 +diff -ur root-6.28.00.orig/graf3d/gl/CMakeLists.txt root-6.28.00/graf3d/gl/CMakeLists.txt +--- root-6.28.00.orig/graf3d/gl/CMakeLists.txt 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf3d/gl/CMakeLists.txt 2023-02-04 12:47:19.867760247 +0100 @@ -208,6 +208,7 @@ ${GL2PS_LIBRARIES} ${X11_LIBRARIES} @@ -1071,9 +1071,9 @@ diff -ur root-6.24.02.orig/graf3d/gl/CMakeLists.txt root-6.24.02/graf3d/gl/CMake DEPENDENCIES Hist Gui -diff -ur root-6.24.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.24.02/graf3d/gl/src/TGLFontManager.cxx ---- root-6.24.02.orig/graf3d/gl/src/TGLFontManager.cxx 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf3d/gl/src/TGLFontManager.cxx 2021-08-11 10:49:08.589579264 +0200 +diff -ur root-6.28.00.orig/graf3d/gl/src/TGLFontManager.cxx root-6.28.00/graf3d/gl/src/TGLFontManager.cxx +--- root-6.28.00.orig/graf3d/gl/src/TGLFontManager.cxx 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf3d/gl/src/TGLFontManager.cxx 2023-02-04 12:47:19.867760247 +0100 @@ -36,6 +36,7 @@ # include "FTGLBitmapFont.h" #endif @@ -1329,9 +1329,9 @@ diff -ur root-6.24.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.24.02/graf3d/ fgFontFileArray.Add(new TObjString("STIXGeneral.otf")); // 200 fgFontFileArray.Add(new TObjString("STIXGeneralItalic.otf")); // 210 fgFontFileArray.Add(new TObjString("STIXGeneralBol.otf")); // 220 -diff -ur root-6.24.02.orig/graf3d/gl/src/TGLText.cxx root-6.24.02/graf3d/gl/src/TGLText.cxx ---- root-6.24.02.orig/graf3d/gl/src/TGLText.cxx 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/graf3d/gl/src/TGLText.cxx 2021-08-11 10:49:08.590579267 +0200 +diff -ur root-6.28.00.orig/graf3d/gl/src/TGLText.cxx root-6.28.00/graf3d/gl/src/TGLText.cxx +--- root-6.28.00.orig/graf3d/gl/src/TGLText.cxx 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/graf3d/gl/src/TGLText.cxx 2023-02-04 12:47:19.868760250 +0100 @@ -32,6 +32,8 @@ # include "FTGLBitmapFont.h" #endif @@ -1466,10 +1466,10 @@ diff -ur root-6.24.02.orig/graf3d/gl/src/TGLText.cxx root-6.24.02/graf3d/gl/src/ Error("SetGLTextFont","Cannot set FTGL::FaceSize"); - delete [] ttfont; } -diff -ur root-6.24.02.orig/gui/gui/src/TGApplication.cxx root-6.24.02/gui/gui/src/TGApplication.cxx ---- root-6.24.02.orig/gui/gui/src/TGApplication.cxx 2021-06-28 11:17:14.000000000 +0200 -+++ root-6.24.02/gui/gui/src/TGApplication.cxx 2021-08-11 10:49:08.590579267 +0200 -@@ -80,20 +80,12 @@ +diff -ur root-6.28.00.orig/gui/gui/src/TGApplication.cxx root-6.28.00/gui/gui/src/TGApplication.cxx +--- root-6.28.00.orig/gui/gui/src/TGApplication.cxx 2023-02-03 15:34:27.000000000 +0100 ++++ root-6.28.00/gui/gui/src/TGApplication.cxx 2023-02-04 12:47:19.868760250 +0100 +@@ -81,20 +81,12 @@ gROOT->SetBatch(kFALSE); if (strcmp(appClassName, "proofserv")) { diff --git a/root-get-rid-of-lsb_release.patch b/root-get-rid-of-lsb_release.patch deleted file mode 100644 index 8dca2cc..0000000 --- a/root-get-rid-of-lsb_release.patch +++ /dev/null @@ -1,245 +0,0 @@ -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-gtest-compat.patch b/root-gtest-compat.patch new file mode 100644 index 0000000..4dd4b58 --- /dev/null +++ b/root-gtest-compat.patch @@ -0,0 +1,85 @@ +From 922290ebdc5e3363adfa82dd45208862bb01630a Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Wed, 8 Feb 2023 09:50:00 +0100 +Subject: [PATCH] Fix build with -Dbuiltin_gtest:BOOL=OFF on EPEL 8 + +--- + roofit/roofitcore/test/testRooBinSamplingPdf.cxx | 7 ++++++- + roofit/roofitcore/test/testRooProdPdf.cxx | 5 +++++ + roofit/roofitcore/test/testRooRealIntegral.cxx | 5 +++++ + roofit/roofitcore/test/testTestStatistics.cxx | 2 +- + 4 files changed, 17 insertions(+), 2 deletions(-) + +diff --git a/roofit/roofitcore/test/testRooBinSamplingPdf.cxx b/roofit/roofitcore/test/testRooBinSamplingPdf.cxx +index 823fef712f..116000f9f8 100644 +--- a/roofit/roofitcore/test/testRooBinSamplingPdf.cxx ++++ b/roofit/roofitcore/test/testRooBinSamplingPdf.cxx +@@ -13,6 +13,11 @@ + + #include <gtest/gtest.h> + ++// Backward compatibility for gtest version < 1.10.0 ++#ifndef INSTANTIATE_TEST_SUITE_P ++#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P ++#endif ++ + #include <memory> + + class ParamTest : public testing::TestWithParam<std::tuple<std::string>> { +@@ -123,7 +128,7 @@ TEST(RooBinSamplingPdf, CheckConsistentNormalization) + EXPECT_FLOAT_EQ(int2->getVal(), int3->getVal()); + } + +-INSTANTIATE_TEST_SUITE_P(RooBinSamplingPdf, ParamTest, testing::Combine(testing::Values("Off", "Cpu")), ++INSTANTIATE_TEST_SUITE_P(RooBinSamplingPdf, ParamTest, testing::Values("Off", "Cpu"), + [](testing::TestParamInfo<ParamTest::ParamType> const ¶mInfo) { + std::stringstream ss; + ss << "BatchMode" << std::get<0>(paramInfo.param); +diff --git a/roofit/roofitcore/test/testRooProdPdf.cxx b/roofit/roofitcore/test/testRooProdPdf.cxx +index 86bcf6eb48..d794fb415a 100644 +--- a/roofit/roofitcore/test/testRooProdPdf.cxx ++++ b/roofit/roofitcore/test/testRooProdPdf.cxx +@@ -16,6 +16,11 @@ + + #include <gtest/gtest.h> + ++// Backward compatibility for gtest version < 1.10.0 ++#ifndef INSTANTIATE_TEST_SUITE_P ++#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P ++#endif ++ + #include <memory> + #include <sstream> + #include <string> +diff --git a/roofit/roofitcore/test/testRooRealIntegral.cxx b/roofit/roofitcore/test/testRooRealIntegral.cxx +index c33c6ae138..0ab6ab973f 100644 +--- a/roofit/roofitcore/test/testRooRealIntegral.cxx ++++ b/roofit/roofitcore/test/testRooRealIntegral.cxx +@@ -20,6 +20,11 @@ + + #include <gtest/gtest.h> + ++// Backward compatibility for gtest version < 1.10.0 ++#ifndef INSTANTIATE_TEST_SUITE_P ++#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P ++#endif ++ + #include <memory> + + namespace { +diff --git a/roofit/roofitcore/test/testTestStatistics.cxx b/roofit/roofitcore/test/testTestStatistics.cxx +index dc20b4e1c9..1623637653 100644 +--- a/roofit/roofitcore/test/testTestStatistics.cxx ++++ b/roofit/roofitcore/test/testTestStatistics.cxx +@@ -490,7 +490,7 @@ TEST_P(OffsetBinTest, CrossCheck) + EXPECT_NEAR(nllVal1, 0.0, 1e-8) << "NLL with bin offsetting is " << nllVal1 << ", and " << nllVal0 << " without it."; + } + +-INSTANTIATE_TEST_SUITE_P(RooNLLVar, TestStatisticTest, testing::Combine(testing::Values("Off", "Cpu")), ++INSTANTIATE_TEST_SUITE_P(RooNLLVar, TestStatisticTest, testing::Values("Off", "Cpu"), + [](testing::TestParamInfo<TestStatisticTest::ParamType> const ¶mInfo) { + std::stringstream ss; + ss << "BatchMode" << std::get<0>(paramInfo.param); +-- +2.39.1 + diff --git a/root-ignore-prefix.patch b/root-ignore-prefix.patch deleted file mode 100644 index 5b9918a..0000000 --- a/root-ignore-prefix.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 1aa9231becda09a89ec576e4a17ca4d9b6e2f310 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Tue, 15 Mar 2022 14:55:37 +0100 -Subject: [PATCH] Link to the blas library found by cmake, not hardcoded - "blas". Set ROOTIGNOREPREFIX=1 when running built binaries during build. Make - sure PCH is created before running emitters. - ---- - tmva/sofie/test/CMakeLists.txt | 14 ++++++++------ - 1 file changed, 8 insertions(+), 6 deletions(-) - -diff --git a/tmva/sofie/test/CMakeLists.txt b/tmva/sofie/test/CMakeLists.txt -index e4f9d28748..a3a2c9ae16 100644 ---- a/tmva/sofie/test/CMakeLists.txt -+++ b/tmva/sofie/test/CMakeLists.txt -@@ -51,7 +51,7 @@ foreach(onnx_file ${ONNX_FILES}) - get_filename_component(fname ${onnx_file} NAME_WE) - get_filename_component(fdir ${onnx_file} DIRECTORY) - add_custom_command(TARGET SofieCompileModels_ONNX POST_BUILD -- COMMAND ./emitFromONNX ${onnx_file} ${CMAKE_CURRENT_BINARY_DIR}/${fname} -+ COMMAND ${CMAKE_COMMAND} -E env ROOTIGNOREPREFIX=1 ./emitFromONNX ${onnx_file} ${CMAKE_CURRENT_BINARY_DIR}/${fname} - USES_TERMINAL - ) - endforeach() -@@ -100,7 +101,7 @@ foreach(onnx_file ${ONNX_FILES}) - get_filename_component(fname ${onnx_file} NAME_WE) - get_filename_component(fdir ${onnx_file} DIRECTORY) - add_custom_command(TARGET SofieCompileModels_ROOT POST_BUILD -- COMMAND ./emitFromROOT ${onnx_file} ${CMAKE_CURRENT_BINARY_DIR}/${fname} -+ COMMAND ${CMAKE_COMMAND} -E env ROOTIGNOREPREFIX=1 ./emitFromROOT ${onnx_file} ${CMAKE_CURRENT_BINARY_DIR}/${fname} - USES_TERMINAL - ) - endforeach() --- -2.35.1 - diff --git a/root-longlong.patch b/root-longlong.patch deleted file mode 100644 index 3c43542..0000000 --- a/root-longlong.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 2aa02353663674a338c92fa4e72a0c0e529c410e Mon Sep 17 00:00:00 2001 -From: Enrico Guiraud <enrico.guiraud(a)cern.ch> -Date: Fri, 8 Apr 2022 17:52:18 +0200 -Subject: [PATCH] [DF] Fix long int + Snapshot test on 32 bit platforms - -Co-authored-by: Mattias Ellert <mattias.ellert(a)physics.uu.se> ---- - tree/dataframe/test/dataframe_snapshot.cxx | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/tree/dataframe/test/dataframe_snapshot.cxx b/tree/dataframe/test/dataframe_snapshot.cxx -index f41848e96a..ddbacaba0f 100644 ---- a/tree/dataframe/test/dataframe_snapshot.cxx -+++ b/tree/dataframe/test/dataframe_snapshot.cxx -@@ -495,11 +495,14 @@ void ReadWriteCarray(const char *outFileNameBase) - t.Branch("vb", vb, "vb[size]/O"); - t.Branch("vl", vl, "vl[size]/G"); - -+ // use 2**33 as a larger-than-int value on 64 bits, otherwise just something larger than short (2**30) -+ static constexpr long int longintTestValue = sizeof(long int) == 8 ? 8589934592 : 1073741824; -+ - // Size 1 - size = 1; - v[0] = 12; - vb[0] = true; -- vl[0] = 8589934592; // 2**33 -+ vl[0] = longintTestValue; - t.Fill(); - - // Size 0 (see ROOT-9860) -@@ -546,7 +549,7 @@ void ReadWriteCarray(const char *outFileNameBase) - EXPECT_EQ(rvb.GetSize(), 1u); - EXPECT_TRUE(rvb[0]); - EXPECT_EQ(rvl.GetSize(), 1u); -- EXPECT_EQ(rvl[0], 8589934592); -+ EXPECT_EQ(rvl[0], longintTestValue); - - // Size 0 - EXPECT_TRUE(r.Next()); --- -2.35.1 - diff --git a/root-make-DistRDF-optional.patch b/root-make-DistRDF-optional.patch new file mode 100644 index 0000000..653e14e --- /dev/null +++ b/root-make-DistRDF-optional.patch @@ -0,0 +1,32 @@ +From 90e7f868bc115da821c0f04dbafd80ef72e7490a Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Thu, 2 Mar 2023 08:31:29 +0100 +Subject: [PATCH 2/2] Missing experimental add-on module + ROOT.RDF.Experimental.Distributed (DistRDF) should not fail the loading of + the rest of the ROOT.RDF namespace. + +--- + bindings/pyroot/pythonizations/python/ROOT/_facade.py | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/bindings/pyroot/pythonizations/python/ROOT/_facade.py b/bindings/pyroot/pythonizations/python/ROOT/_facade.py +index 865321e713..69046fc71c 100644 +--- a/bindings/pyroot/pythonizations/python/ROOT/_facade.py ++++ b/bindings/pyroot/pythonizations/python/ROOT/_facade.py +@@ -336,8 +336,11 @@ class ROOTFacade(types.ModuleType): + ns.FromNumpy = MakeNumpyDataFrame + + if sys.version_info >= (3, 8): +- # Inject Experimental.Distributed package into namespace RDF +- ns.Experimental.Distributed = _create_rdf_experimental_distributed_module(ns.Experimental) ++ try: ++ # Inject Experimental.Distributed package into namespace RDF if available ++ ns.Experimental.Distributed = _create_rdf_experimental_distributed_module(ns.Experimental) ++ except ImportError: ++ pass + except: + raise Exception('Failed to pythonize the namespace RDF') + del type(self).RDF +-- +2.39.2 + diff --git a/root-make-dyld-based-library-search-behavior-default.patch b/root-make-dyld-based-library-search-behavior-default.patch deleted file mode 100644 index 9b88576..0000000 --- a/root-make-dyld-based-library-search-behavior-default.patch +++ /dev/null @@ -1,147 +0,0 @@ -From 6ae602bba7d33c900a117c9de0187ab5a28e14b8 Mon Sep 17 00:00:00 2001 -From: Vassil Vassilev <v.g.vassilev(a)gmail.com> -Date: Mon, 21 Mar 2022 22:16:54 +0000 -Subject: [PATCH] Make the dyld-based library search behavior default for - non-modules. - -The dyld-based system was developed in the context on C++ modules but it turned -into a modules-agnostic feature. Instead of having to maintain more code, we -should rely on it even for non-modules build of ROOT. ---- - core/metacling/src/TCling.cxx | 109 +++------------------------------- - 1 file changed, 8 insertions(+), 101 deletions(-) - -diff --git a/core/metacling/src/TCling.cxx b/core/metacling/src/TCling.cxx -index dec399cf2b..3eae1c8570 100644 ---- a/core/metacling/src/TCling.cxx -+++ b/core/metacling/src/TCling.cxx -@@ -6501,14 +6501,18 @@ bool TCling::LibraryLoadingFailed(const std::string& errmessage, const std::stri - return false; - } - --static void* LazyFunctionCreatorAutoloadForModule(const std::string &mangled_name, -- const cling::DynamicLibraryManager &DLM) { -+//////////////////////////////////////////////////////////////////////////////// -+/// Autoload a library based on a missing symbol. -+ -+void* TCling::LazyFunctionCreatorAutoload(const std::string& mangled_name) { -+ -+ const cling::DynamicLibraryManager &DLM = *GetInterpreterImpl()->getDynamicLibraryManager(); - R__LOCKGUARD(gInterpreterMutex); - - auto LibLoader = [](const std::string& LibName) -> bool { - if (gSystem->Load(LibName.c_str(), "", false) < 0) { -- Error("TCling__LazyFunctionCreatorAutoloadForModule", -- "Failed to load library %s", LibName.c_str()); -+ ::Error("TCling__LazyFunctionCreatorAutoloadForModule", -+ "Failed to load library %s", LibName.c_str()); - return false; - } - return true; //success. -@@ -6536,103 +6540,6 @@ static void* LazyFunctionCreatorAutoloadForModule(const std::string &mangled_nam - return nullptr; - - return llvm::sys::DynamicLibrary::SearchForAddressOfSymbol(mangled_name); -- --} -- --//////////////////////////////////////////////////////////////////////////////// --/// Autoload a library based on a missing symbol. -- --void* TCling::LazyFunctionCreatorAutoload(const std::string& mangled_name) { -- if (fCxxModulesEnabled) -- return LazyFunctionCreatorAutoloadForModule(mangled_name, -- *GetInterpreterImpl()->getDynamicLibraryManager()); -- -- // First see whether the symbol is in the library that we are currently -- // loading. It will have access to the symbols of its dependent libraries, -- // thus checking "back()" is sufficient. -- if (!fRegisterModuleDyLibs.empty()) { -- if (void* addr = dlsym(fRegisterModuleDyLibs.back(), -- mangled_name.c_str())) { -- return addr; -- } -- } -- -- int err = 0; -- char* demangled_name_c = TClassEdit::DemangleName(mangled_name.c_str(), err); -- if (err) { -- return 0; -- } -- -- std::string name(demangled_name_c); -- free(demangled_name_c); -- -- //fprintf(stderr, "demangled name: '%s'\n", demangled_name); -- // -- // Separate out the class or namespace part of the -- // function name. -- // -- -- std::string::size_type pos = name.find("__thiscall "); -- if (pos != std::string::npos) { -- name.erase(0, pos + sizeof("__thiscall ")-1); -- } -- pos = name.find("__cdecl "); -- if (pos != std::string::npos) { -- name.erase(0, pos + sizeof("__cdecl ")-1); -- } -- if (!strncmp(name.c_str(), "typeinfo for ", sizeof("typeinfo for ")-1)) { -- name.erase(0, sizeof("typeinfo for ")-1); -- } else if (!strncmp(name.c_str(), "vtable for ", sizeof("vtable for ")-1)) { -- name.erase(0, sizeof("vtable for ")-1); -- } else if (!strncmp(name.c_str(), "operator", sizeof("operator")-1) -- && !isalnum(name[sizeof("operator")])) { -- // operator...(A, B) - let's try with A! -- name.erase(0, sizeof("operator")-1); -- pos = name.rfind('('); -- if (pos != std::string::npos) { -- name.erase(0, pos + 1); -- pos = name.find(","); -- if (pos != std::string::npos) { -- // remove next arg up to end, leaving only the first argument type. -- name.erase(pos); -- } -- pos = name.rfind(" const"); -- if (pos != std::string::npos) { -- name.erase(pos, strlen(" const")); -- } -- while (!name.empty() && strchr("&*", name.back())) -- name.erase(name.length() - 1); -- } -- } else { -- TClassEdit::FunctionSplitInfo fsi; -- TClassEdit::SplitFunction(name, fsi); -- name = fsi.fScopeName; -- } -- //fprintf(stderr, "name: '%s'\n", name.c_str()); -- // Now we have the class or namespace name, so do the lookup. -- TString libs = GetClassSharedLibs(name.c_str()); -- if (libs.IsNull()) { -- // Not found in the map, all done. -- return 0; -- } -- //fprintf(stderr, "library: %s\n", iter->second.c_str()); -- // Now we have the name of the libraries to load, so load them. -- -- TString lib; -- Ssiz_t posLib = 0; -- while (libs.Tokenize(lib, posLib)) { -- if (gSystem->Load(lib, "", kFALSE /*system*/) < 0) { -- // The library load failed, all done. -- //fprintf(stderr, "load failed: %s\n", errmsg.c_str()); -- return 0; -- } -- } -- -- //fprintf(stderr, "load succeeded.\n"); -- // Get the address of the function being called. -- void* addr = llvm::sys::DynamicLibrary::SearchForAddressOfSymbol(mangled_name.c_str()); -- //fprintf(stderr, "addr: %016lx\n", reinterpret_cast<unsigned long>(addr)); -- return addr; - } - - //////////////////////////////////////////////////////////////////////////////// --- -2.35.1 - diff --git a/root-namespace-pymva.patch b/root-namespace-pymva.patch deleted file mode 100644 index cd2fa57..0000000 --- a/root-namespace-pymva.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 0a969f5376af248e76cbcee45c9bdb6463e18c05 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Thu, 24 Mar 2022 21:20:07 +0100 -Subject: [PATCH 3/3] Add namespaces to LinkDef - -Fixes error: - -IncrementalExecutor::executeFunction: symbol '_ZN4TMVA12Experimental5SOFIE7PyTorch5ParseENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS9_ImSaImEESaISB_EE' unresolved while linking function '_GLOBAL__sub_I_cling_module_8'! -You are probably missing the definition of TMVA::Experimental::SOFIE::PyTorch::Parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::vector<unsigned long, std::allocator<unsigned long> >, std::allocator<std::vector<unsigned long, std::allocator<unsigned long> > > >) -Maybe you need to load the corresponding shared library? -Symbol found in '/builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libPyMVA.so.6.26.00'; did you mean to load it with '.L /builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libPyMVA.so.6.26.00'? ---- - tmva/pymva/inc/LinkDef.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/tmva/pymva/inc/LinkDef.h b/tmva/pymva/inc/LinkDef.h -index 92da99a4f7..83145077dd 100644 ---- a/tmva/pymva/inc/LinkDef.h -+++ b/tmva/pymva/inc/LinkDef.h -@@ -15,6 +15,8 @@ - #pragma link C++ class TMVA::MethodPyGTB+; - #pragma link C++ class TMVA::MethodPyKeras+; - #pragma link C++ class TMVA::MethodPyTorch+; -+#pragma link C++ namespace TMVA::Experimental::SOFIE::PyKeras; - #pragma link C++ function TMVA::Experimental::SOFIE::PyKeras::Parse+; -+#pragma link C++ namespace TMVA::Experimental::SOFIE::PyTorch; - #pragma link C++ function TMVA::Experimental::SOFIE::PyTorch::Parse+; - #endif --- -2.35.1 - diff --git a/root-namespace-roofit.patch b/root-namespace-roofit.patch deleted file mode 100644 index c8aa92e..0000000 --- a/root-namespace-roofit.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 4a4df0190ad24c0a3636994c2c23cb6c22e04589 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Thu, 24 Mar 2022 15:41:33 +0100 -Subject: [PATCH 2/3] Remove namespace RooFit from libRooFitCore's LinkDef - -The namespace is listed in the LinkDef's for both libRooFit and libRooFitCore. - -ROOT only autoloads one of the libraries, for some reason usually -libRooFitCore. After this only symbols in the namespace from that -library are present. By removing the namespace from liRooFitCore's -LinkDef, only libRooFit can be chosen when autoloading. Since -libRooFit depends on libRooFitCore, both libraries are loaded, and the -symbols from the namespace in both libraries are available. - -Fixes error: - -IncrementalExecutor::executeFunction: symbol '_ZN6RooFit12bindFunctionEPKcPFddER10RooAbsReal' unresolved while linking function '_GLOBAL__sub_I_cling_module_217'! -You are probably missing the definition of RooFit::bindFunction(char const*, double (*)(double), RooAbsReal&) -Maybe you need to load the corresponding shared library? -Symbol found in '/builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libRooFit.so.6.26.00'; did you mean to load it with '.L /builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libRooFit.so.6.26.00'? ---- - roofit/roofitcore/inc/LinkDef.h | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/roofit/roofitcore/inc/LinkDef.h b/roofit/roofitcore/inc/LinkDef.h -index d421fd95cd..72c66db33b 100644 ---- a/roofit/roofitcore/inc/LinkDef.h -+++ b/roofit/roofitcore/inc/LinkDef.h -@@ -105,7 +105,10 @@ - - - // Old LinkDef2.h --#pragma link C++ namespace RooFit ; -+ -+// "namespace RooFit" is in roofit/roofit/inc/Linkdef1.h -+// should not be in the dictionary for two different libraries -+// #pragma link C++ namespace RooFit ; - #pragma link C++ namespace RooFitShortHand ; - #pragma link C++ class RooDouble+ ; - #pragma link C++ class RooEffGenContext+ ; --- -2.35.1 - diff --git a/root-namespace-sofie.patch b/root-namespace-sofie.patch deleted file mode 100644 index a011634..0000000 --- a/root-namespace-sofie.patch +++ /dev/null @@ -1,30 +0,0 @@ -From c66ae9d9c035090584f465a41ce2e438e502be81 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Thu, 24 Mar 2022 15:23:59 +0100 -Subject: [PATCH 1/3] Add namespace TMVA::Experimental::SOFIE to LinkDef - -Fixes error: - -IncrementalExecutor::executeFunction: symbol '_ZN4TMVA12Experimental5SOFIE19ConvertTypeToStringB5cxx11ENS1_11ETensorTypeE' unresolved while linking function '_GLOBAL__sub_I_cling_module_8'! -You are probably missing the definition of TMVA::Experimental::SOFIE::ConvertTypeToString[abi:cxx11](TMVA::Experimental::SOFIE::ETensorType) -Maybe you need to load the corresponding shared library? -Symbol found in '/builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libROOTTMVASofie.so.6.26.00'; did you mean to load it with '.L /builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libROOTTMVASofie.so.6.26.00'? ---- - tmva/sofie/inc/LinkDef.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/tmva/sofie/inc/LinkDef.h b/tmva/sofie/inc/LinkDef.h -index 715cf35560..3282ff22c1 100644 ---- a/tmva/sofie/inc/LinkDef.h -+++ b/tmva/sofie/inc/LinkDef.h -@@ -7,6 +7,7 @@ - - #pragma link C++ nestedclass; - -+#pragma link C++ namespace TMVA::Experimental::SOFIE; - #pragma link C++ class TMVA::Experimental::SOFIE::RModel-; - #pragma link C++ class TMVA::Experimental::SOFIE::ROperator+; - #pragma link C++ struct TMVA::Experimental::SOFIE::InitializedTensor+; --- -2.35.1 - diff --git a/root-ntuple-RPageSinkBuf-add-missing-call-to-ReleasePage.patch b/root-ntuple-RPageSinkBuf-add-missing-call-to-ReleasePage.patch new file mode 100644 index 0000000..c833930 --- /dev/null +++ b/root-ntuple-RPageSinkBuf-add-missing-call-to-ReleasePage.patch @@ -0,0 +1,30 @@ +From 4ab2a1695a3f6350b454203c044db5d6f0c75dd2 Mon Sep 17 00:00:00 2001 +From: Javier Lopez-Gomez <javier.lopez.gomez(a)cern.ch> +Date: Mon, 13 Feb 2023 15:05:39 +0100 +Subject: [PATCH] [ntuple] RPageSinkBuf: add missing call to ReleasePage() + +--- + tree/ntuple/v7/src/RPageSinkBuf.cxx | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/tree/ntuple/v7/src/RPageSinkBuf.cxx b/tree/ntuple/v7/src/RPageSinkBuf.cxx +index b22ef705ef..88babb456f 100644 +--- a/tree/ntuple/v7/src/RPageSinkBuf.cxx ++++ b/tree/ntuple/v7/src/RPageSinkBuf.cxx +@@ -106,8 +106,11 @@ ROOT::Experimental::Detail::RPageSinkBuf::CommitClusterImpl(ROOT::Experimental:: + } + fInnerSink->CommitSealedPageV(toCommit); + +- for (auto &bufColumn : fBufferedColumns) +- bufColumn.DrainBufferedPages(); ++ for (auto &bufColumn : fBufferedColumns) { ++ auto drained = bufColumn.DrainBufferedPages(); ++ for (auto &bufPage : std::get<std::deque<RColumnBuf::RPageZipItem>>(drained)) ++ ReleasePage(bufPage.fPage); ++ } + return fInnerSink->CommitCluster(nEntries); + } + +-- +2.39.2 + diff --git a/root-ntuplewait.patch b/root-ntuplewait.patch deleted file mode 100644 index b464b69..0000000 --- a/root-ntuplewait.patch +++ /dev/null @@ -1,39 +0,0 @@ -From ad043f8e3304aab4f0ee3ad9e0cf8480c4bbadf0 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Thu, 24 Mar 2022 16:10:22 +0100 -Subject: [PATCH] Always call WaitForInFlightClusters before checking cluster - IDs - ---- - tree/ntuple/v7/test/ntuple_cluster.cxx | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/tree/ntuple/v7/test/ntuple_cluster.cxx b/tree/ntuple/v7/test/ntuple_cluster.cxx -index afc2fc32e9..0c299d97de 100644 ---- a/tree/ntuple/v7/test/ntuple_cluster.cxx -+++ b/tree/ntuple/v7/test/ntuple_cluster.cxx -@@ -213,6 +213,7 @@ TEST(ClusterPool, GetClusterBasics) - RPageSourceMock p1; - RClusterPool c1(p1, 1); - c1.GetCluster(3, {0}); -+ c1.WaitForInFlightClusters(); - ASSERT_EQ(2U, p1.fReqsClusterIds.size()); - EXPECT_EQ(3U, p1.fReqsClusterIds[0]); - EXPECT_EQ(4U, p1.fReqsClusterIds[1]); -@@ -267,11 +268,13 @@ TEST(ClusterPool, GetClusterIncrementally) - RPageSourceMock p1; - RClusterPool c1(p1, 1); - c1.GetCluster(3, {0}); -+ c1.WaitForInFlightClusters(); - ASSERT_EQ(2U, p1.fReqsClusterIds.size()); - EXPECT_EQ(3U, p1.fReqsClusterIds[0]); - EXPECT_EQ(RCluster::ColumnSet_t({0}), p1.fReqsColumns[0]); - - c1.GetCluster(3, {1}); -+ c1.WaitForInFlightClusters(); - ASSERT_EQ(4U, p1.fReqsClusterIds.size()); - EXPECT_EQ(3U, p1.fReqsClusterIds[2]); - EXPECT_EQ(RCluster::ColumnSet_t({1}), p1.fReqsColumns[2]); --- -2.35.1 - diff --git a/root-old-gtest-compat.patch b/root-old-gtest-compat.patch deleted file mode 100644 index 7bce796..0000000 --- a/root-old-gtest-compat.patch +++ /dev/null @@ -1,477 +0,0 @@ -From 99e9ad9ea54369296537ceb012ccdcb333b5f513 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Sat, 26 Mar 2022 10:55:38 +0100 -Subject: [PATCH 2/2] Backward compatibility with older googletest versions in - EPEL - ---- - hist/hist/test/test_THBinIterator.cxx | 5 +++++ - math/mathcore/test/stress/testGenVector.cxx | 10 ++++++++++ - math/mathcore/test/stress/testSMatrix.cxx | 10 ++++++++++ - math/mathcore/test/stress/testVector.cxx | 10 ++++++++++ - math/mathcore/test/stress/testVector34.cxx | 10 ++++++++++ - math/mathcore/test/testGradient.cxx | 4 ++++ - math/mathcore/test/testGradientFitting.cxx | 10 ++++++++++ - math/mathmore/test/testStress.cxx | 10 ++++++++++ - roofit/histfactory/test/testHistFactory.cxx | 4 ++++ - roofit/multiprocess/test/test_Job.cxx | 5 +++++ - roofit/roofitZMQ/test/test_ZMQ.cpp | 4 ++++ - roofit/roofitcore/test/TestStatistics/RooRealL.cpp | 4 ++++ - .../test/TestStatistics/testLikelihoodGradientJob.cpp | 5 +++++ - roofit/roofitcore/test/testProxiesAndCategories.cxx | 3 +++ - roofit/roofitcore/test/testRooDataHist.cxx | 4 ++++ - roofit/roofitcore/test/testRooGradMinimizerFcn.cxx | 5 +++++ - tree/dataframe/test/dataframe_definepersample.cxx | 4 ++++ - tree/dataframe/test/dataframe_merge_results.cxx | 2 +- - tree/dataframe/test/dataframe_regression.cxx | 4 ++++ - tree/dataframe/test/dataframe_samplecallback.cxx | 4 ++++ - tree/dataframe/test/dataframe_simple.cxx | 5 +++++ - tree/dataframe/test/dataframe_vary.cxx | 4 ++++ - tree/tree/test/TOffsetGeneration.cxx | 4 ++++ - 23 files changed, 129 insertions(+), 1 deletion(-) - -diff --git a/hist/hist/test/test_THBinIterator.cxx b/hist/hist/test/test_THBinIterator.cxx -index e30585b8cb..04f1e1487b 100644 ---- a/hist/hist/test/test_THBinIterator.cxx -+++ b/hist/hist/test/test_THBinIterator.cxx -@@ -1,5 +1,10 @@ - #include "gtest/gtest.h" - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define SetUpTestSuite SetUpTestCase -+#define TearDownTestSuite TearDownTestCase -+#endif -+ - // test iterating histogram bins and using the new THistRange and - // THBinIterator classes - -diff --git a/math/mathcore/test/stress/testGenVector.cxx b/math/mathcore/test/stress/testGenVector.cxx -index 93c0bb6aec..b3259158da 100644 ---- a/math/mathcore/test/stress/testGenVector.cxx -+++ b/math/mathcore/test/stress/testGenVector.cxx -@@ -4,6 +4,16 @@ - - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE_P -+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P -+#endif -+#ifndef REGISTER_TYPED_TEST_SUITE_P -+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P -+#endif -+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P -+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P -+#endif -+ - #include "StatFunction.h" - #include "TestHelper.h" - #include "VectorTest.h" -diff --git a/math/mathcore/test/stress/testSMatrix.cxx b/math/mathcore/test/stress/testSMatrix.cxx -index a4d7fc4cd5..a35d88b7c2 100644 ---- a/math/mathcore/test/stress/testSMatrix.cxx -+++ b/math/mathcore/test/stress/testSMatrix.cxx -@@ -7,6 +7,16 @@ - #include "TestHelper.h" - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE_P -+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P -+#endif -+#ifndef REGISTER_TYPED_TEST_SUITE_P -+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P -+#endif -+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P -+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P -+#endif -+ - #include "VectorTest.h" - #include "TROOT.h" - #include "TSystem.h" -diff --git a/math/mathcore/test/stress/testVector.cxx b/math/mathcore/test/stress/testVector.cxx -index 72e933f0d5..938e27d83c 100644 ---- a/math/mathcore/test/stress/testVector.cxx -+++ b/math/mathcore/test/stress/testVector.cxx -@@ -4,6 +4,16 @@ - - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE_P -+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P -+#endif -+#ifndef REGISTER_TYPED_TEST_SUITE_P -+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P -+#endif -+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P -+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P -+#endif -+ - #include "StatFunction.h" - #include "TestHelper.h" - #include "VectorTest.h" -diff --git a/math/mathcore/test/stress/testVector34.cxx b/math/mathcore/test/stress/testVector34.cxx -index 4b31184559..80d6dd6314 100644 ---- a/math/mathcore/test/stress/testVector34.cxx -+++ b/math/mathcore/test/stress/testVector34.cxx -@@ -4,6 +4,16 @@ - - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE_P -+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P -+#endif -+#ifndef REGISTER_TYPED_TEST_SUITE_P -+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P -+#endif -+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P -+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P -+#endif -+ - #include "StatFunction.h" - #include "VectorTest.h" - -diff --git a/math/mathcore/test/testGradient.cxx b/math/mathcore/test/testGradient.cxx -index 49a5391b7b..271e89e43c 100644 ---- a/math/mathcore/test/testGradient.cxx -+++ b/math/mathcore/test/testGradient.cxx -@@ -22,6 +22,10 @@ - - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE -+#define TYPED_TEST_SUITE TYPED_TEST_CASE -+#endif -+ - #include <chrono> - #include <iostream> - #include <string> -diff --git a/math/mathcore/test/testGradientFitting.cxx b/math/mathcore/test/testGradientFitting.cxx -index f85f826d9f..1818d1c22f 100644 ---- a/math/mathcore/test/testGradientFitting.cxx -+++ b/math/mathcore/test/testGradientFitting.cxx -@@ -13,6 +13,16 @@ - - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE_P -+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P -+#endif -+#ifndef REGISTER_TYPED_TEST_SUITE_P -+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P -+#endif -+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P -+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P -+#endif -+ - #include <iostream> - #include <string> - -diff --git a/math/mathmore/test/testStress.cxx b/math/mathmore/test/testStress.cxx -index 47bcdd250f..5cf20e69a1 100644 ---- a/math/mathmore/test/testStress.cxx -+++ b/math/mathmore/test/testStress.cxx -@@ -26,6 +26,16 @@ - - #include "gtest/gtest.h" - -+#ifndef TYPED_TEST_SUITE_P -+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P -+#endif -+#ifndef REGISTER_TYPED_TEST_SUITE_P -+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P -+#endif -+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P -+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P -+#endif -+ - using ::testing::TestWithParam; - using ::testing::Values; - -diff --git a/roofit/histfactory/test/testHistFactory.cxx b/roofit/histfactory/test/testHistFactory.cxx -index 71d7b632d2..9063e51070 100644 ---- a/roofit/histfactory/test/testHistFactory.cxx -+++ b/roofit/histfactory/test/testHistFactory.cxx -@@ -22,6 +22,10 @@ - #include "TCanvas.h" - #include "gtest/gtest.h" - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include <set> - - using namespace RooStats; -diff --git a/roofit/multiprocess/test/test_Job.cxx b/roofit/multiprocess/test/test_Job.cxx -index 22e66fc73c..61cc11771d 100644 ---- a/roofit/multiprocess/test/test_Job.cxx -+++ b/roofit/multiprocess/test/test_Job.cxx -@@ -24,6 +24,11 @@ - #include "RooFit/MultiProcess/Queue.h" // ... JobManager::queue() - - #include "gtest/gtest.h" -+ -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include "utils.h" - - class xSquaredPlusBVectorSerial { -diff --git a/roofit/roofitZMQ/test/test_ZMQ.cpp b/roofit/roofitZMQ/test/test_ZMQ.cpp -index 6dcceaff08..73e75be147 100644 ---- a/roofit/roofitZMQ/test/test_ZMQ.cpp -+++ b/roofit/roofitZMQ/test/test_ZMQ.cpp -@@ -16,6 +16,10 @@ - - #include "gtest/gtest.h" - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include <unistd.h> // fork, usleep - - #include <sstream> -diff --git a/roofit/roofitcore/test/TestStatistics/RooRealL.cpp b/roofit/roofitcore/test/TestStatistics/RooRealL.cpp -index f8421613ac..3ae6285a12 100644 ---- a/roofit/roofitcore/test/TestStatistics/RooRealL.cpp -+++ b/roofit/roofitcore/test/TestStatistics/RooRealL.cpp -@@ -34,6 +34,10 @@ - - #include "gtest/gtest.h" - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - class RooRealL - : public ::testing::TestWithParam<std::tuple<std::size_t>> { - }; -diff --git a/roofit/roofitcore/test/TestStatistics/testLikelihoodGradientJob.cpp b/roofit/roofitcore/test/TestStatistics/testLikelihoodGradientJob.cpp -index f4adf63eec..05164277f0 100644 ---- a/roofit/roofitcore/test/TestStatistics/testLikelihoodGradientJob.cpp -+++ b/roofit/roofitcore/test/TestStatistics/testLikelihoodGradientJob.cpp -@@ -33,6 +33,11 @@ - #include <stdexcept> // runtime_error - - #include "gtest/gtest.h" -+ -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include "../test_lib.h" // generate_1D_gaussian_pdf_nll - - using RooFit::TestStatistics::LikelihoodWrapper; -diff --git a/roofit/roofitcore/test/testProxiesAndCategories.cxx b/roofit/roofitcore/test/testProxiesAndCategories.cxx -index bed3c399bb..550e0c5ac9 100644 ---- a/roofit/roofitcore/test/testProxiesAndCategories.cxx -+++ b/roofit/roofitcore/test/testProxiesAndCategories.cxx -@@ -16,6 +16,9 @@ - - #include "gtest/gtest.h" - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif - - TEST(RooCategory, CategoryDefineMultiState) { - RooCategory myCat("myCat", "A category", { {"0Lep", 0}, {"1Lep", 1}, {"2Lep", 2}, {"3Lep", 3} }); -diff --git a/roofit/roofitcore/test/testRooDataHist.cxx b/roofit/roofitcore/test/testRooDataHist.cxx -index 90782e0749..f6b5e087ae 100644 ---- a/roofit/roofitcore/test/testRooDataHist.cxx -+++ b/roofit/roofitcore/test/testRooDataHist.cxx -@@ -18,6 +18,10 @@ - - #include "gtest/gtest.h" - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include <algorithm> - #include <memory> - -diff --git a/roofit/roofitcore/test/testRooGradMinimizerFcn.cxx b/roofit/roofitcore/test/testRooGradMinimizerFcn.cxx -index c1978ae47e..877ab1525f 100644 ---- a/roofit/roofitcore/test/testRooGradMinimizerFcn.cxx -+++ b/roofit/roofitcore/test/testRooGradMinimizerFcn.cxx -@@ -22,6 +22,11 @@ - #include <stdio.h> // remove redundant workspace files - - #include "gtest/gtest.h" -+ -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include "test_lib.h" - - #include <RooMsgService.h> -diff --git a/tree/dataframe/test/dataframe_definepersample.cxx b/tree/dataframe/test/dataframe_definepersample.cxx -index 772b8baa70..37da9f3f95 100644 ---- a/tree/dataframe/test/dataframe_definepersample.cxx -+++ b/tree/dataframe/test/dataframe_definepersample.cxx -@@ -6,6 +6,10 @@ - - #include <gtest/gtest.h> - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include <atomic> - #include <memory> - #include <thread> // std::thread::hardware_concurrency -diff --git a/tree/dataframe/test/dataframe_merge_results.cxx b/tree/dataframe/test/dataframe_merge_results.cxx -index 9354b75a39..ea439ea006 100644 ---- a/tree/dataframe/test/dataframe_merge_results.cxx -+++ b/tree/dataframe/test/dataframe_merge_results.cxx -@@ -340,7 +340,7 @@ TEST(RDataFrameMergeResults, Merge5Hists) - EXPECT_FALSE(mh3); - EXPECT_FALSE(mh4); - EXPECT_FALSE(mh5); -- EXPECT_TRUE(mergedptr); -+ EXPECT_TRUE(!!mergedptr); - - const auto &mh = mergedptr->GetValue(); - -diff --git a/tree/dataframe/test/dataframe_regression.cxx b/tree/dataframe/test/dataframe_regression.cxx -index 9801067cf4..8a991f40c5 100644 ---- a/tree/dataframe/test/dataframe_regression.cxx -+++ b/tree/dataframe/test/dataframe_regression.cxx -@@ -9,6 +9,10 @@ - - #include "gtest/gtest.h" - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - // Fixture for all tests in this file. If parameter is true, run with implicit MT, else run sequentially - class RDFRegressionTests : public ::testing::TestWithParam<bool> { - protected: -diff --git a/tree/dataframe/test/dataframe_samplecallback.cxx b/tree/dataframe/test/dataframe_samplecallback.cxx -index 188d58dd31..7734586eb3 100644 ---- a/tree/dataframe/test/dataframe_samplecallback.cxx -+++ b/tree/dataframe/test/dataframe_samplecallback.cxx -@@ -11,6 +11,10 @@ - - #include <gtest/gtest.h> - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include <algorithm> // std::min - #include <memory> - #include <mutex> -diff --git a/tree/dataframe/test/dataframe_simple.cxx b/tree/dataframe/test/dataframe_simple.cxx -index 6006f99017..b507edc13f 100644 ---- a/tree/dataframe/test/dataframe_simple.cxx -+++ b/tree/dataframe/test/dataframe_simple.cxx -@@ -1,5 +1,10 @@ - /****** Run RDataFrame tests both with and without IMT enabled *******/ - #include <gtest/gtest.h> -+ -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - #include <ROOTUnitTestSupport.h> - #include <ROOT/RDataFrame.hxx> - #include <ROOT/TSeq.hxx> -diff --git a/tree/dataframe/test/dataframe_vary.cxx b/tree/dataframe/test/dataframe_vary.cxx -index 2284b21f53..5a26c43cdc 100644 ---- a/tree/dataframe/test/dataframe_vary.cxx -+++ b/tree/dataframe/test/dataframe_vary.cxx -@@ -7,6 +7,10 @@ - - #include <gtest/gtest.h> - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - using ROOT::RDF::Experimental::VariationsFor; - - class RDFVary : public ::testing::TestWithParam<bool> { -diff --git a/tree/tree/test/TOffsetGeneration.cxx b/tree/tree/test/TOffsetGeneration.cxx -index 7b6b7647aa..77f125ca60 100644 ---- a/tree/tree/test/TOffsetGeneration.cxx -+++ b/tree/tree/test/TOffsetGeneration.cxx -@@ -9,6 +9,10 @@ - #include "ROOTUnitTestSupport.h" - #include "gtest/gtest.h" - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define SetUpTestSuite SetUpTestCase -+#endif -+ - #include "ElementStruct.h" - - class TOffsetGeneration : public ::testing::Test { --- -2.35.1 - -From 33e5da8c1f678382ab2fd65d000d388bb0dbf3ab Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Sun, 17 Apr 2022 22:17:56 +0200 -Subject: [PATCH] Backward compatibility with older googletest versions in EPEL - ---- - math/vecops/test/vecops_rvec.cxx | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/math/vecops/test/vecops_rvec.cxx b/math/vecops/test/vecops_rvec.cxx -index 7b513a858b..bea39636ce 100644 ---- a/math/vecops/test/vecops_rvec.cxx -+++ b/math/vecops/test/vecops_rvec.cxx -@@ -13,6 +13,10 @@ - #include <sstream> - #include <cmath> - -+#ifndef INSTANTIATE_TEST_SUITE_P -+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P -+#endif -+ - using namespace ROOT; - using namespace ROOT::VecOps; - using namespace ROOT::Detail::VecOps; // for `IsSmall` and `IsAdopting` --- -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-older-python.patch b/root-older-python.patch deleted file mode 100644 index fa6a05a..0000000 --- a/root-older-python.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 61116151cce8fe5b397555a65f7b55001b8e416b Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Fri, 23 Apr 2021 21:39:17 +0200 -Subject: [PATCH] Compat with no f-strings - ---- - tutorials/tmva/PyTorch_Generate_CNN_Model.py | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/tutorials/tmva/PyTorch_Generate_CNN_Model.py b/tutorials/tmva/PyTorch_Generate_CNN_Model.py -index 7024112f03..5a314f86dd 100644 ---- a/tutorials/tmva/PyTorch_Generate_CNN_Model.py -+++ b/tutorials/tmva/PyTorch_Generate_CNN_Model.py -@@ -56,7 +56,7 @@ def fit(model, train_loader, val_loader, num_epochs, batch_size, optimizer, crit - # print train statistics - running_train_loss += train_loss.item() - if i % 4 == 3: # print every 4 mini-batches -- print(f"[{epoch+1}, {i+1}] train loss: {running_train_loss / 4 :.3f}") -+ print("[{}, {}] train loss: {:.3f}".format(epoch+1, i+1, running_train_loss / 4)) - running_train_loss = 0.0 - - if schedule: -@@ -75,15 +75,15 @@ def fit(model, train_loader, val_loader, num_epochs, batch_size, optimizer, crit - - curr_val = running_val_loss / len(val_loader) - if save_best: -- if best_val==None: -- best_val = curr_val -- best_val = save_best(model, curr_val, best_val) -+ if best_val is None: -+ best_val = curr_val -+ best_val = save_best(model, curr_val, best_val) - - # print val statistics per epoch -- print(f"[{epoch+1}] val loss: {curr_val :.3f}") -+ print("[{}] val loss: {:.3f}".format(epoch+1, curr_val)) - running_val_loss = 0.0 - -- print(f"Finished Training on {epoch+1} Epochs!") -+ print("Finished Training on {} Epochs!".format(epoch+1)) - - return model - --- -2.30.2 - diff --git a/root-rcolor-static-init.patch b/root-rcolor-static-init.patch deleted file mode 100644 index 18e4299..0000000 --- a/root-rcolor-static-init.patch +++ /dev/null @@ -1,42 +0,0 @@ -From c4df90861879f45b281c2a8e55212b711cfdbfa0 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Tue, 29 Mar 2022 15:30:20 +0200 -Subject: [PATCH] Avoid crashes due to static initialization order - -Most commonly seen on ppc64le. Backtrace: - -=========================================================== -The lines below might hint at the cause of the crash. -You may get help by asking at the ROOT forum
https://root.cern/forum
-Only if you are really convinced it is a bug in ROOT then please submit a -report at
https://root.cern/bugs
Please post the ENTIRE stack trace -from above as an attachment in addition to anything else -that might help us fixing this issue. -=========================================================== - #11 ROOT::Experimental::RColor::toHex[abi:cxx11](unsigned char) (v=<optimized out>) at /usr/include/c++/11/ext/new_allocator.h:82 - #12 0x00007fff90c220ec in ROOT::Experimental::RColor::SetRGB (this=0x7fffeadf5d10, r=<optimized out>, g=<optimized out>, b=<optimized out>) at /usr/include/c++/11/ext/new_allocator.h:89 ---- - graf2d/gpadv7/src/RColor.cxx | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/graf2d/gpadv7/src/RColor.cxx b/graf2d/gpadv7/src/RColor.cxx -index de325f1ea3..6878360073 100644 ---- a/graf2d/gpadv7/src/RColor.cxx -+++ b/graf2d/gpadv7/src/RColor.cxx -@@ -232,10 +232,10 @@ std::vector<uint8_t> RColor::AsRGBA() const - - std::string RColor::toHex(uint8_t v) - { -- static const char *digits = "0123456789ABCDEF"; -+ auto digits = [](auto d) { return d < 10 ? '0' + d : 'A' - 10 + d; }; - std::string res(2,'0'); -- res[0] = digits[v >> 4]; -- res[1] = digits[v & 0xf]; -+ res[0] = digits(v >> 4); -+ res[1] = digits(v & 0xf); - return res; - } - --- -2.35.1 - diff --git a/root-roofit-tutorial.patch b/root-roofit-tutorial.patch deleted file mode 100644 index 9d73e11..0000000 --- a/root-roofit-tutorial.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 914e46f1c591f8b9b34115863ff31e42e19bfb97 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Mon, 28 Mar 2022 09:32:24 +0200 -Subject: [PATCH] Use calls from Python directly - -The rf105_funcbinding.py tutorial used to trigger errors due to unknown -symbols. In particular the custum new and delete operators used in RooFit -were not autoloaded when needed. - -In the tutorial there was a workaround implemented to call ProcessLine -instead of making calls directly form Python, to make the autoloading -from the C++ side of ROOT instead. This did not quite fix the problem, -and the tutorial still randomly failed due to missing symbols. - -After changing the algorthm used for autoloading in commit -6ae602bba7d33c900a117c9de0187ab5a28e14b8 these problems were solved. - -After this fix using the direct calls from Python also works, so this -PR suggests updating the tutorial to do that. ---- - tutorials/roofit/rf105_funcbinding.py | 30 ++++++--------------------- - 1 file changed, 6 insertions(+), 24 deletions(-) - -diff --git a/tutorials/roofit/rf105_funcbinding.py b/tutorials/roofit/rf105_funcbinding.py -index 72d9cf62fc..b9de2a095a 100644 ---- a/tutorials/roofit/rf105_funcbinding.py -+++ b/tutorials/roofit/rf105_funcbinding.py -@@ -17,15 +17,8 @@ import ROOT - # --------------------------------------------------- - - # Bind one-dimensional ROOT.TMath.Erf function as ROOT.RooAbsReal function --# Directly trying this in python doesn't work: --# x = ROOT.RooRealVar("x", "x", -3, 3) --# erf = ROOT.RooFit.bindFunction("erf", ROOT.TMath.Erf, x) --# Need to go through C interface --ROOT.gInterpreter.ProcessLine( -- 'auto x = RooRealVar("x", "x", -3, 3); auto myerf = RooFit::bindFunction("erf", TMath::Erf, x)' --) --x = ROOT.x --erf = ROOT.myerf -+x = ROOT.RooRealVar("x", "x", -3, 3) -+erf = ROOT.RooFit.bindFunction("erf", ROOT.TMath.Erf, x) - - # Print erf definition - erf.Print() -@@ -38,21 +31,10 @@ erf.plotOn(frame1) - # ----------------------------------------------------------------------- - - # Bind pdf ROOT.Math.Beta with three variables as ROOT.RooAbsPdf function --# As above, this does not work directly in python --# x2 = ROOT.RooRealVar("x2", "x2", 0, 0.999) --# a = ROOT.RooRealVar("a", "a", 5, 0, 10) --# b = ROOT.RooRealVar("b", "b", 2, 0, 10) --# beta = ROOT.RooFit.bindPdf("beta", ROOT.Math.beta_pdf, x2, a, b) --ROOT.gInterpreter.ProcessLine( -- 'auto x2 = RooRealVar("x2", "x2", 0, 0.999);\ -- auto a = RooRealVar("a", "a", 5, 0, 10);\ -- auto b = RooRealVar("b", "b", 5, 0, 10);\ -- auto beta = RooFit::bindPdf("beta", ROOT::Math::beta_pdf, x2, a, b)' --) --x2 = ROOT.x2 --a = ROOT.a --b = ROOT.b --beta = ROOT.beta -+x2 = ROOT.RooRealVar("x2", "x2", 0, 0.999) -+a = ROOT.RooRealVar("a", "a", 5, 0, 10) -+b = ROOT.RooRealVar("b", "b", 2, 0, 10) -+beta = ROOT.RooFit.bindPdf("beta", ROOT.Math.beta_pdf, x2, a, b) - - # Perf beta definition - beta.Print() --- -2.35.1 - diff --git a/root-stressvector-test-fails-on-ix86.patch b/root-stressvector-test-fails-on-ix86.patch new file mode 100644 index 0000000..ca3f212 --- /dev/null +++ b/root-stressvector-test-fails-on-ix86.patch @@ -0,0 +1,37 @@ +From df2902f6c970aa903200a272fd6a79788da3df4f Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Tue, 28 Feb 2023 11:33:28 +0100 +Subject: [PATCH] The stressVector test fails on ix86 due to too strict check: + +DeltaR TLorentzVector time = 0.2610929 (sec) +DeltaR XYZTVector time = 0.22973299 (sec) +DeltaR PtEtaPhiEVector time = 0.0016570091 (sec) +-12823.3585955796 -12823.35859557827 -12823.35859557827 +Test DeltaR failed !! + +The new value for the scale parameter (50) was calculated from the +above values: + +root [2] (-12823.3585955796 - (-12823.35859557827)) / -12823.3585955796 / std::numeric_limits<double>::epsilon() / 10 +(double) 46.762663 +--- + test/stressVector.cxx | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/test/stressVector.cxx b/test/stressVector.cxx +index 83b86fb2b4..18dc97d421 100644 +--- a/test/stressVector.cxx ++++ b/test/stressVector.cxx +@@ -540,8 +540,7 @@ int main(int argc,const char *argv[]) { + s1=a.testDeltaR (v1, t, t1, "DeltaR TLorentzVector " ); + s2=a.testDeltaR (v2, t, t2, "DeltaR XYZTVector " ); + s3=a.testDeltaR (v3, t, t3, "DeltaR PtEtaPhiEVector " ); +- a.check("DeltaR",s1,s2,s3,15); +- ++ a.check("DeltaR", s1, s2, s3, 50); + + int n1, n2, n3; + n1 = a.testAnalysis (v1, t, t1, "Analysis1 TLorentzVector " ); +-- +2.39.2 + diff --git a/root-symbol-rewrite.patch b/root-symbol-rewrite.patch deleted file mode 100644 index c91bbe6..0000000 --- a/root-symbol-rewrite.patch +++ /dev/null @@ -1,31 +0,0 @@ -From f99eedeb72644671cd584f48e4c136d47f6b0020 Mon Sep 17 00:00:00 2001 -From: Fangrui Song <maskray(a)google.com> -Date: Thu, 12 Dec 2019 16:18:57 -0800 -Subject: [PATCH] [MC][PowerPC] Fix a crash when redefining a symbol after .set - -Fix PR44284. This is probably not valid assembly but we should not crash. - -Reviewed By: luporl, #powerpc, steven.zhang - -Differential Revision:
https://reviews.llvm.org/D71443
---- - interpreter/llvm/src/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/interpreter/llvm/src/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp b/interpreter/llvm/src/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp -index 00df9e41fdae..5e91bdb2f8de 100644 ---- a/interpreter/llvm/src/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp -+++ b/interpreter/llvm/src/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp -@@ -201,7 +201,8 @@ public: - - void finish() override { - for (auto *Sym : UpdateOther) -- copyLocalEntry(Sym, Sym->getVariableValue()); -+ if (Sym->isVariable()) -+ copyLocalEntry(Sym, Sym->getVariableValue()); - } - - private: --- -2.33.1 - diff --git a/root-test-timeout.patch b/root-test-timeout.patch deleted file mode 100644 index a07aa39..0000000 --- a/root-test-timeout.patch +++ /dev/null @@ -1,110 +0,0 @@ -From 4d09235937ea29913cbf9a9b5bcd002b52557c0e 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 - ---- - cmake/modules/RootMacros.cmake | 14 +++++++------- - tmva/tmva/test/DNN/CMakeLists.txt | 2 +- - tree/tree/test/CMakeLists.txt | 2 +- - tutorials/CMakeLists.txt | 4 ++-- - 4 files changed, 11 insertions(+), 11 deletions(-) - -diff --git a/cmake/modules/RootMacros.cmake b/cmake/modules/RootMacros.cmake -index cc61f4bbad..3e4559fc19 100644 ---- a/cmake/modules/RootMacros.cmake -+++ b/cmake/modules/RootMacros.cmake -@@ -1779,6 +1779,7 @@ endfunction() - #---------------------------------------------------------------------------- - # function ROOT_ADD_GTEST(<testsuite> source1 source2... - # [WILLFAIL] Negate output of test -+# [TIMEOUT seconds] - # [COPY_TO_BUILDDIR file1 file2] Copy listed files when ctest invokes the test. - # [LIBRARIES lib1 lib2...] -- Libraries to link against - # [LABELS label1 label2...] -- Labels to annotate the test -@@ -1790,7 +1791,7 @@ endfunction() - function(ROOT_ADD_GTEST test_suite) - cmake_parse_arguments(ARG - "WILLFAIL" -- "REPEATS;FAILREGEX" -+ "TIMEOUT;REPEATS;FAILREGEX" - "COPY_TO_BUILDDIR;LIBRARIES;LABELS;INCLUDE_DIRS" ${ARGN}) - - ROOT_GET_SOURCES(source_files . ${ARG_UNPARSED_ARGUMENTS}) -@@ -1821,9 +1822,7 @@ function(ROOT_ADD_GTEST test_suite) - if(ARG_WILLFAIL) - set(willfail WILLFAIL) - endif() -- if(ARG_LABELS) -- set(labels "LABELS ${ARG_LABELS}") -- endif() -+ - if(ARG_REPEATS) - set(extra_command --gtest_repeat=${ARG_REPEATS} --gtest_break_on_failure) - endif() -@@ -1833,10 +1832,11 @@ function(ROOT_ADD_GTEST test_suite) - gtest${mangled_name} - COMMAND ${test_suite} ${extra_command} - WORKING_DIR ${CMAKE_CURRENT_BINARY_DIR} -- COPY_TO_BUILDDIR ${ARG_COPY_TO_BUILDDIR} -+ COPY_TO_BUILDDIR "${ARG_COPY_TO_BUILDDIR}" - ${willfail} -- ${labels} -- FAILREGEX ${ARG_FAILREGEX} -+ TIMEOUT "${ARG_TIMEOUT}" -+ LABELS "${ARG_LABELS}" -+ FAILREGEX "${ARG_FAILREGEX}" - ) - endfunction() - -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/tree/tree/test/CMakeLists.txt b/tree/tree/test/CMakeLists.txt -index dbe664f8a0..6284e3c4c5 100644 ---- a/tree/tree/test/CMakeLists.txt -+++ b/tree/tree/test/CMakeLists.txt -@@ -20,7 +20,7 @@ ROOT_ADD_GTEST(testBulkApi BulkApi.cxx LIBRARIES RIO Tree TreePlayer) - target_include_directories(testTOffsetGeneration PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) - ROOT_STANDARD_LIBRARY_PACKAGE(SillyStruct NO_INSTALL_HEADERS HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/SillyStruct.h SOURCES SillyStruct.cxx LINKDEF SillyStructLinkDef.h DEPENDENCIES RIO) - ROOT_ADD_GTEST(testBulkApi BulkApi.cxx LIBRARIES RIO Tree TreePlayer) --ROOT_ADD_GTEST(testBulkApiMultiple BulkApiMultiple.cxx LIBRARIES RIO Tree TreePlayer) -+ROOT_ADD_GTEST(testBulkApiMultiple BulkApiMultiple.cxx LIBRARIES RIO Tree TreePlayer TIMEOUT 3000) - ROOT_ADD_GTEST(testBulkApiVarLength BulkApiVarLength.cxx LIBRARIES RIO Tree TreePlayer) - ROOT_ADD_GTEST(testBulkApiSillyStruct BulkApiSillyStruct.cxx LIBRARIES RIO Tree TreePlayer SillyStruct) - ROOT_ADD_GTEST(testTBasket TBasket.cxx LIBRARIES RIO Tree) -diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt -index 6ae9be5869..982432fe15 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.38.1 - diff --git a/root-testRooAbsL-test-compares-two-doubles-and-fails.patch b/root-testRooAbsL-test-compares-two-doubles-and-fails.patch new file mode 100644 index 0000000..24a4148 --- /dev/null +++ b/root-testRooAbsL-test-compares-two-doubles-and-fails.patch @@ -0,0 +1,49 @@ +From d6a11ace0d3d25c96dd20cef1436642b5caa102e Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Tue, 28 Feb 2023 11:02:03 +0100 +Subject: [PATCH] The testRooAbsL test compares two doubles and fails due to + rounding errors. The failure happens on ppc64le and aarch64. + +This PR changes EXPECT_EQ to EXPECT_DOUBLE_EQ in the affected test. + +[ RUN ] SimBinnedConstrainedTest.SubEventSections +/builddir/build/BUILD/root-6.28.00/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx:293: Failure +Expected equality of these values: + whole.Sum() + Which is: -1263.796050661927 + N_events_total_parts.Sum() + Which is: -1263.7960506619268 +/builddir/build/BUILD/root-6.28.00/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx:303: Failure +Expected equality of these values: + whole.Sum() + Which is: -1263.796050661927 + thrice_N_events_total_parts.Sum() + Which is: -1263.7960506619268 +[ FAILED ] SimBinnedConstrainedTest.SubEventSections (199 ms) +--- + roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx b/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx +index 600f4da7be..05dcd6a241 100644 +--- a/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx ++++ b/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx +@@ -293,7 +293,7 @@ TEST_F(SimBinnedConstrainedTest, SubEventSections) + {static_cast<double>(ix) / N_events_total, static_cast<double>(ix + 1) / N_events_total}, 0, + likelihood->getNComponents()); + } +- EXPECT_EQ(whole.Sum(), N_events_total_parts.Sum()); ++ EXPECT_DOUBLE_EQ(whole.Sum(), N_events_total_parts.Sum()); + + // now let's do it again over a number of sections 3 times the number of events + ROOT::Math::KahanSum<double> thrice_N_events_total_parts; +@@ -303,5 +303,5 @@ TEST_F(SimBinnedConstrainedTest, SubEventSections) + {static_cast<double>(ix) / (3 * N_events_total), static_cast<double>(ix + 1) / (3 * N_events_total)}, 0, + likelihood->getNComponents()); + } +- EXPECT_EQ(whole.Sum(), thrice_N_events_total_parts.Sum()); ++ EXPECT_DOUBLE_EQ(whole.Sum(), thrice_N_events_total_parts.Sum()); + } +-- +2.39.2 + diff --git a/root-threadsh1-avoid-heap-use-after-free.patch b/root-threadsh1-avoid-heap-use-after-free.patch deleted file mode 100644 index 6111f2b..0000000 --- a/root-threadsh1-avoid-heap-use-after-free.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 493c4210168fa475aa4130c12e8fdff3b7d85c09 Mon Sep 17 00:00:00 2001 -From: Philippe Canal <pcanal(a)fnal.gov> -Date: Mon, 7 Mar 2022 13:32:37 -0600 -Subject: [PATCH] threadsh1: Avoid heap-use-after-free. - -Previously, the Canvas `Close` signal which triggers a call to the local function `close` which -was unconditionally call `Kill` on its associated thread would call it on an already deleted -object if the `TThread` was deleted before the `TCanvas`. - -This fix #10015 (detected by using ASAN). ---- - tutorials/legacy/thread/threadsh1.C | 13 +++++++------ - 1 file changed, 7 insertions(+), 6 deletions(-) - -diff --git a/tutorials/legacy/thread/threadsh1.C b/tutorials/legacy/thread/threadsh1.C -index b819f5d020..d6abc67e36 100644 ---- a/tutorials/legacy/thread/threadsh1.C -+++ b/tutorials/legacy/thread/threadsh1.C -@@ -67,7 +67,8 @@ void *joiner(void *) - void closed(Int_t id) - { - // kill the thread matching the canvas being closed -- t[id]->Kill(); -+ if (t[id]) -+ t[id]->Kill(); - // and set the canvas pointer to 0 - c[id] = 0; - } -@@ -142,11 +143,11 @@ void threadsh1() - t[4]->Join(); - TThread::Ps(); - -- delete t[0]; -- delete t[1]; -- delete t[2]; -- delete t[3]; -- delete t[4]; -+ delete t[0]; t[0] = nullptr; // Prevents after deletion access. -+ delete t[1]; t[1] = nullptr; -+ delete t[2]; t[2] = nullptr; -+ delete t[3]; t[3] = nullptr; -+ delete t[4]; t[4] = nullptr; - - delete rng[0]; - delete rng[1]; --- -2.35.1 - diff --git a/root-tmva-Speed-up-TMVA-CNN-and-RNN-tutorials.patch b/root-tmva-Speed-up-TMVA-CNN-and-RNN-tutorials.patch new file mode 100644 index 0000000..6a719c5 --- /dev/null +++ b/root-tmva-Speed-up-TMVA-CNN-and-RNN-tutorials.patch @@ -0,0 +1,239 @@ +From 54a05a995bef827413d69b63559494a78ed56946 Mon Sep 17 00:00:00 2001 +From: moneta <lorenzo.moneta(a)cern.ch> +Date: Tue, 14 Feb 2023 11:00:44 +0100 +Subject: [PATCH] [tmva] Speed up TMVA CNN and RNN tutorials + +Run tutorials with a amximum of 4 threads to avoid MT problems on some machines. +Disable also OpenMP when running in MT in ROOT + +Reduce also by a factor of 5 the number of input events +--- + tutorials/tmva/TMVA_CNN_Classification.C | 25 +++++++++++++++------- + tutorials/tmva/TMVA_CNN_Classification.py | 12 +++++------ + tutorials/tmva/TMVA_RNN_Classification.C | 11 +++++----- + tutorials/tmva/TMVA_RNN_Classification.py | 26 ++++++++++------------- + 4 files changed, 39 insertions(+), 35 deletions(-) + +diff --git a/tutorials/tmva/TMVA_CNN_Classification.C b/tutorials/tmva/TMVA_CNN_Classification.C +index 0966017ae2..cc6829a24d 100644 +--- a/tutorials/tmva/TMVA_CNN_Classification.C ++++ b/tutorials/tmva/TMVA_CNN_Classification.C +@@ -107,7 +107,16 @@ void MakeImagesTree(int n, int nh, int nw) + f.Close(); + } + +-void TMVA_CNN_Classification(std::vector<bool> opt = {1, 1, 1, 1, 1}) ++/// @brief Run the TMVA CNN Classification example ++/// @param nevts : number of signal/background events. Use by default a low value (1000) ++/// but increase to at least 5000 to get a good result ++/// @param opt : vector of bool with method used (default all on if available). The order is: ++/// - TMVA CNN ++/// - Keras CNN ++/// - TMVA DNN ++/// - TMVA BDT ++/// - PyTorch CNN ++void TMVA_CNN_Classification(int nevts = 1000, std::vector<bool> opt = {1, 1, 1, 1, 1}) + { + + bool useTMVACNN = (opt.size() > 0) ? opt[0] : false; +@@ -125,17 +134,17 @@ void TMVA_CNN_Classification(std::vector<bool> opt = {1, 1, 1, 1, 1}) + + bool writeOutputFile = true; + +- int num_threads = 0; // use default threads ++ int num_threads = 4; // use by default 4 threads if value is not set before ++ // switch off MT in OpenBLAS to avoid conflict with tbb ++ gSystem->Setenv("OMP_NUM_THREADS", "1"); + + TMVA::Tools::Instance(); + + // do enable MT running + if (num_threads >= 0) { + ROOT::EnableImplicitMT(num_threads); +- if (num_threads > 0) gSystem->Setenv("OMP_NUM_THREADS", TString::Format("%d",num_threads)); + } +- else +- gSystem->Setenv("OMP_NUM_THREADS", "1"); ++ + + std::cout << "Running with nthreads = " << ROOT::GetThreadPoolSize() << std::endl; + +@@ -161,7 +170,7 @@ void TMVA_CNN_Classification(std::vector<bool> opt = {1, 1, 1, 1, 1}) + The factory is the major TMVA object you have to interact with. Here is the list of parameters you need to pass + + - The first argument is the base of the name of all the output +- weightfiles in the directory weight/ that will be created with the ++ weight files in the directory weight/ that will be created with the + method parameters + + - The second argument is the output file for the training results +@@ -208,7 +217,7 @@ void TMVA_CNN_Classification(std::vector<bool> opt = {1, 1, 1, 1, 1}) + + // if file does not exists create it + if (!fileExist) { +- MakeImagesTree(5000, 16, 16); ++ MakeImagesTree(nevts, 16, 16); + } + + // TString inputFileName = "tmva_class_example.root"; +@@ -289,7 +298,7 @@ void TMVA_CNN_Classification(std::vector<bool> opt = {1, 1, 1, 1, 1}) + // Boosted Decision Trees + if (useTMVABDT) { + factory.BookMethod(loader, TMVA::Types::kBDT, "BDT", +- "!V:NTrees=400:MinNodeSize=2.5%:MaxDepth=2:BoostType=AdaBoost:AdaBoostBeta=0.5:" ++ "!V:NTrees=200:MinNodeSize=2.5%:MaxDepth=2:BoostType=AdaBoost:AdaBoostBeta=0.5:" + "UseBaggedBoost:BaggedSampleFraction=0.5:SeparationType=GiniIndex:nCuts=20"); + } + /** +diff --git a/tutorials/tmva/TMVA_CNN_Classification.py b/tutorials/tmva/TMVA_CNN_Classification.py +index 0760bacfd9..85fde20763 100644 +--- a/tutorials/tmva/TMVA_CNN_Classification.py ++++ b/tutorials/tmva/TMVA_CNN_Classification.py +@@ -25,6 +25,9 @@ + + import ROOT + ++#switch off MT in OpenMP (BLAS) ++ROOT.gSystem.Setenv("OMP_NUM_THREADS", "1") ++ + TMVA = ROOT.TMVA + TFile = ROOT.TFile + +@@ -105,6 +108,7 @@ def MakeImagesTree(n, nh, nw): + hasGPU = ROOT.gSystem.GetFromPipe("root-config --has-tmva-gpu") == "yes" + hasCPU = ROOT.gSystem.GetFromPipe("root-config --has-tmva-cpu") == "yes" + ++nevt = 1000 # use a larger value to get better results + opt = [1, 1, 1, 1, 1] + useTMVACNN = opt[0] if len(opt) > 0 else False + useKerasCNN = opt[1] if len(opt) > 1 else False +@@ -141,17 +145,13 @@ if not useTMVACNN: + + writeOutputFile = True + +-num_threads = 0 # use default threads ++num_threads = 4 # use default threads + max_epochs = 10 # maximum number of epochs used for training + + + # do enable MT running + if num_threads >= 0: + ROOT.EnableImplicitMT(num_threads) +- if (num_threads > 0) : +- ROOT.gSystem.Setenv("OMP_NUM_THREADS", str(num_threads)) +-else: +- ROOT.gSystem.Setenv("OMP_NUM_THREADS", "1") + + print("Running with nthreads = ", ROOT.GetThreadPoolSize()) + +@@ -218,7 +218,7 @@ inputFileName = "images_data_16x16.root" + + # if the input file does not exist create it + if ROOT.gSystem.AccessPathName(inputFileName): +- MakeImagesTree(5000, 16, 16) ++ MakeImagesTree(nevt, 16, 16) + + inputFile = TFile.Open(inputFileName) + if inputFile is None: +diff --git a/tutorials/tmva/TMVA_RNN_Classification.C b/tutorials/tmva/TMVA_RNN_Classification.C +index 2711673ec9..8701ba6c19 100644 +--- a/tutorials/tmva/TMVA_RNN_Classification.C ++++ b/tutorials/tmva/TMVA_RNN_Classification.C +@@ -136,13 +136,14 @@ void MakeTimeData(int n, int ntime, int ndim ) + } + } + /// macro for performing a classification using a Recurrent Neural Network ++/// @param nevts = 2000 Number of events used. (increase for better classification results) + /// @param use_type + /// use_type = 0 use Simple RNN network + /// use_type = 1 use LSTM network + /// use_type = 2 use GRU + /// use_type = 3 build 3 different networks with RNN, LSTM and GRU + +-void TMVA_RNN_Classification(int use_type = 1) ++void TMVA_RNN_Classification(int nevts = 2000, int use_type = 1) + { + + const int ninput = 30; +@@ -150,7 +151,7 @@ void TMVA_RNN_Classification(int use_type = 1) + const int batchSize = 100; + const int maxepochs = 20; + +- int nTotEvts = 10000; // total events to be generated for signal or background ++ int nTotEvts = nevts; // total events to be generated for signal or background + + bool useKeras = true; + +@@ -190,14 +191,12 @@ void TMVA_RNN_Classification(int use_type = 1) + useKeras = false; + #endif + +- int num_threads = 0; // use by default all threads ++ int num_threads = 4; // use by default all threads ++ gSystem->Setenv("OMP_NUM_THREADS", "1"); // switch off MT in OpenBLAS + // do enable MT running + if (num_threads >= 0) { + ROOT::EnableImplicitMT(num_threads); +- if (num_threads > 0) gSystem->Setenv("OMP_NUM_THREADS", TString::Format("%d",num_threads)); + } +- else +- gSystem->Setenv("OMP_NUM_THREADS", "1"); + + TMVA::Config::Instance(); + +diff --git a/tutorials/tmva/TMVA_RNN_Classification.py b/tutorials/tmva/TMVA_RNN_Classification.py +index 88280a5849..625a120b3d 100644 +--- a/tutorials/tmva/TMVA_RNN_Classification.py ++++ b/tutorials/tmva/TMVA_RNN_Classification.py +@@ -22,6 +22,16 @@ + + import ROOT + ++num_threads = 4 # use max 4 threads ++# do enable MT running ++if ROOT.gSystem.GetFromPipe("root-config --has-imt") == "yes": ++ ROOT.EnableImplicitMT(num_threads) ++ ROOT.gSystem.Setenv("OMP_NUM_THREADS", "1") # switch OFF MT in OpenBLAS ++ print("Running with nthreads = {}".format(ROOT.GetThreadPoolSize())) ++else: ++ print("Running in serail mode since ROOT does not support MT") ++ ++ + TMVA = ROOT.TMVA + TFile = ROOT.TFile + +@@ -141,7 +151,7 @@ ntime = 10 + batchSize = 100 + maxepochs = 10 + +-nTotEvts = 10000 # total events to be generated for signal or background ++nTotEvts = 2000 # total events to be generated for signal or background + + useKeras = True + +@@ -184,22 +194,8 @@ if ROOT.gSystem.GetFromPipe("root-config --has-tmva-pymva") == "yes": + else: + useKeras = False + +-num_threads = 0 # use by default all threads +-# do enable MT running +-if ROOT.gSystem.GetFromPipe("root-config --has-imt") == "yes": +- if num_threads >= 0: +- ROOT.EnableImplicitMT(num_threads) +- if num_threads > 0: +- ROOT.gSystem.Setenv("OMP_NUM_THREADS", str(num_threads)) +- else: +- ROOT.gSystem.Setenv("OMP_NUM_THREADS", "1") + + +- print("Running with nthreads = {}".format(ROOT.GetThreadPoolSize())) +- +-else: +- print("Running in serail mode since ROOT does not support MT") +- + inputFileName = "time_data_t10_d30.root" + + fileDoesNotExist = ROOT.gSystem.AccessPathName(inputFileName) +-- +2.39.2 + diff --git a/root-tmva-threads.patch b/root-tmva-threads.patch deleted file mode 100644 index 7506abc..0000000 --- a/root-tmva-threads.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 589ac491519446191b7d480a476ab831dc09b5f9 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Wed, 30 Mar 2022 15:51:07 +0200 -Subject: [PATCH] Limit the number of threads in TMVA CNN/DNN test to save - memory - -Processing /builddir/build/BUILD/root-6.26.00/tutorials/tmva/TMVA_CNN_Classification.C... -Running with nthreads = 224 - -[ ... ] - -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. -OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata. - *** Break *** segmentation violation - *** Break *** segmentation violation - *** Break *** segmentation violation - *** Break *** segmentation violation - *** Break *** segmentation violation - *** Break *** segmentation violation ---- - tutorials/tmva/TMVA_CNN_Classification.C | 6 ++++-- - tutorials/tmva/TMVA_RNN_Classification.C | 6 ++++-- - 2 files changed, 8 insertions(+), 4 deletions(-) - -diff --git a/tutorials/tmva/TMVA_CNN_Classification.C b/tutorials/tmva/TMVA_CNN_Classification.C -index 3e590c5958..b748fcee6c 100644 ---- a/tutorials/tmva/TMVA_CNN_Classification.C -+++ b/tutorials/tmva/TMVA_CNN_Classification.C -@@ -125,14 +125,16 @@ void TMVA_CNN_Classification(std::vector<bool> opt = {1, 1, 1, 1, 1}) - - bool writeOutputFile = true; - -- int num_threads = 0; // use default threads -+ int num_threads = 32; - - TMVA::Tools::Instance(); - - // do enable MT running - if (num_threads >= 0) { - ROOT::EnableImplicitMT(num_threads); -- if (num_threads > 0) gSystem->Setenv("OMP_NUM_THREADS", TString::Format("%d",num_threads)); -+ if (ROOT::GetThreadPoolSize() > 0) -+ gSystem->Setenv("OMP_NUM_THREADS", -+ TString::Format("%u", ROOT::GetThreadPoolSize())); - } - else - gSystem->Setenv("OMP_NUM_THREADS", "1"); -diff --git a/tutorials/tmva/TMVA_RNN_Classification.C b/tutorials/tmva/TMVA_RNN_Classification.C -index 5be80824f9..f902025875 100644 ---- a/tutorials/tmva/TMVA_RNN_Classification.C -+++ b/tutorials/tmva/TMVA_RNN_Classification.C -@@ -190,11 +190,13 @@ void TMVA_RNN_Classification(int use_type = 1) - useKeras = false; - #endif - -- int num_threads = 0; // use by default all threads -+ int num_threads = 32; - // do enable MT running - if (num_threads >= 0) { - ROOT::EnableImplicitMT(num_threads); -- if (num_threads > 0) gSystem->Setenv("OMP_NUM_THREADS", TString::Format("%d",num_threads)); -+ if (ROOT::GetThreadPoolSize() > 0) -+ gSystem->Setenv("OMP_NUM_THREADS", -+ TString::Format("%u", ROOT::GetThreadPoolSize())); - } - else - gSystem->Setenv("OMP_NUM_THREADS", "1"); --- -2.35.1 - diff --git a/root-unbundle-gtest.patch b/root-unbundle-gtest.patch deleted file mode 100644 index 1bdf869..0000000 --- a/root-unbundle-gtest.patch +++ /dev/null @@ -1,202 +0,0 @@ -From 29884ae01fde27204d92f554da4e92227a2ed1e6 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Sat, 26 Mar 2022 10:22:07 +0100 -Subject: [PATCH 1/2] Implement builtin_gtest option - -By setting the option to OFF the system gtest and gmock are used. -This allows doing tests without network available, e.g. during a -package build for Fedora/EPEL. ---- - cmake/modules/FindGTest.cmake | 81 +++++++++++++++++++++ - cmake/modules/RootBuildOptions.cmake | 2 + - cmake/modules/RootMacros.cmake | 2 +- - cmake/modules/SearchInstalledSoftware.cmake | 44 ++++++++--- - 4 files changed, 118 insertions(+), 11 deletions(-) - create mode 100644 cmake/modules/FindGTest.cmake - -diff --git a/cmake/modules/FindGTest.cmake b/cmake/modules/FindGTest.cmake -new file mode 100644 -index 0000000000..438ec501c2 ---- /dev/null -+++ b/cmake/modules/FindGTest.cmake -@@ -0,0 +1,81 @@ -+# Find the gtest and gmock includes and library. -+# -+# This module defines -+# GTEST_LIBRARIES -+# GTEST_MAIN_LIBRARIES -+# GTEST_INCLUDE_DIRS -+# GMOCK_LIBRARIES -+# GMOCK_MAIN_LIBRARIES -+# GMOCK_INCLUDE_DIRS -+# -+# GTEST_FOUND true if all libraries present -+ -+find_package(Threads QUIET) -+ -+find_path(GTEST_INCLUDE_DIRS NAMES gtest/gtest.h) -+find_library(GTEST_LIBRARIES NAMES gtest) -+find_library(GTEST_MAIN_LIBRARIES NAMES gtest_main) -+ -+find_path(GMOCK_INCLUDE_DIRS NAMES gmock/gmock.h) -+find_library(GMOCK_LIBRARIES NAMES gmock) -+find_library(GMOCK_MAIN_LIBRARIES NAMES gmock_main) -+ -+# Special for EPEL 7's gmock -+if(NOT GMOCK_LIBRARIES) -+ find_path(GMOCK_SRC_DIR NAMES gmock-all.cc PATHS /usr/src/gmock) -+endif() -+ -+if(NOT GMOCK_MAIN_LIBRARIES) -+ find_path(GMOCK_MAIN_SRC_DIR NAMES gmock_main.cc PATHS /usr/src/gmock) -+endif() -+ -+if (GTEST_INCLUDE_DIRS AND -+ GTEST_LIBRARIES AND -+ GTEST_MAIN_LIBRARIES AND -+ GMOCK_INCLUDE_DIRS AND -+ (GMOCK_LIBRARIES OR GMOCK_SRC_DIR) AND -+ (GMOCK_MAIN_LIBRARIES OR GMOCK_MAIN_SRC_DIR)) -+ -+ add_library(gtest UNKNOWN IMPORTED) -+ set_target_properties(gtest PROPERTIES -+ IMPORTED_LOCATION ${GTEST_LIBRARIES} -+ INTERFACE_INCLUDE_DIRECTORIES ${GTEST_INCLUDE_DIRS}) -+ target_link_libraries(gtest INTERFACE Threads::Threads) -+ -+ add_library(gtest_main UNKNOWN IMPORTED) -+ set_target_properties(gtest_main PROPERTIES -+ IMPORTED_LOCATION ${GTEST_MAIN_LIBRARIES}) -+ target_link_libraries(gtest_main INTERFACE gtest Threads::Threads) -+ -+ if(GMOCK_LIBRARIES) -+ add_library(gmock UNKNOWN IMPORTED) -+ set_target_properties(gmock PROPERTIES -+ IMPORTED_LOCATION ${GMOCK_LIBRARIES} -+ INTERFACE_INCLUDE_DIRECTORIES ${GMOCK_INCLUDE_DIRS}) -+ else() -+ add_library(gmock STATIC ${GMOCK_SRC_DIR}/gmock-all.cc) -+ target_include_directories(gmock PUBLIC ${GMOCK_INCLUDE_DIRS}) -+ set(GMOCK_LIBRARIES gmock) -+ endif() -+ target_link_libraries(gmock INTERFACE gtest Threads::Threads) -+ -+ if(GMOCK_MAIN_LIBRARIES) -+ add_library(gmock_main UNKNOWN IMPORTED) -+ set_target_properties(gmock_main PROPERTIES -+ IMPORTED_LOCATION ${GMOCK_MAIN_LIBRARIES}) -+ else() -+ add_library(gmock_main STATIC ${GMOCK_MAIN_SRC_DIR}/gmock_main.cc) -+ set(GMOCK_MAIN_LIBRARIES gmock_main) -+ endif() -+ target_link_libraries(gmock_main INTERFACE gmock Threads::Threads) -+ -+endif() -+ -+include(FindPackageHandleStandardArgs) -+find_package_handle_standard_args(GTest DEFAULT_MSG -+ GTEST_LIBRARIES -+ GTEST_MAIN_LIBRARIES -+ GTEST_INCLUDE_DIRS -+ GMOCK_LIBRARIES -+ GMOCK_MAIN_LIBRARIES -+ GMOCK_INCLUDE_DIRS) -diff --git a/cmake/modules/RootBuildOptions.cmake b/cmake/modules/RootBuildOptions.cmake -index 7886c5f3e9..01108a18c9 100644 ---- a/cmake/modules/RootBuildOptions.cmake -+++ b/cmake/modules/RootBuildOptions.cmake -@@ -94,6 +94,7 @@ ROOT_BUILD_OPTION(builtin_ftgl OFF "Build bundled copy of FTGL") - ROOT_BUILD_OPTION(builtin_gl2ps OFF "Build bundled copy of gl2ps") - ROOT_BUILD_OPTION(builtin_glew OFF "Build bundled copy of GLEW") - ROOT_BUILD_OPTION(builtin_gsl OFF "Build GSL internally (requires network)") -+ROOT_BUILD_OPTION(builtin_gtest OFF "Build googletest internally (requires network)") - ROOT_BUILD_OPTION(builtin_llvm ON "Build bundled copy of LLVM") - ROOT_BUILD_OPTION(builtin_lz4 OFF "Build bundled copy of lz4") - ROOT_BUILD_OPTION(builtin_lzma OFF "Build bundled copy of lzma") -@@ -293,6 +294,7 @@ if(builtin_all) - set(builtin_gl2ps_defvalue ON) - set(builtin_glew_defvalue ON) - set(builtin_gsl_defvalue ON) -+ set(builtin_gtest_defvalue ON) - set(builtin_llvm_defvalue ON) - set(builtin_lz4_defvalue ON) - set(builtin_lzma_defvalue ON) -diff --git a/cmake/modules/RootMacros.cmake b/cmake/modules/RootMacros.cmake -index cb75c0b1da..38fd5d6baf 100644 ---- a/cmake/modules/RootMacros.cmake -+++ b/cmake/modules/RootMacros.cmake -@@ -1671,7 +1671,7 @@ function(ROOT_ADD_TEST test) - - set_property(TEST ${test} APPEND PROPERTY ENVIRONMENT ROOT_HIST=0) - -- #- Handle TIMOUT and DEPENDS arguments -+ #- Handle TIMEOUT and DEPENDS arguments - if(ARG_TIMEOUT) - set_property(TEST ${test} PROPERTY TIMEOUT ${ARG_TIMEOUT}) - endif() -diff --git a/cmake/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake -index fe40898d12..b6a3cc4c76 100644 ---- a/cmake/modules/SearchInstalledSoftware.cmake -+++ b/cmake/modules/SearchInstalledSoftware.cmake -@@ -1860,15 +1860,6 @@ if (mpi) - endif() - endif() - --if(testing AND NO_CONNECTION) -- if(fail-on-missing) -- message(FATAL_ERROR "No internet connection. Please check your connection, or either disable the 'testing' option or the 'fail-on-missing' to automatically disable options requiring internet access") -- else() -- message(STATUS "No internet connection, disabling 'testing' option") -- set(testing OFF CACHE BOOL "Disabled because there is no internet connection" FORCE) -- endif() --endif() -- - #---Check for ZeroMQ when building RooFit::MultiProcess-------------------------------------------- - - if (roofit_multiprocess) -@@ -1942,8 +1933,41 @@ if (roofit_multiprocess) - target_compile_definitions(cppzmq INTERFACE ZMQ_NO_EXPORT) - endif (roofit_multiprocess) - --#---Download googletest-------------------------------------------------------------- -+#---Check for googletest--------------------------------------------------------------- - if (testing) -+ if (NOT builtin_gtest) -+ if(fail-on-missing) -+ find_package(GTest REQUIRED) -+ else() -+ find_package(GTest) -+ if(NOT GTEST_FOUND) -+ if(NO_CONNECTION) -+ if(fail-on-missing) -+ message(FATAL_ERROR "No internet connection and GTest was not found. Please check your connection, or either disable the 'testing' option or the 'fail-on-missing' to automatically disable options requiring internet access") -+ else() -+ message(STATUS "GTest not found, and no internet connection. Disabing the 'testing' option.") -+ set(testing OFF CACHE BOOL "Disabled because testing requested and GTest not found (${builtin_gtest_description}) and there is no internet connection" FORCE) -+ endif() -+ else() -+ message(STATUS "GTest not found, switching ON 'builtin_gtest' option.") -+ set(builtin_gtest ON CACHE BOOL "Enabled because testing requested and GTest not found (${builtin_gtest_description})" FORCE) -+ endif() -+ endif() -+ endif() -+ else() -+ if(NO_CONNECTION) -+ if(fail-on-missing) -+ message(FATAL_ERROR "No internet connection. Please check your connection, or either disable the 'testing' option or the 'builtin_gtest' option or the 'fail-on-missing' option to automatically disable options requiring internet access") -+ else() -+ message(STATUS "No internet connection, disabling the 'testing' and 'builtin_gtest' options") -+ set(testing OFF CACHE BOOL "Disabled because there is no internet connection" FORCE) -+ set(builtin_gtest OFF CACHE BOOL "Disabled because there is no internet connection" FORCE) -+ endif() -+ endif() -+ endif() -+endif() -+ -+if (builtin_gtest) - # FIXME: Remove our version of gtest in roottest. We can reuse this one. - # Add googletest - #
http://stackoverflow.com/questions/9689183/cmake-googletest
--- -2.35.1 - diff --git a/root-uring-warn.patch b/root-uring-warn.patch deleted file mode 100644 index 05cfd56..0000000 --- a/root-uring-warn.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 580fcf8fe95c45e337d222a7fd2338fdef2f52c5 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Thu, 24 Mar 2022 16:18:57 +0100 -Subject: [PATCH 1/2] Ignore warnings about uring failing during test - ---- - tree/ntuple/v7/test/ntuple_extended.cxx | 13 +++++++++++++ - 1 file changed, 13 insertions(+) - -diff --git a/tree/ntuple/v7/test/ntuple_extended.cxx b/tree/ntuple/v7/test/ntuple_extended.cxx -index 8e3998996c..98d65ef319 100644 ---- a/tree/ntuple/v7/test/ntuple_extended.cxx -+++ b/tree/ntuple/v7/test/ntuple_extended.cxx -@@ -4,6 +4,8 @@ - - #include "TROOT.h" - -+#include "ROOTUnitTestSupport.h" -+ - TEST(RNTuple, RealWorld1) - { - ROOT::EnableImplicitMT(); -@@ -111,6 +113,17 @@ TEST(RNTuple, RandomAccess) - #if !defined(_MSC_VER) || defined(R__ENABLE_BROKEN_WIN_TESTS) - TEST(RNTuple, LargeFile) - { -+ ROOTUnitTestSupport::CheckDiagsRAII raii; -+ raii.optionalDiag(kWarning, "RIoUring", -+ "io_uring is unexpectedly not available because:", false); -+ raii.optionalDiag(kWarning, "RRawFileUnix", -+ "io_uring setup failed, falling back to blocking I/O in ReadV", true); -+ -+ raii.optionalDiag(kWarning, "ROOT.NTuple", -+ "The RNTuple file format will change. Do not store real data with this version of RNTuple!", true); -+ raii.optionalDiag(kWarning, "ROOT.NTuple", -+ "Pre-release format version: ", false); -+ - ROOT::EnableImplicitMT(); - FileRaii fileGuard("test_large_file.root"); - --- -2.35.1 - diff --git a/root-use-consistent-minimum-python-version-for-DistRDF.patch b/root-use-consistent-minimum-python-version-for-DistRDF.patch new file mode 100644 index 0000000..23e9e5c --- /dev/null +++ b/root-use-consistent-minimum-python-version-for-DistRDF.patch @@ -0,0 +1,27 @@ +From 8624d1c7eb4f532d6843118251d9564650f89924 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Thu, 2 Mar 2023 08:25:36 +0100 +Subject: [PATCH 1/2] Use consistent minimum Python version for DistRDF The + minimum version was changed in bindings/CMakeLists.txt but not in the check + in the code. + +--- + bindings/pyroot/pythonizations/python/ROOT/_facade.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/bindings/pyroot/pythonizations/python/ROOT/_facade.py b/bindings/pyroot/pythonizations/python/ROOT/_facade.py +index 7370a234d1..865321e713 100644 +--- a/bindings/pyroot/pythonizations/python/ROOT/_facade.py ++++ b/bindings/pyroot/pythonizations/python/ROOT/_facade.py +@@ -335,7 +335,7 @@ class ROOTFacade(types.ModuleType): + ns.MakeNumpyDataFrame = DeprecatedMakeNumpy + ns.FromNumpy = MakeNumpyDataFrame + +- if sys.version_info >= (3, 7): ++ if sys.version_info >= (3, 8): + # Inject Experimental.Distributed package into namespace RDF + ns.Experimental.Distributed = _create_rdf_experimental_distributed_module(ns.Experimental) + except: +-- +2.39.2 + diff --git a/root-use-unique-filenames-in-fillrandom-tutorials.patch b/root-use-unique-filenames-in-fillrandom-tutorials.patch deleted file mode 100644 index 724eb79..0000000 --- a/root-use-unique-filenames-in-fillrandom-tutorials.patch +++ /dev/null @@ -1,25 +0,0 @@ -From b781f954ac80cc227777992dcb4fbe1837c7e351 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert <mattias.ellert(a)physics.uu.se> -Date: Tue, 29 Mar 2022 15:44:17 +0200 -Subject: [PATCH] Use unique filenames in fillrandom.py and fillrandom.C - ---- - tutorials/hist/fillrandom.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tutorials/hist/fillrandom.py b/tutorials/hist/fillrandom.py -index d5eb3f6f38..4b1a94a37e 100644 ---- a/tutorials/hist/fillrandom.py -+++ b/tutorials/hist/fillrandom.py -@@ -41,7 +41,7 @@ h1f.FillRandom("sqroot",10000) - h1f.Draw() - c1.Update() - --f = ROOT.TFile("fillrandom.root","RECREATE") -+f = ROOT.TFile("fillrandom-py.root","RECREATE") - form1.Write() - sqroot.Write() - h1f.Write() --- -2.35.1 - diff --git a/root-veto-tests-using-clad-when-clad-is-disabled.patch b/root-veto-tests-using-clad-when-clad-is-disabled.patch new file mode 100644 index 0000000..d201fdb --- /dev/null +++ b/root-veto-tests-using-clad-when-clad-is-disabled.patch @@ -0,0 +1,66 @@ +From 6583668f3e5f1b4e1d219a5a92a19da31d8d5494 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Wed, 1 Mar 2023 18:32:45 +0100 +Subject: [PATCH] Veto tests using clad when clad is disabled + +--- + math/minuit2/test/CMakeLists.txt | 8 ++++---- + tutorials/CMakeLists.txt | 9 ++++++--- + 2 files changed, 10 insertions(+), 7 deletions(-) + +diff --git a/math/minuit2/test/CMakeLists.txt b/math/minuit2/test/CMakeLists.txt +index 7ecf30350c..8951ac0a84 100644 +--- a/math/minuit2/test/CMakeLists.txt ++++ b/math/minuit2/test/CMakeLists.txt +@@ -11,10 +11,10 @@ if(NOT DEFINED ROOT_SOURCE_DIR) + include(${ROOT_USE_FILE}) + endif() + +-set(TestSource +- testMinimizer.cxx +- testADMinim.cxx +-) ++set(TestSource testMinimizer.cxx) ++if (clad) ++ list(APPEND TestSource testADMinim.cxx) ++endif() + + set(TestSourceMnTutorial + MnTutorial/Quad1FMain.cxx +diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt +index bf7c1d4089..deb5f67d23 100644 +--- a/tutorials/CMakeLists.txt ++++ b/tutorials/CMakeLists.txt +@@ -65,16 +65,18 @@ endfunction() + + #---Tutorials disabled depending on the build components------------- + if(NOT ROOT_minuit2_FOUND) +- set(minuit2_veto fit/fit2dHist.C fit/fit2dHist.C +- fit/fitCircle.C fit/minuit2FitBench2D.C ++ set(minuit2_veto fit/fit2dHist.C fit/fitCircle.C + fit/minuit2FitBench2D.C fit/minuit2FitBench.C +- fit/minuit2FitBench.C fit/minuit2GausFit.C + fit/minuit2GausFit.C fit/NumericalMinimization.C + fit/combinedFit.C fit/TestBinomial.C + fit/fitNormSum.C fit/vectorizedFit.C + tutorials/roostats/rs_bernsteinCorrection.C) + endif() + ++if(NOT clad) ++ set(clad_veto fit/minuit2GausFit.C) ++endif() ++ + if (NOT dataframe) + # RDataFrame + list(APPEND dataframe_veto dataframe/*.C dataframe/*.py) +@@ -457,6 +459,7 @@ set(all_veto hsimple.C + ${spectrum_veto} + ${dataframe_veto} + ${macm1_veto} ++ ${clad_veto} + ) + + file(GLOB_RECURSE tutorials RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.C) +-- +2.39.2 + diff --git a/root.spec b/root.spec index 7b8e3be..eb06a82 100644 --- a/root.spec +++ b/root.spec @@ -1,23 +1,13 @@ +# Needed for EPEL 8 %undefine __cmake_in_source_build -%undefine __cmake3_in_source_build # Disable package note flags, since root saves the compiler/linker flags # used during the build %undefine _package_note_flags -%if %{?fedora}%{!?fedora:0} >= 31 || %{?rhel}%{!?rhel:0} >= 8 -# Don't build python2-root for Fedora >= 31 -%global buildpy2 0 -%else -%global buildpy2 1 -%endif - -%if %{buildpy2} -%global python2_version_uscore %(tr . _ <<< "%{python2_version}") -%endif %global python3_version_uscore %(tr . _ <<< "%{python3_version}") -%if %{?fedora}%{!?fedora:0} >= 34 || %{?rhel}%{!?rhel:0} >= 9 +%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 9 # Building the experimental ROOT 7 classes requires c++-17. # This is the default for gcc 11 and later. %global root7 1 @@ -25,46 +15,41 @@ %global root7 0 %endif -%global xrootd5 1 - -%global webgui 1 - -%global gfal2 1 - -%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8 -# The SOFIE parser requires protobuf 3.0 +%if %{?rhel}%{!?rhel:0} == 8 +%ifarch %{power64} +# These modules cause "pure virtual method called" errors +#
https://github.com/root-project/root/issues/12372
+%global dataframe 0 +%global roofit 0 +%global tmvasofieparser 0 +%else +%global dataframe 1 +%global roofit 1 %global tmvasofieparser 1 +%endif %else -%global tmvasofieparser 0 +%global dataframe 1 +%global roofit 1 +%global tmvasofieparser 1 %endif %if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 9 -# DistRDF requires Python 3.7+ -%global distrdf 1 +# DistRDF requires Python 3.8+ +%global distrdf %{dataframe} %else %global distrdf 0 %endif -%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8 -# Multi-threading support requires TBB version >= 2018 -%global tbb 1 -%else -%global tbb 0 -%endif - -# Do not create .orig files when patching source -%global _default_patch_flags --no-backup-if-mismatch - # Do not generate autoprovides for Python modules -%global __provides_exclude_from ^(%{?python2_sitearch:%{python2_sitearch}|}%{python3_sitearch})/lib.*\\.so$ +%global __provides_exclude_from ^%{python3_sitearch}/lib.*\\.so$ Name: root -Version: 6.26.10 +Version: 6.28.00 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 5%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework -License: LGPLv2+ +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 @@ -86,118 +71,75 @@ Source7: JupyROOT-on-EPEL Source8: %{name}-get-src.sh # Use system fonts Patch0: %{name}-fontconfig.patch -# Revert the removal of DataFrame for 32 bit architectures -#
https://github.com/root-project/root/pull/10300
-Patch1: %{name}-32bit-dataframe.patch -# Unbundle gtest -# Add builtin_gtest cmake option -# Compatibility with older gtest -#
https://github.com/root-project/root/pull/10301
-Patch2: %{name}-unbundle-gtest.patch -Patch3: %{name}-old-gtest-compat.patch # Reduce memory usage of build # Do not link rootcling_stage1 and libCling in parallel -Patch4: %{name}-memory-usage.patch +Patch1: %{name}-memory-usage.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 -Patch5: %{name}-memory-arm-x86.patch +Patch2: %{name}-memory-arm-x86.patch # Don't install minicern static library -Patch6: %{name}-dont-install-minicern.patch +Patch3: %{name}-dont-install-minicern.patch # Do not export Python modules in CMake config -Patch7: %{name}-no-export-python-modules.patch +Patch4: %{name}-no-export-python-modules.patch # Run some test on 32 bit that upstream has disabled -Patch8: %{name}-32bit-tests.patch +Patch5: %{name}-32bit-tests.patch # Use local static script and style files for JsMVA -Patch9: %{name}-jsmva-static.patch -# Fix python bytecode compilation on EPEL 7 -# Compatibility with older python versions (no f-strings) -Patch10: %{name}-older-python.patch -# Backported fix from LLVM upstream -Patch11: %{name}-symbol-rewrite.patch -# Backport gcc 12 fix from LLVM -#
https://github.com/root-project/root/pull/9586
-Patch12: %{name}-fix-compilation-with-gcc-12.patch +Patch6: %{name}-jsmva-static.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}-ignore-prefix.patch -# Use different filenames in io/loopdir tests -#
https://github.com/root-project/root/pull/11725
-Patch16: %{name}-different-filename.patch -# Fix test when long is 32 bits -#
https://github.com/root-project/root/pull/10302
-Patch17: %{name}-longlong.patch -# Ignore warnings (uring and RooNaNPacker) -#
https://github.com/root-project/root/pull/10303
-Patch18: %{name}-uring-warn.patch -Patch19: %{name}-endian-warn.patch -# Always call WaitForInFlightClusters before checking cluster IDs -#
https://github.com/root-project/root/pull/10304
-Patch20: %{name}-ntuplewait.patch -# NENTRIES is not always a multiple of the expected size -#
https://github.com/root-project/root/pull/10305
-Patch21: %{name}-dataframe-callback.patch -# Add/remove namespaces from Linkdef -#
https://github.com/root-project/root/pull/10306
-Patch22: %{name}-namespace-sofie.patch -Patch23: %{name}-namespace-roofit.patch -Patch24: %{name}-namespace-pymva.patch -# Use calls from Python directly in tutorial -#
https://github.com/root-project/root/pull/10307
-Patch25: %{name}-roofit-tutorial.patch +Patch7: %{name}-fix-test-failure-on-ppc64le-and-aarch64-with-gcc-12.patch # Byte swap values read from the protobuf raw data stream on # big endian architectures #
https://github.com/root-project/root/pull/10308
-Patch26: %{name}-big-endian-byte-swap.patch -# Avoid crashes due to static initialization order -#
https://github.com/root-project/root/pull/10309
-Patch27: %{name}-rcolor-static-init.patch -# Avoid deleting TFormulas twice -#
https://github.com/root-project/root/pull/10310
-Patch28: %{name}-avoid-deleting-TFormulas-twice.patch -# Use unique filenames in fillrandom.py and fillrandom.C -#
https://github.com/root-project/root/pull/10311
-Patch29: %{name}-use-unique-filenames-in-fillrandom-tutorials.patch -# Limit the number of threads in TMVA CNN/DNN test to save memory -#
https://github.com/root-project/root/pull/10312
-Patch30: %{name}-tmva-threads.patch -# Fix library link order -#
https://github.com/root-project/root/pull/10313
-Patch31: %{name}-core-base-test.patch -# Backports -Patch32: %{name}-make-dyld-based-library-search-behavior-default.patch -Patch33: %{name}-get-rid-of-lsb_release.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 -# Avoid race condition between C++ an Python version of test -#
https://github.com/root-project/root/pull/11643
-Patch37: %{name}-avoid-race-condition-tutorial-roofit-rf512.patch +Patch8: %{name}-big-endian-byte-swap.patch # Add missing #include <cstdint> #
https://github.com/root-project/root/pull/12065
-Patch38: %{name}-add-missing-include-cstdint.patch -# Backport from upstream -Patch39: %{name}-fix-compilation-with-gcc13.patch -# numpy.object obsolete since numpy 1.20 and removed since 1.24 -#
https://github.com/root-project/root/issues/12148
-#
https://github.com/root-project/root/pull/12159
-Patch40: %{name}-avoid-deprecated-numpy.object.patch - -%if %{?rhel}%{!?rhel:0} == 7 -BuildRequires: devtoolset-8-toolchain -BuildRequires: cmake3 >= 3.9 -%else +Patch9: %{name}-add-missing-include-cstdint.patch +#
https://github.com/root-project/root/pull/12218
+Patch10: %{name}-Simplify-creation-of-TargetMachine.patch +# Fix build with -Dbuiltin_gtest:BOOL=OFF on EPEL 8 +#
https://github.com/root-project/root/pull/12250
+Patch11: %{name}-gtest-compat.patch +# Limit the number of threads in TMVA CNN/DNN test to save memory +#
https://github.com/root-project/root/pull/12310
+Patch12: %{name}-tmva-Speed-up-TMVA-CNN-and-RNN-tutorials.patch +#
https://github.com/root-project/root/issues/12293
+#
https://github.com/root-project/root/pull/12335
+Patch13: %{name}-Set-DataLayout-from-our-TargetMachine.patch +#
https://github.com/root-project/root/issues/12294
+#
https://github.com/root-project/root/pull/12353
+Patch14: %{name}-cling-Disable-outline-atomics-on-AArch64.patch +#
https://github.com/root-project/root/pull/12385
+Patch15: %{name}-PyROOT-only-build-RooFit-and-TMVA-pythonizations-if-enabled.patch +#
https://github.com/root-project/root/pull/12389
+Patch16: %{name}-testRooAbsL-test-compares-two-doubles-and-fails.patch +#
https://github.com/root-project/root/pull/12390
+Patch17: %{name}-stressvector-test-fails-on-ix86.patch +#
https://github.com/root-project/root/pull/12402
+Patch18: %{name}-dont-install-roofit-files-when-roofit-is-disabled.patch +#
https://github.com/root-project/root/pull/12403
+Patch19: %{name}-veto-tests-using-clad-when-clad-is-disabled.patch +#
https://github.com/root-project/root/pull/12407
+Patch20: %{name}-use-consistent-minimum-python-version-for-DistRDF.patch +Patch21: %{name}-make-DistRDF-optional.patch +#
https://github.com/root-project/root/pull/12423
+Patch22: %{name}-dont-install-roofit-files-fix.patch +#
https://github.com/root-project/root/issues/12430
+#
https://github.com/root-project/root/pull/12447
+Patch23: %{name}-RF-Rewrite-RooProdPdf.TestGetPartIntList-unit-test.patch +#
https://github.com/root-project/root/issues/12427
+#
https://github.com/root-project/root/pull/12468
+Patch24: %{name}-fixes-for-32bit-builds.patch +#
https://github.com/root-project/root/pull/12476
+Patch25: %{name}-do-not-remove-Wp-before-D-and-U.patch +# Backport (fixes a failing test on ix86) +Patch26: %{name}-ntuple-RPageSinkBuf-add-missing-call-to-ReleasePage.patch + BuildRequires: gcc-c++ BuildRequires: gcc-gfortran BuildRequires: make -BuildRequires: cmake >= 3.9 -%endif +BuildRequires: cmake >= 3.16 BuildRequires: libX11-devel BuildRequires: libXpm-devel BuildRequires: libXft-devel @@ -222,62 +164,38 @@ BuildRequires: libxml2-devel BuildRequires: fftw-devel BuildRequires: gsl-devel BuildRequires: unuran-devel -%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8 BuildRequires: mariadb-connector-c-devel -%else -BuildRequires: mysql-devel -%endif BuildRequires: sqlite-devel BuildRequires: unixODBC-devel BuildRequires: libGL-devel BuildRequires: libGLU-devel -%if %{?fedora}%{!?fedora:0} >= 27 || %{?rhel}%{!?rhel:0} >= 8 BuildRequires: libpq-devel -%else -BuildRequires: postgresql-devel -%endif -%if %{buildpy2} -BuildRequires: python2-devel -BuildRequires: python2-setuptools -BuildRequires: python2-numpy -%endif BuildRequires: python%{python3_pkgversion}-devel BuildRequires: python%{python3_pkgversion}-setuptools BuildRequires: python%{python3_pkgversion}-numpy -%if %{webgui} %ifarch %{qt5_qtwebengine_arches} BuildRequires: qt5-qtbase-devel BuildRequires: qt5-qtwebengine-devel %endif -%endif BuildRequires: openssl-devel BuildRequires: libtool-ltdl-devel BuildRequires: desktop-file-utils BuildRequires: dcap-devel -%if %{xrootd5} BuildRequires: xrootd-client-devel >= 1:5.0.0 -%else -BuildRequires: xrootd-client-devel >= 1:3.3.5 -BuildRequires: xrootd-private-devel >= 1:3.3.5 -%endif BuildRequires: cfitsio-devel BuildRequires: davix-devel >= 0.6.4 -%if %{gfal2} BuildRequires: gfal2-devel -%endif BuildRequires: R-Rcpp-devel BuildRequires: R-RInside-devel BuildRequires: readline-devel -%if %{tbb} BuildRequires: tbb-devel >= 2018 -%endif BuildRequires: libuuid-devel BuildRequires: emacs BuildRequires: emacs-el BuildRequires: graphviz-devel BuildRequires: expat-devel BuildRequires: pythia8-devel >= 8.1.80 -%if %{?fedora}%{!?fedora:0} >= 33 || %{?rhel}%{!?rhel:0} >= 9 +%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 9 BuildRequires: flexiblas-devel # Required for FlexiBLAS support in FindBLAS.cmake # (in cmake 3.19.0, backported to cmake 3.18.3-1 in Fedora) @@ -286,7 +204,9 @@ BuildRequires: cmake-data >= 3.18.3-1 BuildRequires: openblas-devel %endif BuildRequires: json-devel -%if %{?fedora}%{!?fedora:0} +%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 9 +# Disable uring in EPEL 8 (liburing is available, but uring not +# supported by the kernel) BuildRequires: liburing-devel %endif %if %{tmvasofieparser} @@ -310,12 +230,15 @@ 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-player%{?_isa} = %{version}-%{release} Requires: hicolor-icon-theme Requires: emacs-filesystem >= %{_emacs_version} Provides: emacs-%{name} = %{version}-%{release} @@ -363,7 +286,7 @@ This package contains icons used by the ROOT GUI. Summary: ROOT font collection BuildArch: noarch # STIX version 0.9 only -License: OFL +License: OFL-1.1 Requires: %{name}-core = %{version}-%{release} %description fonts @@ -380,7 +303,7 @@ This package contains the tutorial scripts and test suite for ROOT. %package core Summary: ROOT core libraries -License: LGPLv2+ and BSD +License: LGPL-2.1-or-later AND LGPL-2.0-or-later AND ISC AND MIT AND NCSA Requires: %{name}-fonts = %{version}-%{release} Requires: %{name}-icons = %{version}-%{release} # Dynamic dependencies @@ -402,7 +325,9 @@ 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-player%{?_isa} = %{version}-%{release} Requires: %{name}-vecops%{?_isa} = %{version}-%{release} # To resolve dependency in installed ROOTConfig.cmake @@ -431,17 +356,6 @@ Obsoletes: %{name}-net-globus < 6.18.00 Obsoletes: %{name}-net-ldap < 6.18.00 Obsoletes: %{name}-net-krb5 < 6.18.00 Obsoletes: %{name}-table < 6.18.00 -%if ! %{buildpy2} -Obsoletes: python2-%{name} < %{version}-%{release} -Obsoletes: python2-jupyroot < %{version}-%{release} -Obsoletes: python2-jsmva < %{version}-%{release} -Obsoletes: %{name}-rootaas < 6.08.00 -%endif -%if %{?rhel}%{!?rhel:0} == 7 -Obsoletes: python%{?python3_other_pkgversion}-%{name} < 6.22.00 -Obsoletes: python%{?python3_other_pkgversion}-jupyroot < 6.22.00 -Obsoletes: python%{?python3_other_pkgversion}-jsmva < 6.22.00 -%endif Obsoletes: %{name}-memstat < 6.26.00 Obsoletes: %{name}-montecarlo-vmc < 6.26.00 Obsoletes: %{name}-doc < 6.26.00 @@ -458,12 +372,24 @@ Obsoletes: %{name}-gui-fitpanelv7 < 6.26.00 Obsoletes: %{name}-histv7 < 6.26.00 Obsoletes: %{name}-hist-draw < 6.26.00 Obsoletes: %{name}-tree-ntuple < 6.26.00 -%endif -%if %{buildpy2} -Obsoletes: python2-distrdf < 6.26.00 -%endif -%if ! %{distrdf} +# Obsolete the DistRDF package in EPEL 8 +# Minimum Python version requirement introduced Obsoletes: python%{python3_pkgversion}-distrdf < 6.26.00 +%ifarch %{power64} +# Obsolete for ppc64le in EPEL 8 +# These modules cause "pure virtual method called" errors +Obsoletes: %{name}-tree-dataframe < 6.28.00 +Obsoletes: %{name}-roofit < 6.28.00 +Obsoletes: %{name}-roofit-common < 6.28.00 +Obsoletes: %{name}-roofit-core < 6.28.00 +Obsoletes: %{name}-roofit-more < 6.28.00 +Obsoletes: %{name}-roofit-batchcompute < 6.28.00 +Obsoletes: %{name}-roofit-dataframe-helpers < 6.28.00 +Obsoletes: %{name}-roofit-hs3 < 6.28.00 +Obsoletes: %{name}-roostats < 6.28.00 +Obsoletes: %{name}-hist-factory < 6.28.00 +Obsoletes: %{name}-tmva-sofie-parser < 6.28.00 +%endif %endif %description core @@ -481,7 +407,7 @@ This package provides ROOT's multi-processor support library: libMultiProc. %package cling Summary: Cling C++ interpreter -License: NCSA and (NCSA or LGPLv2+) +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 @@ -491,11 +417,7 @@ Requires: %{name}-io%{?_isa} = %{version}-%{release} # visible outside of the libCling module. Provides: bundled(clang-libs) Provides: bundled(llvm-libs) -%if %{?rhel}%{!?rhel:0} == 7 -Requires: devtoolset-8-toolchain -%else Requires: gcc-c++ -%endif Requires: redhat-rpm-config Obsoletes: %{name}-cint7 < 5.26.00c Obsoletes: %{name}-cint < 6.00.00 @@ -506,6 +428,13 @@ Obsoletes: %{name}-reflex < 6.00.00 Cling is an interactive C++ interpreter, built on top of Clang and LLVM compiler infrastructure. +%package testsupport +Summary: Unit test support library for ROOT +Requires: %{name}-core%{?_isa} = %{version}-%{release} + +%description testsupport +This package contains the unit test support library for ROOT. + %package tpython Summary: ROOT's TPython interface Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -517,51 +446,6 @@ Obsoletes: python%{python3_pkgversion}-%{name} < 6.22.00 This package contains ROOT's TPython interface. It makes it possible to call Python from ROOT. -%if %{buildpy2} -%package -n python2-%{name} -Summary: Python extension for ROOT -%py_provides python2-%{name} -Provides: %{name}-python = %{version}-%{release} -Obsoletes: %{name}-python < 6.08.00 -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} - -%description -n python2-%{name} -This package contains the Python extension for ROOT. It makes it -possible to use ROOT classes in Python. - -%package -n python2-jupyroot -Summary: ROOT Jupyter kernel -%py_provides python2-jupyroot -Requires: python2-%{name}%{?_isa} = %{version}-%{release} -Requires: python2-jsmva = %{version}-%{release} -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-notebook = %{version}-%{release} -%if %{?fedora}%{!?fedora:0} >= 26 -# python-metakernel for python2 not available in -# Fedora <= 25 or RHEL/EPEL - some functionality missing -Requires: python2-ipython -Requires: python2-metakernel -%endif -%if %{?fedora}%{!?fedora:0} >= 28 -Requires: python-jupyter-filesystem -%endif -Obsoletes: %{name}-rootaas < 6.08.00 - -%description -n python2-jupyroot -The Jupyter kernel for the ROOT notebook. - -%package -n python2-jsmva -Summary: TMVA interface used by JupyROOT -BuildArch: noarch -%py_provides python2-jsmva -Requires: %{name}-tmva = %{version}-%{release} - -%description -n python2-jsmva -TMVA interface used by JupyROOT. -%endif - %package -n python%{python3_pkgversion}-%{name} Summary: Python extension for ROOT %py_provides python%{python3_pkgversion}-%{name} @@ -584,13 +468,11 @@ Requires: python%{python3_pkgversion}-%{name}%{?_isa} = %{version}-%{release} Requires: python%{python3_pkgversion}-jsmva = %{version}-%{release} Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-notebook = %{version}-%{release} -%if %{?fedora}%{!?fedora:0} >= 26 -# python-metakernel for python3 not available in -# Fedora <= 25 or RHEL/EPEL - some functionality missing +%if %{?fedora}%{!?fedora:0} +# python-metakernel not available in RHEL/EPEL +# some functionality missing Requires: python%{python3_pkgversion}-ipython Requires: python%{python3_pkgversion}-metakernel -%endif -%if %{?fedora}%{!?fedora:0} >= 28 Requires: python-jupyter-filesystem %endif @@ -658,17 +540,41 @@ This package contains a genetic minimizer module for ROOT. %package geom Summary: Geometry library for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-graf3d%{?_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 + +%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}-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-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} Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} +# Package split (geom-builder and geom-painter from geom) +Obsoletes: %{name}-geom < 6.28.00 -%description geom -This package contains a library for defining geometries in ROOT. +%description geom-painter +This package contains a library for drawing geometries in ROOT. %package gdml Summary: GDML import/export for ROOT geometries @@ -724,6 +630,7 @@ 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} @@ -981,24 +888,6 @@ Requires: %{name}-hist%{?_isa} = %{version}-%{release} %description spectrum-painter This package contains a painter of spectra for ROOT. -%package hist-factory -Summary: RooFit PDFs from ROOT histograms -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-xmlparser%{?_isa} = %{version}-%{release} -Requires: %{name}-matrix%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit-batchcompute%{?_isa} = %{version}-%{release} -Requires: %{name}-roofit-core%{?_isa} = %{version}-%{release} -Requires: %{name}-roostats%{?_isa} = %{version}-%{release} -Requires: %{name}-tree%{?_isa} = %{version}-%{release} - -%description hist-factory -Create RooFit probability density functions from ROOT histograms. - %package html Summary: HTML documentation generator for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1024,7 +913,6 @@ Requires: %{name}-io%{?_isa} = %{version}-%{release} %description io-dcache This package contains the dCache extension for ROOT. -%if %{gfal2} %package io-gfal Summary: Grid File Access Library input/output library for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1032,7 +920,6 @@ Requires: %{name}-io%{?_isa} = %{version}-%{release} %description io-gfal This package contains the Grid File Access Library extension for ROOT. -%endif %package io-sql Summary: SQL input/output library for ROOT @@ -1079,7 +966,7 @@ easier to use for the average user. %package fftw Summary: FFTW library for ROOT -License: GPLv2+ +License: GPL-2.0-or-later Requires: %{name}-core%{?_isa} = %{version}-%{release} %description fftw @@ -1116,7 +1003,7 @@ This package contains the MathCore library for ROOT. %package mathmore Summary: GSL interface library for ROOT -License: GPLv2+ +License: GPL-2.0-or-later Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} @@ -1235,7 +1122,7 @@ discriminating variables. %package unuran Summary: Random number generator library -License: GPLv2+ +License: GPL-2.0-or-later Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} @@ -1324,7 +1211,7 @@ access to http based storage such as webdav and S3. Summary: HTTP server extension for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: js-jsroot >= 6 +Requires: js-jsroot >= 7 # Library split (net-httpsniff from net-http) Obsoletes: %{name}-net-http < 6.14.00 @@ -1356,8 +1243,7 @@ Requires: %{name}-net%{?_isa} = %{version}-%{release} %description netx This package contains the NetX extension for ROOT, i.e. a client for -the xrootd server. Both the old (NetX) and the new (NetXNG) version are -provided. +the xrootd server. Only the new (NetXNG) version is provided. %package proof Summary: PROOF extension for ROOT @@ -1371,9 +1257,7 @@ Obsoletes: %{name}-peac < 5.34.01 # Package split (proof-player from proof) Obsoletes: %{name}-proof < 6.14.00 Obsoletes: %{name}-proofd < 6.16.00 -%if %{xrootd5} -Obsoletes: %{name}-xproof < %{version}-%{release} -%endif +Obsoletes: %{name}-xproof < 6.22.08-2 %description proof This package contains the proof extension for ROOT. This provides a @@ -1425,25 +1309,10 @@ Requires: %{name}-tree%{?_isa} = %{version}-%{release} This package contains a library for browsing an interactive PROOF session in ROOT. -%if ! %{xrootd5} -%package xproof -Summary: XPROOF extension for ROOT -Requires: %{name}-core%{?_isa} = %{version}-%{release} -Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-net%{?_isa} = %{version}-%{release} -Requires: %{name}-proof%{?_isa} = %{version}-%{release} -# Dynamic dependency -Requires: %{name}-net-rpdutils%{?_isa} = %{version}-%{release} -Requires: xrootd-server%{?_isa} - -%description xproof -This package contains the xproof extension for ROOT. This provides a -client to be used in a PROOF environment. -%endif - +%if %{roofit} %package roofit Summary: ROOT extension for modeling expected distributions - toolkit -License: BSD +License: BSD-2-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} @@ -1472,7 +1341,7 @@ This package contains the RooFit toolkit classes. %package roofit-common Summary: ROOT extension for modeling expected distributions - common -License: BSD +License: BSD-2-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} %description roofit-common @@ -1492,7 +1361,7 @@ This package contains the RooFit common classes. %package roofit-core Summary: ROOT extension for modeling expected distributions - core -License: BSD +License: BSD-2-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-foam%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} @@ -1501,7 +1370,6 @@ 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}-minuit2%{?_isa} = %{version}-%{release} Requires: %{name}-roofit-batchcompute%{?_isa} = %{version}-%{release} Requires: %{name}-roofit-common%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} @@ -1525,11 +1393,10 @@ This package contains the core RooFit classes. %package roofit-more Summary: ROOT extension for modeling expected distributions - more -License: BSD +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-batchcompute%{?_isa} = %{version}-%{release} Requires: %{name}-roofit-core%{?_isa} = %{version}-%{release} # Package split / Library split (from roofit) Obsoletes: %{name}-roofit < 6.20.00 @@ -1551,6 +1418,7 @@ 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} Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-multiproc%{?_isa} = %{version}-%{release} @@ -1569,9 +1437,10 @@ multiple times for different vector instuction set architectures and the optimal code is executed during runtime, as a result of an automatic hardware detection mechanism that this library contains. +%if %{dataframe} %package roofit-dataframe-helpers Summary: RooFit DaraFrame helpers -License: BSD +License: BSD-2-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} %description roofit-dataframe-helpers @@ -1588,14 +1457,16 @@ analysis environment, but the general nature of the package make it suitable for adoption in different disciplines as well. This package contains DaraFrame helper classes for RooFit +%endif %package roofit-hs3 Summary: RooFit HS3 -License: BSD +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} +Requires: %{name}-roofit-jsoninterface%{?_isa} = %{version}-%{release} Requires: %{name}-roostats%{?_isa} = %{version}-%{release} %description roofit-hs3 @@ -1606,9 +1477,28 @@ may be useful to store statistical models in text form. This library sets out to achieve exactly that, exporting to and importing from JSON and YML. +%package roofit-jsoninterface +Summary: JSON interface to RooFit +License: BSD-2-Clause +Requires: %{name}-core%{?_isa} = %{version}-%{release} + +%description roofit-jsoninterface +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 the JSON interface to RooFit. + %package roostats Summary: Statistical tools built on top of RooFit -License: BSD Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} @@ -1627,6 +1517,22 @@ Obsoletes: %{name}-roofit < 6.20.00 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}-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-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. +%endif + %package sql-mysql Summary: MySQL client plugin for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1672,7 +1578,7 @@ ROOT environment. %package tmva Summary: Toolkit for multivariate data analysis -License: BSD +License: BSD-3-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} @@ -1710,7 +1616,7 @@ compared. %package tmva-python Summary: Toolkit for multivariate data analysis (Python) -License: BSD +License: BSD-3-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-tmva%{?_isa} = %{version}-%{release} Requires: %{name}-tmva-sofie%{?_isa} = %{version}-%{release} @@ -1721,7 +1627,7 @@ Python integration with TMVA. %package tmva-r Summary: Toolkit for multivariate data analysis (R) -License: BSD +License: BSD-3-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-matrix%{?_isa} = %{version}-%{release} Requires: %{name}-r%{?_isa} = %{version}-%{release} @@ -1732,6 +1638,7 @@ R integration with TMVA. %package tmva-sofie Summary: ROOT/TMVA SOFIE (System for Optimized Fast Inference code Emit) +License: BSD-3-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} %description tmva-sofie @@ -1744,6 +1651,7 @@ produces C++ header files that can be included and utilized in a %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} @@ -1753,7 +1661,7 @@ Parsers for ROOT/TMVA SOFIE %package tmva-gui Summary: Toolkit for multivariate data analysis GUI -License: BSD +License: BSD-3-Clause Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} @@ -1777,6 +1685,7 @@ Requires: %{name}-net%{?_isa} = %{version}-%{release} %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} @@ -1794,6 +1703,7 @@ Obsoletes: %{name}-tree-player < 6.14.00 %description tree-dataframe This package contains a high level interface to ROOT trees. +%endif %package tree-player Summary: Library to loop over a ROOT tree @@ -1829,6 +1739,17 @@ Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} %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} @@ -1853,34 +1774,34 @@ Summary: Static files for the Jupyter ROOT Notebook BuildArch: noarch Requires: %{name}-core = %{version}-%{release} Requires: js-jsroot >= 6 -%if %{?fedora}%{!?fedora:0} >= 26 -# jupyter-notebook not available in -# Fedora <= 25 or RHEL/EPEL - some functionality missing +%if %{?fedora}%{!?fedora:0} +# jupyter-notebook not available in RHEL/EPEL +# some functionality missing Requires: jupyter-notebook %endif %description notebook Javascript and style files for the Jupyter ROOT Notebook. -%if %{webgui} %package gui-webdisplay -Summary: Web display (ROOT 7) +Summary: Web display for ROOT Requires: %{name}-core%{?_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 7. +This package contains a web display extension for ROOT. %ifarch %{qt5_qtwebengine_arches} %package gui-qt5webdisplay -Summary: Qt5 Web display (ROOT 7) +Summary: Qt5 Web display Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} Requires: %{name}-net-http%{?_isa} = %{version}-%{release} %description gui-qt5webdisplay -This package contains a Qt5 web display extension for ROOT 7. +This package contains a Qt5 web display extension for ROOT. %endif %package gui-webgui6 @@ -1888,16 +1809,25 @@ Summary: Web based GUI for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} -Requires: %{name}-gui%{?_isa} = %{version}-%{release} Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} %description gui-webgui6 This package provides a Web based GUI for ROOT. -%endif %if %{root7} +%package geom-webviewer +Summary: Geometry web viewer library for ROOT +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-geom%{?_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 graf-gpadv7 Summary: Canvas and pad library for ROOT (ROOT 7) Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -1950,13 +1880,15 @@ This package contains GUI browsable components for ROOT 7. Summary: Browser (ROOT 7) 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}-graf-gpadv7%{?_isa} = %{version}-%{release} -Requires: %{name}-graf3d-eve7%{?_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} %description gui-browserv7 This package contains a file browser for ROOT 7. @@ -2003,10 +1935,52 @@ This package contains an histogram drawing extension for ROOT 7. Summary: Ntuple (ROOT 7) Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} -Requires: %{name}-vecops%{?_isa} = %{version}-%{release} %description tree-ntuple This package contains an ntuple extension for ROOT 7. + +%package tree-ntuple-utils +Summary: Ntuple utility library (ROOT 7) +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-tree-ntuple%{?_isa} = %{version}-%{release} + +%description tree-ntuple-utils +This package contains utility functions for ntuples. + +%if %{roofit} +%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-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} + +%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 %endif %prep @@ -2039,20 +2013,6 @@ This package contains an ntuple extension for ROOT 7. %patch24 -p1 %patch25 -p1 %patch26 -p1 -%patch27 -p1 -%patch28 -p1 -%patch29 -p1 -%patch30 -p1 -%patch31 -p1 -%patch32 -p1 -%patch33 -p1 -%patch34 -p1 -%patch35 -p1 -%patch36 -p1 -%patch37 -p1 -%patch38 -p1 -%patch39 -p1 -%patch40 -p1 # Remove bundled sources in order to be sure they are not used # * afterimage @@ -2089,30 +2049,17 @@ rm -rf documentation/doxygen/mathjax.tar.gz # * jsroot rm -rf js/[^f]* js/files/draw.htm js/files/online.htm -# Remove unsupported man page macros -sed -e '/^\.UR/d' -e '/^\.UE/d' -i man/man1/* - # Remove pre-minified script and style files 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 +%if %{?rhel}%{!?rhel:0} == 8 +# Allow older json on EPEL 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 -# Brace initialization list is ambiguous with old compiler -sed 's!.*dataframe_datasetspec!### &!' -i tree/dataframe/test/CMakeLists.txt -%endif - %build -%if %{?rhel}%{!?rhel:0} == 7 -. /opt/rh/devtoolset-8/enable -%endif - # This package triggers a fault in LLVM when LTO is enabled. Until LLVM # is analyzed and fixed, disable LTO %define _lto_cflags %{nil} @@ -2129,12 +2076,15 @@ for s in etc/notebook/JsMVA/css/*.css ; do python3 -m rcssmin < ${s} > ${s%.css}.min.css done -# Avoid overlinking (this used to be the default with the old configure script) +# Avoid overlinking (this is the default on Fedora and EPEL 9) +%if %{?rhel}%{!?rhel:0} == 8 LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" +%endif -%cmake3 \ +%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_INSTALL_ELISPDIR:PATH=%{_emacs_sitelispdir}/%{name} \ @@ -2180,7 +2130,11 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dcuda:BOOL=OFF \ -Dcxxmodules:BOOL=OFF \ -Ddaos:BOOL=OFF \ +%if %{dataframe} -Ddataframe:BOOL=ON \ +%else + -Ddataframe:BOOL=OFF \ +%endif -Ddavix:BOOL=ON \ -Ddcache:BOOL=ON \ -Ddev:BOOL=OFF \ @@ -2191,24 +2145,18 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dfitsio:BOOL=ON \ -Dfortran:BOOL=ON \ -Dgdml:BOOL=ON \ -%if %{gfal2} -Dgfal:BOOL=ON \ -%else - -Dgfal:BOOL=OFF \ -%endif -Dgsl_shared:BOOL=ON \ -Dgviz:BOOL=ON \ -Dhttp:BOOL=ON \ -%if %{tbb} -Dimt:BOOL=ON \ -%else - -Dimt:BOOL=OFF \ -%endif -Djemalloc:BOOL=OFF \ -Dlibcxx:BOOL=OFF \ -Dmathmore:BOOL=ON \ -Dmemory_termination:BOOL=OFF \ -Dminuit2:BOOL=ON \ + -Dminuit2_mpi:BOOL=OFF \ + -Dminuit2_omp:BOOL=OFF \ -Dmlp:BOOL=ON \ -Dmonalisa:BOOL=OFF \ -Dmpi:BOOL=OFF \ @@ -2228,7 +2176,11 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" %endif -Dqt6web:BOOL=OFF \ -Dr:BOOL=ON \ +%if %{roofit} -Droofit:BOOL=ON \ +%else + -Droofit:BOOL=OFF \ +%endif -Droofit_multiprocess:BOOL=OFF \ -Droofit_hs3_ryml:BOOL=OFF \ %if %{root7} @@ -2247,11 +2199,7 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dssl:BOOL=ON \ -Dtcmalloc:BOOL=OFF \ -Dtmva:BOOL=ON \ -%if %{tbb} -Dtmva-cpu:BOOL=ON \ -%else - -Dtmva-cpu:BOOL=OFF \ -%endif -Dtmva-gpu:BOOL=OFF \ -Dtmva-pymva:BOOL=ON \ -Dtmva-rmva:BOOL=ON \ @@ -2261,7 +2209,7 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dtmva-sofie:BOOL=OFF \ %endif -Dunuran:BOOL=ON \ -%if %{?fedora}%{!?fedora:0} +%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 9 -During:BOOL=ON \ %else -During:BOOL=OFF \ @@ -2270,19 +2218,11 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dvdt:BOOL=OFF \ -Dveccore:BOOL=OFF \ -Dvecgeom:BOOL=OFF \ -%if %{webgui} -Dwebgui:BOOL=ON \ -%else - -Dwebgui:BOOL=OFF \ -%endif -Dx11:BOOL=ON \ -Dxml:BOOL=ON \ -Dxrootd:BOOL=ON \ -%if %{xrootd5} -Dxproofd:BOOL=OFF \ -%else - -Dxproofd:BOOL=ON \ -%endif -Dfail-on-missing:BOOL=ON \ -Dtesting:BOOL=ON \ -Dtest_distrdf_pyspark:BOOL=OFF \ @@ -2292,10 +2232,10 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Droottest:BOOL=OFF \ -Drootbench:BOOL=OFF \ -Dasan:BOOL=OFF -%cmake3_build +%cmake_build %install -%cmake3_install +%cmake_install # Do emacs byte compilation emacs -batch -no-site-file -f batch-byte-compile \ @@ -2319,100 +2259,41 @@ install -p -m 644 %{SOURCE7} %{buildroot}%{_pkgdocdir} # Move python cli helper to its own directory mkdir -p %{buildroot}%{_datadir}/%{name}/cli -mv %{buildroot}%{_libdir}/%{name}/cmdLineUtils.py* \ +mv %{buildroot}%{python3_sitearch}/cmdLineUtils.py \ %{buildroot}%{_datadir}/%{name}/cli -rm %{buildroot}%{_libdir}/%{name}/__pycache__/cmdLineUtils.* sed -e '/^\#!/d' -i %{buildroot}%{_datadir}/%{name}/cli/cmdLineUtils.py # Install GDB pretty printers to auto load safe path -# These are installed (in libdir) by "make install" if CMAKE_BUILD_TYPE -# matches Debug or RelWithDebInfo mkdir -p %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name} -install -p -m 644 build/gdbPrinters/libCore.so-gdb.py \ - %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name}/libCore.so.%{version}-gdb.py -install -p -m 644 build/gdbPrinters/libRooFitCore.so-gdb.py \ - %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name}/libRooFitCore.so.%{version}-gdb.py +mv %{buildroot}%{_libdir}/%{name}/*-gdb.py \ + %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name} + +# Let rpm redo the python byte compilation +find %{buildroot}%{python3_sitearch} -depth -type d -name __pycache__ -exec rm -r {} ';' # Do python byte compilation (for non-standard paths) -%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8 -# This is the default for Fedora 30+, set it for Fedora 28-29 -%global _python_bytecompile_extra 0 %py_byte_compile %{__python3} %{buildroot}%{_datadir}/%{name}/cli %py_byte_compile %{__python3} %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name} -%endif - -%if %{buildpy2} - -# Move the python modules to sitearch/sitelib -mkdir -p %{buildroot}%{python2_sitearch} - -cp -pr %{buildroot}%{_libdir}/%{name}/cppyy %{buildroot}%{python2_sitearch} -ln -s ../../root/libcppyy%{python2_version_uscore}.so.%{version} \ - %{buildroot}%{python2_sitearch}/libcppyy%{python2_version_uscore}.so - -cp -pr %{buildroot}%{_libdir}/%{name}/cppyy_backend %{buildroot}%{python2_sitearch} -ln -s ../../root/libcppyy_backend%{python2_version_uscore}.so.%{version} \ - %{buildroot}%{python2_sitearch}/libcppyy_backend%{python2_version_uscore}.so - -cp -pr %{buildroot}%{_libdir}/%{name}/ROOT %{buildroot}%{python2_sitearch} -mv %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python2_version_uscore}.so.%{version} \ - %{buildroot}%{python2_sitearch}/libROOTPythonizations%{python2_version_uscore}.so -rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python2_version_uscore}.so.%{libversion} -rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python2_version_uscore}.so - -cp -pr %{buildroot}%{_libdir}/%{name}/JupyROOT %{buildroot}%{python2_sitearch} -mv %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python2_version_uscore}.so.%{version} \ - %{buildroot}%{python2_sitearch}/libJupyROOT%{python2_version_uscore}.so -rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python2_version_uscore}.so.%{libversion} -rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python2_version_uscore}.so - -mkdir -p %{buildroot}%{python2_sitelib} -cp -pr %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python2_sitelib} - -# Create .egg-info files so that rpm auto-generates provides -echo 'Name: ROOT' > \ - %{buildroot}%{python2_sitearch}/ROOT-%{version}.egg-info -echo 'Version: %{version}' >> \ - %{buildroot}%{python2_sitearch}/ROOT-%{version}.egg-info -echo 'Name: JupyROOT' > \ - %{buildroot}%{python2_sitearch}/JupyROOT-%{version}.egg-info -echo 'Version: %{version}' >> \ - %{buildroot}%{python2_sitearch}/JupyROOT-%{version}.egg-info -echo 'Name: JsMVA' > \ - %{buildroot}%{python2_sitelib}/JsMVA-%{version}.egg-info -echo 'Version: %{version}' >> \ - %{buildroot}%{python2_sitelib}/JsMVA-%{version}.egg-info - -%endif -# Move the python modules to sitearch/sitelib -mkdir -p %{buildroot}%{python3_sitearch} - -mv %{buildroot}%{_libdir}/%{name}/cppyy %{buildroot}%{python3_sitearch} -ln -s ../../root/libcppyy%{python3_version_uscore}.so.%{version} \ - %{buildroot}%{python3_sitearch}/libcppyy%{python3_version_uscore}%{python3_ext_suffix} - -mv %{buildroot}%{_libdir}/%{name}/cppyy_backend %{buildroot}%{python3_sitearch} -ln -s ../../root/libcppyy_backend%{python3_version_uscore}.so.%{version} \ - %{buildroot}%{python3_sitearch}/libcppyy_backend%{python3_version_uscore}.so - -mv %{buildroot}%{_libdir}/%{name}/ROOT %{buildroot}%{python3_sitearch} -mv %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python3_version_uscore}.so.%{version} \ +# Fix python extension suffix +mv %{buildroot}%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}.so.%{version} \ %{buildroot}%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}%{python3_ext_suffix} -rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python3_version_uscore}.so.%{libversion} -rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python3_version_uscore}.so +rm %{buildroot}%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}.so.%{libversion} +rm %{buildroot}%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}.so -mv %{buildroot}%{_libdir}/%{name}/JupyROOT %{buildroot}%{python3_sitearch} -mv %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so.%{version} \ +mv %{buildroot}%{python3_sitearch}/libJupyROOT%{python3_version_uscore}.so.%{version} \ %{buildroot}%{python3_sitearch}/libJupyROOT%{python3_version_uscore}%{python3_ext_suffix} -rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so.%{libversion} -rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so +rm %{buildroot}%{python3_sitearch}/libJupyROOT%{python3_version_uscore}.so.%{libversion} +rm %{buildroot}%{python3_sitearch}/libJupyROOT%{python3_version_uscore}.so +# Move noarch python modules to sitelib +if [ "%{python3_sitelib}" != "%{python3_sitearch}" ] ; then mkdir -p %{buildroot}%{python3_sitelib} -mv %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python3_sitelib} +mv %{buildroot}%{python3_sitearch}/JsMVA %{buildroot}%{python3_sitelib} %if %{distrdf} -mv %{buildroot}%{_libdir}/%{name}/DistRDF %{buildroot}%{python3_sitelib} +mv %{buildroot}%{python3_sitearch}/DistRDF %{buildroot}%{python3_sitelib} %endif +fi # Create .egg-info files so that rpm auto-generates provides echo 'Name: ROOT' > \ @@ -2437,16 +2318,6 @@ echo 'Version: %{version}' >> \ # Put jupyter stuff in the right places mkdir -p %{buildroot}%{_datadir}/jupyter/kernels -%if %{buildpy2} -cp -pr %{buildroot}%{_datadir}/%{name}/notebook/kernels/root \ - %{buildroot}%{_datadir}/jupyter/kernels/python2-jupyroot -sed -e 's/ROOT C++/& (Python 2)/' \ - -e 's!python[0-9]*\.[0-9]*!%{__python2}!' \ - -i %{buildroot}%{_datadir}/jupyter/kernels/python2-jupyroot/kernel.json -sed -e '/^\#!/d' \ - -i %{buildroot}%{python2_sitearch}/JupyROOT/kernel/rootkernel.py -%endif - cp -pr %{buildroot}%{_datadir}/%{name}/notebook/kernels/root \ %{buildroot}%{_datadir}/jupyter/kernels/python%{python3_pkgversion}-jupyroot sed -e 's/ROOT C++/& (Python 3)/' \ @@ -2522,43 +2393,34 @@ pushd %{buildroot}%{_datadir}/%{name}/plugins rm TBrowserImp/P030_RWebBrowserImp.C %endif rm TDataSetManager/P020_TDataSetManagerAliEn.C -%if ! %{gfal2} -rm TFile/P050_TGFALFile.C -%endif rm TFile/P070_TAlienFile.C rm TGLManager/P020_TGWin32GLManager.C rm TGLManager/P030_TGOSXGLManager.C rm TGrid/P010_TAlien.C -%if ! %{webgui} -rm TGuiFactory/P030_TWebGuiFactory.C -%endif -%if %{xrootd5} rm TProofMgr/P010_TXProofMgr.C rm TProofServ/P010_TXProofServ.C rm TSlave/P010_TXSlave.C -%endif rm TSQLServer/P040_TOracleServer.C rm TSystem/P030_TAlienSystem.C rm TVirtualGeoConverter/P010_TGeoVGConverter.C %if ! %{root7} -rm TVirtualGeoPainter/P020_REveGeoPainter.C +rm TVirtualGeoPainter/P020_RGeoPainter.C %endif rm TVirtualGLImp/P020_TGWin32GL.C rm TVirtualMonitoringWriter/P010_TMonaLisaWriter.C rm TVirtualX/P030_TGWin32.C rm TVirtualX/P050_TGQuartz.C rmdir TGrid -%if %{xrootd5} rmdir TProofMgr rmdir TProofServ rmdir TSlave -%endif rmdir TVirtualGeoConverter popd # Replace bundled jsroot with symlinks to system version -for x in img libs scripts style files/draw.htm files/online.htm ; do - ln -s /usr/share/javascript/jsroot/$x %{buildroot}%{_datadir}/%{name}/js/$x +for x in build img modules scripts files/draw.htm files/online.htm ; do + ln -nrs %{buildroot}%{_jsdir}/jsroot/$x \ + %{buildroot}%{_datadir}/%{name}/js/$x done # Create ldconfig configuration @@ -2568,17 +2430,13 @@ echo %{_libdir}/%{name} > \ # Make ROOTConfig-targets.cmake not error on missing files to work better with # subpackages -%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8 -%global pkgmgr dnf -%else -%global pkgmgr yum -%endif -sed -e '/FATAL.*import/i\ message(WARNING "The imported target \\"\${target}\\" references the file\ - \\"\${file}\\"\ -but this file does not exist. If this target is used you need to install the package that provides this file\ - %{pkgmgr} install \${file}\ +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.")' \ - -e '/FATAL.*import/,/)/d' \ + -e '/Possible reasons include/,/)/d' \ -i %{buildroot}%{_datadir}/%{name}/cmake/ROOTConfig-targets.cmake # Rename to avoid name clashes @@ -2591,30 +2449,17 @@ for f in `find %{_vpath_builddir} -name cmake_install.cmake -a '!' -path '*/llvm l=`sed 's!%{_vpath_builddir}/\(.*\)/cmake_install.cmake!includelist-\1!' <<< $f` l=`tr / - <<< $l` tmpdir=`mktemp -d` -%if %{?rhel}%{!?rhel:0} == 7 - DESTDIR=$tmpdir cmake3 -DCMAKE_INSTALL_COMPONENT=headers -P $f > /dev/null -%else DESTDIR=$tmpdir cmake -DCMAKE_INSTALL_COMPONENT=headers -P $f > /dev/null -%endif ( cd $tmpdir ; find . -type f) | sort | sed 's!^\.!!' > $l rm -rf $tmpdir done # ... and merge some of them cat includelist-core-{[^mw],m[^au]}* > includelist-core -cat includelist-geom-geom* > includelist-geom cat includelist-graf2d-x11ttf >> includelist-graf2d-x11 cat includelist-graf3d-rglew >> includelist-graf3d-gl -cat includelist-net-netxng > includelist-netx -%if ! %{xrootd5} -cat includelist-net-netx >> includelist-netx -%endif %check -%if %{?rhel}%{!?rhel:0} == 7 -. /opt/rh/devtoolset-8/enable -%endif - pushd %{_vpath_builddir} pushd test ln -s ../../files files @@ -2704,8 +2549,6 @@ popd # reads input data over network #
http://root.cern/files/tmva101.root
# -# - pyunittests-pyroot-dependency-versions -# - pyunittests-pyroot-numbadeclare # - test-import-numba # - tutorial-pyroot-pyroot004_NumbaDeclare-py # these tests require the numba python module which is not available @@ -2742,8 +2585,6 @@ gtest-tmva-tmva-test-rstandardscaler|\ tutorial-tmva-tmva003_RReader|\ tutorial-tmva-tmva004_RStandardScaler|\ tutorial-tmva-tmva103_Application|\ -pyunittests-pyroot-dependency-versions|\ -pyunittests-pyroot-numbadeclare|\ test-import-numba|\ tutorial-pyroot-pyroot004_NumbaDeclare-py|\ test-webgui-ping" @@ -2752,29 +2593,25 @@ test-webgui-ping" # - test-import-pandas # - tutorial-dataframe-df026_AsNumpyArrays-py # - tutorial-roofit-rf409_NumPyPandasToRooFit-py -# requires the pandas python module which is not available in EPEL 7 -# or EPEL 9 +# Requires the pandas python module not (yet) available in RHEL/EPEL 9 excluded="${excluded}|\ test-import-pandas|\ tutorial-dataframe-df026_AsNumpyArrays-py|\ tutorial-roofit-rf409_NumPyPandasToRooFit-py" %endif -%if %{?rhel}%{!?rhel:0} == 7 -# - pyunittests-pyroot-roofit-roodataset-numpy -# AttributeError: module 'numpy' has no attribute 'isin' -excluded="${excluded}|\ -pyunittests-pyroot-roofit-roodataset-numpy" -%endif - %if %{?fedora}%{!?fedora:0} >= 38 -# Failures with Fedora 38 (GCC 13 related?) +# - pyunittests-dataframe-histograms +# - tutorial-legacy-rootenv +# Failures with Fedora 38 (GCC 13 related?) excluded="${excluded}|\ pyunittests-dataframe-histograms|\ tutorial-legacy-rootenv" %ifarch %{ix86} -# Failures with Fedora 38 i686 (after numpy 1.24 update) +# - pyunittests-pyroot-roofit-roodataset-numpy +# Failures with Fedora 38 i686 (after numpy 1.24 update) +#
https://github.com/root-project/root/issues/12162
excluded="${excluded}|\ pyunittests-pyroot-roofit-roodataset-numpy" %endif @@ -2782,7 +2619,6 @@ pyunittests-pyroot-roofit-roodataset-numpy" %ifarch %{arm} # 32 bit arm specific failures -# # - gtest-tree-tree-test-testBulkApi # - gtest-tree-tree-test-testBulkApiSillyStruct # - gtest-tree-dataframe-test-dataframe-snapshot @@ -2799,76 +2635,34 @@ pyunittests-distrdf-unit-test-headnode" %endif %ifarch %{power64} aarch64 -# This test fails on ppc64le and aarch64 (but not on x86_64) -# The interpreted version works though, only compiled version fails # - test-stresshistofit -excluded="${excluded}|test-stresshistofit\$\$" +# - test-stressroofit +# - test-stressroofit-batchmode-cpu +# - test-stressroofit-interpreted +excluded="${excluded}|\ +test-stresshistofit\$\$|\ +test-stressroofit\$\$|\ +test-stressroofit-batchmode-cpu|\ +test-stressroofit-interpreted" %endif %ifarch %{power64} # PPC64LE specific failures -# # - test-stresshistofit-interpreted # - test-stresshistogram-interpreted # - test-stressmathcore-interpreted # - test-stressroostats-interpreted # # Always timeout (hang?) -# - pyunittests-pyroot-pyz-rdataframe-makenumpy -# - tutorial-dataframe-df032_MakeNumpyDataFrame-py +# - test-stressinterpreter +# - tutorial-unuran-unuranFoamTest excluded="${excluded}|\ test-stresshistofit-interpreted|\ test-stresshistogram-interpreted|\ test-stressmathcore-interpreted|\ test-stressroostats-interpreted|\ -pyunittests-pyroot-pyz-rdataframe-makenumpy|\ -tutorial-dataframe-df032_MakeNumpyDataFrame-py" - -%if %{?rhel}%{!?rhel:0} == 9 -# tmva/tmva/test/branchlessForest.cxx:215: Failure -# Expected equality of these values: -# predictions[1] -# Which is: -1 -# -1.0 + 2.0 -# Which is: 1 -# - gtest-tmva-tmva-test-branchlessForest -# -# Error in <TAxis::TAxis::Set>: bins must be in increasing order -# Error in <TGraphPainter::PaintGrapHist>: X must be in increasing order -# - tutorial-math-kdTreeBinning -# -# Segmentation violation - malloc(): unaligned tcache chunk detected -# - tutorial-unfold-testUnfold7c -# -# TFormula double free in Python -# - tutorial-hist-fillrandom-py -# - tutorial-pyroot-fillrandom-py -# - tutorial-pyroot-fit1-py (uses output of tutorial-pyroot-fillrandom-py) -# - tutorial-pyroot-formula1-py -excluded="${excluded}|\ -gtest-tmva-tmva-test-branchlessForest|\ -tutorial-math-kdTreeBinning|\ -tutorial-unfold-testUnfold7c|\ -tutorial-hist-fillrandom-py|\ -tutorial-pyroot-fillrandom-py|\ -tutorial-pyroot-fit1-py|\ -tutorial-pyroot-formula1-py" -%endif - -%if %{?rhel}%{!?rhel:0} == 7 || %{?rhel}%{!?rhel:0} == 8 -# crash - free(): corrupted unsorted chunks -# - gtest-roofit-RDataFrameHelpers-test-testActionHelpers -# - gtest-tmva-tmva-test-rtensor-utils -# - gtest-tree-dataframe-test-dataframe-* -# - gtest-tree-dataframe-test-datasource-* -# - tutorial-dataframe-df004_cutFlowReport -excluded="${excluded}|\ -gtest-roofit-RDataFrameHelpers-test-testActionHelpers|\ -gtest-tmva-tmva-test-rtensor-utils|\ -gtest-tree-dataframe-test-dataframe|\ -gtest-tree-dataframe-test-datasource|\ -tutorial-dataframe-df004_cutFlowReport" -%endif +test-stressinterpreter|\ +tutorial-unuran-unuranFoamTest" %if %{?rhel}%{!?rhel:0} == 8 # Fails on ppc64le since RHEL 8.5 update @@ -2879,115 +2673,121 @@ tutorial-dataframe-df004_cutFlowReport" # - librt-2.28 # - pyunittests-pyroot-import-load-libs # -# crash - double free or corruption (out) +# - tutorial-fit-combinedFit(-py) +# - tutorial-fit-exampleFit3D +# - tutorial-fit-fit2dHist +# - tutorial-fit-fitCircle +# - tutorial-fit-line3Dfit +# - tutorial-multicore-mt103_fillNtupleFromMultipleThreads # - tutorial-multicore-mt201_parallelHistoFill -# -# segmentation violation # - tutorial-multicore-mt304_fillHistos +# - tutorial-multicore-mtbb001_fillHistos +# - tutorial-multicore-mtbb101_fillNtuples +# - tutorial-multicore-mtbb201_parallelHistoFill excluded="${excluded}|\ pyunittests-pyroot-import-load-libs|\ +tutorial-fit-combinedFit|\ +tutorial-fit-exampleFit3D|\ +tutorial-fit-fit2dHist|\ +tutorial-fit-fitCircle|\ +tutorial-fit-line3Dfit|\ +tutorial-multicore-mt103_fillNtupleFromMultipleThreads|\ tutorial-multicore-mt201_parallelHistoFill|\ -tutorial-multicore-mt304_fillHistos" +tutorial-multicore-mt304_fillHistos|\ +tutorial-multicore-mtbb001_fillHistos|\ +tutorial-multicore-mtbb101_fillNtuples|\ +tutorial-multicore-mtbb201_parallelHistoFill" %endif %endif %ifarch s390x -# s390x specific failures -# # - gtest-roofit-roofitcore-test-testNaNPacker -# - gtest-roofit-roofitcore-test-testRooProdPdf -# - gtest-tree-dataframe-test-datasource-ntuple +# - tutorial-roofit-rf612_recoverFromInvalidParameters +# Uses "Packed NaN" feature, not implemented for big endian. +excluded="${excluded}|\ +gtest-roofit-roofitcore-test-testNaNPacker|\ +tutorial-roofit-rf612_recoverFromInvalidParameters" + # - gtest-tree-ntuple-v7-test-ntuple-basics +# - gtest-tree-ntuple-v7-test-ntuple-endian # - gtest-tree-ntuple-v7-test-ntuple-extended -# - gtest-tree-ntuple-v7-test-ntuple-merger # - gtest-tree-ntuple-v7-test-ntuple-minifile +# - gtest-tree-ntuple-v7-test-ntuple-rdf # - gtest-tree-ntuple-v7-test-ntuple-serialize +# - gtest-tree-ntuple-v7-test-ntuple-types +#
https://github.com/root-project/root/issues/12426
+# # - pyunittests-pyroot-pyz-rtensor # - pyunittests-pyroot-pyz-stl-vector -# - test-stresshistofit(-interpreted) -# - test-stresshistogram(-interpreted) # - tutorial-dataframe-df006_ranges-py +# - tutorial-fit-combinedFit-py # - tutorial-math-exampleFunction-py -# - tutorial-roofit-rf612_recoverFromInvalidParameters +# - tutorial-tmva-TMVA_CNN_Classification-py +# - tutorial-tmva-TMVA_Higgs_Classification-py +# - tutorial-tmva-TMVA_RNN_Classification-py +#
https://github.com/root-project/root/issues/12429
+# +# - tutorial-tree-drawsparse +#
https://github.com/root-project/root/issues/12431
+# +# - test-stresshistofit +# - test-stresshistofit-interpreted +# - test-stresshistogram +# - test-stresshistogram-interpreted +# - test-stressroofit +# - test-stressroofit-batchmode-cpu +# - test-stressroofit-interpreted excluded="${excluded}|\ -gtest-roofit-roofitcore-test-testNaNPacker|\ -gtest-roofit-roofitcore-test-testRooProdPdf|\ -gtest-tree-dataframe-test-datasource-ntuple|\ gtest-tree-ntuple-v7-test-ntuple-basics|\ +gtest-tree-ntuple-v7-test-ntuple-endian|\ gtest-tree-ntuple-v7-test-ntuple-extended|\ -gtest-tree-ntuple-v7-test-ntuple-merger|\ gtest-tree-ntuple-v7-test-ntuple-minifile|\ +gtest-tree-ntuple-v7-test-ntuple-rdf|\ gtest-tree-ntuple-v7-test-ntuple-serialize|\ +gtest-tree-ntuple-v7-test-ntuple-types|\ pyunittests-pyroot-pyz-rtensor|\ pyunittests-pyroot-pyz-stl-vector|\ -test-stresshistofit|\ -test-stresshistogram|\ tutorial-dataframe-df006_ranges-py|\ +tutorial-fit-combinedFit-py|\ tutorial-math-exampleFunction-py|\ -tutorial-roofit-rf612_recoverFromInvalidParameters" +tutorial-tmva-TMVA_CNN_Classification-py|\ +tutorial-tmva-TMVA_Higgs_Classification-py|\ +tutorial-tmva-TMVA_RNN_Classification-py|\ +tutorial-tree-drawsparse|\ +test-stresshistofit\$\$|\ +test-stresshistofit-interpreted|\ +test-stresshistogram\$\$|\ +test-stresshistogram-interpreted|\ +test-stressroofit\$\$|\ +test-stressroofit-batchmode-cpu|\ +test-stressroofit-interpreted" %if %{?rhel}%{!?rhel:0} == 8 # Issues with file sizes on EPEL 8 s390x +# - gtest-tree-readspeed-test-readspeed-general # - gtest-tree-tree-test-testTBranch # - test-stress # - test-stressgraphics(-interpreted) excluded="${excluded}|\ +gtest-tree-readspeed-test-readspeed-general|\ gtest-tree-tree-test-testTBranch|\ test-stress\$\$|\ test-stressgraphics" %endif - -%if %{?fedora}%{!?fedora:0} >= 38 -# Segmentation faults and invalid pointers -# Mainly related to DataFrame -excluded="${excluded}|\ -pyunittests-dataframe|\ -pyunittests-distrdf-unit-backend-test-dist|\ -pyunittests-distrdf-unit-test-headnode|\ -pyunittests-pyroot-pyz-rdataframe-asnumpy|\ -pyunittests-pyroot-pyz-rdataframe-makenumpy|\ -pyunittests-pyroot-rdfdescription|\ -gtest-roofit-RDataFrameHelpers-test-testActionHelpers|\ -gtest-tree-dataframe-test-dataframe|\ -gtest-tree-dataframe-test-datasource|\ -gtest-tree-ntuple-v7-test-ntuple-rdf|\ -tutorial-dataframe-df|\ -tutorial-graphs-timeSeriesFromCSV_TDF|\ -tutorial-multicore-mt304_fillHistos|\ -tutorial-rcanvas|\ -tutorial-roofit-rf408_RDataFrameToRooFit-py|\ -tutorial-roofit-rf508_listsetmanip-py|\ -tutorial-tmva-tmva002_RDataFrameAsTensor|\ -tutorial-v7-concurrentfill.cxx|\ -tutorial-v7-histops.cxx|\ -tutorial-v7-perf.cxx|\ -tutorial-v7-perfcomp.cxx|\ -tutorial-v7-simple.cxx" -%endif %endif # Filter out parts of tests that require remote network access -GTEST_FILTER=-RCsvDS.Remote:RRawFile.Remote:RSqliteDS.Davix \ +# RNTuple.TClassEBO seg fault +#
https://github.com/root-project/root/issues/12428
+GTEST_FILTER=-RCsvDS.Remote:RRawFile.Remote:RSqliteDS.Davix:TFile.ReadWithoutGlobalRegistrationWeb:TFile.ReadWithoutGlobalRegistrationNet:RNTuple.TClassEBO \ +%if ! ( %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} == 8 ) +ROOTTEST_IGNORE_PANDAS_PY3=1 \ +%endif +ROOTTEST_IGNORE_NUMBA_PY3=1 \ +ROOTTEST_IGNORE_JUPYTER_PY3=1 \ make test ARGS="%{?_smp_mflags} --output-on-failure -E \"${excluded}\"" -popd - -%if %{?rhel}%{!?rhel:0} == 7 -%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 || : -%postun -if [ $1 -eq 0 ] ; then - 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 || : -%endif +popd %pretrans net-http -p <lua> path = "%{_datadir}/%{name}/js" @@ -2998,22 +2798,13 @@ end %post net-http # Replace bundled jsroot with symlinks to system version -for x in img libs scripts style files/draw.htm files/online.htm ; do - ln -fs /usr/share/javascript/jsroot/$x %{_datadir}/%{name}/js/$x +for x in build img modules scripts files/draw.htm files/online.htm ; do + ln -fnrs %{_jsdir}/jsroot/$x %{_datadir}/%{name}/js/$x done %{?ldconfig} %ldconfig_postun net-http -%if %{buildpy2} -%pre -n python2-%{name} -if [ -r /var/lib/alternatives/libPyROOT.so ] ; then - for alt in `grep python2.*/.*.so /var/lib/alternatives/libPyROOT.so` ; do - %{_sbindir}/update-alternatives --remove libPyROOT.so $alt - done -fi -%endif - %pre -n python%{python3_pkgversion}-%{name} if [ -r /var/lib/alternatives/libPyROOT.so ] ; then for alt in `grep python3.*/.*.so /var/lib/alternatives/libPyROOT.so` ; do @@ -3028,7 +2819,7 @@ if [ -e /etc/jupyter/jupyter_notebook_config.py ] ; then fi cat << EOF >> /etc/jupyter/jupyter_notebook_config.py # Extra static path for JupyROOT - start - do not remove this line -c.NotebookApp.extra_static_paths.append('%{_datadir}/javascript/jsroot') +c.NotebookApp.extra_static_paths.append('%{_jsdir}/jsroot') c.NotebookApp.extra_static_paths.append('%{_datadir}/%{name}/notebook') # Extra static path for JupyROOT - end - do not remove this line EOF @@ -3037,7 +2828,7 @@ if [ -e /etc/jupyter/jupyter_server_config.py ] ; then fi cat << EOF >> /etc/jupyter/jupyter_server_config.py # Extra static path for JupyROOT - start - do not remove this line -c.ServerApp.extra_static_paths.append('%{_datadir}/javascript/jsroot') +c.ServerApp.extra_static_paths.append('%{_jsdir}/jsroot') c.ServerApp.extra_static_paths.append('%{_datadir}/%{name}/notebook') # Extra static path for JupyROOT - end - do not remove this line EOF @@ -3066,14 +2857,13 @@ fi %ldconfig_scriptlets multiproc %ldconfig_scriptlets cling %ldconfig_scriptlets tpython -%if %{buildpy2} -%ldconfig_scriptlets -n python2-%{name} -%endif %ldconfig_scriptlets -n python%{python3_pkgversion}-%{name} %ldconfig_scriptlets r %ldconfig_scriptlets r-tools %ldconfig_scriptlets genetic %ldconfig_scriptlets geom +%ldconfig_scriptlets geom-builder +%ldconfig_scriptlets geom-painter %ldconfig_scriptlets gdml %ldconfig_scriptlets graf %ldconfig_scriptlets graf-asimage @@ -3099,13 +2889,10 @@ fi %ldconfig_scriptlets hist-painter %ldconfig_scriptlets spectrum %ldconfig_scriptlets spectrum-painter -%ldconfig_scriptlets hist-factory %ldconfig_scriptlets html %ldconfig_scriptlets io %ldconfig_scriptlets io-dcache -%if %{gfal2} %ldconfig_scriptlets io-gfal -%endif %ldconfig_scriptlets io-sql %ldconfig_scriptlets io-xml %ldconfig_scriptlets io-xmlparser @@ -3137,17 +2924,20 @@ fi %ldconfig_scriptlets proof-bench %ldconfig_scriptlets proof-player %ldconfig_scriptlets proof-sessionviewer -%if ! %{xrootd5} -%ldconfig_scriptlets xproof -%endif +%if %{roofit} %ldconfig_scriptlets roofit %ldconfig_scriptlets roofit-common %ldconfig_scriptlets roofit-core %ldconfig_scriptlets roofit-more %ldconfig_scriptlets roofit-batchcompute +%if %{dataframe} %ldconfig_scriptlets roofit-dataframe-helpers +%endif +%ldconfig_scriptlets roofit-jsoninterface %ldconfig_scriptlets roofit-hs3 %ldconfig_scriptlets roostats +%ldconfig_scriptlets hist-factory +%endif %ldconfig_scriptlets sql-mysql %ldconfig_scriptlets sql-odbc %ldconfig_scriptlets sql-sqlite @@ -3161,18 +2951,20 @@ fi %endif %ldconfig_scriptlets tmva-gui %ldconfig_scriptlets tree +%if %{dataframe} %ldconfig_scriptlets tree-dataframe +%endif %ldconfig_scriptlets tree-player %ldconfig_scriptlets tree-viewer +%ldconfig_scriptlets tree-webviewer %ldconfig_scriptlets unfold -%if %{webgui} %ldconfig_scriptlets gui-webdisplay %ifarch %{qt5_qtwebengine_arches} %ldconfig_scriptlets gui-qt5webdisplay %endif %ldconfig_scriptlets gui-webgui6 -%endif %if %{root7} +%ldconfig_scriptlets geom-webviewer %ldconfig_scriptlets graf-gpadv7 %ldconfig_scriptlets graf-primitives %ldconfig_scriptlets graf3d-eve7 @@ -3183,6 +2975,10 @@ fi %ldconfig_scriptlets histv7 %ldconfig_scriptlets hist-draw %ldconfig_scriptlets tree-ntuple +%ldconfig_scriptlets tree-ntuple-utils +%if %{roofit} +%ldconfig_scriptlets xroofit +%endif %endif %files @@ -3190,8 +2986,10 @@ fi %{_bindir}/root %{_bindir}/root.exe %{_bindir}/rootn.exe +%{_bindir}/rootreadspeed %{_bindir}/roots %{_bindir}/roots.exe +%{_bindir}/rootssh %{_mandir}/man1/hadd.1* %{_mandir}/man1/root.1* %{_mandir}/man1/root.exe.1* @@ -3228,10 +3026,8 @@ fi %{_libdir}/%{name}/lib*Dict.* %dir %{_datadir}/gdb/auto-load%{_libdir}/%{name} %{_datadir}/gdb/auto-load%{_libdir}/%{name}/libCore.* -%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8 %dir %{_datadir}/gdb/auto-load%{_libdir}/%{name}/__pycache__ %{_datadir}/gdb/auto-load%{_libdir}/%{name}/__pycache__/libCore.* -%endif %dir %{_datadir}/%{name} %{_datadir}/%{name}/allDict.cxx.pch %{_datadir}/%{name}/class.rules @@ -3288,41 +3084,21 @@ fi %doc interpreter/llvm/src/llvm-README.txt %license interpreter/llvm/src/llvm-LICENSE.TXT +%files testsupport +%{_includedir}/%{name}/ROOT/TestSupport.hxx +%{_libdir}/%{name}/libTestSupport.a +%doc core/testsupport/README.md + %files tpython -f includelist-bindings-tpython %{_libdir}/%{name}/libROOTTPython.* %{_libdir}/%{name}/libROOTTPython_rdict.pcm -%if %{buildpy2} -%files -n python2-%{name} -f includelist-bindings-pyroot -%{python2_sitearch}/cppyy -%{python2_sitearch}/cppyy_backend -%{python2_sitearch}/ROOT -%{python2_sitearch}/ROOT-*.egg-info -%{python2_sitearch}/libcppyy%{python2_version_uscore}.so -%{python2_sitearch}/libcppyy_backend%{python2_version_uscore}.so -%{python2_sitearch}/libROOTPythonizations%{python2_version_uscore}.so -%{_libdir}/%{name}/libcppyy%{python2_version_uscore}.* -%{_libdir}/%{name}/libcppyy_backend%{python2_version_uscore}.* -%dir %{_includedir}/%{name}/CPyCppyy - -%files -n python2-jupyroot -%{python2_sitearch}/JupyROOT -%{python2_sitearch}/JupyROOT-*.egg-info -%{python2_sitearch}/libJupyROOT%{python2_version_uscore}.so -%{_datadir}/jupyter/kernels/python2-jupyroot -%doc bindings/jupyroot/README.md - -%files -n python2-jsmva -%{python2_sitelib}/JsMVA -%{python2_sitelib}/JsMVA-*.egg-info -%endif - %files -n python%{python3_pkgversion}-%{name} -f includelist-bindings-pyroot %{python3_sitearch}/cppyy %{python3_sitearch}/cppyy_backend %{python3_sitearch}/ROOT %{python3_sitearch}/ROOT-*.egg-info -%{python3_sitearch}/libcppyy%{python3_version_uscore}%{python3_ext_suffix} +%{python3_sitearch}/libcppyy%{python3_version_uscore}.so %{python3_sitearch}/libcppyy_backend%{python3_version_uscore}.so %{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}%{python3_ext_suffix} %{_libdir}/%{name}/libcppyy%{python3_version_uscore}.* @@ -3361,16 +3137,20 @@ fi %{_libdir}/%{name}/libGenetic_rdict.pcm %{_datadir}/%{name}/plugins/ROOT@@Math@@Minimizer/P080_GeneticMinimizer.C -%files geom -f includelist-geom +%files geom -f includelist-geom-geom %{_libdir}/%{name}/libGeom.* %{_libdir}/%{name}/libGeom_rdict.pcm +%{_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/TGeoManagerEditor/P010_TGeoManagerEditor.C %{_datadir}/%{name}/plugins/TVirtualGeoPainter/P010_TGeoPainter.C -%{_datadir}/%{name}/RadioNuclides.txt %files gdml -f includelist-geom-gdml %{_libdir}/%{name}/libGdml.* @@ -3512,17 +3292,6 @@ fi %{_libdir}/%{name}/libSpectrumPainter.* %{_libdir}/%{name}/libSpectrumPainter_rdict.pcm -%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 -%doc roofit/histfactory/doc/README - %files html -f includelist-html %{_libdir}/%{name}/libHtml.* %{_libdir}/%{name}/libHtml_rdict.pcm @@ -3539,12 +3308,10 @@ fi %{_datadir}/%{name}/plugins/TFile/P040_TDCacheFile.C %{_datadir}/%{name}/plugins/TSystem/P020_TDCacheSystem.C -%if %{gfal2} %files io-gfal -f includelist-io-gfal %{_libdir}/%{name}/libGFAL.* %{_libdir}/%{name}/libGFAL_rdict.pcm %{_datadir}/%{name}/plugins/TFile/P050_TGFALFile.C -%endif %files io-sql -f includelist-io-sql %{_libdir}/%{name}/libSQLIO.* @@ -3701,12 +3468,13 @@ fi %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/libs +%ghost %{_datadir}/%{name}/js/modules %ghost %{_datadir}/%{name}/js/scripts -%ghost %{_datadir}/%{name}/js/style %ghost %{_datadir}/%{name}/js/files/draw.htm %ghost %{_datadir}/%{name}/js/files/online.htm %doc net/http/README.txt net/http/civetweb/*.md @@ -3715,11 +3483,7 @@ fi %{_libdir}/%{name}/libRHTTPSniff.* %{_libdir}/%{name}/libRHTTPSniff_rdict.pcm -%files netx -f includelist-netx -%if ! %{xrootd5} -%{_libdir}/%{name}/libNetx.* -%{_libdir}/%{name}/libNetx_rdict.pcm -%endif +%files netx -f includelist-net-netxng %{_libdir}/%{name}/libNetxNG.* %{_libdir}/%{name}/libNetxNG_rdict.pcm %{_datadir}/%{name}/plugins/TFile/P100_TXNetFile.C @@ -3769,19 +3533,7 @@ fi %{_datadir}/%{name}/plugins/TProofProgressLog/P010_TProofProgressLog.C %{_datadir}/%{name}/plugins/TSessionViewer/P010_TSessionViewer.C -%if ! %{xrootd5} -%files xproof -f includelist-proof-proofx -%{_bindir}/proofexecv -%{_bindir}/xproofd -%{_mandir}/man1/xproofd.1* -%{_libdir}/%{name}/libProofx.* -%{_libdir}/%{name}/libProofx_rdict.pcm -%{_libdir}/%{name}/libXrdProofd.* -%{_datadir}/%{name}/plugins/TProofMgr/P010_TXProofMgr.C -%{_datadir}/%{name}/plugins/TProofServ/P010_TXProofServ.C -%{_datadir}/%{name}/plugins/TSlave/P010_TXSlave.C -%endif - +%if %{roofit} %files roofit -f includelist-roofit-roofit %{_libdir}/%{name}/libRooFit.* %{_libdir}/%{name}/libRooFit_rdict.pcm @@ -3793,9 +3545,7 @@ fi %{_libdir}/%{name}/libRooFitCore.* %{_libdir}/%{name}/libRooFitCore_rdict.pcm %{_datadir}/gdb/auto-load%{_libdir}/%{name}/libRooFitCore.* -%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8 %{_datadir}/gdb/auto-load%{_libdir}/%{name}/__pycache__/libRooFitCore.* -%endif %files roofit-more -f includelist-roofit-roofitmore %{_libdir}/%{name}/libRooFitMore.* @@ -3806,9 +3556,11 @@ fi %{_libdir}/%{name}/libRooBatchCompute_* %doc roofit/batchcompute/README.md +%if %{dataframe} %files roofit-dataframe-helpers -f includelist-roofit-RDataFrameHelpers %{_libdir}/%{name}/libRooFitRDataFrameHelpers.* %{_libdir}/%{name}/libRooFitRDataFrameHelpers_rdict.pcm +%endif %files roofit-hs3 -f includelist-roofit-hs3 %{_libdir}/%{name}/libRooFitHS3.* @@ -3817,11 +3569,27 @@ fi %{_datadir}/%{name}/RooFitHS3_wsfactoryexpressions.json %doc roofit/hs3/README.md +%files roofit-jsoninterface -f includelist-roofit-jsoninterface +%{_libdir}/%{name}/libRooFitJSONInterface.* +%{_libdir}/%{name}/libRooFitJSONInterface_rdict.pcm + %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 +%doc roofit/histfactory/doc/README +%endif + %files sql-mysql -f includelist-sql-mysql %{_libdir}/%{name}/libRMySQL.* %{_libdir}/%{name}/libRMySQL_rdict.pcm @@ -3848,9 +3616,7 @@ fi %dir %{_includedir}/%{name}/TMVA %dir %{_includedir}/%{name}/TMVA/DNN %dir %{_includedir}/%{name}/TMVA/DNN/Architectures -%if %{tbb} %dir %{_includedir}/%{name}/TMVA/DNN/Architectures/Cpu -%endif %dir %{_includedir}/%{name}/TMVA/DNN/Architectures/Reference %license tmva/doc/LICENSE @@ -3882,9 +3648,11 @@ fi %{_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 +%endif %files tree-player -f includelist-tree-treeplayer %{_libdir}/%{name}/libTreePlayer.* @@ -3897,6 +3665,11 @@ fi %{_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 unfold -f includelist-hist-unfold %{_libdir}/%{name}/libUnfold.* %{_libdir}/%{name}/libUnfold_rdict.pcm @@ -3919,7 +3692,6 @@ fi %{_datadir}/%{name}/notebook %doc %{_pkgdocdir}/JupyROOT-on-EPEL -%if %{webgui} %files gui-webdisplay -f includelist-gui-webdisplay %{_libdir}/%{name}/libROOTWebDisplay.* %{_libdir}/%{name}/libROOTWebDisplay_rdict.pcm @@ -3933,10 +3705,15 @@ fi %files gui-webgui6 -f includelist-gui-webgui6 %{_libdir}/%{name}/libWebGui6.* %{_libdir}/%{name}/libWebGui6_rdict.pcm -%{_datadir}/%{name}/plugins/TGuiFactory/P030_TWebGuiFactory.C -%endif +%{_datadir}/%{name}/plugins/TCanvasImp/P010_TWebCanvas.C +%{_datadir}/%{name}/plugins/TControlBarImp/P010_TWebControlBar.C %if %{root7} +%files geom-webviewer -f includelist-geom-webviewer +%{_libdir}/%{name}/libROOTGeomViewer.* +%{_libdir}/%{name}/libROOTGeomViewer_rdict.pcm +%{_datadir}/%{name}/plugins/TVirtualGeoPainter/P020_RGeoPainter.C + %files graf-gpadv7 -f includelist-graf2d-gpadv7 %{_libdir}/%{name}/libROOTGpadv7.* %{_libdir}/%{name}/libROOTGpadv7_rdict.pcm @@ -3948,7 +3725,6 @@ fi %files graf3d-eve7 -f includelist-graf3d-eve7 %{_libdir}/%{name}/libROOTEve.* %{_libdir}/%{name}/libROOTEve_rdict.pcm -%{_datadir}/%{name}/plugins/TVirtualGeoPainter/P020_REveGeoPainter.C %files gui-browsable -f includelist-gui-browsable %{_libdir}/%{name}/libROOTBrowsable.* @@ -3969,6 +3745,7 @@ fi %{_libdir}/%{name}/libROOTBrowserGeomWidget.* %{_libdir}/%{name}/libROOTBrowserRCanvasWidget.* %{_libdir}/%{name}/libROOTBrowserTCanvasWidget.* +%{_libdir}/%{name}/libROOTBrowserTreeWidget.* %{_libdir}/%{name}/libROOTBrowserWidgets.* %{_datadir}/%{name}/plugins/TBrowserImp/P030_RWebBrowserImp.C @@ -3990,9 +3767,34 @@ fi %files tree-ntuple -f includelist-tree-ntuple %{_libdir}/%{name}/libROOTNTuple.* %{_libdir}/%{name}/libROOTNTuple_rdict.pcm + +%files tree-ntuple-utils -f includelist-tree-ntupleutil +%{_libdir}/%{name}/libROOTNTupleUtil.* +%{_libdir}/%{name}/libROOTNTupleUtil_rdict.pcm + +%if %{roofit} +%files xroofit -f includelist-roofit-xroofit +%{_libdir}/%{name}/libRooFitXRooFit.* +%{_libdir}/%{name}/libRooFitXRooFit_rdict.pcm +%endif %endif %changelog +* Sat Mar 18 2023 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 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 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.10-5 - Adapt to numpy 1.24 diff --git a/sources b/sources index ef0a91f..e37c144 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (root-6.26.10.tar.xz) = 896727ce6da68871a52894a0a3c1b749fece9f08c8cefe62f5beac505710d579c41b84832a727a2ba39dab09e4456773c05b5b23a0fd859ace8062470653bbdb +SHA512 (root-6.28.00.tar.xz) = 57e5e111e41d3942b63a9e038198e6cc91457d7724cc9dcf9673679b12b13acb6980e7786828a8527a292c018bd13af51854e83f99301f6bc5e4455cdc23c30e SHA512 (root-testfiles.tar.xz) = 945aef1a0cf5af672d4ab84b0ac00b76118e93008ff72447658ee82d9e955a1540af3ff7126e701418872f1d91b92ee96d4985840a519036c42732023a13f00f commit e41288dd187d613cfcbd4760a6bb92e33b0f1797 Author: Miro Hrončok <miro(a)hroncok.cz> Date: Mon Jan 30 22:16:05 2023 +0100 Rebuilt to change Python shebangs to /usr/bin/python3.6 on EPEL 8 See
https://lists.fedoraproject.org/archives/list/epel-devel@lists.fedoraprojec…
diff --git a/root.spec b/root.spec index bead5ca..0cb36c8 100644 --- a/root.spec +++ b/root.spec @@ -65,7 +65,7 @@ Name: root Version: 6.26.10 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework License: LGPLv2+ @@ -3985,6 +3985,9 @@ fi %endif %changelog +* Mon Jan 30 2023 Miro Hrončok <mhroncok(a)redhat.com> - 6.26.10-2 +- Rebuilt to change Python shebangs to /usr/bin/python3.6 on EPEL 8 + * Wed Nov 16 2022 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.10-1 - Update to 6.26.10 - Drop patches root-Fixes-for-garbage-collection-in-Python-3.11.patch commit 1801745923d911ad2b2b0d529a86e2bdd8836fb3 Author: Mattias Ellert <mattias.ellert(a)physics.uu.se> Date: Mon Jan 30 19:16:25 2023 +0100 Adapt to numpy 1.24 diff --git a/root-avoid-deprecated-numpy.object.patch b/root-avoid-deprecated-numpy.object.patch new file mode 100644 index 0000000..9330bac --- /dev/null +++ b/root-avoid-deprecated-numpy.object.patch @@ -0,0 +1,22 @@ +From 1e7dc9fcd60133375c3b725d8317fab339c2bf38 Mon Sep 17 00:00:00 2001 +From: Vincenzo Eduardo Padulano <v.e.padulano(a)gmail.com> +Date: Mon, 30 Jan 2023 10:31:29 +0100 +Subject: [PATCH] [DF][PyROOT] Avoid deprecated numpy.object + +--- + .../pythonizations/python/ROOT/_pythonization/_rdataframe.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py b/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py +index 59cb0cd260dd..01cb08b0365f 100644 +--- a/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py ++++ b/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py +@@ -287,7 +287,7 @@ def GetValue(self): + tmp = numpy.asarray(cpp_reference) # This adopts the memory of the C++ object. + self._py_arrays[column] = ndarray(tmp, self._result_ptrs[column]) + else: +- tmp = numpy.empty(len(cpp_reference), dtype=numpy.object) ++ tmp = numpy.empty(len(cpp_reference), dtype=object) + for i, x in enumerate(cpp_reference): + tmp[i] = x # This creates only the wrapping of the objects and does not copy. + self._py_arrays[column] = ndarray(tmp, self._result_ptrs[column]) diff --git a/root.spec b/root.spec index 6df3ae4..7b8e3be 100644 --- a/root.spec +++ b/root.spec @@ -61,7 +61,7 @@ Name: root Version: 6.26.10 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 4%{?dist} +Release: 5%{?dist} Summary: Numerical data analysis framework License: LGPLv2+ @@ -184,6 +184,10 @@ Patch37: %{name}-avoid-race-condition-tutorial-roofit-rf512.patch Patch38: %{name}-add-missing-include-cstdint.patch # Backport from upstream Patch39: %{name}-fix-compilation-with-gcc13.patch +# numpy.object obsolete since numpy 1.20 and removed since 1.24 +#
https://github.com/root-project/root/issues/12148
+#
https://github.com/root-project/root/pull/12159
+Patch40: %{name}-avoid-deprecated-numpy.object.patch %if %{?rhel}%{!?rhel:0} == 7 BuildRequires: devtoolset-8-toolchain @@ -291,12 +295,8 @@ 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: uglify-js3 BuildRequires: perl-generators BuildRequires: gtest-devel BuildRequires: gmock-devel @@ -2052,6 +2052,7 @@ This package contains an ntuple extension for ROOT 7. %patch37 -p1 %patch38 -p1 %patch39 -p1 +%patch40 -p1 # Remove bundled sources in order to be sure they are not used # * afterimage @@ -2122,18 +2123,10 @@ 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 + uglifyjs-3 ${s} -c -m -o ${s%.js}.min.js 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) @@ -2779,6 +2772,12 @@ pyunittests-pyroot-roofit-roodataset-numpy" excluded="${excluded}|\ pyunittests-dataframe-histograms|\ tutorial-legacy-rootenv" + +%ifarch %{ix86} +# Failures with Fedora 38 i686 (after numpy 1.24 update) +excluded="${excluded}|\ +pyunittests-pyroot-roofit-roodataset-numpy" +%endif %endif %ifarch %{arm} @@ -3994,6 +3993,9 @@ fi %endif %changelog +* Mon Jan 30 2023 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.10-5 +- Adapt to numpy 1.24 + * Fri Jan 20 2023 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.10-4 - Add missing #include <cstdint> commit 635da91690ffdb72e0fb1b401d970c663b0eedfb Author: Mattias Ellert <mattias.ellert(a)physics.uu.se> Date: Sat Jan 21 08:32:07 2023 +0100 Add missing #include <cstdint> diff --git a/root-add-missing-include-cstdint.patch b/root-add-missing-include-cstdint.patch new file mode 100644 index 0000000..f86f0ee --- /dev/null +++ b/root-add-missing-include-cstdint.patch @@ -0,0 +1,38 @@ +From cf6a925dfda2411b979da368e4cea769dbe6238a Mon Sep 17 00:00:00 2001 +From: Mattias Ellert <mattias.ellert(a)physics.uu.se> +Date: Fri, 20 Jan 2023 06:34:11 +0100 +Subject: [PATCH] Add missing #include <cstdint> + +Fixes compilation error with gcc 13 +--- + tree/ntuple/v7/inc/ROOT/RDaos.hxx | 1 + + tree/ntuple/v7/test/CustomStruct.hxx | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/tree/ntuple/v7/inc/ROOT/RDaos.hxx b/tree/ntuple/v7/inc/ROOT/RDaos.hxx +index 69ee9ba99d..6367dfa93f 100644 +--- a/tree/ntuple/v7/inc/ROOT/RDaos.hxx ++++ b/tree/ntuple/v7/inc/ROOT/RDaos.hxx +@@ -22,6 +22,7 @@ + // Also, this header file is known to provide macros that conflict with std::min()/std::max(). + extern "C" void d_rank_list_free(d_rank_list_t *rank_list); + ++#include <cstdint> + #include <functional> + #include <memory> + #include <string> +diff --git a/tree/ntuple/v7/test/CustomStruct.hxx b/tree/ntuple/v7/test/CustomStruct.hxx +index a975b5ce5d..be08eba924 100644 +--- a/tree/ntuple/v7/test/CustomStruct.hxx ++++ b/tree/ntuple/v7/test/CustomStruct.hxx +@@ -1,6 +1,7 @@ + #ifndef ROOT7_RNTuple_Test_CustomStruct + #define ROOT7_RNTuple_Test_CustomStruct + ++#include <cstdint> + #include <string> + #include <vector> + +-- +2.39.0 + diff --git a/root-fix-compilation-with-gcc13.patch b/root-fix-compilation-with-gcc13.patch new file mode 100644 index 0000000..bf411a8 --- /dev/null +++ b/root-fix-compilation-with-gcc13.patch @@ -0,0 +1,25 @@ +From 37ac6654194f90db625e760dcb2d48fd7938ba6d Mon Sep 17 00:00:00 2001 +From: scott snyder <sss@karma> +Date: Tue, 29 Nov 2022 22:05:39 -0500 +Subject: [PATCH] Fix compilation with gcc13. + +Missing #include <cstdint>. +--- + math/mathcore/inc/Math/Random.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/math/mathcore/inc/Math/Random.h b/math/mathcore/inc/Math/Random.h +index 87eaaee5af..23bfabc4a1 100644 +--- a/math/mathcore/inc/Math/Random.h ++++ b/math/mathcore/inc/Math/Random.h +@@ -25,6 +25,7 @@ + + #include <string> + #include <vector> ++#include <cstdint> + + + namespace ROOT { +-- +2.39.0 + diff --git a/root-test-timeout.patch b/root-test-timeout.patch index 1943318..a07aa39 100644 --- a/root-test-timeout.patch +++ b/root-test-timeout.patch @@ -79,7 +79,7 @@ index dbe664f8a0..6284e3c4c5 100644 ROOT_STANDARD_LIBRARY_PACKAGE(SillyStruct NO_INSTALL_HEADERS HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/SillyStruct.h SOURCES SillyStruct.cxx LINKDEF SillyStructLinkDef.h DEPENDENCIES RIO) ROOT_ADD_GTEST(testBulkApi BulkApi.cxx LIBRARIES RIO Tree TreePlayer) -ROOT_ADD_GTEST(testBulkApiMultiple BulkApiMultiple.cxx LIBRARIES RIO Tree TreePlayer) -+ROOT_ADD_GTEST(testBulkApiMultiple BulkApiMultiple.cxx LIBRARIES RIO Tree TreePlayer TIMEOUT 2400) ++ROOT_ADD_GTEST(testBulkApiMultiple BulkApiMultiple.cxx LIBRARIES RIO Tree TreePlayer TIMEOUT 3000) ROOT_ADD_GTEST(testBulkApiVarLength BulkApiVarLength.cxx LIBRARIES RIO Tree TreePlayer) ROOT_ADD_GTEST(testBulkApiSillyStruct BulkApiSillyStruct.cxx LIBRARIES RIO Tree TreePlayer SillyStruct) ROOT_ADD_GTEST(testTBasket TBasket.cxx LIBRARIES RIO Tree) diff --git a/root.spec b/root.spec index 11e148a..6df3ae4 100644 --- a/root.spec +++ b/root.spec @@ -25,11 +25,7 @@ %global root7 0 %endif -%if %{?fedora}%{!?fedora:0} >= 33 || %{?rhel}%{!?rhel:0} >= 7 %global xrootd5 1 -%else -%global xrootd5 0 -%endif %global webgui 1 @@ -65,7 +61,7 @@ Name: root Version: 6.26.10 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 3%{?dist} +Release: 4%{?dist} Summary: Numerical data analysis framework License: LGPLv2+ @@ -183,6 +179,11 @@ Patch36: %{name}-PyROOT-Prevent-cast-error-when-calling-PyTuple_SET_I.patch # Avoid race condition between C++ an Python version of test #
https://github.com/root-project/root/pull/11643
Patch37: %{name}-avoid-race-condition-tutorial-roofit-rf512.patch +# Add missing #include <cstdint> +#
https://github.com/root-project/root/pull/12065
+Patch38: %{name}-add-missing-include-cstdint.patch +# Backport from upstream +Patch39: %{name}-fix-compilation-with-gcc13.patch %if %{?rhel}%{!?rhel:0} == 7 BuildRequires: devtoolset-8-toolchain @@ -519,7 +520,7 @@ to call Python from ROOT. %if %{buildpy2} %package -n python2-%{name} Summary: Python extension for ROOT -%{?python_provide:%python_provide python2-%{name}} +%py_provides python2-%{name} Provides: %{name}-python = %{version}-%{release} Obsoletes: %{name}-python < 6.08.00 Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -532,7 +533,7 @@ possible to use ROOT classes in Python. %package -n python2-jupyroot Summary: ROOT Jupyter kernel -%{?python_provide:%python_provide python2-jupyroot} +%py_provides python2-jupyroot Requires: python2-%{name}%{?_isa} = %{version}-%{release} Requires: python2-jsmva = %{version}-%{release} Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -554,7 +555,7 @@ The Jupyter kernel for the ROOT notebook. %package -n python2-jsmva Summary: TMVA interface used by JupyROOT BuildArch: noarch -%{?python_provide:%python_provide python2-jsmva} +%py_provides python2-jsmva Requires: %{name}-tmva = %{version}-%{release} %description -n python2-jsmva @@ -563,7 +564,7 @@ TMVA interface used by JupyROOT. %package -n python%{python3_pkgversion}-%{name} Summary: Python extension for ROOT -%{?python_provide:%python_provide python%{python3_pkgversion}-%{name}} +%py_provides python%{python3_pkgversion}-%{name} Provides: %{name}-python%{python3_pkgversion} = %{version}-%{release} Obsoletes: %{name}-python%{python3_pkgversion} < 6.08.00 Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -578,7 +579,7 @@ possible to use ROOT classes in Python. %package -n python%{python3_pkgversion}-jupyroot Summary: ROOT Jupyter kernel -%{?python_provide:%python_provide python%{python3_pkgversion}-jupyroot} +%py_provides python%{python3_pkgversion}-jupyroot Requires: python%{python3_pkgversion}-%{name}%{?_isa} = %{version}-%{release} Requires: python%{python3_pkgversion}-jsmva = %{version}-%{release} Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -599,7 +600,7 @@ The Jupyter kernel for the ROOT notebook. %package -n python%{python3_pkgversion}-jsmva Summary: TMVA interface used by JupyROOT BuildArch: noarch -%{?python_provide:%python_provide python%{python3_pkgversion}-jsmva} +%py_provides python%{python3_pkgversion}-jsmva Requires: %{name}-tmva = %{version}-%{release} %description -n python%{python3_pkgversion}-jsmva @@ -609,7 +610,7 @@ TMVA interface used by JupyROOT. %package -n python%{python3_pkgversion}-distrdf Summary: Distributed RDataFrame BuildArch: noarch -%{?python_provide:%python_provide python%{python3_pkgversion}-distrdf} +%py_provides python%{python3_pkgversion}-distrdf Requires: python%{python3_pkgversion}-%{name} = %{version}-%{release} Requires: %{name}-tree-dataframe = %{version}-%{release} @@ -2049,6 +2050,8 @@ This package contains an ntuple extension for ROOT 7. %patch35 -p1 %patch36 -p1 %patch37 -p1 +%patch38 -p1 +%patch39 -p1 # Remove bundled sources in order to be sure they are not used # * afterimage @@ -2771,17 +2774,11 @@ excluded="${excluded}|\ pyunittests-pyroot-roofit-roodataset-numpy" %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-* +%if %{?fedora}%{!?fedora:0} >= 38 +# Failures with Fedora 38 (GCC 13 related?) excluded="${excluded}|\ -gtest-roofit-RDataFrameHelpers-test-testActionHelpers|\ -gtest-tree-dataframe-test-dataframe|\ -gtest-tree-dataframe-test-datasource" -%endif +pyunittests-dataframe-histograms|\ +tutorial-legacy-rootenv" %endif %ifarch %{arm} @@ -2828,7 +2825,7 @@ test-stressroostats-interpreted|\ pyunittests-pyroot-pyz-rdataframe-makenumpy|\ tutorial-dataframe-df032_MakeNumpyDataFrame-py" -%if %{?fedora}%{!?fedora:0} == 34 || %{?fedora}%{!?fedora:0} == 35 || %{?rhel}%{!?rhel:0} == 9 +%if %{?rhel}%{!?rhel:0} == 9 # tmva/tmva/test/branchlessForest.cxx:215: Failure # Expected equality of these values: # predictions[1] @@ -2942,19 +2939,31 @@ test-stressgraphics" %endif %if %{?fedora}%{!?fedora:0} >= 38 -# - pyunittests-pyroot-pyz-rdataframe-asnumpy -# - pyunittests-pyroot-pyz-rdataframe-makenumpy -# - tutorial-dataframe-df024_Display(-py) -# - tutorial-dataframe-df026_AsNumpyArrays-py -# - tutorial-dataframe-df032_MakeNumpyDataFrame-py -# - tutorial-tmva-tmva002_RDataFrameAsTensor +# Segmentation faults and invalid pointers +# Mainly related to DataFrame excluded="${excluded}|\ +pyunittests-dataframe|\ +pyunittests-distrdf-unit-backend-test-dist|\ +pyunittests-distrdf-unit-test-headnode|\ pyunittests-pyroot-pyz-rdataframe-asnumpy|\ pyunittests-pyroot-pyz-rdataframe-makenumpy|\ -tutorial-dataframe-df024_Display|\ -tutorial-dataframe-df026_AsNumpyArrays-py|\ -tutorial-dataframe-df032_MakeNumpyDataFrame-py|\ -tutorial-tmva-tmva002_RDataFrameAsTensor" +pyunittests-pyroot-rdfdescription|\ +gtest-roofit-RDataFrameHelpers-test-testActionHelpers|\ +gtest-tree-dataframe-test-dataframe|\ +gtest-tree-dataframe-test-datasource|\ +gtest-tree-ntuple-v7-test-ntuple-rdf|\ +tutorial-dataframe-df|\ +tutorial-graphs-timeSeriesFromCSV_TDF|\ +tutorial-multicore-mt304_fillHistos|\ +tutorial-rcanvas|\ +tutorial-roofit-rf408_RDataFrameToRooFit-py|\ +tutorial-roofit-rf508_listsetmanip-py|\ +tutorial-tmva-tmva002_RDataFrameAsTensor|\ +tutorial-v7-concurrentfill.cxx|\ +tutorial-v7-histops.cxx|\ +tutorial-v7-perf.cxx|\ +tutorial-v7-perfcomp.cxx|\ +tutorial-v7-simple.cxx" %endif %endif @@ -3985,6 +3994,9 @@ fi %endif %changelog +* Fri Jan 20 2023 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.10-4 +- Add missing #include <cstdint> + * Fri Jan 20 2023 Fedora Release Engineering <releng(a)fedoraproject.org> - 6.26.10-3 - Rebuilt for
https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
commit 6d31b558eef8167f0d09704df669da1de6e1a4ef Author: Fedora Release Engineering <releng(a)fedoraproject.org> Date: Fri Jan 20 19:53:22 2023 +0000 Rebuilt for
https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org> diff --git a/root.spec b/root.spec index b40be96..11e148a 100644 --- a/root.spec +++ b/root.spec @@ -65,7 +65,7 @@ Name: root Version: 6.26.10 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 3%{?dist} Summary: Numerical data analysis framework License: LGPLv2+ @@ -3985,6 +3985,9 @@ fi %endif %changelog +* Fri Jan 20 2023 Fedora Release Engineering <releng(a)fedoraproject.org> - 6.26.10-3 +- Rebuilt for
https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
+ * Thu Dec 29 2022 Maxwell G <gotmax(a)e.email> - 6.26.10-2 - Rebuild for cfitsio 4.2 commit bcb1ddcccf7115e8e31efead61522aaf674c8ad2 Author: Maxwell G <gotmax(a)e.email> Date: Thu Dec 29 09:45:29 2022 -1000 Rebuild for cfitsio 4.2 diff --git a/root.spec b/root.spec index bead5ca..b40be96 100644 --- a/root.spec +++ b/root.spec @@ -65,7 +65,7 @@ Name: root Version: 6.26.10 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework License: LGPLv2+ @@ -3985,6 +3985,9 @@ fi %endif %changelog +* Thu Dec 29 2022 Maxwell G <gotmax(a)e.email> - 6.26.10-2 +- Rebuild for cfitsio 4.2 + * Wed Nov 16 2022 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.26.10-1 - Update to 6.26.10 - Drop patches root-Fixes-for-garbage-collection-in-Python-3.11.patch
1
0
0
0
Architecture specific change in rpms/rust-parsec-client.git
by githook-noreply@fedoraproject.org
20 Mar '23
20 Mar '23
The package rpms/rust-parsec-client.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/rust-parsec-client.git/commit/?id=3…
. Change: -ExclusiveArch: %{rust_arches} Thanks. Full change: ============ commit 3cf65c9fb85c168aa29b12c622abaf0092762f92 Author: Fabio Valentini <decathorpe(a)gmail.com> Date: Mon Mar 20 11:45:10 2023 +0100 Regenerate with rust2rpm v24; simplify packaging; drop broken subpackages diff --git a/README.md b/README.md deleted file mode 100644 index 62af0bc..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# rust-parsec-client - -The rust-parsec-client package diff --git a/parsec-client-fix-metadata.diff b/parsec-client-fix-metadata.diff new file mode 100644 index 0000000..7875b22 --- /dev/null +++ b/parsec-client-fix-metadata.diff @@ -0,0 +1,19 @@ +--- parsec-client-0.14.1/Cargo.toml 1970-01-01T00:00:01+00:00 ++++ parsec-client-0.14.1/Cargo.toml 2023-03-20T10:41:17.020532+00:00 +@@ -34,10 +34,6 @@ + [dependencies.parsec-interface] + version = "0.27.0" + +-[dependencies.spiffe] +-version = "0.2.0" +-optional = true +- + [dependencies.url] + version = "2.2.0" + +@@ -52,5 +48,4 @@ + + [features] + default = [] +-spiffe-auth = ["spiffe"] + testing = ["parsec-interface/testing"] diff --git a/rust-parsec-client.spec b/rust-parsec-client.spec index d4265b4..2d5a201 100644 --- a/rust-parsec-client.spec +++ b/rust-parsec-client.spec @@ -1,12 +1,11 @@ +# Generated by rust2rpm 24 +# * missing dev-dependencies: mockstream ^0.0.3 %bcond_with check %global debug_package %{nil} -%global custom_cargo_build /usr/bin/env PROTOC=%{_bindir}/protoc PROTOC_INCLUDe=%{_includedir} CARGO_HOME=.cargo RUSTC_BOOTSTRAP=1 %{_bindir}/cargo build %{_smp_mflags} -Z avoid-dev-deps --release -%global custom_cargo_test /usr/bin/env PROTOC=%{_bindir}/protoc PROTOC_INCLUDe=%{_includedir} CARGO_HOME=.cargo RUSTC_BOOTSTRAP=1 %{_bindir}/cargo test %{_smp_mflags} -Z avoid-dev-deps --release --no-fail-fast - %global crate parsec-client -Name: rust-%{crate} +Name: rust-parsec-client Version: 0.14.1 Release: %autorelease Summary: Parsec Client library for the Rust ecosystem @@ -14,10 +13,10 @@ Summary: Parsec Client library for the Rust ecosystem License: Apache-2.0 URL:
https://crates.io/crates/parsec-client
Source: %{crates_source} +# Manually created patch for downstream crate metadata changes +# * drop "spiffe-auth" feature with missing dependency "spiffe" +Patch: parsec-client-fix-metadata.diff -ExclusiveArch: %{rust_arches} - -BuildRequires: protobuf-compiler BuildRequires: rust-packaging >= 21 %global _description %{expand: @@ -52,30 +51,6 @@ use the "default" feature of the "%{crate}" crate. %files -n %{name}+default-devel %ghost %{crate_instdir}/Cargo.toml -%package -n %{name}+spiffe-devel -Summary: %{summary} -BuildArch: noarch - -%description -n %{name}+spiffe-devel %{_description} - -This package contains library source intended for building other packages which -use the "spiffe" feature of the "%{crate}" crate. - -%files -n %{name}+spiffe-devel -%ghost %{crate_instdir}/Cargo.toml - -%package -n %{name}+spiffe-auth-devel -Summary: %{summary} -BuildArch: noarch - -%description -n %{name}+spiffe-auth-devel %{_description} - -This package contains library source intended for building other packages which -use the "spiffe-auth" feature of the "%{crate}" crate. - -%files -n %{name}+spiffe-auth-devel -%ghost %{crate_instdir}/Cargo.toml - %package -n %{name}+testing-devel Summary: %{summary} BuildArch: noarch @@ -90,28 +65,20 @@ use the "testing" feature of the "%{crate}" crate. %prep %autosetup -n %{crate}-%{version_no_tilde} -p1 -export PROTOC=%{_bindir}/protoc -export PROTOC_INCLUDE=%{_includedir} %cargo_prep %generate_buildrequires %cargo_generate_buildrequires %build -export PROTOC=%{_bindir}/protoc -export PROTOC_INCLUDE=%{_includedir} -%custom_cargo_build +%cargo_build %install -export PROTOC=%{_bindir}/protoc -export PROTOC_INCLUDE=%{_includedir} %cargo_install %if %{with check} %check -export PROTOC=%{_bindir}/protoc -export PROTOC_INCLUDE=%{_includedir} -%custom_cargo_test +%cargo_test %endif %changelog commit 55e7b1c4f350032228380f1d8f5b6271a92e379e Author: Fedora Release Engineering <releng(a)fedoraproject.org> Date: Sat Jan 21 00:23:10 2023 +0000 Rebuilt for
https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
1
0
0
0
← Newer
1
...
18
19
20
21
22
23
24
...
63
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Results per page:
10
25
50
100
200