The package rpms/xrootd.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/xrootd.git/commit/?id=58f2307ac53....
Change:
+%ifarch %{ix86} %{arm}
Thanks.
Full change:
============
commit dfe83844c086142fc94a64fa340e7274c03f2285
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Thu Aug 27 12:59:47 2020 +0200
Use new CMake macros where available
Backport minor fixes from upstream git
Correct flag reset code for ssq monitor option
Fix typo in xrootd-config help
Prevent deadlock in Python bindings
Fix plugin path in xrootd-http.cfg for 32 bit architectures
diff --git a/xrootd-correct-flag-reset-code-for-ssq-monitor-option.patch
b/xrootd-correct-flag-reset-code-for-ssq-monitor-option.patch
new file mode 100644
index 0000000..0bec83c
--- /dev/null
+++ b/xrootd-correct-flag-reset-code-for-ssq-monitor-option.patch
@@ -0,0 +1,26 @@
+From 831d73737f07c6c9fb45b500489cca7b335e004e Mon Sep 17 00:00:00 2001
+From: Andrew Hanushevsky <abh(a)stanford.edu>
+Date: Mon, 10 Aug 2020 16:57:43 -0700
+Subject: [PATCH] [XRootD] Correct flag reset code for esoteric ssq monitor
+ option.
+
+---
+ src/XrdXrootd/XrdXrootdConfig.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/XrdXrootd/XrdXrootdConfig.cc b/src/XrdXrootd/XrdXrootdConfig.cc
+index c5735efb9..c75e5b9b6 100644
+--- a/src/XrdXrootd/XrdXrootdConfig.cc
++++ b/src/XrdXrootd/XrdXrootdConfig.cc
+@@ -1530,7 +1530,7 @@ int XrdXrootdProtocol::xmon(XrdOucStream &Config)
+ //
+ #if !defined(__solaris__) || !defined(_IEEE_754)
+ if (monFSopt & XROOTD_MON_FSSSQ &&
!(std::numeric_limits<double>::is_iec559))
+- {monFSopt &= !XROOTD_MON_FSSSQ;
++ {monFSopt &= ~XROOTD_MON_FSSSQ;
+ eDest.Emsg("Config","Warning, 'fstat ssq' ignored;
platform does not "
+ "use IEEE754 floating point.");
+ }
+--
+2.26.2
+
diff --git a/xrootd-fix-typo-in-xrootd-config-help.patch
b/xrootd-fix-typo-in-xrootd-config-help.patch
new file mode 100644
index 0000000..1bff916
--- /dev/null
+++ b/xrootd-fix-typo-in-xrootd-config-help.patch
@@ -0,0 +1,25 @@
+From b3320b2032d56ad997fe3fb45f6eac94d38f19be Mon Sep 17 00:00:00 2001
+From: Oksana Shadura <oksana.shadura(a)cern.ch>
+Date: Tue, 19 May 2020 15:29:31 +0200
+Subject: [PATCH] Fix typo
+
+---
+ utils/xrootd-config | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/utils/xrootd-config b/utils/xrootd-config
+index 3cce14c09..685fdc8d3 100755
+--- a/utils/xrootd-config
++++ b/utils/xrootd-config
+@@ -39,7 +39,7 @@ Generic options
+
+ Compilation support options
+ --cflags print pre-processor and compiler flags
+- --plugin-vesion print plug-in version suffix
++ --plugin-version print plug-in version suffix
+
+ Install directories XRootD was configured to
+ --prefix
+--
+2.26.2
+
diff --git a/xrootd-one-definition-rule-fix b/xrootd-one-definition-rule-fix.patch
similarity index 100%
rename from xrootd-one-definition-rule-fix
rename to xrootd-one-definition-rule-fix.patch
diff --git a/xrootd-prevent-deadlock-in-python-bindings.patch
b/xrootd-prevent-deadlock-in-python-bindings.patch
new file mode 100644
index 0000000..db5c05e
--- /dev/null
+++ b/xrootd-prevent-deadlock-in-python-bindings.patch
@@ -0,0 +1,45 @@
+From 23779e49df509fd3aab33b4fc55ba2b0610f62ad Mon Sep 17 00:00:00 2001
+From: Chris Burr <chrisburr(a)users.noreply.github.com>
+Date: Fri, 24 Jul 2020 09:15:27 +0200
+Subject: [PATCH] Prevent deadlock in Python bindings from
+ XRootD.client.finalize.finalize
+
+---
+ bindings/python/libs/client/finalize.py | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/bindings/python/libs/client/finalize.py
b/bindings/python/libs/client/finalize.py
+index 1be362451..cf75c9a5f 100644
+--- a/bindings/python/libs/client/finalize.py
++++ b/bindings/python/libs/client/finalize.py
+@@ -21,9 +21,14 @@
+ # granted to it by virtue of its status as an Intergovernmental Organization
+ # or submit itself to any jurisdiction.
+ #------------------------------------------------------------------------------
++from __future__ import absolute_import
+
++import gc
+ import atexit
++
+ from pyxrootd import client
++from .file import File
++
+
+ @atexit.register
+ def finalize():
+@@ -32,4 +37,12 @@ def finalize():
+ no Python APIs are called after the Python Interpreter gets
+ finalized.
+ """
++ # Ensure there are no files left open as calling their destructor will
++ # cause "close" commands to be sent.
++ # If this isn't done, there will be no running threads to process requests
++ # after this function returns so the interpreter will deadlock.
++ for obj in gc.get_objects():
++ if isinstance(obj, File) and obj.is_open():
++ obj.close()
++
+ client.__XrdCl_Stop_Threads()
+--
+2.26.2
+
diff --git a/xrootd.spec b/xrootd.spec
index c6bda8b..0dfde7c 100644
--- a/xrootd.spec
+++ b/xrootd.spec
@@ -3,12 +3,12 @@
%define _lto_cflags %{nil}
%endif
-%if %{?fedora}%{!?fedora:0} >= 31 || %{?rhel}%{!?rhel:0} >= 9
%undefine __cmake_in_source_build
-%global oldcmakemacro 0
-%else
-%global oldcmakemacro 1
-%endif
+
+# Compatibility for EPEL 6 and EPEL 7
+%{!?_vpath_builddir:%global _vpath_builddir %_target_platform}
+%{!?cmake_build:%global cmake_build %make_build -C %{_vpath_builddir}}
+%{!?cmake_install:%global cmake_install %make_install -C %{_vpath_builddir}}
%if %{?fedora}%{!?fedora:0} >= 21 || %{?rhel}%{!?rhel:0} >= 7
%global use_systemd 1
@@ -37,7 +37,7 @@
Name: xrootd
Epoch: 1
Version: 4.12.3
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: Extended ROOT file server
License: LGPLv3+
@@ -48,7 +48,13 @@
Patch0: 0001-VOMS-Fix-improper-collection-of-multi-VO-cert-attrib.patch
Patch1: 0002-VOMS-Do-not-touch-the-Entity.name-field-especially-c.patch
# Fix one definition rule (ODR) violation for LTO
#
https://github.com/xrootd/xrootd/pull/1261
-Patch2: xrootd-one-definition-rule-fix
+Patch2: %{name}-one-definition-rule-fix.patch
+# Backport minor fixes from upstream git
+Patch3: %{name}-correct-flag-reset-code-for-ssq-monitor-option.patch
+Patch4: %{name}-fix-typo-in-xrootd-config-help.patch
+# Prevent deadlock in Python bindings
+#
https://github.com/xrootd/xrootd/pull/1260
+Patch5: %{name}-prevent-deadlock-in-python-bindings.patch
BuildRequires: gcc-c++
BuildRequires: cmake
@@ -292,24 +298,22 @@ This package contains the API documentation of the xrootd
libraries.
%patch0 -p1
%patch1 -p1
%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
%build
-%if %{oldcmakemacro}
-mkdir %{_vpath_builddir}
-pushd %{_vpath_builddir}
+%cmake \
+%if %{?rhel}%{!?rhel:0} == 6 || %{?rhel}%{!?rhel:0} == 7
+ -H. -B%{_vpath_builddir} \
%endif
-%cmake -DUSE_LIBC_SEMAPHORE:BOOL=%{use_libc_semaphore} \
+ -DUSE_LIBC_SEMAPHORE:BOOL=%{use_libc_semaphore} \
%if %{py2}
- -DPYTHON_EXECUTABLE=%{__python2} \
+ -DPYTHON_EXECUTABLE=%{__python2}
%else
- -DPYTHON_EXECUTABLE=%{__python3} \
+ -DPYTHON_EXECUTABLE=%{__python3}
%endif
-%if %{oldcmakemacro}
- ..
-popd
-%endif
-
-%make_build -C %{_vpath_builddir}
+%cmake_build
%if %{py2}
%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 7
@@ -343,7 +347,7 @@ make -C bindings/python/docs html SPHINXBUILD=sphinx-1.0-build
%endif
%install
-%make_install -C %{_vpath_builddir}
+%cmake_install
# Workaround for EPEL 6
[ -h %{buildroot}%{_libdir}/libXrdSecgsiVOMS-4.so ] || \
@@ -396,7 +400,7 @@ install -m 644 -p packaging/common/%{name}-filecache-clustered.cfg \
install -m 644 -p packaging/common/%{name}-filecache-standalone.cfg \
%{buildroot}%{_sysconfdir}/%{name}/%{name}-filecache-standalone.cfg
%if %{use_systemd}
-install -m 644 -p packaging/common/%{name}-http.cfg \
+sed 's!/usr/lib64!%{_libdir}!' packaging/common/%{name}-http.cfg > \
%{buildroot}%{_sysconfdir}/%{name}/%{name}-http.cfg
%endif
@@ -738,6 +742,14 @@ fi
%doc %{_pkgdocdir}
%changelog
+* Wed Aug 26 2020 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 1:4.12.3-5
+- Use new CMake macros where available
+- Backport minor fixes from upstream git
+ - Correct flag reset code for ssq monitor option
+ - Fix typo in xrootd-config help
+- Prevent deadlock in Python bindings
+- Fix plugin path in xrootd-http.cfg for 32 bit architectures
+
* Wed Jul 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:4.12.3-4
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
commit 4c325be5c080df614fa558de27ea09e6aa0d5ad9
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Wed Jul 29 15:04:28 2020 +0000
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/xrootd.spec b/xrootd.spec
index 70416f6..c6bda8b 100644
--- a/xrootd.spec
+++ b/xrootd.spec
@@ -37,7 +37,7 @@
Name: xrootd
Epoch: 1
Version: 4.12.3
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: Extended ROOT file server
License: LGPLv3+
@@ -738,6 +738,9 @@ fi
%doc %{_pkgdocdir}
%changelog
+* Wed Jul 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:4.12.3-4
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
* Fri Jul 24 2020 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 1:4.12.3-3
- Fix one definition rule (ODR) violation for LTO
- Disable LTO for 32 bit architectures due to the POSIX preload code
commit 58f2307ac532f3b368226a857a3817b5edc72a5d
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Fri Jul 24 14:56:45 2020 +0200
Disable LTO for 32 bit architectures due to the POSIX preload code
diff --git a/xrootd.spec b/xrootd.spec
index 96999b2..70416f6 100644
--- a/xrootd.spec
+++ b/xrootd.spec
@@ -1,3 +1,8 @@
+%ifarch %{ix86} %{arm}
+# LTO does not work for the POSIX preload code on 32 bit architectures
+%define _lto_cflags %{nil}
+%endif
+
%if %{?fedora}%{!?fedora:0} >= 31 || %{?rhel}%{!?rhel:0} >= 9
%undefine __cmake_in_source_build
%global oldcmakemacro 0
@@ -735,6 +740,7 @@ fi
%changelog
* Fri Jul 24 2020 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 1:4.12.3-3
- Fix one definition rule (ODR) violation for LTO
+- Disable LTO for 32 bit architectures due to the POSIX preload code
* Thu Jul 16 2020 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 1:4.12.3-2
- Fix a typo in the rpm scriptlets (missing underscore)
commit a7e5cfa64e6a75f1291e42a50aadcb663edf51f7
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Fri Jul 24 10:37:42 2020 +0200
Fix one definition rule (ODR) violation for LTO
diff --git a/xrootd-one-definition-rule-fix b/xrootd-one-definition-rule-fix
new file mode 100644
index 0000000..7d2559b
--- /dev/null
+++ b/xrootd-one-definition-rule-fix
@@ -0,0 +1,25 @@
+From d36276964ce7efe0358448e2196ff1da071d1618 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert(a)physics.uu.se>
+Date: Fri, 24 Jul 2020 09:47:19 +0200
+Subject: [PATCH] Add forward declaration to fix one definition rule (ODR)
+ violation
+
+---
+ src/XrdTpc/XrdTpcState.hh | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/XrdTpc/XrdTpcState.hh b/src/XrdTpc/XrdTpcState.hh
+index 825e67cd7..f457a161c 100644
+--- a/src/XrdTpc/XrdTpcState.hh
++++ b/src/XrdTpc/XrdTpcState.hh
+@@ -11,6 +11,7 @@
+ class XrdSfsFile;
+ class XrdHttpExtReq;
+ typedef void CURL;
++struct curl_slist;
+
+ namespace TPC {
+ class Stream;
+--
+2.26.2
+
diff --git a/xrootd.spec b/xrootd.spec
index bc2c254..96999b2 100644
--- a/xrootd.spec
+++ b/xrootd.spec
@@ -1,4 +1,4 @@
-%if %{?fedora}%{!?fedora:0} >= 32 || %{?rhel}%{!?rhel:0} >= 9
+%if %{?fedora}%{!?fedora:0} >= 31 || %{?rhel}%{!?rhel:0} >= 9
%undefine __cmake_in_source_build
%global oldcmakemacro 0
%else
@@ -41,6 +41,9 @@
Source0:
http://xrootd.org/download/v%{version}/%{name}-%{version}.tar.gz
# Backport XrdVoms fixes from upstream git
Patch0: 0001-VOMS-Fix-improper-collection-of-multi-VO-cert-attrib.patch
Patch1: 0002-VOMS-Do-not-touch-the-Entity.name-field-especially-c.patch
+# Fix one definition rule (ODR) violation for LTO
+#
https://github.com/xrootd/xrootd/pull/1261
+Patch2: xrootd-one-definition-rule-fix
BuildRequires: gcc-c++
BuildRequires: cmake
@@ -283,12 +286,9 @@ This package contains the API documentation of the xrootd libraries.
%setup -q
%patch0 -p1
%patch1 -p1
+%patch2 -p1
%build
-# This package violates the ODR (one definition rule). That needs to be fixed
-# before LTO can possibly work.
-%define _lto_cflags %{nil}
-
%if %{oldcmakemacro}
mkdir %{_vpath_builddir}
pushd %{_vpath_builddir}
@@ -733,8 +733,8 @@ fi
%doc %{_pkgdocdir}
%changelog
-* Mon Jul 20 2020 Jeff Law <law(a)redhat.com> - 1:4.12.3-3
-- Disable LTO
+* Fri Jul 24 2020 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 1:4.12.3-3
+- Fix one definition rule (ODR) violation for LTO
* Thu Jul 16 2020 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 1:4.12.3-2
- Fix a typo in the rpm scriptlets (missing underscore)
commit 2d768efc1c39717915361a842b18ec0d8860c297
Author: Jeff Law <law(a)redhat.com>
Date: Mon Jul 20 17:11:30 2020 -0600
Disable LTO
diff --git a/xrootd.spec b/xrootd.spec
index 4ee97b9..bc2c254 100644
--- a/xrootd.spec
+++ b/xrootd.spec
@@ -32,7 +32,7 @@
Name: xrootd
Epoch: 1
Version: 4.12.3
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: Extended ROOT file server
License: LGPLv3+
@@ -285,6 +285,10 @@ This package contains the API documentation of the xrootd libraries.
%patch1 -p1
%build
+# This package violates the ODR (one definition rule). That needs to be fixed
+# before LTO can possibly work.
+%define _lto_cflags %{nil}
+
%if %{oldcmakemacro}
mkdir %{_vpath_builddir}
pushd %{_vpath_builddir}
@@ -729,6 +733,9 @@ fi
%doc %{_pkgdocdir}
%changelog
+* Mon Jul 20 2020 Jeff Law <law(a)redhat.com> - 1:4.12.3-3
+- Disable LTO
+
* Thu Jul 16 2020 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 1:4.12.3-2
- Fix a typo in the rpm scriptlets (missing underscore)