python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / tools / networking / xrootd / default.nix
blob454ee094462096ca89bd4e6421464b12b8136739
1 { lib
2 , stdenv
3 , callPackage
4 , fetchFromGitHub
5 , cmake
6 , cppunit
7 , pkg-config
8 , curl
9 , fuse
10 , libkrb5
11 , libuuid
12 , libxcrypt
13 , libxml2
14 , openssl
15 , readline
16 , systemd
17 , voms
18 , zlib
19 , enableTests ? true
20   # If not null, the builder will
21   # move "$out/etc" to "$out/etc.orig" and symlink "$out/etc" to externalEtc.
22 , externalEtc ? "/etc"
25 stdenv.mkDerivation rec {
26   pname = "xrootd";
27   version = "5.5.0";
29   src = fetchFromGitHub {
30     owner = "xrootd";
31     repo = "xrootd";
32     rev = "v${version}";
33     fetchSubmodules = true;
34     hash = "sha256-a8qw8uHxd7OLMMq+HPMB36O0Yjctlnf8DkfEdMvc1NQ=";
35   };
37   outputs = [ "bin" "out" "dev" "man" ];
39   passthru.tests = lib.optionalAttrs enableTests {
40     test-runner = callPackage ./test-runner.nix { };
41   };
43   nativeBuildInputs = [
44     cmake
45     pkg-config
46   ];
48   buildInputs = [
49     curl
50     libkrb5
51     libuuid
52     libxcrypt
53     libxml2
54     openssl
55     readline
56     zlib
57   ]
58   ++ lib.optionals stdenv.isLinux [
59     fuse
60     systemd
61     voms
62   ]
63   ++ lib.optionals enableTests [
64     cppunit
65   ];
67   preConfigure = ''
68     patchShebangs genversion.sh
70     # Manually apply part of
71     # https://github.com/xrootd/xrootd/pull/1619
72     # Remove after the above PR is merged.
73     sed -i 's/set\((\s*CMAKE_INSTALL_[A-Z_]\+DIR\s\+"[^"]\+"\s*)\)/define_default\1/g' cmake/XRootDOSDefs.cmake
74   '';
76   # https://github.com/xrootd/xrootd/blob/master/packaging/rhel/xrootd.spec.in#L665-L675=
77   postInstall = ''
78     mkdir -p "$out/lib/tmpfiles.d"
79     install -m 644 -T ../packaging/rhel/xrootd.tmpfiles "$out/lib/tmpfiles.d/xrootd.conf"
80     mkdir -p "$out/etc/xrootd"
81     install -m 644 -t "$out/etc/xrootd" ../packaging/common/*.cfg
82     install -m 644 -t "$out/etc/xrootd" ../packaging/common/client.conf
83     mkdir -p "$out/etc/xrootd/client.plugins.d"
84     install -m 644 -t "$out/etc/xrootd/client.plugins.d" ../packaging/common/client-plugin.conf.example
85     mkdir -p "$out/etc/logrotate.d"
86     install -m 644 -T ../packaging/common/xrootd.logrotate "$out/etc/logrotate.d/xrootd"
87   '' + lib.optionalString stdenv.isLinux ''
88     mkdir -p "$out/lib/systemd/system"
89     install -m 644 -t "$out/lib/systemd/system" ../packaging/common/*.service ../packaging/common/*.socket
90   '';
92   cmakeFlags = lib.optionals enableTests [
93     "-DENABLE_TESTS=TRUE"
94   ];
96   postFixup = lib.optionalString (externalEtc != null) ''
97     mv "$out"/etc{,.orig}
98     ln -s ${lib.escapeShellArg externalEtc} "$out/etc"
99   '';
101   meta = with lib; {
102     description = "High performance, scalable fault tolerant data access";
103     homepage = "https://xrootd.slac.stanford.edu";
104     license = licenses.lgpl3Plus;
105     platforms = platforms.all;
106     maintainers = with maintainers; [ ShamrockLee ];
107   };