pytrainer: unpin python 3.10
[NixPkgs.git] / pkgs / misc / moonfire-nvr / default.nix
blob67e5f129927cf979efefd15b7ca73b448c7d1c65
1 { lib
2 , stdenv
3 , rustPlatform
4 , buildNpmPackage
5 , fetchFromGitHub
6 , pkg-config
7 , ncurses
8 , sqlite
9 , testers
10 , moonfire-nvr
11 , darwin
14 let
15   pname = "moonfire-nvr";
16   version = "0.7.7";
17   src = fetchFromGitHub {
18     owner = "scottlamb";
19     repo = "moonfire-nvr";
20     rev = "v${version}";
21     hash = "sha256-+7VahlS+NgaO2knP+xqdlZnNEfjz8yyF/VmjWf77KXI=";
22   };
23   ui = buildNpmPackage {
24     inherit version src;
25     pname = "${pname}-ui";
26     sourceRoot = "${src.name}/ui";
27     npmDepsHash = "sha256-IpZWgMo6Y3vRn9h495ifMB3tQxobLeTLC0xXS1vrKLA=";
28     installPhase = ''
29       runHook preInstall
31       cp -r build $out
33       runHook postInstall
34     '';
35   };
36 in rustPlatform.buildRustPackage {
37   inherit pname version src;
39   sourceRoot = "${src.name}/server";
41   cargoLock = {
42     lockFile = ./Cargo.lock;
43     outputHashes = {
44       "coded-0.2.0-pre" = "sha256-ICDvLFCsiPCzAzf3nrRhH/McNPVQz1+uVOmj6Uc5teg=";
45       "hashlink-0.8.1" = "sha256-h7DEapTVy0SSTaOV9rCkdH3em4A9+PS0k1QQh1+0P4c=";
46       "mp4-0.9.2" = "sha256-mJZJDzD8Ep9c+4QusyBtRoqAArHK9SLdFxG1AR7JydE=";
47     };
48   };
50   nativeBuildInputs = [
51     pkg-config
52   ];
54   buildInputs = [
55     ncurses
56     sqlite
57   ] ++ lib.optionals stdenv.hostPlatform.isDarwin (with darwin.apple_sdk.frameworks; [
58     Security
59   ]);
61   postInstall = ''
62     mkdir -p $out/lib/ui
63     ln -s ${ui} $out/lib/ui
64   '';
66   doCheck = false;
68   passthru = {
69     inherit ui;
70     tests.version = testers.testVersion {
71       inherit version;
72       package = moonfire-nvr;
73       command = "moonfire-nvr --version";
74     };
75   };
77   meta = with lib; {
78     description = "Moonfire NVR, a security camera network video recorder";
79     homepage = "https://github.com/scottlamb/moonfire-nvr";
80     changelog = "https://github.com/scottlamb/moonfire-nvr/releases/tag/v${version}";
81     license = licenses.gpl3Only;
82     maintainers = with maintainers; [ gaelreyrol ];
83     mainProgram = "moonfire-nvr";
84   };