Merge pull request #330634 from r-ryantm/auto-update/circumflex
[NixPkgs.git] / pkgs / servers / etebase / default.nix
blob6076bb161fa33ceec256cfd599346abe931871a7
1 { lib
2 , fetchFromGitHub
3 , python3
4 , withLdap ? false
5 , withPostgres ? true
6 , nix-update-script
7 , nixosTests
8 }:
10 let
11   python = python3.override {
12     packageOverrides = self: super: {
13       pydantic = super.pydantic_1;
14     };
15   };
17 python.pkgs.buildPythonApplication rec {
18   pname = "etebase-server";
19   version = "0.13.1";
21   src = fetchFromGitHub {
22     owner = "etesync";
23     repo = "server";
24     rev = "refs/tags/v${version}";
25     hash = "sha256-GEieXue3Kvc4zZjfypKLmTmhNPbn/GR8g0qEqkl+wkw=";
26   };
28   patches = [ ./secret.patch ];
30   doCheck = false;
32   propagatedBuildInputs = with python.pkgs; [
33     aiofiles
34     django_4
35     fastapi
36     msgpack
37     pynacl
38     redis
39     uvicorn
40     websockets
41     watchfiles
42     uvloop
43     pyyaml
44     python-dotenv
45     httptools
46     typing-extensions
47   ] ++ lib.optional withLdap python-ldap
48     ++ lib.optional withPostgres psycopg2;
50   postInstall = ''
51     mkdir -p $out/bin $out/lib
52     cp manage.py $out/bin/etebase-server
53     wrapProgram $out/bin/etebase-server --prefix PYTHONPATH : "$PYTHONPATH"
54     chmod +x $out/bin/etebase-server
55   '';
57   passthru.updateScript = nix-update-script {};
58   passthru.python = python;
59   # PYTHONPATH of all dependencies used by the package
60   passthru.pythonPath = python.pkgs.makePythonPath propagatedBuildInputs;
61   passthru.tests = {
62     nixosTest = nixosTests.etebase-server;
63   };
65   meta = with lib; {
66     homepage = "https://github.com/etesync/server";
67     description = "Etebase (EteSync 2.0) server so you can run your own";
68     mainProgram = "etebase-server";
69     changelog = "https://github.com/etesync/server/blob/${version}/ChangeLog.md";
70     license = licenses.agpl3Only;
71     maintainers = with maintainers; [ felschr phaer ];
72   };