From 6d028b29563d541849263c2c24df4ebf070afdd9 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Wed, 7 Jan 2015 13:55:13 +0100 Subject: [PATCH 1/5] This is a compat package for F19, F20, EPEL5 and EPEL6 only. --- .gitignore | 0 dead.package | 1 + sources | 0 3 files changed, 1 insertion(+) delete mode 100644 .gitignore create mode 100644 dead.package delete mode 100644 sources diff --git a/.gitignore b/.gitignore deleted file mode 100644 index e69de29..0000000 diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..7ed94f4 --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +This is a compat package for F19, F20, EPEL5 and EPEL6 only. diff --git a/sources b/sources deleted file mode 100644 index e69de29..0000000 From 572d47fe3fe7b49495e07e5eaca15838e0c7940e Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Thu, 27 Aug 2020 18:54:00 +0200 Subject: [PATCH 2/5] Parallel installable compat package --- .gitignore | 1 + ...r-collection-of-multi-VO-cert-attrib.patch | 25 ++ ...h-the-Entity.name-field-especially-c.patch | 28 ++ sources | 1 + xrootd-compat.spec | 309 ++++++++++++++++++ ...ag-reset-code-for-ssq-monitor-option.patch | 26 ++ xrootd-fix-typo-in-xrootd-config-help.patch | 25 ++ xrootd-one-definition-rule-fix.patch | 25 ++ ...-prevent-deadlock-in-python-bindings.patch | 45 +++ 9 files changed, 485 insertions(+) create mode 100644 0001-VOMS-Fix-improper-collection-of-multi-VO-cert-attrib.patch create mode 100644 0002-VOMS-Do-not-touch-the-Entity.name-field-especially-c.patch create mode 100644 xrootd-compat.spec create mode 100644 xrootd-correct-flag-reset-code-for-ssq-monitor-option.patch create mode 100644 xrootd-fix-typo-in-xrootd-config-help.patch create mode 100644 xrootd-one-definition-rule-fix.patch create mode 100644 xrootd-prevent-deadlock-in-python-bindings.patch diff --git a/.gitignore b/.gitignore index e69de29..f6a3a77 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/*.tar.gz diff --git a/0001-VOMS-Fix-improper-collection-of-multi-VO-cert-attrib.patch b/0001-VOMS-Fix-improper-collection-of-multi-VO-cert-attrib.patch new file mode 100644 index 0000000..519932f --- /dev/null +++ b/0001-VOMS-Fix-improper-collection-of-multi-VO-cert-attrib.patch @@ -0,0 +1,25 @@ +From 3fdb474682e9050a31fc9acd569aec5920b76145 Mon Sep 17 00:00:00 2001 +From: Andrew Hanushevsky +Date: Tue, 30 Jun 2020 00:27:19 -0700 +Subject: [PATCH 1/2] [VOMS] Fix improper collection of multi-VO cert + attributes. + +--- + src/XrdVoms/XrdVomsFun.cc | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/XrdVoms/XrdVomsFun.cc b/src/XrdVoms/XrdVomsFun.cc +index d3ed34ffa..ba7907475 100644 +--- a/src/XrdVoms/XrdVomsFun.cc ++++ b/src/XrdVoms/XrdVomsFun.cc +@@ -305,7 +305,6 @@ int XrdVomsFun::VOMSFun(XrdSecEntity &ent) + // Same size as std::vector by construction (same information in compact form) + std::vector fqa = (*i).fqan; + std::vector::iterator ifqa = fqa.begin(); +- grps = ""; role = ""; + for (; idat != dat.end(); idat++, ifqa++) { + VOMSDBG(" ---> group: '"<<(*idat).group<<"', role: '"<<(*idat).role<<"', cap: '" <<(*idat).cap<<"'"); + VOMSDBG(" ---> fqan: '"<<(*ifqa)<<"'"); +-- +2.26.2 + diff --git a/0002-VOMS-Do-not-touch-the-Entity.name-field-especially-c.patch b/0002-VOMS-Do-not-touch-the-Entity.name-field-especially-c.patch new file mode 100644 index 0000000..4ff00dd --- /dev/null +++ b/0002-VOMS-Do-not-touch-the-Entity.name-field-especially-c.patch @@ -0,0 +1,28 @@ +From f972b52c1b2ea09bbf856bd185ad1089768128f3 Mon Sep 17 00:00:00 2001 +From: Andrew Hanushevsky +Date: Wed, 1 Jul 2020 23:56:51 -0700 +Subject: [PATCH 2/2] [VOMS] Do not touch the Entity.name field; especially + converting spaces. + +--- + src/XrdVoms/XrdVomsFun.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/XrdVoms/XrdVomsFun.cc b/src/XrdVoms/XrdVomsFun.cc +index ba7907475..aa0c8570b 100644 +--- a/src/XrdVoms/XrdVomsFun.cc ++++ b/src/XrdVoms/XrdVomsFun.cc +@@ -360,8 +360,8 @@ int XrdVomsFun::VOMSFun(XrdSecEntity &ent) + } + + // Fix spaces in XrdSecEntity::name +- char *sp = 0; +- while ((sp = strchr(ent.name, ' '))) { *sp = '\t'; } ++// char *sp = 0; ++// while ((sp = strchr(ent.name, ' '))) { *sp = '\t'; } + + // Adjust the output format, if required + FmtReplace(ent); +-- +2.26.2 + diff --git a/sources b/sources index e69de29..7d12061 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +SHA512 (xrootd-4.12.3.tar.gz) = e4f4ad744a71a7fc69a16f2114b6d5962ddf0b22bd86f7eb19703313d55242813f13be1a1f23c541b966674bdb4854f955843322525f37bc83647e8f2fbe076d diff --git a/xrootd-compat.spec b/xrootd-compat.spec new file mode 100644 index 0000000..dbb327d --- /dev/null +++ b/xrootd-compat.spec @@ -0,0 +1,309 @@ +Name: xrootd-compat +Version: 4.12.3 +Release: 1%{?dist} +Summary: Extended ROOT file server - compat version 4 + +License: LGPLv3+ +URL: http://xrootd.org/ +Source0: http://xrootd.org/download/v%{version}/xrootd-%{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.patch +# Backport minor fixes from upstream git +Patch3: xrootd-correct-flag-reset-code-for-ssq-monitor-option.patch +Patch4: xrootd-fix-typo-in-xrootd-config-help.patch +# Prevent deadlock in Python bindings +# https://github.com/xrootd/xrootd/pull/1260 +Patch5: xrootd-prevent-deadlock-in-python-bindings.patch + +BuildRequires: gcc-c++ +BuildRequires: cmake +BuildRequires: krb5-devel +BuildRequires: libcurl-devel +BuildRequires: libxml2-devel +BuildRequires: ncurses-devel +BuildRequires: openssl-devel +BuildRequires: readline-devel +BuildRequires: zlib-devel +BuildRequires: systemd-devel +BuildRequires: json-c-devel +BuildRequires: libmacaroons-devel +BuildRequires: libuuid-devel +BuildRequires: voms-devel >= 2.0.6 + +%description +The Extended root file server consists of a file server called xrootd +and a cluster management server called cmsd. + +The xrootd server was developed for the root analysis framework to +serve root files. However, the server is agnostic to file types and +provides POSIX-like access to any type of file. + +The cmsd server is the next generation version of the olbd server, +originally developed to cluster and load balance Objectivity/DB AMS +database servers. It provides enhanced capability along with lower +latency and increased throughput. + +This package contains the xrootd 4 version of the server. + +%package -n xrootd4 +Summary: Extended ROOT file server - compat version 4 +Requires: xrootd4-server%{?_isa} = %{version}-%{release} +Requires: xrootd-selinux >= 1:5.0.0 + +%description -n xrootd4 +The Extended root file server consists of a file server called xrootd +and a cluster management server called cmsd. + +The xrootd server was developed for the root analysis framework to +serve root files. However, the server is agnostic to file types and +provides POSIX-like access to any type of file. + +The cmsd server is the next generation version of the olbd server, +originally developed to cluster and load balance Objectivity/DB AMS +database servers. It provides enhanced capability along with lower +latency and increased throughput. + +This package contains the xrootd 4 version of the server. + +%package -n xrootd4-server +Summary: Xrootd server daemons - compat version 4 +Requires: xrootd4-libs%{?_isa} = %{version}-%{release} +Requires: xrootd4-client-libs%{?_isa} = %{version}-%{release} +Requires: xrootd4-server-libs%{?_isa} = %{version}-%{release} +Requires: xrootd-server >= 1:5.0.0 +%{?systemd_requires} + +%description -n xrootd4-server +This package contains the xrootd servers without the SELinux support. +Unless you are installing on a system without SELinux also install the +xrootd-selinux package. + +This package contains the xrootd 4 version of the server. + +%package -n xrootd4-libs +Summary: Libraries used by xrootd servers and clients - compat version 4 + +%description -n xrootd4-libs +This package contains libraries used by the xrootd servers and clients +(compat version 4). + +%package -n xrootd4-client-libs +Summary: Libraries used by xrootd clients - compat version 4 +Requires: xrootd4-libs%{?_isa} = %{version}-%{release} + +%description -n xrootd4-client-libs +This package contains libraries used by xrootd clients (compat version 4). + +%package -n xrootd4-server-libs +Summary: Libraries used by xrootd servers - compat version 4 +Requires: xrootd4-libs%{?_isa} = %{version}-%{release} +Requires: xrootd4-client-libs%{?_isa} = %{version}-%{release} + +%description -n xrootd4-server-libs +This package contains libraries used by xrootd servers (compat version 4). + +%package -n xrootd4-voms +Summary: VOMS attribute extractor plug-in for XRootD - compat version 4 +Requires: xrootd4-libs%{?_isa} = %{version}-%{release} + +%description -n xrootd4-voms +The VOMS attribute extractor plug-in for XRootD (compat version 4). + +%prep +%setup -q -n xrootd-%{version} +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 + +%build +%cmake \ + -H. -B%{_vpath_builddir} \ + -DUSE_LIBC_SEMAPHORE:BOOL=ON \ + -DENABLE_FUSE:BOOL=OFF \ + -DENABLE_PYTHON:BOOL=OFF +%make_build -C %{_vpath_builddir} + +%install +%make_install -C %{_vpath_builddir} + +# Service unit files +mkdir -p %{buildroot}%{_unitdir} + +sed -e 's!%{_bindir}/xrootd!&4!' \ + < packaging/common/xrootd@.service \ + > %{buildroot}%{_unitdir}/xrootd4@.service + +sed -e 's!xrootd@!xrootd4@!' \ + < packaging/common/xrootd@.socket \ + > %{buildroot}%{_unitdir}/xrootd4@.socket + +sed -e 's!xrootd@!xrootd4@!' \ + < packaging/common/xrdhttp@.socket \ + > %{buildroot}%{_unitdir}/xrdhttp4@.socket + +sed -e 's!%{_bindir}/cmsd!&4!' \ + < packaging/common/cmsd@.service \ + > %{buildroot}%{_unitdir}/cmsd4@.service + +sed -e 's!%{_bindir}/frm_xfrd!&4!' \ + < packaging/common/frm_xfrd@.service \ + > %{buildroot}%{_unitdir}/frm_xfrd4@.service + +sed -e 's!%{_bindir}/frm_purged!&4!' \ + < packaging/common/frm_purged@.service \ + > %{buildroot}%{_unitdir}/frm_purged4@.service + +# Remove server binaries not needed for compat package +rm -rf %{buildroot}%{_datadir} +rm %{buildroot}%{_bindir}/cconfig +rm %{buildroot}%{_bindir}/frm_admin +rm %{buildroot}%{_bindir}/frm_xfragent +rm %{buildroot}%{_bindir}/mpxstats +rm %{buildroot}%{_bindir}/wait41 +rm %{buildroot}%{_bindir}/xrdacctest +rm %{buildroot}%{_bindir}/xrdpfc_print +rm %{buildroot}%{_bindir}/xrdpwdadmin +rm %{buildroot}%{_bindir}/xrdsssadmin + +# Remove client binaries not needed for compat package +rm %{buildroot}%{_bindir}/xprep +rm %{buildroot}%{_bindir}/xrd +rm %{buildroot}%{_bindir}/xrdadler32 +rm %{buildroot}%{_bindir}/xrdcopy +rm %{buildroot}%{_bindir}/xrdcp +rm %{buildroot}%{_bindir}/xrdcp-old +rm %{buildroot}%{_bindir}/xrdfs +rm %{buildroot}%{_bindir}/xrdgsiproxy +rm %{buildroot}%{_bindir}/xrdgsitest +rm %{buildroot}%{_bindir}/xrdmapc +rm %{buildroot}%{_bindir}/xrdstagetool + +# Remove devel files not needed for compat package +rm -rf %{buildroot}%{_includedir} +rm %{buildroot}%{_bindir}/xrootd-config +rm %{buildroot}%{_libdir}/libXrdAppUtils.so +rm %{buildroot}%{_libdir}/libXrdCl.so +rm %{buildroot}%{_libdir}/libXrdClient.so +rm %{buildroot}%{_libdir}/libXrdCrypto.so +rm %{buildroot}%{_libdir}/libXrdCryptoLite.so +rm %{buildroot}%{_libdir}/libXrdFfs.so +rm %{buildroot}%{_libdir}/libXrdHttpUtils.so +rm %{buildroot}%{_libdir}/libXrdPosix.so +rm %{buildroot}%{_libdir}/libXrdPosixPreload.so +rm %{buildroot}%{_libdir}/libXrdServer.so +rm %{buildroot}%{_libdir}/libXrdSsiLib.so +rm %{buildroot}%{_libdir}/libXrdSsiShMap.so +rm %{buildroot}%{_libdir}/libXrdUtils.so +rm %{buildroot}%{_libdir}/libXrdXml.so + +# Rename server binaries to allow parallel install +mv %{buildroot}%{_bindir}/cmsd %{buildroot}%{_bindir}/cmsd4 +mv %{buildroot}%{_bindir}/frm_purged %{buildroot}%{_bindir}/frm_purged4 +mv %{buildroot}%{_bindir}/frm_xfrd %{buildroot}%{_bindir}/frm_xfrd4 +mv %{buildroot}%{_bindir}/xrootd %{buildroot}%{_bindir}/xrootd4 + +%ldconfig_scriptlets -n xrootd4-libs + +%ldconfig_scriptlets -n xrootd4-client-libs + +%ldconfig_scriptlets -n xrootd4-server-libs + +%post -n xrootd4-server +if [ $1 -eq 1 ] ; then + systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%preun -n xrootd4-server +if [ $1 -eq 0 ] ; then + for DAEMON in xrootd4 cmsd4 frm_purged4 frm_xfrd4; do + for INSTANCE in `systemctl | grep $DAEMON@ | awk '{print $1;}'`; do + systemctl --no-reload disable $INSTANCE > /dev/null 2>&1 || : + systemctl stop $INSTANCE > /dev/null 2>&1 || : + done + done +fi + +%postun -n xrootd4-server +if [ $1 -ge 1 ] ; then + systemctl daemon-reload >/dev/null 2>&1 || : + for DAEMON in xrootd4 cmsd4 frm_purged4 frm_xfrd4; do + for INSTANCE in `systemctl | grep $DAEMON@ | awk '{print $1;}'`; do + systemctl try-restart $INSTANCE >/dev/null 2>&1 || : + done + done +fi + +%files -n xrootd4 +# Empty + +%files -n xrootd4-server +%{_bindir}/cmsd4 +%{_bindir}/frm_purged4 +%{_bindir}/frm_xfrd4 +%{_bindir}/xrootd4 +%{_unitdir}/* + +%files -n xrootd4-libs +%{_libdir}/libXrdAppUtils.so.* +%{_libdir}/libXrdCrypto.so.* +%{_libdir}/libXrdCryptoLite.so.* +%{_libdir}/libXrdUtils.so.* +%{_libdir}/libXrdXml.so.* +# Plugins +%{_libdir}/libXrdCksCalczcrc32-4.so +%{_libdir}/libXrdCryptossl-4.so +%{_libdir}/libXrdSec-4.so +%{_libdir}/libXrdSecProt-4.so +%{_libdir}/libXrdSecgsi-4.so +%{_libdir}/libXrdSecgsiAUTHZVO-4.so +%{_libdir}/libXrdSecgsiGMAPDN-4.so +%{_libdir}/libXrdSeckrb5-4.so +%{_libdir}/libXrdSecpwd-4.so +%{_libdir}/libXrdSecsss-4.so +%{_libdir}/libXrdSecunix-4.so +%license COPYING* LICENSE + +%files -n xrootd4-client-libs +%{_libdir}/libXrdCl.so.* +%{_libdir}/libXrdClient.so.* +%{_libdir}/libXrdFfs.so.* +%{_libdir}/libXrdPosix.so.* +%{_libdir}/libXrdPosixPreload.so.* +%{_libdir}/libXrdSsiLib.so.* +%{_libdir}/libXrdSsiShMap.so.* +# Plugins +%{_libdir}/libXrdClProxyPlugin-4.so + +%files -n xrootd4-server-libs +%{_libdir}/libXrdHttpUtils.so.* +%{_libdir}/libXrdServer.so.* +# Plugins +%{_libdir}/libXrdBlacklistDecision-4.so +%{_libdir}/libXrdBwm-4.so +%{_libdir}/libXrdCmsRedirectLocal-4.so +%{_libdir}/libXrdFileCache-4.so +%{_libdir}/libXrdHttp-4.so +%{_libdir}/libXrdHttpTPC-4.so +%{_libdir}/libXrdMacaroons-4.so +%{_libdir}/libXrdN2No2p-4.so +%{_libdir}/libXrdOssSIgpfsT-4.so +%{_libdir}/libXrdPss-4.so +%{_libdir}/libXrdSsi-4.so +%{_libdir}/libXrdSsiLog-4.so +%{_libdir}/libXrdThrottle-4.so +%{_libdir}/libXrdXrootd-4.so + +%files -n xrootd4-voms +%{_libdir}/libXrdVoms-4.so +%{_libdir}/libXrdSecgsiVOMS-4.so + +%changelog +* Wed Aug 26 2020 Mattias Ellert - 4.12.3-1 +- Parallel installable compat package 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 +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::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 +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.patch b/xrootd-one-definition-rule-fix.patch new file mode 100644 index 0000000..7d2559b --- /dev/null +++ b/xrootd-one-definition-rule-fix.patch @@ -0,0 +1,25 @@ +From d36276964ce7efe0358448e2196ff1da071d1618 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +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-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 +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 + From b551b31db96d7c246827e7e3a0420d575bdfbca0 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Fri, 4 Sep 2020 20:24:32 +0200 Subject: [PATCH 3/5] Update to version 4.12.4 Drop patches (accepted upstream or previously backported) --- ...r-collection-of-multi-VO-cert-attrib.patch | 25 ----------- ...h-the-Entity.name-field-especially-c.patch | 28 ------------ sources | 2 +- xrootd-compat.spec | 27 ++++------- ...ag-reset-code-for-ssq-monitor-option.patch | 26 ----------- xrootd-fix-typo-in-xrootd-config-help.patch | 25 ----------- xrootd-one-definition-rule-fix.patch | 25 ----------- ...-prevent-deadlock-in-python-bindings.patch | 45 ------------------- 8 files changed, 9 insertions(+), 194 deletions(-) delete mode 100644 0001-VOMS-Fix-improper-collection-of-multi-VO-cert-attrib.patch delete mode 100644 0002-VOMS-Do-not-touch-the-Entity.name-field-especially-c.patch delete mode 100644 xrootd-correct-flag-reset-code-for-ssq-monitor-option.patch delete mode 100644 xrootd-fix-typo-in-xrootd-config-help.patch delete mode 100644 xrootd-one-definition-rule-fix.patch delete mode 100644 xrootd-prevent-deadlock-in-python-bindings.patch diff --git a/0001-VOMS-Fix-improper-collection-of-multi-VO-cert-attrib.patch b/0001-VOMS-Fix-improper-collection-of-multi-VO-cert-attrib.patch deleted file mode 100644 index 519932f..0000000 --- a/0001-VOMS-Fix-improper-collection-of-multi-VO-cert-attrib.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 3fdb474682e9050a31fc9acd569aec5920b76145 Mon Sep 17 00:00:00 2001 -From: Andrew Hanushevsky -Date: Tue, 30 Jun 2020 00:27:19 -0700 -Subject: [PATCH 1/2] [VOMS] Fix improper collection of multi-VO cert - attributes. - ---- - src/XrdVoms/XrdVomsFun.cc | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/src/XrdVoms/XrdVomsFun.cc b/src/XrdVoms/XrdVomsFun.cc -index d3ed34ffa..ba7907475 100644 ---- a/src/XrdVoms/XrdVomsFun.cc -+++ b/src/XrdVoms/XrdVomsFun.cc -@@ -305,7 +305,6 @@ int XrdVomsFun::VOMSFun(XrdSecEntity &ent) - // Same size as std::vector by construction (same information in compact form) - std::vector fqa = (*i).fqan; - std::vector::iterator ifqa = fqa.begin(); -- grps = ""; role = ""; - for (; idat != dat.end(); idat++, ifqa++) { - VOMSDBG(" ---> group: '"<<(*idat).group<<"', role: '"<<(*idat).role<<"', cap: '" <<(*idat).cap<<"'"); - VOMSDBG(" ---> fqan: '"<<(*ifqa)<<"'"); --- -2.26.2 - diff --git a/0002-VOMS-Do-not-touch-the-Entity.name-field-especially-c.patch b/0002-VOMS-Do-not-touch-the-Entity.name-field-especially-c.patch deleted file mode 100644 index 4ff00dd..0000000 --- a/0002-VOMS-Do-not-touch-the-Entity.name-field-especially-c.patch +++ /dev/null @@ -1,28 +0,0 @@ -From f972b52c1b2ea09bbf856bd185ad1089768128f3 Mon Sep 17 00:00:00 2001 -From: Andrew Hanushevsky -Date: Wed, 1 Jul 2020 23:56:51 -0700 -Subject: [PATCH 2/2] [VOMS] Do not touch the Entity.name field; especially - converting spaces. - ---- - src/XrdVoms/XrdVomsFun.cc | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/XrdVoms/XrdVomsFun.cc b/src/XrdVoms/XrdVomsFun.cc -index ba7907475..aa0c8570b 100644 ---- a/src/XrdVoms/XrdVomsFun.cc -+++ b/src/XrdVoms/XrdVomsFun.cc -@@ -360,8 +360,8 @@ int XrdVomsFun::VOMSFun(XrdSecEntity &ent) - } - - // Fix spaces in XrdSecEntity::name -- char *sp = 0; -- while ((sp = strchr(ent.name, ' '))) { *sp = '\t'; } -+// char *sp = 0; -+// while ((sp = strchr(ent.name, ' '))) { *sp = '\t'; } - - // Adjust the output format, if required - FmtReplace(ent); --- -2.26.2 - diff --git a/sources b/sources index 7d12061..fb6124b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xrootd-4.12.3.tar.gz) = e4f4ad744a71a7fc69a16f2114b6d5962ddf0b22bd86f7eb19703313d55242813f13be1a1f23c541b966674bdb4854f955843322525f37bc83647e8f2fbe076d +SHA512 (xrootd-4.12.4.tar.gz) = 8cbc5e5f270f39c48b7c75a15e2721ebb793f13419608834777f39bc0ee7dd8c4fad481367f997172dae5029d9e5e4e9d7870843bd5c9957fa9fe439592c4364 diff --git a/xrootd-compat.spec b/xrootd-compat.spec index dbb327d..c70645c 100644 --- a/xrootd-compat.spec +++ b/xrootd-compat.spec @@ -1,23 +1,11 @@ Name: xrootd-compat -Version: 4.12.3 +Version: 4.12.4 Release: 1%{?dist} Summary: Extended ROOT file server - compat version 4 License: LGPLv3+ URL: http://xrootd.org/ Source0: http://xrootd.org/download/v%{version}/xrootd-%{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.patch -# Backport minor fixes from upstream git -Patch3: xrootd-correct-flag-reset-code-for-ssq-monitor-option.patch -Patch4: xrootd-fix-typo-in-xrootd-config-help.patch -# Prevent deadlock in Python bindings -# https://github.com/xrootd/xrootd/pull/1260 -Patch5: xrootd-prevent-deadlock-in-python-bindings.patch BuildRequires: gcc-c++ BuildRequires: cmake @@ -86,6 +74,7 @@ This package contains the xrootd 4 version of the server. %package -n xrootd4-libs Summary: Libraries used by xrootd servers and clients - compat version 4 +Conflicts: xrootd-libs < 1:5.0.0 %description -n xrootd4-libs This package contains libraries used by the xrootd servers and clients @@ -94,6 +83,7 @@ This package contains libraries used by the xrootd servers and clients %package -n xrootd4-client-libs Summary: Libraries used by xrootd clients - compat version 4 Requires: xrootd4-libs%{?_isa} = %{version}-%{release} +Conflicts: xrootd-client-libs < 1:5.0.0 %description -n xrootd4-client-libs This package contains libraries used by xrootd clients (compat version 4). @@ -102,6 +92,7 @@ This package contains libraries used by xrootd clients (compat version 4). Summary: Libraries used by xrootd servers - compat version 4 Requires: xrootd4-libs%{?_isa} = %{version}-%{release} Requires: xrootd4-client-libs%{?_isa} = %{version}-%{release} +Conflicts: xrootd-server-libs < 1:5.0.0 %description -n xrootd4-server-libs This package contains libraries used by xrootd servers (compat version 4). @@ -115,12 +106,6 @@ The VOMS attribute extractor plug-in for XRootD (compat version 4). %prep %setup -q -n xrootd-%{version} -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 %build %cmake \ @@ -305,5 +290,9 @@ fi %{_libdir}/libXrdSecgsiVOMS-4.so %changelog +* Fri Sep 04 2020 Mattias Ellert - 4.12.4-1 +- Update to version 4.12.4 +- Drop patches (accepted upstream or previously backported) + * Wed Aug 26 2020 Mattias Ellert - 4.12.3-1 - Parallel installable compat package diff --git a/xrootd-correct-flag-reset-code-for-ssq-monitor-option.patch b/xrootd-correct-flag-reset-code-for-ssq-monitor-option.patch deleted file mode 100644 index 0bec83c..0000000 --- a/xrootd-correct-flag-reset-code-for-ssq-monitor-option.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 831d73737f07c6c9fb45b500489cca7b335e004e Mon Sep 17 00:00:00 2001 -From: Andrew Hanushevsky -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::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 deleted file mode 100644 index 1bff916..0000000 --- a/xrootd-fix-typo-in-xrootd-config-help.patch +++ /dev/null @@ -1,25 +0,0 @@ -From b3320b2032d56ad997fe3fb45f6eac94d38f19be Mon Sep 17 00:00:00 2001 -From: Oksana Shadura -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.patch b/xrootd-one-definition-rule-fix.patch deleted file mode 100644 index 7d2559b..0000000 --- a/xrootd-one-definition-rule-fix.patch +++ /dev/null @@ -1,25 +0,0 @@ -From d36276964ce7efe0358448e2196ff1da071d1618 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -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-prevent-deadlock-in-python-bindings.patch b/xrootd-prevent-deadlock-in-python-bindings.patch deleted file mode 100644 index db5c05e..0000000 --- a/xrootd-prevent-deadlock-in-python-bindings.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 23779e49df509fd3aab33b4fc55ba2b0610f62ad Mon Sep 17 00:00:00 2001 -From: Chris Burr -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 - From 2860d85150ea602d46ad11ce4203ef365c79fc15 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Fri, 16 Oct 2020 11:04:32 +0200 Subject: [PATCH 4/5] Update to version 4.12.5 --- sources | 2 +- xrootd-compat.spec | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/sources b/sources index fb6124b..6ea24ff 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xrootd-4.12.4.tar.gz) = 8cbc5e5f270f39c48b7c75a15e2721ebb793f13419608834777f39bc0ee7dd8c4fad481367f997172dae5029d9e5e4e9d7870843bd5c9957fa9fe439592c4364 +SHA512 (xrootd-4.12.5.tar.gz) = c252866ccdc4465c9ffe3f5cb4bb83a2a70e775db5ff3a55bcd8ac70c72d280ea41fb31501f30550d8ac61b6d474ce602e0ee8a02485f1f2722617aeb25aff0d diff --git a/xrootd-compat.spec b/xrootd-compat.spec index c70645c..9eebf8f 100644 --- a/xrootd-compat.spec +++ b/xrootd-compat.spec @@ -1,5 +1,5 @@ Name: xrootd-compat -Version: 4.12.4 +Version: 4.12.5 Release: 1%{?dist} Summary: Extended ROOT file server - compat version 4 @@ -290,6 +290,9 @@ fi %{_libdir}/libXrdSecgsiVOMS-4.so %changelog +* Fri Oct 16 2020 Mattias Ellert - 4.12.5-1 +- Update to version 4.12.5 + * Fri Sep 04 2020 Mattias Ellert - 4.12.4-1 - Update to version 4.12.4 - Drop patches (accepted upstream or previously backported) From d3ad7631cbad27f45a42f42f29db958f256c4858 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Fri, 11 Dec 2020 16:23:26 +0100 Subject: [PATCH 5/5] Update to version 4.12.6 --- sources | 2 +- xrootd-compat.spec | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/sources b/sources index 6ea24ff..b1e9366 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xrootd-4.12.5.tar.gz) = c252866ccdc4465c9ffe3f5cb4bb83a2a70e775db5ff3a55bcd8ac70c72d280ea41fb31501f30550d8ac61b6d474ce602e0ee8a02485f1f2722617aeb25aff0d +SHA512 (xrootd-4.12.6.tar.gz) = c186f7812636a20366001912a423f6913a73ed00ba281452a34e4670d309eed193fc2a486f727d62dcdc72ecd41ce0badf5e07d8f91a54f33985d5a47bf0b0b2 diff --git a/xrootd-compat.spec b/xrootd-compat.spec index 9eebf8f..0f34112 100644 --- a/xrootd-compat.spec +++ b/xrootd-compat.spec @@ -1,5 +1,5 @@ Name: xrootd-compat -Version: 4.12.5 +Version: 4.12.6 Release: 1%{?dist} Summary: Extended ROOT file server - compat version 4 @@ -290,6 +290,9 @@ fi %{_libdir}/libXrdSecgsiVOMS-4.so %changelog +* Fri Dec 11 2020 Mattias Ellert - 4.12.6-1 +- Update to version 4.12.6 + * Fri Oct 16 2020 Mattias Ellert - 4.12.5-1 - Update to version 4.12.5