Architecture specific change in rpms/golang.git
by githook-noreply@fedoraproject.org
The package rpms/golang.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/golang.git/commit/?id=0cb15e561e6...
https://src.fedoraproject.org/cgit/rpms/golang.git/commit/?id=ea99ebaff6b...
https://src.fedoraproject.org/cgit/rpms/golang.git/commit/?id=ecf8f72447d....
Change:
-%ifarch aarch64
+%ifarch aarch64
-%ifarch %{ix86} aarch64 %{arm}
Thanks.
Full change:
============
commit 0cb15e561e64fa0645444fa43048f3af1dc57a90
Author: Alejandro Sáez <asm(a)redhat.com>
Date: Mon Jul 6 13:52:40 2020 +0200
Add patch that fixes issue in ppc64le
Fix: https://golang.org/issue/39991
Add sources
diff --git a/.gitignore b/.gitignore
index cd34d62..49f5116 100644
--- a/.gitignore
+++ b/.gitignore
@@ -84,3 +84,4 @@
/go1.14.src.tar.gz
/go1.14.2.src.tar.gz
/go1.14.3.src.tar.gz
+/go1.14.4.src.tar.gz
diff --git a/0004-ppc64le-fix-missing-deferreturn.patch b/0004-ppc64le-fix-missing-deferreturn.patch
new file mode 100644
index 0000000..8dc47b6
--- /dev/null
+++ b/0004-ppc64le-fix-missing-deferreturn.patch
@@ -0,0 +1,178 @@
+From 457c3cea934db4b8883c9b932912367e02170a61 Mon Sep 17 00:00:00 2001
+From: Cherry Zhang <cherryyz(a)google.com>
+Date: Fri, 03 Jul 2020 14:28:15 -0400
+Subject: [PATCH] [release-branch.go1.14] cmd/link: detect trampoline of deferreturn call
+
+This is a backport of CL 234105. This is not a clean cherry-pick,
+as CL 234105 is for the new linker, whereas we still use the old
+linker here. This CL backports the logic.
+
+The runtime needs to find the PC of the deferreturn call in a few
+places. So for functions that have defer, we record the PC of
+deferreturn call in its funcdata.
+
+For very large binaries, the deferreturn call could be made
+through a trampoline. The current code of finding deferreturn PC
+fails in this case. This CL handles the trampoline as well.
+
+Fixes #39991.
+Updates #39049.
+
+Change-Id: I929be54d6ae436f5294013793217dc2a35f080d4
+Reviewed-on: https://go-review.googlesource.com/c/go/+/234105
+Run-TryBot: Cherry Zhang <cherryyz(a)google.com>
+TryBot-Result: Gobot Gobot <gobot(a)golang.org>
+Reviewed-by: Jeremy Faller <jeremy(a)golang.org>
+Reviewed-by: Than McIntosh <thanm(a)google.com>
+---
+
+diff --git a/src/cmd/link/internal/arm/asm.go b/src/cmd/link/internal/arm/asm.go
+index f2fb654..c4f529a 100644
+--- a/src/cmd/link/internal/arm/asm.go
++++ b/src/cmd/link/internal/arm/asm.go
+@@ -470,8 +470,12 @@
+ offset := (signext24(r.Add&0xffffff) + 2) * 4
+ var tramp *sym.Symbol
+ for i := 0; ; i++ {
+- name := r.Sym.Name + fmt.Sprintf("%+d-tramp%d", offset, i)
++ oName := r.Sym.Name
++ name := oName + fmt.Sprintf("%+d-tramp%d", offset, i)
+ tramp = ctxt.Syms.Lookup(name, int(r.Sym.Version))
++ if oName == "runtime.deferreturn" {
++ tramp.Attr.Set(sym.AttrDeferReturnTramp, true)
++ }
+ if tramp.Type == sym.SDYNIMPORT {
+ // don't reuse trampoline defined in other module
+ continue
+diff --git a/src/cmd/link/internal/ld/pcln.go b/src/cmd/link/internal/ld/pcln.go
+index 3e8135c..43e1661 100644
+--- a/src/cmd/link/internal/ld/pcln.go
++++ b/src/cmd/link/internal/ld/pcln.go
+@@ -276,7 +276,7 @@
+ // set the resumption point to PC_B.
+ lastWasmAddr = uint32(r.Add)
+ }
+- if r.Type.IsDirectCall() && r.Sym != nil && r.Sym.Name == "runtime.deferreturn" {
++ if r.Type.IsDirectCall() && r.Sym != nil && (r.Sym.Name == "runtime.deferreturn" || r.Sym.Attr.DeferReturnTramp()) {
+ if ctxt.Arch.Family == sys.Wasm {
+ deferreturn = lastWasmAddr - 1
+ } else {
+diff --git a/src/cmd/link/internal/ppc64/asm.go b/src/cmd/link/internal/ppc64/asm.go
+index 9fbcff5..e84689d 100644
+--- a/src/cmd/link/internal/ppc64/asm.go
++++ b/src/cmd/link/internal/ppc64/asm.go
+@@ -667,7 +667,8 @@
+ // target is at some offset within the function. Calls to duff+8 and duff+256 must appear as
+ // distinct trampolines.
+
+- name := r.Sym.Name
++ oName := r.Sym.Name
++ name := oName
+ if r.Add == 0 {
+ name = name + fmt.Sprintf("-tramp%d", i)
+ } else {
+@@ -677,6 +678,9 @@
+ // Look up the trampoline in case it already exists
+
+ tramp = ctxt.Syms.Lookup(name, int(r.Sym.Version))
++ if oName == "runtime.deferreturn" {
++ tramp.Attr.Set(sym.AttrDeferReturnTramp, true)
++ }
+ if tramp.Value == 0 {
+ break
+ }
+diff --git a/src/cmd/link/internal/sym/attribute.go b/src/cmd/link/internal/sym/attribute.go
+index 4b69bf3..773b6a4 100644
+--- a/src/cmd/link/internal/sym/attribute.go
++++ b/src/cmd/link/internal/sym/attribute.go
+@@ -81,7 +81,10 @@
+ // AttrReadOnly indicates whether the symbol's content (Symbol.P) is backed by
+ // read-only memory.
+ AttrReadOnly
+- // 19 attributes defined so far.
++ // AttrDeferReturnTramp indicates the symbol is a trampoline of a deferreturn
++ // call.
++ AttrDeferReturnTramp
++ // 20 attributes defined so far.
+ )
+
+ func (a Attribute) DuplicateOK() bool { return a&AttrDuplicateOK != 0 }
+@@ -103,6 +106,7 @@
+ func (a Attribute) Container() bool { return a&AttrContainer != 0 }
+ func (a Attribute) TopFrame() bool { return a&AttrTopFrame != 0 }
+ func (a Attribute) ReadOnly() bool { return a&AttrReadOnly != 0 }
++func (a Attribute) DeferReturnTramp() bool { return a&AttrDeferReturnTramp != 0 }
+
+ func (a Attribute) CgoExport() bool {
+ return a.CgoExportDynamic() || a.CgoExportStatic()
+diff --git a/src/cmd/link/link_test.go b/src/cmd/link/link_test.go
+index 4f792bd..f5efb51 100644
+--- a/src/cmd/link/link_test.go
++++ b/src/cmd/link/link_test.go
+@@ -447,3 +447,66 @@
+ t.Errorf("unexpected output:\n%s", out)
+ }
+ }
++
++const testTrampSrc = `
++package main
++import "fmt"
++func main() {
++ fmt.Println("hello")
++
++ defer func(){
++ if e := recover(); e == nil {
++ panic("did not panic")
++ }
++ }()
++ f1()
++}
++
++// Test deferreturn trampolines. See issue #39049.
++func f1() { defer f2() }
++func f2() { panic("XXX") }
++`
++
++func TestTrampoline(t *testing.T) {
++ // Test that trampoline insertion works as expected.
++ // For stress test, we set -debugtramp=2 flag, which sets a very low
++ // threshold for trampoline generation, and essentially all cross-package
++ // calls will use trampolines.
++ switch runtime.GOARCH {
++ case "arm", "ppc64", "ppc64le":
++ default:
++ t.Skipf("trampoline insertion is not implemented on %s", runtime.GOARCH)
++ }
++ if runtime.GOOS == "aix" {
++ t.Skip("trampolines on AIX doesn't work in Go 1.14") // fixed in Go 1.15
++ }
++
++ testenv.MustHaveGoBuild(t)
++
++ tmpdir, err := ioutil.TempDir("", "TestTrampoline")
++ if err != nil {
++ t.Fatal(err)
++ }
++ defer os.RemoveAll(tmpdir)
++
++ src := filepath.Join(tmpdir, "hello.go")
++ err = ioutil.WriteFile(src, []byte(testTrampSrc), 0666)
++ if err != nil {
++ t.Fatal(err)
++ }
++ exe := filepath.Join(tmpdir, "hello.exe")
++
++ cmd := exec.Command(testenv.GoToolPath(t), "build", "-ldflags=-debugtramp=2", "-o", exe, src)
++ out, err := cmd.CombinedOutput()
++ if err != nil {
++ t.Fatalf("build failed: %v\n%s", err, out)
++ }
++ cmd = exec.Command(exe)
++ out, err = cmd.CombinedOutput()
++ if err != nil {
++ t.Errorf("executable failed to run: %v\n%s", err, out)
++ }
++ if string(out) != "hello\n" {
++ t.Errorf("unexpected output:\n%s", out)
++ }
++}
diff --git a/golang.spec b/golang.spec
index fca21f4..4d6ec05 100644
--- a/golang.spec
+++ b/golang.spec
@@ -1,5 +1,10 @@
%bcond_with bootstrap
+# temporalily ignore test failures
+%ifarch %{ix86} aarch64 %{arm}
+%bcond_without ignore_tests
+%else
%bcond_with ignore_tests
+%endif
# build ids are not currently generated:
# https://code.google.com/p/go/issues/detail?id=5238
@@ -215,6 +220,7 @@ Requires: go-srpm-macros
Patch1: 0001-Don-t-use-the-bundled-tzdata-at-runtime-except-for-t.patch
Patch2: 0002-syscall-expose-IfInfomsg.X__ifi_pad-on-s390x.patch
Patch3: 0003-cmd-go-disable-Google-s-proxy-and-sumdb.patch
+Patch4: 0004-ppc64le-fix-missing-deferreturn.patch
# Having documentation separate was broken
Obsoletes: %{name}-docs < 1.1-4
@@ -507,9 +513,11 @@ export GO_LDFLAGS="-linkmode internal"
export CGO_ENABLED=0
%endif
# workaround for https://github.com/golang/go/issues/39466 until it gests fixed
-%ifarch aarch64
-export CGO_CFLAGS="-mno-outline-atomics"
-%endif
+# Commented until the patch is ready, this work around suggested in the link avobe
+# doesn't work properly
+#%ifarch aarch64
+#export CGO_CFLAGS="-mno-outline-atomics"
+#%endif
# make sure to not timeout
export GO_TEST_TIMEOUT_SCALE=2
@@ -586,6 +594,7 @@ fi
%changelog
* Tue Jun 30 2020 Alejandro Sáez <asm(a)redhat.com> - 1.14.4-1
- Rebase to go1.14.4
+- Add patch that fixes: https://golang.org/issue/39991
- Related: BZ#1842708
* Mon May 18 2020 Álex Sáez <asm(a)redhat.com> - 1.14.3-1
diff --git a/sources b/sources
index 3070ca8..156f73a 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (go1.14.3.src.tar.gz) = ab7454cf5e364a4b8d3035320bb8af5a3064accba51cb98211d2ba8afb116d07cedd6f637d068b31df6185b2f26a649da910bc865c4d52ee72b2664bfb6229bc
+SHA512 (go1.14.4.src.tar.gz) = b0d657ea33331062db5a4da0aff14798f292ca967a53665af1a93e04eba7a03e49a3dbc4768c4f099ec5ff25a31885750f7658f819057057093e2d7bfb085575
commit 91d21a3bde23ba19be67ce433c4770961eeb1127
Author: Jakub Čajka <jcajka(a)redhat.com>
Date: Fri Jul 3 08:31:27 2020 +0200
It is FALGS
diff --git a/golang.spec b/golang.spec
index 07c949a..fca21f4 100644
--- a/golang.spec
+++ b/golang.spec
@@ -508,7 +508,7 @@ export CGO_ENABLED=0
%endif
# workaround for https://github.com/golang/go/issues/39466 until it gests fixed
%ifarch aarch64
-export CGO_CFLAG="-mno-outline-atomics"
+export CGO_CFLAGS="-mno-outline-atomics"
%endif
# make sure to not timeout
commit ea99ebaff6b9561243bb43039458771edb691eaf
Author: Jakub Čajka <jcajka(a)redhat.com>
Date: Thu Jul 2 21:35:44 2020 +0200
Workaround tests failures on aarch64
diff --git a/golang.spec b/golang.spec
index 85b8f70..07c949a 100644
--- a/golang.spec
+++ b/golang.spec
@@ -506,6 +506,10 @@ export GO_LDFLAGS="-linkmode internal"
%if !%{cgo_enabled} || !%{external_linker}
export CGO_ENABLED=0
%endif
+# workaround for https://github.com/golang/go/issues/39466 until it gests fixed
+%ifarch aarch64
+export CGO_CFLAG="-mno-outline-atomics"
+%endif
# make sure to not timeout
export GO_TEST_TIMEOUT_SCALE=2
commit ecf8f72447d36ed238fefc571225228bbc905047
Author: Alejandro Sáez <asm(a)redhat.com>
Date: Tue Jun 30 18:10:31 2020 +0200
Rebase to go1.14.4
Related: BZ#1842708
diff --git a/golang.spec b/golang.spec
index 93eb31b..85b8f70 100644
--- a/golang.spec
+++ b/golang.spec
@@ -1,10 +1,5 @@
%bcond_with bootstrap
-# temporalily ignore test failures
-%ifarch %{ix86} aarch64 %{arm}
-%bcond_without ignore_tests
-%else
%bcond_with ignore_tests
-%endif
# build ids are not currently generated:
# https://code.google.com/p/go/issues/detail?id=5238
@@ -105,10 +100,10 @@
%endif
%global go_api 1.14
-%global go_version 1.14.3
+%global go_version 1.14.4
Name: golang
-Version: 1.14.3
+Version: 1.14.4
Release: 1%{?dist}
Summary: The Go Programming Language
# source tree includes several copies of Mark.Twain-Tom.Sawyer.txt under Public Domain
@@ -585,6 +580,10 @@ fi
%endif
%changelog
+* Tue Jun 30 2020 Alejandro Sáez <asm(a)redhat.com> - 1.14.4-1
+- Rebase to go1.14.4
+- Related: BZ#1842708
+
* Mon May 18 2020 Álex Sáez <asm(a)redhat.com> - 1.14.3-1
- Rebase to go1.14.3
- Resolves: BZ#1836015
3 years, 11 months
Architecture specific change in rpms/scorep.git
by githook-noreply@fedoraproject.org
The package rpms/scorep.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/scorep.git/commit/?id=26cbd0c2220...
https://src.fedoraproject.org/cgit/rpms/scorep.git/commit/?id=9ee730dc431....
Change:
+%ifarch x86_64
+%ifarch x86_64
Thanks.
Full change:
============
commit 26cbd0c22208a31b59a43ccdbc69b7b97bf76b5a
Merge: 9ee730d 118e329
Author: Dave Love <loveshack(a)fedoraproject.org>
Date: Wed Jul 15 11:02:59 2020 +0000
Merge remote-tracking branch 'origin/master' into epel7
Conflicts:
scorep.spec
diff --cc scorep.spec
index 45c6be7,581b463..a63fd54
--- a/scorep.spec
+++ b/scorep.spec
@@@ -243,10 -234,12 +243,15 @@@ tar fx %SOURCE
%build
+ # This package uses -Wl,-wrap to wrap calls at link time. This is incompatible
+ # with LTO.
+ # Disable LTO
+ %define _lto_cflags %{nil}
+
+%{?dts:. /opt/rh/%dts/enable}
%global _configure ../configure
+# It doesn't build on aarch64 due to missing ELF definitions
+%ifarch x86_64
pushd libunwind*
# Per Fedora packaging
sed -i 's/= UNW_ARM_METHOD_ALL/= UNW_ARM_METHOD_EXIDX/' src/arm/Gglobal.c
@@@ -480,14 -462,9 +485,17 @@@ make -C serial check V=
%changelog
+* Wed Jul 15 2020 Dave Love <loveshack(a)fedoraproject.org> - 6.0-9
+- Fix building gcc plugin, and reporting its use, on el7
+- Drop el6 conditionals
+- Don't try to install osh on aarch64
+
+ * Wed Jul 1 2020 Jeff Law <law(a)redhat.com> - 6.0-8
+ - Disable LTO
+
+* Thu Jun 11 2020 Dave Love <loveshack(a)fedoraproject.org> - 6.0-8
+- BR devtoolset-9 on el7
+
* Wed Feb 26 2020 Dave love <loveshack(a)fedoraproject.org> - 6.0-7
- Bundle the recommended modified libunwind
- Fix FTBFS with binutils 2.34
commit 9ee730dc4311abd82db641e60ff14626f67855d3
Author: Dave Love <loveshack(a)fedoraproject.org>
Date: Wed Jul 15 10:27:59 2020 +0000
- Fix building gcc plugin, and reporting its use, on el7
- Drop el6 conditionals
- Don't try to install osh on aarch64
diff --git a/scorep.spec b/scorep.spec
index 9aabca6..45c6be7 100644
--- a/scorep.spec
+++ b/scorep.spec
@@ -10,17 +10,19 @@
%global oshm 0
%endif
%endif
+%ifarch aarch64
+%{?el7:%global oshm 0}
+%endif
%global libuwcommit 5646a9b520c51bf6aaa86ae4c25289e30b7c3a41
%global libuwshort %(c=%{libuwcommit}; echo ${c:0:7})
-%if 0%{?el6}%{?el7}
-%global dts devtoolset-9
-%endif
+# Needed to get scorep-score built (depending on use of cube C++ lib)
+%{?el7:%global dts devtoolset-9}
Name: scorep
Version: 6.0
-Release: 8%{?dist}
+Release: 9%{?dist}
Summary: Scalable Performance Measurement Infrastructure for Parallel Codes
License: BSD
URL: http://www.vi-hps.org/projects/score-p/
@@ -45,6 +47,7 @@ BuildRequires: opari2 >= 2.0
BuildRequires: otf2-devel >= 2.0
BuildRequires: papi-devel
BuildRequires: gcc-plugin-devel
+%{?dts:BuildRequires: %dts-gcc-c++}
BuildRequires: gcc-c++
%if 0%{?dowrap}
BuildRequires: llvm-devel
@@ -242,6 +245,8 @@ tar fx %SOURCE1
%build
%{?dts:. /opt/rh/%dts/enable}
%global _configure ../configure
+# It doesn't build on aarch64 due to missing ELF definitions
+%ifarch x86_64
pushd libunwind*
# Per Fedora packaging
sed -i 's/= UNW_ARM_METHOD_ALL/= UNW_ARM_METHOD_EXIDX/' src/arm/Gglobal.c
@@ -253,6 +258,8 @@ CFLAGS="%build_cflags -fcommon" LDFLAGS="%build_ldflags" \
popd
# See above
PATH=$(pwd)/bin:$PATH
+%endif
+# Fixme: --disable-silent-rules or V=1 doesn't work in all parts of the build
%global configure_opts --enable-shared --disable-static --disable-silent-rules --with-unwind=$(pwd)/unwind
cp /usr/lib/rpm/redhat/config.{sub,guess} build-config/
@@ -262,7 +269,14 @@ mkdir serial
cd serial
%configure %{configure_opts} --without-mpi --without-shmem
find -name Makefile -exec sed -r -i 's,-L%{_libdir}/?( |$),,g;s,-L/usr/lib/../%{_lib} ,,g' {} \;
-%make_build
+
+# We need to build the plugin for the system compiler, which
+# presumably is going to be used when scorep is run, although we're
+# overall compiling with devtooset on el7. I couldn't see a better
+# way of doing it than re-configuring here.
+%{?el7:(cd build-gcc-plugin; export PATH=%_bindir:$PATH; ./config.status --recheck CXX=%_bindir/g++)}
+
+%make_build V=1
cd -
# Build MPI versions
@@ -270,11 +284,7 @@ for mpi in %{mpi_list}
do
mkdir $mpi
cd $mpi
-%if 0%{?el6}
- module load $mpi-%{_arch}
-%else
module load mpi/$mpi-%{_arch}
-%endif
%configure %{configure_opts} \
--libdir=%{_libdir}/$mpi/lib \
--bindir=%{_libdir}/$mpi/bin \
@@ -286,7 +296,9 @@ do
sed -i -e 's/HARDCODE_INTO_LIBS"]="1"/HARDCODE_INTO_LIBS"]="0"/' \
-e "s/hardcode_into_libs='yes'/hardcode_into_libs='no'/" \
build-backend/config.status
- %make_build
+ # See serial version
+ %{?el7:(cd build-gcc-plugin; export PATH=%_bindir:$PATH; ./config.status --recheck CXX=%_bindir/g++)}
+ %make_build V=1
module purge
cd -
done
@@ -299,17 +311,18 @@ chrpath -d %{buildroot}%{_libdir}/*.so.*
for mpi in %{mpi_list}
do
-%if 0%{?el6}
- module load $mpi-%{_arch}
-%else
module load mpi/$mpi-%{_arch}
-%endif
%make_install -C $mpi
module purge
done
find %{buildroot} -name '*.la' -exec rm -f {} ';'
find %{buildroot} -name '*.a' -delete
+# Fixme: I haven't figured out how to get this re-built with the final
+# build-gcc-plugin result; kludge it for now.
+find %{buildroot} -name scorep.summary | xargs sed -i -e "s|\
+no, missing plug-in headers, please install|\
+yes, using the C++ compiler and -I$(%_bindir/gcc -print-file-name=plugin/include)|"
%ldconfig_scriptlets libs
@@ -444,9 +457,11 @@ make -C serial check V=1
%{_libdir}/openmpi3/bin/scorep-mpicxx
%{_libdir}/openmpi3/bin/scorep-mpif77
%{_libdir}/openmpi3/bin/scorep-mpif90
+%if %oshm
%{_libdir}/openmpi3/bin/scorep-oshcc
%{_libdir}/openmpi3/bin/scorep-oshcxx
%{_libdir}/openmpi3/bin/scorep-oshfort
+%endif
%{_libdir}/openmpi3/bin/scorep-score
%{_libdir}/openmpi3/bin/scorep-wrapper
%{_libdir}/openmpi3/bin/scorep-online-access-registry
@@ -465,6 +480,11 @@ make -C serial check V=1
%changelog
+* Wed Jul 15 2020 Dave Love <loveshack(a)fedoraproject.org> - 6.0-9
+- Fix building gcc plugin, and reporting its use, on el7
+- Drop el6 conditionals
+- Don't try to install osh on aarch64
+
* Thu Jun 11 2020 Dave Love <loveshack(a)fedoraproject.org> - 6.0-8
- BR devtoolset-9 on el7
commit 99eccbd151b11943463a47278725f5148ab7abb6
Author: Dave Love <loveshack(a)fedoraproject.org>
Date: Fri Jun 12 08:28:38 2020 +0000
- BR devtoolset-9 on el7
diff --git a/scorep.spec b/scorep.spec
index ccdb0af..9aabca6 100644
--- a/scorep.spec
+++ b/scorep.spec
@@ -14,9 +14,13 @@
%global libuwcommit 5646a9b520c51bf6aaa86ae4c25289e30b7c3a41
%global libuwshort %(c=%{libuwcommit}; echo ${c:0:7})
+%if 0%{?el6}%{?el7}
+%global dts devtoolset-9
+%endif
+
Name: scorep
Version: 6.0
-Release: 7%{?dist}
+Release: 8%{?dist}
Summary: Scalable Performance Measurement Infrastructure for Parallel Codes
License: BSD
URL: http://www.vi-hps.org/projects/score-p/
@@ -48,6 +52,8 @@ BuildRequires: clang
BuildRequires: clang-devel
%endif
BuildRequires: automake libtool
+# Required for cubelib to build scorep-score against cubew 4.5
+%{?dts:BuildRequires: %dts-gcc-c++}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: binutils-devel%{?_isa}
Requires: cube-libs-devel%{?_isa} >= 4.4
@@ -234,6 +240,7 @@ tar fx %SOURCE1
%build
+%{?dts:. /opt/rh/%dts/enable}
%global _configure ../configure
pushd libunwind*
# Per Fedora packaging
@@ -307,6 +314,7 @@ find %{buildroot} -name '*.a' -delete
%ldconfig_scriptlets libs
%check
+%{?dts:. /opt/rh/%dts/enable}
%if %{with_openmpi}
%_openmpi_load
OMPI_MCA_rmaps_base_oversubscribe=1 \
@@ -457,6 +465,9 @@ make -C serial check V=1
%changelog
+* Thu Jun 11 2020 Dave Love <loveshack(a)fedoraproject.org> - 6.0-8
+- BR devtoolset-9 on el7
+
* Wed Feb 26 2020 Dave love <loveshack(a)fedoraproject.org> - 6.0-7
- Bundle the recommended modified libunwind
- Fix FTBFS with binutils 2.34
3 years, 11 months
[Report] Packages Restricting Arches
by root
Package that edited their arches constraints (2)
=============================================
- dotnet3.1
was ExclusiveArch: aarch64 x86_64
is ExclusiveArch: aarch64 x86_64
ExclusiveArch: x86_64
- libdfp
was ExclusiveArch: ppc ppc64 ppc64le s390 s390x
is ExclusiveArch: ppc ppc64 ppc64le s390 s390x x86_64
List of packages currently excluding arches (2705)
===========================================
- 0ad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- 90-Second-Portraits
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- GoldenCheetah
ExclusiveArch: %{qt5_qtwebengine_arches}
- GtkAda
ExclusiveArch: %{GPRbuild_arches}
- GtkAda3
ExclusiveArch: %{GPRbuild_arches}
- OpenImageIO
ExclusiveArch: x86_64 ppc64le
- PragmARC
ExclusiveArch: %{GPRbuild_arches}
- R-V8
ExclusiveArch: %{nodejs_arches}
- RdRand
ExclusiveArch: %{ix86} x86_64
- RediSearch
ExclusiveArch: x86_64
- SLOF
ExclusiveArch: ppc64le
- YafaRay
ExclusiveArch: %{ix86} x86_64
- aboot
ExclusiveArch: alpha
- acpid
ExclusiveArch: ia64 x86_64 %{ix86} %{arm} aarch64
- ahven
ExclusiveArch: %{GPRbuild_arches}
- algobox
ExclusiveArch: %{qt5_qtwebengine_arches}
- alleyoop
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x %{arm} aarch64
- american-fuzzy-lop
ExclusiveArch: %{ix86} x86_64
- anet
ExclusiveArch: %{GPRbuild_arches}
- anki
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- apmd
ExclusiveArch: %{ix86}
- appstream-generator
ExclusiveArch: x86_64 %{ix86} %{arm}
- arduino
ExclusiveArch: %{go_arches}
- arduino-builder
ExclusiveArch: %{go_arches}
- arm-trusted-firmware
ExclusiveArch: aarch64
- aunit
ExclusiveArch: %GPRbuild_arches
- avgtime
ExclusiveArch: %{ldc_arches}
- aws
ExclusiveArch: %GPRbuild_arches
- banshee
ExclusiveArch: %{mono_arches}
- banshee-community-extensions
ExclusiveArch: %ix86 x86_64 ppc ppc64 ia64 %{arm} sparcv9 alpha s390x
- bareftp
ExclusiveArch: %{mono_arches}
- bcal
ExclusiveArch: x86_64 aarch64 ia64 ppc64 ppc64le s390x
- bcc
ExclusiveArch: x86_64 %{power64} aarch64 s390x
- bcm283x-firmware
ExclusiveArch: %{arm} aarch64
- berusky2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{mips}
- biosdevname
ExclusiveArch: %{ix86} x86_64
- bless
ExclusiveArch: %mono_arches
- boo
ExclusiveArch: %{mono_arches}
- bpftrace
ExclusiveArch: x86_64 %{power64} aarch64
- calamares
ExclusiveArch: %{ix86} x86_64
- calibre
ExclusiveArch: %{qt5_qtwebengine_arches}
- carto
ExclusiveArch: %{nodejs_arches} noarch
- ccdciel
ExclusiveArch: %{fpc_arches}
- cdcollect
ExclusiveArch: %{mono_arches}
- ceph
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- chromium
ExclusiveArch: x86_64 i686
ExclusiveArch: x86_64 i686 aarch64
- cjdns
ExclusiveArch: %{nodejs_arches}
- cmospwd
ExclusiveArch: %{ix86} x86_64
- cmrt
ExclusiveArch: %{ix86} x86_64 ia64
- coffee-script
ExclusiveArch: %{nodejs_arches} noarch
- colorful
ExclusiveArch: %{fpc_arches}
- cpu-x
ExclusiveArch: i686 x86_64
- cpuid
ExclusiveArch: %{ix86} x86_64
- cqrlog
ExclusiveArch: %{fpc_arches}
- crash
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- cri-tools
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- criu
ExclusiveArch: x86_64 %{arm} ppc64le aarch64 s390x
- cryptlib
ExclusiveArch: x86_64 %{ix86} aarch64 ppc64 ppc64le
- cryptobone
ExclusiveArch: x86_64 %{ix86} ppc64 ppc64le aarch64
- daq
ExclusiveArch: x86_64 aarch64
- darktable
ExclusiveArch: x86_64 aarch64 ppc64le
ExclusiveArch: x86_64 ppc64le
- dbus-sharp
ExclusiveArch: %mono_arches
- dbus-sharp-glib
ExclusiveArch: %mono_arches
- dbxtool
ExclusiveArch: i386 x86_64 aarch64
- deepin-daemon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- discord-irc
ExclusiveArch: %{nodejs_arches} noarch
- dlm
ExclusiveArch: i686 x86_64
- dmidecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- docker-distribution
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- dolphin-emu
ExclusiveArch: x86_64 aarch64
- dotnet-build-reference-packages
ExclusiveArch: x86_64 aarch64
- dotnet3.1
ExclusiveArch: aarch64 x86_64
ExclusiveArch: x86_64
- doublecmd
ExclusiveArch: %{ix86} x86_64
- dpdk
ExclusiveArch: x86_64 i686 aarch64 ppc64le
- dssi-vst
ExclusiveArch: %{ix86} x86_64
- dyninst
ExclusiveArch: %{ix86} x86_64 ppc64le aarch64
- e3
ExclusiveArch: %{ix86} x86_64
- edac-utils
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64}
- edb
ExclusiveArch: %{ix86} x86_64
- edk2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: x86_64 aarch64
- efibootmgr
ExclusiveArch: %{efi}
- efivar
ExclusiveArch: %{efi}
- elasticdump
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- elk
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- embree
ExclusiveArch: x86_64
- enki
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- envytools
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- eric
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- extlinux-bootloader
ExclusiveArch: %{arm} aarch64
- fcitx-libpinyin
ExclusiveArch: %{qt5_qtwebengine_arches}
- fedora-dockerfiles
ExclusiveArch: %{go_arches}
- fes
ExclusiveArch: %{ix86} x86_64
- flannel
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- florist
ExclusiveArch: %{GPRbuild_arches}
- fpc
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64 ppc64le
- frescobaldi
ExclusiveArch: %{qt5_qtwebengine_arches}
- frysk
ExclusiveArch: %{ix86} x86_64 ppc64
- fst
ExclusiveArch: i686
- fwts
ExclusiveArch: x86_64 %{arm} aarch64 s390x %{power64}
- ga
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- gbrainy
ExclusiveArch: %mono_arches
- gdata-sharp
ExclusiveArch: %mono_arches
- gdb-exploitable
ExclusiveArch: x86_64 i386
ExclusiveArch: x86_64 noarch
- gearhead1
ExclusiveArch: %{fpc_arches}
- gela-asis
ExclusiveArch: %GPRbuild_arches
- ghdl
ExclusiveArch: %{GNAT_arches}
- ghostwriter
ExclusiveArch: %{qt5_qtwebengine_arches}
- gio-sharp
ExclusiveArch: %mono_arches
- gir-to-d
ExclusiveArch: %{ldc_arches}
- git-octopus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- giver
ExclusiveArch: %{mono_arches}
- gkeyfile-sharp
ExclusiveArch: %mono_arches
- glibc32
ExclusiveArch: x86_64
- glibd
ExclusiveArch: %{ldc_arches}
- gmqcc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- gnatcoll
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-bindings
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-db
ExclusiveArch: %{GPRbuild_arches}
- gnome-boxes
ExclusiveArch: x86_64
- gnome-desktop-sharp
ExclusiveArch: %mono_arches
- gnome-do
ExclusiveArch: %mono_arches
- gnome-guitar
ExclusiveArch: %{mono_arches}
- gnome-keyring-sharp
ExclusiveArch: %mono_arches
- gnome-rdp
ExclusiveArch: %{mono_arches}
- gnome-sharp
ExclusiveArch: %mono_arches
- gnome-subtitles
ExclusiveArch: %mono_arches
- gnu-efi
ExclusiveArch: %{efi}
- go-bindata
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- go-compilers
ExclusiveArch: %{go_arches}
- go-rpm-macros
ExclusiveArch: %{golang_arches} %{gccgo_arches}
- godep
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang
ExclusiveArch: %{golang_arches}
- gomtree
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- gotun
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: x86_64
- goverlay
ExclusiveArch: %{fpc_arches}
- gprbuild
ExclusiveArch: %{GPRbuild_arches} %{bootstrap_arch}
- gprolog
ExclusiveArch: x86_64 %{ix86} ppc alpha
- grafana
ExclusiveArch: %{grafana_arches}
- grafana-pcp
ExclusiveArch: %{nodejs_arches}
- gtk-sharp-beans
ExclusiveArch: %mono_arches
- gtk-sharp2
ExclusiveArch: %mono_arches
- gtk-sharp3
ExclusiveArch: %{mono_arches}
- gtkd
ExclusiveArch: %{ldc_arches}
- gudev-sharp
ExclusiveArch: %mono_arches
- hedgewars
ExclusiveArch: %{fpc_arches}
- hip
ExclusiveArch: x86_64
- hsakmt
ExclusiveArch: x86_64 aarch64
- hyena
ExclusiveArch: %{mono_arches}
- hyperscan
ExclusiveArch: x86_64
- hyperv-daemons
ExclusiveArch: i686 x86_64
- i3status-rs
ExclusiveArch: %{rust_arches}
- icaro
ExclusiveArch: %{ix86} x86_64 noarch
- imvirt
ExclusiveArch: %{ix86} x86_64 ia64
- indistarter
ExclusiveArch: %{fpc_arches}
- infinipath-psm
ExclusiveArch: x86_64
- intel-cmt-cat
ExclusiveArch: x86_64 i686 i586
ExclusiveArch: x86_64 i686 i586
- intel-gmmlib
ExclusiveArch: x86_64 i686
- intel-mediasdk
ExclusiveArch: x86_64
- intel-undervolt
ExclusiveArch: i386 x86_64
- ioport
ExclusiveArch: %{ix86} x86_64
- ipmctl
ExclusiveArch: x86_64
- ipw2100-firmware
ExclusiveArch: noarch i386 x86_64
- ipw2200-firmware
ExclusiveArch: noarch i386 x86_64
- iucode-tool
ExclusiveArch: %{ix86} x86_64
- iyfct
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- jake
ExclusiveArch: %{nodejs_arches} noarch
- java-1.8.0-openjdk-aarch32
ExclusiveArch: %{arm}
- keepass
ExclusiveArch: %{mono_arches}
- kernel
ExclusiveArch: x86_64 s390x %{arm} aarch64 ppc64le
ExclusiveArch: noarch i386 i686 x86_64 s390x %{arm} aarch64 ppc64le
- kf5-akonadi-search
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-audiocd-kio
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kalarmcal
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kblog
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kcalendarcore
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kcalendarutils
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kitinerary
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kmailtransport
ExclusiveArch: x86_64 %{arm}
- kf5-ktnef
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-libkdcraw
ExclusiveArch: x86_64 ppc64le %{arm}
- kicad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- kiwix-desktop
ExclusiveArch: %{qt5_qtwebengine_arches}
- knot-resolver
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- knotes
ExclusiveArch: x86_64 %{arm}
- kompose
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 s390x
- kosmtik
ExclusiveArch: %{nodejs_arches} noarch
- kubernetes
ExclusiveArch: x86_64 aarch64 ppc64le s390x %{arm}
- lazarus
ExclusiveArch: %{fpc_arches}
- lazpaint
ExclusiveArch: %{fpc_arches}
- ldc
ExclusiveArch: %{ldc_arches}
- libbsr
ExclusiveArch: %{power64}
- libclc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64} s390x
- libcxl
ExclusiveArch: %{power64}
- libdfp
ExclusiveArch: ppc ppc64 ppc64le s390 s390x x86_64
- libica
ExclusiveArch: s390 s390x
- libipt
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- libocxl
ExclusiveArch: ppc64le
- libpmemobj-cpp
ExclusiveArch: x86_64
- libpsm2
ExclusiveArch: x86_64
- libquentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- libretro-desmume2015
ExclusiveArch: i686 x86_64
- librtas
ExclusiveArch: %{power64}
- libservicelog
ExclusiveArch: ppc %{power64}
- libsmbios
ExclusiveArch: x86_64 %{ix86}
- libunwind
ExclusiveArch: %{arm} aarch64 hppa ia64 mips ppc %{power64} s390x %{ix86} x86_64
- libva-intel-hybrid-driver
ExclusiveArch: %{ix86} x86_64 ia64
- libvmi
ExclusiveArch: x86_64
- libvpd
ExclusiveArch: %{power64}
- libxsmm
ExclusiveArch: x86_64
- libzfcphbaapi
ExclusiveArch: s390 s390x
- lightdm
ExclusiveArch: x86_64 ppc64le
- lodash
ExclusiveArch: %{nodejs_arches} noarch
- log4net
ExclusiveArch: %mono_arches
- lrmi
ExclusiveArch: %{ix86}
- lsvpd
ExclusiveArch: %{power64}
- luajit
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 s390x ppc64le
- luxcorerender
ExclusiveArch: x86_64
- mactel-boot
ExclusiveArch: x86_64
- manifest-tool
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- mantle
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- matreshka
ExclusiveArch: %GPRbuild_arches
- maxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- mbpfan
ExclusiveArch: x86_64
- mcelog
ExclusiveArch: i686 x86_64
- mediaconch
ExclusiveArch: %{qt5_qtwebengine_arches}
- mellowplayer
ExclusiveArch: %{qt5_qtwebengine_arches}
- memkind
ExclusiveArch: x86_64
- memtest86+
ExclusiveArch: %{ix86} x86_64
- mesos
ExclusiveArch: x86_64
- microcode_ctl
ExclusiveArch: %{ix86} x86_64
- micropython
ExclusiveArch: %{arm} %{ix86} x86_64
- mine_detector
ExclusiveArch: %{GPRbuild_arches}
- minetest
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- mingw-wine-gecko
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- mirrorlist-server
ExclusiveArch: %{rust_arches}
- mkbootdisk
ExclusiveArch: %{ix86} sparc sparc64 x86_64
- mnemosyne
ExclusiveArch: noarch %{qt5_qtwebengine_arches}
- mocha
ExclusiveArch: %{nodejs_arches} noarch
- mod_mono
ExclusiveArch: %mono_arches
- module-build-service
ExclusiveArch: %{ix86} x86_64 noarch
- mokutil
ExclusiveArch: %{ix86} x86_64 aarch64
- mono
ExclusiveArch: %mono_arches
- mono-addins
ExclusiveArch: %mono_arches
- mono-basic
ExclusiveArch: %{mono_arches}
- mono-bouncycastle
ExclusiveArch: %mono_arches
- mono-cecil
ExclusiveArch: %mono_arches
- mono-cecil-flowanalysis
ExclusiveArch: %mono_arches
- mono-reflection
ExclusiveArch: %mono_arches
- mono-tools
ExclusiveArch: %mono_arches
- mono-zeroconf
ExclusiveArch: %mono_arches
- monobristol
ExclusiveArch: %{mono_arches}
- monodevelop
ExclusiveArch: %mono_arches
- monodevelop-debugger-gdb
ExclusiveArch: %{mono_arches}
- monosim
ExclusiveArch: %mono_arches
- mozilla-iot-gateway
ExclusiveArch: %{nodejs_arches} noarch
- mozilla-iot-gateway-addon-node
ExclusiveArch: %{nodejs_arches} noarch
- mrrescue
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- msr-tools
ExclusiveArch: %{ix86} x86_64
- mustache-d
ExclusiveArch: %{ldc_arches}
- mysql-connector-net
ExclusiveArch: %{mono_arches}
- nant
ExclusiveArch: %mono_arches
- nbc
ExclusiveArch: %{fpc_arches}
- nbdkit
ExclusiveArch: x86_64
- ndesk-dbus
ExclusiveArch: %{mono_arches}
- ndesk-dbus-glib
ExclusiveArch: %{mono_arches}
- newsflash
ExclusiveArch: %{rust_arches}
- newtonsoft-json
ExclusiveArch: %{mono_arches}
- nim
ExclusiveArch: %{nim_arches}
- node-gyp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs
ExclusiveArch: %{nodejs_arches}
- nodejs-Base64
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-acorn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-acorn-dynamic-import
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-acorn-jsx
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-acorn-object-spread
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-agentkeepalive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-align-text
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblack
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgcyan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bggreen
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgmagenta
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgwhite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgyellow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-black
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-blue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bold
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-cyan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-dim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-escapes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-gray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-green
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-grey
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-hidden
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-inverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-italic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-magenta
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-red
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-reset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-strikethrough
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-styles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-underline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-white
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-wrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-yellow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansicolors
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansistyles
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-any-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-any-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-append-field
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-append-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-are-we-there-yet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-argparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-argsparser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-exclude
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-union
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-buffer-from-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-differ
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-events
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-find
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-find-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-foreach
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-ify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-union
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-unique
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arraybuffer-dot-slice
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arraybuffer-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arrify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ascii-tree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ascli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-asn1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assert-plus
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assertion-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assume
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-async-arrays
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-limiter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-queue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-some
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asynckit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-atob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-auto-bind
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-autoresolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws-sign2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws4
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-code-frame
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-plugin-syntax-async-functions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-plugin-syntax-async-generators
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-runtime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-babylon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-backbone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-backoff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-balanced-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base-plugins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base32-encode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base64-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-base64id
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bash-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-basic-auth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bcrypt
ExclusiveArch: %{nodejs_arches}
- nodejs-beeper
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-benchmark
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-better-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-better-than-before
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bignumber-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bind-obj-methods
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bit-mask
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-blob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-block-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bluebird
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-body-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boolbase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-brace-expansion
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-braces
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-browser-stdout
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buble
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buf-compare
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-equal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-writer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bufferutil
ExclusiveArch: %{nodejs_arches}
- nodejs-builtin-modules
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-builtins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bundle-dependencies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bunker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-burrito
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-busboy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-byline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cache-base
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caching-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-call-delayed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-matcher
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-me-maybe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-signature
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-callback-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsites
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-carrier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caseless
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-center-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-as-promised
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-connect-middleware
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-json-schema
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-oauth2orize-grant
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-passport-strategy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-spies-next
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chainer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chalk
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-char-spinner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-character-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-chardet
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-charenc
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-charm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-check-env
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-check-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chroma-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chrono
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ci-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-circular-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-class-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clean-css
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clean-yaml-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clear-require
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-spinner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-table
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cliui
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-stats
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-closure-compiler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-co
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-co-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-co-with-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-coa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-code-point-at
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-codemirror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-coffee-coverage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-collection-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-color-support
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-colour
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-columnify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-combined-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commander
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-common-path-prefix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commondir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-compare-func
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-compare-versions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-inherit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-concat-map
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-concat-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-connect-livereload
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-console-group
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-consolemd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-constantinople
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-content-disposition
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-content-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-angular
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-atom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-codemirror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-ember
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-eslint
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-express
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jquery
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jscs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jshint
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-preset-loader
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-writer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-commits-filter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-commits-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-convert-hex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-copy-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-core-assert
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-core-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-core-util-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-coveralls
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-crc
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cross-spawn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cross-spawn-async
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-crypt
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cryptiles
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csrf
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-tree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-css-what
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csso
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-generate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-spectrum
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ctype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-currently-unhandled
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cycle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cyclist
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-d
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dargs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-data-uri-to-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dateformat
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-death
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-debug-fabulous
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debug-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debuglog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-decamelize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decamelize-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decimal-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dedent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-eql
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-equal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deep-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-default-require-extensions
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-defaults
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defence-cli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-define-properties
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-define-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-delayed-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-delegates
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dep-graph
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-depd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deprecated
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-indent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-newline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dezalgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dicer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-difflet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-difflib
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dirty-chai
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-discord-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-docopt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-doctrine
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dot-prop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dotfile-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-duplexer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duplexer2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-duplexify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duration
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-each
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ebnf-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-echomd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ee-first
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ejs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-emojione
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-empty-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-end-of-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-ex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es-abstract
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es-to-primitive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es5-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es5-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-iterator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-promisify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-weak-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escallmatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escape-html
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escape-regexp-component
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escape-string-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escope
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espower-location-detector
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-espurify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-esrecurse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estraverse-fb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estree-walker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-event-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-events
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-events-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-everything-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-brackets
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-tilde
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-express
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-extend-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extended-emitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-eyes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fancy-log
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fast-levenshtein
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fastfall
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-faucet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-figures
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-file-entry-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-file-sync-cmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-filelist
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-filename-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fill-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fill-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-first-chunk-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flagged-respawn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flush-write-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fmix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fn-dot-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-for-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-for-in
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-for-own
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-foreach
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-foreground-child
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forever-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-form-data
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-formatio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forwarded
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fragment-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-freetree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-from
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-dot-notify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-cached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fs-ext
ExclusiveArch: %{nodejs_arches}
- nodejs-fs-temp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-vacuum
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-write-stream-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-function-bind
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-function-loop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gauge
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gaze
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gdal
ExclusiveArch: %{nodejs_arches}
- nodejs-generate-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-generate-object-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-port
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-git-tails
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-github-url-from-username-repo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob-base
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-expand
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-parent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-to-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-global-modules
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-global-prefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globby
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globule
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glogg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gonzales-pe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-graceful-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-graceful-readlink
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-growl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-banner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-cli
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-contrib-nodeunit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-known-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-log-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-sed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-simple-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-handlebars
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-har-validator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-cors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-flag
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-symbols
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-unicode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-yarn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hash_file
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hawk
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-heap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-hex-to-array-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hoek
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-homedir-polyfill
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hook-std
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hosted-git-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hsluv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-deceiver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-errors
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-http-signature
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-humanize-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-i18n-transform
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-i2c
ExclusiveArch: %{nodejs_arches}
- nodejs-iconv
ExclusiveArch: %{nodejs_arches}
- nodejs-iconv-lite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-iferr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ignore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-image-size
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-immutable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-import-local
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-imul
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-imurmurhash
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-indent-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inflight
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-info-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inherit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-inherits
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-int64-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-intercept-require
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-interpret
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-invert-kv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ip
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ipaddr-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-irc-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irc-formatting
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irc-upd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irregular-plurals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-accessor-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-arrayish
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-boolean-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-builtin-module
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-callable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-data-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-date-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-dotfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-equal-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-extendable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-finite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-fullwidth-code-point
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-generator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-function
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-module
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-my-json-valid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-negated-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-number
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-number-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-odd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-path-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-in-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-inside
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-plain-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-plain-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-primitive
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-registered
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-relative
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-subset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-text-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-typedarray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-unc-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-valid-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-valid-instance
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-windows
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isarray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-isexe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isobject
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isodate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-coverage
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-hook
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-report
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-source-maps
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-reports
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jade
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jest-mock
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jison-lex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-base64
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-string-escape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-js-tokens
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jschardet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-localizer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json-stable-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stringify-safe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json3
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonm
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonpointer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonpointer-dot-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonselect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-keep-alive-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-keygrip
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-kind-of
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-klaw
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-kuler2gpl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lazy-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lcid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leaflet
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leaflet-formbuilder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leaflet-hash
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leche
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-left-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-less
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-less-plugin-clean-css
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-levn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-libpq
ExclusiveArch: %{nodejs_arches}
- nodejs-libxmljs
ExclusiveArch: %{nodejs_arches}
- nodejs-line-numbers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-line-reader
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linkify-it
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-locate-character
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-driver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-ok
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lolex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-long
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-longest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-loud-rejection
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lru-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lru-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-magic-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-make-arrow-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-generator-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makeerror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mapnik
ExclusiveArch: %{nodejs_arches}
- nodejs-mapnik-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mapnik-vector-tile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-markdown
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-markdown-it-testgen
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-matched
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-max-timeout
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mbtiles
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-md5
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5-hex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5-o-matic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mdn-data
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mdurl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-media-typer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoizee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-merge-descriptors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-metascript
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-micromatch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-millstone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mime-db
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mime-types
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimalistic-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-minipass
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mkdirp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-modify-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-module-not-found-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mongodb
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mongodb-core
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-monocle
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-multimatch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multipipe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-murmur-32
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mustache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mutate-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mv
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mysql
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mz
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nan1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nanomatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nanomsg
ExclusiveArch: %{nodejs_arches}
- nodejs-nanoseconds
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-needle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-negative-zero
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-net-browserify-alt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-next-tick
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-node-dot-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-expat
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-node-markdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-static
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-stringprep
ExclusiveArch: %{nodejs_arches}
- nodejs-node-uuid
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nodemon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nomnom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-noncharacters
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nopt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nopt-usage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-normalize-git-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-normalize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-cache-filename
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-install-checks
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-license
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-npm-package-arg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-run-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nth-check
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-number-is-nan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-numeral
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth-sign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth2orize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-assign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-copy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-dot-assign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-dot-omit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-inspect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-observable-to-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-obuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-okay
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-finished
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-headers
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-once
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-option-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-option-chain
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optionator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-orchestrator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ordered-read-streams
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-os-homedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-locale
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-tmpdir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-output-file-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-own-or
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-own-or-env
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-finally
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-limit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-locate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-try
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-package-license
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-packaging
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-packet-reader
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pad-left
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parallel-transform
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-github-repo-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parse-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-passwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parsejson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseqs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseuri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pascalcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-http-bearer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-strategy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-array
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path-dirname
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-exists
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-extra
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-absolute
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-inside
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-key
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-parse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-to-regexp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pathval
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pbkdf2-password
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pedding
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-connection-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-cursor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-escape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-int8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-native
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-numeric
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-packet-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-protocol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-types
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pgpass
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pinkie
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pinkie-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pkginfo
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-platform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-plur
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-posix-character-classes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-bytea
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-date
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-interval
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-precond
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prelude-ls
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-preserve
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-hrtime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pretty-time
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prism-media
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-process-nextick-args
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proclaim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-progress
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-progress-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-promises-aplus-tests
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prompt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-propagate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-propget
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proxy-addr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-proxyquire
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pruddy-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pseudomap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pump
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pumpify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qtdatastream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-queue-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-quick-lru
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rainbowsocks
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-random-bytes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-random-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-randomatic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-raw-body
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-re-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-all-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-read-cmd-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-pkg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readable-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-readdir-enhanced
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readdir-scoped-modules
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readdirp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-realize-package-specifier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rechoir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regex-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regex-not
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-remove-trailing-separator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-repeat-element
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeat-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeating
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-replace
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-replace-require-self
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-request
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-directory
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-inject
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-main-filename
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-relative
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-uncached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-yaml
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-cwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-from
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-pkg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resumer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-reusify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rewire
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rfile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rhea
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-right-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rimraf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rndm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rollup
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rollup-plugin-buble
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-commonjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-node-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-pluginutils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ronn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-runforcover
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safe-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-safe-json-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safe-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-safecb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-samsam
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-secure-random
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-seedrandom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-semver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sentiment
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sequencify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serialize-error
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-server-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-blocking
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-getter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-set-immediate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-immediate-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-setprototypeof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sha
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shallow-clone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-command
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shelljs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shelljs-nodecli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-should
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-should-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-format
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-http
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sift
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-signal-exit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-asyncify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-fmt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-markdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-single-line-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sinon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sinon-chai
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sinon-restore
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-slash
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sliced
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-slide
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-snapdragon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-capture
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-capture-set
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snekfetch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sntp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-socket-dot-io-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sorted-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-fixtures
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sparkles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-spawn-sync
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spawn-wrap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-exceptions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-license-ids
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spec
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spec-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-speedometer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sqlite3
ExclusiveArch: %{nodejs_arches}
- nodejs-srs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ssri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-trace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-utils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-static-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-statuses
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-combiner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-consume
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-pair
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-replace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-shift
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-spigot
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-streamsearch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-streamtest
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-dot-prototype-dot-repeat
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-dot-prototype-dot-trim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-string-width
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-string_decoder
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringmap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringscanner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringset
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-ansi
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-bom-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-color
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-eof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-json-comments
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-success-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-supervisor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-supports-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-suspend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-svgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-symbol-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-mocha-reporter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-out
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tap-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-spec
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tapes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar-pack
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temp-write
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tempfile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern-liferay
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-terst
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-testdata-w3c-json-form
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-testutil
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-text-extensions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-text-table
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-thenify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thenify-all
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-through2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-through2-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thunkify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tildify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tilelive-mapnik
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tiletype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-time-diff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-time-stamp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-timekeeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-timers-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tippex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tlds
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tmatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tmp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tmpl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-object-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-to-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-regex-range
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-toidentifier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-touch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tough-cookie
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tracejs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-transformers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-traverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-treeify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tressa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-trim-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim-off-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trivial-deferred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-try-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-try-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tryor
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tsame
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tslib
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tsscmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tunnel-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tv4
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tweetnacl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tweetnacl-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-check
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-type-detect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-name
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uc-dot-micro
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uid-safe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uid2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ultron
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-umask
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unc-path-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-underscore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unicode-length
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-union-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unique-filename
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-slug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unpipe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unset-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uri-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-urix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-use
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-user-home
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-deprecate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-inspect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utilities
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utils-merge
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uuid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vali-date
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-validate-npm-package-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vlq
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vow-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vows
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-walker
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ware
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-warning-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-watershed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wbuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wcwidth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-when
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-whet-dot-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-win-spawn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-window-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-winston
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-with
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wolfy87-eventemitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-woothee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wordwrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrap-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wrap-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrappy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-write-file-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ws
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xdg-basedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xml2js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlbuilder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlhttprequest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xtend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-y18n
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yallist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yapool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yargs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yargs-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yeast
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zeropad
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zipfile
ExclusiveArch: %{nodejs_arches}
- nodejs-zlibjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodeunit
ExclusiveArch: %{nodejs_arches} noarch
- notify-sharp
ExclusiveArch: %{mono_arches}
- notify-sharp3
ExclusiveArch: %{mono_arches}
- nuget
ExclusiveArch: %{mono_arches}
- numatop
ExclusiveArch: x86_64 ppc64le
- nunit
ExclusiveArch: %{mono_arches}
- nunit2
ExclusiveArch: %{mono_arches}
- nvml
ExclusiveArch: x86_64 ppc64le
- nwchem
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- obs-service-rust2rpm
ExclusiveArch: %{rust_arches} noarch
- oci-kvm-hook
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- oci-seccomp-bpf-hook
ExclusiveArch: x86_64 %{power64} aarch64 s390x
- oci-umount
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- oidn
ExclusiveArch: x86_64
- olpc-kbdshim
ExclusiveArch: %{ix86} %{arm}
- olpc-netutils
ExclusiveArch: %{ix86} %{arm}
- olpc-utils
ExclusiveArch: %{ix86} %{arm}
- onednn
ExclusiveArch: x86_64 aarch64
- onedrive
ExclusiveArch: %{ldc_arches}
- opae
ExclusiveArch: x86_64
- opal-prd
ExclusiveArch: ppc64le
- open-vm-tools
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64
- openblas
ExclusiveArch: %{openblas_arches}
- openjfx
ExclusiveArch: x86_64
- openjfx8
ExclusiveArch: x86_64
- openlibm
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 %{power64}
- openni
ExclusiveArch: %{ix86} x86_64 %{arm}
- openni-primesense
ExclusiveArch: %{ix86} x86_64 %{arm}
- openssl-ibmca
ExclusiveArch: s390 s390x
- origin
ExclusiveArch: %{go_arches}
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- orion
ExclusiveArch: %{qt5_qtwebengine_arches}
- orthorobot
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- paflib
ExclusiveArch: ppc %{power64}
- pcc
ExclusiveArch: %{ix86} x86_64
- pcmciautils
ExclusiveArch: %{ix86} x86_64 ia64 ppc ppc64 %{arm}
- pdfmod
ExclusiveArch: %mono_arches
- peripety
ExclusiveArch: %{rust_arches}
- perl-Dumbbench
ExclusiveArch: %{ix86} x86_64 noarch
- perl-Parse-DMIDecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- pesign
ExclusiveArch: %{ix86} x86_64 ia64 aarch64 %{arm}
- pesign-test-app
ExclusiveArch: x86_64
- pinta
ExclusiveArch: %mono_arches
- pioneer
ExclusiveArch: %{ix86} x86_64
- pmdk-convert
ExclusiveArch: x86_64
- pmemkv
ExclusiveArch: x86_64
- pocl
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- poppler-sharp
ExclusiveArch: %mono_arches
- popub
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- powerpc-utils
ExclusiveArch: ppc %{power64}
- ppc64-diag
ExclusiveArch: ppc %{power64}
- pveclib
ExclusiveArch: ppc %{power64}
- pvs-sbcl
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- pyqtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- python-etcd
ExclusiveArch: noarch %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- python-healpy
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-javabridge
ExclusiveArch: i686 x86_64
- python-openoffice
ExclusiveArch: noarch x86_64
- python-pymoc
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-rpi-gpio
ExclusiveArch: %{arm} aarch64
- q4wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- qcint
ExclusiveArch: x86_64
- qclib
ExclusiveArch: s390 s390x
- qevercloud
ExclusiveArch: %{qt5_qtwebengine_arches}
- qmapshack
ExclusiveArch: %{qt5_qtwebengine_arches}
- qt4pas
ExclusiveArch: %{fpc_arches}
- qt5-qtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- quantum-espresso
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86}
- quentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- rear
ExclusiveArch: %ix86 x86_64 ppc ppc64 ppc64le ia64
- redhat-lsb
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- reg
ExclusiveArch: x86_64
- renderdoc
ExclusiveArch: %{ix86} x86_64
- reptyr
ExclusiveArch: %{ix86} x86_64 %{arm}
- rescene
ExclusiveArch: %{mono_arches}
- restsharp
ExclusiveArch: %{mono_arches}
- rhythmbox-alternative-toolbar
ExclusiveArch: %{ix86} %{arm} x86_64 ppc64 ppc64le
- rmd
ExclusiveArch: %{ix86} x86_64
- rocm-runtime
ExclusiveArch: x86_64 aarch64
- rocminfo
ExclusiveArch: x86_64 aarch64
- rpm-ostree
ExclusiveArch: %{rust_arches}
- rr
ExclusiveArch: %{ix86} x86_64
- rssguard
ExclusiveArch: %{qt5_qtwebengine_arches}
- rubygem-childprocess
ExclusiveArch: %{ix86} x86_64 noarch
- runc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le %{mips} s390x
- rust
ExclusiveArch: %{rust_arches}
- rust-abomonation
ExclusiveArch: %{rust_arches}
- rust-actix
ExclusiveArch: %{rust_arches}
- rust-actix-codec
ExclusiveArch: %{rust_arches}
- rust-actix-connect
ExclusiveArch: %{rust_arches}
- rust-actix-files
ExclusiveArch: %{rust_arches}
- rust-actix-http
ExclusiveArch: %{rust_arches}
- rust-actix-macros
ExclusiveArch: %{rust_arches}
- rust-actix-router
ExclusiveArch: %{rust_arches}
- rust-actix-rt
ExclusiveArch: %{rust_arches}
- rust-actix-server
ExclusiveArch: %{rust_arches}
- rust-actix-server-config
ExclusiveArch: %{rust_arches}
- rust-actix-service
ExclusiveArch: %{rust_arches}
- rust-actix-testing
ExclusiveArch: %{rust_arches}
- rust-actix-threadpool
ExclusiveArch: %{rust_arches}
- rust-actix-tls
ExclusiveArch: %{rust_arches}
- rust-actix-utils
ExclusiveArch: %{rust_arches}
- rust-actix-web
ExclusiveArch: %{rust_arches}
- rust-actix-web-codegen
ExclusiveArch: %{rust_arches}
- rust-actix_derive
ExclusiveArch: %{rust_arches}
- rust-addr2line
ExclusiveArch: %{rust_arches}
- rust-adler32
ExclusiveArch: %{rust_arches}
- rust-aes
ExclusiveArch: %{rust_arches}
- rust-aes-soft
ExclusiveArch: %{rust_arches}
- rust-afterburn
ExclusiveArch: %{rust_arches}
- rust-ahash
ExclusiveArch: %{rust_arches}
- rust-aho-corasick
ExclusiveArch: %{rust_arches}
- rust-alga
ExclusiveArch: %{rust_arches}
- rust-alga_derive
ExclusiveArch: %{rust_arches}
- rust-alloc-no-stdlib
ExclusiveArch: %{rust_arches}
- rust-alloc-stdlib
ExclusiveArch: %{rust_arches}
- rust-alphanumeric-sort
ExclusiveArch: %{rust_arches}
- rust-ammonia
ExclusiveArch: %{rust_arches}
- rust-ansi_colours
ExclusiveArch: %{rust_arches}
- rust-ansi_term
ExclusiveArch: %{rust_arches}
- rust-ansi_term0.11
ExclusiveArch: %{rust_arches}
- rust-antidote
ExclusiveArch: %{rust_arches}
- rust-anyhow
ExclusiveArch: %{rust_arches}
- rust-anymap
ExclusiveArch: %{rust_arches}
- rust-aom-sys
ExclusiveArch: %{rust_arches}
- rust-app_dirs
ExclusiveArch: %{rust_arches}
- rust-approx
ExclusiveArch: %{rust_arches}
- rust-arbitrary
ExclusiveArch: %{rust_arches}
- rust-arc-swap
ExclusiveArch: %{rust_arches}
- rust-arg_enum_proc_macro
ExclusiveArch: %{rust_arches}
- rust-argparse
ExclusiveArch: %{rust_arches}
- rust-array-init
ExclusiveArch: %{rust_arches}
- rust-arraydeque
ExclusiveArch: %{rust_arches}
- rust-arrayref
ExclusiveArch: %{rust_arches}
- rust-arrayvec
ExclusiveArch: %{rust_arches}
- rust-article_scraper
ExclusiveArch: %{rust_arches}
- rust-ascii
ExclusiveArch: %{rust_arches}
- rust-askalono
ExclusiveArch: %{rust_arches}
- rust-askalono-cli
ExclusiveArch: %{rust_arches}
- rust-askama
ExclusiveArch: %{rust_arches}
- rust-askama_derive
ExclusiveArch: %{rust_arches}
- rust-askama_escape
ExclusiveArch: %{rust_arches}
- rust-askama_shared
ExclusiveArch: %{rust_arches}
- rust-assert-json-diff
ExclusiveArch: %{rust_arches}
- rust-assert_cli
ExclusiveArch: %{rust_arches}
- rust-assert_cmd
ExclusiveArch: %{rust_arches}
- rust-assert_fs
ExclusiveArch: %{rust_arches}
- rust-assert_matches
ExclusiveArch: %{rust_arches}
- rust-async-attributes
ExclusiveArch: %{rust_arches}
- rust-async-compression
ExclusiveArch: %{rust_arches}
- rust-async-task
ExclusiveArch: %{rust_arches}
- rust-async-trait
ExclusiveArch: %{rust_arches}
- rust-asyncgit
ExclusiveArch: %{rust_arches}
- rust-atk
ExclusiveArch: %{rust_arches}
- rust-atk-sys
ExclusiveArch: %{rust_arches}
- rust-atom
ExclusiveArch: %{rust_arches}
- rust-atomicwrites
ExclusiveArch: %{rust_arches}
- rust-attohttpc
ExclusiveArch: %{rust_arches}
- rust-atty
ExclusiveArch: %{rust_arches}
- rust-autocfg
ExclusiveArch: %{rust_arches}
- rust-average
ExclusiveArch: %{rust_arches}
- rust-awc
ExclusiveArch: %{rust_arches}
- rust-backtrace
ExclusiveArch: %{rust_arches}
- rust-backtrace-sys
ExclusiveArch: %{rust_arches}
- rust-base100
ExclusiveArch: %{rust_arches}
- rust-base64
ExclusiveArch: %{rust_arches}
- rust-base64-0.10
ExclusiveArch: %{rust_arches}
- rust-base64-0.11
ExclusiveArch: %{rust_arches}
- rust-bat
ExclusiveArch: %{rust_arches}
- rust-battery
ExclusiveArch: %{rust_arches}
- rust-bencher
ExclusiveArch: %{rust_arches}
- rust-better-panic
ExclusiveArch: %{rust_arches}
- rust-bincode
ExclusiveArch: %{rust_arches}
- rust-bincode0.8
ExclusiveArch: %{rust_arches}
- rust-bindgen
ExclusiveArch: %{rust_arches}
- rust-bit-set
ExclusiveArch: %{rust_arches}
- rust-bit-vec
ExclusiveArch: %{rust_arches}
- rust-bitfield
ExclusiveArch: %{rust_arches}
- rust-bitflags
ExclusiveArch: %{rust_arches}
- rust-bitmaps
ExclusiveArch: %{rust_arches}
- rust-bitstream-io
ExclusiveArch: %{rust_arches}
- rust-blake2
ExclusiveArch: %{rust_arches}
- rust-blobby
ExclusiveArch: %{rust_arches}
- rust-block-buffer
ExclusiveArch: %{rust_arches}
- rust-block-buffer0.7
ExclusiveArch: %{rust_arches}
- rust-block-cipher
ExclusiveArch: %{rust_arches}
- rust-block-cipher-trait
ExclusiveArch: %{rust_arches}
- rust-block-modes
ExclusiveArch: %{rust_arches}
- rust-block-padding
ExclusiveArch: %{rust_arches}
- rust-bodhi
ExclusiveArch: %{rust_arches}
- rust-bodhi-cli
ExclusiveArch: %{rust_arches}
- rust-box_drawing
ExclusiveArch: %{rust_arches}
- rust-brev
ExclusiveArch: %{rust_arches}
- rust-brotli
ExclusiveArch: %{rust_arches}
- rust-brotli-decompressor
ExclusiveArch: %{rust_arches}
- rust-brotli-sys
ExclusiveArch: %{rust_arches}
- rust-brotli2
ExclusiveArch: %{rust_arches}
- rust-bstr
ExclusiveArch: %{rust_arches}
- rust-buf_redux
ExclusiveArch: %{rust_arches}
- rust-bufstream
ExclusiveArch: %{rust_arches}
- rust-build_const
ExclusiveArch: %{rust_arches}
- rust-bumpalo
ExclusiveArch: %{rust_arches}
- rust-byte-tools
ExclusiveArch: %{rust_arches}
- rust-byte-unit
ExclusiveArch: %{rust_arches}
- rust-bytecount
ExclusiveArch: %{rust_arches}
- rust-bytemuck
ExclusiveArch: %{rust_arches}
- rust-byteorder
ExclusiveArch: %{rust_arches}
- rust-bytes
ExclusiveArch: %{rust_arches}
- rust-bytes0.3
ExclusiveArch: %{rust_arches}
- rust-bytes0.4
ExclusiveArch: %{rust_arches}
- rust-bytesize
ExclusiveArch: %{rust_arches}
- rust-bytestring
ExclusiveArch: %{rust_arches}
- rust-bzip2
ExclusiveArch: %{rust_arches}
- rust-bzip2-sys
ExclusiveArch: %{rust_arches}
- rust-c2-chacha
ExclusiveArch: %{rust_arches}
- rust-c_vec
ExclusiveArch: %{rust_arches}
- rust-cairo-rs
ExclusiveArch: %{rust_arches}
- rust-cairo-sys-rs
ExclusiveArch: %{rust_arches}
- rust-calloop
ExclusiveArch: %{rust_arches}
- rust-caps
ExclusiveArch: %{rust_arches}
- rust-cargo
ExclusiveArch: %{rust_arches}
- rust-cargo-bloat
ExclusiveArch: %{rust_arches}
- rust-cargo-c
ExclusiveArch: %{rust_arches}
- rust-cargo-husky
ExclusiveArch: %{rust_arches}
- rust-cargo-insta
ExclusiveArch: %{rust_arches}
- rust-cargo-platform
ExclusiveArch: %{rust_arches}
- rust-cargo-readme
ExclusiveArch: %{rust_arches}
- rust-cargo_metadata
ExclusiveArch: %{rust_arches}
- rust-cassowary
ExclusiveArch: %{rust_arches}
- rust-cast
ExclusiveArch: %{rust_arches}
- rust-cbindgen
ExclusiveArch: %{rust_arches}
- rust-cc
ExclusiveArch: %{rust_arches}
- rust-cexpr
ExclusiveArch: %{rust_arches}
- rust-cfg-if
ExclusiveArch: %{rust_arches}
- rust-chainerror
ExclusiveArch: %{rust_arches}
- rust-charset
ExclusiveArch: %{rust_arches}
- rust-chbs
ExclusiveArch: %{rust_arches}
- rust-checked_int_cast
ExclusiveArch: %{rust_arches}
- rust-choosier
ExclusiveArch: %{rust_arches}
- rust-chrono
ExclusiveArch: %{rust_arches}
- rust-chrono-humanize
ExclusiveArch: %{rust_arches}
- rust-chrono-tz
ExclusiveArch: %{rust_arches}
- rust-chunked_transfer
ExclusiveArch: %{rust_arches}
- rust-clang-sys
ExclusiveArch: %{rust_arches}
- rust-clap
ExclusiveArch: %{rust_arches}
- rust-clicolors-control
ExclusiveArch: %{rust_arches}
- rust-cmake
ExclusiveArch: %{rust_arches}
- rust-color-backtrace
ExclusiveArch: %{rust_arches}
- rust-color_quant
ExclusiveArch: %{rust_arches}
- rust-colored
ExclusiveArch: %{rust_arches}
- rust-colored_json
ExclusiveArch: %{rust_arches}
- rust-compiletest_rs
ExclusiveArch: %{rust_arches}
- rust-comrak
ExclusiveArch: %{rust_arches}
- rust-config
ExclusiveArch: %{rust_arches}
- rust-console
ExclusiveArch: %{rust_arches}
- rust-console0.9
ExclusiveArch: %{rust_arches}
- rust-const-random
ExclusiveArch: %{rust_arches}
- rust-const-random-macro
ExclusiveArch: %{rust_arches}
- rust-content_inspector
ExclusiveArch: %{rust_arches}
- rust-conv
ExclusiveArch: %{rust_arches}
- rust-cookie
ExclusiveArch: %{rust_arches}
- rust-cookie_store
ExclusiveArch: %{rust_arches}
- rust-copyless
ExclusiveArch: %{rust_arches}
- rust-copypasta
ExclusiveArch: %{rust_arches}
- rust-coreos-installer
ExclusiveArch: %{rust_arches}
- rust-cpio
ExclusiveArch: %{rust_arches}
- rust-cpp_demangle
ExclusiveArch: %{rust_arches}
- rust-crates-io
ExclusiveArch: %{rust_arches}
- rust-crc
ExclusiveArch: %{rust_arches}
- rust-crc-any
ExclusiveArch: %{rust_arches}
- rust-crc-core
ExclusiveArch: %{rust_arches}
- rust-crc32fast
ExclusiveArch: %{rust_arches}
- rust-criterion
ExclusiveArch: %{rust_arches}
- rust-criterion-plot
ExclusiveArch: %{rust_arches}
- rust-crossbeam
ExclusiveArch: %{rust_arches}
- rust-crossbeam-channel
ExclusiveArch: %{rust_arches}
- rust-crossbeam-deque
ExclusiveArch: %{rust_arches}
- rust-crossbeam-epoch
ExclusiveArch: %{rust_arches}
- rust-crossbeam-queue
ExclusiveArch: %{rust_arches}
- rust-crossbeam-utils
ExclusiveArch: %{rust_arches}
- rust-crossterm
ExclusiveArch: %{rust_arches}
- rust-crypto-hash
ExclusiveArch: %{rust_arches}
- rust-crypto-mac
ExclusiveArch: %{rust_arches}
- rust-cryptovec
ExclusiveArch: %{rust_arches}
- rust-cssparser
ExclusiveArch: %{rust_arches}
- rust-cssparser-macros
ExclusiveArch: %{rust_arches}
- rust-csv
ExclusiveArch: %{rust_arches}
- rust-csv-core
ExclusiveArch: %{rust_arches}
- rust-ctrlc
ExclusiveArch: %{rust_arches}
- rust-curl
ExclusiveArch: %{rust_arches}
- rust-curl-sys
ExclusiveArch: %{rust_arches}
- rust-custom_derive
ExclusiveArch: %{rust_arches}
- rust-darling
ExclusiveArch: %{rust_arches}
- rust-darling_core
ExclusiveArch: %{rust_arches}
- rust-darling_macro
ExclusiveArch: %{rust_arches}
- rust-dashmap
ExclusiveArch: %{rust_arches}
- rust-data-encoding
ExclusiveArch: %{rust_arches}
- rust-data-url
ExclusiveArch: %{rust_arches}
- rust-datetime
ExclusiveArch: %{rust_arches}
- rust-dav1d-sys
ExclusiveArch: %{rust_arches}
- rust-dbus
ExclusiveArch: %{rust_arches}
- rust-dbus0.2
ExclusiveArch: %{rust_arches}
- rust-dbus0.6
ExclusiveArch: %{rust_arches}
- rust-debug-helper
ExclusiveArch: %{rust_arches}
- rust-decimal
ExclusiveArch: %{rust_arches}
- rust-deflate
ExclusiveArch: %{rust_arches}
- rust-defmac
ExclusiveArch: %{rust_arches}
- rust-delta_e
ExclusiveArch: %{rust_arches}
- rust-derive_builder
ExclusiveArch: %{rust_arches}
- rust-derive_builder_core
ExclusiveArch: %{rust_arches}
- rust-derive_more
ExclusiveArch: %{rust_arches}
- rust-des
ExclusiveArch: %{rust_arches}
- rust-desed
ExclusiveArch: %{rust_arches}
- rust-deunicode
ExclusiveArch: %{rust_arches}
- rust-devicemapper
ExclusiveArch: %{rust_arches}
- rust-dialoguer
ExclusiveArch: %{rust_arches}
- rust-diesel
ExclusiveArch: %{rust_arches}
- rust-diesel_derives
ExclusiveArch: %{rust_arches}
- rust-diesel_migrations
ExclusiveArch: %{rust_arches}
- rust-diff
ExclusiveArch: %{rust_arches}
- rust-difference
ExclusiveArch: %{rust_arches}
- rust-digest
ExclusiveArch: %{rust_arches}
- rust-digest0.8
ExclusiveArch: %{rust_arches}
- rust-directories
ExclusiveArch: %{rust_arches}
- rust-dirs
ExclusiveArch: %{rust_arches}
- rust-dirs-sys
ExclusiveArch: %{rust_arches}
- rust-diskonaut
ExclusiveArch: %{rust_arches}
- rust-dissimilar
ExclusiveArch: %{rust_arches}
- rust-dlib
ExclusiveArch: %{rust_arches}
- rust-dns-lookup
ExclusiveArch: %{rust_arches}
- rust-dns-parser
ExclusiveArch: %{rust_arches}
- rust-doc-comment
ExclusiveArch: %{rust_arches}
- rust-docmatic
ExclusiveArch: %{rust_arches}
- rust-docopt
ExclusiveArch: %{rust_arches}
- rust-dotenv
ExclusiveArch: %{rust_arches}
- rust-downcast-rs
ExclusiveArch: %{rust_arches}
- rust-dtoa
ExclusiveArch: %{rust_arches}
- rust-dtoa-short
ExclusiveArch: %{rust_arches}
- rust-dua-cli
ExclusiveArch: %{rust_arches}
- rust-duct
ExclusiveArch: %{rust_arches}
- rust-dunce
ExclusiveArch: %{rust_arches}
- rust-dutree
ExclusiveArch: %{rust_arches}
- rust-edit-distance
ExclusiveArch: %{rust_arches}
- rust-either
ExclusiveArch: %{rust_arches}
- rust-elasticlunr-rs
ExclusiveArch: %{rust_arches}
- rust-encode_unicode
ExclusiveArch: %{rust_arches}
- rust-encoding
ExclusiveArch: %{rust_arches}
- rust-encoding-index-japanese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-korean
ExclusiveArch: %{rust_arches}
- rust-encoding-index-simpchinese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-singlebyte
ExclusiveArch: %{rust_arches}
- rust-encoding-index-tradchinese
ExclusiveArch: %{rust_arches}
- rust-encoding_index_tests
ExclusiveArch: %{rust_arches}
- rust-encoding_rs
ExclusiveArch: %{rust_arches}
- rust-encoding_rs_io
ExclusiveArch: %{rust_arches}
- rust-entities
ExclusiveArch: %{rust_arches}
- rust-enum-as-inner
ExclusiveArch: %{rust_arches}
- rust-enum_primitive
ExclusiveArch: %{rust_arches}
- rust-enumflags2
ExclusiveArch: %{rust_arches}
- rust-enumflags2_derive
ExclusiveArch: %{rust_arches}
- rust-env_logger
ExclusiveArch: %{rust_arches}
- rust-env_logger0.4
ExclusiveArch: %{rust_arches}
- rust-env_logger0.5
ExclusiveArch: %{rust_arches}
- rust-env_logger0.6
ExclusiveArch: %{rust_arches}
- rust-environment
ExclusiveArch: %{rust_arches}
- rust-envsubst
ExclusiveArch: %{rust_arches}
- rust-erased-serde
ExclusiveArch: %{rust_arches}
- rust-err-derive
ExclusiveArch: %{rust_arches}
- rust-errln
ExclusiveArch: %{rust_arches}
- rust-errno
ExclusiveArch: %{rust_arches}
- rust-error-chain
ExclusiveArch: %{rust_arches}
- rust-escaper
ExclusiveArch: %{rust_arches}
- rust-escargot
ExclusiveArch: %{rust_arches}
- rust-euclid
ExclusiveArch: %{rust_arches}
- rust-exa
ExclusiveArch: %{rust_arches}
- rust-expat-sys
ExclusiveArch: %{rust_arches}
- rust-extend
ExclusiveArch: %{rust_arches}
- rust-extprim
ExclusiveArch: %{rust_arches}
- rust-extprim_literals_macros
ExclusiveArch: %{rust_arches}
- rust-fail
ExclusiveArch: %{rust_arches}
- rust-failure
ExclusiveArch: %{rust_arches}
- rust-failure-tools
ExclusiveArch: %{rust_arches}
- rust-failure_derive
ExclusiveArch: %{rust_arches}
- rust-fake
ExclusiveArch: %{rust_arches}
- rust-fake-simd
ExclusiveArch: %{rust_arches}
- rust-fake_clock
ExclusiveArch: %{rust_arches}
- rust-fallible-iterator
ExclusiveArch: %{rust_arches}
- rust-fd-find
ExclusiveArch: %{rust_arches}
- rust-fedora
ExclusiveArch: %{rust_arches}
- rust-fedora-coreos-pinger
ExclusiveArch: %{rust_arches}
- rust-fedora-update-feedback
ExclusiveArch: %{rust_arches}
- rust-feed-rs
ExclusiveArch: %{rust_arches}
- rust-feedbin_api
ExclusiveArch: %{rust_arches}
- rust-feedly_api
ExclusiveArch: %{rust_arches}
- rust-fern
ExclusiveArch: %{rust_arches}
- rust-fever_api
ExclusiveArch: %{rust_arches}
- rust-ffsend
ExclusiveArch: %{rust_arches}
- rust-ffsend-api
ExclusiveArch: %{rust_arches}
- rust-filesize
ExclusiveArch: %{rust_arches}
- rust-filetime
ExclusiveArch: %{rust_arches}
- rust-findshlibs
ExclusiveArch: %{rust_arches}
- rust-fixedbitset
ExclusiveArch: %{rust_arches}
- rust-flame
ExclusiveArch: %{rust_arches}
- rust-flate2
ExclusiveArch: %{rust_arches}
- rust-float-cmp
ExclusiveArch: %{rust_arches}
- rust-float-ord
ExclusiveArch: %{rust_arches}
- rust-flume
ExclusiveArch: %{rust_arches}
- rust-fnv
ExclusiveArch: %{rust_arches}
- rust-foreign-types
ExclusiveArch: %{rust_arches}
- rust-foreign-types-shared
ExclusiveArch: %{rust_arches}
- rust-fragile
ExclusiveArch: %{rust_arches}
- rust-freetype-rs
ExclusiveArch: %{rust_arches}
- rust-freetype-sys
ExclusiveArch: %{rust_arches}
- rust-fs2
ExclusiveArch: %{rust_arches}
- rust-fs_extra
ExclusiveArch: %{rust_arches}
- rust-fuse
ExclusiveArch: %{rust_arches}
- rust-futf
ExclusiveArch: %{rust_arches}
- rust-futures
ExclusiveArch: %{rust_arches}
- rust-futures-channel
ExclusiveArch: %{rust_arches}
- rust-futures-core
ExclusiveArch: %{rust_arches}
- rust-futures-cpupool
ExclusiveArch: %{rust_arches}
- rust-futures-executor
ExclusiveArch: %{rust_arches}
- rust-futures-io
ExclusiveArch: %{rust_arches}
- rust-futures-macro
ExclusiveArch: %{rust_arches}
- rust-futures-sink
ExclusiveArch: %{rust_arches}
- rust-futures-task
ExclusiveArch: %{rust_arches}
- rust-futures-timer
ExclusiveArch: %{rust_arches}
- rust-futures-util
ExclusiveArch: %{rust_arches}
- rust-futures0.1
ExclusiveArch: %{rust_arches}
- rust-fuzzy-matcher
ExclusiveArch: %{rust_arches}
- rust-fxhash
ExclusiveArch: %{rust_arches}
- rust-gcsf
ExclusiveArch: %{rust_arches}
- rust-gdk
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf-sys
ExclusiveArch: %{rust_arches}
- rust-gdk-sys
ExclusiveArch: %{rust_arches}
- rust-generic-array
ExclusiveArch: %{rust_arches}
- rust-generic-array0.12
ExclusiveArch: %{rust_arches}
- rust-getch
ExclusiveArch: %{rust_arches}
- rust-gethostname
ExclusiveArch: %{rust_arches}
- rust-getopts
ExclusiveArch: %{rust_arches}
- rust-getrandom
ExclusiveArch: %{rust_arches}
- rust-gettext-rs
ExclusiveArch: %{rust_arches}
- rust-gettext-sys
ExclusiveArch: %{rust_arches}
- rust-gif
ExclusiveArch: %{rust_arches}
- rust-gimli
ExclusiveArch: %{rust_arches}
- rust-gio
ExclusiveArch: %{rust_arches}
- rust-gio-sys
ExclusiveArch: %{rust_arches}
- rust-gir-format-check
ExclusiveArch: %{rust_arches}
- rust-git-delta
ExclusiveArch: %{rust_arches}
- rust-git2
ExclusiveArch: %{rust_arches}
- rust-git2-curl
ExclusiveArch: %{rust_arches}
- rust-gitui
ExclusiveArch: %{rust_arches}
- rust-gl_generator
ExclusiveArch: %{rust_arches}
- rust-glib
ExclusiveArch: %{rust_arches}
- rust-glib-macros
ExclusiveArch: %{rust_arches}
- rust-glib-sys
ExclusiveArch: %{rust_arches}
- rust-glob
ExclusiveArch: %{rust_arches}
- rust-globset
ExclusiveArch: %{rust_arches}
- rust-globwalk
ExclusiveArch: %{rust_arches}
- rust-glutin_egl_sys
ExclusiveArch: %{rust_arches}
- rust-glutin_glx_sys
ExclusiveArch: %{rust_arches}
- rust-gobject-sys
ExclusiveArch: %{rust_arches}
- rust-goblin
ExclusiveArch: %{rust_arches}
- rust-google-drive3-fork
ExclusiveArch: %{rust_arches}
- rust-grep
ExclusiveArch: %{rust_arches}
- rust-grep-cli
ExclusiveArch: %{rust_arches}
- rust-grep-matcher
ExclusiveArch: %{rust_arches}
- rust-grep-pcre2
ExclusiveArch: %{rust_arches}
- rust-grep-printer
ExclusiveArch: %{rust_arches}
- rust-grep-regex
ExclusiveArch: %{rust_arches}
- rust-grep-searcher
ExclusiveArch: %{rust_arches}
- rust-groupable
ExclusiveArch: %{rust_arches}
- rust-gspell
ExclusiveArch: %{rust_arches}
- rust-gspell-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video-sys
ExclusiveArch: %{rust_arches}
- rust-gtk
ExclusiveArch: %{rust_arches}
- rust-gtk-macros
ExclusiveArch: %{rust_arches}
- rust-gtk-rs-lgpl-docs
ExclusiveArch: %{rust_arches}
- rust-gtk-source-sys
ExclusiveArch: %{rust_arches}
- rust-gtk-sys
ExclusiveArch: %{rust_arches}
- rust-gzip-header
ExclusiveArch: %{rust_arches}
- rust-h2
ExclusiveArch: %{rust_arches}
- rust-half
ExclusiveArch: %{rust_arches}
- rust-hamcrest
ExclusiveArch: %{rust_arches}
- rust-handlebars
ExclusiveArch: %{rust_arches}
- rust-hashbrown
ExclusiveArch: %{rust_arches}
- rust-headers
ExclusiveArch: %{rust_arches}
- rust-headers-core
ExclusiveArch: %{rust_arches}
- rust-headers-derive
ExclusiveArch: %{rust_arches}
- rust-heapsize
ExclusiveArch: %{rust_arches}
- rust-heck
ExclusiveArch: %{rust_arches}
- rust-hex
ExclusiveArch: %{rust_arches}
- rust-hex-literal
ExclusiveArch: %{rust_arches}
- rust-hex-literal-impl
ExclusiveArch: %{rust_arches}
- rust-hexyl
ExclusiveArch: %{rust_arches}
- rust-hkdf
ExclusiveArch: %{rust_arches}
- rust-hmac
ExclusiveArch: %{rust_arches}
- rust-home
ExclusiveArch: %{rust_arches}
- rust-horrorshow
ExclusiveArch: %{rust_arches}
- rust-hostname
ExclusiveArch: %{rust_arches}
- rust-html2pango
ExclusiveArch: %{rust_arches}
- rust-html5ever
ExclusiveArch: %{rust_arches}
- rust-http
ExclusiveArch: %{rust_arches}
- rust-http-body
ExclusiveArch: %{rust_arches}
- rust-http0.1
ExclusiveArch: %{rust_arches}
- rust-httparse
ExclusiveArch: %{rust_arches}
- rust-humansize
ExclusiveArch: %{rust_arches}
- rust-humantime
ExclusiveArch: %{rust_arches}
- rust-humantime1
ExclusiveArch: %{rust_arches}
- rust-hyper
ExclusiveArch: %{rust_arches}
- rust-hyper-native-tls
ExclusiveArch: %{rust_arches}
- rust-hyper-staticfile
ExclusiveArch: %{rust_arches}
- rust-hyper-tls
ExclusiveArch: %{rust_arches}
- rust-hyper0.10
ExclusiveArch: %{rust_arches}
- rust-hyperfine
ExclusiveArch: %{rust_arches}
- rust-i3ipc
ExclusiveArch: %{rust_arches}
- rust-id_tree
ExclusiveArch: %{rust_arches}
- rust-ident_case
ExclusiveArch: %{rust_arches}
- rust-idna
ExclusiveArch: %{rust_arches}
- rust-idna0.1
ExclusiveArch: %{rust_arches}
- rust-ignore
ExclusiveArch: %{rust_arches}
- rust-im-rc
ExclusiveArch: %{rust_arches}
- rust-image
ExclusiveArch: %{rust_arches}
- rust-imgref
ExclusiveArch: %{rust_arches}
- rust-indexmap
ExclusiveArch: %{rust_arches}
- rust-indicatif
ExclusiveArch: %{rust_arches}
- rust-inflate
ExclusiveArch: %{rust_arches}
- rust-inotify
ExclusiveArch: %{rust_arches}
- rust-inotify-sys
ExclusiveArch: %{rust_arches}
- rust-input_buffer
ExclusiveArch: %{rust_arches}
- rust-insta
ExclusiveArch: %{rust_arches}
- rust-interpolate_name
ExclusiveArch: %{rust_arches}
- rust-intervaltree
ExclusiveArch: %{rust_arches}
- rust-invalidstring
ExclusiveArch: %{rust_arches}
- rust-iovec
ExclusiveArch: %{rust_arches}
- rust-ipnet
ExclusiveArch: %{rust_arches}
- rust-ipnetwork
ExclusiveArch: %{rust_arches}
- rust-iron
ExclusiveArch: %{rust_arches}
- rust-isahc
ExclusiveArch: %{rust_arches}
- rust-iso8601
ExclusiveArch: %{rust_arches}
- rust-iter-read
ExclusiveArch: %{rust_arches}
- rust-itertools
ExclusiveArch: %{rust_arches}
- rust-itertools-num
ExclusiveArch: %{rust_arches}
- rust-itertools0.8
ExclusiveArch: %{rust_arches}
- rust-itoa
ExclusiveArch: %{rust_arches}
- rust-ivf
ExclusiveArch: %{rust_arches}
- rust-javascriptcore-rs
ExclusiveArch: %{rust_arches}
- rust-javascriptcore-rs-sys
ExclusiveArch: %{rust_arches}
- rust-jetscii
ExclusiveArch: %{rust_arches}
- rust-jobserver
ExclusiveArch: %{rust_arches}
- rust-jpeg-decoder
ExclusiveArch: %{rust_arches}
- rust-jql
ExclusiveArch: %{rust_arches}
- rust-json
ExclusiveArch: %{rust_arches}
- rust-jwalk
ExclusiveArch: %{rust_arches}
- rust-khronos_api
ExclusiveArch: %{rust_arches}
- rust-kstring
ExclusiveArch: %{rust_arches}
- rust-kv-log-macro
ExclusiveArch: %{rust_arches}
- rust-lab
ExclusiveArch: %{rust_arches}
- rust-language-tags
ExclusiveArch: %{rust_arches}
- rust-lazy-init
ExclusiveArch: %{rust_arches}
- rust-lazy_static
ExclusiveArch: %{rust_arches}
- rust-lazycell
ExclusiveArch: %{rust_arches}
- rust-letter-avatar
ExclusiveArch: %{rust_arches}
- rust-lexical-core
ExclusiveArch: %{rust_arches}
- rust-libc
ExclusiveArch: %{rust_arches}
- rust-libcryptsetup-rs
ExclusiveArch: %{rust_arches}
- rust-libcryptsetup-rs-sys
ExclusiveArch: %{rust_arches}
- rust-libdbus-sys
ExclusiveArch: %{rust_arches}
- rust-libflate
ExclusiveArch: %{rust_arches}
- rust-libflate_lz77
ExclusiveArch: %{rust_arches}
- rust-libgit2-sys
ExclusiveArch: %{rust_arches}
- rust-libhandy
ExclusiveArch: %{rust_arches}
- rust-libhandy-sys
ExclusiveArch: %{rust_arches}
- rust-libloading
ExclusiveArch: %{rust_arches}
- rust-libm
ExclusiveArch: %{rust_arches}
- rust-libmount
ExclusiveArch: %{rust_arches}
- rust-liboverdrop
ExclusiveArch: %{rust_arches}
- rust-libpulse-binding
ExclusiveArch: %{rust_arches}
- rust-libpulse-sys
ExclusiveArch: %{rust_arches}
- rust-libslirp
ExclusiveArch: %{rust_arches}
- rust-libslirp-sys
ExclusiveArch: %{rust_arches}
- rust-libsqlite3-sys
ExclusiveArch: %{rust_arches}
- rust-libssh2-sys
ExclusiveArch: %{rust_arches}
- rust-libsystemd
ExclusiveArch: %{rust_arches}
- rust-libudev
ExclusiveArch: %{rust_arches}
- rust-libudev-sys
ExclusiveArch: %{rust_arches}
- rust-libxml
ExclusiveArch: %{rust_arches}
- rust-libz-sys
ExclusiveArch: %{rust_arches}
- rust-line-wrap
ExclusiveArch: %{rust_arches}
- rust-linked-hash-map
ExclusiveArch: %{rust_arches}
- rust-linkify
ExclusiveArch: %{rust_arches}
- rust-lipsum
ExclusiveArch: %{rust_arches}
- rust-liquid
ExclusiveArch: %{rust_arches}
- rust-liquid-core
ExclusiveArch: %{rust_arches}
- rust-liquid-derive
ExclusiveArch: %{rust_arches}
- rust-liquid-lib
ExclusiveArch: %{rust_arches}
- rust-listenfd
ExclusiveArch: %{rust_arches}
- rust-lmdb
ExclusiveArch: %{rust_arches}
- rust-lmdb-sys
ExclusiveArch: %{rust_arches}
- rust-locale
ExclusiveArch: %{rust_arches}
- rust-locale_config
ExclusiveArch: %{rust_arches}
- rust-lock_api
ExclusiveArch: %{rust_arches}
- rust-lockfree
ExclusiveArch: %{rust_arches}
- rust-log
ExclusiveArch: %{rust_arches}
- rust-log-mdc
ExclusiveArch: %{rust_arches}
- rust-log0.3
ExclusiveArch: %{rust_arches}
- rust-log4rs
ExclusiveArch: %{rust_arches}
- rust-loggerv
ExclusiveArch: %{rust_arches}
- rust-loopdev
ExclusiveArch: %{rust_arches}
- rust-lru-cache
ExclusiveArch: %{rust_arches}
- rust-lru_time_cache
ExclusiveArch: %{rust_arches}
- rust-lscolors
ExclusiveArch: %{rust_arches}
- rust-lsd
ExclusiveArch: %{rust_arches}
- rust-lzma-sys
ExclusiveArch: %{rust_arches}
- rust-lzw
ExclusiveArch: %{rust_arches}
- rust-mac
ExclusiveArch: %{rust_arches}
- rust-macro-attr
ExclusiveArch: %{rust_arches}
- rust-magic-crypt
ExclusiveArch: %{rust_arches}
- rust-maildir
ExclusiveArch: %{rust_arches}
- rust-mailparse
ExclusiveArch: %{rust_arches}
- rust-man
ExclusiveArch: %{rust_arches}
- rust-maplit
ExclusiveArch: %{rust_arches}
- rust-markup5ever
ExclusiveArch: %{rust_arches}
- rust-markup5ever_rcdom
ExclusiveArch: %{rust_arches}
- rust-match_cfg
ExclusiveArch: %{rust_arches}
- rust-matches
ExclusiveArch: %{rust_arches}
- rust-matrixmultiply
ExclusiveArch: %{rust_arches}
- rust-maxminddb
ExclusiveArch: %{rust_arches}
- rust-maybe-uninit
ExclusiveArch: %{rust_arches}
- rust-mbox
ExclusiveArch: %{rust_arches}
- rust-md-5
ExclusiveArch: %{rust_arches}
- rust-md5
ExclusiveArch: %{rust_arches}
- rust-mdl
ExclusiveArch: %{rust_arches}
- rust-memchr
ExclusiveArch: %{rust_arches}
- rust-memmap
ExclusiveArch: %{rust_arches}
- rust-memmap2
ExclusiveArch: %{rust_arches}
- rust-memoffset
ExclusiveArch: %{rust_arches}
- rust-metadeps
ExclusiveArch: %{rust_arches}
- rust-migrations_internals
ExclusiveArch: %{rust_arches}
- rust-migrations_macros
ExclusiveArch: %{rust_arches}
- rust-mime
ExclusiveArch: %{rust_arches}
- rust-mime-sniffer
ExclusiveArch: %{rust_arches}
- rust-mime0.2
ExclusiveArch: %{rust_arches}
- rust-mime_guess
ExclusiveArch: %{rust_arches}
- rust-mime_guess1
ExclusiveArch: %{rust_arches}
- rust-miniflux_api
ExclusiveArch: %{rust_arches}
- rust-miniz-sys
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide_c_api
ExclusiveArch: %{rust_arches}
- rust-mint
ExclusiveArch: %{rust_arches}
- rust-mio
ExclusiveArch: %{rust_arches}
- rust-mio-extras
ExclusiveArch: %{rust_arches}
- rust-mio-uds
ExclusiveArch: %{rust_arches}
- rust-mio0.6
ExclusiveArch: %{rust_arches}
- rust-mktemp
ExclusiveArch: %{rust_arches}
- rust-mnt
ExclusiveArch: %{rust_arches}
- rust-mockito
ExclusiveArch: %{rust_arches}
- rust-modifier
ExclusiveArch: %{rust_arches}
- rust-muldiv
ExclusiveArch: %{rust_arches}
- rust-multimap
ExclusiveArch: %{rust_arches}
- rust-multipart
ExclusiveArch: %{rust_arches}
- rust-mustache
ExclusiveArch: %{rust_arches}
- rust-nalgebra
ExclusiveArch: %{rust_arches}
- rust-nasm-rs
ExclusiveArch: %{rust_arches}
- rust-native-tls
ExclusiveArch: %{rust_arches}
- rust-natord
ExclusiveArch: %{rust_arches}
- rust-net2
ExclusiveArch: %{rust_arches}
- rust-netmap_sys
ExclusiveArch: %{rust_arches}
- rust-new_debug_unreachable
ExclusiveArch: %{rust_arches}
- rust-news-flash
ExclusiveArch: %{rust_arches}
- rust-newtype_derive
ExclusiveArch: %{rust_arches}
- rust-nickel
ExclusiveArch: %{rust_arches}
- rust-nix
ExclusiveArch: %{rust_arches}
- rust-nix0.14
ExclusiveArch: %{rust_arches}
- rust-no-panic
ExclusiveArch: %{rust_arches}
- rust-nodrop
ExclusiveArch: %{rust_arches}
- rust-nom
ExclusiveArch: %{rust_arches}
- rust-nom4
ExclusiveArch: %{rust_arches}
- rust-noop_proc_macro
ExclusiveArch: %{rust_arches}
- rust-normalize-line-endings
ExclusiveArch: %{rust_arches}
- rust-notify
ExclusiveArch: %{rust_arches}
- rust-num
ExclusiveArch: %{rust_arches}
- rust-num-bigint
ExclusiveArch: %{rust_arches}
- rust-num-complex
ExclusiveArch: %{rust_arches}
- rust-num-derive
ExclusiveArch: %{rust_arches}
- rust-num-integer
ExclusiveArch: %{rust_arches}
- rust-num-iter
ExclusiveArch: %{rust_arches}
- rust-num-rational
ExclusiveArch: %{rust_arches}
- rust-num-traits
ExclusiveArch: %{rust_arches}
- rust-num-traits0.1
ExclusiveArch: %{rust_arches}
- rust-num_cpus
ExclusiveArch: %{rust_arches}
- rust-number_prefix
ExclusiveArch: %{rust_arches}
- rust-numtoa
ExclusiveArch: %{rust_arches}
- rust-obfstr
ExclusiveArch: %{rust_arches}
- rust-obfstr-impl
ExclusiveArch: %{rust_arches}
- rust-object
ExclusiveArch: %{rust_arches}
- rust-odds
ExclusiveArch: %{rust_arches}
- rust-once_cell
ExclusiveArch: %{rust_arches}
- rust-onig
ExclusiveArch: %{rust_arches}
- rust-onig_sys
ExclusiveArch: %{rust_arches}
- rust-oorandom
ExclusiveArch: %{rust_arches}
- rust-opaque-debug
ExclusiveArch: %{rust_arches}
- rust-open
ExclusiveArch: %{rust_arches}
- rust-openat
ExclusiveArch: %{rust_arches}
- rust-opener
ExclusiveArch: %{rust_arches}
- rust-openssh-keys
ExclusiveArch: %{rust_arches}
- rust-openssl
ExclusiveArch: %{rust_arches}
- rust-openssl-probe
ExclusiveArch: %{rust_arches}
- rust-openssl-sys
ExclusiveArch: %{rust_arches}
- rust-ord_subset
ExclusiveArch: %{rust_arches}
- rust-ordered-float
ExclusiveArch: %{rust_arches}
- rust-os_info
ExclusiveArch: %{rust_arches}
- rust-os_pipe
ExclusiveArch: %{rust_arches}
- rust-osmesa-sys
ExclusiveArch: %{rust_arches}
- rust-osstrtools
ExclusiveArch: %{rust_arches}
- rust-ostree
ExclusiveArch: i686 x86_64
- rust-ostree-sys
ExclusiveArch: %{rust_arches}
- rust-owned-alloc
ExclusiveArch: %{rust_arches}
- rust-owning_ref
ExclusiveArch: %{rust_arches}
- rust-packaging
ExclusiveArch: %{rust_arches}
- rust-pad
ExclusiveArch: %{rust_arches}
- rust-pager
ExclusiveArch: %{rust_arches}
- rust-pango
ExclusiveArch: %{rust_arches}
- rust-pango-sys
ExclusiveArch: %{rust_arches}
- rust-pangocairo
ExclusiveArch: %{rust_arches}
- rust-pangocairo-sys
ExclusiveArch: %{rust_arches}
- rust-parity-wasm
ExclusiveArch: %{rust_arches}
- rust-parking_lot
ExclusiveArch: %{rust_arches}
- rust-parking_lot_core
ExclusiveArch: %{rust_arches}
- rust-parse-zoneinfo
ExclusiveArch: %{rust_arches}
- rust-partial-io
ExclusiveArch: %{rust_arches}
- rust-paste
ExclusiveArch: %{rust_arches}
- rust-paste-impl
ExclusiveArch: %{rust_arches}
- rust-path-absolutize
ExclusiveArch: %{rust_arches}
- rust-path-dedot
ExclusiveArch: %{rust_arches}
- rust-path-slash
ExclusiveArch: %{rust_arches}
- rust-pathdiff
ExclusiveArch: %{rust_arches}
- rust-pbr
ExclusiveArch: %{rust_arches}
- rust-pcap
ExclusiveArch: %{rust_arches}
- rust-pcre2
ExclusiveArch: %{rust_arches}
- rust-pcre2-sys
ExclusiveArch: %{rust_arches}
- rust-peeking_take_while
ExclusiveArch: %{rust_arches}
- rust-peg
ExclusiveArch: %{rust_arches}
- rust-pem
ExclusiveArch: %{rust_arches}
- rust-percent-encoding
ExclusiveArch: %{rust_arches}
- rust-percent-encoding1
ExclusiveArch: %{rust_arches}
- rust-peresil
ExclusiveArch: %{rust_arches}
- rust-permutate
ExclusiveArch: %{rust_arches}
- rust-permutohedron
ExclusiveArch: %{rust_arches}
- rust-pest
ExclusiveArch: %{rust_arches}
- rust-pest_derive
ExclusiveArch: %{rust_arches}
- rust-pest_generator
ExclusiveArch: %{rust_arches}
- rust-pest_meta
ExclusiveArch: %{rust_arches}
- rust-petgraph
ExclusiveArch: %{rust_arches}
- rust-phf
ExclusiveArch: %{rust_arches}
- rust-phf0.7
ExclusiveArch: %{rust_arches}
- rust-phf_codegen
ExclusiveArch: %{rust_arches}
- rust-phf_codegen0.7
ExclusiveArch: %{rust_arches}
- rust-phf_generator
ExclusiveArch: %{rust_arches}
- rust-phf_generator0.7
ExclusiveArch: %{rust_arches}
- rust-phf_macros
ExclusiveArch: %{rust_arches}
- rust-phf_macros0.7
ExclusiveArch: %{rust_arches}
- rust-phf_shared
ExclusiveArch: %{rust_arches}
- rust-phf_shared0.7
ExclusiveArch: %{rust_arches}
- rust-pico-args
ExclusiveArch: %{rust_arches}
- rust-pin-project
ExclusiveArch: %{rust_arches}
- rust-pin-project-internal
ExclusiveArch: %{rust_arches}
- rust-pin-project-lite
ExclusiveArch: %{rust_arches}
- rust-pin-utils
ExclusiveArch: %{rust_arches}
- rust-pipe
ExclusiveArch: %{rust_arches}
- rust-piper
ExclusiveArch: %{rust_arches}
- rust-pkg-config
ExclusiveArch: %{rust_arches}
- rust-plain
ExclusiveArch: %{rust_arches}
- rust-platform-dirs
ExclusiveArch: %{rust_arches}
- rust-platforms
ExclusiveArch: %{rust_arches}
- rust-plist
ExclusiveArch: %{rust_arches}
- rust-plugin
ExclusiveArch: %{rust_arches}
- rust-pnet_base
ExclusiveArch: %{rust_arches}
- rust-pnet_datalink
ExclusiveArch: %{rust_arches}
- rust-pnet_sys
ExclusiveArch: %{rust_arches}
- rust-png
ExclusiveArch: %{rust_arches}
- rust-podio
ExclusiveArch: %{rust_arches}
- rust-pommes
ExclusiveArch: %{rust_arches}
- rust-ppv-lite86
ExclusiveArch: %{rust_arches}
- rust-pq-sys
ExclusiveArch: %{rust_arches}
- rust-precomputed-hash
ExclusiveArch: %{rust_arches}
- rust-predicates
ExclusiveArch: %{rust_arches}
- rust-predicates-core
ExclusiveArch: %{rust_arches}
- rust-predicates-tree
ExclusiveArch: %{rust_arches}
- rust-pretty-git-prompt
ExclusiveArch: %{rust_arches}
- rust-pretty-hex
ExclusiveArch: %{rust_arches}
- rust-pretty_assertions
ExclusiveArch: %{rust_arches}
- rust-pretty_env_logger
ExclusiveArch: %{rust_arches}
- rust-prettytable-rs
ExclusiveArch: %{rust_arches}
- rust-proc-macro-crate
ExclusiveArch: %{rust_arches}
- rust-proc-macro-error
ExclusiveArch: %{rust_arches}
- rust-proc-macro-error-attr
ExclusiveArch: %{rust_arches}
- rust-proc-macro-hack
ExclusiveArch: %{rust_arches}
- rust-proc-macro-nested
ExclusiveArch: %{rust_arches}
- rust-proc-macro2
ExclusiveArch: %{rust_arches}
- rust-proc-macro2-0.4
ExclusiveArch: %{rust_arches}
- rust-proc-quote
ExclusiveArch: %{rust_arches}
- rust-proc-quote-impl
ExclusiveArch: %{rust_arches}
- rust-procedural-masquerade
ExclusiveArch: %{rust_arches}
- rust-process_path
ExclusiveArch: %{rust_arches}
- rust-procfs
ExclusiveArch: %{rust_arches}
- rust-procs
ExclusiveArch: %{rust_arches}
- rust-progress-streams
ExclusiveArch: %{rust_arches}
- rust-prometheus
ExclusiveArch: %{rust_arches}
- rust-proptest
ExclusiveArch: %{rust_arches}
- rust-proptest-derive
ExclusiveArch: %{rust_arches}
- rust-protobuf
ExclusiveArch: %{rust_arches}
- rust-protobuf-codegen
ExclusiveArch: %{rust_arches}
- rust-protobuf-codegen-pure
ExclusiveArch: %{rust_arches}
- rust-protoc
ExclusiveArch: %{rust_arches}
- rust-protoc-rust
ExclusiveArch: %{rust_arches}
- rust-psm
ExclusiveArch: %{rust_arches}
- rust-psutil
ExclusiveArch: %{rust_arches}
- rust-publicsuffix
ExclusiveArch: %{rust_arches}
- rust-pulldown-cmark
ExclusiveArch: %{rust_arches}
- rust-pulse
ExclusiveArch: %{rust_arches}
- rust-qr2term
ExclusiveArch: %{rust_arches}
- rust-qrcode
ExclusiveArch: %{rust_arches}
- rust-quick-error
ExclusiveArch: %{rust_arches}
- rust-quickcheck
ExclusiveArch: %{rust_arches}
- rust-quickcheck0.6
ExclusiveArch: %{rust_arches}
- rust-quickcheck_macros
ExclusiveArch: %{rust_arches}
- rust-quickersort
ExclusiveArch: %{rust_arches}
- rust-quote
ExclusiveArch: %{rust_arches}
- rust-quote0.3
ExclusiveArch: %{rust_arches}
- rust-quote0.6
ExclusiveArch: %{rust_arches}
- rust-quoted_printable
ExclusiveArch: %{rust_arches}
- rust-r2d2
ExclusiveArch: %{rust_arches}
- rust-rand
ExclusiveArch: %{rust_arches}
- rust-rand0.4
ExclusiveArch: %{rust_arches}
- rust-rand0.5
ExclusiveArch: %{rust_arches}
- rust-rand0.6
ExclusiveArch: %{rust_arches}
- rust-rand_chacha
ExclusiveArch: %{rust_arches}
- rust-rand_chacha0.1
ExclusiveArch: %{rust_arches}
- rust-rand_core
ExclusiveArch: %{rust_arches}
- rust-rand_core0.3
ExclusiveArch: %{rust_arches}
- rust-rand_core0.4
ExclusiveArch: %{rust_arches}
- rust-rand_distr
ExclusiveArch: %{rust_arches}
- rust-rand_hc
ExclusiveArch: %{rust_arches}
- rust-rand_hc0.1
ExclusiveArch: %{rust_arches}
- rust-rand_isaac
ExclusiveArch: %{rust_arches}
- rust-rand_isaac0.1
ExclusiveArch: %{rust_arches}
- rust-rand_jitter
ExclusiveArch: %{rust_arches}
- rust-rand_jitter0.1
ExclusiveArch: %{rust_arches}
- rust-rand_os
ExclusiveArch: %{rust_arches}
- rust-rand_os0.1
ExclusiveArch: %{rust_arches}
- rust-rand_pcg
ExclusiveArch: %{rust_arches}
- rust-rand_pcg0.1
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift0.1
ExclusiveArch: %{rust_arches}
- rust-rand_xoshiro
ExclusiveArch: %{rust_arches}
- rust-random-fast-rng
ExclusiveArch: %{rust_arches}
- rust-random-trait
ExclusiveArch: %{rust_arches}
- rust-randomize
ExclusiveArch: %{rust_arches}
- rust-rav1e
ExclusiveArch: %{rust_arches}
- rust-raw-window-handle
ExclusiveArch: %{rust_arches}
- rust-rawpointer
ExclusiveArch: %{rust_arches}
- rust-rawslice
ExclusiveArch: %{rust_arches}
- rust-rayon
ExclusiveArch: %{rust_arches}
- rust-rayon-core
ExclusiveArch: %{rust_arches}
- rust-readwrite
ExclusiveArch: %{rust_arches}
- rust-recycler
ExclusiveArch: %{rust_arches}
- rust-ref-cast
ExclusiveArch: %{rust_arches}
- rust-ref-cast-impl
ExclusiveArch: %{rust_arches}
- rust-regex
ExclusiveArch: %{rust_arches}
- rust-regex-automata
ExclusiveArch: %{rust_arches}
- rust-regex-syntax
ExclusiveArch: %{rust_arches}
- rust-region
ExclusiveArch: %{rust_arches}
- rust-relay
ExclusiveArch: %{rust_arches}
- rust-remove_dir_all
ExclusiveArch: %{rust_arches}
- rust-reqwest
ExclusiveArch: %{rust_arches}
- rust-resize
ExclusiveArch: %{rust_arches}
- rust-resolv-conf
ExclusiveArch: %{rust_arches}
- rust-restson
ExclusiveArch: %{rust_arches}
- rust-retry
ExclusiveArch: %{rust_arches}
- rust-rgb
ExclusiveArch: %{rust_arches}
- rust-ripgrep
ExclusiveArch: %{rust_arches}
- rust-rle-decode-fast
ExclusiveArch: %{rust_arches}
- rust-rmp
ExclusiveArch: %{rust_arches}
- rust-rmp-serde
ExclusiveArch: %{rust_arches}
- rust-roff
ExclusiveArch: %{rust_arches}
- rust-ron
ExclusiveArch: %{rust_arches}
- rust-rpassword
ExclusiveArch: %{rust_arches}
- rust-rpick
ExclusiveArch: %{rust_arches}
- rust-ruma-identifiers
ExclusiveArch: %{rust_arches}
- rust-rust-embed
ExclusiveArch: %{rust_arches}
- rust-rust-embed-impl
ExclusiveArch: %{rust_arches}
- rust-rust-embed-utils
ExclusiveArch: %{rust_arches}
- rust-rust-ini
ExclusiveArch: %{rust_arches}
- rust-rust-stemmers
ExclusiveArch: %{rust_arches}
- rust-rust_decimal
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer_normal_macro
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer_proc_macro
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer_sys
ExclusiveArch: %{rust_arches}
- rust-rustc-demangle
ExclusiveArch: %{rust_arches}
- rust-rustc-hash
ExclusiveArch: %{rust_arches}
- rust-rustc-serialize
ExclusiveArch: %{rust_arches}
- rust-rustc-test
ExclusiveArch: %{rust_arches}
- rust-rustc_tools_util
ExclusiveArch: %{rust_arches}
- rust-rustc_version
ExclusiveArch: %{rust_arches}
- rust-rustdoc-stripper
ExclusiveArch: %{rust_arches}
- rust-rustfilt
ExclusiveArch: %{rust_arches}
- rust-rustfix
ExclusiveArch: %{rust_arches}
- rust-rustio
ExclusiveArch: %{rust_arches}
- rust-rustversion
ExclusiveArch: %{rust_arches}
- rust-rusty-fork
ExclusiveArch: %{rust_arches}
- rust-rustyline
ExclusiveArch: %{rust_arches}
- rust-rustyline-derive
ExclusiveArch: %{rust_arches}
- rust-ryu
ExclusiveArch: %{rust_arches}
- rust-safe-transmute
ExclusiveArch: %{rust_arches}
- rust-safemem
ExclusiveArch: %{rust_arches}
- rust-same-file
ExclusiveArch: %{rust_arches}
- rust-sass-rs
ExclusiveArch: %{rust_arches}
- rust-sass-sys
ExclusiveArch: %{rust_arches}
- rust-scan_fmt
ExclusiveArch: %{rust_arches}
- rust-scheduled-thread-pool
ExclusiveArch: %{rust_arches}
- rust-scoped-tls
ExclusiveArch: %{rust_arches}
- rust-scoped-tls-hkt
ExclusiveArch: %{rust_arches}
- rust-scoped_threadpool
ExclusiveArch: %{rust_arches}
- rust-scopeguard
ExclusiveArch: %{rust_arches}
- rust-scopetime
ExclusiveArch: %{rust_arches}
- rust-scroll
ExclusiveArch: %{rust_arches}
- rust-scroll_derive
ExclusiveArch: %{rust_arches}
- rust-sd
ExclusiveArch: %{rust_arches}
- rust-seahash
ExclusiveArch: %{rust_arches}
- rust-secret-service
ExclusiveArch: %{rust_arches}
- rust-semver
ExclusiveArch: %{rust_arches}
- rust-semver-parser
ExclusiveArch: %{rust_arches}
- rust-semver-parser0.7
ExclusiveArch: %{rust_arches}
- rust-serde
ExclusiveArch: %{rust_arches}
- rust-serde-big-array
ExclusiveArch: %{rust_arches}
- rust-serde-pickle
ExclusiveArch: %{rust_arches}
- rust-serde-value
ExclusiveArch: %{rust_arches}
- rust-serde-xml-rs
ExclusiveArch: %{rust_arches}
- rust-serde_bytes
ExclusiveArch: %{rust_arches}
- rust-serde_cbor
ExclusiveArch: %{rust_arches}
- rust-serde_derive
ExclusiveArch: %{rust_arches}
- rust-serde_ignored
ExclusiveArch: %{rust_arches}
- rust-serde_json
ExclusiveArch: %{rust_arches}
- rust-serde_repr
ExclusiveArch: %{rust_arches}
- rust-serde_stacker
ExclusiveArch: %{rust_arches}
- rust-serde_test
ExclusiveArch: %{rust_arches}
- rust-serde_url_params
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded
ExclusiveArch: %{rust_arches}
- rust-serde_with_macros
ExclusiveArch: %{rust_arches}
- rust-serde_yaml
ExclusiveArch: %{rust_arches}
- rust-servo-fontconfig
ExclusiveArch: %{rust_arches}
- rust-servo-fontconfig-sys
ExclusiveArch: %{rust_arches}
- rust-sha-1
ExclusiveArch: %{rust_arches}
- rust-sha1
ExclusiveArch: %{rust_arches}
- rust-sha2
ExclusiveArch: %{rust_arches}
- rust-shared_child
ExclusiveArch: %{rust_arches}
- rust-shared_library
ExclusiveArch: %{rust_arches}
- rust-shell-escape
ExclusiveArch: %{rust_arches}
- rust-shell-words
ExclusiveArch: %{rust_arches}
- rust-shellexpand
ExclusiveArch: %{rust_arches}
- rust-shlex
ExclusiveArch: %{rust_arches}
- rust-signal-hook
ExclusiveArch: %{rust_arches}
- rust-signal-hook-registry
ExclusiveArch: %{rust_arches}
- rust-silver
ExclusiveArch: %{rust_arches}
- rust-simd_helpers
ExclusiveArch: %{rust_arches}
- rust-simple_logger
ExclusiveArch: %{rust_arches}
- rust-simplelog
ExclusiveArch: %{rust_arches}
- rust-siphasher
ExclusiveArch: %{rust_arches}
- rust-size
ExclusiveArch: %{rust_arches}
- rust-sized-chunks
ExclusiveArch: %{rust_arches}
- rust-skeptic
ExclusiveArch: %{rust_arches}
- rust-skim
ExclusiveArch: %{rust_arches}
- rust-slab
ExclusiveArch: %{rust_arches}
- rust-slash-formatter
ExclusiveArch: %{rust_arches}
- rust-slice-deque
ExclusiveArch: %{rust_arches}
- rust-slog
ExclusiveArch: %{rust_arches}
- rust-slog-async
ExclusiveArch: %{rust_arches}
- rust-slog-scope
ExclusiveArch: %{rust_arches}
- rust-slog-term
ExclusiveArch: %{rust_arches}
- rust-slotmap
ExclusiveArch: %{rust_arches}
- rust-slug
ExclusiveArch: %{rust_arches}
- rust-sluice
ExclusiveArch: %{rust_arches}
- rust-smallvec
ExclusiveArch: %{rust_arches}
- rust-smart-default
ExclusiveArch: %{rust_arches}
- rust-smithay-client-toolkit
ExclusiveArch: %{rust_arches}
- rust-smithay-clipboard
ExclusiveArch: %{rust_arches}
- rust-snafu
ExclusiveArch: %{rust_arches}
- rust-snafu-derive
ExclusiveArch: %{rust_arches}
- rust-snowflake
ExclusiveArch: %{rust_arches}
- rust-socket2
ExclusiveArch: %{rust_arches}
- rust-soup-sys
ExclusiveArch: %{rust_arches}
- rust-sourceview
ExclusiveArch: %{rust_arches}
- rust-spin
ExclusiveArch: %{rust_arches}
- rust-spmc
ExclusiveArch: %{rust_arches}
- rust-ssh-key-dir
ExclusiveArch: %{rust_arches}
- rust-stable_deref_trait
ExclusiveArch: %{rust_arches}
- rust-stacker
ExclusiveArch: %{rust_arches}
- rust-standback
ExclusiveArch: %{rust_arches}
- rust-starship
ExclusiveArch: %{rust_arches}
- rust-starship_module_config_derive
ExclusiveArch: %{rust_arches}
- rust-static_assertions
ExclusiveArch: %{rust_arches}
- rust-statistical
ExclusiveArch: %{rust_arches}
- rust-stb_truetype
ExclusiveArch: %{rust_arches}
- rust-stream-cipher
ExclusiveArch: %{rust_arches}
- rust-streaming-stats
ExclusiveArch: %{rust_arches}
- rust-string
ExclusiveArch: %{rust_arches}
- rust-string_cache
ExclusiveArch: %{rust_arches}
- rust-string_cache_codegen
ExclusiveArch: %{rust_arches}
- rust-string_cache_shared
ExclusiveArch: %{rust_arches}
- rust-strings
ExclusiveArch: %{rust_arches}
- rust-strip-ansi-escapes
ExclusiveArch: %{rust_arches}
- rust-strsim
ExclusiveArch: %{rust_arches}
- rust-structopt
ExclusiveArch: %{rust_arches}
- rust-structopt-derive
ExclusiveArch: %{rust_arches}
- rust-structopt-derive0.2
ExclusiveArch: %{rust_arches}
- rust-structopt0.2
ExclusiveArch: %{rust_arches}
- rust-strum
ExclusiveArch: %{rust_arches}
- rust-strum_macros
ExclusiveArch: %{rust_arches}
- rust-subtle
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin-sys
ExclusiveArch: %{rust_arches}
- rust-sval
ExclusiveArch: %{rust_arches}
- rust-sval_derive
ExclusiveArch: %{rust_arches}
- rust-sxd-document
ExclusiveArch: %{rust_arches}
- rust-syn
ExclusiveArch: %{rust_arches}
- rust-syn-mid
ExclusiveArch: %{rust_arches}
- rust-syn0.15
ExclusiveArch: %{rust_arches}
- rust-synom
ExclusiveArch: %{rust_arches}
- rust-synstructure
ExclusiveArch: %{rust_arches}
- rust-syntect
ExclusiveArch: %{rust_arches}
- rust-sys-info
ExclusiveArch: %{rust_arches}
- rust-sysinfo
ExclusiveArch: %{rust_arches}
- rust-system-deps
ExclusiveArch: %{rust_arches}
- rust-tabwriter
ExclusiveArch: %{rust_arches}
- rust-take
ExclusiveArch: %{rust_arches}
- rust-take_mut
ExclusiveArch: %{rust_arches}
- rust-tar
ExclusiveArch: %{rust_arches}
- rust-target-lexicon
ExclusiveArch: %{rust_arches}
- rust-tealdeer
ExclusiveArch: %{rust_arches}
- rust-teloxide
ExclusiveArch: %{rust_arches}
- rust-teloxide-macros
ExclusiveArch: %{rust_arches}
- rust-tempdir
ExclusiveArch: %{rust_arches}
- rust-tempfile
ExclusiveArch: %{rust_arches}
- rust-tendril
ExclusiveArch: %{rust_arches}
- rust-tera
ExclusiveArch: %{rust_arches}
- rust-term
ExclusiveArch: %{rust_arches}
- rust-term_grid
ExclusiveArch: %{rust_arches}
- rust-term_size
ExclusiveArch: %{rust_arches}
- rust-termcolor
ExclusiveArch: %{rust_arches}
- rust-terminal_size
ExclusiveArch: %{rust_arches}
- rust-terminfo
ExclusiveArch: %{rust_arches}
- rust-termion
ExclusiveArch: %{rust_arches}
- rust-termios
ExclusiveArch: %{rust_arches}
- rust-test-assembler
ExclusiveArch: %{rust_arches}
- rust-tester
ExclusiveArch: %{rust_arches}
- rust-testing_logger
ExclusiveArch: %{rust_arches}
- rust-textwrap
ExclusiveArch: %{rust_arches}
- rust-thiserror
ExclusiveArch: %{rust_arches}
- rust-thiserror-impl
ExclusiveArch: %{rust_arches}
- rust-thread-id
ExclusiveArch: %{rust_arches}
- rust-thread-scoped
ExclusiveArch: %{rust_arches}
- rust-thread_local
ExclusiveArch: %{rust_arches}
- rust-threadpool
ExclusiveArch: %{rust_arches}
- rust-tiff
ExclusiveArch: %{rust_arches}
- rust-tiger-digest
ExclusiveArch: %{rust_arches}
- rust-time
ExclusiveArch: %{rust_arches}
- rust-time-macros
ExclusiveArch: %{rust_arches}
- rust-time-macros-impl
ExclusiveArch: %{rust_arches}
- rust-time0.1
ExclusiveArch: %{rust_arches}
- rust-timebomb
ExclusiveArch: %{rust_arches}
- rust-timer
ExclusiveArch: %{rust_arches}
- rust-timerfd
ExclusiveArch: %{rust_arches}
- rust-tiny_http
ExclusiveArch: %{rust_arches}
- rust-tinytemplate
ExclusiveArch: %{rust_arches}
- rust-tinyvec
ExclusiveArch: %{rust_arches}
- rust-tokei
ExclusiveArch: %{rust_arches}
- rust-tokio
ExclusiveArch: %{rust_arches}
- rust-tokio-codec
ExclusiveArch: %{rust_arches}
- rust-tokio-core
ExclusiveArch: %{rust_arches}
- rust-tokio-current-thread
ExclusiveArch: %{rust_arches}
- rust-tokio-executor
ExclusiveArch: %{rust_arches}
- rust-tokio-fs
ExclusiveArch: %{rust_arches}
- rust-tokio-io
ExclusiveArch: %{rust_arches}
- rust-tokio-io-pool
ExclusiveArch: %{rust_arches}
- rust-tokio-macros
ExclusiveArch: %{rust_arches}
- rust-tokio-mock-task
ExclusiveArch: %{rust_arches}
- rust-tokio-openssl
ExclusiveArch: %{rust_arches}
- rust-tokio-reactor
ExclusiveArch: %{rust_arches}
- rust-tokio-socks
ExclusiveArch: %{rust_arches}
- rust-tokio-sync
ExclusiveArch: %{rust_arches}
- rust-tokio-tcp
ExclusiveArch: %{rust_arches}
- rust-tokio-test
ExclusiveArch: %{rust_arches}
- rust-tokio-threadpool
ExclusiveArch: %{rust_arches}
- rust-tokio-timer
ExclusiveArch: %{rust_arches}
- rust-tokio-tls
ExclusiveArch: %{rust_arches}
- rust-tokio-tls0.2
ExclusiveArch: %{rust_arches}
- rust-tokio-tungstenite
ExclusiveArch: %{rust_arches}
- rust-tokio-udp
ExclusiveArch: %{rust_arches}
- rust-tokio-uds
ExclusiveArch: %{rust_arches}
- rust-tokio-util
ExclusiveArch: %{rust_arches}
- rust-tokio-util0.2
ExclusiveArch: %{rust_arches}
- rust-tokio0.1
ExclusiveArch: %{rust_arches}
- rust-toml
ExclusiveArch: %{rust_arches}
- rust-toml0.4
ExclusiveArch: %{rust_arches}
- rust-tower-layer
ExclusiveArch: %{rust_arches}
- rust-tower-service
ExclusiveArch: %{rust_arches}
- rust-tower-test
ExclusiveArch: %{rust_arches}
- rust-tower-util
ExclusiveArch: %{rust_arches}
- rust-traitobject
ExclusiveArch: %{rust_arches}
- rust-treebitmap
ExclusiveArch: %{rust_arches}
- rust-treeline
ExclusiveArch: %{rust_arches}
- rust-trust-dns-native-tls
ExclusiveArch: %{rust_arches}
- rust-trust-dns-openssl
ExclusiveArch: %{rust_arches}
- rust-trust-dns-proto
ExclusiveArch: %{rust_arches}
- rust-trust-dns-resolver
ExclusiveArch: %{rust_arches}
- rust-try-lock
ExclusiveArch: %{rust_arches}
- rust-try_from
ExclusiveArch: %{rust_arches}
- rust-try_or
ExclusiveArch: %{rust_arches}
- rust-trybuild
ExclusiveArch: %{rust_arches}
- rust-tss-esapi
ExclusiveArch: %{rust_arches}
- rust-tui
ExclusiveArch: %{rust_arches}
- rust-tui-react
ExclusiveArch: %{rust_arches}
- rust-tuikit
ExclusiveArch: %{rust_arches}
- rust-tungstenite
ExclusiveArch: %{rust_arches}
- rust-twoway
ExclusiveArch: %{rust_arches}
- rust-typeable
ExclusiveArch: %{rust_arches}
- rust-typed-arena
ExclusiveArch: %{rust_arches}
- rust-typemap
ExclusiveArch: %{rust_arches}
- rust-typenum
ExclusiveArch: %{rust_arches}
- rust-ucd-parse
ExclusiveArch: %{rust_arches}
- rust-ucd-trie
ExclusiveArch: %{rust_arches}
- rust-ucd-util
ExclusiveArch: %{rust_arches}
- rust-unchecked-index
ExclusiveArch: %{rust_arches}
- rust-unescape
ExclusiveArch: %{rust_arches}
- rust-unic-char-property
ExclusiveArch: %{rust_arches}
- rust-unic-char-range
ExclusiveArch: %{rust_arches}
- rust-unic-common
ExclusiveArch: %{rust_arches}
- rust-unic-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-category
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-common
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-version
ExclusiveArch: %{rust_arches}
- rust-unicase
ExclusiveArch: %{rust_arches}
- rust-unicase1
ExclusiveArch: %{rust_arches}
- rust-unicode-bidi
ExclusiveArch: %{rust_arches}
- rust-unicode-normalization
ExclusiveArch: %{rust_arches}
- rust-unicode-segmentation
ExclusiveArch: %{rust_arches}
- rust-unicode-width
ExclusiveArch: %{rust_arches}
- rust-unicode-xid
ExclusiveArch: %{rust_arches}
- rust-unicode-xid0.1
ExclusiveArch: %{rust_arches}
- rust-unicode_categories
ExclusiveArch: %{rust_arches}
- rust-unindent
ExclusiveArch: %{rust_arches}
- rust-unix_socket
ExclusiveArch: %{rust_arches}
- rust-unreachable
ExclusiveArch: %{rust_arches}
- rust-unsafe-any
ExclusiveArch: %{rust_arches}
- rust-untrusted
ExclusiveArch: %{rust_arches}
- rust-uom
ExclusiveArch: %{rust_arches}
- rust-url
ExclusiveArch: %{rust_arches}
- rust-url1
ExclusiveArch: %{rust_arches}
- rust-url_serde
ExclusiveArch: %{rust_arches}
- rust-urlencoding
ExclusiveArch: %{rust_arches}
- rust-urlocator
ExclusiveArch: %{rust_arches}
- rust-urlshortener
ExclusiveArch: %{rust_arches}
- rust-users
ExclusiveArch: %{rust_arches}
- rust-utf-8
ExclusiveArch: %{rust_arches}
- rust-utf8-ranges
ExclusiveArch: %{rust_arches}
- rust-utf8parse
ExclusiveArch: %{rust_arches}
- rust-uuid
ExclusiveArch: %{rust_arches}
- rust-uuid0.7
ExclusiveArch: %{rust_arches}
- rust-v_escape
ExclusiveArch: %{rust_arches}
- rust-v_escape_derive
ExclusiveArch: %{rust_arches}
- rust-v_htmlescape
ExclusiveArch: %{rust_arches}
- rust-varlink
ExclusiveArch: %{rust_arches}
- rust-varlink-cli
ExclusiveArch: %{rust_arches}
- rust-varlink_generator
ExclusiveArch: %{rust_arches}
- rust-varlink_parser
ExclusiveArch: %{rust_arches}
- rust-varlink_stdinterfaces
ExclusiveArch: %{rust_arches}
- rust-vec_map
ExclusiveArch: %{rust_arches}
- rust-vergen
ExclusiveArch: %{rust_arches}
- rust-version-compare
ExclusiveArch: %{rust_arches}
- rust-version-sync
ExclusiveArch: %{rust_arches}
- rust-version_check
ExclusiveArch: %{rust_arches}
- rust-vmw_backdoor
ExclusiveArch: %{rust_arches}
- rust-void
ExclusiveArch: %{rust_arches}
- rust-vte
ExclusiveArch: %{rust_arches}
- rust-wait-timeout
ExclusiveArch: %{rust_arches}
- rust-walkdir
ExclusiveArch: %{rust_arches}
- rust-want
ExclusiveArch: %{rust_arches}
- rust-warp
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-backend
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-shared
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-test-macro
ExclusiveArch: %{rust_arches}
- rust-wayland-client
ExclusiveArch: %{rust_arches}
- rust-wayland-commons
ExclusiveArch: %{rust_arches}
- rust-wayland-cursor
ExclusiveArch: %{rust_arches}
- rust-wayland-protocols
ExclusiveArch: %{rust_arches}
- rust-wayland-scanner
ExclusiveArch: %{rust_arches}
- rust-wayland-server
ExclusiveArch: %{rust_arches}
- rust-wayland-sys
ExclusiveArch: %{rust_arches}
- rust-webkit2gtk
ExclusiveArch: %{rust_arches}
- rust-webkit2gtk-sys
ExclusiveArch: %{rust_arches}
- rust-websocket
ExclusiveArch: %{rust_arches}
- rust-websocket-base
ExclusiveArch: %{rust_arches}
- rust-which
ExclusiveArch: %{rust_arches}
- rust-wild
ExclusiveArch: %{rust_arches}
- rust-ws
ExclusiveArch: %{rust_arches}
- rust-x11
ExclusiveArch: %{rust_arches}
- rust-x11-clipboard
ExclusiveArch: %{rust_arches}
- rust-x11-dl
ExclusiveArch: %{rust_arches}
- rust-xattr
ExclusiveArch: %{rust_arches}
- rust-xcb
ExclusiveArch: %{rust_arches}
- rust-xcursor
ExclusiveArch: %{rust_arches}
- rust-xdg
ExclusiveArch: %{rust_arches}
- rust-xkbcommon
ExclusiveArch: %{rust_arches}
- rust-xml-rs
ExclusiveArch: %{rust_arches}
- rust-xml5ever
ExclusiveArch: %{rust_arches}
- rust-xz2
ExclusiveArch: %{rust_arches}
- rust-y4m
ExclusiveArch: %{rust_arches}
- rust-yaml-rust
ExclusiveArch: %{rust_arches}
- rust-yaml-rust0.3
ExclusiveArch: %{rust_arches}
- rust-ybaas
ExclusiveArch: %{rust_arches}
- rust-ytop
ExclusiveArch: %{rust_arches}
- rust-yubibomb
ExclusiveArch: %{rust_arches}
- rust-yup-oauth2
ExclusiveArch: %{rust_arches}
- rust-zincati
ExclusiveArch: %{rust_arches}
- rust-zip
ExclusiveArch: %{rust_arches}
- rust-zoneinfo_compiled
ExclusiveArch: %{rust_arches}
- rust-zoxide
ExclusiveArch: %{rust_arches}
- rust-zram-generator
ExclusiveArch: %{rust_arches}
- rust-zstd
ExclusiveArch: %{rust_arches}
- rust-zstd-safe
ExclusiveArch: %{rust_arches}
- rust-zstd-sys
ExclusiveArch: %{rust_arches}
- s390utils
ExclusiveArch: s390 s390x
- safetyblanket
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- sagemath
ExclusiveArch: aarch64 %{ix86} x86_64 ppc sparcv9
- sbcl
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- sbd
ExclusiveArch: i686 x86_64 s390x aarch64 ppc64le
- sbsigntools
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
- seabios
ExclusiveArch: x86_64
- seamonkey
ExclusiveArch: x86_64
- servicelog
ExclusiveArch: ppc %{power64}
- sgabios
ExclusiveArch: %{ix86} x86_64
- sharpfont
ExclusiveArch: %mono_arches
- sharpziplib
ExclusiveArch: %{mono_arches}
- shim
ExclusiveArch: %{efi}
- shim-unsigned-aarch64
ExclusiveArch: aarch64
- shim-unsigned-x64
ExclusiveArch: x86_64
- sigul
ExclusiveArch: x86_64
- skychart
ExclusiveArch: %{fpc_arches}
- snapd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- soup-sharp
ExclusiveArch: %{mono_arches}
- source-to-image
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- sparkleshare
ExclusiveArch: %{mono_arches}
- spicctrl
ExclusiveArch: %{ix86} x86_64
- spice
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- springlobby
ExclusiveArch: %{ix86} x86_64
- squeekboard
ExclusiveArch: %{rust_arches}
- startdde
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- statsd
ExclusiveArch: %{nodejs_arches} noarch
- stratis-cli
ExclusiveArch: %{rust_arches} noarch
- stratisd
ExclusiveArch: %{rust_arches}
- stripesnoop
ExclusiveArch: %{ix86} x86_64
- supercollider
ExclusiveArch: %{qt5_qtwebengine_arches}
- supermin
ExclusiveArch: x86_64
- svt-av1
ExclusiveArch: x86_64
- svt-vp9
ExclusiveArch: x86_64
- swift-lang
ExclusiveArch: x86_64 aarch64
- sysbench
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- syslinux
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- taglib-sharp
ExclusiveArch: %{mono_arches}
- tarantool
ExclusiveArch: %{ix86} x86_64
- tboot
ExclusiveArch: %{ix86} x86_64
- tdlib
ExclusiveArch: x86_64
- templates_parser
ExclusiveArch: %GPRbuild_arches
- ternimal
ExclusiveArch: %{rust_arches}
- themonospot-base
ExclusiveArch: %mono_arches
- themonospot-console
ExclusiveArch: %mono_arches
- themonospot-gui-gtk
ExclusiveArch: %mono_arches
- themonospot-plugin-avi
ExclusiveArch: %mono_arches
- themonospot-plugin-mkv
ExclusiveArch: %mono_arches
- thermald
ExclusiveArch: %{ix86} x86_64
- tilix
ExclusiveArch: %{ldc_arches}
- tmux-top
ExclusiveArch: %{go_arches}
- tomboy
ExclusiveArch: %{mono_arches}
- torbrowser-launcher
ExclusiveArch: %{ix86} x86_64
- tuned-profiles-nfv-host-bin
ExclusiveArch: %{ix86} x86_64
- uClibc
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
- ucx
ExclusiveArch: aarch64 ppc64le x86_64
- ugene
ExclusiveArch: %{ix86} x86_64
- uglify-js
ExclusiveArch: %{nodejs_arches} noarch
- uglify-js1
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- unetbootin
ExclusiveArch: %{ix86} x86_64
- ursa-major
ExclusiveArch: noarch aarch64 ppc64le s390x x86_64
- v8-314
ExclusiveArch: %{ix86} x86_64 %{arm} mips mipsel ppc ppc64
- valgrind
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64
- vapoursynth
ExclusiveArch: %{ix86} x86_64
- vboot-utils
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- vim-go
ExclusiveArch: %{?golang_arches}%{!?golang_arches:%{ix86} x86_64 %{arm}}
- virt-p2v
ExclusiveArch: x86_64
- virtualbox-guest-additions
ExclusiveArch: i686 x86_64
- virtualplanet
ExclusiveArch: %{fpc_arches}
- vkd3d
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- vmaf
ExclusiveArch: x86_64
- vmem
ExclusiveArch: x86_64
- vmemcache
ExclusiveArch: x86_64 ppc64 ppc64le s390x aarch64
- vrq
ExclusiveArch: %{ix86} x86_64
- warsow
ExclusiveArch: %{ix86} x86_64 %{arm}
- warsow-data
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{ix86} x86_64 %{arm}
- webkit2-sharp
ExclusiveArch: %mono_arches
- wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: %{ix86} %{arm}
- wine-dxvk
ExclusiveArch: %{ix86} x86_64
- winetricks
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- wxMaxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
- x2goclient
ExclusiveArch: x86_64
- xe-guest-utilities-latest
ExclusiveArch: %{ix86} x86_64
- xen
ExclusiveArch: %{ix86} x86_64 armv7hl aarch64
- xmlada
ExclusiveArch: %{GPRbuild_arches}
- xorg-x11-drv-armsoc
ExclusiveArch: %{arm} aarch64
- xorg-x11-drv-intel
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-openchrome
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vesa
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vmware
ExclusiveArch: %{ix86} x86_64 ia64
- xsp
ExclusiveArch: %mono_arches
- yarnpkg
ExclusiveArch: %{nodejs_arches} noarch
- zeromq-ada
ExclusiveArch: %{GPRbuild_arches}
- zlib-ada
ExclusiveArch: %{GPRbuild_arches}
- zlib-ng
ExclusiveArch: aarch64 i686 ppc64le s390x x86_64
- zola
ExclusiveArch: %{rust_arches}
3 years, 11 months
Architecture specific change in rpms/root.git
by githook-noreply@fedoraproject.org
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=b2cd7526352f1....
Change:
+%ifarch %{power64} aarch64
Thanks.
Full change:
============
commit b2cd7526352f1e83dddc9407a3b723e246ab6223
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Wed Jul 15 04:44:51 2020 +0200
Update to 6.22.00
Drop patches accepted upstream
root-FitData-assert-fix.patch
root-clang-altivec-vector.patch
root-format-fix.patch
root-moved-file.patch
root-xmlmodify-dep.patch
New and improved Python bindings
The new Python bindings can be built for both Python 2 and Python 3
out of the box. Dropped the workaround in specfile for this (EPEL 7)
Dropped the python3-other packages (EPEL 7)
The new Python bindings has split the TPython interface to a separate
library. Now in a separate root-tpython package
root-tpython and root-tmva-python are now using Python 3 on EPEL 7
New subpackage root-gui-browsable
New patches (submitted upstream)
Fix too aggressive -Werror replacements
Add missing call to TFile::SetCacheFileDir in a TMVA tutorial
Adjust stressGraphics.ref
Fix off-by-one error in histogram v7 bin iterator
Compatibility with python 2.7 versions before 2.7.9
Fix the RNTuple.LargeFile test on 32bit (i386 and armv7hf)
Fix doxygen issues
Fix bad regex in TProofMgr
Compatibility with xrootd 5
diff --git a/root-32bit-dataframe.patch b/root-32bit-dataframe.patch
index e47b913..310171f 100644
--- a/root-32bit-dataframe.patch
+++ b/root-32bit-dataframe.patch
@@ -1,6 +1,6 @@
-diff -ur root-6.20.02.orig/bindings/pyroot/ROOT.py root-6.20.02/bindings/pyroot/ROOT.py
---- root-6.20.02.orig/bindings/pyroot/ROOT.py 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/ROOT.py 2020-03-15 19:50:25.303179253 +0100
+diff -ur root-6.22.00.orig/bindings/pyroot_legacy/ROOT.py root-6.22.00/bindings/pyroot_legacy/ROOT.py
+--- root-6.22.00.orig/bindings/pyroot_legacy/ROOT.py 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot_legacy/ROOT.py 2020-06-29 09:07:41.574798580 +0200
@@ -438,9 +438,7 @@
# This function is injected as method to the respective classes in Pythonize.cxx.
_root._RDataFrameAsNumpy = _RDataFrameAsNumpy
@@ -12,9 +12,9 @@ diff -ur root-6.20.02.orig/bindings/pyroot/ROOT.py root-6.20.02/bindings/pyroot/
### RINT command emulation ------------------------------------------------------
-diff -ur root-6.20.02.orig/build/unix/makepchinput.py root-6.20.02/build/unix/makepchinput.py
---- root-6.20.02.orig/build/unix/makepchinput.py 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/build/unix/makepchinput.py 2020-03-15 19:50:25.304179242 +0100
+diff -ur root-6.22.00.orig/build/unix/makepchinput.py root-6.22.00/build/unix/makepchinput.py
+--- root-6.22.00.orig/build/unix/makepchinput.py 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/build/unix/makepchinput.py 2020-06-29 09:07:41.639798769 +0200
@@ -252,9 +252,6 @@
"math/vdt",
"tmva/rmva"]
@@ -25,9 +25,9 @@ diff -ur root-6.20.02.orig/build/unix/makepchinput.py root-6.20.02/build/unix/ma
accepted = isAnyPatternInString(PCHPatternsWhitelist,dirName) and \
not isAnyPatternInString(PCHPatternsBlacklist,dirName)
-diff -ur root-6.20.02.orig/tree/dataframe/test/dataframe_cache.cxx root-6.20.02/tree/dataframe/test/dataframe_cache.cxx
---- root-6.20.02.orig/tree/dataframe/test/dataframe_cache.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/tree/dataframe/test/dataframe_cache.cxx 2020-03-15 19:50:09.075351525 +0100
+diff -ur root-6.22.00.orig/tree/dataframe/test/dataframe_cache.cxx root-6.22.00/tree/dataframe/test/dataframe_cache.cxx
+--- root-6.22.00.orig/tree/dataframe/test/dataframe_cache.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tree/dataframe/test/dataframe_cache.cxx 2020-06-29 09:07:41.640798772 +0200
@@ -224,8 +224,6 @@
}
@@ -37,16 +37,19 @@ diff -ur root-6.20.02.orig/tree/dataframe/test/dataframe_cache.cxx root-6.20.02/
TEST(Cache, Regex)
{
-@@ -334,5 +332,3 @@
-
+@@ -335,8 +333,6 @@
gSystem->Unlink(fileName);
}
--
+
-#endif // R__B64
-diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_arrow.cxx root-6.20.02/tree/dataframe/test/datasource_arrow.cxx
---- root-6.20.02.orig/tree/dataframe/test/datasource_arrow.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/tree/dataframe/test/datasource_arrow.cxx 2020-03-15 19:50:09.075351525 +0100
-@@ -163,8 +163,6 @@
+-
+ // ROOT-10563
+ TEST(Cache, Alias)
+ {
+diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_arrow.cxx root-6.22.00/tree/dataframe/test/datasource_arrow.cxx
+--- root-6.22.00.orig/tree/dataframe/test/datasource_arrow.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tree/dataframe/test/datasource_arrow.cxx 2020-06-29 09:07:41.645798787 +0200
+@@ -177,8 +177,6 @@
}
#endif
@@ -55,15 +58,15 @@ diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_arrow.cxx root-6.20.02
TEST(RArrowDS, FromARDF)
{
std::unique_ptr<RDataSource> tds(new RArrowDS(createTestTable(), {}));
-@@ -236,5 +234,3 @@
+@@ -250,5 +248,3 @@
}
#endif // R__USE_IMT
-
-#endif // R__B64
-diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_csv.cxx root-6.20.02/tree/dataframe/test/datasource_csv.cxx
---- root-6.20.02.orig/tree/dataframe/test/datasource_csv.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/tree/dataframe/test/datasource_csv.cxx 2020-03-15 19:57:05.490930922 +0100
+diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_csv.cxx root-6.22.00/tree/dataframe/test/datasource_csv.cxx
+--- root-6.22.00.orig/tree/dataframe/test/datasource_csv.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tree/dataframe/test/datasource_csv.cxx 2020-06-29 09:07:41.645798787 +0200
@@ -195,8 +195,6 @@
}
#endif
@@ -79,9 +82,9 @@ diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_csv.cxx root-6.20.02/t
#endif // R__USE_IMT
-
-#endif // R__B64
-diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_root.cxx root-6.20.02/tree/dataframe/test/datasource_root.cxx
---- root-6.20.02.orig/tree/dataframe/test/datasource_root.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/tree/dataframe/test/datasource_root.cxx 2020-03-15 19:50:09.076351514 +0100
+diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_root.cxx root-6.22.00/tree/dataframe/test/datasource_root.cxx
+--- root-6.22.00.orig/tree/dataframe/test/datasource_root.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tree/dataframe/test/datasource_root.cxx 2020-06-29 09:07:41.649798799 +0200
@@ -117,8 +117,6 @@
}
#endif
@@ -97,9 +100,9 @@ diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_root.cxx root-6.20.02/
#endif // R__USE_IMT
-
-#endif // R__B64
-diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_trivial.cxx root-6.20.02/tree/dataframe/test/datasource_trivial.cxx
---- root-6.20.02.orig/tree/dataframe/test/datasource_trivial.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/tree/dataframe/test/datasource_trivial.cxx 2020-03-15 19:50:09.076351514 +0100
+diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_trivial.cxx root-6.22.00/tree/dataframe/test/datasource_trivial.cxx
+--- root-6.22.00.orig/tree/dataframe/test/datasource_trivial.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tree/dataframe/test/datasource_trivial.cxx 2020-06-29 09:07:41.654798814 +0200
@@ -132,8 +132,6 @@
EXPECT_EQ(*tdfAll.Count(), 20ULL);
}
@@ -115,10 +118,10 @@ diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_trivial.cxx root-6.20.
#endif // R__USE_IMT
-
-#endif // R__B64
-diff -ur root-6.20.02.orig/tutorials/CMakeLists.txt root-6.20.02/tutorials/CMakeLists.txt
---- root-6.20.02.orig/tutorials/CMakeLists.txt 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/tutorials/CMakeLists.txt 2020-03-15 19:59:35.808335176 +0100
-@@ -255,10 +255,6 @@
+diff -ur root-6.22.00.orig/tutorials/CMakeLists.txt root-6.22.00/tutorials/CMakeLists.txt
+--- root-6.22.00.orig/tutorials/CMakeLists.txt 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tutorials/CMakeLists.txt 2020-06-29 09:07:41.655798816 +0200
+@@ -257,10 +257,6 @@
set(root7_veto v7/ntuple/ntpl004_dimuon.C)
endif()
@@ -129,7 +132,7 @@ diff -ur root-6.20.02.orig/tutorials/CMakeLists.txt root-6.20.02/tutorials/CMake
#---These ones are disabled !!! ------------------------------------
set(extra_veto
legacy/benchmarks.C
-@@ -311,7 +307,6 @@
+@@ -313,7 +309,6 @@
${classic_veto}
${pythia_veto}
${root7_veto}
@@ -137,11 +140,11 @@ diff -ur root-6.20.02.orig/tutorials/CMakeLists.txt root-6.20.02/tutorials/CMake
${xrootd_veto}
${mlp_veto}
${spectrum_veto}
-@@ -513,7 +508,6 @@
+@@ -526,7 +521,6 @@
list(REMOVE_ITEM pytutorials ${pyveto})
if(NOT dataframe)
- set(dataframe_veto_py dataframe/*.py)
file(GLOB dataframe_veto_py RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} dataframe/*.py tmva/tmva*.py)
list(REMOVE_ITEM pytutorials ${dataframe_veto_py})
- list(REMOVE_ITEM pytutorials pyroot/pyroot002_TTreeAsMatrix.py)
+ list(REMOVE_ITEM pytutorials
diff --git a/root-FitData-assert-fix.patch b/root-FitData-assert-fix.patch
deleted file mode 100644
index 8e9ba00..0000000
--- a/root-FitData-assert-fix.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 07c5d640dd53c83c8b3350b520170fd9a5526495 Mon Sep 17 00:00:00 2001
-From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
-Date: Fri, 13 Mar 2020 14:09:07 +0100
-Subject: [PATCH] Correct broken assert statements
-
----
- math/mathcore/src/FitData.cxx | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/math/mathcore/src/FitData.cxx b/math/mathcore/src/FitData.cxx
-index a2be20ab0d..0bad8ff7cd 100644
---- a/math/mathcore/src/FitData.cxx
-+++ b/math/mathcore/src/FitData.cxx
-@@ -200,9 +200,9 @@ namespace ROOT {
- /// dummy virtual destructor
- FitData::~FitData()
- {
-+ assert(fWrapped == fCoords.empty());
- for (unsigned int i = 0; i < fDim; i++) {
-- assert(fWrapped == fCoords.empty());
-- assert(fCoords.empty() || &fCoords[i].front() == fCoordsPtr[i]);
-+ assert(fWrapped || fCoords[i].empty() || &fCoords[i].front() == fCoordsPtr[i]);
- }
- if (fpTmpCoordVector) delete[] fpTmpCoordVector;
-
---
-2.24.1
-
diff --git a/root-clang-altivec-vector.patch b/root-clang-altivec-vector.patch
deleted file mode 100644
index 4648ccc..0000000
--- a/root-clang-altivec-vector.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From f0e7ee696e416f5cb42619889fcbff7db64f17e1 Mon Sep 17 00:00:00 2001
-From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
-Date: Fri, 13 Mar 2020 17:09:03 +0100
-Subject: [PATCH] Fix ppc64le compilation with gcc 10
-
-Backported from llvm upstream
-https://reviews.llvm.org/D74129
----
- interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp b/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp
-index dbe6b4db94..2096ba6982 100644
---- a/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp
-+++ b/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp
-@@ -2373,7 +2373,7 @@ bool Lexer::SkipBlockComment(Token &Result, const char *CurPtr,
- '/', '/', '/', '/', '/', '/', '/', '/'
- };
- while (CurPtr+16 <= BufferEnd &&
-- !vec_any_eq(*(const vector unsigned char*)CurPtr, Slashes))
-+ !vec_any_eq(*(const __vector unsigned char*)CurPtr, Slashes))
- CurPtr += 16;
- #else
- // Scan for '/' quickly. Many block comments are very large.
---
-2.24.1
-
diff --git a/root-doxygen-crash.patch b/root-doxygen-crash.patch
new file mode 100644
index 0000000..b27f5ce
--- /dev/null
+++ b/root-doxygen-crash.patch
@@ -0,0 +1,33 @@
+diff -ur root-6.22.00.orig/tutorials/tmva/tmva003_RReader.C root-6.22.00/tutorials/tmva/tmva003_RReader.C
+--- root-6.22.00.orig/tutorials/tmva/tmva003_RReader.C 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tutorials/tmva/tmva003_RReader.C 2020-07-09 18:58:36.854733120 +0200
+@@ -5,7 +5,6 @@
+ /// TMVA XML files.
+ ///
+ /// \macro_code
+-/// \macro_output
+ ///
+ /// \date July 2019
+ /// \author Stefan Wunsch
+diff -ur root-6.22.00.orig/tutorials/tmva/tmva103_Application.C root-6.22.00/tutorials/tmva/tmva103_Application.C
+--- root-6.22.00.orig/tutorials/tmva/tmva103_Application.C 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tutorials/tmva/tmva103_Application.C 2020-07-09 18:58:36.855733122 +0200
+@@ -6,7 +6,6 @@
+ /// event-by-event inference, batch inference and pipelines with RDataFrame.
+ ///
+ /// \macro_code
+-/// \macro_output
+ ///
+ /// \date December 2018
+ /// \author Stefan Wunsch
+diff -ur root-6.22.00.orig/tutorials/v7/line.cxx root-6.22.00/tutorials/v7/line.cxx
+--- root-6.22.00.orig/tutorials/v7/line.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tutorials/v7/line.cxx 2020-07-09 18:58:42.202745047 +0200
+@@ -6,7 +6,6 @@
+ /// "normal" coordinates' system and changing the line color linearly from black
+ /// to red.
+ ///
+-/// \macro_image (line.png)
+ /// \macro_code
+ ///
+ /// \date 2018-03-18
diff --git a/root-doxygen-endof-part1.patch b/root-doxygen-endof-part1.patch
new file mode 100644
index 0000000..974b60e
--- /dev/null
+++ b/root-doxygen-endof-part1.patch
@@ -0,0 +1,49 @@
+From c454b8d31a840898a709452525267a8404a05d24 Mon Sep 17 00:00:00 2001
+From: Enrico Guiraud <enrico.guiraud(a)cern.ch>
+Date: Tue, 30 Jun 2020 17:05:13 +0200
+Subject: [PATCH] [NFC][DF] Minor improvements to formatting and docs of
+ Display
+
+---
+ tree/dataframe/inc/ROOT/RDF/RDisplay.hxx | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/tree/dataframe/inc/ROOT/RDF/RDisplay.hxx b/tree/dataframe/inc/ROOT/RDF/RDisplay.hxx
+index 90058f0706..9f5e3623ae 100644
+--- a/tree/dataframe/inc/ROOT/RDF/RDisplay.hxx
++++ b/tree/dataframe/inc/ROOT/RDF/RDisplay.hxx
+@@ -105,10 +105,10 @@ private:
+ }
+
+ ////////////////////////////////////////////////////////////////////////////
+- /// Appends collection.size() cling::printValue call to the stringstream.
++ /// Appends collection.size() cling::printValue calls to the stringstream.
+ /// \tparam T the type of the event to convert
+ /// \param[in] stream Where the conversion function call will be chained.
+- /// \param[in] element The event to convert to its string representation
++ /// \param[in] collection The event to convert to its string representation
+ /// \param[in] index To which column the event belongs to
+ /// \return true, the event is a collection
+ /// This function chains a sequence of call to cling::printValue, one for each element of the collection.
+@@ -128,7 +128,8 @@ private:
+ // For each element, append a call and feed the proper type returned by GetSplit
+ for (size_t i = 0; i < collectionSize; ++i) {
+ stream << "*((std::string*)" << ROOT::Internal::RDF::PrettyPrintAddr(&(fCollectionsRepresentations[index][i]))
+- << ") = cling::printValue((" << output[1] << "*)" << ROOT::Internal::RDF::PrettyPrintAddr(&(collection[i])) << ");";
++ << ") = cling::printValue((" << output[1] << "*)"
++ << ROOT::Internal::RDF::PrettyPrintAddr(&(collection[i])) << ");";
+ }
+ return true;
+ }
+@@ -197,7 +198,7 @@ public:
+ /// Prints the representation to the standard output
+ ///
+ /// Collections are shortened to the first and last element. The overall width
+- /// is shortened to a fixed size of TODO
++ /// is shortened to a fixed number of columns that should fit the screen width.
+ void Print() const;
+
+ ////////////////////////////////////////////////////////////////////////////
+--
+2.26.2
+
diff --git a/root-doxygen-endof-part2.patch b/root-doxygen-endof-part2.patch
new file mode 100644
index 0000000..a32b39f
--- /dev/null
+++ b/root-doxygen-endof-part2.patch
@@ -0,0 +1,978 @@
+From 1198ee3e08c46d1edc9258dbe857f66340f53a20 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Wed, 8 Jul 2020 10:39:54 +0200
+Subject: [PATCH 2/5] Fix various "end of ..." warnings from doxygen.
+
+This addresses warnings like:
+
+- end of comment block while expecting command </b>
+- end of comment block while expecting command </em>
+- end of comment block while expecting command </pre>
+- end of comment block while expecting command </s>
+- end of comment block while expecting command </sup>
+- end of comment block while expecting command </tt>
+- end of comment block while expecting command </u>
+- end of list marker found without any preceding list items
+- found </em> tag without matching <em>
+- found </li> tag without matching <li>
+- found </pre> tag without matching <pre>
+- found </sub> tag while expecting </sup>
+- found </sup> tag without matching <sup>
+- found </tt> tag without matching <tt>
+- found </ul> tag without matching <ul>
+- illegal </br> tag found
+- reached end of file while inside a 'code' block!
+- reached end of file while still inside a (nested) comment.
+- unexpected end of comment while inside <a href=...> tag
+- unexpected end of comment while inside <ul> block
+- unexpected html tag <blockquote> found within <h1> context
+- unexpected tag </h2> found
+- unexpected tag </h3> found
+- unsupported xml/html tag <it> found
+- unsupported xml/html tag </it> found
+---
+ bindings/r/inc/TRDataFrame.h | 2 +-
+ core/base/src/TEnv.cxx | 7 +-
+ core/cont/src/TBits.cxx | 2 +-
+ core/dictgen/res/DictSelectionReader.h | 140 +++++++++---------
+ core/foundation/inc/ROOT/TypeTraits.hxx | 2 +-
+ core/meta/src/TClass.cxx | 6 +-
+ core/metacling/src/TCling.cxx | 8 +-
+ graf2d/x11/src/TGX11.cxx | 6 +-
+ gui/guihtml/src/TGHtmlSizer.cxx | 4 +-
+ hist/hist/src/TSVDUnfold.cxx | 8 +-
+ hist/histpainter/src/THistPainter.cxx | 2 +-
+ hist/histv7/speed/histspeedtest.cxx | 1 -
+ hist/unfold/inc/TUnfold.h | 8 +-
+ html/src/TDocDirective.cxx | 2 +-
+ math/mathcore/inc/Math/ProbFuncMathCore.h | 8 +-
+ math/mathcore/inc/Math/QuantFuncMathCore.h | 4 +-
+ math/mathcore/src/TMath.cxx | 2 +-
+ math/mathmore/inc/Math/GSLMultiRootFinder.h | 16 +-
+ math/matrix/doc/Matrix.md | 2 +-
+ math/minuit/src/TMinuit.cxx | 4 +-
+ montecarlo/eg/src/TDatabasePDG.cxx | 2 +-
+ montecarlo/vmc/README.md | 2 +-
+ net/http/civetweb/LICENSE.md | 4 -
+ proof/proof/src/TProofMgr.cxx | 50 ++++---
+ proof/proof/src/TProofServ.cxx | 10 +-
+ roofit/histfactory/doc/index.md | 11 +-
+ .../src/MakeModelAndMeasurementsFast.cxx | 11 +-
+ roofit/roofitcore/inc/RooAbsCategory.h | 2 +-
+ roofit/roofitcore/src/RooSimPdfBuilder.cxx | 4 +-
+ tmva/tmva/src/Factory.cxx | 6 +-
+ tmva/tmva/src/Reader.cxx | 4 +-
+ tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx | 2 +-
+ tutorials/net/udpserver.c | 2 +-
+ tutorials/tmva/TMVA_CNN_Classification.C | 2 +-
+ 34 files changed, 168 insertions(+), 178 deletions(-)
+
+diff --git a/bindings/r/inc/TRDataFrame.h b/bindings/r/inc/TRDataFrame.h
+index b7bb4ed89d..dbf48e1383 100644
+--- a/bindings/r/inc/TRDataFrame.h
++++ b/bindings/r/inc/TRDataFrame.h
+@@ -136,7 +136,7 @@ namespace ROOT {
+ 2 |1
+ \endcode
+
+- </h2>Working with colunms between dataframes</h2><br>
++ <h2>Working with colunms between dataframes</h2><br>
+ \code{.cpp}
+ df2["v3"]<<df1["strings"];
+
+diff --git a/core/base/src/TEnv.cxx b/core/base/src/TEnv.cxx
+index 39c07caf21..ab697df7b7 100644
+--- a/core/base/src/TEnv.cxx
++++ b/core/base/src/TEnv.cxx
+@@ -388,10 +388,9 @@ TString TEnvRec::ExpandValue(const char *value)
+ ClassImp(TEnv);
+
+ ////////////////////////////////////////////////////////////////////////////////
+-/// Create a resource table and read the (possibly) three resource files, i.e
+-/// `$ROOTSYS/etc/system``<name>` (or `ROOTETCDIR/system``<name>`),
+-/// `$HOME/``<name>` and
+-/// `./``<name>`.
++/// Create a resource table and read the (possibly) three resource files,
++/// i.e.\ `$ROOTSYS/etc/system<name>` (or `ROOTETCDIR/system<name>`),
++/// `$HOME/<name>` and `$PWD/<name>`.
+ /// ROOT always reads ".rootrc" (in TROOT::InitSystem()). You can
+ /// read additional user defined resource files by creating additional TEnv
+ /// objects. By setting the shell variable ROOTENV_NO_HOME=1 the reading of
+diff --git a/core/cont/src/TBits.cxx b/core/cont/src/TBits.cxx
+index 155bfd4b4c..95167dd5b1 100644
+--- a/core/cont/src/TBits.cxx
++++ b/core/cont/src/TBits.cxx
+@@ -10,7 +10,7 @@ Container of bits.
+ This class provides a simple container of bits.
+ Each bit can be set and tested via the functions SetBitNumber and
+ TestBitNumber.
+- .
++
+ The default value of all bits is kFALSE.
+ The size of the container is automatically extended when a bit
+ number is either set or tested. To reduce the memory size of the
+diff --git a/core/dictgen/res/DictSelectionReader.h b/core/dictgen/res/DictSelectionReader.h
+index 52921d6237..b19135badd 100644
+--- a/core/dictgen/res/DictSelectionReader.h
++++ b/core/dictgen/res/DictSelectionReader.h
+@@ -60,34 +60,32 @@ namespace clang {
+ * By default, the Name of the selection class is then
+ * @c ROOT::Meta::Selection::C. If you have such a class, it will be found
+ * automatically. If @c C is in a namespace, @c NS::C, then
+- * the selection class should be in the same namespace: @c
+-ROOT::Selection::NS::C.
++ * the selection class should be in the same namespace:
++ * @c ROOT::Meta::Selection::NS::C.
++ *
+ * Examples:
+ *
+-
+-**/
+-
+-/**
+ * The DictSelectionReader is used to create selection rules starting from
+ * C++ the constructs of the @c ROOT::Meta::Selection namespace. All rules
+ * are matching by name.
+ * A brief description of the operations that lead to class selection:
+- * 1. If a class declaration is present in the selection namespace, a class
+- * with the same name is selected outside the selection namespace.
+- * 2. If a template class declaration and a template instantiation is present
+- * in the selection namespace, all the instances of the template are
+- * selected outside the namespace.
++ * 1. If a class declaration is present in the selection namespace, a class
++ * with the same name is selected outside the selection namespace.
++ * 2. If a template class declaration and a template instantiation is present
++ * in the selection namespace, all the instances of the template are
++ * selected outside the namespace.
++ *
+ * For example:
+ * @code
+ * [...]
+ * class classVanilla{};
+ * template <class A> class classTemplateVanilla {};
+ * classTemplateVanilla<char> t0;
+- * namespace ROOT{
++ * namespace ROOT {
+ * namespace Meta {
+- * namespace Selection{
+- * class classVanilla{};
+- * template <typename A> class classTemplateVanilla{};
++ * namespace Selection {
++ * class classVanilla {};
++ * template <typename A> class classTemplateVanilla {};
+ * classTemplateVanilla<char> st0;
+ * }
+ * }
+@@ -98,14 +96,15 @@ ROOT::Selection::NS::C.
+ *
+ * A brief description of the properties that can be assigned to classes
+ * with the @c ROOT::Meta::Selection::ClassAttributes class.
+- * 1. @c kNonSplittable : Makes the class non splittable
++ * 1. @c kNonSplittable : Makes the class non splittable
++ *
+ * The class properties can be assigned via a traits mechanism. For example:
+ * @code
+ * [...]
+- * class classWithAttributes{};
+- * namespace ROOT{
++ * class classWithAttributes {};
++ * namespace ROOT {
+ * namespace Meta {
+- * namespace Selection{
++ * namespace Selection {
+ * class classWithAttributes : ClassAttributes <kNonSplittable> {};
+ * }
+ * }
+@@ -116,9 +115,9 @@ ROOT::Selection::NS::C.
+ * properties can be assigned to a single class with this syntax:
+ * @code
+ * [...]
+- * namespace ROOT{
++ * namespace ROOT {
+ * namespace Meta {
+- * namespace Selection{
++ * namespace Selection {
+ * class classWithAttributes :
+ * ClassAttributes <kProperty1 + kProperty2 + ... + kPropertyN> {};
+ * }
+@@ -126,7 +125,6 @@ ROOT::Selection::NS::C.
+ * }
+ * @endcode
+ *
+- *
+ * The @c ROOT::Meta::Selection syntax allows to alter the number of template
+ * parameters of a certain template class within the ROOT type system, TClass.
+ * Technically it allows to alter the way in which the "normalized name" (in
+@@ -137,23 +135,21 @@ ROOT::Selection::NS::C.
+ * a long explaination in this case:
+ * @code
+ * [...]
+- * template <class T, class U=int, int V=3> class A{...};
+- * template <class T, class Alloc= myAllocator<T> > class myVector{...};
++ * template <class T, class U = int, int V = 3> class A {...};
++ * template <class T, class Alloc = myAllocator<T> > class myVector {...};
+ * A<char> a1;
+- * A<char,float> a2;
++ * A<char, float> a2;
+ * myVector<float> v1;
+ * myVector<A<char>> v2;
+ *
+- * namespace ROOT{
++ * namespace ROOT {
+ * namespace Meta {
+- * namespace Selection{
+- * template <class T, class U=int, int V=3> class A
+- * :KeepFirstTemplateArguments<1>{};
+- *
+- * A<double> ;
+- * template <class T, class Alloc= myAllocator<T> > class myVector
+- * :KeepFirstTemplateArguments<1>{};
+- *
++ * namespace Selection {
++ * template <class T, class U = int, int V = 3> class A
++ * : KeepFirstTemplateArguments<1> {};
++ * A<double> a;
++ * template <class T, class Alloc = myAllocator<T> > class myVector
++ * : KeepFirstTemplateArguments<1> {};
+ * myVector<double> vd;
+ * }
+ * }
+@@ -165,53 +161,55 @@ ROOT::Selection::NS::C.
+ * will be kept.
+ * In absence of any @c KeepFirstTemplateArguments trait, the normalization
+ * would be:
+- * @c A<char> &rarr @c A<char,float,3>
+- * @c A<char,float> &rarr @c A<char,int,3>
+- * @c myVector<float> &rarr @c myVector<A<char,int,3>,myAllocator<A<char,int,3>>>
+- * @c myVector<A<char>> &rarr @c myVector<float,myAllocator<float>>
++ * - @c A<char> → @c A<char,float,3>
++ * - @c A<char,float> → @c A<char,int,3>
++ * - @c myVector<float> → @c myVector<A<char,int,3>,myAllocator<A<char,int,3>>>
++ * - @c myVector<A<char>> → @c myVector<float,myAllocator<float>>
+ *
+ * Now, deciding to keep just one argument (@c KeepFirstTemplateArguments<1>):
+- * @c A<char> &rarr @c A<char,float>
+- * @c A<char,float> &rarr @c A<char>
+- * @c myVector<float> &rarr @c myVector<A<char>,myAllocator<A<char>>>
+- * @c myVector<A<char>> &rarr @c myVector<float,myAllocator<float>>
++ * - @c A<char> → @c A<char,float>
++ * - @c A<char,float> → @c A<char>
++ * - @c myVector<float> → @c myVector<A<char>,myAllocator<A<char>>>
++ * - @c myVector<A<char>> → @c myVector<float,myAllocator<float>>
+ *
+ * And deciding to keep two arguments (@c KeepFirstTemplateArguments<2>):
+- * @c A<char> &rarr @c A<char,float>
+- * @c A<char,float> &rarr @c A<char,int>
+- * @c myVector<float> &rarr @c myVector<A<char,int>,myAllocator<A<char,int>>>
+- * @c myVector<A<char>> &rarr @c myVector<float,myAllocator<float>>
++ * - @c A<char> → @c A<char,float>
++ * - @c A<char,float> → @c A<char,int>
++ * - @c myVector<float> → @c myVector<A<char,int>,myAllocator<A<char,int>>>
++ * - @c myVector<A<char>> → @c myVector<float,myAllocator<float>>
+ *
+ * A brief description of the properties that can be assigned to data members
+ * with the @c ROOT::Meta::Selection MemberAttributes class:
+- * 1. @c kTransient : the data member is transient, not persistified by the
+- * ROOT I/O.
+- * 2. @c kAutoSelected : the type of the data member is selected without the
+- * need of specifying its class explicitely.
++ * 1. @c kTransient : the data member is transient, not persistified by the
++ * ROOT I/O.
++ * 2. @c kAutoSelected : the type of the data member is selected without the
++ * need of specifying its class explicitely.
++ *
+ * For example:
+ * @code
+ * [...]
+- * class classTransientMember{
++ * class classTransientMember {
+ * private:
+ * int transientMember;
+ * };
+- * class classAutoselected{};
+- * class classTestAutoselect{
++ * class classAutoselected {};
++ * class classTestAutoselect {
+ * private:
+ * classAutoselected autoselected;
+ * };
+ *
+- * namespace ROOT{
++ * namespace ROOT {
+ * namespace Meta {
+- * namespace Selection{
+- * class classTestAutoselect{
++ * namespace Selection {
++ * class classTestAutoselect {
+ * MemberAttributes<kAutoSelected> autoselected;
+ * };
+-
+- class classTransientMember{
+- MemberAttributes<kTransient> transientMember;
+- };
+- *
++ * class classTransientMember {
++ * MemberAttributes<kTransient> transientMember;
++ * };
++ * }
++ * }
++ * }
+ * @endcode
+ * would lead to the creation of selection rules for @c classTransientMember
+ * specifying that @c transientMember is transient, @c classTestAutoselect and
+@@ -229,10 +227,10 @@ ROOT::Selection::NS::C.
+ * template< class T, class BASE >
+ * class MyDataVector : KeepFirstTemplateArguments< 1 >, SelectNoInstance {
+ * MemberAttributes< kTransient + kAutoSelected > m_isMostDerived;
+- * MemberAttributes< kNonSplittable+ kAutoSelected > m_isNonSplit;
+- * };
++ * MemberAttributes< kNonSplittable + kAutoSelected > m_isNonSplit;
++ * };
+ * [...]
+- *
++ * @endcode
+ **/
+ namespace ROOT {
+ namespace Internal {
+@@ -265,12 +263,9 @@ private:
+ inline bool
+ InSelectionNamespace(const clang::RecordDecl &,
+ const std::string &str =
+- ""); ///< Check if in the ROOT::Selection namespace
++ ""); ///< Check if in the ROOT::Meta::Selection namespace
+ inline bool FirstPass(const clang::RecordDecl &); ///< First pass on the AST
+- inline bool SecondPass(const clang::RecordDecl &); ///< Second pass on the
+- ///AST, using the
+- ///information of the first
+- ///one
++ inline bool SecondPass(const clang::RecordDecl &); ///< Second pass on the AST, using the information of the first one
+ inline void
+ ManageFields(const clang::RecordDecl &,
+ const std::string &,
+@@ -285,8 +280,7 @@ private:
+ inline const clang::TemplateArgumentList *GetTmplArgList(
+ const clang::CXXRecordDecl &); ///< Get the template arguments list if any
+
+- std::string PatternifyName(const std::string &className); ///< Transform instance
+- ///< name in pattern for selection
++ std::string PatternifyName(const std::string &className); ///< Transform instance name in pattern for selection
+ void GetPointeeType(std::string &typeName); ///< Get name of the pointee type
+
+ SelectionRules &fSelectionRules; ///< The selection rules to be filled
+@@ -300,9 +294,9 @@ private:
+ fNoAutoSelectedClassFieldNames; ///< Collect the autoexcluded classes
+ std::unordered_map<std::string, TemplateInfo> fTemplateInfoMap; ///< List template name - properties map
+ llvm::StringMap<ClassSelectionRule>
+- fClassNameSelectionRuleMap; /// < Map of the already built sel rules
++ fClassNameSelectionRuleMap; ///< Map of the already built sel rules
+ bool fIsFirstPass; ///< Keep trance of the number of passes through the AST
+- ROOT::TMetaUtils::TNormalizedCtxt &fNormCtxt; /// < The reference to the normalized context
++ ROOT::TMetaUtils::TNormalizedCtxt &fNormCtxt; ///< The reference to the normalized context
+ };
+ }
+ }
+diff --git a/core/foundation/inc/ROOT/TypeTraits.hxx b/core/foundation/inc/ROOT/TypeTraits.hxx
+index 1abf64e73a..ab491c2504 100644
+--- a/core/foundation/inc/ROOT/TypeTraits.hxx
++++ b/core/foundation/inc/ROOT/TypeTraits.hxx
+@@ -155,7 +155,7 @@ template <typename T>
+ using TakeFirstParameter_t = typename TakeFirstParameter<T>::type;
+
+ /// Remove first of possibly many template parameters.
+-/// e.g. RemoveFirstParameter_t<U<A,B>> is U<B>
++/// e.g. RemoveFirstParameter_t<U<A,B>> is U\<B\>
+ template <typename>
+ struct RemoveFirstParameter {
+ };
+diff --git a/core/meta/src/TClass.cxx b/core/meta/src/TClass.cxx
+index 4eeec81dc1..f29ab7fd85 100644
+--- a/core/meta/src/TClass.cxx
++++ b/core/meta/src/TClass.cxx
+@@ -6780,7 +6780,7 @@ void TClass::SetDestructor(ROOT::DesFunc_t destructorFunc)
+ }
+
+ ////////////////////////////////////////////////////////////////////////////////
+-/// Install a new wrapper around the directory auto add function..
++/// Install a new wrapper around the directory auto add function.
+ /// The function autoAddFunc has the signature void (*)(void *obj, TDirectory dir)
+ /// and should register 'obj' to the directory if dir is not null
+ /// and unregister 'obj' from its current directory if dir is null
+@@ -7120,12 +7120,12 @@ Bool_t ROOT::Internal::HasConsistentHashMember(TClass &clRef)
+ /// (public or not), use
+ /// \code{.cpp}
+ /// cl->GetProperty() & kClassHasDefaultCtor
+-/// \code
++/// \endcode
+ /// To know if the class described by this TClass has a public default
+ /// constructor use:
+ /// \code{.cpp}
+ /// gInterpreter->ClassInfo_HasDefaultConstructor(aClass->GetClassInfo());
+-/// \code
++/// \endcode
+
+ Bool_t TClass::HasDefaultConstructor(Bool_t testio) const
+ {
+diff --git a/core/metacling/src/TCling.cxx b/core/metacling/src/TCling.cxx
+index db0da13620..279744834a 100644
+--- a/core/metacling/src/TCling.cxx
++++ b/core/metacling/src/TCling.cxx
+@@ -5388,10 +5388,10 @@ int TCling::ReadRootmapFile(const char *rootmapfile, TUniqueString *uniqueString
+ }
+
+ ////////////////////////////////////////////////////////////////////////////////
+-/// Create a resource table and read the (possibly) three resource files, i.e
+-/// $ROOTSYS/etc/system<name> (or ROOTETCDIR/system<name>), $HOME/<name> and
+-/// ./<name>. ROOT always reads ".rootrc" (in TROOT::InitSystem()). You can
+-/// read additional user defined resource files by creating additional TEnv
++/// Create a resource table and read the (possibly) three resource files,
++/// i.e.\ $ROOTSYS/etc/system<name> (or ROOTETCDIR/system<name>), $HOME/<name>
++/// and $PWD/<name>. ROOT always reads ".rootrc" (in TROOT::InitSystem()). You
++/// can read additional user defined resource files by creating additional TEnv
+ /// objects. By setting the shell variable ROOTENV_NO_HOME=1 the reading of
+ /// the $HOME/<name> resource file will be skipped. This might be useful in
+ /// case the home directory resides on an automounted remote file system
+diff --git a/graf2d/x11/src/TGX11.cxx b/graf2d/x11/src/TGX11.cxx
+index 59e5260c92..26f88dd045 100644
+--- a/graf2d/x11/src/TGX11.cxx
++++ b/graf2d/x11/src/TGX11.cxx
+@@ -3599,9 +3599,9 @@ Pixmap_t TGX11::ReadGIF(int x0, int y0, const char *file, Window_t id)
+ }
+
+ ////////////////////////////////////////////////////////////////////////////////
+-/// Returns an array of pixels created from a part of drawable (defined by x, y, w, h)
+-/// in format:
+-/// `b1, g1, r1, 0, b2, g2, r2, 0 ... bn, gn, rn, 0 ..`
++/// Returns an array of pixels created from a part of drawable
++/// (defined by x, y, w, h) in format:
++/// `b1, g1, r1, 0, b2, g2, r2, 0, ..., bn, gn, rn, 0`.
+ ///
+ /// Pixels are numbered from left to right and from top to bottom.
+ /// By default all pixels from the whole drawable are returned.
+diff --git a/gui/guihtml/src/TGHtmlSizer.cxx b/gui/guihtml/src/TGHtmlSizer.cxx
+index c73eb581b5..8e6e71dcf7 100644
+--- a/gui/guihtml/src/TGHtmlSizer.cxx
++++ b/gui/guihtml/src/TGHtmlSizer.cxx
+@@ -60,7 +60,7 @@ SHtmlStyle_t TGHtml::GetCurrentStyle()
+ ////////////////////////////////////////////////////////////////////////////////
+ /// Push a new rendering style onto the stack.
+ ///
+-/// tag - Tag for this style. Normally the end-tag such as </h3> or </em>.
++/// tag - Tag for this style. Normally the end-tag such as \</h3\> or \</em\>.
+ /// style - The style to push
+
+ void TGHtml::PushStyleStack(int tag, SHtmlStyle_t style)
+@@ -152,7 +152,7 @@ void TGHtml::MakeInvisible(TGHtmlElement *p_first, TGHtmlElement *p_last)
+ }
+
+ ////////////////////////////////////////////////////////////////////////////////
+-/// For the markup <a href=XXX>, find out if the URL has been visited
++/// For the markup \<a href=XXX\>, find out if the URL has been visited
+ /// before or not. Return COLOR_Visited or COLOR_Unvisited, as
+ /// appropriate.
+
+diff --git a/hist/hist/src/TSVDUnfold.cxx b/hist/hist/src/TSVDUnfold.cxx
+index 85cfa9f241..2b570bdb22 100644
+--- a/hist/hist/src/TSVDUnfold.cxx
++++ b/hist/hist/src/TSVDUnfold.cxx
+@@ -46,13 +46,11 @@
+ The measured distribution can be unfolded for any combination of resolution, efficiency and acceptance effects, provided an appropriate definition of <tt>xini</tt> and <tt>Adet</tt>.<br><br>
+ <p>
+ The unfolding can be performed by
+- <ul>
+- <pre>
++ \code{.cpp}
+ TSVDUnfold *tsvdunf = new TSVDUnfold( bdat, Bcov, bini, xini, Adet );
+ TH1D* unfresult = tsvdunf->Unfold( kreg );
+- </pre>
+- </ul>
+- where <tt>kreg</tt> determines the regularisation of the unfolding. In general, overregularisation (too small <tt>kreg</tt>) will bias the unfolded spectrum towards the Monte Carlo input, while underregularisation (too large <tt>kreg</tt>) will lead to large fluctuations in the unfolded spectrum. The optimal regularisation can be determined following guidelines in <a href="http://arXiv.org/abs/hep-ph/9509307">Nucl. Instrum. Meth. A372, 469 (1996) [hep-ph/9509307]</a> using the distribution of the <tt>|d_i|<\tt> that can be obtained by <tt>tsvdunf->GetD()</tt> and/or using pseudo-experiments.
++ \endcode
++ where <tt>kreg</tt> determines the regularisation of the unfolding. In general, overregularisation (too small <tt>kreg</tt>) will bias the unfolded spectrum towards the Monte Carlo input, while underregularisation (too large <tt>kreg</tt>) will lead to large fluctuations in the unfolded spectrum. The optimal regularisation can be determined following guidelines in <a href="http://arXiv.org/abs/hep-ph/9509307">Nucl. Instrum. Meth. A372, 469 (1996) [hep-ph/9509307]</a> using the distribution of the <tt>|d_i|</tt> that can be obtained by <tt>tsvdunf->GetD()</tt> and/or using pseudo-experiments.
+ <p>
+ Covariance matrices on the measured spectrum (for either the total uncertainties or individual sources of uncertainties) can be propagated to covariance matrices using the <tt>GetUnfoldCovMatrix</tt> method, which uses pseudo experiments for the propagation. In addition, <tt>GetAdetCovMatrix</tt> allows for the propagation of the statistical uncertainties on the response matrix using pseudo experiments. The covariance matrix corresponding to <tt>Bcov</tt> is also computed as described in <a href="http://arXiv.org/abs/hep-ph/9509307">Nucl. Instrum. Meth. A372, 469 (1996) [hep-ph/9509307]</a> and can be obtained from <tt>tsvdunf->GetXtau()</tt> and its (regularisation independent) inverse from <tt>tsvdunf->GetXinv()</tt>. The distribution of singular values can be retrieved using <tt>tsvdunf->GetSV()</tt>.
+ <p>
+diff --git a/hist/histpainter/src/THistPainter.cxx b/hist/histpainter/src/THistPainter.cxx
+index 0f80505570..20a944a545 100644
+--- a/hist/histpainter/src/THistPainter.cxx
++++ b/hist/histpainter/src/THistPainter.cxx
+@@ -418,7 +418,7 @@ some combinations must be use with care.
+ - It does not work when combined with the `LEGO` and `SURF` options unless the
+ histogram plotted with the option `SAME` has exactly the same
+ ranges on the X, Y and Z axis as the currently drawn histogram. To superimpose
+- lego plots [histograms' stacks](#HP26) should be used.</li>
++ lego plots [histograms' stacks](#HP26) should be used.
+
+
+ ### <a name="HP061"></a> Colors automatically picked in palette
+diff --git a/hist/histv7/speed/histspeedtest.cxx b/hist/histv7/speed/histspeedtest.cxx
+index 55c0992bd5..065a10f0d7 100644
+--- a/hist/histv7/speed/histspeedtest.cxx
++++ b/hist/histv7/speed/histspeedtest.cxx
+@@ -35,7 +35,6 @@ and
+ /opt/build/root_builds/rootcling.cmake/include/ROOT/THistBinIter.h:53:50: error: no member named 'GetUncertainty' in
+ 'ROOT::Experimental::THistDataContent<2, double, ROOT::Experimental::THistDataDefaultStorage>::TBinStat<double>' auto
+ GetUncertainty() const { return GetStat().GetUncertainty(); }
+- ~~~~~~~~~ ^
+
+ new ones (STATCLASSES)
+
+diff --git a/hist/unfold/inc/TUnfold.h b/hist/unfold/inc/TUnfold.h
+index a69da26b4c..ce6e16fb4a 100644
+--- a/hist/unfold/inc/TUnfold.h
++++ b/hist/unfold/inc/TUnfold.h
+@@ -179,15 +179,15 @@ class TUnfold : public TObject {
+ TMatrixD *fX;
+ /// covariance matrix Vxx
+ TMatrixDSparse *fVxx;
+- /// inverse of covariance matrix Vxx<sup>-1</sub>
++ /// inverse of covariance matrix Vxx<sup>-1</sup>
+ TMatrixDSparse *fVxxInv;
+- /// inverse of the input covariance matrix Vyy<sup>-1</sub>
++ /// inverse of the input covariance matrix Vyy<sup>-1</sup>
+ TMatrixDSparse *fVyyInv;
+ /// result x folded back A*x
+ TMatrixDSparse *fAx;
+- /// chi**2 contribution from (y-Ax)Vyy<sup>-1</sub>(y-Ax)
++ /// chi**2 contribution from (y-Ax)Vyy<sup>-1</sup>(y-Ax)
+ Double_t fChi2A;
+- /// chi**2 contribution from (x-s*x0)<sup>T</sub>L<sup>T</sub>L(x-s*x0)
++ /// chi**2 contribution from (x-s*x0)<sup>T</sup>L<sup>T</sup>L(x-s*x0)
+ Double_t fLXsquared;
+ /// maximum global correlation coefficient
+ Double_t fRhoMax;
+diff --git a/html/src/TDocDirective.cxx b/html/src/TDocDirective.cxx
+index f7ffdc29c3..ab43d1ab38 100644
+--- a/html/src/TDocDirective.cxx
++++ b/html/src/TDocDirective.cxx
+@@ -215,7 +215,7 @@ void TDocHtmlDirective::AddLine(const TSubString& line)
+
+ ////////////////////////////////////////////////////////////////////////////////
+ /// Set result to the HTML code that was passed in via AddLine().
+-/// Prepend a closing </pre>, append an opening <pre>
++/// Prepend a closing \</pre\>, append an opening \<pre\>
+
+ Bool_t TDocHtmlDirective::GetResult(TString& result)
+ {
+diff --git a/math/mathcore/inc/Math/ProbFuncMathCore.h b/math/mathcore/inc/Math/ProbFuncMathCore.h
+index d751c47a36..16e205347c 100644
+--- a/math/mathcore/inc/Math/ProbFuncMathCore.h
++++ b/math/mathcore/inc/Math/ProbFuncMathCore.h
+@@ -41,8 +41,8 @@ namespace Math {
+ * These names are currently kept for backward compatibility, but
+ * their usage is deprecated.
+ *
+- * These functions are defined in the header file <em>Math/ProbFunc.h<em> or in the global one
+- * including all statistical functions <em>Math/DistFunc.h<em>
++ * These functions are defined in the header file <em>Math/ProbFunc.h</em> or in the global one
++ * including all statistical functions <em>Math/DistFunc.h</em>
+ *
+ */
+
+@@ -727,8 +727,8 @@ namespace Math {
+ first or the second momentum of the truncated distribution.
+ In the case of the Landau, first and second momentum functions are provided for the Landau
+ distribution truncated only on the right side.
+- These functions are defined in the header file <em>Math/ProbFunc.h<em> or in the global one
+- including all statistical functions <em>Math/StatFunc.h<em>
++ These functions are defined in the header file <em>Math/ProbFunc.h</em> or in the global one
++ including all statistical functions <em>Math/StatFunc.h</em>
+
+ */
+
+diff --git a/math/mathcore/inc/Math/QuantFuncMathCore.h b/math/mathcore/inc/Math/QuantFuncMathCore.h
+index 7da5bd1178..1be023b33f 100644
+--- a/math/mathcore/inc/Math/QuantFuncMathCore.h
++++ b/math/mathcore/inc/Math/QuantFuncMathCore.h
+@@ -41,8 +41,8 @@ namespace Math {
+ *
+ * \f[ D(x) = \int_{x}^{+\infty} p(x') dx' \f]
+ *
+- * These functions are defined in the header file <em>Math/ProbFunc.h<em> or in the global one
+- * including all statistical functions <em>Math/DistFunc.h<em>
++ * These functions are defined in the header file <em>Math/ProbFunc.h</em> or in the global one
++ * including all statistical functions <em>Math/DistFunc.h</em>
+ *
+ *
+ * <strong>NOTE:</strong> In the old releases (< 5.14) the <em>_quantile</em> functions were called
+diff --git a/math/mathcore/src/TMath.cxx b/math/mathcore/src/TMath.cxx
+index 49a81d56f7..ba8799b570 100644
+--- a/math/mathcore/src/TMath.cxx
++++ b/math/mathcore/src/TMath.cxx
+@@ -857,7 +857,7 @@ Double_t TMath::KolmogorovTest(Int_t na, const Double_t *a, Int_t nb, const Doub
+ /// \f[
+ /// lorentz(xx) = \frac{ \frac{1}{\pi} \frac{lg}{2} }{ (xx^{2} + \frac{lg^{2}}{4}) }
+ /// \f]
+-/// .
++/// \.
+ ///
+ /// The Voigt function is known to be the real part of Faddeeva function also
+ /// called complex error function [2].
+diff --git a/math/mathmore/inc/Math/GSLMultiRootFinder.h b/math/mathmore/inc/Math/GSLMultiRootFinder.h
+index 42069d2387..b7efe4157d 100644
+--- a/math/mathmore/inc/Math/GSLMultiRootFinder.h
++++ b/math/mathmore/inc/Math/GSLMultiRootFinder.h
+@@ -69,23 +69,23 @@ namespace Math {
+ <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Algorithms-using-Derivat...">documentation</A> )
+ are the followings:
+ <ul>
+- <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridSJ</tt> with name <it>"HybridSJ"</it>: modified Powell's hybrid
++ <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridSJ</tt> with name <i>"HybridSJ"</i>: modified Powell's hybrid
+ method as implemented in HYBRJ in MINPACK
+- <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridJ</tt> with name <it>"HybridJ"</it>: unscaled version of the
++ <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridJ</tt> with name <i>"HybridJ"</i>: unscaled version of the
+ previous algorithm</li>
+- <li><tt>ROOT::Math::GSLMultiRootFinder::kNewton</tt> with name <it>"Newton"</it>: Newton method </li>
+- <li><tt>ROOT::Math::GSLMultiRootFinder::kGNewton</tt> with name <it>"GNewton"</it>: modified Newton method </li>
++ <li><tt>ROOT::Math::GSLMultiRootFinder::kNewton</tt> with name <i>"Newton"</i>: Newton method </li>
++ <li><tt>ROOT::Math::GSLMultiRootFinder::kGNewton</tt> with name <i>"GNewton"</i>: modified Newton method </li>
+ </ul>
+ The algorithms without derivatives (see also the GSL
+ <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Algorithms-without-Deriv...">documentation</A> )
+ are the followings:
+ <ul>
+- <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridS</tt> with name <it>"HybridS"</it>: same as HybridSJ but using
++ <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridS</tt> with name <i>"HybridS"</i>: same as HybridSJ but using
+ finate difference approximation for the derivatives</li>
+- <li><tt>ROOT::Math::GSLMultiRootFinder::kHybrid</tt> with name <it>"Hybrid"</it>: unscaled version of the
++ <li><tt>ROOT::Math::GSLMultiRootFinder::kHybrid</tt> with name <i>"Hybrid"</i>: unscaled version of the
+ previous algorithm</li>
+- <li><tt>ROOT::Math::GSLMultiRootFinder::kDNewton</tt> with name <it>"DNewton"</it>: discrete Newton algorithm </li>
+- <li><tt>ROOT::Math::GSLMultiRootFinder::kBroyden</tt> with name <it>"Broyden"</it>: Broyden algorithm </li>
++ <li><tt>ROOT::Math::GSLMultiRootFinder::kDNewton</tt> with name <i>"DNewton"</i>: discrete Newton algorithm </li>
++ <li><tt>ROOT::Math::GSLMultiRootFinder::kBroyden</tt> with name <i>"Broyden"</i>: Broyden algorithm </li>
+ </ul>
+
+ @ingroup MultiRoot
+diff --git a/math/matrix/doc/Matrix.md b/math/matrix/doc/Matrix.md
+index f53b29ca0b..c484c27c72 100644
+--- a/math/matrix/doc/Matrix.md
++++ b/math/matrix/doc/Matrix.md
+@@ -325,7 +325,7 @@ constructor</td>
+ <td>C=A*B<br>
+ A*=B<br>
+ C.Mult(A,B)<br>TMatrixD(A,TMatrixD::kMult,B)<br>TMatrixD(A, TMatrixD(A, TMatrixD::kTransposeMult,B)<br>TMatrixD(A, TMatrixD::kMultTranspose,B)</td>
+- <td>overwrites A<br> <br> <br>constructor of A.B<br>constructor of A<sup>T</sup> .B<br>constructor of A.B<sup>T</sup></td>
++ <td>overwrites A<br> <br> <br>constructor of A·B<br>constructor of A<sup>T</sup>·B<br>constructor of A·B<sup>T</sup></td>
+ </tr>
+ <tr>
+ <td>Element wise multiplication</td>
+diff --git a/math/minuit/src/TMinuit.cxx b/math/minuit/src/TMinuit.cxx
+index df3e563a73..18a6437c68 100644
+--- a/math/minuit/src/TMinuit.cxx
++++ b/math/minuit/src/TMinuit.cxx
+@@ -187,11 +187,11 @@ the error matrix, or setting of exact confidence levels see:
+
+ 1. F.James.
+ Determining the statistical Significance of experimental Results.
+- Technical Report DD/81/02 and CERN Report 81-03, CERN, 1981.</li>
++ Technical Report DD/81/02 and CERN Report 81-03, CERN, 1981.
+
+ 2. W.T.Eadie, D.Drijard, F.James, M.Roos, and B.Sadoulet.
+ Statistical Methods in Experimental Physics.
+- North-Holland, 1971.</li>
++ North-Holland, 1971.
+
+ ### Reliability of MINUIT error estimates.
+
+diff --git a/montecarlo/eg/src/TDatabasePDG.cxx b/montecarlo/eg/src/TDatabasePDG.cxx
+index 23c32e9668..85e9fe2a6d 100644
+--- a/montecarlo/eg/src/TDatabasePDG.cxx
++++ b/montecarlo/eg/src/TDatabasePDG.cxx
+@@ -46,7 +46,7 @@ Root.DatabasePDG: $(HOME)/my_pdg_table.txt
+ See TParticlePDG for the description of a static particle properties.
+ See TParticle for the description of a dynamic particle particle.
+
+-<br>The current default pdg_table file displays lifetime 0 for some unstable particles.</br>
++The current default pdg_table file displays lifetime 0 for some unstable particles.
+
+ */
+
+diff --git a/montecarlo/vmc/README.md b/montecarlo/vmc/README.md
+index dc66ec401f..c731b26e92 100644
+--- a/montecarlo/vmc/README.md
++++ b/montecarlo/vmc/README.md
+@@ -43,7 +43,7 @@ See more detailed description in [the dedicated README](README.multiple.md).
+ ## Authors
+
+ The concept of Virtual MonteCarlo has been developed by the [ALICE Software Project](http://aliceinfo.cern.ch/Offline/).<br>
+-Authors: R.Brun<sup>1</sup>, F.Carminati<sup>1</sup>, A. Gheata<sup>1</sup>, I.Hrivnacova<sup>2</sup>, A.Morsch<sup>1</sup>, B.Volkel<sup>1</sup>;<br>
++Authors: R. Brun<sup>1</sup>, F. Carminati<sup>1</sup>, A. Gheata<sup>1</sup>, I. Hrivnacova<sup>2</sup>, A. Morsch<sup>1</sup>, B. Volkel<sup>1</sup>;<br>
+ <sup>1</sup>European Organization for Nuclear Research (CERN), Geneva, Switzerland;<br>
+ <sup>2</sup>Institut de Physique Nucléaire dʼOrsay (IPNO), Université Paris-Sud, CNRS-IN2P3, Orsay, France
+
+diff --git a/net/http/civetweb/LICENSE.md b/net/http/civetweb/LICENSE.md
+index ab049e3e72..b6bb8ff037 100644
+--- a/net/http/civetweb/LICENSE.md
++++ b/net/http/civetweb/LICENSE.md
+@@ -180,10 +180,6 @@ Duktape License
+
+ https://github.com/svaarala/duktape/blob/master/LICENSE.txt
+
+-> ===============
+-> Duktape license
+-> ===============
+->
+ > (http://opensource.org/licenses/MIT)
+ >
+ > Copyright (c) 2013-2017 by Duktape authors (see AUTHORS.rst)
+diff --git a/proof/proof/src/TProofMgr.cxx b/proof/proof/src/TProofMgr.cxx
+index 2a140e4e7a..e41b637a15 100644
+--- a/proof/proof/src/TProofMgr.cxx
++++ b/proof/proof/src/TProofMgr.cxx
+@@ -775,26 +775,29 @@ void TProofMgr::ReplaceSubdirs(const char *fn, TString &fdst, TList &dirph)
+ /// Upload files provided via the list 'src' (as TFileInfo or TObjString)
+ /// to 'mss'. The path under 'mss' is determined by 'dest'; the following
+ /// place-holders can be used in 'dest':
+-/// <d0>, <d1>, <d2>, ... referring to the n-th sub-component
+-/// of the src path
+-/// <bn> basename in the source path
+-/// <bs> basename sans extension
+-/// <ex> Extension
+-/// <sn> serial number of file in the list
+-/// <s0> as <sn> but zero padded
+-/// <fn> the full file path
+-/// <us>, <gr> the local user and group names.
+-/// <pg> the users PROOF group
+-/// <pa> immediate parent directory
+-/// <gp> next-to immediate parent directory
++///
++/// Place-holder | Meaning |
++/// ----------------------------|------------------------------------
++/// \<d0\>, \<d1\>, \<d2\>, ... | referring to the n-th sub-component of the src path
++/// \<bn\> | basename in the source path
++/// \<bs\> | basename sans extension
++/// \<ex\> | Extension
++/// \<sn\> | serial number of file in the list
++/// \<s0\> | as \<sn\> but zero padded
++/// \<fn\> | the full file path
++/// \<us\>, \<gr\> | the local user and group names.
++/// \<pg\> | the users PROOF group
++/// \<pa\> | immediate parent directory
++/// \<gp\> | next-to immediate parent directory
++///
+ /// So, for example, if the source filename for the 99-th file is
+ /// protosrc://host//d0/d1/d2/d3/d4/d5/myfile
+-/// then with dest = '/pool/user/<d3>/<d4>/<d5>/<s>/<bn>' and
++/// then with dest = '/pool/user/\<d3\>/\<d4\>/\<d5\>/\<sn\>/\<bn\>' and
+ /// mss = 'protodst://hostdst//nm/
+ /// the corresponding destination path is
+ /// protodst://hostdst//nm/pool/user/d3/d4/d5/99/myfile
+ ///
+-/// If 'dest' is empty, <fn> is used.
++/// If 'dest' is empty, \<fn\> is used.
+ ///
+ /// Returns a TFileCollection with the destination files created; this
+ /// TFileCollection is, for example, ready to be registered as dataset.
+@@ -966,20 +969,23 @@ TFileCollection *TProofMgr::UploadFiles(TList *src,
+ /// line, with line beginning by '#' ignored (i.e. considered comments).
+ /// The path under 'mss' is defined by 'dest'; the following
+ /// place-holders can be used in 'dest':
+-/// <d0>, <d1>, <d2>, ... referring to the n-th sub-component
+-/// of the src path
+-/// <bn> basename in the source path
+-/// <sn> serial number of file in the list
+-/// <fn> the full file path
+-/// <us>, <gr> the local user and group names.
++///
++/// Place-holder | Meaning |
++/// ----------------------------|------------------------------------
++/// \<d0\>, \<d1\>, \<d2\>, ... | referring to the n-th sub-component of the src path
++/// \<bn\> | basename in the source path
++/// \<sn\> | serial number of file in the list
++/// \<fn\> | the full file path
++/// \<us\>, \<gr\> | the local user and group names.
++///
+ /// So, for example, if the source filename for the 99-th file is
+ /// protosrc://host//d0/d1/d2/d3/d4/d5/myfile
+-/// then with dest = '/pool/user/<d3>/<d4>/<d5>/<s>/<bn>' and
++/// then with dest = '/pool/user/\<d3\>/\<d4\>/\<d5\>/\<sn\>/\<bn\>' and
+ /// mss = 'protodst://hostdst//nm/
+ /// the corresponding destination path is
+ /// protodst://hostdst//nm/pool/user/d3/d4/d5/99/myfile
+ ///
+-/// If 'dest' is empty, <fn> is used.
++/// If 'dest' is empty, \<fn\> is used.
+ ///
+ /// Returns a TFileCollection with the destination files created; this
+ /// TFileCollection is, for example, ready to be registered as dataset.
+diff --git a/proof/proof/src/TProofServ.cxx b/proof/proof/src/TProofServ.cxx
+index 24c521743d..3697f257a0 100644
+--- a/proof/proof/src/TProofServ.cxx
++++ b/proof/proof/src/TProofServ.cxx
+@@ -6696,11 +6696,11 @@ Int_t TProofServ::Fork()
+ }
+
+ ////////////////////////////////////////////////////////////////////////////////
+-/// Replace <ord>, <user>, <u>, <group>, <stag>, <qnum>, <file>, <rver> and
+-/// <build> placeholders in fname.
+-/// Here, <rver> is the root version in integer form, e.g. 53403, and <build> a
+-/// string includign version, architecture and compiler version, e.g.
+-/// '53403_linuxx8664gcc_gcc46' .
++/// Replace \<ord\>, \<user\>, \<u\>, \<group\>, \<stag\>, \<qnum\>, \<file\>,
++/// \<rver\> and \<build\> placeholders in fname.
++/// Here, \<rver\> is the root version in integer form, e.g. 53403, and
++/// \<build\> a string includign version, architecture and compiler version,
++/// e.g. '53403_linuxx8664gcc_gcc46' .
+
+ void TProofServ::ResolveKeywords(TString &fname, const char *path)
+ {
+diff --git a/roofit/histfactory/doc/index.md b/roofit/histfactory/doc/index.md
+index 32f1c551a4..9256a9cf11 100644
+--- a/roofit/histfactory/doc/index.md
++++ b/roofit/histfactory/doc/index.md
+@@ -41,12 +41,11 @@ it is organized as follows (see the examples in `${ROOTSYS}/tutorials/histfactor
+ <li> several 'Measurements' (corresponding to a full fit of the model) each of which specifies</li>
+ <ul>
+ <li> a name for this fit to be used in tables and files</li>
+-<ul>
+-<li> what is the luminosity associated to the measurement in picobarns</li>
+-<li> which bins of the histogram should be used</li>
+-<li> what is the relative uncertainty on the luminosity </li>
+-<li> what is (are) the parameter(s) of interest that will be measured</li>
+-<li> which parameters should be fixed/floating (eg. nuisance parameters)</li>
++<li> what is the luminosity associated to the measurement in picobarns</li>
++<li> which bins of the histogram should be used</li>
++<li> what is the relative uncertainty on the luminosity </li>
++<li> what is (are) the parameter(s) of interest that will be measured</li>
++<li> which parameters should be fixed/floating (eg. nuisance parameters)</li>
+ </ul>
+ </ul>
+ </ul>
+diff --git a/roofit/histfactory/src/MakeModelAndMeasurementsFast.cxx b/roofit/histfactory/src/MakeModelAndMeasurementsFast.cxx
+index e14e63ec89..73a3f627ba 100644
+--- a/roofit/histfactory/src/MakeModelAndMeasurementsFast.cxx
++++ b/roofit/histfactory/src/MakeModelAndMeasurementsFast.cxx
+@@ -92,12 +92,11 @@ using namespace RooFit;
+ <li> several 'Measurements' (corresponding to a full fit of the model) each of which specifies</li>
+ <ul>
+ <li> a name for this fit to be used in tables and files</li>
+- <ul>
+- <li> what is the luminosity associated to the measurement in picobarns</li>
+- <li> which bins of the histogram should be used</li>
+- <li> what is the relative uncertainty on the luminosity </li>
+- <li> what is (are) the parameter(s) of interest that will be measured</li>
+- <li> which parameters should be fixed/floating (eg. nuisance parameters)</li>
++ <li> what is the luminosity associated to the measurement in picobarns</li>
++ <li> which bins of the histogram should be used</li>
++ <li> what is the relative uncertainty on the luminosity </li>
++ <li> what is (are) the parameter(s) of interest that will be measured</li>
++ <li> which parameters should be fixed/floating (eg. nuisance parameters)</li>
+ </ul>
+ </ul>
+ </ul>
+diff --git a/roofit/roofitcore/inc/RooAbsCategory.h b/roofit/roofitcore/inc/RooAbsCategory.h
+index a7eaf8772a..4f0937a99d 100644
+--- a/roofit/roofitcore/inc/RooAbsCategory.h
++++ b/roofit/roofitcore/inc/RooAbsCategory.h
+@@ -199,7 +199,7 @@ protected:
+ return hasIndex(_currentIndex);
+ }
+
+- /// If a category depends on the shape of others, *i.e.*, its state numbers or names depend
++ /// If a category depends on the shape of others, i.e.\ its state numbers or names depend
+ /// on the states of other categories, this function has to be implemented to recompute
+ /// _stateNames and _insertionOrder.
+ /// If one of these two changes, setShapeDirty() has to be called to propagate this information
+diff --git a/roofit/roofitcore/src/RooSimPdfBuilder.cxx b/roofit/roofitcore/src/RooSimPdfBuilder.cxx
+index 4c8289523d..57ea1e9196 100644
+--- a/roofit/roofitcore/src/RooSimPdfBuilder.cxx
++++ b/roofit/roofitcore/src/RooSimPdfBuilder.cxx
+@@ -99,7 +99,7 @@
+ /// PDF for each state of the C index category.
+ /// </p>
+ /// <p>
+-/// In the above example </tt>RooSimPdfBuilder</tt>
++/// In the above example <tt>RooSimPdfBuilder</tt>
+ /// will first replicate <tt>k</tt> and <tt>s</tt> into
+ /// <tt>k_C1,k_C2</tt> and <tt>s_C1,s_C2</tt>, as prescribed in the
+ /// configuration. Then it will recursively replicate all PDF nodes that depend on
+@@ -383,7 +383,7 @@
+ /// <tt>pdfA(x;p,q)</tt> and <tt>pdfB(x;p,r)</tt> that have a common parameter <tt>p</tt>.
+ /// We want to build a <tt>RooSimultaneous</tt> for both <tt>pdfA</tt> and <tt>B</tt>,
+ /// which involves a split of parameter <tt>p</tt> and we would like to build the
+-/// simultaneous pdfs </tt>simA</tt> and <tt>simB</tt> such that still share their (now split) parameters
++/// simultaneous pdfs <tt>simA</tt> and <tt>simB</tt> such that still share their (now split) parameters
+ /// <tt>p_XXX</tt>. This is accomplished by letting a single instance of <tt>RooSimPdfBuilder</tt> handle
+ /// the builds of both <tt>pdfA</tt> and <tt>pdfB</tt>, as illustrated in this example:
+ /// </p>
+diff --git a/tmva/tmva/src/Factory.cxx b/tmva/tmva/src/Factory.cxx
+index eda1b9ca1a..866aad0e18 100644
+--- a/tmva/tmva/src/Factory.cxx
++++ b/tmva/tmva/src/Factory.cxx
+@@ -683,9 +683,9 @@ void TMVA::Factory::WriteDataInformation(DataSetInfo& fDataSetInfo)
+ }
+
+ ////////////////////////////////////////////////////////////////////////////////
+-/// Iterates through all booked methods and sees if they use parameter tuning and if so..
+-/// does just that i.e. calls "Method::Train()" for different parameter settings and
+-/// keeps in mind the "optimal one"... and that's the one that will later on be used
++/// Iterates through all booked methods and sees if they use parameter tuning and if so
++/// does just that, i.e.\ calls "Method::Train()" for different parameter settings and
++/// keeps in mind the "optimal one"...\ and that's the one that will later on be used
+ /// in the main training loop.
+
+ std::map<TString,Double_t> TMVA::Factory::OptimizeAllMethods(TString fomType, TString fitType)
+diff --git a/tmva/tmva/src/Reader.cxx b/tmva/tmva/src/Reader.cxx
+index 56d65bb9bf..b34ee9f1de 100644
+--- a/tmva/tmva/src/Reader.cxx
++++ b/tmva/tmva/src/Reader.cxx
+@@ -594,7 +594,7 @@ const std::vector< Float_t >& TMVA::Reader::EvaluateRegression( const TString& m
+ ////////////////////////////////////////////////////////////////////////////////
+ /// evaluates the regression MVA
+ /// check for NaN in event data: (note: in the factory, this check was done already at the creation of the datasets, hence
+-/// it is not again checked in each of these subsequent calls..
++/// it is not again checked in each of these subsequent calls.
+
+ const std::vector< Float_t >& TMVA::Reader::EvaluateRegression( MethodBase* method, Double_t /*aux*/ )
+ {
+@@ -660,7 +660,7 @@ const std::vector< Float_t >& TMVA::Reader::EvaluateMulticlass( const TString& m
+ ////////////////////////////////////////////////////////////////////////////////
+ /// evaluates the multiclass MVA
+ /// check for NaN in event data: (note: in the factory, this check was done already at the creation of the datasets, hence
+-/// it is not again checked in each of these subsequent calls..
++/// it is not again checked in each of these subsequent calls.
+
+ const std::vector< Float_t >& TMVA::Reader::EvaluateMulticlass( MethodBase* method, Double_t /*aux*/ )
+ {
+diff --git a/tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx b/tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx
+index 17527ac16d..497dd3d5c6 100644
+--- a/tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx
++++ b/tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx
+@@ -93,7 +93,7 @@ class R__CLING_PTRCHECK(off) RColumnValue {
+ /// Enumerator for the different properties of the branch storage in memory
+ enum class EStorageType : char { kContiguous, kUnknown, kSparse };
+ /// Signal whether we ever checked that the branch we are reading with a TTreeReaderArray stores array elements
+- /// in contiguous memory. Only used when T == RVec<U>.
++ /// in contiguous memory. Only used when T == RVec\<U\>.
+ EStorageType fStorageType = EStorageType::kUnknown;
+ /// If MustUseRVec, i.e. we are reading an array, we return a reference to this RVec to clients
+ RVec<ColumnValue_t> fRVec;
+diff --git a/tutorials/net/udpserver.c b/tutorials/net/udpserver.c
+index c54685400e..a74f6f0a85 100644
+--- a/tutorials/net/udpserver.c
++++ b/tutorials/net/udpserver.c
+@@ -4,7 +4,7 @@
+
+ /* Converted to echo client/server with select() (timeout option).
+ See testTUDPSocket.C */
+-/* Compile with: gcc udpserver.c -o udpserver
++/* Compile with: gcc udpserver.c -o udpserver */
+ /* on Windows: cl -nologo -Z7 -MD -GR -EHsc udpserver.c */
+ /* 3/30/05 John Schultz */
+
+diff --git a/tutorials/tmva/TMVA_CNN_Classification.C b/tutorials/tmva/TMVA_CNN_Classification.C
+index 47f26368d9..89373a8887 100644
+--- a/tutorials/tmva/TMVA_CNN_Classification.C
++++ b/tutorials/tmva/TMVA_CNN_Classification.C
+@@ -22,7 +22,7 @@
+ /// Helper function to create input images data
+ /// we create a signal and background 2D histograms from 2d gaussians
+ /// with a location (means in X and Y) different for each event
+-/// The difference between signal and background is in the gaussian width..
++/// The difference between signal and background is in the gaussian width.
+ /// The width for the bakground gaussian is slightly larger than the signal width by few % values
+ ///
+ ///
+--
+2.26.2
+
diff --git a/root-doxygen-filenames.patch b/root-doxygen-filenames.patch
new file mode 100644
index 0000000..d891a7f
--- /dev/null
+++ b/root-doxygen-filenames.patch
@@ -0,0 +1,378 @@
+From 116be70d2786a3fecdfcd6445d06ad6f3768f5a6 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Fri, 3 Jul 2020 08:08:33 +0200
+Subject: [PATCH 1/5] Fix \file references in doxygen markup
+
+---
+ core/base/v7/inc/ROOT/RDirectory.hxx | 2 +-
+ core/base/v7/inc/ROOT/RDirectoryEntry.hxx | 2 +-
+ core/base/v7/inc/ROOT/RError.hxx | 2 +-
+ core/base/v7/inc/ROOT/RIndexIter.hxx | 2 +-
+ core/base/v7/inc/ROOT/RLogger.hxx | 2 +-
+ core/base/v7/inc/ROOT/RTupleApply.hxx | 2 +-
+ core/base/v7/inc/ROOT/impl_tuple_apply.hxx | 2 +-
+ core/base/v7/src/RLogger.cxx | 2 +-
+ core/clingutils/test/TClingUtilsTests.cxx | 2 +-
+ core/foundation/inc/ROOT/RNotFn.hxx | 2 +-
+ core/foundation/inc/ROOT/RSpan.hxx | 2 +-
+ core/foundation/inc/ROOT/span.hxx | 2 +-
+ core/foundation/src/FoundationUtils.cxx | 2 +-
+ gui/browsable/inc/ROOT/Browsable/RItem.hxx | 2 +-
+ gui/browsable/src/RHistDraw7Provider.cxx | 2 +-
+ gui/browsable/src/RSysFile.cxx | 2 +-
+ gui/browserv7/inc/ROOT/RBrowserReply.hxx | 2 +-
+ hist/hist/test/TFormulaGradientTests.cxx | 2 +-
+ hist/histdrawv7/inc/ROOT/RHistDrawable.hxx | 2 +-
+ hist/histv7/inc/ROOT/RAxis.hxx | 2 +-
+ hist/histv7/inc/ROOT/RAxisConfig.hxx | 2 +-
+ hist/histv7/inc/ROOT/RHist.hxx | 2 +-
+ hist/histv7/inc/ROOT/RHistBinIter.hxx | 2 +-
+ hist/histv7/inc/ROOT/RHistBufferedFill.hxx | 2 +-
+ hist/histv7/inc/ROOT/RHistConcurrentFill.hxx | 2 +-
+ hist/histv7/inc/ROOT/RHistData.hxx | 2 +-
+ hist/histv7/inc/ROOT/RHistImpl.hxx | 2 +-
+ hist/histv7/inc/ROOT/RHistUtils.hxx | 2 +-
+ hist/histv7/inc/ROOT/RHistView.hxx | 2 +-
+ io/io/v7/inc/ROOT/RFile.hxx | 2 +-
+ math/mathcore/test/CladDerivatorTests.cxx | 2 +-
+ math/mathcore/v7/inc/ROOT/RFit.hxx | 2 +-
+ tmva/tmva/inc/TMVA/NeuralNet.h | 2 +-
+ 33 files changed, 33 insertions(+), 33 deletions(-)
+
+diff --git a/core/base/v7/inc/ROOT/RDirectory.hxx b/core/base/v7/inc/ROOT/RDirectory.hxx
+index 5331f91144..6d1a4b0541 100644
+--- a/core/base/v7/inc/ROOT/RDirectory.hxx
++++ b/core/base/v7/inc/ROOT/RDirectory.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RDirectory.h
++/// \file ROOT/RDirectory.hxx
+ /// \ingroup Base ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-07-31
+diff --git a/core/base/v7/inc/ROOT/RDirectoryEntry.hxx b/core/base/v7/inc/ROOT/RDirectoryEntry.hxx
+index a7258bc642..1a33e5003a 100644
+--- a/core/base/v7/inc/ROOT/RDirectoryEntry.hxx
++++ b/core/base/v7/inc/ROOT/RDirectoryEntry.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RDirectoryEntry.h
++/// \file ROOT/RDirectoryEntry.hxx
+ /// \ingroup Base ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-07-31
+diff --git a/core/base/v7/inc/ROOT/RError.hxx b/core/base/v7/inc/ROOT/RError.hxx
+index 7a0d363e7f..6af7a38f01 100644
+--- a/core/base/v7/inc/ROOT/RError.hxx
++++ b/core/base/v7/inc/ROOT/RError.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RError.h
++/// \file ROOT/RError.hxx
+ /// \ingroup Base ROOT7
+ /// \author Jakob Blomer <jblomer(a)cern.ch>
+ /// \date 2019-12-11
+diff --git a/core/base/v7/inc/ROOT/RIndexIter.hxx b/core/base/v7/inc/ROOT/RIndexIter.hxx
+index 1e290d82c8..fc424fdb8d 100644
+--- a/core/base/v7/inc/ROOT/RIndexIter.hxx
++++ b/core/base/v7/inc/ROOT/RIndexIter.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RIndexIter.h
++/// \file ROOT/RIndexIter.hxx
+ /// \ingroup Base ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2016-01-19
+diff --git a/core/base/v7/inc/ROOT/RLogger.hxx b/core/base/v7/inc/ROOT/RLogger.hxx
+index c1852656ee..d4e3e6e7bd 100644
+--- a/core/base/v7/inc/ROOT/RLogger.hxx
++++ b/core/base/v7/inc/ROOT/RLogger.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/TLogger.h
++/// \file ROOT/RLogger.hxx
+ /// \ingroup Base ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-03-29
+diff --git a/core/base/v7/inc/ROOT/RTupleApply.hxx b/core/base/v7/inc/ROOT/RTupleApply.hxx
+index 9a80bfcd6f..995246505f 100644
+--- a/core/base/v7/inc/ROOT/RTupleApply.hxx
++++ b/core/base/v7/inc/ROOT/RTupleApply.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RTupleApply.h
++/// \file ROOT/RTupleApply.hxx
+ /// \ingroup Base StdExt ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-09-06
+diff --git a/core/base/v7/inc/ROOT/impl_tuple_apply.hxx b/core/base/v7/inc/ROOT/impl_tuple_apply.hxx
+index dc12706906..68d6988f97 100644
+--- a/core/base/v7/inc/ROOT/impl_tuple_apply.hxx
++++ b/core/base/v7/inc/ROOT/impl_tuple_apply.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/impl_tuple_apply.h
++/// \file ROOT/impl_tuple_apply.hxx
+ /// \ingroup Base StdExt ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-07-09
+diff --git a/core/base/v7/src/RLogger.cxx b/core/base/v7/src/RLogger.cxx
+index 69aba0b05c..3ac8bb760f 100644
+--- a/core/base/v7/src/RLogger.cxx
++++ b/core/base/v7/src/RLogger.cxx
+@@ -1,4 +1,4 @@
+-/// \file TLogger.cxx
++/// \file RLogger.cxx
+ /// \ingroup Base ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-07-07
+diff --git a/core/clingutils/test/TClingUtilsTests.cxx b/core/clingutils/test/TClingUtilsTests.cxx
+index fca26705c3..fbc12cd352 100644
+--- a/core/clingutils/test/TClingUtilsTests.cxx
++++ b/core/clingutils/test/TClingUtilsTests.cxx
+@@ -1,4 +1,4 @@
+-/// \file TClingUtilsTest.cxx
++/// \file TClingUtilsTests.cxx
+ ///
+ /// \brief The file contain unit tests which test the TClingUtils.h
+ ///
+diff --git a/core/foundation/inc/ROOT/RNotFn.hxx b/core/foundation/inc/ROOT/RNotFn.hxx
+index a6dd13679e..a3877797f3 100644
+--- a/core/foundation/inc/ROOT/RNotFn.hxx
++++ b/core/foundation/inc/ROOT/RNotFn.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RNotFn.h
++/// \file ROOT/RNotFn.hxx
+ /// \ingroup Base StdExt
+ /// \author Danilo Piparo, Enrico Guiraud
+ /// \date 2018-01-19
+diff --git a/core/foundation/inc/ROOT/RSpan.hxx b/core/foundation/inc/ROOT/RSpan.hxx
+index 9e356493e6..b7366d58e7 100644
+--- a/core/foundation/inc/ROOT/RSpan.hxx
++++ b/core/foundation/inc/ROOT/RSpan.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RSpan.h
++/// \file ROOT/RSpan.hxx
+ /// \ingroup Base StdExt
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-09-06
+diff --git a/core/foundation/inc/ROOT/span.hxx b/core/foundation/inc/ROOT/span.hxx
+index ce1b0e1d96..185055bbe6 100644
+--- a/core/foundation/inc/ROOT/span.hxx
++++ b/core/foundation/inc/ROOT/span.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/rhysd_span.h
++/// \file ROOT/span.hxx
+ /// \ingroup Base StdExt
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-09-06
+diff --git a/core/foundation/src/FoundationUtils.cxx b/core/foundation/src/FoundationUtils.cxx
+index 9de395698b..d70e196130 100644
+--- a/core/foundation/src/FoundationUtils.cxx
++++ b/core/foundation/src/FoundationUtils.cxx
+@@ -1,4 +1,4 @@
+-/// \file FoundationUtils.hxx
++/// \file FoundationUtils.cxx
+ ///
+ /// \brief The file contains utilities which are foundational and could be used
+ /// across the core component of ROOT.
+diff --git a/gui/browsable/inc/ROOT/Browsable/RItem.hxx b/gui/browsable/inc/ROOT/Browsable/RItem.hxx
+index a07870a2cb..290587013e 100644
+--- a/gui/browsable/inc/ROOT/Browsable/RItem.hxx
++++ b/gui/browsable/inc/ROOT/Browsable/RItem.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RBrowser.hxx
++/// \file ROOT/RItem.hxx
+ /// \ingroup WebGui ROOT7
+ /// \author Bertrand Bellenot <bertrand.bellenot(a)cern.ch>
+ /// \author Sergey Linev <S.Linev(a)gsi.de>
+diff --git a/gui/browsable/src/RHistDraw7Provider.cxx b/gui/browsable/src/RHistDraw7Provider.cxx
+index 416db22472..e2e15303c6 100644
+--- a/gui/browsable/src/RHistDraw7Provider.cxx
++++ b/gui/browsable/src/RHistDraw7Provider.cxx
+@@ -1,4 +1,4 @@
+-/// \file RDrawableRHist.cxx
++/// \file RHistDraw7Provider.cxx
+ /// \ingroup rbrowser
+ /// \author Bertrand Bellenot <bertrand.bellenot(a)cern.ch>
+ /// \author Sergey Linev <S.Linev(a)gsi.de>
+diff --git a/gui/browsable/src/RSysFile.cxx b/gui/browsable/src/RSysFile.cxx
+index d5f481cb83..4447164f52 100644
+--- a/gui/browsable/src/RSysFile.cxx
++++ b/gui/browsable/src/RSysFile.cxx
+@@ -6,7 +6,7 @@
+ * For the list of contributors see $ROOTSYS/README/CREDITS. *
+ *************************************************************************/
+
+-/// \file ROOT/RFileBrowsable.cxx
++/// \file ROOT/RSysFile.cxx
+ /// \ingroup rbrowser
+ /// \author Sergey Linev <S.Linev(a)gsi.de>
+ /// \date 2019-10-15
+diff --git a/gui/browserv7/inc/ROOT/RBrowserReply.hxx b/gui/browserv7/inc/ROOT/RBrowserReply.hxx
+index bdb94f60ea..35a2f1f978 100644
+--- a/gui/browserv7/inc/ROOT/RBrowserReply.hxx
++++ b/gui/browserv7/inc/ROOT/RBrowserReply.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RBrowserRequest.hxx
++/// \file ROOT/RBrowserReply.hxx
+ /// \ingroup WebGui ROOT7
+ /// \author Bertrand Bellenot <bertrand.bellenot(a)cern.ch>
+ /// \author Sergey Linev <S.Linev(a)gsi.de>
+diff --git a/hist/hist/test/TFormulaGradientTests.cxx b/hist/hist/test/TFormulaGradientTests.cxx
+index 8c11a56077..74c0930f03 100644
+--- a/hist/hist/test/TFormulaGradientTests.cxx
++++ b/hist/hist/test/TFormulaGradientTests.cxx
+@@ -1,4 +1,4 @@
+-/// \file TFormulaGradientTests.h
++/// \file TFormulaGradientTests.cxx
+ ///
+ /// \brief The file contain unit tests which test the clad-based gradient
+ /// computations.
+diff --git a/hist/histdrawv7/inc/ROOT/RHistDrawable.hxx b/hist/histdrawv7/inc/ROOT/RHistDrawable.hxx
+index ac56b9c8f3..0b3b635d92 100644
+--- a/hist/histdrawv7/inc/ROOT/RHistDrawable.hxx
++++ b/hist/histdrawv7/inc/ROOT/RHistDrawable.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHistDrawable.h
++/// \file ROOT/RHistDrawable.hxx
+ /// \ingroup HistDraw ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-07-09
+diff --git a/hist/histv7/inc/ROOT/RAxis.hxx b/hist/histv7/inc/ROOT/RAxis.hxx
+index 1d35ed9b93..0371a06f97 100644
+--- a/hist/histv7/inc/ROOT/RAxis.hxx
++++ b/hist/histv7/inc/ROOT/RAxis.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RAxis.h
++/// \file ROOT/RAxis.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-03-23
+diff --git a/hist/histv7/inc/ROOT/RAxisConfig.hxx b/hist/histv7/inc/ROOT/RAxisConfig.hxx
+index 1e100986f0..34bf2f6a4a 100644
+--- a/hist/histv7/inc/ROOT/RAxisConfig.hxx
++++ b/hist/histv7/inc/ROOT/RAxisConfig.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RAxisConfig.h
++/// \file ROOT/RAxisConfig.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2020-02-05
+diff --git a/hist/histv7/inc/ROOT/RHist.hxx b/hist/histv7/inc/ROOT/RHist.hxx
+index ebb319f1ef..5567683b27 100644
+--- a/hist/histv7/inc/ROOT/RHist.hxx
++++ b/hist/histv7/inc/ROOT/RHist.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHist.h
++/// \file ROOT/RHist.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-03-23
+diff --git a/hist/histv7/inc/ROOT/RHistBinIter.hxx b/hist/histv7/inc/ROOT/RHistBinIter.hxx
+index 60f57dd20e..ab77dfbeaa 100644
+--- a/hist/histv7/inc/ROOT/RHistBinIter.hxx
++++ b/hist/histv7/inc/ROOT/RHistBinIter.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHistBinIter.h
++/// \file ROOT/RHistBinIter.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-08-07
+diff --git a/hist/histv7/inc/ROOT/RHistBufferedFill.hxx b/hist/histv7/inc/ROOT/RHistBufferedFill.hxx
+index bb1cade29b..8efe00e207 100644
+--- a/hist/histv7/inc/ROOT/RHistBufferedFill.hxx
++++ b/hist/histv7/inc/ROOT/RHistBufferedFill.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHistBufferedFill.h
++/// \file ROOT/RHistBufferedFill.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-07-03
+diff --git a/hist/histv7/inc/ROOT/RHistConcurrentFill.hxx b/hist/histv7/inc/ROOT/RHistConcurrentFill.hxx
+index a6b4b6a8e2..8ff76eb659 100644
+--- a/hist/histv7/inc/ROOT/RHistConcurrentFill.hxx
++++ b/hist/histv7/inc/ROOT/RHistConcurrentFill.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHistConcurrentFill.h
++/// \file ROOT/RHistConcurrentFill.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-07-03
+diff --git a/hist/histv7/inc/ROOT/RHistData.hxx b/hist/histv7/inc/ROOT/RHistData.hxx
+index 901bd5c33a..9757986ff4 100644
+--- a/hist/histv7/inc/ROOT/RHistData.hxx
++++ b/hist/histv7/inc/ROOT/RHistData.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHistData.h
++/// \file ROOT/RHistData.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-06-14
+diff --git a/hist/histv7/inc/ROOT/RHistImpl.hxx b/hist/histv7/inc/ROOT/RHistImpl.hxx
+index 483d879f0e..b6d4b2c6b5 100644
+--- a/hist/histv7/inc/ROOT/RHistImpl.hxx
++++ b/hist/histv7/inc/ROOT/RHistImpl.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHistImpl.h
++/// \file ROOT/RHistImpl.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-03-23
+diff --git a/hist/histv7/inc/ROOT/RHistUtils.hxx b/hist/histv7/inc/ROOT/RHistUtils.hxx
+index 3733113c2b..08a342bf61 100644
+--- a/hist/histv7/inc/ROOT/RHistUtils.hxx
++++ b/hist/histv7/inc/ROOT/RHistUtils.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHistData.h
++/// \file ROOT/RHistUtils.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2016-06-01
+diff --git a/hist/histv7/inc/ROOT/RHistView.hxx b/hist/histv7/inc/ROOT/RHistView.hxx
+index b65d3518dd..d2b40e0f35 100644
+--- a/hist/histv7/inc/ROOT/RHistView.hxx
++++ b/hist/histv7/inc/ROOT/RHistView.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHistView.h
++/// \file ROOT/RHistView.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-08-06
+diff --git a/io/io/v7/inc/ROOT/RFile.hxx b/io/io/v7/inc/ROOT/RFile.hxx
+index 6d3baaec05..c371a25875 100644
+--- a/io/io/v7/inc/ROOT/RFile.hxx
++++ b/io/io/v7/inc/ROOT/RFile.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RFile.h
++/// \file ROOT/RFile.hxx
+ /// \ingroup Base ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-07-31
+diff --git a/math/mathcore/test/CladDerivatorTests.cxx b/math/mathcore/test/CladDerivatorTests.cxx
+index e4289a7286..d1682094e0 100644
+--- a/math/mathcore/test/CladDerivatorTests.cxx
++++ b/math/mathcore/test/CladDerivatorTests.cxx
+@@ -1,4 +1,4 @@
+-/// \file CladDerivator.h
++/// \file CladDerivatorTests.cxx
+ ///
+ /// \brief The file contain unit tests which test the CladDerivator facility.
+ ///
+diff --git a/math/mathcore/v7/inc/ROOT/RFit.hxx b/math/mathcore/v7/inc/ROOT/RFit.hxx
+index 4fae336242..5b92733152 100644
+--- a/math/mathcore/v7/inc/ROOT/RFit.hxx
++++ b/math/mathcore/v7/inc/ROOT/RFit.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RFit.h
++/// \file ROOT/RFit.hxx
+ /// \ingroup MathCore ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-09-06
+diff --git a/tmva/tmva/inc/TMVA/NeuralNet.h b/tmva/tmva/inc/TMVA/NeuralNet.h
+index 31229cb1cf..bae98a48b2 100644
+--- a/tmva/tmva/inc/TMVA/NeuralNet.h
++++ b/tmva/tmva/inc/TMVA/NeuralNet.h
+@@ -1,5 +1,5 @@
+ /**
+- * @file NeuralNet
++ * @file TMVA/NeuralNet.h
+ * @author Peter Speckmayer
+ * @version 1.0
+ *
+--
+2.26.2
+
diff --git a/root-doxygen-macro-name.patch b/root-doxygen-macro-name.patch
new file mode 100644
index 0000000..a97bdf0
--- /dev/null
+++ b/root-doxygen-macro-name.patch
@@ -0,0 +1,29 @@
+From 8266262f76eaef4dc72ffda38e1d315be2ce3ff0 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Wed, 8 Jul 2020 19:41:34 +0200
+Subject: [PATCH 5/5] Make the name of macro match the filename
+
+Fixes:
+
+warning: Failed to call `rs302_JeffreysPriorDemo()` to execute the macro.
+Add this function or rename the macro. Falling back to `.L`.
+---
+ tutorials/roostats/rs302_JeffreysPriorDemo.C | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tutorials/roostats/rs302_JeffreysPriorDemo.C b/tutorials/roostats/rs302_JeffreysPriorDemo.C
+index c2f720a5f9..1c52e5dd83 100644
+--- a/tutorials/roostats/rs302_JeffreysPriorDemo.C
++++ b/tutorials/roostats/rs302_JeffreysPriorDemo.C
+@@ -49,7 +49,7 @@
+
+ using namespace RooFit;
+
+-void JeffreysPriorDemo()
++void rs302_JeffreysPriorDemo()
+ {
+ RooWorkspace w("w");
+ w.factory("Uniform::u(x[0,1])");
+--
+2.26.2
+
diff --git a/root-doxygen-md-comments.patch b/root-doxygen-md-comments.patch
new file mode 100644
index 0000000..c1f57e2
--- /dev/null
+++ b/root-doxygen-md-comments.patch
@@ -0,0 +1,214 @@
+From 7336caccd3288a9164c82b78053e8f4f59eb1a9c Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Sun, 12 Jul 2020 12:12:15 +0200
+Subject: [PATCH] Remove /** comments */ from md files
+
+---
+ math/genvector/doc/Genvector.md | 7 -------
+ math/genvector/doc/LorentzVector.md | 6 +-----
+ math/genvector/doc/Point3D.md | 6 ------
+ math/genvector/doc/Transformation.md | 6 ------
+ math/genvector/doc/Vector3D.md | 4 ----
+ math/genvector/doc/VectorPoint2D.md | 6 ------
+ math/genvector/doc/externalUsage.md | 6 ------
+ math/mathcore/doc/MathCore.md | 5 -----
+ math/mathmore/doc/MathMore.md | 5 -----
+ math/matrix/doc/Matrix.md | 3 ---
+ math/unuran/doc/Unuran.md | 8 ++------
+ 11 files changed, 3 insertions(+), 59 deletions(-)
+
+diff --git a/math/genvector/doc/Genvector.md b/math/genvector/doc/Genvector.md
+index 12e4e47a93..50dc61b2ce 100644
+--- a/math/genvector/doc/Genvector.md
++++ b/math/genvector/doc/Genvector.md
+@@ -1,5 +1,3 @@
+-/**
+-
+ \page Vector Generic Vector for 2, 3 and 4 Dimensions
+
+
+@@ -113,8 +111,3 @@ A more detailed description of all the GenVector classes is available in this [d
+ 2. [CLHEP Geometry package](http://www.hep.phy.cam.ac.uk/lhcb/doc/CLHEP/1.9.1.2/html/namespaceH)
+ 3. [%ROOT Physics Vector classes](http://root.cern.ch/root/html/PHYSICS_Index.html)
+ 4. [CMS Vector package](http://lcgapp.cern.ch/doxygen/SEAL/snapshot/html/dir_000007.html)
+-
+-* * *
+-
+-*/
+-
+diff --git a/math/genvector/doc/LorentzVector.md b/math/genvector/doc/LorentzVector.md
+index b40ea8c69c..e01ed4a8ca 100644
+--- a/math/genvector/doc/LorentzVector.md
++++ b/math/genvector/doc/LorentzVector.md
+@@ -1,6 +1,4 @@
+-// LorentzVector doxygen page
+-
+-/** \page LorentzVectorPage LorentzVector Classes
++\page LorentzVectorPage LorentzVector Classes
+
+ To avoid exposing templated parameter to the users, typedefs are defined for all types of vectors based an double's and float's. To use them, one must include the header file _Math/Vector4D.h_. The following typedef's, defined in the header file _Math/Vector4Dfwd.h_, are available for the different instantiations of the template class ROOT::Math::LorentzVector:
+
+@@ -110,5 +108,3 @@ v.Beta(); // return beta and gamma value
+ v.Gamma() // (vector must be time-like otherwise result is meaningless)
+ XYZVector b = v.BoostToCM() // return boost vector which will bring the Vector in its mas frame (P=0)
+ </pre>
+-
+-*/
+diff --git a/math/genvector/doc/Point3D.md b/math/genvector/doc/Point3D.md
+index a273b182d4..db55c68752 100644
+--- a/math/genvector/doc/Point3D.md
++++ b/math/genvector/doc/Point3D.md
+@@ -1,7 +1,3 @@
+-// Point3d doxygen page
+-
+-/**
+-
+ \page Point3DPage Point3D Classes
+
+ To avoid exposing templated parameter to the users, typedefs are defined for all types of vectors based an double's and float's. To use them, one must include the header file _Math/Point3D.h_. The following typedef's, defined in the header file _Math/Point3Dfwd.h_, are available for the different instantiations of the template class ROOT::Math::PositionVector3D:
+@@ -61,5 +57,3 @@ Exactly as for the 3D Vectors, the following operations are allowed:
+ * comparison of points
+ * scaling and division of points with a scalar
+ * dot and cross product with any type of vector
+-
+-*/
+diff --git a/math/genvector/doc/Transformation.md b/math/genvector/doc/Transformation.md
+index 7e66107f55..edc36778ed 100644
+--- a/math/genvector/doc/Transformation.md
++++ b/math/genvector/doc/Transformation.md
+@@ -1,7 +1,3 @@
+-// Rotation and transformation doxygen page
+-
+-/**
+-
+ \page TransformPage Vector Transformations
+
+ Transformations classes are grouped in Rotations (in 3 dimensions), Lorentz transformations and Poincarre transformations, which are Translation/Rotation combinations. Each group has several members which may model physically equivalent trasformations but with different internal representations.
+@@ -114,5 +110,3 @@ Transform3D t; t.GetComponens(m); // fill matrix of size 3x4 with c
+ </pre>
+
+ For more detailed documentation on all methods see the reference doc for the specific transformation class.
+-
+-*/
+diff --git a/math/genvector/doc/Vector3D.md b/math/genvector/doc/Vector3D.md
+index 4f65f6b603..9d10ce7db2 100644
+--- a/math/genvector/doc/Vector3D.md
++++ b/math/genvector/doc/Vector3D.md
+@@ -1,5 +1,3 @@
+-/**
+-
+ \page Vector3DPage Vector3D Classes
+
+
+@@ -120,5 +118,3 @@ Note that the multiplication between two vectors using the operator * is not sup
+
+ <pre>XYZVector u = v1.Unit(); // return unit vector parallel to v1
+ </pre>
+-
+-*/
+diff --git a/math/genvector/doc/VectorPoint2D.md b/math/genvector/doc/VectorPoint2D.md
+index 5c5e665088..287f3f8b73 100644
+--- a/math/genvector/doc/VectorPoint2D.md
++++ b/math/genvector/doc/VectorPoint2D.md
+@@ -1,7 +1,3 @@
+-// Vector2d doxygen page
+-
+-/**
+-
+ \page Vector2DPage 2D Point and Vector Classes
+
+ Similar to the \ref Vector3DPage and \ref Point3DPage , typedefs are defined to avoid exposing templated parameter to the users, for all 2D vectors based an double's and float's. To use them, one must include the header file _Math/Vector2D.h_ or _Math/Point2D.h_. The following typedef's, defined in the header file _Math/Vector2Dfwd.h_, are available for the different instantiations of the template class ROOT::Math::DisplacementVector2D:
+@@ -19,5 +15,3 @@ The typedef's, defined in the header file _Math/Point2Dfwd.h_, available for the
+ * ROOT::Math::Polar2DPointF vector based on r,phi coordinates (polar) in float precision
+
+ Similar constructs, functions and operations available for the 3D vectors and points (see \ref Vector3DPage and \ref Point3DPage ) are available also for the 2D vector and points. No transformations or rotation classes are available for the 2D vectors.
+-
+-*/
+diff --git a/math/genvector/doc/externalUsage.md b/math/genvector/doc/externalUsage.md
+index f8580225a5..4413bbafca 100644
+--- a/math/genvector/doc/externalUsage.md
++++ b/math/genvector/doc/externalUsage.md
+@@ -1,7 +1,3 @@
+-// example on using with exteral classes (doxygen page)
+-
+-/**
+-
+ \page ExtUsagePage Examples with External Packages
+
+ ### Connection to Linear Algebra classes
+@@ -48,5 +44,3 @@ XYZPoint p1(hp); // create a 3D Point from CLHEP geom
+
+ CLHEP::HepLorentzVector hq;
+ XYZTVector q(hq); // create a LorentzVector from CLHEP L.V.</double> </pre>
+-
+-*/
+diff --git a/math/mathcore/doc/MathCore.md b/math/mathcore/doc/MathCore.md
+index 4efc043cab..8d38b4ae19 100644
+--- a/math/mathcore/doc/MathCore.md
++++ b/math/mathcore/doc/MathCore.md
+@@ -1,5 +1,3 @@
+-/**
+-
+ \defgroup MathCore MathCore
+
+ \brief The Core Mathematical Library of %ROOT. See the \ref MathCorePage "MathCore" description page.
+@@ -32,6 +30,3 @@ MathCore contains instead now classes which were originally part of _libCore_. T
+ * Other classes, such as
+ * TKDTree for partitioning the data using a kd-Tree and TKDTreeBinning for binning data using a kdTree
+ * ROOT::Math::GoFTest for goodness of fit tests
+-
+-
+-*/
+diff --git a/math/mathmore/doc/MathMore.md b/math/mathmore/doc/MathMore.md
+index 28b3528a68..f30ef6d0be 100644
+--- a/math/mathmore/doc/MathMore.md
++++ b/math/mathmore/doc/MathMore.md
+@@ -1,6 +1,3 @@
+-
+-/**
+-
+ \defgroup MathMore MathMore
+
+ \brief The Mathematical library providing some advanced functionality and based on GSL. See the \ref MathMorePage "MathMore" Library page.
+@@ -32,5 +29,3 @@ To build MathMore you need to have first GSL installed somewhere in your system.
+ MathMore (and its %ROOT CINT dictionary) can be built within %ROOT whenever a GSL library is found in the system. Optionally the GSL library and header file location can be specified in the %ROOT configure script with _configure --with-gsl-incdir=... --with-gsl-libdir=..._
+ MathMore links with the GSL static libraries. On some platform (like Linux x86-64) GSL needs to be compiled with the option _--with-pic_.
+ The source code of MathMore is distributed under the GNU General Public License
+-
+-*/
+diff --git a/math/matrix/doc/Matrix.md b/math/matrix/doc/Matrix.md
+index ed0d9fffe8..f0b9d7a06a 100644
+--- a/math/matrix/doc/Matrix.md
++++ b/math/matrix/doc/Matrix.md
+@@ -1,6 +1,3 @@
+-/**
+-
+-
+ \page MatrixPage The ROOT Matrix Linear Algebra classes.
+
+
+diff --git a/math/unuran/doc/Unuran.md b/math/unuran/doc/Unuran.md
+index d807c4e807..4c64e0d214 100644
+--- a/math/unuran/doc/Unuran.md
++++ b/math/unuran/doc/Unuran.md
+@@ -1,9 +1,7 @@
+-/**
+-
+-Universal Non Uniform Random number generator for generating non uniform pseudo-random numbers
+-
+ \defgroup Unuran Unuran
+
++\brief Universal Non Uniform Random number generator for generating non uniform pseudo-random numbers.
++
+ \ingroup Math
+
+ UNU.RAN, (Universal Non Uniform Random number generator for generating non uniform pseudo-random numbers)
+@@ -120,5 +118,3 @@ TRandom pointer when constructing the TUnuran class (by default the ROOT gRandom
+
+ The (UNU.RAN documentation)[http://statistik.wu-wien.ac.at/unuran/doc/unuran.html#Top] provides a detailed
+ description of all the available methods and the possible options which one can pass to UNU.RAN for the various distributions.
+-*/
+-
+--
+2.26.2
+
diff --git a/root-doxygen-missing-underscore.patch b/root-doxygen-missing-underscore.patch
new file mode 100644
index 0000000..630d58f
--- /dev/null
+++ b/root-doxygen-missing-underscore.patch
@@ -0,0 +1,25 @@
+From e6e6715a73fb8b65ee24c11ff08ca34e25db9ef1 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Wed, 8 Jul 2020 19:41:10 +0200
+Subject: [PATCH 4/5] Add missing underscore
+
+---
+ tutorials/fit/vectorizedFit.C | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tutorials/fit/vectorizedFit.C b/tutorials/fit/vectorizedFit.C
+index d6b13e2fa7..1f6e317aa6 100644
+--- a/tutorials/fit/vectorizedFit.C
++++ b/tutorials/fit/vectorizedFit.C
+@@ -8,7 +8,7 @@
+ /// TF1::SetVectorized
+ ///
+ /// \macro_image
+-/// \macro output
++/// \macro_output
+ /// \macro_code
+ ///
+ /// \author Lorenzo Moneta
+--
+2.26.2
+
diff --git a/root-doxygen-parameter-names.patch b/root-doxygen-parameter-names.patch
new file mode 100644
index 0000000..7cc7d2e
--- /dev/null
+++ b/root-doxygen-parameter-names.patch
@@ -0,0 +1,1211 @@
+From e65727913e435819a3fc26513d9892d179eab1f2 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Wed, 8 Jul 2020 19:32:51 +0200
+Subject: [PATCH 3/5] Adjust parameter names in doxygen markup so they match
+ the code
+
+Addresses warnings:
+
+argument '<name>' of command @param is not found in the argument list
+of <function>.
+---
+ .../pythonizations/src/PyzPythonHelpers.cxx | 2 +-
+ bindings/r/inc/TRInterface.h | 4 +--
+ hist/hist/src/TF1.cxx | 5 ++-
+ hist/hist/src/TGraph.cxx | 6 ++--
+ hist/histpainter/src/TPainter3dAlgorithms.cxx | 6 ++--
+ hist/histv7/inc/ROOT/RAxis.hxx | 11 +++----
+ hist/histv7/inc/ROOT/RHist.hxx | 2 +-
+ hist/unfold/src/TUnfoldBinning.cxx | 24 +++++++-------
+ hist/unfold/src/TUnfoldBinningXML.cxx | 2 +-
+ hist/unfold/src/TUnfoldDensity.cxx | 2 +-
+ hist/unfold/src/TUnfoldSys.cxx | 7 ++--
+ io/io/inc/ROOT/TBufferMerger.hxx | 2 +-
+ math/mathcore/inc/Math/IntegratorMultiDim.h | 2 +-
+ math/minuit2/inc/Minuit2/FCNBase.h | 4 +--
+ math/minuit2/inc/Minuit2/FumiliChi2FCN.h | 2 +-
+ math/minuit2/inc/Minuit2/FumiliErrorUpdator.h | 2 +-
+ .../inc/Minuit2/FumiliMaximumLikelihoodFCN.h | 2 +-
+ roofit/roofit/src/RooExponential.cxx | 2 +-
+ roofit/roofit/src/RooGExpModel.cxx | 32 +++++++++----------
+ roofit/roofit/src/RooGaussian.cxx | 2 +-
+ roofit/roofit/src/RooJohnson.cxx | 2 +-
+ roofit/roofit/src/RooLandau.cxx | 2 +-
+ roofit/roofitcore/src/BatchData.cxx | 2 +-
+ roofit/roofitcore/src/RooAbsPdf.cxx | 4 +--
+ roofit/roofitcore/src/RooAbsReal.cxx | 2 +-
+ roofit/roofitcore/src/RooCustomizer.cxx | 4 +--
+ roofit/roofitcore/src/RooDataHist.cxx | 4 +--
+ roofit/roofitcore/src/RooDataSet.cxx | 10 +++---
+ roofit/roofitcore/src/RooFormulaVar.cxx | 2 +-
+ roofit/roofitcore/src/RooSuperCategory.cxx | 2 +-
+ roofit/roofitmore/src/RooHypatia2.cxx | 6 ++--
+ tmva/tmva/inc/TMVA/BDTEventWrapper.h | 4 +--
+ tmva/tmva/inc/TMVA/NeuralNet.h | 14 +++-----
+ tmva/tmva/inc/TMVA/NeuralNet.icc | 2 +-
+ tmva/tmva/inc/TMVA/RTensor.hxx | 2 +-
+ .../inc/TMVA/TreeInference/BranchlessTree.hxx | 4 +--
+ tmva/tmva/inc/TMVA/TreeInference/Forest.hxx | 2 +-
+ tmva/tmva/src/BDTEventWrapper.cxx | 2 +-
+ tmva/tmva/src/CrossValidation.cxx | 2 +-
+ tmva/tmva/src/CvSplit.cxx | 18 +++++------
+ tmva/tmva/src/Envelope.cxx | 12 +++----
+ tree/dataframe/inc/ROOT/RDF/RInterface.hxx | 16 +++++-----
+ tree/dataframe/inc/ROOT/RDFHelpers.hxx | 2 +-
+ tree/dataframe/inc/ROOT/RDataSource.hxx | 8 ++---
+ tree/dataframe/inc/ROOT/RResultPtr.hxx | 2 +-
+ tree/dataframe/src/RArrowDS.cxx | 4 +--
+ tree/tree/inc/TTree.h | 2 +-
+ tree/tree/src/TIOFeatures.cxx | 14 ++++----
+ 48 files changed, 131 insertions(+), 140 deletions(-)
+
+diff --git a/bindings/pyroot/pythonizations/src/PyzPythonHelpers.cxx b/bindings/pyroot/pythonizations/src/PyzPythonHelpers.cxx
+index 059debcee4..c5e354f300 100644
+--- a/bindings/pyroot/pythonizations/src/PyzPythonHelpers.cxx
++++ b/bindings/pyroot/pythonizations/src/PyzPythonHelpers.cxx
+@@ -99,7 +99,7 @@ PyObject *PyROOT::GetDataPointer(PyObject * /*self*/, PyObject *args)
+ /// \brief Get endianess of the system
+ /// \param[in] self Always null, since this is a module function.
+ /// \param[in] args Pointer to an empty Python tuple.
+-/// \param[out] Endianess as Python string
++/// \return Endianess as Python string
+ ///
+ /// This function returns endianess of the system as a Python integer. The
+ /// return value is either '<' or '>' for little or big endian, respectively.
+diff --git a/bindings/r/inc/TRInterface.h b/bindings/r/inc/TRInterface.h
+index bdb559bfb5..e097007429 100644
+--- a/bindings/r/inc/TRInterface.h
++++ b/bindings/r/inc/TRInterface.h
+@@ -206,7 +206,7 @@ namespace ROOT {
+ The command line arguments are by deafult argc=0 and argv=NULL,
+ The verbose mode is by default disabled but you can enable it to show procedures information in stdout/stderr \note some time can produce so much noise in the output
+ \param argc default 0
+- \param args default null
++ \param argv default null
+ \param loadRcpp default true
+ \param verbose default false
+ \param interactive default true
+@@ -226,7 +226,7 @@ namespace ROOT {
+ /**
+ Method to eval R code and you get the result in a reference to TRObject
+ \param code R code
+- \param ands reference to TRObject
++ \param ans reference to TRObject
+ \return an true or false if the execution was sucessful or not.
+ */
+ Int_t Eval(const TString &code, TRObject &ans); // parse line, returns in ans; error code rc
+diff --git a/hist/hist/src/TF1.cxx b/hist/hist/src/TF1.cxx
+index a72b309c1e..0b7c0b5e45 100644
+--- a/hist/hist/src/TF1.cxx
++++ b/hist/hist/src/TF1.cxx
+@@ -1973,12 +1973,11 @@ Double_t TF1::GetProb() const
+ /// F(x_{\frac{1}{2}}) = \prod(x < x_{\frac{1}{2}}) = \frac{1}{2}
+ /// \f]
+ ///
+-/// \param[in] this TF1 function
+ /// \param[in] nprobSum maximum size of array q and size of array probSum
++/// \param[out] q array filled with nq quantiles
+ /// \param[in] probSum array of positions where quantiles will be computed.
+ /// It is assumed to contain at least nprobSum values.
+-/// \param[out] return value nq (<=nprobSum) with the number of quantiles computed
+-/// \param[out] array q filled with nq quantiles
++/// \return value nq (<=nprobSum) with the number of quantiles computed
+ ///
+ /// Getting quantiles from two histograms and storing results in a TGraph,
+ /// a so-called QQ-plot
+diff --git a/hist/hist/src/TGraph.cxx b/hist/hist/src/TGraph.cxx
+index b6e05a4a9c..614c63d697 100644
+--- a/hist/hist/src/TGraph.cxx
++++ b/hist/hist/src/TGraph.cxx
+@@ -1900,9 +1900,9 @@ Int_t TGraph::IsInside(Double_t x, Double_t y) const
+ /// Least squares polynomial fitting without weights.
+ ///
+ /// \param [in] m number of parameters
+-/// \param [in] ma array of parameters
+-/// \param [in] mfirst 1st point number to fit (default =0)
+-/// \param [in] mlast last point number to fit (default=fNpoints-1)
++/// \param [in] a array of parameters
++/// \param [in] xmin 1st point number to fit (default =0)
++/// \param [in] xmax last point number to fit (default=fNpoints-1)
+ ///
+ /// based on CERNLIB routine LSQ: Translated to C++ by Rene Brun
+
+diff --git a/hist/histpainter/src/TPainter3dAlgorithms.cxx b/hist/histpainter/src/TPainter3dAlgorithms.cxx
+index e0dd1f28e4..a95ac36d2d 100644
+--- a/hist/histpainter/src/TPainter3dAlgorithms.cxx
++++ b/hist/histpainter/src/TPainter3dAlgorithms.cxx
+@@ -3122,8 +3122,8 @@ L500:
+ /// Set light source
+ ///
+ /// \param[in] nl source number: 1 off all light sources, 0 set diffused light
+-/// \param[in] xl intensity of the light source
+-/// \param[in] xscr `yscr` `zscr` direction of the light (in respect of the screen)
++/// \param[in] yl intensity of the light source
++/// \param[in] xscr, yscr, zscr direction of the light (in respect of the screen)
+ ///
+ /// \param[out] irep reply (0 - O.K, -1 error)
+
+@@ -4074,7 +4074,7 @@ L500:
+ /// \param[in] qqa diffusion coefficient for diffused light [0.,1.]
+ /// \param[in] qqd diffusion coefficient for direct light [0.,1.]
+ /// \param[in] qqs diffusion coefficient for reflected light [0.,1.]
+-/// \param[in] nncs power coefficient for reflected light (.GE.1)
++/// \param[in] nnqs power coefficient for reflected light (.GE.1)
+ ///
+ /// Lightness model formula: Y = YD*QA + > YLi*(QD*cosNi+QS*cosRi)
+ ///
+diff --git a/hist/histv7/inc/ROOT/RAxis.hxx b/hist/histv7/inc/ROOT/RAxis.hxx
+index 0371a06f97..52ed88b9d8 100644
+--- a/hist/histv7/inc/ROOT/RAxis.hxx
++++ b/hist/histv7/inc/ROOT/RAxis.hxx
+@@ -68,7 +68,7 @@ protected:
+ /// determine the bin number taking into account how over/underflow
+ /// should be handled.
+ ///
+- /// \param[out] result status of the bin determination.
++ /// \param[in] rawbin for which to determine the bin number.
+ /// \return Returns the bin number adjusted for potential over- and underflow
+ /// bins. Returns `kInvalidBin` if the axis cannot handle the over- / underflow.
+ ///
+@@ -390,7 +390,7 @@ protected:
+ /// Determine the inverse bin width.
+ /// \param nbinsNoOver - number of bins without unter-/overflow
+ /// \param lowOrHigh - first axis boundary
+- /// \param lighOrLow - second axis boundary
++ /// \param highOrLow - second axis boundary
+ static double GetInvBinWidth(int nbinsNoOver, double lowOrHigh, double highOrLow)
+ {
+ return nbinsNoOver / std::fabs(highOrLow - lowOrHigh);
+@@ -413,7 +413,7 @@ public:
+
+ /// Initialize a RAxisEquidistant.
+ /// \param[in] title - axis title used for graphics and text representation.
+- /// \param nbins - number of bins in the axis, excluding under- and overflow
++ /// \param nbinsNoOver - number of bins in the axis, excluding under- and overflow
+ /// bins.
+ /// \param low - the low axis range. Any coordinate below that is considered
+ /// as underflow. The first bin's lower edge is at this value.
+@@ -427,13 +427,12 @@ public:
+ {}
+
+ /// Initialize a RAxisEquidistant.
+- /// \param nbins - number of bins in the axis, excluding under- and overflow
++ /// \param nbinsNoOver - number of bins in the axis, excluding under- and overflow
+ /// bins.
+ /// \param low - the low axis range. Any coordinate below that is considered
+ /// as underflow. The first bin's lower edge is at this value.
+ /// \param high - the high axis range. Any coordinate above that is considered
+ /// as overflow. The last bin's higher edge is at this value.
+- /// \param canGrow - whether this axis can extend its range.
+ explicit RAxisEquidistant(int nbinsNoOver, double low, double high) noexcept
+ : RAxisEquidistant("", nbinsNoOver, low, high)
+ {}
+@@ -505,6 +504,7 @@ struct AxisConfigToType<RAxisConfig::kEquidistant> {
+ class RAxisGrow: public RAxisEquidistant {
+ public:
+ /// Initialize a RAxisGrow.
++ /// \param[in] title - axis title used for graphics and text representation.
+ /// \param nbins - number of bins in the axis, excluding under- and overflow
+ /// bins. This value is fixed over the lifetime of the object.
+ /// \param low - the initial value for the low axis range. Any coordinate
+@@ -518,7 +518,6 @@ public:
+ {}
+
+ /// Initialize a RAxisGrow.
+- /// \param[in] title - axis title used for graphics and text representation.
+ /// \param nbins - number of bins in the axis, excluding under- and overflow
+ /// bins. This value is fixed over the lifetime of the object.
+ /// \param low - the initial value for the low axis range. Any coordinate
+diff --git a/hist/histv7/inc/ROOT/RHist.hxx b/hist/histv7/inc/ROOT/RHist.hxx
+index 5567683b27..e2b7649975 100644
+--- a/hist/histv7/inc/ROOT/RHist.hxx
++++ b/hist/histv7/inc/ROOT/RHist.hxx
+@@ -219,9 +219,9 @@ struct RHistImplGen {
+ ///
+ /// Delegate to the appropriate MakeNextAxis instantiation, depending on the
+ /// axis type selected in the RAxisConfig.
++ /// \param title - title of the derived object.
+ /// \param axes - `RAxisConfig` objects describing the axis of the resulting
+ /// RHistImpl.
+- /// \param statConfig - the statConfig parameter to be passed to the RHistImpl
+ /// \param processedAxisArgs - the RAxisBase-derived axis objects describing the
+ /// axes of the resulting RHistImpl. There are `IDIM` of those; in the end
+ /// (`IDIM` == `GetNDim()`), all `axes` have been converted to
+diff --git a/hist/unfold/src/TUnfoldBinning.cxx b/hist/unfold/src/TUnfoldBinning.cxx
+index 3aecbf53c2..2500230dca 100644
+--- a/hist/unfold/src/TUnfoldBinning.cxx
++++ b/hist/unfold/src/TUnfoldBinning.cxx
+@@ -205,7 +205,7 @@ Int_t TUnfoldBinning::UpdateFirstLastBin(Bool_t startWithRootNode)
+ /// Create a new node without axis.
+ ///
+ /// \param[in] name identifier of the node
+-/// \param[in] nBin number of unconnected bins (could be zero)
++/// \param[in] nBins number of unconnected bins (could be zero)
+ /// \param[in] binNames (optional) names of the bins separated by ';'
+
+ TUnfoldBinning::TUnfoldBinning
+@@ -241,7 +241,7 @@ TUnfoldBinning::TUnfoldBinning
+ /// Add a new binning node as last last child of this node.
+ ///
+ /// \param[in] name name of the node
+-/// \param[in] nBin number of extra bins
++/// \param[in] nBins number of extra bins
+ /// \param[in] binNames (optional) names of the bins separated by ';'
+ ///
+ /// this is a shortcut for AddBinning(new TUnfoldBinning(name,nBins,binNames))
+@@ -695,11 +695,11 @@ Int_t TUnfoldBinning::GetTH1xNumberOfBins
+ ///
+ /// \param[in] histogramName name of the histogram which is created
+ /// \param[in] originalAxisBinning if true, try to preserve the axis binning
+-/// \param[out] (default=0) binMap mapping of global bins to histogram bins.
++/// \param[out] binMap (default=0) mapping of global bins to histogram bins.
+ /// if(binMap==0), no binMap is created
+-/// \param[in] (default=0) histogramTitle title of the histogram. If zero, a title
++/// \param[in] histogramTitle (default=0) title of the histogram. If zero, a title
+ /// is selected automatically
+-/// \param[in] (default=0) axisSteering steer the handling of underflow/overflow
++/// \param[in] axisSteering (default=0) steer the handling of underflow/overflow
+ /// and projections
+ ///
+ /// returns a new histogram (TH1D, TH2D or TH3D)
+@@ -789,11 +789,11 @@ TH1 *TUnfoldBinning::CreateHistogram
+ ///
+ /// \param[in] histogramName name of the histogram which is created
+ /// \param[in] originalAxisBinning if true, try to preserve the axis binning
+-/// \param[out] (default=0) binMap mapping of global bins to histogram bins.
++/// \param[out] binMap (default=0) mapping of global bins to histogram bins.
+ /// if(binMap==0), no binMap is created
+-/// \param[in] (default=0) histogramTitle title of the histogram. If zero, a title
++/// \param[in] histogramTitle (default=0) title of the histogram. If zero, a title
+ /// is selected automatically
+-/// \param[in] (default=0) axisSteering steer the handling of underflow/overflow
++/// \param[in] axisSteering (default=0) steer the handling of underflow/overflow
+ /// and projections
+ ///
+ /// returns a new TH2D. The options are described in greater detail
+@@ -832,7 +832,7 @@ TH2D *TUnfoldBinning::CreateErrorMatrixHistogram
+ /// Create a TH2D histogram capable to hold the bins of the two
+ /// input binning schemes on the x and y axes, respectively.
+ ///
+-/// \paran[in] xAxis binning scheme for the x axis
++/// \param[in] xAxis binning scheme for the x axis
+ /// \param[in] yAxis binning scheme for the y axis
+ /// \param[in] histogramName name of the histogram which is created
+ /// \param[in] originalXAxisBinning preserve x-axis bin widths if possible
+@@ -1053,8 +1053,8 @@ Int_t *TUnfoldBinning::CreateEmptyBinMap(void) const {
+ /// Set one entry in a bin map.
+ ///
+ /// \param[out] binMap to be used with TUnfoldSys::GetOutput() etc
+-/// \param[in] source bin, global bin number in this binning scheme
+-/// \param[in] destination bin in the output histogram
++/// \param[in] globalBin source bin, global bin number in this binning scheme
++/// \param[in] destBin destination bin in the output histogram
+
+ void TUnfoldBinning::SetBinMapEntry
+ (Int_t *binMap,Int_t globalBin,Int_t destBin) const {
+@@ -2075,7 +2075,7 @@ Int_t TUnfoldBinning::ToGlobalBin
+ /// and bin numbers on the corresponding axes.
+ ///
+ /// \param[in] globalBin global bin number
+-/// \param[out] local bin numbers of the distribution's axes
++/// \param[out] axisBins local bin numbers of the distribution's axes
+ ///
+ /// returns the distribution in which the globalBin is located
+ /// or 0 if the globalBin is outside this node and its children
+diff --git a/hist/unfold/src/TUnfoldBinningXML.cxx b/hist/unfold/src/TUnfoldBinningXML.cxx
+index 28ce408128..a1daf58215 100644
+--- a/hist/unfold/src/TUnfoldBinningXML.cxx
++++ b/hist/unfold/src/TUnfoldBinningXML.cxx
+@@ -472,7 +472,7 @@ void TUnfoldBinningXML::AddAxisXML(TXMLNode *node) {
+ /// Export a binning scheme to a stream in XML format.
+ ///
+ /// \param[in] binning the binning scheme to export
+-/// \param[out] stream to write to
++/// \param[in] out stream to write to
+ /// \param[in] writeHeader set true when writing the first binning
+ /// scheme to this stream
+ /// \param[in] writeFooter set true when writing the last binning
+diff --git a/hist/unfold/src/TUnfoldDensity.cxx b/hist/unfold/src/TUnfoldDensity.cxx
+index 9b32da0961..78c7ddbf14 100644
+--- a/hist/unfold/src/TUnfoldDensity.cxx
++++ b/hist/unfold/src/TUnfoldDensity.cxx
+@@ -1311,7 +1311,7 @@ const TUnfoldBinning *TUnfoldDensity::GetOutputBinning
+ /// \param[out] scanResult the scanned function wrt log(tau)
+ /// \param[in] mode 1st parameter for the scan function
+ /// \param[in] distribution 2nd parameter for the scan function
+-/// \param[in] projectionMode 3rd parameter for the scan function
++/// \param[in] axisSteering 3rd parameter for the scan function
+ /// \param[out] lCurvePlot for monitoring, shows the L-curve
+ /// \param[out] logTauXPlot for monitoring, L-curve(X) as a function of log(tau)
+ /// \param[out] logTauYPlot for monitoring, L-curve(Y) as a function of log(tau)
+diff --git a/hist/unfold/src/TUnfoldSys.cxx b/hist/unfold/src/TUnfoldSys.cxx
+index 42bbc7751c..1e89445cde 100644
+--- a/hist/unfold/src/TUnfoldSys.cxx
++++ b/hist/unfold/src/TUnfoldSys.cxx
+@@ -463,7 +463,7 @@ Int_t TUnfoldSys::SetInput(const TH1 *hist_y,Double_t scaleBias,
+ /// \param[in] bgr background distribution with uncorrelated errors
+ /// \param[in] name identifier for this background source
+ /// \param[in] scale normalisation factor applied to the background
+-/// \param[in] scaleError normalisation uncertainty
++/// \param[in] scale_error normalisation uncertainty
+ ///
+ /// The contribution <b>scale</b>*<b>bgr</b> is subtracted from the
+ /// measurement prior to unfolding. The following contributions are
+@@ -1045,7 +1045,6 @@ Bool_t TUnfoldSys::GetDeltaSysBackgroundScale
+ /// Correlated one-sigma shifts from shifting tau.
+ ///
+ /// \param[out] hist_delta histogram to store shifts
+-/// \param[in] source identifier of the background source
+ /// \param[in] binMap (default=0) remapping of histogram bins
+ ///
+ /// returns true if the background source was found.
+@@ -1100,8 +1099,8 @@ void TUnfoldSys::GetEmatrixSysSource
+ ////////////////////////////////////////////////////////////////////////////////
+ /// Covariance contribution from background normalisation uncertainty.
+ ///
+-/// \param[inout] ematrix output histogram
+-/// \param[in] source identifier of the background source
++/// \param[in,out] ematrix output histogram
++/// \param[in] name identifier of the background source
+ /// \param[in] binMap (default=0) remapping of histogram bins
+ /// \param[in] clearEmat (default=true) if true, clear the histogram
+ /// prior to adding the covariance matrix contribution
+diff --git a/io/io/inc/ROOT/TBufferMerger.hxx b/io/io/inc/ROOT/TBufferMerger.hxx
+index 27fe36d399..5e4cfe52cb 100644
+--- a/io/io/inc/ROOT/TBufferMerger.hxx
++++ b/io/io/inc/ROOT/TBufferMerger.hxx
+@@ -43,7 +43,7 @@ public:
+ /** Constructor
+ * @param name Output file name
+ * @param option Output file creation options
+- * @param compression Output file compression level
++ * @param compress Output file compression level
+ */
+ TBufferMerger(const char *name, Option_t *option = "RECREATE", Int_t compress = ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault);
+
+diff --git a/math/mathcore/inc/Math/IntegratorMultiDim.h b/math/mathcore/inc/Math/IntegratorMultiDim.h
+index 0d2d56396e..7b14f96d8e 100644
+--- a/math/mathcore/inc/Math/IntegratorMultiDim.h
++++ b/math/mathcore/inc/Math/IntegratorMultiDim.h
+@@ -60,7 +60,7 @@ public:
+ @param type integration type (adaptive, MC methods, etc..)
+ @param absTol desired absolute Error
+ @param relTol desired relative Error
+- @param size maximum number of sub-intervals
++ @param ncall number of function calls (apply only to MC integratioon methods)
+
+ In case no parameter values are passed the default ones used in IntegratorMultiDimOptions are used
+ */
+diff --git a/math/minuit2/inc/Minuit2/FCNBase.h b/math/minuit2/inc/Minuit2/FCNBase.h
+index bf6c64bd9e..760df5b6f4 100644
+--- a/math/minuit2/inc/Minuit2/FCNBase.h
++++ b/math/minuit2/inc/Minuit2/FCNBase.h
+@@ -65,7 +65,7 @@ public:
+ as it searches for the Minimum or performs whatever analysis is requested by
+ the user.
+
+- @param par function parameters as defined by the user.
++ @param v function parameters as defined by the user.
+
+ @return the Value of the function.
+
+@@ -75,7 +75,7 @@ public:
+
+ */
+
+- virtual double operator()(const std::vector<double>& x) const = 0;
++ virtual double operator()(const std::vector<double>& v) const = 0;
+
+
+ /**
+diff --git a/math/minuit2/inc/Minuit2/FumiliChi2FCN.h b/math/minuit2/inc/Minuit2/FumiliChi2FCN.h
+index 6af985ef08..fac33baaf6 100644
+--- a/math/minuit2/inc/Minuit2/FumiliChi2FCN.h
++++ b/math/minuit2/inc/Minuit2/FumiliChi2FCN.h
+@@ -62,7 +62,7 @@ public:
+
+ Sets the model function for the data (for example gaussian+linear for a peak)
+
+- @param modelFunction a reference to the model function.
++ @param modelFCN a reference to the model function.
+
+ */
+
+diff --git a/math/minuit2/inc/Minuit2/FumiliErrorUpdator.h b/math/minuit2/inc/Minuit2/FumiliErrorUpdator.h
+index 3eb5da9c36..4b620c57a8 100644
+--- a/math/minuit2/inc/Minuit2/FumiliErrorUpdator.h
++++ b/math/minuit2/inc/Minuit2/FumiliErrorUpdator.h
+@@ -67,7 +67,7 @@ public:
+
+ @param fGradientCalculator the Gradient calculator used to retrieved the Parameter transformation
+
+- @param fFumiliFCNBase the function calculating the figure of merit.
++ @param lambda the Marquard lambda factor
+
+
+ \todo Some nice latex mathematical formuli...
+diff --git a/math/minuit2/inc/Minuit2/FumiliMaximumLikelihoodFCN.h b/math/minuit2/inc/Minuit2/FumiliMaximumLikelihoodFCN.h
+index c6725ae350..1661bee94a 100644
+--- a/math/minuit2/inc/Minuit2/FumiliMaximumLikelihoodFCN.h
++++ b/math/minuit2/inc/Minuit2/FumiliMaximumLikelihoodFCN.h
+@@ -61,7 +61,7 @@ public:
+
+ Sets the model function for the data (for example gaussian+linear for a peak)
+
+- @param modelFunction a reference to the model function.
++ @param modelFCN a reference to the model function.
+
+ */
+
+diff --git a/roofit/roofit/src/RooExponential.cxx b/roofit/roofit/src/RooExponential.cxx
+index dc211f5275..e16871c5eb 100644
+--- a/roofit/roofit/src/RooExponential.cxx
++++ b/roofit/roofit/src/RooExponential.cxx
+@@ -102,7 +102,7 @@ void compute(size_t n, double* __restrict output, Tx x, Tc c) {
+
+ ////////////////////////////////////////////////////////////////////////////////
+ /// Evaluate the exponential without normalising it on the given batch.
+-/// \param[in] batchIndex Index of the batch to be computed.
++/// \param[in] begin Index of the batch to be computed.
+ /// \param[in] batchSize Size of each batch. The last batch may be smaller.
+ /// \return A span with the computed values.
+
+diff --git a/roofit/roofit/src/RooGExpModel.cxx b/roofit/roofit/src/RooGExpModel.cxx
+index 9c7f184b69..18f5688217 100644
+--- a/roofit/roofit/src/RooGExpModel.cxx
++++ b/roofit/roofit/src/RooGExpModel.cxx
+@@ -48,10 +48,10 @@ ClassImp(RooGExpModel);
+ ///
+ /// \param[in] name Name of this instance.
+ /// \param[in] title Title (e.g. for plotting)
+-/// \param[in] x The convolution observable.
+-/// \param[in] mean The mean of the Gaussian.
+-/// \param[in] sigma Width of the Gaussian.
+-/// \param[in] rlife Lifetime constant \f$ \tau \f$.
++/// \param[in] xIn The convolution observable.
++/// \param[in] meanIn The mean of the Gaussian.
++/// \param[in] sigmaIn Width of the Gaussian.
++/// \param[in] rlifeIn Lifetime constant \f$ \tau \f$.
+ /// \param[in] meanSF Scale factor for mean.
+ /// \param[in] sigmaSF Scale factor for sigma.
+ /// \param[in] rlifeSF Scale factor for rlife.
+@@ -81,9 +81,9 @@ RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue
+ ///
+ /// \param[in] name Name of this instance.
+ /// \param[in] title Title (e.g. for plotting)
+-/// \param[in] x The convolution observable.
+-/// \param[in] sigma Width of the Gaussian.
+-/// \param[in] rlife Lifetime constant \f$ \tau \f$.
++/// \param[in] xIn The convolution observable.
++/// \param[in] _sigma Width of the Gaussian.
++/// \param[in] _rlife Lifetime constant \f$ \tau \f$.
+ /// \param[in] nlo Include next-to-leading order for higher accuracy of convolution.
+ /// \param[in] type Switch between normal and flipped model.
+ RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue& xIn,
+@@ -105,10 +105,10 @@ RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue
+ ///
+ /// \param[in] name Name of this instance.
+ /// \param[in] title Title (e.g. for plotting)
+-/// \param[in] x The convolution observable.
+-/// \param[in] sigma Width of the Gaussian.
+-/// \param[in] rlife Lifetime constant \f$ \tau \f$.
+-/// \param[in] srSF Scale factor for both sigma and tau.
++/// \param[in] xIn The convolution observable.
++/// \param[in] _sigma Width of the Gaussian.
++/// \param[in] _rlife Lifetime constant \f$ \tau \f$.
++/// \param[in] _rsSF Scale factor for both sigma and tau.
+ /// \param[in] nlo Include next-to-leading order for higher accuracy of convolution.
+ /// \param[in] type Switch between normal and flipped model.
+ RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue& xIn,
+@@ -134,11 +134,11 @@ RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue
+ ///
+ /// \param[in] name Name of this instance.
+ /// \param[in] title Title (e.g. for plotting)
+-/// \param[in] x The convolution observable.
+-/// \param[in] sigma Width of the Gaussian.
+-/// \param[in] rlife Lifetime constant \f$ \tau \f$.
+-/// \param[in] sigmaSF Scale factor for sigma.
+-/// \param[in] rlifeSF Scale factor for rlife.
++/// \param[in] xIn The convolution observable.
++/// \param[in] _sigma Width of the Gaussian.
++/// \param[in] _rlife Lifetime constant \f$ \tau \f$.
++/// \param[in] _sigmaSF Scale factor for sigma.
++/// \param[in] _rlifeSF Scale factor for rlife.
+ /// \param[in] nlo Include next-to-leading order for higher accuracy of convolution.
+ /// \param[in] type Switch between normal and flipped model.
+ RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue& xIn,
+diff --git a/roofit/roofit/src/RooGaussian.cxx b/roofit/roofit/src/RooGaussian.cxx
+index 9d18be7354..aec93528ba 100644
+--- a/roofit/roofit/src/RooGaussian.cxx
++++ b/roofit/roofit/src/RooGaussian.cxx
+@@ -92,7 +92,7 @@ void compute(RooSpan<double> output, Tx x, TMean mean, TSig sigma) {
+ /// and if found, the computation will be batched over their
+ /// values. If batch data are not found for one of the proxies, the proxies value is assumed to
+ /// be constant over the batch.
+-/// \param[in] batchIndex Index of the batch to be computed.
++/// \param[in] begin Index of the batch to be computed.
+ /// \param[in] batchSize Size of each batch. The last batch may be smaller.
+ /// \return A span with the computed values.
+
+diff --git a/roofit/roofit/src/RooJohnson.cxx b/roofit/roofit/src/RooJohnson.cxx
+index ba6686f698..1dd6de96b2 100644
+--- a/roofit/roofit/src/RooJohnson.cxx
++++ b/roofit/roofit/src/RooJohnson.cxx
+@@ -153,7 +153,7 @@ void compute(RooSpan<double> output, TMass mass, TMu mu, TLambda lambda, TGamma
+ /// and if found, the computation will be batched over their
+ /// values. If batch data are not found for one of the proxies, the proxies value is assumed to
+ /// be constant over the batch.
+-/// \param[in] batchIndex Index of the batch to be computed.
++/// \param[in] begin Index of the batch to be computed.
+ /// \param[in] maxSize Maximal size of the batches. May return smaller batches depending on inputs.
+ /// \return A span with the computed values.
+
+diff --git a/roofit/roofit/src/RooLandau.cxx b/roofit/roofit/src/RooLandau.cxx
+index e59a923cf0..2dade45b3a 100644
+--- a/roofit/roofit/src/RooLandau.cxx
++++ b/roofit/roofit/src/RooLandau.cxx
+@@ -169,7 +169,7 @@ void compute( size_t batchSize,
+ /// and if found, the computation will be batched over their
+ /// values. If batch data are not found for one of the proxies, the proxies value is assumed to
+ /// be constant over the batch.
+-/// \param[in] batchIndex Index of the batch to be computed.
++/// \param[in] begin Index of the batch to be computed.
+ /// \param[in] batchSize Size of each batch. The last batch may be smaller.
+ /// \return A span with the computed values.
+
+diff --git a/roofit/roofitcore/src/BatchData.cxx b/roofit/roofitcore/src/BatchData.cxx
+index fd05343076..5bbe34e20b 100644
+--- a/roofit/roofitcore/src/BatchData.cxx
++++ b/roofit/roofitcore/src/BatchData.cxx
+@@ -73,7 +73,7 @@ bool BatchData::setStatus(std::size_t begin, std::size_t size, Status_t stat,
+ /// Retrieve an existing batch.
+ ///
+ /// \param[in] begin Begin index of the batch.
+-/// \param[in] size Requested size. Batch may come out smaller than this.
++/// \param[in] maxSize Requested size. Batch may come out smaller than this.
+ /// \param[in] normSet Optional normSet pointer to distinguish differently normalised computations.
+ /// \param[in] ownerTag Optional owner tag. This avoids reusing batch memory for e.g. getVal() and getLogVal().
+ /// \return Non-mutable contiguous batch data.
+diff --git a/roofit/roofitcore/src/RooAbsPdf.cxx b/roofit/roofitcore/src/RooAbsPdf.cxx
+index 9f68b1cdb7..9e7eb69e09 100644
+--- a/roofit/roofitcore/src/RooAbsPdf.cxx
++++ b/roofit/roofitcore/src/RooAbsPdf.cxx
+@@ -711,7 +711,7 @@ bool checkInfNaNNeg(const T& inputs) {
+
+ ////////////////////////////////////////////////////////////////////////////////
+ /// Scan through outputs and fix+log all nans and negative values.
+-/// \param[in/out] outputs Array to be scanned & fixed.
++/// \param[in,out] outputs Array to be scanned & fixed.
+ /// \param[in] begin Begin of event range. Only needed to print the correct event number
+ /// where the error occurred.
+ void RooAbsPdf::logBatchComputationErrors(RooSpan<const double>& outputs, std::size_t begin) const {
+@@ -734,7 +734,7 @@ void RooAbsPdf::logBatchComputationErrors(RooSpan<const double>& outputs, std::s
+ /// Compute the log-likelihoods for all events in the requested batch.
+ /// The arguments are passed over to getValBatch().
+ /// \param[in] begin Start of the batch.
+-/// \param[in] size Maximum size of the batch. Depending on data layout and memory, the batch
++/// \param[in] maxSize Maximum size of the batch. Depending on data layout and memory, the batch
+ /// may come back smaller.
+ /// \return Returns a batch of doubles that contains the log probabilities.
+ RooSpan<const double> RooAbsPdf::getLogValBatch(std::size_t begin, std::size_t maxSize,
+diff --git a/roofit/roofitcore/src/RooAbsReal.cxx b/roofit/roofitcore/src/RooAbsReal.cxx
+index 2d2ceeaf2d..6cac5f5897 100644
+--- a/roofit/roofitcore/src/RooAbsReal.cxx
++++ b/roofit/roofitcore/src/RooAbsReal.cxx
+@@ -4294,7 +4294,7 @@ RooAbsMoment* RooAbsReal::moment(RooRealVar& obs, Int_t order, Bool_t central, B
+ /// \param[in] order Order of the moment
+ /// \param[in] central If true, the central moment is given by \f$ \langle (x- \langle x \rangle )^2 \rangle \f$
+ /// \param[in] takeRoot Calculate the square root
+-/// \param[in] intNormOb If true, the moment of the function integrated over all normalization observables is returned.
++/// \param[in] intNormObs If true, the moment of the function integrated over all normalization observables is returned.
+
+ RooAbsMoment* RooAbsReal::moment(RooRealVar& obs, const RooArgSet& normObs, Int_t order, Bool_t central, Bool_t takeRoot, Bool_t intNormObs)
+ {
+diff --git a/roofit/roofitcore/src/RooCustomizer.cxx b/roofit/roofitcore/src/RooCustomizer.cxx
+index 97d6d3176c..818991873d 100644
+--- a/roofit/roofitcore/src/RooCustomizer.cxx
++++ b/roofit/roofitcore/src/RooCustomizer.cxx
+@@ -198,7 +198,7 @@ static Int_t init()
+ /// replaceArg() and splitArg() functionality.
+ /// \param[in] pdf Proto PDF to be customised.
+ /// \param[in] masterCat Category to be used for splitting.
+-/// \param[in/out] splitLeafs All nodes created in
++/// \param[in,out] splitLeafs All nodes created in
+ /// the customisation process are added to this set.
+ /// The user can provide nodes that are *taken*
+ /// from the set if they have a name that matches `<parameterNameToBeReplaced>_<category>`.
+@@ -209,7 +209,7 @@ static Int_t init()
+ /// auto yield1 = new RooFormulaVar("yieldSig_BBG1m2T","sigy1","M/3.360779",mass);
+ /// customisedLeafs.addOwned(*yield1);
+ /// ```
+-/// \param[in/out] splitLeafsAll All leafs that are used when customising are collected here.
++/// \param[in,out] splitLeafsAll All leafs that are used when customising are collected here.
+ /// If this set already contains leaves, they will be used for customising if the names match
+ /// as above.
+ ///
+diff --git a/roofit/roofitcore/src/RooDataHist.cxx b/roofit/roofitcore/src/RooDataHist.cxx
+index 1c8b517b0d..8c90dd0ade 100644
+--- a/roofit/roofitcore/src/RooDataHist.cxx
++++ b/roofit/roofitcore/src/RooDataHist.cxx
+@@ -632,8 +632,8 @@ void RooDataHist::_adjustBinning(RooRealVar &theirVar, const TAxis &axis,
+ /// observable to binning in given reference TH1. Used by constructors
+ /// that import data from an external TH1.
+ /// Both the variables in vars and in this RooDataHist are adjusted.
+-/// @param List with variables that are supposed to have their binning adjusted.
+-/// @param Reference histogram that dictates the binning
++/// @param vars List with variables that are supposed to have their binning adjusted.
++/// @param href Reference histogram that dictates the binning
+ /// @param offset If not nullptr, a possible bin count offset for the axes x,y,z is saved here as Int_t[3]
+
+ void RooDataHist::adjustBinning(const RooArgList& vars, const TH1& href, Int_t* offset)
+diff --git a/roofit/roofitcore/src/RooDataSet.cxx b/roofit/roofitcore/src/RooDataSet.cxx
+index 1e54dfbde0..f03ec78a0d 100644
+--- a/roofit/roofitcore/src/RooDataSet.cxx
++++ b/roofit/roofitcore/src/RooDataSet.cxx
+@@ -765,7 +765,7 @@ RooDataSet::RooDataSet(const char *name, const char *title, TTree *theTree,
+ ///
+ /// \param[in] name Name of this dataset.
+ /// \param[in] title Title for e.g. plotting.
+-/// \param[in] tree Tree to be imported.
++/// \param[in] theTree Tree to be imported.
+ /// \param[in] vars Defines the columns of the data set. For each dimension
+ /// specified, the TTree must have a branch with the same name. For category
+ /// branches, this branch should contain the numeric index value. Real dimensions
+@@ -1205,11 +1205,11 @@ void RooDataSet::add(const RooArgSet& data, Double_t wgt, Double_t wgtError)
+ ////////////////////////////////////////////////////////////////////////////////
+ /// Add a data point, with its coordinates specified in the 'data' argset, to the data set.
+ /// Any variables present in 'data' but not in the dataset will be silently ignored.
+-/// \param[in] data Data point.
+-/// \param[in] wgt Event weight. The current value of the weight variable is ignored.
++/// \param[in] indata Data point.
++/// \param[in] inweight Event weight. The current value of the weight variable is ignored.
+ /// \note To obtain weighted events, a variable must be designated `WeightVar` in the constructor.
+-/// \param[in] wgtErrorLo Asymmetric weight error.
+-/// \param[in] wgtErrorHi Asymmetric weight error.
++/// \param[in] weightErrorLo Asymmetric weight error.
++/// \param[in] weightErrorHi Asymmetric weight error.
+ /// \note This requires including the weight variable in the set of `StoreAsymError` variables when constructing
+ /// the dataset.
+
+diff --git a/roofit/roofitcore/src/RooFormulaVar.cxx b/roofit/roofitcore/src/RooFormulaVar.cxx
+index 90ee32d619..947c505598 100644
+--- a/roofit/roofitcore/src/RooFormulaVar.cxx
++++ b/roofit/roofitcore/src/RooFormulaVar.cxx
+@@ -66,7 +66,7 @@ ClassImp(RooFormulaVar);
+ /// Constructor with formula expression and list of input variables.
+ /// \param[in] name Name of the formula.
+ /// \param[in] title Title of the formula.
+-/// \param[in] formula Expression to be evaluated.
++/// \param[in] inFormula Expression to be evaluated.
+ /// \param[in] dependents Variables that should be passed to the formula.
+ /// \param[in] checkVariables Check that all variables from `dependents` are used in the expression.
+ RooFormulaVar::RooFormulaVar(const char *name, const char *title, const char* inFormula, const RooArgList& dependents,
+diff --git a/roofit/roofitcore/src/RooSuperCategory.cxx b/roofit/roofitcore/src/RooSuperCategory.cxx
+index 4c0b705e50..e5668ffb98 100644
+--- a/roofit/roofitcore/src/RooSuperCategory.cxx
++++ b/roofit/roofitcore/src/RooSuperCategory.cxx
+@@ -54,7 +54,7 @@ RooSuperCategory::RooSuperCategory() :
+ /// Construct a super category from other categories.
+ /// \param[in] name Name of this object
+ /// \param[in] title Title (for e.g. printing)
+-/// \param[in] inputCatList RooArgSet with category objects. These all need to derive from RooAbsCategoryLValue, *i.e.*
++/// \param[in] inputCategories RooArgSet with category objects. These all need to derive from RooAbsCategoryLValue, *i.e.*
+ /// one needs to be able to assign to them.
+ RooSuperCategory::RooSuperCategory(const char *name, const char *title, const RooArgSet& inputCategories) :
+ RooAbsCategoryLValue(name, title),
+diff --git a/roofit/roofitmore/src/RooHypatia2.cxx b/roofit/roofitmore/src/RooHypatia2.cxx
+index 691aa6073d..7d550b2753 100644
+--- a/roofit/roofitmore/src/RooHypatia2.cxx
++++ b/roofit/roofitmore/src/RooHypatia2.cxx
+@@ -119,21 +119,21 @@
+ /// \param[in] a2 Start of right tail.
+ /// \param[in] n2 Shape parameter of right tail (\f$ n2 \ge 0 \f$). With \f$ n2 = 0 \f$, the function is constant.
+ RooHypatia2::RooHypatia2(const char *name, const char *title, RooAbsReal& x, RooAbsReal& lambda,
+- RooAbsReal& zeta, RooAbsReal& beta, RooAbsReal& sigm, RooAbsReal& mu, RooAbsReal& a,
++ RooAbsReal& zeta, RooAbsReal& beta, RooAbsReal& sigma, RooAbsReal& mu, RooAbsReal& a,
+ RooAbsReal& n, RooAbsReal& a2, RooAbsReal& n2) :
+ RooAbsPdf(name, title),
+ _x("x", "x", this, x),
+ _lambda("lambda", "Lambda", this, lambda),
+ _zeta("zeta", "zeta", this, zeta),
+ _beta("beta", "Asymmetry parameter beta", this, beta),
+- _sigma("sigma", "Width parameter sigma", this, sigm),
++ _sigma("sigma", "Width parameter sigma", this, sigma),
+ _mu("mu", "Location parameter mu", this, mu),
+ _a("a", "Left tail location a", this, a),
+ _n("n", "Left tail parameter n", this, n),
+ _a2("a2", "Right tail location a2", this, a2),
+ _n2("n2", "Right tail parameter n2", this, n2)
+ {
+- RooHelpers::checkRangeOfParameters(this, {&sigm}, 0.);
++ RooHelpers::checkRangeOfParameters(this, {&sigma}, 0.);
+ RooHelpers::checkRangeOfParameters(this, {&zeta, &n, &n2, &a, &a2}, 0., std::numeric_limits<double>::max(), true);
+ if (zeta.getVal() == 0. && zeta.isConstant()) {
+ RooHelpers::checkRangeOfParameters(this, {&lambda}, -std::numeric_limits<double>::max(), 0., false,
+diff --git a/tmva/tmva/inc/TMVA/BDTEventWrapper.h b/tmva/tmva/inc/TMVA/BDTEventWrapper.h
+index 7d4c4f8dd6..2c99341dd9 100644
+--- a/tmva/tmva/inc/TMVA/BDTEventWrapper.h
++++ b/tmva/tmva/inc/TMVA/BDTEventWrapper.h
+@@ -40,14 +40,14 @@ namespace TMVA {
+
+ // Set the accumulated weight, for sorted signal/background events
+ /**
+- * @param fType - true for signal, false for background
++ * @param type - true for signal, false for background
+ * @param weight - the total weight
+ */
+ void SetCumulativeWeight( Bool_t type, Double_t weight );
+
+ // Get the accumulated weight
+ /**
+- * @param fType - true for signal, false for background
++ * @param type - true for signal, false for background
+ * @return the cumulative weight for sorted signal/background events
+ */
+ Double_t GetCumulativeWeight( Bool_t type ) const;
+diff --git a/tmva/tmva/inc/TMVA/NeuralNet.h b/tmva/tmva/inc/TMVA/NeuralNet.h
+index bae98a48b2..a11b543b59 100644
+--- a/tmva/tmva/inc/TMVA/NeuralNet.h
++++ b/tmva/tmva/inc/TMVA/NeuralNet.h
+@@ -478,10 +478,8 @@ namespace TMVA
+ * \param size size of the layer
+ * \param itWeightBegin indicates the start of the weights for this layer on the weight vector
+ * \param itGradientBegin indicates the start of the gradients for this layer on the gradient vector
+- * \param itFunctionBegin indicates the start of the vector of activation functions for this layer on the
+- * activation function vector
+- * \param itInverseFunctionBegin indicates the start of the vector of activation functions for this
+- * layer on the activation function vector
++ * \param activationFunction indicates activation functions for this layer
++ * \param inverseActivationFunction indicates the inverse activation functions for this layer
+ * \param eModeOutput indicates a potential tranformation of the output values before further computation
+ * DIRECT does not further transformation; SIGMOID applies a sigmoid transformation to each
+ * output value (to create a probability); SOFTMAX applies a softmax transformation to all
+@@ -500,8 +498,7 @@ namespace TMVA
+ *
+ * \param size size of the layer
+ * \param itWeightBegin indicates the start of the weights for this layer on the weight vector
+- * \param itFunctionBegin indicates the start of the vector of activation functions for this layer on the
+- * activation function vector
++ * \param activationFunction indicates the activation function for this layer
+ * \param eModeOutput indicates a potential tranformation of the output values before further computation
+ * DIRECT does not further transformation; SIGMOID applies a sigmoid transformation to each
+ * output value (to create a probability); SOFTMAX applies a softmax transformation to all
+@@ -679,9 +676,6 @@ namespace TMVA
+ /*! \brief c'tor for defining a Layer
+ *
+ *
+- * \param itInputBegin indicates the start of the input node vector
+- * \param itInputEnd indicates the end of the input node vector
+- *
+ */
+ Layer (size_t numNodes, EnumFunction activationFunction, ModeOutputValues eModeOutputValues = ModeOutputValues::DIRECT);
+
+@@ -1141,7 +1135,7 @@ namespace TMVA
+
+ /*! \brief executes one training cycle
+ *
+- * \param minimizier the minimizer to be used
++ * \param minimizer the minimizer to be used
+ * \param weights the weight vector to be used
+ * \param itPatternBegin the pattern to be trained with
+ * \param itPatternEnd the pattern to be trainied with
+diff --git a/tmva/tmva/inc/TMVA/NeuralNet.icc b/tmva/tmva/inc/TMVA/NeuralNet.icc
+index 95cad21e26..e511e49d43 100644
+--- a/tmva/tmva/inc/TMVA/NeuralNet.icc
++++ b/tmva/tmva/inc/TMVA/NeuralNet.icc
+@@ -933,7 +933,7 @@ template <typename LAYERDATA>
+ * \param minimizer the minimizer to be used (e.g. SGD)
+ * \param weights the weight container with all the synapse weights
+ * \param itPatternBegin begin of the pattern container
+- * \parama itPatternEnd the end of the pattern container
++ * \param itPatternEnd the end of the pattern container
+ * \param settings the settings for this training (e.g. multithreading or not, regularization, etc.)
+ * \param dropContainer the data for dropping-out nodes (regularization technique)
+ */
+diff --git a/tmva/tmva/inc/TMVA/RTensor.hxx b/tmva/tmva/inc/TMVA/RTensor.hxx
+index c131384ae2..7d9773b457 100644
+--- a/tmva/tmva/inc/TMVA/RTensor.hxx
++++ b/tmva/tmva/inc/TMVA/RTensor.hxx
+@@ -73,7 +73,7 @@ inline std::vector<std::size_t> ComputeStridesFromShape(const T &shape, MemoryLa
+ }
+
+ /// \brief Compute indices from global index
+-/// \param[in] Shape vector
++/// \param[in] shape Shape vector
+ /// \param[in] idx Global index
+ /// \param[in] layout Memory layout
+ /// \return Indice vector
+diff --git a/tmva/tmva/inc/TMVA/TreeInference/BranchlessTree.hxx b/tmva/tmva/inc/TMVA/TreeInference/BranchlessTree.hxx
+index 4ac460be64..a1c6fdf773 100644
+--- a/tmva/tmva/inc/TMVA/TreeInference/BranchlessTree.hxx
++++ b/tmva/tmva/inc/TMVA/TreeInference/BranchlessTree.hxx
+@@ -72,7 +72,7 @@ struct BranchlessTree {
+ /// Perform inference on a single input vector
+ /// \param[in] input Pointer to data containing the input values
+ /// \param[in] stride Stride to go from one input variable to the next one
+-/// \param[out] Tree score, result of the inference
++/// \return Tree score, result of the inference
+ template <typename T>
+ inline T BranchlessTree<T>::Inference(const T *input, const int stride)
+ {
+@@ -105,7 +105,7 @@ inline void BranchlessTree<T>::FillSparse()
+ ///
+ /// \param[in] funcName Name of the function
+ /// \param[in] typeName Name of the type used for the computation
+-/// \param[out] Code of the inference function as string
++/// \return Code of the inference function as string
+ template <typename T>
+ inline std::string BranchlessTree<T>::GetInferenceCode(const std::string& funcName, const std::string& typeName)
+ {
+diff --git a/tmva/tmva/inc/TMVA/TreeInference/Forest.hxx b/tmva/tmva/inc/TMVA/TreeInference/Forest.hxx
+index 70d1e3eb68..18b385a8e0 100644
+--- a/tmva/tmva/inc/TMVA/TreeInference/Forest.hxx
++++ b/tmva/tmva/inc/TMVA/TreeInference/Forest.hxx
+@@ -195,7 +195,7 @@ struct BranchlessJittedForest : public ForestBase<T, std::function<void (const T
+ /// \param[in] filename Filename of the ROOT file
+ /// \param[in] output Load trees corresponding to the given output node of the forest
+ /// \param[in] sortTrees Flag to indicate sorting the input trees by the cut value of the first node of each tree
+-/// \param[out] Return jitted code as string
++/// \return Return jitted code as string
+ template <typename T>
+ inline std::string
+ BranchlessJittedForest<T>::Load(const std::string &key, const std::string &filename, const int output, const bool sortTrees)
+diff --git a/tmva/tmva/src/BDTEventWrapper.cxx b/tmva/tmva/src/BDTEventWrapper.cxx
+index 63171c886b..9702660936 100644
+--- a/tmva/tmva/src/BDTEventWrapper.cxx
++++ b/tmva/tmva/src/BDTEventWrapper.cxx
+@@ -48,7 +48,7 @@ BDTEventWrapper::~BDTEventWrapper() {
+ ////////////////////////////////////////////////////////////////////////////////
+ /// Set the accumulated weight, for sorted signal/background events
+ ///
+-/// @param fType - true for signal, false for background
++/// @param type - true for signal, false for background
+ /// @param weight - the total weight
+
+ void BDTEventWrapper::SetCumulativeWeight(Bool_t type, Double_t weight) {
+diff --git a/tmva/tmva/src/CrossValidation.cxx b/tmva/tmva/src/CrossValidation.cxx
+index 453927c5b7..58bd9130d1 100644
+--- a/tmva/tmva/src/CrossValidation.cxx
++++ b/tmva/tmva/src/CrossValidation.cxx
+@@ -99,7 +99,7 @@ TMultiGraph *TMVA::CrossValidationResult::GetROCCurves(Bool_t /*fLegend*/)
+ ///
+ /// \note You own the returned pointer.
+ ///
+-/// \param numSamples[in] Number of samples used for generating the average ROC
++/// \param[in] numSamples Number of samples used for generating the average ROC
+ /// Curve. Avg. curve will be evaluated only at these
+ /// points (using interpolation if necessary).
+ ///
+diff --git a/tmva/tmva/src/CvSplit.cxx b/tmva/tmva/src/CvSplit.cxx
+index d6d44ac1cc..9eedcf3d72 100644
+--- a/tmva/tmva/src/CvSplit.cxx
++++ b/tmva/tmva/src/CvSplit.cxx
+@@ -227,15 +227,15 @@ UInt_t TMVA::CvSplitKFoldsExpr::GetSpectatorIndexForName(DataSetInfo &dsi, TStri
+
+ ////////////////////////////////////////////////////////////////////////////////
+ /// \brief Splits a dataset into k folds, ready for use in cross validation.
+-/// \param numFolds[in] Number of folds to split data into
+-/// \param stratified[in] If true, use stratified splitting, balancing the
++/// \param[in] numFolds Number of folds to split data into
++/// \param[in] stratified If true, use stratified splitting, balancing the
+ /// number of events across classes and folds. If false,
+ /// no such balancing is done. For
+-/// \param splitExpr[in] Expression used to split data into folds. If `""` a
++/// \param[in] splitExpr Expression used to split data into folds. If `""` a
+ /// random assignment will be done. Otherwise the
+ /// expression is fed into a TFormula and evaluated per
+ /// event. The resulting value is the the fold assignment.
+-/// \param seed[in] Used only when using random splitting (i.e. when
++/// \param[in] seed Used only when using random splitting (i.e. when
+ /// `splitExpr` is `""`). Seed is used to initialise the random
+ /// number generator when assigning events to folds.
+ ///
+@@ -282,9 +282,9 @@ void TMVA::CvSplitKFolds::MakeKFoldDataSet(DataSetInfo &dsi)
+
+ ////////////////////////////////////////////////////////////////////////////////
+ /// \brief Generates a vector of fold assignments
+-/// \param nEntires[in] Number of events in range
+-/// \param numFolds[in] Number of folds to split data into
+-/// \param seed[in] Random seed
++/// \param[in] nEntries Number of events in range
++/// \param[in] numFolds Number of folds to split data into
++/// \param[in] seed Random seed
+ ///
+ /// Randomly assigns events to `numFolds` folds. Each fold will hold at most
+ /// `nEntries / numFolds + 1` events.
+@@ -311,8 +311,8 @@ std::vector<UInt_t> TMVA::CvSplitKFolds::GetEventIndexToFoldMapping(UInt_t nEntr
+
+ ////////////////////////////////////////////////////////////////////////////////
+ /// \brief Split sets for into k-folds
+-/// \param oldSet[in] Original, unsplit, events
+-/// \param numFolds[in] Number of folds to split data into
++/// \param[in] oldSet Original, unsplit, events
++/// \param[in] numFolds Number of folds to split data into
+ ///
+
+ std::vector<std::vector<TMVA::Event *>>
+diff --git a/tmva/tmva/src/Envelope.cxx b/tmva/tmva/src/Envelope.cxx
+index 5fab98c13b..8a0c6b23f4 100644
+--- a/tmva/tmva/src/Envelope.cxx
++++ b/tmva/tmva/src/Envelope.cxx
+@@ -37,8 +37,8 @@ this is a generic one protected.
+ \param file optional file to save the results.
+ \param options extra options for the algorithm.
+ */
+-Envelope::Envelope(const TString &name, DataLoader *dalaloader, TFile *file, const TString options)
+- : Configurable(options), fDataLoader(dalaloader), fFile(file), fModelPersistence(kTRUE), fVerbose(kFALSE),
++Envelope::Envelope(const TString &name, DataLoader *dataloader, TFile *file, const TString options)
++ : Configurable(options), fDataLoader(dataloader), fFile(file), fModelPersistence(kTRUE), fVerbose(kFALSE),
+ fTransformations("I"), fSilentFile(kFALSE), fJobs(1)
+ {
+ SetName(name.Data());
+@@ -120,7 +120,7 @@ DataLoader *Envelope::GetDataLoader(){ return fDataLoader.get();}
+ //_______________________________________________________________________
+ /**
+ Method to set the pointer to TMVA::DataLoader object.
+-\param dalaloader pointer to TMVA::DataLoader object.
++\param dataloader pointer to TMVA::DataLoader object.
+ */
+
+ void Envelope::SetDataLoader(DataLoader *dataloader)
+@@ -146,7 +146,7 @@ void TMVA::Envelope::SetModelPersistence(Bool_t status){fModelPersistence=status
+ /**
+ Method to book the machine learning method to perform the algorithm.
+ \param method enum TMVA::Types::EMVA with the type of the mva method
+-\param methodtitle String with the method title.
++\param methodTitle String with the method title.
+ \param options String with the options for the method.
+ */
+ void TMVA::Envelope::BookMethod(Types::EMVA method, TString methodTitle, TString options){
+@@ -156,8 +156,8 @@ void TMVA::Envelope::BookMethod(Types::EMVA method, TString methodTitle, TString
+ //_______________________________________________________________________
+ /**
+ Method to book the machine learning method to perform the algorithm.
+-\param methodname String with the name of the mva method
+-\param methodtitle String with the method title.
++\param methodName String with the name of the mva method
++\param methodTitle String with the method title.
+ \param options String with the options for the method.
+ */
+ void TMVA::Envelope::BookMethod(TString methodName, TString methodTitle, TString options){
+diff --git a/tree/dataframe/inc/ROOT/RDF/RInterface.hxx b/tree/dataframe/inc/ROOT/RDF/RInterface.hxx
+index b5e39251a8..da09c0be3c 100644
+--- a/tree/dataframe/inc/ROOT/RDF/RInterface.hxx
++++ b/tree/dataframe/inc/ROOT/RDF/RInterface.hxx
+@@ -568,7 +568,7 @@ public:
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Save selected columns in memory
+ /// \tparam ColumnTypes variadic list of branch/column types.
+- /// \param[in] columns to be cached in memory.
++ /// \param[in] columnList columns to be cached in memory.
+ /// \return a `RDataFrame` that wraps the cached dataset.
+ ///
+ /// This action returns a new `RDataFrame` object, completely detached from
+@@ -603,7 +603,7 @@ public:
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Save selected columns in memory
+- /// \param[in] columns to be cached in memory
++ /// \param[in] columnList columns to be cached in memory
+ /// \return a `RDataFrame` that wraps the cached dataset.
+ ///
+ /// See the previous overloads for more information.
+@@ -660,7 +660,7 @@ public:
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Save selected columns in memory
+- /// \param[in] columns to be cached in memory.
++ /// \param[in] columnList columns to be cached in memory.
+ /// \return a `RDataFrame` that wraps the cached dataset.
+ ///
+ /// See the previous overloads for more information.
+@@ -1528,13 +1528,13 @@ public:
+ /// ~~~
+ ///
+ template <typename T>
+- RResultPtr<T> Fill(T &&model, const ColumnNames_t &bl)
++ RResultPtr<T> Fill(T &&model, const ColumnNames_t &columnList)
+ {
+ auto h = std::make_shared<T>(std::forward<T>(model));
+ if (!RDFInternal::HistoUtils<T>::HasAxisLimits(*h)) {
+ throw std::runtime_error("The absence of axes limits is not supported yet.");
+ }
+- return CreateAction<RDFInternal::ActionTags::Fill, RDFDetail::RInferredType>(bl, h, bl.size());
++ return CreateAction<RDFInternal::ActionTags::Fill, RDFDetail::RInferredType>(columnList, h, columnList.size());
+ }
+
+ ////////////////////////////////////////////////////////////////////////////
+@@ -2134,7 +2134,7 @@ public:
+ /// \brief Provides a representation of the columns in the dataset
+ /// \tparam ColumnTypes variadic list of branch/column types.
+ /// \param[in] columnList Names of the columns to be displayed.
+- /// \param[in] rows Number of events for each column to be displayed.
++ /// \param[in] nRows Number of events for each column to be displayed.
+ /// \return the `RDisplay` instance wrapped in a `RResultPtr`.
+ ///
+ /// This function returns a `RResultPtr<RDisplay>` containing all the entries to be displayed, organized in a tabular
+@@ -2165,7 +2165,7 @@ public:
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Provides a representation of the columns in the dataset
+ /// \param[in] columnList Names of the columns to be displayed.
+- /// \param[in] rows Number of events for each column to be displayed.
++ /// \param[in] nRows Number of events for each column to be displayed.
+ /// \return the `RDisplay` instance wrapped in a `RResultPtr`.
+ ///
+ /// This overload automatically infers the column types.
+@@ -2181,7 +2181,7 @@ public:
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Provides a representation of the columns in the dataset
+ /// \param[in] columnNameRegexp A regular expression to select the columns.
+- /// \param[in] rows Number of events for each column to be displayed.
++ /// \param[in] nRows Number of events for each column to be displayed.
+ /// \return the `RDisplay` instance wrapped in a `RResultPtr`.
+ ///
+ /// The existing columns are matched against the regular expression. If the string provided
+diff --git a/tree/dataframe/inc/ROOT/RDFHelpers.hxx b/tree/dataframe/inc/ROOT/RDFHelpers.hxx
+index 2193e1772e..63a0f90cab 100644
+--- a/tree/dataframe/inc/ROOT/RDFHelpers.hxx
++++ b/tree/dataframe/inc/ROOT/RDFHelpers.hxx
+@@ -138,7 +138,7 @@ void SaveGraph(NodeType node, const std::string &outputFile)
+
+ // clang-format off
+ /// Cast a RDataFrame node to the common type ROOT::RDF::RNode
+-/// \param[in] Any node of a RDataFrame graph
++/// \param[in] node Any node of a RDataFrame graph
+ // clang-format on
+ template <typename NodeType>
+ RNode AsRNode(NodeType node)
+diff --git a/tree/dataframe/inc/ROOT/RDataSource.hxx b/tree/dataframe/inc/ROOT/RDataSource.hxx
+index f4af9abded..04f7dc850c 100644
+--- a/tree/dataframe/inc/ROOT/RDataSource.hxx
++++ b/tree/dataframe/inc/ROOT/RDataSource.hxx
+@@ -126,14 +126,14 @@ public:
+ virtual const std::vector<std::string> &GetColumnNames() const = 0;
+
+ /// \brief Checks if the dataset has a certain column
+- /// \param[in] columnName The name of the column
+- virtual bool HasColumn(std::string_view) const = 0;
++ /// \param[in] colName The name of the column
++ virtual bool HasColumn(std::string_view colName) const = 0;
+
+ // clang-format off
+ /// \brief Type of a column as a string, e.g. `GetTypeName("x") == "double"`. Required for jitting e.g. `df.Filter("x>0")`.
+- /// \param[in] columnName The name of the column
++ /// \param[in] colName The name of the column
+ // clang-format on
+- virtual std::string GetTypeName(std::string_view) const = 0;
++ virtual std::string GetTypeName(std::string_view colName) const = 0;
+
+ // clang-format off
+ /// Called at most once per column by RDF. Return vector of pointers to pointers to column values - one per slot.
+diff --git a/tree/dataframe/inc/ROOT/RResultPtr.hxx b/tree/dataframe/inc/ROOT/RResultPtr.hxx
+index 8358832b14..8acb2bfae6 100644
+--- a/tree/dataframe/inc/ROOT/RResultPtr.hxx
++++ b/tree/dataframe/inc/ROOT/RResultPtr.hxx
+@@ -262,7 +262,7 @@ public:
+ /// Register a callback that RDataFrame will execute in each worker thread concurrently on that thread's partial result.
+ ///
+ /// \param[in] everyNEvents Frequency at which the callback will be called by each thread, as a number of events processed
+- /// \param[in] a callable with signature `void(unsigned int, Value_t&)` where Value_t is the type of the value contained in this RResultPtr
++ /// \param[in] callback A callable with signature `void(unsigned int, Value_t&)` where Value_t is the type of the value contained in this RResultPtr
+ /// \return this RResultPtr, to allow chaining of OnPartialResultSlot with other calls
+ ///
+ /// See `OnPartialResult` for a generic explanation of the callback mechanism.
+diff --git a/tree/dataframe/src/RArrowDS.cxx b/tree/dataframe/src/RArrowDS.cxx
+index d9e2fae32f..0152b9a813 100644
+--- a/tree/dataframe/src/RArrowDS.cxx
++++ b/tree/dataframe/src/RArrowDS.cxx
+@@ -382,8 +382,8 @@ public:
+
+ ////////////////////////////////////////////////////////////////////////
+ /// Constructor to create an Arrow RDataSource for RDataFrame.
+-/// \param[in] table the arrow Table to observe.
+-/// \param[in] columns the name of the columns to use
++/// \param[in] inTable the arrow Table to observe.
++/// \param[in] inColumns the name of the columns to use
+ /// In case columns is empty, we use all the columns found in the table
+ RArrowDS::RArrowDS(std::shared_ptr<arrow::Table> inTable, std::vector<std::string> const &inColumns)
+ : fTable{inTable}, fColumnNames{inColumns}
+diff --git a/tree/tree/inc/TTree.h b/tree/tree/inc/TTree.h
+index 8560e28ab5..e95d4ce301 100644
+--- a/tree/tree/inc/TTree.h
++++ b/tree/tree/inc/TTree.h
+@@ -357,7 +357,7 @@ public:
+ /// possible, unless e.g. type conversions are needed.
+ ///
+ /// \param[in] name Name of the branch to be created.
+- /// \param[in] obj Array of the objects to be added. When calling Fill(), the current value of the type/object will be saved.
++ /// \param[in] addobj Array of the objects to be added. When calling Fill(), the current value of the type/object will be saved.
+ /// \param[in] bufsize he buffer size in bytes for this branch. When the buffer is full, it is compressed and written to disc.
+ /// The default value of 32000 bytes and should be ok for most simple types. Larger buffers (e.g. 256000) if your Tree is not split and each entry is large (Megabytes).
+ /// A small value for bufsize is beneficial if entries in the Tree are accessed randomly and the Tree is in split mode.
+diff --git a/tree/tree/src/TIOFeatures.cxx b/tree/tree/src/TIOFeatures.cxx
+index 681f2172bd..ca292fb30a 100644
+--- a/tree/tree/src/TIOFeatures.cxx
++++ b/tree/tree/src/TIOFeatures.cxx
+@@ -51,7 +51,7 @@ using namespace ROOT;
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Clear a specific IO feature from this set.
+-/// \param[in] enum_bits The specific feature to disable.
++/// \param[in] input_bits The specific feature to disable.
+ ///
+ /// Removes a feature from the `TIOFeatures` object; emits an Error message if
+ /// the IO feature is not supported by this version of ROOT.
+@@ -62,7 +62,7 @@ void TIOFeatures::Clear(Experimental::EIOFeatures input_bits)
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Clear a specific IO feature from this set.
+-/// \param[in] enum_bits The specific feature to disable.
++/// \param[in] input_bits The specific feature to disable.
+ ///
+ /// Removes a feature from the `TIOFeatures` object; emits an Error message if
+ /// the IO feature is not supported by this version of ROOT.
+@@ -73,7 +73,7 @@ void TIOFeatures::Clear(Experimental::EIOUnsupportedFeatures input_bits)
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Clear a specific IO feature from this set.
+-/// \param[in] enum_bits The specific feature to disable.
++/// \param[in] input_bits The specific feature to disable.
+ ///
+ /// Removes a feature from the `TIOFeatures` object; emits an Error message if
+ /// the IO feature is not supported by this version of ROOT.
+@@ -115,7 +115,7 @@ static std::string GetUnsupportedName(TBasket::EUnsupportedIOBits enum_flag)
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Set a specific IO feature.
+-/// \param[in] enum_bits The specific feature to enable.
++/// \param[in] input_bits The specific feature to enable.
+ ///
+ /// Sets a feature in the `TIOFeatures` object; emits an Error message if
+ /// the IO feature is not supported by this version of ROOT.
+@@ -129,7 +129,7 @@ bool TIOFeatures::Set(Experimental::EIOFeatures input_bits)
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Set a specific IO feature.
+-/// \param[in] enum_bits The specific feature to enable.
++/// \param[in] input_bits The specific feature to enable.
+ ///
+ /// Sets a feature in the `TIOFeatures` object; emits an Error message if
+ /// the IO feature is not supported by this version of ROOT.
+@@ -221,7 +221,7 @@ void TIOFeatures::Print() const
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Test to see if a given feature is set
+-/// \param[in] enum_bits The specific feature to test.
++/// \param[in] input_bits The specific feature to test.
+ ///
+ /// Returns kTRUE if the feature is enables in this object and supported by
+ /// this version of ROOT.
+@@ -232,7 +232,7 @@ bool TIOFeatures::Test(Experimental::EIOFeatures input_bits) const
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Test to see if a given feature is set
+-/// \param[in] enum_bits The specific feature to test.
++/// \param[in] input_bits The specific feature to test.
+ ///
+ /// Returns kTRUE if the feature is enables in this object and supported by
+ /// this version of ROOT.
+--
+2.26.2
+
diff --git a/root-epel7-ppc64le-pyroot.patch b/root-epel7-ppc64le-pyroot.patch
index d046855..4b4d314 100644
--- a/root-epel7-ppc64le-pyroot.patch
+++ b/root-epel7-ppc64le-pyroot.patch
@@ -1,73 +1,17 @@
-diff -ur root-6.20.02.orig/bindings/pyroot/src/Cppyy.cxx root-6.20.02/bindings/pyroot/src/Cppyy.cxx
---- root-6.20.02.orig/bindings/pyroot/src/Cppyy.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/Cppyy.cxx 2020-03-24 19:26:38.162272398 +0100
-@@ -74,10 +74,6 @@
- class ApplicationStarter {
- public:
- ApplicationStarter() {
-- // Insure ROOT's atexit is executed *after* the atexit that calls
-- // ApplicationStarter's destructor, by forcing the ROOT's atexit
-- // registration now.
-- TROOT::Initialize();
- // setup dummy holders for global and std namespaces
- assert( g_classrefs.size() == GLOBAL_HANDLE );
- g_name2classrefidx[ "" ] = GLOBAL_HANDLE;
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx 2020-03-24 19:26:38.182272186 +0100
-@@ -109,10 +109,6 @@
- class ApplicationStarter {
- public:
- ApplicationStarter() {
-- // Insure ROOT's atexit is executed *after* the atexit that calls
-- // ApplicationStarter's destructor, by forcing the ROOT's atexit
-- // registration now.
-- TROOT::Initialize();
- // setup dummy holders for global and std namespaces
- assert(g_classrefs.size() == GLOBAL_HANDLE);
- g_name2classrefidx[""] = GLOBAL_HANDLE;
-diff -ur root-6.20.02.orig/core/base/inc/TROOT.h root-6.20.02/core/base/inc/TROOT.h
---- root-6.20.02.orig/core/base/inc/TROOT.h 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/core/base/inc/TROOT.h 2020-03-24 19:26:38.182272186 +0100
-@@ -351,7 +351,6 @@
- static void SetMacroPath(const char *newpath);
- static Int_t IncreaseDirLevel();
- static void IndentLevel();
-- static void Initialize();
- static Bool_t Initialized();
- static Bool_t MemCheck();
- static void SetDirLevel(Int_t level = 0);
-diff -ur root-6.20.02.orig/core/base/src/TROOT.cxx root-6.20.02/core/base/src/TROOT.cxx
---- root-6.20.02.orig/core/base/src/TROOT.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/core/base/src/TROOT.cxx 2020-03-24 20:10:54.640084486 +0100
-@@ -1022,10 +1022,12 @@
- SafeDelete(fCleanups);
- #endif
+diff --git a/bindings/pyroot/pythonizations/python/ROOT/__init__.py b/bindings/pyroot/pythonizations/python/ROOT/__init__.py
+index 227f80765b..eb03251c28 100644
+--- a/bindings/pyroot/pythonizations/python/ROOT/__init__.py
++++ b/bindings/pyroot/pythonizations/python/ROOT/__init__.py
+@@ -25,6 +25,12 @@ environ['CPPYY_API_PATH'] = 'none'
+ # Prevent cppyy from filtering ROOT libraries
+ environ['CPPYY_NO_ROOT_FILTER'] = '1'
--#ifndef _MSC_VER
-- // deleting the interpreter makes things crash at exit in some cases
-- delete fInterpreter;
--#endif
-+ // llvm::TimingGroup used for measuring the timing relies the destructors.
-+ // In order to make use of this feature we have to call the destructor of
-+ // TCling which will shut down clang, cling and llvm.
-+ // gSystem->Getenv is not available anymore.
-+ if (::getenv("ROOT_CLING_TIMING"))
-+ delete fInterpreter;
++try:
++ from ctypes import cdll
++ libCore = cdll.LoadLibrary("libCore.so")
++except:
++ print("An exception occurred while loading libCore.so with ctypes")
++
+ import cppyy
- // Prints memory stats
- TStorage::PrintStatistics();
-@@ -2848,13 +2850,6 @@
- }
-
- ////////////////////////////////////////////////////////////////////////////////
--/// Initialize ROOT explicitly.
--
--void TROOT::Initialize() {
-- (void) gROOT;
--}
--
--////////////////////////////////////////////////////////////////////////////////
- /// Return kTRUE if the TROOT object has been initialized.
-
- Bool_t TROOT::Initialized()
+ # import libROOTPythonizations with Python version number
diff --git a/root-fix-bad-regex.patch b/root-fix-bad-regex.patch
new file mode 100644
index 0000000..e1e667e
--- /dev/null
+++ b/root-fix-bad-regex.patch
@@ -0,0 +1,25 @@
+From b7dc989f9a49ad31094331aa272859ff7480f943 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Thu, 9 Jul 2020 21:29:46 +0200
+Subject: [PATCH] Fix bad regex
+
+---
+ proof/proof/src/TProofMgr.cxx | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/proof/proof/src/TProofMgr.cxx b/proof/proof/src/TProofMgr.cxx
+index 2a140e4e7a..35c91b77ac 100644
+--- a/proof/proof/src/TProofMgr.cxx
++++ b/proof/proof/src/TProofMgr.cxx
+@@ -820,7 +820,7 @@ TFileCollection *TProofMgr::UploadFiles(TList *src,
+ if (dest && strlen(dest) > 0) {
+ TString dst(dest), dt;
+ Ssiz_t from = 0;
+- TRegexp re("<d+[0-9]>");
++ TRegexp re("<d[0-9]+>");
+ while (dst.Tokenize(dt, from, "/")) {
+ if (dt.Contains(re)) {
+ TParameter<Int_t> *pi = new TParameter<Int_t>(dt, -1);
+--
+2.26.2
+
diff --git a/root-fontconfig.patch b/root-fontconfig.patch
index 4f39a68..1b2e880 100644
--- a/root-fontconfig.patch
+++ b/root-fontconfig.patch
@@ -1,7 +1,7 @@
-diff -ur root-6.18.00.orig/core/base/src/TApplication.cxx root-6.18.00/core/base/src/TApplication.cxx
---- root-6.18.00.orig/core/base/src/TApplication.cxx 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/core/base/src/TApplication.cxx 2019-06-26 15:00:32.048047903 +0200
-@@ -267,18 +267,11 @@
+diff -ur root-6.22.00.orig/core/base/src/TApplication.cxx root-6.22.00/core/base/src/TApplication.cxx
+--- root-6.22.00.orig/core/base/src/TApplication.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/core/base/src/TApplication.cxx 2020-06-29 08:53:15.066085533 +0200
+@@ -264,18 +264,11 @@
LoadGraphicsLibs();
// Try to load TrueType font renderer. Only try to load if not in batch
@@ -22,7 +22,7 @@ diff -ur root-6.18.00.orig/core/base/src/TApplication.cxx root-6.18.00/core/base
if (gClassTable->GetDict("TGX11TTF")) {
// in principle we should not have linked anything against libGX11TTF
// but with ACLiC this can happen, initialize TGX11TTF by hand
-@@ -292,7 +285,6 @@
+@@ -289,7 +282,6 @@
}
}
#endif
@@ -30,10 +30,10 @@ diff -ur root-6.18.00.orig/core/base/src/TApplication.cxx root-6.18.00/core/base
// Create WM dependent application environment
if (fAppImp)
-diff -ur root-6.18.00.orig/graf2d/asimage/CMakeLists.txt root-6.18.00/graf2d/asimage/CMakeLists.txt
---- root-6.18.00.orig/graf2d/asimage/CMakeLists.txt 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf2d/asimage/CMakeLists.txt 2019-06-26 15:05:32.584912789 +0200
-@@ -26,6 +26,7 @@
+diff -ur root-6.22.00.orig/graf2d/asimage/CMakeLists.txt root-6.22.00/graf2d/asimage/CMakeLists.txt
+--- root-6.22.00.orig/graf2d/asimage/CMakeLists.txt 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf2d/asimage/CMakeLists.txt 2020-06-29 08:53:15.066085533 +0200
+@@ -30,6 +30,7 @@
${FREETYPE_LIBRARIES}
${X11_LIBRARIES}
ZLIB::ZLIB
@@ -41,10 +41,10 @@ diff -ur root-6.18.00.orig/graf2d/asimage/CMakeLists.txt root-6.18.00/graf2d/asi
DEPENDENCIES
Core
Graf
-diff -ur root-6.18.00.orig/graf2d/asimage/src/TASImage.cxx root-6.18.00/graf2d/asimage/src/TASImage.cxx
---- root-6.18.00.orig/graf2d/asimage/src/TASImage.cxx 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf2d/asimage/src/TASImage.cxx 2019-06-26 15:00:32.062047757 +0200
-@@ -110,6 +110,8 @@
+diff -ur root-6.22.00.orig/graf2d/asimage/src/TASImage.cxx root-6.22.00/graf2d/asimage/src/TASImage.cxx
+--- root-6.22.00.orig/graf2d/asimage/src/TASImage.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf2d/asimage/src/TASImage.cxx 2020-06-29 08:53:15.068085538 +0200
+@@ -111,6 +111,8 @@
# include <draw.h>
}
@@ -53,7 +53,7 @@ diff -ur root-6.18.00.orig/graf2d/asimage/src/TASImage.cxx root-6.18.00/graf2d/a
// auxiliary functions for general polygon filling
#include "TASPolyUtils.c"
-@@ -2593,14 +2595,120 @@
+@@ -2594,14 +2596,120 @@
TString fn = font_name;
fn.Strip();
@@ -181,7 +181,7 @@ diff -ur root-6.18.00.orig/graf2d/asimage/src/TASImage.cxx root-6.18.00/graf2d/a
if (fn.EndsWith(".pfa") || fn.EndsWith(".PFA") || fn.EndsWith(".pfb") || fn.EndsWith(".PFB") || fn.EndsWith(".ttf") || fn.EndsWith(".TTF") || fn.EndsWith(".otf") || fn.EndsWith(".OTF")) {
ttfont = kTRUE;
-@@ -2624,14 +2732,11 @@
+@@ -2625,14 +2733,11 @@
return;
}
@@ -199,10 +199,10 @@ diff -ur root-6.18.00.orig/graf2d/asimage/src/TASImage.cxx root-6.18.00/graf2d/a
}
get_text_size(text, font, (ASText3DType)type, &width, &height);
-diff -ur root-6.18.00.orig/graf2d/graf/CMakeLists.txt root-6.18.00/graf2d/graf/CMakeLists.txt
---- root-6.18.00.orig/graf2d/graf/CMakeLists.txt 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf2d/graf/CMakeLists.txt 2019-06-26 15:03:42.153064782 +0200
-@@ -87,6 +87,7 @@
+diff -ur root-6.22.00.orig/graf2d/graf/CMakeLists.txt root-6.22.00/graf2d/graf/CMakeLists.txt
+--- root-6.22.00.orig/graf2d/graf/CMakeLists.txt 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf2d/graf/CMakeLists.txt 2020-06-29 08:53:15.068085538 +0200
+@@ -91,6 +91,7 @@
${FREETYPE_LIBRARIES}
ZLIB::ZLIB
mathtext
@@ -210,9 +210,9 @@ diff -ur root-6.18.00.orig/graf2d/graf/CMakeLists.txt root-6.18.00/graf2d/graf/C
DEPENDENCIES
Hist
Matrix
-diff -ur root-6.18.00.orig/graf2d/graf/inc/TTF.h root-6.18.00/graf2d/graf/inc/TTF.h
---- root-6.18.00.orig/graf2d/graf/inc/TTF.h 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf2d/graf/inc/TTF.h 2019-06-26 15:00:32.063047746 +0200
+diff -ur root-6.22.00.orig/graf2d/graf/inc/TTF.h root-6.22.00/graf2d/graf/inc/TTF.h
+--- root-6.22.00.orig/graf2d/graf/inc/TTF.h 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf2d/graf/inc/TTF.h 2020-06-29 08:53:15.068085538 +0200
@@ -76,9 +76,8 @@
static FT_BBox fgCBox; ///< string control box
static FT_CharMap fgCharMap[kTTMaxFonts]; ///< font character map
@@ -224,9 +224,9 @@ diff -ur root-6.18.00.orig/graf2d/graf/inc/TTF.h root-6.18.00/graf2d/graf/inc/TT
static FT_Face fgFace[kTTMaxFonts]; ///< font face
static TTF::TTGlyph fgGlyphs[kMaxGlyphs]; ///< glyphs
static Bool_t fgHinting; ///< use hinting (true by default)
-diff -ur root-6.18.00.orig/graf2d/graf/src/TTF.cxx root-6.18.00/graf2d/graf/src/TTF.cxx
---- root-6.18.00.orig/graf2d/graf/src/TTF.cxx 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf2d/graf/src/TTF.cxx 2019-06-26 15:00:32.064047736 +0200
+diff -ur root-6.22.00.orig/graf2d/graf/src/TTF.cxx root-6.22.00/graf2d/graf/src/TTF.cxx
+--- root-6.22.00.orig/graf2d/graf/src/TTF.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf2d/graf/src/TTF.cxx 2020-06-29 08:53:15.086085582 +0200
@@ -25,6 +25,8 @@
#include "TMath.h"
#include "TError.h"
@@ -787,10 +787,10 @@ diff -ur root-6.18.00.orig/graf2d/graf/src/TTF.cxx root-6.18.00/graf2d/graf/src/
}
////////////////////////////////////////////////////////////////////////////////
-diff -ur root-6.18.00.orig/graf2d/postscript/CMakeLists.txt root-6.18.00/graf2d/postscript/CMakeLists.txt
---- root-6.18.00.orig/graf2d/postscript/CMakeLists.txt 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf2d/postscript/CMakeLists.txt 2019-06-26 15:06:11.017511871 +0200
-@@ -21,6 +21,7 @@
+diff -ur root-6.22.00.orig/graf2d/postscript/CMakeLists.txt root-6.22.00/graf2d/postscript/CMakeLists.txt
+--- root-6.22.00.orig/graf2d/postscript/CMakeLists.txt 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf2d/postscript/CMakeLists.txt 2020-06-29 08:53:15.086085582 +0200
+@@ -27,6 +27,7 @@
LIBRARIES
ZLIB::ZLIB
mathtext
@@ -798,10 +798,10 @@ diff -ur root-6.18.00.orig/graf2d/postscript/CMakeLists.txt root-6.18.00/graf2d/
DEPENDENCIES
Graf
)
-diff -ur root-6.18.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.18.00/graf2d/postscript/src/TPostScript.cxx
---- root-6.18.00.orig/graf2d/postscript/src/TPostScript.cxx 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf2d/postscript/src/TPostScript.cxx 2019-06-26 15:00:32.065047726 +0200
-@@ -229,6 +229,7 @@
+diff -ur root-6.22.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.22.00/graf2d/postscript/src/TPostScript.cxx
+--- root-6.22.00.orig/graf2d/postscript/src/TPostScript.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf2d/postscript/src/TPostScript.cxx 2020-06-29 08:53:15.087085585 +0200
+@@ -233,6 +233,7 @@
#include <string.h>
#include <ctype.h>
#include <wchar.h>
@@ -809,7 +809,7 @@ diff -ur root-6.18.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.18.00/gr
#include "Riostream.h"
#include "Byteswap.h"
-@@ -1575,56 +1576,179 @@
+@@ -1583,56 +1584,179 @@
void TPostScript::FontEmbed(void)
{
@@ -1034,7 +1034,7 @@ diff -ur root-6.18.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.18.00/gr
} else {
if (FontEmbedType2(ttfont)) {
// nothing
-@@ -1633,9 +1757,8 @@
+@@ -1641,9 +1765,8 @@
} else if(FontEmbedType42(ttfont)) {
// nothing
} else {
@@ -1046,7 +1046,7 @@ diff -ur root-6.18.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.18.00/gr
}
delete [] ttfont;
}
-@@ -2803,10 +2926,10 @@
+@@ -2835,10 +2958,10 @@
{ "Root.PSFont.9", "/FreeMonoOblique" },
{ "Root.PSFont.10", "/FreeMonoBold" },
{ "Root.PSFont.11", "/FreeMonoBoldOblique" },
@@ -1060,20 +1060,20 @@ diff -ur root-6.18.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.18.00/gr
{ "Root.PSFont.STIXGen", "/STIXGeneral" },
{ "Root.PSFont.STIXGenIt", "/STIXGeneral-Italic" },
{ "Root.PSFont.STIXGenBd", "/STIXGeneral-Bold" },
-diff -ur root-6.18.00.orig/graf3d/gl/CMakeLists.txt root-6.18.00/graf3d/gl/CMakeLists.txt
---- root-6.18.00.orig/graf3d/gl/CMakeLists.txt 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf3d/gl/CMakeLists.txt 2019-06-26 15:02:38.318730684 +0200
-@@ -206,6 +206,7 @@
- ${FTGL_LIBRARIES}
+diff -ur root-6.22.00.orig/graf3d/gl/CMakeLists.txt root-6.22.00/graf3d/gl/CMakeLists.txt
+--- root-6.22.00.orig/graf3d/gl/CMakeLists.txt 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf3d/gl/CMakeLists.txt 2020-06-29 08:53:15.087085585 +0200
+@@ -208,6 +208,7 @@
${GL2PS_LIBRARIES}
${X11_LIBRARIES}
+ RGlew
+ fontconfig
DEPENDENCIES
Hist
Gui
-diff -ur root-6.18.00.orig/graf3d/gl/src/TGLFontManager.cxx root-6.18.00/graf3d/gl/src/TGLFontManager.cxx
---- root-6.18.00.orig/graf3d/gl/src/TGLFontManager.cxx 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf3d/gl/src/TGLFontManager.cxx 2019-06-26 15:00:32.066047715 +0200
+diff -ur root-6.22.00.orig/graf3d/gl/src/TGLFontManager.cxx root-6.22.00/graf3d/gl/src/TGLFontManager.cxx
+--- root-6.22.00.orig/graf3d/gl/src/TGLFontManager.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf3d/gl/src/TGLFontManager.cxx 2020-06-29 08:53:15.087085585 +0200
@@ -37,6 +37,7 @@
# include "FTGLBitmapFont.h"
#endif
@@ -1329,9 +1329,9 @@ diff -ur root-6.18.00.orig/graf3d/gl/src/TGLFontManager.cxx root-6.18.00/graf3d/
fgFontFileArray.Add(new TObjString("STIXGeneral.otf")); // 200
fgFontFileArray.Add(new TObjString("STIXGeneralItalic.otf")); // 210
fgFontFileArray.Add(new TObjString("STIXGeneralBol.otf")); // 220
-diff -ur root-6.18.00.orig/graf3d/gl/src/TGLText.cxx root-6.18.00/graf3d/gl/src/TGLText.cxx
---- root-6.18.00.orig/graf3d/gl/src/TGLText.cxx 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf3d/gl/src/TGLText.cxx 2019-06-26 15:00:32.066047715 +0200
+diff -ur root-6.22.00.orig/graf3d/gl/src/TGLText.cxx root-6.22.00/graf3d/gl/src/TGLText.cxx
+--- root-6.22.00.orig/graf3d/gl/src/TGLText.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf3d/gl/src/TGLText.cxx 2020-06-29 08:53:15.088085587 +0200
@@ -34,6 +34,8 @@
# include "FTGLBitmapFont.h"
#endif
@@ -1466,10 +1466,10 @@ diff -ur root-6.18.00.orig/graf3d/gl/src/TGLText.cxx root-6.18.00/graf3d/gl/src/
Error("SetGLTextFont","Cannot set FTGL::FaceSize");
- delete [] ttfont;
}
-diff -ur root-6.18.00.orig/gui/gui/src/TGApplication.cxx root-6.18.00/gui/gui/src/TGApplication.cxx
---- root-6.18.00.orig/gui/gui/src/TGApplication.cxx 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/gui/gui/src/TGApplication.cxx 2019-06-26 15:00:32.066047715 +0200
-@@ -83,20 +83,12 @@
+diff -ur root-6.22.00.orig/gui/gui/src/TGApplication.cxx root-6.22.00/gui/gui/src/TGApplication.cxx
+--- root-6.22.00.orig/gui/gui/src/TGApplication.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/gui/gui/src/TGApplication.cxx 2020-06-29 08:53:15.088085587 +0200
+@@ -80,20 +80,12 @@
gROOT->SetBatch(kFALSE);
if (strcmp(appClassName, "proofserv")) {
diff --git a/root-format-fix.patch b/root-format-fix.patch
deleted file mode 100644
index 9d7f4e2..0000000
--- a/root-format-fix.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 1d4aaf9e503669ccb0275f3f9b8a87a486671334 Mon Sep 17 00:00:00 2001
-From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
-Date: Fri, 13 Mar 2020 14:34:48 +0100
-Subject: [PATCH] Size types should use %z
-
----
- tree/dataframe/src/RCsvDS.cxx | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/tree/dataframe/src/RCsvDS.cxx b/tree/dataframe/src/RCsvDS.cxx
-index 81f802285b..fc0a18e21f 100644
---- a/tree/dataframe/src/RCsvDS.cxx
-+++ b/tree/dataframe/src/RCsvDS.cxx
-@@ -368,9 +368,9 @@ std::vector<std::pair<ULong64_t, ULong64_t>> RCsvDS::GetEntryRanges()
-
- if (gDebug > 0) {
- if (fLinesChunkSize == -1LL) {
-- Info("GetEntryRanges", "Attempted to read entire CSV file into memory, %lu lines read", fRecords.size());
-+ Info("GetEntryRanges", "Attempted to read entire CSV file into memory, %zu lines read", fRecords.size());
- } else {
-- Info("GetEntryRanges", "Attempted to read chunk of %lld lines of CSV file into memory, %lu lines read", fLinesChunkSize, fRecords.size());
-+ Info("GetEntryRanges", "Attempted to read chunk of %lld lines of CSV file into memory, %zu lines read", fLinesChunkSize, fRecords.size());
- }
- }
-
---
-2.24.1
-
diff --git a/root-histv7-bin-iterator.patch b/root-histv7-bin-iterator.patch
new file mode 100644
index 0000000..9e52725
--- /dev/null
+++ b/root-histv7-bin-iterator.patch
@@ -0,0 +1,51 @@
+From af2e5c8b1bf17a0a0e1c1492735395bdd49ffd65 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Mon, 29 Jun 2020 12:57:43 +0200
+Subject: [PATCH] Fix off-by-one error in the histogram v7 bin iterator
+
+The histogram bin iterator should start at 1 and end at N + 1, not
+start at 0 and end at N. (As for all iterators, the end element is the
+invalid element after the last one.)
+
+Fixes an assertion in the histhistv7testUnit test
+
+[----------] 2 tests from BinIterNBins
+[ RUN ] BinIterNBins.NumBins
+/usr/include/c++/10/bits/stl_vector.h:1045: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = float; _Alloc = std::allocator<float>; std::vector<_Tp, _Alloc>::reference = float&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__builtin_expect(__n < this->size(), true)' failed.
+---
+ hist/histv7/inc/ROOT/RHist.hxx | 4 ++--
+ hist/histv7/test/biniter.cxx | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/hist/histv7/inc/ROOT/RHist.hxx b/hist/histv7/inc/ROOT/RHist.hxx
+index ebb319f1ef..9521fe182f 100644
+--- a/hist/histv7/inc/ROOT/RHist.hxx
++++ b/hist/histv7/inc/ROOT/RHist.hxx
+@@ -158,9 +158,9 @@ public:
+ /// Get the uncertainty on the content of the bin at `x`.
+ double GetBinUncertainty(const CoordArray_t &x) const { return fImpl->GetBinUncertainty(x); }
+
+- const_iterator begin() const { return const_iterator(*fImpl); }
++ const_iterator begin() const { return const_iterator(*fImpl, 1); }
+
+- const_iterator end() const { return const_iterator(*fImpl, fImpl->GetNBinsNoOver()); }
++ const_iterator end() const { return const_iterator(*fImpl, fImpl->GetNBinsNoOver() + 1); }
+
+ /// Swap *this and other.
+ ///
+diff --git a/hist/histv7/test/biniter.cxx b/hist/histv7/test/biniter.cxx
+index aa1c2dfef9..1f940aa8e7 100644
+--- a/hist/histv7/test/biniter.cxx
++++ b/hist/histv7/test/biniter.cxx
+@@ -45,7 +45,7 @@ TEST(BinIterNBins, BinRef) {
+ double founduncert = -1.;
+ RH2F::CoordArray_t foundcoord{};
+
+- int nBins = 0;
++ int nBins = 1;
+ for (auto bin: h) {
+ auto binCenter = bin.GetCenter();
+ if (std::fabs(binCenter[0] - x) < 0.1 && std::fabs(binCenter[1] - y) < 0.1) {
+--
+2.26.2
+
diff --git a/root-jupyroot-static.patch b/root-jupyroot-static.patch
index 2cdb5aa..b39110a 100644
--- a/root-jupyroot-static.patch
+++ b/root-jupyroot-static.patch
@@ -1,6 +1,30 @@
-diff -ur root-6.20.02.orig/bindings/pyroot/JsMVA/JPyInterface.py root-6.20.02/bindings/pyroot/JsMVA/JPyInterface.py
---- root-6.20.02.orig/bindings/pyroot/JsMVA/JPyInterface.py 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/JsMVA/JPyInterface.py 2020-03-15 20:07:18.921423559 +0100
+diff -ur root-6.22.00.orig/bindings/jsmva/python/JsMVA/JPyInterface.py root-6.22.00/bindings/jsmva/python/JsMVA/JPyInterface.py
+--- root-6.22.00.orig/bindings/jsmva/python/JsMVA/JPyInterface.py 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/jsmva/python/JsMVA/JPyInterface.py 2020-06-21 20:20:27.744527667 +0200
+@@ -188,7 +188,7 @@
+ ## Class for creating the output scripts and inserting them to cell output
+ class JsDraw:
+ ## Base repository
+- __jsMVARepo = "https://root.cern.ch/js/jsmva/latest"
++ __jsMVARepo = "/static/JsMVA"
+
+ ## String containing the link to JavaScript files
+ __jsMVASourceDir = __jsMVARepo + "/js"
+diff -ur root-6.22.00.orig/bindings/jupyroot/python/JupyROOT/helpers/utils.py root-6.22.00/bindings/jupyroot/python/JupyROOT/helpers/utils.py
+--- root-6.22.00.orig/bindings/jupyroot/python/JupyROOT/helpers/utils.py 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/jupyroot/python/JupyROOT/helpers/utils.py 2020-06-21 20:18:22.840258397 +0200
+@@ -40,7 +40,7 @@
+ _jsNotDrawableClassesPatterns = ["TEve*","TF3","TPolyLine3D"]
+
+
+-_jsROOTSourceDir = "/static/"
++_jsROOTSourceDir = "/static/jsroot/"
+ _jsCanvasWidth = 800
+ _jsCanvasHeight = 600
+
+diff -ur root-6.22.00.orig/bindings/pyroot_legacy/JsMVA/JPyInterface.py root-6.22.00/bindings/pyroot_legacy/JsMVA/JPyInterface.py
+--- root-6.22.00.orig/bindings/pyroot_legacy/JsMVA/JPyInterface.py 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot_legacy/JsMVA/JPyInterface.py 2020-06-21 20:09:42.265004565 +0200
@@ -188,7 +188,7 @@
## Class for creating the output scripts and inserting them to cell output
class JsDraw:
@@ -10,9 +34,9 @@ diff -ur root-6.20.02.orig/bindings/pyroot/JsMVA/JPyInterface.py root-6.20.02/bi
## String containing the link to JavaScript files
__jsMVASourceDir = __jsMVARepo + "/js"
-diff -ur root-6.20.02.orig/bindings/pyroot/JupyROOT/helpers/utils.py root-6.20.02/bindings/pyroot/JupyROOT/helpers/utils.py
---- root-6.20.02.orig/bindings/pyroot/JupyROOT/helpers/utils.py 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/JupyROOT/helpers/utils.py 2020-03-15 20:07:18.921423559 +0100
+diff -ur root-6.22.00.orig/bindings/pyroot_legacy/JupyROOT/helpers/utils.py root-6.22.00/bindings/pyroot_legacy/JupyROOT/helpers/utils.py
+--- root-6.22.00.orig/bindings/pyroot_legacy/JupyROOT/helpers/utils.py 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot_legacy/JupyROOT/helpers/utils.py 2020-06-21 20:09:42.266004568 +0200
@@ -82,7 +82,7 @@
function requirejs_success(base_url) {{
return function() {{
@@ -22,9 +46,9 @@ diff -ur root-6.20.02.orig/bindings/pyroot/JupyROOT/helpers/utils.py root-6.20.0
}});
display_{jsDivId}();
}}
-diff -ur root-6.20.02.orig/etc/notebook/JsMVA/js/JsMVA.js root-6.20.02/etc/notebook/JsMVA/js/JsMVA.js
---- root-6.20.02.orig/etc/notebook/JsMVA/js/JsMVA.js 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/etc/notebook/JsMVA/js/JsMVA.js 2020-03-15 20:07:18.922423549 +0100
+diff -ur root-6.22.00.orig/etc/notebook/JsMVA/js/JsMVA.js root-6.22.00/etc/notebook/JsMVA/js/JsMVA.js
+--- root-6.22.00.orig/etc/notebook/JsMVA/js/JsMVA.js 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/etc/notebook/JsMVA/js/JsMVA.js 2020-06-21 20:10:34.552121014 +0200
@@ -16,7 +16,7 @@
(function(factory){
@@ -34,9 +58,9 @@ diff -ur root-6.20.02.orig/etc/notebook/JsMVA/js/JsMVA.js root-6.20.02/etc/noteb
var url = "";
if (requirejs.s.contexts.hasOwnProperty("_")) {
-diff -ur root-6.20.02.orig/etc/notebook/JsMVA/js/NetworkDesigner.js root-6.20.02/etc/notebook/JsMVA/js/NetworkDesigner.js
---- root-6.20.02.orig/etc/notebook/JsMVA/js/NetworkDesigner.js 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/etc/notebook/JsMVA/js/NetworkDesigner.js 2020-03-15 20:07:18.922423549 +0100
+diff -ur root-6.22.00.orig/etc/notebook/JsMVA/js/NetworkDesigner.js root-6.22.00/etc/notebook/JsMVA/js/NetworkDesigner.js
+--- root-6.22.00.orig/etc/notebook/JsMVA/js/NetworkDesigner.js 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/etc/notebook/JsMVA/js/NetworkDesigner.js 2020-06-21 20:10:34.552121014 +0200
@@ -19,7 +19,7 @@
paths: {
"jquery-connections": baseURL + "jquery.connections.min",
diff --git a/root-memory-usage.patch b/root-memory-usage.patch
index 27fac76..9910ec3 100644
--- a/root-memory-usage.patch
+++ b/root-memory-usage.patch
@@ -1,4 +1,4 @@
-From b587d85a5fc8f706362396dc347830f16797b1f2 Mon Sep 17 00:00:00 2001
+From 636b26baf214559e209e72b2a14946d0cc18c2f1 Mon Sep 17 00:00:00 2001
From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Tue, 16 Jan 2018 10:25:50 +0100
Subject: [PATCH] Reduce the needed memory for compilation
@@ -18,14 +18,14 @@ A similar dependency existed before the code latest code changes
(see commit 2638f6fc7f54b0995f2f9d60363daaf8aae2386e), then between
rootcling and libCling.
---
- core/metacling/src/CMakeLists.txt | 4 ++++
- 1 file changed, 4 insertions(+)
+ core/metacling/src/CMakeLists.txt | 5 +++++
+ 1 file changed, 5 insertions(+)
diff --git a/core/metacling/src/CMakeLists.txt b/core/metacling/src/CMakeLists.txt
-index eccd77681d..df941eb3b7 100644
+index 2923345f7c..b44a4d4115 100644
--- a/core/metacling/src/CMakeLists.txt
+++ b/core/metacling/src/CMakeLists.txt
-@@ -86,6 +86,10 @@ ROOT_LINKER_LIBRARY(Cling
+@@ -114,6 +114,11 @@ ROOT_LINKER_LIBRARY(Cling
$<TARGET_OBJECTS:MetaCling>
LIBRARIES ${CLING_LIBRARIES} ${LINK_LIBS} ${CLING_PLUGIN_LINK_LIBS})
@@ -33,9 +33,10 @@ index eccd77681d..df941eb3b7 100644
+# rootcling_stage1 from being linked in parallel.
+# This avoids doing two memory consuming operations in parallel.
+add_dependencies(Cling rootcling_stage1)
-
++
if(MSVC)
set_target_properties(Cling PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
+ set(cling_exports
--
-2.20.1
+2.26.2
diff --git a/root-moved-file.patch b/root-moved-file.patch
deleted file mode 100644
index 948a78b..0000000
--- a/root-moved-file.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 6492170d74f464286de22c40554adbd400ec838b Mon Sep 17 00:00:00 2001
-From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
-Date: Fri, 13 Mar 2020 12:53:34 +0100
-Subject: [PATCH] The file was moved - update path
-
----
- tutorials/legacy/mlp/mlpHiggs.C | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/tutorials/legacy/mlp/mlpHiggs.C b/tutorials/legacy/mlp/mlpHiggs.C
-index 49d3ca2b30..0516ed7c50 100644
---- a/tutorials/legacy/mlp/mlpHiggs.C
-+++ b/tutorials/legacy/mlp/mlpHiggs.C
-@@ -18,8 +18,8 @@ void mlpHiggs(Int_t ntrain=100) {
- TFile *input = 0;
- if (!gSystem->AccessPathName(fname)) {
- input = TFile::Open(fname);
-- } else if (!gSystem->AccessPathName(Form("%s/mlp/%s", TROOT::GetTutorialDir().Data(), fname))) {
-- input = TFile::Open(Form("%s/mlp/%s", TROOT::GetTutorialDir().Data(), fname));
-+ } else if (!gSystem->AccessPathName(Form("%s/legacy/mlp/%s", TROOT::GetTutorialDir().Data(), fname))) {
-+ input = TFile::Open(Form("%s/legacy/mlp/%s", TROOT::GetTutorialDir().Data(), fname));
- } else {
- printf("accessing %s file from http://root.cern.ch/files\n",fname);
- input = TFile::Open(Form("http://root.cern.ch/files/%s",fname));
---
-2.24.1
-
diff --git a/root-ntuple-largefile.patch b/root-ntuple-largefile.patch
new file mode 100644
index 0000000..b4242f0
--- /dev/null
+++ b/root-ntuple-largefile.patch
@@ -0,0 +1,139 @@
+diff -ur root-6.22.00.orig/io/io/src/RRawFileUnix.cxx root-6.22.00/io/io/src/RRawFileUnix.cxx
+--- root-6.22.00.orig/io/io/src/RRawFileUnix.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/io/io/src/RRawFileUnix.cxx 2020-07-02 09:02:48.202677798 +0200
+@@ -9,6 +9,8 @@
+ * For the list of contributors see $ROOTSYS/README/CREDITS. *
+ *************************************************************************/
+
++#include "ROOT/RConfig.hxx"
++
+ #include "ROOT/RRawFileUnix.hxx"
+ #include "ROOT/RMakeUnique.hxx"
+
+@@ -47,8 +49,13 @@
+
+ std::uint64_t ROOT::Internal::RRawFileUnix::GetSizeImpl()
+ {
++#ifdef R__SEEK64
++ struct stat64 info;
++ int res = fstat64(fFileDes, &info);
++#else
+ struct stat info;
+ int res = fstat(fFileDes, &info);
++#endif
+ if (res != 0)
+ throw std::runtime_error("Cannot call fstat on '" + fUrl + "', error: " + std::string(strerror(errno)));
+ return info.st_size;
+@@ -68,7 +75,11 @@
+
+ void ROOT::Internal::RRawFileUnix::OpenImpl()
+ {
++#ifdef R__SEEK64
++ fFileDes = open64(GetLocation(fUrl).c_str(), O_RDONLY);
++#else
+ fFileDes = open(GetLocation(fUrl).c_str(), O_RDONLY);
++#endif
+ if (fFileDes < 0) {
+ throw std::runtime_error("Cannot open '" + fUrl + "', error: " + std::string(strerror(errno)));
+ }
+@@ -76,8 +87,13 @@
+ if (fOptions.fBlockSize >= 0)
+ return;
+
++#ifdef R__SEEK64
++ struct stat64 info;
++ int res = fstat64(fFileDes, &info);
++#else
+ struct stat info;
+ int res = fstat(fFileDes, &info);
++#endif
+ if (res != 0) {
+ throw std::runtime_error("Cannot call fstat on '" + fUrl + "', error: " + std::string(strerror(errno)));
+ }
+@@ -92,7 +108,11 @@
+ {
+ size_t total_bytes = 0;
+ while (nbytes) {
++#ifdef R__SEEK64
++ ssize_t res = pread64(fFileDes, buffer, nbytes, offset);
++#else
+ ssize_t res = pread(fFileDes, buffer, nbytes, offset);
++#endif
+ if (res < 0) {
+ if (errno == EINTR)
+ continue;
+diff -ur root-6.22.00.orig/tree/ntuple/v7/src/RMiniFile.cxx root-6.22.00/tree/ntuple/v7/src/RMiniFile.cxx
+--- root-6.22.00.orig/tree/ntuple/v7/src/RMiniFile.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tree/ntuple/v7/src/RMiniFile.cxx 2020-07-02 10:06:55.066204147 +0200
+@@ -13,6 +13,8 @@
+ * For the list of contributors see $ROOTSYS/README/CREDITS. *
+ *************************************************************************/
+
++#include <ROOT/RConfig.hxx>
++
+ #include "ROOT/RMiniFile.hxx"
+
+ #include <ROOT/RRawFile.hxx>
+@@ -999,7 +1001,11 @@
+ R__ASSERT(fFile);
+ size_t retval;
+ if ((offset >= 0) && (static_cast<std::uint64_t>(offset) != fFilePos)) {
++#ifdef R__SEEK64
++ retval = fseeko64(fFile, offset, SEEK_SET);
++#else
+ retval = fseek(fFile, offset, SEEK_SET);
++#endif
+ R__ASSERT(retval == 0);
+ fFilePos = offset;
+ }
+@@ -1099,7 +1105,11 @@
+ if (idxDirSep != std::string::npos) {
+ fileName.erase(0, idxDirSep + 1);
+ }
++#ifdef R__SEEK64
++ FILE *fileStream = fopen64(std::string(path.data(), path.size()).c_str(), "wb");
++#else
+ FILE *fileStream = fopen(std::string(path.data(), path.size()).c_str(), "wb");
++#endif
+ R__ASSERT(fileStream);
+
+ auto writer = new RNTupleFileWriter(ntupleName);
+@@ -1319,7 +1329,11 @@
+ fFileSimple.Write(&strEmpty, strEmpty.GetSize());
+ fFileSimple.Write(&fileRoot, fileRoot.GetSize());
+ fFileSimple.fFilePos = tail;
++#ifdef R__SEEK64
++ auto retval = fseeko64(fFileSimple.fFile, tail, SEEK_SET);
++#else
+ auto retval = fseek(fFileSimple.fFile, tail, SEEK_SET);
++#endif
+ R__ASSERT(retval == 0);
+ fFileSimple.fFilePos = tail;
+ }
+diff -ur root-6.22.00.orig/tree/ntuple/v7/test/ntuple.cxx root-6.22.00/tree/ntuple/v7/test/ntuple.cxx
+--- root-6.22.00.orig/tree/ntuple/v7/test/ntuple.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tree/ntuple/v7/test/ntuple.cxx 2020-07-02 10:10:54.409737807 +0200
+@@ -1,3 +1,5 @@
++#include <ROOT/RConfig.hxx>
++
+ #include <ROOT/RColumnModel.hxx>
+ #include <ROOT/RDataFrame.hxx>
+ #include <ROOT/RNTuple.hxx>
+@@ -891,10 +893,17 @@
+ ntuple->Fill();
+ }
+ }
++#ifdef R__SEEK64
++ FILE *file = fopen64(fileGuard.GetPath().c_str(), "rb");
++ ASSERT_TRUE(file != nullptr);
++ EXPECT_EQ(0, fseeko64(file, 0, SEEK_END));
++ EXPECT_GT(ftello64(file), 2048LL * 1024LL * 1024LL);
++#else
+ FILE *file = fopen(fileGuard.GetPath().c_str(), "rb");
+ ASSERT_TRUE(file != nullptr);
+ EXPECT_EQ(0, fseek(file, 0, SEEK_END));
+ EXPECT_GT(ftell(file), 2048LL * 1024LL * 1024LL);
++#endif
+ fclose(file);
+
+ auto ntuple = RNTupleReader::Open("myNTuple", fileGuard.GetPath());
diff --git a/root-old-gtest-compat.patch b/root-old-gtest-compat.patch
new file mode 100644
index 0000000..a25a8e8
--- /dev/null
+++ b/root-old-gtest-compat.patch
@@ -0,0 +1,161 @@
+diff -ur root-6.22.00.orig/math/mathcore/test/stress/testGenVector.cxx root-6.22.00/math/mathcore/test/stress/testGenVector.cxx
+--- root-6.22.00.orig/math/mathcore/test/stress/testGenVector.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/math/mathcore/test/stress/testGenVector.cxx 2020-06-29 19:38:08.524050438 +0200
+@@ -4,6 +4,16 @@
+
+ #include "gtest/gtest.h"
+
++#ifndef TYPED_TEST_SUITE_P
++#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P
++#endif
++#ifndef REGISTER_TYPED_TEST_SUITE_P
++#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P
++#endif
++#ifndef INSTANTIATE_TYPED_TEST_SUITE_P
++#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P
++#endif
++
+ #include "StatFunction.h"
+ #include "TestHelper.h"
+ #include "VectorTest.h"
+diff -ur root-6.22.00.orig/math/mathcore/test/stress/testSMatrix.cxx root-6.22.00/math/mathcore/test/stress/testSMatrix.cxx
+--- root-6.22.00.orig/math/mathcore/test/stress/testSMatrix.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/math/mathcore/test/stress/testSMatrix.cxx 2020-06-29 19:38:08.524050438 +0200
+@@ -7,6 +7,16 @@
+ #include "TestHelper.h"
+ #include "gtest/gtest.h"
+
++#ifndef TYPED_TEST_SUITE_P
++#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P
++#endif
++#ifndef REGISTER_TYPED_TEST_SUITE_P
++#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P
++#endif
++#ifndef INSTANTIATE_TYPED_TEST_SUITE_P
++#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P
++#endif
++
+ #include "VectorTest.h"
+ #include "TROOT.h"
+ #include "TSystem.h"
+diff -ur root-6.22.00.orig/math/mathcore/test/stress/testVector34.cxx root-6.22.00/math/mathcore/test/stress/testVector34.cxx
+--- root-6.22.00.orig/math/mathcore/test/stress/testVector34.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/math/mathcore/test/stress/testVector34.cxx 2020-06-29 19:38:08.525050440 +0200
+@@ -4,6 +4,16 @@
+
+ #include "gtest/gtest.h"
+
++#ifndef TYPED_TEST_SUITE_P
++#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P
++#endif
++#ifndef REGISTER_TYPED_TEST_SUITE_P
++#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P
++#endif
++#ifndef INSTANTIATE_TYPED_TEST_SUITE_P
++#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P
++#endif
++
+ #include "StatFunction.h"
+ #include "VectorTest.h"
+
+diff -ur root-6.22.00.orig/math/mathcore/test/stress/testVector.cxx root-6.22.00/math/mathcore/test/stress/testVector.cxx
+--- root-6.22.00.orig/math/mathcore/test/stress/testVector.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/math/mathcore/test/stress/testVector.cxx 2020-06-29 19:38:08.525050440 +0200
+@@ -4,6 +4,16 @@
+
+ #include "gtest/gtest.h"
+
++#ifndef TYPED_TEST_SUITE_P
++#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P
++#endif
++#ifndef REGISTER_TYPED_TEST_SUITE_P
++#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P
++#endif
++#ifndef INSTANTIATE_TYPED_TEST_SUITE_P
++#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P
++#endif
++
+ #include "StatFunction.h"
+ #include "TestHelper.h"
+ #include "VectorTest.h"
+diff -ur root-6.22.00.orig/math/mathcore/test/testGradient.cxx root-6.22.00/math/mathcore/test/testGradient.cxx
+--- root-6.22.00.orig/math/mathcore/test/testGradient.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/math/mathcore/test/testGradient.cxx 2020-06-29 19:38:08.525050440 +0200
+@@ -22,6 +22,10 @@
+
+ #include "gtest/gtest.h"
+
++#ifndef TYPED_TEST_SUITE
++#define TYPED_TEST_SUITE TYPED_TEST_CASE
++#endif
++
+ #include <chrono>
+ #include <iostream>
+ #include <string>
+diff -ur root-6.22.00.orig/math/mathcore/test/testGradientFitting.cxx root-6.22.00/math/mathcore/test/testGradientFitting.cxx
+--- root-6.22.00.orig/math/mathcore/test/testGradientFitting.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/math/mathcore/test/testGradientFitting.cxx 2020-06-29 19:38:08.525050440 +0200
+@@ -12,6 +12,16 @@
+
+ #include "gtest/gtest.h"
+
++#ifndef TYPED_TEST_SUITE_P
++#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P
++#endif
++#ifndef REGISTER_TYPED_TEST_SUITE_P
++#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P
++#endif
++#ifndef INSTANTIATE_TYPED_TEST_SUITE_P
++#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P
++#endif
++
+ #include <iostream>
+ #include <string>
+
+diff -ur root-6.22.00.orig/math/mathmore/test/testStress.cxx root-6.22.00/math/mathmore/test/testStress.cxx
+--- root-6.22.00.orig/math/mathmore/test/testStress.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/math/mathmore/test/testStress.cxx 2020-06-29 19:38:08.526050443 +0200
+@@ -28,6 +28,16 @@
+
+ #include "gtest/gtest.h"
+
++#ifndef TYPED_TEST_SUITE_P
++#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P
++#endif
++#ifndef REGISTER_TYPED_TEST_SUITE_P
++#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P
++#endif
++#ifndef INSTANTIATE_TYPED_TEST_SUITE_P
++#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P
++#endif
++
+ using ::testing::TestWithParam;
+ using ::testing::Values;
+
+diff -ur root-6.22.00.orig/roofit/roofitcore/test/testProxiesAndCategories.cxx root-6.22.00/roofit/roofitcore/test/testProxiesAndCategories.cxx
+--- root-6.22.00.orig/roofit/roofitcore/test/testProxiesAndCategories.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/roofit/roofitcore/test/testProxiesAndCategories.cxx 2020-06-29 19:38:08.526050443 +0200
+@@ -16,6 +16,9 @@
+
+ #include "gtest/gtest.h"
+
++#ifndef INSTANTIATE_TEST_SUITE_P
++#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
++#endif
+
+ TEST(RooCategory, CategoryDefineMultiState) {
+ RooCategory myCat("myCat", "A category", { {"0Lep", 0}, {"1Lep", 1}, {"2Lep", 2}, {"3Lep", 3} });
+diff -ur root-6.22.00.orig/tree/dataframe/test/dataframe_simple.cxx root-6.22.00/tree/dataframe/test/dataframe_simple.cxx
+--- root-6.22.00.orig/tree/dataframe/test/dataframe_simple.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tree/dataframe/test/dataframe_simple.cxx 2020-06-29 19:38:45.667130468 +0200
+@@ -1,5 +1,10 @@
+ /****** Run RDataFrame tests both with and without IMT enabled *******/
+ #include <gtest/gtest.h>
++
++#ifndef INSTANTIATE_TEST_SUITE_P
++#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
++#endif
++
+ #include <ROOT/RDataFrame.hxx>
+ #include <ROOT/TSeq.hxx>
+ #include <TChain.h>
diff --git a/root-python2-compat.patch b/root-python2-compat.patch
new file mode 100644
index 0000000..8006a8f
--- /dev/null
+++ b/root-python2-compat.patch
@@ -0,0 +1,41 @@
+From 056b67d05c950cf04a8290dcdf376078ee92b449 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Mon, 29 Jun 2020 17:01:03 +0200
+Subject: [PATCH] Compatibility with python 2.7 versions before 2.7.9
+
+This is a workaround for https://bugs.python.org/issue21591 which
+affect Python 2 versions before 2.7.9. This includes Python 2.7.5
+which is the Python 2 version on RHEL/CentOS 7.
+---
+ .../pyroot/pythonizations/python/ROOT/_numbadeclare.py | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/bindings/pyroot/pythonizations/python/ROOT/_numbadeclare.py b/bindings/pyroot/pythonizations/python/ROOT/_numbadeclare.py
+index 1bef862af5..9aa893b8f0 100644
+--- a/bindings/pyroot/pythonizations/python/ROOT/_numbadeclare.py
++++ b/bindings/pyroot/pythonizations/python/ROOT/_numbadeclare.py
+@@ -32,7 +32,7 @@ def _NumbaDeclareDecorator(input_types, return_type, name=None):
+ import cffi
+ except:
+ raise Exception('Failed to import cffi')
+- import re
++ import re, sys
+
+ # Normalize input types by stripping ROOT and VecOps namespaces from input types
+ def normalize_typename(t):
+@@ -195,7 +195,11 @@ def pywrapper({SIGNATURE}):
+ if 'RVec' in return_type:
+ glob['dtype_r'] = get_numba_type(get_inner_type(return_type))
+
+- exec(pywrappercode, glob, locals())
++ if sys.version_info[0] >= 3:
++ exec(pywrappercode, glob, locals()) in {}
++ else:
++ exec(pywrappercode) in glob, locals()
++
+ if not 'pywrapper' in locals():
+ raise Exception('Failed to create Python wrapper function:\n{}'.format(pywrappercode))
+
+--
+2.26.2
+
diff --git a/root-python3.8-object.patch b/root-python3.8-object.patch
index 2447e31..a4d2759 100644
--- a/root-python3.8-object.patch
+++ b/root-python3.8-object.patch
@@ -1,292 +1,58 @@
-diff -ur root-6.20.02.orig/bindings/pyroot/src/MethodProxy.cxx root-6.20.02/bindings/pyroot/src/MethodProxy.cxx
---- root-6.20.02.orig/bindings/pyroot/src/MethodProxy.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/MethodProxy.cxx 2020-03-15 19:43:20.946684699 +0100
-@@ -845,7 +845,8 @@
- sizeof(MethodProxy), // tp_basicsize
- 0, // tp_itemsize
- (destructor)mp_dealloc, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -894,6 +895,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- } // namespace PyROOT
-diff -ur root-6.20.02.orig/bindings/pyroot/src/ObjectProxy.cxx root-6.20.02/bindings/pyroot/src/ObjectProxy.cxx
---- root-6.20.02.orig/bindings/pyroot/src/ObjectProxy.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/ObjectProxy.cxx 2020-03-15 19:43:20.946684699 +0100
-@@ -398,7 +398,8 @@
- sizeof(ObjectProxy), // tp_basicsize
- 0, // tp_itemsize
- (destructor)op_dealloc, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -450,6 +451,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- } // namespace PyROOT
-diff -ur root-6.20.02.orig/bindings/pyroot/src/PropertyProxy.cxx root-6.20.02/bindings/pyroot/src/PropertyProxy.cxx
---- root-6.20.02.orig/bindings/pyroot/src/PropertyProxy.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/PropertyProxy.cxx 2020-03-15 19:43:20.946684699 +0100
-@@ -133,7 +133,8 @@
- sizeof(PropertyProxy), // tp_basicsize
- 0, // tp_itemsize
- (destructor)pp_dealloc, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -182,6 +183,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- } // namespace PyROOT
-diff -ur root-6.20.02.orig/bindings/pyroot/src/PyRootType.cxx root-6.20.02/bindings/pyroot/src/PyRootType.cxx
---- root-6.20.02.orig/bindings/pyroot/src/PyRootType.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/PyRootType.cxx 2020-03-15 19:43:20.946684699 +0100
-@@ -232,7 +232,8 @@
- sizeof(PyROOT::PyRootClass),// tp_basicsize
- 0, // tp_itemsize
- 0, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -281,6 +282,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- } // namespace PyROOT
-diff -ur root-6.20.02.orig/bindings/pyroot/src/Pythonize.cxx root-6.20.02/bindings/pyroot/src/Pythonize.cxx
---- root-6.20.02.orig/bindings/pyroot/src/Pythonize.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/Pythonize.cxx 2020-03-15 19:43:20.947684688 +0100
-@@ -944,6 +944,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- static PyObject* vector_iter( PyObject* v ) {
-diff -ur root-6.20.02.orig/bindings/pyroot/src/RootModule.cxx root-6.20.02/bindings/pyroot/src/RootModule.cxx
---- root-6.20.02.orig/bindings/pyroot/src/RootModule.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/RootModule.cxx 2020-03-15 19:43:20.948684678 +0100
-@@ -134,6 +134,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- PyObject _PyROOT_NullPtrStruct = {
-diff -ur root-6.20.02.orig/bindings/pyroot/src/TCustomPyTypes.cxx root-6.20.02/bindings/pyroot/src/TCustomPyTypes.cxx
---- root-6.20.02.orig/bindings/pyroot/src/TCustomPyTypes.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/TCustomPyTypes.cxx 2020-03-15 19:43:20.948684678 +0100
-@@ -19,7 +19,8 @@
- 0, // tp_basicsize
- 0, // tp_itemsize
- 0, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -69,6 +70,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- //= long type allowed for reference passing ==================================
-@@ -78,7 +85,8 @@
- 0, // tp_basicsize
- 0, // tp_itemsize
- 0, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -128,6 +136,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt 2020-06-21 20:54:24.848992803 +0200
+@@ -85,11 +85,6 @@
+ target_compile_options(${libname} PRIVATE -Wno-deprecated-register)
+ endif()
- //= instancemethod object with a more efficient call function ================
-@@ -277,7 +291,8 @@
- 0, // tp_basicsize
- 0, // tp_itemsize
- (destructor)im_dealloc, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -327,6 +342,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- } // namespace PyROOT
-diff -ur root-6.20.02.orig/bindings/pyroot/src/TemplateProxy.cxx root-6.20.02/bindings/pyroot/src/TemplateProxy.cxx
---- root-6.20.02.orig/bindings/pyroot/src/TemplateProxy.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/TemplateProxy.cxx 2020-03-15 19:43:20.948684678 +0100
-@@ -492,7 +492,8 @@
- sizeof(TemplateProxy), // tp_basicsize
- 0, // tp_itemsize
- (destructor)tpp_dealloc, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -541,6 +542,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- } // namespace PyROOT
-diff -ur root-6.20.02.orig/bindings/pyroot/src/TTupleOfInstances.cxx root-6.20.02/bindings/pyroot/src/TTupleOfInstances.cxx
---- root-6.20.02.orig/bindings/pyroot/src/TTupleOfInstances.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/TTupleOfInstances.cxx 2020-03-15 19:43:20.948684678 +0100
-@@ -42,7 +42,8 @@
- 0, // tp_basicsize
- 0, // tp_itemsize
- 0, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -92,6 +93,12 @@
+- # Disables warnings due to new field tp_vectorcall in Python 3.8
+- if(NOT MSVC AND ${python_version_string} VERSION_GREATER_EQUAL "3.8")
+- target_compile_options(${libname} PRIVATE -Wno-missing-field-initializers)
+- endif()
+-
+ target_include_directories(${libname}
+ PRIVATE
+ ${CMAKE_SOURCE_DIR}/core/foundation/inc # needed for string_view backport
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPDataMember.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPDataMember.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPDataMember.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPDataMember.cxx 2020-06-21 20:53:49.651914431 +0200
+@@ -167,7 +167,8 @@
+ sizeof(CPPDataMember), // tp_basicsize
+ 0, // tp_itemsize
+ (destructor)pp_dealloc, // tp_dealloc
+- 0, // tp_print
++ 0, // tp_print (python < 3.8)
++ // tp_vectorcall_offset (python >= 3.8)
+ 0, // tp_getattr
+ 0, // tp_setattr
+ 0, // tp_compare
+@@ -216,6 +217,12 @@
#if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
+ , 0 // tp_finalize
#endif
+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
++ , 0 // tp_vectorcall
+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
++ , 0 // tp_print (python 3.8 only)
+#endif
+#endif
};
- } // namespace PyROOT
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/CMakeLists.txt root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/CMakeLists.txt
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/CMakeLists.txt 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/CMakeLists.txt 2020-03-15 19:43:20.949684667 +0100
-@@ -64,11 +64,6 @@
- target_compile_options(cppyy PRIVATE -Wno-deprecated-register)
- endif()
-
--# Disables warnings due to new field tp_vectorcall in Python 3.8
--if(NOT MSVC AND ${PYTHON_VERSION_STRING} VERSION_GREATER_EQUAL "3.8")
-- target_compile_options(cppyy PRIVATE -Wno-missing-field-initializers)
--endif()
--
- target_include_directories(cppyy PRIVATE ${CMAKE_BINARY_DIR}/include) # needed for string_view backport
-
- target_include_directories(cppyy PUBLIC ${PYTHON_INCLUDE_DIRS}
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDataMember.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDataMember.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDataMember.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDataMember.cxx 2020-03-15 19:43:20.949684667 +0100
-@@ -167,7 +167,8 @@
- sizeof(CPPDataMember), // tp_basicsize
+ } // namespace CPyCppyy
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPExcInstance.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPExcInstance.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPExcInstance.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPExcInstance.cxx 2020-06-21 20:53:49.651914431 +0200
+@@ -158,7 +158,8 @@
+ sizeof(CPPExcInstance), // tp_basicsize
0, // tp_itemsize
- (destructor)pp_dealloc, // tp_dealloc
+ (destructor)ep_dealloc, // tp_dealloc
- 0, // tp_print
+ 0, // tp_print (python < 3.8)
+ // tp_vectorcall_offset (python >= 3.8)
0, // tp_getattr
0, // tp_setattr
0, // tp_compare
-@@ -216,6 +217,12 @@
+@@ -211,6 +212,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -299,10 +65,10 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDa
};
} // namespace CPyCppyy
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPInstance.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPInstance.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPInstance.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPInstance.cxx 2020-03-15 19:43:20.949684667 +0100
-@@ -565,7 +565,8 @@
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPInstance.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPInstance.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPInstance.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPInstance.cxx 2020-06-21 20:53:49.651914431 +0200
+@@ -746,7 +746,8 @@
sizeof(CPPInstance), // tp_basicsize
0, // tp_itemsize
(destructor)op_dealloc, // tp_dealloc
@@ -312,7 +78,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPIn
0, // tp_getattr
0, // tp_setattr
0, // tp_compare
-@@ -617,6 +618,12 @@
+@@ -798,6 +799,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -325,10 +91,10 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPIn
};
} // namespace CPyCppyy
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOverload.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOverload.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOverload.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOverload.cxx 2020-03-15 19:43:20.950684656 +0100
-@@ -889,7 +889,8 @@
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx 2020-06-21 20:53:49.652914433 +0200
+@@ -866,7 +866,8 @@
sizeof(CPPOverload), // tp_basicsize
0, // tp_itemsize
(destructor)mp_dealloc, // tp_dealloc
@@ -338,7 +104,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOv
0, // tp_getattr
0, // tp_setattr
0, // tp_compare
-@@ -938,6 +939,12 @@
+@@ -915,6 +916,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -351,10 +117,10 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOv
};
} // namespace CPyCppyy
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPScope.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPScope.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPScope.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPScope.cxx 2020-03-15 19:43:20.950684656 +0100
-@@ -596,7 +596,8 @@
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPScope.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPScope.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPScope.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPScope.cxx 2020-06-21 20:53:49.652914433 +0200
+@@ -616,7 +616,8 @@
sizeof(CPyCppyy::CPPScope), // tp_basicsize
0, // tp_itemsize
0, // tp_dealloc
@@ -364,7 +130,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPSc
0, // tp_getattr
0, // tp_setattr
0, // tp_compare
-@@ -649,6 +650,12 @@
+@@ -669,6 +670,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -377,10 +143,11 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPSc
};
} // namespace CPyCppyy
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCppyyModule.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCppyyModule.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCppyyModule.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCppyyModule.cxx 2020-03-15 19:43:20.951684646 +0100
-@@ -140,6 +140,12 @@
+Endast i root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src: CPPScope.cxx.orig
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyyModule.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyyModule.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyyModule.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyyModule.cxx 2020-06-21 20:53:49.652914433 +0200
+@@ -141,6 +141,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -393,10 +160,10 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCp
};
namespace {
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CustomPyTypes.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CustomPyTypes.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CustomPyTypes.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CustomPyTypes.cxx 2020-03-15 19:43:20.951684646 +0100
-@@ -33,6 +33,12 @@
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CustomPyTypes.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CustomPyTypes.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CustomPyTypes.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CustomPyTypes.cxx 2020-06-21 20:53:49.652914433 +0200
+@@ -34,6 +34,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -409,7 +176,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Custo
};
//= long type allowed for reference passing ==================================
-@@ -59,6 +65,12 @@
+@@ -60,6 +66,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -422,7 +189,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Custo
};
//- custom type representing typedef to pointer of class ---------------------
-@@ -89,6 +101,12 @@
+@@ -90,6 +102,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -435,7 +202,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Custo
};
//= instancemethod object with a more efficient call function ================
-@@ -254,6 +272,12 @@
+@@ -255,6 +273,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -448,7 +215,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Custo
};
-@@ -304,6 +328,12 @@
+@@ -305,6 +329,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -461,7 +228,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Custo
};
-@@ -355,6 +385,12 @@
+@@ -364,6 +394,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -474,9 +241,9 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Custo
};
} // namespace CPyCppyy
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLevelViews.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLevelViews.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLevelViews.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLevelViews.cxx 2020-03-15 19:43:20.951684646 +0100
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/LowLevelViews.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/LowLevelViews.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/LowLevelViews.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/LowLevelViews.cxx 2020-06-21 20:53:49.653914436 +0200
@@ -651,7 +651,8 @@
sizeof(CPyCppyy::LowLevelView),// tp_basicsize
0, // tp_itemsize
@@ -500,10 +267,10 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLe
};
} // namespace CPyCppyy
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TemplateProxy.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TemplateProxy.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TemplateProxy.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TemplateProxy.cxx 2020-03-15 19:43:20.952684635 +0100
-@@ -709,7 +709,8 @@
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/TemplateProxy.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/TemplateProxy.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/TemplateProxy.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/TemplateProxy.cxx 2020-06-21 20:53:49.653914436 +0200
+@@ -730,7 +730,8 @@
sizeof(TemplateProxy), // tp_basicsize
0, // tp_itemsize
(destructor)tpp_dealloc, // tp_dealloc
@@ -513,7 +280,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Templ
0, // tp_getattr
0, // tp_setattr
0, // tp_compare
-@@ -758,6 +759,12 @@
+@@ -779,6 +780,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -526,9 +293,9 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Templ
};
} // namespace CPyCppyy
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TupleOfInstances.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TupleOfInstances.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TupleOfInstances.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TupleOfInstances.cxx 2020-03-15 19:43:20.952684635 +0100
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/TupleOfInstances.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/TupleOfInstances.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/TupleOfInstances.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/TupleOfInstances.cxx 2020-06-21 20:53:49.653914436 +0200
@@ -82,6 +82,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
diff --git a/root-setcachefiledir.patch b/root-setcachefiledir.patch
new file mode 100644
index 0000000..f73615e
--- /dev/null
+++ b/root-setcachefiledir.patch
@@ -0,0 +1,30 @@
+From 0bf4cdfee3f2189f4d43f7cde9ba114ce682cac5 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Mon, 29 Jun 2020 12:08:15 +0200
+Subject: [PATCH] Add missing call to TFile::SetCacheFileDir(".")
+
+Without it the following TFile::Open call using the CACHEREAD option
+will as work as intrnded:
+inputFile = TFile::Open(inputFileLink, "CACHEREAD");
+---
+ tutorials/tmva/TMVA_Higgs_Classification.C | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/tutorials/tmva/TMVA_Higgs_Classification.C b/tutorials/tmva/TMVA_Higgs_Classification.C
+index 6b4a8ed028..85dffc2790 100644
+--- a/tutorials/tmva/TMVA_Higgs_Classification.C
++++ b/tutorials/tmva/TMVA_Higgs_Classification.C
+@@ -72,9 +72,8 @@ Define now input data file and signal and background trees
+ if (!inputFile) {
+ // download file from Cernbox location
+ Info("TMVA_Higgs_Classification","Download Higgs_data.root file");
++ TFile::SetCacheFileDir(".");
+ inputFile = TFile::Open(inputFileLink, "CACHEREAD");
+- //gSystem->Exec( TString::Format("wget -O %s %s",inputFileName.Data(), downloadLinkFile.Data() ) );
+- //inputFile = TFile::Open( inputFileName);
+ if (!inputFile) {
+ Error("TMVA_Higgs_Classification","Input file cannot be downloaded - exit");
+ return;
+--
+2.26.2
+
diff --git a/root-stressGraphics.patch b/root-stressGraphics.patch
new file mode 100644
index 0000000..c7ac170
--- /dev/null
+++ b/root-stressGraphics.patch
@@ -0,0 +1,34 @@
+From 141dc7359fa890b081802532b97c25eeb5be5ee1 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Mon, 29 Jun 2020 12:53:07 +0200
+Subject: [PATCH] Adjust stressGraphics.ref
+
+---
+ test/stressGraphics.ref | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/test/stressGraphics.ref b/test/stressGraphics.ref
+index 38474d0549..2aecf462e8 100644
+--- a/test/stressGraphics.ref
++++ b/test/stressGraphics.ref
+@@ -3,7 +3,7 @@ Test# PS1Ref# PS1Err# PDFRef# PDFErr# GIFRef# GIFErr# JPGRef# JP
+ 2 4627 600 14506 100 7608 1500 13368 7900 9208 3000 4690 600
+ 3 452 50 12632 50 4797 350 11232 4200 3796 10700 492 50
+ 4 23617 1500 19386 100 43077 12000 143320 123000 45665 11000 24908 1500
+- 5 1025 150 12802 150 19715 2900 33468 9900 30846 5000 1072 200
++ 5 1025 150 12802 200 19715 2900 33468 9900 30846 5000 1072 200
+ 6 430 50 12669 50 4041 400 9558 100 5325 700 471 50
+ 7 4980 50 13893 50 8215 310 16143 1300 12230 500 5011 70
+ 8 5442 80 13473 50 9599 150 18430 700 12398 300 5469 80
+@@ -41,7 +41,7 @@ Test# PS1Ref# PS1Err# PDFRef# PDFErr# GIFRef# GIFErr# JPGRef# JP
+ 40 38312 200 56877 250 47205 3900 36524 11800 119641 8000 38121 200
+ 41 15025 3000 29289 500 34091 1500 42525 11300 33336 3900 14787 4000
+ 42 254604 5000 383258 7000 34608 5000 55666 30400 46534 6500 259594 7000
+- 43 4846 150 14075 100 24281 200 33239 600 25303 300 4877 150
++ 43 4846 150 14075 150 24281 200 33239 600 25303 300 4877 150
+ 44 1435879 150000 12837 100 96029 4000 25972 100 359846 15000 1085792 250000
+ 45 5884 500 16577 200 30259 3500 40706 14000 30026 4000 0 0
+ 46 5723 700 15720 200 14291 2600 32236 11000 16916 3200 5670 800
+--
+2.26.2
+
diff --git a/root-testfiles.sh b/root-testfiles.sh
index c16a23e..db4d721 100755
--- a/root-testfiles.sh
+++ b/root-testfiles.sh
@@ -74,9 +74,11 @@ wget -N ${SITE}/wa91.root
wget -N ${SITE}/AtlasGraphs.root
wget -N ${SITE}/europe.root
+wget -N ${SITE}/Higgs_data.root
wget -N ${SITE}/linearIO.root
wget -N ${SITE}/stressHistogram.5.18.00.root
wget -N ${SITE}/tmva_class_example.root
+wget -N ${SITE}/tmva_multiclass_example.root
wget -N ${SITE}/tmva_reg_example.root
wget -N ${SITE}/usa.root
diff --git a/root-unbundle-gtest.patch b/root-unbundle-gtest.patch
index 44939ca..6821f22 100644
--- a/root-unbundle-gtest.patch
+++ b/root-unbundle-gtest.patch
@@ -1,7 +1,7 @@
-diff -ur root-6.20.02.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.20.02/cmake/modules/SearchInstalledSoftware.cmake
---- root-6.20.02.orig/cmake/modules/SearchInstalledSoftware.cmake 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/cmake/modules/SearchInstalledSoftware.cmake 2020-03-15 20:12:34.446078193 +0100
-@@ -1528,83 +1528,18 @@
+diff -ur root-6.22.00.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.22.00/cmake/modules/SearchInstalledSoftware.cmake
+--- root-6.22.00.orig/cmake/modules/SearchInstalledSoftware.cmake 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/cmake/modules/SearchInstalledSoftware.cmake 2020-06-21 18:29:13.973655810 +0200
+@@ -1592,100 +1592,17 @@
#---Download googletest--------------------------------------------------------------
if (testing)
@@ -13,20 +13,22 @@ diff -ur root-6.20.02.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.20
+ set(_G_LIBRARY_PATH ${CMAKE_SOURCE_DIR}/googlemock)
- set(_gtest_byproduct_binary_dir
-- ${CMAKE_CURRENT_BINARY_DIR}/googletest-prefix/src/googletest-build/googlemock/)
+- ${CMAKE_CURRENT_BINARY_DIR}/googletest-prefix/src/googletest-build)
- set(_gtest_byproducts
-- ${_gtest_byproduct_binary_dir}/gtest/libgtest.a
-- ${_gtest_byproduct_binary_dir}/gtest/libgtest_main.a
-- ${_gtest_byproduct_binary_dir}/libgmock.a
-- ${_gtest_byproduct_binary_dir}/libgmock_main.a
+- ${_gtest_byproduct_binary_dir}/lib/libgtest.a
+- ${_gtest_byproduct_binary_dir}/lib/libgtest_main.a
+- ${_gtest_byproduct_binary_dir}/lib/libgmock.a
+- ${_gtest_byproduct_binary_dir}/lib/libgmock_main.a
- )
-
- if(MSVC)
- set(EXTRA_GTEST_OPTS
-- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=\\\"\\\"
-- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_MINSIZEREL:PATH=\\\"\\\"
-- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=\\\"\\\"
-- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO:PATH=\\\"\\\")
+- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=${_gtest_byproduct_binary_dir}/lib/
+- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_MINSIZEREL:PATH=${_gtest_byproduct_binary_dir}/lib/
+- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=${_gtest_byproduct_binary_dir}/lib/
+- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO:PATH=${_gtest_byproduct_binary_dir}/lib/
+- -Dgtest_force_shared_crt=ON
+- BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config Release)
- endif()
- if(APPLE)
- set(EXTRA_GTEST_OPTS
@@ -37,7 +39,7 @@ diff -ur root-6.20.02.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.20
- googletest
- GIT_REPOSITORY https://github.com/google/googletest.git
- GIT_SHALLOW 1
-- GIT_TAG release-1.8.0
+- GIT_TAG release-1.10.0
- UPDATE_COMMAND ""
- # TIMEOUT 10
- # # Force separate output paths for debug and release builds to allow easy
@@ -46,11 +48,11 @@ diff -ur root-6.20.02.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.20
- # -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=ReleaseLibs
- # -Dgtest_force_shared_crt=ON
- CMAKE_ARGS -G ${CMAKE_GENERATOR}
-- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+- -DCMAKE_BUILD_TYPE=Release
- -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
- -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
- -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-- -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
+- -DCMAKE_CXX_FLAGS=${ROOT_EXTERNAL_CXX_FLAGS}
- -DCMAKE_AR=${CMAKE_AR}
- -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
- ${EXTRA_GTEST_OPTS}
@@ -66,24 +68,38 @@ diff -ur root-6.20.02.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.20
- ExternalProject_Get_Property(googletest source_dir)
- set(GTEST_INCLUDE_DIR ${source_dir}/googletest/include)
- set(GMOCK_INCLUDE_DIR ${source_dir}/googlemock/include)
+- # Create the directories. Prevents bug https://gitlab.kitware.com/cmake/cmake/issues/15052
+- file(MAKE_DIRECTORY ${GTEST_INCLUDE_DIR} ${GMOCK_INCLUDE_DIR})
-
- # Libraries
- ExternalProject_Get_Property(googletest binary_dir)
-- set(_G_LIBRARY_PATH ${binary_dir}/googlemock/)
+- set(_G_LIBRARY_PATH ${binary_dir}/lib/)
-
-- # Register gtest, gtest_main, gmock, gmock_main
-- foreach (lib gtest gtest_main gmock gmock_main)
-+ # Register gmock, gmock_main
-+ foreach (lib gmock gmock_main)
+- # Use gmock_main instead of gtest_main because it initializes gtest as well.
+- # Note: The libraries are listed in reverse order of their dependancies.
+- foreach(lib gtest gtest_main gmock gmock_main)
++ foreach(lib gmock gmock_main)
add_library(${lib} IMPORTED STATIC GLOBAL)
+- set_target_properties(${lib} PROPERTIES
+- IMPORTED_LOCATION "${_G_LIBRARY_PATH}${CMAKE_STATIC_LIBRARY_PREFIX}${lib}${CMAKE_STATIC_LIBRARY_SUFFIX}"
+- INTERFACE_INCLUDE_DIRECTORIES "${GTEST_INCLUDE_DIRS}"
+- )
- add_dependencies(${lib} googletest)
- if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND
- ${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER_EQUAL 9)
- target_compile_options(${lib} INTERFACE -Wno-deprecated-copy)
- endif()
endforeach()
-- set_property(TARGET gtest PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/gtest/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX})
-- set_property(TARGET gtest_main PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/gtest/${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX})
+- # Once we require at least cmake 3.11, target_include_directories will work for imported targets
+- # Because of https://gitlab.kitware.com/cmake/cmake/-/merge_requests/1264
+- # We need this workaround:
+- SET_PROPERTY(TARGET gtest APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${GTEST_INCLUDE_DIR})
+- SET_PROPERTY(TARGET gmock APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${GMOCK_INCLUDE_DIR})
+- #target_include_directories(gtest INTERFACE ${GTEST_INCLUDE_DIR})
+- #target_include_directories(gmock INTERFACE ${GMOCK_INCLUDE_DIR})
+-
+- set_property(TARGET gtest PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX})
+- set_property(TARGET gtest_main PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX})
set_property(TARGET gmock PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gmock${CMAKE_STATIC_LIBRARY_SUFFIX})
set_property(TARGET gmock_main PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gmock_main${CMAKE_STATIC_LIBRARY_SUFFIX})
diff --git a/root-v7-line.patch b/root-v7-line.patch
deleted file mode 100644
index 29eed7e..0000000
--- a/root-v7-line.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -ur root-6.16.00.orig/tutorials/v7/line.cxx root-6.16.00/tutorials/v7/line.cxx
---- root-6.16.00.orig/tutorials/v7/line.cxx 2019-01-23 09:23:37.000000000 +0100
-+++ root-6.16.00/tutorials/v7/line.cxx 2019-05-17 11:02:14.378664352 +0200
-@@ -6,7 +6,6 @@
- /// "normal" coordinates' system and changing the line color linearly from black
- /// to red.
- ///
--/// \macro_image (line.png)
- /// \macro_code
- ///
- /// \date 2018-03-18
diff --git a/root-werror-fix.patch b/root-werror-fix.patch
new file mode 100644
index 0000000..341cca9
--- /dev/null
+++ b/root-werror-fix.patch
@@ -0,0 +1,57 @@
+From a5185f2cdf509314970c1b332c5926283f6962e2 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Mon, 22 Jun 2020 09:21:23 +0200
+Subject: [PATCH] Fix too aggressive -Werror replacements
+
+The replacements removes the -Werror option for externals, which is
+intended. However, it also replaces e.g. -Werror=format-security with
+=format-security, which results in compilation failures due to the
+unknown option =format-security.
+---
+ builtins/davix/CMakeLists.txt | 2 +-
+ cmake/modules/SearchInstalledSoftware.cmake | 2 +-
+ interpreter/CMakeLists.txt | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/builtins/davix/CMakeLists.txt b/builtins/davix/CMakeLists.txt
+index 52614ae2e0..c9b291ec45 100644
+--- a/builtins/davix/CMakeLists.txt
++++ b/builtins/davix/CMakeLists.txt
+@@ -21,7 +21,7 @@ foreach(lib davix neon)
+ list(APPEND DAVIX_LIBRARIES ${DAVIX_PREFIX}/lib/${libname})
+ endforeach()
+
+-string(REPLACE "-Werror" "" DAVIX_CXX_FLAGS ${CMAKE_CXX_FLAGS})
++string(REPLACE "-Werror " "" DAVIX_CXX_FLAGS "${CMAKE_CXX_FLAGS} ")
+
+ ExternalProject_Add(DAVIX
+ URL ${DAVIX_URL}/davix-${DAVIX_VERSION}.tar.gz
+diff --git a/cmake/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake
+index ad63f08cd0..36aa88d8cf 100644
+--- a/cmake/modules/SearchInstalledSoftware.cmake
++++ b/cmake/modules/SearchInstalledSoftware.cmake
+@@ -9,7 +9,7 @@ include(ExternalProject)
+ include(FindPackageHandleStandardArgs)
+
+ set(lcgpackages http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources)
+-string(REPLACE "-Werror" "" ROOT_EXTERNAL_CXX_FLAGS ${CMAKE_CXX_FLAGS})
++string(REPLACE "-Werror " "" ROOT_EXTERNAL_CXX_FLAGS "${CMAKE_CXX_FLAGS} ")
+
+ macro(find_package)
+ if(NOT "${ARGV0}" IN_LIST ROOT_BUILTINS)
+diff --git a/interpreter/CMakeLists.txt b/interpreter/CMakeLists.txt
+index 0f43893443..1274758410 100644
+--- a/interpreter/CMakeLists.txt
++++ b/interpreter/CMakeLists.txt
+@@ -140,7 +140,7 @@ if(gcctoolchain)
+ endif()
+
+ # We will not fix llvm or clang.
+-string(REPLACE "-Werror" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
++string(REPLACE "-Werror " "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ")
+
+ if(LLVM_SHARED_LINKER_FLAGS)
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${LLVM_SHARED_LINKER_FLAGS}")
+--
+2.26.2
+
diff --git a/root-xmlmodify-dep.patch b/root-xmlmodify-dep.patch
deleted file mode 100644
index 02a0498..0000000
--- a/root-xmlmodify-dep.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From a651fb9278438d5ad7e4ddbf6082a791e1187e0d Mon Sep 17 00:00:00 2001
-From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
-Date: Fri, 13 Mar 2020 12:58:14 +0100
-Subject: [PATCH] The test that creates the file must run before the test that
- modifies it
-
----
- tutorials/CMakeLists.txt | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt
-index f920da54ee..b1abd03d36 100644
---- a/tutorials/CMakeLists.txt
-+++ b/tutorials/CMakeLists.txt
-@@ -375,6 +375,7 @@ set(unfold-testUnfold5b-depends tutorial-unfold-testUnfold5a)
- set(unfold-testUnfold7d-depends tutorial-unfold-testUnfold7c)
- set(unfold-testUnfold7c-depends tutorial-unfold-testUnfold7b)
- set(unfold-testUnfold7b-depends tutorial-unfold-testUnfold7a)
-+set(xml-xmlmodifyfile-depends tutorial-xml-xmlnewfile)
- set(xml-xmlreadfile-depends tutorial-xml-xmlnewfile)
- set(roofit-rf503_wspaceread-depends tutorial-roofit-rf502_wspacewrite)
- set(histfactory-example-depends tutorial-roostats-CreateExampleFile)
---
-2.24.1
-
diff --git a/root-xrootd5-compat.patch b/root-xrootd5-compat.patch
new file mode 100644
index 0000000..5a7ecda
--- /dev/null
+++ b/root-xrootd5-compat.patch
@@ -0,0 +1,109 @@
+From c81fab4b81b4767abdca612f33604b252fc665b7 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Tue, 14 Jul 2020 08:10:00 +0200
+Subject: [PATCH] Compatibility with xrootd 5.
+
+The old client library libXrdClient is removed.
+Also XrdSysDNS is removed.
+
+Do not build the legacy XProofD file server and client (already
+disabled by default - give error if someone enables it while building
+with xrootd 5).
+
+Do not build the old libNetx.
+
+Build the new libNetNG without XrdSysDNS, use XrdNetAddr instead.
+---
+ cmake/modules/SearchInstalledSoftware.cmake | 15 +++++++++++++++
+ net/CMakeLists.txt | 2 +-
+ net/netxng/src/TNetXNGSystem.cxx | 18 +++++++++++++++++-
+ 3 files changed, 33 insertions(+), 2 deletions(-)
+
+diff --git a/cmake/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake
+index 12f9d65371..3578303c5d 100644
+--- a/cmake/modules/SearchInstalledSoftware.cmake
++++ b/cmake/modules/SearchInstalledSoftware.cmake
+@@ -925,6 +925,21 @@ if(xrootd AND XROOTD_VERSIONNUM VERSION_GREATER 300030005)
+ else()
+ set(netxng OFF)
+ endif()
++if(xrootd AND XROOTD_VERSIONNUM VERSION_LESS 500000000)
++ set(netx ON)
++else()
++ set(netx OFF)
++endif()
++if(xrootd AND XROOTD_VERSIONNUM VERSION_GREATER_EQUAL 500000000)
++ if(xproofd)
++ if(fail-on-missing)
++ message(FATAL_ERROR "XROOTD is version 5 or greater. The legacy xproofd servers can not be built with this version. Use -Dxproofd:BOOL=OFF to disable.")
++ else()
++ message(STATUS "XROOTD is version 5 or greater. The legacy xproofd servers can not be built with this version. Disbaling xproofd' option.")
++ set(xproofd OFF CACHE BOOL "Disabled because xrootd version is 5 or greater" FORCE)
++ endif()
++ endif()
++endif()
+
+ #---Alien support----------------------------------------------------------------
+ if(alien)
+diff --git a/net/CMakeLists.txt b/net/CMakeLists.txt
+index 953d9c5d6f..676eb63672 100644
+--- a/net/CMakeLists.txt
++++ b/net/CMakeLists.txt
+@@ -11,7 +11,7 @@ if(NOT WIN32 AND ssl)
+ add_subdirectory(rpdutils)
+ endif()
+
+-if(xrootd)
++if(netx)
+ add_subdirectory(netx)
+ endif()
+
+diff --git a/net/netxng/src/TNetXNGSystem.cxx b/net/netxng/src/TNetXNGSystem.cxx
+index 6599aa2c2f..d30a12554f 100644
+--- a/net/netxng/src/TNetXNGSystem.cxx
++++ b/net/netxng/src/TNetXNGSystem.cxx
+@@ -27,7 +27,12 @@
+ #include "TVirtualMutex.h"
+ #include <XrdCl/XrdClFileSystem.hh>
+ #include <XrdCl/XrdClXRootDResponses.hh>
++#include <XrdVersion.hh>
++#if XrdVNUMBER >= 40000
++#include <XrdNet/XrdNetAddr.hh>
++#else
+ #include <XrdSys/XrdSysDNS.hh>
++#endif
+
+
+ ////////////////////////////////////////////////////////////////////////////////
+@@ -352,6 +357,16 @@ Int_t TNetXNGSystem::Locate(const char *path, TString &endurl)
+ TNamed *hn = 0;
+ if (fgAddrFQDN.GetSize() <= 0 ||
+ !(hn = dynamic_cast<TNamed *>(fgAddrFQDN.FindObject(loc)))) {
++#if XrdVNUMBER >= 40000
++ XrdNetAddr netaddr;
++ netaddr.Set(loc.Data());
++ const char* name = netaddr.Name();
++ if (name) {
++ hn = new TNamed(loc.Data(), name);
++ } else {
++ hn = new TNamed(loc, loc);
++ }
++#else
+ char *addr[1] = {0}, *name[1] = {0};
+ int naddr = XrdSysDNS::getAddrName(loc.Data(), 1, addr, name);
+ if (naddr == 1) {
+@@ -359,9 +374,10 @@ Int_t TNetXNGSystem::Locate(const char *path, TString &endurl)
+ } else {
+ hn = new TNamed(loc, loc);
+ }
+- fgAddrFQDN.Add(hn);
+ free(addr[0]);
+ free(name[0]);
++#endif
++ fgAddrFQDN.Add(hn);
+ if (gDebug > 0)
+ Info("Locate","caching host name: %s", hn->GetTitle());
+ }
+--
+2.26.2
+
diff --git a/root.spec b/root.spec
index 2929aa2..57d53a7 100644
--- a/root.spec
+++ b/root.spec
@@ -1,19 +1,8 @@
-%if %{?fedora}%{!?fedora:0} >= 29 || %{?rhel}%{!?rhel:0} >= 8
-# Use Python 3 as the default python for Fedora >= 29
-# - Give python3 libPyROOT higher priority than python2 libPyROOT
-# - The python scripts in root-cli use python3-root
-# - Let root-tmva-python use python3-numpy
-# - Don't build python2-jupyroot/jsmva packages
-# - Use Python 3 during testing and documentation build
-%global py3default 1
-%global py2prio 10
-%global py3prio 20
-%global __pythondef %{__python3}
+%if %{?fedora}%{!?fedora:0} >= 32 || %{?rhel}%{!?rhel:0} >= 9
+%undefine __cmake_in_source_build
+%global oldcmakemacro 0
%else
-%global py3default 0
-%global py2prio 20
-%global py3prio 10
-%global __pythondef %{__python2}
+%global oldcmakemacro 1
%endif
%if %{?fedora}%{!?fedora:0} >= 31 || %{?rhel}%{!?rhel:0} >= 8
@@ -23,8 +12,12 @@
%global buildpy2 1
%endif
+%if %{buildpy2}
+%global python2_version_uscore %(tr . _ <<< "%{python2_version}")
+%endif
+%global python3_version_uscore %(tr . _ <<< "%{python3_version}")
+
%global py3_soabi %([ -x %{__python3} ] && %{__python3} -c "from distutils import sysconfig; print(sysconfig.get_config_vars().get('SOABI'))")
-%global py3_other_soabi %([ -x %{__python3_other} ] && %{__python3_other} -c "from distutils import sysconfig; print(sysconfig.get_config_vars().get('SOABI'))")
%if %{?fedora}%{!?fedora:0} >= 24 || %{?rhel}%{!?rhel:0} >= 8
# Building the experimental ROOT 7 classes requires c++-14.
@@ -44,14 +37,13 @@
# Do not create .orig files when patching source
%global _default_patch_flags --no-backup-if-mismatch
-# Do not generate autoprovides for libJupyROOT.so
-# Note: the ones from libPyROOT.so we do want though
-%global __provides_exclude_from ^(%{?python2_sitearch:%{python2_sitearch}|}%{python3_sitearch}%{?python3_other_sitearch:|%{python3_other_sitearch}})/libJupyROOT\\.so$
+# Do not generate autoprovides for Python modules
+%global __provides_exclude_from ^(%{?python2_sitearch:%{python2_sitearch}|}%{python3_sitearch})/lib.*\\.so$
Name: root
-Version: 6.20.06
+Version: 6.22.00
%global libversion %(cut -d. -f 1-2 <<< %{version})
-Release: 2%{?dist}
+Release: 1%{?dist}
Summary: Numerical data analysis framework
License: LGPLv2+
@@ -101,37 +93,56 @@ Patch9: %{name}-dont-install-minicern.patch
Patch10: %{name}-clang-ignore-gcc-options.patch
# Don't create documentation notebooks
Patch11: %{name}-doc-no-notebooks.patch
-# Don't run tutorial requiring firefox during doc generation
-Patch12: %{name}-v7-line.patch
-# Fix ppc64le build with gcc 10
-# https://github.com/root-project/root/pull/5157
-Patch13: %{name}-clang-altivec-vector.patch
+# Don't run tutorials that crash during doc generation
+Patch12: %{name}-doxygen-crash.patch
+# Compatibility with older gtest
+Patch13: %{name}-old-gtest-compat.patch
# Fix -Wmissing-field-initializers in python bindings for
# Python 3.8 and 3.9
# https://github.com/root-project/root/pull/5158
Patch14: %{name}-python3.8-object.patch
-# Correct broken assert statements
-# https://github.com/root-project/root/pull/5159
-Patch15: %{name}-FitData-assert-fix.patch
-# The test that creates the file must run before the test that
-# modifies it
-# https://github.com/root-project/root/pull/5160
-Patch16: %{name}-xmlmodify-dep.patch
-# Size types should use %z
-# https://github.com/root-project/root/pull/5161
-Patch17: %{name}-format-fix.patch
# Run some test on 32 bit that upstream has disabled
-Patch18: %{name}-32bit-tests.patch
-# The file was moved - update path
-# https://github.com/root-project/root/pull/5162
-Patch19: %{name}-moved-file.patch
+Patch15: %{name}-32bit-tests.patch
# Workaround for initialization problems for PyROOT on
# EPEL7 ppc64le
# https://sft.its.cern.ch/jira/browse/ROOT-10622
-Patch20: %{name}-epel7-ppc64le-pyroot.patch
+Patch16: %{name}-epel7-ppc64le-pyroot.patch
# Fix test failure on ppc64le and aarch64
# https://github.com/root-project/root/pull/5867
-Patch21: %{name}-roostats-test-ppc64le-aarch64.patch
+Patch17: %{name}-roostats-test-ppc64le-aarch64.patch
+# Fix too aggressive -Werror replacements
+# https://github.com/root-project/root/pull/5902
+Patch18: %{name}-werror-fix.patch
+# Add missing call to TFile::SetCacheFileDir in a TMVA tutorial
+# https://github.com/root-project/root/pull/5944
+Patch19: %{name}-setcachefiledir.patch
+# Adjust stressGraphics.ref
+# https://github.com/root-project/root/pull/5957
+Patch20: %{name}-stressGraphics.patch
+# Fix off-by-one error in histogram v7 bin iterator
+# https://github.com/root-project/root/pull/5958
+Patch21: %{name}-histv7-bin-iterator.patch
+# Compatibility with python 2.7 versions before 2.7.9
+# https://github.com/root-project/root/pull/5960
+Patch22: %{name}-python2-compat.patch
+# Fix the RNTuple.LargeFile test on 32bit (i386 and armv7hf)
+# https://github.com/root-project/root/pull/5977
+Patch23: %{name}-ntuple-largefile.patch
+# Fix doxygen issues
+# https://github.com/root-project/root/pull/6029
+Patch24: %{name}-doxygen-filenames.patch
+Patch25: %{name}-doxygen-endof-part1.patch
+Patch26: %{name}-doxygen-endof-part2.patch
+Patch27: %{name}-doxygen-parameter-names.patch
+Patch28: %{name}-doxygen-macro-name.patch
+Patch29: %{name}-doxygen-missing-underscore.patch
+Patch30: %{name}-doxygen-md-comments.patch
+# Fix bad regex in TProofMgr
+# https://github.com/root-project/root/pull/6030
+Patch31: %{name}-fix-bad-regex.patch
+# Compatibility with xrootd 5
+# https://github.com/root-project/root/pull/6031
+Patch32: %{name}-xrootd5-compat.patch
# s390x suffers from endian issues resulting in failing tests
# and broken documentation generation
@@ -185,9 +196,6 @@ BuildRequires: postgresql-devel
BuildRequires: python2-devel
%endif
BuildRequires: python%{python3_pkgversion}-devel
-%if %{?rhel}%{!?rhel:0} == 7
-BuildRequires: python%{python3_other_pkgversion}-devel
-%endif
%if %{root7}
%ifarch %{qt5_qtwebengine_arches}
BuildRequires: qt5-qtbase-devel
@@ -218,11 +226,7 @@ BuildRequires: graphviz-devel
BuildRequires: expat-devel
BuildRequires: pythia8-devel >= 8.1.80
BuildRequires: blas-devel
-%if %{py3default}
BuildRequires: python%{python3_pkgversion}-numpy
-%else
-BuildRequires: python2-numpy
-%endif
BuildRequires: doxygen
BuildRequires: graphviz
BuildRequires: yuicompressor
@@ -372,12 +376,15 @@ Obsoletes: %{name}-net-krb5 < 6.18.00
Obsoletes: %{name}-table < 6.18.00
%if ! %{buildpy2}
Obsoletes: python2-%{name} < %{version}-%{release}
-%endif
-%if %{py3default}
Obsoletes: python2-jupyroot < %{version}-%{release}
Obsoletes: python2-jsmva < %{version}-%{release}
Obsoletes: %{name}-rootaas < 6.08.00
%endif
+%if %{?rhel}%{!?rhel:0} == 7
+Obsoletes: python%{python3_other_pkgversion}-%{name} < 6.22.00
+Obsoletes: python%{python3_other_pkgversion}-jupyroot < 6.22.00
+Obsoletes: python%{python3_other_pkgversion}-jsmva < 6.22.00
+%endif
%description core
This package contains the core libraries used by ROOT: libCore, libNew,
@@ -415,6 +422,17 @@ Obsoletes: %{name}-reflex < 6.00.00
Cling is an interactive C++ interpreter, built on top of Clang and
LLVM compiler infrastructure.
+%package tpython
+Summary: ROOT's TPython interface
+Requires: %{name}-core%{?_isa} = %{version}-%{release}
+Requires: python%{python3_pkgversion}-%{name}%{?_isa} = %{version}-%{release}
+# Package split (tpython from Python bindings)
+Obsoletes: python%{python3_pkgversion}-%{name} < 6.22.00
+
+%description tpython
+This package contains ROOT's TPython interface. It makes it possible
+to call Python from ROOT.
+
%if %{buildpy2}
%package -n python2-%{name}
Summary: Python extension for ROOT
@@ -426,11 +444,9 @@ Requires: %{name}-io%{?_isa} = %{version}-%{release}
Requires: %{name}-tree%{?_isa} = %{version}-%{release}
%description -n python2-%{name}
-This package contains the Python extension for ROOT. This package
-provide a Python interface to ROOT, and a ROOT interface to Python.
-%endif
+This package contains the Python extension for ROOT. It makes it
+possible to use ROOT classes in Python.
-%if ! %{py3default}
%package -n python2-jupyroot
Summary: ROOT Jupyter kernel
%{?python_provide:%python_provide python2-jupyroot}
@@ -470,10 +486,12 @@ Obsoletes: %{name}-python%{python3_pkgversion} < 6.08.00
Requires: %{name}-core%{?_isa} = %{version}-%{release}
Requires: %{name}-io%{?_isa} = %{version}-%{release}
Requires: %{name}-tree%{?_isa} = %{version}-%{release}
+# Package split (tpython from Python bindings)
+Obsoletes: python%{python3_pkgversion}-%{name} < 6.22.00
%description -n python%{python3_pkgversion}-%{name}
-This package contains the Python extension for ROOT. This package
-provide a Python interface to ROOT, and a ROOT interface to Python.
+This package contains the Python extension for ROOT. It makes it
+possible to use ROOT classes in Python.
%package -n python%{python3_pkgversion}-jupyroot
Summary: ROOT Jupyter kernel
@@ -504,44 +522,12 @@ Requires: %{name}-tmva = %{version}-%{release}
%description -n python%{python3_pkgversion}-jsmva
TMVA interface used by JupyROOT.
-%if %{?rhel}%{!?rhel:0} == 7
-%package -n python%{python3_other_pkgversion}-%{name}
-Summary: Python extension for ROOT
-%{?python_provide:%python_provide python%{?python3_other_pkgversion}-%{name}}
-Requires: %{name}-core%{?_isa} = %{version}-%{release}
-Requires: %{name}-io%{?_isa} = %{version}-%{release}
-Requires: %{name}-tree%{?_isa} = %{version}-%{release}
-
-%description -n python%{python3_other_pkgversion}-%{name}
-This package contains the Python extension for ROOT. This package
-provide a Python interface to ROOT, and a ROOT interface to Python.
-
-%package -n python%{python3_other_pkgversion}-jupyroot
-Summary: ROOT Jupyter kernel
-%{?python_provide:%python_provide python%{?python3_other_pkgversion}-jupyroot}
-Requires: python%{python3_other_pkgversion}-%{name}%{?_isa} = %{version}-%{release}
-Requires: python%{python3_other_pkgversion}-jsmva = %{version}-%{release}
-Requires: %{name}-core%{?_isa} = %{version}-%{release}
-Requires: %{name}-notebook = %{version}-%{release}
-# python-metakernel not available - some functionality missing
-
-%description -n python%{python3_other_pkgversion}-jupyroot
-The Jupyter kernel for the ROOT notebook.
-
-%package -n python%{python3_other_pkgversion}-jsmva
-Summary: TMVA interface used by JupyROOT
-BuildArch: noarch
-%{?python_provide:%python_provide python%{?python3_other_pkgversion}-jsmva}
-Requires: %{name}-tmva = %{version}-%{release}
-
-%description -n python%{python3_other_pkgversion}-jsmva
-TMVA interface used by JupyROOT.
-%endif
-
%package r
Summary: R interface for ROOT
Requires: %{name}-core%{?_isa} = %{version}-%{release}
Requires: %{name}-matrix%{?_isa} = %{version}-%{release}
+Requires: R-Rcpp-devel
+Requires: R-RInside-devel
%description r
ROOT R is an interface in ROOT to call R functions using an R C++
@@ -794,6 +780,7 @@ Requires: %{name}-gui%{?_isa} = %{version}-%{release}
Requires: %{name}-hist%{?_isa} = %{version}-%{release}
Requires: %{name}-mathcore%{?_isa} = %{version}-%{release}
Requires: %{name}-tree%{?_isa} = %{version}-%{release}
+Requires: %{name}-tree-player%{?_isa} = %{version}-%{release}
%description gui-fitpanel
This package contains a library to show a pop-up dialog when fitting
@@ -1560,11 +1547,7 @@ Summary: Toolkit for multivariate data analysis (Python)
License: BSD
Requires: %{name}-core%{?_isa} = %{version}-%{release}
Requires: %{name}-tmva%{?_isa} = %{version}-%{release}
-%if %{py3default}
Requires: python%{python3_pkgversion}-numpy
-%else
-Requires: python2-numpy
-%endif
%description tmva-python
Python integration with TMVA.
@@ -1670,11 +1653,7 @@ An algorithm to unfold distributions from detector to truth level.
%package cli
Summary: ROOT command line utilities
BuildArch: noarch
-%if %{py3default}
Requires: python%{python3_pkgversion}-%{name} = %{version}-%{release}
-%else
-Requires: python2-%{name} = %{version}-%{release}
-%endif
%description cli
The ROOT command line utilities is a set of scripts for common tasks
@@ -1728,16 +1707,26 @@ Requires: %{name}-tree-player%{?_isa} = %{version}-%{release}
%description graf3d-eve7
This package contains a library for defining event displays in ROOT 7.
+%package gui-browsable
+Summary: GUI browsable (ROOT 7)
+Requires: %{name}-core%{?_isa} = %{version}-%{release}
+Requires: %{name}-graf-gpadv7%{?_isa} = %{version}-%{release}
+Requires: %{name}-hist%{?_isa} = %{version}-%{release}
+Requires: %{name}-io%{?_isa} = %{version}-%{release}
+Requires: %{name}-tree%{?_isa} = %{version}-%{release}
+
+%description gui-browsable
+This package contains GUI browsable components for ROOT 7.
+
%package gui-browserv7
Summary: Browser (ROOT 7)
Requires: %{name}-core%{?_isa} = %{version}-%{release}
Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release}
Requires: %{name}-graf-gpadv7%{?_isa} = %{version}-%{release}
+Requires: %{name}-gui-browsable%{?_isa} = %{version}-%{release}
Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release}
Requires: %{name}-gui-webgui6%{?_isa} = %{version}-%{release}
-Requires: %{name}-hist%{?_isa} = %{version}-%{release}
Requires: %{name}-io%{?_isa} = %{version}-%{release}
-Requires: %{name}-tree%{?_isa} = %{version}-%{release}
%description gui-browserv7
This package contains a file browser for ROOT 7.
@@ -1847,6 +1836,17 @@ This package contains an ntuple extension for ROOT 7.
%patch19 -p1
%patch20 -p1
%patch21 -p1
+%patch22 -p1
+%patch23 -p1
+%patch24 -p1
+%patch25 -p1
+%patch26 -p1
+%patch27 -p1
+%patch28 -p1
+%patch29 -p1
+%patch30 -p1
+%patch31 -p1
+%patch32 -p1
# Remove bundled sources in order to be sure they are not used
# * afterimage
@@ -1855,9 +1855,7 @@ rm -rf graf2d/asimage/src/libAfterImage
rm -rf graf3d/ftgl/src graf3d/ftgl/inc
# * freetype
rm -rf graf2d/freetype/src
-# * glew
-rm -rf graf3d/glew/src graf3d/glew/inc graf3d/glew/isystem
-# * davix, lz4, openssl, pcre, xxhash, zlib, zstd
+# * davix, glew, lz4, openssl, pcre, xxhash, zlib, zstd
rm -rf builtins
# * lzma
rm -rf core/lzma/src/*.tar.gz
@@ -1887,20 +1885,6 @@ chmod -x interpreter/llvm/src/lib/Target/X86/X86EvexToVex.cpp
# Remove unsupported man page macros
sed -e '/^\.UR/d' -e '/^\.UE/d' -i man/man1/*
-%if %{py3default}
-%if %{buildpy2}
-# Build PyROOT for python 2
-cp -pr bindings/pyroot bindings/python2
-%endif
-%else
-# Build PyROOT for python 3
-cp -pr bindings/pyroot bindings/python3
-%endif
-%if %{?rhel}%{!?rhel:0} == 7
-# Build PyROOT for python 3 (other)
-cp -pr bindings/pyroot bindings/python3oth
-%endif
-
# Work around missing libraries in Fedora's gmock packaging < 1.8.0
if [ ! -r %{_libdir}/libgmock.so ] ; then
mkdir googlemock
@@ -1933,12 +1917,13 @@ for s in etc/notebook/JsMVA/css/*.css ; do
yuicompressor ${s} -o ${s%.css}.min.css
done
-mkdir builddir
-pushd builddir
-
# Avoid overlinking (this used to be the default with the old configure script)
LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
+%if %{oldcmakemacro}
+mkdir %{_vpath_builddir}
+pushd %{_vpath_builddir}
+%endif
%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8
%cmake \
%else
@@ -1995,6 +1980,7 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
-Ddataframe:BOOL=ON \
-Ddavix:BOOL=ON \
-Ddcache:BOOL=ON \
+ -Ddev:BOOL=OFF \
-Dexceptions:BOOL=ON \
-Dfcgi:BOOL=ON \
-Dfftw3:BOOL=ON \
@@ -2027,8 +2013,8 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
-Dpgsql:BOOL=ON \
-Dpythia6:BOOL=OFF \
-Dpythia8:BOOL=ON \
- -DPYTHON_EXECUTABLE:PATH=%{__pythondef} \
-Dpyroot:BOOL=ON \
+ -Dpyroot_legacy:BOOL=OFF \
%ifarch %{qt5_qtwebengine_arches}
-Dqt5web:BOOL=ON \
%else
@@ -2064,127 +2050,23 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
-Dx11:BOOL=ON \
-Dxml:BOOL=ON \
-Dxrootd:BOOL=ON \
+ -Dxproofd:BOOL=ON \
-Dfail-on-missing:BOOL=ON \
-Dtesting:BOOL=ON \
-Dclingtest:BOOL=OFF \
-Dcoverage:BOOL=OFF \
-Droottest:BOOL=OFF \
-Drootbench:BOOL=OFF \
+ -Dasan:BOOL=OFF \
+%if %{oldcmakemacro}
..
-
-%if %{py3default}
-%if %{buildpy2}
-# Build PyROOT for python 2 (prep)
-cp -pr bindings/pyroot bindings/python2
-%endif
-%else
-# Build PyROOT for python 3 (prep)
-cp -pr bindings/pyroot bindings/python3
-%endif
-%if %{?rhel}%{!?rhel:0} == 7
-# Build PyROOT for python 3 (other) (prep)
-cp -pr bindings/pyroot bindings/python3oth
-%endif
-
-make %{?_smp_mflags}
-
-%if %{py3default}
-
-%if %{buildpy2}
-
-# Build PyROOT for python 2
-mkdir python2
-mv CMakeFiles/Makefile2 CMakeFiles/Makefile2.save
-sed 's!bindings/pyroot!bindings/python2!g' CMakeFiles/Makefile2.save \
- > CMakeFiles/Makefile2
-py2i=`pkg-config --cflags-only-I python2 | sed -e 's/-I//' -e 's/\s*$//'`
-py2l=`pkg-config --libs-only-l python2 | sed -e 's/-l//' -e 's/\s*$//'`
-if pkg-config --exists python3-embed ; then
- py3i=`pkg-config --cflags-only-I python3-embed | sed -e 's/-I//' -e 's/\s*$//'`
- py3l=`pkg-config --libs-only-l python3-embed | sed -e 's/-l//' -e 's/\s*$//'`
-else
- py3i=`pkg-config --cflags-only-I python3 | sed -e 's/-I//' -e 's/\s*$//'`
- py3l=`pkg-config --libs-only-l python3 | sed -e 's/-l//' -e 's/\s*$//'`
-fi
-sed -e "s,${py3i},${py2i},g" -e "s,-l${py3l},-l${py2l},g" \
- -e "s,lib${py3l},lib${py2l},g" \
- -e 's,%{__python}%{python3_version},%{__python2},g' \
- -e 's,%{__python3},%{__python2},g' \
- -e 's,lib/libPyROOT,python2/libPyROOT,g' \
- -e 's,lib/libJupyROOT,python2/libJupyROOT,g' \
- -e 's!bindings/pyroot!bindings/python2!g' \
- -i `find bindings/python2 -type f`
-make %{?_smp_mflags} -f bindings/python2/Makefile PyROOT JupyROOT
-mv CMakeFiles/Makefile2.save CMakeFiles/Makefile2
-
-%endif
-
-%else
-
-# Build PyROOT for python 3
-mkdir python3
-mv CMakeFiles/Makefile2 CMakeFiles/Makefile2.save
-sed 's!bindings/pyroot!bindings/python3!g' CMakeFiles/Makefile2.save \
- > CMakeFiles/Makefile2
-py2i=`pkg-config --cflags-only-I python2 | sed -e 's/-I//' -e 's/\s*$//'`
-py2l=`pkg-config --libs-only-l python2 | sed -e 's/-l//' -e 's/\s*$//'`
-if pkg-config --exists python3-embed ; then
- py3i=`pkg-config --cflags-only-I python3-embed | sed -e 's/-I//' -e 's/\s*$//'`
- py3l=`pkg-config --libs-only-l python3-embed | sed -e 's/-l//' -e 's/\s*$//'`
-else
- py3i=`pkg-config --cflags-only-I python3 | sed -e 's/-I//' -e 's/\s*$//'`
- py3l=`pkg-config --libs-only-l python3 | sed -e 's/-l//' -e 's/\s*$//'`
-fi
-sed -e "s,${py2i},${py3i},g" -e "s,-l${py2l},-l${py3l},g" \
- -e "s,%{_libdir}/python%{python2_version}/config/lib${py2l}.so,%{_libdir}/lib${py3l}.so,g" \
- -e "s,lib${py2l},lib${py3l},g" \
- -e 's,%{__python}%{python2_version},%{__python3},g' \
- -e 's,%{__python2},%{__python3},g' \
- -e 's,lib/libPyROOT,python3/libPyROOT,g' \
- -e 's,lib/libJupyROOT,python3/libJupyROOT,g' \
- -e 's!bindings/pyroot!bindings/python3!g' \
- -i `find bindings/python3 -type f`
-make %{?_smp_mflags} -f bindings/python3/Makefile PyROOT JupyROOT
-mv CMakeFiles/Makefile2.save CMakeFiles/Makefile2
-
-%endif
-
-%if %{?rhel}%{!?rhel:0} == 7
-
-# Build PyROOT for python 3 (other)
-mkdir python3oth
-mv CMakeFiles/Makefile2 CMakeFiles/Makefile2.save
-sed 's!bindings/pyroot!bindings/python3oth!g' CMakeFiles/Makefile2.save \
- > CMakeFiles/Makefile2
-py2i=`pkg-config --cflags-only-I python2 | sed -e 's/-I//' -e 's/\s*$//'`
-py2l=`pkg-config --libs-only-l python2 | sed -e 's/-l//' -e 's/\s*$//'`
-if pkg-config --exists python-%{python3_other_version}-embed ; then
- py3i=`pkg-config --cflags-only-I python-%{python3_other_version}-embed | sed -e 's/-I//' -e 's/\s*$//'`
- py3l=`pkg-config --libs-only-l python-%{python3_other_version}-embed | sed -e 's/-l//' -e 's/\s*$//'`
-else
- py3i=`pkg-config --cflags-only-I python-%{python3_other_version} | sed -e 's/-I//' -e 's/\s*$//'`
- py3l=`pkg-config --libs-only-l python-%{python3_other_version} | sed -e 's/-l//' -e 's/\s*$//'`
-fi
-sed -e "s,${py2i},${py3i},g" -e "s,-l${py2l},-l${py3l},g" \
- -e "s,%{_libdir}/python%{python2_version}/config/lib${py2l}.so,%{_libdir}/lib${py3l}.so,g" \
- -e "s,lib${py2l},lib${py3l},g" \
- -e 's,%{__python}%{python2_version},%{__python3_other},g' \
- -e 's,%{__python2},%{__python3_other},g' \
- -e 's,lib/libPyROOT,python3oth/libPyROOT,g' \
- -e 's,lib/libJupyROOT,python3oth/libJupyROOT,g' \
- -e 's!bindings/pyroot!bindings/python3oth!g' \
- -i `find bindings/python3oth -type f`
-make %{?_smp_mflags} -f bindings/python3oth/Makefile PyROOT JupyROOT
-mv CMakeFiles/Makefile2.save CMakeFiles/Makefile2
-
+popd
%endif
-popd
+%make_build -C %{_vpath_builddir}
%install
-pushd builddir
-make %{?_smp_mflags} install DESTDIR=%{buildroot}
-popd
+%make_install -C %{_vpath_builddir}
# Do emacs byte compilation
emacs -batch -no-site-file -f batch-byte-compile \
@@ -2210,9 +2092,7 @@ install -p -m 644 %{SOURCE7} %{buildroot}%{_pkgdocdir}
mkdir -p %{buildroot}%{_datadir}/%{name}/cli
mv %{buildroot}%{_libdir}/%{name}/cmdLineUtils.py* \
%{buildroot}%{_datadir}/%{name}/cli
-%if %{py3default}
rm %{buildroot}%{_libdir}/%{name}/__pycache__/cmdLineUtils.*
-%endif
sed -e '/^\#!/d' -i %{buildroot}%{_datadir}/%{name}/cli/cmdLineUtils.py
# Install GDB pretty printers to auto load safe path
@@ -2228,167 +2108,80 @@ install -p -m 644 build/gdbPrinters/libRooFitCore.so-gdb.py \
%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8
# This is the default for Fedora 30+, set it for Fedora 28-29
%global _python_bytecompile_extra 0
-%py_byte_compile %{__pythondef} %{buildroot}%{_datadir}/%{name}/cli
+%py_byte_compile %{__python3} %{buildroot}%{_datadir}/%{name}/cli
%py_byte_compile %{__python3} %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name}
%endif
-%if %{py3default}
-
-# Move the python modules to sitearch/sitelib
-mkdir -p %{buildroot}%{python3_sitearch}
-mv %{buildroot}%{_libdir}/%{name}/libPyROOT.so.%{version} \
- %{buildroot}%{python3_sitearch}/libPyROOT.%{py3_soabi}.so
-mv %{buildroot}%{_libdir}/%{name}/libPyROOT.rootmap \
- %{buildroot}%{python3_sitearch}/libPyROOT.rootmap
-mv %{buildroot}%{_libdir}/%{name}/libPyROOT_rdict.pcm \
- %{buildroot}%{python3_sitearch}/libPyROOT_rdict.pcm
-mv %{buildroot}%{_libdir}/%{name}/libJupyROOT.so.%{version} \
- %{buildroot}%{python3_sitearch}/libJupyROOT.so
-mv %{buildroot}%{_libdir}/%{name}/*.py %{buildroot}%{python3_sitearch}
-mv %{buildroot}%{_libdir}/%{name}/__pycache__ %{buildroot}%{python3_sitearch}
-rm %{buildroot}%{_libdir}/%{name}/JupyROOT/README.md
-rm -rf %{buildroot}%{_libdir}/%{name}/JupyROOT/src
-mv %{buildroot}%{_libdir}/%{name}/JupyROOT %{buildroot}%{python3_sitearch}
-rm %{buildroot}%{_libdir}/%{name}/libJupyROOT.so.%{libversion}
-rm %{buildroot}%{_libdir}/%{name}/libJupyROOT.so
-
-mkdir -p %{buildroot}%{python3_sitelib}
-mv %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python3_sitelib}
-
-# Create empty .egg-info files so that rpm auto-generates provides
-touch %{buildroot}%{python3_sitearch}/ROOT-%{version}.egg-info
-touch %{buildroot}%{python3_sitearch}/JupyROOT-%{version}.egg-info
-touch %{buildroot}%{python3_sitelib}/JsMVA-%{version}.egg-info
-
%if %{buildpy2}
-tmpdir=`mktemp -d`
-
-%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8
-DESTDIR=$tmpdir cmake -P builddir/bindings/python2/cmake_install.cmake
-%else
-DESTDIR=$tmpdir cmake3 -P builddir/bindings/python2/cmake_install.cmake
-%endif
-
+# Move the python modules to sitearch/sitelib
mkdir -p %{buildroot}%{python2_sitearch}
-mv $tmpdir%{_libdir}/%{name}/libPyROOT.so.%{version} \
- %{buildroot}%{python2_sitearch}/libPyROOT.so
-mv $tmpdir%{_libdir}/%{name}/libPyROOT.rootmap \
- %{buildroot}%{python2_sitearch}/libPyROOT.rootmap
-mv $tmpdir%{_libdir}/%{name}/libPyROOT_rdict.pcm \
- %{buildroot}%{python2_sitearch}/libPyROOT_rdict.pcm
-mv $tmpdir%{_libdir}/%{name}/*.py* %{buildroot}%{python2_sitearch}
-rm -rf $tmpdir
+cp -pr %{buildroot}%{_libdir}/%{name}/cppyy %{buildroot}%{python2_sitearch}
+ln -s ../../root/libcppyy%{python3_version_uscore}.so.%{version} \
+ %{buildroot}%{python2_sitearch}/libcppyy%{python2_version_uscore}.so
-# Create empty .egg-info files so that rpm auto-generates provides
-touch %{buildroot}%{python2_sitearch}/ROOT-%{version}.egg-info
+cp -pr %{buildroot}%{_libdir}/%{name}/cppyy_backend %{buildroot}%{python2_sitearch}
+ln -s ../../root/libcppyy_backend%{python3_version_uscore}.so.%{version} \
+ %{buildroot}%{python2_sitearch}/libcppyy_backend%{python2_version_uscore}.so
-%endif
+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
-%else
-
-# Move the python modules to sitearch/sitelib
-mkdir -p %{buildroot}%{python2_sitearch}
-mv %{buildroot}%{_libdir}/%{name}/libPyROOT.so.%{version} \
- %{buildroot}%{python2_sitearch}/libPyROOT.so
-mv %{buildroot}%{_libdir}/%{name}/libPyROOT.rootmap \
- %{buildroot}%{python2_sitearch}/libPyROOT.rootmap
-mv %{buildroot}%{_libdir}/%{name}/libPyROOT_rdict.pcm \
- %{buildroot}%{python2_sitearch}/libPyROOT_rdict.pcm
-mv %{buildroot}%{_libdir}/%{name}/libJupyROOT.so.%{version} \
- %{buildroot}%{python2_sitearch}/libJupyROOT.so
-mv %{buildroot}%{_libdir}/%{name}/*.py* %{buildroot}%{python2_sitearch}
-rm %{buildroot}%{_libdir}/%{name}/JupyROOT/README.md
-rm -rf %{buildroot}%{_libdir}/%{name}/JupyROOT/src
-mv %{buildroot}%{_libdir}/%{name}/JupyROOT %{buildroot}%{python2_sitearch}
-rm %{buildroot}%{_libdir}/%{name}/libJupyROOT.so.%{libversion}
-rm %{buildroot}%{_libdir}/%{name}/libJupyROOT.so
+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}
-mv %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python2_sitelib}
+cp -pr %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python2_sitelib}
# Create empty .egg-info files so that rpm auto-generates provides
touch %{buildroot}%{python2_sitearch}/ROOT-%{version}.egg-info
touch %{buildroot}%{python2_sitearch}/JupyROOT-%{version}.egg-info
touch %{buildroot}%{python2_sitelib}/JsMVA-%{version}.egg-info
-tmpdir=`mktemp -d`
-
-%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8
-DESTDIR=$tmpdir cmake -P builddir/bindings/python3/cmake_install.cmake
-%else
-DESTDIR=$tmpdir cmake3 -P builddir/bindings/python3/cmake_install.cmake
%endif
+# Move the python modules to sitearch/sitelib
mkdir -p %{buildroot}%{python3_sitearch}
-mv $tmpdir%{_libdir}/%{name}/libPyROOT.so.%{version} \
- %{buildroot}%{python3_sitearch}/libPyROOT.%{py3_soabi}.so
-mv $tmpdir%{_libdir}/%{name}/libPyROOT.rootmap \
- %{buildroot}%{python3_sitearch}/libPyROOT.rootmap
-mv $tmpdir%{_libdir}/%{name}/libPyROOT_rdict.pcm \
- %{buildroot}%{python3_sitearch}/libPyROOT_rdict.pcm
-mv $tmpdir%{_libdir}/%{name}/libJupyROOT.so.%{version} \
- %{buildroot}%{python3_sitearch}/libJupyROOT.so
-mv $tmpdir%{_libdir}/%{name}/*.py %{buildroot}%{python3_sitearch}
-mv $tmpdir%{_libdir}/%{name}/__pycache__ %{buildroot}%{python3_sitearch}
-rm $tmpdir%{_libdir}/%{name}/JupyROOT/README.md
-rm -rf $tmpdir%{_libdir}/%{name}/JupyROOT/src
-mv $tmpdir%{_libdir}/%{name}/JupyROOT %{buildroot}%{python3_sitearch}
-rm $tmpdir%{_libdir}/%{name}/libJupyROOT.so.%{libversion}
-rm $tmpdir%{_libdir}/%{name}/libJupyROOT.so
-
-mkdir -p %{buildroot}%{python3_sitelib}
-mv $tmpdir%{_libdir}/%{name}/JsMVA %{buildroot}%{python3_sitelib}
-
-rm -rf $tmpdir
-
-# Create empty .egg-info files so that rpm auto-generates provides
-touch %{buildroot}%{python3_sitearch}/ROOT-%{version}.egg-info
-touch %{buildroot}%{python3_sitearch}/JupyROOT-%{version}.egg-info
-touch %{buildroot}%{python3_sitelib}/JsMVA-%{version}.egg-info
-
-%endif
-%if %{?rhel}%{!?rhel:0} == 7
+mv %{buildroot}%{_libdir}/%{name}/cppyy %{buildroot}%{python3_sitearch}
+ln -s ../../root/libcppyy%{python3_version_uscore}.so.%{version} \
+ %{buildroot}%{python3_sitearch}/libcppyy%{python3_version_uscore}.%{py3_soabi}.so
-tmpdir=`mktemp -d`
+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
-DESTDIR=$tmpdir cmake3 -P builddir/bindings/python3oth/cmake_install.cmake
+mv %{buildroot}%{_libdir}/%{name}/ROOT %{buildroot}%{python3_sitearch}
+mv %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python3_version_uscore}.so.%{version} \
+ %{buildroot}%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}.%{py3_soabi}.so
+rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python3_version_uscore}.so.%{libversion}
+rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python3_version_uscore}.so
-mkdir -p %{buildroot}%{python3_other_sitearch}
-mv $tmpdir%{_libdir}/%{name}/libPyROOT.so.%{version} \
- %{buildroot}%{python3_other_sitearch}/libPyROOT.%{py3_other_soabi}.so
-mv $tmpdir%{_libdir}/%{name}/libPyROOT.rootmap \
- %{buildroot}%{python3_other_sitearch}/libPyROOT.rootmap
-mv $tmpdir%{_libdir}/%{name}/libPyROOT_rdict.pcm \
- %{buildroot}%{python3_other_sitearch}/libPyROOT_rdict.pcm
-mv $tmpdir%{_libdir}/%{name}/libJupyROOT.so.%{version} \
- %{buildroot}%{python3_other_sitearch}/libJupyROOT.so
-mv $tmpdir%{_libdir}/%{name}/*.py %{buildroot}%{python3_other_sitearch}
-mv $tmpdir%{_libdir}/%{name}/__pycache__ %{buildroot}%{python3_other_sitearch}
-rm $tmpdir%{_libdir}/%{name}/JupyROOT/README.md
-rm -rf $tmpdir%{_libdir}/%{name}/JupyROOT/src
-mv $tmpdir%{_libdir}/%{name}/JupyROOT %{buildroot}%{python3_other_sitearch}
-rm $tmpdir%{_libdir}/%{name}/libJupyROOT.so.%{libversion}
-rm $tmpdir%{_libdir}/%{name}/libJupyROOT.so
-
-mkdir -p %{buildroot}%{python3_other_sitelib}
-mv $tmpdir%{_libdir}/%{name}/JsMVA %{buildroot}%{python3_other_sitelib}
+mv %{buildroot}%{_libdir}/%{name}/JupyROOT %{buildroot}%{python3_sitearch}
+mv %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so.%{version} \
+ %{buildroot}%{python3_sitearch}/libJupyROOT%{python3_version_uscore}.%{py3_soabi}.so
+rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so.%{libversion}
+rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so
-rm -rf $tmpdir
+mkdir -p %{buildroot}%{python3_sitelib}
+mv %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python3_sitelib}
# Create empty .egg-info files so that rpm auto-generates provides
-touch %{buildroot}%{python3_other_sitearch}/ROOT-%{version}.egg-info
-touch %{buildroot}%{python3_other_sitearch}/JupyROOT-%{version}.egg-info
-touch %{buildroot}%{python3_other_sitelib}/JsMVA-%{version}.egg-info
-
-%endif
+touch %{buildroot}%{python3_sitearch}/ROOT-%{version}.egg-info
+touch %{buildroot}%{python3_sitearch}/JupyROOT-%{version}.egg-info
+touch %{buildroot}%{python3_sitelib}/JsMVA-%{version}.egg-info
# Put jupyter stuff in the right places
mkdir -p %{buildroot}%{_datadir}/jupyter/kernels
-%if ! %{py3default}
+%if %{buildpy2}
cp -pr %{buildroot}%{_datadir}/%{name}/notebook/kernels/root \
%{buildroot}%{_datadir}/jupyter/kernels/python2-jupyroot
sed -e 's/ROOT C++/& (Python 2)/' \
@@ -2406,16 +2199,6 @@ sed -e 's/ROOT C++/& (Python 3)/' \
sed -e '/^\#!/d' \
-i %{buildroot}%{python3_sitearch}/JupyROOT/kernel/rootkernel.py
-%if %{?rhel}%{!?rhel:0} == 7
-cp -pr %{buildroot}%{_datadir}/%{name}/notebook/kernels/root \
- %{buildroot}%{_datadir}/jupyter/kernels/python%{python3_other_pkgversion}-jupyroot
-sed -e 's/ROOT C++/& (Python %{python3_other_version})/' \
- -e 's!python[0-9]*\.[0-9]*!%{__python3_other}!' \
- -i %{buildroot}%{_datadir}/jupyter/kernels/python%{python3_other_pkgversion}-jupyroot/kernel.json
-sed -e '/^\#!/d' \
- -i %{buildroot}%{python3_other_sitearch}/JupyROOT/kernel/rootkernel.py
-%endif
-
rm -rf %{buildroot}%{_datadir}/%{name}/notebook/custom
rm -rf %{buildroot}%{_datadir}/%{name}/notebook/html
rm -rf %{buildroot}%{_datadir}/%{name}/notebook/kernels
@@ -2438,7 +2221,7 @@ EOF
# Avoid /usr/bin/env shebangs (and adapt cli to cmdLineUtils location)
sed -e 's!/usr/bin/env bash!/bin/bash!' -i %{buildroot}%{_bindir}/root-config
-sed -e 's!/usr/bin/env python.*!%{__pythondef}!' \
+sed -e 's!/usr/bin/env python.*!%{__python3}!' \
-e '/import sys/d' \
-e '/import cmdLineUtils/iimport sys' \
-e '/import cmdLineUtils/isys.path.insert(0, "%{_datadir}/%{name}/cli")' \
@@ -2451,9 +2234,9 @@ sed -e 's!/usr/bin/env python.*!%{__pythondef}!' \
%{buildroot}%{_bindir}/rootprint \
%{buildroot}%{_bindir}/rootrm \
%{buildroot}%{_bindir}/rootslimtree
-sed -e 's!/usr/bin/env python.*!%{__pythondef}!' \
+sed -e 's!/usr/bin/env python.*!%{__python3}!' \
-i %{buildroot}%{_bindir}/rootdrawtree
-sed -e 's!/usr/bin/env python!%{__pythondef}!' \
+sed -e 's!/usr/bin/env python!%{__python3}!' \
-i %{buildroot}%{_datadir}/%{name}/dictpch/makepch.py \
%{buildroot}%{_pkgdocdir}/tutorials/histfactory/example.py \
%{buildroot}%{_pkgdocdir}/tutorials/histfactory/makeQuickModel.py \
@@ -2491,6 +2274,9 @@ rm TGuiFactory/P030_TWebGuiFactory.C
rm TSQLServer/P040_TOracleServer.C
rm TSystem/P030_TAlienSystem.C
rm TVirtualGeoConverter/P010_TGeoVGConverter.C
+%if %{root7} == 0
+rm TVirtualGeoPainter/P020_REveGeoPainter.C
+%endif
rm TVirtualGLImp/P020_TGWin32GL.C
rm TVirtualMonitoringWriter/P010_TMonaLisaWriter.C
rm TVirtualX/P030_TGWin32.C
@@ -2539,22 +2325,53 @@ for x in df014_CsvDataSource_MuRun2010B_cpp.csv \
ln -sf ../../files/tutorials/df014_CsvDataSource_MuRun2010B.csv $x
done
# Create the py-hsimple.root file in advance (needed as input)
-ROOTIGNOREPREFIX=1 PATH=${PWD}/../../builddir/bin:${PATH} \
- ROOTSYS=${PWD}/../../builddir \
- LD_LIBRARY_PATH=${PWD}/../../builddir/lib \
- PYTHONPATH=${PWD}/../../builddir/lib \
- %{__pythondef} ../../tutorials/pyroot/hsimple.py
-ROOTIGNOREPREFIX=1 PATH=${PWD}/../../builddir/bin:${PATH} \
- ROOTSYS=${PWD}/../../builddir \
- LD_LIBRARY_PATH=${PWD}/../../builddir/lib \
- PYTHONPATH=${PWD}/../../builddir/lib \
- make DOXYGEN_OUTPUT_DIRECTORY=${PWD}/doc PYTHON_EXECUTABLE=%{__pythondef}
+ROOTIGNOREPREFIX=1 PATH=${PWD}/../../%{_vpath_builddir}/bin:${PATH} \
+ ROOTSYS=${PWD}/../../%{_vpath_builddir} \
+ LD_LIBRARY_PATH=${PWD}/../../%{_vpath_builddir}/lib \
+ PYTHONPATH=${PWD}/../../%{_vpath_builddir}/lib \
+ %{__python3} ../../tutorials/pyroot/hsimple.py
+ROOTIGNOREPREFIX=1 PATH=${PWD}/../../%{_vpath_builddir}/bin:${PATH} \
+ ROOTSYS=${PWD}/../../%{_vpath_builddir} \
+ LD_LIBRARY_PATH=${PWD}/../../%{_vpath_builddir}/lib \
+ PYTHONPATH=${PWD}/../../%{_vpath_builddir}/lib \
+ make DOXYGEN_OUTPUT_DIRECTORY=${PWD}/doc PYTHON_EXECUTABLE=%{__python3}
mv doc/html %{buildroot}%{_pkgdocdir}/html
popd
+# Workaround for doxygen 1.8.17 and 1.8.18 doing slightly different things
+# on 32 and 64 bit
+doxver=$(doxygen -v)
+if [ "$doxver" = "1.8.17" -o "$doxver" = "1.8.18" ] ; then
+ for f in \
+ classDouble__t.html \
+ classPdfCacheElem.html \
+ classPdfCacheElem__inherit__graph.map \
+ classPdfCacheElem__inherit__graph.md5 \
+ classPdfCacheElem__inherit__graph.svg \
+ classROOT_1_1Experimental_1_1REveMagFieldDuo__coll__graph_org.svg \
+ classROOT_1_1Fit_1_1BasicFCN__coll__graph_org.svg \
+ classROOT_1_1Math_1_1MemGradFunHandler__coll__graph_org.svg \
+ classTAttImage__coll__graph_org.svg \
+ classTImagePalette__coll__graph_org.svg \
+ inherit_graph_1796.map \
+ inherit_graph_1796.md5 \
+ inherit_graph_1796.svg \
+ structEvent__t__coll__graph_org.svg \
+ structGLUvertex__coll__graph_org.svg \
+ structROOT_1_1Experimental_1_1REveBoxSet_1_1BEllipticCone__t__coll__graph_org.svg \
+ structROOT_1_1Internal_1_1RootCling_1_1DriverConfig__coll__graph_org.svg \
+ structTEveDigitSet_1_1DigitBase__t__inherit__graph.map \
+ structTEveDigitSet_1_1DigitBase__t__inherit__graph.md5 \
+ structTEveDigitSet_1_1DigitBase__t__inherit__graph.svg \
+ structTGL5DPainter_1_1Surf__t__coll__graph_org.svg ; do
+ [ -r %{buildroot}%{_pkgdocdir}/html/${f} ] || \
+ touch %{buildroot}%{_pkgdocdir}/html/${f}
+ done
+fi
+
# Create includelist files ...
-for f in `find builddir -name cmake_install.cmake -a '!' -path '*/llvm/*'` ; do
- l=`sed 's!builddir/\(.*\)/cmake_install.cmake!includelist-\1!' <<< $f`
+for f in `find %{_vpath_builddir} -name cmake_install.cmake -a '!' -path '*/llvm/*'` ; do
+ l=`sed 's!%{_vpath_builddir}/\(.*\)/cmake_install.cmake!includelist-\1!' <<< $f`
l=`tr / - <<< $l`
tmpdir=`mktemp -d`
%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8
@@ -2570,10 +2387,11 @@ done
cat includelist-core-{[^mw],m[^au]}* > includelist-core
cat includelist-geom-geom* > includelist-geom
cat includelist-graf2d-x11ttf >> includelist-graf2d-x11
+cat includelist-graf3d-rglew >> includelist-graf3d-gl
cat includelist-net-netx* > includelist-netx
%check
-pushd builddir
+pushd %{_vpath_builddir}
pushd test
ln -s ../../files files
popd
@@ -2651,6 +2469,10 @@ popd
# - tutorial-tmva-tmva103_Application
# reads input data over network
# http://root.cern/files/tmva101.root
+#
+# - pyunittests-pyroot-numbadeclare
+# - tutorial-pyroot-pyroot004_NumbaDeclare-py
+# these tests require the numba python module which is not available
excluded="\
test-stressIOPlugins|\
tutorial-dataframe-df101_h1Analysis|\
@@ -2675,7 +2497,9 @@ gtest-tmva-tmva-test-rreader|\
gtest-tmva-tmva-test-rstandardscaler|\
tutorial-tmva-tmva003_RReader|\
tutorial-tmva-tmva004_RStandardScaler|\
-tutorial-tmva-tmva103_Application"
+tutorial-tmva-tmva103_Application|\
+pyunittests-pyroot-numbadeclare|\
+tutorial-pyroot-pyroot004_NumbaDeclare-py"
%ifarch %{ix86} %{arm}
# Tests failing on 32 bit architectures (dataframe)
@@ -2683,6 +2507,7 @@ tutorial-tmva-tmva103_Application"
# - gtest-tree-dataframe-test-dataframe-cache
# - gtest-tree-dataframe-test-dataframe-callbacks
# - gtest-tree-dataframe-test-dataframe-colnames
+# - gtest-tree-dataframe-test-dataframe-display
# - gtest-tree-dataframe-test-dataframe-friends
# - gtest-tree-dataframe-test-dataframe-helpers
# - gtest-tree-dataframe-test-dataframe-interface
@@ -2695,6 +2520,7 @@ excluded="${excluded}|\
gtest-tree-dataframe-test-dataframe-cache|\
gtest-tree-dataframe-test-dataframe-callbacks|\
gtest-tree-dataframe-test-dataframe-colnames|\
+gtest-tree-dataframe-test-dataframe-display|\
gtest-tree-dataframe-test-dataframe-friends|\
gtest-tree-dataframe-test-dataframe-helpers|\
gtest-tree-dataframe-test-dataframe-interface|\
@@ -2720,6 +2546,13 @@ excluded="${excluded}|tutorial-roofit-rf611_weightedfits"
%endif
%endif
+%ifarch %{power64} aarch64
+# This test fails on ppc64le and aarch64 (but not on x86_64)
+# The interpreted version works though, only compiled version fails
+# - test-stresshistofit
+excluded="${excluded}|test-stresshistofit"
+%endif
+
make test ARGS="%{?_smp_mflags} --output-on-failure -E \"${excluded}\""
popd
@@ -2742,142 +2575,20 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor >/dev/null 2>&1 || :
%endif
%if %{buildpy2}
-
-%post -n python2-%{name}
+%pre -n python2-%{name}
if [ -r /var/lib/alternatives/libPyROOT.so ] ; then
- grep -q %{_libdir}/%{name}/libPyROOT.so.%{version} \
- /var/lib/alternatives/libPyROOT.so || \
- sed 's!\(%{_libdir}/%{name}/libPyROOT\.so\.\).*!\1%{version}!' \
- -i /var/lib/alternatives/libPyROOT.so
- for alt in `grep python2 /var/lib/alternatives/libPyROOT.so` ; do
- if [ "$alt" != "%{python2_sitearch}/libPyROOT.so" ] ; then
- %{_sbindir}/update-alternatives --remove libPyROOT.so $alt
- fi
+ for alt in `grep python2.*/.*.so /var/lib/alternatives/libPyROOT.so` ; do
+ %{_sbindir}/update-alternatives --remove libPyROOT.so $alt
done
fi
-for f in libPyROOT.rootmap libPyROOT_rdict.pcm ; do
- if [ -r %{_libdir}/%{name}/$f -a ! -h %{_libdir}/%{name}/$f ]; then
- rm %{_libdir}/%{name}/$f
- fi
-done
-%{_sbindir}/update-alternatives \
- --install %{_libdir}/%{name}/libPyROOT.so.%{version} libPyROOT.so \
- %{python2_sitearch}/libPyROOT.so %{py2prio} \
- --slave %{_libdir}/%{name}/libPyROOT.rootmap libPyROOT.rootmap \
- %{python2_sitearch}/libPyROOT.rootmap \
- --slave %{_libdir}/%{name}/libPyROOT_rdict.pcm libPyROOT_rdict.pcm \
- %{python2_sitearch}/libPyROOT_rdict.pcm
-%{?ldconfig}
-
-%preun -n python2-%{name}
-if [ $1 = 0 ] ; then
- %{_sbindir}/update-alternatives --remove \
- libPyROOT.so %{python2_sitearch}/libPyROOT.so
-fi
-
-%ldconfig_postun -n python2-%{name}
-
-%triggerpostun -n python2-%{name} -- %{name}-python
-# Uninstalling the old %{name}-python will remove the alternatives
-# for python2-%{name} - put them back in this triggerpostun script
-%{_sbindir}/update-alternatives \
- --install %{_libdir}/%{name}/libPyROOT.so.%{version} libPyROOT.so \
- %{python2_sitearch}/libPyROOT.so %{py2prio} \
- --slave %{_libdir}/%{name}/libPyROOT.rootmap libPyROOT.rootmap \
- %{python2_sitearch}/libPyROOT.rootmap \
- --slave %{_libdir}/%{name}/libPyROOT_rdict.pcm libPyROOT_rdict.pcm \
- %{python2_sitearch}/libPyROOT_rdict.pcm
-%{?ldconfig}
-
%endif
-%post -n python%{python3_pkgversion}-%{name}
+%pre -n python%{python3_pkgversion}-%{name}
if [ -r /var/lib/alternatives/libPyROOT.so ] ; then
- grep -q %{_libdir}/%{name}/libPyROOT.so.%{version} \
- /var/lib/alternatives/libPyROOT.so || \
- sed 's!\(%{_libdir}/%{name}/libPyROOT\.so\.\).*!\1%{version}!' \
- -i /var/lib/alternatives/libPyROOT.so
- for alt in `grep python3 /var/lib/alternatives/libPyROOT.so` ; do
-%if %{?rhel}%{!?rhel:0} == 7
- if [ "$alt" != "%{python3_sitearch}/libPyROOT.%{py3_soabi}.so" ] && \
- [ "$alt" != "%{python3_other_sitearch}/libPyROOT.%{py3_other_soabi}.so" ] ; then
-%else
- if [ "$alt" != "%{python3_sitearch}/libPyROOT.%{py3_soabi}.so" ] ; then
-%endif
- %{_sbindir}/update-alternatives --remove libPyROOT.so $alt
- fi
- done
-fi
-for f in libPyROOT.rootmap libPyROOT_rdict.pcm ; do
- if [ -r %{_libdir}/%{name}/$f -a ! -h %{_libdir}/%{name}/$f ]; then
- rm %{_libdir}/%{name}/$f
- fi
-done
-%{_sbindir}/update-alternatives \
- --install %{_libdir}/%{name}/libPyROOT.so.%{version} libPyROOT.so \
- %{python3_sitearch}/libPyROOT.%{py3_soabi}.so %{py3prio} \
- --slave %{_libdir}/%{name}/libPyROOT.rootmap libPyROOT.rootmap \
- %{python3_sitearch}/libPyROOT.rootmap \
- --slave %{_libdir}/%{name}/libPyROOT_rdict.pcm libPyROOT_rdict.pcm \
- %{python3_sitearch}/libPyROOT_rdict.pcm
-%{?ldconfig}
-
-%preun -n python%{python3_pkgversion}-%{name}
-if [ $1 = 0 ] ; then
- %{_sbindir}/update-alternatives --remove \
- libPyROOT.so %{python3_sitearch}/libPyROOT.%{py3_soabi}.so
-fi
-
-%ldconfig_postun -n python%{python3_pkgversion}-%{name}
-
-%triggerpostun -n python%{python3_pkgversion}-%{name} -- %{name}-python%{python3_pkgversion}
-# Uninstalling the old %{name}-python%{python3_pkgversion} will remove the alternatives
-# for python%{python3_pkgversion}-%{name} - put them back in this triggerpostun script
-%{_sbindir}/update-alternatives \
- --install %{_libdir}/%{name}/libPyROOT.so.%{version} libPyROOT.so \
- %{python3_sitearch}/libPyROOT.%{py3_soabi}.so %{py3prio} \
- --slave %{_libdir}/%{name}/libPyROOT.rootmap libPyROOT.rootmap \
- %{python3_sitearch}/libPyROOT.rootmap \
- --slave %{_libdir}/%{name}/libPyROOT_rdict.pcm libPyROOT_rdict.pcm \
- %{python3_sitearch}/libPyROOT_rdict.pcm
-%{?ldconfig}
-
-%if %{?rhel}%{!?rhel:0} == 7
-%post -n python%{python3_other_pkgversion}-%{name}
-if [ -r /var/lib/alternatives/libPyROOT.so ] ; then
- grep -q %{_libdir}/%{name}/libPyROOT.so.%{version} \
- /var/lib/alternatives/libPyROOT.so || \
- sed 's!\(%{_libdir}/%{name}/libPyROOT\.so\.\).*!\1%{version}!' \
- -i /var/lib/alternatives/libPyROOT.so
- for alt in `grep python3 /var/lib/alternatives/libPyROOT.so` ; do
- if [ "$alt" != "%{python3_sitearch}/libPyROOT.%{py3_soabi}.so" ] && \
- [ "$alt" != "%{python3_other_sitearch}/libPyROOT.%{py3_other_soabi}.so" ] ; then
- %{_sbindir}/update-alternatives --remove libPyROOT.so $alt
- fi
+ for alt in `grep python3.*/.*.so /var/lib/alternatives/libPyROOT.so` ; do
+ %{_sbindir}/update-alternatives --remove libPyROOT.so $alt
done
fi
-for f in libPyROOT.rootmap libPyROOT_rdict.pcm ; do
- if [ -r %{_libdir}/%{name}/$f -a ! -h %{_libdir}/%{name}/$f ]; then
- rm %{_libdir}/%{name}/$f
- fi
-done
-%{_sbindir}/update-alternatives \
- --install %{_libdir}/%{name}/libPyROOT.so.%{version} libPyROOT.so \
- %{python3_other_sitearch}/libPyROOT.%{py3_other_soabi}.so 5 \
- --slave %{_libdir}/%{name}/libPyROOT.rootmap libPyROOT.rootmap \
- %{python3_other_sitearch}/libPyROOT.rootmap \
- --slave %{_libdir}/%{name}/libPyROOT_rdict.pcm libPyROOT_rdict.pcm \
- %{python3_other_sitearch}/libPyROOT_rdict.pcm
-%{?ldconfig}
-
-%preun -n python%{python3_other_pkgversion}-%{name}
-if [ $1 = 0 ] ; then
- %{_sbindir}/update-alternatives --remove \
- libPyROOT.so %{python3_other_sitearch}/libPyROOT.%{py3_other_soabi}.so
-fi
-
-%ldconfig_postun -n python%{python3_other_pkgversion}-%{name}
-%endif
%post notebook
mkdir -p /etc/jupyter
@@ -2906,6 +2617,11 @@ fi
%ldconfig_scriptlets multiproc
%ldconfig_scriptlets cling
+%ldconfig_scriptlets tpython
+%if %{buildpy2}
+%ldconfig_scriptlets -n python2-%{name}
+%endif
+%ldconfig_scriptlets -n python%{python3_pkgversion}-%{name}
%ldconfig_scriptlets r
%ldconfig_scriptlets r-tools
%ldconfig_scriptlets genetic
@@ -2996,6 +2712,7 @@ fi
%ldconfig_scriptlets graf-gpadv7
%ldconfig_scriptlets graf-primitives
%ldconfig_scriptlets graf3d-eve7
+%ldconfig_scriptlets gui-browsable
%ldconfig_scriptlets gui-browserv7
%ldconfig_scriptlets gui-canvaspainter
%ldconfig_scriptlets gui-fitpanelv7
@@ -3035,6 +2752,12 @@ fi
%files fonts
%{_datadir}/%{name}/fonts
+%files doc
+%doc %{_pkgdocdir}/html
+
+%files tutorial
+%doc %{_pkgdocdir}/tutorials
+
%files core -f includelist-core
%{_bindir}/memprobe
%{_bindir}/rmkdepend
@@ -3061,6 +2784,7 @@ fi
%{_datadir}/%{name}/gdb-backtrace.sh
%{_datadir}/%{name}/gitinfo.txt
%{_datadir}/%{name}/helgrind-root.supp
+%{_datadir}/%{name}/lsan-root.supp
%{_datadir}/%{name}/Makefile.arch
%{_datadir}/%{name}/root.mimes
%{_datadir}/%{name}/system.rootauthrc
@@ -3111,98 +2835,58 @@ fi
%doc interpreter/llvm/src/llvm-README.txt
%license interpreter/llvm/src/llvm-LICENSE.TXT
-%files doc
-%doc %{_pkgdocdir}/html
-
-%files tutorial
-%doc %{_pkgdocdir}/tutorials
+%files tpython -f includelist-bindings-tpython
+%{_libdir}/%{name}/libROOTTPython.*
+%{_libdir}/%{name}/libROOTTPython_rdict.pcm
%if %{buildpy2}
-%files -n python2-%{name} -f includelist-bindings-pyroot
-%ghost %{_libdir}/%{name}/libPyROOT.rootmap
-%{_libdir}/%{name}/libPyROOT.so
-%{_libdir}/%{name}/libPyROOT.so.%{libversion}
-%ghost %{_libdir}/%{name}/libPyROOT.so.%{version}
-%ghost %{_libdir}/%{name}/libPyROOT_rdict.pcm
-%{python2_sitearch}/libPyROOT.rootmap
-%{python2_sitearch}/libPyROOT.so
-%{python2_sitearch}/libPyROOT_rdict.pcm
-%{python2_sitearch}/ROOT.py*
+%files -n python2-%{name}
+%{python2_sitearch}/cppyy
+%{python2_sitearch}/cppyy_backend
+%{python2_sitearch}/ROOT
%{python2_sitearch}/ROOT-*.egg-info
-%{python2_sitearch}/cppyy.py*
-%{python2_sitearch}/_pythonization.py*
-%{python2_sitearch}/_rdf_utils.py*
-%endif
+%{python2_sitearch}/libcppyy%{python2_version_uscore}.so
+%{python2_sitearch}/libcppyy_backend%{python2_version_uscore}.so
+%{python2_sitearch}/libROOTPythonizations%{python2_version_uscore}.so
+%{_libdir}/%{name}/libcppyy%{python2_version_uscore}.*
+%{_libdir}/%{name}/libcppyy_backend%{python2_version_uscore}.*
+%{_includedir}/%{name}/CPyCppyy
-%if ! %{py3default}
%files -n python2-jupyroot
%{python2_sitearch}/JupyROOT
%{python2_sitearch}/JupyROOT-*.egg-info
-%{python2_sitearch}/libJupyROOT.so
+%{python2_sitearch}/libJupyROOT%{python2_version_uscore}.so
%{_datadir}/jupyter/kernels/python2-jupyroot
-%doc bindings/pyroot/JupyROOT/README.md
+%doc bindings/jupyroot/README.md
%files -n python2-jsmva
%{python2_sitelib}/JsMVA
%{python2_sitelib}/JsMVA-*.egg-info
%endif
-%files -n python%{python3_pkgversion}-%{name} -f includelist-bindings-pyroot
-%ghost %{_libdir}/%{name}/libPyROOT.rootmap
-%{_libdir}/%{name}/libPyROOT.so
-%{_libdir}/%{name}/libPyROOT.so.%{libversion}
-%ghost %{_libdir}/%{name}/libPyROOT.so.%{version}
-%ghost %{_libdir}/%{name}/libPyROOT_rdict.pcm
-%{python3_sitearch}/libPyROOT.rootmap
-%{python3_sitearch}/libPyROOT.%{py3_soabi}.so
-%{python3_sitearch}/libPyROOT_rdict.pcm
-%{python3_sitearch}/ROOT.py
+%files -n python%{python3_pkgversion}-%{name}
+%{python3_sitearch}/cppyy
+%{python3_sitearch}/cppyy_backend
+%{python3_sitearch}/ROOT
%{python3_sitearch}/ROOT-*.egg-info
-%{python3_sitearch}/cppyy.py
-%{python3_sitearch}/_pythonization.py
-%{python3_sitearch}/_rdf_utils.py
-%{python3_sitearch}/__pycache__/*
+%{python3_sitearch}/libcppyy%{python3_version_uscore}.%{py3_soabi}.so
+%{python3_sitearch}/libcppyy_backend%{python3_version_uscore}.so
+%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}.%{py3_soabi}.so
+%{_libdir}/%{name}/libcppyy%{python3_version_uscore}.*
+%{_libdir}/%{name}/libcppyy_backend%{python3_version_uscore}.*
+%{_includedir}/%{name}/CPyCppyy
%files -n python%{python3_pkgversion}-jupyroot
%{python3_sitearch}/JupyROOT
%{python3_sitearch}/JupyROOT-*.egg-info
-%{python3_sitearch}/libJupyROOT.so
+%{python3_sitearch}/libJupyROOT%{python3_version_uscore}.%{py3_soabi}.so
%{_datadir}/jupyter/kernels/python%{python3_pkgversion}-jupyroot
-%doc bindings/pyroot/JupyROOT/README.md
+%doc bindings/jupyroot/README.md
%files -n python%{python3_pkgversion}-jsmva
%{python3_sitelib}/JsMVA
%{python3_sitelib}/JsMVA-*.egg-info
-%if %{?rhel}%{!?rhel:0} == 7
-%files -n python%{python3_other_pkgversion}-%{name} -f includelist-bindings-pyroot
-%ghost %{_libdir}/%{name}/libPyROOT.rootmap
-%{_libdir}/%{name}/libPyROOT.so
-%{_libdir}/%{name}/libPyROOT.so.%{libversion}
-%ghost %{_libdir}/%{name}/libPyROOT.so.%{version}
-%ghost %{_libdir}/%{name}/libPyROOT_rdict.pcm
-%{python3_other_sitearch}/libPyROOT.rootmap
-%{python3_other_sitearch}/libPyROOT.%{py3_other_soabi}.so
-%{python3_other_sitearch}/libPyROOT_rdict.pcm
-%{python3_other_sitearch}/ROOT.py
-%{python3_other_sitearch}/ROOT-*.egg-info
-%{python3_other_sitearch}/cppyy.py
-%{python3_other_sitearch}/_pythonization.py
-%{python3_other_sitearch}/_rdf_utils.py
-%{python3_other_sitearch}/__pycache__/*
-
-%files -n python%{python3_other_pkgversion}-jupyroot
-%{python3_other_sitearch}/JupyROOT
-%{python3_other_sitearch}/JupyROOT-*.egg-info
-%{python3_other_sitearch}/libJupyROOT.so
-%{_datadir}/jupyter/kernels/python%{python3_other_pkgversion}-jupyroot
-%doc bindings/pyroot/JupyROOT/README.md
-
-%files -n python%{python3_other_pkgversion}-jsmva
-%{python3_other_sitelib}/JsMVA
-%{python3_other_sitelib}/JsMVA-*.egg-info
-%endif
-
%files r -f includelist-bindings-r
%{_libdir}/%{name}/libRInterface.*
%{_libdir}/%{name}/libRInterface_rdict.pcm
@@ -3750,6 +3434,16 @@ fi
%files graf3d-eve7 -f includelist-graf3d-eve7
%{_libdir}/%{name}/libROOTEve.*
%{_libdir}/%{name}/libROOTEve_rdict.pcm
+%{_datadir}/%{name}/plugins/TVirtualGeoPainter/P020_REveGeoPainter.C
+
+%files gui-browsable -f includelist-gui-browsable
+%{_libdir}/%{name}/libROOTBrowsable.*
+%{_libdir}/%{name}/libROOTBrowsable_rdict.pcm
+%{_libdir}/%{name}/libROOTHistDrawProvider.*
+%{_libdir}/%{name}/libROOTLeafDraw6Provider.*
+%{_libdir}/%{name}/libROOTLeafDraw7Provider.*
+%{_libdir}/%{name}/libROOTObjectDraw6Provider.*
+%{_libdir}/%{name}/libROOTObjectDraw7Provider.*
%files gui-browserv7 -f includelist-gui-browserv7
%{_libdir}/%{name}/libROOTBrowserv7.*
@@ -3791,7 +3485,34 @@ fi
%endif
%changelog
-* Thu Jul 11 2020 Jeff Law <law(a)redhat.com> - 6.20.06-2
+* Tue Jul 14 2020 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.22.00-1
+- Update to 6.22.00
+- Drop patches accepted upstream
+ - root-FitData-assert-fix.patch
+ - root-clang-altivec-vector.patch
+ - root-format-fix.patch
+ - root-moved-file.patch
+ - root-xmlmodify-dep.patch
+- New and improved Python bindings
+- The new Python bindings can be built for both Python 2 and Python 3
+ out of the box. Dropped the workaround in specfile for this (EPEL 7)
+- Dropped the python3-other packages (EPEL 7)
+- The new Python bindings has split the TPython interface to a separate
+ library. Now in a separate root-tpython package
+- root-tpython and root-tmva-python are now using Python 3 on EPEL 7
+- New subpackage root-gui-browsable
+- New patches (submitted upstream)
+ - Fix too aggressive -Werror replacements
+ - Add missing call to TFile::SetCacheFileDir in a TMVA tutorial
+ - Adjust stressGraphics.ref
+ - Fix off-by-one error in histogram v7 bin iterator
+ - Compatibility with python 2.7 versions before 2.7.9
+ - Fix the RNTuple.LargeFile test on 32bit (i386 and armv7hf)
+ - Fix doxygen issues
+ - Fix bad regex in TProofMgr
+ - Compatibility with xrootd 5
+
+* Sat Jul 11 2020 Jeff Law <law(a)redhat.com> - 6.20.06-2
- Disable LTO
* Thu Jun 11 2020 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.20.06-1
diff --git a/sources b/sources
index 86bdac6..b6ae6df 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (root-6.20.06.tar.xz) = 791f472cb40200c5f8b79efd1803044914bb8e41dc1f424e90508c059d548be7913417a08a770e0f041c9070af8dc6bbddf5366c3db2b1dac43d417992aade22
-SHA512 (root-testfiles.tar.xz) = 7006c6591b587c24cf75dc4f6ed9586165b27102539fdde580d0a95853fcec7e9980a881e49e64a09f90af341a8c8fd2f493305ed88e07af144fabd438ba283e
+SHA512 (root-6.22.00.tar.xz) = ca2f72d691619d8afadd3c20f7e3b19d4a12f9f5a38bda340ee4c9fd10993c78db4016a1904851c75478657d971a72f18ad4b1f1bdf61da8be8a0e6de0e1753a
+SHA512 (root-testfiles.tar.xz) = 945aef1a0cf5af672d4ab84b0ac00b76118e93008ff72447658ee82d9e955a1540af3ff7126e701418872f1d91b92ee96d4985840a519036c42732023a13f00f
3 years, 11 months
Architecture specific change in rpms/root.git
by githook-noreply@fedoraproject.org
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=b2cd7526352f1....
Change:
+%ifarch %{power64} aarch64
Thanks.
Full change:
============
commit b2cd7526352f1e83dddc9407a3b723e246ab6223
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Wed Jul 15 04:44:51 2020 +0200
Update to 6.22.00
Drop patches accepted upstream
root-FitData-assert-fix.patch
root-clang-altivec-vector.patch
root-format-fix.patch
root-moved-file.patch
root-xmlmodify-dep.patch
New and improved Python bindings
The new Python bindings can be built for both Python 2 and Python 3
out of the box. Dropped the workaround in specfile for this (EPEL 7)
Dropped the python3-other packages (EPEL 7)
The new Python bindings has split the TPython interface to a separate
library. Now in a separate root-tpython package
root-tpython and root-tmva-python are now using Python 3 on EPEL 7
New subpackage root-gui-browsable
New patches (submitted upstream)
Fix too aggressive -Werror replacements
Add missing call to TFile::SetCacheFileDir in a TMVA tutorial
Adjust stressGraphics.ref
Fix off-by-one error in histogram v7 bin iterator
Compatibility with python 2.7 versions before 2.7.9
Fix the RNTuple.LargeFile test on 32bit (i386 and armv7hf)
Fix doxygen issues
Fix bad regex in TProofMgr
Compatibility with xrootd 5
diff --git a/root-32bit-dataframe.patch b/root-32bit-dataframe.patch
index e47b913..310171f 100644
--- a/root-32bit-dataframe.patch
+++ b/root-32bit-dataframe.patch
@@ -1,6 +1,6 @@
-diff -ur root-6.20.02.orig/bindings/pyroot/ROOT.py root-6.20.02/bindings/pyroot/ROOT.py
---- root-6.20.02.orig/bindings/pyroot/ROOT.py 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/ROOT.py 2020-03-15 19:50:25.303179253 +0100
+diff -ur root-6.22.00.orig/bindings/pyroot_legacy/ROOT.py root-6.22.00/bindings/pyroot_legacy/ROOT.py
+--- root-6.22.00.orig/bindings/pyroot_legacy/ROOT.py 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot_legacy/ROOT.py 2020-06-29 09:07:41.574798580 +0200
@@ -438,9 +438,7 @@
# This function is injected as method to the respective classes in Pythonize.cxx.
_root._RDataFrameAsNumpy = _RDataFrameAsNumpy
@@ -12,9 +12,9 @@ diff -ur root-6.20.02.orig/bindings/pyroot/ROOT.py root-6.20.02/bindings/pyroot/
### RINT command emulation ------------------------------------------------------
-diff -ur root-6.20.02.orig/build/unix/makepchinput.py root-6.20.02/build/unix/makepchinput.py
---- root-6.20.02.orig/build/unix/makepchinput.py 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/build/unix/makepchinput.py 2020-03-15 19:50:25.304179242 +0100
+diff -ur root-6.22.00.orig/build/unix/makepchinput.py root-6.22.00/build/unix/makepchinput.py
+--- root-6.22.00.orig/build/unix/makepchinput.py 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/build/unix/makepchinput.py 2020-06-29 09:07:41.639798769 +0200
@@ -252,9 +252,6 @@
"math/vdt",
"tmva/rmva"]
@@ -25,9 +25,9 @@ diff -ur root-6.20.02.orig/build/unix/makepchinput.py root-6.20.02/build/unix/ma
accepted = isAnyPatternInString(PCHPatternsWhitelist,dirName) and \
not isAnyPatternInString(PCHPatternsBlacklist,dirName)
-diff -ur root-6.20.02.orig/tree/dataframe/test/dataframe_cache.cxx root-6.20.02/tree/dataframe/test/dataframe_cache.cxx
---- root-6.20.02.orig/tree/dataframe/test/dataframe_cache.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/tree/dataframe/test/dataframe_cache.cxx 2020-03-15 19:50:09.075351525 +0100
+diff -ur root-6.22.00.orig/tree/dataframe/test/dataframe_cache.cxx root-6.22.00/tree/dataframe/test/dataframe_cache.cxx
+--- root-6.22.00.orig/tree/dataframe/test/dataframe_cache.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tree/dataframe/test/dataframe_cache.cxx 2020-06-29 09:07:41.640798772 +0200
@@ -224,8 +224,6 @@
}
@@ -37,16 +37,19 @@ diff -ur root-6.20.02.orig/tree/dataframe/test/dataframe_cache.cxx root-6.20.02/
TEST(Cache, Regex)
{
-@@ -334,5 +332,3 @@
-
+@@ -335,8 +333,6 @@
gSystem->Unlink(fileName);
}
--
+
-#endif // R__B64
-diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_arrow.cxx root-6.20.02/tree/dataframe/test/datasource_arrow.cxx
---- root-6.20.02.orig/tree/dataframe/test/datasource_arrow.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/tree/dataframe/test/datasource_arrow.cxx 2020-03-15 19:50:09.075351525 +0100
-@@ -163,8 +163,6 @@
+-
+ // ROOT-10563
+ TEST(Cache, Alias)
+ {
+diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_arrow.cxx root-6.22.00/tree/dataframe/test/datasource_arrow.cxx
+--- root-6.22.00.orig/tree/dataframe/test/datasource_arrow.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tree/dataframe/test/datasource_arrow.cxx 2020-06-29 09:07:41.645798787 +0200
+@@ -177,8 +177,6 @@
}
#endif
@@ -55,15 +58,15 @@ diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_arrow.cxx root-6.20.02
TEST(RArrowDS, FromARDF)
{
std::unique_ptr<RDataSource> tds(new RArrowDS(createTestTable(), {}));
-@@ -236,5 +234,3 @@
+@@ -250,5 +248,3 @@
}
#endif // R__USE_IMT
-
-#endif // R__B64
-diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_csv.cxx root-6.20.02/tree/dataframe/test/datasource_csv.cxx
---- root-6.20.02.orig/tree/dataframe/test/datasource_csv.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/tree/dataframe/test/datasource_csv.cxx 2020-03-15 19:57:05.490930922 +0100
+diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_csv.cxx root-6.22.00/tree/dataframe/test/datasource_csv.cxx
+--- root-6.22.00.orig/tree/dataframe/test/datasource_csv.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tree/dataframe/test/datasource_csv.cxx 2020-06-29 09:07:41.645798787 +0200
@@ -195,8 +195,6 @@
}
#endif
@@ -79,9 +82,9 @@ diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_csv.cxx root-6.20.02/t
#endif // R__USE_IMT
-
-#endif // R__B64
-diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_root.cxx root-6.20.02/tree/dataframe/test/datasource_root.cxx
---- root-6.20.02.orig/tree/dataframe/test/datasource_root.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/tree/dataframe/test/datasource_root.cxx 2020-03-15 19:50:09.076351514 +0100
+diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_root.cxx root-6.22.00/tree/dataframe/test/datasource_root.cxx
+--- root-6.22.00.orig/tree/dataframe/test/datasource_root.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tree/dataframe/test/datasource_root.cxx 2020-06-29 09:07:41.649798799 +0200
@@ -117,8 +117,6 @@
}
#endif
@@ -97,9 +100,9 @@ diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_root.cxx root-6.20.02/
#endif // R__USE_IMT
-
-#endif // R__B64
-diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_trivial.cxx root-6.20.02/tree/dataframe/test/datasource_trivial.cxx
---- root-6.20.02.orig/tree/dataframe/test/datasource_trivial.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/tree/dataframe/test/datasource_trivial.cxx 2020-03-15 19:50:09.076351514 +0100
+diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_trivial.cxx root-6.22.00/tree/dataframe/test/datasource_trivial.cxx
+--- root-6.22.00.orig/tree/dataframe/test/datasource_trivial.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tree/dataframe/test/datasource_trivial.cxx 2020-06-29 09:07:41.654798814 +0200
@@ -132,8 +132,6 @@
EXPECT_EQ(*tdfAll.Count(), 20ULL);
}
@@ -115,10 +118,10 @@ diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_trivial.cxx root-6.20.
#endif // R__USE_IMT
-
-#endif // R__B64
-diff -ur root-6.20.02.orig/tutorials/CMakeLists.txt root-6.20.02/tutorials/CMakeLists.txt
---- root-6.20.02.orig/tutorials/CMakeLists.txt 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/tutorials/CMakeLists.txt 2020-03-15 19:59:35.808335176 +0100
-@@ -255,10 +255,6 @@
+diff -ur root-6.22.00.orig/tutorials/CMakeLists.txt root-6.22.00/tutorials/CMakeLists.txt
+--- root-6.22.00.orig/tutorials/CMakeLists.txt 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tutorials/CMakeLists.txt 2020-06-29 09:07:41.655798816 +0200
+@@ -257,10 +257,6 @@
set(root7_veto v7/ntuple/ntpl004_dimuon.C)
endif()
@@ -129,7 +132,7 @@ diff -ur root-6.20.02.orig/tutorials/CMakeLists.txt root-6.20.02/tutorials/CMake
#---These ones are disabled !!! ------------------------------------
set(extra_veto
legacy/benchmarks.C
-@@ -311,7 +307,6 @@
+@@ -313,7 +309,6 @@
${classic_veto}
${pythia_veto}
${root7_veto}
@@ -137,11 +140,11 @@ diff -ur root-6.20.02.orig/tutorials/CMakeLists.txt root-6.20.02/tutorials/CMake
${xrootd_veto}
${mlp_veto}
${spectrum_veto}
-@@ -513,7 +508,6 @@
+@@ -526,7 +521,6 @@
list(REMOVE_ITEM pytutorials ${pyveto})
if(NOT dataframe)
- set(dataframe_veto_py dataframe/*.py)
file(GLOB dataframe_veto_py RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} dataframe/*.py tmva/tmva*.py)
list(REMOVE_ITEM pytutorials ${dataframe_veto_py})
- list(REMOVE_ITEM pytutorials pyroot/pyroot002_TTreeAsMatrix.py)
+ list(REMOVE_ITEM pytutorials
diff --git a/root-FitData-assert-fix.patch b/root-FitData-assert-fix.patch
deleted file mode 100644
index 8e9ba00..0000000
--- a/root-FitData-assert-fix.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 07c5d640dd53c83c8b3350b520170fd9a5526495 Mon Sep 17 00:00:00 2001
-From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
-Date: Fri, 13 Mar 2020 14:09:07 +0100
-Subject: [PATCH] Correct broken assert statements
-
----
- math/mathcore/src/FitData.cxx | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/math/mathcore/src/FitData.cxx b/math/mathcore/src/FitData.cxx
-index a2be20ab0d..0bad8ff7cd 100644
---- a/math/mathcore/src/FitData.cxx
-+++ b/math/mathcore/src/FitData.cxx
-@@ -200,9 +200,9 @@ namespace ROOT {
- /// dummy virtual destructor
- FitData::~FitData()
- {
-+ assert(fWrapped == fCoords.empty());
- for (unsigned int i = 0; i < fDim; i++) {
-- assert(fWrapped == fCoords.empty());
-- assert(fCoords.empty() || &fCoords[i].front() == fCoordsPtr[i]);
-+ assert(fWrapped || fCoords[i].empty() || &fCoords[i].front() == fCoordsPtr[i]);
- }
- if (fpTmpCoordVector) delete[] fpTmpCoordVector;
-
---
-2.24.1
-
diff --git a/root-clang-altivec-vector.patch b/root-clang-altivec-vector.patch
deleted file mode 100644
index 4648ccc..0000000
--- a/root-clang-altivec-vector.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From f0e7ee696e416f5cb42619889fcbff7db64f17e1 Mon Sep 17 00:00:00 2001
-From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
-Date: Fri, 13 Mar 2020 17:09:03 +0100
-Subject: [PATCH] Fix ppc64le compilation with gcc 10
-
-Backported from llvm upstream
-https://reviews.llvm.org/D74129
----
- interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp b/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp
-index dbe6b4db94..2096ba6982 100644
---- a/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp
-+++ b/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp
-@@ -2373,7 +2373,7 @@ bool Lexer::SkipBlockComment(Token &Result, const char *CurPtr,
- '/', '/', '/', '/', '/', '/', '/', '/'
- };
- while (CurPtr+16 <= BufferEnd &&
-- !vec_any_eq(*(const vector unsigned char*)CurPtr, Slashes))
-+ !vec_any_eq(*(const __vector unsigned char*)CurPtr, Slashes))
- CurPtr += 16;
- #else
- // Scan for '/' quickly. Many block comments are very large.
---
-2.24.1
-
diff --git a/root-doxygen-crash.patch b/root-doxygen-crash.patch
new file mode 100644
index 0000000..b27f5ce
--- /dev/null
+++ b/root-doxygen-crash.patch
@@ -0,0 +1,33 @@
+diff -ur root-6.22.00.orig/tutorials/tmva/tmva003_RReader.C root-6.22.00/tutorials/tmva/tmva003_RReader.C
+--- root-6.22.00.orig/tutorials/tmva/tmva003_RReader.C 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tutorials/tmva/tmva003_RReader.C 2020-07-09 18:58:36.854733120 +0200
+@@ -5,7 +5,6 @@
+ /// TMVA XML files.
+ ///
+ /// \macro_code
+-/// \macro_output
+ ///
+ /// \date July 2019
+ /// \author Stefan Wunsch
+diff -ur root-6.22.00.orig/tutorials/tmva/tmva103_Application.C root-6.22.00/tutorials/tmva/tmva103_Application.C
+--- root-6.22.00.orig/tutorials/tmva/tmva103_Application.C 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tutorials/tmva/tmva103_Application.C 2020-07-09 18:58:36.855733122 +0200
+@@ -6,7 +6,6 @@
+ /// event-by-event inference, batch inference and pipelines with RDataFrame.
+ ///
+ /// \macro_code
+-/// \macro_output
+ ///
+ /// \date December 2018
+ /// \author Stefan Wunsch
+diff -ur root-6.22.00.orig/tutorials/v7/line.cxx root-6.22.00/tutorials/v7/line.cxx
+--- root-6.22.00.orig/tutorials/v7/line.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tutorials/v7/line.cxx 2020-07-09 18:58:42.202745047 +0200
+@@ -6,7 +6,6 @@
+ /// "normal" coordinates' system and changing the line color linearly from black
+ /// to red.
+ ///
+-/// \macro_image (line.png)
+ /// \macro_code
+ ///
+ /// \date 2018-03-18
diff --git a/root-doxygen-endof-part1.patch b/root-doxygen-endof-part1.patch
new file mode 100644
index 0000000..974b60e
--- /dev/null
+++ b/root-doxygen-endof-part1.patch
@@ -0,0 +1,49 @@
+From c454b8d31a840898a709452525267a8404a05d24 Mon Sep 17 00:00:00 2001
+From: Enrico Guiraud <enrico.guiraud(a)cern.ch>
+Date: Tue, 30 Jun 2020 17:05:13 +0200
+Subject: [PATCH] [NFC][DF] Minor improvements to formatting and docs of
+ Display
+
+---
+ tree/dataframe/inc/ROOT/RDF/RDisplay.hxx | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/tree/dataframe/inc/ROOT/RDF/RDisplay.hxx b/tree/dataframe/inc/ROOT/RDF/RDisplay.hxx
+index 90058f0706..9f5e3623ae 100644
+--- a/tree/dataframe/inc/ROOT/RDF/RDisplay.hxx
++++ b/tree/dataframe/inc/ROOT/RDF/RDisplay.hxx
+@@ -105,10 +105,10 @@ private:
+ }
+
+ ////////////////////////////////////////////////////////////////////////////
+- /// Appends collection.size() cling::printValue call to the stringstream.
++ /// Appends collection.size() cling::printValue calls to the stringstream.
+ /// \tparam T the type of the event to convert
+ /// \param[in] stream Where the conversion function call will be chained.
+- /// \param[in] element The event to convert to its string representation
++ /// \param[in] collection The event to convert to its string representation
+ /// \param[in] index To which column the event belongs to
+ /// \return true, the event is a collection
+ /// This function chains a sequence of call to cling::printValue, one for each element of the collection.
+@@ -128,7 +128,8 @@ private:
+ // For each element, append a call and feed the proper type returned by GetSplit
+ for (size_t i = 0; i < collectionSize; ++i) {
+ stream << "*((std::string*)" << ROOT::Internal::RDF::PrettyPrintAddr(&(fCollectionsRepresentations[index][i]))
+- << ") = cling::printValue((" << output[1] << "*)" << ROOT::Internal::RDF::PrettyPrintAddr(&(collection[i])) << ");";
++ << ") = cling::printValue((" << output[1] << "*)"
++ << ROOT::Internal::RDF::PrettyPrintAddr(&(collection[i])) << ");";
+ }
+ return true;
+ }
+@@ -197,7 +198,7 @@ public:
+ /// Prints the representation to the standard output
+ ///
+ /// Collections are shortened to the first and last element. The overall width
+- /// is shortened to a fixed size of TODO
++ /// is shortened to a fixed number of columns that should fit the screen width.
+ void Print() const;
+
+ ////////////////////////////////////////////////////////////////////////////
+--
+2.26.2
+
diff --git a/root-doxygen-endof-part2.patch b/root-doxygen-endof-part2.patch
new file mode 100644
index 0000000..a32b39f
--- /dev/null
+++ b/root-doxygen-endof-part2.patch
@@ -0,0 +1,978 @@
+From 1198ee3e08c46d1edc9258dbe857f66340f53a20 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Wed, 8 Jul 2020 10:39:54 +0200
+Subject: [PATCH 2/5] Fix various "end of ..." warnings from doxygen.
+
+This addresses warnings like:
+
+- end of comment block while expecting command </b>
+- end of comment block while expecting command </em>
+- end of comment block while expecting command </pre>
+- end of comment block while expecting command </s>
+- end of comment block while expecting command </sup>
+- end of comment block while expecting command </tt>
+- end of comment block while expecting command </u>
+- end of list marker found without any preceding list items
+- found </em> tag without matching <em>
+- found </li> tag without matching <li>
+- found </pre> tag without matching <pre>
+- found </sub> tag while expecting </sup>
+- found </sup> tag without matching <sup>
+- found </tt> tag without matching <tt>
+- found </ul> tag without matching <ul>
+- illegal </br> tag found
+- reached end of file while inside a 'code' block!
+- reached end of file while still inside a (nested) comment.
+- unexpected end of comment while inside <a href=...> tag
+- unexpected end of comment while inside <ul> block
+- unexpected html tag <blockquote> found within <h1> context
+- unexpected tag </h2> found
+- unexpected tag </h3> found
+- unsupported xml/html tag <it> found
+- unsupported xml/html tag </it> found
+---
+ bindings/r/inc/TRDataFrame.h | 2 +-
+ core/base/src/TEnv.cxx | 7 +-
+ core/cont/src/TBits.cxx | 2 +-
+ core/dictgen/res/DictSelectionReader.h | 140 +++++++++---------
+ core/foundation/inc/ROOT/TypeTraits.hxx | 2 +-
+ core/meta/src/TClass.cxx | 6 +-
+ core/metacling/src/TCling.cxx | 8 +-
+ graf2d/x11/src/TGX11.cxx | 6 +-
+ gui/guihtml/src/TGHtmlSizer.cxx | 4 +-
+ hist/hist/src/TSVDUnfold.cxx | 8 +-
+ hist/histpainter/src/THistPainter.cxx | 2 +-
+ hist/histv7/speed/histspeedtest.cxx | 1 -
+ hist/unfold/inc/TUnfold.h | 8 +-
+ html/src/TDocDirective.cxx | 2 +-
+ math/mathcore/inc/Math/ProbFuncMathCore.h | 8 +-
+ math/mathcore/inc/Math/QuantFuncMathCore.h | 4 +-
+ math/mathcore/src/TMath.cxx | 2 +-
+ math/mathmore/inc/Math/GSLMultiRootFinder.h | 16 +-
+ math/matrix/doc/Matrix.md | 2 +-
+ math/minuit/src/TMinuit.cxx | 4 +-
+ montecarlo/eg/src/TDatabasePDG.cxx | 2 +-
+ montecarlo/vmc/README.md | 2 +-
+ net/http/civetweb/LICENSE.md | 4 -
+ proof/proof/src/TProofMgr.cxx | 50 ++++---
+ proof/proof/src/TProofServ.cxx | 10 +-
+ roofit/histfactory/doc/index.md | 11 +-
+ .../src/MakeModelAndMeasurementsFast.cxx | 11 +-
+ roofit/roofitcore/inc/RooAbsCategory.h | 2 +-
+ roofit/roofitcore/src/RooSimPdfBuilder.cxx | 4 +-
+ tmva/tmva/src/Factory.cxx | 6 +-
+ tmva/tmva/src/Reader.cxx | 4 +-
+ tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx | 2 +-
+ tutorials/net/udpserver.c | 2 +-
+ tutorials/tmva/TMVA_CNN_Classification.C | 2 +-
+ 34 files changed, 168 insertions(+), 178 deletions(-)
+
+diff --git a/bindings/r/inc/TRDataFrame.h b/bindings/r/inc/TRDataFrame.h
+index b7bb4ed89d..dbf48e1383 100644
+--- a/bindings/r/inc/TRDataFrame.h
++++ b/bindings/r/inc/TRDataFrame.h
+@@ -136,7 +136,7 @@ namespace ROOT {
+ 2 |1
+ \endcode
+
+- </h2>Working with colunms between dataframes</h2><br>
++ <h2>Working with colunms between dataframes</h2><br>
+ \code{.cpp}
+ df2["v3"]<<df1["strings"];
+
+diff --git a/core/base/src/TEnv.cxx b/core/base/src/TEnv.cxx
+index 39c07caf21..ab697df7b7 100644
+--- a/core/base/src/TEnv.cxx
++++ b/core/base/src/TEnv.cxx
+@@ -388,10 +388,9 @@ TString TEnvRec::ExpandValue(const char *value)
+ ClassImp(TEnv);
+
+ ////////////////////////////////////////////////////////////////////////////////
+-/// Create a resource table and read the (possibly) three resource files, i.e
+-/// `$ROOTSYS/etc/system``<name>` (or `ROOTETCDIR/system``<name>`),
+-/// `$HOME/``<name>` and
+-/// `./``<name>`.
++/// Create a resource table and read the (possibly) three resource files,
++/// i.e.\ `$ROOTSYS/etc/system<name>` (or `ROOTETCDIR/system<name>`),
++/// `$HOME/<name>` and `$PWD/<name>`.
+ /// ROOT always reads ".rootrc" (in TROOT::InitSystem()). You can
+ /// read additional user defined resource files by creating additional TEnv
+ /// objects. By setting the shell variable ROOTENV_NO_HOME=1 the reading of
+diff --git a/core/cont/src/TBits.cxx b/core/cont/src/TBits.cxx
+index 155bfd4b4c..95167dd5b1 100644
+--- a/core/cont/src/TBits.cxx
++++ b/core/cont/src/TBits.cxx
+@@ -10,7 +10,7 @@ Container of bits.
+ This class provides a simple container of bits.
+ Each bit can be set and tested via the functions SetBitNumber and
+ TestBitNumber.
+- .
++
+ The default value of all bits is kFALSE.
+ The size of the container is automatically extended when a bit
+ number is either set or tested. To reduce the memory size of the
+diff --git a/core/dictgen/res/DictSelectionReader.h b/core/dictgen/res/DictSelectionReader.h
+index 52921d6237..b19135badd 100644
+--- a/core/dictgen/res/DictSelectionReader.h
++++ b/core/dictgen/res/DictSelectionReader.h
+@@ -60,34 +60,32 @@ namespace clang {
+ * By default, the Name of the selection class is then
+ * @c ROOT::Meta::Selection::C. If you have such a class, it will be found
+ * automatically. If @c C is in a namespace, @c NS::C, then
+- * the selection class should be in the same namespace: @c
+-ROOT::Selection::NS::C.
++ * the selection class should be in the same namespace:
++ * @c ROOT::Meta::Selection::NS::C.
++ *
+ * Examples:
+ *
+-
+-**/
+-
+-/**
+ * The DictSelectionReader is used to create selection rules starting from
+ * C++ the constructs of the @c ROOT::Meta::Selection namespace. All rules
+ * are matching by name.
+ * A brief description of the operations that lead to class selection:
+- * 1. If a class declaration is present in the selection namespace, a class
+- * with the same name is selected outside the selection namespace.
+- * 2. If a template class declaration and a template instantiation is present
+- * in the selection namespace, all the instances of the template are
+- * selected outside the namespace.
++ * 1. If a class declaration is present in the selection namespace, a class
++ * with the same name is selected outside the selection namespace.
++ * 2. If a template class declaration and a template instantiation is present
++ * in the selection namespace, all the instances of the template are
++ * selected outside the namespace.
++ *
+ * For example:
+ * @code
+ * [...]
+ * class classVanilla{};
+ * template <class A> class classTemplateVanilla {};
+ * classTemplateVanilla<char> t0;
+- * namespace ROOT{
++ * namespace ROOT {
+ * namespace Meta {
+- * namespace Selection{
+- * class classVanilla{};
+- * template <typename A> class classTemplateVanilla{};
++ * namespace Selection {
++ * class classVanilla {};
++ * template <typename A> class classTemplateVanilla {};
+ * classTemplateVanilla<char> st0;
+ * }
+ * }
+@@ -98,14 +96,15 @@ ROOT::Selection::NS::C.
+ *
+ * A brief description of the properties that can be assigned to classes
+ * with the @c ROOT::Meta::Selection::ClassAttributes class.
+- * 1. @c kNonSplittable : Makes the class non splittable
++ * 1. @c kNonSplittable : Makes the class non splittable
++ *
+ * The class properties can be assigned via a traits mechanism. For example:
+ * @code
+ * [...]
+- * class classWithAttributes{};
+- * namespace ROOT{
++ * class classWithAttributes {};
++ * namespace ROOT {
+ * namespace Meta {
+- * namespace Selection{
++ * namespace Selection {
+ * class classWithAttributes : ClassAttributes <kNonSplittable> {};
+ * }
+ * }
+@@ -116,9 +115,9 @@ ROOT::Selection::NS::C.
+ * properties can be assigned to a single class with this syntax:
+ * @code
+ * [...]
+- * namespace ROOT{
++ * namespace ROOT {
+ * namespace Meta {
+- * namespace Selection{
++ * namespace Selection {
+ * class classWithAttributes :
+ * ClassAttributes <kProperty1 + kProperty2 + ... + kPropertyN> {};
+ * }
+@@ -126,7 +125,6 @@ ROOT::Selection::NS::C.
+ * }
+ * @endcode
+ *
+- *
+ * The @c ROOT::Meta::Selection syntax allows to alter the number of template
+ * parameters of a certain template class within the ROOT type system, TClass.
+ * Technically it allows to alter the way in which the "normalized name" (in
+@@ -137,23 +135,21 @@ ROOT::Selection::NS::C.
+ * a long explaination in this case:
+ * @code
+ * [...]
+- * template <class T, class U=int, int V=3> class A{...};
+- * template <class T, class Alloc= myAllocator<T> > class myVector{...};
++ * template <class T, class U = int, int V = 3> class A {...};
++ * template <class T, class Alloc = myAllocator<T> > class myVector {...};
+ * A<char> a1;
+- * A<char,float> a2;
++ * A<char, float> a2;
+ * myVector<float> v1;
+ * myVector<A<char>> v2;
+ *
+- * namespace ROOT{
++ * namespace ROOT {
+ * namespace Meta {
+- * namespace Selection{
+- * template <class T, class U=int, int V=3> class A
+- * :KeepFirstTemplateArguments<1>{};
+- *
+- * A<double> ;
+- * template <class T, class Alloc= myAllocator<T> > class myVector
+- * :KeepFirstTemplateArguments<1>{};
+- *
++ * namespace Selection {
++ * template <class T, class U = int, int V = 3> class A
++ * : KeepFirstTemplateArguments<1> {};
++ * A<double> a;
++ * template <class T, class Alloc = myAllocator<T> > class myVector
++ * : KeepFirstTemplateArguments<1> {};
+ * myVector<double> vd;
+ * }
+ * }
+@@ -165,53 +161,55 @@ ROOT::Selection::NS::C.
+ * will be kept.
+ * In absence of any @c KeepFirstTemplateArguments trait, the normalization
+ * would be:
+- * @c A<char> &rarr @c A<char,float,3>
+- * @c A<char,float> &rarr @c A<char,int,3>
+- * @c myVector<float> &rarr @c myVector<A<char,int,3>,myAllocator<A<char,int,3>>>
+- * @c myVector<A<char>> &rarr @c myVector<float,myAllocator<float>>
++ * - @c A<char> → @c A<char,float,3>
++ * - @c A<char,float> → @c A<char,int,3>
++ * - @c myVector<float> → @c myVector<A<char,int,3>,myAllocator<A<char,int,3>>>
++ * - @c myVector<A<char>> → @c myVector<float,myAllocator<float>>
+ *
+ * Now, deciding to keep just one argument (@c KeepFirstTemplateArguments<1>):
+- * @c A<char> &rarr @c A<char,float>
+- * @c A<char,float> &rarr @c A<char>
+- * @c myVector<float> &rarr @c myVector<A<char>,myAllocator<A<char>>>
+- * @c myVector<A<char>> &rarr @c myVector<float,myAllocator<float>>
++ * - @c A<char> → @c A<char,float>
++ * - @c A<char,float> → @c A<char>
++ * - @c myVector<float> → @c myVector<A<char>,myAllocator<A<char>>>
++ * - @c myVector<A<char>> → @c myVector<float,myAllocator<float>>
+ *
+ * And deciding to keep two arguments (@c KeepFirstTemplateArguments<2>):
+- * @c A<char> &rarr @c A<char,float>
+- * @c A<char,float> &rarr @c A<char,int>
+- * @c myVector<float> &rarr @c myVector<A<char,int>,myAllocator<A<char,int>>>
+- * @c myVector<A<char>> &rarr @c myVector<float,myAllocator<float>>
++ * - @c A<char> → @c A<char,float>
++ * - @c A<char,float> → @c A<char,int>
++ * - @c myVector<float> → @c myVector<A<char,int>,myAllocator<A<char,int>>>
++ * - @c myVector<A<char>> → @c myVector<float,myAllocator<float>>
+ *
+ * A brief description of the properties that can be assigned to data members
+ * with the @c ROOT::Meta::Selection MemberAttributes class:
+- * 1. @c kTransient : the data member is transient, not persistified by the
+- * ROOT I/O.
+- * 2. @c kAutoSelected : the type of the data member is selected without the
+- * need of specifying its class explicitely.
++ * 1. @c kTransient : the data member is transient, not persistified by the
++ * ROOT I/O.
++ * 2. @c kAutoSelected : the type of the data member is selected without the
++ * need of specifying its class explicitely.
++ *
+ * For example:
+ * @code
+ * [...]
+- * class classTransientMember{
++ * class classTransientMember {
+ * private:
+ * int transientMember;
+ * };
+- * class classAutoselected{};
+- * class classTestAutoselect{
++ * class classAutoselected {};
++ * class classTestAutoselect {
+ * private:
+ * classAutoselected autoselected;
+ * };
+ *
+- * namespace ROOT{
++ * namespace ROOT {
+ * namespace Meta {
+- * namespace Selection{
+- * class classTestAutoselect{
++ * namespace Selection {
++ * class classTestAutoselect {
+ * MemberAttributes<kAutoSelected> autoselected;
+ * };
+-
+- class classTransientMember{
+- MemberAttributes<kTransient> transientMember;
+- };
+- *
++ * class classTransientMember {
++ * MemberAttributes<kTransient> transientMember;
++ * };
++ * }
++ * }
++ * }
+ * @endcode
+ * would lead to the creation of selection rules for @c classTransientMember
+ * specifying that @c transientMember is transient, @c classTestAutoselect and
+@@ -229,10 +227,10 @@ ROOT::Selection::NS::C.
+ * template< class T, class BASE >
+ * class MyDataVector : KeepFirstTemplateArguments< 1 >, SelectNoInstance {
+ * MemberAttributes< kTransient + kAutoSelected > m_isMostDerived;
+- * MemberAttributes< kNonSplittable+ kAutoSelected > m_isNonSplit;
+- * };
++ * MemberAttributes< kNonSplittable + kAutoSelected > m_isNonSplit;
++ * };
+ * [...]
+- *
++ * @endcode
+ **/
+ namespace ROOT {
+ namespace Internal {
+@@ -265,12 +263,9 @@ private:
+ inline bool
+ InSelectionNamespace(const clang::RecordDecl &,
+ const std::string &str =
+- ""); ///< Check if in the ROOT::Selection namespace
++ ""); ///< Check if in the ROOT::Meta::Selection namespace
+ inline bool FirstPass(const clang::RecordDecl &); ///< First pass on the AST
+- inline bool SecondPass(const clang::RecordDecl &); ///< Second pass on the
+- ///AST, using the
+- ///information of the first
+- ///one
++ inline bool SecondPass(const clang::RecordDecl &); ///< Second pass on the AST, using the information of the first one
+ inline void
+ ManageFields(const clang::RecordDecl &,
+ const std::string &,
+@@ -285,8 +280,7 @@ private:
+ inline const clang::TemplateArgumentList *GetTmplArgList(
+ const clang::CXXRecordDecl &); ///< Get the template arguments list if any
+
+- std::string PatternifyName(const std::string &className); ///< Transform instance
+- ///< name in pattern for selection
++ std::string PatternifyName(const std::string &className); ///< Transform instance name in pattern for selection
+ void GetPointeeType(std::string &typeName); ///< Get name of the pointee type
+
+ SelectionRules &fSelectionRules; ///< The selection rules to be filled
+@@ -300,9 +294,9 @@ private:
+ fNoAutoSelectedClassFieldNames; ///< Collect the autoexcluded classes
+ std::unordered_map<std::string, TemplateInfo> fTemplateInfoMap; ///< List template name - properties map
+ llvm::StringMap<ClassSelectionRule>
+- fClassNameSelectionRuleMap; /// < Map of the already built sel rules
++ fClassNameSelectionRuleMap; ///< Map of the already built sel rules
+ bool fIsFirstPass; ///< Keep trance of the number of passes through the AST
+- ROOT::TMetaUtils::TNormalizedCtxt &fNormCtxt; /// < The reference to the normalized context
++ ROOT::TMetaUtils::TNormalizedCtxt &fNormCtxt; ///< The reference to the normalized context
+ };
+ }
+ }
+diff --git a/core/foundation/inc/ROOT/TypeTraits.hxx b/core/foundation/inc/ROOT/TypeTraits.hxx
+index 1abf64e73a..ab491c2504 100644
+--- a/core/foundation/inc/ROOT/TypeTraits.hxx
++++ b/core/foundation/inc/ROOT/TypeTraits.hxx
+@@ -155,7 +155,7 @@ template <typename T>
+ using TakeFirstParameter_t = typename TakeFirstParameter<T>::type;
+
+ /// Remove first of possibly many template parameters.
+-/// e.g. RemoveFirstParameter_t<U<A,B>> is U<B>
++/// e.g. RemoveFirstParameter_t<U<A,B>> is U\<B\>
+ template <typename>
+ struct RemoveFirstParameter {
+ };
+diff --git a/core/meta/src/TClass.cxx b/core/meta/src/TClass.cxx
+index 4eeec81dc1..f29ab7fd85 100644
+--- a/core/meta/src/TClass.cxx
++++ b/core/meta/src/TClass.cxx
+@@ -6780,7 +6780,7 @@ void TClass::SetDestructor(ROOT::DesFunc_t destructorFunc)
+ }
+
+ ////////////////////////////////////////////////////////////////////////////////
+-/// Install a new wrapper around the directory auto add function..
++/// Install a new wrapper around the directory auto add function.
+ /// The function autoAddFunc has the signature void (*)(void *obj, TDirectory dir)
+ /// and should register 'obj' to the directory if dir is not null
+ /// and unregister 'obj' from its current directory if dir is null
+@@ -7120,12 +7120,12 @@ Bool_t ROOT::Internal::HasConsistentHashMember(TClass &clRef)
+ /// (public or not), use
+ /// \code{.cpp}
+ /// cl->GetProperty() & kClassHasDefaultCtor
+-/// \code
++/// \endcode
+ /// To know if the class described by this TClass has a public default
+ /// constructor use:
+ /// \code{.cpp}
+ /// gInterpreter->ClassInfo_HasDefaultConstructor(aClass->GetClassInfo());
+-/// \code
++/// \endcode
+
+ Bool_t TClass::HasDefaultConstructor(Bool_t testio) const
+ {
+diff --git a/core/metacling/src/TCling.cxx b/core/metacling/src/TCling.cxx
+index db0da13620..279744834a 100644
+--- a/core/metacling/src/TCling.cxx
++++ b/core/metacling/src/TCling.cxx
+@@ -5388,10 +5388,10 @@ int TCling::ReadRootmapFile(const char *rootmapfile, TUniqueString *uniqueString
+ }
+
+ ////////////////////////////////////////////////////////////////////////////////
+-/// Create a resource table and read the (possibly) three resource files, i.e
+-/// $ROOTSYS/etc/system<name> (or ROOTETCDIR/system<name>), $HOME/<name> and
+-/// ./<name>. ROOT always reads ".rootrc" (in TROOT::InitSystem()). You can
+-/// read additional user defined resource files by creating additional TEnv
++/// Create a resource table and read the (possibly) three resource files,
++/// i.e.\ $ROOTSYS/etc/system<name> (or ROOTETCDIR/system<name>), $HOME/<name>
++/// and $PWD/<name>. ROOT always reads ".rootrc" (in TROOT::InitSystem()). You
++/// can read additional user defined resource files by creating additional TEnv
+ /// objects. By setting the shell variable ROOTENV_NO_HOME=1 the reading of
+ /// the $HOME/<name> resource file will be skipped. This might be useful in
+ /// case the home directory resides on an automounted remote file system
+diff --git a/graf2d/x11/src/TGX11.cxx b/graf2d/x11/src/TGX11.cxx
+index 59e5260c92..26f88dd045 100644
+--- a/graf2d/x11/src/TGX11.cxx
++++ b/graf2d/x11/src/TGX11.cxx
+@@ -3599,9 +3599,9 @@ Pixmap_t TGX11::ReadGIF(int x0, int y0, const char *file, Window_t id)
+ }
+
+ ////////////////////////////////////////////////////////////////////////////////
+-/// Returns an array of pixels created from a part of drawable (defined by x, y, w, h)
+-/// in format:
+-/// `b1, g1, r1, 0, b2, g2, r2, 0 ... bn, gn, rn, 0 ..`
++/// Returns an array of pixels created from a part of drawable
++/// (defined by x, y, w, h) in format:
++/// `b1, g1, r1, 0, b2, g2, r2, 0, ..., bn, gn, rn, 0`.
+ ///
+ /// Pixels are numbered from left to right and from top to bottom.
+ /// By default all pixels from the whole drawable are returned.
+diff --git a/gui/guihtml/src/TGHtmlSizer.cxx b/gui/guihtml/src/TGHtmlSizer.cxx
+index c73eb581b5..8e6e71dcf7 100644
+--- a/gui/guihtml/src/TGHtmlSizer.cxx
++++ b/gui/guihtml/src/TGHtmlSizer.cxx
+@@ -60,7 +60,7 @@ SHtmlStyle_t TGHtml::GetCurrentStyle()
+ ////////////////////////////////////////////////////////////////////////////////
+ /// Push a new rendering style onto the stack.
+ ///
+-/// tag - Tag for this style. Normally the end-tag such as </h3> or </em>.
++/// tag - Tag for this style. Normally the end-tag such as \</h3\> or \</em\>.
+ /// style - The style to push
+
+ void TGHtml::PushStyleStack(int tag, SHtmlStyle_t style)
+@@ -152,7 +152,7 @@ void TGHtml::MakeInvisible(TGHtmlElement *p_first, TGHtmlElement *p_last)
+ }
+
+ ////////////////////////////////////////////////////////////////////////////////
+-/// For the markup <a href=XXX>, find out if the URL has been visited
++/// For the markup \<a href=XXX\>, find out if the URL has been visited
+ /// before or not. Return COLOR_Visited or COLOR_Unvisited, as
+ /// appropriate.
+
+diff --git a/hist/hist/src/TSVDUnfold.cxx b/hist/hist/src/TSVDUnfold.cxx
+index 85cfa9f241..2b570bdb22 100644
+--- a/hist/hist/src/TSVDUnfold.cxx
++++ b/hist/hist/src/TSVDUnfold.cxx
+@@ -46,13 +46,11 @@
+ The measured distribution can be unfolded for any combination of resolution, efficiency and acceptance effects, provided an appropriate definition of <tt>xini</tt> and <tt>Adet</tt>.<br><br>
+ <p>
+ The unfolding can be performed by
+- <ul>
+- <pre>
++ \code{.cpp}
+ TSVDUnfold *tsvdunf = new TSVDUnfold( bdat, Bcov, bini, xini, Adet );
+ TH1D* unfresult = tsvdunf->Unfold( kreg );
+- </pre>
+- </ul>
+- where <tt>kreg</tt> determines the regularisation of the unfolding. In general, overregularisation (too small <tt>kreg</tt>) will bias the unfolded spectrum towards the Monte Carlo input, while underregularisation (too large <tt>kreg</tt>) will lead to large fluctuations in the unfolded spectrum. The optimal regularisation can be determined following guidelines in <a href="http://arXiv.org/abs/hep-ph/9509307">Nucl. Instrum. Meth. A372, 469 (1996) [hep-ph/9509307]</a> using the distribution of the <tt>|d_i|<\tt> that can be obtained by <tt>tsvdunf->GetD()</tt> and/or using pseudo-experiments.
++ \endcode
++ where <tt>kreg</tt> determines the regularisation of the unfolding. In general, overregularisation (too small <tt>kreg</tt>) will bias the unfolded spectrum towards the Monte Carlo input, while underregularisation (too large <tt>kreg</tt>) will lead to large fluctuations in the unfolded spectrum. The optimal regularisation can be determined following guidelines in <a href="http://arXiv.org/abs/hep-ph/9509307">Nucl. Instrum. Meth. A372, 469 (1996) [hep-ph/9509307]</a> using the distribution of the <tt>|d_i|</tt> that can be obtained by <tt>tsvdunf->GetD()</tt> and/or using pseudo-experiments.
+ <p>
+ Covariance matrices on the measured spectrum (for either the total uncertainties or individual sources of uncertainties) can be propagated to covariance matrices using the <tt>GetUnfoldCovMatrix</tt> method, which uses pseudo experiments for the propagation. In addition, <tt>GetAdetCovMatrix</tt> allows for the propagation of the statistical uncertainties on the response matrix using pseudo experiments. The covariance matrix corresponding to <tt>Bcov</tt> is also computed as described in <a href="http://arXiv.org/abs/hep-ph/9509307">Nucl. Instrum. Meth. A372, 469 (1996) [hep-ph/9509307]</a> and can be obtained from <tt>tsvdunf->GetXtau()</tt> and its (regularisation independent) inverse from <tt>tsvdunf->GetXinv()</tt>. The distribution of singular values can be retrieved using <tt>tsvdunf->GetSV()</tt>.
+ <p>
+diff --git a/hist/histpainter/src/THistPainter.cxx b/hist/histpainter/src/THistPainter.cxx
+index 0f80505570..20a944a545 100644
+--- a/hist/histpainter/src/THistPainter.cxx
++++ b/hist/histpainter/src/THistPainter.cxx
+@@ -418,7 +418,7 @@ some combinations must be use with care.
+ - It does not work when combined with the `LEGO` and `SURF` options unless the
+ histogram plotted with the option `SAME` has exactly the same
+ ranges on the X, Y and Z axis as the currently drawn histogram. To superimpose
+- lego plots [histograms' stacks](#HP26) should be used.</li>
++ lego plots [histograms' stacks](#HP26) should be used.
+
+
+ ### <a name="HP061"></a> Colors automatically picked in palette
+diff --git a/hist/histv7/speed/histspeedtest.cxx b/hist/histv7/speed/histspeedtest.cxx
+index 55c0992bd5..065a10f0d7 100644
+--- a/hist/histv7/speed/histspeedtest.cxx
++++ b/hist/histv7/speed/histspeedtest.cxx
+@@ -35,7 +35,6 @@ and
+ /opt/build/root_builds/rootcling.cmake/include/ROOT/THistBinIter.h:53:50: error: no member named 'GetUncertainty' in
+ 'ROOT::Experimental::THistDataContent<2, double, ROOT::Experimental::THistDataDefaultStorage>::TBinStat<double>' auto
+ GetUncertainty() const { return GetStat().GetUncertainty(); }
+- ~~~~~~~~~ ^
+
+ new ones (STATCLASSES)
+
+diff --git a/hist/unfold/inc/TUnfold.h b/hist/unfold/inc/TUnfold.h
+index a69da26b4c..ce6e16fb4a 100644
+--- a/hist/unfold/inc/TUnfold.h
++++ b/hist/unfold/inc/TUnfold.h
+@@ -179,15 +179,15 @@ class TUnfold : public TObject {
+ TMatrixD *fX;
+ /// covariance matrix Vxx
+ TMatrixDSparse *fVxx;
+- /// inverse of covariance matrix Vxx<sup>-1</sub>
++ /// inverse of covariance matrix Vxx<sup>-1</sup>
+ TMatrixDSparse *fVxxInv;
+- /// inverse of the input covariance matrix Vyy<sup>-1</sub>
++ /// inverse of the input covariance matrix Vyy<sup>-1</sup>
+ TMatrixDSparse *fVyyInv;
+ /// result x folded back A*x
+ TMatrixDSparse *fAx;
+- /// chi**2 contribution from (y-Ax)Vyy<sup>-1</sub>(y-Ax)
++ /// chi**2 contribution from (y-Ax)Vyy<sup>-1</sup>(y-Ax)
+ Double_t fChi2A;
+- /// chi**2 contribution from (x-s*x0)<sup>T</sub>L<sup>T</sub>L(x-s*x0)
++ /// chi**2 contribution from (x-s*x0)<sup>T</sup>L<sup>T</sup>L(x-s*x0)
+ Double_t fLXsquared;
+ /// maximum global correlation coefficient
+ Double_t fRhoMax;
+diff --git a/html/src/TDocDirective.cxx b/html/src/TDocDirective.cxx
+index f7ffdc29c3..ab43d1ab38 100644
+--- a/html/src/TDocDirective.cxx
++++ b/html/src/TDocDirective.cxx
+@@ -215,7 +215,7 @@ void TDocHtmlDirective::AddLine(const TSubString& line)
+
+ ////////////////////////////////////////////////////////////////////////////////
+ /// Set result to the HTML code that was passed in via AddLine().
+-/// Prepend a closing </pre>, append an opening <pre>
++/// Prepend a closing \</pre\>, append an opening \<pre\>
+
+ Bool_t TDocHtmlDirective::GetResult(TString& result)
+ {
+diff --git a/math/mathcore/inc/Math/ProbFuncMathCore.h b/math/mathcore/inc/Math/ProbFuncMathCore.h
+index d751c47a36..16e205347c 100644
+--- a/math/mathcore/inc/Math/ProbFuncMathCore.h
++++ b/math/mathcore/inc/Math/ProbFuncMathCore.h
+@@ -41,8 +41,8 @@ namespace Math {
+ * These names are currently kept for backward compatibility, but
+ * their usage is deprecated.
+ *
+- * These functions are defined in the header file <em>Math/ProbFunc.h<em> or in the global one
+- * including all statistical functions <em>Math/DistFunc.h<em>
++ * These functions are defined in the header file <em>Math/ProbFunc.h</em> or in the global one
++ * including all statistical functions <em>Math/DistFunc.h</em>
+ *
+ */
+
+@@ -727,8 +727,8 @@ namespace Math {
+ first or the second momentum of the truncated distribution.
+ In the case of the Landau, first and second momentum functions are provided for the Landau
+ distribution truncated only on the right side.
+- These functions are defined in the header file <em>Math/ProbFunc.h<em> or in the global one
+- including all statistical functions <em>Math/StatFunc.h<em>
++ These functions are defined in the header file <em>Math/ProbFunc.h</em> or in the global one
++ including all statistical functions <em>Math/StatFunc.h</em>
+
+ */
+
+diff --git a/math/mathcore/inc/Math/QuantFuncMathCore.h b/math/mathcore/inc/Math/QuantFuncMathCore.h
+index 7da5bd1178..1be023b33f 100644
+--- a/math/mathcore/inc/Math/QuantFuncMathCore.h
++++ b/math/mathcore/inc/Math/QuantFuncMathCore.h
+@@ -41,8 +41,8 @@ namespace Math {
+ *
+ * \f[ D(x) = \int_{x}^{+\infty} p(x') dx' \f]
+ *
+- * These functions are defined in the header file <em>Math/ProbFunc.h<em> or in the global one
+- * including all statistical functions <em>Math/DistFunc.h<em>
++ * These functions are defined in the header file <em>Math/ProbFunc.h</em> or in the global one
++ * including all statistical functions <em>Math/DistFunc.h</em>
+ *
+ *
+ * <strong>NOTE:</strong> In the old releases (< 5.14) the <em>_quantile</em> functions were called
+diff --git a/math/mathcore/src/TMath.cxx b/math/mathcore/src/TMath.cxx
+index 49a81d56f7..ba8799b570 100644
+--- a/math/mathcore/src/TMath.cxx
++++ b/math/mathcore/src/TMath.cxx
+@@ -857,7 +857,7 @@ Double_t TMath::KolmogorovTest(Int_t na, const Double_t *a, Int_t nb, const Doub
+ /// \f[
+ /// lorentz(xx) = \frac{ \frac{1}{\pi} \frac{lg}{2} }{ (xx^{2} + \frac{lg^{2}}{4}) }
+ /// \f]
+-/// .
++/// \.
+ ///
+ /// The Voigt function is known to be the real part of Faddeeva function also
+ /// called complex error function [2].
+diff --git a/math/mathmore/inc/Math/GSLMultiRootFinder.h b/math/mathmore/inc/Math/GSLMultiRootFinder.h
+index 42069d2387..b7efe4157d 100644
+--- a/math/mathmore/inc/Math/GSLMultiRootFinder.h
++++ b/math/mathmore/inc/Math/GSLMultiRootFinder.h
+@@ -69,23 +69,23 @@ namespace Math {
+ <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Algorithms-using-Derivat...">documentation</A> )
+ are the followings:
+ <ul>
+- <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridSJ</tt> with name <it>"HybridSJ"</it>: modified Powell's hybrid
++ <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridSJ</tt> with name <i>"HybridSJ"</i>: modified Powell's hybrid
+ method as implemented in HYBRJ in MINPACK
+- <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridJ</tt> with name <it>"HybridJ"</it>: unscaled version of the
++ <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridJ</tt> with name <i>"HybridJ"</i>: unscaled version of the
+ previous algorithm</li>
+- <li><tt>ROOT::Math::GSLMultiRootFinder::kNewton</tt> with name <it>"Newton"</it>: Newton method </li>
+- <li><tt>ROOT::Math::GSLMultiRootFinder::kGNewton</tt> with name <it>"GNewton"</it>: modified Newton method </li>
++ <li><tt>ROOT::Math::GSLMultiRootFinder::kNewton</tt> with name <i>"Newton"</i>: Newton method </li>
++ <li><tt>ROOT::Math::GSLMultiRootFinder::kGNewton</tt> with name <i>"GNewton"</i>: modified Newton method </li>
+ </ul>
+ The algorithms without derivatives (see also the GSL
+ <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Algorithms-without-Deriv...">documentation</A> )
+ are the followings:
+ <ul>
+- <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridS</tt> with name <it>"HybridS"</it>: same as HybridSJ but using
++ <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridS</tt> with name <i>"HybridS"</i>: same as HybridSJ but using
+ finate difference approximation for the derivatives</li>
+- <li><tt>ROOT::Math::GSLMultiRootFinder::kHybrid</tt> with name <it>"Hybrid"</it>: unscaled version of the
++ <li><tt>ROOT::Math::GSLMultiRootFinder::kHybrid</tt> with name <i>"Hybrid"</i>: unscaled version of the
+ previous algorithm</li>
+- <li><tt>ROOT::Math::GSLMultiRootFinder::kDNewton</tt> with name <it>"DNewton"</it>: discrete Newton algorithm </li>
+- <li><tt>ROOT::Math::GSLMultiRootFinder::kBroyden</tt> with name <it>"Broyden"</it>: Broyden algorithm </li>
++ <li><tt>ROOT::Math::GSLMultiRootFinder::kDNewton</tt> with name <i>"DNewton"</i>: discrete Newton algorithm </li>
++ <li><tt>ROOT::Math::GSLMultiRootFinder::kBroyden</tt> with name <i>"Broyden"</i>: Broyden algorithm </li>
+ </ul>
+
+ @ingroup MultiRoot
+diff --git a/math/matrix/doc/Matrix.md b/math/matrix/doc/Matrix.md
+index f53b29ca0b..c484c27c72 100644
+--- a/math/matrix/doc/Matrix.md
++++ b/math/matrix/doc/Matrix.md
+@@ -325,7 +325,7 @@ constructor</td>
+ <td>C=A*B<br>
+ A*=B<br>
+ C.Mult(A,B)<br>TMatrixD(A,TMatrixD::kMult,B)<br>TMatrixD(A, TMatrixD(A, TMatrixD::kTransposeMult,B)<br>TMatrixD(A, TMatrixD::kMultTranspose,B)</td>
+- <td>overwrites A<br> <br> <br>constructor of A.B<br>constructor of A<sup>T</sup> .B<br>constructor of A.B<sup>T</sup></td>
++ <td>overwrites A<br> <br> <br>constructor of A·B<br>constructor of A<sup>T</sup>·B<br>constructor of A·B<sup>T</sup></td>
+ </tr>
+ <tr>
+ <td>Element wise multiplication</td>
+diff --git a/math/minuit/src/TMinuit.cxx b/math/minuit/src/TMinuit.cxx
+index df3e563a73..18a6437c68 100644
+--- a/math/minuit/src/TMinuit.cxx
++++ b/math/minuit/src/TMinuit.cxx
+@@ -187,11 +187,11 @@ the error matrix, or setting of exact confidence levels see:
+
+ 1. F.James.
+ Determining the statistical Significance of experimental Results.
+- Technical Report DD/81/02 and CERN Report 81-03, CERN, 1981.</li>
++ Technical Report DD/81/02 and CERN Report 81-03, CERN, 1981.
+
+ 2. W.T.Eadie, D.Drijard, F.James, M.Roos, and B.Sadoulet.
+ Statistical Methods in Experimental Physics.
+- North-Holland, 1971.</li>
++ North-Holland, 1971.
+
+ ### Reliability of MINUIT error estimates.
+
+diff --git a/montecarlo/eg/src/TDatabasePDG.cxx b/montecarlo/eg/src/TDatabasePDG.cxx
+index 23c32e9668..85e9fe2a6d 100644
+--- a/montecarlo/eg/src/TDatabasePDG.cxx
++++ b/montecarlo/eg/src/TDatabasePDG.cxx
+@@ -46,7 +46,7 @@ Root.DatabasePDG: $(HOME)/my_pdg_table.txt
+ See TParticlePDG for the description of a static particle properties.
+ See TParticle for the description of a dynamic particle particle.
+
+-<br>The current default pdg_table file displays lifetime 0 for some unstable particles.</br>
++The current default pdg_table file displays lifetime 0 for some unstable particles.
+
+ */
+
+diff --git a/montecarlo/vmc/README.md b/montecarlo/vmc/README.md
+index dc66ec401f..c731b26e92 100644
+--- a/montecarlo/vmc/README.md
++++ b/montecarlo/vmc/README.md
+@@ -43,7 +43,7 @@ See more detailed description in [the dedicated README](README.multiple.md).
+ ## Authors
+
+ The concept of Virtual MonteCarlo has been developed by the [ALICE Software Project](http://aliceinfo.cern.ch/Offline/).<br>
+-Authors: R.Brun<sup>1</sup>, F.Carminati<sup>1</sup>, A. Gheata<sup>1</sup>, I.Hrivnacova<sup>2</sup>, A.Morsch<sup>1</sup>, B.Volkel<sup>1</sup>;<br>
++Authors: R. Brun<sup>1</sup>, F. Carminati<sup>1</sup>, A. Gheata<sup>1</sup>, I. Hrivnacova<sup>2</sup>, A. Morsch<sup>1</sup>, B. Volkel<sup>1</sup>;<br>
+ <sup>1</sup>European Organization for Nuclear Research (CERN), Geneva, Switzerland;<br>
+ <sup>2</sup>Institut de Physique Nucléaire dʼOrsay (IPNO), Université Paris-Sud, CNRS-IN2P3, Orsay, France
+
+diff --git a/net/http/civetweb/LICENSE.md b/net/http/civetweb/LICENSE.md
+index ab049e3e72..b6bb8ff037 100644
+--- a/net/http/civetweb/LICENSE.md
++++ b/net/http/civetweb/LICENSE.md
+@@ -180,10 +180,6 @@ Duktape License
+
+ https://github.com/svaarala/duktape/blob/master/LICENSE.txt
+
+-> ===============
+-> Duktape license
+-> ===============
+->
+ > (http://opensource.org/licenses/MIT)
+ >
+ > Copyright (c) 2013-2017 by Duktape authors (see AUTHORS.rst)
+diff --git a/proof/proof/src/TProofMgr.cxx b/proof/proof/src/TProofMgr.cxx
+index 2a140e4e7a..e41b637a15 100644
+--- a/proof/proof/src/TProofMgr.cxx
++++ b/proof/proof/src/TProofMgr.cxx
+@@ -775,26 +775,29 @@ void TProofMgr::ReplaceSubdirs(const char *fn, TString &fdst, TList &dirph)
+ /// Upload files provided via the list 'src' (as TFileInfo or TObjString)
+ /// to 'mss'. The path under 'mss' is determined by 'dest'; the following
+ /// place-holders can be used in 'dest':
+-/// <d0>, <d1>, <d2>, ... referring to the n-th sub-component
+-/// of the src path
+-/// <bn> basename in the source path
+-/// <bs> basename sans extension
+-/// <ex> Extension
+-/// <sn> serial number of file in the list
+-/// <s0> as <sn> but zero padded
+-/// <fn> the full file path
+-/// <us>, <gr> the local user and group names.
+-/// <pg> the users PROOF group
+-/// <pa> immediate parent directory
+-/// <gp> next-to immediate parent directory
++///
++/// Place-holder | Meaning |
++/// ----------------------------|------------------------------------
++/// \<d0\>, \<d1\>, \<d2\>, ... | referring to the n-th sub-component of the src path
++/// \<bn\> | basename in the source path
++/// \<bs\> | basename sans extension
++/// \<ex\> | Extension
++/// \<sn\> | serial number of file in the list
++/// \<s0\> | as \<sn\> but zero padded
++/// \<fn\> | the full file path
++/// \<us\>, \<gr\> | the local user and group names.
++/// \<pg\> | the users PROOF group
++/// \<pa\> | immediate parent directory
++/// \<gp\> | next-to immediate parent directory
++///
+ /// So, for example, if the source filename for the 99-th file is
+ /// protosrc://host//d0/d1/d2/d3/d4/d5/myfile
+-/// then with dest = '/pool/user/<d3>/<d4>/<d5>/<s>/<bn>' and
++/// then with dest = '/pool/user/\<d3\>/\<d4\>/\<d5\>/\<sn\>/\<bn\>' and
+ /// mss = 'protodst://hostdst//nm/
+ /// the corresponding destination path is
+ /// protodst://hostdst//nm/pool/user/d3/d4/d5/99/myfile
+ ///
+-/// If 'dest' is empty, <fn> is used.
++/// If 'dest' is empty, \<fn\> is used.
+ ///
+ /// Returns a TFileCollection with the destination files created; this
+ /// TFileCollection is, for example, ready to be registered as dataset.
+@@ -966,20 +969,23 @@ TFileCollection *TProofMgr::UploadFiles(TList *src,
+ /// line, with line beginning by '#' ignored (i.e. considered comments).
+ /// The path under 'mss' is defined by 'dest'; the following
+ /// place-holders can be used in 'dest':
+-/// <d0>, <d1>, <d2>, ... referring to the n-th sub-component
+-/// of the src path
+-/// <bn> basename in the source path
+-/// <sn> serial number of file in the list
+-/// <fn> the full file path
+-/// <us>, <gr> the local user and group names.
++///
++/// Place-holder | Meaning |
++/// ----------------------------|------------------------------------
++/// \<d0\>, \<d1\>, \<d2\>, ... | referring to the n-th sub-component of the src path
++/// \<bn\> | basename in the source path
++/// \<sn\> | serial number of file in the list
++/// \<fn\> | the full file path
++/// \<us\>, \<gr\> | the local user and group names.
++///
+ /// So, for example, if the source filename for the 99-th file is
+ /// protosrc://host//d0/d1/d2/d3/d4/d5/myfile
+-/// then with dest = '/pool/user/<d3>/<d4>/<d5>/<s>/<bn>' and
++/// then with dest = '/pool/user/\<d3\>/\<d4\>/\<d5\>/\<sn\>/\<bn\>' and
+ /// mss = 'protodst://hostdst//nm/
+ /// the corresponding destination path is
+ /// protodst://hostdst//nm/pool/user/d3/d4/d5/99/myfile
+ ///
+-/// If 'dest' is empty, <fn> is used.
++/// If 'dest' is empty, \<fn\> is used.
+ ///
+ /// Returns a TFileCollection with the destination files created; this
+ /// TFileCollection is, for example, ready to be registered as dataset.
+diff --git a/proof/proof/src/TProofServ.cxx b/proof/proof/src/TProofServ.cxx
+index 24c521743d..3697f257a0 100644
+--- a/proof/proof/src/TProofServ.cxx
++++ b/proof/proof/src/TProofServ.cxx
+@@ -6696,11 +6696,11 @@ Int_t TProofServ::Fork()
+ }
+
+ ////////////////////////////////////////////////////////////////////////////////
+-/// Replace <ord>, <user>, <u>, <group>, <stag>, <qnum>, <file>, <rver> and
+-/// <build> placeholders in fname.
+-/// Here, <rver> is the root version in integer form, e.g. 53403, and <build> a
+-/// string includign version, architecture and compiler version, e.g.
+-/// '53403_linuxx8664gcc_gcc46' .
++/// Replace \<ord\>, \<user\>, \<u\>, \<group\>, \<stag\>, \<qnum\>, \<file\>,
++/// \<rver\> and \<build\> placeholders in fname.
++/// Here, \<rver\> is the root version in integer form, e.g. 53403, and
++/// \<build\> a string includign version, architecture and compiler version,
++/// e.g. '53403_linuxx8664gcc_gcc46' .
+
+ void TProofServ::ResolveKeywords(TString &fname, const char *path)
+ {
+diff --git a/roofit/histfactory/doc/index.md b/roofit/histfactory/doc/index.md
+index 32f1c551a4..9256a9cf11 100644
+--- a/roofit/histfactory/doc/index.md
++++ b/roofit/histfactory/doc/index.md
+@@ -41,12 +41,11 @@ it is organized as follows (see the examples in `${ROOTSYS}/tutorials/histfactor
+ <li> several 'Measurements' (corresponding to a full fit of the model) each of which specifies</li>
+ <ul>
+ <li> a name for this fit to be used in tables and files</li>
+-<ul>
+-<li> what is the luminosity associated to the measurement in picobarns</li>
+-<li> which bins of the histogram should be used</li>
+-<li> what is the relative uncertainty on the luminosity </li>
+-<li> what is (are) the parameter(s) of interest that will be measured</li>
+-<li> which parameters should be fixed/floating (eg. nuisance parameters)</li>
++<li> what is the luminosity associated to the measurement in picobarns</li>
++<li> which bins of the histogram should be used</li>
++<li> what is the relative uncertainty on the luminosity </li>
++<li> what is (are) the parameter(s) of interest that will be measured</li>
++<li> which parameters should be fixed/floating (eg. nuisance parameters)</li>
+ </ul>
+ </ul>
+ </ul>
+diff --git a/roofit/histfactory/src/MakeModelAndMeasurementsFast.cxx b/roofit/histfactory/src/MakeModelAndMeasurementsFast.cxx
+index e14e63ec89..73a3f627ba 100644
+--- a/roofit/histfactory/src/MakeModelAndMeasurementsFast.cxx
++++ b/roofit/histfactory/src/MakeModelAndMeasurementsFast.cxx
+@@ -92,12 +92,11 @@ using namespace RooFit;
+ <li> several 'Measurements' (corresponding to a full fit of the model) each of which specifies</li>
+ <ul>
+ <li> a name for this fit to be used in tables and files</li>
+- <ul>
+- <li> what is the luminosity associated to the measurement in picobarns</li>
+- <li> which bins of the histogram should be used</li>
+- <li> what is the relative uncertainty on the luminosity </li>
+- <li> what is (are) the parameter(s) of interest that will be measured</li>
+- <li> which parameters should be fixed/floating (eg. nuisance parameters)</li>
++ <li> what is the luminosity associated to the measurement in picobarns</li>
++ <li> which bins of the histogram should be used</li>
++ <li> what is the relative uncertainty on the luminosity </li>
++ <li> what is (are) the parameter(s) of interest that will be measured</li>
++ <li> which parameters should be fixed/floating (eg. nuisance parameters)</li>
+ </ul>
+ </ul>
+ </ul>
+diff --git a/roofit/roofitcore/inc/RooAbsCategory.h b/roofit/roofitcore/inc/RooAbsCategory.h
+index a7eaf8772a..4f0937a99d 100644
+--- a/roofit/roofitcore/inc/RooAbsCategory.h
++++ b/roofit/roofitcore/inc/RooAbsCategory.h
+@@ -199,7 +199,7 @@ protected:
+ return hasIndex(_currentIndex);
+ }
+
+- /// If a category depends on the shape of others, *i.e.*, its state numbers or names depend
++ /// If a category depends on the shape of others, i.e.\ its state numbers or names depend
+ /// on the states of other categories, this function has to be implemented to recompute
+ /// _stateNames and _insertionOrder.
+ /// If one of these two changes, setShapeDirty() has to be called to propagate this information
+diff --git a/roofit/roofitcore/src/RooSimPdfBuilder.cxx b/roofit/roofitcore/src/RooSimPdfBuilder.cxx
+index 4c8289523d..57ea1e9196 100644
+--- a/roofit/roofitcore/src/RooSimPdfBuilder.cxx
++++ b/roofit/roofitcore/src/RooSimPdfBuilder.cxx
+@@ -99,7 +99,7 @@
+ /// PDF for each state of the C index category.
+ /// </p>
+ /// <p>
+-/// In the above example </tt>RooSimPdfBuilder</tt>
++/// In the above example <tt>RooSimPdfBuilder</tt>
+ /// will first replicate <tt>k</tt> and <tt>s</tt> into
+ /// <tt>k_C1,k_C2</tt> and <tt>s_C1,s_C2</tt>, as prescribed in the
+ /// configuration. Then it will recursively replicate all PDF nodes that depend on
+@@ -383,7 +383,7 @@
+ /// <tt>pdfA(x;p,q)</tt> and <tt>pdfB(x;p,r)</tt> that have a common parameter <tt>p</tt>.
+ /// We want to build a <tt>RooSimultaneous</tt> for both <tt>pdfA</tt> and <tt>B</tt>,
+ /// which involves a split of parameter <tt>p</tt> and we would like to build the
+-/// simultaneous pdfs </tt>simA</tt> and <tt>simB</tt> such that still share their (now split) parameters
++/// simultaneous pdfs <tt>simA</tt> and <tt>simB</tt> such that still share their (now split) parameters
+ /// <tt>p_XXX</tt>. This is accomplished by letting a single instance of <tt>RooSimPdfBuilder</tt> handle
+ /// the builds of both <tt>pdfA</tt> and <tt>pdfB</tt>, as illustrated in this example:
+ /// </p>
+diff --git a/tmva/tmva/src/Factory.cxx b/tmva/tmva/src/Factory.cxx
+index eda1b9ca1a..866aad0e18 100644
+--- a/tmva/tmva/src/Factory.cxx
++++ b/tmva/tmva/src/Factory.cxx
+@@ -683,9 +683,9 @@ void TMVA::Factory::WriteDataInformation(DataSetInfo& fDataSetInfo)
+ }
+
+ ////////////////////////////////////////////////////////////////////////////////
+-/// Iterates through all booked methods and sees if they use parameter tuning and if so..
+-/// does just that i.e. calls "Method::Train()" for different parameter settings and
+-/// keeps in mind the "optimal one"... and that's the one that will later on be used
++/// Iterates through all booked methods and sees if they use parameter tuning and if so
++/// does just that, i.e.\ calls "Method::Train()" for different parameter settings and
++/// keeps in mind the "optimal one"...\ and that's the one that will later on be used
+ /// in the main training loop.
+
+ std::map<TString,Double_t> TMVA::Factory::OptimizeAllMethods(TString fomType, TString fitType)
+diff --git a/tmva/tmva/src/Reader.cxx b/tmva/tmva/src/Reader.cxx
+index 56d65bb9bf..b34ee9f1de 100644
+--- a/tmva/tmva/src/Reader.cxx
++++ b/tmva/tmva/src/Reader.cxx
+@@ -594,7 +594,7 @@ const std::vector< Float_t >& TMVA::Reader::EvaluateRegression( const TString& m
+ ////////////////////////////////////////////////////////////////////////////////
+ /// evaluates the regression MVA
+ /// check for NaN in event data: (note: in the factory, this check was done already at the creation of the datasets, hence
+-/// it is not again checked in each of these subsequent calls..
++/// it is not again checked in each of these subsequent calls.
+
+ const std::vector< Float_t >& TMVA::Reader::EvaluateRegression( MethodBase* method, Double_t /*aux*/ )
+ {
+@@ -660,7 +660,7 @@ const std::vector< Float_t >& TMVA::Reader::EvaluateMulticlass( const TString& m
+ ////////////////////////////////////////////////////////////////////////////////
+ /// evaluates the multiclass MVA
+ /// check for NaN in event data: (note: in the factory, this check was done already at the creation of the datasets, hence
+-/// it is not again checked in each of these subsequent calls..
++/// it is not again checked in each of these subsequent calls.
+
+ const std::vector< Float_t >& TMVA::Reader::EvaluateMulticlass( MethodBase* method, Double_t /*aux*/ )
+ {
+diff --git a/tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx b/tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx
+index 17527ac16d..497dd3d5c6 100644
+--- a/tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx
++++ b/tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx
+@@ -93,7 +93,7 @@ class R__CLING_PTRCHECK(off) RColumnValue {
+ /// Enumerator for the different properties of the branch storage in memory
+ enum class EStorageType : char { kContiguous, kUnknown, kSparse };
+ /// Signal whether we ever checked that the branch we are reading with a TTreeReaderArray stores array elements
+- /// in contiguous memory. Only used when T == RVec<U>.
++ /// in contiguous memory. Only used when T == RVec\<U\>.
+ EStorageType fStorageType = EStorageType::kUnknown;
+ /// If MustUseRVec, i.e. we are reading an array, we return a reference to this RVec to clients
+ RVec<ColumnValue_t> fRVec;
+diff --git a/tutorials/net/udpserver.c b/tutorials/net/udpserver.c
+index c54685400e..a74f6f0a85 100644
+--- a/tutorials/net/udpserver.c
++++ b/tutorials/net/udpserver.c
+@@ -4,7 +4,7 @@
+
+ /* Converted to echo client/server with select() (timeout option).
+ See testTUDPSocket.C */
+-/* Compile with: gcc udpserver.c -o udpserver
++/* Compile with: gcc udpserver.c -o udpserver */
+ /* on Windows: cl -nologo -Z7 -MD -GR -EHsc udpserver.c */
+ /* 3/30/05 John Schultz */
+
+diff --git a/tutorials/tmva/TMVA_CNN_Classification.C b/tutorials/tmva/TMVA_CNN_Classification.C
+index 47f26368d9..89373a8887 100644
+--- a/tutorials/tmva/TMVA_CNN_Classification.C
++++ b/tutorials/tmva/TMVA_CNN_Classification.C
+@@ -22,7 +22,7 @@
+ /// Helper function to create input images data
+ /// we create a signal and background 2D histograms from 2d gaussians
+ /// with a location (means in X and Y) different for each event
+-/// The difference between signal and background is in the gaussian width..
++/// The difference between signal and background is in the gaussian width.
+ /// The width for the bakground gaussian is slightly larger than the signal width by few % values
+ ///
+ ///
+--
+2.26.2
+
diff --git a/root-doxygen-filenames.patch b/root-doxygen-filenames.patch
new file mode 100644
index 0000000..d891a7f
--- /dev/null
+++ b/root-doxygen-filenames.patch
@@ -0,0 +1,378 @@
+From 116be70d2786a3fecdfcd6445d06ad6f3768f5a6 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Fri, 3 Jul 2020 08:08:33 +0200
+Subject: [PATCH 1/5] Fix \file references in doxygen markup
+
+---
+ core/base/v7/inc/ROOT/RDirectory.hxx | 2 +-
+ core/base/v7/inc/ROOT/RDirectoryEntry.hxx | 2 +-
+ core/base/v7/inc/ROOT/RError.hxx | 2 +-
+ core/base/v7/inc/ROOT/RIndexIter.hxx | 2 +-
+ core/base/v7/inc/ROOT/RLogger.hxx | 2 +-
+ core/base/v7/inc/ROOT/RTupleApply.hxx | 2 +-
+ core/base/v7/inc/ROOT/impl_tuple_apply.hxx | 2 +-
+ core/base/v7/src/RLogger.cxx | 2 +-
+ core/clingutils/test/TClingUtilsTests.cxx | 2 +-
+ core/foundation/inc/ROOT/RNotFn.hxx | 2 +-
+ core/foundation/inc/ROOT/RSpan.hxx | 2 +-
+ core/foundation/inc/ROOT/span.hxx | 2 +-
+ core/foundation/src/FoundationUtils.cxx | 2 +-
+ gui/browsable/inc/ROOT/Browsable/RItem.hxx | 2 +-
+ gui/browsable/src/RHistDraw7Provider.cxx | 2 +-
+ gui/browsable/src/RSysFile.cxx | 2 +-
+ gui/browserv7/inc/ROOT/RBrowserReply.hxx | 2 +-
+ hist/hist/test/TFormulaGradientTests.cxx | 2 +-
+ hist/histdrawv7/inc/ROOT/RHistDrawable.hxx | 2 +-
+ hist/histv7/inc/ROOT/RAxis.hxx | 2 +-
+ hist/histv7/inc/ROOT/RAxisConfig.hxx | 2 +-
+ hist/histv7/inc/ROOT/RHist.hxx | 2 +-
+ hist/histv7/inc/ROOT/RHistBinIter.hxx | 2 +-
+ hist/histv7/inc/ROOT/RHistBufferedFill.hxx | 2 +-
+ hist/histv7/inc/ROOT/RHistConcurrentFill.hxx | 2 +-
+ hist/histv7/inc/ROOT/RHistData.hxx | 2 +-
+ hist/histv7/inc/ROOT/RHistImpl.hxx | 2 +-
+ hist/histv7/inc/ROOT/RHistUtils.hxx | 2 +-
+ hist/histv7/inc/ROOT/RHistView.hxx | 2 +-
+ io/io/v7/inc/ROOT/RFile.hxx | 2 +-
+ math/mathcore/test/CladDerivatorTests.cxx | 2 +-
+ math/mathcore/v7/inc/ROOT/RFit.hxx | 2 +-
+ tmva/tmva/inc/TMVA/NeuralNet.h | 2 +-
+ 33 files changed, 33 insertions(+), 33 deletions(-)
+
+diff --git a/core/base/v7/inc/ROOT/RDirectory.hxx b/core/base/v7/inc/ROOT/RDirectory.hxx
+index 5331f91144..6d1a4b0541 100644
+--- a/core/base/v7/inc/ROOT/RDirectory.hxx
++++ b/core/base/v7/inc/ROOT/RDirectory.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RDirectory.h
++/// \file ROOT/RDirectory.hxx
+ /// \ingroup Base ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-07-31
+diff --git a/core/base/v7/inc/ROOT/RDirectoryEntry.hxx b/core/base/v7/inc/ROOT/RDirectoryEntry.hxx
+index a7258bc642..1a33e5003a 100644
+--- a/core/base/v7/inc/ROOT/RDirectoryEntry.hxx
++++ b/core/base/v7/inc/ROOT/RDirectoryEntry.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RDirectoryEntry.h
++/// \file ROOT/RDirectoryEntry.hxx
+ /// \ingroup Base ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-07-31
+diff --git a/core/base/v7/inc/ROOT/RError.hxx b/core/base/v7/inc/ROOT/RError.hxx
+index 7a0d363e7f..6af7a38f01 100644
+--- a/core/base/v7/inc/ROOT/RError.hxx
++++ b/core/base/v7/inc/ROOT/RError.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RError.h
++/// \file ROOT/RError.hxx
+ /// \ingroup Base ROOT7
+ /// \author Jakob Blomer <jblomer(a)cern.ch>
+ /// \date 2019-12-11
+diff --git a/core/base/v7/inc/ROOT/RIndexIter.hxx b/core/base/v7/inc/ROOT/RIndexIter.hxx
+index 1e290d82c8..fc424fdb8d 100644
+--- a/core/base/v7/inc/ROOT/RIndexIter.hxx
++++ b/core/base/v7/inc/ROOT/RIndexIter.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RIndexIter.h
++/// \file ROOT/RIndexIter.hxx
+ /// \ingroup Base ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2016-01-19
+diff --git a/core/base/v7/inc/ROOT/RLogger.hxx b/core/base/v7/inc/ROOT/RLogger.hxx
+index c1852656ee..d4e3e6e7bd 100644
+--- a/core/base/v7/inc/ROOT/RLogger.hxx
++++ b/core/base/v7/inc/ROOT/RLogger.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/TLogger.h
++/// \file ROOT/RLogger.hxx
+ /// \ingroup Base ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-03-29
+diff --git a/core/base/v7/inc/ROOT/RTupleApply.hxx b/core/base/v7/inc/ROOT/RTupleApply.hxx
+index 9a80bfcd6f..995246505f 100644
+--- a/core/base/v7/inc/ROOT/RTupleApply.hxx
++++ b/core/base/v7/inc/ROOT/RTupleApply.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RTupleApply.h
++/// \file ROOT/RTupleApply.hxx
+ /// \ingroup Base StdExt ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-09-06
+diff --git a/core/base/v7/inc/ROOT/impl_tuple_apply.hxx b/core/base/v7/inc/ROOT/impl_tuple_apply.hxx
+index dc12706906..68d6988f97 100644
+--- a/core/base/v7/inc/ROOT/impl_tuple_apply.hxx
++++ b/core/base/v7/inc/ROOT/impl_tuple_apply.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/impl_tuple_apply.h
++/// \file ROOT/impl_tuple_apply.hxx
+ /// \ingroup Base StdExt ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-07-09
+diff --git a/core/base/v7/src/RLogger.cxx b/core/base/v7/src/RLogger.cxx
+index 69aba0b05c..3ac8bb760f 100644
+--- a/core/base/v7/src/RLogger.cxx
++++ b/core/base/v7/src/RLogger.cxx
+@@ -1,4 +1,4 @@
+-/// \file TLogger.cxx
++/// \file RLogger.cxx
+ /// \ingroup Base ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-07-07
+diff --git a/core/clingutils/test/TClingUtilsTests.cxx b/core/clingutils/test/TClingUtilsTests.cxx
+index fca26705c3..fbc12cd352 100644
+--- a/core/clingutils/test/TClingUtilsTests.cxx
++++ b/core/clingutils/test/TClingUtilsTests.cxx
+@@ -1,4 +1,4 @@
+-/// \file TClingUtilsTest.cxx
++/// \file TClingUtilsTests.cxx
+ ///
+ /// \brief The file contain unit tests which test the TClingUtils.h
+ ///
+diff --git a/core/foundation/inc/ROOT/RNotFn.hxx b/core/foundation/inc/ROOT/RNotFn.hxx
+index a6dd13679e..a3877797f3 100644
+--- a/core/foundation/inc/ROOT/RNotFn.hxx
++++ b/core/foundation/inc/ROOT/RNotFn.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RNotFn.h
++/// \file ROOT/RNotFn.hxx
+ /// \ingroup Base StdExt
+ /// \author Danilo Piparo, Enrico Guiraud
+ /// \date 2018-01-19
+diff --git a/core/foundation/inc/ROOT/RSpan.hxx b/core/foundation/inc/ROOT/RSpan.hxx
+index 9e356493e6..b7366d58e7 100644
+--- a/core/foundation/inc/ROOT/RSpan.hxx
++++ b/core/foundation/inc/ROOT/RSpan.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RSpan.h
++/// \file ROOT/RSpan.hxx
+ /// \ingroup Base StdExt
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-09-06
+diff --git a/core/foundation/inc/ROOT/span.hxx b/core/foundation/inc/ROOT/span.hxx
+index ce1b0e1d96..185055bbe6 100644
+--- a/core/foundation/inc/ROOT/span.hxx
++++ b/core/foundation/inc/ROOT/span.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/rhysd_span.h
++/// \file ROOT/span.hxx
+ /// \ingroup Base StdExt
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-09-06
+diff --git a/core/foundation/src/FoundationUtils.cxx b/core/foundation/src/FoundationUtils.cxx
+index 9de395698b..d70e196130 100644
+--- a/core/foundation/src/FoundationUtils.cxx
++++ b/core/foundation/src/FoundationUtils.cxx
+@@ -1,4 +1,4 @@
+-/// \file FoundationUtils.hxx
++/// \file FoundationUtils.cxx
+ ///
+ /// \brief The file contains utilities which are foundational and could be used
+ /// across the core component of ROOT.
+diff --git a/gui/browsable/inc/ROOT/Browsable/RItem.hxx b/gui/browsable/inc/ROOT/Browsable/RItem.hxx
+index a07870a2cb..290587013e 100644
+--- a/gui/browsable/inc/ROOT/Browsable/RItem.hxx
++++ b/gui/browsable/inc/ROOT/Browsable/RItem.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RBrowser.hxx
++/// \file ROOT/RItem.hxx
+ /// \ingroup WebGui ROOT7
+ /// \author Bertrand Bellenot <bertrand.bellenot(a)cern.ch>
+ /// \author Sergey Linev <S.Linev(a)gsi.de>
+diff --git a/gui/browsable/src/RHistDraw7Provider.cxx b/gui/browsable/src/RHistDraw7Provider.cxx
+index 416db22472..e2e15303c6 100644
+--- a/gui/browsable/src/RHistDraw7Provider.cxx
++++ b/gui/browsable/src/RHistDraw7Provider.cxx
+@@ -1,4 +1,4 @@
+-/// \file RDrawableRHist.cxx
++/// \file RHistDraw7Provider.cxx
+ /// \ingroup rbrowser
+ /// \author Bertrand Bellenot <bertrand.bellenot(a)cern.ch>
+ /// \author Sergey Linev <S.Linev(a)gsi.de>
+diff --git a/gui/browsable/src/RSysFile.cxx b/gui/browsable/src/RSysFile.cxx
+index d5f481cb83..4447164f52 100644
+--- a/gui/browsable/src/RSysFile.cxx
++++ b/gui/browsable/src/RSysFile.cxx
+@@ -6,7 +6,7 @@
+ * For the list of contributors see $ROOTSYS/README/CREDITS. *
+ *************************************************************************/
+
+-/// \file ROOT/RFileBrowsable.cxx
++/// \file ROOT/RSysFile.cxx
+ /// \ingroup rbrowser
+ /// \author Sergey Linev <S.Linev(a)gsi.de>
+ /// \date 2019-10-15
+diff --git a/gui/browserv7/inc/ROOT/RBrowserReply.hxx b/gui/browserv7/inc/ROOT/RBrowserReply.hxx
+index bdb94f60ea..35a2f1f978 100644
+--- a/gui/browserv7/inc/ROOT/RBrowserReply.hxx
++++ b/gui/browserv7/inc/ROOT/RBrowserReply.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RBrowserRequest.hxx
++/// \file ROOT/RBrowserReply.hxx
+ /// \ingroup WebGui ROOT7
+ /// \author Bertrand Bellenot <bertrand.bellenot(a)cern.ch>
+ /// \author Sergey Linev <S.Linev(a)gsi.de>
+diff --git a/hist/hist/test/TFormulaGradientTests.cxx b/hist/hist/test/TFormulaGradientTests.cxx
+index 8c11a56077..74c0930f03 100644
+--- a/hist/hist/test/TFormulaGradientTests.cxx
++++ b/hist/hist/test/TFormulaGradientTests.cxx
+@@ -1,4 +1,4 @@
+-/// \file TFormulaGradientTests.h
++/// \file TFormulaGradientTests.cxx
+ ///
+ /// \brief The file contain unit tests which test the clad-based gradient
+ /// computations.
+diff --git a/hist/histdrawv7/inc/ROOT/RHistDrawable.hxx b/hist/histdrawv7/inc/ROOT/RHistDrawable.hxx
+index ac56b9c8f3..0b3b635d92 100644
+--- a/hist/histdrawv7/inc/ROOT/RHistDrawable.hxx
++++ b/hist/histdrawv7/inc/ROOT/RHistDrawable.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHistDrawable.h
++/// \file ROOT/RHistDrawable.hxx
+ /// \ingroup HistDraw ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-07-09
+diff --git a/hist/histv7/inc/ROOT/RAxis.hxx b/hist/histv7/inc/ROOT/RAxis.hxx
+index 1d35ed9b93..0371a06f97 100644
+--- a/hist/histv7/inc/ROOT/RAxis.hxx
++++ b/hist/histv7/inc/ROOT/RAxis.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RAxis.h
++/// \file ROOT/RAxis.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-03-23
+diff --git a/hist/histv7/inc/ROOT/RAxisConfig.hxx b/hist/histv7/inc/ROOT/RAxisConfig.hxx
+index 1e100986f0..34bf2f6a4a 100644
+--- a/hist/histv7/inc/ROOT/RAxisConfig.hxx
++++ b/hist/histv7/inc/ROOT/RAxisConfig.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RAxisConfig.h
++/// \file ROOT/RAxisConfig.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2020-02-05
+diff --git a/hist/histv7/inc/ROOT/RHist.hxx b/hist/histv7/inc/ROOT/RHist.hxx
+index ebb319f1ef..5567683b27 100644
+--- a/hist/histv7/inc/ROOT/RHist.hxx
++++ b/hist/histv7/inc/ROOT/RHist.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHist.h
++/// \file ROOT/RHist.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-03-23
+diff --git a/hist/histv7/inc/ROOT/RHistBinIter.hxx b/hist/histv7/inc/ROOT/RHistBinIter.hxx
+index 60f57dd20e..ab77dfbeaa 100644
+--- a/hist/histv7/inc/ROOT/RHistBinIter.hxx
++++ b/hist/histv7/inc/ROOT/RHistBinIter.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHistBinIter.h
++/// \file ROOT/RHistBinIter.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-08-07
+diff --git a/hist/histv7/inc/ROOT/RHistBufferedFill.hxx b/hist/histv7/inc/ROOT/RHistBufferedFill.hxx
+index bb1cade29b..8efe00e207 100644
+--- a/hist/histv7/inc/ROOT/RHistBufferedFill.hxx
++++ b/hist/histv7/inc/ROOT/RHistBufferedFill.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHistBufferedFill.h
++/// \file ROOT/RHistBufferedFill.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-07-03
+diff --git a/hist/histv7/inc/ROOT/RHistConcurrentFill.hxx b/hist/histv7/inc/ROOT/RHistConcurrentFill.hxx
+index a6b4b6a8e2..8ff76eb659 100644
+--- a/hist/histv7/inc/ROOT/RHistConcurrentFill.hxx
++++ b/hist/histv7/inc/ROOT/RHistConcurrentFill.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHistConcurrentFill.h
++/// \file ROOT/RHistConcurrentFill.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-07-03
+diff --git a/hist/histv7/inc/ROOT/RHistData.hxx b/hist/histv7/inc/ROOT/RHistData.hxx
+index 901bd5c33a..9757986ff4 100644
+--- a/hist/histv7/inc/ROOT/RHistData.hxx
++++ b/hist/histv7/inc/ROOT/RHistData.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHistData.h
++/// \file ROOT/RHistData.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-06-14
+diff --git a/hist/histv7/inc/ROOT/RHistImpl.hxx b/hist/histv7/inc/ROOT/RHistImpl.hxx
+index 483d879f0e..b6d4b2c6b5 100644
+--- a/hist/histv7/inc/ROOT/RHistImpl.hxx
++++ b/hist/histv7/inc/ROOT/RHistImpl.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHistImpl.h
++/// \file ROOT/RHistImpl.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-03-23
+diff --git a/hist/histv7/inc/ROOT/RHistUtils.hxx b/hist/histv7/inc/ROOT/RHistUtils.hxx
+index 3733113c2b..08a342bf61 100644
+--- a/hist/histv7/inc/ROOT/RHistUtils.hxx
++++ b/hist/histv7/inc/ROOT/RHistUtils.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHistData.h
++/// \file ROOT/RHistUtils.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2016-06-01
+diff --git a/hist/histv7/inc/ROOT/RHistView.hxx b/hist/histv7/inc/ROOT/RHistView.hxx
+index b65d3518dd..d2b40e0f35 100644
+--- a/hist/histv7/inc/ROOT/RHistView.hxx
++++ b/hist/histv7/inc/ROOT/RHistView.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHistView.h
++/// \file ROOT/RHistView.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-08-06
+diff --git a/io/io/v7/inc/ROOT/RFile.hxx b/io/io/v7/inc/ROOT/RFile.hxx
+index 6d3baaec05..c371a25875 100644
+--- a/io/io/v7/inc/ROOT/RFile.hxx
++++ b/io/io/v7/inc/ROOT/RFile.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RFile.h
++/// \file ROOT/RFile.hxx
+ /// \ingroup Base ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-07-31
+diff --git a/math/mathcore/test/CladDerivatorTests.cxx b/math/mathcore/test/CladDerivatorTests.cxx
+index e4289a7286..d1682094e0 100644
+--- a/math/mathcore/test/CladDerivatorTests.cxx
++++ b/math/mathcore/test/CladDerivatorTests.cxx
+@@ -1,4 +1,4 @@
+-/// \file CladDerivator.h
++/// \file CladDerivatorTests.cxx
+ ///
+ /// \brief The file contain unit tests which test the CladDerivator facility.
+ ///
+diff --git a/math/mathcore/v7/inc/ROOT/RFit.hxx b/math/mathcore/v7/inc/ROOT/RFit.hxx
+index 4fae336242..5b92733152 100644
+--- a/math/mathcore/v7/inc/ROOT/RFit.hxx
++++ b/math/mathcore/v7/inc/ROOT/RFit.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RFit.h
++/// \file ROOT/RFit.hxx
+ /// \ingroup MathCore ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-09-06
+diff --git a/tmva/tmva/inc/TMVA/NeuralNet.h b/tmva/tmva/inc/TMVA/NeuralNet.h
+index 31229cb1cf..bae98a48b2 100644
+--- a/tmva/tmva/inc/TMVA/NeuralNet.h
++++ b/tmva/tmva/inc/TMVA/NeuralNet.h
+@@ -1,5 +1,5 @@
+ /**
+- * @file NeuralNet
++ * @file TMVA/NeuralNet.h
+ * @author Peter Speckmayer
+ * @version 1.0
+ *
+--
+2.26.2
+
diff --git a/root-doxygen-macro-name.patch b/root-doxygen-macro-name.patch
new file mode 100644
index 0000000..a97bdf0
--- /dev/null
+++ b/root-doxygen-macro-name.patch
@@ -0,0 +1,29 @@
+From 8266262f76eaef4dc72ffda38e1d315be2ce3ff0 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Wed, 8 Jul 2020 19:41:34 +0200
+Subject: [PATCH 5/5] Make the name of macro match the filename
+
+Fixes:
+
+warning: Failed to call `rs302_JeffreysPriorDemo()` to execute the macro.
+Add this function or rename the macro. Falling back to `.L`.
+---
+ tutorials/roostats/rs302_JeffreysPriorDemo.C | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tutorials/roostats/rs302_JeffreysPriorDemo.C b/tutorials/roostats/rs302_JeffreysPriorDemo.C
+index c2f720a5f9..1c52e5dd83 100644
+--- a/tutorials/roostats/rs302_JeffreysPriorDemo.C
++++ b/tutorials/roostats/rs302_JeffreysPriorDemo.C
+@@ -49,7 +49,7 @@
+
+ using namespace RooFit;
+
+-void JeffreysPriorDemo()
++void rs302_JeffreysPriorDemo()
+ {
+ RooWorkspace w("w");
+ w.factory("Uniform::u(x[0,1])");
+--
+2.26.2
+
diff --git a/root-doxygen-md-comments.patch b/root-doxygen-md-comments.patch
new file mode 100644
index 0000000..c1f57e2
--- /dev/null
+++ b/root-doxygen-md-comments.patch
@@ -0,0 +1,214 @@
+From 7336caccd3288a9164c82b78053e8f4f59eb1a9c Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Sun, 12 Jul 2020 12:12:15 +0200
+Subject: [PATCH] Remove /** comments */ from md files
+
+---
+ math/genvector/doc/Genvector.md | 7 -------
+ math/genvector/doc/LorentzVector.md | 6 +-----
+ math/genvector/doc/Point3D.md | 6 ------
+ math/genvector/doc/Transformation.md | 6 ------
+ math/genvector/doc/Vector3D.md | 4 ----
+ math/genvector/doc/VectorPoint2D.md | 6 ------
+ math/genvector/doc/externalUsage.md | 6 ------
+ math/mathcore/doc/MathCore.md | 5 -----
+ math/mathmore/doc/MathMore.md | 5 -----
+ math/matrix/doc/Matrix.md | 3 ---
+ math/unuran/doc/Unuran.md | 8 ++------
+ 11 files changed, 3 insertions(+), 59 deletions(-)
+
+diff --git a/math/genvector/doc/Genvector.md b/math/genvector/doc/Genvector.md
+index 12e4e47a93..50dc61b2ce 100644
+--- a/math/genvector/doc/Genvector.md
++++ b/math/genvector/doc/Genvector.md
+@@ -1,5 +1,3 @@
+-/**
+-
+ \page Vector Generic Vector for 2, 3 and 4 Dimensions
+
+
+@@ -113,8 +111,3 @@ A more detailed description of all the GenVector classes is available in this [d
+ 2. [CLHEP Geometry package](http://www.hep.phy.cam.ac.uk/lhcb/doc/CLHEP/1.9.1.2/html/namespaceH)
+ 3. [%ROOT Physics Vector classes](http://root.cern.ch/root/html/PHYSICS_Index.html)
+ 4. [CMS Vector package](http://lcgapp.cern.ch/doxygen/SEAL/snapshot/html/dir_000007.html)
+-
+-* * *
+-
+-*/
+-
+diff --git a/math/genvector/doc/LorentzVector.md b/math/genvector/doc/LorentzVector.md
+index b40ea8c69c..e01ed4a8ca 100644
+--- a/math/genvector/doc/LorentzVector.md
++++ b/math/genvector/doc/LorentzVector.md
+@@ -1,6 +1,4 @@
+-// LorentzVector doxygen page
+-
+-/** \page LorentzVectorPage LorentzVector Classes
++\page LorentzVectorPage LorentzVector Classes
+
+ To avoid exposing templated parameter to the users, typedefs are defined for all types of vectors based an double's and float's. To use them, one must include the header file _Math/Vector4D.h_. The following typedef's, defined in the header file _Math/Vector4Dfwd.h_, are available for the different instantiations of the template class ROOT::Math::LorentzVector:
+
+@@ -110,5 +108,3 @@ v.Beta(); // return beta and gamma value
+ v.Gamma() // (vector must be time-like otherwise result is meaningless)
+ XYZVector b = v.BoostToCM() // return boost vector which will bring the Vector in its mas frame (P=0)
+ </pre>
+-
+-*/
+diff --git a/math/genvector/doc/Point3D.md b/math/genvector/doc/Point3D.md
+index a273b182d4..db55c68752 100644
+--- a/math/genvector/doc/Point3D.md
++++ b/math/genvector/doc/Point3D.md
+@@ -1,7 +1,3 @@
+-// Point3d doxygen page
+-
+-/**
+-
+ \page Point3DPage Point3D Classes
+
+ To avoid exposing templated parameter to the users, typedefs are defined for all types of vectors based an double's and float's. To use them, one must include the header file _Math/Point3D.h_. The following typedef's, defined in the header file _Math/Point3Dfwd.h_, are available for the different instantiations of the template class ROOT::Math::PositionVector3D:
+@@ -61,5 +57,3 @@ Exactly as for the 3D Vectors, the following operations are allowed:
+ * comparison of points
+ * scaling and division of points with a scalar
+ * dot and cross product with any type of vector
+-
+-*/
+diff --git a/math/genvector/doc/Transformation.md b/math/genvector/doc/Transformation.md
+index 7e66107f55..edc36778ed 100644
+--- a/math/genvector/doc/Transformation.md
++++ b/math/genvector/doc/Transformation.md
+@@ -1,7 +1,3 @@
+-// Rotation and transformation doxygen page
+-
+-/**
+-
+ \page TransformPage Vector Transformations
+
+ Transformations classes are grouped in Rotations (in 3 dimensions), Lorentz transformations and Poincarre transformations, which are Translation/Rotation combinations. Each group has several members which may model physically equivalent trasformations but with different internal representations.
+@@ -114,5 +110,3 @@ Transform3D t; t.GetComponens(m); // fill matrix of size 3x4 with c
+ </pre>
+
+ For more detailed documentation on all methods see the reference doc for the specific transformation class.
+-
+-*/
+diff --git a/math/genvector/doc/Vector3D.md b/math/genvector/doc/Vector3D.md
+index 4f65f6b603..9d10ce7db2 100644
+--- a/math/genvector/doc/Vector3D.md
++++ b/math/genvector/doc/Vector3D.md
+@@ -1,5 +1,3 @@
+-/**
+-
+ \page Vector3DPage Vector3D Classes
+
+
+@@ -120,5 +118,3 @@ Note that the multiplication between two vectors using the operator * is not sup
+
+ <pre>XYZVector u = v1.Unit(); // return unit vector parallel to v1
+ </pre>
+-
+-*/
+diff --git a/math/genvector/doc/VectorPoint2D.md b/math/genvector/doc/VectorPoint2D.md
+index 5c5e665088..287f3f8b73 100644
+--- a/math/genvector/doc/VectorPoint2D.md
++++ b/math/genvector/doc/VectorPoint2D.md
+@@ -1,7 +1,3 @@
+-// Vector2d doxygen page
+-
+-/**
+-
+ \page Vector2DPage 2D Point and Vector Classes
+
+ Similar to the \ref Vector3DPage and \ref Point3DPage , typedefs are defined to avoid exposing templated parameter to the users, for all 2D vectors based an double's and float's. To use them, one must include the header file _Math/Vector2D.h_ or _Math/Point2D.h_. The following typedef's, defined in the header file _Math/Vector2Dfwd.h_, are available for the different instantiations of the template class ROOT::Math::DisplacementVector2D:
+@@ -19,5 +15,3 @@ The typedef's, defined in the header file _Math/Point2Dfwd.h_, available for the
+ * ROOT::Math::Polar2DPointF vector based on r,phi coordinates (polar) in float precision
+
+ Similar constructs, functions and operations available for the 3D vectors and points (see \ref Vector3DPage and \ref Point3DPage ) are available also for the 2D vector and points. No transformations or rotation classes are available for the 2D vectors.
+-
+-*/
+diff --git a/math/genvector/doc/externalUsage.md b/math/genvector/doc/externalUsage.md
+index f8580225a5..4413bbafca 100644
+--- a/math/genvector/doc/externalUsage.md
++++ b/math/genvector/doc/externalUsage.md
+@@ -1,7 +1,3 @@
+-// example on using with exteral classes (doxygen page)
+-
+-/**
+-
+ \page ExtUsagePage Examples with External Packages
+
+ ### Connection to Linear Algebra classes
+@@ -48,5 +44,3 @@ XYZPoint p1(hp); // create a 3D Point from CLHEP geom
+
+ CLHEP::HepLorentzVector hq;
+ XYZTVector q(hq); // create a LorentzVector from CLHEP L.V.</double> </pre>
+-
+-*/
+diff --git a/math/mathcore/doc/MathCore.md b/math/mathcore/doc/MathCore.md
+index 4efc043cab..8d38b4ae19 100644
+--- a/math/mathcore/doc/MathCore.md
++++ b/math/mathcore/doc/MathCore.md
+@@ -1,5 +1,3 @@
+-/**
+-
+ \defgroup MathCore MathCore
+
+ \brief The Core Mathematical Library of %ROOT. See the \ref MathCorePage "MathCore" description page.
+@@ -32,6 +30,3 @@ MathCore contains instead now classes which were originally part of _libCore_. T
+ * Other classes, such as
+ * TKDTree for partitioning the data using a kd-Tree and TKDTreeBinning for binning data using a kdTree
+ * ROOT::Math::GoFTest for goodness of fit tests
+-
+-
+-*/
+diff --git a/math/mathmore/doc/MathMore.md b/math/mathmore/doc/MathMore.md
+index 28b3528a68..f30ef6d0be 100644
+--- a/math/mathmore/doc/MathMore.md
++++ b/math/mathmore/doc/MathMore.md
+@@ -1,6 +1,3 @@
+-
+-/**
+-
+ \defgroup MathMore MathMore
+
+ \brief The Mathematical library providing some advanced functionality and based on GSL. See the \ref MathMorePage "MathMore" Library page.
+@@ -32,5 +29,3 @@ To build MathMore you need to have first GSL installed somewhere in your system.
+ MathMore (and its %ROOT CINT dictionary) can be built within %ROOT whenever a GSL library is found in the system. Optionally the GSL library and header file location can be specified in the %ROOT configure script with _configure --with-gsl-incdir=... --with-gsl-libdir=..._
+ MathMore links with the GSL static libraries. On some platform (like Linux x86-64) GSL needs to be compiled with the option _--with-pic_.
+ The source code of MathMore is distributed under the GNU General Public License
+-
+-*/
+diff --git a/math/matrix/doc/Matrix.md b/math/matrix/doc/Matrix.md
+index ed0d9fffe8..f0b9d7a06a 100644
+--- a/math/matrix/doc/Matrix.md
++++ b/math/matrix/doc/Matrix.md
+@@ -1,6 +1,3 @@
+-/**
+-
+-
+ \page MatrixPage The ROOT Matrix Linear Algebra classes.
+
+
+diff --git a/math/unuran/doc/Unuran.md b/math/unuran/doc/Unuran.md
+index d807c4e807..4c64e0d214 100644
+--- a/math/unuran/doc/Unuran.md
++++ b/math/unuran/doc/Unuran.md
+@@ -1,9 +1,7 @@
+-/**
+-
+-Universal Non Uniform Random number generator for generating non uniform pseudo-random numbers
+-
+ \defgroup Unuran Unuran
+
++\brief Universal Non Uniform Random number generator for generating non uniform pseudo-random numbers.
++
+ \ingroup Math
+
+ UNU.RAN, (Universal Non Uniform Random number generator for generating non uniform pseudo-random numbers)
+@@ -120,5 +118,3 @@ TRandom pointer when constructing the TUnuran class (by default the ROOT gRandom
+
+ The (UNU.RAN documentation)[http://statistik.wu-wien.ac.at/unuran/doc/unuran.html#Top] provides a detailed
+ description of all the available methods and the possible options which one can pass to UNU.RAN for the various distributions.
+-*/
+-
+--
+2.26.2
+
diff --git a/root-doxygen-missing-underscore.patch b/root-doxygen-missing-underscore.patch
new file mode 100644
index 0000000..630d58f
--- /dev/null
+++ b/root-doxygen-missing-underscore.patch
@@ -0,0 +1,25 @@
+From e6e6715a73fb8b65ee24c11ff08ca34e25db9ef1 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Wed, 8 Jul 2020 19:41:10 +0200
+Subject: [PATCH 4/5] Add missing underscore
+
+---
+ tutorials/fit/vectorizedFit.C | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tutorials/fit/vectorizedFit.C b/tutorials/fit/vectorizedFit.C
+index d6b13e2fa7..1f6e317aa6 100644
+--- a/tutorials/fit/vectorizedFit.C
++++ b/tutorials/fit/vectorizedFit.C
+@@ -8,7 +8,7 @@
+ /// TF1::SetVectorized
+ ///
+ /// \macro_image
+-/// \macro output
++/// \macro_output
+ /// \macro_code
+ ///
+ /// \author Lorenzo Moneta
+--
+2.26.2
+
diff --git a/root-doxygen-parameter-names.patch b/root-doxygen-parameter-names.patch
new file mode 100644
index 0000000..7cc7d2e
--- /dev/null
+++ b/root-doxygen-parameter-names.patch
@@ -0,0 +1,1211 @@
+From e65727913e435819a3fc26513d9892d179eab1f2 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Wed, 8 Jul 2020 19:32:51 +0200
+Subject: [PATCH 3/5] Adjust parameter names in doxygen markup so they match
+ the code
+
+Addresses warnings:
+
+argument '<name>' of command @param is not found in the argument list
+of <function>.
+---
+ .../pythonizations/src/PyzPythonHelpers.cxx | 2 +-
+ bindings/r/inc/TRInterface.h | 4 +--
+ hist/hist/src/TF1.cxx | 5 ++-
+ hist/hist/src/TGraph.cxx | 6 ++--
+ hist/histpainter/src/TPainter3dAlgorithms.cxx | 6 ++--
+ hist/histv7/inc/ROOT/RAxis.hxx | 11 +++----
+ hist/histv7/inc/ROOT/RHist.hxx | 2 +-
+ hist/unfold/src/TUnfoldBinning.cxx | 24 +++++++-------
+ hist/unfold/src/TUnfoldBinningXML.cxx | 2 +-
+ hist/unfold/src/TUnfoldDensity.cxx | 2 +-
+ hist/unfold/src/TUnfoldSys.cxx | 7 ++--
+ io/io/inc/ROOT/TBufferMerger.hxx | 2 +-
+ math/mathcore/inc/Math/IntegratorMultiDim.h | 2 +-
+ math/minuit2/inc/Minuit2/FCNBase.h | 4 +--
+ math/minuit2/inc/Minuit2/FumiliChi2FCN.h | 2 +-
+ math/minuit2/inc/Minuit2/FumiliErrorUpdator.h | 2 +-
+ .../inc/Minuit2/FumiliMaximumLikelihoodFCN.h | 2 +-
+ roofit/roofit/src/RooExponential.cxx | 2 +-
+ roofit/roofit/src/RooGExpModel.cxx | 32 +++++++++----------
+ roofit/roofit/src/RooGaussian.cxx | 2 +-
+ roofit/roofit/src/RooJohnson.cxx | 2 +-
+ roofit/roofit/src/RooLandau.cxx | 2 +-
+ roofit/roofitcore/src/BatchData.cxx | 2 +-
+ roofit/roofitcore/src/RooAbsPdf.cxx | 4 +--
+ roofit/roofitcore/src/RooAbsReal.cxx | 2 +-
+ roofit/roofitcore/src/RooCustomizer.cxx | 4 +--
+ roofit/roofitcore/src/RooDataHist.cxx | 4 +--
+ roofit/roofitcore/src/RooDataSet.cxx | 10 +++---
+ roofit/roofitcore/src/RooFormulaVar.cxx | 2 +-
+ roofit/roofitcore/src/RooSuperCategory.cxx | 2 +-
+ roofit/roofitmore/src/RooHypatia2.cxx | 6 ++--
+ tmva/tmva/inc/TMVA/BDTEventWrapper.h | 4 +--
+ tmva/tmva/inc/TMVA/NeuralNet.h | 14 +++-----
+ tmva/tmva/inc/TMVA/NeuralNet.icc | 2 +-
+ tmva/tmva/inc/TMVA/RTensor.hxx | 2 +-
+ .../inc/TMVA/TreeInference/BranchlessTree.hxx | 4 +--
+ tmva/tmva/inc/TMVA/TreeInference/Forest.hxx | 2 +-
+ tmva/tmva/src/BDTEventWrapper.cxx | 2 +-
+ tmva/tmva/src/CrossValidation.cxx | 2 +-
+ tmva/tmva/src/CvSplit.cxx | 18 +++++------
+ tmva/tmva/src/Envelope.cxx | 12 +++----
+ tree/dataframe/inc/ROOT/RDF/RInterface.hxx | 16 +++++-----
+ tree/dataframe/inc/ROOT/RDFHelpers.hxx | 2 +-
+ tree/dataframe/inc/ROOT/RDataSource.hxx | 8 ++---
+ tree/dataframe/inc/ROOT/RResultPtr.hxx | 2 +-
+ tree/dataframe/src/RArrowDS.cxx | 4 +--
+ tree/tree/inc/TTree.h | 2 +-
+ tree/tree/src/TIOFeatures.cxx | 14 ++++----
+ 48 files changed, 131 insertions(+), 140 deletions(-)
+
+diff --git a/bindings/pyroot/pythonizations/src/PyzPythonHelpers.cxx b/bindings/pyroot/pythonizations/src/PyzPythonHelpers.cxx
+index 059debcee4..c5e354f300 100644
+--- a/bindings/pyroot/pythonizations/src/PyzPythonHelpers.cxx
++++ b/bindings/pyroot/pythonizations/src/PyzPythonHelpers.cxx
+@@ -99,7 +99,7 @@ PyObject *PyROOT::GetDataPointer(PyObject * /*self*/, PyObject *args)
+ /// \brief Get endianess of the system
+ /// \param[in] self Always null, since this is a module function.
+ /// \param[in] args Pointer to an empty Python tuple.
+-/// \param[out] Endianess as Python string
++/// \return Endianess as Python string
+ ///
+ /// This function returns endianess of the system as a Python integer. The
+ /// return value is either '<' or '>' for little or big endian, respectively.
+diff --git a/bindings/r/inc/TRInterface.h b/bindings/r/inc/TRInterface.h
+index bdb559bfb5..e097007429 100644
+--- a/bindings/r/inc/TRInterface.h
++++ b/bindings/r/inc/TRInterface.h
+@@ -206,7 +206,7 @@ namespace ROOT {
+ The command line arguments are by deafult argc=0 and argv=NULL,
+ The verbose mode is by default disabled but you can enable it to show procedures information in stdout/stderr \note some time can produce so much noise in the output
+ \param argc default 0
+- \param args default null
++ \param argv default null
+ \param loadRcpp default true
+ \param verbose default false
+ \param interactive default true
+@@ -226,7 +226,7 @@ namespace ROOT {
+ /**
+ Method to eval R code and you get the result in a reference to TRObject
+ \param code R code
+- \param ands reference to TRObject
++ \param ans reference to TRObject
+ \return an true or false if the execution was sucessful or not.
+ */
+ Int_t Eval(const TString &code, TRObject &ans); // parse line, returns in ans; error code rc
+diff --git a/hist/hist/src/TF1.cxx b/hist/hist/src/TF1.cxx
+index a72b309c1e..0b7c0b5e45 100644
+--- a/hist/hist/src/TF1.cxx
++++ b/hist/hist/src/TF1.cxx
+@@ -1973,12 +1973,11 @@ Double_t TF1::GetProb() const
+ /// F(x_{\frac{1}{2}}) = \prod(x < x_{\frac{1}{2}}) = \frac{1}{2}
+ /// \f]
+ ///
+-/// \param[in] this TF1 function
+ /// \param[in] nprobSum maximum size of array q and size of array probSum
++/// \param[out] q array filled with nq quantiles
+ /// \param[in] probSum array of positions where quantiles will be computed.
+ /// It is assumed to contain at least nprobSum values.
+-/// \param[out] return value nq (<=nprobSum) with the number of quantiles computed
+-/// \param[out] array q filled with nq quantiles
++/// \return value nq (<=nprobSum) with the number of quantiles computed
+ ///
+ /// Getting quantiles from two histograms and storing results in a TGraph,
+ /// a so-called QQ-plot
+diff --git a/hist/hist/src/TGraph.cxx b/hist/hist/src/TGraph.cxx
+index b6e05a4a9c..614c63d697 100644
+--- a/hist/hist/src/TGraph.cxx
++++ b/hist/hist/src/TGraph.cxx
+@@ -1900,9 +1900,9 @@ Int_t TGraph::IsInside(Double_t x, Double_t y) const
+ /// Least squares polynomial fitting without weights.
+ ///
+ /// \param [in] m number of parameters
+-/// \param [in] ma array of parameters
+-/// \param [in] mfirst 1st point number to fit (default =0)
+-/// \param [in] mlast last point number to fit (default=fNpoints-1)
++/// \param [in] a array of parameters
++/// \param [in] xmin 1st point number to fit (default =0)
++/// \param [in] xmax last point number to fit (default=fNpoints-1)
+ ///
+ /// based on CERNLIB routine LSQ: Translated to C++ by Rene Brun
+
+diff --git a/hist/histpainter/src/TPainter3dAlgorithms.cxx b/hist/histpainter/src/TPainter3dAlgorithms.cxx
+index e0dd1f28e4..a95ac36d2d 100644
+--- a/hist/histpainter/src/TPainter3dAlgorithms.cxx
++++ b/hist/histpainter/src/TPainter3dAlgorithms.cxx
+@@ -3122,8 +3122,8 @@ L500:
+ /// Set light source
+ ///
+ /// \param[in] nl source number: 1 off all light sources, 0 set diffused light
+-/// \param[in] xl intensity of the light source
+-/// \param[in] xscr `yscr` `zscr` direction of the light (in respect of the screen)
++/// \param[in] yl intensity of the light source
++/// \param[in] xscr, yscr, zscr direction of the light (in respect of the screen)
+ ///
+ /// \param[out] irep reply (0 - O.K, -1 error)
+
+@@ -4074,7 +4074,7 @@ L500:
+ /// \param[in] qqa diffusion coefficient for diffused light [0.,1.]
+ /// \param[in] qqd diffusion coefficient for direct light [0.,1.]
+ /// \param[in] qqs diffusion coefficient for reflected light [0.,1.]
+-/// \param[in] nncs power coefficient for reflected light (.GE.1)
++/// \param[in] nnqs power coefficient for reflected light (.GE.1)
+ ///
+ /// Lightness model formula: Y = YD*QA + > YLi*(QD*cosNi+QS*cosRi)
+ ///
+diff --git a/hist/histv7/inc/ROOT/RAxis.hxx b/hist/histv7/inc/ROOT/RAxis.hxx
+index 0371a06f97..52ed88b9d8 100644
+--- a/hist/histv7/inc/ROOT/RAxis.hxx
++++ b/hist/histv7/inc/ROOT/RAxis.hxx
+@@ -68,7 +68,7 @@ protected:
+ /// determine the bin number taking into account how over/underflow
+ /// should be handled.
+ ///
+- /// \param[out] result status of the bin determination.
++ /// \param[in] rawbin for which to determine the bin number.
+ /// \return Returns the bin number adjusted for potential over- and underflow
+ /// bins. Returns `kInvalidBin` if the axis cannot handle the over- / underflow.
+ ///
+@@ -390,7 +390,7 @@ protected:
+ /// Determine the inverse bin width.
+ /// \param nbinsNoOver - number of bins without unter-/overflow
+ /// \param lowOrHigh - first axis boundary
+- /// \param lighOrLow - second axis boundary
++ /// \param highOrLow - second axis boundary
+ static double GetInvBinWidth(int nbinsNoOver, double lowOrHigh, double highOrLow)
+ {
+ return nbinsNoOver / std::fabs(highOrLow - lowOrHigh);
+@@ -413,7 +413,7 @@ public:
+
+ /// Initialize a RAxisEquidistant.
+ /// \param[in] title - axis title used for graphics and text representation.
+- /// \param nbins - number of bins in the axis, excluding under- and overflow
++ /// \param nbinsNoOver - number of bins in the axis, excluding under- and overflow
+ /// bins.
+ /// \param low - the low axis range. Any coordinate below that is considered
+ /// as underflow. The first bin's lower edge is at this value.
+@@ -427,13 +427,12 @@ public:
+ {}
+
+ /// Initialize a RAxisEquidistant.
+- /// \param nbins - number of bins in the axis, excluding under- and overflow
++ /// \param nbinsNoOver - number of bins in the axis, excluding under- and overflow
+ /// bins.
+ /// \param low - the low axis range. Any coordinate below that is considered
+ /// as underflow. The first bin's lower edge is at this value.
+ /// \param high - the high axis range. Any coordinate above that is considered
+ /// as overflow. The last bin's higher edge is at this value.
+- /// \param canGrow - whether this axis can extend its range.
+ explicit RAxisEquidistant(int nbinsNoOver, double low, double high) noexcept
+ : RAxisEquidistant("", nbinsNoOver, low, high)
+ {}
+@@ -505,6 +504,7 @@ struct AxisConfigToType<RAxisConfig::kEquidistant> {
+ class RAxisGrow: public RAxisEquidistant {
+ public:
+ /// Initialize a RAxisGrow.
++ /// \param[in] title - axis title used for graphics and text representation.
+ /// \param nbins - number of bins in the axis, excluding under- and overflow
+ /// bins. This value is fixed over the lifetime of the object.
+ /// \param low - the initial value for the low axis range. Any coordinate
+@@ -518,7 +518,6 @@ public:
+ {}
+
+ /// Initialize a RAxisGrow.
+- /// \param[in] title - axis title used for graphics and text representation.
+ /// \param nbins - number of bins in the axis, excluding under- and overflow
+ /// bins. This value is fixed over the lifetime of the object.
+ /// \param low - the initial value for the low axis range. Any coordinate
+diff --git a/hist/histv7/inc/ROOT/RHist.hxx b/hist/histv7/inc/ROOT/RHist.hxx
+index 5567683b27..e2b7649975 100644
+--- a/hist/histv7/inc/ROOT/RHist.hxx
++++ b/hist/histv7/inc/ROOT/RHist.hxx
+@@ -219,9 +219,9 @@ struct RHistImplGen {
+ ///
+ /// Delegate to the appropriate MakeNextAxis instantiation, depending on the
+ /// axis type selected in the RAxisConfig.
++ /// \param title - title of the derived object.
+ /// \param axes - `RAxisConfig` objects describing the axis of the resulting
+ /// RHistImpl.
+- /// \param statConfig - the statConfig parameter to be passed to the RHistImpl
+ /// \param processedAxisArgs - the RAxisBase-derived axis objects describing the
+ /// axes of the resulting RHistImpl. There are `IDIM` of those; in the end
+ /// (`IDIM` == `GetNDim()`), all `axes` have been converted to
+diff --git a/hist/unfold/src/TUnfoldBinning.cxx b/hist/unfold/src/TUnfoldBinning.cxx
+index 3aecbf53c2..2500230dca 100644
+--- a/hist/unfold/src/TUnfoldBinning.cxx
++++ b/hist/unfold/src/TUnfoldBinning.cxx
+@@ -205,7 +205,7 @@ Int_t TUnfoldBinning::UpdateFirstLastBin(Bool_t startWithRootNode)
+ /// Create a new node without axis.
+ ///
+ /// \param[in] name identifier of the node
+-/// \param[in] nBin number of unconnected bins (could be zero)
++/// \param[in] nBins number of unconnected bins (could be zero)
+ /// \param[in] binNames (optional) names of the bins separated by ';'
+
+ TUnfoldBinning::TUnfoldBinning
+@@ -241,7 +241,7 @@ TUnfoldBinning::TUnfoldBinning
+ /// Add a new binning node as last last child of this node.
+ ///
+ /// \param[in] name name of the node
+-/// \param[in] nBin number of extra bins
++/// \param[in] nBins number of extra bins
+ /// \param[in] binNames (optional) names of the bins separated by ';'
+ ///
+ /// this is a shortcut for AddBinning(new TUnfoldBinning(name,nBins,binNames))
+@@ -695,11 +695,11 @@ Int_t TUnfoldBinning::GetTH1xNumberOfBins
+ ///
+ /// \param[in] histogramName name of the histogram which is created
+ /// \param[in] originalAxisBinning if true, try to preserve the axis binning
+-/// \param[out] (default=0) binMap mapping of global bins to histogram bins.
++/// \param[out] binMap (default=0) mapping of global bins to histogram bins.
+ /// if(binMap==0), no binMap is created
+-/// \param[in] (default=0) histogramTitle title of the histogram. If zero, a title
++/// \param[in] histogramTitle (default=0) title of the histogram. If zero, a title
+ /// is selected automatically
+-/// \param[in] (default=0) axisSteering steer the handling of underflow/overflow
++/// \param[in] axisSteering (default=0) steer the handling of underflow/overflow
+ /// and projections
+ ///
+ /// returns a new histogram (TH1D, TH2D or TH3D)
+@@ -789,11 +789,11 @@ TH1 *TUnfoldBinning::CreateHistogram
+ ///
+ /// \param[in] histogramName name of the histogram which is created
+ /// \param[in] originalAxisBinning if true, try to preserve the axis binning
+-/// \param[out] (default=0) binMap mapping of global bins to histogram bins.
++/// \param[out] binMap (default=0) mapping of global bins to histogram bins.
+ /// if(binMap==0), no binMap is created
+-/// \param[in] (default=0) histogramTitle title of the histogram. If zero, a title
++/// \param[in] histogramTitle (default=0) title of the histogram. If zero, a title
+ /// is selected automatically
+-/// \param[in] (default=0) axisSteering steer the handling of underflow/overflow
++/// \param[in] axisSteering (default=0) steer the handling of underflow/overflow
+ /// and projections
+ ///
+ /// returns a new TH2D. The options are described in greater detail
+@@ -832,7 +832,7 @@ TH2D *TUnfoldBinning::CreateErrorMatrixHistogram
+ /// Create a TH2D histogram capable to hold the bins of the two
+ /// input binning schemes on the x and y axes, respectively.
+ ///
+-/// \paran[in] xAxis binning scheme for the x axis
++/// \param[in] xAxis binning scheme for the x axis
+ /// \param[in] yAxis binning scheme for the y axis
+ /// \param[in] histogramName name of the histogram which is created
+ /// \param[in] originalXAxisBinning preserve x-axis bin widths if possible
+@@ -1053,8 +1053,8 @@ Int_t *TUnfoldBinning::CreateEmptyBinMap(void) const {
+ /// Set one entry in a bin map.
+ ///
+ /// \param[out] binMap to be used with TUnfoldSys::GetOutput() etc
+-/// \param[in] source bin, global bin number in this binning scheme
+-/// \param[in] destination bin in the output histogram
++/// \param[in] globalBin source bin, global bin number in this binning scheme
++/// \param[in] destBin destination bin in the output histogram
+
+ void TUnfoldBinning::SetBinMapEntry
+ (Int_t *binMap,Int_t globalBin,Int_t destBin) const {
+@@ -2075,7 +2075,7 @@ Int_t TUnfoldBinning::ToGlobalBin
+ /// and bin numbers on the corresponding axes.
+ ///
+ /// \param[in] globalBin global bin number
+-/// \param[out] local bin numbers of the distribution's axes
++/// \param[out] axisBins local bin numbers of the distribution's axes
+ ///
+ /// returns the distribution in which the globalBin is located
+ /// or 0 if the globalBin is outside this node and its children
+diff --git a/hist/unfold/src/TUnfoldBinningXML.cxx b/hist/unfold/src/TUnfoldBinningXML.cxx
+index 28ce408128..a1daf58215 100644
+--- a/hist/unfold/src/TUnfoldBinningXML.cxx
++++ b/hist/unfold/src/TUnfoldBinningXML.cxx
+@@ -472,7 +472,7 @@ void TUnfoldBinningXML::AddAxisXML(TXMLNode *node) {
+ /// Export a binning scheme to a stream in XML format.
+ ///
+ /// \param[in] binning the binning scheme to export
+-/// \param[out] stream to write to
++/// \param[in] out stream to write to
+ /// \param[in] writeHeader set true when writing the first binning
+ /// scheme to this stream
+ /// \param[in] writeFooter set true when writing the last binning
+diff --git a/hist/unfold/src/TUnfoldDensity.cxx b/hist/unfold/src/TUnfoldDensity.cxx
+index 9b32da0961..78c7ddbf14 100644
+--- a/hist/unfold/src/TUnfoldDensity.cxx
++++ b/hist/unfold/src/TUnfoldDensity.cxx
+@@ -1311,7 +1311,7 @@ const TUnfoldBinning *TUnfoldDensity::GetOutputBinning
+ /// \param[out] scanResult the scanned function wrt log(tau)
+ /// \param[in] mode 1st parameter for the scan function
+ /// \param[in] distribution 2nd parameter for the scan function
+-/// \param[in] projectionMode 3rd parameter for the scan function
++/// \param[in] axisSteering 3rd parameter for the scan function
+ /// \param[out] lCurvePlot for monitoring, shows the L-curve
+ /// \param[out] logTauXPlot for monitoring, L-curve(X) as a function of log(tau)
+ /// \param[out] logTauYPlot for monitoring, L-curve(Y) as a function of log(tau)
+diff --git a/hist/unfold/src/TUnfoldSys.cxx b/hist/unfold/src/TUnfoldSys.cxx
+index 42bbc7751c..1e89445cde 100644
+--- a/hist/unfold/src/TUnfoldSys.cxx
++++ b/hist/unfold/src/TUnfoldSys.cxx
+@@ -463,7 +463,7 @@ Int_t TUnfoldSys::SetInput(const TH1 *hist_y,Double_t scaleBias,
+ /// \param[in] bgr background distribution with uncorrelated errors
+ /// \param[in] name identifier for this background source
+ /// \param[in] scale normalisation factor applied to the background
+-/// \param[in] scaleError normalisation uncertainty
++/// \param[in] scale_error normalisation uncertainty
+ ///
+ /// The contribution <b>scale</b>*<b>bgr</b> is subtracted from the
+ /// measurement prior to unfolding. The following contributions are
+@@ -1045,7 +1045,6 @@ Bool_t TUnfoldSys::GetDeltaSysBackgroundScale
+ /// Correlated one-sigma shifts from shifting tau.
+ ///
+ /// \param[out] hist_delta histogram to store shifts
+-/// \param[in] source identifier of the background source
+ /// \param[in] binMap (default=0) remapping of histogram bins
+ ///
+ /// returns true if the background source was found.
+@@ -1100,8 +1099,8 @@ void TUnfoldSys::GetEmatrixSysSource
+ ////////////////////////////////////////////////////////////////////////////////
+ /// Covariance contribution from background normalisation uncertainty.
+ ///
+-/// \param[inout] ematrix output histogram
+-/// \param[in] source identifier of the background source
++/// \param[in,out] ematrix output histogram
++/// \param[in] name identifier of the background source
+ /// \param[in] binMap (default=0) remapping of histogram bins
+ /// \param[in] clearEmat (default=true) if true, clear the histogram
+ /// prior to adding the covariance matrix contribution
+diff --git a/io/io/inc/ROOT/TBufferMerger.hxx b/io/io/inc/ROOT/TBufferMerger.hxx
+index 27fe36d399..5e4cfe52cb 100644
+--- a/io/io/inc/ROOT/TBufferMerger.hxx
++++ b/io/io/inc/ROOT/TBufferMerger.hxx
+@@ -43,7 +43,7 @@ public:
+ /** Constructor
+ * @param name Output file name
+ * @param option Output file creation options
+- * @param compression Output file compression level
++ * @param compress Output file compression level
+ */
+ TBufferMerger(const char *name, Option_t *option = "RECREATE", Int_t compress = ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault);
+
+diff --git a/math/mathcore/inc/Math/IntegratorMultiDim.h b/math/mathcore/inc/Math/IntegratorMultiDim.h
+index 0d2d56396e..7b14f96d8e 100644
+--- a/math/mathcore/inc/Math/IntegratorMultiDim.h
++++ b/math/mathcore/inc/Math/IntegratorMultiDim.h
+@@ -60,7 +60,7 @@ public:
+ @param type integration type (adaptive, MC methods, etc..)
+ @param absTol desired absolute Error
+ @param relTol desired relative Error
+- @param size maximum number of sub-intervals
++ @param ncall number of function calls (apply only to MC integratioon methods)
+
+ In case no parameter values are passed the default ones used in IntegratorMultiDimOptions are used
+ */
+diff --git a/math/minuit2/inc/Minuit2/FCNBase.h b/math/minuit2/inc/Minuit2/FCNBase.h
+index bf6c64bd9e..760df5b6f4 100644
+--- a/math/minuit2/inc/Minuit2/FCNBase.h
++++ b/math/minuit2/inc/Minuit2/FCNBase.h
+@@ -65,7 +65,7 @@ public:
+ as it searches for the Minimum or performs whatever analysis is requested by
+ the user.
+
+- @param par function parameters as defined by the user.
++ @param v function parameters as defined by the user.
+
+ @return the Value of the function.
+
+@@ -75,7 +75,7 @@ public:
+
+ */
+
+- virtual double operator()(const std::vector<double>& x) const = 0;
++ virtual double operator()(const std::vector<double>& v) const = 0;
+
+
+ /**
+diff --git a/math/minuit2/inc/Minuit2/FumiliChi2FCN.h b/math/minuit2/inc/Minuit2/FumiliChi2FCN.h
+index 6af985ef08..fac33baaf6 100644
+--- a/math/minuit2/inc/Minuit2/FumiliChi2FCN.h
++++ b/math/minuit2/inc/Minuit2/FumiliChi2FCN.h
+@@ -62,7 +62,7 @@ public:
+
+ Sets the model function for the data (for example gaussian+linear for a peak)
+
+- @param modelFunction a reference to the model function.
++ @param modelFCN a reference to the model function.
+
+ */
+
+diff --git a/math/minuit2/inc/Minuit2/FumiliErrorUpdator.h b/math/minuit2/inc/Minuit2/FumiliErrorUpdator.h
+index 3eb5da9c36..4b620c57a8 100644
+--- a/math/minuit2/inc/Minuit2/FumiliErrorUpdator.h
++++ b/math/minuit2/inc/Minuit2/FumiliErrorUpdator.h
+@@ -67,7 +67,7 @@ public:
+
+ @param fGradientCalculator the Gradient calculator used to retrieved the Parameter transformation
+
+- @param fFumiliFCNBase the function calculating the figure of merit.
++ @param lambda the Marquard lambda factor
+
+
+ \todo Some nice latex mathematical formuli...
+diff --git a/math/minuit2/inc/Minuit2/FumiliMaximumLikelihoodFCN.h b/math/minuit2/inc/Minuit2/FumiliMaximumLikelihoodFCN.h
+index c6725ae350..1661bee94a 100644
+--- a/math/minuit2/inc/Minuit2/FumiliMaximumLikelihoodFCN.h
++++ b/math/minuit2/inc/Minuit2/FumiliMaximumLikelihoodFCN.h
+@@ -61,7 +61,7 @@ public:
+
+ Sets the model function for the data (for example gaussian+linear for a peak)
+
+- @param modelFunction a reference to the model function.
++ @param modelFCN a reference to the model function.
+
+ */
+
+diff --git a/roofit/roofit/src/RooExponential.cxx b/roofit/roofit/src/RooExponential.cxx
+index dc211f5275..e16871c5eb 100644
+--- a/roofit/roofit/src/RooExponential.cxx
++++ b/roofit/roofit/src/RooExponential.cxx
+@@ -102,7 +102,7 @@ void compute(size_t n, double* __restrict output, Tx x, Tc c) {
+
+ ////////////////////////////////////////////////////////////////////////////////
+ /// Evaluate the exponential without normalising it on the given batch.
+-/// \param[in] batchIndex Index of the batch to be computed.
++/// \param[in] begin Index of the batch to be computed.
+ /// \param[in] batchSize Size of each batch. The last batch may be smaller.
+ /// \return A span with the computed values.
+
+diff --git a/roofit/roofit/src/RooGExpModel.cxx b/roofit/roofit/src/RooGExpModel.cxx
+index 9c7f184b69..18f5688217 100644
+--- a/roofit/roofit/src/RooGExpModel.cxx
++++ b/roofit/roofit/src/RooGExpModel.cxx
+@@ -48,10 +48,10 @@ ClassImp(RooGExpModel);
+ ///
+ /// \param[in] name Name of this instance.
+ /// \param[in] title Title (e.g. for plotting)
+-/// \param[in] x The convolution observable.
+-/// \param[in] mean The mean of the Gaussian.
+-/// \param[in] sigma Width of the Gaussian.
+-/// \param[in] rlife Lifetime constant \f$ \tau \f$.
++/// \param[in] xIn The convolution observable.
++/// \param[in] meanIn The mean of the Gaussian.
++/// \param[in] sigmaIn Width of the Gaussian.
++/// \param[in] rlifeIn Lifetime constant \f$ \tau \f$.
+ /// \param[in] meanSF Scale factor for mean.
+ /// \param[in] sigmaSF Scale factor for sigma.
+ /// \param[in] rlifeSF Scale factor for rlife.
+@@ -81,9 +81,9 @@ RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue
+ ///
+ /// \param[in] name Name of this instance.
+ /// \param[in] title Title (e.g. for plotting)
+-/// \param[in] x The convolution observable.
+-/// \param[in] sigma Width of the Gaussian.
+-/// \param[in] rlife Lifetime constant \f$ \tau \f$.
++/// \param[in] xIn The convolution observable.
++/// \param[in] _sigma Width of the Gaussian.
++/// \param[in] _rlife Lifetime constant \f$ \tau \f$.
+ /// \param[in] nlo Include next-to-leading order for higher accuracy of convolution.
+ /// \param[in] type Switch between normal and flipped model.
+ RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue& xIn,
+@@ -105,10 +105,10 @@ RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue
+ ///
+ /// \param[in] name Name of this instance.
+ /// \param[in] title Title (e.g. for plotting)
+-/// \param[in] x The convolution observable.
+-/// \param[in] sigma Width of the Gaussian.
+-/// \param[in] rlife Lifetime constant \f$ \tau \f$.
+-/// \param[in] srSF Scale factor for both sigma and tau.
++/// \param[in] xIn The convolution observable.
++/// \param[in] _sigma Width of the Gaussian.
++/// \param[in] _rlife Lifetime constant \f$ \tau \f$.
++/// \param[in] _rsSF Scale factor for both sigma and tau.
+ /// \param[in] nlo Include next-to-leading order for higher accuracy of convolution.
+ /// \param[in] type Switch between normal and flipped model.
+ RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue& xIn,
+@@ -134,11 +134,11 @@ RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue
+ ///
+ /// \param[in] name Name of this instance.
+ /// \param[in] title Title (e.g. for plotting)
+-/// \param[in] x The convolution observable.
+-/// \param[in] sigma Width of the Gaussian.
+-/// \param[in] rlife Lifetime constant \f$ \tau \f$.
+-/// \param[in] sigmaSF Scale factor for sigma.
+-/// \param[in] rlifeSF Scale factor for rlife.
++/// \param[in] xIn The convolution observable.
++/// \param[in] _sigma Width of the Gaussian.
++/// \param[in] _rlife Lifetime constant \f$ \tau \f$.
++/// \param[in] _sigmaSF Scale factor for sigma.
++/// \param[in] _rlifeSF Scale factor for rlife.
+ /// \param[in] nlo Include next-to-leading order for higher accuracy of convolution.
+ /// \param[in] type Switch between normal and flipped model.
+ RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue& xIn,
+diff --git a/roofit/roofit/src/RooGaussian.cxx b/roofit/roofit/src/RooGaussian.cxx
+index 9d18be7354..aec93528ba 100644
+--- a/roofit/roofit/src/RooGaussian.cxx
++++ b/roofit/roofit/src/RooGaussian.cxx
+@@ -92,7 +92,7 @@ void compute(RooSpan<double> output, Tx x, TMean mean, TSig sigma) {
+ /// and if found, the computation will be batched over their
+ /// values. If batch data are not found for one of the proxies, the proxies value is assumed to
+ /// be constant over the batch.
+-/// \param[in] batchIndex Index of the batch to be computed.
++/// \param[in] begin Index of the batch to be computed.
+ /// \param[in] batchSize Size of each batch. The last batch may be smaller.
+ /// \return A span with the computed values.
+
+diff --git a/roofit/roofit/src/RooJohnson.cxx b/roofit/roofit/src/RooJohnson.cxx
+index ba6686f698..1dd6de96b2 100644
+--- a/roofit/roofit/src/RooJohnson.cxx
++++ b/roofit/roofit/src/RooJohnson.cxx
+@@ -153,7 +153,7 @@ void compute(RooSpan<double> output, TMass mass, TMu mu, TLambda lambda, TGamma
+ /// and if found, the computation will be batched over their
+ /// values. If batch data are not found for one of the proxies, the proxies value is assumed to
+ /// be constant over the batch.
+-/// \param[in] batchIndex Index of the batch to be computed.
++/// \param[in] begin Index of the batch to be computed.
+ /// \param[in] maxSize Maximal size of the batches. May return smaller batches depending on inputs.
+ /// \return A span with the computed values.
+
+diff --git a/roofit/roofit/src/RooLandau.cxx b/roofit/roofit/src/RooLandau.cxx
+index e59a923cf0..2dade45b3a 100644
+--- a/roofit/roofit/src/RooLandau.cxx
++++ b/roofit/roofit/src/RooLandau.cxx
+@@ -169,7 +169,7 @@ void compute( size_t batchSize,
+ /// and if found, the computation will be batched over their
+ /// values. If batch data are not found for one of the proxies, the proxies value is assumed to
+ /// be constant over the batch.
+-/// \param[in] batchIndex Index of the batch to be computed.
++/// \param[in] begin Index of the batch to be computed.
+ /// \param[in] batchSize Size of each batch. The last batch may be smaller.
+ /// \return A span with the computed values.
+
+diff --git a/roofit/roofitcore/src/BatchData.cxx b/roofit/roofitcore/src/BatchData.cxx
+index fd05343076..5bbe34e20b 100644
+--- a/roofit/roofitcore/src/BatchData.cxx
++++ b/roofit/roofitcore/src/BatchData.cxx
+@@ -73,7 +73,7 @@ bool BatchData::setStatus(std::size_t begin, std::size_t size, Status_t stat,
+ /// Retrieve an existing batch.
+ ///
+ /// \param[in] begin Begin index of the batch.
+-/// \param[in] size Requested size. Batch may come out smaller than this.
++/// \param[in] maxSize Requested size. Batch may come out smaller than this.
+ /// \param[in] normSet Optional normSet pointer to distinguish differently normalised computations.
+ /// \param[in] ownerTag Optional owner tag. This avoids reusing batch memory for e.g. getVal() and getLogVal().
+ /// \return Non-mutable contiguous batch data.
+diff --git a/roofit/roofitcore/src/RooAbsPdf.cxx b/roofit/roofitcore/src/RooAbsPdf.cxx
+index 9f68b1cdb7..9e7eb69e09 100644
+--- a/roofit/roofitcore/src/RooAbsPdf.cxx
++++ b/roofit/roofitcore/src/RooAbsPdf.cxx
+@@ -711,7 +711,7 @@ bool checkInfNaNNeg(const T& inputs) {
+
+ ////////////////////////////////////////////////////////////////////////////////
+ /// Scan through outputs and fix+log all nans and negative values.
+-/// \param[in/out] outputs Array to be scanned & fixed.
++/// \param[in,out] outputs Array to be scanned & fixed.
+ /// \param[in] begin Begin of event range. Only needed to print the correct event number
+ /// where the error occurred.
+ void RooAbsPdf::logBatchComputationErrors(RooSpan<const double>& outputs, std::size_t begin) const {
+@@ -734,7 +734,7 @@ void RooAbsPdf::logBatchComputationErrors(RooSpan<const double>& outputs, std::s
+ /// Compute the log-likelihoods for all events in the requested batch.
+ /// The arguments are passed over to getValBatch().
+ /// \param[in] begin Start of the batch.
+-/// \param[in] size Maximum size of the batch. Depending on data layout and memory, the batch
++/// \param[in] maxSize Maximum size of the batch. Depending on data layout and memory, the batch
+ /// may come back smaller.
+ /// \return Returns a batch of doubles that contains the log probabilities.
+ RooSpan<const double> RooAbsPdf::getLogValBatch(std::size_t begin, std::size_t maxSize,
+diff --git a/roofit/roofitcore/src/RooAbsReal.cxx b/roofit/roofitcore/src/RooAbsReal.cxx
+index 2d2ceeaf2d..6cac5f5897 100644
+--- a/roofit/roofitcore/src/RooAbsReal.cxx
++++ b/roofit/roofitcore/src/RooAbsReal.cxx
+@@ -4294,7 +4294,7 @@ RooAbsMoment* RooAbsReal::moment(RooRealVar& obs, Int_t order, Bool_t central, B
+ /// \param[in] order Order of the moment
+ /// \param[in] central If true, the central moment is given by \f$ \langle (x- \langle x \rangle )^2 \rangle \f$
+ /// \param[in] takeRoot Calculate the square root
+-/// \param[in] intNormOb If true, the moment of the function integrated over all normalization observables is returned.
++/// \param[in] intNormObs If true, the moment of the function integrated over all normalization observables is returned.
+
+ RooAbsMoment* RooAbsReal::moment(RooRealVar& obs, const RooArgSet& normObs, Int_t order, Bool_t central, Bool_t takeRoot, Bool_t intNormObs)
+ {
+diff --git a/roofit/roofitcore/src/RooCustomizer.cxx b/roofit/roofitcore/src/RooCustomizer.cxx
+index 97d6d3176c..818991873d 100644
+--- a/roofit/roofitcore/src/RooCustomizer.cxx
++++ b/roofit/roofitcore/src/RooCustomizer.cxx
+@@ -198,7 +198,7 @@ static Int_t init()
+ /// replaceArg() and splitArg() functionality.
+ /// \param[in] pdf Proto PDF to be customised.
+ /// \param[in] masterCat Category to be used for splitting.
+-/// \param[in/out] splitLeafs All nodes created in
++/// \param[in,out] splitLeafs All nodes created in
+ /// the customisation process are added to this set.
+ /// The user can provide nodes that are *taken*
+ /// from the set if they have a name that matches `<parameterNameToBeReplaced>_<category>`.
+@@ -209,7 +209,7 @@ static Int_t init()
+ /// auto yield1 = new RooFormulaVar("yieldSig_BBG1m2T","sigy1","M/3.360779",mass);
+ /// customisedLeafs.addOwned(*yield1);
+ /// ```
+-/// \param[in/out] splitLeafsAll All leafs that are used when customising are collected here.
++/// \param[in,out] splitLeafsAll All leafs that are used when customising are collected here.
+ /// If this set already contains leaves, they will be used for customising if the names match
+ /// as above.
+ ///
+diff --git a/roofit/roofitcore/src/RooDataHist.cxx b/roofit/roofitcore/src/RooDataHist.cxx
+index 1c8b517b0d..8c90dd0ade 100644
+--- a/roofit/roofitcore/src/RooDataHist.cxx
++++ b/roofit/roofitcore/src/RooDataHist.cxx
+@@ -632,8 +632,8 @@ void RooDataHist::_adjustBinning(RooRealVar &theirVar, const TAxis &axis,
+ /// observable to binning in given reference TH1. Used by constructors
+ /// that import data from an external TH1.
+ /// Both the variables in vars and in this RooDataHist are adjusted.
+-/// @param List with variables that are supposed to have their binning adjusted.
+-/// @param Reference histogram that dictates the binning
++/// @param vars List with variables that are supposed to have their binning adjusted.
++/// @param href Reference histogram that dictates the binning
+ /// @param offset If not nullptr, a possible bin count offset for the axes x,y,z is saved here as Int_t[3]
+
+ void RooDataHist::adjustBinning(const RooArgList& vars, const TH1& href, Int_t* offset)
+diff --git a/roofit/roofitcore/src/RooDataSet.cxx b/roofit/roofitcore/src/RooDataSet.cxx
+index 1e54dfbde0..f03ec78a0d 100644
+--- a/roofit/roofitcore/src/RooDataSet.cxx
++++ b/roofit/roofitcore/src/RooDataSet.cxx
+@@ -765,7 +765,7 @@ RooDataSet::RooDataSet(const char *name, const char *title, TTree *theTree,
+ ///
+ /// \param[in] name Name of this dataset.
+ /// \param[in] title Title for e.g. plotting.
+-/// \param[in] tree Tree to be imported.
++/// \param[in] theTree Tree to be imported.
+ /// \param[in] vars Defines the columns of the data set. For each dimension
+ /// specified, the TTree must have a branch with the same name. For category
+ /// branches, this branch should contain the numeric index value. Real dimensions
+@@ -1205,11 +1205,11 @@ void RooDataSet::add(const RooArgSet& data, Double_t wgt, Double_t wgtError)
+ ////////////////////////////////////////////////////////////////////////////////
+ /// Add a data point, with its coordinates specified in the 'data' argset, to the data set.
+ /// Any variables present in 'data' but not in the dataset will be silently ignored.
+-/// \param[in] data Data point.
+-/// \param[in] wgt Event weight. The current value of the weight variable is ignored.
++/// \param[in] indata Data point.
++/// \param[in] inweight Event weight. The current value of the weight variable is ignored.
+ /// \note To obtain weighted events, a variable must be designated `WeightVar` in the constructor.
+-/// \param[in] wgtErrorLo Asymmetric weight error.
+-/// \param[in] wgtErrorHi Asymmetric weight error.
++/// \param[in] weightErrorLo Asymmetric weight error.
++/// \param[in] weightErrorHi Asymmetric weight error.
+ /// \note This requires including the weight variable in the set of `StoreAsymError` variables when constructing
+ /// the dataset.
+
+diff --git a/roofit/roofitcore/src/RooFormulaVar.cxx b/roofit/roofitcore/src/RooFormulaVar.cxx
+index 90ee32d619..947c505598 100644
+--- a/roofit/roofitcore/src/RooFormulaVar.cxx
++++ b/roofit/roofitcore/src/RooFormulaVar.cxx
+@@ -66,7 +66,7 @@ ClassImp(RooFormulaVar);
+ /// Constructor with formula expression and list of input variables.
+ /// \param[in] name Name of the formula.
+ /// \param[in] title Title of the formula.
+-/// \param[in] formula Expression to be evaluated.
++/// \param[in] inFormula Expression to be evaluated.
+ /// \param[in] dependents Variables that should be passed to the formula.
+ /// \param[in] checkVariables Check that all variables from `dependents` are used in the expression.
+ RooFormulaVar::RooFormulaVar(const char *name, const char *title, const char* inFormula, const RooArgList& dependents,
+diff --git a/roofit/roofitcore/src/RooSuperCategory.cxx b/roofit/roofitcore/src/RooSuperCategory.cxx
+index 4c0b705e50..e5668ffb98 100644
+--- a/roofit/roofitcore/src/RooSuperCategory.cxx
++++ b/roofit/roofitcore/src/RooSuperCategory.cxx
+@@ -54,7 +54,7 @@ RooSuperCategory::RooSuperCategory() :
+ /// Construct a super category from other categories.
+ /// \param[in] name Name of this object
+ /// \param[in] title Title (for e.g. printing)
+-/// \param[in] inputCatList RooArgSet with category objects. These all need to derive from RooAbsCategoryLValue, *i.e.*
++/// \param[in] inputCategories RooArgSet with category objects. These all need to derive from RooAbsCategoryLValue, *i.e.*
+ /// one needs to be able to assign to them.
+ RooSuperCategory::RooSuperCategory(const char *name, const char *title, const RooArgSet& inputCategories) :
+ RooAbsCategoryLValue(name, title),
+diff --git a/roofit/roofitmore/src/RooHypatia2.cxx b/roofit/roofitmore/src/RooHypatia2.cxx
+index 691aa6073d..7d550b2753 100644
+--- a/roofit/roofitmore/src/RooHypatia2.cxx
++++ b/roofit/roofitmore/src/RooHypatia2.cxx
+@@ -119,21 +119,21 @@
+ /// \param[in] a2 Start of right tail.
+ /// \param[in] n2 Shape parameter of right tail (\f$ n2 \ge 0 \f$). With \f$ n2 = 0 \f$, the function is constant.
+ RooHypatia2::RooHypatia2(const char *name, const char *title, RooAbsReal& x, RooAbsReal& lambda,
+- RooAbsReal& zeta, RooAbsReal& beta, RooAbsReal& sigm, RooAbsReal& mu, RooAbsReal& a,
++ RooAbsReal& zeta, RooAbsReal& beta, RooAbsReal& sigma, RooAbsReal& mu, RooAbsReal& a,
+ RooAbsReal& n, RooAbsReal& a2, RooAbsReal& n2) :
+ RooAbsPdf(name, title),
+ _x("x", "x", this, x),
+ _lambda("lambda", "Lambda", this, lambda),
+ _zeta("zeta", "zeta", this, zeta),
+ _beta("beta", "Asymmetry parameter beta", this, beta),
+- _sigma("sigma", "Width parameter sigma", this, sigm),
++ _sigma("sigma", "Width parameter sigma", this, sigma),
+ _mu("mu", "Location parameter mu", this, mu),
+ _a("a", "Left tail location a", this, a),
+ _n("n", "Left tail parameter n", this, n),
+ _a2("a2", "Right tail location a2", this, a2),
+ _n2("n2", "Right tail parameter n2", this, n2)
+ {
+- RooHelpers::checkRangeOfParameters(this, {&sigm}, 0.);
++ RooHelpers::checkRangeOfParameters(this, {&sigma}, 0.);
+ RooHelpers::checkRangeOfParameters(this, {&zeta, &n, &n2, &a, &a2}, 0., std::numeric_limits<double>::max(), true);
+ if (zeta.getVal() == 0. && zeta.isConstant()) {
+ RooHelpers::checkRangeOfParameters(this, {&lambda}, -std::numeric_limits<double>::max(), 0., false,
+diff --git a/tmva/tmva/inc/TMVA/BDTEventWrapper.h b/tmva/tmva/inc/TMVA/BDTEventWrapper.h
+index 7d4c4f8dd6..2c99341dd9 100644
+--- a/tmva/tmva/inc/TMVA/BDTEventWrapper.h
++++ b/tmva/tmva/inc/TMVA/BDTEventWrapper.h
+@@ -40,14 +40,14 @@ namespace TMVA {
+
+ // Set the accumulated weight, for sorted signal/background events
+ /**
+- * @param fType - true for signal, false for background
++ * @param type - true for signal, false for background
+ * @param weight - the total weight
+ */
+ void SetCumulativeWeight( Bool_t type, Double_t weight );
+
+ // Get the accumulated weight
+ /**
+- * @param fType - true for signal, false for background
++ * @param type - true for signal, false for background
+ * @return the cumulative weight for sorted signal/background events
+ */
+ Double_t GetCumulativeWeight( Bool_t type ) const;
+diff --git a/tmva/tmva/inc/TMVA/NeuralNet.h b/tmva/tmva/inc/TMVA/NeuralNet.h
+index bae98a48b2..a11b543b59 100644
+--- a/tmva/tmva/inc/TMVA/NeuralNet.h
++++ b/tmva/tmva/inc/TMVA/NeuralNet.h
+@@ -478,10 +478,8 @@ namespace TMVA
+ * \param size size of the layer
+ * \param itWeightBegin indicates the start of the weights for this layer on the weight vector
+ * \param itGradientBegin indicates the start of the gradients for this layer on the gradient vector
+- * \param itFunctionBegin indicates the start of the vector of activation functions for this layer on the
+- * activation function vector
+- * \param itInverseFunctionBegin indicates the start of the vector of activation functions for this
+- * layer on the activation function vector
++ * \param activationFunction indicates activation functions for this layer
++ * \param inverseActivationFunction indicates the inverse activation functions for this layer
+ * \param eModeOutput indicates a potential tranformation of the output values before further computation
+ * DIRECT does not further transformation; SIGMOID applies a sigmoid transformation to each
+ * output value (to create a probability); SOFTMAX applies a softmax transformation to all
+@@ -500,8 +498,7 @@ namespace TMVA
+ *
+ * \param size size of the layer
+ * \param itWeightBegin indicates the start of the weights for this layer on the weight vector
+- * \param itFunctionBegin indicates the start of the vector of activation functions for this layer on the
+- * activation function vector
++ * \param activationFunction indicates the activation function for this layer
+ * \param eModeOutput indicates a potential tranformation of the output values before further computation
+ * DIRECT does not further transformation; SIGMOID applies a sigmoid transformation to each
+ * output value (to create a probability); SOFTMAX applies a softmax transformation to all
+@@ -679,9 +676,6 @@ namespace TMVA
+ /*! \brief c'tor for defining a Layer
+ *
+ *
+- * \param itInputBegin indicates the start of the input node vector
+- * \param itInputEnd indicates the end of the input node vector
+- *
+ */
+ Layer (size_t numNodes, EnumFunction activationFunction, ModeOutputValues eModeOutputValues = ModeOutputValues::DIRECT);
+
+@@ -1141,7 +1135,7 @@ namespace TMVA
+
+ /*! \brief executes one training cycle
+ *
+- * \param minimizier the minimizer to be used
++ * \param minimizer the minimizer to be used
+ * \param weights the weight vector to be used
+ * \param itPatternBegin the pattern to be trained with
+ * \param itPatternEnd the pattern to be trainied with
+diff --git a/tmva/tmva/inc/TMVA/NeuralNet.icc b/tmva/tmva/inc/TMVA/NeuralNet.icc
+index 95cad21e26..e511e49d43 100644
+--- a/tmva/tmva/inc/TMVA/NeuralNet.icc
++++ b/tmva/tmva/inc/TMVA/NeuralNet.icc
+@@ -933,7 +933,7 @@ template <typename LAYERDATA>
+ * \param minimizer the minimizer to be used (e.g. SGD)
+ * \param weights the weight container with all the synapse weights
+ * \param itPatternBegin begin of the pattern container
+- * \parama itPatternEnd the end of the pattern container
++ * \param itPatternEnd the end of the pattern container
+ * \param settings the settings for this training (e.g. multithreading or not, regularization, etc.)
+ * \param dropContainer the data for dropping-out nodes (regularization technique)
+ */
+diff --git a/tmva/tmva/inc/TMVA/RTensor.hxx b/tmva/tmva/inc/TMVA/RTensor.hxx
+index c131384ae2..7d9773b457 100644
+--- a/tmva/tmva/inc/TMVA/RTensor.hxx
++++ b/tmva/tmva/inc/TMVA/RTensor.hxx
+@@ -73,7 +73,7 @@ inline std::vector<std::size_t> ComputeStridesFromShape(const T &shape, MemoryLa
+ }
+
+ /// \brief Compute indices from global index
+-/// \param[in] Shape vector
++/// \param[in] shape Shape vector
+ /// \param[in] idx Global index
+ /// \param[in] layout Memory layout
+ /// \return Indice vector
+diff --git a/tmva/tmva/inc/TMVA/TreeInference/BranchlessTree.hxx b/tmva/tmva/inc/TMVA/TreeInference/BranchlessTree.hxx
+index 4ac460be64..a1c6fdf773 100644
+--- a/tmva/tmva/inc/TMVA/TreeInference/BranchlessTree.hxx
++++ b/tmva/tmva/inc/TMVA/TreeInference/BranchlessTree.hxx
+@@ -72,7 +72,7 @@ struct BranchlessTree {
+ /// Perform inference on a single input vector
+ /// \param[in] input Pointer to data containing the input values
+ /// \param[in] stride Stride to go from one input variable to the next one
+-/// \param[out] Tree score, result of the inference
++/// \return Tree score, result of the inference
+ template <typename T>
+ inline T BranchlessTree<T>::Inference(const T *input, const int stride)
+ {
+@@ -105,7 +105,7 @@ inline void BranchlessTree<T>::FillSparse()
+ ///
+ /// \param[in] funcName Name of the function
+ /// \param[in] typeName Name of the type used for the computation
+-/// \param[out] Code of the inference function as string
++/// \return Code of the inference function as string
+ template <typename T>
+ inline std::string BranchlessTree<T>::GetInferenceCode(const std::string& funcName, const std::string& typeName)
+ {
+diff --git a/tmva/tmva/inc/TMVA/TreeInference/Forest.hxx b/tmva/tmva/inc/TMVA/TreeInference/Forest.hxx
+index 70d1e3eb68..18b385a8e0 100644
+--- a/tmva/tmva/inc/TMVA/TreeInference/Forest.hxx
++++ b/tmva/tmva/inc/TMVA/TreeInference/Forest.hxx
+@@ -195,7 +195,7 @@ struct BranchlessJittedForest : public ForestBase<T, std::function<void (const T
+ /// \param[in] filename Filename of the ROOT file
+ /// \param[in] output Load trees corresponding to the given output node of the forest
+ /// \param[in] sortTrees Flag to indicate sorting the input trees by the cut value of the first node of each tree
+-/// \param[out] Return jitted code as string
++/// \return Return jitted code as string
+ template <typename T>
+ inline std::string
+ BranchlessJittedForest<T>::Load(const std::string &key, const std::string &filename, const int output, const bool sortTrees)
+diff --git a/tmva/tmva/src/BDTEventWrapper.cxx b/tmva/tmva/src/BDTEventWrapper.cxx
+index 63171c886b..9702660936 100644
+--- a/tmva/tmva/src/BDTEventWrapper.cxx
++++ b/tmva/tmva/src/BDTEventWrapper.cxx
+@@ -48,7 +48,7 @@ BDTEventWrapper::~BDTEventWrapper() {
+ ////////////////////////////////////////////////////////////////////////////////
+ /// Set the accumulated weight, for sorted signal/background events
+ ///
+-/// @param fType - true for signal, false for background
++/// @param type - true for signal, false for background
+ /// @param weight - the total weight
+
+ void BDTEventWrapper::SetCumulativeWeight(Bool_t type, Double_t weight) {
+diff --git a/tmva/tmva/src/CrossValidation.cxx b/tmva/tmva/src/CrossValidation.cxx
+index 453927c5b7..58bd9130d1 100644
+--- a/tmva/tmva/src/CrossValidation.cxx
++++ b/tmva/tmva/src/CrossValidation.cxx
+@@ -99,7 +99,7 @@ TMultiGraph *TMVA::CrossValidationResult::GetROCCurves(Bool_t /*fLegend*/)
+ ///
+ /// \note You own the returned pointer.
+ ///
+-/// \param numSamples[in] Number of samples used for generating the average ROC
++/// \param[in] numSamples Number of samples used for generating the average ROC
+ /// Curve. Avg. curve will be evaluated only at these
+ /// points (using interpolation if necessary).
+ ///
+diff --git a/tmva/tmva/src/CvSplit.cxx b/tmva/tmva/src/CvSplit.cxx
+index d6d44ac1cc..9eedcf3d72 100644
+--- a/tmva/tmva/src/CvSplit.cxx
++++ b/tmva/tmva/src/CvSplit.cxx
+@@ -227,15 +227,15 @@ UInt_t TMVA::CvSplitKFoldsExpr::GetSpectatorIndexForName(DataSetInfo &dsi, TStri
+
+ ////////////////////////////////////////////////////////////////////////////////
+ /// \brief Splits a dataset into k folds, ready for use in cross validation.
+-/// \param numFolds[in] Number of folds to split data into
+-/// \param stratified[in] If true, use stratified splitting, balancing the
++/// \param[in] numFolds Number of folds to split data into
++/// \param[in] stratified If true, use stratified splitting, balancing the
+ /// number of events across classes and folds. If false,
+ /// no such balancing is done. For
+-/// \param splitExpr[in] Expression used to split data into folds. If `""` a
++/// \param[in] splitExpr Expression used to split data into folds. If `""` a
+ /// random assignment will be done. Otherwise the
+ /// expression is fed into a TFormula and evaluated per
+ /// event. The resulting value is the the fold assignment.
+-/// \param seed[in] Used only when using random splitting (i.e. when
++/// \param[in] seed Used only when using random splitting (i.e. when
+ /// `splitExpr` is `""`). Seed is used to initialise the random
+ /// number generator when assigning events to folds.
+ ///
+@@ -282,9 +282,9 @@ void TMVA::CvSplitKFolds::MakeKFoldDataSet(DataSetInfo &dsi)
+
+ ////////////////////////////////////////////////////////////////////////////////
+ /// \brief Generates a vector of fold assignments
+-/// \param nEntires[in] Number of events in range
+-/// \param numFolds[in] Number of folds to split data into
+-/// \param seed[in] Random seed
++/// \param[in] nEntries Number of events in range
++/// \param[in] numFolds Number of folds to split data into
++/// \param[in] seed Random seed
+ ///
+ /// Randomly assigns events to `numFolds` folds. Each fold will hold at most
+ /// `nEntries / numFolds + 1` events.
+@@ -311,8 +311,8 @@ std::vector<UInt_t> TMVA::CvSplitKFolds::GetEventIndexToFoldMapping(UInt_t nEntr
+
+ ////////////////////////////////////////////////////////////////////////////////
+ /// \brief Split sets for into k-folds
+-/// \param oldSet[in] Original, unsplit, events
+-/// \param numFolds[in] Number of folds to split data into
++/// \param[in] oldSet Original, unsplit, events
++/// \param[in] numFolds Number of folds to split data into
+ ///
+
+ std::vector<std::vector<TMVA::Event *>>
+diff --git a/tmva/tmva/src/Envelope.cxx b/tmva/tmva/src/Envelope.cxx
+index 5fab98c13b..8a0c6b23f4 100644
+--- a/tmva/tmva/src/Envelope.cxx
++++ b/tmva/tmva/src/Envelope.cxx
+@@ -37,8 +37,8 @@ this is a generic one protected.
+ \param file optional file to save the results.
+ \param options extra options for the algorithm.
+ */
+-Envelope::Envelope(const TString &name, DataLoader *dalaloader, TFile *file, const TString options)
+- : Configurable(options), fDataLoader(dalaloader), fFile(file), fModelPersistence(kTRUE), fVerbose(kFALSE),
++Envelope::Envelope(const TString &name, DataLoader *dataloader, TFile *file, const TString options)
++ : Configurable(options), fDataLoader(dataloader), fFile(file), fModelPersistence(kTRUE), fVerbose(kFALSE),
+ fTransformations("I"), fSilentFile(kFALSE), fJobs(1)
+ {
+ SetName(name.Data());
+@@ -120,7 +120,7 @@ DataLoader *Envelope::GetDataLoader(){ return fDataLoader.get();}
+ //_______________________________________________________________________
+ /**
+ Method to set the pointer to TMVA::DataLoader object.
+-\param dalaloader pointer to TMVA::DataLoader object.
++\param dataloader pointer to TMVA::DataLoader object.
+ */
+
+ void Envelope::SetDataLoader(DataLoader *dataloader)
+@@ -146,7 +146,7 @@ void TMVA::Envelope::SetModelPersistence(Bool_t status){fModelPersistence=status
+ /**
+ Method to book the machine learning method to perform the algorithm.
+ \param method enum TMVA::Types::EMVA with the type of the mva method
+-\param methodtitle String with the method title.
++\param methodTitle String with the method title.
+ \param options String with the options for the method.
+ */
+ void TMVA::Envelope::BookMethod(Types::EMVA method, TString methodTitle, TString options){
+@@ -156,8 +156,8 @@ void TMVA::Envelope::BookMethod(Types::EMVA method, TString methodTitle, TString
+ //_______________________________________________________________________
+ /**
+ Method to book the machine learning method to perform the algorithm.
+-\param methodname String with the name of the mva method
+-\param methodtitle String with the method title.
++\param methodName String with the name of the mva method
++\param methodTitle String with the method title.
+ \param options String with the options for the method.
+ */
+ void TMVA::Envelope::BookMethod(TString methodName, TString methodTitle, TString options){
+diff --git a/tree/dataframe/inc/ROOT/RDF/RInterface.hxx b/tree/dataframe/inc/ROOT/RDF/RInterface.hxx
+index b5e39251a8..da09c0be3c 100644
+--- a/tree/dataframe/inc/ROOT/RDF/RInterface.hxx
++++ b/tree/dataframe/inc/ROOT/RDF/RInterface.hxx
+@@ -568,7 +568,7 @@ public:
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Save selected columns in memory
+ /// \tparam ColumnTypes variadic list of branch/column types.
+- /// \param[in] columns to be cached in memory.
++ /// \param[in] columnList columns to be cached in memory.
+ /// \return a `RDataFrame` that wraps the cached dataset.
+ ///
+ /// This action returns a new `RDataFrame` object, completely detached from
+@@ -603,7 +603,7 @@ public:
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Save selected columns in memory
+- /// \param[in] columns to be cached in memory
++ /// \param[in] columnList columns to be cached in memory
+ /// \return a `RDataFrame` that wraps the cached dataset.
+ ///
+ /// See the previous overloads for more information.
+@@ -660,7 +660,7 @@ public:
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Save selected columns in memory
+- /// \param[in] columns to be cached in memory.
++ /// \param[in] columnList columns to be cached in memory.
+ /// \return a `RDataFrame` that wraps the cached dataset.
+ ///
+ /// See the previous overloads for more information.
+@@ -1528,13 +1528,13 @@ public:
+ /// ~~~
+ ///
+ template <typename T>
+- RResultPtr<T> Fill(T &&model, const ColumnNames_t &bl)
++ RResultPtr<T> Fill(T &&model, const ColumnNames_t &columnList)
+ {
+ auto h = std::make_shared<T>(std::forward<T>(model));
+ if (!RDFInternal::HistoUtils<T>::HasAxisLimits(*h)) {
+ throw std::runtime_error("The absence of axes limits is not supported yet.");
+ }
+- return CreateAction<RDFInternal::ActionTags::Fill, RDFDetail::RInferredType>(bl, h, bl.size());
++ return CreateAction<RDFInternal::ActionTags::Fill, RDFDetail::RInferredType>(columnList, h, columnList.size());
+ }
+
+ ////////////////////////////////////////////////////////////////////////////
+@@ -2134,7 +2134,7 @@ public:
+ /// \brief Provides a representation of the columns in the dataset
+ /// \tparam ColumnTypes variadic list of branch/column types.
+ /// \param[in] columnList Names of the columns to be displayed.
+- /// \param[in] rows Number of events for each column to be displayed.
++ /// \param[in] nRows Number of events for each column to be displayed.
+ /// \return the `RDisplay` instance wrapped in a `RResultPtr`.
+ ///
+ /// This function returns a `RResultPtr<RDisplay>` containing all the entries to be displayed, organized in a tabular
+@@ -2165,7 +2165,7 @@ public:
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Provides a representation of the columns in the dataset
+ /// \param[in] columnList Names of the columns to be displayed.
+- /// \param[in] rows Number of events for each column to be displayed.
++ /// \param[in] nRows Number of events for each column to be displayed.
+ /// \return the `RDisplay` instance wrapped in a `RResultPtr`.
+ ///
+ /// This overload automatically infers the column types.
+@@ -2181,7 +2181,7 @@ public:
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Provides a representation of the columns in the dataset
+ /// \param[in] columnNameRegexp A regular expression to select the columns.
+- /// \param[in] rows Number of events for each column to be displayed.
++ /// \param[in] nRows Number of events for each column to be displayed.
+ /// \return the `RDisplay` instance wrapped in a `RResultPtr`.
+ ///
+ /// The existing columns are matched against the regular expression. If the string provided
+diff --git a/tree/dataframe/inc/ROOT/RDFHelpers.hxx b/tree/dataframe/inc/ROOT/RDFHelpers.hxx
+index 2193e1772e..63a0f90cab 100644
+--- a/tree/dataframe/inc/ROOT/RDFHelpers.hxx
++++ b/tree/dataframe/inc/ROOT/RDFHelpers.hxx
+@@ -138,7 +138,7 @@ void SaveGraph(NodeType node, const std::string &outputFile)
+
+ // clang-format off
+ /// Cast a RDataFrame node to the common type ROOT::RDF::RNode
+-/// \param[in] Any node of a RDataFrame graph
++/// \param[in] node Any node of a RDataFrame graph
+ // clang-format on
+ template <typename NodeType>
+ RNode AsRNode(NodeType node)
+diff --git a/tree/dataframe/inc/ROOT/RDataSource.hxx b/tree/dataframe/inc/ROOT/RDataSource.hxx
+index f4af9abded..04f7dc850c 100644
+--- a/tree/dataframe/inc/ROOT/RDataSource.hxx
++++ b/tree/dataframe/inc/ROOT/RDataSource.hxx
+@@ -126,14 +126,14 @@ public:
+ virtual const std::vector<std::string> &GetColumnNames() const = 0;
+
+ /// \brief Checks if the dataset has a certain column
+- /// \param[in] columnName The name of the column
+- virtual bool HasColumn(std::string_view) const = 0;
++ /// \param[in] colName The name of the column
++ virtual bool HasColumn(std::string_view colName) const = 0;
+
+ // clang-format off
+ /// \brief Type of a column as a string, e.g. `GetTypeName("x") == "double"`. Required for jitting e.g. `df.Filter("x>0")`.
+- /// \param[in] columnName The name of the column
++ /// \param[in] colName The name of the column
+ // clang-format on
+- virtual std::string GetTypeName(std::string_view) const = 0;
++ virtual std::string GetTypeName(std::string_view colName) const = 0;
+
+ // clang-format off
+ /// Called at most once per column by RDF. Return vector of pointers to pointers to column values - one per slot.
+diff --git a/tree/dataframe/inc/ROOT/RResultPtr.hxx b/tree/dataframe/inc/ROOT/RResultPtr.hxx
+index 8358832b14..8acb2bfae6 100644
+--- a/tree/dataframe/inc/ROOT/RResultPtr.hxx
++++ b/tree/dataframe/inc/ROOT/RResultPtr.hxx
+@@ -262,7 +262,7 @@ public:
+ /// Register a callback that RDataFrame will execute in each worker thread concurrently on that thread's partial result.
+ ///
+ /// \param[in] everyNEvents Frequency at which the callback will be called by each thread, as a number of events processed
+- /// \param[in] a callable with signature `void(unsigned int, Value_t&)` where Value_t is the type of the value contained in this RResultPtr
++ /// \param[in] callback A callable with signature `void(unsigned int, Value_t&)` where Value_t is the type of the value contained in this RResultPtr
+ /// \return this RResultPtr, to allow chaining of OnPartialResultSlot with other calls
+ ///
+ /// See `OnPartialResult` for a generic explanation of the callback mechanism.
+diff --git a/tree/dataframe/src/RArrowDS.cxx b/tree/dataframe/src/RArrowDS.cxx
+index d9e2fae32f..0152b9a813 100644
+--- a/tree/dataframe/src/RArrowDS.cxx
++++ b/tree/dataframe/src/RArrowDS.cxx
+@@ -382,8 +382,8 @@ public:
+
+ ////////////////////////////////////////////////////////////////////////
+ /// Constructor to create an Arrow RDataSource for RDataFrame.
+-/// \param[in] table the arrow Table to observe.
+-/// \param[in] columns the name of the columns to use
++/// \param[in] inTable the arrow Table to observe.
++/// \param[in] inColumns the name of the columns to use
+ /// In case columns is empty, we use all the columns found in the table
+ RArrowDS::RArrowDS(std::shared_ptr<arrow::Table> inTable, std::vector<std::string> const &inColumns)
+ : fTable{inTable}, fColumnNames{inColumns}
+diff --git a/tree/tree/inc/TTree.h b/tree/tree/inc/TTree.h
+index 8560e28ab5..e95d4ce301 100644
+--- a/tree/tree/inc/TTree.h
++++ b/tree/tree/inc/TTree.h
+@@ -357,7 +357,7 @@ public:
+ /// possible, unless e.g. type conversions are needed.
+ ///
+ /// \param[in] name Name of the branch to be created.
+- /// \param[in] obj Array of the objects to be added. When calling Fill(), the current value of the type/object will be saved.
++ /// \param[in] addobj Array of the objects to be added. When calling Fill(), the current value of the type/object will be saved.
+ /// \param[in] bufsize he buffer size in bytes for this branch. When the buffer is full, it is compressed and written to disc.
+ /// The default value of 32000 bytes and should be ok for most simple types. Larger buffers (e.g. 256000) if your Tree is not split and each entry is large (Megabytes).
+ /// A small value for bufsize is beneficial if entries in the Tree are accessed randomly and the Tree is in split mode.
+diff --git a/tree/tree/src/TIOFeatures.cxx b/tree/tree/src/TIOFeatures.cxx
+index 681f2172bd..ca292fb30a 100644
+--- a/tree/tree/src/TIOFeatures.cxx
++++ b/tree/tree/src/TIOFeatures.cxx
+@@ -51,7 +51,7 @@ using namespace ROOT;
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Clear a specific IO feature from this set.
+-/// \param[in] enum_bits The specific feature to disable.
++/// \param[in] input_bits The specific feature to disable.
+ ///
+ /// Removes a feature from the `TIOFeatures` object; emits an Error message if
+ /// the IO feature is not supported by this version of ROOT.
+@@ -62,7 +62,7 @@ void TIOFeatures::Clear(Experimental::EIOFeatures input_bits)
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Clear a specific IO feature from this set.
+-/// \param[in] enum_bits The specific feature to disable.
++/// \param[in] input_bits The specific feature to disable.
+ ///
+ /// Removes a feature from the `TIOFeatures` object; emits an Error message if
+ /// the IO feature is not supported by this version of ROOT.
+@@ -73,7 +73,7 @@ void TIOFeatures::Clear(Experimental::EIOUnsupportedFeatures input_bits)
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Clear a specific IO feature from this set.
+-/// \param[in] enum_bits The specific feature to disable.
++/// \param[in] input_bits The specific feature to disable.
+ ///
+ /// Removes a feature from the `TIOFeatures` object; emits an Error message if
+ /// the IO feature is not supported by this version of ROOT.
+@@ -115,7 +115,7 @@ static std::string GetUnsupportedName(TBasket::EUnsupportedIOBits enum_flag)
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Set a specific IO feature.
+-/// \param[in] enum_bits The specific feature to enable.
++/// \param[in] input_bits The specific feature to enable.
+ ///
+ /// Sets a feature in the `TIOFeatures` object; emits an Error message if
+ /// the IO feature is not supported by this version of ROOT.
+@@ -129,7 +129,7 @@ bool TIOFeatures::Set(Experimental::EIOFeatures input_bits)
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Set a specific IO feature.
+-/// \param[in] enum_bits The specific feature to enable.
++/// \param[in] input_bits The specific feature to enable.
+ ///
+ /// Sets a feature in the `TIOFeatures` object; emits an Error message if
+ /// the IO feature is not supported by this version of ROOT.
+@@ -221,7 +221,7 @@ void TIOFeatures::Print() const
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Test to see if a given feature is set
+-/// \param[in] enum_bits The specific feature to test.
++/// \param[in] input_bits The specific feature to test.
+ ///
+ /// Returns kTRUE if the feature is enables in this object and supported by
+ /// this version of ROOT.
+@@ -232,7 +232,7 @@ bool TIOFeatures::Test(Experimental::EIOFeatures input_bits) const
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Test to see if a given feature is set
+-/// \param[in] enum_bits The specific feature to test.
++/// \param[in] input_bits The specific feature to test.
+ ///
+ /// Returns kTRUE if the feature is enables in this object and supported by
+ /// this version of ROOT.
+--
+2.26.2
+
diff --git a/root-epel7-ppc64le-pyroot.patch b/root-epel7-ppc64le-pyroot.patch
index d046855..4b4d314 100644
--- a/root-epel7-ppc64le-pyroot.patch
+++ b/root-epel7-ppc64le-pyroot.patch
@@ -1,73 +1,17 @@
-diff -ur root-6.20.02.orig/bindings/pyroot/src/Cppyy.cxx root-6.20.02/bindings/pyroot/src/Cppyy.cxx
---- root-6.20.02.orig/bindings/pyroot/src/Cppyy.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/Cppyy.cxx 2020-03-24 19:26:38.162272398 +0100
-@@ -74,10 +74,6 @@
- class ApplicationStarter {
- public:
- ApplicationStarter() {
-- // Insure ROOT's atexit is executed *after* the atexit that calls
-- // ApplicationStarter's destructor, by forcing the ROOT's atexit
-- // registration now.
-- TROOT::Initialize();
- // setup dummy holders for global and std namespaces
- assert( g_classrefs.size() == GLOBAL_HANDLE );
- g_name2classrefidx[ "" ] = GLOBAL_HANDLE;
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx 2020-03-24 19:26:38.182272186 +0100
-@@ -109,10 +109,6 @@
- class ApplicationStarter {
- public:
- ApplicationStarter() {
-- // Insure ROOT's atexit is executed *after* the atexit that calls
-- // ApplicationStarter's destructor, by forcing the ROOT's atexit
-- // registration now.
-- TROOT::Initialize();
- // setup dummy holders for global and std namespaces
- assert(g_classrefs.size() == GLOBAL_HANDLE);
- g_name2classrefidx[""] = GLOBAL_HANDLE;
-diff -ur root-6.20.02.orig/core/base/inc/TROOT.h root-6.20.02/core/base/inc/TROOT.h
---- root-6.20.02.orig/core/base/inc/TROOT.h 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/core/base/inc/TROOT.h 2020-03-24 19:26:38.182272186 +0100
-@@ -351,7 +351,6 @@
- static void SetMacroPath(const char *newpath);
- static Int_t IncreaseDirLevel();
- static void IndentLevel();
-- static void Initialize();
- static Bool_t Initialized();
- static Bool_t MemCheck();
- static void SetDirLevel(Int_t level = 0);
-diff -ur root-6.20.02.orig/core/base/src/TROOT.cxx root-6.20.02/core/base/src/TROOT.cxx
---- root-6.20.02.orig/core/base/src/TROOT.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/core/base/src/TROOT.cxx 2020-03-24 20:10:54.640084486 +0100
-@@ -1022,10 +1022,12 @@
- SafeDelete(fCleanups);
- #endif
+diff --git a/bindings/pyroot/pythonizations/python/ROOT/__init__.py b/bindings/pyroot/pythonizations/python/ROOT/__init__.py
+index 227f80765b..eb03251c28 100644
+--- a/bindings/pyroot/pythonizations/python/ROOT/__init__.py
++++ b/bindings/pyroot/pythonizations/python/ROOT/__init__.py
+@@ -25,6 +25,12 @@ environ['CPPYY_API_PATH'] = 'none'
+ # Prevent cppyy from filtering ROOT libraries
+ environ['CPPYY_NO_ROOT_FILTER'] = '1'
--#ifndef _MSC_VER
-- // deleting the interpreter makes things crash at exit in some cases
-- delete fInterpreter;
--#endif
-+ // llvm::TimingGroup used for measuring the timing relies the destructors.
-+ // In order to make use of this feature we have to call the destructor of
-+ // TCling which will shut down clang, cling and llvm.
-+ // gSystem->Getenv is not available anymore.
-+ if (::getenv("ROOT_CLING_TIMING"))
-+ delete fInterpreter;
++try:
++ from ctypes import cdll
++ libCore = cdll.LoadLibrary("libCore.so")
++except:
++ print("An exception occurred while loading libCore.so with ctypes")
++
+ import cppyy
- // Prints memory stats
- TStorage::PrintStatistics();
-@@ -2848,13 +2850,6 @@
- }
-
- ////////////////////////////////////////////////////////////////////////////////
--/// Initialize ROOT explicitly.
--
--void TROOT::Initialize() {
-- (void) gROOT;
--}
--
--////////////////////////////////////////////////////////////////////////////////
- /// Return kTRUE if the TROOT object has been initialized.
-
- Bool_t TROOT::Initialized()
+ # import libROOTPythonizations with Python version number
diff --git a/root-fix-bad-regex.patch b/root-fix-bad-regex.patch
new file mode 100644
index 0000000..e1e667e
--- /dev/null
+++ b/root-fix-bad-regex.patch
@@ -0,0 +1,25 @@
+From b7dc989f9a49ad31094331aa272859ff7480f943 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Thu, 9 Jul 2020 21:29:46 +0200
+Subject: [PATCH] Fix bad regex
+
+---
+ proof/proof/src/TProofMgr.cxx | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/proof/proof/src/TProofMgr.cxx b/proof/proof/src/TProofMgr.cxx
+index 2a140e4e7a..35c91b77ac 100644
+--- a/proof/proof/src/TProofMgr.cxx
++++ b/proof/proof/src/TProofMgr.cxx
+@@ -820,7 +820,7 @@ TFileCollection *TProofMgr::UploadFiles(TList *src,
+ if (dest && strlen(dest) > 0) {
+ TString dst(dest), dt;
+ Ssiz_t from = 0;
+- TRegexp re("<d+[0-9]>");
++ TRegexp re("<d[0-9]+>");
+ while (dst.Tokenize(dt, from, "/")) {
+ if (dt.Contains(re)) {
+ TParameter<Int_t> *pi = new TParameter<Int_t>(dt, -1);
+--
+2.26.2
+
diff --git a/root-fontconfig.patch b/root-fontconfig.patch
index 4f39a68..1b2e880 100644
--- a/root-fontconfig.patch
+++ b/root-fontconfig.patch
@@ -1,7 +1,7 @@
-diff -ur root-6.18.00.orig/core/base/src/TApplication.cxx root-6.18.00/core/base/src/TApplication.cxx
---- root-6.18.00.orig/core/base/src/TApplication.cxx 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/core/base/src/TApplication.cxx 2019-06-26 15:00:32.048047903 +0200
-@@ -267,18 +267,11 @@
+diff -ur root-6.22.00.orig/core/base/src/TApplication.cxx root-6.22.00/core/base/src/TApplication.cxx
+--- root-6.22.00.orig/core/base/src/TApplication.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/core/base/src/TApplication.cxx 2020-06-29 08:53:15.066085533 +0200
+@@ -264,18 +264,11 @@
LoadGraphicsLibs();
// Try to load TrueType font renderer. Only try to load if not in batch
@@ -22,7 +22,7 @@ diff -ur root-6.18.00.orig/core/base/src/TApplication.cxx root-6.18.00/core/base
if (gClassTable->GetDict("TGX11TTF")) {
// in principle we should not have linked anything against libGX11TTF
// but with ACLiC this can happen, initialize TGX11TTF by hand
-@@ -292,7 +285,6 @@
+@@ -289,7 +282,6 @@
}
}
#endif
@@ -30,10 +30,10 @@ diff -ur root-6.18.00.orig/core/base/src/TApplication.cxx root-6.18.00/core/base
// Create WM dependent application environment
if (fAppImp)
-diff -ur root-6.18.00.orig/graf2d/asimage/CMakeLists.txt root-6.18.00/graf2d/asimage/CMakeLists.txt
---- root-6.18.00.orig/graf2d/asimage/CMakeLists.txt 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf2d/asimage/CMakeLists.txt 2019-06-26 15:05:32.584912789 +0200
-@@ -26,6 +26,7 @@
+diff -ur root-6.22.00.orig/graf2d/asimage/CMakeLists.txt root-6.22.00/graf2d/asimage/CMakeLists.txt
+--- root-6.22.00.orig/graf2d/asimage/CMakeLists.txt 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf2d/asimage/CMakeLists.txt 2020-06-29 08:53:15.066085533 +0200
+@@ -30,6 +30,7 @@
${FREETYPE_LIBRARIES}
${X11_LIBRARIES}
ZLIB::ZLIB
@@ -41,10 +41,10 @@ diff -ur root-6.18.00.orig/graf2d/asimage/CMakeLists.txt root-6.18.00/graf2d/asi
DEPENDENCIES
Core
Graf
-diff -ur root-6.18.00.orig/graf2d/asimage/src/TASImage.cxx root-6.18.00/graf2d/asimage/src/TASImage.cxx
---- root-6.18.00.orig/graf2d/asimage/src/TASImage.cxx 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf2d/asimage/src/TASImage.cxx 2019-06-26 15:00:32.062047757 +0200
-@@ -110,6 +110,8 @@
+diff -ur root-6.22.00.orig/graf2d/asimage/src/TASImage.cxx root-6.22.00/graf2d/asimage/src/TASImage.cxx
+--- root-6.22.00.orig/graf2d/asimage/src/TASImage.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf2d/asimage/src/TASImage.cxx 2020-06-29 08:53:15.068085538 +0200
+@@ -111,6 +111,8 @@
# include <draw.h>
}
@@ -53,7 +53,7 @@ diff -ur root-6.18.00.orig/graf2d/asimage/src/TASImage.cxx root-6.18.00/graf2d/a
// auxiliary functions for general polygon filling
#include "TASPolyUtils.c"
-@@ -2593,14 +2595,120 @@
+@@ -2594,14 +2596,120 @@
TString fn = font_name;
fn.Strip();
@@ -181,7 +181,7 @@ diff -ur root-6.18.00.orig/graf2d/asimage/src/TASImage.cxx root-6.18.00/graf2d/a
if (fn.EndsWith(".pfa") || fn.EndsWith(".PFA") || fn.EndsWith(".pfb") || fn.EndsWith(".PFB") || fn.EndsWith(".ttf") || fn.EndsWith(".TTF") || fn.EndsWith(".otf") || fn.EndsWith(".OTF")) {
ttfont = kTRUE;
-@@ -2624,14 +2732,11 @@
+@@ -2625,14 +2733,11 @@
return;
}
@@ -199,10 +199,10 @@ diff -ur root-6.18.00.orig/graf2d/asimage/src/TASImage.cxx root-6.18.00/graf2d/a
}
get_text_size(text, font, (ASText3DType)type, &width, &height);
-diff -ur root-6.18.00.orig/graf2d/graf/CMakeLists.txt root-6.18.00/graf2d/graf/CMakeLists.txt
---- root-6.18.00.orig/graf2d/graf/CMakeLists.txt 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf2d/graf/CMakeLists.txt 2019-06-26 15:03:42.153064782 +0200
-@@ -87,6 +87,7 @@
+diff -ur root-6.22.00.orig/graf2d/graf/CMakeLists.txt root-6.22.00/graf2d/graf/CMakeLists.txt
+--- root-6.22.00.orig/graf2d/graf/CMakeLists.txt 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf2d/graf/CMakeLists.txt 2020-06-29 08:53:15.068085538 +0200
+@@ -91,6 +91,7 @@
${FREETYPE_LIBRARIES}
ZLIB::ZLIB
mathtext
@@ -210,9 +210,9 @@ diff -ur root-6.18.00.orig/graf2d/graf/CMakeLists.txt root-6.18.00/graf2d/graf/C
DEPENDENCIES
Hist
Matrix
-diff -ur root-6.18.00.orig/graf2d/graf/inc/TTF.h root-6.18.00/graf2d/graf/inc/TTF.h
---- root-6.18.00.orig/graf2d/graf/inc/TTF.h 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf2d/graf/inc/TTF.h 2019-06-26 15:00:32.063047746 +0200
+diff -ur root-6.22.00.orig/graf2d/graf/inc/TTF.h root-6.22.00/graf2d/graf/inc/TTF.h
+--- root-6.22.00.orig/graf2d/graf/inc/TTF.h 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf2d/graf/inc/TTF.h 2020-06-29 08:53:15.068085538 +0200
@@ -76,9 +76,8 @@
static FT_BBox fgCBox; ///< string control box
static FT_CharMap fgCharMap[kTTMaxFonts]; ///< font character map
@@ -224,9 +224,9 @@ diff -ur root-6.18.00.orig/graf2d/graf/inc/TTF.h root-6.18.00/graf2d/graf/inc/TT
static FT_Face fgFace[kTTMaxFonts]; ///< font face
static TTF::TTGlyph fgGlyphs[kMaxGlyphs]; ///< glyphs
static Bool_t fgHinting; ///< use hinting (true by default)
-diff -ur root-6.18.00.orig/graf2d/graf/src/TTF.cxx root-6.18.00/graf2d/graf/src/TTF.cxx
---- root-6.18.00.orig/graf2d/graf/src/TTF.cxx 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf2d/graf/src/TTF.cxx 2019-06-26 15:00:32.064047736 +0200
+diff -ur root-6.22.00.orig/graf2d/graf/src/TTF.cxx root-6.22.00/graf2d/graf/src/TTF.cxx
+--- root-6.22.00.orig/graf2d/graf/src/TTF.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf2d/graf/src/TTF.cxx 2020-06-29 08:53:15.086085582 +0200
@@ -25,6 +25,8 @@
#include "TMath.h"
#include "TError.h"
@@ -787,10 +787,10 @@ diff -ur root-6.18.00.orig/graf2d/graf/src/TTF.cxx root-6.18.00/graf2d/graf/src/
}
////////////////////////////////////////////////////////////////////////////////
-diff -ur root-6.18.00.orig/graf2d/postscript/CMakeLists.txt root-6.18.00/graf2d/postscript/CMakeLists.txt
---- root-6.18.00.orig/graf2d/postscript/CMakeLists.txt 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf2d/postscript/CMakeLists.txt 2019-06-26 15:06:11.017511871 +0200
-@@ -21,6 +21,7 @@
+diff -ur root-6.22.00.orig/graf2d/postscript/CMakeLists.txt root-6.22.00/graf2d/postscript/CMakeLists.txt
+--- root-6.22.00.orig/graf2d/postscript/CMakeLists.txt 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf2d/postscript/CMakeLists.txt 2020-06-29 08:53:15.086085582 +0200
+@@ -27,6 +27,7 @@
LIBRARIES
ZLIB::ZLIB
mathtext
@@ -798,10 +798,10 @@ diff -ur root-6.18.00.orig/graf2d/postscript/CMakeLists.txt root-6.18.00/graf2d/
DEPENDENCIES
Graf
)
-diff -ur root-6.18.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.18.00/graf2d/postscript/src/TPostScript.cxx
---- root-6.18.00.orig/graf2d/postscript/src/TPostScript.cxx 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf2d/postscript/src/TPostScript.cxx 2019-06-26 15:00:32.065047726 +0200
-@@ -229,6 +229,7 @@
+diff -ur root-6.22.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.22.00/graf2d/postscript/src/TPostScript.cxx
+--- root-6.22.00.orig/graf2d/postscript/src/TPostScript.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf2d/postscript/src/TPostScript.cxx 2020-06-29 08:53:15.087085585 +0200
+@@ -233,6 +233,7 @@
#include <string.h>
#include <ctype.h>
#include <wchar.h>
@@ -809,7 +809,7 @@ diff -ur root-6.18.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.18.00/gr
#include "Riostream.h"
#include "Byteswap.h"
-@@ -1575,56 +1576,179 @@
+@@ -1583,56 +1584,179 @@
void TPostScript::FontEmbed(void)
{
@@ -1034,7 +1034,7 @@ diff -ur root-6.18.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.18.00/gr
} else {
if (FontEmbedType2(ttfont)) {
// nothing
-@@ -1633,9 +1757,8 @@
+@@ -1641,9 +1765,8 @@
} else if(FontEmbedType42(ttfont)) {
// nothing
} else {
@@ -1046,7 +1046,7 @@ diff -ur root-6.18.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.18.00/gr
}
delete [] ttfont;
}
-@@ -2803,10 +2926,10 @@
+@@ -2835,10 +2958,10 @@
{ "Root.PSFont.9", "/FreeMonoOblique" },
{ "Root.PSFont.10", "/FreeMonoBold" },
{ "Root.PSFont.11", "/FreeMonoBoldOblique" },
@@ -1060,20 +1060,20 @@ diff -ur root-6.18.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.18.00/gr
{ "Root.PSFont.STIXGen", "/STIXGeneral" },
{ "Root.PSFont.STIXGenIt", "/STIXGeneral-Italic" },
{ "Root.PSFont.STIXGenBd", "/STIXGeneral-Bold" },
-diff -ur root-6.18.00.orig/graf3d/gl/CMakeLists.txt root-6.18.00/graf3d/gl/CMakeLists.txt
---- root-6.18.00.orig/graf3d/gl/CMakeLists.txt 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf3d/gl/CMakeLists.txt 2019-06-26 15:02:38.318730684 +0200
-@@ -206,6 +206,7 @@
- ${FTGL_LIBRARIES}
+diff -ur root-6.22.00.orig/graf3d/gl/CMakeLists.txt root-6.22.00/graf3d/gl/CMakeLists.txt
+--- root-6.22.00.orig/graf3d/gl/CMakeLists.txt 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf3d/gl/CMakeLists.txt 2020-06-29 08:53:15.087085585 +0200
+@@ -208,6 +208,7 @@
${GL2PS_LIBRARIES}
${X11_LIBRARIES}
+ RGlew
+ fontconfig
DEPENDENCIES
Hist
Gui
-diff -ur root-6.18.00.orig/graf3d/gl/src/TGLFontManager.cxx root-6.18.00/graf3d/gl/src/TGLFontManager.cxx
---- root-6.18.00.orig/graf3d/gl/src/TGLFontManager.cxx 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf3d/gl/src/TGLFontManager.cxx 2019-06-26 15:00:32.066047715 +0200
+diff -ur root-6.22.00.orig/graf3d/gl/src/TGLFontManager.cxx root-6.22.00/graf3d/gl/src/TGLFontManager.cxx
+--- root-6.22.00.orig/graf3d/gl/src/TGLFontManager.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf3d/gl/src/TGLFontManager.cxx 2020-06-29 08:53:15.087085585 +0200
@@ -37,6 +37,7 @@
# include "FTGLBitmapFont.h"
#endif
@@ -1329,9 +1329,9 @@ diff -ur root-6.18.00.orig/graf3d/gl/src/TGLFontManager.cxx root-6.18.00/graf3d/
fgFontFileArray.Add(new TObjString("STIXGeneral.otf")); // 200
fgFontFileArray.Add(new TObjString("STIXGeneralItalic.otf")); // 210
fgFontFileArray.Add(new TObjString("STIXGeneralBol.otf")); // 220
-diff -ur root-6.18.00.orig/graf3d/gl/src/TGLText.cxx root-6.18.00/graf3d/gl/src/TGLText.cxx
---- root-6.18.00.orig/graf3d/gl/src/TGLText.cxx 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf3d/gl/src/TGLText.cxx 2019-06-26 15:00:32.066047715 +0200
+diff -ur root-6.22.00.orig/graf3d/gl/src/TGLText.cxx root-6.22.00/graf3d/gl/src/TGLText.cxx
+--- root-6.22.00.orig/graf3d/gl/src/TGLText.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf3d/gl/src/TGLText.cxx 2020-06-29 08:53:15.088085587 +0200
@@ -34,6 +34,8 @@
# include "FTGLBitmapFont.h"
#endif
@@ -1466,10 +1466,10 @@ diff -ur root-6.18.00.orig/graf3d/gl/src/TGLText.cxx root-6.18.00/graf3d/gl/src/
Error("SetGLTextFont","Cannot set FTGL::FaceSize");
- delete [] ttfont;
}
-diff -ur root-6.18.00.orig/gui/gui/src/TGApplication.cxx root-6.18.00/gui/gui/src/TGApplication.cxx
---- root-6.18.00.orig/gui/gui/src/TGApplication.cxx 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/gui/gui/src/TGApplication.cxx 2019-06-26 15:00:32.066047715 +0200
-@@ -83,20 +83,12 @@
+diff -ur root-6.22.00.orig/gui/gui/src/TGApplication.cxx root-6.22.00/gui/gui/src/TGApplication.cxx
+--- root-6.22.00.orig/gui/gui/src/TGApplication.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/gui/gui/src/TGApplication.cxx 2020-06-29 08:53:15.088085587 +0200
+@@ -80,20 +80,12 @@
gROOT->SetBatch(kFALSE);
if (strcmp(appClassName, "proofserv")) {
diff --git a/root-format-fix.patch b/root-format-fix.patch
deleted file mode 100644
index 9d7f4e2..0000000
--- a/root-format-fix.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 1d4aaf9e503669ccb0275f3f9b8a87a486671334 Mon Sep 17 00:00:00 2001
-From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
-Date: Fri, 13 Mar 2020 14:34:48 +0100
-Subject: [PATCH] Size types should use %z
-
----
- tree/dataframe/src/RCsvDS.cxx | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/tree/dataframe/src/RCsvDS.cxx b/tree/dataframe/src/RCsvDS.cxx
-index 81f802285b..fc0a18e21f 100644
---- a/tree/dataframe/src/RCsvDS.cxx
-+++ b/tree/dataframe/src/RCsvDS.cxx
-@@ -368,9 +368,9 @@ std::vector<std::pair<ULong64_t, ULong64_t>> RCsvDS::GetEntryRanges()
-
- if (gDebug > 0) {
- if (fLinesChunkSize == -1LL) {
-- Info("GetEntryRanges", "Attempted to read entire CSV file into memory, %lu lines read", fRecords.size());
-+ Info("GetEntryRanges", "Attempted to read entire CSV file into memory, %zu lines read", fRecords.size());
- } else {
-- Info("GetEntryRanges", "Attempted to read chunk of %lld lines of CSV file into memory, %lu lines read", fLinesChunkSize, fRecords.size());
-+ Info("GetEntryRanges", "Attempted to read chunk of %lld lines of CSV file into memory, %zu lines read", fLinesChunkSize, fRecords.size());
- }
- }
-
---
-2.24.1
-
diff --git a/root-histv7-bin-iterator.patch b/root-histv7-bin-iterator.patch
new file mode 100644
index 0000000..9e52725
--- /dev/null
+++ b/root-histv7-bin-iterator.patch
@@ -0,0 +1,51 @@
+From af2e5c8b1bf17a0a0e1c1492735395bdd49ffd65 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Mon, 29 Jun 2020 12:57:43 +0200
+Subject: [PATCH] Fix off-by-one error in the histogram v7 bin iterator
+
+The histogram bin iterator should start at 1 and end at N + 1, not
+start at 0 and end at N. (As for all iterators, the end element is the
+invalid element after the last one.)
+
+Fixes an assertion in the histhistv7testUnit test
+
+[----------] 2 tests from BinIterNBins
+[ RUN ] BinIterNBins.NumBins
+/usr/include/c++/10/bits/stl_vector.h:1045: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = float; _Alloc = std::allocator<float>; std::vector<_Tp, _Alloc>::reference = float&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__builtin_expect(__n < this->size(), true)' failed.
+---
+ hist/histv7/inc/ROOT/RHist.hxx | 4 ++--
+ hist/histv7/test/biniter.cxx | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/hist/histv7/inc/ROOT/RHist.hxx b/hist/histv7/inc/ROOT/RHist.hxx
+index ebb319f1ef..9521fe182f 100644
+--- a/hist/histv7/inc/ROOT/RHist.hxx
++++ b/hist/histv7/inc/ROOT/RHist.hxx
+@@ -158,9 +158,9 @@ public:
+ /// Get the uncertainty on the content of the bin at `x`.
+ double GetBinUncertainty(const CoordArray_t &x) const { return fImpl->GetBinUncertainty(x); }
+
+- const_iterator begin() const { return const_iterator(*fImpl); }
++ const_iterator begin() const { return const_iterator(*fImpl, 1); }
+
+- const_iterator end() const { return const_iterator(*fImpl, fImpl->GetNBinsNoOver()); }
++ const_iterator end() const { return const_iterator(*fImpl, fImpl->GetNBinsNoOver() + 1); }
+
+ /// Swap *this and other.
+ ///
+diff --git a/hist/histv7/test/biniter.cxx b/hist/histv7/test/biniter.cxx
+index aa1c2dfef9..1f940aa8e7 100644
+--- a/hist/histv7/test/biniter.cxx
++++ b/hist/histv7/test/biniter.cxx
+@@ -45,7 +45,7 @@ TEST(BinIterNBins, BinRef) {
+ double founduncert = -1.;
+ RH2F::CoordArray_t foundcoord{};
+
+- int nBins = 0;
++ int nBins = 1;
+ for (auto bin: h) {
+ auto binCenter = bin.GetCenter();
+ if (std::fabs(binCenter[0] - x) < 0.1 && std::fabs(binCenter[1] - y) < 0.1) {
+--
+2.26.2
+
diff --git a/root-jupyroot-static.patch b/root-jupyroot-static.patch
index 2cdb5aa..b39110a 100644
--- a/root-jupyroot-static.patch
+++ b/root-jupyroot-static.patch
@@ -1,6 +1,30 @@
-diff -ur root-6.20.02.orig/bindings/pyroot/JsMVA/JPyInterface.py root-6.20.02/bindings/pyroot/JsMVA/JPyInterface.py
---- root-6.20.02.orig/bindings/pyroot/JsMVA/JPyInterface.py 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/JsMVA/JPyInterface.py 2020-03-15 20:07:18.921423559 +0100
+diff -ur root-6.22.00.orig/bindings/jsmva/python/JsMVA/JPyInterface.py root-6.22.00/bindings/jsmva/python/JsMVA/JPyInterface.py
+--- root-6.22.00.orig/bindings/jsmva/python/JsMVA/JPyInterface.py 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/jsmva/python/JsMVA/JPyInterface.py 2020-06-21 20:20:27.744527667 +0200
+@@ -188,7 +188,7 @@
+ ## Class for creating the output scripts and inserting them to cell output
+ class JsDraw:
+ ## Base repository
+- __jsMVARepo = "https://root.cern.ch/js/jsmva/latest"
++ __jsMVARepo = "/static/JsMVA"
+
+ ## String containing the link to JavaScript files
+ __jsMVASourceDir = __jsMVARepo + "/js"
+diff -ur root-6.22.00.orig/bindings/jupyroot/python/JupyROOT/helpers/utils.py root-6.22.00/bindings/jupyroot/python/JupyROOT/helpers/utils.py
+--- root-6.22.00.orig/bindings/jupyroot/python/JupyROOT/helpers/utils.py 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/jupyroot/python/JupyROOT/helpers/utils.py 2020-06-21 20:18:22.840258397 +0200
+@@ -40,7 +40,7 @@
+ _jsNotDrawableClassesPatterns = ["TEve*","TF3","TPolyLine3D"]
+
+
+-_jsROOTSourceDir = "/static/"
++_jsROOTSourceDir = "/static/jsroot/"
+ _jsCanvasWidth = 800
+ _jsCanvasHeight = 600
+
+diff -ur root-6.22.00.orig/bindings/pyroot_legacy/JsMVA/JPyInterface.py root-6.22.00/bindings/pyroot_legacy/JsMVA/JPyInterface.py
+--- root-6.22.00.orig/bindings/pyroot_legacy/JsMVA/JPyInterface.py 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot_legacy/JsMVA/JPyInterface.py 2020-06-21 20:09:42.265004565 +0200
@@ -188,7 +188,7 @@
## Class for creating the output scripts and inserting them to cell output
class JsDraw:
@@ -10,9 +34,9 @@ diff -ur root-6.20.02.orig/bindings/pyroot/JsMVA/JPyInterface.py root-6.20.02/bi
## String containing the link to JavaScript files
__jsMVASourceDir = __jsMVARepo + "/js"
-diff -ur root-6.20.02.orig/bindings/pyroot/JupyROOT/helpers/utils.py root-6.20.02/bindings/pyroot/JupyROOT/helpers/utils.py
---- root-6.20.02.orig/bindings/pyroot/JupyROOT/helpers/utils.py 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/JupyROOT/helpers/utils.py 2020-03-15 20:07:18.921423559 +0100
+diff -ur root-6.22.00.orig/bindings/pyroot_legacy/JupyROOT/helpers/utils.py root-6.22.00/bindings/pyroot_legacy/JupyROOT/helpers/utils.py
+--- root-6.22.00.orig/bindings/pyroot_legacy/JupyROOT/helpers/utils.py 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot_legacy/JupyROOT/helpers/utils.py 2020-06-21 20:09:42.266004568 +0200
@@ -82,7 +82,7 @@
function requirejs_success(base_url) {{
return function() {{
@@ -22,9 +46,9 @@ diff -ur root-6.20.02.orig/bindings/pyroot/JupyROOT/helpers/utils.py root-6.20.0
}});
display_{jsDivId}();
}}
-diff -ur root-6.20.02.orig/etc/notebook/JsMVA/js/JsMVA.js root-6.20.02/etc/notebook/JsMVA/js/JsMVA.js
---- root-6.20.02.orig/etc/notebook/JsMVA/js/JsMVA.js 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/etc/notebook/JsMVA/js/JsMVA.js 2020-03-15 20:07:18.922423549 +0100
+diff -ur root-6.22.00.orig/etc/notebook/JsMVA/js/JsMVA.js root-6.22.00/etc/notebook/JsMVA/js/JsMVA.js
+--- root-6.22.00.orig/etc/notebook/JsMVA/js/JsMVA.js 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/etc/notebook/JsMVA/js/JsMVA.js 2020-06-21 20:10:34.552121014 +0200
@@ -16,7 +16,7 @@
(function(factory){
@@ -34,9 +58,9 @@ diff -ur root-6.20.02.orig/etc/notebook/JsMVA/js/JsMVA.js root-6.20.02/etc/noteb
var url = "";
if (requirejs.s.contexts.hasOwnProperty("_")) {
-diff -ur root-6.20.02.orig/etc/notebook/JsMVA/js/NetworkDesigner.js root-6.20.02/etc/notebook/JsMVA/js/NetworkDesigner.js
---- root-6.20.02.orig/etc/notebook/JsMVA/js/NetworkDesigner.js 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/etc/notebook/JsMVA/js/NetworkDesigner.js 2020-03-15 20:07:18.922423549 +0100
+diff -ur root-6.22.00.orig/etc/notebook/JsMVA/js/NetworkDesigner.js root-6.22.00/etc/notebook/JsMVA/js/NetworkDesigner.js
+--- root-6.22.00.orig/etc/notebook/JsMVA/js/NetworkDesigner.js 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/etc/notebook/JsMVA/js/NetworkDesigner.js 2020-06-21 20:10:34.552121014 +0200
@@ -19,7 +19,7 @@
paths: {
"jquery-connections": baseURL + "jquery.connections.min",
diff --git a/root-memory-usage.patch b/root-memory-usage.patch
index 27fac76..9910ec3 100644
--- a/root-memory-usage.patch
+++ b/root-memory-usage.patch
@@ -1,4 +1,4 @@
-From b587d85a5fc8f706362396dc347830f16797b1f2 Mon Sep 17 00:00:00 2001
+From 636b26baf214559e209e72b2a14946d0cc18c2f1 Mon Sep 17 00:00:00 2001
From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Tue, 16 Jan 2018 10:25:50 +0100
Subject: [PATCH] Reduce the needed memory for compilation
@@ -18,14 +18,14 @@ A similar dependency existed before the code latest code changes
(see commit 2638f6fc7f54b0995f2f9d60363daaf8aae2386e), then between
rootcling and libCling.
---
- core/metacling/src/CMakeLists.txt | 4 ++++
- 1 file changed, 4 insertions(+)
+ core/metacling/src/CMakeLists.txt | 5 +++++
+ 1 file changed, 5 insertions(+)
diff --git a/core/metacling/src/CMakeLists.txt b/core/metacling/src/CMakeLists.txt
-index eccd77681d..df941eb3b7 100644
+index 2923345f7c..b44a4d4115 100644
--- a/core/metacling/src/CMakeLists.txt
+++ b/core/metacling/src/CMakeLists.txt
-@@ -86,6 +86,10 @@ ROOT_LINKER_LIBRARY(Cling
+@@ -114,6 +114,11 @@ ROOT_LINKER_LIBRARY(Cling
$<TARGET_OBJECTS:MetaCling>
LIBRARIES ${CLING_LIBRARIES} ${LINK_LIBS} ${CLING_PLUGIN_LINK_LIBS})
@@ -33,9 +33,10 @@ index eccd77681d..df941eb3b7 100644
+# rootcling_stage1 from being linked in parallel.
+# This avoids doing two memory consuming operations in parallel.
+add_dependencies(Cling rootcling_stage1)
-
++
if(MSVC)
set_target_properties(Cling PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
+ set(cling_exports
--
-2.20.1
+2.26.2
diff --git a/root-moved-file.patch b/root-moved-file.patch
deleted file mode 100644
index 948a78b..0000000
--- a/root-moved-file.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 6492170d74f464286de22c40554adbd400ec838b Mon Sep 17 00:00:00 2001
-From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
-Date: Fri, 13 Mar 2020 12:53:34 +0100
-Subject: [PATCH] The file was moved - update path
-
----
- tutorials/legacy/mlp/mlpHiggs.C | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/tutorials/legacy/mlp/mlpHiggs.C b/tutorials/legacy/mlp/mlpHiggs.C
-index 49d3ca2b30..0516ed7c50 100644
---- a/tutorials/legacy/mlp/mlpHiggs.C
-+++ b/tutorials/legacy/mlp/mlpHiggs.C
-@@ -18,8 +18,8 @@ void mlpHiggs(Int_t ntrain=100) {
- TFile *input = 0;
- if (!gSystem->AccessPathName(fname)) {
- input = TFile::Open(fname);
-- } else if (!gSystem->AccessPathName(Form("%s/mlp/%s", TROOT::GetTutorialDir().Data(), fname))) {
-- input = TFile::Open(Form("%s/mlp/%s", TROOT::GetTutorialDir().Data(), fname));
-+ } else if (!gSystem->AccessPathName(Form("%s/legacy/mlp/%s", TROOT::GetTutorialDir().Data(), fname))) {
-+ input = TFile::Open(Form("%s/legacy/mlp/%s", TROOT::GetTutorialDir().Data(), fname));
- } else {
- printf("accessing %s file from http://root.cern.ch/files\n",fname);
- input = TFile::Open(Form("http://root.cern.ch/files/%s",fname));
---
-2.24.1
-
diff --git a/root-ntuple-largefile.patch b/root-ntuple-largefile.patch
new file mode 100644
index 0000000..b4242f0
--- /dev/null
+++ b/root-ntuple-largefile.patch
@@ -0,0 +1,139 @@
+diff -ur root-6.22.00.orig/io/io/src/RRawFileUnix.cxx root-6.22.00/io/io/src/RRawFileUnix.cxx
+--- root-6.22.00.orig/io/io/src/RRawFileUnix.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/io/io/src/RRawFileUnix.cxx 2020-07-02 09:02:48.202677798 +0200
+@@ -9,6 +9,8 @@
+ * For the list of contributors see $ROOTSYS/README/CREDITS. *
+ *************************************************************************/
+
++#include "ROOT/RConfig.hxx"
++
+ #include "ROOT/RRawFileUnix.hxx"
+ #include "ROOT/RMakeUnique.hxx"
+
+@@ -47,8 +49,13 @@
+
+ std::uint64_t ROOT::Internal::RRawFileUnix::GetSizeImpl()
+ {
++#ifdef R__SEEK64
++ struct stat64 info;
++ int res = fstat64(fFileDes, &info);
++#else
+ struct stat info;
+ int res = fstat(fFileDes, &info);
++#endif
+ if (res != 0)
+ throw std::runtime_error("Cannot call fstat on '" + fUrl + "', error: " + std::string(strerror(errno)));
+ return info.st_size;
+@@ -68,7 +75,11 @@
+
+ void ROOT::Internal::RRawFileUnix::OpenImpl()
+ {
++#ifdef R__SEEK64
++ fFileDes = open64(GetLocation(fUrl).c_str(), O_RDONLY);
++#else
+ fFileDes = open(GetLocation(fUrl).c_str(), O_RDONLY);
++#endif
+ if (fFileDes < 0) {
+ throw std::runtime_error("Cannot open '" + fUrl + "', error: " + std::string(strerror(errno)));
+ }
+@@ -76,8 +87,13 @@
+ if (fOptions.fBlockSize >= 0)
+ return;
+
++#ifdef R__SEEK64
++ struct stat64 info;
++ int res = fstat64(fFileDes, &info);
++#else
+ struct stat info;
+ int res = fstat(fFileDes, &info);
++#endif
+ if (res != 0) {
+ throw std::runtime_error("Cannot call fstat on '" + fUrl + "', error: " + std::string(strerror(errno)));
+ }
+@@ -92,7 +108,11 @@
+ {
+ size_t total_bytes = 0;
+ while (nbytes) {
++#ifdef R__SEEK64
++ ssize_t res = pread64(fFileDes, buffer, nbytes, offset);
++#else
+ ssize_t res = pread(fFileDes, buffer, nbytes, offset);
++#endif
+ if (res < 0) {
+ if (errno == EINTR)
+ continue;
+diff -ur root-6.22.00.orig/tree/ntuple/v7/src/RMiniFile.cxx root-6.22.00/tree/ntuple/v7/src/RMiniFile.cxx
+--- root-6.22.00.orig/tree/ntuple/v7/src/RMiniFile.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tree/ntuple/v7/src/RMiniFile.cxx 2020-07-02 10:06:55.066204147 +0200
+@@ -13,6 +13,8 @@
+ * For the list of contributors see $ROOTSYS/README/CREDITS. *
+ *************************************************************************/
+
++#include <ROOT/RConfig.hxx>
++
+ #include "ROOT/RMiniFile.hxx"
+
+ #include <ROOT/RRawFile.hxx>
+@@ -999,7 +1001,11 @@
+ R__ASSERT(fFile);
+ size_t retval;
+ if ((offset >= 0) && (static_cast<std::uint64_t>(offset) != fFilePos)) {
++#ifdef R__SEEK64
++ retval = fseeko64(fFile, offset, SEEK_SET);
++#else
+ retval = fseek(fFile, offset, SEEK_SET);
++#endif
+ R__ASSERT(retval == 0);
+ fFilePos = offset;
+ }
+@@ -1099,7 +1105,11 @@
+ if (idxDirSep != std::string::npos) {
+ fileName.erase(0, idxDirSep + 1);
+ }
++#ifdef R__SEEK64
++ FILE *fileStream = fopen64(std::string(path.data(), path.size()).c_str(), "wb");
++#else
+ FILE *fileStream = fopen(std::string(path.data(), path.size()).c_str(), "wb");
++#endif
+ R__ASSERT(fileStream);
+
+ auto writer = new RNTupleFileWriter(ntupleName);
+@@ -1319,7 +1329,11 @@
+ fFileSimple.Write(&strEmpty, strEmpty.GetSize());
+ fFileSimple.Write(&fileRoot, fileRoot.GetSize());
+ fFileSimple.fFilePos = tail;
++#ifdef R__SEEK64
++ auto retval = fseeko64(fFileSimple.fFile, tail, SEEK_SET);
++#else
+ auto retval = fseek(fFileSimple.fFile, tail, SEEK_SET);
++#endif
+ R__ASSERT(retval == 0);
+ fFileSimple.fFilePos = tail;
+ }
+diff -ur root-6.22.00.orig/tree/ntuple/v7/test/ntuple.cxx root-6.22.00/tree/ntuple/v7/test/ntuple.cxx
+--- root-6.22.00.orig/tree/ntuple/v7/test/ntuple.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tree/ntuple/v7/test/ntuple.cxx 2020-07-02 10:10:54.409737807 +0200
+@@ -1,3 +1,5 @@
++#include <ROOT/RConfig.hxx>
++
+ #include <ROOT/RColumnModel.hxx>
+ #include <ROOT/RDataFrame.hxx>
+ #include <ROOT/RNTuple.hxx>
+@@ -891,10 +893,17 @@
+ ntuple->Fill();
+ }
+ }
++#ifdef R__SEEK64
++ FILE *file = fopen64(fileGuard.GetPath().c_str(), "rb");
++ ASSERT_TRUE(file != nullptr);
++ EXPECT_EQ(0, fseeko64(file, 0, SEEK_END));
++ EXPECT_GT(ftello64(file), 2048LL * 1024LL * 1024LL);
++#else
+ FILE *file = fopen(fileGuard.GetPath().c_str(), "rb");
+ ASSERT_TRUE(file != nullptr);
+ EXPECT_EQ(0, fseek(file, 0, SEEK_END));
+ EXPECT_GT(ftell(file), 2048LL * 1024LL * 1024LL);
++#endif
+ fclose(file);
+
+ auto ntuple = RNTupleReader::Open("myNTuple", fileGuard.GetPath());
diff --git a/root-old-gtest-compat.patch b/root-old-gtest-compat.patch
new file mode 100644
index 0000000..a25a8e8
--- /dev/null
+++ b/root-old-gtest-compat.patch
@@ -0,0 +1,161 @@
+diff -ur root-6.22.00.orig/math/mathcore/test/stress/testGenVector.cxx root-6.22.00/math/mathcore/test/stress/testGenVector.cxx
+--- root-6.22.00.orig/math/mathcore/test/stress/testGenVector.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/math/mathcore/test/stress/testGenVector.cxx 2020-06-29 19:38:08.524050438 +0200
+@@ -4,6 +4,16 @@
+
+ #include "gtest/gtest.h"
+
++#ifndef TYPED_TEST_SUITE_P
++#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P
++#endif
++#ifndef REGISTER_TYPED_TEST_SUITE_P
++#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P
++#endif
++#ifndef INSTANTIATE_TYPED_TEST_SUITE_P
++#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P
++#endif
++
+ #include "StatFunction.h"
+ #include "TestHelper.h"
+ #include "VectorTest.h"
+diff -ur root-6.22.00.orig/math/mathcore/test/stress/testSMatrix.cxx root-6.22.00/math/mathcore/test/stress/testSMatrix.cxx
+--- root-6.22.00.orig/math/mathcore/test/stress/testSMatrix.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/math/mathcore/test/stress/testSMatrix.cxx 2020-06-29 19:38:08.524050438 +0200
+@@ -7,6 +7,16 @@
+ #include "TestHelper.h"
+ #include "gtest/gtest.h"
+
++#ifndef TYPED_TEST_SUITE_P
++#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P
++#endif
++#ifndef REGISTER_TYPED_TEST_SUITE_P
++#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P
++#endif
++#ifndef INSTANTIATE_TYPED_TEST_SUITE_P
++#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P
++#endif
++
+ #include "VectorTest.h"
+ #include "TROOT.h"
+ #include "TSystem.h"
+diff -ur root-6.22.00.orig/math/mathcore/test/stress/testVector34.cxx root-6.22.00/math/mathcore/test/stress/testVector34.cxx
+--- root-6.22.00.orig/math/mathcore/test/stress/testVector34.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/math/mathcore/test/stress/testVector34.cxx 2020-06-29 19:38:08.525050440 +0200
+@@ -4,6 +4,16 @@
+
+ #include "gtest/gtest.h"
+
++#ifndef TYPED_TEST_SUITE_P
++#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P
++#endif
++#ifndef REGISTER_TYPED_TEST_SUITE_P
++#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P
++#endif
++#ifndef INSTANTIATE_TYPED_TEST_SUITE_P
++#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P
++#endif
++
+ #include "StatFunction.h"
+ #include "VectorTest.h"
+
+diff -ur root-6.22.00.orig/math/mathcore/test/stress/testVector.cxx root-6.22.00/math/mathcore/test/stress/testVector.cxx
+--- root-6.22.00.orig/math/mathcore/test/stress/testVector.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/math/mathcore/test/stress/testVector.cxx 2020-06-29 19:38:08.525050440 +0200
+@@ -4,6 +4,16 @@
+
+ #include "gtest/gtest.h"
+
++#ifndef TYPED_TEST_SUITE_P
++#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P
++#endif
++#ifndef REGISTER_TYPED_TEST_SUITE_P
++#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P
++#endif
++#ifndef INSTANTIATE_TYPED_TEST_SUITE_P
++#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P
++#endif
++
+ #include "StatFunction.h"
+ #include "TestHelper.h"
+ #include "VectorTest.h"
+diff -ur root-6.22.00.orig/math/mathcore/test/testGradient.cxx root-6.22.00/math/mathcore/test/testGradient.cxx
+--- root-6.22.00.orig/math/mathcore/test/testGradient.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/math/mathcore/test/testGradient.cxx 2020-06-29 19:38:08.525050440 +0200
+@@ -22,6 +22,10 @@
+
+ #include "gtest/gtest.h"
+
++#ifndef TYPED_TEST_SUITE
++#define TYPED_TEST_SUITE TYPED_TEST_CASE
++#endif
++
+ #include <chrono>
+ #include <iostream>
+ #include <string>
+diff -ur root-6.22.00.orig/math/mathcore/test/testGradientFitting.cxx root-6.22.00/math/mathcore/test/testGradientFitting.cxx
+--- root-6.22.00.orig/math/mathcore/test/testGradientFitting.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/math/mathcore/test/testGradientFitting.cxx 2020-06-29 19:38:08.525050440 +0200
+@@ -12,6 +12,16 @@
+
+ #include "gtest/gtest.h"
+
++#ifndef TYPED_TEST_SUITE_P
++#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P
++#endif
++#ifndef REGISTER_TYPED_TEST_SUITE_P
++#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P
++#endif
++#ifndef INSTANTIATE_TYPED_TEST_SUITE_P
++#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P
++#endif
++
+ #include <iostream>
+ #include <string>
+
+diff -ur root-6.22.00.orig/math/mathmore/test/testStress.cxx root-6.22.00/math/mathmore/test/testStress.cxx
+--- root-6.22.00.orig/math/mathmore/test/testStress.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/math/mathmore/test/testStress.cxx 2020-06-29 19:38:08.526050443 +0200
+@@ -28,6 +28,16 @@
+
+ #include "gtest/gtest.h"
+
++#ifndef TYPED_TEST_SUITE_P
++#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P
++#endif
++#ifndef REGISTER_TYPED_TEST_SUITE_P
++#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P
++#endif
++#ifndef INSTANTIATE_TYPED_TEST_SUITE_P
++#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P
++#endif
++
+ using ::testing::TestWithParam;
+ using ::testing::Values;
+
+diff -ur root-6.22.00.orig/roofit/roofitcore/test/testProxiesAndCategories.cxx root-6.22.00/roofit/roofitcore/test/testProxiesAndCategories.cxx
+--- root-6.22.00.orig/roofit/roofitcore/test/testProxiesAndCategories.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/roofit/roofitcore/test/testProxiesAndCategories.cxx 2020-06-29 19:38:08.526050443 +0200
+@@ -16,6 +16,9 @@
+
+ #include "gtest/gtest.h"
+
++#ifndef INSTANTIATE_TEST_SUITE_P
++#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
++#endif
+
+ TEST(RooCategory, CategoryDefineMultiState) {
+ RooCategory myCat("myCat", "A category", { {"0Lep", 0}, {"1Lep", 1}, {"2Lep", 2}, {"3Lep", 3} });
+diff -ur root-6.22.00.orig/tree/dataframe/test/dataframe_simple.cxx root-6.22.00/tree/dataframe/test/dataframe_simple.cxx
+--- root-6.22.00.orig/tree/dataframe/test/dataframe_simple.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tree/dataframe/test/dataframe_simple.cxx 2020-06-29 19:38:45.667130468 +0200
+@@ -1,5 +1,10 @@
+ /****** Run RDataFrame tests both with and without IMT enabled *******/
+ #include <gtest/gtest.h>
++
++#ifndef INSTANTIATE_TEST_SUITE_P
++#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
++#endif
++
+ #include <ROOT/RDataFrame.hxx>
+ #include <ROOT/TSeq.hxx>
+ #include <TChain.h>
diff --git a/root-python2-compat.patch b/root-python2-compat.patch
new file mode 100644
index 0000000..8006a8f
--- /dev/null
+++ b/root-python2-compat.patch
@@ -0,0 +1,41 @@
+From 056b67d05c950cf04a8290dcdf376078ee92b449 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Mon, 29 Jun 2020 17:01:03 +0200
+Subject: [PATCH] Compatibility with python 2.7 versions before 2.7.9
+
+This is a workaround for https://bugs.python.org/issue21591 which
+affect Python 2 versions before 2.7.9. This includes Python 2.7.5
+which is the Python 2 version on RHEL/CentOS 7.
+---
+ .../pyroot/pythonizations/python/ROOT/_numbadeclare.py | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/bindings/pyroot/pythonizations/python/ROOT/_numbadeclare.py b/bindings/pyroot/pythonizations/python/ROOT/_numbadeclare.py
+index 1bef862af5..9aa893b8f0 100644
+--- a/bindings/pyroot/pythonizations/python/ROOT/_numbadeclare.py
++++ b/bindings/pyroot/pythonizations/python/ROOT/_numbadeclare.py
+@@ -32,7 +32,7 @@ def _NumbaDeclareDecorator(input_types, return_type, name=None):
+ import cffi
+ except:
+ raise Exception('Failed to import cffi')
+- import re
++ import re, sys
+
+ # Normalize input types by stripping ROOT and VecOps namespaces from input types
+ def normalize_typename(t):
+@@ -195,7 +195,11 @@ def pywrapper({SIGNATURE}):
+ if 'RVec' in return_type:
+ glob['dtype_r'] = get_numba_type(get_inner_type(return_type))
+
+- exec(pywrappercode, glob, locals())
++ if sys.version_info[0] >= 3:
++ exec(pywrappercode, glob, locals()) in {}
++ else:
++ exec(pywrappercode) in glob, locals()
++
+ if not 'pywrapper' in locals():
+ raise Exception('Failed to create Python wrapper function:\n{}'.format(pywrappercode))
+
+--
+2.26.2
+
diff --git a/root-python3.8-object.patch b/root-python3.8-object.patch
index 2447e31..a4d2759 100644
--- a/root-python3.8-object.patch
+++ b/root-python3.8-object.patch
@@ -1,292 +1,58 @@
-diff -ur root-6.20.02.orig/bindings/pyroot/src/MethodProxy.cxx root-6.20.02/bindings/pyroot/src/MethodProxy.cxx
---- root-6.20.02.orig/bindings/pyroot/src/MethodProxy.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/MethodProxy.cxx 2020-03-15 19:43:20.946684699 +0100
-@@ -845,7 +845,8 @@
- sizeof(MethodProxy), // tp_basicsize
- 0, // tp_itemsize
- (destructor)mp_dealloc, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -894,6 +895,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- } // namespace PyROOT
-diff -ur root-6.20.02.orig/bindings/pyroot/src/ObjectProxy.cxx root-6.20.02/bindings/pyroot/src/ObjectProxy.cxx
---- root-6.20.02.orig/bindings/pyroot/src/ObjectProxy.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/ObjectProxy.cxx 2020-03-15 19:43:20.946684699 +0100
-@@ -398,7 +398,8 @@
- sizeof(ObjectProxy), // tp_basicsize
- 0, // tp_itemsize
- (destructor)op_dealloc, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -450,6 +451,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- } // namespace PyROOT
-diff -ur root-6.20.02.orig/bindings/pyroot/src/PropertyProxy.cxx root-6.20.02/bindings/pyroot/src/PropertyProxy.cxx
---- root-6.20.02.orig/bindings/pyroot/src/PropertyProxy.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/PropertyProxy.cxx 2020-03-15 19:43:20.946684699 +0100
-@@ -133,7 +133,8 @@
- sizeof(PropertyProxy), // tp_basicsize
- 0, // tp_itemsize
- (destructor)pp_dealloc, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -182,6 +183,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- } // namespace PyROOT
-diff -ur root-6.20.02.orig/bindings/pyroot/src/PyRootType.cxx root-6.20.02/bindings/pyroot/src/PyRootType.cxx
---- root-6.20.02.orig/bindings/pyroot/src/PyRootType.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/PyRootType.cxx 2020-03-15 19:43:20.946684699 +0100
-@@ -232,7 +232,8 @@
- sizeof(PyROOT::PyRootClass),// tp_basicsize
- 0, // tp_itemsize
- 0, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -281,6 +282,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- } // namespace PyROOT
-diff -ur root-6.20.02.orig/bindings/pyroot/src/Pythonize.cxx root-6.20.02/bindings/pyroot/src/Pythonize.cxx
---- root-6.20.02.orig/bindings/pyroot/src/Pythonize.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/Pythonize.cxx 2020-03-15 19:43:20.947684688 +0100
-@@ -944,6 +944,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- static PyObject* vector_iter( PyObject* v ) {
-diff -ur root-6.20.02.orig/bindings/pyroot/src/RootModule.cxx root-6.20.02/bindings/pyroot/src/RootModule.cxx
---- root-6.20.02.orig/bindings/pyroot/src/RootModule.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/RootModule.cxx 2020-03-15 19:43:20.948684678 +0100
-@@ -134,6 +134,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- PyObject _PyROOT_NullPtrStruct = {
-diff -ur root-6.20.02.orig/bindings/pyroot/src/TCustomPyTypes.cxx root-6.20.02/bindings/pyroot/src/TCustomPyTypes.cxx
---- root-6.20.02.orig/bindings/pyroot/src/TCustomPyTypes.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/TCustomPyTypes.cxx 2020-03-15 19:43:20.948684678 +0100
-@@ -19,7 +19,8 @@
- 0, // tp_basicsize
- 0, // tp_itemsize
- 0, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -69,6 +70,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- //= long type allowed for reference passing ==================================
-@@ -78,7 +85,8 @@
- 0, // tp_basicsize
- 0, // tp_itemsize
- 0, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -128,6 +136,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt 2020-06-21 20:54:24.848992803 +0200
+@@ -85,11 +85,6 @@
+ target_compile_options(${libname} PRIVATE -Wno-deprecated-register)
+ endif()
- //= instancemethod object with a more efficient call function ================
-@@ -277,7 +291,8 @@
- 0, // tp_basicsize
- 0, // tp_itemsize
- (destructor)im_dealloc, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -327,6 +342,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- } // namespace PyROOT
-diff -ur root-6.20.02.orig/bindings/pyroot/src/TemplateProxy.cxx root-6.20.02/bindings/pyroot/src/TemplateProxy.cxx
---- root-6.20.02.orig/bindings/pyroot/src/TemplateProxy.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/TemplateProxy.cxx 2020-03-15 19:43:20.948684678 +0100
-@@ -492,7 +492,8 @@
- sizeof(TemplateProxy), // tp_basicsize
- 0, // tp_itemsize
- (destructor)tpp_dealloc, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -541,6 +542,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- } // namespace PyROOT
-diff -ur root-6.20.02.orig/bindings/pyroot/src/TTupleOfInstances.cxx root-6.20.02/bindings/pyroot/src/TTupleOfInstances.cxx
---- root-6.20.02.orig/bindings/pyroot/src/TTupleOfInstances.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/TTupleOfInstances.cxx 2020-03-15 19:43:20.948684678 +0100
-@@ -42,7 +42,8 @@
- 0, // tp_basicsize
- 0, // tp_itemsize
- 0, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -92,6 +93,12 @@
+- # Disables warnings due to new field tp_vectorcall in Python 3.8
+- if(NOT MSVC AND ${python_version_string} VERSION_GREATER_EQUAL "3.8")
+- target_compile_options(${libname} PRIVATE -Wno-missing-field-initializers)
+- endif()
+-
+ target_include_directories(${libname}
+ PRIVATE
+ ${CMAKE_SOURCE_DIR}/core/foundation/inc # needed for string_view backport
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPDataMember.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPDataMember.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPDataMember.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPDataMember.cxx 2020-06-21 20:53:49.651914431 +0200
+@@ -167,7 +167,8 @@
+ sizeof(CPPDataMember), // tp_basicsize
+ 0, // tp_itemsize
+ (destructor)pp_dealloc, // tp_dealloc
+- 0, // tp_print
++ 0, // tp_print (python < 3.8)
++ // tp_vectorcall_offset (python >= 3.8)
+ 0, // tp_getattr
+ 0, // tp_setattr
+ 0, // tp_compare
+@@ -216,6 +217,12 @@
#if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
+ , 0 // tp_finalize
#endif
+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
++ , 0 // tp_vectorcall
+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
++ , 0 // tp_print (python 3.8 only)
+#endif
+#endif
};
- } // namespace PyROOT
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/CMakeLists.txt root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/CMakeLists.txt
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/CMakeLists.txt 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/CMakeLists.txt 2020-03-15 19:43:20.949684667 +0100
-@@ -64,11 +64,6 @@
- target_compile_options(cppyy PRIVATE -Wno-deprecated-register)
- endif()
-
--# Disables warnings due to new field tp_vectorcall in Python 3.8
--if(NOT MSVC AND ${PYTHON_VERSION_STRING} VERSION_GREATER_EQUAL "3.8")
-- target_compile_options(cppyy PRIVATE -Wno-missing-field-initializers)
--endif()
--
- target_include_directories(cppyy PRIVATE ${CMAKE_BINARY_DIR}/include) # needed for string_view backport
-
- target_include_directories(cppyy PUBLIC ${PYTHON_INCLUDE_DIRS}
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDataMember.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDataMember.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDataMember.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDataMember.cxx 2020-03-15 19:43:20.949684667 +0100
-@@ -167,7 +167,8 @@
- sizeof(CPPDataMember), // tp_basicsize
+ } // namespace CPyCppyy
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPExcInstance.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPExcInstance.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPExcInstance.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPExcInstance.cxx 2020-06-21 20:53:49.651914431 +0200
+@@ -158,7 +158,8 @@
+ sizeof(CPPExcInstance), // tp_basicsize
0, // tp_itemsize
- (destructor)pp_dealloc, // tp_dealloc
+ (destructor)ep_dealloc, // tp_dealloc
- 0, // tp_print
+ 0, // tp_print (python < 3.8)
+ // tp_vectorcall_offset (python >= 3.8)
0, // tp_getattr
0, // tp_setattr
0, // tp_compare
-@@ -216,6 +217,12 @@
+@@ -211,6 +212,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -299,10 +65,10 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDa
};
} // namespace CPyCppyy
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPInstance.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPInstance.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPInstance.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPInstance.cxx 2020-03-15 19:43:20.949684667 +0100
-@@ -565,7 +565,8 @@
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPInstance.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPInstance.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPInstance.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPInstance.cxx 2020-06-21 20:53:49.651914431 +0200
+@@ -746,7 +746,8 @@
sizeof(CPPInstance), // tp_basicsize
0, // tp_itemsize
(destructor)op_dealloc, // tp_dealloc
@@ -312,7 +78,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPIn
0, // tp_getattr
0, // tp_setattr
0, // tp_compare
-@@ -617,6 +618,12 @@
+@@ -798,6 +799,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -325,10 +91,10 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPIn
};
} // namespace CPyCppyy
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOverload.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOverload.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOverload.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOverload.cxx 2020-03-15 19:43:20.950684656 +0100
-@@ -889,7 +889,8 @@
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx 2020-06-21 20:53:49.652914433 +0200
+@@ -866,7 +866,8 @@
sizeof(CPPOverload), // tp_basicsize
0, // tp_itemsize
(destructor)mp_dealloc, // tp_dealloc
@@ -338,7 +104,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOv
0, // tp_getattr
0, // tp_setattr
0, // tp_compare
-@@ -938,6 +939,12 @@
+@@ -915,6 +916,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -351,10 +117,10 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOv
};
} // namespace CPyCppyy
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPScope.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPScope.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPScope.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPScope.cxx 2020-03-15 19:43:20.950684656 +0100
-@@ -596,7 +596,8 @@
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPScope.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPScope.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPScope.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPScope.cxx 2020-06-21 20:53:49.652914433 +0200
+@@ -616,7 +616,8 @@
sizeof(CPyCppyy::CPPScope), // tp_basicsize
0, // tp_itemsize
0, // tp_dealloc
@@ -364,7 +130,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPSc
0, // tp_getattr
0, // tp_setattr
0, // tp_compare
-@@ -649,6 +650,12 @@
+@@ -669,6 +670,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -377,10 +143,11 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPSc
};
} // namespace CPyCppyy
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCppyyModule.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCppyyModule.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCppyyModule.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCppyyModule.cxx 2020-03-15 19:43:20.951684646 +0100
-@@ -140,6 +140,12 @@
+Endast i root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src: CPPScope.cxx.orig
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyyModule.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyyModule.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyyModule.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyyModule.cxx 2020-06-21 20:53:49.652914433 +0200
+@@ -141,6 +141,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -393,10 +160,10 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCp
};
namespace {
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CustomPyTypes.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CustomPyTypes.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CustomPyTypes.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CustomPyTypes.cxx 2020-03-15 19:43:20.951684646 +0100
-@@ -33,6 +33,12 @@
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CustomPyTypes.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CustomPyTypes.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CustomPyTypes.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CustomPyTypes.cxx 2020-06-21 20:53:49.652914433 +0200
+@@ -34,6 +34,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -409,7 +176,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Custo
};
//= long type allowed for reference passing ==================================
-@@ -59,6 +65,12 @@
+@@ -60,6 +66,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -422,7 +189,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Custo
};
//- custom type representing typedef to pointer of class ---------------------
-@@ -89,6 +101,12 @@
+@@ -90,6 +102,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -435,7 +202,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Custo
};
//= instancemethod object with a more efficient call function ================
-@@ -254,6 +272,12 @@
+@@ -255,6 +273,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -448,7 +215,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Custo
};
-@@ -304,6 +328,12 @@
+@@ -305,6 +329,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -461,7 +228,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Custo
};
-@@ -355,6 +385,12 @@
+@@ -364,6 +394,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -474,9 +241,9 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Custo
};
} // namespace CPyCppyy
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLevelViews.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLevelViews.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLevelViews.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLevelViews.cxx 2020-03-15 19:43:20.951684646 +0100
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/LowLevelViews.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/LowLevelViews.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/LowLevelViews.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/LowLevelViews.cxx 2020-06-21 20:53:49.653914436 +0200
@@ -651,7 +651,8 @@
sizeof(CPyCppyy::LowLevelView),// tp_basicsize
0, // tp_itemsize
@@ -500,10 +267,10 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLe
};
} // namespace CPyCppyy
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TemplateProxy.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TemplateProxy.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TemplateProxy.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TemplateProxy.cxx 2020-03-15 19:43:20.952684635 +0100
-@@ -709,7 +709,8 @@
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/TemplateProxy.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/TemplateProxy.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/TemplateProxy.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/TemplateProxy.cxx 2020-06-21 20:53:49.653914436 +0200
+@@ -730,7 +730,8 @@
sizeof(TemplateProxy), // tp_basicsize
0, // tp_itemsize
(destructor)tpp_dealloc, // tp_dealloc
@@ -513,7 +280,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Templ
0, // tp_getattr
0, // tp_setattr
0, // tp_compare
-@@ -758,6 +759,12 @@
+@@ -779,6 +780,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -526,9 +293,9 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Templ
};
} // namespace CPyCppyy
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TupleOfInstances.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TupleOfInstances.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TupleOfInstances.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TupleOfInstances.cxx 2020-03-15 19:43:20.952684635 +0100
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/TupleOfInstances.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/TupleOfInstances.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/TupleOfInstances.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/TupleOfInstances.cxx 2020-06-21 20:53:49.653914436 +0200
@@ -82,6 +82,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
diff --git a/root-setcachefiledir.patch b/root-setcachefiledir.patch
new file mode 100644
index 0000000..f73615e
--- /dev/null
+++ b/root-setcachefiledir.patch
@@ -0,0 +1,30 @@
+From 0bf4cdfee3f2189f4d43f7cde9ba114ce682cac5 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Mon, 29 Jun 2020 12:08:15 +0200
+Subject: [PATCH] Add missing call to TFile::SetCacheFileDir(".")
+
+Without it the following TFile::Open call using the CACHEREAD option
+will as work as intrnded:
+inputFile = TFile::Open(inputFileLink, "CACHEREAD");
+---
+ tutorials/tmva/TMVA_Higgs_Classification.C | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/tutorials/tmva/TMVA_Higgs_Classification.C b/tutorials/tmva/TMVA_Higgs_Classification.C
+index 6b4a8ed028..85dffc2790 100644
+--- a/tutorials/tmva/TMVA_Higgs_Classification.C
++++ b/tutorials/tmva/TMVA_Higgs_Classification.C
+@@ -72,9 +72,8 @@ Define now input data file and signal and background trees
+ if (!inputFile) {
+ // download file from Cernbox location
+ Info("TMVA_Higgs_Classification","Download Higgs_data.root file");
++ TFile::SetCacheFileDir(".");
+ inputFile = TFile::Open(inputFileLink, "CACHEREAD");
+- //gSystem->Exec( TString::Format("wget -O %s %s",inputFileName.Data(), downloadLinkFile.Data() ) );
+- //inputFile = TFile::Open( inputFileName);
+ if (!inputFile) {
+ Error("TMVA_Higgs_Classification","Input file cannot be downloaded - exit");
+ return;
+--
+2.26.2
+
diff --git a/root-stressGraphics.patch b/root-stressGraphics.patch
new file mode 100644
index 0000000..c7ac170
--- /dev/null
+++ b/root-stressGraphics.patch
@@ -0,0 +1,34 @@
+From 141dc7359fa890b081802532b97c25eeb5be5ee1 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Mon, 29 Jun 2020 12:53:07 +0200
+Subject: [PATCH] Adjust stressGraphics.ref
+
+---
+ test/stressGraphics.ref | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/test/stressGraphics.ref b/test/stressGraphics.ref
+index 38474d0549..2aecf462e8 100644
+--- a/test/stressGraphics.ref
++++ b/test/stressGraphics.ref
+@@ -3,7 +3,7 @@ Test# PS1Ref# PS1Err# PDFRef# PDFErr# GIFRef# GIFErr# JPGRef# JP
+ 2 4627 600 14506 100 7608 1500 13368 7900 9208 3000 4690 600
+ 3 452 50 12632 50 4797 350 11232 4200 3796 10700 492 50
+ 4 23617 1500 19386 100 43077 12000 143320 123000 45665 11000 24908 1500
+- 5 1025 150 12802 150 19715 2900 33468 9900 30846 5000 1072 200
++ 5 1025 150 12802 200 19715 2900 33468 9900 30846 5000 1072 200
+ 6 430 50 12669 50 4041 400 9558 100 5325 700 471 50
+ 7 4980 50 13893 50 8215 310 16143 1300 12230 500 5011 70
+ 8 5442 80 13473 50 9599 150 18430 700 12398 300 5469 80
+@@ -41,7 +41,7 @@ Test# PS1Ref# PS1Err# PDFRef# PDFErr# GIFRef# GIFErr# JPGRef# JP
+ 40 38312 200 56877 250 47205 3900 36524 11800 119641 8000 38121 200
+ 41 15025 3000 29289 500 34091 1500 42525 11300 33336 3900 14787 4000
+ 42 254604 5000 383258 7000 34608 5000 55666 30400 46534 6500 259594 7000
+- 43 4846 150 14075 100 24281 200 33239 600 25303 300 4877 150
++ 43 4846 150 14075 150 24281 200 33239 600 25303 300 4877 150
+ 44 1435879 150000 12837 100 96029 4000 25972 100 359846 15000 1085792 250000
+ 45 5884 500 16577 200 30259 3500 40706 14000 30026 4000 0 0
+ 46 5723 700 15720 200 14291 2600 32236 11000 16916 3200 5670 800
+--
+2.26.2
+
diff --git a/root-testfiles.sh b/root-testfiles.sh
index c16a23e..db4d721 100755
--- a/root-testfiles.sh
+++ b/root-testfiles.sh
@@ -74,9 +74,11 @@ wget -N ${SITE}/wa91.root
wget -N ${SITE}/AtlasGraphs.root
wget -N ${SITE}/europe.root
+wget -N ${SITE}/Higgs_data.root
wget -N ${SITE}/linearIO.root
wget -N ${SITE}/stressHistogram.5.18.00.root
wget -N ${SITE}/tmva_class_example.root
+wget -N ${SITE}/tmva_multiclass_example.root
wget -N ${SITE}/tmva_reg_example.root
wget -N ${SITE}/usa.root
diff --git a/root-unbundle-gtest.patch b/root-unbundle-gtest.patch
index 44939ca..6821f22 100644
--- a/root-unbundle-gtest.patch
+++ b/root-unbundle-gtest.patch
@@ -1,7 +1,7 @@
-diff -ur root-6.20.02.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.20.02/cmake/modules/SearchInstalledSoftware.cmake
---- root-6.20.02.orig/cmake/modules/SearchInstalledSoftware.cmake 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/cmake/modules/SearchInstalledSoftware.cmake 2020-03-15 20:12:34.446078193 +0100
-@@ -1528,83 +1528,18 @@
+diff -ur root-6.22.00.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.22.00/cmake/modules/SearchInstalledSoftware.cmake
+--- root-6.22.00.orig/cmake/modules/SearchInstalledSoftware.cmake 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/cmake/modules/SearchInstalledSoftware.cmake 2020-06-21 18:29:13.973655810 +0200
+@@ -1592,100 +1592,17 @@
#---Download googletest--------------------------------------------------------------
if (testing)
@@ -13,20 +13,22 @@ diff -ur root-6.20.02.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.20
+ set(_G_LIBRARY_PATH ${CMAKE_SOURCE_DIR}/googlemock)
- set(_gtest_byproduct_binary_dir
-- ${CMAKE_CURRENT_BINARY_DIR}/googletest-prefix/src/googletest-build/googlemock/)
+- ${CMAKE_CURRENT_BINARY_DIR}/googletest-prefix/src/googletest-build)
- set(_gtest_byproducts
-- ${_gtest_byproduct_binary_dir}/gtest/libgtest.a
-- ${_gtest_byproduct_binary_dir}/gtest/libgtest_main.a
-- ${_gtest_byproduct_binary_dir}/libgmock.a
-- ${_gtest_byproduct_binary_dir}/libgmock_main.a
+- ${_gtest_byproduct_binary_dir}/lib/libgtest.a
+- ${_gtest_byproduct_binary_dir}/lib/libgtest_main.a
+- ${_gtest_byproduct_binary_dir}/lib/libgmock.a
+- ${_gtest_byproduct_binary_dir}/lib/libgmock_main.a
- )
-
- if(MSVC)
- set(EXTRA_GTEST_OPTS
-- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=\\\"\\\"
-- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_MINSIZEREL:PATH=\\\"\\\"
-- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=\\\"\\\"
-- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO:PATH=\\\"\\\")
+- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=${_gtest_byproduct_binary_dir}/lib/
+- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_MINSIZEREL:PATH=${_gtest_byproduct_binary_dir}/lib/
+- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=${_gtest_byproduct_binary_dir}/lib/
+- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO:PATH=${_gtest_byproduct_binary_dir}/lib/
+- -Dgtest_force_shared_crt=ON
+- BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config Release)
- endif()
- if(APPLE)
- set(EXTRA_GTEST_OPTS
@@ -37,7 +39,7 @@ diff -ur root-6.20.02.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.20
- googletest
- GIT_REPOSITORY https://github.com/google/googletest.git
- GIT_SHALLOW 1
-- GIT_TAG release-1.8.0
+- GIT_TAG release-1.10.0
- UPDATE_COMMAND ""
- # TIMEOUT 10
- # # Force separate output paths for debug and release builds to allow easy
@@ -46,11 +48,11 @@ diff -ur root-6.20.02.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.20
- # -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=ReleaseLibs
- # -Dgtest_force_shared_crt=ON
- CMAKE_ARGS -G ${CMAKE_GENERATOR}
-- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+- -DCMAKE_BUILD_TYPE=Release
- -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
- -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
- -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-- -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
+- -DCMAKE_CXX_FLAGS=${ROOT_EXTERNAL_CXX_FLAGS}
- -DCMAKE_AR=${CMAKE_AR}
- -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
- ${EXTRA_GTEST_OPTS}
@@ -66,24 +68,38 @@ diff -ur root-6.20.02.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.20
- ExternalProject_Get_Property(googletest source_dir)
- set(GTEST_INCLUDE_DIR ${source_dir}/googletest/include)
- set(GMOCK_INCLUDE_DIR ${source_dir}/googlemock/include)
+- # Create the directories. Prevents bug https://gitlab.kitware.com/cmake/cmake/issues/15052
+- file(MAKE_DIRECTORY ${GTEST_INCLUDE_DIR} ${GMOCK_INCLUDE_DIR})
-
- # Libraries
- ExternalProject_Get_Property(googletest binary_dir)
-- set(_G_LIBRARY_PATH ${binary_dir}/googlemock/)
+- set(_G_LIBRARY_PATH ${binary_dir}/lib/)
-
-- # Register gtest, gtest_main, gmock, gmock_main
-- foreach (lib gtest gtest_main gmock gmock_main)
-+ # Register gmock, gmock_main
-+ foreach (lib gmock gmock_main)
+- # Use gmock_main instead of gtest_main because it initializes gtest as well.
+- # Note: The libraries are listed in reverse order of their dependancies.
+- foreach(lib gtest gtest_main gmock gmock_main)
++ foreach(lib gmock gmock_main)
add_library(${lib} IMPORTED STATIC GLOBAL)
+- set_target_properties(${lib} PROPERTIES
+- IMPORTED_LOCATION "${_G_LIBRARY_PATH}${CMAKE_STATIC_LIBRARY_PREFIX}${lib}${CMAKE_STATIC_LIBRARY_SUFFIX}"
+- INTERFACE_INCLUDE_DIRECTORIES "${GTEST_INCLUDE_DIRS}"
+- )
- add_dependencies(${lib} googletest)
- if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND
- ${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER_EQUAL 9)
- target_compile_options(${lib} INTERFACE -Wno-deprecated-copy)
- endif()
endforeach()
-- set_property(TARGET gtest PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/gtest/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX})
-- set_property(TARGET gtest_main PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/gtest/${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX})
+- # Once we require at least cmake 3.11, target_include_directories will work for imported targets
+- # Because of https://gitlab.kitware.com/cmake/cmake/-/merge_requests/1264
+- # We need this workaround:
+- SET_PROPERTY(TARGET gtest APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${GTEST_INCLUDE_DIR})
+- SET_PROPERTY(TARGET gmock APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${GMOCK_INCLUDE_DIR})
+- #target_include_directories(gtest INTERFACE ${GTEST_INCLUDE_DIR})
+- #target_include_directories(gmock INTERFACE ${GMOCK_INCLUDE_DIR})
+-
+- set_property(TARGET gtest PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX})
+- set_property(TARGET gtest_main PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX})
set_property(TARGET gmock PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gmock${CMAKE_STATIC_LIBRARY_SUFFIX})
set_property(TARGET gmock_main PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gmock_main${CMAKE_STATIC_LIBRARY_SUFFIX})
diff --git a/root-v7-line.patch b/root-v7-line.patch
deleted file mode 100644
index 29eed7e..0000000
--- a/root-v7-line.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -ur root-6.16.00.orig/tutorials/v7/line.cxx root-6.16.00/tutorials/v7/line.cxx
---- root-6.16.00.orig/tutorials/v7/line.cxx 2019-01-23 09:23:37.000000000 +0100
-+++ root-6.16.00/tutorials/v7/line.cxx 2019-05-17 11:02:14.378664352 +0200
-@@ -6,7 +6,6 @@
- /// "normal" coordinates' system and changing the line color linearly from black
- /// to red.
- ///
--/// \macro_image (line.png)
- /// \macro_code
- ///
- /// \date 2018-03-18
diff --git a/root-werror-fix.patch b/root-werror-fix.patch
new file mode 100644
index 0000000..341cca9
--- /dev/null
+++ b/root-werror-fix.patch
@@ -0,0 +1,57 @@
+From a5185f2cdf509314970c1b332c5926283f6962e2 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Mon, 22 Jun 2020 09:21:23 +0200
+Subject: [PATCH] Fix too aggressive -Werror replacements
+
+The replacements removes the -Werror option for externals, which is
+intended. However, it also replaces e.g. -Werror=format-security with
+=format-security, which results in compilation failures due to the
+unknown option =format-security.
+---
+ builtins/davix/CMakeLists.txt | 2 +-
+ cmake/modules/SearchInstalledSoftware.cmake | 2 +-
+ interpreter/CMakeLists.txt | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/builtins/davix/CMakeLists.txt b/builtins/davix/CMakeLists.txt
+index 52614ae2e0..c9b291ec45 100644
+--- a/builtins/davix/CMakeLists.txt
++++ b/builtins/davix/CMakeLists.txt
+@@ -21,7 +21,7 @@ foreach(lib davix neon)
+ list(APPEND DAVIX_LIBRARIES ${DAVIX_PREFIX}/lib/${libname})
+ endforeach()
+
+-string(REPLACE "-Werror" "" DAVIX_CXX_FLAGS ${CMAKE_CXX_FLAGS})
++string(REPLACE "-Werror " "" DAVIX_CXX_FLAGS "${CMAKE_CXX_FLAGS} ")
+
+ ExternalProject_Add(DAVIX
+ URL ${DAVIX_URL}/davix-${DAVIX_VERSION}.tar.gz
+diff --git a/cmake/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake
+index ad63f08cd0..36aa88d8cf 100644
+--- a/cmake/modules/SearchInstalledSoftware.cmake
++++ b/cmake/modules/SearchInstalledSoftware.cmake
+@@ -9,7 +9,7 @@ include(ExternalProject)
+ include(FindPackageHandleStandardArgs)
+
+ set(lcgpackages http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources)
+-string(REPLACE "-Werror" "" ROOT_EXTERNAL_CXX_FLAGS ${CMAKE_CXX_FLAGS})
++string(REPLACE "-Werror " "" ROOT_EXTERNAL_CXX_FLAGS "${CMAKE_CXX_FLAGS} ")
+
+ macro(find_package)
+ if(NOT "${ARGV0}" IN_LIST ROOT_BUILTINS)
+diff --git a/interpreter/CMakeLists.txt b/interpreter/CMakeLists.txt
+index 0f43893443..1274758410 100644
+--- a/interpreter/CMakeLists.txt
++++ b/interpreter/CMakeLists.txt
+@@ -140,7 +140,7 @@ if(gcctoolchain)
+ endif()
+
+ # We will not fix llvm or clang.
+-string(REPLACE "-Werror" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
++string(REPLACE "-Werror " "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ")
+
+ if(LLVM_SHARED_LINKER_FLAGS)
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${LLVM_SHARED_LINKER_FLAGS}")
+--
+2.26.2
+
diff --git a/root-xmlmodify-dep.patch b/root-xmlmodify-dep.patch
deleted file mode 100644
index 02a0498..0000000
--- a/root-xmlmodify-dep.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From a651fb9278438d5ad7e4ddbf6082a791e1187e0d Mon Sep 17 00:00:00 2001
-From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
-Date: Fri, 13 Mar 2020 12:58:14 +0100
-Subject: [PATCH] The test that creates the file must run before the test that
- modifies it
-
----
- tutorials/CMakeLists.txt | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt
-index f920da54ee..b1abd03d36 100644
---- a/tutorials/CMakeLists.txt
-+++ b/tutorials/CMakeLists.txt
-@@ -375,6 +375,7 @@ set(unfold-testUnfold5b-depends tutorial-unfold-testUnfold5a)
- set(unfold-testUnfold7d-depends tutorial-unfold-testUnfold7c)
- set(unfold-testUnfold7c-depends tutorial-unfold-testUnfold7b)
- set(unfold-testUnfold7b-depends tutorial-unfold-testUnfold7a)
-+set(xml-xmlmodifyfile-depends tutorial-xml-xmlnewfile)
- set(xml-xmlreadfile-depends tutorial-xml-xmlnewfile)
- set(roofit-rf503_wspaceread-depends tutorial-roofit-rf502_wspacewrite)
- set(histfactory-example-depends tutorial-roostats-CreateExampleFile)
---
-2.24.1
-
diff --git a/root-xrootd5-compat.patch b/root-xrootd5-compat.patch
new file mode 100644
index 0000000..5a7ecda
--- /dev/null
+++ b/root-xrootd5-compat.patch
@@ -0,0 +1,109 @@
+From c81fab4b81b4767abdca612f33604b252fc665b7 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Tue, 14 Jul 2020 08:10:00 +0200
+Subject: [PATCH] Compatibility with xrootd 5.
+
+The old client library libXrdClient is removed.
+Also XrdSysDNS is removed.
+
+Do not build the legacy XProofD file server and client (already
+disabled by default - give error if someone enables it while building
+with xrootd 5).
+
+Do not build the old libNetx.
+
+Build the new libNetNG without XrdSysDNS, use XrdNetAddr instead.
+---
+ cmake/modules/SearchInstalledSoftware.cmake | 15 +++++++++++++++
+ net/CMakeLists.txt | 2 +-
+ net/netxng/src/TNetXNGSystem.cxx | 18 +++++++++++++++++-
+ 3 files changed, 33 insertions(+), 2 deletions(-)
+
+diff --git a/cmake/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake
+index 12f9d65371..3578303c5d 100644
+--- a/cmake/modules/SearchInstalledSoftware.cmake
++++ b/cmake/modules/SearchInstalledSoftware.cmake
+@@ -925,6 +925,21 @@ if(xrootd AND XROOTD_VERSIONNUM VERSION_GREATER 300030005)
+ else()
+ set(netxng OFF)
+ endif()
++if(xrootd AND XROOTD_VERSIONNUM VERSION_LESS 500000000)
++ set(netx ON)
++else()
++ set(netx OFF)
++endif()
++if(xrootd AND XROOTD_VERSIONNUM VERSION_GREATER_EQUAL 500000000)
++ if(xproofd)
++ if(fail-on-missing)
++ message(FATAL_ERROR "XROOTD is version 5 or greater. The legacy xproofd servers can not be built with this version. Use -Dxproofd:BOOL=OFF to disable.")
++ else()
++ message(STATUS "XROOTD is version 5 or greater. The legacy xproofd servers can not be built with this version. Disbaling xproofd' option.")
++ set(xproofd OFF CACHE BOOL "Disabled because xrootd version is 5 or greater" FORCE)
++ endif()
++ endif()
++endif()
+
+ #---Alien support----------------------------------------------------------------
+ if(alien)
+diff --git a/net/CMakeLists.txt b/net/CMakeLists.txt
+index 953d9c5d6f..676eb63672 100644
+--- a/net/CMakeLists.txt
++++ b/net/CMakeLists.txt
+@@ -11,7 +11,7 @@ if(NOT WIN32 AND ssl)
+ add_subdirectory(rpdutils)
+ endif()
+
+-if(xrootd)
++if(netx)
+ add_subdirectory(netx)
+ endif()
+
+diff --git a/net/netxng/src/TNetXNGSystem.cxx b/net/netxng/src/TNetXNGSystem.cxx
+index 6599aa2c2f..d30a12554f 100644
+--- a/net/netxng/src/TNetXNGSystem.cxx
++++ b/net/netxng/src/TNetXNGSystem.cxx
+@@ -27,7 +27,12 @@
+ #include "TVirtualMutex.h"
+ #include <XrdCl/XrdClFileSystem.hh>
+ #include <XrdCl/XrdClXRootDResponses.hh>
++#include <XrdVersion.hh>
++#if XrdVNUMBER >= 40000
++#include <XrdNet/XrdNetAddr.hh>
++#else
+ #include <XrdSys/XrdSysDNS.hh>
++#endif
+
+
+ ////////////////////////////////////////////////////////////////////////////////
+@@ -352,6 +357,16 @@ Int_t TNetXNGSystem::Locate(const char *path, TString &endurl)
+ TNamed *hn = 0;
+ if (fgAddrFQDN.GetSize() <= 0 ||
+ !(hn = dynamic_cast<TNamed *>(fgAddrFQDN.FindObject(loc)))) {
++#if XrdVNUMBER >= 40000
++ XrdNetAddr netaddr;
++ netaddr.Set(loc.Data());
++ const char* name = netaddr.Name();
++ if (name) {
++ hn = new TNamed(loc.Data(), name);
++ } else {
++ hn = new TNamed(loc, loc);
++ }
++#else
+ char *addr[1] = {0}, *name[1] = {0};
+ int naddr = XrdSysDNS::getAddrName(loc.Data(), 1, addr, name);
+ if (naddr == 1) {
+@@ -359,9 +374,10 @@ Int_t TNetXNGSystem::Locate(const char *path, TString &endurl)
+ } else {
+ hn = new TNamed(loc, loc);
+ }
+- fgAddrFQDN.Add(hn);
+ free(addr[0]);
+ free(name[0]);
++#endif
++ fgAddrFQDN.Add(hn);
+ if (gDebug > 0)
+ Info("Locate","caching host name: %s", hn->GetTitle());
+ }
+--
+2.26.2
+
diff --git a/root.spec b/root.spec
index 2929aa2..57d53a7 100644
--- a/root.spec
+++ b/root.spec
@@ -1,19 +1,8 @@
-%if %{?fedora}%{!?fedora:0} >= 29 || %{?rhel}%{!?rhel:0} >= 8
-# Use Python 3 as the default python for Fedora >= 29
-# - Give python3 libPyROOT higher priority than python2 libPyROOT
-# - The python scripts in root-cli use python3-root
-# - Let root-tmva-python use python3-numpy
-# - Don't build python2-jupyroot/jsmva packages
-# - Use Python 3 during testing and documentation build
-%global py3default 1
-%global py2prio 10
-%global py3prio 20
-%global __pythondef %{__python3}
+%if %{?fedora}%{!?fedora:0} >= 32 || %{?rhel}%{!?rhel:0} >= 9
+%undefine __cmake_in_source_build
+%global oldcmakemacro 0
%else
-%global py3default 0
-%global py2prio 20
-%global py3prio 10
-%global __pythondef %{__python2}
+%global oldcmakemacro 1
%endif
%if %{?fedora}%{!?fedora:0} >= 31 || %{?rhel}%{!?rhel:0} >= 8
@@ -23,8 +12,12 @@
%global buildpy2 1
%endif
+%if %{buildpy2}
+%global python2_version_uscore %(tr . _ <<< "%{python2_version}")
+%endif
+%global python3_version_uscore %(tr . _ <<< "%{python3_version}")
+
%global py3_soabi %([ -x %{__python3} ] && %{__python3} -c "from distutils import sysconfig; print(sysconfig.get_config_vars().get('SOABI'))")
-%global py3_other_soabi %([ -x %{__python3_other} ] && %{__python3_other} -c "from distutils import sysconfig; print(sysconfig.get_config_vars().get('SOABI'))")
%if %{?fedora}%{!?fedora:0} >= 24 || %{?rhel}%{!?rhel:0} >= 8
# Building the experimental ROOT 7 classes requires c++-14.
@@ -44,14 +37,13 @@
# Do not create .orig files when patching source
%global _default_patch_flags --no-backup-if-mismatch
-# Do not generate autoprovides for libJupyROOT.so
-# Note: the ones from libPyROOT.so we do want though
-%global __provides_exclude_from ^(%{?python2_sitearch:%{python2_sitearch}|}%{python3_sitearch}%{?python3_other_sitearch:|%{python3_other_sitearch}})/libJupyROOT\\.so$
+# Do not generate autoprovides for Python modules
+%global __provides_exclude_from ^(%{?python2_sitearch:%{python2_sitearch}|}%{python3_sitearch})/lib.*\\.so$
Name: root
-Version: 6.20.06
+Version: 6.22.00
%global libversion %(cut -d. -f 1-2 <<< %{version})
-Release: 2%{?dist}
+Release: 1%{?dist}
Summary: Numerical data analysis framework
License: LGPLv2+
@@ -101,37 +93,56 @@ Patch9: %{name}-dont-install-minicern.patch
Patch10: %{name}-clang-ignore-gcc-options.patch
# Don't create documentation notebooks
Patch11: %{name}-doc-no-notebooks.patch
-# Don't run tutorial requiring firefox during doc generation
-Patch12: %{name}-v7-line.patch
-# Fix ppc64le build with gcc 10
-# https://github.com/root-project/root/pull/5157
-Patch13: %{name}-clang-altivec-vector.patch
+# Don't run tutorials that crash during doc generation
+Patch12: %{name}-doxygen-crash.patch
+# Compatibility with older gtest
+Patch13: %{name}-old-gtest-compat.patch
# Fix -Wmissing-field-initializers in python bindings for
# Python 3.8 and 3.9
# https://github.com/root-project/root/pull/5158
Patch14: %{name}-python3.8-object.patch
-# Correct broken assert statements
-# https://github.com/root-project/root/pull/5159
-Patch15: %{name}-FitData-assert-fix.patch
-# The test that creates the file must run before the test that
-# modifies it
-# https://github.com/root-project/root/pull/5160
-Patch16: %{name}-xmlmodify-dep.patch
-# Size types should use %z
-# https://github.com/root-project/root/pull/5161
-Patch17: %{name}-format-fix.patch
# Run some test on 32 bit that upstream has disabled
-Patch18: %{name}-32bit-tests.patch
-# The file was moved - update path
-# https://github.com/root-project/root/pull/5162
-Patch19: %{name}-moved-file.patch
+Patch15: %{name}-32bit-tests.patch
# Workaround for initialization problems for PyROOT on
# EPEL7 ppc64le
# https://sft.its.cern.ch/jira/browse/ROOT-10622
-Patch20: %{name}-epel7-ppc64le-pyroot.patch
+Patch16: %{name}-epel7-ppc64le-pyroot.patch
# Fix test failure on ppc64le and aarch64
# https://github.com/root-project/root/pull/5867
-Patch21: %{name}-roostats-test-ppc64le-aarch64.patch
+Patch17: %{name}-roostats-test-ppc64le-aarch64.patch
+# Fix too aggressive -Werror replacements
+# https://github.com/root-project/root/pull/5902
+Patch18: %{name}-werror-fix.patch
+# Add missing call to TFile::SetCacheFileDir in a TMVA tutorial
+# https://github.com/root-project/root/pull/5944
+Patch19: %{name}-setcachefiledir.patch
+# Adjust stressGraphics.ref
+# https://github.com/root-project/root/pull/5957
+Patch20: %{name}-stressGraphics.patch
+# Fix off-by-one error in histogram v7 bin iterator
+# https://github.com/root-project/root/pull/5958
+Patch21: %{name}-histv7-bin-iterator.patch
+# Compatibility with python 2.7 versions before 2.7.9
+# https://github.com/root-project/root/pull/5960
+Patch22: %{name}-python2-compat.patch
+# Fix the RNTuple.LargeFile test on 32bit (i386 and armv7hf)
+# https://github.com/root-project/root/pull/5977
+Patch23: %{name}-ntuple-largefile.patch
+# Fix doxygen issues
+# https://github.com/root-project/root/pull/6029
+Patch24: %{name}-doxygen-filenames.patch
+Patch25: %{name}-doxygen-endof-part1.patch
+Patch26: %{name}-doxygen-endof-part2.patch
+Patch27: %{name}-doxygen-parameter-names.patch
+Patch28: %{name}-doxygen-macro-name.patch
+Patch29: %{name}-doxygen-missing-underscore.patch
+Patch30: %{name}-doxygen-md-comments.patch
+# Fix bad regex in TProofMgr
+# https://github.com/root-project/root/pull/6030
+Patch31: %{name}-fix-bad-regex.patch
+# Compatibility with xrootd 5
+# https://github.com/root-project/root/pull/6031
+Patch32: %{name}-xrootd5-compat.patch
# s390x suffers from endian issues resulting in failing tests
# and broken documentation generation
@@ -185,9 +196,6 @@ BuildRequires: postgresql-devel
BuildRequires: python2-devel
%endif
BuildRequires: python%{python3_pkgversion}-devel
-%if %{?rhel}%{!?rhel:0} == 7
-BuildRequires: python%{python3_other_pkgversion}-devel
-%endif
%if %{root7}
%ifarch %{qt5_qtwebengine_arches}
BuildRequires: qt5-qtbase-devel
@@ -218,11 +226,7 @@ BuildRequires: graphviz-devel
BuildRequires: expat-devel
BuildRequires: pythia8-devel >= 8.1.80
BuildRequires: blas-devel
-%if %{py3default}
BuildRequires: python%{python3_pkgversion}-numpy
-%else
-BuildRequires: python2-numpy
-%endif
BuildRequires: doxygen
BuildRequires: graphviz
BuildRequires: yuicompressor
@@ -372,12 +376,15 @@ Obsoletes: %{name}-net-krb5 < 6.18.00
Obsoletes: %{name}-table < 6.18.00
%if ! %{buildpy2}
Obsoletes: python2-%{name} < %{version}-%{release}
-%endif
-%if %{py3default}
Obsoletes: python2-jupyroot < %{version}-%{release}
Obsoletes: python2-jsmva < %{version}-%{release}
Obsoletes: %{name}-rootaas < 6.08.00
%endif
+%if %{?rhel}%{!?rhel:0} == 7
+Obsoletes: python%{python3_other_pkgversion}-%{name} < 6.22.00
+Obsoletes: python%{python3_other_pkgversion}-jupyroot < 6.22.00
+Obsoletes: python%{python3_other_pkgversion}-jsmva < 6.22.00
+%endif
%description core
This package contains the core libraries used by ROOT: libCore, libNew,
@@ -415,6 +422,17 @@ Obsoletes: %{name}-reflex < 6.00.00
Cling is an interactive C++ interpreter, built on top of Clang and
LLVM compiler infrastructure.
+%package tpython
+Summary: ROOT's TPython interface
+Requires: %{name}-core%{?_isa} = %{version}-%{release}
+Requires: python%{python3_pkgversion}-%{name}%{?_isa} = %{version}-%{release}
+# Package split (tpython from Python bindings)
+Obsoletes: python%{python3_pkgversion}-%{name} < 6.22.00
+
+%description tpython
+This package contains ROOT's TPython interface. It makes it possible
+to call Python from ROOT.
+
%if %{buildpy2}
%package -n python2-%{name}
Summary: Python extension for ROOT
@@ -426,11 +444,9 @@ Requires: %{name}-io%{?_isa} = %{version}-%{release}
Requires: %{name}-tree%{?_isa} = %{version}-%{release}
%description -n python2-%{name}
-This package contains the Python extension for ROOT. This package
-provide a Python interface to ROOT, and a ROOT interface to Python.
-%endif
+This package contains the Python extension for ROOT. It makes it
+possible to use ROOT classes in Python.
-%if ! %{py3default}
%package -n python2-jupyroot
Summary: ROOT Jupyter kernel
%{?python_provide:%python_provide python2-jupyroot}
@@ -470,10 +486,12 @@ Obsoletes: %{name}-python%{python3_pkgversion} < 6.08.00
Requires: %{name}-core%{?_isa} = %{version}-%{release}
Requires: %{name}-io%{?_isa} = %{version}-%{release}
Requires: %{name}-tree%{?_isa} = %{version}-%{release}
+# Package split (tpython from Python bindings)
+Obsoletes: python%{python3_pkgversion}-%{name} < 6.22.00
%description -n python%{python3_pkgversion}-%{name}
-This package contains the Python extension for ROOT. This package
-provide a Python interface to ROOT, and a ROOT interface to Python.
+This package contains the Python extension for ROOT. It makes it
+possible to use ROOT classes in Python.
%package -n python%{python3_pkgversion}-jupyroot
Summary: ROOT Jupyter kernel
@@ -504,44 +522,12 @@ Requires: %{name}-tmva = %{version}-%{release}
%description -n python%{python3_pkgversion}-jsmva
TMVA interface used by JupyROOT.
-%if %{?rhel}%{!?rhel:0} == 7
-%package -n python%{python3_other_pkgversion}-%{name}
-Summary: Python extension for ROOT
-%{?python_provide:%python_provide python%{?python3_other_pkgversion}-%{name}}
-Requires: %{name}-core%{?_isa} = %{version}-%{release}
-Requires: %{name}-io%{?_isa} = %{version}-%{release}
-Requires: %{name}-tree%{?_isa} = %{version}-%{release}
-
-%description -n python%{python3_other_pkgversion}-%{name}
-This package contains the Python extension for ROOT. This package
-provide a Python interface to ROOT, and a ROOT interface to Python.
-
-%package -n python%{python3_other_pkgversion}-jupyroot
-Summary: ROOT Jupyter kernel
-%{?python_provide:%python_provide python%{?python3_other_pkgversion}-jupyroot}
-Requires: python%{python3_other_pkgversion}-%{name}%{?_isa} = %{version}-%{release}
-Requires: python%{python3_other_pkgversion}-jsmva = %{version}-%{release}
-Requires: %{name}-core%{?_isa} = %{version}-%{release}
-Requires: %{name}-notebook = %{version}-%{release}
-# python-metakernel not available - some functionality missing
-
-%description -n python%{python3_other_pkgversion}-jupyroot
-The Jupyter kernel for the ROOT notebook.
-
-%package -n python%{python3_other_pkgversion}-jsmva
-Summary: TMVA interface used by JupyROOT
-BuildArch: noarch
-%{?python_provide:%python_provide python%{?python3_other_pkgversion}-jsmva}
-Requires: %{name}-tmva = %{version}-%{release}
-
-%description -n python%{python3_other_pkgversion}-jsmva
-TMVA interface used by JupyROOT.
-%endif
-
%package r
Summary: R interface for ROOT
Requires: %{name}-core%{?_isa} = %{version}-%{release}
Requires: %{name}-matrix%{?_isa} = %{version}-%{release}
+Requires: R-Rcpp-devel
+Requires: R-RInside-devel
%description r
ROOT R is an interface in ROOT to call R functions using an R C++
@@ -794,6 +780,7 @@ Requires: %{name}-gui%{?_isa} = %{version}-%{release}
Requires: %{name}-hist%{?_isa} = %{version}-%{release}
Requires: %{name}-mathcore%{?_isa} = %{version}-%{release}
Requires: %{name}-tree%{?_isa} = %{version}-%{release}
+Requires: %{name}-tree-player%{?_isa} = %{version}-%{release}
%description gui-fitpanel
This package contains a library to show a pop-up dialog when fitting
@@ -1560,11 +1547,7 @@ Summary: Toolkit for multivariate data analysis (Python)
License: BSD
Requires: %{name}-core%{?_isa} = %{version}-%{release}
Requires: %{name}-tmva%{?_isa} = %{version}-%{release}
-%if %{py3default}
Requires: python%{python3_pkgversion}-numpy
-%else
-Requires: python2-numpy
-%endif
%description tmva-python
Python integration with TMVA.
@@ -1670,11 +1653,7 @@ An algorithm to unfold distributions from detector to truth level.
%package cli
Summary: ROOT command line utilities
BuildArch: noarch
-%if %{py3default}
Requires: python%{python3_pkgversion}-%{name} = %{version}-%{release}
-%else
-Requires: python2-%{name} = %{version}-%{release}
-%endif
%description cli
The ROOT command line utilities is a set of scripts for common tasks
@@ -1728,16 +1707,26 @@ Requires: %{name}-tree-player%{?_isa} = %{version}-%{release}
%description graf3d-eve7
This package contains a library for defining event displays in ROOT 7.
+%package gui-browsable
+Summary: GUI browsable (ROOT 7)
+Requires: %{name}-core%{?_isa} = %{version}-%{release}
+Requires: %{name}-graf-gpadv7%{?_isa} = %{version}-%{release}
+Requires: %{name}-hist%{?_isa} = %{version}-%{release}
+Requires: %{name}-io%{?_isa} = %{version}-%{release}
+Requires: %{name}-tree%{?_isa} = %{version}-%{release}
+
+%description gui-browsable
+This package contains GUI browsable components for ROOT 7.
+
%package gui-browserv7
Summary: Browser (ROOT 7)
Requires: %{name}-core%{?_isa} = %{version}-%{release}
Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release}
Requires: %{name}-graf-gpadv7%{?_isa} = %{version}-%{release}
+Requires: %{name}-gui-browsable%{?_isa} = %{version}-%{release}
Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release}
Requires: %{name}-gui-webgui6%{?_isa} = %{version}-%{release}
-Requires: %{name}-hist%{?_isa} = %{version}-%{release}
Requires: %{name}-io%{?_isa} = %{version}-%{release}
-Requires: %{name}-tree%{?_isa} = %{version}-%{release}
%description gui-browserv7
This package contains a file browser for ROOT 7.
@@ -1847,6 +1836,17 @@ This package contains an ntuple extension for ROOT 7.
%patch19 -p1
%patch20 -p1
%patch21 -p1
+%patch22 -p1
+%patch23 -p1
+%patch24 -p1
+%patch25 -p1
+%patch26 -p1
+%patch27 -p1
+%patch28 -p1
+%patch29 -p1
+%patch30 -p1
+%patch31 -p1
+%patch32 -p1
# Remove bundled sources in order to be sure they are not used
# * afterimage
@@ -1855,9 +1855,7 @@ rm -rf graf2d/asimage/src/libAfterImage
rm -rf graf3d/ftgl/src graf3d/ftgl/inc
# * freetype
rm -rf graf2d/freetype/src
-# * glew
-rm -rf graf3d/glew/src graf3d/glew/inc graf3d/glew/isystem
-# * davix, lz4, openssl, pcre, xxhash, zlib, zstd
+# * davix, glew, lz4, openssl, pcre, xxhash, zlib, zstd
rm -rf builtins
# * lzma
rm -rf core/lzma/src/*.tar.gz
@@ -1887,20 +1885,6 @@ chmod -x interpreter/llvm/src/lib/Target/X86/X86EvexToVex.cpp
# Remove unsupported man page macros
sed -e '/^\.UR/d' -e '/^\.UE/d' -i man/man1/*
-%if %{py3default}
-%if %{buildpy2}
-# Build PyROOT for python 2
-cp -pr bindings/pyroot bindings/python2
-%endif
-%else
-# Build PyROOT for python 3
-cp -pr bindings/pyroot bindings/python3
-%endif
-%if %{?rhel}%{!?rhel:0} == 7
-# Build PyROOT for python 3 (other)
-cp -pr bindings/pyroot bindings/python3oth
-%endif
-
# Work around missing libraries in Fedora's gmock packaging < 1.8.0
if [ ! -r %{_libdir}/libgmock.so ] ; then
mkdir googlemock
@@ -1933,12 +1917,13 @@ for s in etc/notebook/JsMVA/css/*.css ; do
yuicompressor ${s} -o ${s%.css}.min.css
done
-mkdir builddir
-pushd builddir
-
# Avoid overlinking (this used to be the default with the old configure script)
LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
+%if %{oldcmakemacro}
+mkdir %{_vpath_builddir}
+pushd %{_vpath_builddir}
+%endif
%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8
%cmake \
%else
@@ -1995,6 +1980,7 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
-Ddataframe:BOOL=ON \
-Ddavix:BOOL=ON \
-Ddcache:BOOL=ON \
+ -Ddev:BOOL=OFF \
-Dexceptions:BOOL=ON \
-Dfcgi:BOOL=ON \
-Dfftw3:BOOL=ON \
@@ -2027,8 +2013,8 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
-Dpgsql:BOOL=ON \
-Dpythia6:BOOL=OFF \
-Dpythia8:BOOL=ON \
- -DPYTHON_EXECUTABLE:PATH=%{__pythondef} \
-Dpyroot:BOOL=ON \
+ -Dpyroot_legacy:BOOL=OFF \
%ifarch %{qt5_qtwebengine_arches}
-Dqt5web:BOOL=ON \
%else
@@ -2064,127 +2050,23 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
-Dx11:BOOL=ON \
-Dxml:BOOL=ON \
-Dxrootd:BOOL=ON \
+ -Dxproofd:BOOL=ON \
-Dfail-on-missing:BOOL=ON \
-Dtesting:BOOL=ON \
-Dclingtest:BOOL=OFF \
-Dcoverage:BOOL=OFF \
-Droottest:BOOL=OFF \
-Drootbench:BOOL=OFF \
+ -Dasan:BOOL=OFF \
+%if %{oldcmakemacro}
..
-
-%if %{py3default}
-%if %{buildpy2}
-# Build PyROOT for python 2 (prep)
-cp -pr bindings/pyroot bindings/python2
-%endif
-%else
-# Build PyROOT for python 3 (prep)
-cp -pr bindings/pyroot bindings/python3
-%endif
-%if %{?rhel}%{!?rhel:0} == 7
-# Build PyROOT for python 3 (other) (prep)
-cp -pr bindings/pyroot bindings/python3oth
-%endif
-
-make %{?_smp_mflags}
-
-%if %{py3default}
-
-%if %{buildpy2}
-
-# Build PyROOT for python 2
-mkdir python2
-mv CMakeFiles/Makefile2 CMakeFiles/Makefile2.save
-sed 's!bindings/pyroot!bindings/python2!g' CMakeFiles/Makefile2.save \
- > CMakeFiles/Makefile2
-py2i=`pkg-config --cflags-only-I python2 | sed -e 's/-I//' -e 's/\s*$//'`
-py2l=`pkg-config --libs-only-l python2 | sed -e 's/-l//' -e 's/\s*$//'`
-if pkg-config --exists python3-embed ; then
- py3i=`pkg-config --cflags-only-I python3-embed | sed -e 's/-I//' -e 's/\s*$//'`
- py3l=`pkg-config --libs-only-l python3-embed | sed -e 's/-l//' -e 's/\s*$//'`
-else
- py3i=`pkg-config --cflags-only-I python3 | sed -e 's/-I//' -e 's/\s*$//'`
- py3l=`pkg-config --libs-only-l python3 | sed -e 's/-l//' -e 's/\s*$//'`
-fi
-sed -e "s,${py3i},${py2i},g" -e "s,-l${py3l},-l${py2l},g" \
- -e "s,lib${py3l},lib${py2l},g" \
- -e 's,%{__python}%{python3_version},%{__python2},g' \
- -e 's,%{__python3},%{__python2},g' \
- -e 's,lib/libPyROOT,python2/libPyROOT,g' \
- -e 's,lib/libJupyROOT,python2/libJupyROOT,g' \
- -e 's!bindings/pyroot!bindings/python2!g' \
- -i `find bindings/python2 -type f`
-make %{?_smp_mflags} -f bindings/python2/Makefile PyROOT JupyROOT
-mv CMakeFiles/Makefile2.save CMakeFiles/Makefile2
-
-%endif
-
-%else
-
-# Build PyROOT for python 3
-mkdir python3
-mv CMakeFiles/Makefile2 CMakeFiles/Makefile2.save
-sed 's!bindings/pyroot!bindings/python3!g' CMakeFiles/Makefile2.save \
- > CMakeFiles/Makefile2
-py2i=`pkg-config --cflags-only-I python2 | sed -e 's/-I//' -e 's/\s*$//'`
-py2l=`pkg-config --libs-only-l python2 | sed -e 's/-l//' -e 's/\s*$//'`
-if pkg-config --exists python3-embed ; then
- py3i=`pkg-config --cflags-only-I python3-embed | sed -e 's/-I//' -e 's/\s*$//'`
- py3l=`pkg-config --libs-only-l python3-embed | sed -e 's/-l//' -e 's/\s*$//'`
-else
- py3i=`pkg-config --cflags-only-I python3 | sed -e 's/-I//' -e 's/\s*$//'`
- py3l=`pkg-config --libs-only-l python3 | sed -e 's/-l//' -e 's/\s*$//'`
-fi
-sed -e "s,${py2i},${py3i},g" -e "s,-l${py2l},-l${py3l},g" \
- -e "s,%{_libdir}/python%{python2_version}/config/lib${py2l}.so,%{_libdir}/lib${py3l}.so,g" \
- -e "s,lib${py2l},lib${py3l},g" \
- -e 's,%{__python}%{python2_version},%{__python3},g' \
- -e 's,%{__python2},%{__python3},g' \
- -e 's,lib/libPyROOT,python3/libPyROOT,g' \
- -e 's,lib/libJupyROOT,python3/libJupyROOT,g' \
- -e 's!bindings/pyroot!bindings/python3!g' \
- -i `find bindings/python3 -type f`
-make %{?_smp_mflags} -f bindings/python3/Makefile PyROOT JupyROOT
-mv CMakeFiles/Makefile2.save CMakeFiles/Makefile2
-
-%endif
-
-%if %{?rhel}%{!?rhel:0} == 7
-
-# Build PyROOT for python 3 (other)
-mkdir python3oth
-mv CMakeFiles/Makefile2 CMakeFiles/Makefile2.save
-sed 's!bindings/pyroot!bindings/python3oth!g' CMakeFiles/Makefile2.save \
- > CMakeFiles/Makefile2
-py2i=`pkg-config --cflags-only-I python2 | sed -e 's/-I//' -e 's/\s*$//'`
-py2l=`pkg-config --libs-only-l python2 | sed -e 's/-l//' -e 's/\s*$//'`
-if pkg-config --exists python-%{python3_other_version}-embed ; then
- py3i=`pkg-config --cflags-only-I python-%{python3_other_version}-embed | sed -e 's/-I//' -e 's/\s*$//'`
- py3l=`pkg-config --libs-only-l python-%{python3_other_version}-embed | sed -e 's/-l//' -e 's/\s*$//'`
-else
- py3i=`pkg-config --cflags-only-I python-%{python3_other_version} | sed -e 's/-I//' -e 's/\s*$//'`
- py3l=`pkg-config --libs-only-l python-%{python3_other_version} | sed -e 's/-l//' -e 's/\s*$//'`
-fi
-sed -e "s,${py2i},${py3i},g" -e "s,-l${py2l},-l${py3l},g" \
- -e "s,%{_libdir}/python%{python2_version}/config/lib${py2l}.so,%{_libdir}/lib${py3l}.so,g" \
- -e "s,lib${py2l},lib${py3l},g" \
- -e 's,%{__python}%{python2_version},%{__python3_other},g' \
- -e 's,%{__python2},%{__python3_other},g' \
- -e 's,lib/libPyROOT,python3oth/libPyROOT,g' \
- -e 's,lib/libJupyROOT,python3oth/libJupyROOT,g' \
- -e 's!bindings/pyroot!bindings/python3oth!g' \
- -i `find bindings/python3oth -type f`
-make %{?_smp_mflags} -f bindings/python3oth/Makefile PyROOT JupyROOT
-mv CMakeFiles/Makefile2.save CMakeFiles/Makefile2
-
+popd
%endif
-popd
+%make_build -C %{_vpath_builddir}
%install
-pushd builddir
-make %{?_smp_mflags} install DESTDIR=%{buildroot}
-popd
+%make_install -C %{_vpath_builddir}
# Do emacs byte compilation
emacs -batch -no-site-file -f batch-byte-compile \
@@ -2210,9 +2092,7 @@ install -p -m 644 %{SOURCE7} %{buildroot}%{_pkgdocdir}
mkdir -p %{buildroot}%{_datadir}/%{name}/cli
mv %{buildroot}%{_libdir}/%{name}/cmdLineUtils.py* \
%{buildroot}%{_datadir}/%{name}/cli
-%if %{py3default}
rm %{buildroot}%{_libdir}/%{name}/__pycache__/cmdLineUtils.*
-%endif
sed -e '/^\#!/d' -i %{buildroot}%{_datadir}/%{name}/cli/cmdLineUtils.py
# Install GDB pretty printers to auto load safe path
@@ -2228,167 +2108,80 @@ install -p -m 644 build/gdbPrinters/libRooFitCore.so-gdb.py \
%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8
# This is the default for Fedora 30+, set it for Fedora 28-29
%global _python_bytecompile_extra 0
-%py_byte_compile %{__pythondef} %{buildroot}%{_datadir}/%{name}/cli
+%py_byte_compile %{__python3} %{buildroot}%{_datadir}/%{name}/cli
%py_byte_compile %{__python3} %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name}
%endif
-%if %{py3default}
-
-# Move the python modules to sitearch/sitelib
-mkdir -p %{buildroot}%{python3_sitearch}
-mv %{buildroot}%{_libdir}/%{name}/libPyROOT.so.%{version} \
- %{buildroot}%{python3_sitearch}/libPyROOT.%{py3_soabi}.so
-mv %{buildroot}%{_libdir}/%{name}/libPyROOT.rootmap \
- %{buildroot}%{python3_sitearch}/libPyROOT.rootmap
-mv %{buildroot}%{_libdir}/%{name}/libPyROOT_rdict.pcm \
- %{buildroot}%{python3_sitearch}/libPyROOT_rdict.pcm
-mv %{buildroot}%{_libdir}/%{name}/libJupyROOT.so.%{version} \
- %{buildroot}%{python3_sitearch}/libJupyROOT.so
-mv %{buildroot}%{_libdir}/%{name}/*.py %{buildroot}%{python3_sitearch}
-mv %{buildroot}%{_libdir}/%{name}/__pycache__ %{buildroot}%{python3_sitearch}
-rm %{buildroot}%{_libdir}/%{name}/JupyROOT/README.md
-rm -rf %{buildroot}%{_libdir}/%{name}/JupyROOT/src
-mv %{buildroot}%{_libdir}/%{name}/JupyROOT %{buildroot}%{python3_sitearch}
-rm %{buildroot}%{_libdir}/%{name}/libJupyROOT.so.%{libversion}
-rm %{buildroot}%{_libdir}/%{name}/libJupyROOT.so
-
-mkdir -p %{buildroot}%{python3_sitelib}
-mv %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python3_sitelib}
-
-# Create empty .egg-info files so that rpm auto-generates provides
-touch %{buildroot}%{python3_sitearch}/ROOT-%{version}.egg-info
-touch %{buildroot}%{python3_sitearch}/JupyROOT-%{version}.egg-info
-touch %{buildroot}%{python3_sitelib}/JsMVA-%{version}.egg-info
-
%if %{buildpy2}
-tmpdir=`mktemp -d`
-
-%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8
-DESTDIR=$tmpdir cmake -P builddir/bindings/python2/cmake_install.cmake
-%else
-DESTDIR=$tmpdir cmake3 -P builddir/bindings/python2/cmake_install.cmake
-%endif
-
+# Move the python modules to sitearch/sitelib
mkdir -p %{buildroot}%{python2_sitearch}
-mv $tmpdir%{_libdir}/%{name}/libPyROOT.so.%{version} \
- %{buildroot}%{python2_sitearch}/libPyROOT.so
-mv $tmpdir%{_libdir}/%{name}/libPyROOT.rootmap \
- %{buildroot}%{python2_sitearch}/libPyROOT.rootmap
-mv $tmpdir%{_libdir}/%{name}/libPyROOT_rdict.pcm \
- %{buildroot}%{python2_sitearch}/libPyROOT_rdict.pcm
-mv $tmpdir%{_libdir}/%{name}/*.py* %{buildroot}%{python2_sitearch}
-rm -rf $tmpdir
+cp -pr %{buildroot}%{_libdir}/%{name}/cppyy %{buildroot}%{python2_sitearch}
+ln -s ../../root/libcppyy%{python3_version_uscore}.so.%{version} \
+ %{buildroot}%{python2_sitearch}/libcppyy%{python2_version_uscore}.so
-# Create empty .egg-info files so that rpm auto-generates provides
-touch %{buildroot}%{python2_sitearch}/ROOT-%{version}.egg-info
+cp -pr %{buildroot}%{_libdir}/%{name}/cppyy_backend %{buildroot}%{python2_sitearch}
+ln -s ../../root/libcppyy_backend%{python3_version_uscore}.so.%{version} \
+ %{buildroot}%{python2_sitearch}/libcppyy_backend%{python2_version_uscore}.so
-%endif
+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
-%else
-
-# Move the python modules to sitearch/sitelib
-mkdir -p %{buildroot}%{python2_sitearch}
-mv %{buildroot}%{_libdir}/%{name}/libPyROOT.so.%{version} \
- %{buildroot}%{python2_sitearch}/libPyROOT.so
-mv %{buildroot}%{_libdir}/%{name}/libPyROOT.rootmap \
- %{buildroot}%{python2_sitearch}/libPyROOT.rootmap
-mv %{buildroot}%{_libdir}/%{name}/libPyROOT_rdict.pcm \
- %{buildroot}%{python2_sitearch}/libPyROOT_rdict.pcm
-mv %{buildroot}%{_libdir}/%{name}/libJupyROOT.so.%{version} \
- %{buildroot}%{python2_sitearch}/libJupyROOT.so
-mv %{buildroot}%{_libdir}/%{name}/*.py* %{buildroot}%{python2_sitearch}
-rm %{buildroot}%{_libdir}/%{name}/JupyROOT/README.md
-rm -rf %{buildroot}%{_libdir}/%{name}/JupyROOT/src
-mv %{buildroot}%{_libdir}/%{name}/JupyROOT %{buildroot}%{python2_sitearch}
-rm %{buildroot}%{_libdir}/%{name}/libJupyROOT.so.%{libversion}
-rm %{buildroot}%{_libdir}/%{name}/libJupyROOT.so
+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}
-mv %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python2_sitelib}
+cp -pr %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python2_sitelib}
# Create empty .egg-info files so that rpm auto-generates provides
touch %{buildroot}%{python2_sitearch}/ROOT-%{version}.egg-info
touch %{buildroot}%{python2_sitearch}/JupyROOT-%{version}.egg-info
touch %{buildroot}%{python2_sitelib}/JsMVA-%{version}.egg-info
-tmpdir=`mktemp -d`
-
-%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8
-DESTDIR=$tmpdir cmake -P builddir/bindings/python3/cmake_install.cmake
-%else
-DESTDIR=$tmpdir cmake3 -P builddir/bindings/python3/cmake_install.cmake
%endif
+# Move the python modules to sitearch/sitelib
mkdir -p %{buildroot}%{python3_sitearch}
-mv $tmpdir%{_libdir}/%{name}/libPyROOT.so.%{version} \
- %{buildroot}%{python3_sitearch}/libPyROOT.%{py3_soabi}.so
-mv $tmpdir%{_libdir}/%{name}/libPyROOT.rootmap \
- %{buildroot}%{python3_sitearch}/libPyROOT.rootmap
-mv $tmpdir%{_libdir}/%{name}/libPyROOT_rdict.pcm \
- %{buildroot}%{python3_sitearch}/libPyROOT_rdict.pcm
-mv $tmpdir%{_libdir}/%{name}/libJupyROOT.so.%{version} \
- %{buildroot}%{python3_sitearch}/libJupyROOT.so
-mv $tmpdir%{_libdir}/%{name}/*.py %{buildroot}%{python3_sitearch}
-mv $tmpdir%{_libdir}/%{name}/__pycache__ %{buildroot}%{python3_sitearch}
-rm $tmpdir%{_libdir}/%{name}/JupyROOT/README.md
-rm -rf $tmpdir%{_libdir}/%{name}/JupyROOT/src
-mv $tmpdir%{_libdir}/%{name}/JupyROOT %{buildroot}%{python3_sitearch}
-rm $tmpdir%{_libdir}/%{name}/libJupyROOT.so.%{libversion}
-rm $tmpdir%{_libdir}/%{name}/libJupyROOT.so
-
-mkdir -p %{buildroot}%{python3_sitelib}
-mv $tmpdir%{_libdir}/%{name}/JsMVA %{buildroot}%{python3_sitelib}
-
-rm -rf $tmpdir
-
-# Create empty .egg-info files so that rpm auto-generates provides
-touch %{buildroot}%{python3_sitearch}/ROOT-%{version}.egg-info
-touch %{buildroot}%{python3_sitearch}/JupyROOT-%{version}.egg-info
-touch %{buildroot}%{python3_sitelib}/JsMVA-%{version}.egg-info
-
-%endif
-%if %{?rhel}%{!?rhel:0} == 7
+mv %{buildroot}%{_libdir}/%{name}/cppyy %{buildroot}%{python3_sitearch}
+ln -s ../../root/libcppyy%{python3_version_uscore}.so.%{version} \
+ %{buildroot}%{python3_sitearch}/libcppyy%{python3_version_uscore}.%{py3_soabi}.so
-tmpdir=`mktemp -d`
+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
-DESTDIR=$tmpdir cmake3 -P builddir/bindings/python3oth/cmake_install.cmake
+mv %{buildroot}%{_libdir}/%{name}/ROOT %{buildroot}%{python3_sitearch}
+mv %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python3_version_uscore}.so.%{version} \
+ %{buildroot}%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}.%{py3_soabi}.so
+rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python3_version_uscore}.so.%{libversion}
+rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python3_version_uscore}.so
-mkdir -p %{buildroot}%{python3_other_sitearch}
-mv $tmpdir%{_libdir}/%{name}/libPyROOT.so.%{version} \
- %{buildroot}%{python3_other_sitearch}/libPyROOT.%{py3_other_soabi}.so
-mv $tmpdir%{_libdir}/%{name}/libPyROOT.rootmap \
- %{buildroot}%{python3_other_sitearch}/libPyROOT.rootmap
-mv $tmpdir%{_libdir}/%{name}/libPyROOT_rdict.pcm \
- %{buildroot}%{python3_other_sitearch}/libPyROOT_rdict.pcm
-mv $tmpdir%{_libdir}/%{name}/libJupyROOT.so.%{version} \
- %{buildroot}%{python3_other_sitearch}/libJupyROOT.so
-mv $tmpdir%{_libdir}/%{name}/*.py %{buildroot}%{python3_other_sitearch}
-mv $tmpdir%{_libdir}/%{name}/__pycache__ %{buildroot}%{python3_other_sitearch}
-rm $tmpdir%{_libdir}/%{name}/JupyROOT/README.md
-rm -rf $tmpdir%{_libdir}/%{name}/JupyROOT/src
-mv $tmpdir%{_libdir}/%{name}/JupyROOT %{buildroot}%{python3_other_sitearch}
-rm $tmpdir%{_libdir}/%{name}/libJupyROOT.so.%{libversion}
-rm $tmpdir%{_libdir}/%{name}/libJupyROOT.so
-
-mkdir -p %{buildroot}%{python3_other_sitelib}
-mv $tmpdir%{_libdir}/%{name}/JsMVA %{buildroot}%{python3_other_sitelib}
+mv %{buildroot}%{_libdir}/%{name}/JupyROOT %{buildroot}%{python3_sitearch}
+mv %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so.%{version} \
+ %{buildroot}%{python3_sitearch}/libJupyROOT%{python3_version_uscore}.%{py3_soabi}.so
+rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so.%{libversion}
+rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so
-rm -rf $tmpdir
+mkdir -p %{buildroot}%{python3_sitelib}
+mv %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python3_sitelib}
# Create empty .egg-info files so that rpm auto-generates provides
-touch %{buildroot}%{python3_other_sitearch}/ROOT-%{version}.egg-info
-touch %{buildroot}%{python3_other_sitearch}/JupyROOT-%{version}.egg-info
-touch %{buildroot}%{python3_other_sitelib}/JsMVA-%{version}.egg-info
-
-%endif
+touch %{buildroot}%{python3_sitearch}/ROOT-%{version}.egg-info
+touch %{buildroot}%{python3_sitearch}/JupyROOT-%{version}.egg-info
+touch %{buildroot}%{python3_sitelib}/JsMVA-%{version}.egg-info
# Put jupyter stuff in the right places
mkdir -p %{buildroot}%{_datadir}/jupyter/kernels
-%if ! %{py3default}
+%if %{buildpy2}
cp -pr %{buildroot}%{_datadir}/%{name}/notebook/kernels/root \
%{buildroot}%{_datadir}/jupyter/kernels/python2-jupyroot
sed -e 's/ROOT C++/& (Python 2)/' \
@@ -2406,16 +2199,6 @@ sed -e 's/ROOT C++/& (Python 3)/' \
sed -e '/^\#!/d' \
-i %{buildroot}%{python3_sitearch}/JupyROOT/kernel/rootkernel.py
-%if %{?rhel}%{!?rhel:0} == 7
-cp -pr %{buildroot}%{_datadir}/%{name}/notebook/kernels/root \
- %{buildroot}%{_datadir}/jupyter/kernels/python%{python3_other_pkgversion}-jupyroot
-sed -e 's/ROOT C++/& (Python %{python3_other_version})/' \
- -e 's!python[0-9]*\.[0-9]*!%{__python3_other}!' \
- -i %{buildroot}%{_datadir}/jupyter/kernels/python%{python3_other_pkgversion}-jupyroot/kernel.json
-sed -e '/^\#!/d' \
- -i %{buildroot}%{python3_other_sitearch}/JupyROOT/kernel/rootkernel.py
-%endif
-
rm -rf %{buildroot}%{_datadir}/%{name}/notebook/custom
rm -rf %{buildroot}%{_datadir}/%{name}/notebook/html
rm -rf %{buildroot}%{_datadir}/%{name}/notebook/kernels
@@ -2438,7 +2221,7 @@ EOF
# Avoid /usr/bin/env shebangs (and adapt cli to cmdLineUtils location)
sed -e 's!/usr/bin/env bash!/bin/bash!' -i %{buildroot}%{_bindir}/root-config
-sed -e 's!/usr/bin/env python.*!%{__pythondef}!' \
+sed -e 's!/usr/bin/env python.*!%{__python3}!' \
-e '/import sys/d' \
-e '/import cmdLineUtils/iimport sys' \
-e '/import cmdLineUtils/isys.path.insert(0, "%{_datadir}/%{name}/cli")' \
@@ -2451,9 +2234,9 @@ sed -e 's!/usr/bin/env python.*!%{__pythondef}!' \
%{buildroot}%{_bindir}/rootprint \
%{buildroot}%{_bindir}/rootrm \
%{buildroot}%{_bindir}/rootslimtree
-sed -e 's!/usr/bin/env python.*!%{__pythondef}!' \
+sed -e 's!/usr/bin/env python.*!%{__python3}!' \
-i %{buildroot}%{_bindir}/rootdrawtree
-sed -e 's!/usr/bin/env python!%{__pythondef}!' \
+sed -e 's!/usr/bin/env python!%{__python3}!' \
-i %{buildroot}%{_datadir}/%{name}/dictpch/makepch.py \
%{buildroot}%{_pkgdocdir}/tutorials/histfactory/example.py \
%{buildroot}%{_pkgdocdir}/tutorials/histfactory/makeQuickModel.py \
@@ -2491,6 +2274,9 @@ rm TGuiFactory/P030_TWebGuiFactory.C
rm TSQLServer/P040_TOracleServer.C
rm TSystem/P030_TAlienSystem.C
rm TVirtualGeoConverter/P010_TGeoVGConverter.C
+%if %{root7} == 0
+rm TVirtualGeoPainter/P020_REveGeoPainter.C
+%endif
rm TVirtualGLImp/P020_TGWin32GL.C
rm TVirtualMonitoringWriter/P010_TMonaLisaWriter.C
rm TVirtualX/P030_TGWin32.C
@@ -2539,22 +2325,53 @@ for x in df014_CsvDataSource_MuRun2010B_cpp.csv \
ln -sf ../../files/tutorials/df014_CsvDataSource_MuRun2010B.csv $x
done
# Create the py-hsimple.root file in advance (needed as input)
-ROOTIGNOREPREFIX=1 PATH=${PWD}/../../builddir/bin:${PATH} \
- ROOTSYS=${PWD}/../../builddir \
- LD_LIBRARY_PATH=${PWD}/../../builddir/lib \
- PYTHONPATH=${PWD}/../../builddir/lib \
- %{__pythondef} ../../tutorials/pyroot/hsimple.py
-ROOTIGNOREPREFIX=1 PATH=${PWD}/../../builddir/bin:${PATH} \
- ROOTSYS=${PWD}/../../builddir \
- LD_LIBRARY_PATH=${PWD}/../../builddir/lib \
- PYTHONPATH=${PWD}/../../builddir/lib \
- make DOXYGEN_OUTPUT_DIRECTORY=${PWD}/doc PYTHON_EXECUTABLE=%{__pythondef}
+ROOTIGNOREPREFIX=1 PATH=${PWD}/../../%{_vpath_builddir}/bin:${PATH} \
+ ROOTSYS=${PWD}/../../%{_vpath_builddir} \
+ LD_LIBRARY_PATH=${PWD}/../../%{_vpath_builddir}/lib \
+ PYTHONPATH=${PWD}/../../%{_vpath_builddir}/lib \
+ %{__python3} ../../tutorials/pyroot/hsimple.py
+ROOTIGNOREPREFIX=1 PATH=${PWD}/../../%{_vpath_builddir}/bin:${PATH} \
+ ROOTSYS=${PWD}/../../%{_vpath_builddir} \
+ LD_LIBRARY_PATH=${PWD}/../../%{_vpath_builddir}/lib \
+ PYTHONPATH=${PWD}/../../%{_vpath_builddir}/lib \
+ make DOXYGEN_OUTPUT_DIRECTORY=${PWD}/doc PYTHON_EXECUTABLE=%{__python3}
mv doc/html %{buildroot}%{_pkgdocdir}/html
popd
+# Workaround for doxygen 1.8.17 and 1.8.18 doing slightly different things
+# on 32 and 64 bit
+doxver=$(doxygen -v)
+if [ "$doxver" = "1.8.17" -o "$doxver" = "1.8.18" ] ; then
+ for f in \
+ classDouble__t.html \
+ classPdfCacheElem.html \
+ classPdfCacheElem__inherit__graph.map \
+ classPdfCacheElem__inherit__graph.md5 \
+ classPdfCacheElem__inherit__graph.svg \
+ classROOT_1_1Experimental_1_1REveMagFieldDuo__coll__graph_org.svg \
+ classROOT_1_1Fit_1_1BasicFCN__coll__graph_org.svg \
+ classROOT_1_1Math_1_1MemGradFunHandler__coll__graph_org.svg \
+ classTAttImage__coll__graph_org.svg \
+ classTImagePalette__coll__graph_org.svg \
+ inherit_graph_1796.map \
+ inherit_graph_1796.md5 \
+ inherit_graph_1796.svg \
+ structEvent__t__coll__graph_org.svg \
+ structGLUvertex__coll__graph_org.svg \
+ structROOT_1_1Experimental_1_1REveBoxSet_1_1BEllipticCone__t__coll__graph_org.svg \
+ structROOT_1_1Internal_1_1RootCling_1_1DriverConfig__coll__graph_org.svg \
+ structTEveDigitSet_1_1DigitBase__t__inherit__graph.map \
+ structTEveDigitSet_1_1DigitBase__t__inherit__graph.md5 \
+ structTEveDigitSet_1_1DigitBase__t__inherit__graph.svg \
+ structTGL5DPainter_1_1Surf__t__coll__graph_org.svg ; do
+ [ -r %{buildroot}%{_pkgdocdir}/html/${f} ] || \
+ touch %{buildroot}%{_pkgdocdir}/html/${f}
+ done
+fi
+
# Create includelist files ...
-for f in `find builddir -name cmake_install.cmake -a '!' -path '*/llvm/*'` ; do
- l=`sed 's!builddir/\(.*\)/cmake_install.cmake!includelist-\1!' <<< $f`
+for f in `find %{_vpath_builddir} -name cmake_install.cmake -a '!' -path '*/llvm/*'` ; do
+ l=`sed 's!%{_vpath_builddir}/\(.*\)/cmake_install.cmake!includelist-\1!' <<< $f`
l=`tr / - <<< $l`
tmpdir=`mktemp -d`
%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8
@@ -2570,10 +2387,11 @@ done
cat includelist-core-{[^mw],m[^au]}* > includelist-core
cat includelist-geom-geom* > includelist-geom
cat includelist-graf2d-x11ttf >> includelist-graf2d-x11
+cat includelist-graf3d-rglew >> includelist-graf3d-gl
cat includelist-net-netx* > includelist-netx
%check
-pushd builddir
+pushd %{_vpath_builddir}
pushd test
ln -s ../../files files
popd
@@ -2651,6 +2469,10 @@ popd
# - tutorial-tmva-tmva103_Application
# reads input data over network
# http://root.cern/files/tmva101.root
+#
+# - pyunittests-pyroot-numbadeclare
+# - tutorial-pyroot-pyroot004_NumbaDeclare-py
+# these tests require the numba python module which is not available
excluded="\
test-stressIOPlugins|\
tutorial-dataframe-df101_h1Analysis|\
@@ -2675,7 +2497,9 @@ gtest-tmva-tmva-test-rreader|\
gtest-tmva-tmva-test-rstandardscaler|\
tutorial-tmva-tmva003_RReader|\
tutorial-tmva-tmva004_RStandardScaler|\
-tutorial-tmva-tmva103_Application"
+tutorial-tmva-tmva103_Application|\
+pyunittests-pyroot-numbadeclare|\
+tutorial-pyroot-pyroot004_NumbaDeclare-py"
%ifarch %{ix86} %{arm}
# Tests failing on 32 bit architectures (dataframe)
@@ -2683,6 +2507,7 @@ tutorial-tmva-tmva103_Application"
# - gtest-tree-dataframe-test-dataframe-cache
# - gtest-tree-dataframe-test-dataframe-callbacks
# - gtest-tree-dataframe-test-dataframe-colnames
+# - gtest-tree-dataframe-test-dataframe-display
# - gtest-tree-dataframe-test-dataframe-friends
# - gtest-tree-dataframe-test-dataframe-helpers
# - gtest-tree-dataframe-test-dataframe-interface
@@ -2695,6 +2520,7 @@ excluded="${excluded}|\
gtest-tree-dataframe-test-dataframe-cache|\
gtest-tree-dataframe-test-dataframe-callbacks|\
gtest-tree-dataframe-test-dataframe-colnames|\
+gtest-tree-dataframe-test-dataframe-display|\
gtest-tree-dataframe-test-dataframe-friends|\
gtest-tree-dataframe-test-dataframe-helpers|\
gtest-tree-dataframe-test-dataframe-interface|\
@@ -2720,6 +2546,13 @@ excluded="${excluded}|tutorial-roofit-rf611_weightedfits"
%endif
%endif
+%ifarch %{power64} aarch64
+# This test fails on ppc64le and aarch64 (but not on x86_64)
+# The interpreted version works though, only compiled version fails
+# - test-stresshistofit
+excluded="${excluded}|test-stresshistofit"
+%endif
+
make test ARGS="%{?_smp_mflags} --output-on-failure -E \"${excluded}\""
popd
@@ -2742,142 +2575,20 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor >/dev/null 2>&1 || :
%endif
%if %{buildpy2}
-
-%post -n python2-%{name}
+%pre -n python2-%{name}
if [ -r /var/lib/alternatives/libPyROOT.so ] ; then
- grep -q %{_libdir}/%{name}/libPyROOT.so.%{version} \
- /var/lib/alternatives/libPyROOT.so || \
- sed 's!\(%{_libdir}/%{name}/libPyROOT\.so\.\).*!\1%{version}!' \
- -i /var/lib/alternatives/libPyROOT.so
- for alt in `grep python2 /var/lib/alternatives/libPyROOT.so` ; do
- if [ "$alt" != "%{python2_sitearch}/libPyROOT.so" ] ; then
- %{_sbindir}/update-alternatives --remove libPyROOT.so $alt
- fi
+ for alt in `grep python2.*/.*.so /var/lib/alternatives/libPyROOT.so` ; do
+ %{_sbindir}/update-alternatives --remove libPyROOT.so $alt
done
fi
-for f in libPyROOT.rootmap libPyROOT_rdict.pcm ; do
- if [ -r %{_libdir}/%{name}/$f -a ! -h %{_libdir}/%{name}/$f ]; then
- rm %{_libdir}/%{name}/$f
- fi
-done
-%{_sbindir}/update-alternatives \
- --install %{_libdir}/%{name}/libPyROOT.so.%{version} libPyROOT.so \
- %{python2_sitearch}/libPyROOT.so %{py2prio} \
- --slave %{_libdir}/%{name}/libPyROOT.rootmap libPyROOT.rootmap \
- %{python2_sitearch}/libPyROOT.rootmap \
- --slave %{_libdir}/%{name}/libPyROOT_rdict.pcm libPyROOT_rdict.pcm \
- %{python2_sitearch}/libPyROOT_rdict.pcm
-%{?ldconfig}
-
-%preun -n python2-%{name}
-if [ $1 = 0 ] ; then
- %{_sbindir}/update-alternatives --remove \
- libPyROOT.so %{python2_sitearch}/libPyROOT.so
-fi
-
-%ldconfig_postun -n python2-%{name}
-
-%triggerpostun -n python2-%{name} -- %{name}-python
-# Uninstalling the old %{name}-python will remove the alternatives
-# for python2-%{name} - put them back in this triggerpostun script
-%{_sbindir}/update-alternatives \
- --install %{_libdir}/%{name}/libPyROOT.so.%{version} libPyROOT.so \
- %{python2_sitearch}/libPyROOT.so %{py2prio} \
- --slave %{_libdir}/%{name}/libPyROOT.rootmap libPyROOT.rootmap \
- %{python2_sitearch}/libPyROOT.rootmap \
- --slave %{_libdir}/%{name}/libPyROOT_rdict.pcm libPyROOT_rdict.pcm \
- %{python2_sitearch}/libPyROOT_rdict.pcm
-%{?ldconfig}
-
%endif
-%post -n python%{python3_pkgversion}-%{name}
+%pre -n python%{python3_pkgversion}-%{name}
if [ -r /var/lib/alternatives/libPyROOT.so ] ; then
- grep -q %{_libdir}/%{name}/libPyROOT.so.%{version} \
- /var/lib/alternatives/libPyROOT.so || \
- sed 's!\(%{_libdir}/%{name}/libPyROOT\.so\.\).*!\1%{version}!' \
- -i /var/lib/alternatives/libPyROOT.so
- for alt in `grep python3 /var/lib/alternatives/libPyROOT.so` ; do
-%if %{?rhel}%{!?rhel:0} == 7
- if [ "$alt" != "%{python3_sitearch}/libPyROOT.%{py3_soabi}.so" ] && \
- [ "$alt" != "%{python3_other_sitearch}/libPyROOT.%{py3_other_soabi}.so" ] ; then
-%else
- if [ "$alt" != "%{python3_sitearch}/libPyROOT.%{py3_soabi}.so" ] ; then
-%endif
- %{_sbindir}/update-alternatives --remove libPyROOT.so $alt
- fi
- done
-fi
-for f in libPyROOT.rootmap libPyROOT_rdict.pcm ; do
- if [ -r %{_libdir}/%{name}/$f -a ! -h %{_libdir}/%{name}/$f ]; then
- rm %{_libdir}/%{name}/$f
- fi
-done
-%{_sbindir}/update-alternatives \
- --install %{_libdir}/%{name}/libPyROOT.so.%{version} libPyROOT.so \
- %{python3_sitearch}/libPyROOT.%{py3_soabi}.so %{py3prio} \
- --slave %{_libdir}/%{name}/libPyROOT.rootmap libPyROOT.rootmap \
- %{python3_sitearch}/libPyROOT.rootmap \
- --slave %{_libdir}/%{name}/libPyROOT_rdict.pcm libPyROOT_rdict.pcm \
- %{python3_sitearch}/libPyROOT_rdict.pcm
-%{?ldconfig}
-
-%preun -n python%{python3_pkgversion}-%{name}
-if [ $1 = 0 ] ; then
- %{_sbindir}/update-alternatives --remove \
- libPyROOT.so %{python3_sitearch}/libPyROOT.%{py3_soabi}.so
-fi
-
-%ldconfig_postun -n python%{python3_pkgversion}-%{name}
-
-%triggerpostun -n python%{python3_pkgversion}-%{name} -- %{name}-python%{python3_pkgversion}
-# Uninstalling the old %{name}-python%{python3_pkgversion} will remove the alternatives
-# for python%{python3_pkgversion}-%{name} - put them back in this triggerpostun script
-%{_sbindir}/update-alternatives \
- --install %{_libdir}/%{name}/libPyROOT.so.%{version} libPyROOT.so \
- %{python3_sitearch}/libPyROOT.%{py3_soabi}.so %{py3prio} \
- --slave %{_libdir}/%{name}/libPyROOT.rootmap libPyROOT.rootmap \
- %{python3_sitearch}/libPyROOT.rootmap \
- --slave %{_libdir}/%{name}/libPyROOT_rdict.pcm libPyROOT_rdict.pcm \
- %{python3_sitearch}/libPyROOT_rdict.pcm
-%{?ldconfig}
-
-%if %{?rhel}%{!?rhel:0} == 7
-%post -n python%{python3_other_pkgversion}-%{name}
-if [ -r /var/lib/alternatives/libPyROOT.so ] ; then
- grep -q %{_libdir}/%{name}/libPyROOT.so.%{version} \
- /var/lib/alternatives/libPyROOT.so || \
- sed 's!\(%{_libdir}/%{name}/libPyROOT\.so\.\).*!\1%{version}!' \
- -i /var/lib/alternatives/libPyROOT.so
- for alt in `grep python3 /var/lib/alternatives/libPyROOT.so` ; do
- if [ "$alt" != "%{python3_sitearch}/libPyROOT.%{py3_soabi}.so" ] && \
- [ "$alt" != "%{python3_other_sitearch}/libPyROOT.%{py3_other_soabi}.so" ] ; then
- %{_sbindir}/update-alternatives --remove libPyROOT.so $alt
- fi
+ for alt in `grep python3.*/.*.so /var/lib/alternatives/libPyROOT.so` ; do
+ %{_sbindir}/update-alternatives --remove libPyROOT.so $alt
done
fi
-for f in libPyROOT.rootmap libPyROOT_rdict.pcm ; do
- if [ -r %{_libdir}/%{name}/$f -a ! -h %{_libdir}/%{name}/$f ]; then
- rm %{_libdir}/%{name}/$f
- fi
-done
-%{_sbindir}/update-alternatives \
- --install %{_libdir}/%{name}/libPyROOT.so.%{version} libPyROOT.so \
- %{python3_other_sitearch}/libPyROOT.%{py3_other_soabi}.so 5 \
- --slave %{_libdir}/%{name}/libPyROOT.rootmap libPyROOT.rootmap \
- %{python3_other_sitearch}/libPyROOT.rootmap \
- --slave %{_libdir}/%{name}/libPyROOT_rdict.pcm libPyROOT_rdict.pcm \
- %{python3_other_sitearch}/libPyROOT_rdict.pcm
-%{?ldconfig}
-
-%preun -n python%{python3_other_pkgversion}-%{name}
-if [ $1 = 0 ] ; then
- %{_sbindir}/update-alternatives --remove \
- libPyROOT.so %{python3_other_sitearch}/libPyROOT.%{py3_other_soabi}.so
-fi
-
-%ldconfig_postun -n python%{python3_other_pkgversion}-%{name}
-%endif
%post notebook
mkdir -p /etc/jupyter
@@ -2906,6 +2617,11 @@ fi
%ldconfig_scriptlets multiproc
%ldconfig_scriptlets cling
+%ldconfig_scriptlets tpython
+%if %{buildpy2}
+%ldconfig_scriptlets -n python2-%{name}
+%endif
+%ldconfig_scriptlets -n python%{python3_pkgversion}-%{name}
%ldconfig_scriptlets r
%ldconfig_scriptlets r-tools
%ldconfig_scriptlets genetic
@@ -2996,6 +2712,7 @@ fi
%ldconfig_scriptlets graf-gpadv7
%ldconfig_scriptlets graf-primitives
%ldconfig_scriptlets graf3d-eve7
+%ldconfig_scriptlets gui-browsable
%ldconfig_scriptlets gui-browserv7
%ldconfig_scriptlets gui-canvaspainter
%ldconfig_scriptlets gui-fitpanelv7
@@ -3035,6 +2752,12 @@ fi
%files fonts
%{_datadir}/%{name}/fonts
+%files doc
+%doc %{_pkgdocdir}/html
+
+%files tutorial
+%doc %{_pkgdocdir}/tutorials
+
%files core -f includelist-core
%{_bindir}/memprobe
%{_bindir}/rmkdepend
@@ -3061,6 +2784,7 @@ fi
%{_datadir}/%{name}/gdb-backtrace.sh
%{_datadir}/%{name}/gitinfo.txt
%{_datadir}/%{name}/helgrind-root.supp
+%{_datadir}/%{name}/lsan-root.supp
%{_datadir}/%{name}/Makefile.arch
%{_datadir}/%{name}/root.mimes
%{_datadir}/%{name}/system.rootauthrc
@@ -3111,98 +2835,58 @@ fi
%doc interpreter/llvm/src/llvm-README.txt
%license interpreter/llvm/src/llvm-LICENSE.TXT
-%files doc
-%doc %{_pkgdocdir}/html
-
-%files tutorial
-%doc %{_pkgdocdir}/tutorials
+%files tpython -f includelist-bindings-tpython
+%{_libdir}/%{name}/libROOTTPython.*
+%{_libdir}/%{name}/libROOTTPython_rdict.pcm
%if %{buildpy2}
-%files -n python2-%{name} -f includelist-bindings-pyroot
-%ghost %{_libdir}/%{name}/libPyROOT.rootmap
-%{_libdir}/%{name}/libPyROOT.so
-%{_libdir}/%{name}/libPyROOT.so.%{libversion}
-%ghost %{_libdir}/%{name}/libPyROOT.so.%{version}
-%ghost %{_libdir}/%{name}/libPyROOT_rdict.pcm
-%{python2_sitearch}/libPyROOT.rootmap
-%{python2_sitearch}/libPyROOT.so
-%{python2_sitearch}/libPyROOT_rdict.pcm
-%{python2_sitearch}/ROOT.py*
+%files -n python2-%{name}
+%{python2_sitearch}/cppyy
+%{python2_sitearch}/cppyy_backend
+%{python2_sitearch}/ROOT
%{python2_sitearch}/ROOT-*.egg-info
-%{python2_sitearch}/cppyy.py*
-%{python2_sitearch}/_pythonization.py*
-%{python2_sitearch}/_rdf_utils.py*
-%endif
+%{python2_sitearch}/libcppyy%{python2_version_uscore}.so
+%{python2_sitearch}/libcppyy_backend%{python2_version_uscore}.so
+%{python2_sitearch}/libROOTPythonizations%{python2_version_uscore}.so
+%{_libdir}/%{name}/libcppyy%{python2_version_uscore}.*
+%{_libdir}/%{name}/libcppyy_backend%{python2_version_uscore}.*
+%{_includedir}/%{name}/CPyCppyy
-%if ! %{py3default}
%files -n python2-jupyroot
%{python2_sitearch}/JupyROOT
%{python2_sitearch}/JupyROOT-*.egg-info
-%{python2_sitearch}/libJupyROOT.so
+%{python2_sitearch}/libJupyROOT%{python2_version_uscore}.so
%{_datadir}/jupyter/kernels/python2-jupyroot
-%doc bindings/pyroot/JupyROOT/README.md
+%doc bindings/jupyroot/README.md
%files -n python2-jsmva
%{python2_sitelib}/JsMVA
%{python2_sitelib}/JsMVA-*.egg-info
%endif
-%files -n python%{python3_pkgversion}-%{name} -f includelist-bindings-pyroot
-%ghost %{_libdir}/%{name}/libPyROOT.rootmap
-%{_libdir}/%{name}/libPyROOT.so
-%{_libdir}/%{name}/libPyROOT.so.%{libversion}
-%ghost %{_libdir}/%{name}/libPyROOT.so.%{version}
-%ghost %{_libdir}/%{name}/libPyROOT_rdict.pcm
-%{python3_sitearch}/libPyROOT.rootmap
-%{python3_sitearch}/libPyROOT.%{py3_soabi}.so
-%{python3_sitearch}/libPyROOT_rdict.pcm
-%{python3_sitearch}/ROOT.py
+%files -n python%{python3_pkgversion}-%{name}
+%{python3_sitearch}/cppyy
+%{python3_sitearch}/cppyy_backend
+%{python3_sitearch}/ROOT
%{python3_sitearch}/ROOT-*.egg-info
-%{python3_sitearch}/cppyy.py
-%{python3_sitearch}/_pythonization.py
-%{python3_sitearch}/_rdf_utils.py
-%{python3_sitearch}/__pycache__/*
+%{python3_sitearch}/libcppyy%{python3_version_uscore}.%{py3_soabi}.so
+%{python3_sitearch}/libcppyy_backend%{python3_version_uscore}.so
+%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}.%{py3_soabi}.so
+%{_libdir}/%{name}/libcppyy%{python3_version_uscore}.*
+%{_libdir}/%{name}/libcppyy_backend%{python3_version_uscore}.*
+%{_includedir}/%{name}/CPyCppyy
%files -n python%{python3_pkgversion}-jupyroot
%{python3_sitearch}/JupyROOT
%{python3_sitearch}/JupyROOT-*.egg-info
-%{python3_sitearch}/libJupyROOT.so
+%{python3_sitearch}/libJupyROOT%{python3_version_uscore}.%{py3_soabi}.so
%{_datadir}/jupyter/kernels/python%{python3_pkgversion}-jupyroot
-%doc bindings/pyroot/JupyROOT/README.md
+%doc bindings/jupyroot/README.md
%files -n python%{python3_pkgversion}-jsmva
%{python3_sitelib}/JsMVA
%{python3_sitelib}/JsMVA-*.egg-info
-%if %{?rhel}%{!?rhel:0} == 7
-%files -n python%{python3_other_pkgversion}-%{name} -f includelist-bindings-pyroot
-%ghost %{_libdir}/%{name}/libPyROOT.rootmap
-%{_libdir}/%{name}/libPyROOT.so
-%{_libdir}/%{name}/libPyROOT.so.%{libversion}
-%ghost %{_libdir}/%{name}/libPyROOT.so.%{version}
-%ghost %{_libdir}/%{name}/libPyROOT_rdict.pcm
-%{python3_other_sitearch}/libPyROOT.rootmap
-%{python3_other_sitearch}/libPyROOT.%{py3_other_soabi}.so
-%{python3_other_sitearch}/libPyROOT_rdict.pcm
-%{python3_other_sitearch}/ROOT.py
-%{python3_other_sitearch}/ROOT-*.egg-info
-%{python3_other_sitearch}/cppyy.py
-%{python3_other_sitearch}/_pythonization.py
-%{python3_other_sitearch}/_rdf_utils.py
-%{python3_other_sitearch}/__pycache__/*
-
-%files -n python%{python3_other_pkgversion}-jupyroot
-%{python3_other_sitearch}/JupyROOT
-%{python3_other_sitearch}/JupyROOT-*.egg-info
-%{python3_other_sitearch}/libJupyROOT.so
-%{_datadir}/jupyter/kernels/python%{python3_other_pkgversion}-jupyroot
-%doc bindings/pyroot/JupyROOT/README.md
-
-%files -n python%{python3_other_pkgversion}-jsmva
-%{python3_other_sitelib}/JsMVA
-%{python3_other_sitelib}/JsMVA-*.egg-info
-%endif
-
%files r -f includelist-bindings-r
%{_libdir}/%{name}/libRInterface.*
%{_libdir}/%{name}/libRInterface_rdict.pcm
@@ -3750,6 +3434,16 @@ fi
%files graf3d-eve7 -f includelist-graf3d-eve7
%{_libdir}/%{name}/libROOTEve.*
%{_libdir}/%{name}/libROOTEve_rdict.pcm
+%{_datadir}/%{name}/plugins/TVirtualGeoPainter/P020_REveGeoPainter.C
+
+%files gui-browsable -f includelist-gui-browsable
+%{_libdir}/%{name}/libROOTBrowsable.*
+%{_libdir}/%{name}/libROOTBrowsable_rdict.pcm
+%{_libdir}/%{name}/libROOTHistDrawProvider.*
+%{_libdir}/%{name}/libROOTLeafDraw6Provider.*
+%{_libdir}/%{name}/libROOTLeafDraw7Provider.*
+%{_libdir}/%{name}/libROOTObjectDraw6Provider.*
+%{_libdir}/%{name}/libROOTObjectDraw7Provider.*
%files gui-browserv7 -f includelist-gui-browserv7
%{_libdir}/%{name}/libROOTBrowserv7.*
@@ -3791,7 +3485,34 @@ fi
%endif
%changelog
-* Thu Jul 11 2020 Jeff Law <law(a)redhat.com> - 6.20.06-2
+* Tue Jul 14 2020 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.22.00-1
+- Update to 6.22.00
+- Drop patches accepted upstream
+ - root-FitData-assert-fix.patch
+ - root-clang-altivec-vector.patch
+ - root-format-fix.patch
+ - root-moved-file.patch
+ - root-xmlmodify-dep.patch
+- New and improved Python bindings
+- The new Python bindings can be built for both Python 2 and Python 3
+ out of the box. Dropped the workaround in specfile for this (EPEL 7)
+- Dropped the python3-other packages (EPEL 7)
+- The new Python bindings has split the TPython interface to a separate
+ library. Now in a separate root-tpython package
+- root-tpython and root-tmva-python are now using Python 3 on EPEL 7
+- New subpackage root-gui-browsable
+- New patches (submitted upstream)
+ - Fix too aggressive -Werror replacements
+ - Add missing call to TFile::SetCacheFileDir in a TMVA tutorial
+ - Adjust stressGraphics.ref
+ - Fix off-by-one error in histogram v7 bin iterator
+ - Compatibility with python 2.7 versions before 2.7.9
+ - Fix the RNTuple.LargeFile test on 32bit (i386 and armv7hf)
+ - Fix doxygen issues
+ - Fix bad regex in TProofMgr
+ - Compatibility with xrootd 5
+
+* Sat Jul 11 2020 Jeff Law <law(a)redhat.com> - 6.20.06-2
- Disable LTO
* Thu Jun 11 2020 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.20.06-1
diff --git a/sources b/sources
index 86bdac6..b6ae6df 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (root-6.20.06.tar.xz) = 791f472cb40200c5f8b79efd1803044914bb8e41dc1f424e90508c059d548be7913417a08a770e0f041c9070af8dc6bbddf5366c3db2b1dac43d417992aade22
-SHA512 (root-testfiles.tar.xz) = 7006c6591b587c24cf75dc4f6ed9586165b27102539fdde580d0a95853fcec7e9980a881e49e64a09f90af341a8c8fd2f493305ed88e07af144fabd438ba283e
+SHA512 (root-6.22.00.tar.xz) = ca2f72d691619d8afadd3c20f7e3b19d4a12f9f5a38bda340ee4c9fd10993c78db4016a1904851c75478657d971a72f18ad4b1f1bdf61da8be8a0e6de0e1753a
+SHA512 (root-testfiles.tar.xz) = 945aef1a0cf5af672d4ab84b0ac00b76118e93008ff72447658ee82d9e955a1540af3ff7126e701418872f1d91b92ee96d4985840a519036c42732023a13f00f
commit 4dabf92f1ed69fa9f2d03bd86fbe1a6ed485b012
Author: Jeff Law <law(a)redhat.com>
Date: Sat Jul 11 11:24:46 2020 -0600
Disable LTO
diff --git a/root.spec b/root.spec
index 60eba85..2929aa2 100644
--- a/root.spec
+++ b/root.spec
@@ -51,7 +51,7 @@
Name: root
Version: 6.20.06
%global libversion %(cut -d. -f 1-2 <<< %{version})
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Numerical data analysis framework
License: LGPLv2+
@@ -1917,6 +1917,10 @@ rm etc/notebook/JsMVA/js/*.min.js
rm etc/notebook/JsMVA/css/*.min.css
%build
+# This package triggers a fault in LLVM when LTO is enabled. Until LLVM
+# is analyzed and fixed, disable LTO
+%define _lto_cflags %{nil}
+
unset QTDIR
unset QTLIB
unset QTINC
@@ -3787,6 +3791,9 @@ fi
%endif
%changelog
+* Thu Jul 11 2020 Jeff Law <law(a)redhat.com> - 6.20.06-2
+- Disable LTO
+
* Thu Jun 11 2020 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.20.06-1
- Update to 6.20.06
- Fix test failure on ppc64le and aarch64
3 years, 11 months
Architecture specific change in rpms/root.git
by githook-noreply@fedoraproject.org
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=b2cd7526352f1....
Change:
+%ifarch %{power64} aarch64
Thanks.
Full change:
============
commit b2cd7526352f1e83dddc9407a3b723e246ab6223
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Wed Jul 15 04:44:51 2020 +0200
Update to 6.22.00
Drop patches accepted upstream
root-FitData-assert-fix.patch
root-clang-altivec-vector.patch
root-format-fix.patch
root-moved-file.patch
root-xmlmodify-dep.patch
New and improved Python bindings
The new Python bindings can be built for both Python 2 and Python 3
out of the box. Dropped the workaround in specfile for this (EPEL 7)
Dropped the python3-other packages (EPEL 7)
The new Python bindings has split the TPython interface to a separate
library. Now in a separate root-tpython package
root-tpython and root-tmva-python are now using Python 3 on EPEL 7
New subpackage root-gui-browsable
New patches (submitted upstream)
Fix too aggressive -Werror replacements
Add missing call to TFile::SetCacheFileDir in a TMVA tutorial
Adjust stressGraphics.ref
Fix off-by-one error in histogram v7 bin iterator
Compatibility with python 2.7 versions before 2.7.9
Fix the RNTuple.LargeFile test on 32bit (i386 and armv7hf)
Fix doxygen issues
Fix bad regex in TProofMgr
Compatibility with xrootd 5
diff --git a/root-32bit-dataframe.patch b/root-32bit-dataframe.patch
index e47b913..310171f 100644
--- a/root-32bit-dataframe.patch
+++ b/root-32bit-dataframe.patch
@@ -1,6 +1,6 @@
-diff -ur root-6.20.02.orig/bindings/pyroot/ROOT.py root-6.20.02/bindings/pyroot/ROOT.py
---- root-6.20.02.orig/bindings/pyroot/ROOT.py 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/ROOT.py 2020-03-15 19:50:25.303179253 +0100
+diff -ur root-6.22.00.orig/bindings/pyroot_legacy/ROOT.py root-6.22.00/bindings/pyroot_legacy/ROOT.py
+--- root-6.22.00.orig/bindings/pyroot_legacy/ROOT.py 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot_legacy/ROOT.py 2020-06-29 09:07:41.574798580 +0200
@@ -438,9 +438,7 @@
# This function is injected as method to the respective classes in Pythonize.cxx.
_root._RDataFrameAsNumpy = _RDataFrameAsNumpy
@@ -12,9 +12,9 @@ diff -ur root-6.20.02.orig/bindings/pyroot/ROOT.py root-6.20.02/bindings/pyroot/
### RINT command emulation ------------------------------------------------------
-diff -ur root-6.20.02.orig/build/unix/makepchinput.py root-6.20.02/build/unix/makepchinput.py
---- root-6.20.02.orig/build/unix/makepchinput.py 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/build/unix/makepchinput.py 2020-03-15 19:50:25.304179242 +0100
+diff -ur root-6.22.00.orig/build/unix/makepchinput.py root-6.22.00/build/unix/makepchinput.py
+--- root-6.22.00.orig/build/unix/makepchinput.py 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/build/unix/makepchinput.py 2020-06-29 09:07:41.639798769 +0200
@@ -252,9 +252,6 @@
"math/vdt",
"tmva/rmva"]
@@ -25,9 +25,9 @@ diff -ur root-6.20.02.orig/build/unix/makepchinput.py root-6.20.02/build/unix/ma
accepted = isAnyPatternInString(PCHPatternsWhitelist,dirName) and \
not isAnyPatternInString(PCHPatternsBlacklist,dirName)
-diff -ur root-6.20.02.orig/tree/dataframe/test/dataframe_cache.cxx root-6.20.02/tree/dataframe/test/dataframe_cache.cxx
---- root-6.20.02.orig/tree/dataframe/test/dataframe_cache.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/tree/dataframe/test/dataframe_cache.cxx 2020-03-15 19:50:09.075351525 +0100
+diff -ur root-6.22.00.orig/tree/dataframe/test/dataframe_cache.cxx root-6.22.00/tree/dataframe/test/dataframe_cache.cxx
+--- root-6.22.00.orig/tree/dataframe/test/dataframe_cache.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tree/dataframe/test/dataframe_cache.cxx 2020-06-29 09:07:41.640798772 +0200
@@ -224,8 +224,6 @@
}
@@ -37,16 +37,19 @@ diff -ur root-6.20.02.orig/tree/dataframe/test/dataframe_cache.cxx root-6.20.02/
TEST(Cache, Regex)
{
-@@ -334,5 +332,3 @@
-
+@@ -335,8 +333,6 @@
gSystem->Unlink(fileName);
}
--
+
-#endif // R__B64
-diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_arrow.cxx root-6.20.02/tree/dataframe/test/datasource_arrow.cxx
---- root-6.20.02.orig/tree/dataframe/test/datasource_arrow.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/tree/dataframe/test/datasource_arrow.cxx 2020-03-15 19:50:09.075351525 +0100
-@@ -163,8 +163,6 @@
+-
+ // ROOT-10563
+ TEST(Cache, Alias)
+ {
+diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_arrow.cxx root-6.22.00/tree/dataframe/test/datasource_arrow.cxx
+--- root-6.22.00.orig/tree/dataframe/test/datasource_arrow.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tree/dataframe/test/datasource_arrow.cxx 2020-06-29 09:07:41.645798787 +0200
+@@ -177,8 +177,6 @@
}
#endif
@@ -55,15 +58,15 @@ diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_arrow.cxx root-6.20.02
TEST(RArrowDS, FromARDF)
{
std::unique_ptr<RDataSource> tds(new RArrowDS(createTestTable(), {}));
-@@ -236,5 +234,3 @@
+@@ -250,5 +248,3 @@
}
#endif // R__USE_IMT
-
-#endif // R__B64
-diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_csv.cxx root-6.20.02/tree/dataframe/test/datasource_csv.cxx
---- root-6.20.02.orig/tree/dataframe/test/datasource_csv.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/tree/dataframe/test/datasource_csv.cxx 2020-03-15 19:57:05.490930922 +0100
+diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_csv.cxx root-6.22.00/tree/dataframe/test/datasource_csv.cxx
+--- root-6.22.00.orig/tree/dataframe/test/datasource_csv.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tree/dataframe/test/datasource_csv.cxx 2020-06-29 09:07:41.645798787 +0200
@@ -195,8 +195,6 @@
}
#endif
@@ -79,9 +82,9 @@ diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_csv.cxx root-6.20.02/t
#endif // R__USE_IMT
-
-#endif // R__B64
-diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_root.cxx root-6.20.02/tree/dataframe/test/datasource_root.cxx
---- root-6.20.02.orig/tree/dataframe/test/datasource_root.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/tree/dataframe/test/datasource_root.cxx 2020-03-15 19:50:09.076351514 +0100
+diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_root.cxx root-6.22.00/tree/dataframe/test/datasource_root.cxx
+--- root-6.22.00.orig/tree/dataframe/test/datasource_root.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tree/dataframe/test/datasource_root.cxx 2020-06-29 09:07:41.649798799 +0200
@@ -117,8 +117,6 @@
}
#endif
@@ -97,9 +100,9 @@ diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_root.cxx root-6.20.02/
#endif // R__USE_IMT
-
-#endif // R__B64
-diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_trivial.cxx root-6.20.02/tree/dataframe/test/datasource_trivial.cxx
---- root-6.20.02.orig/tree/dataframe/test/datasource_trivial.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/tree/dataframe/test/datasource_trivial.cxx 2020-03-15 19:50:09.076351514 +0100
+diff -ur root-6.22.00.orig/tree/dataframe/test/datasource_trivial.cxx root-6.22.00/tree/dataframe/test/datasource_trivial.cxx
+--- root-6.22.00.orig/tree/dataframe/test/datasource_trivial.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tree/dataframe/test/datasource_trivial.cxx 2020-06-29 09:07:41.654798814 +0200
@@ -132,8 +132,6 @@
EXPECT_EQ(*tdfAll.Count(), 20ULL);
}
@@ -115,10 +118,10 @@ diff -ur root-6.20.02.orig/tree/dataframe/test/datasource_trivial.cxx root-6.20.
#endif // R__USE_IMT
-
-#endif // R__B64
-diff -ur root-6.20.02.orig/tutorials/CMakeLists.txt root-6.20.02/tutorials/CMakeLists.txt
---- root-6.20.02.orig/tutorials/CMakeLists.txt 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/tutorials/CMakeLists.txt 2020-03-15 19:59:35.808335176 +0100
-@@ -255,10 +255,6 @@
+diff -ur root-6.22.00.orig/tutorials/CMakeLists.txt root-6.22.00/tutorials/CMakeLists.txt
+--- root-6.22.00.orig/tutorials/CMakeLists.txt 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tutorials/CMakeLists.txt 2020-06-29 09:07:41.655798816 +0200
+@@ -257,10 +257,6 @@
set(root7_veto v7/ntuple/ntpl004_dimuon.C)
endif()
@@ -129,7 +132,7 @@ diff -ur root-6.20.02.orig/tutorials/CMakeLists.txt root-6.20.02/tutorials/CMake
#---These ones are disabled !!! ------------------------------------
set(extra_veto
legacy/benchmarks.C
-@@ -311,7 +307,6 @@
+@@ -313,7 +309,6 @@
${classic_veto}
${pythia_veto}
${root7_veto}
@@ -137,11 +140,11 @@ diff -ur root-6.20.02.orig/tutorials/CMakeLists.txt root-6.20.02/tutorials/CMake
${xrootd_veto}
${mlp_veto}
${spectrum_veto}
-@@ -513,7 +508,6 @@
+@@ -526,7 +521,6 @@
list(REMOVE_ITEM pytutorials ${pyveto})
if(NOT dataframe)
- set(dataframe_veto_py dataframe/*.py)
file(GLOB dataframe_veto_py RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} dataframe/*.py tmva/tmva*.py)
list(REMOVE_ITEM pytutorials ${dataframe_veto_py})
- list(REMOVE_ITEM pytutorials pyroot/pyroot002_TTreeAsMatrix.py)
+ list(REMOVE_ITEM pytutorials
diff --git a/root-FitData-assert-fix.patch b/root-FitData-assert-fix.patch
deleted file mode 100644
index 8e9ba00..0000000
--- a/root-FitData-assert-fix.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 07c5d640dd53c83c8b3350b520170fd9a5526495 Mon Sep 17 00:00:00 2001
-From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
-Date: Fri, 13 Mar 2020 14:09:07 +0100
-Subject: [PATCH] Correct broken assert statements
-
----
- math/mathcore/src/FitData.cxx | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/math/mathcore/src/FitData.cxx b/math/mathcore/src/FitData.cxx
-index a2be20ab0d..0bad8ff7cd 100644
---- a/math/mathcore/src/FitData.cxx
-+++ b/math/mathcore/src/FitData.cxx
-@@ -200,9 +200,9 @@ namespace ROOT {
- /// dummy virtual destructor
- FitData::~FitData()
- {
-+ assert(fWrapped == fCoords.empty());
- for (unsigned int i = 0; i < fDim; i++) {
-- assert(fWrapped == fCoords.empty());
-- assert(fCoords.empty() || &fCoords[i].front() == fCoordsPtr[i]);
-+ assert(fWrapped || fCoords[i].empty() || &fCoords[i].front() == fCoordsPtr[i]);
- }
- if (fpTmpCoordVector) delete[] fpTmpCoordVector;
-
---
-2.24.1
-
diff --git a/root-clang-altivec-vector.patch b/root-clang-altivec-vector.patch
deleted file mode 100644
index 4648ccc..0000000
--- a/root-clang-altivec-vector.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From f0e7ee696e416f5cb42619889fcbff7db64f17e1 Mon Sep 17 00:00:00 2001
-From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
-Date: Fri, 13 Mar 2020 17:09:03 +0100
-Subject: [PATCH] Fix ppc64le compilation with gcc 10
-
-Backported from llvm upstream
-https://reviews.llvm.org/D74129
----
- interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp b/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp
-index dbe6b4db94..2096ba6982 100644
---- a/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp
-+++ b/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp
-@@ -2373,7 +2373,7 @@ bool Lexer::SkipBlockComment(Token &Result, const char *CurPtr,
- '/', '/', '/', '/', '/', '/', '/', '/'
- };
- while (CurPtr+16 <= BufferEnd &&
-- !vec_any_eq(*(const vector unsigned char*)CurPtr, Slashes))
-+ !vec_any_eq(*(const __vector unsigned char*)CurPtr, Slashes))
- CurPtr += 16;
- #else
- // Scan for '/' quickly. Many block comments are very large.
---
-2.24.1
-
diff --git a/root-doxygen-crash.patch b/root-doxygen-crash.patch
new file mode 100644
index 0000000..b27f5ce
--- /dev/null
+++ b/root-doxygen-crash.patch
@@ -0,0 +1,33 @@
+diff -ur root-6.22.00.orig/tutorials/tmva/tmva003_RReader.C root-6.22.00/tutorials/tmva/tmva003_RReader.C
+--- root-6.22.00.orig/tutorials/tmva/tmva003_RReader.C 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tutorials/tmva/tmva003_RReader.C 2020-07-09 18:58:36.854733120 +0200
+@@ -5,7 +5,6 @@
+ /// TMVA XML files.
+ ///
+ /// \macro_code
+-/// \macro_output
+ ///
+ /// \date July 2019
+ /// \author Stefan Wunsch
+diff -ur root-6.22.00.orig/tutorials/tmva/tmva103_Application.C root-6.22.00/tutorials/tmva/tmva103_Application.C
+--- root-6.22.00.orig/tutorials/tmva/tmva103_Application.C 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tutorials/tmva/tmva103_Application.C 2020-07-09 18:58:36.855733122 +0200
+@@ -6,7 +6,6 @@
+ /// event-by-event inference, batch inference and pipelines with RDataFrame.
+ ///
+ /// \macro_code
+-/// \macro_output
+ ///
+ /// \date December 2018
+ /// \author Stefan Wunsch
+diff -ur root-6.22.00.orig/tutorials/v7/line.cxx root-6.22.00/tutorials/v7/line.cxx
+--- root-6.22.00.orig/tutorials/v7/line.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tutorials/v7/line.cxx 2020-07-09 18:58:42.202745047 +0200
+@@ -6,7 +6,6 @@
+ /// "normal" coordinates' system and changing the line color linearly from black
+ /// to red.
+ ///
+-/// \macro_image (line.png)
+ /// \macro_code
+ ///
+ /// \date 2018-03-18
diff --git a/root-doxygen-endof-part1.patch b/root-doxygen-endof-part1.patch
new file mode 100644
index 0000000..974b60e
--- /dev/null
+++ b/root-doxygen-endof-part1.patch
@@ -0,0 +1,49 @@
+From c454b8d31a840898a709452525267a8404a05d24 Mon Sep 17 00:00:00 2001
+From: Enrico Guiraud <enrico.guiraud(a)cern.ch>
+Date: Tue, 30 Jun 2020 17:05:13 +0200
+Subject: [PATCH] [NFC][DF] Minor improvements to formatting and docs of
+ Display
+
+---
+ tree/dataframe/inc/ROOT/RDF/RDisplay.hxx | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/tree/dataframe/inc/ROOT/RDF/RDisplay.hxx b/tree/dataframe/inc/ROOT/RDF/RDisplay.hxx
+index 90058f0706..9f5e3623ae 100644
+--- a/tree/dataframe/inc/ROOT/RDF/RDisplay.hxx
++++ b/tree/dataframe/inc/ROOT/RDF/RDisplay.hxx
+@@ -105,10 +105,10 @@ private:
+ }
+
+ ////////////////////////////////////////////////////////////////////////////
+- /// Appends collection.size() cling::printValue call to the stringstream.
++ /// Appends collection.size() cling::printValue calls to the stringstream.
+ /// \tparam T the type of the event to convert
+ /// \param[in] stream Where the conversion function call will be chained.
+- /// \param[in] element The event to convert to its string representation
++ /// \param[in] collection The event to convert to its string representation
+ /// \param[in] index To which column the event belongs to
+ /// \return true, the event is a collection
+ /// This function chains a sequence of call to cling::printValue, one for each element of the collection.
+@@ -128,7 +128,8 @@ private:
+ // For each element, append a call and feed the proper type returned by GetSplit
+ for (size_t i = 0; i < collectionSize; ++i) {
+ stream << "*((std::string*)" << ROOT::Internal::RDF::PrettyPrintAddr(&(fCollectionsRepresentations[index][i]))
+- << ") = cling::printValue((" << output[1] << "*)" << ROOT::Internal::RDF::PrettyPrintAddr(&(collection[i])) << ");";
++ << ") = cling::printValue((" << output[1] << "*)"
++ << ROOT::Internal::RDF::PrettyPrintAddr(&(collection[i])) << ");";
+ }
+ return true;
+ }
+@@ -197,7 +198,7 @@ public:
+ /// Prints the representation to the standard output
+ ///
+ /// Collections are shortened to the first and last element. The overall width
+- /// is shortened to a fixed size of TODO
++ /// is shortened to a fixed number of columns that should fit the screen width.
+ void Print() const;
+
+ ////////////////////////////////////////////////////////////////////////////
+--
+2.26.2
+
diff --git a/root-doxygen-endof-part2.patch b/root-doxygen-endof-part2.patch
new file mode 100644
index 0000000..a32b39f
--- /dev/null
+++ b/root-doxygen-endof-part2.patch
@@ -0,0 +1,978 @@
+From 1198ee3e08c46d1edc9258dbe857f66340f53a20 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Wed, 8 Jul 2020 10:39:54 +0200
+Subject: [PATCH 2/5] Fix various "end of ..." warnings from doxygen.
+
+This addresses warnings like:
+
+- end of comment block while expecting command </b>
+- end of comment block while expecting command </em>
+- end of comment block while expecting command </pre>
+- end of comment block while expecting command </s>
+- end of comment block while expecting command </sup>
+- end of comment block while expecting command </tt>
+- end of comment block while expecting command </u>
+- end of list marker found without any preceding list items
+- found </em> tag without matching <em>
+- found </li> tag without matching <li>
+- found </pre> tag without matching <pre>
+- found </sub> tag while expecting </sup>
+- found </sup> tag without matching <sup>
+- found </tt> tag without matching <tt>
+- found </ul> tag without matching <ul>
+- illegal </br> tag found
+- reached end of file while inside a 'code' block!
+- reached end of file while still inside a (nested) comment.
+- unexpected end of comment while inside <a href=...> tag
+- unexpected end of comment while inside <ul> block
+- unexpected html tag <blockquote> found within <h1> context
+- unexpected tag </h2> found
+- unexpected tag </h3> found
+- unsupported xml/html tag <it> found
+- unsupported xml/html tag </it> found
+---
+ bindings/r/inc/TRDataFrame.h | 2 +-
+ core/base/src/TEnv.cxx | 7 +-
+ core/cont/src/TBits.cxx | 2 +-
+ core/dictgen/res/DictSelectionReader.h | 140 +++++++++---------
+ core/foundation/inc/ROOT/TypeTraits.hxx | 2 +-
+ core/meta/src/TClass.cxx | 6 +-
+ core/metacling/src/TCling.cxx | 8 +-
+ graf2d/x11/src/TGX11.cxx | 6 +-
+ gui/guihtml/src/TGHtmlSizer.cxx | 4 +-
+ hist/hist/src/TSVDUnfold.cxx | 8 +-
+ hist/histpainter/src/THistPainter.cxx | 2 +-
+ hist/histv7/speed/histspeedtest.cxx | 1 -
+ hist/unfold/inc/TUnfold.h | 8 +-
+ html/src/TDocDirective.cxx | 2 +-
+ math/mathcore/inc/Math/ProbFuncMathCore.h | 8 +-
+ math/mathcore/inc/Math/QuantFuncMathCore.h | 4 +-
+ math/mathcore/src/TMath.cxx | 2 +-
+ math/mathmore/inc/Math/GSLMultiRootFinder.h | 16 +-
+ math/matrix/doc/Matrix.md | 2 +-
+ math/minuit/src/TMinuit.cxx | 4 +-
+ montecarlo/eg/src/TDatabasePDG.cxx | 2 +-
+ montecarlo/vmc/README.md | 2 +-
+ net/http/civetweb/LICENSE.md | 4 -
+ proof/proof/src/TProofMgr.cxx | 50 ++++---
+ proof/proof/src/TProofServ.cxx | 10 +-
+ roofit/histfactory/doc/index.md | 11 +-
+ .../src/MakeModelAndMeasurementsFast.cxx | 11 +-
+ roofit/roofitcore/inc/RooAbsCategory.h | 2 +-
+ roofit/roofitcore/src/RooSimPdfBuilder.cxx | 4 +-
+ tmva/tmva/src/Factory.cxx | 6 +-
+ tmva/tmva/src/Reader.cxx | 4 +-
+ tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx | 2 +-
+ tutorials/net/udpserver.c | 2 +-
+ tutorials/tmva/TMVA_CNN_Classification.C | 2 +-
+ 34 files changed, 168 insertions(+), 178 deletions(-)
+
+diff --git a/bindings/r/inc/TRDataFrame.h b/bindings/r/inc/TRDataFrame.h
+index b7bb4ed89d..dbf48e1383 100644
+--- a/bindings/r/inc/TRDataFrame.h
++++ b/bindings/r/inc/TRDataFrame.h
+@@ -136,7 +136,7 @@ namespace ROOT {
+ 2 |1
+ \endcode
+
+- </h2>Working with colunms between dataframes</h2><br>
++ <h2>Working with colunms between dataframes</h2><br>
+ \code{.cpp}
+ df2["v3"]<<df1["strings"];
+
+diff --git a/core/base/src/TEnv.cxx b/core/base/src/TEnv.cxx
+index 39c07caf21..ab697df7b7 100644
+--- a/core/base/src/TEnv.cxx
++++ b/core/base/src/TEnv.cxx
+@@ -388,10 +388,9 @@ TString TEnvRec::ExpandValue(const char *value)
+ ClassImp(TEnv);
+
+ ////////////////////////////////////////////////////////////////////////////////
+-/// Create a resource table and read the (possibly) three resource files, i.e
+-/// `$ROOTSYS/etc/system``<name>` (or `ROOTETCDIR/system``<name>`),
+-/// `$HOME/``<name>` and
+-/// `./``<name>`.
++/// Create a resource table and read the (possibly) three resource files,
++/// i.e.\ `$ROOTSYS/etc/system<name>` (or `ROOTETCDIR/system<name>`),
++/// `$HOME/<name>` and `$PWD/<name>`.
+ /// ROOT always reads ".rootrc" (in TROOT::InitSystem()). You can
+ /// read additional user defined resource files by creating additional TEnv
+ /// objects. By setting the shell variable ROOTENV_NO_HOME=1 the reading of
+diff --git a/core/cont/src/TBits.cxx b/core/cont/src/TBits.cxx
+index 155bfd4b4c..95167dd5b1 100644
+--- a/core/cont/src/TBits.cxx
++++ b/core/cont/src/TBits.cxx
+@@ -10,7 +10,7 @@ Container of bits.
+ This class provides a simple container of bits.
+ Each bit can be set and tested via the functions SetBitNumber and
+ TestBitNumber.
+- .
++
+ The default value of all bits is kFALSE.
+ The size of the container is automatically extended when a bit
+ number is either set or tested. To reduce the memory size of the
+diff --git a/core/dictgen/res/DictSelectionReader.h b/core/dictgen/res/DictSelectionReader.h
+index 52921d6237..b19135badd 100644
+--- a/core/dictgen/res/DictSelectionReader.h
++++ b/core/dictgen/res/DictSelectionReader.h
+@@ -60,34 +60,32 @@ namespace clang {
+ * By default, the Name of the selection class is then
+ * @c ROOT::Meta::Selection::C. If you have such a class, it will be found
+ * automatically. If @c C is in a namespace, @c NS::C, then
+- * the selection class should be in the same namespace: @c
+-ROOT::Selection::NS::C.
++ * the selection class should be in the same namespace:
++ * @c ROOT::Meta::Selection::NS::C.
++ *
+ * Examples:
+ *
+-
+-**/
+-
+-/**
+ * The DictSelectionReader is used to create selection rules starting from
+ * C++ the constructs of the @c ROOT::Meta::Selection namespace. All rules
+ * are matching by name.
+ * A brief description of the operations that lead to class selection:
+- * 1. If a class declaration is present in the selection namespace, a class
+- * with the same name is selected outside the selection namespace.
+- * 2. If a template class declaration and a template instantiation is present
+- * in the selection namespace, all the instances of the template are
+- * selected outside the namespace.
++ * 1. If a class declaration is present in the selection namespace, a class
++ * with the same name is selected outside the selection namespace.
++ * 2. If a template class declaration and a template instantiation is present
++ * in the selection namespace, all the instances of the template are
++ * selected outside the namespace.
++ *
+ * For example:
+ * @code
+ * [...]
+ * class classVanilla{};
+ * template <class A> class classTemplateVanilla {};
+ * classTemplateVanilla<char> t0;
+- * namespace ROOT{
++ * namespace ROOT {
+ * namespace Meta {
+- * namespace Selection{
+- * class classVanilla{};
+- * template <typename A> class classTemplateVanilla{};
++ * namespace Selection {
++ * class classVanilla {};
++ * template <typename A> class classTemplateVanilla {};
+ * classTemplateVanilla<char> st0;
+ * }
+ * }
+@@ -98,14 +96,15 @@ ROOT::Selection::NS::C.
+ *
+ * A brief description of the properties that can be assigned to classes
+ * with the @c ROOT::Meta::Selection::ClassAttributes class.
+- * 1. @c kNonSplittable : Makes the class non splittable
++ * 1. @c kNonSplittable : Makes the class non splittable
++ *
+ * The class properties can be assigned via a traits mechanism. For example:
+ * @code
+ * [...]
+- * class classWithAttributes{};
+- * namespace ROOT{
++ * class classWithAttributes {};
++ * namespace ROOT {
+ * namespace Meta {
+- * namespace Selection{
++ * namespace Selection {
+ * class classWithAttributes : ClassAttributes <kNonSplittable> {};
+ * }
+ * }
+@@ -116,9 +115,9 @@ ROOT::Selection::NS::C.
+ * properties can be assigned to a single class with this syntax:
+ * @code
+ * [...]
+- * namespace ROOT{
++ * namespace ROOT {
+ * namespace Meta {
+- * namespace Selection{
++ * namespace Selection {
+ * class classWithAttributes :
+ * ClassAttributes <kProperty1 + kProperty2 + ... + kPropertyN> {};
+ * }
+@@ -126,7 +125,6 @@ ROOT::Selection::NS::C.
+ * }
+ * @endcode
+ *
+- *
+ * The @c ROOT::Meta::Selection syntax allows to alter the number of template
+ * parameters of a certain template class within the ROOT type system, TClass.
+ * Technically it allows to alter the way in which the "normalized name" (in
+@@ -137,23 +135,21 @@ ROOT::Selection::NS::C.
+ * a long explaination in this case:
+ * @code
+ * [...]
+- * template <class T, class U=int, int V=3> class A{...};
+- * template <class T, class Alloc= myAllocator<T> > class myVector{...};
++ * template <class T, class U = int, int V = 3> class A {...};
++ * template <class T, class Alloc = myAllocator<T> > class myVector {...};
+ * A<char> a1;
+- * A<char,float> a2;
++ * A<char, float> a2;
+ * myVector<float> v1;
+ * myVector<A<char>> v2;
+ *
+- * namespace ROOT{
++ * namespace ROOT {
+ * namespace Meta {
+- * namespace Selection{
+- * template <class T, class U=int, int V=3> class A
+- * :KeepFirstTemplateArguments<1>{};
+- *
+- * A<double> ;
+- * template <class T, class Alloc= myAllocator<T> > class myVector
+- * :KeepFirstTemplateArguments<1>{};
+- *
++ * namespace Selection {
++ * template <class T, class U = int, int V = 3> class A
++ * : KeepFirstTemplateArguments<1> {};
++ * A<double> a;
++ * template <class T, class Alloc = myAllocator<T> > class myVector
++ * : KeepFirstTemplateArguments<1> {};
+ * myVector<double> vd;
+ * }
+ * }
+@@ -165,53 +161,55 @@ ROOT::Selection::NS::C.
+ * will be kept.
+ * In absence of any @c KeepFirstTemplateArguments trait, the normalization
+ * would be:
+- * @c A<char> &rarr @c A<char,float,3>
+- * @c A<char,float> &rarr @c A<char,int,3>
+- * @c myVector<float> &rarr @c myVector<A<char,int,3>,myAllocator<A<char,int,3>>>
+- * @c myVector<A<char>> &rarr @c myVector<float,myAllocator<float>>
++ * - @c A<char> → @c A<char,float,3>
++ * - @c A<char,float> → @c A<char,int,3>
++ * - @c myVector<float> → @c myVector<A<char,int,3>,myAllocator<A<char,int,3>>>
++ * - @c myVector<A<char>> → @c myVector<float,myAllocator<float>>
+ *
+ * Now, deciding to keep just one argument (@c KeepFirstTemplateArguments<1>):
+- * @c A<char> &rarr @c A<char,float>
+- * @c A<char,float> &rarr @c A<char>
+- * @c myVector<float> &rarr @c myVector<A<char>,myAllocator<A<char>>>
+- * @c myVector<A<char>> &rarr @c myVector<float,myAllocator<float>>
++ * - @c A<char> → @c A<char,float>
++ * - @c A<char,float> → @c A<char>
++ * - @c myVector<float> → @c myVector<A<char>,myAllocator<A<char>>>
++ * - @c myVector<A<char>> → @c myVector<float,myAllocator<float>>
+ *
+ * And deciding to keep two arguments (@c KeepFirstTemplateArguments<2>):
+- * @c A<char> &rarr @c A<char,float>
+- * @c A<char,float> &rarr @c A<char,int>
+- * @c myVector<float> &rarr @c myVector<A<char,int>,myAllocator<A<char,int>>>
+- * @c myVector<A<char>> &rarr @c myVector<float,myAllocator<float>>
++ * - @c A<char> → @c A<char,float>
++ * - @c A<char,float> → @c A<char,int>
++ * - @c myVector<float> → @c myVector<A<char,int>,myAllocator<A<char,int>>>
++ * - @c myVector<A<char>> → @c myVector<float,myAllocator<float>>
+ *
+ * A brief description of the properties that can be assigned to data members
+ * with the @c ROOT::Meta::Selection MemberAttributes class:
+- * 1. @c kTransient : the data member is transient, not persistified by the
+- * ROOT I/O.
+- * 2. @c kAutoSelected : the type of the data member is selected without the
+- * need of specifying its class explicitely.
++ * 1. @c kTransient : the data member is transient, not persistified by the
++ * ROOT I/O.
++ * 2. @c kAutoSelected : the type of the data member is selected without the
++ * need of specifying its class explicitely.
++ *
+ * For example:
+ * @code
+ * [...]
+- * class classTransientMember{
++ * class classTransientMember {
+ * private:
+ * int transientMember;
+ * };
+- * class classAutoselected{};
+- * class classTestAutoselect{
++ * class classAutoselected {};
++ * class classTestAutoselect {
+ * private:
+ * classAutoselected autoselected;
+ * };
+ *
+- * namespace ROOT{
++ * namespace ROOT {
+ * namespace Meta {
+- * namespace Selection{
+- * class classTestAutoselect{
++ * namespace Selection {
++ * class classTestAutoselect {
+ * MemberAttributes<kAutoSelected> autoselected;
+ * };
+-
+- class classTransientMember{
+- MemberAttributes<kTransient> transientMember;
+- };
+- *
++ * class classTransientMember {
++ * MemberAttributes<kTransient> transientMember;
++ * };
++ * }
++ * }
++ * }
+ * @endcode
+ * would lead to the creation of selection rules for @c classTransientMember
+ * specifying that @c transientMember is transient, @c classTestAutoselect and
+@@ -229,10 +227,10 @@ ROOT::Selection::NS::C.
+ * template< class T, class BASE >
+ * class MyDataVector : KeepFirstTemplateArguments< 1 >, SelectNoInstance {
+ * MemberAttributes< kTransient + kAutoSelected > m_isMostDerived;
+- * MemberAttributes< kNonSplittable+ kAutoSelected > m_isNonSplit;
+- * };
++ * MemberAttributes< kNonSplittable + kAutoSelected > m_isNonSplit;
++ * };
+ * [...]
+- *
++ * @endcode
+ **/
+ namespace ROOT {
+ namespace Internal {
+@@ -265,12 +263,9 @@ private:
+ inline bool
+ InSelectionNamespace(const clang::RecordDecl &,
+ const std::string &str =
+- ""); ///< Check if in the ROOT::Selection namespace
++ ""); ///< Check if in the ROOT::Meta::Selection namespace
+ inline bool FirstPass(const clang::RecordDecl &); ///< First pass on the AST
+- inline bool SecondPass(const clang::RecordDecl &); ///< Second pass on the
+- ///AST, using the
+- ///information of the first
+- ///one
++ inline bool SecondPass(const clang::RecordDecl &); ///< Second pass on the AST, using the information of the first one
+ inline void
+ ManageFields(const clang::RecordDecl &,
+ const std::string &,
+@@ -285,8 +280,7 @@ private:
+ inline const clang::TemplateArgumentList *GetTmplArgList(
+ const clang::CXXRecordDecl &); ///< Get the template arguments list if any
+
+- std::string PatternifyName(const std::string &className); ///< Transform instance
+- ///< name in pattern for selection
++ std::string PatternifyName(const std::string &className); ///< Transform instance name in pattern for selection
+ void GetPointeeType(std::string &typeName); ///< Get name of the pointee type
+
+ SelectionRules &fSelectionRules; ///< The selection rules to be filled
+@@ -300,9 +294,9 @@ private:
+ fNoAutoSelectedClassFieldNames; ///< Collect the autoexcluded classes
+ std::unordered_map<std::string, TemplateInfo> fTemplateInfoMap; ///< List template name - properties map
+ llvm::StringMap<ClassSelectionRule>
+- fClassNameSelectionRuleMap; /// < Map of the already built sel rules
++ fClassNameSelectionRuleMap; ///< Map of the already built sel rules
+ bool fIsFirstPass; ///< Keep trance of the number of passes through the AST
+- ROOT::TMetaUtils::TNormalizedCtxt &fNormCtxt; /// < The reference to the normalized context
++ ROOT::TMetaUtils::TNormalizedCtxt &fNormCtxt; ///< The reference to the normalized context
+ };
+ }
+ }
+diff --git a/core/foundation/inc/ROOT/TypeTraits.hxx b/core/foundation/inc/ROOT/TypeTraits.hxx
+index 1abf64e73a..ab491c2504 100644
+--- a/core/foundation/inc/ROOT/TypeTraits.hxx
++++ b/core/foundation/inc/ROOT/TypeTraits.hxx
+@@ -155,7 +155,7 @@ template <typename T>
+ using TakeFirstParameter_t = typename TakeFirstParameter<T>::type;
+
+ /// Remove first of possibly many template parameters.
+-/// e.g. RemoveFirstParameter_t<U<A,B>> is U<B>
++/// e.g. RemoveFirstParameter_t<U<A,B>> is U\<B\>
+ template <typename>
+ struct RemoveFirstParameter {
+ };
+diff --git a/core/meta/src/TClass.cxx b/core/meta/src/TClass.cxx
+index 4eeec81dc1..f29ab7fd85 100644
+--- a/core/meta/src/TClass.cxx
++++ b/core/meta/src/TClass.cxx
+@@ -6780,7 +6780,7 @@ void TClass::SetDestructor(ROOT::DesFunc_t destructorFunc)
+ }
+
+ ////////////////////////////////////////////////////////////////////////////////
+-/// Install a new wrapper around the directory auto add function..
++/// Install a new wrapper around the directory auto add function.
+ /// The function autoAddFunc has the signature void (*)(void *obj, TDirectory dir)
+ /// and should register 'obj' to the directory if dir is not null
+ /// and unregister 'obj' from its current directory if dir is null
+@@ -7120,12 +7120,12 @@ Bool_t ROOT::Internal::HasConsistentHashMember(TClass &clRef)
+ /// (public or not), use
+ /// \code{.cpp}
+ /// cl->GetProperty() & kClassHasDefaultCtor
+-/// \code
++/// \endcode
+ /// To know if the class described by this TClass has a public default
+ /// constructor use:
+ /// \code{.cpp}
+ /// gInterpreter->ClassInfo_HasDefaultConstructor(aClass->GetClassInfo());
+-/// \code
++/// \endcode
+
+ Bool_t TClass::HasDefaultConstructor(Bool_t testio) const
+ {
+diff --git a/core/metacling/src/TCling.cxx b/core/metacling/src/TCling.cxx
+index db0da13620..279744834a 100644
+--- a/core/metacling/src/TCling.cxx
++++ b/core/metacling/src/TCling.cxx
+@@ -5388,10 +5388,10 @@ int TCling::ReadRootmapFile(const char *rootmapfile, TUniqueString *uniqueString
+ }
+
+ ////////////////////////////////////////////////////////////////////////////////
+-/// Create a resource table and read the (possibly) three resource files, i.e
+-/// $ROOTSYS/etc/system<name> (or ROOTETCDIR/system<name>), $HOME/<name> and
+-/// ./<name>. ROOT always reads ".rootrc" (in TROOT::InitSystem()). You can
+-/// read additional user defined resource files by creating additional TEnv
++/// Create a resource table and read the (possibly) three resource files,
++/// i.e.\ $ROOTSYS/etc/system<name> (or ROOTETCDIR/system<name>), $HOME/<name>
++/// and $PWD/<name>. ROOT always reads ".rootrc" (in TROOT::InitSystem()). You
++/// can read additional user defined resource files by creating additional TEnv
+ /// objects. By setting the shell variable ROOTENV_NO_HOME=1 the reading of
+ /// the $HOME/<name> resource file will be skipped. This might be useful in
+ /// case the home directory resides on an automounted remote file system
+diff --git a/graf2d/x11/src/TGX11.cxx b/graf2d/x11/src/TGX11.cxx
+index 59e5260c92..26f88dd045 100644
+--- a/graf2d/x11/src/TGX11.cxx
++++ b/graf2d/x11/src/TGX11.cxx
+@@ -3599,9 +3599,9 @@ Pixmap_t TGX11::ReadGIF(int x0, int y0, const char *file, Window_t id)
+ }
+
+ ////////////////////////////////////////////////////////////////////////////////
+-/// Returns an array of pixels created from a part of drawable (defined by x, y, w, h)
+-/// in format:
+-/// `b1, g1, r1, 0, b2, g2, r2, 0 ... bn, gn, rn, 0 ..`
++/// Returns an array of pixels created from a part of drawable
++/// (defined by x, y, w, h) in format:
++/// `b1, g1, r1, 0, b2, g2, r2, 0, ..., bn, gn, rn, 0`.
+ ///
+ /// Pixels are numbered from left to right and from top to bottom.
+ /// By default all pixels from the whole drawable are returned.
+diff --git a/gui/guihtml/src/TGHtmlSizer.cxx b/gui/guihtml/src/TGHtmlSizer.cxx
+index c73eb581b5..8e6e71dcf7 100644
+--- a/gui/guihtml/src/TGHtmlSizer.cxx
++++ b/gui/guihtml/src/TGHtmlSizer.cxx
+@@ -60,7 +60,7 @@ SHtmlStyle_t TGHtml::GetCurrentStyle()
+ ////////////////////////////////////////////////////////////////////////////////
+ /// Push a new rendering style onto the stack.
+ ///
+-/// tag - Tag for this style. Normally the end-tag such as </h3> or </em>.
++/// tag - Tag for this style. Normally the end-tag such as \</h3\> or \</em\>.
+ /// style - The style to push
+
+ void TGHtml::PushStyleStack(int tag, SHtmlStyle_t style)
+@@ -152,7 +152,7 @@ void TGHtml::MakeInvisible(TGHtmlElement *p_first, TGHtmlElement *p_last)
+ }
+
+ ////////////////////////////////////////////////////////////////////////////////
+-/// For the markup <a href=XXX>, find out if the URL has been visited
++/// For the markup \<a href=XXX\>, find out if the URL has been visited
+ /// before or not. Return COLOR_Visited or COLOR_Unvisited, as
+ /// appropriate.
+
+diff --git a/hist/hist/src/TSVDUnfold.cxx b/hist/hist/src/TSVDUnfold.cxx
+index 85cfa9f241..2b570bdb22 100644
+--- a/hist/hist/src/TSVDUnfold.cxx
++++ b/hist/hist/src/TSVDUnfold.cxx
+@@ -46,13 +46,11 @@
+ The measured distribution can be unfolded for any combination of resolution, efficiency and acceptance effects, provided an appropriate definition of <tt>xini</tt> and <tt>Adet</tt>.<br><br>
+ <p>
+ The unfolding can be performed by
+- <ul>
+- <pre>
++ \code{.cpp}
+ TSVDUnfold *tsvdunf = new TSVDUnfold( bdat, Bcov, bini, xini, Adet );
+ TH1D* unfresult = tsvdunf->Unfold( kreg );
+- </pre>
+- </ul>
+- where <tt>kreg</tt> determines the regularisation of the unfolding. In general, overregularisation (too small <tt>kreg</tt>) will bias the unfolded spectrum towards the Monte Carlo input, while underregularisation (too large <tt>kreg</tt>) will lead to large fluctuations in the unfolded spectrum. The optimal regularisation can be determined following guidelines in <a href="http://arXiv.org/abs/hep-ph/9509307">Nucl. Instrum. Meth. A372, 469 (1996) [hep-ph/9509307]</a> using the distribution of the <tt>|d_i|<\tt> that can be obtained by <tt>tsvdunf->GetD()</tt> and/or using pseudo-experiments.
++ \endcode
++ where <tt>kreg</tt> determines the regularisation of the unfolding. In general, overregularisation (too small <tt>kreg</tt>) will bias the unfolded spectrum towards the Monte Carlo input, while underregularisation (too large <tt>kreg</tt>) will lead to large fluctuations in the unfolded spectrum. The optimal regularisation can be determined following guidelines in <a href="http://arXiv.org/abs/hep-ph/9509307">Nucl. Instrum. Meth. A372, 469 (1996) [hep-ph/9509307]</a> using the distribution of the <tt>|d_i|</tt> that can be obtained by <tt>tsvdunf->GetD()</tt> and/or using pseudo-experiments.
+ <p>
+ Covariance matrices on the measured spectrum (for either the total uncertainties or individual sources of uncertainties) can be propagated to covariance matrices using the <tt>GetUnfoldCovMatrix</tt> method, which uses pseudo experiments for the propagation. In addition, <tt>GetAdetCovMatrix</tt> allows for the propagation of the statistical uncertainties on the response matrix using pseudo experiments. The covariance matrix corresponding to <tt>Bcov</tt> is also computed as described in <a href="http://arXiv.org/abs/hep-ph/9509307">Nucl. Instrum. Meth. A372, 469 (1996) [hep-ph/9509307]</a> and can be obtained from <tt>tsvdunf->GetXtau()</tt> and its (regularisation independent) inverse from <tt>tsvdunf->GetXinv()</tt>. The distribution of singular values can be retrieved using <tt>tsvdunf->GetSV()</tt>.
+ <p>
+diff --git a/hist/histpainter/src/THistPainter.cxx b/hist/histpainter/src/THistPainter.cxx
+index 0f80505570..20a944a545 100644
+--- a/hist/histpainter/src/THistPainter.cxx
++++ b/hist/histpainter/src/THistPainter.cxx
+@@ -418,7 +418,7 @@ some combinations must be use with care.
+ - It does not work when combined with the `LEGO` and `SURF` options unless the
+ histogram plotted with the option `SAME` has exactly the same
+ ranges on the X, Y and Z axis as the currently drawn histogram. To superimpose
+- lego plots [histograms' stacks](#HP26) should be used.</li>
++ lego plots [histograms' stacks](#HP26) should be used.
+
+
+ ### <a name="HP061"></a> Colors automatically picked in palette
+diff --git a/hist/histv7/speed/histspeedtest.cxx b/hist/histv7/speed/histspeedtest.cxx
+index 55c0992bd5..065a10f0d7 100644
+--- a/hist/histv7/speed/histspeedtest.cxx
++++ b/hist/histv7/speed/histspeedtest.cxx
+@@ -35,7 +35,6 @@ and
+ /opt/build/root_builds/rootcling.cmake/include/ROOT/THistBinIter.h:53:50: error: no member named 'GetUncertainty' in
+ 'ROOT::Experimental::THistDataContent<2, double, ROOT::Experimental::THistDataDefaultStorage>::TBinStat<double>' auto
+ GetUncertainty() const { return GetStat().GetUncertainty(); }
+- ~~~~~~~~~ ^
+
+ new ones (STATCLASSES)
+
+diff --git a/hist/unfold/inc/TUnfold.h b/hist/unfold/inc/TUnfold.h
+index a69da26b4c..ce6e16fb4a 100644
+--- a/hist/unfold/inc/TUnfold.h
++++ b/hist/unfold/inc/TUnfold.h
+@@ -179,15 +179,15 @@ class TUnfold : public TObject {
+ TMatrixD *fX;
+ /// covariance matrix Vxx
+ TMatrixDSparse *fVxx;
+- /// inverse of covariance matrix Vxx<sup>-1</sub>
++ /// inverse of covariance matrix Vxx<sup>-1</sup>
+ TMatrixDSparse *fVxxInv;
+- /// inverse of the input covariance matrix Vyy<sup>-1</sub>
++ /// inverse of the input covariance matrix Vyy<sup>-1</sup>
+ TMatrixDSparse *fVyyInv;
+ /// result x folded back A*x
+ TMatrixDSparse *fAx;
+- /// chi**2 contribution from (y-Ax)Vyy<sup>-1</sub>(y-Ax)
++ /// chi**2 contribution from (y-Ax)Vyy<sup>-1</sup>(y-Ax)
+ Double_t fChi2A;
+- /// chi**2 contribution from (x-s*x0)<sup>T</sub>L<sup>T</sub>L(x-s*x0)
++ /// chi**2 contribution from (x-s*x0)<sup>T</sup>L<sup>T</sup>L(x-s*x0)
+ Double_t fLXsquared;
+ /// maximum global correlation coefficient
+ Double_t fRhoMax;
+diff --git a/html/src/TDocDirective.cxx b/html/src/TDocDirective.cxx
+index f7ffdc29c3..ab43d1ab38 100644
+--- a/html/src/TDocDirective.cxx
++++ b/html/src/TDocDirective.cxx
+@@ -215,7 +215,7 @@ void TDocHtmlDirective::AddLine(const TSubString& line)
+
+ ////////////////////////////////////////////////////////////////////////////////
+ /// Set result to the HTML code that was passed in via AddLine().
+-/// Prepend a closing </pre>, append an opening <pre>
++/// Prepend a closing \</pre\>, append an opening \<pre\>
+
+ Bool_t TDocHtmlDirective::GetResult(TString& result)
+ {
+diff --git a/math/mathcore/inc/Math/ProbFuncMathCore.h b/math/mathcore/inc/Math/ProbFuncMathCore.h
+index d751c47a36..16e205347c 100644
+--- a/math/mathcore/inc/Math/ProbFuncMathCore.h
++++ b/math/mathcore/inc/Math/ProbFuncMathCore.h
+@@ -41,8 +41,8 @@ namespace Math {
+ * These names are currently kept for backward compatibility, but
+ * their usage is deprecated.
+ *
+- * These functions are defined in the header file <em>Math/ProbFunc.h<em> or in the global one
+- * including all statistical functions <em>Math/DistFunc.h<em>
++ * These functions are defined in the header file <em>Math/ProbFunc.h</em> or in the global one
++ * including all statistical functions <em>Math/DistFunc.h</em>
+ *
+ */
+
+@@ -727,8 +727,8 @@ namespace Math {
+ first or the second momentum of the truncated distribution.
+ In the case of the Landau, first and second momentum functions are provided for the Landau
+ distribution truncated only on the right side.
+- These functions are defined in the header file <em>Math/ProbFunc.h<em> or in the global one
+- including all statistical functions <em>Math/StatFunc.h<em>
++ These functions are defined in the header file <em>Math/ProbFunc.h</em> or in the global one
++ including all statistical functions <em>Math/StatFunc.h</em>
+
+ */
+
+diff --git a/math/mathcore/inc/Math/QuantFuncMathCore.h b/math/mathcore/inc/Math/QuantFuncMathCore.h
+index 7da5bd1178..1be023b33f 100644
+--- a/math/mathcore/inc/Math/QuantFuncMathCore.h
++++ b/math/mathcore/inc/Math/QuantFuncMathCore.h
+@@ -41,8 +41,8 @@ namespace Math {
+ *
+ * \f[ D(x) = \int_{x}^{+\infty} p(x') dx' \f]
+ *
+- * These functions are defined in the header file <em>Math/ProbFunc.h<em> or in the global one
+- * including all statistical functions <em>Math/DistFunc.h<em>
++ * These functions are defined in the header file <em>Math/ProbFunc.h</em> or in the global one
++ * including all statistical functions <em>Math/DistFunc.h</em>
+ *
+ *
+ * <strong>NOTE:</strong> In the old releases (< 5.14) the <em>_quantile</em> functions were called
+diff --git a/math/mathcore/src/TMath.cxx b/math/mathcore/src/TMath.cxx
+index 49a81d56f7..ba8799b570 100644
+--- a/math/mathcore/src/TMath.cxx
++++ b/math/mathcore/src/TMath.cxx
+@@ -857,7 +857,7 @@ Double_t TMath::KolmogorovTest(Int_t na, const Double_t *a, Int_t nb, const Doub
+ /// \f[
+ /// lorentz(xx) = \frac{ \frac{1}{\pi} \frac{lg}{2} }{ (xx^{2} + \frac{lg^{2}}{4}) }
+ /// \f]
+-/// .
++/// \.
+ ///
+ /// The Voigt function is known to be the real part of Faddeeva function also
+ /// called complex error function [2].
+diff --git a/math/mathmore/inc/Math/GSLMultiRootFinder.h b/math/mathmore/inc/Math/GSLMultiRootFinder.h
+index 42069d2387..b7efe4157d 100644
+--- a/math/mathmore/inc/Math/GSLMultiRootFinder.h
++++ b/math/mathmore/inc/Math/GSLMultiRootFinder.h
+@@ -69,23 +69,23 @@ namespace Math {
+ <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Algorithms-using-Derivat...">documentation</A> )
+ are the followings:
+ <ul>
+- <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridSJ</tt> with name <it>"HybridSJ"</it>: modified Powell's hybrid
++ <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridSJ</tt> with name <i>"HybridSJ"</i>: modified Powell's hybrid
+ method as implemented in HYBRJ in MINPACK
+- <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridJ</tt> with name <it>"HybridJ"</it>: unscaled version of the
++ <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridJ</tt> with name <i>"HybridJ"</i>: unscaled version of the
+ previous algorithm</li>
+- <li><tt>ROOT::Math::GSLMultiRootFinder::kNewton</tt> with name <it>"Newton"</it>: Newton method </li>
+- <li><tt>ROOT::Math::GSLMultiRootFinder::kGNewton</tt> with name <it>"GNewton"</it>: modified Newton method </li>
++ <li><tt>ROOT::Math::GSLMultiRootFinder::kNewton</tt> with name <i>"Newton"</i>: Newton method </li>
++ <li><tt>ROOT::Math::GSLMultiRootFinder::kGNewton</tt> with name <i>"GNewton"</i>: modified Newton method </li>
+ </ul>
+ The algorithms without derivatives (see also the GSL
+ <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Algorithms-without-Deriv...">documentation</A> )
+ are the followings:
+ <ul>
+- <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridS</tt> with name <it>"HybridS"</it>: same as HybridSJ but using
++ <li><tt>ROOT::Math::GSLMultiRootFinder::kHybridS</tt> with name <i>"HybridS"</i>: same as HybridSJ but using
+ finate difference approximation for the derivatives</li>
+- <li><tt>ROOT::Math::GSLMultiRootFinder::kHybrid</tt> with name <it>"Hybrid"</it>: unscaled version of the
++ <li><tt>ROOT::Math::GSLMultiRootFinder::kHybrid</tt> with name <i>"Hybrid"</i>: unscaled version of the
+ previous algorithm</li>
+- <li><tt>ROOT::Math::GSLMultiRootFinder::kDNewton</tt> with name <it>"DNewton"</it>: discrete Newton algorithm </li>
+- <li><tt>ROOT::Math::GSLMultiRootFinder::kBroyden</tt> with name <it>"Broyden"</it>: Broyden algorithm </li>
++ <li><tt>ROOT::Math::GSLMultiRootFinder::kDNewton</tt> with name <i>"DNewton"</i>: discrete Newton algorithm </li>
++ <li><tt>ROOT::Math::GSLMultiRootFinder::kBroyden</tt> with name <i>"Broyden"</i>: Broyden algorithm </li>
+ </ul>
+
+ @ingroup MultiRoot
+diff --git a/math/matrix/doc/Matrix.md b/math/matrix/doc/Matrix.md
+index f53b29ca0b..c484c27c72 100644
+--- a/math/matrix/doc/Matrix.md
++++ b/math/matrix/doc/Matrix.md
+@@ -325,7 +325,7 @@ constructor</td>
+ <td>C=A*B<br>
+ A*=B<br>
+ C.Mult(A,B)<br>TMatrixD(A,TMatrixD::kMult,B)<br>TMatrixD(A, TMatrixD(A, TMatrixD::kTransposeMult,B)<br>TMatrixD(A, TMatrixD::kMultTranspose,B)</td>
+- <td>overwrites A<br> <br> <br>constructor of A.B<br>constructor of A<sup>T</sup> .B<br>constructor of A.B<sup>T</sup></td>
++ <td>overwrites A<br> <br> <br>constructor of A·B<br>constructor of A<sup>T</sup>·B<br>constructor of A·B<sup>T</sup></td>
+ </tr>
+ <tr>
+ <td>Element wise multiplication</td>
+diff --git a/math/minuit/src/TMinuit.cxx b/math/minuit/src/TMinuit.cxx
+index df3e563a73..18a6437c68 100644
+--- a/math/minuit/src/TMinuit.cxx
++++ b/math/minuit/src/TMinuit.cxx
+@@ -187,11 +187,11 @@ the error matrix, or setting of exact confidence levels see:
+
+ 1. F.James.
+ Determining the statistical Significance of experimental Results.
+- Technical Report DD/81/02 and CERN Report 81-03, CERN, 1981.</li>
++ Technical Report DD/81/02 and CERN Report 81-03, CERN, 1981.
+
+ 2. W.T.Eadie, D.Drijard, F.James, M.Roos, and B.Sadoulet.
+ Statistical Methods in Experimental Physics.
+- North-Holland, 1971.</li>
++ North-Holland, 1971.
+
+ ### Reliability of MINUIT error estimates.
+
+diff --git a/montecarlo/eg/src/TDatabasePDG.cxx b/montecarlo/eg/src/TDatabasePDG.cxx
+index 23c32e9668..85e9fe2a6d 100644
+--- a/montecarlo/eg/src/TDatabasePDG.cxx
++++ b/montecarlo/eg/src/TDatabasePDG.cxx
+@@ -46,7 +46,7 @@ Root.DatabasePDG: $(HOME)/my_pdg_table.txt
+ See TParticlePDG for the description of a static particle properties.
+ See TParticle for the description of a dynamic particle particle.
+
+-<br>The current default pdg_table file displays lifetime 0 for some unstable particles.</br>
++The current default pdg_table file displays lifetime 0 for some unstable particles.
+
+ */
+
+diff --git a/montecarlo/vmc/README.md b/montecarlo/vmc/README.md
+index dc66ec401f..c731b26e92 100644
+--- a/montecarlo/vmc/README.md
++++ b/montecarlo/vmc/README.md
+@@ -43,7 +43,7 @@ See more detailed description in [the dedicated README](README.multiple.md).
+ ## Authors
+
+ The concept of Virtual MonteCarlo has been developed by the [ALICE Software Project](http://aliceinfo.cern.ch/Offline/).<br>
+-Authors: R.Brun<sup>1</sup>, F.Carminati<sup>1</sup>, A. Gheata<sup>1</sup>, I.Hrivnacova<sup>2</sup>, A.Morsch<sup>1</sup>, B.Volkel<sup>1</sup>;<br>
++Authors: R. Brun<sup>1</sup>, F. Carminati<sup>1</sup>, A. Gheata<sup>1</sup>, I. Hrivnacova<sup>2</sup>, A. Morsch<sup>1</sup>, B. Volkel<sup>1</sup>;<br>
+ <sup>1</sup>European Organization for Nuclear Research (CERN), Geneva, Switzerland;<br>
+ <sup>2</sup>Institut de Physique Nucléaire dʼOrsay (IPNO), Université Paris-Sud, CNRS-IN2P3, Orsay, France
+
+diff --git a/net/http/civetweb/LICENSE.md b/net/http/civetweb/LICENSE.md
+index ab049e3e72..b6bb8ff037 100644
+--- a/net/http/civetweb/LICENSE.md
++++ b/net/http/civetweb/LICENSE.md
+@@ -180,10 +180,6 @@ Duktape License
+
+ https://github.com/svaarala/duktape/blob/master/LICENSE.txt
+
+-> ===============
+-> Duktape license
+-> ===============
+->
+ > (http://opensource.org/licenses/MIT)
+ >
+ > Copyright (c) 2013-2017 by Duktape authors (see AUTHORS.rst)
+diff --git a/proof/proof/src/TProofMgr.cxx b/proof/proof/src/TProofMgr.cxx
+index 2a140e4e7a..e41b637a15 100644
+--- a/proof/proof/src/TProofMgr.cxx
++++ b/proof/proof/src/TProofMgr.cxx
+@@ -775,26 +775,29 @@ void TProofMgr::ReplaceSubdirs(const char *fn, TString &fdst, TList &dirph)
+ /// Upload files provided via the list 'src' (as TFileInfo or TObjString)
+ /// to 'mss'. The path under 'mss' is determined by 'dest'; the following
+ /// place-holders can be used in 'dest':
+-/// <d0>, <d1>, <d2>, ... referring to the n-th sub-component
+-/// of the src path
+-/// <bn> basename in the source path
+-/// <bs> basename sans extension
+-/// <ex> Extension
+-/// <sn> serial number of file in the list
+-/// <s0> as <sn> but zero padded
+-/// <fn> the full file path
+-/// <us>, <gr> the local user and group names.
+-/// <pg> the users PROOF group
+-/// <pa> immediate parent directory
+-/// <gp> next-to immediate parent directory
++///
++/// Place-holder | Meaning |
++/// ----------------------------|------------------------------------
++/// \<d0\>, \<d1\>, \<d2\>, ... | referring to the n-th sub-component of the src path
++/// \<bn\> | basename in the source path
++/// \<bs\> | basename sans extension
++/// \<ex\> | Extension
++/// \<sn\> | serial number of file in the list
++/// \<s0\> | as \<sn\> but zero padded
++/// \<fn\> | the full file path
++/// \<us\>, \<gr\> | the local user and group names.
++/// \<pg\> | the users PROOF group
++/// \<pa\> | immediate parent directory
++/// \<gp\> | next-to immediate parent directory
++///
+ /// So, for example, if the source filename for the 99-th file is
+ /// protosrc://host//d0/d1/d2/d3/d4/d5/myfile
+-/// then with dest = '/pool/user/<d3>/<d4>/<d5>/<s>/<bn>' and
++/// then with dest = '/pool/user/\<d3\>/\<d4\>/\<d5\>/\<sn\>/\<bn\>' and
+ /// mss = 'protodst://hostdst//nm/
+ /// the corresponding destination path is
+ /// protodst://hostdst//nm/pool/user/d3/d4/d5/99/myfile
+ ///
+-/// If 'dest' is empty, <fn> is used.
++/// If 'dest' is empty, \<fn\> is used.
+ ///
+ /// Returns a TFileCollection with the destination files created; this
+ /// TFileCollection is, for example, ready to be registered as dataset.
+@@ -966,20 +969,23 @@ TFileCollection *TProofMgr::UploadFiles(TList *src,
+ /// line, with line beginning by '#' ignored (i.e. considered comments).
+ /// The path under 'mss' is defined by 'dest'; the following
+ /// place-holders can be used in 'dest':
+-/// <d0>, <d1>, <d2>, ... referring to the n-th sub-component
+-/// of the src path
+-/// <bn> basename in the source path
+-/// <sn> serial number of file in the list
+-/// <fn> the full file path
+-/// <us>, <gr> the local user and group names.
++///
++/// Place-holder | Meaning |
++/// ----------------------------|------------------------------------
++/// \<d0\>, \<d1\>, \<d2\>, ... | referring to the n-th sub-component of the src path
++/// \<bn\> | basename in the source path
++/// \<sn\> | serial number of file in the list
++/// \<fn\> | the full file path
++/// \<us\>, \<gr\> | the local user and group names.
++///
+ /// So, for example, if the source filename for the 99-th file is
+ /// protosrc://host//d0/d1/d2/d3/d4/d5/myfile
+-/// then with dest = '/pool/user/<d3>/<d4>/<d5>/<s>/<bn>' and
++/// then with dest = '/pool/user/\<d3\>/\<d4\>/\<d5\>/\<sn\>/\<bn\>' and
+ /// mss = 'protodst://hostdst//nm/
+ /// the corresponding destination path is
+ /// protodst://hostdst//nm/pool/user/d3/d4/d5/99/myfile
+ ///
+-/// If 'dest' is empty, <fn> is used.
++/// If 'dest' is empty, \<fn\> is used.
+ ///
+ /// Returns a TFileCollection with the destination files created; this
+ /// TFileCollection is, for example, ready to be registered as dataset.
+diff --git a/proof/proof/src/TProofServ.cxx b/proof/proof/src/TProofServ.cxx
+index 24c521743d..3697f257a0 100644
+--- a/proof/proof/src/TProofServ.cxx
++++ b/proof/proof/src/TProofServ.cxx
+@@ -6696,11 +6696,11 @@ Int_t TProofServ::Fork()
+ }
+
+ ////////////////////////////////////////////////////////////////////////////////
+-/// Replace <ord>, <user>, <u>, <group>, <stag>, <qnum>, <file>, <rver> and
+-/// <build> placeholders in fname.
+-/// Here, <rver> is the root version in integer form, e.g. 53403, and <build> a
+-/// string includign version, architecture and compiler version, e.g.
+-/// '53403_linuxx8664gcc_gcc46' .
++/// Replace \<ord\>, \<user\>, \<u\>, \<group\>, \<stag\>, \<qnum\>, \<file\>,
++/// \<rver\> and \<build\> placeholders in fname.
++/// Here, \<rver\> is the root version in integer form, e.g. 53403, and
++/// \<build\> a string includign version, architecture and compiler version,
++/// e.g. '53403_linuxx8664gcc_gcc46' .
+
+ void TProofServ::ResolveKeywords(TString &fname, const char *path)
+ {
+diff --git a/roofit/histfactory/doc/index.md b/roofit/histfactory/doc/index.md
+index 32f1c551a4..9256a9cf11 100644
+--- a/roofit/histfactory/doc/index.md
++++ b/roofit/histfactory/doc/index.md
+@@ -41,12 +41,11 @@ it is organized as follows (see the examples in `${ROOTSYS}/tutorials/histfactor
+ <li> several 'Measurements' (corresponding to a full fit of the model) each of which specifies</li>
+ <ul>
+ <li> a name for this fit to be used in tables and files</li>
+-<ul>
+-<li> what is the luminosity associated to the measurement in picobarns</li>
+-<li> which bins of the histogram should be used</li>
+-<li> what is the relative uncertainty on the luminosity </li>
+-<li> what is (are) the parameter(s) of interest that will be measured</li>
+-<li> which parameters should be fixed/floating (eg. nuisance parameters)</li>
++<li> what is the luminosity associated to the measurement in picobarns</li>
++<li> which bins of the histogram should be used</li>
++<li> what is the relative uncertainty on the luminosity </li>
++<li> what is (are) the parameter(s) of interest that will be measured</li>
++<li> which parameters should be fixed/floating (eg. nuisance parameters)</li>
+ </ul>
+ </ul>
+ </ul>
+diff --git a/roofit/histfactory/src/MakeModelAndMeasurementsFast.cxx b/roofit/histfactory/src/MakeModelAndMeasurementsFast.cxx
+index e14e63ec89..73a3f627ba 100644
+--- a/roofit/histfactory/src/MakeModelAndMeasurementsFast.cxx
++++ b/roofit/histfactory/src/MakeModelAndMeasurementsFast.cxx
+@@ -92,12 +92,11 @@ using namespace RooFit;
+ <li> several 'Measurements' (corresponding to a full fit of the model) each of which specifies</li>
+ <ul>
+ <li> a name for this fit to be used in tables and files</li>
+- <ul>
+- <li> what is the luminosity associated to the measurement in picobarns</li>
+- <li> which bins of the histogram should be used</li>
+- <li> what is the relative uncertainty on the luminosity </li>
+- <li> what is (are) the parameter(s) of interest that will be measured</li>
+- <li> which parameters should be fixed/floating (eg. nuisance parameters)</li>
++ <li> what is the luminosity associated to the measurement in picobarns</li>
++ <li> which bins of the histogram should be used</li>
++ <li> what is the relative uncertainty on the luminosity </li>
++ <li> what is (are) the parameter(s) of interest that will be measured</li>
++ <li> which parameters should be fixed/floating (eg. nuisance parameters)</li>
+ </ul>
+ </ul>
+ </ul>
+diff --git a/roofit/roofitcore/inc/RooAbsCategory.h b/roofit/roofitcore/inc/RooAbsCategory.h
+index a7eaf8772a..4f0937a99d 100644
+--- a/roofit/roofitcore/inc/RooAbsCategory.h
++++ b/roofit/roofitcore/inc/RooAbsCategory.h
+@@ -199,7 +199,7 @@ protected:
+ return hasIndex(_currentIndex);
+ }
+
+- /// If a category depends on the shape of others, *i.e.*, its state numbers or names depend
++ /// If a category depends on the shape of others, i.e.\ its state numbers or names depend
+ /// on the states of other categories, this function has to be implemented to recompute
+ /// _stateNames and _insertionOrder.
+ /// If one of these two changes, setShapeDirty() has to be called to propagate this information
+diff --git a/roofit/roofitcore/src/RooSimPdfBuilder.cxx b/roofit/roofitcore/src/RooSimPdfBuilder.cxx
+index 4c8289523d..57ea1e9196 100644
+--- a/roofit/roofitcore/src/RooSimPdfBuilder.cxx
++++ b/roofit/roofitcore/src/RooSimPdfBuilder.cxx
+@@ -99,7 +99,7 @@
+ /// PDF for each state of the C index category.
+ /// </p>
+ /// <p>
+-/// In the above example </tt>RooSimPdfBuilder</tt>
++/// In the above example <tt>RooSimPdfBuilder</tt>
+ /// will first replicate <tt>k</tt> and <tt>s</tt> into
+ /// <tt>k_C1,k_C2</tt> and <tt>s_C1,s_C2</tt>, as prescribed in the
+ /// configuration. Then it will recursively replicate all PDF nodes that depend on
+@@ -383,7 +383,7 @@
+ /// <tt>pdfA(x;p,q)</tt> and <tt>pdfB(x;p,r)</tt> that have a common parameter <tt>p</tt>.
+ /// We want to build a <tt>RooSimultaneous</tt> for both <tt>pdfA</tt> and <tt>B</tt>,
+ /// which involves a split of parameter <tt>p</tt> and we would like to build the
+-/// simultaneous pdfs </tt>simA</tt> and <tt>simB</tt> such that still share their (now split) parameters
++/// simultaneous pdfs <tt>simA</tt> and <tt>simB</tt> such that still share their (now split) parameters
+ /// <tt>p_XXX</tt>. This is accomplished by letting a single instance of <tt>RooSimPdfBuilder</tt> handle
+ /// the builds of both <tt>pdfA</tt> and <tt>pdfB</tt>, as illustrated in this example:
+ /// </p>
+diff --git a/tmva/tmva/src/Factory.cxx b/tmva/tmva/src/Factory.cxx
+index eda1b9ca1a..866aad0e18 100644
+--- a/tmva/tmva/src/Factory.cxx
++++ b/tmva/tmva/src/Factory.cxx
+@@ -683,9 +683,9 @@ void TMVA::Factory::WriteDataInformation(DataSetInfo& fDataSetInfo)
+ }
+
+ ////////////////////////////////////////////////////////////////////////////////
+-/// Iterates through all booked methods and sees if they use parameter tuning and if so..
+-/// does just that i.e. calls "Method::Train()" for different parameter settings and
+-/// keeps in mind the "optimal one"... and that's the one that will later on be used
++/// Iterates through all booked methods and sees if they use parameter tuning and if so
++/// does just that, i.e.\ calls "Method::Train()" for different parameter settings and
++/// keeps in mind the "optimal one"...\ and that's the one that will later on be used
+ /// in the main training loop.
+
+ std::map<TString,Double_t> TMVA::Factory::OptimizeAllMethods(TString fomType, TString fitType)
+diff --git a/tmva/tmva/src/Reader.cxx b/tmva/tmva/src/Reader.cxx
+index 56d65bb9bf..b34ee9f1de 100644
+--- a/tmva/tmva/src/Reader.cxx
++++ b/tmva/tmva/src/Reader.cxx
+@@ -594,7 +594,7 @@ const std::vector< Float_t >& TMVA::Reader::EvaluateRegression( const TString& m
+ ////////////////////////////////////////////////////////////////////////////////
+ /// evaluates the regression MVA
+ /// check for NaN in event data: (note: in the factory, this check was done already at the creation of the datasets, hence
+-/// it is not again checked in each of these subsequent calls..
++/// it is not again checked in each of these subsequent calls.
+
+ const std::vector< Float_t >& TMVA::Reader::EvaluateRegression( MethodBase* method, Double_t /*aux*/ )
+ {
+@@ -660,7 +660,7 @@ const std::vector< Float_t >& TMVA::Reader::EvaluateMulticlass( const TString& m
+ ////////////////////////////////////////////////////////////////////////////////
+ /// evaluates the multiclass MVA
+ /// check for NaN in event data: (note: in the factory, this check was done already at the creation of the datasets, hence
+-/// it is not again checked in each of these subsequent calls..
++/// it is not again checked in each of these subsequent calls.
+
+ const std::vector< Float_t >& TMVA::Reader::EvaluateMulticlass( MethodBase* method, Double_t /*aux*/ )
+ {
+diff --git a/tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx b/tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx
+index 17527ac16d..497dd3d5c6 100644
+--- a/tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx
++++ b/tree/dataframe/inc/ROOT/RDF/RColumnValue.hxx
+@@ -93,7 +93,7 @@ class R__CLING_PTRCHECK(off) RColumnValue {
+ /// Enumerator for the different properties of the branch storage in memory
+ enum class EStorageType : char { kContiguous, kUnknown, kSparse };
+ /// Signal whether we ever checked that the branch we are reading with a TTreeReaderArray stores array elements
+- /// in contiguous memory. Only used when T == RVec<U>.
++ /// in contiguous memory. Only used when T == RVec\<U\>.
+ EStorageType fStorageType = EStorageType::kUnknown;
+ /// If MustUseRVec, i.e. we are reading an array, we return a reference to this RVec to clients
+ RVec<ColumnValue_t> fRVec;
+diff --git a/tutorials/net/udpserver.c b/tutorials/net/udpserver.c
+index c54685400e..a74f6f0a85 100644
+--- a/tutorials/net/udpserver.c
++++ b/tutorials/net/udpserver.c
+@@ -4,7 +4,7 @@
+
+ /* Converted to echo client/server with select() (timeout option).
+ See testTUDPSocket.C */
+-/* Compile with: gcc udpserver.c -o udpserver
++/* Compile with: gcc udpserver.c -o udpserver */
+ /* on Windows: cl -nologo -Z7 -MD -GR -EHsc udpserver.c */
+ /* 3/30/05 John Schultz */
+
+diff --git a/tutorials/tmva/TMVA_CNN_Classification.C b/tutorials/tmva/TMVA_CNN_Classification.C
+index 47f26368d9..89373a8887 100644
+--- a/tutorials/tmva/TMVA_CNN_Classification.C
++++ b/tutorials/tmva/TMVA_CNN_Classification.C
+@@ -22,7 +22,7 @@
+ /// Helper function to create input images data
+ /// we create a signal and background 2D histograms from 2d gaussians
+ /// with a location (means in X and Y) different for each event
+-/// The difference between signal and background is in the gaussian width..
++/// The difference between signal and background is in the gaussian width.
+ /// The width for the bakground gaussian is slightly larger than the signal width by few % values
+ ///
+ ///
+--
+2.26.2
+
diff --git a/root-doxygen-filenames.patch b/root-doxygen-filenames.patch
new file mode 100644
index 0000000..d891a7f
--- /dev/null
+++ b/root-doxygen-filenames.patch
@@ -0,0 +1,378 @@
+From 116be70d2786a3fecdfcd6445d06ad6f3768f5a6 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Fri, 3 Jul 2020 08:08:33 +0200
+Subject: [PATCH 1/5] Fix \file references in doxygen markup
+
+---
+ core/base/v7/inc/ROOT/RDirectory.hxx | 2 +-
+ core/base/v7/inc/ROOT/RDirectoryEntry.hxx | 2 +-
+ core/base/v7/inc/ROOT/RError.hxx | 2 +-
+ core/base/v7/inc/ROOT/RIndexIter.hxx | 2 +-
+ core/base/v7/inc/ROOT/RLogger.hxx | 2 +-
+ core/base/v7/inc/ROOT/RTupleApply.hxx | 2 +-
+ core/base/v7/inc/ROOT/impl_tuple_apply.hxx | 2 +-
+ core/base/v7/src/RLogger.cxx | 2 +-
+ core/clingutils/test/TClingUtilsTests.cxx | 2 +-
+ core/foundation/inc/ROOT/RNotFn.hxx | 2 +-
+ core/foundation/inc/ROOT/RSpan.hxx | 2 +-
+ core/foundation/inc/ROOT/span.hxx | 2 +-
+ core/foundation/src/FoundationUtils.cxx | 2 +-
+ gui/browsable/inc/ROOT/Browsable/RItem.hxx | 2 +-
+ gui/browsable/src/RHistDraw7Provider.cxx | 2 +-
+ gui/browsable/src/RSysFile.cxx | 2 +-
+ gui/browserv7/inc/ROOT/RBrowserReply.hxx | 2 +-
+ hist/hist/test/TFormulaGradientTests.cxx | 2 +-
+ hist/histdrawv7/inc/ROOT/RHistDrawable.hxx | 2 +-
+ hist/histv7/inc/ROOT/RAxis.hxx | 2 +-
+ hist/histv7/inc/ROOT/RAxisConfig.hxx | 2 +-
+ hist/histv7/inc/ROOT/RHist.hxx | 2 +-
+ hist/histv7/inc/ROOT/RHistBinIter.hxx | 2 +-
+ hist/histv7/inc/ROOT/RHistBufferedFill.hxx | 2 +-
+ hist/histv7/inc/ROOT/RHistConcurrentFill.hxx | 2 +-
+ hist/histv7/inc/ROOT/RHistData.hxx | 2 +-
+ hist/histv7/inc/ROOT/RHistImpl.hxx | 2 +-
+ hist/histv7/inc/ROOT/RHistUtils.hxx | 2 +-
+ hist/histv7/inc/ROOT/RHistView.hxx | 2 +-
+ io/io/v7/inc/ROOT/RFile.hxx | 2 +-
+ math/mathcore/test/CladDerivatorTests.cxx | 2 +-
+ math/mathcore/v7/inc/ROOT/RFit.hxx | 2 +-
+ tmva/tmva/inc/TMVA/NeuralNet.h | 2 +-
+ 33 files changed, 33 insertions(+), 33 deletions(-)
+
+diff --git a/core/base/v7/inc/ROOT/RDirectory.hxx b/core/base/v7/inc/ROOT/RDirectory.hxx
+index 5331f91144..6d1a4b0541 100644
+--- a/core/base/v7/inc/ROOT/RDirectory.hxx
++++ b/core/base/v7/inc/ROOT/RDirectory.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RDirectory.h
++/// \file ROOT/RDirectory.hxx
+ /// \ingroup Base ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-07-31
+diff --git a/core/base/v7/inc/ROOT/RDirectoryEntry.hxx b/core/base/v7/inc/ROOT/RDirectoryEntry.hxx
+index a7258bc642..1a33e5003a 100644
+--- a/core/base/v7/inc/ROOT/RDirectoryEntry.hxx
++++ b/core/base/v7/inc/ROOT/RDirectoryEntry.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RDirectoryEntry.h
++/// \file ROOT/RDirectoryEntry.hxx
+ /// \ingroup Base ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-07-31
+diff --git a/core/base/v7/inc/ROOT/RError.hxx b/core/base/v7/inc/ROOT/RError.hxx
+index 7a0d363e7f..6af7a38f01 100644
+--- a/core/base/v7/inc/ROOT/RError.hxx
++++ b/core/base/v7/inc/ROOT/RError.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RError.h
++/// \file ROOT/RError.hxx
+ /// \ingroup Base ROOT7
+ /// \author Jakob Blomer <jblomer(a)cern.ch>
+ /// \date 2019-12-11
+diff --git a/core/base/v7/inc/ROOT/RIndexIter.hxx b/core/base/v7/inc/ROOT/RIndexIter.hxx
+index 1e290d82c8..fc424fdb8d 100644
+--- a/core/base/v7/inc/ROOT/RIndexIter.hxx
++++ b/core/base/v7/inc/ROOT/RIndexIter.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RIndexIter.h
++/// \file ROOT/RIndexIter.hxx
+ /// \ingroup Base ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2016-01-19
+diff --git a/core/base/v7/inc/ROOT/RLogger.hxx b/core/base/v7/inc/ROOT/RLogger.hxx
+index c1852656ee..d4e3e6e7bd 100644
+--- a/core/base/v7/inc/ROOT/RLogger.hxx
++++ b/core/base/v7/inc/ROOT/RLogger.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/TLogger.h
++/// \file ROOT/RLogger.hxx
+ /// \ingroup Base ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-03-29
+diff --git a/core/base/v7/inc/ROOT/RTupleApply.hxx b/core/base/v7/inc/ROOT/RTupleApply.hxx
+index 9a80bfcd6f..995246505f 100644
+--- a/core/base/v7/inc/ROOT/RTupleApply.hxx
++++ b/core/base/v7/inc/ROOT/RTupleApply.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RTupleApply.h
++/// \file ROOT/RTupleApply.hxx
+ /// \ingroup Base StdExt ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-09-06
+diff --git a/core/base/v7/inc/ROOT/impl_tuple_apply.hxx b/core/base/v7/inc/ROOT/impl_tuple_apply.hxx
+index dc12706906..68d6988f97 100644
+--- a/core/base/v7/inc/ROOT/impl_tuple_apply.hxx
++++ b/core/base/v7/inc/ROOT/impl_tuple_apply.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/impl_tuple_apply.h
++/// \file ROOT/impl_tuple_apply.hxx
+ /// \ingroup Base StdExt ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-07-09
+diff --git a/core/base/v7/src/RLogger.cxx b/core/base/v7/src/RLogger.cxx
+index 69aba0b05c..3ac8bb760f 100644
+--- a/core/base/v7/src/RLogger.cxx
++++ b/core/base/v7/src/RLogger.cxx
+@@ -1,4 +1,4 @@
+-/// \file TLogger.cxx
++/// \file RLogger.cxx
+ /// \ingroup Base ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-07-07
+diff --git a/core/clingutils/test/TClingUtilsTests.cxx b/core/clingutils/test/TClingUtilsTests.cxx
+index fca26705c3..fbc12cd352 100644
+--- a/core/clingutils/test/TClingUtilsTests.cxx
++++ b/core/clingutils/test/TClingUtilsTests.cxx
+@@ -1,4 +1,4 @@
+-/// \file TClingUtilsTest.cxx
++/// \file TClingUtilsTests.cxx
+ ///
+ /// \brief The file contain unit tests which test the TClingUtils.h
+ ///
+diff --git a/core/foundation/inc/ROOT/RNotFn.hxx b/core/foundation/inc/ROOT/RNotFn.hxx
+index a6dd13679e..a3877797f3 100644
+--- a/core/foundation/inc/ROOT/RNotFn.hxx
++++ b/core/foundation/inc/ROOT/RNotFn.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RNotFn.h
++/// \file ROOT/RNotFn.hxx
+ /// \ingroup Base StdExt
+ /// \author Danilo Piparo, Enrico Guiraud
+ /// \date 2018-01-19
+diff --git a/core/foundation/inc/ROOT/RSpan.hxx b/core/foundation/inc/ROOT/RSpan.hxx
+index 9e356493e6..b7366d58e7 100644
+--- a/core/foundation/inc/ROOT/RSpan.hxx
++++ b/core/foundation/inc/ROOT/RSpan.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RSpan.h
++/// \file ROOT/RSpan.hxx
+ /// \ingroup Base StdExt
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-09-06
+diff --git a/core/foundation/inc/ROOT/span.hxx b/core/foundation/inc/ROOT/span.hxx
+index ce1b0e1d96..185055bbe6 100644
+--- a/core/foundation/inc/ROOT/span.hxx
++++ b/core/foundation/inc/ROOT/span.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/rhysd_span.h
++/// \file ROOT/span.hxx
+ /// \ingroup Base StdExt
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-09-06
+diff --git a/core/foundation/src/FoundationUtils.cxx b/core/foundation/src/FoundationUtils.cxx
+index 9de395698b..d70e196130 100644
+--- a/core/foundation/src/FoundationUtils.cxx
++++ b/core/foundation/src/FoundationUtils.cxx
+@@ -1,4 +1,4 @@
+-/// \file FoundationUtils.hxx
++/// \file FoundationUtils.cxx
+ ///
+ /// \brief The file contains utilities which are foundational and could be used
+ /// across the core component of ROOT.
+diff --git a/gui/browsable/inc/ROOT/Browsable/RItem.hxx b/gui/browsable/inc/ROOT/Browsable/RItem.hxx
+index a07870a2cb..290587013e 100644
+--- a/gui/browsable/inc/ROOT/Browsable/RItem.hxx
++++ b/gui/browsable/inc/ROOT/Browsable/RItem.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RBrowser.hxx
++/// \file ROOT/RItem.hxx
+ /// \ingroup WebGui ROOT7
+ /// \author Bertrand Bellenot <bertrand.bellenot(a)cern.ch>
+ /// \author Sergey Linev <S.Linev(a)gsi.de>
+diff --git a/gui/browsable/src/RHistDraw7Provider.cxx b/gui/browsable/src/RHistDraw7Provider.cxx
+index 416db22472..e2e15303c6 100644
+--- a/gui/browsable/src/RHistDraw7Provider.cxx
++++ b/gui/browsable/src/RHistDraw7Provider.cxx
+@@ -1,4 +1,4 @@
+-/// \file RDrawableRHist.cxx
++/// \file RHistDraw7Provider.cxx
+ /// \ingroup rbrowser
+ /// \author Bertrand Bellenot <bertrand.bellenot(a)cern.ch>
+ /// \author Sergey Linev <S.Linev(a)gsi.de>
+diff --git a/gui/browsable/src/RSysFile.cxx b/gui/browsable/src/RSysFile.cxx
+index d5f481cb83..4447164f52 100644
+--- a/gui/browsable/src/RSysFile.cxx
++++ b/gui/browsable/src/RSysFile.cxx
+@@ -6,7 +6,7 @@
+ * For the list of contributors see $ROOTSYS/README/CREDITS. *
+ *************************************************************************/
+
+-/// \file ROOT/RFileBrowsable.cxx
++/// \file ROOT/RSysFile.cxx
+ /// \ingroup rbrowser
+ /// \author Sergey Linev <S.Linev(a)gsi.de>
+ /// \date 2019-10-15
+diff --git a/gui/browserv7/inc/ROOT/RBrowserReply.hxx b/gui/browserv7/inc/ROOT/RBrowserReply.hxx
+index bdb94f60ea..35a2f1f978 100644
+--- a/gui/browserv7/inc/ROOT/RBrowserReply.hxx
++++ b/gui/browserv7/inc/ROOT/RBrowserReply.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RBrowserRequest.hxx
++/// \file ROOT/RBrowserReply.hxx
+ /// \ingroup WebGui ROOT7
+ /// \author Bertrand Bellenot <bertrand.bellenot(a)cern.ch>
+ /// \author Sergey Linev <S.Linev(a)gsi.de>
+diff --git a/hist/hist/test/TFormulaGradientTests.cxx b/hist/hist/test/TFormulaGradientTests.cxx
+index 8c11a56077..74c0930f03 100644
+--- a/hist/hist/test/TFormulaGradientTests.cxx
++++ b/hist/hist/test/TFormulaGradientTests.cxx
+@@ -1,4 +1,4 @@
+-/// \file TFormulaGradientTests.h
++/// \file TFormulaGradientTests.cxx
+ ///
+ /// \brief The file contain unit tests which test the clad-based gradient
+ /// computations.
+diff --git a/hist/histdrawv7/inc/ROOT/RHistDrawable.hxx b/hist/histdrawv7/inc/ROOT/RHistDrawable.hxx
+index ac56b9c8f3..0b3b635d92 100644
+--- a/hist/histdrawv7/inc/ROOT/RHistDrawable.hxx
++++ b/hist/histdrawv7/inc/ROOT/RHistDrawable.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHistDrawable.h
++/// \file ROOT/RHistDrawable.hxx
+ /// \ingroup HistDraw ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-07-09
+diff --git a/hist/histv7/inc/ROOT/RAxis.hxx b/hist/histv7/inc/ROOT/RAxis.hxx
+index 1d35ed9b93..0371a06f97 100644
+--- a/hist/histv7/inc/ROOT/RAxis.hxx
++++ b/hist/histv7/inc/ROOT/RAxis.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RAxis.h
++/// \file ROOT/RAxis.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-03-23
+diff --git a/hist/histv7/inc/ROOT/RAxisConfig.hxx b/hist/histv7/inc/ROOT/RAxisConfig.hxx
+index 1e100986f0..34bf2f6a4a 100644
+--- a/hist/histv7/inc/ROOT/RAxisConfig.hxx
++++ b/hist/histv7/inc/ROOT/RAxisConfig.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RAxisConfig.h
++/// \file ROOT/RAxisConfig.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2020-02-05
+diff --git a/hist/histv7/inc/ROOT/RHist.hxx b/hist/histv7/inc/ROOT/RHist.hxx
+index ebb319f1ef..5567683b27 100644
+--- a/hist/histv7/inc/ROOT/RHist.hxx
++++ b/hist/histv7/inc/ROOT/RHist.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHist.h
++/// \file ROOT/RHist.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-03-23
+diff --git a/hist/histv7/inc/ROOT/RHistBinIter.hxx b/hist/histv7/inc/ROOT/RHistBinIter.hxx
+index 60f57dd20e..ab77dfbeaa 100644
+--- a/hist/histv7/inc/ROOT/RHistBinIter.hxx
++++ b/hist/histv7/inc/ROOT/RHistBinIter.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHistBinIter.h
++/// \file ROOT/RHistBinIter.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-08-07
+diff --git a/hist/histv7/inc/ROOT/RHistBufferedFill.hxx b/hist/histv7/inc/ROOT/RHistBufferedFill.hxx
+index bb1cade29b..8efe00e207 100644
+--- a/hist/histv7/inc/ROOT/RHistBufferedFill.hxx
++++ b/hist/histv7/inc/ROOT/RHistBufferedFill.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHistBufferedFill.h
++/// \file ROOT/RHistBufferedFill.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-07-03
+diff --git a/hist/histv7/inc/ROOT/RHistConcurrentFill.hxx b/hist/histv7/inc/ROOT/RHistConcurrentFill.hxx
+index a6b4b6a8e2..8ff76eb659 100644
+--- a/hist/histv7/inc/ROOT/RHistConcurrentFill.hxx
++++ b/hist/histv7/inc/ROOT/RHistConcurrentFill.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHistConcurrentFill.h
++/// \file ROOT/RHistConcurrentFill.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-07-03
+diff --git a/hist/histv7/inc/ROOT/RHistData.hxx b/hist/histv7/inc/ROOT/RHistData.hxx
+index 901bd5c33a..9757986ff4 100644
+--- a/hist/histv7/inc/ROOT/RHistData.hxx
++++ b/hist/histv7/inc/ROOT/RHistData.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHistData.h
++/// \file ROOT/RHistData.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-06-14
+diff --git a/hist/histv7/inc/ROOT/RHistImpl.hxx b/hist/histv7/inc/ROOT/RHistImpl.hxx
+index 483d879f0e..b6d4b2c6b5 100644
+--- a/hist/histv7/inc/ROOT/RHistImpl.hxx
++++ b/hist/histv7/inc/ROOT/RHistImpl.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHistImpl.h
++/// \file ROOT/RHistImpl.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-03-23
+diff --git a/hist/histv7/inc/ROOT/RHistUtils.hxx b/hist/histv7/inc/ROOT/RHistUtils.hxx
+index 3733113c2b..08a342bf61 100644
+--- a/hist/histv7/inc/ROOT/RHistUtils.hxx
++++ b/hist/histv7/inc/ROOT/RHistUtils.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHistData.h
++/// \file ROOT/RHistUtils.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2016-06-01
+diff --git a/hist/histv7/inc/ROOT/RHistView.hxx b/hist/histv7/inc/ROOT/RHistView.hxx
+index b65d3518dd..d2b40e0f35 100644
+--- a/hist/histv7/inc/ROOT/RHistView.hxx
++++ b/hist/histv7/inc/ROOT/RHistView.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RHistView.h
++/// \file ROOT/RHistView.hxx
+ /// \ingroup Hist ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-08-06
+diff --git a/io/io/v7/inc/ROOT/RFile.hxx b/io/io/v7/inc/ROOT/RFile.hxx
+index 6d3baaec05..c371a25875 100644
+--- a/io/io/v7/inc/ROOT/RFile.hxx
++++ b/io/io/v7/inc/ROOT/RFile.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RFile.h
++/// \file ROOT/RFile.hxx
+ /// \ingroup Base ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-07-31
+diff --git a/math/mathcore/test/CladDerivatorTests.cxx b/math/mathcore/test/CladDerivatorTests.cxx
+index e4289a7286..d1682094e0 100644
+--- a/math/mathcore/test/CladDerivatorTests.cxx
++++ b/math/mathcore/test/CladDerivatorTests.cxx
+@@ -1,4 +1,4 @@
+-/// \file CladDerivator.h
++/// \file CladDerivatorTests.cxx
+ ///
+ /// \brief The file contain unit tests which test the CladDerivator facility.
+ ///
+diff --git a/math/mathcore/v7/inc/ROOT/RFit.hxx b/math/mathcore/v7/inc/ROOT/RFit.hxx
+index 4fae336242..5b92733152 100644
+--- a/math/mathcore/v7/inc/ROOT/RFit.hxx
++++ b/math/mathcore/v7/inc/ROOT/RFit.hxx
+@@ -1,4 +1,4 @@
+-/// \file ROOT/RFit.h
++/// \file ROOT/RFit.hxx
+ /// \ingroup MathCore ROOT7
+ /// \author Axel Naumann <axel(a)cern.ch>
+ /// \date 2015-09-06
+diff --git a/tmva/tmva/inc/TMVA/NeuralNet.h b/tmva/tmva/inc/TMVA/NeuralNet.h
+index 31229cb1cf..bae98a48b2 100644
+--- a/tmva/tmva/inc/TMVA/NeuralNet.h
++++ b/tmva/tmva/inc/TMVA/NeuralNet.h
+@@ -1,5 +1,5 @@
+ /**
+- * @file NeuralNet
++ * @file TMVA/NeuralNet.h
+ * @author Peter Speckmayer
+ * @version 1.0
+ *
+--
+2.26.2
+
diff --git a/root-doxygen-macro-name.patch b/root-doxygen-macro-name.patch
new file mode 100644
index 0000000..a97bdf0
--- /dev/null
+++ b/root-doxygen-macro-name.patch
@@ -0,0 +1,29 @@
+From 8266262f76eaef4dc72ffda38e1d315be2ce3ff0 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Wed, 8 Jul 2020 19:41:34 +0200
+Subject: [PATCH 5/5] Make the name of macro match the filename
+
+Fixes:
+
+warning: Failed to call `rs302_JeffreysPriorDemo()` to execute the macro.
+Add this function or rename the macro. Falling back to `.L`.
+---
+ tutorials/roostats/rs302_JeffreysPriorDemo.C | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tutorials/roostats/rs302_JeffreysPriorDemo.C b/tutorials/roostats/rs302_JeffreysPriorDemo.C
+index c2f720a5f9..1c52e5dd83 100644
+--- a/tutorials/roostats/rs302_JeffreysPriorDemo.C
++++ b/tutorials/roostats/rs302_JeffreysPriorDemo.C
+@@ -49,7 +49,7 @@
+
+ using namespace RooFit;
+
+-void JeffreysPriorDemo()
++void rs302_JeffreysPriorDemo()
+ {
+ RooWorkspace w("w");
+ w.factory("Uniform::u(x[0,1])");
+--
+2.26.2
+
diff --git a/root-doxygen-md-comments.patch b/root-doxygen-md-comments.patch
new file mode 100644
index 0000000..c1f57e2
--- /dev/null
+++ b/root-doxygen-md-comments.patch
@@ -0,0 +1,214 @@
+From 7336caccd3288a9164c82b78053e8f4f59eb1a9c Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Sun, 12 Jul 2020 12:12:15 +0200
+Subject: [PATCH] Remove /** comments */ from md files
+
+---
+ math/genvector/doc/Genvector.md | 7 -------
+ math/genvector/doc/LorentzVector.md | 6 +-----
+ math/genvector/doc/Point3D.md | 6 ------
+ math/genvector/doc/Transformation.md | 6 ------
+ math/genvector/doc/Vector3D.md | 4 ----
+ math/genvector/doc/VectorPoint2D.md | 6 ------
+ math/genvector/doc/externalUsage.md | 6 ------
+ math/mathcore/doc/MathCore.md | 5 -----
+ math/mathmore/doc/MathMore.md | 5 -----
+ math/matrix/doc/Matrix.md | 3 ---
+ math/unuran/doc/Unuran.md | 8 ++------
+ 11 files changed, 3 insertions(+), 59 deletions(-)
+
+diff --git a/math/genvector/doc/Genvector.md b/math/genvector/doc/Genvector.md
+index 12e4e47a93..50dc61b2ce 100644
+--- a/math/genvector/doc/Genvector.md
++++ b/math/genvector/doc/Genvector.md
+@@ -1,5 +1,3 @@
+-/**
+-
+ \page Vector Generic Vector for 2, 3 and 4 Dimensions
+
+
+@@ -113,8 +111,3 @@ A more detailed description of all the GenVector classes is available in this [d
+ 2. [CLHEP Geometry package](http://www.hep.phy.cam.ac.uk/lhcb/doc/CLHEP/1.9.1.2/html/namespaceH)
+ 3. [%ROOT Physics Vector classes](http://root.cern.ch/root/html/PHYSICS_Index.html)
+ 4. [CMS Vector package](http://lcgapp.cern.ch/doxygen/SEAL/snapshot/html/dir_000007.html)
+-
+-* * *
+-
+-*/
+-
+diff --git a/math/genvector/doc/LorentzVector.md b/math/genvector/doc/LorentzVector.md
+index b40ea8c69c..e01ed4a8ca 100644
+--- a/math/genvector/doc/LorentzVector.md
++++ b/math/genvector/doc/LorentzVector.md
+@@ -1,6 +1,4 @@
+-// LorentzVector doxygen page
+-
+-/** \page LorentzVectorPage LorentzVector Classes
++\page LorentzVectorPage LorentzVector Classes
+
+ To avoid exposing templated parameter to the users, typedefs are defined for all types of vectors based an double's and float's. To use them, one must include the header file _Math/Vector4D.h_. The following typedef's, defined in the header file _Math/Vector4Dfwd.h_, are available for the different instantiations of the template class ROOT::Math::LorentzVector:
+
+@@ -110,5 +108,3 @@ v.Beta(); // return beta and gamma value
+ v.Gamma() // (vector must be time-like otherwise result is meaningless)
+ XYZVector b = v.BoostToCM() // return boost vector which will bring the Vector in its mas frame (P=0)
+ </pre>
+-
+-*/
+diff --git a/math/genvector/doc/Point3D.md b/math/genvector/doc/Point3D.md
+index a273b182d4..db55c68752 100644
+--- a/math/genvector/doc/Point3D.md
++++ b/math/genvector/doc/Point3D.md
+@@ -1,7 +1,3 @@
+-// Point3d doxygen page
+-
+-/**
+-
+ \page Point3DPage Point3D Classes
+
+ To avoid exposing templated parameter to the users, typedefs are defined for all types of vectors based an double's and float's. To use them, one must include the header file _Math/Point3D.h_. The following typedef's, defined in the header file _Math/Point3Dfwd.h_, are available for the different instantiations of the template class ROOT::Math::PositionVector3D:
+@@ -61,5 +57,3 @@ Exactly as for the 3D Vectors, the following operations are allowed:
+ * comparison of points
+ * scaling and division of points with a scalar
+ * dot and cross product with any type of vector
+-
+-*/
+diff --git a/math/genvector/doc/Transformation.md b/math/genvector/doc/Transformation.md
+index 7e66107f55..edc36778ed 100644
+--- a/math/genvector/doc/Transformation.md
++++ b/math/genvector/doc/Transformation.md
+@@ -1,7 +1,3 @@
+-// Rotation and transformation doxygen page
+-
+-/**
+-
+ \page TransformPage Vector Transformations
+
+ Transformations classes are grouped in Rotations (in 3 dimensions), Lorentz transformations and Poincarre transformations, which are Translation/Rotation combinations. Each group has several members which may model physically equivalent trasformations but with different internal representations.
+@@ -114,5 +110,3 @@ Transform3D t; t.GetComponens(m); // fill matrix of size 3x4 with c
+ </pre>
+
+ For more detailed documentation on all methods see the reference doc for the specific transformation class.
+-
+-*/
+diff --git a/math/genvector/doc/Vector3D.md b/math/genvector/doc/Vector3D.md
+index 4f65f6b603..9d10ce7db2 100644
+--- a/math/genvector/doc/Vector3D.md
++++ b/math/genvector/doc/Vector3D.md
+@@ -1,5 +1,3 @@
+-/**
+-
+ \page Vector3DPage Vector3D Classes
+
+
+@@ -120,5 +118,3 @@ Note that the multiplication between two vectors using the operator * is not sup
+
+ <pre>XYZVector u = v1.Unit(); // return unit vector parallel to v1
+ </pre>
+-
+-*/
+diff --git a/math/genvector/doc/VectorPoint2D.md b/math/genvector/doc/VectorPoint2D.md
+index 5c5e665088..287f3f8b73 100644
+--- a/math/genvector/doc/VectorPoint2D.md
++++ b/math/genvector/doc/VectorPoint2D.md
+@@ -1,7 +1,3 @@
+-// Vector2d doxygen page
+-
+-/**
+-
+ \page Vector2DPage 2D Point and Vector Classes
+
+ Similar to the \ref Vector3DPage and \ref Point3DPage , typedefs are defined to avoid exposing templated parameter to the users, for all 2D vectors based an double's and float's. To use them, one must include the header file _Math/Vector2D.h_ or _Math/Point2D.h_. The following typedef's, defined in the header file _Math/Vector2Dfwd.h_, are available for the different instantiations of the template class ROOT::Math::DisplacementVector2D:
+@@ -19,5 +15,3 @@ The typedef's, defined in the header file _Math/Point2Dfwd.h_, available for the
+ * ROOT::Math::Polar2DPointF vector based on r,phi coordinates (polar) in float precision
+
+ Similar constructs, functions and operations available for the 3D vectors and points (see \ref Vector3DPage and \ref Point3DPage ) are available also for the 2D vector and points. No transformations or rotation classes are available for the 2D vectors.
+-
+-*/
+diff --git a/math/genvector/doc/externalUsage.md b/math/genvector/doc/externalUsage.md
+index f8580225a5..4413bbafca 100644
+--- a/math/genvector/doc/externalUsage.md
++++ b/math/genvector/doc/externalUsage.md
+@@ -1,7 +1,3 @@
+-// example on using with exteral classes (doxygen page)
+-
+-/**
+-
+ \page ExtUsagePage Examples with External Packages
+
+ ### Connection to Linear Algebra classes
+@@ -48,5 +44,3 @@ XYZPoint p1(hp); // create a 3D Point from CLHEP geom
+
+ CLHEP::HepLorentzVector hq;
+ XYZTVector q(hq); // create a LorentzVector from CLHEP L.V.</double> </pre>
+-
+-*/
+diff --git a/math/mathcore/doc/MathCore.md b/math/mathcore/doc/MathCore.md
+index 4efc043cab..8d38b4ae19 100644
+--- a/math/mathcore/doc/MathCore.md
++++ b/math/mathcore/doc/MathCore.md
+@@ -1,5 +1,3 @@
+-/**
+-
+ \defgroup MathCore MathCore
+
+ \brief The Core Mathematical Library of %ROOT. See the \ref MathCorePage "MathCore" description page.
+@@ -32,6 +30,3 @@ MathCore contains instead now classes which were originally part of _libCore_. T
+ * Other classes, such as
+ * TKDTree for partitioning the data using a kd-Tree and TKDTreeBinning for binning data using a kdTree
+ * ROOT::Math::GoFTest for goodness of fit tests
+-
+-
+-*/
+diff --git a/math/mathmore/doc/MathMore.md b/math/mathmore/doc/MathMore.md
+index 28b3528a68..f30ef6d0be 100644
+--- a/math/mathmore/doc/MathMore.md
++++ b/math/mathmore/doc/MathMore.md
+@@ -1,6 +1,3 @@
+-
+-/**
+-
+ \defgroup MathMore MathMore
+
+ \brief The Mathematical library providing some advanced functionality and based on GSL. See the \ref MathMorePage "MathMore" Library page.
+@@ -32,5 +29,3 @@ To build MathMore you need to have first GSL installed somewhere in your system.
+ MathMore (and its %ROOT CINT dictionary) can be built within %ROOT whenever a GSL library is found in the system. Optionally the GSL library and header file location can be specified in the %ROOT configure script with _configure --with-gsl-incdir=... --with-gsl-libdir=..._
+ MathMore links with the GSL static libraries. On some platform (like Linux x86-64) GSL needs to be compiled with the option _--with-pic_.
+ The source code of MathMore is distributed under the GNU General Public License
+-
+-*/
+diff --git a/math/matrix/doc/Matrix.md b/math/matrix/doc/Matrix.md
+index ed0d9fffe8..f0b9d7a06a 100644
+--- a/math/matrix/doc/Matrix.md
++++ b/math/matrix/doc/Matrix.md
+@@ -1,6 +1,3 @@
+-/**
+-
+-
+ \page MatrixPage The ROOT Matrix Linear Algebra classes.
+
+
+diff --git a/math/unuran/doc/Unuran.md b/math/unuran/doc/Unuran.md
+index d807c4e807..4c64e0d214 100644
+--- a/math/unuran/doc/Unuran.md
++++ b/math/unuran/doc/Unuran.md
+@@ -1,9 +1,7 @@
+-/**
+-
+-Universal Non Uniform Random number generator for generating non uniform pseudo-random numbers
+-
+ \defgroup Unuran Unuran
+
++\brief Universal Non Uniform Random number generator for generating non uniform pseudo-random numbers.
++
+ \ingroup Math
+
+ UNU.RAN, (Universal Non Uniform Random number generator for generating non uniform pseudo-random numbers)
+@@ -120,5 +118,3 @@ TRandom pointer when constructing the TUnuran class (by default the ROOT gRandom
+
+ The (UNU.RAN documentation)[http://statistik.wu-wien.ac.at/unuran/doc/unuran.html#Top] provides a detailed
+ description of all the available methods and the possible options which one can pass to UNU.RAN for the various distributions.
+-*/
+-
+--
+2.26.2
+
diff --git a/root-doxygen-missing-underscore.patch b/root-doxygen-missing-underscore.patch
new file mode 100644
index 0000000..630d58f
--- /dev/null
+++ b/root-doxygen-missing-underscore.patch
@@ -0,0 +1,25 @@
+From e6e6715a73fb8b65ee24c11ff08ca34e25db9ef1 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Wed, 8 Jul 2020 19:41:10 +0200
+Subject: [PATCH 4/5] Add missing underscore
+
+---
+ tutorials/fit/vectorizedFit.C | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tutorials/fit/vectorizedFit.C b/tutorials/fit/vectorizedFit.C
+index d6b13e2fa7..1f6e317aa6 100644
+--- a/tutorials/fit/vectorizedFit.C
++++ b/tutorials/fit/vectorizedFit.C
+@@ -8,7 +8,7 @@
+ /// TF1::SetVectorized
+ ///
+ /// \macro_image
+-/// \macro output
++/// \macro_output
+ /// \macro_code
+ ///
+ /// \author Lorenzo Moneta
+--
+2.26.2
+
diff --git a/root-doxygen-parameter-names.patch b/root-doxygen-parameter-names.patch
new file mode 100644
index 0000000..7cc7d2e
--- /dev/null
+++ b/root-doxygen-parameter-names.patch
@@ -0,0 +1,1211 @@
+From e65727913e435819a3fc26513d9892d179eab1f2 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Wed, 8 Jul 2020 19:32:51 +0200
+Subject: [PATCH 3/5] Adjust parameter names in doxygen markup so they match
+ the code
+
+Addresses warnings:
+
+argument '<name>' of command @param is not found in the argument list
+of <function>.
+---
+ .../pythonizations/src/PyzPythonHelpers.cxx | 2 +-
+ bindings/r/inc/TRInterface.h | 4 +--
+ hist/hist/src/TF1.cxx | 5 ++-
+ hist/hist/src/TGraph.cxx | 6 ++--
+ hist/histpainter/src/TPainter3dAlgorithms.cxx | 6 ++--
+ hist/histv7/inc/ROOT/RAxis.hxx | 11 +++----
+ hist/histv7/inc/ROOT/RHist.hxx | 2 +-
+ hist/unfold/src/TUnfoldBinning.cxx | 24 +++++++-------
+ hist/unfold/src/TUnfoldBinningXML.cxx | 2 +-
+ hist/unfold/src/TUnfoldDensity.cxx | 2 +-
+ hist/unfold/src/TUnfoldSys.cxx | 7 ++--
+ io/io/inc/ROOT/TBufferMerger.hxx | 2 +-
+ math/mathcore/inc/Math/IntegratorMultiDim.h | 2 +-
+ math/minuit2/inc/Minuit2/FCNBase.h | 4 +--
+ math/minuit2/inc/Minuit2/FumiliChi2FCN.h | 2 +-
+ math/minuit2/inc/Minuit2/FumiliErrorUpdator.h | 2 +-
+ .../inc/Minuit2/FumiliMaximumLikelihoodFCN.h | 2 +-
+ roofit/roofit/src/RooExponential.cxx | 2 +-
+ roofit/roofit/src/RooGExpModel.cxx | 32 +++++++++----------
+ roofit/roofit/src/RooGaussian.cxx | 2 +-
+ roofit/roofit/src/RooJohnson.cxx | 2 +-
+ roofit/roofit/src/RooLandau.cxx | 2 +-
+ roofit/roofitcore/src/BatchData.cxx | 2 +-
+ roofit/roofitcore/src/RooAbsPdf.cxx | 4 +--
+ roofit/roofitcore/src/RooAbsReal.cxx | 2 +-
+ roofit/roofitcore/src/RooCustomizer.cxx | 4 +--
+ roofit/roofitcore/src/RooDataHist.cxx | 4 +--
+ roofit/roofitcore/src/RooDataSet.cxx | 10 +++---
+ roofit/roofitcore/src/RooFormulaVar.cxx | 2 +-
+ roofit/roofitcore/src/RooSuperCategory.cxx | 2 +-
+ roofit/roofitmore/src/RooHypatia2.cxx | 6 ++--
+ tmva/tmva/inc/TMVA/BDTEventWrapper.h | 4 +--
+ tmva/tmva/inc/TMVA/NeuralNet.h | 14 +++-----
+ tmva/tmva/inc/TMVA/NeuralNet.icc | 2 +-
+ tmva/tmva/inc/TMVA/RTensor.hxx | 2 +-
+ .../inc/TMVA/TreeInference/BranchlessTree.hxx | 4 +--
+ tmva/tmva/inc/TMVA/TreeInference/Forest.hxx | 2 +-
+ tmva/tmva/src/BDTEventWrapper.cxx | 2 +-
+ tmva/tmva/src/CrossValidation.cxx | 2 +-
+ tmva/tmva/src/CvSplit.cxx | 18 +++++------
+ tmva/tmva/src/Envelope.cxx | 12 +++----
+ tree/dataframe/inc/ROOT/RDF/RInterface.hxx | 16 +++++-----
+ tree/dataframe/inc/ROOT/RDFHelpers.hxx | 2 +-
+ tree/dataframe/inc/ROOT/RDataSource.hxx | 8 ++---
+ tree/dataframe/inc/ROOT/RResultPtr.hxx | 2 +-
+ tree/dataframe/src/RArrowDS.cxx | 4 +--
+ tree/tree/inc/TTree.h | 2 +-
+ tree/tree/src/TIOFeatures.cxx | 14 ++++----
+ 48 files changed, 131 insertions(+), 140 deletions(-)
+
+diff --git a/bindings/pyroot/pythonizations/src/PyzPythonHelpers.cxx b/bindings/pyroot/pythonizations/src/PyzPythonHelpers.cxx
+index 059debcee4..c5e354f300 100644
+--- a/bindings/pyroot/pythonizations/src/PyzPythonHelpers.cxx
++++ b/bindings/pyroot/pythonizations/src/PyzPythonHelpers.cxx
+@@ -99,7 +99,7 @@ PyObject *PyROOT::GetDataPointer(PyObject * /*self*/, PyObject *args)
+ /// \brief Get endianess of the system
+ /// \param[in] self Always null, since this is a module function.
+ /// \param[in] args Pointer to an empty Python tuple.
+-/// \param[out] Endianess as Python string
++/// \return Endianess as Python string
+ ///
+ /// This function returns endianess of the system as a Python integer. The
+ /// return value is either '<' or '>' for little or big endian, respectively.
+diff --git a/bindings/r/inc/TRInterface.h b/bindings/r/inc/TRInterface.h
+index bdb559bfb5..e097007429 100644
+--- a/bindings/r/inc/TRInterface.h
++++ b/bindings/r/inc/TRInterface.h
+@@ -206,7 +206,7 @@ namespace ROOT {
+ The command line arguments are by deafult argc=0 and argv=NULL,
+ The verbose mode is by default disabled but you can enable it to show procedures information in stdout/stderr \note some time can produce so much noise in the output
+ \param argc default 0
+- \param args default null
++ \param argv default null
+ \param loadRcpp default true
+ \param verbose default false
+ \param interactive default true
+@@ -226,7 +226,7 @@ namespace ROOT {
+ /**
+ Method to eval R code and you get the result in a reference to TRObject
+ \param code R code
+- \param ands reference to TRObject
++ \param ans reference to TRObject
+ \return an true or false if the execution was sucessful or not.
+ */
+ Int_t Eval(const TString &code, TRObject &ans); // parse line, returns in ans; error code rc
+diff --git a/hist/hist/src/TF1.cxx b/hist/hist/src/TF1.cxx
+index a72b309c1e..0b7c0b5e45 100644
+--- a/hist/hist/src/TF1.cxx
++++ b/hist/hist/src/TF1.cxx
+@@ -1973,12 +1973,11 @@ Double_t TF1::GetProb() const
+ /// F(x_{\frac{1}{2}}) = \prod(x < x_{\frac{1}{2}}) = \frac{1}{2}
+ /// \f]
+ ///
+-/// \param[in] this TF1 function
+ /// \param[in] nprobSum maximum size of array q and size of array probSum
++/// \param[out] q array filled with nq quantiles
+ /// \param[in] probSum array of positions where quantiles will be computed.
+ /// It is assumed to contain at least nprobSum values.
+-/// \param[out] return value nq (<=nprobSum) with the number of quantiles computed
+-/// \param[out] array q filled with nq quantiles
++/// \return value nq (<=nprobSum) with the number of quantiles computed
+ ///
+ /// Getting quantiles from two histograms and storing results in a TGraph,
+ /// a so-called QQ-plot
+diff --git a/hist/hist/src/TGraph.cxx b/hist/hist/src/TGraph.cxx
+index b6e05a4a9c..614c63d697 100644
+--- a/hist/hist/src/TGraph.cxx
++++ b/hist/hist/src/TGraph.cxx
+@@ -1900,9 +1900,9 @@ Int_t TGraph::IsInside(Double_t x, Double_t y) const
+ /// Least squares polynomial fitting without weights.
+ ///
+ /// \param [in] m number of parameters
+-/// \param [in] ma array of parameters
+-/// \param [in] mfirst 1st point number to fit (default =0)
+-/// \param [in] mlast last point number to fit (default=fNpoints-1)
++/// \param [in] a array of parameters
++/// \param [in] xmin 1st point number to fit (default =0)
++/// \param [in] xmax last point number to fit (default=fNpoints-1)
+ ///
+ /// based on CERNLIB routine LSQ: Translated to C++ by Rene Brun
+
+diff --git a/hist/histpainter/src/TPainter3dAlgorithms.cxx b/hist/histpainter/src/TPainter3dAlgorithms.cxx
+index e0dd1f28e4..a95ac36d2d 100644
+--- a/hist/histpainter/src/TPainter3dAlgorithms.cxx
++++ b/hist/histpainter/src/TPainter3dAlgorithms.cxx
+@@ -3122,8 +3122,8 @@ L500:
+ /// Set light source
+ ///
+ /// \param[in] nl source number: 1 off all light sources, 0 set diffused light
+-/// \param[in] xl intensity of the light source
+-/// \param[in] xscr `yscr` `zscr` direction of the light (in respect of the screen)
++/// \param[in] yl intensity of the light source
++/// \param[in] xscr, yscr, zscr direction of the light (in respect of the screen)
+ ///
+ /// \param[out] irep reply (0 - O.K, -1 error)
+
+@@ -4074,7 +4074,7 @@ L500:
+ /// \param[in] qqa diffusion coefficient for diffused light [0.,1.]
+ /// \param[in] qqd diffusion coefficient for direct light [0.,1.]
+ /// \param[in] qqs diffusion coefficient for reflected light [0.,1.]
+-/// \param[in] nncs power coefficient for reflected light (.GE.1)
++/// \param[in] nnqs power coefficient for reflected light (.GE.1)
+ ///
+ /// Lightness model formula: Y = YD*QA + > YLi*(QD*cosNi+QS*cosRi)
+ ///
+diff --git a/hist/histv7/inc/ROOT/RAxis.hxx b/hist/histv7/inc/ROOT/RAxis.hxx
+index 0371a06f97..52ed88b9d8 100644
+--- a/hist/histv7/inc/ROOT/RAxis.hxx
++++ b/hist/histv7/inc/ROOT/RAxis.hxx
+@@ -68,7 +68,7 @@ protected:
+ /// determine the bin number taking into account how over/underflow
+ /// should be handled.
+ ///
+- /// \param[out] result status of the bin determination.
++ /// \param[in] rawbin for which to determine the bin number.
+ /// \return Returns the bin number adjusted for potential over- and underflow
+ /// bins. Returns `kInvalidBin` if the axis cannot handle the over- / underflow.
+ ///
+@@ -390,7 +390,7 @@ protected:
+ /// Determine the inverse bin width.
+ /// \param nbinsNoOver - number of bins without unter-/overflow
+ /// \param lowOrHigh - first axis boundary
+- /// \param lighOrLow - second axis boundary
++ /// \param highOrLow - second axis boundary
+ static double GetInvBinWidth(int nbinsNoOver, double lowOrHigh, double highOrLow)
+ {
+ return nbinsNoOver / std::fabs(highOrLow - lowOrHigh);
+@@ -413,7 +413,7 @@ public:
+
+ /// Initialize a RAxisEquidistant.
+ /// \param[in] title - axis title used for graphics and text representation.
+- /// \param nbins - number of bins in the axis, excluding under- and overflow
++ /// \param nbinsNoOver - number of bins in the axis, excluding under- and overflow
+ /// bins.
+ /// \param low - the low axis range. Any coordinate below that is considered
+ /// as underflow. The first bin's lower edge is at this value.
+@@ -427,13 +427,12 @@ public:
+ {}
+
+ /// Initialize a RAxisEquidistant.
+- /// \param nbins - number of bins in the axis, excluding under- and overflow
++ /// \param nbinsNoOver - number of bins in the axis, excluding under- and overflow
+ /// bins.
+ /// \param low - the low axis range. Any coordinate below that is considered
+ /// as underflow. The first bin's lower edge is at this value.
+ /// \param high - the high axis range. Any coordinate above that is considered
+ /// as overflow. The last bin's higher edge is at this value.
+- /// \param canGrow - whether this axis can extend its range.
+ explicit RAxisEquidistant(int nbinsNoOver, double low, double high) noexcept
+ : RAxisEquidistant("", nbinsNoOver, low, high)
+ {}
+@@ -505,6 +504,7 @@ struct AxisConfigToType<RAxisConfig::kEquidistant> {
+ class RAxisGrow: public RAxisEquidistant {
+ public:
+ /// Initialize a RAxisGrow.
++ /// \param[in] title - axis title used for graphics and text representation.
+ /// \param nbins - number of bins in the axis, excluding under- and overflow
+ /// bins. This value is fixed over the lifetime of the object.
+ /// \param low - the initial value for the low axis range. Any coordinate
+@@ -518,7 +518,6 @@ public:
+ {}
+
+ /// Initialize a RAxisGrow.
+- /// \param[in] title - axis title used for graphics and text representation.
+ /// \param nbins - number of bins in the axis, excluding under- and overflow
+ /// bins. This value is fixed over the lifetime of the object.
+ /// \param low - the initial value for the low axis range. Any coordinate
+diff --git a/hist/histv7/inc/ROOT/RHist.hxx b/hist/histv7/inc/ROOT/RHist.hxx
+index 5567683b27..e2b7649975 100644
+--- a/hist/histv7/inc/ROOT/RHist.hxx
++++ b/hist/histv7/inc/ROOT/RHist.hxx
+@@ -219,9 +219,9 @@ struct RHistImplGen {
+ ///
+ /// Delegate to the appropriate MakeNextAxis instantiation, depending on the
+ /// axis type selected in the RAxisConfig.
++ /// \param title - title of the derived object.
+ /// \param axes - `RAxisConfig` objects describing the axis of the resulting
+ /// RHistImpl.
+- /// \param statConfig - the statConfig parameter to be passed to the RHistImpl
+ /// \param processedAxisArgs - the RAxisBase-derived axis objects describing the
+ /// axes of the resulting RHistImpl. There are `IDIM` of those; in the end
+ /// (`IDIM` == `GetNDim()`), all `axes` have been converted to
+diff --git a/hist/unfold/src/TUnfoldBinning.cxx b/hist/unfold/src/TUnfoldBinning.cxx
+index 3aecbf53c2..2500230dca 100644
+--- a/hist/unfold/src/TUnfoldBinning.cxx
++++ b/hist/unfold/src/TUnfoldBinning.cxx
+@@ -205,7 +205,7 @@ Int_t TUnfoldBinning::UpdateFirstLastBin(Bool_t startWithRootNode)
+ /// Create a new node without axis.
+ ///
+ /// \param[in] name identifier of the node
+-/// \param[in] nBin number of unconnected bins (could be zero)
++/// \param[in] nBins number of unconnected bins (could be zero)
+ /// \param[in] binNames (optional) names of the bins separated by ';'
+
+ TUnfoldBinning::TUnfoldBinning
+@@ -241,7 +241,7 @@ TUnfoldBinning::TUnfoldBinning
+ /// Add a new binning node as last last child of this node.
+ ///
+ /// \param[in] name name of the node
+-/// \param[in] nBin number of extra bins
++/// \param[in] nBins number of extra bins
+ /// \param[in] binNames (optional) names of the bins separated by ';'
+ ///
+ /// this is a shortcut for AddBinning(new TUnfoldBinning(name,nBins,binNames))
+@@ -695,11 +695,11 @@ Int_t TUnfoldBinning::GetTH1xNumberOfBins
+ ///
+ /// \param[in] histogramName name of the histogram which is created
+ /// \param[in] originalAxisBinning if true, try to preserve the axis binning
+-/// \param[out] (default=0) binMap mapping of global bins to histogram bins.
++/// \param[out] binMap (default=0) mapping of global bins to histogram bins.
+ /// if(binMap==0), no binMap is created
+-/// \param[in] (default=0) histogramTitle title of the histogram. If zero, a title
++/// \param[in] histogramTitle (default=0) title of the histogram. If zero, a title
+ /// is selected automatically
+-/// \param[in] (default=0) axisSteering steer the handling of underflow/overflow
++/// \param[in] axisSteering (default=0) steer the handling of underflow/overflow
+ /// and projections
+ ///
+ /// returns a new histogram (TH1D, TH2D or TH3D)
+@@ -789,11 +789,11 @@ TH1 *TUnfoldBinning::CreateHistogram
+ ///
+ /// \param[in] histogramName name of the histogram which is created
+ /// \param[in] originalAxisBinning if true, try to preserve the axis binning
+-/// \param[out] (default=0) binMap mapping of global bins to histogram bins.
++/// \param[out] binMap (default=0) mapping of global bins to histogram bins.
+ /// if(binMap==0), no binMap is created
+-/// \param[in] (default=0) histogramTitle title of the histogram. If zero, a title
++/// \param[in] histogramTitle (default=0) title of the histogram. If zero, a title
+ /// is selected automatically
+-/// \param[in] (default=0) axisSteering steer the handling of underflow/overflow
++/// \param[in] axisSteering (default=0) steer the handling of underflow/overflow
+ /// and projections
+ ///
+ /// returns a new TH2D. The options are described in greater detail
+@@ -832,7 +832,7 @@ TH2D *TUnfoldBinning::CreateErrorMatrixHistogram
+ /// Create a TH2D histogram capable to hold the bins of the two
+ /// input binning schemes on the x and y axes, respectively.
+ ///
+-/// \paran[in] xAxis binning scheme for the x axis
++/// \param[in] xAxis binning scheme for the x axis
+ /// \param[in] yAxis binning scheme for the y axis
+ /// \param[in] histogramName name of the histogram which is created
+ /// \param[in] originalXAxisBinning preserve x-axis bin widths if possible
+@@ -1053,8 +1053,8 @@ Int_t *TUnfoldBinning::CreateEmptyBinMap(void) const {
+ /// Set one entry in a bin map.
+ ///
+ /// \param[out] binMap to be used with TUnfoldSys::GetOutput() etc
+-/// \param[in] source bin, global bin number in this binning scheme
+-/// \param[in] destination bin in the output histogram
++/// \param[in] globalBin source bin, global bin number in this binning scheme
++/// \param[in] destBin destination bin in the output histogram
+
+ void TUnfoldBinning::SetBinMapEntry
+ (Int_t *binMap,Int_t globalBin,Int_t destBin) const {
+@@ -2075,7 +2075,7 @@ Int_t TUnfoldBinning::ToGlobalBin
+ /// and bin numbers on the corresponding axes.
+ ///
+ /// \param[in] globalBin global bin number
+-/// \param[out] local bin numbers of the distribution's axes
++/// \param[out] axisBins local bin numbers of the distribution's axes
+ ///
+ /// returns the distribution in which the globalBin is located
+ /// or 0 if the globalBin is outside this node and its children
+diff --git a/hist/unfold/src/TUnfoldBinningXML.cxx b/hist/unfold/src/TUnfoldBinningXML.cxx
+index 28ce408128..a1daf58215 100644
+--- a/hist/unfold/src/TUnfoldBinningXML.cxx
++++ b/hist/unfold/src/TUnfoldBinningXML.cxx
+@@ -472,7 +472,7 @@ void TUnfoldBinningXML::AddAxisXML(TXMLNode *node) {
+ /// Export a binning scheme to a stream in XML format.
+ ///
+ /// \param[in] binning the binning scheme to export
+-/// \param[out] stream to write to
++/// \param[in] out stream to write to
+ /// \param[in] writeHeader set true when writing the first binning
+ /// scheme to this stream
+ /// \param[in] writeFooter set true when writing the last binning
+diff --git a/hist/unfold/src/TUnfoldDensity.cxx b/hist/unfold/src/TUnfoldDensity.cxx
+index 9b32da0961..78c7ddbf14 100644
+--- a/hist/unfold/src/TUnfoldDensity.cxx
++++ b/hist/unfold/src/TUnfoldDensity.cxx
+@@ -1311,7 +1311,7 @@ const TUnfoldBinning *TUnfoldDensity::GetOutputBinning
+ /// \param[out] scanResult the scanned function wrt log(tau)
+ /// \param[in] mode 1st parameter for the scan function
+ /// \param[in] distribution 2nd parameter for the scan function
+-/// \param[in] projectionMode 3rd parameter for the scan function
++/// \param[in] axisSteering 3rd parameter for the scan function
+ /// \param[out] lCurvePlot for monitoring, shows the L-curve
+ /// \param[out] logTauXPlot for monitoring, L-curve(X) as a function of log(tau)
+ /// \param[out] logTauYPlot for monitoring, L-curve(Y) as a function of log(tau)
+diff --git a/hist/unfold/src/TUnfoldSys.cxx b/hist/unfold/src/TUnfoldSys.cxx
+index 42bbc7751c..1e89445cde 100644
+--- a/hist/unfold/src/TUnfoldSys.cxx
++++ b/hist/unfold/src/TUnfoldSys.cxx
+@@ -463,7 +463,7 @@ Int_t TUnfoldSys::SetInput(const TH1 *hist_y,Double_t scaleBias,
+ /// \param[in] bgr background distribution with uncorrelated errors
+ /// \param[in] name identifier for this background source
+ /// \param[in] scale normalisation factor applied to the background
+-/// \param[in] scaleError normalisation uncertainty
++/// \param[in] scale_error normalisation uncertainty
+ ///
+ /// The contribution <b>scale</b>*<b>bgr</b> is subtracted from the
+ /// measurement prior to unfolding. The following contributions are
+@@ -1045,7 +1045,6 @@ Bool_t TUnfoldSys::GetDeltaSysBackgroundScale
+ /// Correlated one-sigma shifts from shifting tau.
+ ///
+ /// \param[out] hist_delta histogram to store shifts
+-/// \param[in] source identifier of the background source
+ /// \param[in] binMap (default=0) remapping of histogram bins
+ ///
+ /// returns true if the background source was found.
+@@ -1100,8 +1099,8 @@ void TUnfoldSys::GetEmatrixSysSource
+ ////////////////////////////////////////////////////////////////////////////////
+ /// Covariance contribution from background normalisation uncertainty.
+ ///
+-/// \param[inout] ematrix output histogram
+-/// \param[in] source identifier of the background source
++/// \param[in,out] ematrix output histogram
++/// \param[in] name identifier of the background source
+ /// \param[in] binMap (default=0) remapping of histogram bins
+ /// \param[in] clearEmat (default=true) if true, clear the histogram
+ /// prior to adding the covariance matrix contribution
+diff --git a/io/io/inc/ROOT/TBufferMerger.hxx b/io/io/inc/ROOT/TBufferMerger.hxx
+index 27fe36d399..5e4cfe52cb 100644
+--- a/io/io/inc/ROOT/TBufferMerger.hxx
++++ b/io/io/inc/ROOT/TBufferMerger.hxx
+@@ -43,7 +43,7 @@ public:
+ /** Constructor
+ * @param name Output file name
+ * @param option Output file creation options
+- * @param compression Output file compression level
++ * @param compress Output file compression level
+ */
+ TBufferMerger(const char *name, Option_t *option = "RECREATE", Int_t compress = ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault);
+
+diff --git a/math/mathcore/inc/Math/IntegratorMultiDim.h b/math/mathcore/inc/Math/IntegratorMultiDim.h
+index 0d2d56396e..7b14f96d8e 100644
+--- a/math/mathcore/inc/Math/IntegratorMultiDim.h
++++ b/math/mathcore/inc/Math/IntegratorMultiDim.h
+@@ -60,7 +60,7 @@ public:
+ @param type integration type (adaptive, MC methods, etc..)
+ @param absTol desired absolute Error
+ @param relTol desired relative Error
+- @param size maximum number of sub-intervals
++ @param ncall number of function calls (apply only to MC integratioon methods)
+
+ In case no parameter values are passed the default ones used in IntegratorMultiDimOptions are used
+ */
+diff --git a/math/minuit2/inc/Minuit2/FCNBase.h b/math/minuit2/inc/Minuit2/FCNBase.h
+index bf6c64bd9e..760df5b6f4 100644
+--- a/math/minuit2/inc/Minuit2/FCNBase.h
++++ b/math/minuit2/inc/Minuit2/FCNBase.h
+@@ -65,7 +65,7 @@ public:
+ as it searches for the Minimum or performs whatever analysis is requested by
+ the user.
+
+- @param par function parameters as defined by the user.
++ @param v function parameters as defined by the user.
+
+ @return the Value of the function.
+
+@@ -75,7 +75,7 @@ public:
+
+ */
+
+- virtual double operator()(const std::vector<double>& x) const = 0;
++ virtual double operator()(const std::vector<double>& v) const = 0;
+
+
+ /**
+diff --git a/math/minuit2/inc/Minuit2/FumiliChi2FCN.h b/math/minuit2/inc/Minuit2/FumiliChi2FCN.h
+index 6af985ef08..fac33baaf6 100644
+--- a/math/minuit2/inc/Minuit2/FumiliChi2FCN.h
++++ b/math/minuit2/inc/Minuit2/FumiliChi2FCN.h
+@@ -62,7 +62,7 @@ public:
+
+ Sets the model function for the data (for example gaussian+linear for a peak)
+
+- @param modelFunction a reference to the model function.
++ @param modelFCN a reference to the model function.
+
+ */
+
+diff --git a/math/minuit2/inc/Minuit2/FumiliErrorUpdator.h b/math/minuit2/inc/Minuit2/FumiliErrorUpdator.h
+index 3eb5da9c36..4b620c57a8 100644
+--- a/math/minuit2/inc/Minuit2/FumiliErrorUpdator.h
++++ b/math/minuit2/inc/Minuit2/FumiliErrorUpdator.h
+@@ -67,7 +67,7 @@ public:
+
+ @param fGradientCalculator the Gradient calculator used to retrieved the Parameter transformation
+
+- @param fFumiliFCNBase the function calculating the figure of merit.
++ @param lambda the Marquard lambda factor
+
+
+ \todo Some nice latex mathematical formuli...
+diff --git a/math/minuit2/inc/Minuit2/FumiliMaximumLikelihoodFCN.h b/math/minuit2/inc/Minuit2/FumiliMaximumLikelihoodFCN.h
+index c6725ae350..1661bee94a 100644
+--- a/math/minuit2/inc/Minuit2/FumiliMaximumLikelihoodFCN.h
++++ b/math/minuit2/inc/Minuit2/FumiliMaximumLikelihoodFCN.h
+@@ -61,7 +61,7 @@ public:
+
+ Sets the model function for the data (for example gaussian+linear for a peak)
+
+- @param modelFunction a reference to the model function.
++ @param modelFCN a reference to the model function.
+
+ */
+
+diff --git a/roofit/roofit/src/RooExponential.cxx b/roofit/roofit/src/RooExponential.cxx
+index dc211f5275..e16871c5eb 100644
+--- a/roofit/roofit/src/RooExponential.cxx
++++ b/roofit/roofit/src/RooExponential.cxx
+@@ -102,7 +102,7 @@ void compute(size_t n, double* __restrict output, Tx x, Tc c) {
+
+ ////////////////////////////////////////////////////////////////////////////////
+ /// Evaluate the exponential without normalising it on the given batch.
+-/// \param[in] batchIndex Index of the batch to be computed.
++/// \param[in] begin Index of the batch to be computed.
+ /// \param[in] batchSize Size of each batch. The last batch may be smaller.
+ /// \return A span with the computed values.
+
+diff --git a/roofit/roofit/src/RooGExpModel.cxx b/roofit/roofit/src/RooGExpModel.cxx
+index 9c7f184b69..18f5688217 100644
+--- a/roofit/roofit/src/RooGExpModel.cxx
++++ b/roofit/roofit/src/RooGExpModel.cxx
+@@ -48,10 +48,10 @@ ClassImp(RooGExpModel);
+ ///
+ /// \param[in] name Name of this instance.
+ /// \param[in] title Title (e.g. for plotting)
+-/// \param[in] x The convolution observable.
+-/// \param[in] mean The mean of the Gaussian.
+-/// \param[in] sigma Width of the Gaussian.
+-/// \param[in] rlife Lifetime constant \f$ \tau \f$.
++/// \param[in] xIn The convolution observable.
++/// \param[in] meanIn The mean of the Gaussian.
++/// \param[in] sigmaIn Width of the Gaussian.
++/// \param[in] rlifeIn Lifetime constant \f$ \tau \f$.
+ /// \param[in] meanSF Scale factor for mean.
+ /// \param[in] sigmaSF Scale factor for sigma.
+ /// \param[in] rlifeSF Scale factor for rlife.
+@@ -81,9 +81,9 @@ RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue
+ ///
+ /// \param[in] name Name of this instance.
+ /// \param[in] title Title (e.g. for plotting)
+-/// \param[in] x The convolution observable.
+-/// \param[in] sigma Width of the Gaussian.
+-/// \param[in] rlife Lifetime constant \f$ \tau \f$.
++/// \param[in] xIn The convolution observable.
++/// \param[in] _sigma Width of the Gaussian.
++/// \param[in] _rlife Lifetime constant \f$ \tau \f$.
+ /// \param[in] nlo Include next-to-leading order for higher accuracy of convolution.
+ /// \param[in] type Switch between normal and flipped model.
+ RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue& xIn,
+@@ -105,10 +105,10 @@ RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue
+ ///
+ /// \param[in] name Name of this instance.
+ /// \param[in] title Title (e.g. for plotting)
+-/// \param[in] x The convolution observable.
+-/// \param[in] sigma Width of the Gaussian.
+-/// \param[in] rlife Lifetime constant \f$ \tau \f$.
+-/// \param[in] srSF Scale factor for both sigma and tau.
++/// \param[in] xIn The convolution observable.
++/// \param[in] _sigma Width of the Gaussian.
++/// \param[in] _rlife Lifetime constant \f$ \tau \f$.
++/// \param[in] _rsSF Scale factor for both sigma and tau.
+ /// \param[in] nlo Include next-to-leading order for higher accuracy of convolution.
+ /// \param[in] type Switch between normal and flipped model.
+ RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue& xIn,
+@@ -134,11 +134,11 @@ RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue
+ ///
+ /// \param[in] name Name of this instance.
+ /// \param[in] title Title (e.g. for plotting)
+-/// \param[in] x The convolution observable.
+-/// \param[in] sigma Width of the Gaussian.
+-/// \param[in] rlife Lifetime constant \f$ \tau \f$.
+-/// \param[in] sigmaSF Scale factor for sigma.
+-/// \param[in] rlifeSF Scale factor for rlife.
++/// \param[in] xIn The convolution observable.
++/// \param[in] _sigma Width of the Gaussian.
++/// \param[in] _rlife Lifetime constant \f$ \tau \f$.
++/// \param[in] _sigmaSF Scale factor for sigma.
++/// \param[in] _rlifeSF Scale factor for rlife.
+ /// \param[in] nlo Include next-to-leading order for higher accuracy of convolution.
+ /// \param[in] type Switch between normal and flipped model.
+ RooGExpModel::RooGExpModel(const char *name, const char *title, RooAbsRealLValue& xIn,
+diff --git a/roofit/roofit/src/RooGaussian.cxx b/roofit/roofit/src/RooGaussian.cxx
+index 9d18be7354..aec93528ba 100644
+--- a/roofit/roofit/src/RooGaussian.cxx
++++ b/roofit/roofit/src/RooGaussian.cxx
+@@ -92,7 +92,7 @@ void compute(RooSpan<double> output, Tx x, TMean mean, TSig sigma) {
+ /// and if found, the computation will be batched over their
+ /// values. If batch data are not found for one of the proxies, the proxies value is assumed to
+ /// be constant over the batch.
+-/// \param[in] batchIndex Index of the batch to be computed.
++/// \param[in] begin Index of the batch to be computed.
+ /// \param[in] batchSize Size of each batch. The last batch may be smaller.
+ /// \return A span with the computed values.
+
+diff --git a/roofit/roofit/src/RooJohnson.cxx b/roofit/roofit/src/RooJohnson.cxx
+index ba6686f698..1dd6de96b2 100644
+--- a/roofit/roofit/src/RooJohnson.cxx
++++ b/roofit/roofit/src/RooJohnson.cxx
+@@ -153,7 +153,7 @@ void compute(RooSpan<double> output, TMass mass, TMu mu, TLambda lambda, TGamma
+ /// and if found, the computation will be batched over their
+ /// values. If batch data are not found for one of the proxies, the proxies value is assumed to
+ /// be constant over the batch.
+-/// \param[in] batchIndex Index of the batch to be computed.
++/// \param[in] begin Index of the batch to be computed.
+ /// \param[in] maxSize Maximal size of the batches. May return smaller batches depending on inputs.
+ /// \return A span with the computed values.
+
+diff --git a/roofit/roofit/src/RooLandau.cxx b/roofit/roofit/src/RooLandau.cxx
+index e59a923cf0..2dade45b3a 100644
+--- a/roofit/roofit/src/RooLandau.cxx
++++ b/roofit/roofit/src/RooLandau.cxx
+@@ -169,7 +169,7 @@ void compute( size_t batchSize,
+ /// and if found, the computation will be batched over their
+ /// values. If batch data are not found for one of the proxies, the proxies value is assumed to
+ /// be constant over the batch.
+-/// \param[in] batchIndex Index of the batch to be computed.
++/// \param[in] begin Index of the batch to be computed.
+ /// \param[in] batchSize Size of each batch. The last batch may be smaller.
+ /// \return A span with the computed values.
+
+diff --git a/roofit/roofitcore/src/BatchData.cxx b/roofit/roofitcore/src/BatchData.cxx
+index fd05343076..5bbe34e20b 100644
+--- a/roofit/roofitcore/src/BatchData.cxx
++++ b/roofit/roofitcore/src/BatchData.cxx
+@@ -73,7 +73,7 @@ bool BatchData::setStatus(std::size_t begin, std::size_t size, Status_t stat,
+ /// Retrieve an existing batch.
+ ///
+ /// \param[in] begin Begin index of the batch.
+-/// \param[in] size Requested size. Batch may come out smaller than this.
++/// \param[in] maxSize Requested size. Batch may come out smaller than this.
+ /// \param[in] normSet Optional normSet pointer to distinguish differently normalised computations.
+ /// \param[in] ownerTag Optional owner tag. This avoids reusing batch memory for e.g. getVal() and getLogVal().
+ /// \return Non-mutable contiguous batch data.
+diff --git a/roofit/roofitcore/src/RooAbsPdf.cxx b/roofit/roofitcore/src/RooAbsPdf.cxx
+index 9f68b1cdb7..9e7eb69e09 100644
+--- a/roofit/roofitcore/src/RooAbsPdf.cxx
++++ b/roofit/roofitcore/src/RooAbsPdf.cxx
+@@ -711,7 +711,7 @@ bool checkInfNaNNeg(const T& inputs) {
+
+ ////////////////////////////////////////////////////////////////////////////////
+ /// Scan through outputs and fix+log all nans and negative values.
+-/// \param[in/out] outputs Array to be scanned & fixed.
++/// \param[in,out] outputs Array to be scanned & fixed.
+ /// \param[in] begin Begin of event range. Only needed to print the correct event number
+ /// where the error occurred.
+ void RooAbsPdf::logBatchComputationErrors(RooSpan<const double>& outputs, std::size_t begin) const {
+@@ -734,7 +734,7 @@ void RooAbsPdf::logBatchComputationErrors(RooSpan<const double>& outputs, std::s
+ /// Compute the log-likelihoods for all events in the requested batch.
+ /// The arguments are passed over to getValBatch().
+ /// \param[in] begin Start of the batch.
+-/// \param[in] size Maximum size of the batch. Depending on data layout and memory, the batch
++/// \param[in] maxSize Maximum size of the batch. Depending on data layout and memory, the batch
+ /// may come back smaller.
+ /// \return Returns a batch of doubles that contains the log probabilities.
+ RooSpan<const double> RooAbsPdf::getLogValBatch(std::size_t begin, std::size_t maxSize,
+diff --git a/roofit/roofitcore/src/RooAbsReal.cxx b/roofit/roofitcore/src/RooAbsReal.cxx
+index 2d2ceeaf2d..6cac5f5897 100644
+--- a/roofit/roofitcore/src/RooAbsReal.cxx
++++ b/roofit/roofitcore/src/RooAbsReal.cxx
+@@ -4294,7 +4294,7 @@ RooAbsMoment* RooAbsReal::moment(RooRealVar& obs, Int_t order, Bool_t central, B
+ /// \param[in] order Order of the moment
+ /// \param[in] central If true, the central moment is given by \f$ \langle (x- \langle x \rangle )^2 \rangle \f$
+ /// \param[in] takeRoot Calculate the square root
+-/// \param[in] intNormOb If true, the moment of the function integrated over all normalization observables is returned.
++/// \param[in] intNormObs If true, the moment of the function integrated over all normalization observables is returned.
+
+ RooAbsMoment* RooAbsReal::moment(RooRealVar& obs, const RooArgSet& normObs, Int_t order, Bool_t central, Bool_t takeRoot, Bool_t intNormObs)
+ {
+diff --git a/roofit/roofitcore/src/RooCustomizer.cxx b/roofit/roofitcore/src/RooCustomizer.cxx
+index 97d6d3176c..818991873d 100644
+--- a/roofit/roofitcore/src/RooCustomizer.cxx
++++ b/roofit/roofitcore/src/RooCustomizer.cxx
+@@ -198,7 +198,7 @@ static Int_t init()
+ /// replaceArg() and splitArg() functionality.
+ /// \param[in] pdf Proto PDF to be customised.
+ /// \param[in] masterCat Category to be used for splitting.
+-/// \param[in/out] splitLeafs All nodes created in
++/// \param[in,out] splitLeafs All nodes created in
+ /// the customisation process are added to this set.
+ /// The user can provide nodes that are *taken*
+ /// from the set if they have a name that matches `<parameterNameToBeReplaced>_<category>`.
+@@ -209,7 +209,7 @@ static Int_t init()
+ /// auto yield1 = new RooFormulaVar("yieldSig_BBG1m2T","sigy1","M/3.360779",mass);
+ /// customisedLeafs.addOwned(*yield1);
+ /// ```
+-/// \param[in/out] splitLeafsAll All leafs that are used when customising are collected here.
++/// \param[in,out] splitLeafsAll All leafs that are used when customising are collected here.
+ /// If this set already contains leaves, they will be used for customising if the names match
+ /// as above.
+ ///
+diff --git a/roofit/roofitcore/src/RooDataHist.cxx b/roofit/roofitcore/src/RooDataHist.cxx
+index 1c8b517b0d..8c90dd0ade 100644
+--- a/roofit/roofitcore/src/RooDataHist.cxx
++++ b/roofit/roofitcore/src/RooDataHist.cxx
+@@ -632,8 +632,8 @@ void RooDataHist::_adjustBinning(RooRealVar &theirVar, const TAxis &axis,
+ /// observable to binning in given reference TH1. Used by constructors
+ /// that import data from an external TH1.
+ /// Both the variables in vars and in this RooDataHist are adjusted.
+-/// @param List with variables that are supposed to have their binning adjusted.
+-/// @param Reference histogram that dictates the binning
++/// @param vars List with variables that are supposed to have their binning adjusted.
++/// @param href Reference histogram that dictates the binning
+ /// @param offset If not nullptr, a possible bin count offset for the axes x,y,z is saved here as Int_t[3]
+
+ void RooDataHist::adjustBinning(const RooArgList& vars, const TH1& href, Int_t* offset)
+diff --git a/roofit/roofitcore/src/RooDataSet.cxx b/roofit/roofitcore/src/RooDataSet.cxx
+index 1e54dfbde0..f03ec78a0d 100644
+--- a/roofit/roofitcore/src/RooDataSet.cxx
++++ b/roofit/roofitcore/src/RooDataSet.cxx
+@@ -765,7 +765,7 @@ RooDataSet::RooDataSet(const char *name, const char *title, TTree *theTree,
+ ///
+ /// \param[in] name Name of this dataset.
+ /// \param[in] title Title for e.g. plotting.
+-/// \param[in] tree Tree to be imported.
++/// \param[in] theTree Tree to be imported.
+ /// \param[in] vars Defines the columns of the data set. For each dimension
+ /// specified, the TTree must have a branch with the same name. For category
+ /// branches, this branch should contain the numeric index value. Real dimensions
+@@ -1205,11 +1205,11 @@ void RooDataSet::add(const RooArgSet& data, Double_t wgt, Double_t wgtError)
+ ////////////////////////////////////////////////////////////////////////////////
+ /// Add a data point, with its coordinates specified in the 'data' argset, to the data set.
+ /// Any variables present in 'data' but not in the dataset will be silently ignored.
+-/// \param[in] data Data point.
+-/// \param[in] wgt Event weight. The current value of the weight variable is ignored.
++/// \param[in] indata Data point.
++/// \param[in] inweight Event weight. The current value of the weight variable is ignored.
+ /// \note To obtain weighted events, a variable must be designated `WeightVar` in the constructor.
+-/// \param[in] wgtErrorLo Asymmetric weight error.
+-/// \param[in] wgtErrorHi Asymmetric weight error.
++/// \param[in] weightErrorLo Asymmetric weight error.
++/// \param[in] weightErrorHi Asymmetric weight error.
+ /// \note This requires including the weight variable in the set of `StoreAsymError` variables when constructing
+ /// the dataset.
+
+diff --git a/roofit/roofitcore/src/RooFormulaVar.cxx b/roofit/roofitcore/src/RooFormulaVar.cxx
+index 90ee32d619..947c505598 100644
+--- a/roofit/roofitcore/src/RooFormulaVar.cxx
++++ b/roofit/roofitcore/src/RooFormulaVar.cxx
+@@ -66,7 +66,7 @@ ClassImp(RooFormulaVar);
+ /// Constructor with formula expression and list of input variables.
+ /// \param[in] name Name of the formula.
+ /// \param[in] title Title of the formula.
+-/// \param[in] formula Expression to be evaluated.
++/// \param[in] inFormula Expression to be evaluated.
+ /// \param[in] dependents Variables that should be passed to the formula.
+ /// \param[in] checkVariables Check that all variables from `dependents` are used in the expression.
+ RooFormulaVar::RooFormulaVar(const char *name, const char *title, const char* inFormula, const RooArgList& dependents,
+diff --git a/roofit/roofitcore/src/RooSuperCategory.cxx b/roofit/roofitcore/src/RooSuperCategory.cxx
+index 4c0b705e50..e5668ffb98 100644
+--- a/roofit/roofitcore/src/RooSuperCategory.cxx
++++ b/roofit/roofitcore/src/RooSuperCategory.cxx
+@@ -54,7 +54,7 @@ RooSuperCategory::RooSuperCategory() :
+ /// Construct a super category from other categories.
+ /// \param[in] name Name of this object
+ /// \param[in] title Title (for e.g. printing)
+-/// \param[in] inputCatList RooArgSet with category objects. These all need to derive from RooAbsCategoryLValue, *i.e.*
++/// \param[in] inputCategories RooArgSet with category objects. These all need to derive from RooAbsCategoryLValue, *i.e.*
+ /// one needs to be able to assign to them.
+ RooSuperCategory::RooSuperCategory(const char *name, const char *title, const RooArgSet& inputCategories) :
+ RooAbsCategoryLValue(name, title),
+diff --git a/roofit/roofitmore/src/RooHypatia2.cxx b/roofit/roofitmore/src/RooHypatia2.cxx
+index 691aa6073d..7d550b2753 100644
+--- a/roofit/roofitmore/src/RooHypatia2.cxx
++++ b/roofit/roofitmore/src/RooHypatia2.cxx
+@@ -119,21 +119,21 @@
+ /// \param[in] a2 Start of right tail.
+ /// \param[in] n2 Shape parameter of right tail (\f$ n2 \ge 0 \f$). With \f$ n2 = 0 \f$, the function is constant.
+ RooHypatia2::RooHypatia2(const char *name, const char *title, RooAbsReal& x, RooAbsReal& lambda,
+- RooAbsReal& zeta, RooAbsReal& beta, RooAbsReal& sigm, RooAbsReal& mu, RooAbsReal& a,
++ RooAbsReal& zeta, RooAbsReal& beta, RooAbsReal& sigma, RooAbsReal& mu, RooAbsReal& a,
+ RooAbsReal& n, RooAbsReal& a2, RooAbsReal& n2) :
+ RooAbsPdf(name, title),
+ _x("x", "x", this, x),
+ _lambda("lambda", "Lambda", this, lambda),
+ _zeta("zeta", "zeta", this, zeta),
+ _beta("beta", "Asymmetry parameter beta", this, beta),
+- _sigma("sigma", "Width parameter sigma", this, sigm),
++ _sigma("sigma", "Width parameter sigma", this, sigma),
+ _mu("mu", "Location parameter mu", this, mu),
+ _a("a", "Left tail location a", this, a),
+ _n("n", "Left tail parameter n", this, n),
+ _a2("a2", "Right tail location a2", this, a2),
+ _n2("n2", "Right tail parameter n2", this, n2)
+ {
+- RooHelpers::checkRangeOfParameters(this, {&sigm}, 0.);
++ RooHelpers::checkRangeOfParameters(this, {&sigma}, 0.);
+ RooHelpers::checkRangeOfParameters(this, {&zeta, &n, &n2, &a, &a2}, 0., std::numeric_limits<double>::max(), true);
+ if (zeta.getVal() == 0. && zeta.isConstant()) {
+ RooHelpers::checkRangeOfParameters(this, {&lambda}, -std::numeric_limits<double>::max(), 0., false,
+diff --git a/tmva/tmva/inc/TMVA/BDTEventWrapper.h b/tmva/tmva/inc/TMVA/BDTEventWrapper.h
+index 7d4c4f8dd6..2c99341dd9 100644
+--- a/tmva/tmva/inc/TMVA/BDTEventWrapper.h
++++ b/tmva/tmva/inc/TMVA/BDTEventWrapper.h
+@@ -40,14 +40,14 @@ namespace TMVA {
+
+ // Set the accumulated weight, for sorted signal/background events
+ /**
+- * @param fType - true for signal, false for background
++ * @param type - true for signal, false for background
+ * @param weight - the total weight
+ */
+ void SetCumulativeWeight( Bool_t type, Double_t weight );
+
+ // Get the accumulated weight
+ /**
+- * @param fType - true for signal, false for background
++ * @param type - true for signal, false for background
+ * @return the cumulative weight for sorted signal/background events
+ */
+ Double_t GetCumulativeWeight( Bool_t type ) const;
+diff --git a/tmva/tmva/inc/TMVA/NeuralNet.h b/tmva/tmva/inc/TMVA/NeuralNet.h
+index bae98a48b2..a11b543b59 100644
+--- a/tmva/tmva/inc/TMVA/NeuralNet.h
++++ b/tmva/tmva/inc/TMVA/NeuralNet.h
+@@ -478,10 +478,8 @@ namespace TMVA
+ * \param size size of the layer
+ * \param itWeightBegin indicates the start of the weights for this layer on the weight vector
+ * \param itGradientBegin indicates the start of the gradients for this layer on the gradient vector
+- * \param itFunctionBegin indicates the start of the vector of activation functions for this layer on the
+- * activation function vector
+- * \param itInverseFunctionBegin indicates the start of the vector of activation functions for this
+- * layer on the activation function vector
++ * \param activationFunction indicates activation functions for this layer
++ * \param inverseActivationFunction indicates the inverse activation functions for this layer
+ * \param eModeOutput indicates a potential tranformation of the output values before further computation
+ * DIRECT does not further transformation; SIGMOID applies a sigmoid transformation to each
+ * output value (to create a probability); SOFTMAX applies a softmax transformation to all
+@@ -500,8 +498,7 @@ namespace TMVA
+ *
+ * \param size size of the layer
+ * \param itWeightBegin indicates the start of the weights for this layer on the weight vector
+- * \param itFunctionBegin indicates the start of the vector of activation functions for this layer on the
+- * activation function vector
++ * \param activationFunction indicates the activation function for this layer
+ * \param eModeOutput indicates a potential tranformation of the output values before further computation
+ * DIRECT does not further transformation; SIGMOID applies a sigmoid transformation to each
+ * output value (to create a probability); SOFTMAX applies a softmax transformation to all
+@@ -679,9 +676,6 @@ namespace TMVA
+ /*! \brief c'tor for defining a Layer
+ *
+ *
+- * \param itInputBegin indicates the start of the input node vector
+- * \param itInputEnd indicates the end of the input node vector
+- *
+ */
+ Layer (size_t numNodes, EnumFunction activationFunction, ModeOutputValues eModeOutputValues = ModeOutputValues::DIRECT);
+
+@@ -1141,7 +1135,7 @@ namespace TMVA
+
+ /*! \brief executes one training cycle
+ *
+- * \param minimizier the minimizer to be used
++ * \param minimizer the minimizer to be used
+ * \param weights the weight vector to be used
+ * \param itPatternBegin the pattern to be trained with
+ * \param itPatternEnd the pattern to be trainied with
+diff --git a/tmva/tmva/inc/TMVA/NeuralNet.icc b/tmva/tmva/inc/TMVA/NeuralNet.icc
+index 95cad21e26..e511e49d43 100644
+--- a/tmva/tmva/inc/TMVA/NeuralNet.icc
++++ b/tmva/tmva/inc/TMVA/NeuralNet.icc
+@@ -933,7 +933,7 @@ template <typename LAYERDATA>
+ * \param minimizer the minimizer to be used (e.g. SGD)
+ * \param weights the weight container with all the synapse weights
+ * \param itPatternBegin begin of the pattern container
+- * \parama itPatternEnd the end of the pattern container
++ * \param itPatternEnd the end of the pattern container
+ * \param settings the settings for this training (e.g. multithreading or not, regularization, etc.)
+ * \param dropContainer the data for dropping-out nodes (regularization technique)
+ */
+diff --git a/tmva/tmva/inc/TMVA/RTensor.hxx b/tmva/tmva/inc/TMVA/RTensor.hxx
+index c131384ae2..7d9773b457 100644
+--- a/tmva/tmva/inc/TMVA/RTensor.hxx
++++ b/tmva/tmva/inc/TMVA/RTensor.hxx
+@@ -73,7 +73,7 @@ inline std::vector<std::size_t> ComputeStridesFromShape(const T &shape, MemoryLa
+ }
+
+ /// \brief Compute indices from global index
+-/// \param[in] Shape vector
++/// \param[in] shape Shape vector
+ /// \param[in] idx Global index
+ /// \param[in] layout Memory layout
+ /// \return Indice vector
+diff --git a/tmva/tmva/inc/TMVA/TreeInference/BranchlessTree.hxx b/tmva/tmva/inc/TMVA/TreeInference/BranchlessTree.hxx
+index 4ac460be64..a1c6fdf773 100644
+--- a/tmva/tmva/inc/TMVA/TreeInference/BranchlessTree.hxx
++++ b/tmva/tmva/inc/TMVA/TreeInference/BranchlessTree.hxx
+@@ -72,7 +72,7 @@ struct BranchlessTree {
+ /// Perform inference on a single input vector
+ /// \param[in] input Pointer to data containing the input values
+ /// \param[in] stride Stride to go from one input variable to the next one
+-/// \param[out] Tree score, result of the inference
++/// \return Tree score, result of the inference
+ template <typename T>
+ inline T BranchlessTree<T>::Inference(const T *input, const int stride)
+ {
+@@ -105,7 +105,7 @@ inline void BranchlessTree<T>::FillSparse()
+ ///
+ /// \param[in] funcName Name of the function
+ /// \param[in] typeName Name of the type used for the computation
+-/// \param[out] Code of the inference function as string
++/// \return Code of the inference function as string
+ template <typename T>
+ inline std::string BranchlessTree<T>::GetInferenceCode(const std::string& funcName, const std::string& typeName)
+ {
+diff --git a/tmva/tmva/inc/TMVA/TreeInference/Forest.hxx b/tmva/tmva/inc/TMVA/TreeInference/Forest.hxx
+index 70d1e3eb68..18b385a8e0 100644
+--- a/tmva/tmva/inc/TMVA/TreeInference/Forest.hxx
++++ b/tmva/tmva/inc/TMVA/TreeInference/Forest.hxx
+@@ -195,7 +195,7 @@ struct BranchlessJittedForest : public ForestBase<T, std::function<void (const T
+ /// \param[in] filename Filename of the ROOT file
+ /// \param[in] output Load trees corresponding to the given output node of the forest
+ /// \param[in] sortTrees Flag to indicate sorting the input trees by the cut value of the first node of each tree
+-/// \param[out] Return jitted code as string
++/// \return Return jitted code as string
+ template <typename T>
+ inline std::string
+ BranchlessJittedForest<T>::Load(const std::string &key, const std::string &filename, const int output, const bool sortTrees)
+diff --git a/tmva/tmva/src/BDTEventWrapper.cxx b/tmva/tmva/src/BDTEventWrapper.cxx
+index 63171c886b..9702660936 100644
+--- a/tmva/tmva/src/BDTEventWrapper.cxx
++++ b/tmva/tmva/src/BDTEventWrapper.cxx
+@@ -48,7 +48,7 @@ BDTEventWrapper::~BDTEventWrapper() {
+ ////////////////////////////////////////////////////////////////////////////////
+ /// Set the accumulated weight, for sorted signal/background events
+ ///
+-/// @param fType - true for signal, false for background
++/// @param type - true for signal, false for background
+ /// @param weight - the total weight
+
+ void BDTEventWrapper::SetCumulativeWeight(Bool_t type, Double_t weight) {
+diff --git a/tmva/tmva/src/CrossValidation.cxx b/tmva/tmva/src/CrossValidation.cxx
+index 453927c5b7..58bd9130d1 100644
+--- a/tmva/tmva/src/CrossValidation.cxx
++++ b/tmva/tmva/src/CrossValidation.cxx
+@@ -99,7 +99,7 @@ TMultiGraph *TMVA::CrossValidationResult::GetROCCurves(Bool_t /*fLegend*/)
+ ///
+ /// \note You own the returned pointer.
+ ///
+-/// \param numSamples[in] Number of samples used for generating the average ROC
++/// \param[in] numSamples Number of samples used for generating the average ROC
+ /// Curve. Avg. curve will be evaluated only at these
+ /// points (using interpolation if necessary).
+ ///
+diff --git a/tmva/tmva/src/CvSplit.cxx b/tmva/tmva/src/CvSplit.cxx
+index d6d44ac1cc..9eedcf3d72 100644
+--- a/tmva/tmva/src/CvSplit.cxx
++++ b/tmva/tmva/src/CvSplit.cxx
+@@ -227,15 +227,15 @@ UInt_t TMVA::CvSplitKFoldsExpr::GetSpectatorIndexForName(DataSetInfo &dsi, TStri
+
+ ////////////////////////////////////////////////////////////////////////////////
+ /// \brief Splits a dataset into k folds, ready for use in cross validation.
+-/// \param numFolds[in] Number of folds to split data into
+-/// \param stratified[in] If true, use stratified splitting, balancing the
++/// \param[in] numFolds Number of folds to split data into
++/// \param[in] stratified If true, use stratified splitting, balancing the
+ /// number of events across classes and folds. If false,
+ /// no such balancing is done. For
+-/// \param splitExpr[in] Expression used to split data into folds. If `""` a
++/// \param[in] splitExpr Expression used to split data into folds. If `""` a
+ /// random assignment will be done. Otherwise the
+ /// expression is fed into a TFormula and evaluated per
+ /// event. The resulting value is the the fold assignment.
+-/// \param seed[in] Used only when using random splitting (i.e. when
++/// \param[in] seed Used only when using random splitting (i.e. when
+ /// `splitExpr` is `""`). Seed is used to initialise the random
+ /// number generator when assigning events to folds.
+ ///
+@@ -282,9 +282,9 @@ void TMVA::CvSplitKFolds::MakeKFoldDataSet(DataSetInfo &dsi)
+
+ ////////////////////////////////////////////////////////////////////////////////
+ /// \brief Generates a vector of fold assignments
+-/// \param nEntires[in] Number of events in range
+-/// \param numFolds[in] Number of folds to split data into
+-/// \param seed[in] Random seed
++/// \param[in] nEntries Number of events in range
++/// \param[in] numFolds Number of folds to split data into
++/// \param[in] seed Random seed
+ ///
+ /// Randomly assigns events to `numFolds` folds. Each fold will hold at most
+ /// `nEntries / numFolds + 1` events.
+@@ -311,8 +311,8 @@ std::vector<UInt_t> TMVA::CvSplitKFolds::GetEventIndexToFoldMapping(UInt_t nEntr
+
+ ////////////////////////////////////////////////////////////////////////////////
+ /// \brief Split sets for into k-folds
+-/// \param oldSet[in] Original, unsplit, events
+-/// \param numFolds[in] Number of folds to split data into
++/// \param[in] oldSet Original, unsplit, events
++/// \param[in] numFolds Number of folds to split data into
+ ///
+
+ std::vector<std::vector<TMVA::Event *>>
+diff --git a/tmva/tmva/src/Envelope.cxx b/tmva/tmva/src/Envelope.cxx
+index 5fab98c13b..8a0c6b23f4 100644
+--- a/tmva/tmva/src/Envelope.cxx
++++ b/tmva/tmva/src/Envelope.cxx
+@@ -37,8 +37,8 @@ this is a generic one protected.
+ \param file optional file to save the results.
+ \param options extra options for the algorithm.
+ */
+-Envelope::Envelope(const TString &name, DataLoader *dalaloader, TFile *file, const TString options)
+- : Configurable(options), fDataLoader(dalaloader), fFile(file), fModelPersistence(kTRUE), fVerbose(kFALSE),
++Envelope::Envelope(const TString &name, DataLoader *dataloader, TFile *file, const TString options)
++ : Configurable(options), fDataLoader(dataloader), fFile(file), fModelPersistence(kTRUE), fVerbose(kFALSE),
+ fTransformations("I"), fSilentFile(kFALSE), fJobs(1)
+ {
+ SetName(name.Data());
+@@ -120,7 +120,7 @@ DataLoader *Envelope::GetDataLoader(){ return fDataLoader.get();}
+ //_______________________________________________________________________
+ /**
+ Method to set the pointer to TMVA::DataLoader object.
+-\param dalaloader pointer to TMVA::DataLoader object.
++\param dataloader pointer to TMVA::DataLoader object.
+ */
+
+ void Envelope::SetDataLoader(DataLoader *dataloader)
+@@ -146,7 +146,7 @@ void TMVA::Envelope::SetModelPersistence(Bool_t status){fModelPersistence=status
+ /**
+ Method to book the machine learning method to perform the algorithm.
+ \param method enum TMVA::Types::EMVA with the type of the mva method
+-\param methodtitle String with the method title.
++\param methodTitle String with the method title.
+ \param options String with the options for the method.
+ */
+ void TMVA::Envelope::BookMethod(Types::EMVA method, TString methodTitle, TString options){
+@@ -156,8 +156,8 @@ void TMVA::Envelope::BookMethod(Types::EMVA method, TString methodTitle, TString
+ //_______________________________________________________________________
+ /**
+ Method to book the machine learning method to perform the algorithm.
+-\param methodname String with the name of the mva method
+-\param methodtitle String with the method title.
++\param methodName String with the name of the mva method
++\param methodTitle String with the method title.
+ \param options String with the options for the method.
+ */
+ void TMVA::Envelope::BookMethod(TString methodName, TString methodTitle, TString options){
+diff --git a/tree/dataframe/inc/ROOT/RDF/RInterface.hxx b/tree/dataframe/inc/ROOT/RDF/RInterface.hxx
+index b5e39251a8..da09c0be3c 100644
+--- a/tree/dataframe/inc/ROOT/RDF/RInterface.hxx
++++ b/tree/dataframe/inc/ROOT/RDF/RInterface.hxx
+@@ -568,7 +568,7 @@ public:
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Save selected columns in memory
+ /// \tparam ColumnTypes variadic list of branch/column types.
+- /// \param[in] columns to be cached in memory.
++ /// \param[in] columnList columns to be cached in memory.
+ /// \return a `RDataFrame` that wraps the cached dataset.
+ ///
+ /// This action returns a new `RDataFrame` object, completely detached from
+@@ -603,7 +603,7 @@ public:
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Save selected columns in memory
+- /// \param[in] columns to be cached in memory
++ /// \param[in] columnList columns to be cached in memory
+ /// \return a `RDataFrame` that wraps the cached dataset.
+ ///
+ /// See the previous overloads for more information.
+@@ -660,7 +660,7 @@ public:
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Save selected columns in memory
+- /// \param[in] columns to be cached in memory.
++ /// \param[in] columnList columns to be cached in memory.
+ /// \return a `RDataFrame` that wraps the cached dataset.
+ ///
+ /// See the previous overloads for more information.
+@@ -1528,13 +1528,13 @@ public:
+ /// ~~~
+ ///
+ template <typename T>
+- RResultPtr<T> Fill(T &&model, const ColumnNames_t &bl)
++ RResultPtr<T> Fill(T &&model, const ColumnNames_t &columnList)
+ {
+ auto h = std::make_shared<T>(std::forward<T>(model));
+ if (!RDFInternal::HistoUtils<T>::HasAxisLimits(*h)) {
+ throw std::runtime_error("The absence of axes limits is not supported yet.");
+ }
+- return CreateAction<RDFInternal::ActionTags::Fill, RDFDetail::RInferredType>(bl, h, bl.size());
++ return CreateAction<RDFInternal::ActionTags::Fill, RDFDetail::RInferredType>(columnList, h, columnList.size());
+ }
+
+ ////////////////////////////////////////////////////////////////////////////
+@@ -2134,7 +2134,7 @@ public:
+ /// \brief Provides a representation of the columns in the dataset
+ /// \tparam ColumnTypes variadic list of branch/column types.
+ /// \param[in] columnList Names of the columns to be displayed.
+- /// \param[in] rows Number of events for each column to be displayed.
++ /// \param[in] nRows Number of events for each column to be displayed.
+ /// \return the `RDisplay` instance wrapped in a `RResultPtr`.
+ ///
+ /// This function returns a `RResultPtr<RDisplay>` containing all the entries to be displayed, organized in a tabular
+@@ -2165,7 +2165,7 @@ public:
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Provides a representation of the columns in the dataset
+ /// \param[in] columnList Names of the columns to be displayed.
+- /// \param[in] rows Number of events for each column to be displayed.
++ /// \param[in] nRows Number of events for each column to be displayed.
+ /// \return the `RDisplay` instance wrapped in a `RResultPtr`.
+ ///
+ /// This overload automatically infers the column types.
+@@ -2181,7 +2181,7 @@ public:
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Provides a representation of the columns in the dataset
+ /// \param[in] columnNameRegexp A regular expression to select the columns.
+- /// \param[in] rows Number of events for each column to be displayed.
++ /// \param[in] nRows Number of events for each column to be displayed.
+ /// \return the `RDisplay` instance wrapped in a `RResultPtr`.
+ ///
+ /// The existing columns are matched against the regular expression. If the string provided
+diff --git a/tree/dataframe/inc/ROOT/RDFHelpers.hxx b/tree/dataframe/inc/ROOT/RDFHelpers.hxx
+index 2193e1772e..63a0f90cab 100644
+--- a/tree/dataframe/inc/ROOT/RDFHelpers.hxx
++++ b/tree/dataframe/inc/ROOT/RDFHelpers.hxx
+@@ -138,7 +138,7 @@ void SaveGraph(NodeType node, const std::string &outputFile)
+
+ // clang-format off
+ /// Cast a RDataFrame node to the common type ROOT::RDF::RNode
+-/// \param[in] Any node of a RDataFrame graph
++/// \param[in] node Any node of a RDataFrame graph
+ // clang-format on
+ template <typename NodeType>
+ RNode AsRNode(NodeType node)
+diff --git a/tree/dataframe/inc/ROOT/RDataSource.hxx b/tree/dataframe/inc/ROOT/RDataSource.hxx
+index f4af9abded..04f7dc850c 100644
+--- a/tree/dataframe/inc/ROOT/RDataSource.hxx
++++ b/tree/dataframe/inc/ROOT/RDataSource.hxx
+@@ -126,14 +126,14 @@ public:
+ virtual const std::vector<std::string> &GetColumnNames() const = 0;
+
+ /// \brief Checks if the dataset has a certain column
+- /// \param[in] columnName The name of the column
+- virtual bool HasColumn(std::string_view) const = 0;
++ /// \param[in] colName The name of the column
++ virtual bool HasColumn(std::string_view colName) const = 0;
+
+ // clang-format off
+ /// \brief Type of a column as a string, e.g. `GetTypeName("x") == "double"`. Required for jitting e.g. `df.Filter("x>0")`.
+- /// \param[in] columnName The name of the column
++ /// \param[in] colName The name of the column
+ // clang-format on
+- virtual std::string GetTypeName(std::string_view) const = 0;
++ virtual std::string GetTypeName(std::string_view colName) const = 0;
+
+ // clang-format off
+ /// Called at most once per column by RDF. Return vector of pointers to pointers to column values - one per slot.
+diff --git a/tree/dataframe/inc/ROOT/RResultPtr.hxx b/tree/dataframe/inc/ROOT/RResultPtr.hxx
+index 8358832b14..8acb2bfae6 100644
+--- a/tree/dataframe/inc/ROOT/RResultPtr.hxx
++++ b/tree/dataframe/inc/ROOT/RResultPtr.hxx
+@@ -262,7 +262,7 @@ public:
+ /// Register a callback that RDataFrame will execute in each worker thread concurrently on that thread's partial result.
+ ///
+ /// \param[in] everyNEvents Frequency at which the callback will be called by each thread, as a number of events processed
+- /// \param[in] a callable with signature `void(unsigned int, Value_t&)` where Value_t is the type of the value contained in this RResultPtr
++ /// \param[in] callback A callable with signature `void(unsigned int, Value_t&)` where Value_t is the type of the value contained in this RResultPtr
+ /// \return this RResultPtr, to allow chaining of OnPartialResultSlot with other calls
+ ///
+ /// See `OnPartialResult` for a generic explanation of the callback mechanism.
+diff --git a/tree/dataframe/src/RArrowDS.cxx b/tree/dataframe/src/RArrowDS.cxx
+index d9e2fae32f..0152b9a813 100644
+--- a/tree/dataframe/src/RArrowDS.cxx
++++ b/tree/dataframe/src/RArrowDS.cxx
+@@ -382,8 +382,8 @@ public:
+
+ ////////////////////////////////////////////////////////////////////////
+ /// Constructor to create an Arrow RDataSource for RDataFrame.
+-/// \param[in] table the arrow Table to observe.
+-/// \param[in] columns the name of the columns to use
++/// \param[in] inTable the arrow Table to observe.
++/// \param[in] inColumns the name of the columns to use
+ /// In case columns is empty, we use all the columns found in the table
+ RArrowDS::RArrowDS(std::shared_ptr<arrow::Table> inTable, std::vector<std::string> const &inColumns)
+ : fTable{inTable}, fColumnNames{inColumns}
+diff --git a/tree/tree/inc/TTree.h b/tree/tree/inc/TTree.h
+index 8560e28ab5..e95d4ce301 100644
+--- a/tree/tree/inc/TTree.h
++++ b/tree/tree/inc/TTree.h
+@@ -357,7 +357,7 @@ public:
+ /// possible, unless e.g. type conversions are needed.
+ ///
+ /// \param[in] name Name of the branch to be created.
+- /// \param[in] obj Array of the objects to be added. When calling Fill(), the current value of the type/object will be saved.
++ /// \param[in] addobj Array of the objects to be added. When calling Fill(), the current value of the type/object will be saved.
+ /// \param[in] bufsize he buffer size in bytes for this branch. When the buffer is full, it is compressed and written to disc.
+ /// The default value of 32000 bytes and should be ok for most simple types. Larger buffers (e.g. 256000) if your Tree is not split and each entry is large (Megabytes).
+ /// A small value for bufsize is beneficial if entries in the Tree are accessed randomly and the Tree is in split mode.
+diff --git a/tree/tree/src/TIOFeatures.cxx b/tree/tree/src/TIOFeatures.cxx
+index 681f2172bd..ca292fb30a 100644
+--- a/tree/tree/src/TIOFeatures.cxx
++++ b/tree/tree/src/TIOFeatures.cxx
+@@ -51,7 +51,7 @@ using namespace ROOT;
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Clear a specific IO feature from this set.
+-/// \param[in] enum_bits The specific feature to disable.
++/// \param[in] input_bits The specific feature to disable.
+ ///
+ /// Removes a feature from the `TIOFeatures` object; emits an Error message if
+ /// the IO feature is not supported by this version of ROOT.
+@@ -62,7 +62,7 @@ void TIOFeatures::Clear(Experimental::EIOFeatures input_bits)
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Clear a specific IO feature from this set.
+-/// \param[in] enum_bits The specific feature to disable.
++/// \param[in] input_bits The specific feature to disable.
+ ///
+ /// Removes a feature from the `TIOFeatures` object; emits an Error message if
+ /// the IO feature is not supported by this version of ROOT.
+@@ -73,7 +73,7 @@ void TIOFeatures::Clear(Experimental::EIOUnsupportedFeatures input_bits)
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Clear a specific IO feature from this set.
+-/// \param[in] enum_bits The specific feature to disable.
++/// \param[in] input_bits The specific feature to disable.
+ ///
+ /// Removes a feature from the `TIOFeatures` object; emits an Error message if
+ /// the IO feature is not supported by this version of ROOT.
+@@ -115,7 +115,7 @@ static std::string GetUnsupportedName(TBasket::EUnsupportedIOBits enum_flag)
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Set a specific IO feature.
+-/// \param[in] enum_bits The specific feature to enable.
++/// \param[in] input_bits The specific feature to enable.
+ ///
+ /// Sets a feature in the `TIOFeatures` object; emits an Error message if
+ /// the IO feature is not supported by this version of ROOT.
+@@ -129,7 +129,7 @@ bool TIOFeatures::Set(Experimental::EIOFeatures input_bits)
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Set a specific IO feature.
+-/// \param[in] enum_bits The specific feature to enable.
++/// \param[in] input_bits The specific feature to enable.
+ ///
+ /// Sets a feature in the `TIOFeatures` object; emits an Error message if
+ /// the IO feature is not supported by this version of ROOT.
+@@ -221,7 +221,7 @@ void TIOFeatures::Print() const
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Test to see if a given feature is set
+-/// \param[in] enum_bits The specific feature to test.
++/// \param[in] input_bits The specific feature to test.
+ ///
+ /// Returns kTRUE if the feature is enables in this object and supported by
+ /// this version of ROOT.
+@@ -232,7 +232,7 @@ bool TIOFeatures::Test(Experimental::EIOFeatures input_bits) const
+
+ ////////////////////////////////////////////////////////////////////////////
+ /// \brief Test to see if a given feature is set
+-/// \param[in] enum_bits The specific feature to test.
++/// \param[in] input_bits The specific feature to test.
+ ///
+ /// Returns kTRUE if the feature is enables in this object and supported by
+ /// this version of ROOT.
+--
+2.26.2
+
diff --git a/root-epel7-ppc64le-pyroot.patch b/root-epel7-ppc64le-pyroot.patch
index d046855..4b4d314 100644
--- a/root-epel7-ppc64le-pyroot.patch
+++ b/root-epel7-ppc64le-pyroot.patch
@@ -1,73 +1,17 @@
-diff -ur root-6.20.02.orig/bindings/pyroot/src/Cppyy.cxx root-6.20.02/bindings/pyroot/src/Cppyy.cxx
---- root-6.20.02.orig/bindings/pyroot/src/Cppyy.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/Cppyy.cxx 2020-03-24 19:26:38.162272398 +0100
-@@ -74,10 +74,6 @@
- class ApplicationStarter {
- public:
- ApplicationStarter() {
-- // Insure ROOT's atexit is executed *after* the atexit that calls
-- // ApplicationStarter's destructor, by forcing the ROOT's atexit
-- // registration now.
-- TROOT::Initialize();
- // setup dummy holders for global and std namespaces
- assert( g_classrefs.size() == GLOBAL_HANDLE );
- g_name2classrefidx[ "" ] = GLOBAL_HANDLE;
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/cppyy-backend/clingwrapper/src/clingwrapper.cxx 2020-03-24 19:26:38.182272186 +0100
-@@ -109,10 +109,6 @@
- class ApplicationStarter {
- public:
- ApplicationStarter() {
-- // Insure ROOT's atexit is executed *after* the atexit that calls
-- // ApplicationStarter's destructor, by forcing the ROOT's atexit
-- // registration now.
-- TROOT::Initialize();
- // setup dummy holders for global and std namespaces
- assert(g_classrefs.size() == GLOBAL_HANDLE);
- g_name2classrefidx[""] = GLOBAL_HANDLE;
-diff -ur root-6.20.02.orig/core/base/inc/TROOT.h root-6.20.02/core/base/inc/TROOT.h
---- root-6.20.02.orig/core/base/inc/TROOT.h 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/core/base/inc/TROOT.h 2020-03-24 19:26:38.182272186 +0100
-@@ -351,7 +351,6 @@
- static void SetMacroPath(const char *newpath);
- static Int_t IncreaseDirLevel();
- static void IndentLevel();
-- static void Initialize();
- static Bool_t Initialized();
- static Bool_t MemCheck();
- static void SetDirLevel(Int_t level = 0);
-diff -ur root-6.20.02.orig/core/base/src/TROOT.cxx root-6.20.02/core/base/src/TROOT.cxx
---- root-6.20.02.orig/core/base/src/TROOT.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/core/base/src/TROOT.cxx 2020-03-24 20:10:54.640084486 +0100
-@@ -1022,10 +1022,12 @@
- SafeDelete(fCleanups);
- #endif
+diff --git a/bindings/pyroot/pythonizations/python/ROOT/__init__.py b/bindings/pyroot/pythonizations/python/ROOT/__init__.py
+index 227f80765b..eb03251c28 100644
+--- a/bindings/pyroot/pythonizations/python/ROOT/__init__.py
++++ b/bindings/pyroot/pythonizations/python/ROOT/__init__.py
+@@ -25,6 +25,12 @@ environ['CPPYY_API_PATH'] = 'none'
+ # Prevent cppyy from filtering ROOT libraries
+ environ['CPPYY_NO_ROOT_FILTER'] = '1'
--#ifndef _MSC_VER
-- // deleting the interpreter makes things crash at exit in some cases
-- delete fInterpreter;
--#endif
-+ // llvm::TimingGroup used for measuring the timing relies the destructors.
-+ // In order to make use of this feature we have to call the destructor of
-+ // TCling which will shut down clang, cling and llvm.
-+ // gSystem->Getenv is not available anymore.
-+ if (::getenv("ROOT_CLING_TIMING"))
-+ delete fInterpreter;
++try:
++ from ctypes import cdll
++ libCore = cdll.LoadLibrary("libCore.so")
++except:
++ print("An exception occurred while loading libCore.so with ctypes")
++
+ import cppyy
- // Prints memory stats
- TStorage::PrintStatistics();
-@@ -2848,13 +2850,6 @@
- }
-
- ////////////////////////////////////////////////////////////////////////////////
--/// Initialize ROOT explicitly.
--
--void TROOT::Initialize() {
-- (void) gROOT;
--}
--
--////////////////////////////////////////////////////////////////////////////////
- /// Return kTRUE if the TROOT object has been initialized.
-
- Bool_t TROOT::Initialized()
+ # import libROOTPythonizations with Python version number
diff --git a/root-fix-bad-regex.patch b/root-fix-bad-regex.patch
new file mode 100644
index 0000000..e1e667e
--- /dev/null
+++ b/root-fix-bad-regex.patch
@@ -0,0 +1,25 @@
+From b7dc989f9a49ad31094331aa272859ff7480f943 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Thu, 9 Jul 2020 21:29:46 +0200
+Subject: [PATCH] Fix bad regex
+
+---
+ proof/proof/src/TProofMgr.cxx | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/proof/proof/src/TProofMgr.cxx b/proof/proof/src/TProofMgr.cxx
+index 2a140e4e7a..35c91b77ac 100644
+--- a/proof/proof/src/TProofMgr.cxx
++++ b/proof/proof/src/TProofMgr.cxx
+@@ -820,7 +820,7 @@ TFileCollection *TProofMgr::UploadFiles(TList *src,
+ if (dest && strlen(dest) > 0) {
+ TString dst(dest), dt;
+ Ssiz_t from = 0;
+- TRegexp re("<d+[0-9]>");
++ TRegexp re("<d[0-9]+>");
+ while (dst.Tokenize(dt, from, "/")) {
+ if (dt.Contains(re)) {
+ TParameter<Int_t> *pi = new TParameter<Int_t>(dt, -1);
+--
+2.26.2
+
diff --git a/root-fontconfig.patch b/root-fontconfig.patch
index 4f39a68..1b2e880 100644
--- a/root-fontconfig.patch
+++ b/root-fontconfig.patch
@@ -1,7 +1,7 @@
-diff -ur root-6.18.00.orig/core/base/src/TApplication.cxx root-6.18.00/core/base/src/TApplication.cxx
---- root-6.18.00.orig/core/base/src/TApplication.cxx 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/core/base/src/TApplication.cxx 2019-06-26 15:00:32.048047903 +0200
-@@ -267,18 +267,11 @@
+diff -ur root-6.22.00.orig/core/base/src/TApplication.cxx root-6.22.00/core/base/src/TApplication.cxx
+--- root-6.22.00.orig/core/base/src/TApplication.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/core/base/src/TApplication.cxx 2020-06-29 08:53:15.066085533 +0200
+@@ -264,18 +264,11 @@
LoadGraphicsLibs();
// Try to load TrueType font renderer. Only try to load if not in batch
@@ -22,7 +22,7 @@ diff -ur root-6.18.00.orig/core/base/src/TApplication.cxx root-6.18.00/core/base
if (gClassTable->GetDict("TGX11TTF")) {
// in principle we should not have linked anything against libGX11TTF
// but with ACLiC this can happen, initialize TGX11TTF by hand
-@@ -292,7 +285,6 @@
+@@ -289,7 +282,6 @@
}
}
#endif
@@ -30,10 +30,10 @@ diff -ur root-6.18.00.orig/core/base/src/TApplication.cxx root-6.18.00/core/base
// Create WM dependent application environment
if (fAppImp)
-diff -ur root-6.18.00.orig/graf2d/asimage/CMakeLists.txt root-6.18.00/graf2d/asimage/CMakeLists.txt
---- root-6.18.00.orig/graf2d/asimage/CMakeLists.txt 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf2d/asimage/CMakeLists.txt 2019-06-26 15:05:32.584912789 +0200
-@@ -26,6 +26,7 @@
+diff -ur root-6.22.00.orig/graf2d/asimage/CMakeLists.txt root-6.22.00/graf2d/asimage/CMakeLists.txt
+--- root-6.22.00.orig/graf2d/asimage/CMakeLists.txt 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf2d/asimage/CMakeLists.txt 2020-06-29 08:53:15.066085533 +0200
+@@ -30,6 +30,7 @@
${FREETYPE_LIBRARIES}
${X11_LIBRARIES}
ZLIB::ZLIB
@@ -41,10 +41,10 @@ diff -ur root-6.18.00.orig/graf2d/asimage/CMakeLists.txt root-6.18.00/graf2d/asi
DEPENDENCIES
Core
Graf
-diff -ur root-6.18.00.orig/graf2d/asimage/src/TASImage.cxx root-6.18.00/graf2d/asimage/src/TASImage.cxx
---- root-6.18.00.orig/graf2d/asimage/src/TASImage.cxx 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf2d/asimage/src/TASImage.cxx 2019-06-26 15:00:32.062047757 +0200
-@@ -110,6 +110,8 @@
+diff -ur root-6.22.00.orig/graf2d/asimage/src/TASImage.cxx root-6.22.00/graf2d/asimage/src/TASImage.cxx
+--- root-6.22.00.orig/graf2d/asimage/src/TASImage.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf2d/asimage/src/TASImage.cxx 2020-06-29 08:53:15.068085538 +0200
+@@ -111,6 +111,8 @@
# include <draw.h>
}
@@ -53,7 +53,7 @@ diff -ur root-6.18.00.orig/graf2d/asimage/src/TASImage.cxx root-6.18.00/graf2d/a
// auxiliary functions for general polygon filling
#include "TASPolyUtils.c"
-@@ -2593,14 +2595,120 @@
+@@ -2594,14 +2596,120 @@
TString fn = font_name;
fn.Strip();
@@ -181,7 +181,7 @@ diff -ur root-6.18.00.orig/graf2d/asimage/src/TASImage.cxx root-6.18.00/graf2d/a
if (fn.EndsWith(".pfa") || fn.EndsWith(".PFA") || fn.EndsWith(".pfb") || fn.EndsWith(".PFB") || fn.EndsWith(".ttf") || fn.EndsWith(".TTF") || fn.EndsWith(".otf") || fn.EndsWith(".OTF")) {
ttfont = kTRUE;
-@@ -2624,14 +2732,11 @@
+@@ -2625,14 +2733,11 @@
return;
}
@@ -199,10 +199,10 @@ diff -ur root-6.18.00.orig/graf2d/asimage/src/TASImage.cxx root-6.18.00/graf2d/a
}
get_text_size(text, font, (ASText3DType)type, &width, &height);
-diff -ur root-6.18.00.orig/graf2d/graf/CMakeLists.txt root-6.18.00/graf2d/graf/CMakeLists.txt
---- root-6.18.00.orig/graf2d/graf/CMakeLists.txt 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf2d/graf/CMakeLists.txt 2019-06-26 15:03:42.153064782 +0200
-@@ -87,6 +87,7 @@
+diff -ur root-6.22.00.orig/graf2d/graf/CMakeLists.txt root-6.22.00/graf2d/graf/CMakeLists.txt
+--- root-6.22.00.orig/graf2d/graf/CMakeLists.txt 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf2d/graf/CMakeLists.txt 2020-06-29 08:53:15.068085538 +0200
+@@ -91,6 +91,7 @@
${FREETYPE_LIBRARIES}
ZLIB::ZLIB
mathtext
@@ -210,9 +210,9 @@ diff -ur root-6.18.00.orig/graf2d/graf/CMakeLists.txt root-6.18.00/graf2d/graf/C
DEPENDENCIES
Hist
Matrix
-diff -ur root-6.18.00.orig/graf2d/graf/inc/TTF.h root-6.18.00/graf2d/graf/inc/TTF.h
---- root-6.18.00.orig/graf2d/graf/inc/TTF.h 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf2d/graf/inc/TTF.h 2019-06-26 15:00:32.063047746 +0200
+diff -ur root-6.22.00.orig/graf2d/graf/inc/TTF.h root-6.22.00/graf2d/graf/inc/TTF.h
+--- root-6.22.00.orig/graf2d/graf/inc/TTF.h 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf2d/graf/inc/TTF.h 2020-06-29 08:53:15.068085538 +0200
@@ -76,9 +76,8 @@
static FT_BBox fgCBox; ///< string control box
static FT_CharMap fgCharMap[kTTMaxFonts]; ///< font character map
@@ -224,9 +224,9 @@ diff -ur root-6.18.00.orig/graf2d/graf/inc/TTF.h root-6.18.00/graf2d/graf/inc/TT
static FT_Face fgFace[kTTMaxFonts]; ///< font face
static TTF::TTGlyph fgGlyphs[kMaxGlyphs]; ///< glyphs
static Bool_t fgHinting; ///< use hinting (true by default)
-diff -ur root-6.18.00.orig/graf2d/graf/src/TTF.cxx root-6.18.00/graf2d/graf/src/TTF.cxx
---- root-6.18.00.orig/graf2d/graf/src/TTF.cxx 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf2d/graf/src/TTF.cxx 2019-06-26 15:00:32.064047736 +0200
+diff -ur root-6.22.00.orig/graf2d/graf/src/TTF.cxx root-6.22.00/graf2d/graf/src/TTF.cxx
+--- root-6.22.00.orig/graf2d/graf/src/TTF.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf2d/graf/src/TTF.cxx 2020-06-29 08:53:15.086085582 +0200
@@ -25,6 +25,8 @@
#include "TMath.h"
#include "TError.h"
@@ -787,10 +787,10 @@ diff -ur root-6.18.00.orig/graf2d/graf/src/TTF.cxx root-6.18.00/graf2d/graf/src/
}
////////////////////////////////////////////////////////////////////////////////
-diff -ur root-6.18.00.orig/graf2d/postscript/CMakeLists.txt root-6.18.00/graf2d/postscript/CMakeLists.txt
---- root-6.18.00.orig/graf2d/postscript/CMakeLists.txt 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf2d/postscript/CMakeLists.txt 2019-06-26 15:06:11.017511871 +0200
-@@ -21,6 +21,7 @@
+diff -ur root-6.22.00.orig/graf2d/postscript/CMakeLists.txt root-6.22.00/graf2d/postscript/CMakeLists.txt
+--- root-6.22.00.orig/graf2d/postscript/CMakeLists.txt 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf2d/postscript/CMakeLists.txt 2020-06-29 08:53:15.086085582 +0200
+@@ -27,6 +27,7 @@
LIBRARIES
ZLIB::ZLIB
mathtext
@@ -798,10 +798,10 @@ diff -ur root-6.18.00.orig/graf2d/postscript/CMakeLists.txt root-6.18.00/graf2d/
DEPENDENCIES
Graf
)
-diff -ur root-6.18.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.18.00/graf2d/postscript/src/TPostScript.cxx
---- root-6.18.00.orig/graf2d/postscript/src/TPostScript.cxx 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf2d/postscript/src/TPostScript.cxx 2019-06-26 15:00:32.065047726 +0200
-@@ -229,6 +229,7 @@
+diff -ur root-6.22.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.22.00/graf2d/postscript/src/TPostScript.cxx
+--- root-6.22.00.orig/graf2d/postscript/src/TPostScript.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf2d/postscript/src/TPostScript.cxx 2020-06-29 08:53:15.087085585 +0200
+@@ -233,6 +233,7 @@
#include <string.h>
#include <ctype.h>
#include <wchar.h>
@@ -809,7 +809,7 @@ diff -ur root-6.18.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.18.00/gr
#include "Riostream.h"
#include "Byteswap.h"
-@@ -1575,56 +1576,179 @@
+@@ -1583,56 +1584,179 @@
void TPostScript::FontEmbed(void)
{
@@ -1034,7 +1034,7 @@ diff -ur root-6.18.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.18.00/gr
} else {
if (FontEmbedType2(ttfont)) {
// nothing
-@@ -1633,9 +1757,8 @@
+@@ -1641,9 +1765,8 @@
} else if(FontEmbedType42(ttfont)) {
// nothing
} else {
@@ -1046,7 +1046,7 @@ diff -ur root-6.18.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.18.00/gr
}
delete [] ttfont;
}
-@@ -2803,10 +2926,10 @@
+@@ -2835,10 +2958,10 @@
{ "Root.PSFont.9", "/FreeMonoOblique" },
{ "Root.PSFont.10", "/FreeMonoBold" },
{ "Root.PSFont.11", "/FreeMonoBoldOblique" },
@@ -1060,20 +1060,20 @@ diff -ur root-6.18.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.18.00/gr
{ "Root.PSFont.STIXGen", "/STIXGeneral" },
{ "Root.PSFont.STIXGenIt", "/STIXGeneral-Italic" },
{ "Root.PSFont.STIXGenBd", "/STIXGeneral-Bold" },
-diff -ur root-6.18.00.orig/graf3d/gl/CMakeLists.txt root-6.18.00/graf3d/gl/CMakeLists.txt
---- root-6.18.00.orig/graf3d/gl/CMakeLists.txt 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf3d/gl/CMakeLists.txt 2019-06-26 15:02:38.318730684 +0200
-@@ -206,6 +206,7 @@
- ${FTGL_LIBRARIES}
+diff -ur root-6.22.00.orig/graf3d/gl/CMakeLists.txt root-6.22.00/graf3d/gl/CMakeLists.txt
+--- root-6.22.00.orig/graf3d/gl/CMakeLists.txt 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf3d/gl/CMakeLists.txt 2020-06-29 08:53:15.087085585 +0200
+@@ -208,6 +208,7 @@
${GL2PS_LIBRARIES}
${X11_LIBRARIES}
+ RGlew
+ fontconfig
DEPENDENCIES
Hist
Gui
-diff -ur root-6.18.00.orig/graf3d/gl/src/TGLFontManager.cxx root-6.18.00/graf3d/gl/src/TGLFontManager.cxx
---- root-6.18.00.orig/graf3d/gl/src/TGLFontManager.cxx 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf3d/gl/src/TGLFontManager.cxx 2019-06-26 15:00:32.066047715 +0200
+diff -ur root-6.22.00.orig/graf3d/gl/src/TGLFontManager.cxx root-6.22.00/graf3d/gl/src/TGLFontManager.cxx
+--- root-6.22.00.orig/graf3d/gl/src/TGLFontManager.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf3d/gl/src/TGLFontManager.cxx 2020-06-29 08:53:15.087085585 +0200
@@ -37,6 +37,7 @@
# include "FTGLBitmapFont.h"
#endif
@@ -1329,9 +1329,9 @@ diff -ur root-6.18.00.orig/graf3d/gl/src/TGLFontManager.cxx root-6.18.00/graf3d/
fgFontFileArray.Add(new TObjString("STIXGeneral.otf")); // 200
fgFontFileArray.Add(new TObjString("STIXGeneralItalic.otf")); // 210
fgFontFileArray.Add(new TObjString("STIXGeneralBol.otf")); // 220
-diff -ur root-6.18.00.orig/graf3d/gl/src/TGLText.cxx root-6.18.00/graf3d/gl/src/TGLText.cxx
---- root-6.18.00.orig/graf3d/gl/src/TGLText.cxx 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/graf3d/gl/src/TGLText.cxx 2019-06-26 15:00:32.066047715 +0200
+diff -ur root-6.22.00.orig/graf3d/gl/src/TGLText.cxx root-6.22.00/graf3d/gl/src/TGLText.cxx
+--- root-6.22.00.orig/graf3d/gl/src/TGLText.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/graf3d/gl/src/TGLText.cxx 2020-06-29 08:53:15.088085587 +0200
@@ -34,6 +34,8 @@
# include "FTGLBitmapFont.h"
#endif
@@ -1466,10 +1466,10 @@ diff -ur root-6.18.00.orig/graf3d/gl/src/TGLText.cxx root-6.18.00/graf3d/gl/src/
Error("SetGLTextFont","Cannot set FTGL::FaceSize");
- delete [] ttfont;
}
-diff -ur root-6.18.00.orig/gui/gui/src/TGApplication.cxx root-6.18.00/gui/gui/src/TGApplication.cxx
---- root-6.18.00.orig/gui/gui/src/TGApplication.cxx 2019-06-25 10:52:11.000000000 +0200
-+++ root-6.18.00/gui/gui/src/TGApplication.cxx 2019-06-26 15:00:32.066047715 +0200
-@@ -83,20 +83,12 @@
+diff -ur root-6.22.00.orig/gui/gui/src/TGApplication.cxx root-6.22.00/gui/gui/src/TGApplication.cxx
+--- root-6.22.00.orig/gui/gui/src/TGApplication.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/gui/gui/src/TGApplication.cxx 2020-06-29 08:53:15.088085587 +0200
+@@ -80,20 +80,12 @@
gROOT->SetBatch(kFALSE);
if (strcmp(appClassName, "proofserv")) {
diff --git a/root-format-fix.patch b/root-format-fix.patch
deleted file mode 100644
index 9d7f4e2..0000000
--- a/root-format-fix.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 1d4aaf9e503669ccb0275f3f9b8a87a486671334 Mon Sep 17 00:00:00 2001
-From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
-Date: Fri, 13 Mar 2020 14:34:48 +0100
-Subject: [PATCH] Size types should use %z
-
----
- tree/dataframe/src/RCsvDS.cxx | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/tree/dataframe/src/RCsvDS.cxx b/tree/dataframe/src/RCsvDS.cxx
-index 81f802285b..fc0a18e21f 100644
---- a/tree/dataframe/src/RCsvDS.cxx
-+++ b/tree/dataframe/src/RCsvDS.cxx
-@@ -368,9 +368,9 @@ std::vector<std::pair<ULong64_t, ULong64_t>> RCsvDS::GetEntryRanges()
-
- if (gDebug > 0) {
- if (fLinesChunkSize == -1LL) {
-- Info("GetEntryRanges", "Attempted to read entire CSV file into memory, %lu lines read", fRecords.size());
-+ Info("GetEntryRanges", "Attempted to read entire CSV file into memory, %zu lines read", fRecords.size());
- } else {
-- Info("GetEntryRanges", "Attempted to read chunk of %lld lines of CSV file into memory, %lu lines read", fLinesChunkSize, fRecords.size());
-+ Info("GetEntryRanges", "Attempted to read chunk of %lld lines of CSV file into memory, %zu lines read", fLinesChunkSize, fRecords.size());
- }
- }
-
---
-2.24.1
-
diff --git a/root-histv7-bin-iterator.patch b/root-histv7-bin-iterator.patch
new file mode 100644
index 0000000..9e52725
--- /dev/null
+++ b/root-histv7-bin-iterator.patch
@@ -0,0 +1,51 @@
+From af2e5c8b1bf17a0a0e1c1492735395bdd49ffd65 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Mon, 29 Jun 2020 12:57:43 +0200
+Subject: [PATCH] Fix off-by-one error in the histogram v7 bin iterator
+
+The histogram bin iterator should start at 1 and end at N + 1, not
+start at 0 and end at N. (As for all iterators, the end element is the
+invalid element after the last one.)
+
+Fixes an assertion in the histhistv7testUnit test
+
+[----------] 2 tests from BinIterNBins
+[ RUN ] BinIterNBins.NumBins
+/usr/include/c++/10/bits/stl_vector.h:1045: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = float; _Alloc = std::allocator<float>; std::vector<_Tp, _Alloc>::reference = float&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__builtin_expect(__n < this->size(), true)' failed.
+---
+ hist/histv7/inc/ROOT/RHist.hxx | 4 ++--
+ hist/histv7/test/biniter.cxx | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/hist/histv7/inc/ROOT/RHist.hxx b/hist/histv7/inc/ROOT/RHist.hxx
+index ebb319f1ef..9521fe182f 100644
+--- a/hist/histv7/inc/ROOT/RHist.hxx
++++ b/hist/histv7/inc/ROOT/RHist.hxx
+@@ -158,9 +158,9 @@ public:
+ /// Get the uncertainty on the content of the bin at `x`.
+ double GetBinUncertainty(const CoordArray_t &x) const { return fImpl->GetBinUncertainty(x); }
+
+- const_iterator begin() const { return const_iterator(*fImpl); }
++ const_iterator begin() const { return const_iterator(*fImpl, 1); }
+
+- const_iterator end() const { return const_iterator(*fImpl, fImpl->GetNBinsNoOver()); }
++ const_iterator end() const { return const_iterator(*fImpl, fImpl->GetNBinsNoOver() + 1); }
+
+ /// Swap *this and other.
+ ///
+diff --git a/hist/histv7/test/biniter.cxx b/hist/histv7/test/biniter.cxx
+index aa1c2dfef9..1f940aa8e7 100644
+--- a/hist/histv7/test/biniter.cxx
++++ b/hist/histv7/test/biniter.cxx
+@@ -45,7 +45,7 @@ TEST(BinIterNBins, BinRef) {
+ double founduncert = -1.;
+ RH2F::CoordArray_t foundcoord{};
+
+- int nBins = 0;
++ int nBins = 1;
+ for (auto bin: h) {
+ auto binCenter = bin.GetCenter();
+ if (std::fabs(binCenter[0] - x) < 0.1 && std::fabs(binCenter[1] - y) < 0.1) {
+--
+2.26.2
+
diff --git a/root-jupyroot-static.patch b/root-jupyroot-static.patch
index 2cdb5aa..b39110a 100644
--- a/root-jupyroot-static.patch
+++ b/root-jupyroot-static.patch
@@ -1,6 +1,30 @@
-diff -ur root-6.20.02.orig/bindings/pyroot/JsMVA/JPyInterface.py root-6.20.02/bindings/pyroot/JsMVA/JPyInterface.py
---- root-6.20.02.orig/bindings/pyroot/JsMVA/JPyInterface.py 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/JsMVA/JPyInterface.py 2020-03-15 20:07:18.921423559 +0100
+diff -ur root-6.22.00.orig/bindings/jsmva/python/JsMVA/JPyInterface.py root-6.22.00/bindings/jsmva/python/JsMVA/JPyInterface.py
+--- root-6.22.00.orig/bindings/jsmva/python/JsMVA/JPyInterface.py 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/jsmva/python/JsMVA/JPyInterface.py 2020-06-21 20:20:27.744527667 +0200
+@@ -188,7 +188,7 @@
+ ## Class for creating the output scripts and inserting them to cell output
+ class JsDraw:
+ ## Base repository
+- __jsMVARepo = "https://root.cern.ch/js/jsmva/latest"
++ __jsMVARepo = "/static/JsMVA"
+
+ ## String containing the link to JavaScript files
+ __jsMVASourceDir = __jsMVARepo + "/js"
+diff -ur root-6.22.00.orig/bindings/jupyroot/python/JupyROOT/helpers/utils.py root-6.22.00/bindings/jupyroot/python/JupyROOT/helpers/utils.py
+--- root-6.22.00.orig/bindings/jupyroot/python/JupyROOT/helpers/utils.py 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/jupyroot/python/JupyROOT/helpers/utils.py 2020-06-21 20:18:22.840258397 +0200
+@@ -40,7 +40,7 @@
+ _jsNotDrawableClassesPatterns = ["TEve*","TF3","TPolyLine3D"]
+
+
+-_jsROOTSourceDir = "/static/"
++_jsROOTSourceDir = "/static/jsroot/"
+ _jsCanvasWidth = 800
+ _jsCanvasHeight = 600
+
+diff -ur root-6.22.00.orig/bindings/pyroot_legacy/JsMVA/JPyInterface.py root-6.22.00/bindings/pyroot_legacy/JsMVA/JPyInterface.py
+--- root-6.22.00.orig/bindings/pyroot_legacy/JsMVA/JPyInterface.py 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot_legacy/JsMVA/JPyInterface.py 2020-06-21 20:09:42.265004565 +0200
@@ -188,7 +188,7 @@
## Class for creating the output scripts and inserting them to cell output
class JsDraw:
@@ -10,9 +34,9 @@ diff -ur root-6.20.02.orig/bindings/pyroot/JsMVA/JPyInterface.py root-6.20.02/bi
## String containing the link to JavaScript files
__jsMVASourceDir = __jsMVARepo + "/js"
-diff -ur root-6.20.02.orig/bindings/pyroot/JupyROOT/helpers/utils.py root-6.20.02/bindings/pyroot/JupyROOT/helpers/utils.py
---- root-6.20.02.orig/bindings/pyroot/JupyROOT/helpers/utils.py 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/JupyROOT/helpers/utils.py 2020-03-15 20:07:18.921423559 +0100
+diff -ur root-6.22.00.orig/bindings/pyroot_legacy/JupyROOT/helpers/utils.py root-6.22.00/bindings/pyroot_legacy/JupyROOT/helpers/utils.py
+--- root-6.22.00.orig/bindings/pyroot_legacy/JupyROOT/helpers/utils.py 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot_legacy/JupyROOT/helpers/utils.py 2020-06-21 20:09:42.266004568 +0200
@@ -82,7 +82,7 @@
function requirejs_success(base_url) {{
return function() {{
@@ -22,9 +46,9 @@ diff -ur root-6.20.02.orig/bindings/pyroot/JupyROOT/helpers/utils.py root-6.20.0
}});
display_{jsDivId}();
}}
-diff -ur root-6.20.02.orig/etc/notebook/JsMVA/js/JsMVA.js root-6.20.02/etc/notebook/JsMVA/js/JsMVA.js
---- root-6.20.02.orig/etc/notebook/JsMVA/js/JsMVA.js 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/etc/notebook/JsMVA/js/JsMVA.js 2020-03-15 20:07:18.922423549 +0100
+diff -ur root-6.22.00.orig/etc/notebook/JsMVA/js/JsMVA.js root-6.22.00/etc/notebook/JsMVA/js/JsMVA.js
+--- root-6.22.00.orig/etc/notebook/JsMVA/js/JsMVA.js 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/etc/notebook/JsMVA/js/JsMVA.js 2020-06-21 20:10:34.552121014 +0200
@@ -16,7 +16,7 @@
(function(factory){
@@ -34,9 +58,9 @@ diff -ur root-6.20.02.orig/etc/notebook/JsMVA/js/JsMVA.js root-6.20.02/etc/noteb
var url = "";
if (requirejs.s.contexts.hasOwnProperty("_")) {
-diff -ur root-6.20.02.orig/etc/notebook/JsMVA/js/NetworkDesigner.js root-6.20.02/etc/notebook/JsMVA/js/NetworkDesigner.js
---- root-6.20.02.orig/etc/notebook/JsMVA/js/NetworkDesigner.js 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/etc/notebook/JsMVA/js/NetworkDesigner.js 2020-03-15 20:07:18.922423549 +0100
+diff -ur root-6.22.00.orig/etc/notebook/JsMVA/js/NetworkDesigner.js root-6.22.00/etc/notebook/JsMVA/js/NetworkDesigner.js
+--- root-6.22.00.orig/etc/notebook/JsMVA/js/NetworkDesigner.js 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/etc/notebook/JsMVA/js/NetworkDesigner.js 2020-06-21 20:10:34.552121014 +0200
@@ -19,7 +19,7 @@
paths: {
"jquery-connections": baseURL + "jquery.connections.min",
diff --git a/root-memory-usage.patch b/root-memory-usage.patch
index 27fac76..9910ec3 100644
--- a/root-memory-usage.patch
+++ b/root-memory-usage.patch
@@ -1,4 +1,4 @@
-From b587d85a5fc8f706362396dc347830f16797b1f2 Mon Sep 17 00:00:00 2001
+From 636b26baf214559e209e72b2a14946d0cc18c2f1 Mon Sep 17 00:00:00 2001
From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Tue, 16 Jan 2018 10:25:50 +0100
Subject: [PATCH] Reduce the needed memory for compilation
@@ -18,14 +18,14 @@ A similar dependency existed before the code latest code changes
(see commit 2638f6fc7f54b0995f2f9d60363daaf8aae2386e), then between
rootcling and libCling.
---
- core/metacling/src/CMakeLists.txt | 4 ++++
- 1 file changed, 4 insertions(+)
+ core/metacling/src/CMakeLists.txt | 5 +++++
+ 1 file changed, 5 insertions(+)
diff --git a/core/metacling/src/CMakeLists.txt b/core/metacling/src/CMakeLists.txt
-index eccd77681d..df941eb3b7 100644
+index 2923345f7c..b44a4d4115 100644
--- a/core/metacling/src/CMakeLists.txt
+++ b/core/metacling/src/CMakeLists.txt
-@@ -86,6 +86,10 @@ ROOT_LINKER_LIBRARY(Cling
+@@ -114,6 +114,11 @@ ROOT_LINKER_LIBRARY(Cling
$<TARGET_OBJECTS:MetaCling>
LIBRARIES ${CLING_LIBRARIES} ${LINK_LIBS} ${CLING_PLUGIN_LINK_LIBS})
@@ -33,9 +33,10 @@ index eccd77681d..df941eb3b7 100644
+# rootcling_stage1 from being linked in parallel.
+# This avoids doing two memory consuming operations in parallel.
+add_dependencies(Cling rootcling_stage1)
-
++
if(MSVC)
set_target_properties(Cling PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
+ set(cling_exports
--
-2.20.1
+2.26.2
diff --git a/root-moved-file.patch b/root-moved-file.patch
deleted file mode 100644
index 948a78b..0000000
--- a/root-moved-file.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 6492170d74f464286de22c40554adbd400ec838b Mon Sep 17 00:00:00 2001
-From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
-Date: Fri, 13 Mar 2020 12:53:34 +0100
-Subject: [PATCH] The file was moved - update path
-
----
- tutorials/legacy/mlp/mlpHiggs.C | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/tutorials/legacy/mlp/mlpHiggs.C b/tutorials/legacy/mlp/mlpHiggs.C
-index 49d3ca2b30..0516ed7c50 100644
---- a/tutorials/legacy/mlp/mlpHiggs.C
-+++ b/tutorials/legacy/mlp/mlpHiggs.C
-@@ -18,8 +18,8 @@ void mlpHiggs(Int_t ntrain=100) {
- TFile *input = 0;
- if (!gSystem->AccessPathName(fname)) {
- input = TFile::Open(fname);
-- } else if (!gSystem->AccessPathName(Form("%s/mlp/%s", TROOT::GetTutorialDir().Data(), fname))) {
-- input = TFile::Open(Form("%s/mlp/%s", TROOT::GetTutorialDir().Data(), fname));
-+ } else if (!gSystem->AccessPathName(Form("%s/legacy/mlp/%s", TROOT::GetTutorialDir().Data(), fname))) {
-+ input = TFile::Open(Form("%s/legacy/mlp/%s", TROOT::GetTutorialDir().Data(), fname));
- } else {
- printf("accessing %s file from http://root.cern.ch/files\n",fname);
- input = TFile::Open(Form("http://root.cern.ch/files/%s",fname));
---
-2.24.1
-
diff --git a/root-ntuple-largefile.patch b/root-ntuple-largefile.patch
new file mode 100644
index 0000000..b4242f0
--- /dev/null
+++ b/root-ntuple-largefile.patch
@@ -0,0 +1,139 @@
+diff -ur root-6.22.00.orig/io/io/src/RRawFileUnix.cxx root-6.22.00/io/io/src/RRawFileUnix.cxx
+--- root-6.22.00.orig/io/io/src/RRawFileUnix.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/io/io/src/RRawFileUnix.cxx 2020-07-02 09:02:48.202677798 +0200
+@@ -9,6 +9,8 @@
+ * For the list of contributors see $ROOTSYS/README/CREDITS. *
+ *************************************************************************/
+
++#include "ROOT/RConfig.hxx"
++
+ #include "ROOT/RRawFileUnix.hxx"
+ #include "ROOT/RMakeUnique.hxx"
+
+@@ -47,8 +49,13 @@
+
+ std::uint64_t ROOT::Internal::RRawFileUnix::GetSizeImpl()
+ {
++#ifdef R__SEEK64
++ struct stat64 info;
++ int res = fstat64(fFileDes, &info);
++#else
+ struct stat info;
+ int res = fstat(fFileDes, &info);
++#endif
+ if (res != 0)
+ throw std::runtime_error("Cannot call fstat on '" + fUrl + "', error: " + std::string(strerror(errno)));
+ return info.st_size;
+@@ -68,7 +75,11 @@
+
+ void ROOT::Internal::RRawFileUnix::OpenImpl()
+ {
++#ifdef R__SEEK64
++ fFileDes = open64(GetLocation(fUrl).c_str(), O_RDONLY);
++#else
+ fFileDes = open(GetLocation(fUrl).c_str(), O_RDONLY);
++#endif
+ if (fFileDes < 0) {
+ throw std::runtime_error("Cannot open '" + fUrl + "', error: " + std::string(strerror(errno)));
+ }
+@@ -76,8 +87,13 @@
+ if (fOptions.fBlockSize >= 0)
+ return;
+
++#ifdef R__SEEK64
++ struct stat64 info;
++ int res = fstat64(fFileDes, &info);
++#else
+ struct stat info;
+ int res = fstat(fFileDes, &info);
++#endif
+ if (res != 0) {
+ throw std::runtime_error("Cannot call fstat on '" + fUrl + "', error: " + std::string(strerror(errno)));
+ }
+@@ -92,7 +108,11 @@
+ {
+ size_t total_bytes = 0;
+ while (nbytes) {
++#ifdef R__SEEK64
++ ssize_t res = pread64(fFileDes, buffer, nbytes, offset);
++#else
+ ssize_t res = pread(fFileDes, buffer, nbytes, offset);
++#endif
+ if (res < 0) {
+ if (errno == EINTR)
+ continue;
+diff -ur root-6.22.00.orig/tree/ntuple/v7/src/RMiniFile.cxx root-6.22.00/tree/ntuple/v7/src/RMiniFile.cxx
+--- root-6.22.00.orig/tree/ntuple/v7/src/RMiniFile.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tree/ntuple/v7/src/RMiniFile.cxx 2020-07-02 10:06:55.066204147 +0200
+@@ -13,6 +13,8 @@
+ * For the list of contributors see $ROOTSYS/README/CREDITS. *
+ *************************************************************************/
+
++#include <ROOT/RConfig.hxx>
++
+ #include "ROOT/RMiniFile.hxx"
+
+ #include <ROOT/RRawFile.hxx>
+@@ -999,7 +1001,11 @@
+ R__ASSERT(fFile);
+ size_t retval;
+ if ((offset >= 0) && (static_cast<std::uint64_t>(offset) != fFilePos)) {
++#ifdef R__SEEK64
++ retval = fseeko64(fFile, offset, SEEK_SET);
++#else
+ retval = fseek(fFile, offset, SEEK_SET);
++#endif
+ R__ASSERT(retval == 0);
+ fFilePos = offset;
+ }
+@@ -1099,7 +1105,11 @@
+ if (idxDirSep != std::string::npos) {
+ fileName.erase(0, idxDirSep + 1);
+ }
++#ifdef R__SEEK64
++ FILE *fileStream = fopen64(std::string(path.data(), path.size()).c_str(), "wb");
++#else
+ FILE *fileStream = fopen(std::string(path.data(), path.size()).c_str(), "wb");
++#endif
+ R__ASSERT(fileStream);
+
+ auto writer = new RNTupleFileWriter(ntupleName);
+@@ -1319,7 +1329,11 @@
+ fFileSimple.Write(&strEmpty, strEmpty.GetSize());
+ fFileSimple.Write(&fileRoot, fileRoot.GetSize());
+ fFileSimple.fFilePos = tail;
++#ifdef R__SEEK64
++ auto retval = fseeko64(fFileSimple.fFile, tail, SEEK_SET);
++#else
+ auto retval = fseek(fFileSimple.fFile, tail, SEEK_SET);
++#endif
+ R__ASSERT(retval == 0);
+ fFileSimple.fFilePos = tail;
+ }
+diff -ur root-6.22.00.orig/tree/ntuple/v7/test/ntuple.cxx root-6.22.00/tree/ntuple/v7/test/ntuple.cxx
+--- root-6.22.00.orig/tree/ntuple/v7/test/ntuple.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tree/ntuple/v7/test/ntuple.cxx 2020-07-02 10:10:54.409737807 +0200
+@@ -1,3 +1,5 @@
++#include <ROOT/RConfig.hxx>
++
+ #include <ROOT/RColumnModel.hxx>
+ #include <ROOT/RDataFrame.hxx>
+ #include <ROOT/RNTuple.hxx>
+@@ -891,10 +893,17 @@
+ ntuple->Fill();
+ }
+ }
++#ifdef R__SEEK64
++ FILE *file = fopen64(fileGuard.GetPath().c_str(), "rb");
++ ASSERT_TRUE(file != nullptr);
++ EXPECT_EQ(0, fseeko64(file, 0, SEEK_END));
++ EXPECT_GT(ftello64(file), 2048LL * 1024LL * 1024LL);
++#else
+ FILE *file = fopen(fileGuard.GetPath().c_str(), "rb");
+ ASSERT_TRUE(file != nullptr);
+ EXPECT_EQ(0, fseek(file, 0, SEEK_END));
+ EXPECT_GT(ftell(file), 2048LL * 1024LL * 1024LL);
++#endif
+ fclose(file);
+
+ auto ntuple = RNTupleReader::Open("myNTuple", fileGuard.GetPath());
diff --git a/root-old-gtest-compat.patch b/root-old-gtest-compat.patch
new file mode 100644
index 0000000..a25a8e8
--- /dev/null
+++ b/root-old-gtest-compat.patch
@@ -0,0 +1,161 @@
+diff -ur root-6.22.00.orig/math/mathcore/test/stress/testGenVector.cxx root-6.22.00/math/mathcore/test/stress/testGenVector.cxx
+--- root-6.22.00.orig/math/mathcore/test/stress/testGenVector.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/math/mathcore/test/stress/testGenVector.cxx 2020-06-29 19:38:08.524050438 +0200
+@@ -4,6 +4,16 @@
+
+ #include "gtest/gtest.h"
+
++#ifndef TYPED_TEST_SUITE_P
++#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P
++#endif
++#ifndef REGISTER_TYPED_TEST_SUITE_P
++#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P
++#endif
++#ifndef INSTANTIATE_TYPED_TEST_SUITE_P
++#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P
++#endif
++
+ #include "StatFunction.h"
+ #include "TestHelper.h"
+ #include "VectorTest.h"
+diff -ur root-6.22.00.orig/math/mathcore/test/stress/testSMatrix.cxx root-6.22.00/math/mathcore/test/stress/testSMatrix.cxx
+--- root-6.22.00.orig/math/mathcore/test/stress/testSMatrix.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/math/mathcore/test/stress/testSMatrix.cxx 2020-06-29 19:38:08.524050438 +0200
+@@ -7,6 +7,16 @@
+ #include "TestHelper.h"
+ #include "gtest/gtest.h"
+
++#ifndef TYPED_TEST_SUITE_P
++#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P
++#endif
++#ifndef REGISTER_TYPED_TEST_SUITE_P
++#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P
++#endif
++#ifndef INSTANTIATE_TYPED_TEST_SUITE_P
++#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P
++#endif
++
+ #include "VectorTest.h"
+ #include "TROOT.h"
+ #include "TSystem.h"
+diff -ur root-6.22.00.orig/math/mathcore/test/stress/testVector34.cxx root-6.22.00/math/mathcore/test/stress/testVector34.cxx
+--- root-6.22.00.orig/math/mathcore/test/stress/testVector34.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/math/mathcore/test/stress/testVector34.cxx 2020-06-29 19:38:08.525050440 +0200
+@@ -4,6 +4,16 @@
+
+ #include "gtest/gtest.h"
+
++#ifndef TYPED_TEST_SUITE_P
++#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P
++#endif
++#ifndef REGISTER_TYPED_TEST_SUITE_P
++#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P
++#endif
++#ifndef INSTANTIATE_TYPED_TEST_SUITE_P
++#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P
++#endif
++
+ #include "StatFunction.h"
+ #include "VectorTest.h"
+
+diff -ur root-6.22.00.orig/math/mathcore/test/stress/testVector.cxx root-6.22.00/math/mathcore/test/stress/testVector.cxx
+--- root-6.22.00.orig/math/mathcore/test/stress/testVector.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/math/mathcore/test/stress/testVector.cxx 2020-06-29 19:38:08.525050440 +0200
+@@ -4,6 +4,16 @@
+
+ #include "gtest/gtest.h"
+
++#ifndef TYPED_TEST_SUITE_P
++#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P
++#endif
++#ifndef REGISTER_TYPED_TEST_SUITE_P
++#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P
++#endif
++#ifndef INSTANTIATE_TYPED_TEST_SUITE_P
++#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P
++#endif
++
+ #include "StatFunction.h"
+ #include "TestHelper.h"
+ #include "VectorTest.h"
+diff -ur root-6.22.00.orig/math/mathcore/test/testGradient.cxx root-6.22.00/math/mathcore/test/testGradient.cxx
+--- root-6.22.00.orig/math/mathcore/test/testGradient.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/math/mathcore/test/testGradient.cxx 2020-06-29 19:38:08.525050440 +0200
+@@ -22,6 +22,10 @@
+
+ #include "gtest/gtest.h"
+
++#ifndef TYPED_TEST_SUITE
++#define TYPED_TEST_SUITE TYPED_TEST_CASE
++#endif
++
+ #include <chrono>
+ #include <iostream>
+ #include <string>
+diff -ur root-6.22.00.orig/math/mathcore/test/testGradientFitting.cxx root-6.22.00/math/mathcore/test/testGradientFitting.cxx
+--- root-6.22.00.orig/math/mathcore/test/testGradientFitting.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/math/mathcore/test/testGradientFitting.cxx 2020-06-29 19:38:08.525050440 +0200
+@@ -12,6 +12,16 @@
+
+ #include "gtest/gtest.h"
+
++#ifndef TYPED_TEST_SUITE_P
++#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P
++#endif
++#ifndef REGISTER_TYPED_TEST_SUITE_P
++#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P
++#endif
++#ifndef INSTANTIATE_TYPED_TEST_SUITE_P
++#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P
++#endif
++
+ #include <iostream>
+ #include <string>
+
+diff -ur root-6.22.00.orig/math/mathmore/test/testStress.cxx root-6.22.00/math/mathmore/test/testStress.cxx
+--- root-6.22.00.orig/math/mathmore/test/testStress.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/math/mathmore/test/testStress.cxx 2020-06-29 19:38:08.526050443 +0200
+@@ -28,6 +28,16 @@
+
+ #include "gtest/gtest.h"
+
++#ifndef TYPED_TEST_SUITE_P
++#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P
++#endif
++#ifndef REGISTER_TYPED_TEST_SUITE_P
++#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P
++#endif
++#ifndef INSTANTIATE_TYPED_TEST_SUITE_P
++#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P
++#endif
++
+ using ::testing::TestWithParam;
+ using ::testing::Values;
+
+diff -ur root-6.22.00.orig/roofit/roofitcore/test/testProxiesAndCategories.cxx root-6.22.00/roofit/roofitcore/test/testProxiesAndCategories.cxx
+--- root-6.22.00.orig/roofit/roofitcore/test/testProxiesAndCategories.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/roofit/roofitcore/test/testProxiesAndCategories.cxx 2020-06-29 19:38:08.526050443 +0200
+@@ -16,6 +16,9 @@
+
+ #include "gtest/gtest.h"
+
++#ifndef INSTANTIATE_TEST_SUITE_P
++#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
++#endif
+
+ TEST(RooCategory, CategoryDefineMultiState) {
+ RooCategory myCat("myCat", "A category", { {"0Lep", 0}, {"1Lep", 1}, {"2Lep", 2}, {"3Lep", 3} });
+diff -ur root-6.22.00.orig/tree/dataframe/test/dataframe_simple.cxx root-6.22.00/tree/dataframe/test/dataframe_simple.cxx
+--- root-6.22.00.orig/tree/dataframe/test/dataframe_simple.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/tree/dataframe/test/dataframe_simple.cxx 2020-06-29 19:38:45.667130468 +0200
+@@ -1,5 +1,10 @@
+ /****** Run RDataFrame tests both with and without IMT enabled *******/
+ #include <gtest/gtest.h>
++
++#ifndef INSTANTIATE_TEST_SUITE_P
++#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
++#endif
++
+ #include <ROOT/RDataFrame.hxx>
+ #include <ROOT/TSeq.hxx>
+ #include <TChain.h>
diff --git a/root-python2-compat.patch b/root-python2-compat.patch
new file mode 100644
index 0000000..8006a8f
--- /dev/null
+++ b/root-python2-compat.patch
@@ -0,0 +1,41 @@
+From 056b67d05c950cf04a8290dcdf376078ee92b449 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Mon, 29 Jun 2020 17:01:03 +0200
+Subject: [PATCH] Compatibility with python 2.7 versions before 2.7.9
+
+This is a workaround for https://bugs.python.org/issue21591 which
+affect Python 2 versions before 2.7.9. This includes Python 2.7.5
+which is the Python 2 version on RHEL/CentOS 7.
+---
+ .../pyroot/pythonizations/python/ROOT/_numbadeclare.py | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/bindings/pyroot/pythonizations/python/ROOT/_numbadeclare.py b/bindings/pyroot/pythonizations/python/ROOT/_numbadeclare.py
+index 1bef862af5..9aa893b8f0 100644
+--- a/bindings/pyroot/pythonizations/python/ROOT/_numbadeclare.py
++++ b/bindings/pyroot/pythonizations/python/ROOT/_numbadeclare.py
+@@ -32,7 +32,7 @@ def _NumbaDeclareDecorator(input_types, return_type, name=None):
+ import cffi
+ except:
+ raise Exception('Failed to import cffi')
+- import re
++ import re, sys
+
+ # Normalize input types by stripping ROOT and VecOps namespaces from input types
+ def normalize_typename(t):
+@@ -195,7 +195,11 @@ def pywrapper({SIGNATURE}):
+ if 'RVec' in return_type:
+ glob['dtype_r'] = get_numba_type(get_inner_type(return_type))
+
+- exec(pywrappercode, glob, locals())
++ if sys.version_info[0] >= 3:
++ exec(pywrappercode, glob, locals()) in {}
++ else:
++ exec(pywrappercode) in glob, locals()
++
+ if not 'pywrapper' in locals():
+ raise Exception('Failed to create Python wrapper function:\n{}'.format(pywrappercode))
+
+--
+2.26.2
+
diff --git a/root-python3.8-object.patch b/root-python3.8-object.patch
index 2447e31..a4d2759 100644
--- a/root-python3.8-object.patch
+++ b/root-python3.8-object.patch
@@ -1,292 +1,58 @@
-diff -ur root-6.20.02.orig/bindings/pyroot/src/MethodProxy.cxx root-6.20.02/bindings/pyroot/src/MethodProxy.cxx
---- root-6.20.02.orig/bindings/pyroot/src/MethodProxy.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/MethodProxy.cxx 2020-03-15 19:43:20.946684699 +0100
-@@ -845,7 +845,8 @@
- sizeof(MethodProxy), // tp_basicsize
- 0, // tp_itemsize
- (destructor)mp_dealloc, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -894,6 +895,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- } // namespace PyROOT
-diff -ur root-6.20.02.orig/bindings/pyroot/src/ObjectProxy.cxx root-6.20.02/bindings/pyroot/src/ObjectProxy.cxx
---- root-6.20.02.orig/bindings/pyroot/src/ObjectProxy.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/ObjectProxy.cxx 2020-03-15 19:43:20.946684699 +0100
-@@ -398,7 +398,8 @@
- sizeof(ObjectProxy), // tp_basicsize
- 0, // tp_itemsize
- (destructor)op_dealloc, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -450,6 +451,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- } // namespace PyROOT
-diff -ur root-6.20.02.orig/bindings/pyroot/src/PropertyProxy.cxx root-6.20.02/bindings/pyroot/src/PropertyProxy.cxx
---- root-6.20.02.orig/bindings/pyroot/src/PropertyProxy.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/PropertyProxy.cxx 2020-03-15 19:43:20.946684699 +0100
-@@ -133,7 +133,8 @@
- sizeof(PropertyProxy), // tp_basicsize
- 0, // tp_itemsize
- (destructor)pp_dealloc, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -182,6 +183,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- } // namespace PyROOT
-diff -ur root-6.20.02.orig/bindings/pyroot/src/PyRootType.cxx root-6.20.02/bindings/pyroot/src/PyRootType.cxx
---- root-6.20.02.orig/bindings/pyroot/src/PyRootType.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/PyRootType.cxx 2020-03-15 19:43:20.946684699 +0100
-@@ -232,7 +232,8 @@
- sizeof(PyROOT::PyRootClass),// tp_basicsize
- 0, // tp_itemsize
- 0, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -281,6 +282,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- } // namespace PyROOT
-diff -ur root-6.20.02.orig/bindings/pyroot/src/Pythonize.cxx root-6.20.02/bindings/pyroot/src/Pythonize.cxx
---- root-6.20.02.orig/bindings/pyroot/src/Pythonize.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/Pythonize.cxx 2020-03-15 19:43:20.947684688 +0100
-@@ -944,6 +944,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- static PyObject* vector_iter( PyObject* v ) {
-diff -ur root-6.20.02.orig/bindings/pyroot/src/RootModule.cxx root-6.20.02/bindings/pyroot/src/RootModule.cxx
---- root-6.20.02.orig/bindings/pyroot/src/RootModule.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/RootModule.cxx 2020-03-15 19:43:20.948684678 +0100
-@@ -134,6 +134,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- PyObject _PyROOT_NullPtrStruct = {
-diff -ur root-6.20.02.orig/bindings/pyroot/src/TCustomPyTypes.cxx root-6.20.02/bindings/pyroot/src/TCustomPyTypes.cxx
---- root-6.20.02.orig/bindings/pyroot/src/TCustomPyTypes.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/TCustomPyTypes.cxx 2020-03-15 19:43:20.948684678 +0100
-@@ -19,7 +19,8 @@
- 0, // tp_basicsize
- 0, // tp_itemsize
- 0, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -69,6 +70,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- //= long type allowed for reference passing ==================================
-@@ -78,7 +85,8 @@
- 0, // tp_basicsize
- 0, // tp_itemsize
- 0, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -128,6 +136,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt 2020-06-21 20:54:24.848992803 +0200
+@@ -85,11 +85,6 @@
+ target_compile_options(${libname} PRIVATE -Wno-deprecated-register)
+ endif()
- //= instancemethod object with a more efficient call function ================
-@@ -277,7 +291,8 @@
- 0, // tp_basicsize
- 0, // tp_itemsize
- (destructor)im_dealloc, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -327,6 +342,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- } // namespace PyROOT
-diff -ur root-6.20.02.orig/bindings/pyroot/src/TemplateProxy.cxx root-6.20.02/bindings/pyroot/src/TemplateProxy.cxx
---- root-6.20.02.orig/bindings/pyroot/src/TemplateProxy.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/TemplateProxy.cxx 2020-03-15 19:43:20.948684678 +0100
-@@ -492,7 +492,8 @@
- sizeof(TemplateProxy), // tp_basicsize
- 0, // tp_itemsize
- (destructor)tpp_dealloc, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -541,6 +542,12 @@
- #if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
- #endif
-+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
-+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
-+#endif
-+#endif
- };
-
- } // namespace PyROOT
-diff -ur root-6.20.02.orig/bindings/pyroot/src/TTupleOfInstances.cxx root-6.20.02/bindings/pyroot/src/TTupleOfInstances.cxx
---- root-6.20.02.orig/bindings/pyroot/src/TTupleOfInstances.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot/src/TTupleOfInstances.cxx 2020-03-15 19:43:20.948684678 +0100
-@@ -42,7 +42,8 @@
- 0, // tp_basicsize
- 0, // tp_itemsize
- 0, // tp_dealloc
-- 0, // tp_print
-+ 0, // tp_print (python < 3.8)
-+ // tp_vectorcall_offset (python >= 3.8)
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
-@@ -92,6 +93,12 @@
+- # Disables warnings due to new field tp_vectorcall in Python 3.8
+- if(NOT MSVC AND ${python_version_string} VERSION_GREATER_EQUAL "3.8")
+- target_compile_options(${libname} PRIVATE -Wno-missing-field-initializers)
+- endif()
+-
+ target_include_directories(${libname}
+ PRIVATE
+ ${CMAKE_SOURCE_DIR}/core/foundation/inc # needed for string_view backport
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPDataMember.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPDataMember.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPDataMember.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPDataMember.cxx 2020-06-21 20:53:49.651914431 +0200
+@@ -167,7 +167,8 @@
+ sizeof(CPPDataMember), // tp_basicsize
+ 0, // tp_itemsize
+ (destructor)pp_dealloc, // tp_dealloc
+- 0, // tp_print
++ 0, // tp_print (python < 3.8)
++ // tp_vectorcall_offset (python >= 3.8)
+ 0, // tp_getattr
+ 0, // tp_setattr
+ 0, // tp_compare
+@@ -216,6 +217,12 @@
#if PY_VERSION_HEX >= 0x03040000
- , 0 // tp_finalize
+ , 0 // tp_finalize
#endif
+#if PY_VERSION_HEX >= 0x03080000
-+ , 0 // tp_vectorcall
++ , 0 // tp_vectorcall
+#if PY_VERSION_HEX < 0x03090000
-+ , 0 // tp_print (python 3.8 only)
++ , 0 // tp_print (python 3.8 only)
+#endif
+#endif
};
- } // namespace PyROOT
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/CMakeLists.txt root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/CMakeLists.txt
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/CMakeLists.txt 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/CMakeLists.txt 2020-03-15 19:43:20.949684667 +0100
-@@ -64,11 +64,6 @@
- target_compile_options(cppyy PRIVATE -Wno-deprecated-register)
- endif()
-
--# Disables warnings due to new field tp_vectorcall in Python 3.8
--if(NOT MSVC AND ${PYTHON_VERSION_STRING} VERSION_GREATER_EQUAL "3.8")
-- target_compile_options(cppyy PRIVATE -Wno-missing-field-initializers)
--endif()
--
- target_include_directories(cppyy PRIVATE ${CMAKE_BINARY_DIR}/include) # needed for string_view backport
-
- target_include_directories(cppyy PUBLIC ${PYTHON_INCLUDE_DIRS}
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDataMember.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDataMember.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDataMember.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDataMember.cxx 2020-03-15 19:43:20.949684667 +0100
-@@ -167,7 +167,8 @@
- sizeof(CPPDataMember), // tp_basicsize
+ } // namespace CPyCppyy
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPExcInstance.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPExcInstance.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPExcInstance.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPExcInstance.cxx 2020-06-21 20:53:49.651914431 +0200
+@@ -158,7 +158,8 @@
+ sizeof(CPPExcInstance), // tp_basicsize
0, // tp_itemsize
- (destructor)pp_dealloc, // tp_dealloc
+ (destructor)ep_dealloc, // tp_dealloc
- 0, // tp_print
+ 0, // tp_print (python < 3.8)
+ // tp_vectorcall_offset (python >= 3.8)
0, // tp_getattr
0, // tp_setattr
0, // tp_compare
-@@ -216,6 +217,12 @@
+@@ -211,6 +212,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -299,10 +65,10 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDa
};
} // namespace CPyCppyy
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPInstance.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPInstance.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPInstance.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPInstance.cxx 2020-03-15 19:43:20.949684667 +0100
-@@ -565,7 +565,8 @@
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPInstance.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPInstance.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPInstance.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPInstance.cxx 2020-06-21 20:53:49.651914431 +0200
+@@ -746,7 +746,8 @@
sizeof(CPPInstance), // tp_basicsize
0, // tp_itemsize
(destructor)op_dealloc, // tp_dealloc
@@ -312,7 +78,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPIn
0, // tp_getattr
0, // tp_setattr
0, // tp_compare
-@@ -617,6 +618,12 @@
+@@ -798,6 +799,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -325,10 +91,10 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPIn
};
} // namespace CPyCppyy
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOverload.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOverload.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOverload.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOverload.cxx 2020-03-15 19:43:20.950684656 +0100
-@@ -889,7 +889,8 @@
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx 2020-06-21 20:53:49.652914433 +0200
+@@ -866,7 +866,8 @@
sizeof(CPPOverload), // tp_basicsize
0, // tp_itemsize
(destructor)mp_dealloc, // tp_dealloc
@@ -338,7 +104,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOv
0, // tp_getattr
0, // tp_setattr
0, // tp_compare
-@@ -938,6 +939,12 @@
+@@ -915,6 +916,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -351,10 +117,10 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOv
};
} // namespace CPyCppyy
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPScope.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPScope.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPScope.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPScope.cxx 2020-03-15 19:43:20.950684656 +0100
-@@ -596,7 +596,8 @@
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPScope.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPScope.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPScope.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPScope.cxx 2020-06-21 20:53:49.652914433 +0200
+@@ -616,7 +616,8 @@
sizeof(CPyCppyy::CPPScope), // tp_basicsize
0, // tp_itemsize
0, // tp_dealloc
@@ -364,7 +130,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPSc
0, // tp_getattr
0, // tp_setattr
0, // tp_compare
-@@ -649,6 +650,12 @@
+@@ -669,6 +670,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -377,10 +143,11 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPSc
};
} // namespace CPyCppyy
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCppyyModule.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCppyyModule.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCppyyModule.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCppyyModule.cxx 2020-03-15 19:43:20.951684646 +0100
-@@ -140,6 +140,12 @@
+Endast i root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src: CPPScope.cxx.orig
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyyModule.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyyModule.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyyModule.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyyModule.cxx 2020-06-21 20:53:49.652914433 +0200
+@@ -141,6 +141,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -393,10 +160,10 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCp
};
namespace {
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CustomPyTypes.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CustomPyTypes.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CustomPyTypes.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CustomPyTypes.cxx 2020-03-15 19:43:20.951684646 +0100
-@@ -33,6 +33,12 @@
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CustomPyTypes.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CustomPyTypes.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CustomPyTypes.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CustomPyTypes.cxx 2020-06-21 20:53:49.652914433 +0200
+@@ -34,6 +34,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -409,7 +176,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Custo
};
//= long type allowed for reference passing ==================================
-@@ -59,6 +65,12 @@
+@@ -60,6 +66,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -422,7 +189,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Custo
};
//- custom type representing typedef to pointer of class ---------------------
-@@ -89,6 +101,12 @@
+@@ -90,6 +102,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -435,7 +202,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Custo
};
//= instancemethod object with a more efficient call function ================
-@@ -254,6 +272,12 @@
+@@ -255,6 +273,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -448,7 +215,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Custo
};
-@@ -304,6 +328,12 @@
+@@ -305,6 +329,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -461,7 +228,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Custo
};
-@@ -355,6 +385,12 @@
+@@ -364,6 +394,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -474,9 +241,9 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Custo
};
} // namespace CPyCppyy
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLevelViews.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLevelViews.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLevelViews.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLevelViews.cxx 2020-03-15 19:43:20.951684646 +0100
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/LowLevelViews.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/LowLevelViews.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/LowLevelViews.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/LowLevelViews.cxx 2020-06-21 20:53:49.653914436 +0200
@@ -651,7 +651,8 @@
sizeof(CPyCppyy::LowLevelView),// tp_basicsize
0, // tp_itemsize
@@ -500,10 +267,10 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLe
};
} // namespace CPyCppyy
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TemplateProxy.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TemplateProxy.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TemplateProxy.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TemplateProxy.cxx 2020-03-15 19:43:20.952684635 +0100
-@@ -709,7 +709,8 @@
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/TemplateProxy.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/TemplateProxy.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/TemplateProxy.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/TemplateProxy.cxx 2020-06-21 20:53:49.653914436 +0200
+@@ -730,7 +730,8 @@
sizeof(TemplateProxy), // tp_basicsize
0, // tp_itemsize
(destructor)tpp_dealloc, // tp_dealloc
@@ -513,7 +280,7 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Templ
0, // tp_getattr
0, // tp_setattr
0, // tp_compare
-@@ -758,6 +759,12 @@
+@@ -779,6 +780,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
#endif
@@ -526,9 +293,9 @@ diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/Templ
};
} // namespace CPyCppyy
-diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TupleOfInstances.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TupleOfInstances.cxx
---- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TupleOfInstances.cxx 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TupleOfInstances.cxx 2020-03-15 19:43:20.952684635 +0100
+diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/TupleOfInstances.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/TupleOfInstances.cxx
+--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/TupleOfInstances.cxx 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/TupleOfInstances.cxx 2020-06-21 20:53:49.653914436 +0200
@@ -82,6 +82,12 @@
#if PY_VERSION_HEX >= 0x03040000
, 0 // tp_finalize
diff --git a/root-setcachefiledir.patch b/root-setcachefiledir.patch
new file mode 100644
index 0000000..f73615e
--- /dev/null
+++ b/root-setcachefiledir.patch
@@ -0,0 +1,30 @@
+From 0bf4cdfee3f2189f4d43f7cde9ba114ce682cac5 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Mon, 29 Jun 2020 12:08:15 +0200
+Subject: [PATCH] Add missing call to TFile::SetCacheFileDir(".")
+
+Without it the following TFile::Open call using the CACHEREAD option
+will as work as intrnded:
+inputFile = TFile::Open(inputFileLink, "CACHEREAD");
+---
+ tutorials/tmva/TMVA_Higgs_Classification.C | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/tutorials/tmva/TMVA_Higgs_Classification.C b/tutorials/tmva/TMVA_Higgs_Classification.C
+index 6b4a8ed028..85dffc2790 100644
+--- a/tutorials/tmva/TMVA_Higgs_Classification.C
++++ b/tutorials/tmva/TMVA_Higgs_Classification.C
+@@ -72,9 +72,8 @@ Define now input data file and signal and background trees
+ if (!inputFile) {
+ // download file from Cernbox location
+ Info("TMVA_Higgs_Classification","Download Higgs_data.root file");
++ TFile::SetCacheFileDir(".");
+ inputFile = TFile::Open(inputFileLink, "CACHEREAD");
+- //gSystem->Exec( TString::Format("wget -O %s %s",inputFileName.Data(), downloadLinkFile.Data() ) );
+- //inputFile = TFile::Open( inputFileName);
+ if (!inputFile) {
+ Error("TMVA_Higgs_Classification","Input file cannot be downloaded - exit");
+ return;
+--
+2.26.2
+
diff --git a/root-stressGraphics.patch b/root-stressGraphics.patch
new file mode 100644
index 0000000..c7ac170
--- /dev/null
+++ b/root-stressGraphics.patch
@@ -0,0 +1,34 @@
+From 141dc7359fa890b081802532b97c25eeb5be5ee1 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Mon, 29 Jun 2020 12:53:07 +0200
+Subject: [PATCH] Adjust stressGraphics.ref
+
+---
+ test/stressGraphics.ref | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/test/stressGraphics.ref b/test/stressGraphics.ref
+index 38474d0549..2aecf462e8 100644
+--- a/test/stressGraphics.ref
++++ b/test/stressGraphics.ref
+@@ -3,7 +3,7 @@ Test# PS1Ref# PS1Err# PDFRef# PDFErr# GIFRef# GIFErr# JPGRef# JP
+ 2 4627 600 14506 100 7608 1500 13368 7900 9208 3000 4690 600
+ 3 452 50 12632 50 4797 350 11232 4200 3796 10700 492 50
+ 4 23617 1500 19386 100 43077 12000 143320 123000 45665 11000 24908 1500
+- 5 1025 150 12802 150 19715 2900 33468 9900 30846 5000 1072 200
++ 5 1025 150 12802 200 19715 2900 33468 9900 30846 5000 1072 200
+ 6 430 50 12669 50 4041 400 9558 100 5325 700 471 50
+ 7 4980 50 13893 50 8215 310 16143 1300 12230 500 5011 70
+ 8 5442 80 13473 50 9599 150 18430 700 12398 300 5469 80
+@@ -41,7 +41,7 @@ Test# PS1Ref# PS1Err# PDFRef# PDFErr# GIFRef# GIFErr# JPGRef# JP
+ 40 38312 200 56877 250 47205 3900 36524 11800 119641 8000 38121 200
+ 41 15025 3000 29289 500 34091 1500 42525 11300 33336 3900 14787 4000
+ 42 254604 5000 383258 7000 34608 5000 55666 30400 46534 6500 259594 7000
+- 43 4846 150 14075 100 24281 200 33239 600 25303 300 4877 150
++ 43 4846 150 14075 150 24281 200 33239 600 25303 300 4877 150
+ 44 1435879 150000 12837 100 96029 4000 25972 100 359846 15000 1085792 250000
+ 45 5884 500 16577 200 30259 3500 40706 14000 30026 4000 0 0
+ 46 5723 700 15720 200 14291 2600 32236 11000 16916 3200 5670 800
+--
+2.26.2
+
diff --git a/root-testfiles.sh b/root-testfiles.sh
index c16a23e..db4d721 100755
--- a/root-testfiles.sh
+++ b/root-testfiles.sh
@@ -74,9 +74,11 @@ wget -N ${SITE}/wa91.root
wget -N ${SITE}/AtlasGraphs.root
wget -N ${SITE}/europe.root
+wget -N ${SITE}/Higgs_data.root
wget -N ${SITE}/linearIO.root
wget -N ${SITE}/stressHistogram.5.18.00.root
wget -N ${SITE}/tmva_class_example.root
+wget -N ${SITE}/tmva_multiclass_example.root
wget -N ${SITE}/tmva_reg_example.root
wget -N ${SITE}/usa.root
diff --git a/root-unbundle-gtest.patch b/root-unbundle-gtest.patch
index 44939ca..6821f22 100644
--- a/root-unbundle-gtest.patch
+++ b/root-unbundle-gtest.patch
@@ -1,7 +1,7 @@
-diff -ur root-6.20.02.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.20.02/cmake/modules/SearchInstalledSoftware.cmake
---- root-6.20.02.orig/cmake/modules/SearchInstalledSoftware.cmake 2020-03-15 16:21:25.000000000 +0100
-+++ root-6.20.02/cmake/modules/SearchInstalledSoftware.cmake 2020-03-15 20:12:34.446078193 +0100
-@@ -1528,83 +1528,18 @@
+diff -ur root-6.22.00.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.22.00/cmake/modules/SearchInstalledSoftware.cmake
+--- root-6.22.00.orig/cmake/modules/SearchInstalledSoftware.cmake 2020-06-14 17:51:48.000000000 +0200
++++ root-6.22.00/cmake/modules/SearchInstalledSoftware.cmake 2020-06-21 18:29:13.973655810 +0200
+@@ -1592,100 +1592,17 @@
#---Download googletest--------------------------------------------------------------
if (testing)
@@ -13,20 +13,22 @@ diff -ur root-6.20.02.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.20
+ set(_G_LIBRARY_PATH ${CMAKE_SOURCE_DIR}/googlemock)
- set(_gtest_byproduct_binary_dir
-- ${CMAKE_CURRENT_BINARY_DIR}/googletest-prefix/src/googletest-build/googlemock/)
+- ${CMAKE_CURRENT_BINARY_DIR}/googletest-prefix/src/googletest-build)
- set(_gtest_byproducts
-- ${_gtest_byproduct_binary_dir}/gtest/libgtest.a
-- ${_gtest_byproduct_binary_dir}/gtest/libgtest_main.a
-- ${_gtest_byproduct_binary_dir}/libgmock.a
-- ${_gtest_byproduct_binary_dir}/libgmock_main.a
+- ${_gtest_byproduct_binary_dir}/lib/libgtest.a
+- ${_gtest_byproduct_binary_dir}/lib/libgtest_main.a
+- ${_gtest_byproduct_binary_dir}/lib/libgmock.a
+- ${_gtest_byproduct_binary_dir}/lib/libgmock_main.a
- )
-
- if(MSVC)
- set(EXTRA_GTEST_OPTS
-- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=\\\"\\\"
-- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_MINSIZEREL:PATH=\\\"\\\"
-- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=\\\"\\\"
-- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO:PATH=\\\"\\\")
+- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=${_gtest_byproduct_binary_dir}/lib/
+- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_MINSIZEREL:PATH=${_gtest_byproduct_binary_dir}/lib/
+- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=${_gtest_byproduct_binary_dir}/lib/
+- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO:PATH=${_gtest_byproduct_binary_dir}/lib/
+- -Dgtest_force_shared_crt=ON
+- BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config Release)
- endif()
- if(APPLE)
- set(EXTRA_GTEST_OPTS
@@ -37,7 +39,7 @@ diff -ur root-6.20.02.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.20
- googletest
- GIT_REPOSITORY https://github.com/google/googletest.git
- GIT_SHALLOW 1
-- GIT_TAG release-1.8.0
+- GIT_TAG release-1.10.0
- UPDATE_COMMAND ""
- # TIMEOUT 10
- # # Force separate output paths for debug and release builds to allow easy
@@ -46,11 +48,11 @@ diff -ur root-6.20.02.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.20
- # -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=ReleaseLibs
- # -Dgtest_force_shared_crt=ON
- CMAKE_ARGS -G ${CMAKE_GENERATOR}
-- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+- -DCMAKE_BUILD_TYPE=Release
- -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
- -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
- -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-- -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
+- -DCMAKE_CXX_FLAGS=${ROOT_EXTERNAL_CXX_FLAGS}
- -DCMAKE_AR=${CMAKE_AR}
- -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
- ${EXTRA_GTEST_OPTS}
@@ -66,24 +68,38 @@ diff -ur root-6.20.02.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.20
- ExternalProject_Get_Property(googletest source_dir)
- set(GTEST_INCLUDE_DIR ${source_dir}/googletest/include)
- set(GMOCK_INCLUDE_DIR ${source_dir}/googlemock/include)
+- # Create the directories. Prevents bug https://gitlab.kitware.com/cmake/cmake/issues/15052
+- file(MAKE_DIRECTORY ${GTEST_INCLUDE_DIR} ${GMOCK_INCLUDE_DIR})
-
- # Libraries
- ExternalProject_Get_Property(googletest binary_dir)
-- set(_G_LIBRARY_PATH ${binary_dir}/googlemock/)
+- set(_G_LIBRARY_PATH ${binary_dir}/lib/)
-
-- # Register gtest, gtest_main, gmock, gmock_main
-- foreach (lib gtest gtest_main gmock gmock_main)
-+ # Register gmock, gmock_main
-+ foreach (lib gmock gmock_main)
+- # Use gmock_main instead of gtest_main because it initializes gtest as well.
+- # Note: The libraries are listed in reverse order of their dependancies.
+- foreach(lib gtest gtest_main gmock gmock_main)
++ foreach(lib gmock gmock_main)
add_library(${lib} IMPORTED STATIC GLOBAL)
+- set_target_properties(${lib} PROPERTIES
+- IMPORTED_LOCATION "${_G_LIBRARY_PATH}${CMAKE_STATIC_LIBRARY_PREFIX}${lib}${CMAKE_STATIC_LIBRARY_SUFFIX}"
+- INTERFACE_INCLUDE_DIRECTORIES "${GTEST_INCLUDE_DIRS}"
+- )
- add_dependencies(${lib} googletest)
- if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND
- ${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER_EQUAL 9)
- target_compile_options(${lib} INTERFACE -Wno-deprecated-copy)
- endif()
endforeach()
-- set_property(TARGET gtest PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/gtest/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX})
-- set_property(TARGET gtest_main PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/gtest/${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX})
+- # Once we require at least cmake 3.11, target_include_directories will work for imported targets
+- # Because of https://gitlab.kitware.com/cmake/cmake/-/merge_requests/1264
+- # We need this workaround:
+- SET_PROPERTY(TARGET gtest APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${GTEST_INCLUDE_DIR})
+- SET_PROPERTY(TARGET gmock APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${GMOCK_INCLUDE_DIR})
+- #target_include_directories(gtest INTERFACE ${GTEST_INCLUDE_DIR})
+- #target_include_directories(gmock INTERFACE ${GMOCK_INCLUDE_DIR})
+-
+- set_property(TARGET gtest PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX})
+- set_property(TARGET gtest_main PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX})
set_property(TARGET gmock PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gmock${CMAKE_STATIC_LIBRARY_SUFFIX})
set_property(TARGET gmock_main PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gmock_main${CMAKE_STATIC_LIBRARY_SUFFIX})
diff --git a/root-v7-line.patch b/root-v7-line.patch
deleted file mode 100644
index 29eed7e..0000000
--- a/root-v7-line.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -ur root-6.16.00.orig/tutorials/v7/line.cxx root-6.16.00/tutorials/v7/line.cxx
---- root-6.16.00.orig/tutorials/v7/line.cxx 2019-01-23 09:23:37.000000000 +0100
-+++ root-6.16.00/tutorials/v7/line.cxx 2019-05-17 11:02:14.378664352 +0200
-@@ -6,7 +6,6 @@
- /// "normal" coordinates' system and changing the line color linearly from black
- /// to red.
- ///
--/// \macro_image (line.png)
- /// \macro_code
- ///
- /// \date 2018-03-18
diff --git a/root-werror-fix.patch b/root-werror-fix.patch
new file mode 100644
index 0000000..341cca9
--- /dev/null
+++ b/root-werror-fix.patch
@@ -0,0 +1,57 @@
+From a5185f2cdf509314970c1b332c5926283f6962e2 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Mon, 22 Jun 2020 09:21:23 +0200
+Subject: [PATCH] Fix too aggressive -Werror replacements
+
+The replacements removes the -Werror option for externals, which is
+intended. However, it also replaces e.g. -Werror=format-security with
+=format-security, which results in compilation failures due to the
+unknown option =format-security.
+---
+ builtins/davix/CMakeLists.txt | 2 +-
+ cmake/modules/SearchInstalledSoftware.cmake | 2 +-
+ interpreter/CMakeLists.txt | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/builtins/davix/CMakeLists.txt b/builtins/davix/CMakeLists.txt
+index 52614ae2e0..c9b291ec45 100644
+--- a/builtins/davix/CMakeLists.txt
++++ b/builtins/davix/CMakeLists.txt
+@@ -21,7 +21,7 @@ foreach(lib davix neon)
+ list(APPEND DAVIX_LIBRARIES ${DAVIX_PREFIX}/lib/${libname})
+ endforeach()
+
+-string(REPLACE "-Werror" "" DAVIX_CXX_FLAGS ${CMAKE_CXX_FLAGS})
++string(REPLACE "-Werror " "" DAVIX_CXX_FLAGS "${CMAKE_CXX_FLAGS} ")
+
+ ExternalProject_Add(DAVIX
+ URL ${DAVIX_URL}/davix-${DAVIX_VERSION}.tar.gz
+diff --git a/cmake/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake
+index ad63f08cd0..36aa88d8cf 100644
+--- a/cmake/modules/SearchInstalledSoftware.cmake
++++ b/cmake/modules/SearchInstalledSoftware.cmake
+@@ -9,7 +9,7 @@ include(ExternalProject)
+ include(FindPackageHandleStandardArgs)
+
+ set(lcgpackages http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources)
+-string(REPLACE "-Werror" "" ROOT_EXTERNAL_CXX_FLAGS ${CMAKE_CXX_FLAGS})
++string(REPLACE "-Werror " "" ROOT_EXTERNAL_CXX_FLAGS "${CMAKE_CXX_FLAGS} ")
+
+ macro(find_package)
+ if(NOT "${ARGV0}" IN_LIST ROOT_BUILTINS)
+diff --git a/interpreter/CMakeLists.txt b/interpreter/CMakeLists.txt
+index 0f43893443..1274758410 100644
+--- a/interpreter/CMakeLists.txt
++++ b/interpreter/CMakeLists.txt
+@@ -140,7 +140,7 @@ if(gcctoolchain)
+ endif()
+
+ # We will not fix llvm or clang.
+-string(REPLACE "-Werror" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
++string(REPLACE "-Werror " "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ")
+
+ if(LLVM_SHARED_LINKER_FLAGS)
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${LLVM_SHARED_LINKER_FLAGS}")
+--
+2.26.2
+
diff --git a/root-xmlmodify-dep.patch b/root-xmlmodify-dep.patch
deleted file mode 100644
index 02a0498..0000000
--- a/root-xmlmodify-dep.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From a651fb9278438d5ad7e4ddbf6082a791e1187e0d Mon Sep 17 00:00:00 2001
-From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
-Date: Fri, 13 Mar 2020 12:58:14 +0100
-Subject: [PATCH] The test that creates the file must run before the test that
- modifies it
-
----
- tutorials/CMakeLists.txt | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt
-index f920da54ee..b1abd03d36 100644
---- a/tutorials/CMakeLists.txt
-+++ b/tutorials/CMakeLists.txt
-@@ -375,6 +375,7 @@ set(unfold-testUnfold5b-depends tutorial-unfold-testUnfold5a)
- set(unfold-testUnfold7d-depends tutorial-unfold-testUnfold7c)
- set(unfold-testUnfold7c-depends tutorial-unfold-testUnfold7b)
- set(unfold-testUnfold7b-depends tutorial-unfold-testUnfold7a)
-+set(xml-xmlmodifyfile-depends tutorial-xml-xmlnewfile)
- set(xml-xmlreadfile-depends tutorial-xml-xmlnewfile)
- set(roofit-rf503_wspaceread-depends tutorial-roofit-rf502_wspacewrite)
- set(histfactory-example-depends tutorial-roostats-CreateExampleFile)
---
-2.24.1
-
diff --git a/root-xrootd5-compat.patch b/root-xrootd5-compat.patch
new file mode 100644
index 0000000..5a7ecda
--- /dev/null
+++ b/root-xrootd5-compat.patch
@@ -0,0 +1,109 @@
+From c81fab4b81b4767abdca612f33604b252fc665b7 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Tue, 14 Jul 2020 08:10:00 +0200
+Subject: [PATCH] Compatibility with xrootd 5.
+
+The old client library libXrdClient is removed.
+Also XrdSysDNS is removed.
+
+Do not build the legacy XProofD file server and client (already
+disabled by default - give error if someone enables it while building
+with xrootd 5).
+
+Do not build the old libNetx.
+
+Build the new libNetNG without XrdSysDNS, use XrdNetAddr instead.
+---
+ cmake/modules/SearchInstalledSoftware.cmake | 15 +++++++++++++++
+ net/CMakeLists.txt | 2 +-
+ net/netxng/src/TNetXNGSystem.cxx | 18 +++++++++++++++++-
+ 3 files changed, 33 insertions(+), 2 deletions(-)
+
+diff --git a/cmake/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake
+index 12f9d65371..3578303c5d 100644
+--- a/cmake/modules/SearchInstalledSoftware.cmake
++++ b/cmake/modules/SearchInstalledSoftware.cmake
+@@ -925,6 +925,21 @@ if(xrootd AND XROOTD_VERSIONNUM VERSION_GREATER 300030005)
+ else()
+ set(netxng OFF)
+ endif()
++if(xrootd AND XROOTD_VERSIONNUM VERSION_LESS 500000000)
++ set(netx ON)
++else()
++ set(netx OFF)
++endif()
++if(xrootd AND XROOTD_VERSIONNUM VERSION_GREATER_EQUAL 500000000)
++ if(xproofd)
++ if(fail-on-missing)
++ message(FATAL_ERROR "XROOTD is version 5 or greater. The legacy xproofd servers can not be built with this version. Use -Dxproofd:BOOL=OFF to disable.")
++ else()
++ message(STATUS "XROOTD is version 5 or greater. The legacy xproofd servers can not be built with this version. Disbaling xproofd' option.")
++ set(xproofd OFF CACHE BOOL "Disabled because xrootd version is 5 or greater" FORCE)
++ endif()
++ endif()
++endif()
+
+ #---Alien support----------------------------------------------------------------
+ if(alien)
+diff --git a/net/CMakeLists.txt b/net/CMakeLists.txt
+index 953d9c5d6f..676eb63672 100644
+--- a/net/CMakeLists.txt
++++ b/net/CMakeLists.txt
+@@ -11,7 +11,7 @@ if(NOT WIN32 AND ssl)
+ add_subdirectory(rpdutils)
+ endif()
+
+-if(xrootd)
++if(netx)
+ add_subdirectory(netx)
+ endif()
+
+diff --git a/net/netxng/src/TNetXNGSystem.cxx b/net/netxng/src/TNetXNGSystem.cxx
+index 6599aa2c2f..d30a12554f 100644
+--- a/net/netxng/src/TNetXNGSystem.cxx
++++ b/net/netxng/src/TNetXNGSystem.cxx
+@@ -27,7 +27,12 @@
+ #include "TVirtualMutex.h"
+ #include <XrdCl/XrdClFileSystem.hh>
+ #include <XrdCl/XrdClXRootDResponses.hh>
++#include <XrdVersion.hh>
++#if XrdVNUMBER >= 40000
++#include <XrdNet/XrdNetAddr.hh>
++#else
+ #include <XrdSys/XrdSysDNS.hh>
++#endif
+
+
+ ////////////////////////////////////////////////////////////////////////////////
+@@ -352,6 +357,16 @@ Int_t TNetXNGSystem::Locate(const char *path, TString &endurl)
+ TNamed *hn = 0;
+ if (fgAddrFQDN.GetSize() <= 0 ||
+ !(hn = dynamic_cast<TNamed *>(fgAddrFQDN.FindObject(loc)))) {
++#if XrdVNUMBER >= 40000
++ XrdNetAddr netaddr;
++ netaddr.Set(loc.Data());
++ const char* name = netaddr.Name();
++ if (name) {
++ hn = new TNamed(loc.Data(), name);
++ } else {
++ hn = new TNamed(loc, loc);
++ }
++#else
+ char *addr[1] = {0}, *name[1] = {0};
+ int naddr = XrdSysDNS::getAddrName(loc.Data(), 1, addr, name);
+ if (naddr == 1) {
+@@ -359,9 +374,10 @@ Int_t TNetXNGSystem::Locate(const char *path, TString &endurl)
+ } else {
+ hn = new TNamed(loc, loc);
+ }
+- fgAddrFQDN.Add(hn);
+ free(addr[0]);
+ free(name[0]);
++#endif
++ fgAddrFQDN.Add(hn);
+ if (gDebug > 0)
+ Info("Locate","caching host name: %s", hn->GetTitle());
+ }
+--
+2.26.2
+
diff --git a/root.spec b/root.spec
index 2929aa2..57d53a7 100644
--- a/root.spec
+++ b/root.spec
@@ -1,19 +1,8 @@
-%if %{?fedora}%{!?fedora:0} >= 29 || %{?rhel}%{!?rhel:0} >= 8
-# Use Python 3 as the default python for Fedora >= 29
-# - Give python3 libPyROOT higher priority than python2 libPyROOT
-# - The python scripts in root-cli use python3-root
-# - Let root-tmva-python use python3-numpy
-# - Don't build python2-jupyroot/jsmva packages
-# - Use Python 3 during testing and documentation build
-%global py3default 1
-%global py2prio 10
-%global py3prio 20
-%global __pythondef %{__python3}
+%if %{?fedora}%{!?fedora:0} >= 32 || %{?rhel}%{!?rhel:0} >= 9
+%undefine __cmake_in_source_build
+%global oldcmakemacro 0
%else
-%global py3default 0
-%global py2prio 20
-%global py3prio 10
-%global __pythondef %{__python2}
+%global oldcmakemacro 1
%endif
%if %{?fedora}%{!?fedora:0} >= 31 || %{?rhel}%{!?rhel:0} >= 8
@@ -23,8 +12,12 @@
%global buildpy2 1
%endif
+%if %{buildpy2}
+%global python2_version_uscore %(tr . _ <<< "%{python2_version}")
+%endif
+%global python3_version_uscore %(tr . _ <<< "%{python3_version}")
+
%global py3_soabi %([ -x %{__python3} ] && %{__python3} -c "from distutils import sysconfig; print(sysconfig.get_config_vars().get('SOABI'))")
-%global py3_other_soabi %([ -x %{__python3_other} ] && %{__python3_other} -c "from distutils import sysconfig; print(sysconfig.get_config_vars().get('SOABI'))")
%if %{?fedora}%{!?fedora:0} >= 24 || %{?rhel}%{!?rhel:0} >= 8
# Building the experimental ROOT 7 classes requires c++-14.
@@ -44,14 +37,13 @@
# Do not create .orig files when patching source
%global _default_patch_flags --no-backup-if-mismatch
-# Do not generate autoprovides for libJupyROOT.so
-# Note: the ones from libPyROOT.so we do want though
-%global __provides_exclude_from ^(%{?python2_sitearch:%{python2_sitearch}|}%{python3_sitearch}%{?python3_other_sitearch:|%{python3_other_sitearch}})/libJupyROOT\\.so$
+# Do not generate autoprovides for Python modules
+%global __provides_exclude_from ^(%{?python2_sitearch:%{python2_sitearch}|}%{python3_sitearch})/lib.*\\.so$
Name: root
-Version: 6.20.06
+Version: 6.22.00
%global libversion %(cut -d. -f 1-2 <<< %{version})
-Release: 2%{?dist}
+Release: 1%{?dist}
Summary: Numerical data analysis framework
License: LGPLv2+
@@ -101,37 +93,56 @@ Patch9: %{name}-dont-install-minicern.patch
Patch10: %{name}-clang-ignore-gcc-options.patch
# Don't create documentation notebooks
Patch11: %{name}-doc-no-notebooks.patch
-# Don't run tutorial requiring firefox during doc generation
-Patch12: %{name}-v7-line.patch
-# Fix ppc64le build with gcc 10
-# https://github.com/root-project/root/pull/5157
-Patch13: %{name}-clang-altivec-vector.patch
+# Don't run tutorials that crash during doc generation
+Patch12: %{name}-doxygen-crash.patch
+# Compatibility with older gtest
+Patch13: %{name}-old-gtest-compat.patch
# Fix -Wmissing-field-initializers in python bindings for
# Python 3.8 and 3.9
# https://github.com/root-project/root/pull/5158
Patch14: %{name}-python3.8-object.patch
-# Correct broken assert statements
-# https://github.com/root-project/root/pull/5159
-Patch15: %{name}-FitData-assert-fix.patch
-# The test that creates the file must run before the test that
-# modifies it
-# https://github.com/root-project/root/pull/5160
-Patch16: %{name}-xmlmodify-dep.patch
-# Size types should use %z
-# https://github.com/root-project/root/pull/5161
-Patch17: %{name}-format-fix.patch
# Run some test on 32 bit that upstream has disabled
-Patch18: %{name}-32bit-tests.patch
-# The file was moved - update path
-# https://github.com/root-project/root/pull/5162
-Patch19: %{name}-moved-file.patch
+Patch15: %{name}-32bit-tests.patch
# Workaround for initialization problems for PyROOT on
# EPEL7 ppc64le
# https://sft.its.cern.ch/jira/browse/ROOT-10622
-Patch20: %{name}-epel7-ppc64le-pyroot.patch
+Patch16: %{name}-epel7-ppc64le-pyroot.patch
# Fix test failure on ppc64le and aarch64
# https://github.com/root-project/root/pull/5867
-Patch21: %{name}-roostats-test-ppc64le-aarch64.patch
+Patch17: %{name}-roostats-test-ppc64le-aarch64.patch
+# Fix too aggressive -Werror replacements
+# https://github.com/root-project/root/pull/5902
+Patch18: %{name}-werror-fix.patch
+# Add missing call to TFile::SetCacheFileDir in a TMVA tutorial
+# https://github.com/root-project/root/pull/5944
+Patch19: %{name}-setcachefiledir.patch
+# Adjust stressGraphics.ref
+# https://github.com/root-project/root/pull/5957
+Patch20: %{name}-stressGraphics.patch
+# Fix off-by-one error in histogram v7 bin iterator
+# https://github.com/root-project/root/pull/5958
+Patch21: %{name}-histv7-bin-iterator.patch
+# Compatibility with python 2.7 versions before 2.7.9
+# https://github.com/root-project/root/pull/5960
+Patch22: %{name}-python2-compat.patch
+# Fix the RNTuple.LargeFile test on 32bit (i386 and armv7hf)
+# https://github.com/root-project/root/pull/5977
+Patch23: %{name}-ntuple-largefile.patch
+# Fix doxygen issues
+# https://github.com/root-project/root/pull/6029
+Patch24: %{name}-doxygen-filenames.patch
+Patch25: %{name}-doxygen-endof-part1.patch
+Patch26: %{name}-doxygen-endof-part2.patch
+Patch27: %{name}-doxygen-parameter-names.patch
+Patch28: %{name}-doxygen-macro-name.patch
+Patch29: %{name}-doxygen-missing-underscore.patch
+Patch30: %{name}-doxygen-md-comments.patch
+# Fix bad regex in TProofMgr
+# https://github.com/root-project/root/pull/6030
+Patch31: %{name}-fix-bad-regex.patch
+# Compatibility with xrootd 5
+# https://github.com/root-project/root/pull/6031
+Patch32: %{name}-xrootd5-compat.patch
# s390x suffers from endian issues resulting in failing tests
# and broken documentation generation
@@ -185,9 +196,6 @@ BuildRequires: postgresql-devel
BuildRequires: python2-devel
%endif
BuildRequires: python%{python3_pkgversion}-devel
-%if %{?rhel}%{!?rhel:0} == 7
-BuildRequires: python%{python3_other_pkgversion}-devel
-%endif
%if %{root7}
%ifarch %{qt5_qtwebengine_arches}
BuildRequires: qt5-qtbase-devel
@@ -218,11 +226,7 @@ BuildRequires: graphviz-devel
BuildRequires: expat-devel
BuildRequires: pythia8-devel >= 8.1.80
BuildRequires: blas-devel
-%if %{py3default}
BuildRequires: python%{python3_pkgversion}-numpy
-%else
-BuildRequires: python2-numpy
-%endif
BuildRequires: doxygen
BuildRequires: graphviz
BuildRequires: yuicompressor
@@ -372,12 +376,15 @@ Obsoletes: %{name}-net-krb5 < 6.18.00
Obsoletes: %{name}-table < 6.18.00
%if ! %{buildpy2}
Obsoletes: python2-%{name} < %{version}-%{release}
-%endif
-%if %{py3default}
Obsoletes: python2-jupyroot < %{version}-%{release}
Obsoletes: python2-jsmva < %{version}-%{release}
Obsoletes: %{name}-rootaas < 6.08.00
%endif
+%if %{?rhel}%{!?rhel:0} == 7
+Obsoletes: python%{python3_other_pkgversion}-%{name} < 6.22.00
+Obsoletes: python%{python3_other_pkgversion}-jupyroot < 6.22.00
+Obsoletes: python%{python3_other_pkgversion}-jsmva < 6.22.00
+%endif
%description core
This package contains the core libraries used by ROOT: libCore, libNew,
@@ -415,6 +422,17 @@ Obsoletes: %{name}-reflex < 6.00.00
Cling is an interactive C++ interpreter, built on top of Clang and
LLVM compiler infrastructure.
+%package tpython
+Summary: ROOT's TPython interface
+Requires: %{name}-core%{?_isa} = %{version}-%{release}
+Requires: python%{python3_pkgversion}-%{name}%{?_isa} = %{version}-%{release}
+# Package split (tpython from Python bindings)
+Obsoletes: python%{python3_pkgversion}-%{name} < 6.22.00
+
+%description tpython
+This package contains ROOT's TPython interface. It makes it possible
+to call Python from ROOT.
+
%if %{buildpy2}
%package -n python2-%{name}
Summary: Python extension for ROOT
@@ -426,11 +444,9 @@ Requires: %{name}-io%{?_isa} = %{version}-%{release}
Requires: %{name}-tree%{?_isa} = %{version}-%{release}
%description -n python2-%{name}
-This package contains the Python extension for ROOT. This package
-provide a Python interface to ROOT, and a ROOT interface to Python.
-%endif
+This package contains the Python extension for ROOT. It makes it
+possible to use ROOT classes in Python.
-%if ! %{py3default}
%package -n python2-jupyroot
Summary: ROOT Jupyter kernel
%{?python_provide:%python_provide python2-jupyroot}
@@ -470,10 +486,12 @@ Obsoletes: %{name}-python%{python3_pkgversion} < 6.08.00
Requires: %{name}-core%{?_isa} = %{version}-%{release}
Requires: %{name}-io%{?_isa} = %{version}-%{release}
Requires: %{name}-tree%{?_isa} = %{version}-%{release}
+# Package split (tpython from Python bindings)
+Obsoletes: python%{python3_pkgversion}-%{name} < 6.22.00
%description -n python%{python3_pkgversion}-%{name}
-This package contains the Python extension for ROOT. This package
-provide a Python interface to ROOT, and a ROOT interface to Python.
+This package contains the Python extension for ROOT. It makes it
+possible to use ROOT classes in Python.
%package -n python%{python3_pkgversion}-jupyroot
Summary: ROOT Jupyter kernel
@@ -504,44 +522,12 @@ Requires: %{name}-tmva = %{version}-%{release}
%description -n python%{python3_pkgversion}-jsmva
TMVA interface used by JupyROOT.
-%if %{?rhel}%{!?rhel:0} == 7
-%package -n python%{python3_other_pkgversion}-%{name}
-Summary: Python extension for ROOT
-%{?python_provide:%python_provide python%{?python3_other_pkgversion}-%{name}}
-Requires: %{name}-core%{?_isa} = %{version}-%{release}
-Requires: %{name}-io%{?_isa} = %{version}-%{release}
-Requires: %{name}-tree%{?_isa} = %{version}-%{release}
-
-%description -n python%{python3_other_pkgversion}-%{name}
-This package contains the Python extension for ROOT. This package
-provide a Python interface to ROOT, and a ROOT interface to Python.
-
-%package -n python%{python3_other_pkgversion}-jupyroot
-Summary: ROOT Jupyter kernel
-%{?python_provide:%python_provide python%{?python3_other_pkgversion}-jupyroot}
-Requires: python%{python3_other_pkgversion}-%{name}%{?_isa} = %{version}-%{release}
-Requires: python%{python3_other_pkgversion}-jsmva = %{version}-%{release}
-Requires: %{name}-core%{?_isa} = %{version}-%{release}
-Requires: %{name}-notebook = %{version}-%{release}
-# python-metakernel not available - some functionality missing
-
-%description -n python%{python3_other_pkgversion}-jupyroot
-The Jupyter kernel for the ROOT notebook.
-
-%package -n python%{python3_other_pkgversion}-jsmva
-Summary: TMVA interface used by JupyROOT
-BuildArch: noarch
-%{?python_provide:%python_provide python%{?python3_other_pkgversion}-jsmva}
-Requires: %{name}-tmva = %{version}-%{release}
-
-%description -n python%{python3_other_pkgversion}-jsmva
-TMVA interface used by JupyROOT.
-%endif
-
%package r
Summary: R interface for ROOT
Requires: %{name}-core%{?_isa} = %{version}-%{release}
Requires: %{name}-matrix%{?_isa} = %{version}-%{release}
+Requires: R-Rcpp-devel
+Requires: R-RInside-devel
%description r
ROOT R is an interface in ROOT to call R functions using an R C++
@@ -794,6 +780,7 @@ Requires: %{name}-gui%{?_isa} = %{version}-%{release}
Requires: %{name}-hist%{?_isa} = %{version}-%{release}
Requires: %{name}-mathcore%{?_isa} = %{version}-%{release}
Requires: %{name}-tree%{?_isa} = %{version}-%{release}
+Requires: %{name}-tree-player%{?_isa} = %{version}-%{release}
%description gui-fitpanel
This package contains a library to show a pop-up dialog when fitting
@@ -1560,11 +1547,7 @@ Summary: Toolkit for multivariate data analysis (Python)
License: BSD
Requires: %{name}-core%{?_isa} = %{version}-%{release}
Requires: %{name}-tmva%{?_isa} = %{version}-%{release}
-%if %{py3default}
Requires: python%{python3_pkgversion}-numpy
-%else
-Requires: python2-numpy
-%endif
%description tmva-python
Python integration with TMVA.
@@ -1670,11 +1653,7 @@ An algorithm to unfold distributions from detector to truth level.
%package cli
Summary: ROOT command line utilities
BuildArch: noarch
-%if %{py3default}
Requires: python%{python3_pkgversion}-%{name} = %{version}-%{release}
-%else
-Requires: python2-%{name} = %{version}-%{release}
-%endif
%description cli
The ROOT command line utilities is a set of scripts for common tasks
@@ -1728,16 +1707,26 @@ Requires: %{name}-tree-player%{?_isa} = %{version}-%{release}
%description graf3d-eve7
This package contains a library for defining event displays in ROOT 7.
+%package gui-browsable
+Summary: GUI browsable (ROOT 7)
+Requires: %{name}-core%{?_isa} = %{version}-%{release}
+Requires: %{name}-graf-gpadv7%{?_isa} = %{version}-%{release}
+Requires: %{name}-hist%{?_isa} = %{version}-%{release}
+Requires: %{name}-io%{?_isa} = %{version}-%{release}
+Requires: %{name}-tree%{?_isa} = %{version}-%{release}
+
+%description gui-browsable
+This package contains GUI browsable components for ROOT 7.
+
%package gui-browserv7
Summary: Browser (ROOT 7)
Requires: %{name}-core%{?_isa} = %{version}-%{release}
Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release}
Requires: %{name}-graf-gpadv7%{?_isa} = %{version}-%{release}
+Requires: %{name}-gui-browsable%{?_isa} = %{version}-%{release}
Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release}
Requires: %{name}-gui-webgui6%{?_isa} = %{version}-%{release}
-Requires: %{name}-hist%{?_isa} = %{version}-%{release}
Requires: %{name}-io%{?_isa} = %{version}-%{release}
-Requires: %{name}-tree%{?_isa} = %{version}-%{release}
%description gui-browserv7
This package contains a file browser for ROOT 7.
@@ -1847,6 +1836,17 @@ This package contains an ntuple extension for ROOT 7.
%patch19 -p1
%patch20 -p1
%patch21 -p1
+%patch22 -p1
+%patch23 -p1
+%patch24 -p1
+%patch25 -p1
+%patch26 -p1
+%patch27 -p1
+%patch28 -p1
+%patch29 -p1
+%patch30 -p1
+%patch31 -p1
+%patch32 -p1
# Remove bundled sources in order to be sure they are not used
# * afterimage
@@ -1855,9 +1855,7 @@ rm -rf graf2d/asimage/src/libAfterImage
rm -rf graf3d/ftgl/src graf3d/ftgl/inc
# * freetype
rm -rf graf2d/freetype/src
-# * glew
-rm -rf graf3d/glew/src graf3d/glew/inc graf3d/glew/isystem
-# * davix, lz4, openssl, pcre, xxhash, zlib, zstd
+# * davix, glew, lz4, openssl, pcre, xxhash, zlib, zstd
rm -rf builtins
# * lzma
rm -rf core/lzma/src/*.tar.gz
@@ -1887,20 +1885,6 @@ chmod -x interpreter/llvm/src/lib/Target/X86/X86EvexToVex.cpp
# Remove unsupported man page macros
sed -e '/^\.UR/d' -e '/^\.UE/d' -i man/man1/*
-%if %{py3default}
-%if %{buildpy2}
-# Build PyROOT for python 2
-cp -pr bindings/pyroot bindings/python2
-%endif
-%else
-# Build PyROOT for python 3
-cp -pr bindings/pyroot bindings/python3
-%endif
-%if %{?rhel}%{!?rhel:0} == 7
-# Build PyROOT for python 3 (other)
-cp -pr bindings/pyroot bindings/python3oth
-%endif
-
# Work around missing libraries in Fedora's gmock packaging < 1.8.0
if [ ! -r %{_libdir}/libgmock.so ] ; then
mkdir googlemock
@@ -1933,12 +1917,13 @@ for s in etc/notebook/JsMVA/css/*.css ; do
yuicompressor ${s} -o ${s%.css}.min.css
done
-mkdir builddir
-pushd builddir
-
# Avoid overlinking (this used to be the default with the old configure script)
LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
+%if %{oldcmakemacro}
+mkdir %{_vpath_builddir}
+pushd %{_vpath_builddir}
+%endif
%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8
%cmake \
%else
@@ -1995,6 +1980,7 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
-Ddataframe:BOOL=ON \
-Ddavix:BOOL=ON \
-Ddcache:BOOL=ON \
+ -Ddev:BOOL=OFF \
-Dexceptions:BOOL=ON \
-Dfcgi:BOOL=ON \
-Dfftw3:BOOL=ON \
@@ -2027,8 +2013,8 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
-Dpgsql:BOOL=ON \
-Dpythia6:BOOL=OFF \
-Dpythia8:BOOL=ON \
- -DPYTHON_EXECUTABLE:PATH=%{__pythondef} \
-Dpyroot:BOOL=ON \
+ -Dpyroot_legacy:BOOL=OFF \
%ifarch %{qt5_qtwebengine_arches}
-Dqt5web:BOOL=ON \
%else
@@ -2064,127 +2050,23 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
-Dx11:BOOL=ON \
-Dxml:BOOL=ON \
-Dxrootd:BOOL=ON \
+ -Dxproofd:BOOL=ON \
-Dfail-on-missing:BOOL=ON \
-Dtesting:BOOL=ON \
-Dclingtest:BOOL=OFF \
-Dcoverage:BOOL=OFF \
-Droottest:BOOL=OFF \
-Drootbench:BOOL=OFF \
+ -Dasan:BOOL=OFF \
+%if %{oldcmakemacro}
..
-
-%if %{py3default}
-%if %{buildpy2}
-# Build PyROOT for python 2 (prep)
-cp -pr bindings/pyroot bindings/python2
-%endif
-%else
-# Build PyROOT for python 3 (prep)
-cp -pr bindings/pyroot bindings/python3
-%endif
-%if %{?rhel}%{!?rhel:0} == 7
-# Build PyROOT for python 3 (other) (prep)
-cp -pr bindings/pyroot bindings/python3oth
-%endif
-
-make %{?_smp_mflags}
-
-%if %{py3default}
-
-%if %{buildpy2}
-
-# Build PyROOT for python 2
-mkdir python2
-mv CMakeFiles/Makefile2 CMakeFiles/Makefile2.save
-sed 's!bindings/pyroot!bindings/python2!g' CMakeFiles/Makefile2.save \
- > CMakeFiles/Makefile2
-py2i=`pkg-config --cflags-only-I python2 | sed -e 's/-I//' -e 's/\s*$//'`
-py2l=`pkg-config --libs-only-l python2 | sed -e 's/-l//' -e 's/\s*$//'`
-if pkg-config --exists python3-embed ; then
- py3i=`pkg-config --cflags-only-I python3-embed | sed -e 's/-I//' -e 's/\s*$//'`
- py3l=`pkg-config --libs-only-l python3-embed | sed -e 's/-l//' -e 's/\s*$//'`
-else
- py3i=`pkg-config --cflags-only-I python3 | sed -e 's/-I//' -e 's/\s*$//'`
- py3l=`pkg-config --libs-only-l python3 | sed -e 's/-l//' -e 's/\s*$//'`
-fi
-sed -e "s,${py3i},${py2i},g" -e "s,-l${py3l},-l${py2l},g" \
- -e "s,lib${py3l},lib${py2l},g" \
- -e 's,%{__python}%{python3_version},%{__python2},g' \
- -e 's,%{__python3},%{__python2},g' \
- -e 's,lib/libPyROOT,python2/libPyROOT,g' \
- -e 's,lib/libJupyROOT,python2/libJupyROOT,g' \
- -e 's!bindings/pyroot!bindings/python2!g' \
- -i `find bindings/python2 -type f`
-make %{?_smp_mflags} -f bindings/python2/Makefile PyROOT JupyROOT
-mv CMakeFiles/Makefile2.save CMakeFiles/Makefile2
-
-%endif
-
-%else
-
-# Build PyROOT for python 3
-mkdir python3
-mv CMakeFiles/Makefile2 CMakeFiles/Makefile2.save
-sed 's!bindings/pyroot!bindings/python3!g' CMakeFiles/Makefile2.save \
- > CMakeFiles/Makefile2
-py2i=`pkg-config --cflags-only-I python2 | sed -e 's/-I//' -e 's/\s*$//'`
-py2l=`pkg-config --libs-only-l python2 | sed -e 's/-l//' -e 's/\s*$//'`
-if pkg-config --exists python3-embed ; then
- py3i=`pkg-config --cflags-only-I python3-embed | sed -e 's/-I//' -e 's/\s*$//'`
- py3l=`pkg-config --libs-only-l python3-embed | sed -e 's/-l//' -e 's/\s*$//'`
-else
- py3i=`pkg-config --cflags-only-I python3 | sed -e 's/-I//' -e 's/\s*$//'`
- py3l=`pkg-config --libs-only-l python3 | sed -e 's/-l//' -e 's/\s*$//'`
-fi
-sed -e "s,${py2i},${py3i},g" -e "s,-l${py2l},-l${py3l},g" \
- -e "s,%{_libdir}/python%{python2_version}/config/lib${py2l}.so,%{_libdir}/lib${py3l}.so,g" \
- -e "s,lib${py2l},lib${py3l},g" \
- -e 's,%{__python}%{python2_version},%{__python3},g' \
- -e 's,%{__python2},%{__python3},g' \
- -e 's,lib/libPyROOT,python3/libPyROOT,g' \
- -e 's,lib/libJupyROOT,python3/libJupyROOT,g' \
- -e 's!bindings/pyroot!bindings/python3!g' \
- -i `find bindings/python3 -type f`
-make %{?_smp_mflags} -f bindings/python3/Makefile PyROOT JupyROOT
-mv CMakeFiles/Makefile2.save CMakeFiles/Makefile2
-
-%endif
-
-%if %{?rhel}%{!?rhel:0} == 7
-
-# Build PyROOT for python 3 (other)
-mkdir python3oth
-mv CMakeFiles/Makefile2 CMakeFiles/Makefile2.save
-sed 's!bindings/pyroot!bindings/python3oth!g' CMakeFiles/Makefile2.save \
- > CMakeFiles/Makefile2
-py2i=`pkg-config --cflags-only-I python2 | sed -e 's/-I//' -e 's/\s*$//'`
-py2l=`pkg-config --libs-only-l python2 | sed -e 's/-l//' -e 's/\s*$//'`
-if pkg-config --exists python-%{python3_other_version}-embed ; then
- py3i=`pkg-config --cflags-only-I python-%{python3_other_version}-embed | sed -e 's/-I//' -e 's/\s*$//'`
- py3l=`pkg-config --libs-only-l python-%{python3_other_version}-embed | sed -e 's/-l//' -e 's/\s*$//'`
-else
- py3i=`pkg-config --cflags-only-I python-%{python3_other_version} | sed -e 's/-I//' -e 's/\s*$//'`
- py3l=`pkg-config --libs-only-l python-%{python3_other_version} | sed -e 's/-l//' -e 's/\s*$//'`
-fi
-sed -e "s,${py2i},${py3i},g" -e "s,-l${py2l},-l${py3l},g" \
- -e "s,%{_libdir}/python%{python2_version}/config/lib${py2l}.so,%{_libdir}/lib${py3l}.so,g" \
- -e "s,lib${py2l},lib${py3l},g" \
- -e 's,%{__python}%{python2_version},%{__python3_other},g' \
- -e 's,%{__python2},%{__python3_other},g' \
- -e 's,lib/libPyROOT,python3oth/libPyROOT,g' \
- -e 's,lib/libJupyROOT,python3oth/libJupyROOT,g' \
- -e 's!bindings/pyroot!bindings/python3oth!g' \
- -i `find bindings/python3oth -type f`
-make %{?_smp_mflags} -f bindings/python3oth/Makefile PyROOT JupyROOT
-mv CMakeFiles/Makefile2.save CMakeFiles/Makefile2
-
+popd
%endif
-popd
+%make_build -C %{_vpath_builddir}
%install
-pushd builddir
-make %{?_smp_mflags} install DESTDIR=%{buildroot}
-popd
+%make_install -C %{_vpath_builddir}
# Do emacs byte compilation
emacs -batch -no-site-file -f batch-byte-compile \
@@ -2210,9 +2092,7 @@ install -p -m 644 %{SOURCE7} %{buildroot}%{_pkgdocdir}
mkdir -p %{buildroot}%{_datadir}/%{name}/cli
mv %{buildroot}%{_libdir}/%{name}/cmdLineUtils.py* \
%{buildroot}%{_datadir}/%{name}/cli
-%if %{py3default}
rm %{buildroot}%{_libdir}/%{name}/__pycache__/cmdLineUtils.*
-%endif
sed -e '/^\#!/d' -i %{buildroot}%{_datadir}/%{name}/cli/cmdLineUtils.py
# Install GDB pretty printers to auto load safe path
@@ -2228,167 +2108,80 @@ install -p -m 644 build/gdbPrinters/libRooFitCore.so-gdb.py \
%if %{?fedora}%{!?fedora:0} >= 28 || %{?rhel}%{!?rhel:0} >= 8
# This is the default for Fedora 30+, set it for Fedora 28-29
%global _python_bytecompile_extra 0
-%py_byte_compile %{__pythondef} %{buildroot}%{_datadir}/%{name}/cli
+%py_byte_compile %{__python3} %{buildroot}%{_datadir}/%{name}/cli
%py_byte_compile %{__python3} %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/%{name}
%endif
-%if %{py3default}
-
-# Move the python modules to sitearch/sitelib
-mkdir -p %{buildroot}%{python3_sitearch}
-mv %{buildroot}%{_libdir}/%{name}/libPyROOT.so.%{version} \
- %{buildroot}%{python3_sitearch}/libPyROOT.%{py3_soabi}.so
-mv %{buildroot}%{_libdir}/%{name}/libPyROOT.rootmap \
- %{buildroot}%{python3_sitearch}/libPyROOT.rootmap
-mv %{buildroot}%{_libdir}/%{name}/libPyROOT_rdict.pcm \
- %{buildroot}%{python3_sitearch}/libPyROOT_rdict.pcm
-mv %{buildroot}%{_libdir}/%{name}/libJupyROOT.so.%{version} \
- %{buildroot}%{python3_sitearch}/libJupyROOT.so
-mv %{buildroot}%{_libdir}/%{name}/*.py %{buildroot}%{python3_sitearch}
-mv %{buildroot}%{_libdir}/%{name}/__pycache__ %{buildroot}%{python3_sitearch}
-rm %{buildroot}%{_libdir}/%{name}/JupyROOT/README.md
-rm -rf %{buildroot}%{_libdir}/%{name}/JupyROOT/src
-mv %{buildroot}%{_libdir}/%{name}/JupyROOT %{buildroot}%{python3_sitearch}
-rm %{buildroot}%{_libdir}/%{name}/libJupyROOT.so.%{libversion}
-rm %{buildroot}%{_libdir}/%{name}/libJupyROOT.so
-
-mkdir -p %{buildroot}%{python3_sitelib}
-mv %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python3_sitelib}
-
-# Create empty .egg-info files so that rpm auto-generates provides
-touch %{buildroot}%{python3_sitearch}/ROOT-%{version}.egg-info
-touch %{buildroot}%{python3_sitearch}/JupyROOT-%{version}.egg-info
-touch %{buildroot}%{python3_sitelib}/JsMVA-%{version}.egg-info
-
%if %{buildpy2}
-tmpdir=`mktemp -d`
-
-%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8
-DESTDIR=$tmpdir cmake -P builddir/bindings/python2/cmake_install.cmake
-%else
-DESTDIR=$tmpdir cmake3 -P builddir/bindings/python2/cmake_install.cmake
-%endif
-
+# Move the python modules to sitearch/sitelib
mkdir -p %{buildroot}%{python2_sitearch}
-mv $tmpdir%{_libdir}/%{name}/libPyROOT.so.%{version} \
- %{buildroot}%{python2_sitearch}/libPyROOT.so
-mv $tmpdir%{_libdir}/%{name}/libPyROOT.rootmap \
- %{buildroot}%{python2_sitearch}/libPyROOT.rootmap
-mv $tmpdir%{_libdir}/%{name}/libPyROOT_rdict.pcm \
- %{buildroot}%{python2_sitearch}/libPyROOT_rdict.pcm
-mv $tmpdir%{_libdir}/%{name}/*.py* %{buildroot}%{python2_sitearch}
-rm -rf $tmpdir
+cp -pr %{buildroot}%{_libdir}/%{name}/cppyy %{buildroot}%{python2_sitearch}
+ln -s ../../root/libcppyy%{python3_version_uscore}.so.%{version} \
+ %{buildroot}%{python2_sitearch}/libcppyy%{python2_version_uscore}.so
-# Create empty .egg-info files so that rpm auto-generates provides
-touch %{buildroot}%{python2_sitearch}/ROOT-%{version}.egg-info
+cp -pr %{buildroot}%{_libdir}/%{name}/cppyy_backend %{buildroot}%{python2_sitearch}
+ln -s ../../root/libcppyy_backend%{python3_version_uscore}.so.%{version} \
+ %{buildroot}%{python2_sitearch}/libcppyy_backend%{python2_version_uscore}.so
-%endif
+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
-%else
-
-# Move the python modules to sitearch/sitelib
-mkdir -p %{buildroot}%{python2_sitearch}
-mv %{buildroot}%{_libdir}/%{name}/libPyROOT.so.%{version} \
- %{buildroot}%{python2_sitearch}/libPyROOT.so
-mv %{buildroot}%{_libdir}/%{name}/libPyROOT.rootmap \
- %{buildroot}%{python2_sitearch}/libPyROOT.rootmap
-mv %{buildroot}%{_libdir}/%{name}/libPyROOT_rdict.pcm \
- %{buildroot}%{python2_sitearch}/libPyROOT_rdict.pcm
-mv %{buildroot}%{_libdir}/%{name}/libJupyROOT.so.%{version} \
- %{buildroot}%{python2_sitearch}/libJupyROOT.so
-mv %{buildroot}%{_libdir}/%{name}/*.py* %{buildroot}%{python2_sitearch}
-rm %{buildroot}%{_libdir}/%{name}/JupyROOT/README.md
-rm -rf %{buildroot}%{_libdir}/%{name}/JupyROOT/src
-mv %{buildroot}%{_libdir}/%{name}/JupyROOT %{buildroot}%{python2_sitearch}
-rm %{buildroot}%{_libdir}/%{name}/libJupyROOT.so.%{libversion}
-rm %{buildroot}%{_libdir}/%{name}/libJupyROOT.so
+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}
-mv %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python2_sitelib}
+cp -pr %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python2_sitelib}
# Create empty .egg-info files so that rpm auto-generates provides
touch %{buildroot}%{python2_sitearch}/ROOT-%{version}.egg-info
touch %{buildroot}%{python2_sitearch}/JupyROOT-%{version}.egg-info
touch %{buildroot}%{python2_sitelib}/JsMVA-%{version}.egg-info
-tmpdir=`mktemp -d`
-
-%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8
-DESTDIR=$tmpdir cmake -P builddir/bindings/python3/cmake_install.cmake
-%else
-DESTDIR=$tmpdir cmake3 -P builddir/bindings/python3/cmake_install.cmake
%endif
+# Move the python modules to sitearch/sitelib
mkdir -p %{buildroot}%{python3_sitearch}
-mv $tmpdir%{_libdir}/%{name}/libPyROOT.so.%{version} \
- %{buildroot}%{python3_sitearch}/libPyROOT.%{py3_soabi}.so
-mv $tmpdir%{_libdir}/%{name}/libPyROOT.rootmap \
- %{buildroot}%{python3_sitearch}/libPyROOT.rootmap
-mv $tmpdir%{_libdir}/%{name}/libPyROOT_rdict.pcm \
- %{buildroot}%{python3_sitearch}/libPyROOT_rdict.pcm
-mv $tmpdir%{_libdir}/%{name}/libJupyROOT.so.%{version} \
- %{buildroot}%{python3_sitearch}/libJupyROOT.so
-mv $tmpdir%{_libdir}/%{name}/*.py %{buildroot}%{python3_sitearch}
-mv $tmpdir%{_libdir}/%{name}/__pycache__ %{buildroot}%{python3_sitearch}
-rm $tmpdir%{_libdir}/%{name}/JupyROOT/README.md
-rm -rf $tmpdir%{_libdir}/%{name}/JupyROOT/src
-mv $tmpdir%{_libdir}/%{name}/JupyROOT %{buildroot}%{python3_sitearch}
-rm $tmpdir%{_libdir}/%{name}/libJupyROOT.so.%{libversion}
-rm $tmpdir%{_libdir}/%{name}/libJupyROOT.so
-
-mkdir -p %{buildroot}%{python3_sitelib}
-mv $tmpdir%{_libdir}/%{name}/JsMVA %{buildroot}%{python3_sitelib}
-
-rm -rf $tmpdir
-
-# Create empty .egg-info files so that rpm auto-generates provides
-touch %{buildroot}%{python3_sitearch}/ROOT-%{version}.egg-info
-touch %{buildroot}%{python3_sitearch}/JupyROOT-%{version}.egg-info
-touch %{buildroot}%{python3_sitelib}/JsMVA-%{version}.egg-info
-
-%endif
-%if %{?rhel}%{!?rhel:0} == 7
+mv %{buildroot}%{_libdir}/%{name}/cppyy %{buildroot}%{python3_sitearch}
+ln -s ../../root/libcppyy%{python3_version_uscore}.so.%{version} \
+ %{buildroot}%{python3_sitearch}/libcppyy%{python3_version_uscore}.%{py3_soabi}.so
-tmpdir=`mktemp -d`
+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
-DESTDIR=$tmpdir cmake3 -P builddir/bindings/python3oth/cmake_install.cmake
+mv %{buildroot}%{_libdir}/%{name}/ROOT %{buildroot}%{python3_sitearch}
+mv %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python3_version_uscore}.so.%{version} \
+ %{buildroot}%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}.%{py3_soabi}.so
+rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python3_version_uscore}.so.%{libversion}
+rm %{buildroot}%{_libdir}/%{name}/libROOTPythonizations%{python3_version_uscore}.so
-mkdir -p %{buildroot}%{python3_other_sitearch}
-mv $tmpdir%{_libdir}/%{name}/libPyROOT.so.%{version} \
- %{buildroot}%{python3_other_sitearch}/libPyROOT.%{py3_other_soabi}.so
-mv $tmpdir%{_libdir}/%{name}/libPyROOT.rootmap \
- %{buildroot}%{python3_other_sitearch}/libPyROOT.rootmap
-mv $tmpdir%{_libdir}/%{name}/libPyROOT_rdict.pcm \
- %{buildroot}%{python3_other_sitearch}/libPyROOT_rdict.pcm
-mv $tmpdir%{_libdir}/%{name}/libJupyROOT.so.%{version} \
- %{buildroot}%{python3_other_sitearch}/libJupyROOT.so
-mv $tmpdir%{_libdir}/%{name}/*.py %{buildroot}%{python3_other_sitearch}
-mv $tmpdir%{_libdir}/%{name}/__pycache__ %{buildroot}%{python3_other_sitearch}
-rm $tmpdir%{_libdir}/%{name}/JupyROOT/README.md
-rm -rf $tmpdir%{_libdir}/%{name}/JupyROOT/src
-mv $tmpdir%{_libdir}/%{name}/JupyROOT %{buildroot}%{python3_other_sitearch}
-rm $tmpdir%{_libdir}/%{name}/libJupyROOT.so.%{libversion}
-rm $tmpdir%{_libdir}/%{name}/libJupyROOT.so
-
-mkdir -p %{buildroot}%{python3_other_sitelib}
-mv $tmpdir%{_libdir}/%{name}/JsMVA %{buildroot}%{python3_other_sitelib}
+mv %{buildroot}%{_libdir}/%{name}/JupyROOT %{buildroot}%{python3_sitearch}
+mv %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so.%{version} \
+ %{buildroot}%{python3_sitearch}/libJupyROOT%{python3_version_uscore}.%{py3_soabi}.so
+rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so.%{libversion}
+rm %{buildroot}%{_libdir}/%{name}/libJupyROOT%{python3_version_uscore}.so
-rm -rf $tmpdir
+mkdir -p %{buildroot}%{python3_sitelib}
+mv %{buildroot}%{_libdir}/%{name}/JsMVA %{buildroot}%{python3_sitelib}
# Create empty .egg-info files so that rpm auto-generates provides
-touch %{buildroot}%{python3_other_sitearch}/ROOT-%{version}.egg-info
-touch %{buildroot}%{python3_other_sitearch}/JupyROOT-%{version}.egg-info
-touch %{buildroot}%{python3_other_sitelib}/JsMVA-%{version}.egg-info
-
-%endif
+touch %{buildroot}%{python3_sitearch}/ROOT-%{version}.egg-info
+touch %{buildroot}%{python3_sitearch}/JupyROOT-%{version}.egg-info
+touch %{buildroot}%{python3_sitelib}/JsMVA-%{version}.egg-info
# Put jupyter stuff in the right places
mkdir -p %{buildroot}%{_datadir}/jupyter/kernels
-%if ! %{py3default}
+%if %{buildpy2}
cp -pr %{buildroot}%{_datadir}/%{name}/notebook/kernels/root \
%{buildroot}%{_datadir}/jupyter/kernels/python2-jupyroot
sed -e 's/ROOT C++/& (Python 2)/' \
@@ -2406,16 +2199,6 @@ sed -e 's/ROOT C++/& (Python 3)/' \
sed -e '/^\#!/d' \
-i %{buildroot}%{python3_sitearch}/JupyROOT/kernel/rootkernel.py
-%if %{?rhel}%{!?rhel:0} == 7
-cp -pr %{buildroot}%{_datadir}/%{name}/notebook/kernels/root \
- %{buildroot}%{_datadir}/jupyter/kernels/python%{python3_other_pkgversion}-jupyroot
-sed -e 's/ROOT C++/& (Python %{python3_other_version})/' \
- -e 's!python[0-9]*\.[0-9]*!%{__python3_other}!' \
- -i %{buildroot}%{_datadir}/jupyter/kernels/python%{python3_other_pkgversion}-jupyroot/kernel.json
-sed -e '/^\#!/d' \
- -i %{buildroot}%{python3_other_sitearch}/JupyROOT/kernel/rootkernel.py
-%endif
-
rm -rf %{buildroot}%{_datadir}/%{name}/notebook/custom
rm -rf %{buildroot}%{_datadir}/%{name}/notebook/html
rm -rf %{buildroot}%{_datadir}/%{name}/notebook/kernels
@@ -2438,7 +2221,7 @@ EOF
# Avoid /usr/bin/env shebangs (and adapt cli to cmdLineUtils location)
sed -e 's!/usr/bin/env bash!/bin/bash!' -i %{buildroot}%{_bindir}/root-config
-sed -e 's!/usr/bin/env python.*!%{__pythondef}!' \
+sed -e 's!/usr/bin/env python.*!%{__python3}!' \
-e '/import sys/d' \
-e '/import cmdLineUtils/iimport sys' \
-e '/import cmdLineUtils/isys.path.insert(0, "%{_datadir}/%{name}/cli")' \
@@ -2451,9 +2234,9 @@ sed -e 's!/usr/bin/env python.*!%{__pythondef}!' \
%{buildroot}%{_bindir}/rootprint \
%{buildroot}%{_bindir}/rootrm \
%{buildroot}%{_bindir}/rootslimtree
-sed -e 's!/usr/bin/env python.*!%{__pythondef}!' \
+sed -e 's!/usr/bin/env python.*!%{__python3}!' \
-i %{buildroot}%{_bindir}/rootdrawtree
-sed -e 's!/usr/bin/env python!%{__pythondef}!' \
+sed -e 's!/usr/bin/env python!%{__python3}!' \
-i %{buildroot}%{_datadir}/%{name}/dictpch/makepch.py \
%{buildroot}%{_pkgdocdir}/tutorials/histfactory/example.py \
%{buildroot}%{_pkgdocdir}/tutorials/histfactory/makeQuickModel.py \
@@ -2491,6 +2274,9 @@ rm TGuiFactory/P030_TWebGuiFactory.C
rm TSQLServer/P040_TOracleServer.C
rm TSystem/P030_TAlienSystem.C
rm TVirtualGeoConverter/P010_TGeoVGConverter.C
+%if %{root7} == 0
+rm TVirtualGeoPainter/P020_REveGeoPainter.C
+%endif
rm TVirtualGLImp/P020_TGWin32GL.C
rm TVirtualMonitoringWriter/P010_TMonaLisaWriter.C
rm TVirtualX/P030_TGWin32.C
@@ -2539,22 +2325,53 @@ for x in df014_CsvDataSource_MuRun2010B_cpp.csv \
ln -sf ../../files/tutorials/df014_CsvDataSource_MuRun2010B.csv $x
done
# Create the py-hsimple.root file in advance (needed as input)
-ROOTIGNOREPREFIX=1 PATH=${PWD}/../../builddir/bin:${PATH} \
- ROOTSYS=${PWD}/../../builddir \
- LD_LIBRARY_PATH=${PWD}/../../builddir/lib \
- PYTHONPATH=${PWD}/../../builddir/lib \
- %{__pythondef} ../../tutorials/pyroot/hsimple.py
-ROOTIGNOREPREFIX=1 PATH=${PWD}/../../builddir/bin:${PATH} \
- ROOTSYS=${PWD}/../../builddir \
- LD_LIBRARY_PATH=${PWD}/../../builddir/lib \
- PYTHONPATH=${PWD}/../../builddir/lib \
- make DOXYGEN_OUTPUT_DIRECTORY=${PWD}/doc PYTHON_EXECUTABLE=%{__pythondef}
+ROOTIGNOREPREFIX=1 PATH=${PWD}/../../%{_vpath_builddir}/bin:${PATH} \
+ ROOTSYS=${PWD}/../../%{_vpath_builddir} \
+ LD_LIBRARY_PATH=${PWD}/../../%{_vpath_builddir}/lib \
+ PYTHONPATH=${PWD}/../../%{_vpath_builddir}/lib \
+ %{__python3} ../../tutorials/pyroot/hsimple.py
+ROOTIGNOREPREFIX=1 PATH=${PWD}/../../%{_vpath_builddir}/bin:${PATH} \
+ ROOTSYS=${PWD}/../../%{_vpath_builddir} \
+ LD_LIBRARY_PATH=${PWD}/../../%{_vpath_builddir}/lib \
+ PYTHONPATH=${PWD}/../../%{_vpath_builddir}/lib \
+ make DOXYGEN_OUTPUT_DIRECTORY=${PWD}/doc PYTHON_EXECUTABLE=%{__python3}
mv doc/html %{buildroot}%{_pkgdocdir}/html
popd
+# Workaround for doxygen 1.8.17 and 1.8.18 doing slightly different things
+# on 32 and 64 bit
+doxver=$(doxygen -v)
+if [ "$doxver" = "1.8.17" -o "$doxver" = "1.8.18" ] ; then
+ for f in \
+ classDouble__t.html \
+ classPdfCacheElem.html \
+ classPdfCacheElem__inherit__graph.map \
+ classPdfCacheElem__inherit__graph.md5 \
+ classPdfCacheElem__inherit__graph.svg \
+ classROOT_1_1Experimental_1_1REveMagFieldDuo__coll__graph_org.svg \
+ classROOT_1_1Fit_1_1BasicFCN__coll__graph_org.svg \
+ classROOT_1_1Math_1_1MemGradFunHandler__coll__graph_org.svg \
+ classTAttImage__coll__graph_org.svg \
+ classTImagePalette__coll__graph_org.svg \
+ inherit_graph_1796.map \
+ inherit_graph_1796.md5 \
+ inherit_graph_1796.svg \
+ structEvent__t__coll__graph_org.svg \
+ structGLUvertex__coll__graph_org.svg \
+ structROOT_1_1Experimental_1_1REveBoxSet_1_1BEllipticCone__t__coll__graph_org.svg \
+ structROOT_1_1Internal_1_1RootCling_1_1DriverConfig__coll__graph_org.svg \
+ structTEveDigitSet_1_1DigitBase__t__inherit__graph.map \
+ structTEveDigitSet_1_1DigitBase__t__inherit__graph.md5 \
+ structTEveDigitSet_1_1DigitBase__t__inherit__graph.svg \
+ structTGL5DPainter_1_1Surf__t__coll__graph_org.svg ; do
+ [ -r %{buildroot}%{_pkgdocdir}/html/${f} ] || \
+ touch %{buildroot}%{_pkgdocdir}/html/${f}
+ done
+fi
+
# Create includelist files ...
-for f in `find builddir -name cmake_install.cmake -a '!' -path '*/llvm/*'` ; do
- l=`sed 's!builddir/\(.*\)/cmake_install.cmake!includelist-\1!' <<< $f`
+for f in `find %{_vpath_builddir} -name cmake_install.cmake -a '!' -path '*/llvm/*'` ; do
+ l=`sed 's!%{_vpath_builddir}/\(.*\)/cmake_install.cmake!includelist-\1!' <<< $f`
l=`tr / - <<< $l`
tmpdir=`mktemp -d`
%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8
@@ -2570,10 +2387,11 @@ done
cat includelist-core-{[^mw],m[^au]}* > includelist-core
cat includelist-geom-geom* > includelist-geom
cat includelist-graf2d-x11ttf >> includelist-graf2d-x11
+cat includelist-graf3d-rglew >> includelist-graf3d-gl
cat includelist-net-netx* > includelist-netx
%check
-pushd builddir
+pushd %{_vpath_builddir}
pushd test
ln -s ../../files files
popd
@@ -2651,6 +2469,10 @@ popd
# - tutorial-tmva-tmva103_Application
# reads input data over network
# http://root.cern/files/tmva101.root
+#
+# - pyunittests-pyroot-numbadeclare
+# - tutorial-pyroot-pyroot004_NumbaDeclare-py
+# these tests require the numba python module which is not available
excluded="\
test-stressIOPlugins|\
tutorial-dataframe-df101_h1Analysis|\
@@ -2675,7 +2497,9 @@ gtest-tmva-tmva-test-rreader|\
gtest-tmva-tmva-test-rstandardscaler|\
tutorial-tmva-tmva003_RReader|\
tutorial-tmva-tmva004_RStandardScaler|\
-tutorial-tmva-tmva103_Application"
+tutorial-tmva-tmva103_Application|\
+pyunittests-pyroot-numbadeclare|\
+tutorial-pyroot-pyroot004_NumbaDeclare-py"
%ifarch %{ix86} %{arm}
# Tests failing on 32 bit architectures (dataframe)
@@ -2683,6 +2507,7 @@ tutorial-tmva-tmva103_Application"
# - gtest-tree-dataframe-test-dataframe-cache
# - gtest-tree-dataframe-test-dataframe-callbacks
# - gtest-tree-dataframe-test-dataframe-colnames
+# - gtest-tree-dataframe-test-dataframe-display
# - gtest-tree-dataframe-test-dataframe-friends
# - gtest-tree-dataframe-test-dataframe-helpers
# - gtest-tree-dataframe-test-dataframe-interface
@@ -2695,6 +2520,7 @@ excluded="${excluded}|\
gtest-tree-dataframe-test-dataframe-cache|\
gtest-tree-dataframe-test-dataframe-callbacks|\
gtest-tree-dataframe-test-dataframe-colnames|\
+gtest-tree-dataframe-test-dataframe-display|\
gtest-tree-dataframe-test-dataframe-friends|\
gtest-tree-dataframe-test-dataframe-helpers|\
gtest-tree-dataframe-test-dataframe-interface|\
@@ -2720,6 +2546,13 @@ excluded="${excluded}|tutorial-roofit-rf611_weightedfits"
%endif
%endif
+%ifarch %{power64} aarch64
+# This test fails on ppc64le and aarch64 (but not on x86_64)
+# The interpreted version works though, only compiled version fails
+# - test-stresshistofit
+excluded="${excluded}|test-stresshistofit"
+%endif
+
make test ARGS="%{?_smp_mflags} --output-on-failure -E \"${excluded}\""
popd
@@ -2742,142 +2575,20 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor >/dev/null 2>&1 || :
%endif
%if %{buildpy2}
-
-%post -n python2-%{name}
+%pre -n python2-%{name}
if [ -r /var/lib/alternatives/libPyROOT.so ] ; then
- grep -q %{_libdir}/%{name}/libPyROOT.so.%{version} \
- /var/lib/alternatives/libPyROOT.so || \
- sed 's!\(%{_libdir}/%{name}/libPyROOT\.so\.\).*!\1%{version}!' \
- -i /var/lib/alternatives/libPyROOT.so
- for alt in `grep python2 /var/lib/alternatives/libPyROOT.so` ; do
- if [ "$alt" != "%{python2_sitearch}/libPyROOT.so" ] ; then
- %{_sbindir}/update-alternatives --remove libPyROOT.so $alt
- fi
+ for alt in `grep python2.*/.*.so /var/lib/alternatives/libPyROOT.so` ; do
+ %{_sbindir}/update-alternatives --remove libPyROOT.so $alt
done
fi
-for f in libPyROOT.rootmap libPyROOT_rdict.pcm ; do
- if [ -r %{_libdir}/%{name}/$f -a ! -h %{_libdir}/%{name}/$f ]; then
- rm %{_libdir}/%{name}/$f
- fi
-done
-%{_sbindir}/update-alternatives \
- --install %{_libdir}/%{name}/libPyROOT.so.%{version} libPyROOT.so \
- %{python2_sitearch}/libPyROOT.so %{py2prio} \
- --slave %{_libdir}/%{name}/libPyROOT.rootmap libPyROOT.rootmap \
- %{python2_sitearch}/libPyROOT.rootmap \
- --slave %{_libdir}/%{name}/libPyROOT_rdict.pcm libPyROOT_rdict.pcm \
- %{python2_sitearch}/libPyROOT_rdict.pcm
-%{?ldconfig}
-
-%preun -n python2-%{name}
-if [ $1 = 0 ] ; then
- %{_sbindir}/update-alternatives --remove \
- libPyROOT.so %{python2_sitearch}/libPyROOT.so
-fi
-
-%ldconfig_postun -n python2-%{name}
-
-%triggerpostun -n python2-%{name} -- %{name}-python
-# Uninstalling the old %{name}-python will remove the alternatives
-# for python2-%{name} - put them back in this triggerpostun script
-%{_sbindir}/update-alternatives \
- --install %{_libdir}/%{name}/libPyROOT.so.%{version} libPyROOT.so \
- %{python2_sitearch}/libPyROOT.so %{py2prio} \
- --slave %{_libdir}/%{name}/libPyROOT.rootmap libPyROOT.rootmap \
- %{python2_sitearch}/libPyROOT.rootmap \
- --slave %{_libdir}/%{name}/libPyROOT_rdict.pcm libPyROOT_rdict.pcm \
- %{python2_sitearch}/libPyROOT_rdict.pcm
-%{?ldconfig}
-
%endif
-%post -n python%{python3_pkgversion}-%{name}
+%pre -n python%{python3_pkgversion}-%{name}
if [ -r /var/lib/alternatives/libPyROOT.so ] ; then
- grep -q %{_libdir}/%{name}/libPyROOT.so.%{version} \
- /var/lib/alternatives/libPyROOT.so || \
- sed 's!\(%{_libdir}/%{name}/libPyROOT\.so\.\).*!\1%{version}!' \
- -i /var/lib/alternatives/libPyROOT.so
- for alt in `grep python3 /var/lib/alternatives/libPyROOT.so` ; do
-%if %{?rhel}%{!?rhel:0} == 7
- if [ "$alt" != "%{python3_sitearch}/libPyROOT.%{py3_soabi}.so" ] && \
- [ "$alt" != "%{python3_other_sitearch}/libPyROOT.%{py3_other_soabi}.so" ] ; then
-%else
- if [ "$alt" != "%{python3_sitearch}/libPyROOT.%{py3_soabi}.so" ] ; then
-%endif
- %{_sbindir}/update-alternatives --remove libPyROOT.so $alt
- fi
- done
-fi
-for f in libPyROOT.rootmap libPyROOT_rdict.pcm ; do
- if [ -r %{_libdir}/%{name}/$f -a ! -h %{_libdir}/%{name}/$f ]; then
- rm %{_libdir}/%{name}/$f
- fi
-done
-%{_sbindir}/update-alternatives \
- --install %{_libdir}/%{name}/libPyROOT.so.%{version} libPyROOT.so \
- %{python3_sitearch}/libPyROOT.%{py3_soabi}.so %{py3prio} \
- --slave %{_libdir}/%{name}/libPyROOT.rootmap libPyROOT.rootmap \
- %{python3_sitearch}/libPyROOT.rootmap \
- --slave %{_libdir}/%{name}/libPyROOT_rdict.pcm libPyROOT_rdict.pcm \
- %{python3_sitearch}/libPyROOT_rdict.pcm
-%{?ldconfig}
-
-%preun -n python%{python3_pkgversion}-%{name}
-if [ $1 = 0 ] ; then
- %{_sbindir}/update-alternatives --remove \
- libPyROOT.so %{python3_sitearch}/libPyROOT.%{py3_soabi}.so
-fi
-
-%ldconfig_postun -n python%{python3_pkgversion}-%{name}
-
-%triggerpostun -n python%{python3_pkgversion}-%{name} -- %{name}-python%{python3_pkgversion}
-# Uninstalling the old %{name}-python%{python3_pkgversion} will remove the alternatives
-# for python%{python3_pkgversion}-%{name} - put them back in this triggerpostun script
-%{_sbindir}/update-alternatives \
- --install %{_libdir}/%{name}/libPyROOT.so.%{version} libPyROOT.so \
- %{python3_sitearch}/libPyROOT.%{py3_soabi}.so %{py3prio} \
- --slave %{_libdir}/%{name}/libPyROOT.rootmap libPyROOT.rootmap \
- %{python3_sitearch}/libPyROOT.rootmap \
- --slave %{_libdir}/%{name}/libPyROOT_rdict.pcm libPyROOT_rdict.pcm \
- %{python3_sitearch}/libPyROOT_rdict.pcm
-%{?ldconfig}
-
-%if %{?rhel}%{!?rhel:0} == 7
-%post -n python%{python3_other_pkgversion}-%{name}
-if [ -r /var/lib/alternatives/libPyROOT.so ] ; then
- grep -q %{_libdir}/%{name}/libPyROOT.so.%{version} \
- /var/lib/alternatives/libPyROOT.so || \
- sed 's!\(%{_libdir}/%{name}/libPyROOT\.so\.\).*!\1%{version}!' \
- -i /var/lib/alternatives/libPyROOT.so
- for alt in `grep python3 /var/lib/alternatives/libPyROOT.so` ; do
- if [ "$alt" != "%{python3_sitearch}/libPyROOT.%{py3_soabi}.so" ] && \
- [ "$alt" != "%{python3_other_sitearch}/libPyROOT.%{py3_other_soabi}.so" ] ; then
- %{_sbindir}/update-alternatives --remove libPyROOT.so $alt
- fi
+ for alt in `grep python3.*/.*.so /var/lib/alternatives/libPyROOT.so` ; do
+ %{_sbindir}/update-alternatives --remove libPyROOT.so $alt
done
fi
-for f in libPyROOT.rootmap libPyROOT_rdict.pcm ; do
- if [ -r %{_libdir}/%{name}/$f -a ! -h %{_libdir}/%{name}/$f ]; then
- rm %{_libdir}/%{name}/$f
- fi
-done
-%{_sbindir}/update-alternatives \
- --install %{_libdir}/%{name}/libPyROOT.so.%{version} libPyROOT.so \
- %{python3_other_sitearch}/libPyROOT.%{py3_other_soabi}.so 5 \
- --slave %{_libdir}/%{name}/libPyROOT.rootmap libPyROOT.rootmap \
- %{python3_other_sitearch}/libPyROOT.rootmap \
- --slave %{_libdir}/%{name}/libPyROOT_rdict.pcm libPyROOT_rdict.pcm \
- %{python3_other_sitearch}/libPyROOT_rdict.pcm
-%{?ldconfig}
-
-%preun -n python%{python3_other_pkgversion}-%{name}
-if [ $1 = 0 ] ; then
- %{_sbindir}/update-alternatives --remove \
- libPyROOT.so %{python3_other_sitearch}/libPyROOT.%{py3_other_soabi}.so
-fi
-
-%ldconfig_postun -n python%{python3_other_pkgversion}-%{name}
-%endif
%post notebook
mkdir -p /etc/jupyter
@@ -2906,6 +2617,11 @@ fi
%ldconfig_scriptlets multiproc
%ldconfig_scriptlets cling
+%ldconfig_scriptlets tpython
+%if %{buildpy2}
+%ldconfig_scriptlets -n python2-%{name}
+%endif
+%ldconfig_scriptlets -n python%{python3_pkgversion}-%{name}
%ldconfig_scriptlets r
%ldconfig_scriptlets r-tools
%ldconfig_scriptlets genetic
@@ -2996,6 +2712,7 @@ fi
%ldconfig_scriptlets graf-gpadv7
%ldconfig_scriptlets graf-primitives
%ldconfig_scriptlets graf3d-eve7
+%ldconfig_scriptlets gui-browsable
%ldconfig_scriptlets gui-browserv7
%ldconfig_scriptlets gui-canvaspainter
%ldconfig_scriptlets gui-fitpanelv7
@@ -3035,6 +2752,12 @@ fi
%files fonts
%{_datadir}/%{name}/fonts
+%files doc
+%doc %{_pkgdocdir}/html
+
+%files tutorial
+%doc %{_pkgdocdir}/tutorials
+
%files core -f includelist-core
%{_bindir}/memprobe
%{_bindir}/rmkdepend
@@ -3061,6 +2784,7 @@ fi
%{_datadir}/%{name}/gdb-backtrace.sh
%{_datadir}/%{name}/gitinfo.txt
%{_datadir}/%{name}/helgrind-root.supp
+%{_datadir}/%{name}/lsan-root.supp
%{_datadir}/%{name}/Makefile.arch
%{_datadir}/%{name}/root.mimes
%{_datadir}/%{name}/system.rootauthrc
@@ -3111,98 +2835,58 @@ fi
%doc interpreter/llvm/src/llvm-README.txt
%license interpreter/llvm/src/llvm-LICENSE.TXT
-%files doc
-%doc %{_pkgdocdir}/html
-
-%files tutorial
-%doc %{_pkgdocdir}/tutorials
+%files tpython -f includelist-bindings-tpython
+%{_libdir}/%{name}/libROOTTPython.*
+%{_libdir}/%{name}/libROOTTPython_rdict.pcm
%if %{buildpy2}
-%files -n python2-%{name} -f includelist-bindings-pyroot
-%ghost %{_libdir}/%{name}/libPyROOT.rootmap
-%{_libdir}/%{name}/libPyROOT.so
-%{_libdir}/%{name}/libPyROOT.so.%{libversion}
-%ghost %{_libdir}/%{name}/libPyROOT.so.%{version}
-%ghost %{_libdir}/%{name}/libPyROOT_rdict.pcm
-%{python2_sitearch}/libPyROOT.rootmap
-%{python2_sitearch}/libPyROOT.so
-%{python2_sitearch}/libPyROOT_rdict.pcm
-%{python2_sitearch}/ROOT.py*
+%files -n python2-%{name}
+%{python2_sitearch}/cppyy
+%{python2_sitearch}/cppyy_backend
+%{python2_sitearch}/ROOT
%{python2_sitearch}/ROOT-*.egg-info
-%{python2_sitearch}/cppyy.py*
-%{python2_sitearch}/_pythonization.py*
-%{python2_sitearch}/_rdf_utils.py*
-%endif
+%{python2_sitearch}/libcppyy%{python2_version_uscore}.so
+%{python2_sitearch}/libcppyy_backend%{python2_version_uscore}.so
+%{python2_sitearch}/libROOTPythonizations%{python2_version_uscore}.so
+%{_libdir}/%{name}/libcppyy%{python2_version_uscore}.*
+%{_libdir}/%{name}/libcppyy_backend%{python2_version_uscore}.*
+%{_includedir}/%{name}/CPyCppyy
-%if ! %{py3default}
%files -n python2-jupyroot
%{python2_sitearch}/JupyROOT
%{python2_sitearch}/JupyROOT-*.egg-info
-%{python2_sitearch}/libJupyROOT.so
+%{python2_sitearch}/libJupyROOT%{python2_version_uscore}.so
%{_datadir}/jupyter/kernels/python2-jupyroot
-%doc bindings/pyroot/JupyROOT/README.md
+%doc bindings/jupyroot/README.md
%files -n python2-jsmva
%{python2_sitelib}/JsMVA
%{python2_sitelib}/JsMVA-*.egg-info
%endif
-%files -n python%{python3_pkgversion}-%{name} -f includelist-bindings-pyroot
-%ghost %{_libdir}/%{name}/libPyROOT.rootmap
-%{_libdir}/%{name}/libPyROOT.so
-%{_libdir}/%{name}/libPyROOT.so.%{libversion}
-%ghost %{_libdir}/%{name}/libPyROOT.so.%{version}
-%ghost %{_libdir}/%{name}/libPyROOT_rdict.pcm
-%{python3_sitearch}/libPyROOT.rootmap
-%{python3_sitearch}/libPyROOT.%{py3_soabi}.so
-%{python3_sitearch}/libPyROOT_rdict.pcm
-%{python3_sitearch}/ROOT.py
+%files -n python%{python3_pkgversion}-%{name}
+%{python3_sitearch}/cppyy
+%{python3_sitearch}/cppyy_backend
+%{python3_sitearch}/ROOT
%{python3_sitearch}/ROOT-*.egg-info
-%{python3_sitearch}/cppyy.py
-%{python3_sitearch}/_pythonization.py
-%{python3_sitearch}/_rdf_utils.py
-%{python3_sitearch}/__pycache__/*
+%{python3_sitearch}/libcppyy%{python3_version_uscore}.%{py3_soabi}.so
+%{python3_sitearch}/libcppyy_backend%{python3_version_uscore}.so
+%{python3_sitearch}/libROOTPythonizations%{python3_version_uscore}.%{py3_soabi}.so
+%{_libdir}/%{name}/libcppyy%{python3_version_uscore}.*
+%{_libdir}/%{name}/libcppyy_backend%{python3_version_uscore}.*
+%{_includedir}/%{name}/CPyCppyy
%files -n python%{python3_pkgversion}-jupyroot
%{python3_sitearch}/JupyROOT
%{python3_sitearch}/JupyROOT-*.egg-info
-%{python3_sitearch}/libJupyROOT.so
+%{python3_sitearch}/libJupyROOT%{python3_version_uscore}.%{py3_soabi}.so
%{_datadir}/jupyter/kernels/python%{python3_pkgversion}-jupyroot
-%doc bindings/pyroot/JupyROOT/README.md
+%doc bindings/jupyroot/README.md
%files -n python%{python3_pkgversion}-jsmva
%{python3_sitelib}/JsMVA
%{python3_sitelib}/JsMVA-*.egg-info
-%if %{?rhel}%{!?rhel:0} == 7
-%files -n python%{python3_other_pkgversion}-%{name} -f includelist-bindings-pyroot
-%ghost %{_libdir}/%{name}/libPyROOT.rootmap
-%{_libdir}/%{name}/libPyROOT.so
-%{_libdir}/%{name}/libPyROOT.so.%{libversion}
-%ghost %{_libdir}/%{name}/libPyROOT.so.%{version}
-%ghost %{_libdir}/%{name}/libPyROOT_rdict.pcm
-%{python3_other_sitearch}/libPyROOT.rootmap
-%{python3_other_sitearch}/libPyROOT.%{py3_other_soabi}.so
-%{python3_other_sitearch}/libPyROOT_rdict.pcm
-%{python3_other_sitearch}/ROOT.py
-%{python3_other_sitearch}/ROOT-*.egg-info
-%{python3_other_sitearch}/cppyy.py
-%{python3_other_sitearch}/_pythonization.py
-%{python3_other_sitearch}/_rdf_utils.py
-%{python3_other_sitearch}/__pycache__/*
-
-%files -n python%{python3_other_pkgversion}-jupyroot
-%{python3_other_sitearch}/JupyROOT
-%{python3_other_sitearch}/JupyROOT-*.egg-info
-%{python3_other_sitearch}/libJupyROOT.so
-%{_datadir}/jupyter/kernels/python%{python3_other_pkgversion}-jupyroot
-%doc bindings/pyroot/JupyROOT/README.md
-
-%files -n python%{python3_other_pkgversion}-jsmva
-%{python3_other_sitelib}/JsMVA
-%{python3_other_sitelib}/JsMVA-*.egg-info
-%endif
-
%files r -f includelist-bindings-r
%{_libdir}/%{name}/libRInterface.*
%{_libdir}/%{name}/libRInterface_rdict.pcm
@@ -3750,6 +3434,16 @@ fi
%files graf3d-eve7 -f includelist-graf3d-eve7
%{_libdir}/%{name}/libROOTEve.*
%{_libdir}/%{name}/libROOTEve_rdict.pcm
+%{_datadir}/%{name}/plugins/TVirtualGeoPainter/P020_REveGeoPainter.C
+
+%files gui-browsable -f includelist-gui-browsable
+%{_libdir}/%{name}/libROOTBrowsable.*
+%{_libdir}/%{name}/libROOTBrowsable_rdict.pcm
+%{_libdir}/%{name}/libROOTHistDrawProvider.*
+%{_libdir}/%{name}/libROOTLeafDraw6Provider.*
+%{_libdir}/%{name}/libROOTLeafDraw7Provider.*
+%{_libdir}/%{name}/libROOTObjectDraw6Provider.*
+%{_libdir}/%{name}/libROOTObjectDraw7Provider.*
%files gui-browserv7 -f includelist-gui-browserv7
%{_libdir}/%{name}/libROOTBrowserv7.*
@@ -3791,7 +3485,34 @@ fi
%endif
%changelog
-* Thu Jul 11 2020 Jeff Law <law(a)redhat.com> - 6.20.06-2
+* Tue Jul 14 2020 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.22.00-1
+- Update to 6.22.00
+- Drop patches accepted upstream
+ - root-FitData-assert-fix.patch
+ - root-clang-altivec-vector.patch
+ - root-format-fix.patch
+ - root-moved-file.patch
+ - root-xmlmodify-dep.patch
+- New and improved Python bindings
+- The new Python bindings can be built for both Python 2 and Python 3
+ out of the box. Dropped the workaround in specfile for this (EPEL 7)
+- Dropped the python3-other packages (EPEL 7)
+- The new Python bindings has split the TPython interface to a separate
+ library. Now in a separate root-tpython package
+- root-tpython and root-tmva-python are now using Python 3 on EPEL 7
+- New subpackage root-gui-browsable
+- New patches (submitted upstream)
+ - Fix too aggressive -Werror replacements
+ - Add missing call to TFile::SetCacheFileDir in a TMVA tutorial
+ - Adjust stressGraphics.ref
+ - Fix off-by-one error in histogram v7 bin iterator
+ - Compatibility with python 2.7 versions before 2.7.9
+ - Fix the RNTuple.LargeFile test on 32bit (i386 and armv7hf)
+ - Fix doxygen issues
+ - Fix bad regex in TProofMgr
+ - Compatibility with xrootd 5
+
+* Sat Jul 11 2020 Jeff Law <law(a)redhat.com> - 6.20.06-2
- Disable LTO
* Thu Jun 11 2020 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.20.06-1
diff --git a/sources b/sources
index 86bdac6..b6ae6df 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (root-6.20.06.tar.xz) = 791f472cb40200c5f8b79efd1803044914bb8e41dc1f424e90508c059d548be7913417a08a770e0f041c9070af8dc6bbddf5366c3db2b1dac43d417992aade22
-SHA512 (root-testfiles.tar.xz) = 7006c6591b587c24cf75dc4f6ed9586165b27102539fdde580d0a95853fcec7e9980a881e49e64a09f90af341a8c8fd2f493305ed88e07af144fabd438ba283e
+SHA512 (root-6.22.00.tar.xz) = ca2f72d691619d8afadd3c20f7e3b19d4a12f9f5a38bda340ee4c9fd10993c78db4016a1904851c75478657d971a72f18ad4b1f1bdf61da8be8a0e6de0e1753a
+SHA512 (root-testfiles.tar.xz) = 945aef1a0cf5af672d4ab84b0ac00b76118e93008ff72447658ee82d9e955a1540af3ff7126e701418872f1d91b92ee96d4985840a519036c42732023a13f00f
commit 4dabf92f1ed69fa9f2d03bd86fbe1a6ed485b012
Author: Jeff Law <law(a)redhat.com>
Date: Sat Jul 11 11:24:46 2020 -0600
Disable LTO
diff --git a/root.spec b/root.spec
index 60eba85..2929aa2 100644
--- a/root.spec
+++ b/root.spec
@@ -51,7 +51,7 @@
Name: root
Version: 6.20.06
%global libversion %(cut -d. -f 1-2 <<< %{version})
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Numerical data analysis framework
License: LGPLv2+
@@ -1917,6 +1917,10 @@ rm etc/notebook/JsMVA/js/*.min.js
rm etc/notebook/JsMVA/css/*.min.css
%build
+# This package triggers a fault in LLVM when LTO is enabled. Until LLVM
+# is analyzed and fixed, disable LTO
+%define _lto_cflags %{nil}
+
unset QTDIR
unset QTLIB
unset QTINC
@@ -3787,6 +3791,9 @@ fi
%endif
%changelog
+* Thu Jul 11 2020 Jeff Law <law(a)redhat.com> - 6.20.06-2
+- Disable LTO
+
* Thu Jun 11 2020 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 6.20.06-1
- Update to 6.20.06
- Fix test failure on ppc64le and aarch64
3 years, 11 months
Architecture specific change in rpms/wine.git
by githook-noreply@fedoraproject.org
The package rpms/wine.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/wine.git/commit/?id=cc5d614c8aff2....
Change:
-%ifarch %{arm} aarch64
Thanks.
Full change:
============
commit c65cf5dacfecaaa5a886257272c968d55e398e17
Author: Michael Cronenworth <mike(a)cchtml.com>
Date: Tue Jul 14 15:22:25 2020 -0500
Three new DLLs in 5.11/5.12
diff --git a/wine.spec b/wine.spec
index ac5168d..1bc1047 100644
--- a/wine.spec
+++ b/wine.spec
@@ -1210,6 +1210,7 @@ fi
%{_libdir}/wine/termsv.%{wineexe}
%{_libdir}/wine/view.%{wineexe}
%{_libdir}/wine/wevtutil.%{wineexe}
+%{_libdir}/wine/where.%{wineexe}
%{_libdir}/wine/whoami.%{wineexe}
%{_libdir}/wine/wineboot.%{wineexe}
%{_libdir}/wine/winebrowser.exe.so
@@ -1307,6 +1308,7 @@ fi
%{_libdir}/wine/api-ms-win-core-misc-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-namedpipe-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-namedpipe-l1-2-0.%{winedll}
+%{_libdir}/wine/api-ms-win-core-namedpipe-ansi-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-namespace-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-normalization-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-path-l1-1-0.%{winedll}
@@ -1828,6 +1830,7 @@ fi
%{_libdir}/wine/propsys.%{winedll}
%{_libdir}/wine/psapi.%{winedll}
%{_libdir}/wine/pstorec.%{winedll}
+%{_libdir}/wine/pwrshplugin.%{winedll}
%{_libdir}/wine/qasf.%{winedll}
%{_libdir}/wine/qcap.dll.so
%{_libdir}/wine/qdvd.%{winedll}
commit cc5d614c8aff254b7a896264680eb08a02d2a7ad
Author: Michael Cronenworth <mike(a)cchtml.com>
Date: Tue Jul 14 14:56:54 2020 -0500
Update to 5.12
diff --git a/.gitignore b/.gitignore
index 1b3c9bc..b9639ee 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,3 @@
-/wine-5.10.tar.xz
-/wine-5.10.tar.xz.sign
-/wine-staging-5.10.tar.gz
+/wine-5.12.tar.xz
+/wine-5.12.tar.xz.sign
+/wine-staging-5.12.1.tar.gz
diff --git a/sources b/sources
index 71a95ad..29ea6fb 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (wine-5.10.tar.xz) = 669d6861525cd4ab000113e8d9c5e10822b62b293914542ee34a826696df66e1d2f09b09f576f714e4117e79e25d1fd0b2a06c57d29da0efa0bdfcb9fee59c60
-SHA512 (wine-5.10.tar.xz.sign) = 809c9d4d37440bc6beac0b6da9c69e81c055f3ea606261c21dd2e1ce02e71976f3fc3433e0bd87cc8431b5cd49cab9db01d4bf62bd23fe294ca7a5180adab7ee
-SHA512 (wine-staging-5.10.tar.gz) = fca5ddb648ac45c242b9bd7ccb0980161bff1e3539aa1a116f1cceece9d3b4a3188c82bd93624f561653dda793ad16dc00a87c7ed0c38f19a93b538519ef806c
+SHA512 (wine-5.12.tar.xz) = 1272b143d64ed6083cd797474f18dbd2bca7a38d488474ae5f054f47789b4fc1d386c7bbf8aa1bd86f9507908fc799b4f45e10e1d8c628c5bd52c42b1d74c8a8
+SHA512 (wine-5.12.tar.xz.sign) = 0c2fdab2e8c46addcd2cebbc46f9125e7f544bddef89d19713310ec889992936ba2dcead93d6291c10dcd88a60eba0d84bd6c0459a512009899fdd4eb4435813
+SHA512 (wine-staging-5.12.1.tar.gz) = 1a4cead8f17d41f1e5ab1be2f8dd8e098fc655b6240bdae49d3e8ab8f112ea4b46a92a95780b325c037dd3e5099e481392860c8dbf72dd03acee39855335750d
diff --git a/wine-staging-5.10-ntdll.patch b/wine-staging-5.10-ntdll.patch
deleted file mode 100644
index 0ac49d8..0000000
--- a/wine-staging-5.10-ntdll.patch
+++ /dev/null
@@ -1,497 +0,0 @@
-From 044cb930662d61f401a5d1bdd7b8e75d59cea5ea Mon Sep 17 00:00:00 2001
-From: Paul Gofman <gofmanp(a)gmail.com>
-Date: Mon, 8 Jun 2020 15:33:10 +0300
-Subject: [PATCH] Updated ntdll-ForceBottomUpAlloc patchset.
-
-Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49326
----
- ...h-on-mmap-error-in-try_map_free_area.patch | 9 +-
- ...XED_NOREPLACE-flag-in-try_map_free_a.patch | 10 +-
- ...om-up-allocation-order-for-64-bit-ar.patch | 12 +-
- ...tep-after-failed-map-attempt-in-try_.patch | 8 +-
- ...rea-list-for-virtual-memory-allocati.patch | 163 +++++++++++-------
- ...y-exclude-natively-mapped-areas-from.patch | 14 +-
- 6 files changed, 126 insertions(+), 90 deletions(-)
-
-diff --git a/patches/ntdll-ForceBottomUpAlloc/0001-ntdll-Stop-search-on-mmap-error-in-try_map_free_area.patch b/patches/ntdll-ForceBottomUpAlloc/0001-ntdll-Stop-search-on-mmap-error-in-try_map_free_area.patch
-index 7aa2337e8..ecf750c59 100644
---- a/patches/ntdll-ForceBottomUpAlloc/0001-ntdll-Stop-search-on-mmap-error-in-try_map_free_area.patch
-+++ b/patches/ntdll-ForceBottomUpAlloc/0001-ntdll-Stop-search-on-mmap-error-in-try_map_free_area.patch
-@@ -1,7 +1,8 @@
--From ca116113c19ee17d2e8283abe4edf27f76df2148 Mon Sep 17 00:00:00 2001
-+From c0a24a86c70b3cf2bfe118cff4d9ab03efaa9689 Mon Sep 17 00:00:00 2001
- From: Paul Gofman <gofmanp(a)gmail.com>
- Date: Thu, 9 Jan 2020 15:05:09 +0300
--Subject: [PATCH] ntdll: Stop search on mmap() error in try_map_free_area().
-+Subject: [PATCH 1/6] ntdll: Stop search on mmap() error in
-+ try_map_free_area().
-
- The anon mmap errors do not depend on start address hint. Ignoring them
- makes the search take incredible time until it fails.
-@@ -10,10 +11,10 @@ makes the search take incredible time until it fails.
- 1 file changed, 8 insertions(+), 2 deletions(-)
-
- diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
--index 0346d0d9753..c29f695d694 100644
-+index b2725e3ae9a..5c2ecfab398 100644
- --- a/dlls/ntdll/unix/virtual.c
- +++ b/dlls/ntdll/unix/virtual.c
--@@ -1016,8 +1016,14 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
-+@@ -1063,8 +1063,14 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
- return start;
- TRACE( "Found free area is already mapped, start %p.\n", start );
-
-diff --git a/patches/ntdll-ForceBottomUpAlloc/0002-ntdll-Use-MAP_FIXED_NOREPLACE-flag-in-try_map_free_a.patch b/patches/ntdll-ForceBottomUpAlloc/0002-ntdll-Use-MAP_FIXED_NOREPLACE-flag-in-try_map_free_a.patch
-index 6672d646f..81bdde5a0 100644
---- a/patches/ntdll-ForceBottomUpAlloc/0002-ntdll-Use-MAP_FIXED_NOREPLACE-flag-in-try_map_free_a.patch
-+++ b/patches/ntdll-ForceBottomUpAlloc/0002-ntdll-Use-MAP_FIXED_NOREPLACE-flag-in-try_map_free_a.patch
-@@ -1,8 +1,8 @@
--From b2c9894cd6a81eaa9f7dd4bce3f9cbfbec17d021 Mon Sep 17 00:00:00 2001
-+From 68e035e381f5d53980a8bcd7c0798dfd4b4fbe95 Mon Sep 17 00:00:00 2001
- From: Paul Gofman <gofmanp(a)gmail.com>
- Date: Thu, 16 Jan 2020 16:09:24 +0300
--Subject: [PATCH] ntdll: Use MAP_FIXED_NOREPLACE flag in try_map_free_area() if
-- available.
-+Subject: [PATCH 2/6] ntdll: Use MAP_FIXED_NOREPLACE flag in
-+ try_map_free_area() if available.
-
- Avoids actual mapping followed by unmapping back if the memory range is
- already mapped.
-@@ -11,10 +11,10 @@ already mapped.
- 1 file changed, 9 insertions(+), 3 deletions(-)
-
- diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
--index c29f695d694..8d3e25481ec 100644
-+index 5c2ecfab398..93b5d99dadd 100644
- --- a/dlls/ntdll/unix/virtual.c
- +++ b/dlls/ntdll/unix/virtual.c
--@@ -1008,22 +1008,28 @@ static struct wine_rb_entry *find_view_inside_range( void **base_ptr, void **end
-+@@ -1055,22 +1055,28 @@ static struct wine_rb_entry *find_view_inside_range( void **base_ptr, void **end
- static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
- void *start, size_t size, int unix_prot )
- {
-diff --git a/patches/ntdll-ForceBottomUpAlloc/0003-ntdll-Force-bottom-up-allocation-order-for-64-bit-ar.patch b/patches/ntdll-ForceBottomUpAlloc/0003-ntdll-Force-bottom-up-allocation-order-for-64-bit-ar.patch
-index 44980f11a..279c8e3c2 100644
---- a/patches/ntdll-ForceBottomUpAlloc/0003-ntdll-Force-bottom-up-allocation-order-for-64-bit-ar.patch
-+++ b/patches/ntdll-ForceBottomUpAlloc/0003-ntdll-Force-bottom-up-allocation-order-for-64-bit-ar.patch
-@@ -1,7 +1,7 @@
--From 9f7320fe58c85f1b53301c2c9a2a80fa8d4ed228 Mon Sep 17 00:00:00 2001
-+From 25be7201abeb509db4b28b81914036bc0c00c2f9 Mon Sep 17 00:00:00 2001
- From: Paul Gofman <gofmanp(a)gmail.com>
- Date: Mon, 25 Nov 2019 12:19:20 +0300
--Subject: [PATCH] ntdll: Force bottom up allocation order for 64 bit arch
-+Subject: [PATCH 3/6] ntdll: Force bottom up allocation order for 64 bit arch
- unless top down is requested.
-
- Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48175
-@@ -11,10 +11,10 @@ Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46568
- 1 file changed, 10 insertions(+), 2 deletions(-)
-
- diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
--index 8d3e25481ec..dc20e827141 100644
-+index 93b5d99dadd..87b33016b72 100644
- --- a/dlls/ntdll/unix/virtual.c
- +++ b/dlls/ntdll/unix/virtual.c
--@@ -1715,13 +1715,19 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
-+@@ -1775,13 +1775,19 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
- }
- else
- {
-@@ -35,7 +35,7 @@ index 8d3e25481ec..dc20e827141 100644
- if (mmap_enum_reserved_areas( alloc_reserved_area_callback, &alloc, top_down ))
- {
- ptr = alloc.result;
--@@ -1731,7 +1737,7 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
-+@@ -1791,7 +1797,7 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
- goto done;
- }
-
-@@ -44,7 +44,7 @@ index 8d3e25481ec..dc20e827141 100644
- {
- if (!(ptr = map_free_area( address_space_start, alloc.limit, size,
- top_down, get_unix_prot(vprot) )))
--@@ -1740,6 +1746,8 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
-+@@ -1800,6 +1806,8 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
- goto done;
- }
-
-diff --git a/patches/ntdll-ForceBottomUpAlloc/0004-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch b/patches/ntdll-ForceBottomUpAlloc/0004-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch
-index 9361f0938..0b5c7618a 100644
---- a/patches/ntdll-ForceBottomUpAlloc/0004-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch
-+++ b/patches/ntdll-ForceBottomUpAlloc/0004-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch
-@@ -1,7 +1,7 @@
--From e521333684d1286fff7b6625515d13ad6f3fcba3 Mon Sep 17 00:00:00 2001
-+From d74a5c586c00a879fa1182af72c15c154e5dd096 Mon Sep 17 00:00:00 2001
- From: Paul Gofman <gofmanp(a)gmail.com>
- Date: Tue, 14 Jan 2020 21:39:23 +0300
--Subject: [PATCH] ntdll: Increase step after failed map attempt in
-+Subject: [PATCH 4/6] ntdll: Increase step after failed map attempt in
- try_map_free_area().
-
- ---
-@@ -9,10 +9,10 @@ Subject: [PATCH] ntdll: Increase step after failed map attempt in
- 1 file changed, 1 insertion(+)
-
- diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
--index dc20e827141..720d45ecb9f 100644
-+index 87b33016b72..5e79faaf6fc 100644
- --- a/dlls/ntdll/unix/virtual.c
- +++ b/dlls/ntdll/unix/virtual.c
--@@ -1036,6 +1036,7 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
-+@@ -1083,6 +1083,7 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
- step == 0)
- break;
- start = (char *)start + step;
-diff --git a/patches/ntdll-ForceBottomUpAlloc/0005-ntdll-Use-free-area-list-for-virtual-memory-allocati.patch b/patches/ntdll-ForceBottomUpAlloc/0005-ntdll-Use-free-area-list-for-virtual-memory-allocati.patch
-index 569bf3e62..1f712ba10 100644
---- a/patches/ntdll-ForceBottomUpAlloc/0005-ntdll-Use-free-area-list-for-virtual-memory-allocati.patch
-+++ b/patches/ntdll-ForceBottomUpAlloc/0005-ntdll-Use-free-area-list-for-virtual-memory-allocati.patch
-@@ -1,17 +1,17 @@
--From df7b650d5e17afa411024b88d1920d0910947a6b Mon Sep 17 00:00:00 2001
-+From f14407ee5755b6482714a6232a4313bcd1531781 Mon Sep 17 00:00:00 2001
- From: Paul Gofman <pgofman(a)codeweavers.com>
- Date: Tue, 14 Jan 2020 21:42:21 +0300
--Subject: [PATCH] ntdll: Use free area list for virtual memory allocation.
-+Subject: [PATCH 5/6] ntdll: Use free area list for virtual memory allocation.
-
- ---
-- dlls/ntdll/unix/virtual.c | 318 ++++++++++++++++++++++++--------------
-- 1 file changed, 204 insertions(+), 114 deletions(-)
-+ dlls/ntdll/unix/virtual.c | 348 +++++++++++++++++++++++++-------------
-+ 1 file changed, 234 insertions(+), 114 deletions(-)
-
- diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
--index 720d45ecb9f..e323f4290bf 100644
-+index 5e79faaf6fc..7f194effcaa 100644
- --- a/dlls/ntdll/unix/virtual.c
- +++ b/dlls/ntdll/unix/virtual.c
--@@ -192,7 +192,11 @@ static BYTE *pages_vprot;
-+@@ -195,7 +195,11 @@ static BYTE *pages_vprot;
- #endif
-
- static struct file_view *view_block_start, *view_block_end, *next_free_view;
-@@ -23,7 +23,7 @@ index 720d45ecb9f..e323f4290bf 100644
- static void *preload_reserve_start;
- static void *preload_reserve_end;
- static BOOL use_locks;
--@@ -528,13 +532,13 @@ static struct range_entry *free_ranges_lower_bound( void *addr )
-+@@ -546,13 +550,13 @@ static struct range_entry *free_ranges_lower_bound( void *addr )
- *
- * Updates the free_ranges after a new view has been created.
- */
-@@ -40,7 +40,7 @@ index 720d45ecb9f..e323f4290bf 100644
- /* free_ranges initial value is such that the view is either inside range or before another one. */
- assert( range != free_ranges_end );
- assert( range->end > view_base || next != free_ranges_end );
--@@ -545,7 +549,7 @@ static void free_ranges_insert_view( struct file_view *view )
-+@@ -563,7 +567,7 @@ static void free_ranges_insert_view( struct file_view *view )
- (range->end == view_base && next->base >= view_end))
- {
- /* on Win64, assert that it's correctly aligned so we're not going to be in trouble later */
-@@ -49,7 +49,7 @@ index 720d45ecb9f..e323f4290bf 100644
- WARN( "range %p - %p is already mapped\n", view_base, view_end );
- return;
- }
--@@ -585,6 +589,12 @@ static void free_ranges_insert_view( struct file_view *view )
-+@@ -603,6 +607,12 @@ static void free_ranges_insert_view( struct file_view *view )
- }
- }
-
-@@ -62,7 +62,7 @@ index 720d45ecb9f..e323f4290bf 100644
-
- /***********************************************************************
- * free_ranges_remove_view
--@@ -615,6 +625,7 @@ static void free_ranges_remove_view( struct file_view *view )
-+@@ -633,6 +643,7 @@ static void free_ranges_remove_view( struct file_view *view )
- return;
- }
- #endif
-@@ -70,7 +70,7 @@ index 720d45ecb9f..e323f4290bf 100644
-
- /* free_ranges initial value is such that the view is either inside range or before another one. */
- assert( range != free_ranges_end );
--@@ -961,44 +972,6 @@ static struct file_view *find_view_range( const void *addr, size_t size )
-+@@ -1008,44 +1019,6 @@ static struct file_view *find_view_range( const void *addr, size_t size )
- }
-
-
-@@ -115,7 +115,7 @@ index 720d45ecb9f..e323f4290bf 100644
- /***********************************************************************
- * try_map_free_area
- *
--@@ -1042,65 +1015,11 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
-+@@ -1089,65 +1062,11 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
- return NULL;
- }
-
-@@ -181,7 +181,7 @@ index 720d45ecb9f..e323f4290bf 100644
- */
- static void *find_reserved_free_area( void *base, void *end, size_t size, int top_down )
- {
--@@ -1314,8 +1233,7 @@ static void delete_view( struct file_view *view ) /* [in] View */
-+@@ -1361,8 +1280,7 @@ static void delete_view( struct file_view *view ) /* [in] View */
- {
- if (!(view->protect & VPROT_SYSTEM)) unmap_area( view->base, view->size );
- set_page_vprot( view->base, view->size, 0 );
-@@ -191,7 +191,7 @@ index 720d45ecb9f..e323f4290bf 100644
- wine_rb_remove( &views_tree, &view->entry );
- *(struct file_view **)view = next_free_view;
- next_free_view = view;
--@@ -1363,8 +1281,7 @@ static NTSTATUS create_view( struct file_view **view_ret, void *base, size_t siz
-+@@ -1410,8 +1328,7 @@ static NTSTATUS create_view( struct file_view **view_ret, void *base, size_t siz
- set_page_vprot( base, size, vprot );
-
- wine_rb_put( &views_tree, view->base, &view->entry );
-@@ -201,7 +201,7 @@ index 720d45ecb9f..e323f4290bf 100644
-
- *view_ret = view;
-
--@@ -1596,6 +1513,7 @@ struct alloc_area
-+@@ -1656,6 +1573,7 @@ struct alloc_area
- int top_down;
- void *limit;
- void *result;
-@@ -209,7 +209,7 @@ index 720d45ecb9f..e323f4290bf 100644
- };
-
- /***********************************************************************
--@@ -1637,6 +1555,179 @@ static int CDECL alloc_reserved_area_callback( void *start, SIZE_T size, void *a
-+@@ -1697,6 +1615,212 @@ static int CDECL alloc_reserved_area_callback( void *start, SIZE_T size, void *a
- return 0;
- }
-
-@@ -303,11 +303,62 @@ index 720d45ecb9f..e323f4290bf 100644
- + return 0;
- +}
- +
-++static void *alloc_free_area_in_range(struct area_alloc_reserved *area, char *base, char *end,
-++ size_t size, int top_down, int unix_prot)
-++{
-++ char *start;
-++
-++ TRACE("range %p-%p.\n", base, end);
-++
-++ if (base >= end) return NULL;
-++
-++ area->map_area_start = base;
-++ area->map_area_end = end;
-++
-++ if (top_down)
-++ {
-++ start = ROUND_ADDR( end - size, granularity_mask );
-++ if (start >= end || start < base)
-++ return NULL;
-++ }
-++ else
-++ {
-++ start = ROUND_ADDR( base + granularity_mask, granularity_mask );
-++ if (!start || start >= end || (char *)end - (char *)start < size)
-++ return NULL;
-++ }
-++
-++ mmap_enum_reserved_areas( alloc_area_in_reserved_or_between_callback, area, top_down );
-++ if (area->result)
-++ return area->result;
-++
-++ if (top_down)
-++ {
-++ start = ROUND_ADDR( area->map_area_end - size, granularity_mask );
-++ if (start >= area->map_area_end || start < area->map_area_start)
-++ return NULL;
-++
-++ return try_map_free_area( area->map_area_start, start + size, area->step,
-++ start, size, unix_prot );
-++ }
-++ else
-++ {
-++ start = ROUND_ADDR( area->map_area_start + granularity_mask, granularity_mask );
-++ if (!start || start >= area->map_area_end
-++ || area->map_area_end - start < size)
-++ return NULL;
-++
-++ return try_map_free_area( start, area->map_area_end, area->step,
-++ start, size, unix_prot );
-++ }
-++}
-++
- +static void *alloc_free_area(void *limit, size_t size, BOOL top_down, int unix_prot)
- +{
- + struct range_entry *range, *ranges_start, *ranges_end;
-++ char *reserve_start, *reserve_end;
- + struct area_alloc_reserved area;
--+ char *start, *base, *end;
-++ char *base, *end;
- + int ranges_inc;
- +
- + TRACE("limit %p, size %p, top_down %#x.\n", limit, (void *)size, top_down);
-@@ -331,6 +382,9 @@ index 720d45ecb9f..e323f4290bf 100644
- + area.top_down = top_down;
- + area.unix_prot = unix_prot;
- +
-++ reserve_start = ROUND_ADDR((char *)preload_reserve_start, granularity_mask);
-++ reserve_end = ROUND_ADDR((char *)preload_reserve_end + granularity_mask, granularity_mask);
-++
- + for (range = ranges_start; range != ranges_end; range += ranges_inc)
- + {
- + base = range->base;
-@@ -340,48 +394,27 @@ index 720d45ecb9f..e323f4290bf 100644
- +
- + if (base < (char *)address_space_start) base = (char *)address_space_start;
- + if (end > (char *)limit + granularity_mask + 1) end = (char *)limit + granularity_mask + 1;
--+ if (base >= end) continue;
- +
--+ area.map_area_start = base;
--+ area.map_area_end = end;
--+
--+ if (top_down)
--+ {
--+ start = ROUND_ADDR( (char *)end - size, granularity_mask );
--+ if (start >= end || start < base)
--+ continue;
--+ }
--+ else
-++ if (reserve_end >= base)
- + {
--+ start = ROUND_ADDR( (char *)base + granularity_mask, granularity_mask );
--+ if (!start || start >= end || (char *)end - (char *)start < size)
--+ continue;
-++ if (reserve_end >= end)
-++ {
-++ if (reserve_start <= base) continue; /* no space in that area */
-++ if (reserve_start < end) end = reserve_start;
-++ }
-++ else if (reserve_start <= base) base = reserve_end;
-++ else
-++ {
-++ /* range is split in two by the preloader reservation, try first part */
-++ if ((area.result = alloc_free_area_in_range(&area, base, reserve_start, size, top_down, unix_prot)))
-++ return area.result;
-++ /* then fall through to try second part */
-++ base = reserve_end;
-++ }
- + }
--+ mmap_enum_reserved_areas( alloc_area_in_reserved_or_between_callback, &area, top_down );
--+ if (area.result)
--+ return area.result;
- +
--+ if (top_down)
--+ {
--+ start = ROUND_ADDR( area.map_area_end - size, granularity_mask );
--+ if (start >= area.map_area_end || start < area.map_area_start)
--+ continue;
--+
--+ if ((area.result = try_map_free_area( area.map_area_start, start + size, area.step,
--+ start, size, unix_prot )))
--+ return area.result;
--+ }
--+ else
--+ {
--+ start = ROUND_ADDR( area.map_area_start + granularity_mask, granularity_mask );
--+ if (!start || start >= area.map_area_end
--+ || area.map_area_end - start < size)
--+ continue;
--+
--+ if ((area.result = try_map_free_area( start, area.map_area_end, area.step,
--+ start, size, unix_prot )))
--+ return area.result;
--+ }
-++ if ((area.result = alloc_free_area_in_range(&area, base, end, size, top_down, unix_prot)))
-++ return area.result;
- + }
- + return NULL;
- +}
-@@ -389,7 +422,7 @@ index 720d45ecb9f..e323f4290bf 100644
- /***********************************************************************
- * map_fixed_area
- *
--@@ -1722,11 +1813,15 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
-+@@ -1782,11 +1906,15 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
- alloc.size = size;
- alloc.top_down = top_down;
- alloc.limit = (void*)(get_zero_bits_64_mask( zero_bits_64 ) & (UINT_PTR)user_space_limit);
-@@ -408,7 +441,7 @@ index 720d45ecb9f..e323f4290bf 100644
- }
-
- if (mmap_enum_reserved_areas( alloc_reserved_area_callback, &alloc, top_down ))
--@@ -1738,15 +1833,6 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
-+@@ -1798,15 +1926,6 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
- goto done;
- }
-
-@@ -424,7 +457,15 @@ index 720d45ecb9f..e323f4290bf 100644
- view_size = size + granularity_mask + 1;
-
- for (;;)
--@@ -2466,10 +2552,14 @@ void virtual_init(void)
-+@@ -2500,6 +2619,7 @@ void virtual_init(void)
-+ if (preload_reserve_start)
-+ address_space_start = min( address_space_start, preload_reserve_start );
-+ }
-++ TRACE("preload reserve %p-%p.\n", preload_reserve_start, preload_reserve_end);
-+ }
-+
-+ size = ROUND_SIZE( 0, sizeof(TEB) ) + max( MINSIGSTKSZ, 8192 );
-+@@ -2528,8 +2648,8 @@ void virtual_init(void)
- pages_vprot = (void *)((char *)alloc_views.base + 2 * view_block_size);
- wine_rb_init( &views_tree, compare_view );
-
-@@ -434,13 +475,7 @@ index 720d45ecb9f..e323f4290bf 100644
- + free_ranges[0].end = address_space_limit;
- free_ranges_end = free_ranges + 1;
-
--+ free_ranges_remove_range(ROUND_ADDR(preload_reserve_start, granularity_mask),
--+ ROUND_ADDR((char *)preload_reserve_end + granularity_mask,
--+ granularity_mask), preload_reserve_start);
--+
- /* make the DOS area accessible (except the low 64K) to hide bugs in broken apps like Excel 2003 */
-- size = (char *)address_space_start - (char *)0x10000;
-- if (size && mmap_is_in_reserved_area( (void*)0x10000, size ) == 1)
- --
- 2.26.2
-
-diff --git a/patches/ntdll-ForceBottomUpAlloc/0006-ntdll-Permanently-exclude-natively-mapped-areas-from.patch b/patches/ntdll-ForceBottomUpAlloc/0006-ntdll-Permanently-exclude-natively-mapped-areas-from.patch
-index 8cf896f8a..9bb16bdfc 100644
---- a/patches/ntdll-ForceBottomUpAlloc/0006-ntdll-Permanently-exclude-natively-mapped-areas-from.patch
-+++ b/patches/ntdll-ForceBottomUpAlloc/0006-ntdll-Permanently-exclude-natively-mapped-areas-from.patch
-@@ -1,18 +1,18 @@
--From 81a8c626f834f3b2195980e84e2f5fc0a5b1e0e6 Mon Sep 17 00:00:00 2001
-+From ac8fd6b34fa269ce840566055cc1c0b6c023516e Mon Sep 17 00:00:00 2001
- From: Paul Gofman <pgofman(a)codeweavers.com>
- Date: Tue, 2 Jun 2020 21:06:33 +0300
--Subject: [PATCH] ntdll: Permanently exclude natively mapped areas from free
-- areas list.
-+Subject: [PATCH 6/6] ntdll: Permanently exclude natively mapped areas from
-+ free areas list.
-
- ---
- dlls/ntdll/unix/virtual.c | 25 +++++++++++++++++++++++++
- 1 file changed, 25 insertions(+)
-
- diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
--index e323f4290bf..778f5d8c3b8 100644
-+index 7f194effcaa..0e2e20396f3 100644
- --- a/dlls/ntdll/unix/virtual.c
- +++ b/dlls/ntdll/unix/virtual.c
--@@ -123,6 +123,9 @@ static const BYTE VIRTUAL_Win32Flags[16] =
-+@@ -124,6 +124,9 @@ static const BYTE VIRTUAL_Win32Flags[16] =
-
- static struct wine_rb_tree views_tree;
-
-@@ -22,7 +22,7 @@ index e323f4290bf..778f5d8c3b8 100644
- static RTL_CRITICAL_SECTION csVirtual;
- static RTL_CRITICAL_SECTION_DEBUG critsect_debug =
- {
--@@ -1004,6 +1007,13 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
-+@@ -1051,6 +1054,13 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
- if (ptr != (void *)-1)
- munmap( ptr, size );
-
-@@ -36,7 +36,7 @@ index e323f4290bf..778f5d8c3b8 100644
- if ((step > 0 && (char *)end - (char *)start < step) ||
- (step < 0 && (char *)start - (char *)base < -step) ||
- step == 0)
--@@ -1817,9 +1827,24 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
-+@@ -1910,9 +1920,24 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
-
- if (is_win64 || zero_bits_64)
- {
diff --git a/wine.spec b/wine.spec
index 3091bf4..ac5168d 100644
--- a/wine.spec
+++ b/wine.spec
@@ -3,7 +3,7 @@
%global no64bit 0
%global winegecko 2.47.1
-%global winemono 5.0.0
+%global winemono 5.1.0
#global _default_patch_fuzz 2
%ifarch %{ix86} x86_64
%global wineacm acm
@@ -44,8 +44,8 @@
%endif
Name: wine
-Version: 5.10
-Release: 2%{?dist}
+Version: 5.12
+Release: 1%{?dist}
Summary: A compatibility layer for windows applications
License: LGPLv2+
@@ -75,7 +75,6 @@ Source109: wine-oleview.desktop
Source150: wine.appdata.xml
# wine bugs
-Patch100: wine-staging-5.10-ntdll.patch
# desktop dir
Source200: wine.menu
@@ -96,7 +95,7 @@ Patch511: wine-cjk.patch
%if 0%{?wine_staging}
# wine-staging patches
# pulseaudio-patch is covered by that patch-set, too.
-Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/...
+Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.1.tar.gz...
%endif
%if !%{?no64bit}
@@ -693,16 +692,8 @@ This package adds the opencl driver for wine.
%if 0%{?wine_staging}
# setup and apply wine-staging patches
gzip -dc %{SOURCE900} | tar -xf - --strip-components=1
-%patch100 -p1 -b.ntdll
-%ifarch %{arm} aarch64
-patches/patchinstall.sh DESTDIR="`pwd`" --all \
- -W ntdll-NtContinue \
- -W ntdll-Syscall_Emulation \
- -W winebuild-Fake_Dlls
-%else
patches/patchinstall.sh DESTDIR="`pwd`" --all
-%endif
# fix parallelized build
sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in
@@ -1571,7 +1562,7 @@ fi
%{_libdir}/wine/dxgkrnl.%{winesys}
%{_libdir}/wine/dxgmms1.%{winesys}
%endif
-%{_libdir}/wine/dxva2.dll.so
+%{_libdir}/wine/dxva2.%{winedll}
%{_libdir}/wine/esent.%{winedll}
%{_libdir}/wine/evr.%{winedll}
%{_libdir}/wine/explorerframe.%{winedll}
@@ -1804,7 +1795,7 @@ fi
%{_libdir}/wine/npmshtml.%{winedll}
%{_libdir}/wine/npptools.%{winedll}
%{_libdir}/wine/ntdll.so
-%{_libdir}/wine/ntdll.dll.so
+%{_libdir}/wine/ntdll.%{winedll}
%{_libdir}/wine/ntdsapi.%{winedll}
%{_libdir}/wine/ntprint.%{winedll}
%if 0%{?wine_staging}
@@ -2343,6 +2334,9 @@ fi
%endif
%changelog
+* Tue Jul 14 2020 Michael Cronenworth <mike(a)cchtml.com> 5.12-1
+- version update
+
* Wed Jul 01 2020 Jeff Law <law(a)redhat.com> 5.10-2
- Disable LTO
commit 1924618e9789b72a28c135e391d7fc63abb2b103
Author: Jeff Law <law(a)redhat.com>
Date: Wed Jul 1 12:29:15 2020 -0600
Disable LTO
diff --git a/wine.spec b/wine.spec
index cd74653..3091bf4 100644
--- a/wine.spec
+++ b/wine.spec
@@ -45,7 +45,7 @@
Name: wine
Version: 5.10
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A compatibility layer for windows applications
License: LGPLv2+
@@ -711,6 +711,13 @@ sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in
# 0%%{?wine_staging}
%build
+# This package uses top level ASM constructs which are incompatible with LTO.
+# Top level ASMs are often used to implement symbol versioning. gcc-10
+# introduces a new mechanism for symbol versioning which works with LTO.
+# Converting packages to use that mechanism instead of toplevel ASMs is
+# recommended.
+# Disable LTO
+%define _lto_cflags %{nil}
# disable fortify as it breaks wine
# http://bugs.winehq.org/show_bug.cgi?id=24606
@@ -2336,6 +2343,9 @@ fi
%endif
%changelog
+* Wed Jul 01 2020 Jeff Law <law(a)redhat.com> 5.10-2
+- Disable LTO
+
* Sun Jun 07 2020 Michael Cronenworth <mike(a)cchtml.com> 5.10-1
- version update
3 years, 11 months
Architecture specific change in rpms/dotnet3.1.git
by githook-noreply@fedoraproject.org
The package rpms/dotnet3.1.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/dotnet3.1.git/commit/?id=a7d72e01...
https://src.fedoraproject.org/cgit/rpms/dotnet3.1.git/commit/?id=8dd19360...
https://src.fedoraproject.org/cgit/rpms/dotnet3.1.git/commit/?id=eda20834...
https://src.fedoraproject.org/cgit/rpms/dotnet3.1.git/commit/?id=7a263992...
https://src.fedoraproject.org/cgit/rpms/dotnet3.1.git/commit/?id=72b578e3...
https://src.fedoraproject.org/cgit/rpms/dotnet3.1.git/commit/?id=590948ae...
https://src.fedoraproject.org/cgit/rpms/dotnet3.1.git/commit/?id=13a1917b...
https://src.fedoraproject.org/cgit/rpms/dotnet3.1.git/commit/?id=645cac1a....
Change:
+ExclusiveArch: x86_64
+%ifnarch x86_64
-%ifarch x86_64
+%ifarch aarch64
+%ifarch x86_64
-%ifarch x86_64
+%ifarch x86_64
+%ifarch aarch64
Thanks.
Full change:
============
commit a7d72e0115680c518d83cf2a78cacee82fd2002b
Author: Omair Majid <omajid(a)redhat.com>
Date: Mon Jul 13 15:48:20 2020 -0400
Some cleanup before merging Rawhide to F32
- Use conditionals to express that aarch64 is available only on Rawhide,
not on older distributions.
- Don't include the SDK used to build the source-tarball, we will delete
it and use the installed in the buildroot anyway. This saves about
~100MB in the tarball size.
diff --git a/build-dotnet-tarball b/build-dotnet-tarball
index 9301deb..9388fbf 100755
--- a/build-dotnet-tarball
+++ b/build-dotnet-tarball
@@ -117,6 +117,7 @@ pushd "${tarball_name}"
# Remove files with funny licenses, crypto implementations and other
# not-very-useful artifacts to reduce tarball size
find -type f -iname '*.tar.gz' -delete
+rm -rf .dotnet
rm -r src/aspnetcore.*/src/SignalR/clients/java/signalr/gradle*
find src/aspnetcore.*/src -type d -name samples -print0 | xargs -0 rm -r
rm -r src/NuGet.Client.*/test/EndToEnd/ProjectTemplates/NetCoreWebApplication1.0.zip
diff --git a/dotnet3.1.spec b/dotnet3.1.spec
index 12441eb..c1a054c 100644
--- a/dotnet3.1.spec
+++ b/dotnet3.1.spec
@@ -93,7 +93,11 @@ Patch300: core-setup-hardening-flags.patch
# Disable telemetry by default; make it opt-in
Patch500: cli-telemetry-optout.patch
+%if 0%{?fedora} > 32 || 0%{?rhel} > 8
ExclusiveArch: aarch64 x86_64
+%else
+ExclusiveArch: x86_64
+%endif
BuildRequires: clang
BuildRequires: cmake
commit 5b2514cc6ac9327e7577e4d103faeb4bc024d028
Author: Omair Majid <omajid(a)redhat.com>
Date: Sat Jun 27 19:06:25 2020 -0400
Handle bundling libunwind correctly
The libunwind bundling logic is now in repos/coreclr.common.props, not
in repos/coreclr.proj.
diff --git a/dotnet3.1.spec b/dotnet3.1.spec
index 78c590e..12441eb 100644
--- a/dotnet3.1.spec
+++ b/dotnet3.1.spec
@@ -369,11 +369,11 @@ pushd src/cli.*
popd
# If CLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE is misisng, add it back
-grep CLR_CMAKE_USE_SYSTEM_LIBUNWIND repos/coreclr.proj || \
- sed -i 's|\$(BuildArguments) </BuildArguments>|$(BuildArguments) cmakeargs -DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE</BuildArguments>|' repos/coreclr.proj
+grep CLR_CMAKE_USE_SYSTEM_LIBUNWIND repos/coreclr.common.props || \
+ sed -i 's|\$(BuildArguments) </BuildArguments>|$(BuildArguments) cmakeargs -DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE</BuildArguments>|' repos/coreclr.common.props
%if %{use_bundled_libunwind}
-sed -i 's|-DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE|-DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=FALSE|' repos/coreclr.proj
+sed -i 's|-DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE|-DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=FALSE|' repos/coreclr.common.props
%endif
%ifnarch x86_64
commit cda51ee871c36b36f3608799fed17828237e8ae1
Author: Omair Majid <omajid(a)redhat.com>
Date: Sat Jun 27 17:32:06 2020 -0400
Fix directory creation for PackageVersions.props
diff --git a/dotnet3.1.spec b/dotnet3.1.spec
index c3655fd..78c590e 100644
--- a/dotnet3.1.spec
+++ b/dotnet3.1.spec
@@ -377,6 +377,7 @@ sed -i 's|-DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE|-DCLR_CMAKE_USE_SYSTEM_LIBUNWIND
%endif
%ifnarch x86_64
+mkdir -p artifacts/obj/%{runtime_arch}/Release
cp artifacts/obj/x64/Release/PackageVersions.props artifacts/obj/%{runtime_arch}/Release/PackageVersions.props
%endif
commit 8dd1936016bf6e1806720b65f4968d7834aaf8b9
Author: Omair Majid <omajid(a)redhat.com>
Date: Sat Jun 27 17:12:45 2020 -0400
Fix PackageVersions.props on non-x86_64 platforms
diff --git a/dotnet3.1.spec b/dotnet3.1.spec
index b9007b0..c3655fd 100644
--- a/dotnet3.1.spec
+++ b/dotnet3.1.spec
@@ -376,6 +376,10 @@ grep CLR_CMAKE_USE_SYSTEM_LIBUNWIND repos/coreclr.proj || \
sed -i 's|-DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE|-DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=FALSE|' repos/coreclr.proj
%endif
+%ifnarch x86_64
+cp artifacts/obj/x64/Release/PackageVersions.props artifacts/obj/%{runtime_arch}/Release/PackageVersions.props
+%endif
+
cat source-build-info.txt
find -iname 'nuget.config' -exec echo {}: \; -exec cat {} \; -exec echo \;
commit eda20834e375677587244cd00b6a0ff0abed092f
Author: Omair Majid <omajid(a)redhat.com>
Date: Sat Jun 27 13:57:50 2020 -0400
Disable bootstrap
diff --git a/dotnet3.1.spec b/dotnet3.1.spec
index d2f4385..b9007b0 100644
--- a/dotnet3.1.spec
+++ b/dotnet3.1.spec
@@ -1,4 +1,4 @@
-%bcond_without bootstrap
+%bcond_with bootstrap
# Avoid provides/requires from private libraries
%global privlibs libhostfxr
@@ -62,7 +62,7 @@
Name: dotnet3.1
Version: %{sdk_rpm_version}
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: .NET Core Runtime and SDK
License: MIT and ASL 2.0 and BSD and LGPLv2+ and CC-BY and CC0 and MS-PL and EPL-1.0 and GPL+ and GPLv2 and ISC and OFL and zlib
URL: https://github.com/dotnet/
@@ -72,8 +72,6 @@ URL: https://github.com/dotnet/
Source0: dotnet-v%{src_version}-SDK.tar.gz
Source1: check-debug-symbols.py
Source2: dotnet.sh.in
-Source4: dotnet-v%{src_version}-SDK-arm64.tar.gz
-Source5: dotnet-v%{src_version}-SDK-x64.tar.gz
# Fix building with our additional CFLAGS/CXXFLAGS/LDFLAGS
Patch100: corefx-optflags-support.patch
@@ -324,15 +322,7 @@ These are not meant for general use.
%prep
-%ifarch aarch64
-%setup -T -b 4 -q -n dotnet-v%{src_version}-SDK
-%endif
-
-%ifarch x86_64
-%setup -T -b 5 -q -n dotnet-v%{src_version}-SDK
-%endif
-
-# %%setup -q -n dotnet-v%%{src_version}-SDK
+%setup -q -n dotnet-v%{src_version}-SDK
%if %{without bootstrap}
# Remove all prebuilts
@@ -526,6 +516,9 @@ echo "Testing build results for debug symbols..."
%changelog
+* Sat Jun 27 2020 Omair Majid <omajid(a)redhat.com> - 3.1.105-4
+- Disable bootstrap
+
* Fri Jun 26 2020 Omair Majid <omajid(a)redhat.com> - 3.1.105-3
- Re-bootstrap aarch64
diff --git a/sources b/sources
index 3bc6f5a..a777f1d 100644
--- a/sources
+++ b/sources
@@ -1,3 +1 @@
SHA512 (dotnet-v3.1.105-SDK.tar.gz) = c29caae388ace246af3003d8dd27b6e8255531970629b28b560c4ab2b580cf811f29abacb599f03e551e0a23842d7844226a19bb48ac51ba6fe8c934336fd5c0
-SHA512 (dotnet-v3.1.105-SDK-arm64.tar.gz) = b58701ef7c67aa06a19fc4d98588b1c58a024208142da5e4ba9422684159a7a2488340e8f1aed1d20168e55a77251ce179925720c8f8838e69145e5576433a92
-SHA512 (dotnet-v3.1.105-SDK-x64.tar.gz) = 17ce5e4d139f70cdb71615e057d9b698c255e2fb5e22df789570b5b8e2a94d49f8c52f97a5ee4bcfad54cee3fdc55e6c554090ac8b78b6ca5c8e4668bb4872f3
commit a8f91c9edd5bda87a94c889302e3aed513c5a28c
Author: Omair Majid <omajid(a)redhat.com>
Date: Fri Jun 26 23:37:29 2020 -0400
Use an aarch64 tarball generated on Fedora 32
diff --git a/build-bootstrap-tarball b/build-bootstrap-tarball
index 1ce0468..d3f3547 100755
--- a/build-bootstrap-tarball
+++ b/build-bootstrap-tarball
@@ -13,6 +13,23 @@ elif [[ $arch == "aarch64" ]]; then
arch=arm64
fi
+if rpm -qa | grep libunwind; then
+ echo "error: libunwind is installed. Not a good idea for bootstrapping."
+ exit 1
+fi
+if rpm -qa | grep dotnet ; then
+ echo "error: dotnet is installed. Not a good idea for bootstrapping."
+ exit 1
+fi
+if [ -d /usr/lib/dotnet ] || [ -d /usr/lib64/dotnet ] || [ -d /usr/share/dotnet ] ; then
+ echo "error: one of /usr/lib/dotnet /usr/lib64/dotnet or /usr/share/dotnet/ exists. Not a good idea for bootstrapping."
+ exit 1
+fi
+if command -v dotnet ; then
+ echo "error: dotnet is in $PATH. Not a good idea for bootstrapping."
+ exit 1
+fi
+
if [ ! -d dotnet-source-build-tarball ]; then
if [ ! -d source-build ]; then
git clone https://github.com/dotnet/source-build
diff --git a/sources b/sources
index 26e153f..3bc6f5a 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (dotnet-v3.1.105-SDK.tar.gz) = c29caae388ace246af3003d8dd27b6e8255531970629b28b560c4ab2b580cf811f29abacb599f03e551e0a23842d7844226a19bb48ac51ba6fe8c934336fd5c0
-SHA512 (dotnet-v3.1.105-SDK-arm64.tar.gz) = 928bf589d993a1b733d969043126d972653506e8d38ea66b20670bdf88f4ef0957f80b200afaffd85a2b6a8858e15a42f921ff3ceff7f2aa0c47316fff98fac1
+SHA512 (dotnet-v3.1.105-SDK-arm64.tar.gz) = b58701ef7c67aa06a19fc4d98588b1c58a024208142da5e4ba9422684159a7a2488340e8f1aed1d20168e55a77251ce179925720c8f8838e69145e5576433a92
SHA512 (dotnet-v3.1.105-SDK-x64.tar.gz) = 17ce5e4d139f70cdb71615e057d9b698c255e2fb5e22df789570b5b8e2a94d49f8c52f97a5ee4bcfad54cee3fdc55e6c554090ac8b78b6ca5c8e4668bb4872f3
commit 7a263992b7fd6f8140aca09fb38eefd86c5beeb5
Author: Omair Majid <omajid(a)redhat.com>
Date: Fri Jun 26 12:28:10 2020 -0400
Re-bootstrap for aarch64
diff --git a/build-bootstrap-tarball b/build-bootstrap-tarball
new file mode 100755
index 0000000..1ce0468
--- /dev/null
+++ b/build-bootstrap-tarball
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+set -euo pipefail
+
+set -x
+
+sdk_version=3.1.105
+
+arch=$(uname -m)
+if [[ $arch == "x86_64" ]]; then
+ arch=x64
+elif [[ $arch == "aarch64" ]]; then
+ arch=arm64
+fi
+
+if [ ! -d dotnet-source-build-tarball ]; then
+ if [ ! -d source-build ]; then
+ git clone https://github.com/dotnet/source-build
+ fi
+ pushd source-build
+ sed -i -e 's|cmakeargs -DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE||' repos/coreclr.common.props
+ git clean -xdf
+ ./build-source-tarball.sh ../dotnet-source-build-tarball/ -- -p:DownloadSourceBuildReferencePackagesTimeoutSeconds=100000
+ popd
+fi
+
+rm -rf dotnet-v${sdk_version}-SDK dotnet-v${sdk_version}-SDK.tar.gz
+
+cp -a dotnet-source-build-tarball dotnet-v${sdk_version}-SDK
+cp -a source-build/artifacts/$arch/Release/Private.SourceBuilt.Artifacts.*.tar.gz dotnet-v${sdk_version}-SDK/packages/archive/Private.SourceBuilt.Artifacts.*.tar.gz
+
+tar czf dotnet-v${sdk_version}-SDK-$arch.tar.gz dotnet-v${sdk_version}-SDK
+
diff --git a/dotnet3.1.spec b/dotnet3.1.spec
index 2ab31b2..d2f4385 100644
--- a/dotnet3.1.spec
+++ b/dotnet3.1.spec
@@ -39,6 +39,10 @@
%global use_bundled_libunwind 1
%endif
+%ifarch aarch64
+%global use_bundled_libunwind 1
+%endif
+
%ifarch x86_64
%global runtime_arch x64
%endif
@@ -58,7 +62,7 @@
Name: dotnet3.1
Version: %{sdk_rpm_version}
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: .NET Core Runtime and SDK
License: MIT and ASL 2.0 and BSD and LGPLv2+ and CC-BY and CC0 and MS-PL and EPL-1.0 and GPL+ and GPLv2 and ISC and OFL and zlib
URL: https://github.com/dotnet/
@@ -522,6 +526,12 @@ echo "Testing build results for debug symbols..."
%changelog
+* Fri Jun 26 2020 Omair Majid <omajid(a)redhat.com> - 3.1.105-3
+- Re-bootstrap aarch64
+
+* Fri Jun 19 2020 Omair Majid <omajid(a)redhat.com> - 3.1.105-3
+- Disable bootstrap
+
* Thu Jun 18 2020 Omair Majid <omajid(a)redhat.com> - 3.1.105-1
- Bootstrap aarch64
diff --git a/sources b/sources
index 6e94189..26e153f 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (dotnet-v3.1.105-SDK.tar.gz) = c29caae388ace246af3003d8dd27b6e8255531970629b28b560c4ab2b580cf811f29abacb599f03e551e0a23842d7844226a19bb48ac51ba6fe8c934336fd5c0
-SHA512 (dotnet-v3.1.105-SDK-arm64.tar.gz) = 133c7d4ea14fd8adc8910049d43446152d2cac0edbb0e0e2cbf60af2524475417e80a1889dfd070166a0930ef31ffc4bed1eae3a7ffd9f3f67f0003ae049ad63
+SHA512 (dotnet-v3.1.105-SDK-arm64.tar.gz) = 928bf589d993a1b733d969043126d972653506e8d38ea66b20670bdf88f4ef0957f80b200afaffd85a2b6a8858e15a42f921ff3ceff7f2aa0c47316fff98fac1
SHA512 (dotnet-v3.1.105-SDK-x64.tar.gz) = 17ce5e4d139f70cdb71615e057d9b698c255e2fb5e22df789570b5b8e2a94d49f8c52f97a5ee4bcfad54cee3fdc55e6c554090ac8b78b6ca5c8e4668bb4872f3
commit 72b578e3fca6a5360dc7ad1c4f7ffa0d0ea1c1c5
Author: Omair Majid <omajid(a)redhat.com>
Date: Fri Jun 26 11:36:42 2020 -0400
Revert "Disable bootstrap"
This reverts commit 590948ae871a5f8e08e00aac7aa150adc926e416.
The bootstrapped build doesn't work. Lets try re-bootstrapping to work
around it.
diff --git a/dotnet3.1.spec b/dotnet3.1.spec
index 6c6ef8f..2ab31b2 100644
--- a/dotnet3.1.spec
+++ b/dotnet3.1.spec
@@ -1,4 +1,4 @@
-%bcond_with bootstrap
+%bcond_without bootstrap
# Avoid provides/requires from private libraries
%global privlibs libhostfxr
@@ -58,7 +58,7 @@
Name: dotnet3.1
Version: %{sdk_rpm_version}
-Release: 3%{?dist}
+Release: 2%{?dist}
Summary: .NET Core Runtime and SDK
License: MIT and ASL 2.0 and BSD and LGPLv2+ and CC-BY and CC0 and MS-PL and EPL-1.0 and GPL+ and GPLv2 and ISC and OFL and zlib
URL: https://github.com/dotnet/
@@ -68,6 +68,8 @@ URL: https://github.com/dotnet/
Source0: dotnet-v%{src_version}-SDK.tar.gz
Source1: check-debug-symbols.py
Source2: dotnet.sh.in
+Source4: dotnet-v%{src_version}-SDK-arm64.tar.gz
+Source5: dotnet-v%{src_version}-SDK-x64.tar.gz
# Fix building with our additional CFLAGS/CXXFLAGS/LDFLAGS
Patch100: corefx-optflags-support.patch
@@ -318,7 +320,15 @@ These are not meant for general use.
%prep
-%setup -q -n dotnet-v%{src_version}-SDK
+%ifarch aarch64
+%setup -T -b 4 -q -n dotnet-v%{src_version}-SDK
+%endif
+
+%ifarch x86_64
+%setup -T -b 5 -q -n dotnet-v%{src_version}-SDK
+%endif
+
+# %%setup -q -n dotnet-v%%{src_version}-SDK
%if %{without bootstrap}
# Remove all prebuilts
@@ -512,10 +522,7 @@ echo "Testing build results for debug symbols..."
%changelog
-* Fri Jun 19 2020 Omair Majid <omajid(a)redhat.com> - 3.1.105-3
-- Disable bootstrap
-
-* Thu Jun 18 2020 Omair Majid <omajid(a)redhat.com> - 3.1.105-2
+* Thu Jun 18 2020 Omair Majid <omajid(a)redhat.com> - 3.1.105-1
- Bootstrap aarch64
* Tue Jun 16 2020 Chris Rummel <crummel(a)microsoft.com> - 3.1.105-1
diff --git a/sources b/sources
index a777f1d..6e94189 100644
--- a/sources
+++ b/sources
@@ -1 +1,3 @@
SHA512 (dotnet-v3.1.105-SDK.tar.gz) = c29caae388ace246af3003d8dd27b6e8255531970629b28b560c4ab2b580cf811f29abacb599f03e551e0a23842d7844226a19bb48ac51ba6fe8c934336fd5c0
+SHA512 (dotnet-v3.1.105-SDK-arm64.tar.gz) = 133c7d4ea14fd8adc8910049d43446152d2cac0edbb0e0e2cbf60af2524475417e80a1889dfd070166a0930ef31ffc4bed1eae3a7ffd9f3f67f0003ae049ad63
+SHA512 (dotnet-v3.1.105-SDK-x64.tar.gz) = 17ce5e4d139f70cdb71615e057d9b698c255e2fb5e22df789570b5b8e2a94d49f8c52f97a5ee4bcfad54cee3fdc55e6c554090ac8b78b6ca5c8e4668bb4872f3
commit 590948ae871a5f8e08e00aac7aa150adc926e416
Author: Omair Majid <omajid(a)redhat.com>
Date: Fri Jun 19 13:24:23 2020 -0400
Disable bootstrap
diff --git a/dotnet3.1.spec b/dotnet3.1.spec
index 2ab31b2..6c6ef8f 100644
--- a/dotnet3.1.spec
+++ b/dotnet3.1.spec
@@ -1,4 +1,4 @@
-%bcond_without bootstrap
+%bcond_with bootstrap
# Avoid provides/requires from private libraries
%global privlibs libhostfxr
@@ -58,7 +58,7 @@
Name: dotnet3.1
Version: %{sdk_rpm_version}
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: .NET Core Runtime and SDK
License: MIT and ASL 2.0 and BSD and LGPLv2+ and CC-BY and CC0 and MS-PL and EPL-1.0 and GPL+ and GPLv2 and ISC and OFL and zlib
URL: https://github.com/dotnet/
@@ -68,8 +68,6 @@ URL: https://github.com/dotnet/
Source0: dotnet-v%{src_version}-SDK.tar.gz
Source1: check-debug-symbols.py
Source2: dotnet.sh.in
-Source4: dotnet-v%{src_version}-SDK-arm64.tar.gz
-Source5: dotnet-v%{src_version}-SDK-x64.tar.gz
# Fix building with our additional CFLAGS/CXXFLAGS/LDFLAGS
Patch100: corefx-optflags-support.patch
@@ -320,15 +318,7 @@ These are not meant for general use.
%prep
-%ifarch aarch64
-%setup -T -b 4 -q -n dotnet-v%{src_version}-SDK
-%endif
-
-%ifarch x86_64
-%setup -T -b 5 -q -n dotnet-v%{src_version}-SDK
-%endif
-
-# %%setup -q -n dotnet-v%%{src_version}-SDK
+%setup -q -n dotnet-v%{src_version}-SDK
%if %{without bootstrap}
# Remove all prebuilts
@@ -522,7 +512,10 @@ echo "Testing build results for debug symbols..."
%changelog
-* Thu Jun 18 2020 Omair Majid <omajid(a)redhat.com> - 3.1.105-1
+* Fri Jun 19 2020 Omair Majid <omajid(a)redhat.com> - 3.1.105-3
+- Disable bootstrap
+
+* Thu Jun 18 2020 Omair Majid <omajid(a)redhat.com> - 3.1.105-2
- Bootstrap aarch64
* Tue Jun 16 2020 Chris Rummel <crummel(a)microsoft.com> - 3.1.105-1
diff --git a/sources b/sources
index 6e94189..a777f1d 100644
--- a/sources
+++ b/sources
@@ -1,3 +1 @@
SHA512 (dotnet-v3.1.105-SDK.tar.gz) = c29caae388ace246af3003d8dd27b6e8255531970629b28b560c4ab2b580cf811f29abacb599f03e551e0a23842d7844226a19bb48ac51ba6fe8c934336fd5c0
-SHA512 (dotnet-v3.1.105-SDK-arm64.tar.gz) = 133c7d4ea14fd8adc8910049d43446152d2cac0edbb0e0e2cbf60af2524475417e80a1889dfd070166a0930ef31ffc4bed1eae3a7ffd9f3f67f0003ae049ad63
-SHA512 (dotnet-v3.1.105-SDK-x64.tar.gz) = 17ce5e4d139f70cdb71615e057d9b698c255e2fb5e22df789570b5b8e2a94d49f8c52f97a5ee4bcfad54cee3fdc55e6c554090ac8b78b6ca5c8e4668bb4872f3
commit fd355982bd7b2e59e90d5590beb2dba52d5cc8fb
Author: Omair Majid <omajid(a)redhat.com>
Date: Thu Jun 18 22:58:39 2020 -0400
Fix typo
diff --git a/dotnet3.1.spec b/dotnet3.1.spec
index 938960b..2ab31b2 100644
--- a/dotnet3.1.spec
+++ b/dotnet3.1.spec
@@ -322,10 +322,12 @@ These are not meant for general use.
%prep
%ifarch aarch64
%setup -T -b 4 -q -n dotnet-v%{src_version}-SDK
-%endf
+%endif
+
%ifarch x86_64
%setup -T -b 5 -q -n dotnet-v%{src_version}-SDK
%endif
+
# %%setup -q -n dotnet-v%%{src_version}-SDK
%if %{without bootstrap}
commit 13a1917bc77edf61c31d8f866aee8d8d60ab3275
Author: Omair Majid <omajid(a)redhat.com>
Date: Thu Jun 18 22:56:09 2020 -0400
Enable bootstrap for x86_64 as well
It seems Fedora packages need to be bootstrapped for all architectures,
or none. Trying to bootstrap for only one architecture leads to errors
from koji:
GenericError: srpm mismatch for .. : dotnet3.1-3.1.105-2.fc33~bootstrap.src.rpm (expected dotnet3.1-3.1.105-2.fc33.src.rpm)
diff --git a/.gitignore b/.gitignore
index c7fa2f2..5da2a2d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@
/dotnet-v3.1.104-SDK.tar.gz
/dotnet-v3.1.105-SDK.tar.gz
/dotnet-v3.1.105-SDK-arm64.tar.gz
+/dotnet-v3.1.105-SDK-x64.tar.gz
diff --git a/dotnet3.1.spec b/dotnet3.1.spec
index 6dd12b0..938960b 100644
--- a/dotnet3.1.spec
+++ b/dotnet3.1.spec
@@ -1,9 +1,4 @@
-
-%ifarch aarch64
%bcond_without bootstrap
-%else
-%bcond_with bootstrap
-%endif
# Avoid provides/requires from private libraries
%global privlibs libhostfxr
@@ -74,6 +69,7 @@ Source0: dotnet-v%{src_version}-SDK.tar.gz
Source1: check-debug-symbols.py
Source2: dotnet.sh.in
Source4: dotnet-v%{src_version}-SDK-arm64.tar.gz
+Source5: dotnet-v%{src_version}-SDK-x64.tar.gz
# Fix building with our additional CFLAGS/CXXFLAGS/LDFLAGS
Patch100: corefx-optflags-support.patch
@@ -326,9 +322,11 @@ These are not meant for general use.
%prep
%ifarch aarch64
%setup -T -b 4 -q -n dotnet-v%{src_version}-SDK
-%else
-%setup -q -n dotnet-v%{src_version}-SDK
+%endf
+%ifarch x86_64
+%setup -T -b 5 -q -n dotnet-v%{src_version}-SDK
%endif
+# %%setup -q -n dotnet-v%%{src_version}-SDK
%if %{without bootstrap}
# Remove all prebuilts
diff --git a/sources b/sources
index 6ab36d6..6e94189 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,3 @@
SHA512 (dotnet-v3.1.105-SDK.tar.gz) = c29caae388ace246af3003d8dd27b6e8255531970629b28b560c4ab2b580cf811f29abacb599f03e551e0a23842d7844226a19bb48ac51ba6fe8c934336fd5c0
SHA512 (dotnet-v3.1.105-SDK-arm64.tar.gz) = 133c7d4ea14fd8adc8910049d43446152d2cac0edbb0e0e2cbf60af2524475417e80a1889dfd070166a0930ef31ffc4bed1eae3a7ffd9f3f67f0003ae049ad63
+SHA512 (dotnet-v3.1.105-SDK-x64.tar.gz) = 17ce5e4d139f70cdb71615e057d9b698c255e2fb5e22df789570b5b8e2a94d49f8c52f97a5ee4bcfad54cee3fdc55e6c554090ac8b78b6ca5c8e4668bb4872f3
commit 645cac1a1643a8e6f750b818384dc4cc9077b37a
Author: Omair Majid <omajid(a)redhat.com>
Date: Thu Jun 18 00:13:54 2020 -0400
Bootstrap aarch64
diff --git a/.gitignore b/.gitignore
index e29845e..c7fa2f2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@
/dotnet-v3.1.103.2-SDK.tar.gz
/dotnet-v3.1.104-SDK.tar.gz
/dotnet-v3.1.105-SDK.tar.gz
+/dotnet-v3.1.105-SDK-arm64.tar.gz
diff --git a/dotnet3.1.spec b/dotnet3.1.spec
index 57f1ba9..6dd12b0 100644
--- a/dotnet3.1.spec
+++ b/dotnet3.1.spec
@@ -1,4 +1,9 @@
+
+%ifarch aarch64
+%bcond_without bootstrap
+%else
%bcond_with bootstrap
+%endif
# Avoid provides/requires from private libraries
%global privlibs libhostfxr
@@ -58,7 +63,7 @@
Name: dotnet3.1
Version: %{sdk_rpm_version}
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: .NET Core Runtime and SDK
License: MIT and ASL 2.0 and BSD and LGPLv2+ and CC-BY and CC0 and MS-PL and EPL-1.0 and GPL+ and GPLv2 and ISC and OFL and zlib
URL: https://github.com/dotnet/
@@ -68,6 +73,7 @@ URL: https://github.com/dotnet/
Source0: dotnet-v%{src_version}-SDK.tar.gz
Source1: check-debug-symbols.py
Source2: dotnet.sh.in
+Source4: dotnet-v%{src_version}-SDK-arm64.tar.gz
# Fix building with our additional CFLAGS/CXXFLAGS/LDFLAGS
Patch100: corefx-optflags-support.patch
@@ -89,7 +95,7 @@ Patch300: core-setup-hardening-flags.patch
# Disable telemetry by default; make it opt-in
Patch500: cli-telemetry-optout.patch
-ExclusiveArch: x86_64
+ExclusiveArch: aarch64 x86_64
BuildRequires: clang
BuildRequires: cmake
@@ -318,7 +324,11 @@ These are not meant for general use.
%prep
+%ifarch aarch64
+%setup -T -b 4 -q -n dotnet-v%{src_version}-SDK
+%else
%setup -q -n dotnet-v%{src_version}-SDK
+%endif
%if %{without bootstrap}
# Remove all prebuilts
@@ -512,6 +522,9 @@ echo "Testing build results for debug symbols..."
%changelog
+* Thu Jun 18 2020 Omair Majid <omajid(a)redhat.com> - 3.1.105-1
+- Bootstrap aarch64
+
* Tue Jun 16 2020 Chris Rummel <crummel(a)microsoft.com> - 3.1.105-1
- Update to .NET Core Runtime 3.1.5 and SDK 3.1.105
diff --git a/sources b/sources
index a777f1d..6ab36d6 100644
--- a/sources
+++ b/sources
@@ -1 +1,2 @@
SHA512 (dotnet-v3.1.105-SDK.tar.gz) = c29caae388ace246af3003d8dd27b6e8255531970629b28b560c4ab2b580cf811f29abacb599f03e551e0a23842d7844226a19bb48ac51ba6fe8c934336fd5c0
+SHA512 (dotnet-v3.1.105-SDK-arm64.tar.gz) = 133c7d4ea14fd8adc8910049d43446152d2cac0edbb0e0e2cbf60af2524475417e80a1889dfd070166a0930ef31ffc4bed1eae3a7ffd9f3f67f0003ae049ad63
3 years, 11 months
Architecture specific change in rpms/dotnet3.1.git
by githook-noreply@fedoraproject.org
The package rpms/dotnet3.1.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/dotnet3.1.git/commit/?id=a7d72e01....
Change:
+ExclusiveArch: x86_64
Thanks.
Full change:
============
commit a7d72e0115680c518d83cf2a78cacee82fd2002b
Author: Omair Majid <omajid(a)redhat.com>
Date: Mon Jul 13 15:48:20 2020 -0400
Some cleanup before merging Rawhide to F32
- Use conditionals to express that aarch64 is available only on Rawhide,
not on older distributions.
- Don't include the SDK used to build the source-tarball, we will delete
it and use the installed in the buildroot anyway. This saves about
~100MB in the tarball size.
diff --git a/build-dotnet-tarball b/build-dotnet-tarball
index 9301deb..9388fbf 100755
--- a/build-dotnet-tarball
+++ b/build-dotnet-tarball
@@ -117,6 +117,7 @@ pushd "${tarball_name}"
# Remove files with funny licenses, crypto implementations and other
# not-very-useful artifacts to reduce tarball size
find -type f -iname '*.tar.gz' -delete
+rm -rf .dotnet
rm -r src/aspnetcore.*/src/SignalR/clients/java/signalr/gradle*
find src/aspnetcore.*/src -type d -name samples -print0 | xargs -0 rm -r
rm -r src/NuGet.Client.*/test/EndToEnd/ProjectTemplates/NetCoreWebApplication1.0.zip
diff --git a/dotnet3.1.spec b/dotnet3.1.spec
index 12441eb..c1a054c 100644
--- a/dotnet3.1.spec
+++ b/dotnet3.1.spec
@@ -93,7 +93,11 @@ Patch300: core-setup-hardening-flags.patch
# Disable telemetry by default; make it opt-in
Patch500: cli-telemetry-optout.patch
+%if 0%{?fedora} > 32 || 0%{?rhel} > 8
ExclusiveArch: aarch64 x86_64
+%else
+ExclusiveArch: x86_64
+%endif
BuildRequires: clang
BuildRequires: cmake
3 years, 11 months
Architecture specific change in rpms/wine.git
by githook-noreply@fedoraproject.org
The package rpms/wine.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/wine.git/commit/?id=cc5d614c8aff2....
Change:
-%ifarch %{arm} aarch64
Thanks.
Full change:
============
commit c65cf5dacfecaaa5a886257272c968d55e398e17
Author: Michael Cronenworth <mike(a)cchtml.com>
Date: Tue Jul 14 15:22:25 2020 -0500
Three new DLLs in 5.11/5.12
diff --git a/wine.spec b/wine.spec
index ac5168d..1bc1047 100644
--- a/wine.spec
+++ b/wine.spec
@@ -1210,6 +1210,7 @@ fi
%{_libdir}/wine/termsv.%{wineexe}
%{_libdir}/wine/view.%{wineexe}
%{_libdir}/wine/wevtutil.%{wineexe}
+%{_libdir}/wine/where.%{wineexe}
%{_libdir}/wine/whoami.%{wineexe}
%{_libdir}/wine/wineboot.%{wineexe}
%{_libdir}/wine/winebrowser.exe.so
@@ -1307,6 +1308,7 @@ fi
%{_libdir}/wine/api-ms-win-core-misc-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-namedpipe-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-namedpipe-l1-2-0.%{winedll}
+%{_libdir}/wine/api-ms-win-core-namedpipe-ansi-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-namespace-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-normalization-l1-1-0.%{winedll}
%{_libdir}/wine/api-ms-win-core-path-l1-1-0.%{winedll}
@@ -1828,6 +1830,7 @@ fi
%{_libdir}/wine/propsys.%{winedll}
%{_libdir}/wine/psapi.%{winedll}
%{_libdir}/wine/pstorec.%{winedll}
+%{_libdir}/wine/pwrshplugin.%{winedll}
%{_libdir}/wine/qasf.%{winedll}
%{_libdir}/wine/qcap.dll.so
%{_libdir}/wine/qdvd.%{winedll}
commit cc5d614c8aff254b7a896264680eb08a02d2a7ad
Author: Michael Cronenworth <mike(a)cchtml.com>
Date: Tue Jul 14 14:56:54 2020 -0500
Update to 5.12
diff --git a/.gitignore b/.gitignore
index 1b3c9bc..b9639ee 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,3 @@
-/wine-5.10.tar.xz
-/wine-5.10.tar.xz.sign
-/wine-staging-5.10.tar.gz
+/wine-5.12.tar.xz
+/wine-5.12.tar.xz.sign
+/wine-staging-5.12.1.tar.gz
diff --git a/sources b/sources
index 71a95ad..29ea6fb 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (wine-5.10.tar.xz) = 669d6861525cd4ab000113e8d9c5e10822b62b293914542ee34a826696df66e1d2f09b09f576f714e4117e79e25d1fd0b2a06c57d29da0efa0bdfcb9fee59c60
-SHA512 (wine-5.10.tar.xz.sign) = 809c9d4d37440bc6beac0b6da9c69e81c055f3ea606261c21dd2e1ce02e71976f3fc3433e0bd87cc8431b5cd49cab9db01d4bf62bd23fe294ca7a5180adab7ee
-SHA512 (wine-staging-5.10.tar.gz) = fca5ddb648ac45c242b9bd7ccb0980161bff1e3539aa1a116f1cceece9d3b4a3188c82bd93624f561653dda793ad16dc00a87c7ed0c38f19a93b538519ef806c
+SHA512 (wine-5.12.tar.xz) = 1272b143d64ed6083cd797474f18dbd2bca7a38d488474ae5f054f47789b4fc1d386c7bbf8aa1bd86f9507908fc799b4f45e10e1d8c628c5bd52c42b1d74c8a8
+SHA512 (wine-5.12.tar.xz.sign) = 0c2fdab2e8c46addcd2cebbc46f9125e7f544bddef89d19713310ec889992936ba2dcead93d6291c10dcd88a60eba0d84bd6c0459a512009899fdd4eb4435813
+SHA512 (wine-staging-5.12.1.tar.gz) = 1a4cead8f17d41f1e5ab1be2f8dd8e098fc655b6240bdae49d3e8ab8f112ea4b46a92a95780b325c037dd3e5099e481392860c8dbf72dd03acee39855335750d
diff --git a/wine-staging-5.10-ntdll.patch b/wine-staging-5.10-ntdll.patch
deleted file mode 100644
index 0ac49d8..0000000
--- a/wine-staging-5.10-ntdll.patch
+++ /dev/null
@@ -1,497 +0,0 @@
-From 044cb930662d61f401a5d1bdd7b8e75d59cea5ea Mon Sep 17 00:00:00 2001
-From: Paul Gofman <gofmanp(a)gmail.com>
-Date: Mon, 8 Jun 2020 15:33:10 +0300
-Subject: [PATCH] Updated ntdll-ForceBottomUpAlloc patchset.
-
-Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49326
----
- ...h-on-mmap-error-in-try_map_free_area.patch | 9 +-
- ...XED_NOREPLACE-flag-in-try_map_free_a.patch | 10 +-
- ...om-up-allocation-order-for-64-bit-ar.patch | 12 +-
- ...tep-after-failed-map-attempt-in-try_.patch | 8 +-
- ...rea-list-for-virtual-memory-allocati.patch | 163 +++++++++++-------
- ...y-exclude-natively-mapped-areas-from.patch | 14 +-
- 6 files changed, 126 insertions(+), 90 deletions(-)
-
-diff --git a/patches/ntdll-ForceBottomUpAlloc/0001-ntdll-Stop-search-on-mmap-error-in-try_map_free_area.patch b/patches/ntdll-ForceBottomUpAlloc/0001-ntdll-Stop-search-on-mmap-error-in-try_map_free_area.patch
-index 7aa2337e8..ecf750c59 100644
---- a/patches/ntdll-ForceBottomUpAlloc/0001-ntdll-Stop-search-on-mmap-error-in-try_map_free_area.patch
-+++ b/patches/ntdll-ForceBottomUpAlloc/0001-ntdll-Stop-search-on-mmap-error-in-try_map_free_area.patch
-@@ -1,7 +1,8 @@
--From ca116113c19ee17d2e8283abe4edf27f76df2148 Mon Sep 17 00:00:00 2001
-+From c0a24a86c70b3cf2bfe118cff4d9ab03efaa9689 Mon Sep 17 00:00:00 2001
- From: Paul Gofman <gofmanp(a)gmail.com>
- Date: Thu, 9 Jan 2020 15:05:09 +0300
--Subject: [PATCH] ntdll: Stop search on mmap() error in try_map_free_area().
-+Subject: [PATCH 1/6] ntdll: Stop search on mmap() error in
-+ try_map_free_area().
-
- The anon mmap errors do not depend on start address hint. Ignoring them
- makes the search take incredible time until it fails.
-@@ -10,10 +11,10 @@ makes the search take incredible time until it fails.
- 1 file changed, 8 insertions(+), 2 deletions(-)
-
- diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
--index 0346d0d9753..c29f695d694 100644
-+index b2725e3ae9a..5c2ecfab398 100644
- --- a/dlls/ntdll/unix/virtual.c
- +++ b/dlls/ntdll/unix/virtual.c
--@@ -1016,8 +1016,14 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
-+@@ -1063,8 +1063,14 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
- return start;
- TRACE( "Found free area is already mapped, start %p.\n", start );
-
-diff --git a/patches/ntdll-ForceBottomUpAlloc/0002-ntdll-Use-MAP_FIXED_NOREPLACE-flag-in-try_map_free_a.patch b/patches/ntdll-ForceBottomUpAlloc/0002-ntdll-Use-MAP_FIXED_NOREPLACE-flag-in-try_map_free_a.patch
-index 6672d646f..81bdde5a0 100644
---- a/patches/ntdll-ForceBottomUpAlloc/0002-ntdll-Use-MAP_FIXED_NOREPLACE-flag-in-try_map_free_a.patch
-+++ b/patches/ntdll-ForceBottomUpAlloc/0002-ntdll-Use-MAP_FIXED_NOREPLACE-flag-in-try_map_free_a.patch
-@@ -1,8 +1,8 @@
--From b2c9894cd6a81eaa9f7dd4bce3f9cbfbec17d021 Mon Sep 17 00:00:00 2001
-+From 68e035e381f5d53980a8bcd7c0798dfd4b4fbe95 Mon Sep 17 00:00:00 2001
- From: Paul Gofman <gofmanp(a)gmail.com>
- Date: Thu, 16 Jan 2020 16:09:24 +0300
--Subject: [PATCH] ntdll: Use MAP_FIXED_NOREPLACE flag in try_map_free_area() if
-- available.
-+Subject: [PATCH 2/6] ntdll: Use MAP_FIXED_NOREPLACE flag in
-+ try_map_free_area() if available.
-
- Avoids actual mapping followed by unmapping back if the memory range is
- already mapped.
-@@ -11,10 +11,10 @@ already mapped.
- 1 file changed, 9 insertions(+), 3 deletions(-)
-
- diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
--index c29f695d694..8d3e25481ec 100644
-+index 5c2ecfab398..93b5d99dadd 100644
- --- a/dlls/ntdll/unix/virtual.c
- +++ b/dlls/ntdll/unix/virtual.c
--@@ -1008,22 +1008,28 @@ static struct wine_rb_entry *find_view_inside_range( void **base_ptr, void **end
-+@@ -1055,22 +1055,28 @@ static struct wine_rb_entry *find_view_inside_range( void **base_ptr, void **end
- static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
- void *start, size_t size, int unix_prot )
- {
-diff --git a/patches/ntdll-ForceBottomUpAlloc/0003-ntdll-Force-bottom-up-allocation-order-for-64-bit-ar.patch b/patches/ntdll-ForceBottomUpAlloc/0003-ntdll-Force-bottom-up-allocation-order-for-64-bit-ar.patch
-index 44980f11a..279c8e3c2 100644
---- a/patches/ntdll-ForceBottomUpAlloc/0003-ntdll-Force-bottom-up-allocation-order-for-64-bit-ar.patch
-+++ b/patches/ntdll-ForceBottomUpAlloc/0003-ntdll-Force-bottom-up-allocation-order-for-64-bit-ar.patch
-@@ -1,7 +1,7 @@
--From 9f7320fe58c85f1b53301c2c9a2a80fa8d4ed228 Mon Sep 17 00:00:00 2001
-+From 25be7201abeb509db4b28b81914036bc0c00c2f9 Mon Sep 17 00:00:00 2001
- From: Paul Gofman <gofmanp(a)gmail.com>
- Date: Mon, 25 Nov 2019 12:19:20 +0300
--Subject: [PATCH] ntdll: Force bottom up allocation order for 64 bit arch
-+Subject: [PATCH 3/6] ntdll: Force bottom up allocation order for 64 bit arch
- unless top down is requested.
-
- Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48175
-@@ -11,10 +11,10 @@ Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46568
- 1 file changed, 10 insertions(+), 2 deletions(-)
-
- diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
--index 8d3e25481ec..dc20e827141 100644
-+index 93b5d99dadd..87b33016b72 100644
- --- a/dlls/ntdll/unix/virtual.c
- +++ b/dlls/ntdll/unix/virtual.c
--@@ -1715,13 +1715,19 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
-+@@ -1775,13 +1775,19 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
- }
- else
- {
-@@ -35,7 +35,7 @@ index 8d3e25481ec..dc20e827141 100644
- if (mmap_enum_reserved_areas( alloc_reserved_area_callback, &alloc, top_down ))
- {
- ptr = alloc.result;
--@@ -1731,7 +1737,7 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
-+@@ -1791,7 +1797,7 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
- goto done;
- }
-
-@@ -44,7 +44,7 @@ index 8d3e25481ec..dc20e827141 100644
- {
- if (!(ptr = map_free_area( address_space_start, alloc.limit, size,
- top_down, get_unix_prot(vprot) )))
--@@ -1740,6 +1746,8 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
-+@@ -1800,6 +1806,8 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
- goto done;
- }
-
-diff --git a/patches/ntdll-ForceBottomUpAlloc/0004-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch b/patches/ntdll-ForceBottomUpAlloc/0004-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch
-index 9361f0938..0b5c7618a 100644
---- a/patches/ntdll-ForceBottomUpAlloc/0004-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch
-+++ b/patches/ntdll-ForceBottomUpAlloc/0004-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch
-@@ -1,7 +1,7 @@
--From e521333684d1286fff7b6625515d13ad6f3fcba3 Mon Sep 17 00:00:00 2001
-+From d74a5c586c00a879fa1182af72c15c154e5dd096 Mon Sep 17 00:00:00 2001
- From: Paul Gofman <gofmanp(a)gmail.com>
- Date: Tue, 14 Jan 2020 21:39:23 +0300
--Subject: [PATCH] ntdll: Increase step after failed map attempt in
-+Subject: [PATCH 4/6] ntdll: Increase step after failed map attempt in
- try_map_free_area().
-
- ---
-@@ -9,10 +9,10 @@ Subject: [PATCH] ntdll: Increase step after failed map attempt in
- 1 file changed, 1 insertion(+)
-
- diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
--index dc20e827141..720d45ecb9f 100644
-+index 87b33016b72..5e79faaf6fc 100644
- --- a/dlls/ntdll/unix/virtual.c
- +++ b/dlls/ntdll/unix/virtual.c
--@@ -1036,6 +1036,7 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
-+@@ -1083,6 +1083,7 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
- step == 0)
- break;
- start = (char *)start + step;
-diff --git a/patches/ntdll-ForceBottomUpAlloc/0005-ntdll-Use-free-area-list-for-virtual-memory-allocati.patch b/patches/ntdll-ForceBottomUpAlloc/0005-ntdll-Use-free-area-list-for-virtual-memory-allocati.patch
-index 569bf3e62..1f712ba10 100644
---- a/patches/ntdll-ForceBottomUpAlloc/0005-ntdll-Use-free-area-list-for-virtual-memory-allocati.patch
-+++ b/patches/ntdll-ForceBottomUpAlloc/0005-ntdll-Use-free-area-list-for-virtual-memory-allocati.patch
-@@ -1,17 +1,17 @@
--From df7b650d5e17afa411024b88d1920d0910947a6b Mon Sep 17 00:00:00 2001
-+From f14407ee5755b6482714a6232a4313bcd1531781 Mon Sep 17 00:00:00 2001
- From: Paul Gofman <pgofman(a)codeweavers.com>
- Date: Tue, 14 Jan 2020 21:42:21 +0300
--Subject: [PATCH] ntdll: Use free area list for virtual memory allocation.
-+Subject: [PATCH 5/6] ntdll: Use free area list for virtual memory allocation.
-
- ---
-- dlls/ntdll/unix/virtual.c | 318 ++++++++++++++++++++++++--------------
-- 1 file changed, 204 insertions(+), 114 deletions(-)
-+ dlls/ntdll/unix/virtual.c | 348 +++++++++++++++++++++++++-------------
-+ 1 file changed, 234 insertions(+), 114 deletions(-)
-
- diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
--index 720d45ecb9f..e323f4290bf 100644
-+index 5e79faaf6fc..7f194effcaa 100644
- --- a/dlls/ntdll/unix/virtual.c
- +++ b/dlls/ntdll/unix/virtual.c
--@@ -192,7 +192,11 @@ static BYTE *pages_vprot;
-+@@ -195,7 +195,11 @@ static BYTE *pages_vprot;
- #endif
-
- static struct file_view *view_block_start, *view_block_end, *next_free_view;
-@@ -23,7 +23,7 @@ index 720d45ecb9f..e323f4290bf 100644
- static void *preload_reserve_start;
- static void *preload_reserve_end;
- static BOOL use_locks;
--@@ -528,13 +532,13 @@ static struct range_entry *free_ranges_lower_bound( void *addr )
-+@@ -546,13 +550,13 @@ static struct range_entry *free_ranges_lower_bound( void *addr )
- *
- * Updates the free_ranges after a new view has been created.
- */
-@@ -40,7 +40,7 @@ index 720d45ecb9f..e323f4290bf 100644
- /* free_ranges initial value is such that the view is either inside range or before another one. */
- assert( range != free_ranges_end );
- assert( range->end > view_base || next != free_ranges_end );
--@@ -545,7 +549,7 @@ static void free_ranges_insert_view( struct file_view *view )
-+@@ -563,7 +567,7 @@ static void free_ranges_insert_view( struct file_view *view )
- (range->end == view_base && next->base >= view_end))
- {
- /* on Win64, assert that it's correctly aligned so we're not going to be in trouble later */
-@@ -49,7 +49,7 @@ index 720d45ecb9f..e323f4290bf 100644
- WARN( "range %p - %p is already mapped\n", view_base, view_end );
- return;
- }
--@@ -585,6 +589,12 @@ static void free_ranges_insert_view( struct file_view *view )
-+@@ -603,6 +607,12 @@ static void free_ranges_insert_view( struct file_view *view )
- }
- }
-
-@@ -62,7 +62,7 @@ index 720d45ecb9f..e323f4290bf 100644
-
- /***********************************************************************
- * free_ranges_remove_view
--@@ -615,6 +625,7 @@ static void free_ranges_remove_view( struct file_view *view )
-+@@ -633,6 +643,7 @@ static void free_ranges_remove_view( struct file_view *view )
- return;
- }
- #endif
-@@ -70,7 +70,7 @@ index 720d45ecb9f..e323f4290bf 100644
-
- /* free_ranges initial value is such that the view is either inside range or before another one. */
- assert( range != free_ranges_end );
--@@ -961,44 +972,6 @@ static struct file_view *find_view_range( const void *addr, size_t size )
-+@@ -1008,44 +1019,6 @@ static struct file_view *find_view_range( const void *addr, size_t size )
- }
-
-
-@@ -115,7 +115,7 @@ index 720d45ecb9f..e323f4290bf 100644
- /***********************************************************************
- * try_map_free_area
- *
--@@ -1042,65 +1015,11 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
-+@@ -1089,65 +1062,11 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
- return NULL;
- }
-
-@@ -181,7 +181,7 @@ index 720d45ecb9f..e323f4290bf 100644
- */
- static void *find_reserved_free_area( void *base, void *end, size_t size, int top_down )
- {
--@@ -1314,8 +1233,7 @@ static void delete_view( struct file_view *view ) /* [in] View */
-+@@ -1361,8 +1280,7 @@ static void delete_view( struct file_view *view ) /* [in] View */
- {
- if (!(view->protect & VPROT_SYSTEM)) unmap_area( view->base, view->size );
- set_page_vprot( view->base, view->size, 0 );
-@@ -191,7 +191,7 @@ index 720d45ecb9f..e323f4290bf 100644
- wine_rb_remove( &views_tree, &view->entry );
- *(struct file_view **)view = next_free_view;
- next_free_view = view;
--@@ -1363,8 +1281,7 @@ static NTSTATUS create_view( struct file_view **view_ret, void *base, size_t siz
-+@@ -1410,8 +1328,7 @@ static NTSTATUS create_view( struct file_view **view_ret, void *base, size_t siz
- set_page_vprot( base, size, vprot );
-
- wine_rb_put( &views_tree, view->base, &view->entry );
-@@ -201,7 +201,7 @@ index 720d45ecb9f..e323f4290bf 100644
-
- *view_ret = view;
-
--@@ -1596,6 +1513,7 @@ struct alloc_area
-+@@ -1656,6 +1573,7 @@ struct alloc_area
- int top_down;
- void *limit;
- void *result;
-@@ -209,7 +209,7 @@ index 720d45ecb9f..e323f4290bf 100644
- };
-
- /***********************************************************************
--@@ -1637,6 +1555,179 @@ static int CDECL alloc_reserved_area_callback( void *start, SIZE_T size, void *a
-+@@ -1697,6 +1615,212 @@ static int CDECL alloc_reserved_area_callback( void *start, SIZE_T size, void *a
- return 0;
- }
-
-@@ -303,11 +303,62 @@ index 720d45ecb9f..e323f4290bf 100644
- + return 0;
- +}
- +
-++static void *alloc_free_area_in_range(struct area_alloc_reserved *area, char *base, char *end,
-++ size_t size, int top_down, int unix_prot)
-++{
-++ char *start;
-++
-++ TRACE("range %p-%p.\n", base, end);
-++
-++ if (base >= end) return NULL;
-++
-++ area->map_area_start = base;
-++ area->map_area_end = end;
-++
-++ if (top_down)
-++ {
-++ start = ROUND_ADDR( end - size, granularity_mask );
-++ if (start >= end || start < base)
-++ return NULL;
-++ }
-++ else
-++ {
-++ start = ROUND_ADDR( base + granularity_mask, granularity_mask );
-++ if (!start || start >= end || (char *)end - (char *)start < size)
-++ return NULL;
-++ }
-++
-++ mmap_enum_reserved_areas( alloc_area_in_reserved_or_between_callback, area, top_down );
-++ if (area->result)
-++ return area->result;
-++
-++ if (top_down)
-++ {
-++ start = ROUND_ADDR( area->map_area_end - size, granularity_mask );
-++ if (start >= area->map_area_end || start < area->map_area_start)
-++ return NULL;
-++
-++ return try_map_free_area( area->map_area_start, start + size, area->step,
-++ start, size, unix_prot );
-++ }
-++ else
-++ {
-++ start = ROUND_ADDR( area->map_area_start + granularity_mask, granularity_mask );
-++ if (!start || start >= area->map_area_end
-++ || area->map_area_end - start < size)
-++ return NULL;
-++
-++ return try_map_free_area( start, area->map_area_end, area->step,
-++ start, size, unix_prot );
-++ }
-++}
-++
- +static void *alloc_free_area(void *limit, size_t size, BOOL top_down, int unix_prot)
- +{
- + struct range_entry *range, *ranges_start, *ranges_end;
-++ char *reserve_start, *reserve_end;
- + struct area_alloc_reserved area;
--+ char *start, *base, *end;
-++ char *base, *end;
- + int ranges_inc;
- +
- + TRACE("limit %p, size %p, top_down %#x.\n", limit, (void *)size, top_down);
-@@ -331,6 +382,9 @@ index 720d45ecb9f..e323f4290bf 100644
- + area.top_down = top_down;
- + area.unix_prot = unix_prot;
- +
-++ reserve_start = ROUND_ADDR((char *)preload_reserve_start, granularity_mask);
-++ reserve_end = ROUND_ADDR((char *)preload_reserve_end + granularity_mask, granularity_mask);
-++
- + for (range = ranges_start; range != ranges_end; range += ranges_inc)
- + {
- + base = range->base;
-@@ -340,48 +394,27 @@ index 720d45ecb9f..e323f4290bf 100644
- +
- + if (base < (char *)address_space_start) base = (char *)address_space_start;
- + if (end > (char *)limit + granularity_mask + 1) end = (char *)limit + granularity_mask + 1;
--+ if (base >= end) continue;
- +
--+ area.map_area_start = base;
--+ area.map_area_end = end;
--+
--+ if (top_down)
--+ {
--+ start = ROUND_ADDR( (char *)end - size, granularity_mask );
--+ if (start >= end || start < base)
--+ continue;
--+ }
--+ else
-++ if (reserve_end >= base)
- + {
--+ start = ROUND_ADDR( (char *)base + granularity_mask, granularity_mask );
--+ if (!start || start >= end || (char *)end - (char *)start < size)
--+ continue;
-++ if (reserve_end >= end)
-++ {
-++ if (reserve_start <= base) continue; /* no space in that area */
-++ if (reserve_start < end) end = reserve_start;
-++ }
-++ else if (reserve_start <= base) base = reserve_end;
-++ else
-++ {
-++ /* range is split in two by the preloader reservation, try first part */
-++ if ((area.result = alloc_free_area_in_range(&area, base, reserve_start, size, top_down, unix_prot)))
-++ return area.result;
-++ /* then fall through to try second part */
-++ base = reserve_end;
-++ }
- + }
--+ mmap_enum_reserved_areas( alloc_area_in_reserved_or_between_callback, &area, top_down );
--+ if (area.result)
--+ return area.result;
- +
--+ if (top_down)
--+ {
--+ start = ROUND_ADDR( area.map_area_end - size, granularity_mask );
--+ if (start >= area.map_area_end || start < area.map_area_start)
--+ continue;
--+
--+ if ((area.result = try_map_free_area( area.map_area_start, start + size, area.step,
--+ start, size, unix_prot )))
--+ return area.result;
--+ }
--+ else
--+ {
--+ start = ROUND_ADDR( area.map_area_start + granularity_mask, granularity_mask );
--+ if (!start || start >= area.map_area_end
--+ || area.map_area_end - start < size)
--+ continue;
--+
--+ if ((area.result = try_map_free_area( start, area.map_area_end, area.step,
--+ start, size, unix_prot )))
--+ return area.result;
--+ }
-++ if ((area.result = alloc_free_area_in_range(&area, base, end, size, top_down, unix_prot)))
-++ return area.result;
- + }
- + return NULL;
- +}
-@@ -389,7 +422,7 @@ index 720d45ecb9f..e323f4290bf 100644
- /***********************************************************************
- * map_fixed_area
- *
--@@ -1722,11 +1813,15 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
-+@@ -1782,11 +1906,15 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
- alloc.size = size;
- alloc.top_down = top_down;
- alloc.limit = (void*)(get_zero_bits_64_mask( zero_bits_64 ) & (UINT_PTR)user_space_limit);
-@@ -408,7 +441,7 @@ index 720d45ecb9f..e323f4290bf 100644
- }
-
- if (mmap_enum_reserved_areas( alloc_reserved_area_callback, &alloc, top_down ))
--@@ -1738,15 +1833,6 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
-+@@ -1798,15 +1926,6 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
- goto done;
- }
-
-@@ -424,7 +457,15 @@ index 720d45ecb9f..e323f4290bf 100644
- view_size = size + granularity_mask + 1;
-
- for (;;)
--@@ -2466,10 +2552,14 @@ void virtual_init(void)
-+@@ -2500,6 +2619,7 @@ void virtual_init(void)
-+ if (preload_reserve_start)
-+ address_space_start = min( address_space_start, preload_reserve_start );
-+ }
-++ TRACE("preload reserve %p-%p.\n", preload_reserve_start, preload_reserve_end);
-+ }
-+
-+ size = ROUND_SIZE( 0, sizeof(TEB) ) + max( MINSIGSTKSZ, 8192 );
-+@@ -2528,8 +2648,8 @@ void virtual_init(void)
- pages_vprot = (void *)((char *)alloc_views.base + 2 * view_block_size);
- wine_rb_init( &views_tree, compare_view );
-
-@@ -434,13 +475,7 @@ index 720d45ecb9f..e323f4290bf 100644
- + free_ranges[0].end = address_space_limit;
- free_ranges_end = free_ranges + 1;
-
--+ free_ranges_remove_range(ROUND_ADDR(preload_reserve_start, granularity_mask),
--+ ROUND_ADDR((char *)preload_reserve_end + granularity_mask,
--+ granularity_mask), preload_reserve_start);
--+
- /* make the DOS area accessible (except the low 64K) to hide bugs in broken apps like Excel 2003 */
-- size = (char *)address_space_start - (char *)0x10000;
-- if (size && mmap_is_in_reserved_area( (void*)0x10000, size ) == 1)
- --
- 2.26.2
-
-diff --git a/patches/ntdll-ForceBottomUpAlloc/0006-ntdll-Permanently-exclude-natively-mapped-areas-from.patch b/patches/ntdll-ForceBottomUpAlloc/0006-ntdll-Permanently-exclude-natively-mapped-areas-from.patch
-index 8cf896f8a..9bb16bdfc 100644
---- a/patches/ntdll-ForceBottomUpAlloc/0006-ntdll-Permanently-exclude-natively-mapped-areas-from.patch
-+++ b/patches/ntdll-ForceBottomUpAlloc/0006-ntdll-Permanently-exclude-natively-mapped-areas-from.patch
-@@ -1,18 +1,18 @@
--From 81a8c626f834f3b2195980e84e2f5fc0a5b1e0e6 Mon Sep 17 00:00:00 2001
-+From ac8fd6b34fa269ce840566055cc1c0b6c023516e Mon Sep 17 00:00:00 2001
- From: Paul Gofman <pgofman(a)codeweavers.com>
- Date: Tue, 2 Jun 2020 21:06:33 +0300
--Subject: [PATCH] ntdll: Permanently exclude natively mapped areas from free
-- areas list.
-+Subject: [PATCH 6/6] ntdll: Permanently exclude natively mapped areas from
-+ free areas list.
-
- ---
- dlls/ntdll/unix/virtual.c | 25 +++++++++++++++++++++++++
- 1 file changed, 25 insertions(+)
-
- diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
--index e323f4290bf..778f5d8c3b8 100644
-+index 7f194effcaa..0e2e20396f3 100644
- --- a/dlls/ntdll/unix/virtual.c
- +++ b/dlls/ntdll/unix/virtual.c
--@@ -123,6 +123,9 @@ static const BYTE VIRTUAL_Win32Flags[16] =
-+@@ -124,6 +124,9 @@ static const BYTE VIRTUAL_Win32Flags[16] =
-
- static struct wine_rb_tree views_tree;
-
-@@ -22,7 +22,7 @@ index e323f4290bf..778f5d8c3b8 100644
- static RTL_CRITICAL_SECTION csVirtual;
- static RTL_CRITICAL_SECTION_DEBUG critsect_debug =
- {
--@@ -1004,6 +1007,13 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
-+@@ -1051,6 +1054,13 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
- if (ptr != (void *)-1)
- munmap( ptr, size );
-
-@@ -36,7 +36,7 @@ index e323f4290bf..778f5d8c3b8 100644
- if ((step > 0 && (char *)end - (char *)start < step) ||
- (step < 0 && (char *)start - (char *)base < -step) ||
- step == 0)
--@@ -1817,9 +1827,24 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
-+@@ -1910,9 +1920,24 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
-
- if (is_win64 || zero_bits_64)
- {
diff --git a/wine.spec b/wine.spec
index 3091bf4..ac5168d 100644
--- a/wine.spec
+++ b/wine.spec
@@ -3,7 +3,7 @@
%global no64bit 0
%global winegecko 2.47.1
-%global winemono 5.0.0
+%global winemono 5.1.0
#global _default_patch_fuzz 2
%ifarch %{ix86} x86_64
%global wineacm acm
@@ -44,8 +44,8 @@
%endif
Name: wine
-Version: 5.10
-Release: 2%{?dist}
+Version: 5.12
+Release: 1%{?dist}
Summary: A compatibility layer for windows applications
License: LGPLv2+
@@ -75,7 +75,6 @@ Source109: wine-oleview.desktop
Source150: wine.appdata.xml
# wine bugs
-Patch100: wine-staging-5.10-ntdll.patch
# desktop dir
Source200: wine.menu
@@ -96,7 +95,7 @@ Patch511: wine-cjk.patch
%if 0%{?wine_staging}
# wine-staging patches
# pulseaudio-patch is covered by that patch-set, too.
-Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/...
+Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.1.tar.gz...
%endif
%if !%{?no64bit}
@@ -693,16 +692,8 @@ This package adds the opencl driver for wine.
%if 0%{?wine_staging}
# setup and apply wine-staging patches
gzip -dc %{SOURCE900} | tar -xf - --strip-components=1
-%patch100 -p1 -b.ntdll
-%ifarch %{arm} aarch64
-patches/patchinstall.sh DESTDIR="`pwd`" --all \
- -W ntdll-NtContinue \
- -W ntdll-Syscall_Emulation \
- -W winebuild-Fake_Dlls
-%else
patches/patchinstall.sh DESTDIR="`pwd`" --all
-%endif
# fix parallelized build
sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in
@@ -1571,7 +1562,7 @@ fi
%{_libdir}/wine/dxgkrnl.%{winesys}
%{_libdir}/wine/dxgmms1.%{winesys}
%endif
-%{_libdir}/wine/dxva2.dll.so
+%{_libdir}/wine/dxva2.%{winedll}
%{_libdir}/wine/esent.%{winedll}
%{_libdir}/wine/evr.%{winedll}
%{_libdir}/wine/explorerframe.%{winedll}
@@ -1804,7 +1795,7 @@ fi
%{_libdir}/wine/npmshtml.%{winedll}
%{_libdir}/wine/npptools.%{winedll}
%{_libdir}/wine/ntdll.so
-%{_libdir}/wine/ntdll.dll.so
+%{_libdir}/wine/ntdll.%{winedll}
%{_libdir}/wine/ntdsapi.%{winedll}
%{_libdir}/wine/ntprint.%{winedll}
%if 0%{?wine_staging}
@@ -2343,6 +2334,9 @@ fi
%endif
%changelog
+* Tue Jul 14 2020 Michael Cronenworth <mike(a)cchtml.com> 5.12-1
+- version update
+
* Wed Jul 01 2020 Jeff Law <law(a)redhat.com> 5.10-2
- Disable LTO
commit 1924618e9789b72a28c135e391d7fc63abb2b103
Author: Jeff Law <law(a)redhat.com>
Date: Wed Jul 1 12:29:15 2020 -0600
Disable LTO
diff --git a/wine.spec b/wine.spec
index cd74653..3091bf4 100644
--- a/wine.spec
+++ b/wine.spec
@@ -45,7 +45,7 @@
Name: wine
Version: 5.10
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A compatibility layer for windows applications
License: LGPLv2+
@@ -711,6 +711,13 @@ sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in
# 0%%{?wine_staging}
%build
+# This package uses top level ASM constructs which are incompatible with LTO.
+# Top level ASMs are often used to implement symbol versioning. gcc-10
+# introduces a new mechanism for symbol versioning which works with LTO.
+# Converting packages to use that mechanism instead of toplevel ASMs is
+# recommended.
+# Disable LTO
+%define _lto_cflags %{nil}
# disable fortify as it breaks wine
# http://bugs.winehq.org/show_bug.cgi?id=24606
@@ -2336,6 +2343,9 @@ fi
%endif
%changelog
+* Wed Jul 01 2020 Jeff Law <law(a)redhat.com> 5.10-2
+- Disable LTO
+
* Sun Jun 07 2020 Michael Cronenworth <mike(a)cchtml.com> 5.10-1
- version update
3 years, 11 months