biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / servers / moonraker / default.nix
blob6a524d371313c000ca3c59b05ebfcd46fef6f189
1 { lib, stdenvNoCC, fetchFromGitHub, python3, makeWrapper, unstableGitUpdater, nixosTests, useGpiod ? false }:
3 let
4   pythonEnv = python3.withPackages (packages:
5     with packages; [
6       tornado
7       pyserial-asyncio
8       pillow
9       lmdb
10       streaming-form-data
11       distro
12       inotify-simple
13       libnacl
14       paho-mqtt
15       pycurl
16       zeroconf
17       preprocess-cancellation
18       jinja2
19       dbus-next
20       apprise
21       python-periphery
22     ]
23   );
24 in stdenvNoCC.mkDerivation rec {
25   pname = "moonraker";
26   version = "unstable-2023-12-27";
28   src = fetchFromGitHub {
29     owner = "Arksine";
30     repo = "moonraker";
31     rev = "c226e9c1e44d65ff6ea400b81e3cedba7f637976";
32     sha256 = "sha256-wdf4uab8pJEWaX6PFN9Y9pykmylmxJ4Oo5pwSQcyjCc=";
33   };
35   nativeBuildInputs = [ makeWrapper ];
37   installPhase = ''
38     mkdir -p $out $out/bin $out/lib
39     cp -r moonraker $out/lib
41     makeWrapper ${pythonEnv}/bin/python $out/bin/moonraker \
42       --add-flags "$out/lib/moonraker/moonraker.py"
43   '';
45   passthru = {
46     updateScript = unstableGitUpdater { url = meta.homepage; };
47     tests.moonraker = nixosTests.moonraker;
48   };
50   meta = with lib; {
51     description = "API web server for Klipper";
52     homepage = "https://github.com/Arksine/moonraker";
53     license = licenses.gpl3Only;
54     maintainers = with maintainers; [ zhaofengli ];
55     mainProgram = "moonraker";
56   };