python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / tools / networking / zerotierone / default.nix
blob10dc8a2a266fb05fc3b55e194e7103dc12a3306d
1 { lib
2 , stdenv
3 , rustPlatform
4 , fetchFromGitHub
5 , fetchurl
7 , buildPackages
8 , iproute2
9 , lzo
10 , openssl
11 , pkg-config
12 , ronn
13 , zlib
16 let
17   pname = "zerotierone";
18   version = "1.10.2";
20   src = fetchFromGitHub {
21     owner = "zerotier";
22     repo = "ZeroTierOne";
23     rev = version;
24     sha256 = "sha256-p900bw+BGzyMwH91W9NRfYS1ZUW74YaALwr1Gv9BlvQ=";
25   };
26 in stdenv.mkDerivation {
27   inherit pname version src;
29   preConfigure = ''
30     patchShebangs ./doc/build.sh
31     substituteInPlace ./doc/build.sh \
32       --replace '/usr/bin/ronn' '${buildPackages.ronn}/bin/ronn' \
34     substituteInPlace ./make-linux.mk \
35       --replace '-march=armv6zk' "" \
36       --replace '-mcpu=arm1176jzf-s' ""
38     # Upstream does not define the cargo settings necessary to use the vendorized rust-jwt version, so it has to be added manually.
39     # Can be removed once ZeroTierOne's zeroidc no longer uses a git url in Cargo.toml for jwt
40     echo '[source."https://github.com/glimberg/rust-jwt"]
41 git = "https://github.com/glimberg/rust-jwt"
42 replace-with = "vendored-sources"' >> ./zeroidc/.cargo/config.toml
43   '';
45   nativeBuildInputs = [
46     pkg-config
47     ronn
48     rustPlatform.rust.cargo
49     rustPlatform.rust.rustc
50   ];
51   buildInputs = [
52     iproute2
53     lzo
54     openssl
55     zlib
56   ];
58   enableParallelBuilding = true;
60   buildFlags = [ "all" "selftest" ];
62   doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
63   checkPhase = ''
64     runHook preCheck
65     ./zerotier-selftest
66     runHook postCheck
67   '';
69   installFlags = [ "DESTDIR=$$out/upstream" ];
71   postInstall = ''
72     mv $out/upstream/usr/sbin $out/bin
74     mkdir -p $man/share
75     mv $out/upstream/usr/share/man $man/share/man
77     rm -rf $out/upstream
78   '';
80   outputs = [ "out" "man" ];
82   meta = with lib; {
83     description = "Create flat virtual Ethernet networks of almost unlimited size";
84     homepage = "https://www.zerotier.com";
85     license = licenses.bsl11;
86     maintainers = with maintainers; [ sjmackenzie zimbatm ehmry obadz danielfullmer ];
87     platforms = platforms.all;
88   };