From a5b4e5b9d64c577853487fa6dbf8f93c2a4cd0bf Mon Sep 17 00:00:00 2001 From: Shamrock Lee <44064051+ShamrockLee@users.noreply.github.com> Date: Tue, 20 Dec 2022 12:57:05 +0800 Subject: [PATCH 1/3] xrootd: provide fuse support (xrootdfs) for Darwin --- pkgs/tools/networking/xrootd/default.nix | 2 +- pkgs/top-level/all-packages.nix | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/networking/xrootd/default.nix b/pkgs/tools/networking/xrootd/default.nix index 93683bc6f7fa..c6df60f2ee0f 100644 --- a/pkgs/tools/networking/xrootd/default.nix +++ b/pkgs/tools/networking/xrootd/default.nix @@ -47,6 +47,7 @@ stdenv.mkDerivation rec { buildInputs = [ curl + fuse libkrb5 libuuid libxcrypt @@ -56,7 +57,6 @@ stdenv.mkDerivation rec { zlib ] ++ lib.optionals stdenv.isLinux [ - fuse systemd voms ] diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 46face91cab1..70363e3afc8a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1514,7 +1514,12 @@ with pkgs; xpaste = callPackage ../tools/text/xpaste { }; - xrootd = callPackage ../tools/networking/xrootd { }; + xrootd = callPackage ../tools/networking/xrootd { + fuse = + if hostPlatform.isDarwin then osxfuse + else if hostPlatform.isLinux then fuse + else null; + }; xtrt = callPackage ../tools/archivers/xtrt { }; From 16516fa2a72f9b0a90194bf6dd9c302a778e89fa Mon Sep 17 00:00:00 2001 From: Shamrock Lee <44064051+ShamrockLee@users.noreply.github.com> Date: Tue, 20 Dec 2022 18:45:04 +0800 Subject: [PATCH 2/3] xrootd.passthru.tests: only add test-runner for Linux --- pkgs/tools/networking/xrootd/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/tools/networking/xrootd/default.nix b/pkgs/tools/networking/xrootd/default.nix index c6df60f2ee0f..0f32ae4ab714 100644 --- a/pkgs/tools/networking/xrootd/default.nix +++ b/pkgs/tools/networking/xrootd/default.nix @@ -36,7 +36,7 @@ stdenv.mkDerivation rec { outputs = [ "bin" "out" "dev" "man" ]; - passthru.tests = lib.optionalAttrs enableTests { + passthru.tests = lib.optionalAttrs enableTests && stdenv.isLinux { test-runner = callPackage ./test-runner.nix { }; }; From 4f424907226c783b9203c5cddcd0a5276980dc79 Mon Sep 17 00:00:00 2001 From: Shamrock Lee <44064051+ShamrockLee@users.noreply.github.com> Date: Tue, 20 Dec 2022 17:32:24 +0800 Subject: [PATCH 3/3] xrootd.passthru.test-xrdcp: init --- pkgs/tools/networking/xrootd/default.nix | 7 ++++++- pkgs/tools/networking/xrootd/test-xrdcp.nix | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 pkgs/tools/networking/xrootd/test-xrdcp.nix diff --git a/pkgs/tools/networking/xrootd/default.nix b/pkgs/tools/networking/xrootd/default.nix index 0f32ae4ab714..b6fa0bab28d3 100644 --- a/pkgs/tools/networking/xrootd/default.nix +++ b/pkgs/tools/networking/xrootd/default.nix @@ -36,7 +36,12 @@ stdenv.mkDerivation rec { outputs = [ "bin" "out" "dev" "man" ]; - passthru.tests = lib.optionalAttrs enableTests && stdenv.isLinux { + passthru.tests = lib.optionalAttrs enableTests { + test-xrdcp = callPackage ./test-xrdcp.nix { + url = "root://eospublic.cern.ch//eos/opendata/alice/2010/LHC10h/000138275/ESD/0000/AliESDs.root"; + hash = "sha256-tIcs2oi+8u/Qr+P7AAaPTbQT+DEt26gEdc4VNerlEHY="; + }; + } // lib.optionalAttrs stdenv.isLinux { test-runner = callPackage ./test-runner.nix { }; }; diff --git a/pkgs/tools/networking/xrootd/test-xrdcp.nix b/pkgs/tools/networking/xrootd/test-xrdcp.nix new file mode 100644 index 000000000000..3b29e195813a --- /dev/null +++ b/pkgs/tools/networking/xrootd/test-xrdcp.nix @@ -0,0 +1,19 @@ +{ lib +, runCommandLocal +, buildPlatform +, xrootd +, url +, hash +}: runCommandLocal (baseNameOf url) +{ + nativeBuildInputs = [ xrootd ]; + outputHashAlgo = null; + outputHashMode = "flat"; + outputHash = hash; + inherit url; +} +# Set [DY]LD_LIBRARY_PATH to workaround #169677 +# TODO: Remove the library path after #200830 get merged +'' + ${lib.optionalString buildPlatform.isDarwin "DY"}LD_LIBRARY_PATH=${lib.makeLibraryPath [ xrootd ]} xrdcp --force "$url" "$out" +''