rio: 0.0.36 -> 0.0.37
[NixPkgs.git] / pkgs / tools / networking / zerotierone / default.nix
blobf9415055a537db42f1d3338d739a9948c7efadd1
1 { lib
2 , stdenv
3 , rustPlatform
4 , fetchFromGitHub
5 , buildPackages
6 , cargo
7 , lzo
8 , openssl
9 , pkg-config
10 , ronn
11 , rustc
12 , zlib
15 let
16   pname = "zerotierone";
17   version = "1.14.0";
19   src = fetchFromGitHub {
20     owner = "zerotier";
21     repo = "ZeroTierOne";
22     rev = version;
23     sha256 = "sha256-YWcqALUB3ZEukL4er2FKcyNdEbuaf//QU5hRbKAfxDA=";
24   };
26 in stdenv.mkDerivation {
27   inherit pname version src;
29   cargoDeps = rustPlatform.importCargoLock {
30     lockFile = ./Cargo.lock;
31     outputHashes = {
32       "jwt-0.16.0" = "sha256-P5aJnNlcLe9sBtXZzfqHdRvxNfm6DPBcfcKOVeLZxcM=";
33       "rustfsm-0.1.0" = "sha256-q7J9QgN67iuoNhQC8SDVzUkjCNRXGiNCkE8OsQc5+oI=";
34     };
35   };
36   postPatch = "cp ${./Cargo.lock} Cargo.lock";
38   preConfigure = ''
39     cmp ./Cargo.lock ./rustybits/Cargo.lock || {
40       echo 1>&2 "Please make sure that the derivation's Cargo.lock is identical to ./rustybits/Cargo.lock!"
41       exit 1
42     }
44     patchShebangs ./doc/build.sh
45     substituteInPlace ./doc/build.sh \
46       --replace '/usr/bin/ronn' '${buildPackages.ronn}/bin/ronn' \
48     substituteInPlace ./make-linux.mk \
49       --replace '-march=armv6zk' "" \
50       --replace '-mcpu=arm1176jzf-s' ""
51   '';
53   nativeBuildInputs = [
54     pkg-config
55     ronn
56     rustPlatform.cargoSetupHook
57     cargo
58     rustc
59   ];
60   buildInputs = [
61     lzo
62     openssl
63     zlib
64   ];
66   enableParallelBuilding = true;
68   buildFlags = [ "all" "selftest" ];
70   doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
71   checkPhase = ''
72     runHook preCheck
73     ./zerotier-selftest
74     runHook postCheck
75   '';
77   installFlags = [ "DESTDIR=$$out/upstream" ];
79   postInstall = ''
80     mv $out/upstream/usr/sbin $out/bin
82     mkdir -p $man/share
83     mv $out/upstream/usr/share/man $man/share/man
85     rm -rf $out/upstream
86   '';
88   outputs = [ "out" "man" ];
90   passthru.updateScript = ./update.sh;
92   meta = with lib; {
93     description = "Create flat virtual Ethernet networks of almost unlimited size";
94     homepage = "https://www.zerotier.com";
95     license = licenses.bsl11;
96     maintainers = with maintainers; [ sjmackenzie zimbatm ehmry obadz danielfullmer ];
97     platforms = platforms.linux;
98   };