diff --git a/0001-Define-ENODATA-if-not-defined.patch b/0001-Define-ENODATA-if-not-defined.patch deleted file mode 100644 index 0302498..0000000 --- a/0001-Define-ENODATA-if-not-defined.patch +++ /dev/null @@ -1,47 +0,0 @@ -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 deleted file mode 100644 index 06010de..0000000 --- a/0001-Disable-LTO-for-XrdPosix-on-32-bit-architectures.patch +++ /dev/null @@ -1,27 +0,0 @@ -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 deleted file mode 100644 index fa80d30..0000000 --- a/0001-Fixes-for-openssl-3.patch +++ /dev/null @@ -1,186 +0,0 @@ -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 deleted file mode 100644 index de803fc..0000000 --- a/0001-Ignore-Warray-bounds-warnings-from-stricter-check-in.patch +++ /dev/null @@ -1,94 +0,0 @@ -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 new file mode 100644 index 0000000..bba4217 --- /dev/null +++ b/0001-Make-documentation-self-contained.patch @@ -0,0 +1,30 @@ +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 new file mode 100644 index 0000000..1bbac2e --- /dev/null +++ b/0001-Unbundle-gtest.patch @@ -0,0 +1,25 @@ +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 new file mode 100644 index 0000000..9c98c2c --- /dev/null +++ b/0001-Unbundle-tinyxml.patch @@ -0,0 +1,62 @@ +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 ec459a1..a960b85 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xrootd-5.4.2.tar.gz) = 691f2b5cc28858cdfbf155639173c5d8d380bc10ed8c4c607fd3ff7d5b1171600ffd934713d63991a12067ca1049ec0e7c2dcbd73f65344d830141dd85b905b2 +SHA512 (xrootd-6.1.1.tar.gz) = ac1286cc54c60611bf17b6140b8cd7ef17a8318a4082cae38e5da040199ce4405490e583b376074c3ed29cf2d87c9bbda5da15c6a3091c83c7877abdc3343ebf diff --git a/xrootd-sysusers.conf b/xrootd-sysusers.conf new file mode 100644 index 0000000..e5e19f0 --- /dev/null +++ b/xrootd-sysusers.conf @@ -0,0 +1,2 @@ +# Name ID GECOS Home directory Shell +u xrootd 194 "XRootD runtime user" /var/spool/xrootd - diff --git a/xrootd.spec b/xrootd.spec index d2d990b..d2d55a4 100644 --- a/xrootd.spec +++ b/xrootd.spec @@ -8,69 +8,78 @@ %global ceph 0 %endif -%undefine __cmake_in_source_build -%undefine __cmake3_in_source_build - Name: xrootd Epoch: 1 -Version: 5.4.2 +Version: 6.1.1 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 -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 +# 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 +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-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: python3-pip +BuildRequires: python3-setuptools +BuildRequires: python3-wheel BuildRequires: json-c-devel +BuildRequires: json-devel BuildRequires: libmacaroons-devel BuildRequires: libuuid-devel -BuildRequires: voms-devel >= 2.0.6 +BuildRequires: voms-devel BuildRequires: scitokens-cpp-devel -BuildRequires: davix-devel +BuildRequires: libxcrypt-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} @@ -95,7 +104,7 @@ Requires: %{name}-client-libs%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-server-libs%{?_isa} = %{epoch}:%{version}-%{release} Requires: expect Requires: logrotate -Requires(pre): shadow-utils +%{?sysusers_requires_compat} %{?systemd_requires} %description server @@ -132,6 +141,8 @@ 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 @@ -172,6 +183,7 @@ 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 @@ -214,7 +226,9 @@ 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 @@ -223,58 +237,26 @@ 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 -%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 python2-%{name} -This package contains Python 2 bindings for xrootd. -%endif - -%package -n python%{python3_pkgversion}-%{name} +%package -n python3-%{name} Summary: Python 3 bindings for xrootd -%{?python_provide:%python_provide python%{python3_pkgversion}-%{name}} +%py_provides python3-%{name} Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-client-libs%{?_isa} = %{epoch}:%{version}-%{release} -%description -n python%{python3_pkgversion}-%{name} +%description -n python3-%{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 @@ -284,99 +266,99 @@ This package contains the API documentation of the xrootd libraries. %prep %setup -q -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 + +%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 %build -%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 - -%cmake3 \ -%if %{?fedora}%{!?fedora:0} >= 36 || %{?rhel}%{!?rhel:0} >= 9 - -DWITH_OPENSSL3:BOOL=ON \ -%endif +%cmake \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DFORCE_ENABLED:BOOL=ON \ + -DENABLE_TESTS:BOOL=ON \ %if %{ceph} - -DXRDCEPH_SUBMODULE:BOOL=ON \ + -DENABLE_CEPH:BOOL=ON \ %endif - -DXRDCLHTTP_SUBMODULE:BOOL=ON \ -%if %{?rhel}%{!?rhel:0} == 7 - -DPYTHON_EXECUTABLE:PATH=%{__python2} +%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 - -DPYTHON_EXECUTABLE:PATH=%{__python3} + -DPIP_OPTIONS="--no-deps --disable-pip-version-check --verbose" \ %endif -%cmake3_build + -DXRD_PYTHON_REQ_VERSION=%{python3_version} +%cmake_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 +make -C config -f /usr/share/selinux/devel/Makefile doxygen Doxyfile - -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 +cp -p docs/images/xrootd-logo.png doxydoc/html %install -%cmake3_install +%cmake_install rm -f %{buildroot}%{_libdir}/libXrdCephPosix.so -%if %{?rhel}%{!?rhel:0} == 7 -pushd %{_vpath_builddir}/bindings/python -%py3_install -%py3_other_install -popd -%endif +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 # Service unit files mkdir -p %{buildroot}%{_unitdir} -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 +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 # Server config mkdir -p %{buildroot}%{_sysconfdir}/%{name} -install -m 644 -p packaging/common/%{name}-clustered.cfg \ +install -m 644 -p config/%{name}-clustered.cfg \ %{buildroot}%{_sysconfdir}/%{name}/%{name}-clustered.cfg -install -m 644 -p packaging/common/%{name}-standalone.cfg \ +install -m 644 -p config/%{name}-standalone.cfg \ %{buildroot}%{_sysconfdir}/%{name}/%{name}-standalone.cfg -install -m 644 -p packaging/common/%{name}-filecache-clustered.cfg \ +install -m 644 -p config/%{name}-filecache-clustered.cfg \ %{buildroot}%{_sysconfdir}/%{name}/%{name}-filecache-clustered.cfg -install -m 644 -p packaging/common/%{name}-filecache-standalone.cfg \ +install -m 644 -p config/%{name}-filecache-standalone.cfg \ %{buildroot}%{_sysconfdir}/%{name}/%{name}-filecache-standalone.cfg -sed 's!/usr/lib64/!!' packaging/common/%{name}-http.cfg > \ +install -m 644 -p config/%{name}-http.cfg \ %{buildroot}%{_sysconfdir}/%{name}/%{name}-http.cfg # Client config mkdir -p %{buildroot}%{_sysconfdir}/%{name}/client.plugins.d -install -m 644 -p packaging/common/client.conf \ +install -m 644 -p config/client.conf \ %{buildroot}%{_sysconfdir}/%{name}/client.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 +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 chmod 644 %{buildroot}%{_datadir}/%{name}/utils/XrdCmsNotify.pm @@ -391,32 +373,61 @@ 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 packaging/common/%{name}.logrotate \ +install -m 644 -p config/%{name}.logrotate \ %{buildroot}%{_sysconfdir}/logrotate.d/%{name} mkdir -p %{buildroot}%{_datadir}/selinux/packages/%{name} -install -m 644 -p packaging/common/%{name}.pp \ +install -m 644 -p config/%{name}.pp \ %{buildroot}%{_datadir}/selinux/packages/%{name} # Documentation mkdir -p %{buildroot}%{_pkgdocdir} cp -pr doxydoc/html %{buildroot}%{_pkgdocdir} -cp -pr bindings/python/docs/build/html %{buildroot}%{_pkgdocdir}/python +cp -pr python/docs/build/html %{buildroot}%{_pkgdocdir}/python rm %{buildroot}%{_pkgdocdir}/python/.buildinfo -%ldconfig_scriptlets libs +%check +export HOSTNAME=localhost -%ldconfig_scriptlets client-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 server-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 %pre server -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} +%sysusers_create_compat %{SOURCE1} %post server if [ $1 -eq 1 ] ; then @@ -481,14 +492,16 @@ fi %dir %{_datadir}/%{name} %{_datadir}/%{name}/utils %{_unitdir}/* -%{_tmpfilesdir}/%{name}.conf +%{_sysusersdir}/%{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 @@ -498,18 +511,18 @@ fi %{_libdir}/libXrdUtils.so.* %{_libdir}/libXrdXml.so.* # Plugins -%{_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 +%{_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 %license COPYING* LICENSE %files devel @@ -529,11 +542,14 @@ fi %{_libdir}/libXrdCryptoLite.so %{_libdir}/libXrdUtils.so %{_libdir}/libXrdXml.so -%dir %{_datadir}/%{name} -%{_datadir}/%{name}/cmake +%{_libdir}/cmake/XRootD +%{_mandir}/man1/xrootd-config.1* %files client-libs %{_libdir}/libXrdCl.so.* +%ifnarch %{ix86} +%{_libdir}/libXrdEc.so.* +%endif %{_libdir}/libXrdFfs.so.* %{_libdir}/libXrdPosix.so.* %{_libdir}/libXrdPosixPreload.so.* @@ -542,14 +558,20 @@ fi %{_libdir}/libXrdSsiLib.so.* %{_libdir}/libXrdSsiShMap.so.* # Plugins -%{_libdir}/libXrdClProxyPlugin-5.so +%{_libdir}/libXrdClHttp-6.so +%{_libdir}/libXrdClProxyPlugin-6.so +%{_libdir}/libXrdClRecorder-6.so +%{_libdir}/libXrdClS3-6.so %dir %{_sysconfdir}/%{name} %config(noreplace) %{_sysconfdir}/%{name}/client.conf %dir %{_sysconfdir}/%{name}/client.plugins.d -%config(noreplace) %{_sysconfdir}/%{name}/client.plugins.d/client-plugin.conf.example +%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 %files client-devel %{_includedir}/%{name}/XrdCl +%{_includedir}/%{name}/XrdClHttp %{_includedir}/%{name}/XrdPosix %{_libdir}/libXrdCl.so %{_libdir}/libXrdFfs.so @@ -559,22 +581,28 @@ fi %{_libdir}/libXrdHttpUtils.so.* %{_libdir}/libXrdServer.so.* # Plugins -%{_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 +%{_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 %files server-devel %{_includedir}/%{name}/XrdAcc @@ -590,11 +618,15 @@ 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 @@ -603,6 +635,7 @@ fi %{_bindir}/xrdgsitest %{_bindir}/xrdmapc %{_bindir}/xrdpinls +%{_bindir}/xrdreplay %{_mandir}/man1/xrdadler32.1* %{_mandir}/man1/xrdcopy.1* %{_mandir}/man1/xrdcp.1* @@ -616,52 +649,277 @@ fi %{_mandir}/man1/xrootdfs.1* %files voms -%{_libdir}/libXrdVoms-5.so -%{_libdir}/libXrdHttpVOMS-5.so -%{_libdir}/libXrdSecgsiVOMS-5.so +%{_libdir}/libXrdVoms-6.so +%{_libdir}/libXrdHttpVOMS-6.so +%{_libdir}/libXrdSecgsiVOMS-6.so %doc %{_mandir}/man1/libXrdVoms.1* %doc %{_mandir}/man1/libXrdSecgsiVOMS.1* +%doc src/XrdVoms/README.md %files scitokens -%{_libdir}/libXrdAccSciTokens-5.so +%{_libdir}/libXrdAccSciTokens-6.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-5.so -%{_libdir}/libXrdCephXattr-5.so +%{_libdir}/libXrdCeph-6.so +%{_libdir}/libXrdCephXattr-6.so %{_libdir}/libXrdCephPosix.so.* %endif -%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 +%files -n python3-%{name} +%{python3_sitearch}/xrootd-*.*-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