diff --git a/0001-Define-ENODATA-if-not-defined.patch b/0001-Define-ENODATA-if-not-defined.patch new file mode 100644 index 0000000..0302498 --- /dev/null +++ b/0001-Define-ENODATA-if-not-defined.patch @@ -0,0 +1,47 @@ +From b0584849cfcd36bce4467df5b4d5a36282d09c77 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Tue, 14 Dec 2021 09:56:45 +0100 +Subject: [PATCH] Define ENODATA if not defined +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fixes compilation errors on Debian kfreebsd: + +../src/XrdOuc/XrdOucUtils.cc: In static member function ‘static char* XrdOucUtils::getFile(const char*, int&, int, bool)’: +../src/XrdOuc/XrdOucUtils.cc:474:45: error: ‘ENODATA’ was not declared in this scope + 474 | if (Stat.st_size == 0 && notempty) {rc = ENODATA; return 0;} + | ^~~~~~~ +--- + src/XrdOuc/XrdOucUtils.cc | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/src/XrdOuc/XrdOucUtils.cc b/src/XrdOuc/XrdOucUtils.cc +index ca54350e6..c6b96b7ee 100644 +--- a/src/XrdOuc/XrdOucUtils.cc ++++ b/src/XrdOuc/XrdOucUtils.cc +@@ -53,7 +53,11 @@ + #include "XrdSys/XrdSysError.hh" + #include "XrdSys/XrdSysPlatform.hh" + #include "XrdSys/XrdSysPthread.hh" +- ++ ++#ifndef ENODATA ++#define ENODATA ENOATTR ++#endif ++ + /******************************************************************************/ + /* L o c a l M e t h o d s */ + /******************************************************************************/ +@@ -469,7 +473,7 @@ char *XrdOucUtils::getFile(const char *path, int &rc, int maxsz, bool notempty) + // + if (Stat.st_size > maxsz) {rc = EFBIG; return 0;} + +-// Make sure the file is not empty is empty files are disallowed ++// Make sure the file is not empty if empty files are disallowed + // + if (Stat.st_size == 0 && notempty) {rc = ENODATA; return 0;} + +-- +2.33.1 + diff --git a/0001-Disable-LTO-for-XrdPosix-on-32-bit-architectures.patch b/0001-Disable-LTO-for-XrdPosix-on-32-bit-architectures.patch new file mode 100644 index 0000000..06010de --- /dev/null +++ b/0001-Disable-LTO-for-XrdPosix-on-32-bit-architectures.patch @@ -0,0 +1,27 @@ +From fdb74096242e76427b64c0f82dba77b05e611ad9 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Thu, 24 Feb 2022 18:58:20 +0100 +Subject: [PATCH] Disable LTO for XrdPosix on 32 bit architectures + +--- + src/XrdPosix.cmake | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/XrdPosix.cmake b/src/XrdPosix.cmake +index cf3247818..453c20379 100644 +--- a/src/XrdPosix.cmake ++++ b/src/XrdPosix.cmake +@@ -60,6 +60,10 @@ add_library( + XrdPosix/XrdPosixExtern.hh + XrdPosix/XrdPosixOsDep.hh ) + ++if(CMAKE_SIZEOF_VOID_P EQUAL 4) ++ target_compile_options(XrdPosixPreload PRIVATE -fno-lto) ++endif() ++ + target_link_libraries( + XrdPosixPreload + XrdPosix +-- +2.35.1 + diff --git a/0001-Fixes-for-openssl-3.patch b/0001-Fixes-for-openssl-3.patch new file mode 100644 index 0000000..fa80d30 --- /dev/null +++ b/0001-Fixes-for-openssl-3.patch @@ -0,0 +1,186 @@ +From 67444c375d4d6c9a1327012b29afcd76cc45ddf0 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Thu, 3 Mar 2022 22:38:06 +0100 +Subject: [PATCH] Fixes for openssl 3 + +--- + src/XrdCrypto/openssl3/XrdCryptosslAux.cc | 56 ++++++++++++-------- + src/XrdCrypto/openssl3/XrdCryptosslCipher.cc | 2 +- + src/XrdCrypto/openssl3/XrdCryptosslRSA.cc | 5 +- + 3 files changed, 39 insertions(+), 24 deletions(-) + +diff --git a/src/XrdCrypto/openssl3/XrdCryptosslAux.cc b/src/XrdCrypto/openssl3/XrdCryptosslAux.cc +index f5cea5845..86c78e6a8 100644 +--- a/src/XrdCrypto/openssl3/XrdCryptosslAux.cc ++++ b/src/XrdCrypto/openssl3/XrdCryptosslAux.cc +@@ -550,41 +550,47 @@ int XrdCryptosslX509ParseFile(FILE *fcer, + DEBUG("no RSA private key found in file " << fname); + } else { + DEBUG("found a RSA private key in file " << fname); +- // We need to complete the key: +- // check all the private keys of the loaded certificates +- { ++ // We need to complete the key ++ // check all the public keys of the loaded certificates ++ if (XrdCheckRSA(rsa) == 1) { + // Loop over the chain certificates + XrdCryptoX509 *cert = chain->Begin(); +- while (cert->Opaque()) { ++ while (cert && cert->Opaque()) { + if (cert->type != XrdCryptoX509::kCA) { + // Get the public key + EVP_PKEY *evpp = X509_get_pubkey((X509 *)(cert->Opaque())); + if (evpp) { +- EVP_PKEY_copy_parameters(evpp, rsa); +- DEBUG("RSA key completed for '"<Subject()<<"'"); + // Test consistency +- if (XrdCheckRSA(evpp) == 1) { ++#if OPENSSL_VERSION_NUMBER < 0x30000000L ++ int rc = EVP_PKEY_cmp(evpp, rsa); ++#else ++ int rc = EVP_PKEY_eq(evpp, rsa); ++#endif ++ EVP_PKEY_free(evpp); ++ if (rc == 1) { ++ DEBUG("RSA key completed"); + // Update PKI in certificate +- cert->SetPKI((XrdCryptoX509data)evpp); ++ cert->SetPKI((XrdCryptoX509data)rsa); + // Update status + cert->PKI()->status = XrdCryptoRSA::kComplete; + break; + } +- EVP_PKEY_free(evpp); + } + } + // Get next + cert = chain->Next(); + } ++ if (!cert) ++ EVP_PKEY_free(rsa); + } +- // Cleanup +- EVP_PKEY_free(rsa); ++ else ++ EVP_PKEY_free(rsa); + } + if (fkey) { + // Re-establish original fcer pointer + fclose(fcer); + fcer = fcersave; +- } ++ } + } + + // We are done +@@ -655,34 +661,40 @@ int XrdCryptosslX509ParseBucket(XrdSutBucket *b, XrdCryptoX509Chain *chain) + } else { + DEBUG("found a RSA private key in bucket"); + // We need to complete the key +- // check all the private keys of the loaded certificates +- { ++ // check all the public keys of the loaded certificates ++ if (XrdCheckRSA(rsa) == 1) { + // Loop over the chain certificates + XrdCryptoX509 *cert = chain->Begin(); +- while (cert->Opaque()) { ++ while (cert && cert->Opaque()) { + if (cert->type != XrdCryptoX509::kCA) { + // Get the public key + EVP_PKEY *evpp = X509_get_pubkey((X509 *)(cert->Opaque())); + if (evpp) { +- EVP_PKEY_copy_parameters(evpp, rsa); +- DEBUG("RSA key completed"); + // Test consistency +- if (XrdCheckRSA(evpp) == 1) { ++#if OPENSSL_VERSION_NUMBER < 0x30000000L ++ int rc = EVP_PKEY_cmp(evpp, rsa); ++#else ++ int rc = EVP_PKEY_eq(evpp, rsa); ++#endif ++ EVP_PKEY_free(evpp); ++ if (rc == 1) { ++ DEBUG("RSA key completed"); + // Update PKI in certificate +- cert->SetPKI((XrdCryptoX509data)evpp); ++ cert->SetPKI((XrdCryptoX509data)rsa); + // Update status + cert->PKI()->status = XrdCryptoRSA::kComplete; + break; + } +- EVP_PKEY_free(evpp); + } + } + // Get next + cert = chain->Next(); + } ++ if (!cert) ++ EVP_PKEY_free(rsa); + } +- // Cleanup +- EVP_PKEY_free(rsa); ++ else ++ EVP_PKEY_free(rsa); + } + } + +diff --git a/src/XrdCrypto/openssl3/XrdCryptosslCipher.cc b/src/XrdCrypto/openssl3/XrdCryptosslCipher.cc +index 6fc7bc35f..937f9693a 100644 +--- a/src/XrdCrypto/openssl3/XrdCryptosslCipher.cc ++++ b/src/XrdCrypto/openssl3/XrdCryptosslCipher.cc +@@ -159,7 +159,7 @@ static int XrdCheckDH (EVP_PKEY *pkey) { + } + #else + EVP_PKEY_CTX *ckctx = EVP_PKEY_CTX_new(pkey, 0); +- rc = EVP_PKEY_check(ckctx); ++ rc = EVP_PKEY_param_check(ckctx); + EVP_PKEY_CTX_free(ckctx); + #endif + return rc; +diff --git a/src/XrdCrypto/openssl3/XrdCryptosslRSA.cc b/src/XrdCrypto/openssl3/XrdCryptosslRSA.cc +index 1ce9c8d2f..dca76f8ac 100644 +--- a/src/XrdCrypto/openssl3/XrdCryptosslRSA.cc ++++ b/src/XrdCrypto/openssl3/XrdCryptosslRSA.cc +@@ -130,7 +130,6 @@ XrdCryptosslRSA::XrdCryptosslRSA(int bits, int exp) + if (XrdCheckRSA(fEVP) == 1) { + status = kComplete; + DEBUG("basic length: "< 0 && ke <= int(loutmax - lout)) { + size_t lc = (len > lcmax) ? lcmax : len; ++ lout = loutmax - ke; + if (EVP_PKEY_sign(ctx, (unsigned char *)&out[ke], &lout, + (unsigned char *)&in[kk], lc) <= 0) { + EVP_PKEY_CTX_free(ctx); +@@ -579,6 +579,7 @@ int XrdCryptosslRSA::EncryptPublic(const char *in, int lin, char *out, int loutm + EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_OAEP_PADDING); + while (len > 0 && ke <= int(loutmax - lout)) { + size_t lc = (len > lcmax) ? lcmax : len; ++ lout = loutmax - ke; + if (EVP_PKEY_encrypt(ctx, (unsigned char *)&out[ke], &lout, + (unsigned char *)&in[kk], lc) <= 0) { + EVP_PKEY_CTX_free(ctx); +@@ -632,6 +633,7 @@ int XrdCryptosslRSA::DecryptPrivate(const char *in, int lin, char *out, int lout + EVP_PKEY_decrypt_init(ctx); + EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_OAEP_PADDING); + while (len > 0 && ke <= int(loutmax - lout)) { ++ lout = loutmax - ke; + if (EVP_PKEY_decrypt(ctx, (unsigned char *)&out[ke], &lout, + (unsigned char *)&in[kk], lcmax) <= 0) { + EVP_PKEY_CTX_free(ctx); +@@ -685,6 +687,7 @@ int XrdCryptosslRSA::DecryptPublic(const char *in, int lin, char *out, int loutm + EVP_PKEY_verify_recover_init(ctx); + EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PADDING); + while (len > 0 && ke <= int(loutmax - lout)) { ++ lout = loutmax - ke; + if (EVP_PKEY_verify_recover(ctx, (unsigned char *)&out[ke], &lout, + (unsigned char *)&in[kk], lcmax) <= 0) { + EVP_PKEY_CTX_free(ctx); +-- +2.35.1 + diff --git a/0001-Ignore-Warray-bounds-warnings-from-stricter-check-in.patch b/0001-Ignore-Warray-bounds-warnings-from-stricter-check-in.patch new file mode 100644 index 0000000..de803fc --- /dev/null +++ b/0001-Ignore-Warray-bounds-warnings-from-stricter-check-in.patch @@ -0,0 +1,94 @@ +From 8095e021588150a584371ffbbf50e5b0bb7d4ede Mon Sep 17 00:00:00 2001 +From: Mattias Ellert +Date: Fri, 4 Feb 2022 21:20:47 +0100 +Subject: [PATCH] Ignore -Warray-bounds warnings from stricter check in gcc 12. + +.../src/XrdFrm/XrdFrmMonitor.cc: In function 'XrdFrmMonitor::Init(char const*, char const*, char const*)': +.../src/XrdFrm/XrdFrmMonitor.cc:158:12: warning: array subscript 'struct XrdXrootdMonMap[0]' is partly outside array bounds of 'unsigned char[1036]' [-Warray-bounds] + 158 | mP->hdr.pseq = 0; + | ~~~~~~~~^~~~ +.../src/XrdFrm/XrdFrmMonitor.cc:155:26: note: object of size [13, 1036] allocated by 'malloc' + 155 | idRec = (char *)malloc(idLen+1); + | ~~~~~~^~~~~~~~~ +.../src/XrdFrm/XrdFrmMonitor.cc:159:8: warning: array subscript 'struct XrdXrootdMonMap[0]' is partly outside array bounds of 'unsigned char[1036]' [-Warray-bounds] + 159 | mP->dictid = 0; + | ~~~~^~~~~~ +.../src/XrdFrm/XrdFrmMonitor.cc:155:26: note: object of size [13, 1036] allocated by 'malloc' + 155 | idRec = (char *)malloc(idLen+1); + | ~~~~~~^~~~~~~~~ + +.../src/XrdXrootd/XrdXrootdMonitor.cc: In function 'XrdXrootdMonitor::Init(XrdScheduler*, XrdSysError*, char const*, char const*, char const*, int)': +.../src/XrdXrootd/XrdXrootdMonitor.cc:634:12: warning: array subscript 'struct XrdXrootdMonMap[0]' is partly outside array bounds of 'unsigned char[1036]' [-Warray-bounds] + 634 | mP->hdr.pseq = 0; + | ~~~~~~~~^~~~ +.../src/XrdXrootd/XrdXrootdMonitor.cc:631:26: note: object of size [13, 1036] allocated by 'malloc' + 631 | idRec = (char *)malloc(idLen+1); + | ~~~~~~^~~~~~~~~ +.../src/XrdXrootd/XrdXrootdMonitor.cc:635:8: warning: array subscript 'struct XrdXrootdMonMap[0]' is partly outside array bounds of 'unsigned char[1036]' [-Warray-bounds] + 635 | mP->dictid = 0; + | ~~~~^~~~~~ +.../src/XrdXrootd/XrdXrootdMonitor.cc:631:26: note: object of size [13, 1036] allocated by 'malloc' + 631 | idRec = (char *)malloc(idLen+1); + | ~~~~~~^~~~~~~~~ +--- + src/XrdFrm/XrdFrmMonitor.cc | 9 +++++++++ + src/XrdXrootd/XrdXrootdMonitor.cc | 9 +++++++++ + 2 files changed, 18 insertions(+) + +diff --git a/src/XrdFrm/XrdFrmMonitor.cc b/src/XrdFrm/XrdFrmMonitor.cc +index a453617a6..5abe5ff31 100644 +--- a/src/XrdFrm/XrdFrmMonitor.cc ++++ b/src/XrdFrm/XrdFrmMonitor.cc +@@ -149,6 +149,12 @@ int XrdFrmMonitor::Init(const char *iHost, const char *iProg, const char *iName) + // + if (!isEnabled) return 1; + ++// Ignore array bounds warning from gcc 12 triggered because the allocated ++// memory for the XrdXrootdMonMap is smaller than sizeof(XrdXrootdMonMap) ++#if defined(__GNUC__) && __GNUC__ >= 12 ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif + // Create identification record + // + idLen = strlen(iBuff) + sizeof(XrdXrootdMonHeader) + sizeof(kXR_int32); +@@ -158,6 +164,9 @@ int XrdFrmMonitor::Init(const char *iHost, const char *iProg, const char *iName) + mP->hdr.pseq = 0; + mP->dictid = 0; + strcpy(mP->info, iBuff); ++#if defined(__GNUC__) && __GNUC__ >= 12 ++#pragma GCC diagnostic pop ++#endif + + // Setup the primary destination + // +diff --git a/src/XrdXrootd/XrdXrootdMonitor.cc b/src/XrdXrootd/XrdXrootdMonitor.cc +index 2926bae75..bb0f0a242 100644 +--- a/src/XrdXrootd/XrdXrootdMonitor.cc ++++ b/src/XrdXrootd/XrdXrootdMonitor.cc +@@ -625,6 +625,12 @@ void XrdXrootdMonitor::Init(XrdScheduler *sp, XrdSysError *errp, + kySIDSZ = strlen(kySID); + monHost = strdup(iHost); + ++// Ignore array bounds warning from gcc 12 triggered because the allocated ++// memory for the XrdXrootdMonMap is smaller than sizeof(XrdXrootdMonMap) ++#if defined(__GNUC__) && __GNUC__ >= 12 ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif + // Create identification record + // + idLen = strlen(iBuff) + sizeof(XrdXrootdMonHeader) + sizeof(kXR_int32); +@@ -634,6 +640,9 @@ void XrdXrootdMonitor::Init(XrdScheduler *sp, XrdSysError *errp, + mP->hdr.pseq = 0; + mP->dictid = 0; + strcpy(mP->info, iBuff); ++#if defined(__GNUC__) && __GNUC__ >= 12 ++#pragma GCC diagnostic pop ++#endif + + // Generate a CGI version of all the variations + // +-- +2.34.1 + diff --git a/0001-Make-documentation-self-contained.patch b/0001-Make-documentation-self-contained.patch deleted file mode 100644 index bba4217..0000000 --- a/0001-Make-documentation-self-contained.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 8b924dbc92d3cce474421fbd7974f3d22d64d51c Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Wed, 12 Aug 2026 17:00:45 +0200 -Subject: [PATCH] Make documentation self-contained - ---- - README.md | 9 +-------- - 1 file changed, 1 insertion(+), 8 deletions(-) - -diff --git a/README.md b/README.md -index bafd1112d..167d476e0 100644 ---- a/README.md -+++ b/README.md -@@ -1,12 +1,5 @@ --[![Repology](https://img.shields.io/badge/repology-xrootd-blue)](https://repology.org/project/xrootd/packages) --[![CDash](https://img.shields.io/badge/CDash-XRootD-limegreen)](https://my.cdash.org/index.php?project=XRootD) --[![ABI](https://github.com/xrootd/xrootd/actions/workflows/ABI.yml/badge.svg)](https://github.com/xrootd/xrootd/actions/workflows/ABI.yml) --[![CI](https://github.com/xrootd/xrootd/actions/workflows/CI.yml/badge.svg)](https://github.com/xrootd/xrootd/actions/workflows/CI.yml) --[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/11900/badge)](https://www.bestpractices.dev/projects/11900) --[![LFX Health Score](https://insights.linuxfoundation.org/api/badge/health-score?project=xrootd)](https://insights.linuxfoundation.org/project/xrootd) -- -

-- -+ -

- - ## XRootD: eXtended ROOT Daemon --- -2.55.0 - diff --git a/0001-Unbundle-gtest.patch b/0001-Unbundle-gtest.patch deleted file mode 100644 index 1bbac2e..0000000 --- a/0001-Unbundle-gtest.patch +++ /dev/null @@ -1,25 +0,0 @@ -From cd11f615e749a1fcdd353edd30505c4e8da897db Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Tue, 11 Aug 2026 23:53:15 +0200 -Subject: [PATCH] Unbundle gtest - ---- - cmake/XRootDFindLibs.cmake | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/cmake/XRootDFindLibs.cmake b/cmake/XRootDFindLibs.cmake -index e47dfb83e..3788f5ed4 100644 ---- a/cmake/XRootDFindLibs.cmake -+++ b/cmake/XRootDFindLibs.cmake -@@ -89,7 +89,7 @@ if( ENABLE_XRDOSSARC ) - endif() - - if( ENABLE_TESTS ) -- add_subdirectory(vendor/googletest EXCLUDE_FROM_ALL) -+ find_package( GTest REQUIRED ) - - set( BUILD_TESTS TRUE ) - --- -2.55.0 - diff --git a/0001-Unbundle-tinyxml.patch b/0001-Unbundle-tinyxml.patch deleted file mode 100644 index 9c98c2c..0000000 --- a/0001-Unbundle-tinyxml.patch +++ /dev/null @@ -1,62 +0,0 @@ -From bd81e2e922bd44c755ad77cf29ca45570cc934ec Mon Sep 17 00:00:00 2001 -From: Mattias Ellert -Date: Tue, 21 Apr 2026 00:38:07 +0200 -Subject: [PATCH] Unbundle tinyxml - ---- - cmake/FindTinyXml.cmake | 18 ++++++++++++++++++ - src/XrdXml/tinyxml/CMakeLists.txt | 12 ++++++++++++ - 2 files changed, 30 insertions(+) - create mode 100644 cmake/FindTinyXml.cmake - -diff --git a/cmake/FindTinyXml.cmake b/cmake/FindTinyXml.cmake -new file mode 100644 -index 000000000..75c752707 ---- /dev/null -+++ b/cmake/FindTinyXml.cmake -@@ -0,0 +1,18 @@ -+FIND_PATH(TINYXML_INCLUDE_DIR tinyxml.h -+ HINTS -+ ${TINYXML_DIR} -+ $ENV{TINYXML_DIR} -+ /usr -+ PATH_SUFFIXES include -+) -+ -+FIND_LIBRARY(TINYXML_LIBRARIES tinyxml -+ HINTS -+ ${TINYXML_DIR} -+ $ENV{TINYXML_DIR} -+ /usr -+ PATH_SUFFIXES lib -+) -+ -+INCLUDE(FindPackageHandleStandardArgs) -+FIND_PACKAGE_HANDLE_STANDARD_ARGS(TinyXml DEFAULT_MSG TINYXML_LIBRARIES TINYXML_INCLUDE_DIR) -diff --git a/src/XrdXml/tinyxml/CMakeLists.txt b/src/XrdXml/tinyxml/CMakeLists.txt -index db7d4924e..f87ed8f46 100644 ---- a/src/XrdXml/tinyxml/CMakeLists.txt -+++ b/src/XrdXml/tinyxml/CMakeLists.txt -@@ -1,3 +1,13 @@ -+find_package(TinyXml) -+ -+if(TINYXML_FOUND) -+ -+add_library(XrdTinyXml INTERFACE IMPORTED GLOBAL) -+set_property(TARGET XrdTinyXml PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${TINYXML_INCLUDE_DIR}") -+set_property(TARGET XrdTinyXml PROPERTY INTERFACE_LINK_LIBRARIES "${TINYXML_LIBRARIES}") -+ -+else() -+ - add_library(XrdTinyXml OBJECT - tinystr.cpp tinystr.h - tinyxml.cpp tinyxml.h -@@ -13,3 +23,5 @@ set_target_properties(XrdTinyXml - target_include_directories(XrdTinyXml - PUBLIC $ - ) -+ -+endif() --- -2.53.0 - diff --git a/sources b/sources index a960b85..ec459a1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xrootd-6.1.1.tar.gz) = ac1286cc54c60611bf17b6140b8cd7ef17a8318a4082cae38e5da040199ce4405490e583b376074c3ed29cf2d87c9bbda5da15c6a3091c83c7877abdc3343ebf +SHA512 (xrootd-5.4.2.tar.gz) = 691f2b5cc28858cdfbf155639173c5d8d380bc10ed8c4c607fd3ff7d5b1171600ffd934713d63991a12067ca1049ec0e7c2dcbd73f65344d830141dd85b905b2 diff --git a/xrootd-sysusers.conf b/xrootd-sysusers.conf deleted file mode 100644 index e5e19f0..0000000 --- a/xrootd-sysusers.conf +++ /dev/null @@ -1,2 +0,0 @@ -# Name ID GECOS Home directory Shell -u xrootd 194 "XRootD runtime user" /var/spool/xrootd - diff --git a/xrootd.spec b/xrootd.spec index d2d55a4..d2d990b 100644 --- a/xrootd.spec +++ b/xrootd.spec @@ -8,78 +8,69 @@ %global ceph 0 %endif +%undefine __cmake_in_source_build +%undefine __cmake3_in_source_build + Name: xrootd Epoch: 1 -Version: 6.1.1 +Version: 5.4.2 Release: 1%{?dist} Summary: Extended ROOT file server -License: LGPL-3.0-or-later AND BSD-2-Clause AND BSD-3-Clause AND curl AND MIT AND Zlib AND Apache-2.0 AND MPL-2.0 -URL: https://xrootd.web.cern.ch -Source0: %{url}/download/v%{version}/%{name}-%{version}.tar.gz -Source1: %{name}-sysusers.conf -# Unbundle tinyxml library -Patch0: 0001-Unbundle-tinyxml.patch -# Unbundle googletest/googlemock -Patch1: 0001-Unbundle-gtest.patch -# Make documentation self-contained -Patch2: 0001-Make-documentation-self-contained.patch +License: LGPLv3+ +URL: https://xrootd.slac.stanford.edu/ +Source0: https://xrootd.slac.stanford.edu/download/v%{version}/%{name}-%{version}.tar.gz +# https://github.com/xrootd/xrootd/pull/1575 +Patch0: 0001-Define-ENODATA-if-not-defined.patch +# https://github.com/xrootd/xrootd/pull/1620 +Patch1: 0001-Ignore-Warray-bounds-warnings-from-stricter-check-in.patch +# Disable LTO for XrdPosix on 32 bit architectures +Patch2: 0001-Disable-LTO-for-XrdPosix-on-32-bit-architectures.patch +# Fixes for OpenSSL 3 +# https://github.com/xrootd/xrootd/pull/1634 +patch3: 0001-Fixes-for-openssl-3.patch -BuildRequires: cmake BuildRequires: gcc-c++ +%if %{?rhel}%{!?rhel:0} == 7 +BuildRequires: cmake3 >= 3.1 +%else +BuildRequires: cmake >= 3.1 +%endif BuildRequires: make -BuildRequires: pkgconfig BuildRequires: fuse-devel BuildRequires: krb5-devel BuildRequires: libcurl-devel BuildRequires: tinyxml-devel BuildRequires: libxml2-devel -BuildRequires: libzip-devel BuildRequires: ncurses-devel BuildRequires: openssl-devel BuildRequires: perl-generators -%if %{?fedora}%{!?fedora:0} -# picojson not in RHEL/EPEL -BuildRequires: picojson-devel -%endif BuildRequires: readline-devel BuildRequires: zlib-devel +BuildRequires: doxygen +BuildRequires: graphviz BuildRequires: selinux-policy-devel -BuildRequires: systemd-rpm-macros BuildRequires: systemd-devel +%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8 BuildRequires: python3-devel -BuildRequires: python3-pip -BuildRequires: python3-setuptools -BuildRequires: python3-wheel +BuildRequires: python3-sphinx +%endif +%if %{?rhel}%{!?rhel:0} == 7 +BuildRequires: python2-devel +BuildRequires: python%{python3_pkgversion}-devel +BuildRequires: python%{python3_other_pkgversion}-devel +BuildRequires: python2-sphinx +%endif BuildRequires: json-c-devel -BuildRequires: json-devel BuildRequires: libmacaroons-devel BuildRequires: libuuid-devel -BuildRequires: voms-devel +BuildRequires: voms-devel >= 2.0.6 BuildRequires: scitokens-cpp-devel -BuildRequires: libxcrypt-devel +BuildRequires: davix-devel %if %{ceph} BuildRequires: librados-devel BuildRequires: libradosstriper-devel %endif -%ifnarch %{ix86} -BuildRequires: isa-l-devel -%endif -# For documentation -BuildRequires: doxygen -BuildRequires: graphviz -BuildRequires: python3-sphinx -# For tests -BuildRequires: attr -BuildRequires: curl -BuildRequires: gtest-devel -BuildRequires: gmock-devel -BuildRequires: jq -BuildRequires: krb5-server -BuildRequires: krb5-workstation -BuildRequires: openssl -BuildRequires: procps -BuildRequires: sqlite Requires: %{name}-server%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-selinux = %{epoch}:%{version}-%{release} @@ -104,7 +95,7 @@ Requires: %{name}-client-libs%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-server-libs%{?_isa} = %{epoch}:%{version}-%{release} Requires: expect Requires: logrotate -%{?sysusers_requires_compat} +Requires(pre): shadow-utils %{?systemd_requires} %description server @@ -141,8 +132,6 @@ development. %package client-libs Summary: Libraries used by xrootd clients -Provides: xrdcl-http = %{epoch}:%{version}-%{release} -Obsoletes: xrdcl-http < 1:6.0.0 Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} %description client-libs @@ -183,7 +172,6 @@ Summary: Private xrootd headers Requires: %{name}-devel%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-client-devel%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-server-devel%{?_isa} = %{epoch}:%{version}-%{release} -Requires: %{name}-client-libs%{?_isa} = %{epoch}:%{version}-%{release} %description private-devel This package contains some private xrootd headers. Backward and forward @@ -226,9 +214,7 @@ The VOMS attribute extractor plugin for XRootD. %package scitokens Summary: SciTokens authorization support for XRootD -License: Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause Requires: %{name}-server%{?_isa} = %{epoch}:%{version}-%{release} -Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} %description scitokens This ACC (authorization) plugin for the XRootD framework utilizes the @@ -237,26 +223,58 @@ SciToken passed during a transfer. Configured appropriately, this allows the XRootD server admin to delegate authorization decisions for a subset of the namespace to an external issuer. +%package -n xrdcl-http +Summary: HTTP client plugin for XRootD +Requires: %{name}-client-libs%{?_isa} = %{epoch}:%{version}-%{release} +License: BSD + +%description -n xrdcl-http +xrdcl-http is an XRootD client plugin which allows XRootD to interact +with HTTP repositories. + %if %{ceph} %package ceph Summary: XRootD plugin for interfacing with the Ceph storage platform Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} -Requires: %{name}-server-libs%{?_isa} = %{epoch}:%{version}-%{release} %description ceph The xrootd-ceph is an OSS layer plugin for the XRootD server for interfacing with the Ceph storage platform. %endif -%package -n python3-%{name} -Summary: Python 3 bindings for xrootd -%py_provides python3-%{name} +%if %{?rhel}%{!?rhel:0} == 7 +%package -n python2-%{name} +Summary: Python 2 bindings for xrootd +%{?python_provide:%python_provide python2-%{name}} +Provides: %{name}-python = %{epoch}:%{version}-%{release} +Obsoletes: %{name}-python < 1:4.6.1-6 Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-client-libs%{?_isa} = %{epoch}:%{version}-%{release} -%description -n python3-%{name} +%description -n python2-%{name} +This package contains Python 2 bindings for xrootd. +%endif + +%package -n python%{python3_pkgversion}-%{name} +Summary: Python 3 bindings for xrootd +%{?python_provide:%python_provide python%{python3_pkgversion}-%{name}} +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-client-libs%{?_isa} = %{epoch}:%{version}-%{release} + +%description -n python%{python3_pkgversion}-%{name} This package contains Python 3 bindings for xrootd. +%if %{?rhel}%{!?rhel:0} == 7 +%package -n python%{python3_other_pkgversion}-%{name} +Summary: Python 3 bindings for xrootd +%{?python_provide:%python_provide python%{?python3_other_pkgversion}-%{name}} +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-client-libs%{?_isa} = %{epoch}:%{version}-%{release} + +%description -n python%{python3_other_pkgversion}-%{name} +This package contains Python 3 bindings for xrootd. +%endif + %package doc Summary: Developer documentation for the xrootd libraries BuildArch: noarch @@ -266,99 +284,99 @@ This package contains the API documentation of the xrootd libraries. %prep %setup -q - -%patch -P0 -p1 -%patch -P1 -p1 -%patch -P2 -p1 - -# Delete bundled dependencies -rm src/XrdXml/tinyxml/tiny* -rm -r vendor/bats -rm -r vendor/googletest -%if %{?fedora}%{!?fedora:0} -# picojson not in RHEL/EPEL -rm -r vendor/picojson -%endif +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 %build -%cmake \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DFORCE_ENABLED:BOOL=ON \ - -DENABLE_TESTS:BOOL=ON \ -%if %{ceph} - -DENABLE_CEPH:BOOL=ON \ +%if %{?fedora}%{!?fedora:0} >= 36 +# Mark some warnings from gcc 12 as not errors +# These are likely bogus - hopefully they can be fixed in gcc updates +%set_build_flags +CXXFLAGS="${CXXFLAGS} -Wno-error=restrict" %endif -%ifnarch %{ix86} - -DENABLE_XRDEC:BOOL=ON \ -%endif -%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 9 - -DPIP_OPTIONS="--no-deps --use-pep517 --no-build-isolation --disable-pip-version-check --verbose" \ -%else - -DPIP_OPTIONS="--no-deps --disable-pip-version-check --verbose" \ -%endif - -DXRD_PYTHON_REQ_VERSION=%{python3_version} -%cmake_build -make -C config -f /usr/share/selinux/devel/Makefile +%cmake3 \ +%if %{?fedora}%{!?fedora:0} >= 36 || %{?rhel}%{!?rhel:0} >= 9 + -DWITH_OPENSSL3:BOOL=ON \ +%endif +%if %{ceph} + -DXRDCEPH_SUBMODULE:BOOL=ON \ +%endif + -DXRDCLHTTP_SUBMODULE:BOOL=ON \ +%if %{?rhel}%{!?rhel:0} == 7 + -DPYTHON_EXECUTABLE:PATH=%{__python2} +%else + -DPYTHON_EXECUTABLE:PATH=%{__python3} +%endif +%cmake3_build + +%if %{?rhel}%{!?rhel:0} == 7 +pushd %{_vpath_builddir}/bindings/python +%py3_build +%py3_other_build +popd +%endif + +make -C packaging/common -f /usr/share/selinux/devel/Makefile doxygen Doxyfile -cp -p docs/images/xrootd-logo.png doxydoc/html + +export LD_LIBRARY_PATH=${PWD}/%{_vpath_builddir}/src/XrdCl:${PWD}/%{_vpath_builddir}/src +%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8 +export PYTHONPATH=$(cd %{_vpath_builddir}/bindings/python/build/lib.*-%{python3_version} ; pwd) +make -C bindings/python/docs html SPHINXBUILD=sphinx-build-3 +%endif +%if %{?rhel}%{!?rhel:0} == 7 +export PYTHONPATH=$(cd %{_vpath_builddir}/bindings/python/build/lib.*-%{python2_version} ; pwd) +make -C bindings/python/docs html +%endif %install -%cmake_install +%cmake3_install rm -f %{buildroot}%{_libdir}/libXrdCephPosix.so -rm -f %{buildroot}%{_bindir}/xrdshmap - -rm -f %{buildroot}%{python3_sitearch}/xrootd-*.*-info/direct_url.json -rm -f %{buildroot}%{python3_sitearch}/xrootd-*.*-info/RECORD -[ -r %{buildroot}%{python3_sitearch}/xrootd-*.*-info/INSTALLER ] && \ - sed s/pip/rpm/ \ - -i %{buildroot}%{python3_sitearch}/xrootd-*.*-info/INSTALLER - -rm -f %{buildroot}%{_libdir}/cmake/XRootD/uninstall.cmake - -LD_LIBRARY_PATH=%{buildroot}%{_libdir} \ -PYTHONPATH=%{buildroot}%{python3_sitearch} \ -PYTHONDONTWRITEBYTECODE=1 \ -make -C python/docs html +%if %{?rhel}%{!?rhel:0} == 7 +pushd %{_vpath_builddir}/bindings/python +%py3_install +%py3_other_install +popd +%endif # Service unit files mkdir -p %{buildroot}%{_unitdir} -install -m 644 -p systemd/xrootd@.service %{buildroot}%{_unitdir} -install -m 644 -p systemd/xrootd@.socket %{buildroot}%{_unitdir} -install -m 644 -p systemd/xrdhttp@.socket %{buildroot}%{_unitdir} -install -m 644 -p systemd/cmsd@.service %{buildroot}%{_unitdir} -install -m 644 -p systemd/frm_xfrd@.service %{buildroot}%{_unitdir} -install -m 644 -p systemd/frm_purged@.service %{buildroot}%{_unitdir} - -mkdir -p %{buildroot}%{_sysusersdir} -install -m 644 -p %{SOURCE1} %{buildroot}%{_sysusersdir}/%{name}.conf +install -m 644 packaging/common/xrootd@.service %{buildroot}%{_unitdir} +install -m 644 packaging/common/xrootd@.socket %{buildroot}%{_unitdir} +install -m 644 packaging/common/xrdhttp@.socket %{buildroot}%{_unitdir} +install -m 644 packaging/common/cmsd@.service %{buildroot}%{_unitdir} +install -m 644 packaging/common/frm_xfrd@.service %{buildroot}%{_unitdir} +install -m 644 packaging/common/frm_purged@.service %{buildroot}%{_unitdir} +mkdir -p %{buildroot}%{_tmpfilesdir} +install -m 644 packaging/rhel/xrootd.tmpfiles %{buildroot}%{_tmpfilesdir}/%{name}.conf # Server config mkdir -p %{buildroot}%{_sysconfdir}/%{name} -install -m 644 -p config/%{name}-clustered.cfg \ +install -m 644 -p packaging/common/%{name}-clustered.cfg \ %{buildroot}%{_sysconfdir}/%{name}/%{name}-clustered.cfg -install -m 644 -p config/%{name}-standalone.cfg \ +install -m 644 -p packaging/common/%{name}-standalone.cfg \ %{buildroot}%{_sysconfdir}/%{name}/%{name}-standalone.cfg -install -m 644 -p config/%{name}-filecache-clustered.cfg \ +install -m 644 -p packaging/common/%{name}-filecache-clustered.cfg \ %{buildroot}%{_sysconfdir}/%{name}/%{name}-filecache-clustered.cfg -install -m 644 -p config/%{name}-filecache-standalone.cfg \ +install -m 644 -p packaging/common/%{name}-filecache-standalone.cfg \ %{buildroot}%{_sysconfdir}/%{name}/%{name}-filecache-standalone.cfg -install -m 644 -p config/%{name}-http.cfg \ +sed 's!/usr/lib64/!!' packaging/common/%{name}-http.cfg > \ %{buildroot}%{_sysconfdir}/%{name}/%{name}-http.cfg # Client config mkdir -p %{buildroot}%{_sysconfdir}/%{name}/client.plugins.d -install -m 644 -p config/client.conf \ +install -m 644 -p packaging/common/client.conf \ %{buildroot}%{_sysconfdir}/%{name}/client.conf -install -m 644 -p config/client.plugins.d/http.conf \ - %{buildroot}%{_sysconfdir}/%{name}/client.plugins.d/http.conf -install -m 644 -p config/client.plugins.d/recorder.conf \ - %{buildroot}%{_sysconfdir}/%{name}/client.plugins.d/recorder.conf -install -m 644 -p config/client.plugins.d/s3.conf \ - %{buildroot}%{_sysconfdir}/%{name}/client.plugins.d/s3.conf +sed 's!/usr/lib/!!' packaging/common/client-plugin.conf.example > \ + %{buildroot}%{_sysconfdir}/%{name}/client.plugins.d/client-plugin.conf.example +sed 's!/usr/local/lib/!!' src/XrdClHttp/config/http.client.conf.example > \ + %{buildroot}%{_sysconfdir}/%{name}/client.plugins.d/xrdcl-http-plugin.conf chmod 644 %{buildroot}%{_datadir}/%{name}/utils/XrdCmsNotify.pm @@ -373,61 +391,32 @@ mkdir -p %{buildroot}%{_sysconfdir}/%{name}/config.d mkdir -p %{buildroot}%{_localstatedir}/log/%{name} mkdir -p %{buildroot}%{_localstatedir}/spool/%{name} -mkdir -p %{buildroot}%{_rundir}/%{name} mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d -install -m 644 -p config/%{name}.logrotate \ +install -m 644 -p packaging/common/%{name}.logrotate \ %{buildroot}%{_sysconfdir}/logrotate.d/%{name} mkdir -p %{buildroot}%{_datadir}/selinux/packages/%{name} -install -m 644 -p config/%{name}.pp \ +install -m 644 -p packaging/common/%{name}.pp \ %{buildroot}%{_datadir}/selinux/packages/%{name} # Documentation mkdir -p %{buildroot}%{_pkgdocdir} cp -pr doxydoc/html %{buildroot}%{_pkgdocdir} -cp -pr python/docs/build/html %{buildroot}%{_pkgdocdir}/python +cp -pr bindings/python/docs/build/html %{buildroot}%{_pkgdocdir}/python rm %{buildroot}%{_pkgdocdir}/python/.buildinfo -%check -export HOSTNAME=localhost +%ldconfig_scriptlets libs -# Reduce socket path lengths used during tests -# rpm 4.20 uses a longer path to the build directory than earlier versions -# Tests fail with sockets in the build directory with rpm 4.20 -adminpath=$(mktemp -d -p /var/tmp) -trap "rm -rf ${adminpath}" EXIT +%ldconfig_scriptlets client-libs -sed "s!all.adminpath .*!all.adminpath ${adminpath}/XRootD!" \ - -i tests/XRootD/common.cfg - -for x in authenticated_cluster badredir cluster TPCTests xcachewithcsi ; do - sed "s!all.adminpath .*!all.adminpath ${adminpath}/${x}!" \ - -i %{_vpath_builddir}/tests/${x}/common.cfg -done - -# The badredir test fails when there is no network - exclude -# The posix test is broken for 32 bit archs ... -# https://github.com/xrootd/xrootd/issues/2559 - -touch testfile -if ( setfattr -n user.testattr -v testvalue testfile ) ; then - %ctest -- -E \ -XRootD::badredir\|\ -%ifarch %{ix86} %{arm} -XRootD::posix\|\ -%endif -XrdCl::FileSystemTest.PlugInTest\|\ -XrdCl::FileTest.PlugInTest -else - echo "Extended file attributes not supported by file system" - echo "*** NOT RUNNING TESTS ***" -fi -rm testfile +%ldconfig_scriptlets server-libs %pre server -%sysusers_create_compat %{SOURCE1} +getent group %{name} >/dev/null || groupadd -r %{name} +getent passwd %{name} >/dev/null || useradd -r -g %{name} -s /sbin/nologin \ + -d %{_localstatedir}/spool/%{name} -c "XRootD runtime user" %{name} %post server if [ $1 -eq 1 ] ; then @@ -492,16 +481,14 @@ fi %dir %{_datadir}/%{name} %{_datadir}/%{name}/utils %{_unitdir}/* -%{_sysusersdir}/%{name}.conf +%{_tmpfilesdir}/%{name}.conf %config(noreplace) %{_sysconfdir}/logrotate.d/%{name} %dir %{_sysconfdir}/%{name}/config.d %attr(-,xrootd,xrootd) %config(noreplace) %{_sysconfdir}/%{name}/*.cfg %attr(-,xrootd,xrootd) %{_localstatedir}/log/%{name} %attr(-,xrootd,xrootd) %{_localstatedir}/spool/%{name} -%ghost %attr(-,xrootd,xrootd) %{_rundir}/%{name} %files selinux -%dir %{_datadir}/selinux/packages/%{name} %{_datadir}/selinux/packages/%{name}/%{name}.pp %files libs @@ -511,18 +498,18 @@ fi %{_libdir}/libXrdUtils.so.* %{_libdir}/libXrdXml.so.* # Plugins -%{_libdir}/libXrdCksCalczcrc32-6.so -%{_libdir}/libXrdCryptossl-6.so -%{_libdir}/libXrdSec-6.so -%{_libdir}/libXrdSecProt-6.so -%{_libdir}/libXrdSecgsi-6.so -%{_libdir}/libXrdSecgsiAUTHZVO-6.so -%{_libdir}/libXrdSecgsiGMAPDN-6.so -%{_libdir}/libXrdSeckrb5-6.so -%{_libdir}/libXrdSecpwd-6.so -%{_libdir}/libXrdSecsss-6.so -%{_libdir}/libXrdSecunix-6.so -%{_libdir}/libXrdSecztn-6.so +%{_libdir}/libXrdCksCalczcrc32-5.so +%{_libdir}/libXrdCryptossl-5.so +%{_libdir}/libXrdSec-5.so +%{_libdir}/libXrdSecProt-5.so +%{_libdir}/libXrdSecgsi-5.so +%{_libdir}/libXrdSecgsiAUTHZVO-5.so +%{_libdir}/libXrdSecgsiGMAPDN-5.so +%{_libdir}/libXrdSeckrb5-5.so +%{_libdir}/libXrdSecpwd-5.so +%{_libdir}/libXrdSecsss-5.so +%{_libdir}/libXrdSecunix-5.so +%{_libdir}/libXrdSecztn-5.so %license COPYING* LICENSE %files devel @@ -542,14 +529,11 @@ fi %{_libdir}/libXrdCryptoLite.so %{_libdir}/libXrdUtils.so %{_libdir}/libXrdXml.so -%{_libdir}/cmake/XRootD -%{_mandir}/man1/xrootd-config.1* +%dir %{_datadir}/%{name} +%{_datadir}/%{name}/cmake %files client-libs %{_libdir}/libXrdCl.so.* -%ifnarch %{ix86} -%{_libdir}/libXrdEc.so.* -%endif %{_libdir}/libXrdFfs.so.* %{_libdir}/libXrdPosix.so.* %{_libdir}/libXrdPosixPreload.so.* @@ -558,20 +542,14 @@ fi %{_libdir}/libXrdSsiLib.so.* %{_libdir}/libXrdSsiShMap.so.* # Plugins -%{_libdir}/libXrdClHttp-6.so -%{_libdir}/libXrdClProxyPlugin-6.so -%{_libdir}/libXrdClRecorder-6.so -%{_libdir}/libXrdClS3-6.so +%{_libdir}/libXrdClProxyPlugin-5.so %dir %{_sysconfdir}/%{name} %config(noreplace) %{_sysconfdir}/%{name}/client.conf %dir %{_sysconfdir}/%{name}/client.plugins.d -%config(noreplace) %{_sysconfdir}/%{name}/client.plugins.d/http.conf -%config(noreplace) %{_sysconfdir}/%{name}/client.plugins.d/recorder.conf -%config(noreplace) %{_sysconfdir}/%{name}/client.plugins.d/s3.conf +%config(noreplace) %{_sysconfdir}/%{name}/client.plugins.d/client-plugin.conf.example %files client-devel %{_includedir}/%{name}/XrdCl -%{_includedir}/%{name}/XrdClHttp %{_includedir}/%{name}/XrdPosix %{_libdir}/libXrdCl.so %{_libdir}/libXrdFfs.so @@ -581,28 +559,22 @@ fi %{_libdir}/libXrdHttpUtils.so.* %{_libdir}/libXrdServer.so.* # Plugins -%{_libdir}/libXrdBlacklistDecision-6.so -%{_libdir}/libXrdBwm-6.so -%{_libdir}/libXrdCmsRedirectLocal-6.so -%{_libdir}/libXrdFileCache-6.so -%{_libdir}/libXrdHttp-6.so -%{_libdir}/libXrdHttpCors-6.so -%{_libdir}/libXrdHttpTPC-6.so -%{_libdir}/libXrdMacaroons-6.so -%{_libdir}/libXrdN2No2p-6.so -%{_libdir}/libXrdOfsPrepGPI-6.so -%{_libdir}/libXrdOssArc-6.so -%{_libdir}/libXrdOssCsi-6.so -%{_libdir}/libXrdOssMirage-6.so -%{_libdir}/libXrdOssSIgpfsT-6.so -%{_libdir}/libXrdOssStats-6.so -%{_libdir}/libXrdPfc-6.so -%{_libdir}/libXrdPfcPurgeQuota-6.so -%{_libdir}/libXrdPss-6.so -%{_libdir}/libXrdSsi-6.so -%{_libdir}/libXrdSsiLog-6.so -%{_libdir}/libXrdThrottle-6.so -%{_libdir}/libXrdXrootd-6.so +%{_libdir}/libXrdBlacklistDecision-5.so +%{_libdir}/libXrdBwm-5.so +%{_libdir}/libXrdCmsRedirectLocal-5.so +%{_libdir}/libXrdFileCache-5.so +%{_libdir}/libXrdHttp-5.so +%{_libdir}/libXrdHttpTPC-5.so +%{_libdir}/libXrdMacaroons-5.so +%{_libdir}/libXrdN2No2p-5.so +%{_libdir}/libXrdOssCsi-5.so +%{_libdir}/libXrdOssSIgpfsT-5.so +%{_libdir}/libXrdPfc-5.so +%{_libdir}/libXrdPss-5.so +%{_libdir}/libXrdSsi-5.so +%{_libdir}/libXrdSsiLog-5.so +%{_libdir}/libXrdThrottle-5.so +%{_libdir}/libXrdXrootd-5.so %files server-devel %{_includedir}/%{name}/XrdAcc @@ -618,15 +590,11 @@ fi %files private-devel %{_includedir}/%{name}/private -%ifnarch %{ix86} -%{_libdir}/libXrdEc.so -%endif %{_libdir}/libXrdSsiLib.so %{_libdir}/libXrdSsiShMap.so %files client %{_bindir}/xrdadler32 -%{_bindir}/xrdcks %{_bindir}/xrdcopy %{_bindir}/xrdcp %{_bindir}/xrdcrc32c @@ -635,7 +603,6 @@ fi %{_bindir}/xrdgsitest %{_bindir}/xrdmapc %{_bindir}/xrdpinls -%{_bindir}/xrdreplay %{_mandir}/man1/xrdadler32.1* %{_mandir}/man1/xrdcopy.1* %{_mandir}/man1/xrdcp.1* @@ -649,277 +616,52 @@ fi %{_mandir}/man1/xrootdfs.1* %files voms -%{_libdir}/libXrdVoms-6.so -%{_libdir}/libXrdHttpVOMS-6.so -%{_libdir}/libXrdSecgsiVOMS-6.so +%{_libdir}/libXrdVoms-5.so +%{_libdir}/libXrdHttpVOMS-5.so +%{_libdir}/libXrdSecgsiVOMS-5.so %doc %{_mandir}/man1/libXrdVoms.1* %doc %{_mandir}/man1/libXrdSecgsiVOMS.1* -%doc src/XrdVoms/README.md %files scitokens -%{_libdir}/libXrdAccSciTokens-6.so +%{_libdir}/libXrdAccSciTokens-5.so %doc src/XrdSciTokens/README.md +%files -n xrdcl-http +%{_libdir}/libXrdClHttp-5.so +%{_sysconfdir}/xrootd/client.plugins.d/xrdcl-http-plugin.conf +%license src/XrdClHttp/LICENSE +%doc src/XrdClHttp/README.md + %if %{ceph} %files ceph -%{_libdir}/libXrdCeph-6.so -%{_libdir}/libXrdCephXattr-6.so +%{_libdir}/libXrdCeph-5.so +%{_libdir}/libXrdCephXattr-5.so %{_libdir}/libXrdCephPosix.so.* %endif -%files -n python3-%{name} -%{python3_sitearch}/xrootd-*.*-info +%if %{?rhel}%{!?rhel:0} == 7 +%files -n python2-%{name} +%{python2_sitearch}/xrootd-*.egg-info +%{python2_sitearch}/pyxrootd +%{python2_sitearch}/XRootD +%endif + +%files -n python%{python3_pkgversion}-%{name} +%{python3_sitearch}/xrootd-*.egg-info %{python3_sitearch}/pyxrootd %{python3_sitearch}/XRootD +%if %{?rhel}%{!?rhel:0} == 7 +%files -n python%{python3_other_pkgversion}-%{name} +%{python3_other_sitearch}/xrootd-*.egg-info +%{python3_other_sitearch}/pyxrootd +%{python3_other_sitearch}/XRootD +%endif + %files doc %doc %{_pkgdocdir} %changelog -* Wed Aug 12 2026 Mattias Ellert - 1:6.1.1-1 -- Update to version 6.1.1 - -* Wed Jul 22 2026 Python Maint - 1:6.1.0-3 -- Rebuilt for Python 3.15.0b4 ABI change - -* Fri Jul 17 2026 Fedora Release Engineering - 1:6.1.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild - -* Tue Jun 23 2026 Mattias Ellert - 1:6.1.0-1 -- Update to version 6.1.0 -- Drop patches accepted upstream - -* Sat Jun 13 2026 Yaakov Selkowitz - 1:6.0.3-3 -- Rebuilt for openssl 4.0 - -* Thu Jun 04 2026 Python Maint - 1:6.0.3-2 -- Rebuilt for Python 3.15 - -* Tue Jun 02 2026 Mattias Ellert - 1:6.0.3-1 -- Update to version 6.0.3 - -* Thu May 21 2026 Mattias Ellert - 1:6.0.2-1 -- Update to version 6.0.2 -- Adapt to OpenSSL 4.0 -- Drop patches accepted upstream - -* Sat Apr 11 2026 Mattias Ellert - 1:6.0.0-1 -- Update to version 6.0.0 - -* Fri Mar 27 2026 Mattias Ellert - 1:5.9.2-1 -- Update to version 5.9.2 -- Drop patches accepted upstream or previously backported - -* Sat Jan 17 2026 Fedora Release Engineering - 1:5.9.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild - -* Tue Nov 18 2025 Mattias Ellert - 1:5.9.1-1 -- Update to version 5.9.1 - -* Fri Oct 10 2025 Mattias Ellert - 1:5.9.0-1 -- Update to version 5.9.0 - -* Fri Sep 19 2025 Python Maint - 1:5.8.4-4 -- Rebuilt for Python 3.14.0rc3 bytecode - -* Fri Aug 15 2025 Python Maint - 1:5.8.4-3 -- Rebuilt for Python 3.14.0rc2 bytecode - -* Fri Jul 25 2025 Fedora Release Engineering - 1:5.8.4-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Sun Jul 13 2025 Mattias Ellert - 1:5.8.4-1 -- Update to version 5.8.4 - -* Fri Jun 06 2025 Mattias Ellert - 1:5.8.3-1 -- Update to version 5.8.3 - -* Tue Jun 03 2025 Python Maint - 1:5.8.2-2 -- Rebuilt for Python 3.14 - -* Sun May 11 2025 Mattias Ellert - 1:5.8.2-1 -- Update to version 5.8.2 -- Use reserved uid and gid 194 for the xrootd user - - https://pagure.io/packaging-committee/issue/1444 - - https://src.fedoraproject.org/rpms/setup/pull-request/27 - -* Wed Apr 16 2025 Mattias Ellert - 1:5.8.1-1 -- Update to version 5.8.1 - -* Sat Mar 22 2025 Mattias Ellert - 1:5.8.0-1 -- Update to version 5.8.0 - -* Sat Mar 08 2025 Mattias Ellert - 1:5.7.3-4 -- Move user/group creation logic to sysusers.d fragment - -* Wed Feb 19 2025 Mattias Ellert - 1:5.7.3-3 -- Set HOSTNAME to localhost during testing - -* Sat Feb 01 2025 Björn Esser - 1:5.7.3-2 -- Add explicit BR: libxcrypt-devel - -* Wed Jan 29 2025 Mattias Ellert - 1:5.7.3-1 -- Update to version 5.7.3 -- Drop patches accepted upstream - -* Thu Jan 23 2025 Mattias Ellert - 1:5.7.2-4 -- Use CMAKE_BUILD_TYPE RelWithDebInfo to avoid -Werror in compiler flags - -* Sun Jan 19 2025 Mattias Ellert - 1:5.7.2-3 -- Fix compilation errors with GCC 15 - -* Sun Dec 08 2024 Mattias Ellert - 1:5.7.2-2 -- Fix errors in format strings - -* Fri Nov 29 2024 Mattias Ellert - 1:5.7.2-1 -- Update to version 5.7.2 -- Drop patches accepted upstream - -* Mon Sep 16 2024 Mattias Ellert - 1:5.7.1-2 -- Workaround doxygen non-reproducibility - make doc package noarch again -- Increase client timeouts for XRootD server tests - -* Wed Sep 04 2024 Mattias Ellert - 1:5.7.1-1 -- Update to version 5.7.1 -- Drop patches accepted upstream - -* Sat Jul 20 2024 Fedora Release Engineering - 1:5.7.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Thu Jul 04 2024 Mattias Ellert - 1:5.7.0-2 -- Fix compilation error due to hidden overloaded virtual -- Make documentation package not noarch due to non-reproducible filenames - -* Wed Jul 03 2024 Mattias Ellert - 1:5.7.0-1 -- Update to version 5.7.0 -- Drop patches accepted upstream -- Drop EPEL 7 support from spec file (EOL) - -* Fri Jun 07 2024 Python Maint - 1:5.6.9-3 -- Rebuilt for Python 3.13 - -* Mon Jun 03 2024 Mattias Ellert - 1:5.6.9-2 -- Reduce socket path lengths used by tests for rpm 4.20 compatibility -- Avoid test failures due to using the same port numbers in different tests - -* Sat Mar 16 2024 Mattias Ellert - 1:5.6.9-1 -- Update to version 5.6.9 - -* Sat Feb 24 2024 Mattias Ellert - 1:5.6.8-1 -- Update to version 5.6.8 -- Disable tests that require file attributes if the file system doesn't - support them - -* Tue Feb 06 2024 Mattias Ellert - 1:5.6.7-1 -- Update to version 5.6.7 - -* Fri Jan 26 2024 Mattias Ellert - 1:5.6.6-1 -- Update to version 5.6.6 - -* Mon Jan 22 2024 Mattias Ellert - 1:5.6.5-1 -- Update to version 5.6.5 -- Drop patches accepted upstream - -* Wed Jan 17 2024 Mattias Ellert - 1:5.6.4-2 -- Fix printf null pointer error - -* Mon Dec 11 2023 Mattias Ellert - 1:5.6.4-1 -- Update to version 5.6.4 -- Drop patches accepted upstream or previously backported - -* Tue Dec 05 2023 Mattias Ellert - 1:5.6.3-3 -- Avoid /tmp when running some tests -- Fail gracefully in case of unsupported extended file attributes -- Avoid null bytes in error message strings -- Fix include path in XRootDConfig.cmake -- Avoid dereferencing unaligned pointers -- Support big endian in XrdZip - -* Sun Nov 19 2023 Mattias Ellert - 1:5.6.3-2 -- Enable erasure code support (XrdEc) - -* Fri Oct 27 2023 Mattias Ellert - 1:5.6.3-1 -- Update to version 5.6.3 -- Drop patches accepted upstream or previously backported -- Enable tests and add check section - -* Mon Sep 18 2023 Mattias Ellert - 1:5.6.2-2 -- Backport fix for Authfile parsing regression - -* Fri Sep 15 2023 Mattias Ellert - 1:5.6.2-1 -- Update to version 5.6.2 - -* Sat Jul 22 2023 Fedora Release Engineering - 1:5.6.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Wed Jul 12 2023 Mattias Ellert - 1:5.6.1-1 -- Update to version 5.6.1 -- Add --use-pep517 --no-build-isolation to pip options for Fedora and EPEL 9+ - -* Sun Jul 02 2023 Mattias Ellert - 1:5.6.0-1 -- Update to version 5.6.0 -- Drop patches (changes implemented upstream) - -* Wed Jun 14 2023 Python Maint - 1:5.5.5-3 -- Rebuilt for Python 3.12 - -* Sun May 21 2023 Mattias Ellert - 1:5.5.5-2 -- Fix build failure with latest glibc - -* Tue May 09 2023 Mattias Ellert - 1:5.5.5-1 -- Update to version 5.5.5 - -* Fri Mar 24 2023 Mattias Ellert - 1:5.5.4-1 -- Update to version 5.5.4 - -* Sat Feb 18 2023 Mattias Ellert - 1:5.5.3-1 -- Update to version 5.5.3 - -* Thu Feb 09 2023 Mattias Ellert - 1:5.5.2-1 -- Update to version 5.5.2 -- Drop patches accepted upstream or previously backported - -* Sat Jan 21 2023 Fedora Release Engineering - 1:5.5.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Tue Jan 17 2023 Mattias Ellert - 1:5.5.1-2 -- Add missing include - fixes build failure with gcc 13 -- Fix build failure due to possible large memory allocation - -* Wed Oct 19 2022 Mattias Ellert - 1:5.5.1-1 -- Update to version 5.5.1 -- Drop doxygen patch accepted upstream -- Check all sizes (8, 16, 32, 64) in check -- Check operator++ in check - -* Fri Aug 26 2022 Mattias Ellert - 1:5.5.0-1 -- Update to version 5.5.0 -- Drop patches accepted upstream -- Address some warnings from Doxygen -- Build using devtoolset 7 on EPEL 7 - -* Sun Aug 21 2022 Mattias Ellert - 1:5.4.3-4 -- Add BR systemd (no longer a dependency of systemd-devel) - -* Sat Jul 23 2022 Fedora Release Engineering - 1:5.4.3-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Wed Jun 15 2022 Python Maint - 1:5.4.3-2 -- Rebuilt for Python 3.11 - -* Fri Jun 10 2022 Mattias Ellert - 1:5.4.3-1 -- Update to version 5.4.3 -- Drop patches accepted upstream or previously backported -- Add BR python3-pip and python3-wheel - -* Sat Apr 23 2022 Mattias Ellert - 1:5.4.2-3 -- Link with libatomic on some 32-bit architectures -- Fix sphinx doc -- Backport fixes from upstream git master (OpenSSL 3, Python 3.10) - -* Sat Mar 19 2022 Mattias Ellert - 1:5.4.2-2 -- Add BR python3-pip for Fedora 35+ - * Fri Mar 04 2022 Mattias Ellert - 1:5.4.2-1 - Update to version 5.4.2 - More OpenSSL 3 fixes