From 211cbfdb1308cf6e01fb4412f7701a63c8aae3aa Mon Sep 17 00:00:00 2001 From: Felix Tenley Date: Fri, 27 Nov 2020 23:12:41 +0100 Subject: [PATCH] etebase-server: init at 0.7.0 --- pkgs/servers/etebase/default.nix | 56 ++++++++++++++++++++++++++++++ pkgs/servers/etebase/secret.patch | 26 ++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ pkgs/top-level/python-packages.nix | 2 ++ 4 files changed, 86 insertions(+) create mode 100644 pkgs/servers/etebase/default.nix create mode 100644 pkgs/servers/etebase/secret.patch diff --git a/pkgs/servers/etebase/default.nix b/pkgs/servers/etebase/default.nix new file mode 100644 index 00000000000..216f67b97ff --- /dev/null +++ b/pkgs/servers/etebase/default.nix @@ -0,0 +1,56 @@ +{ lib, python3, fetchFromGitHub }: + +let + py = python3.override { + packageOverrides = self: super: { + django = super.django_3; + }; + }; +in + with py.pkgs; + +buildPythonPackage rec { + pname = "etebase-server"; + version = "0.7.0"; + format = "pyproject"; + + src = fetchFromGitHub { + owner = "etesync"; + repo = "server"; + rev = "v${version}"; + sha256 = "1r2a7ki9w2h3l6rwqa3fzxjlqfj2lbgfrm8lynjhvcdv02s5abbi"; + }; + + patches = [ ./secret.patch ]; + + propagatedBuildInputs = with pythonPackages; [ + asgiref + cffi + django + django-cors-headers + djangorestframework + drf-nested-routers + msgpack + psycopg2 + pycparser + pynacl + pytz + six + sqlparse + ]; + + installPhase = '' + mkdir -p $out/bin $out/lib + cp -r . $out/lib/etebase-server + ln -s $out/lib/etebase-server/manage.py $out/bin/etebase-server + wrapProgram $out/bin/etebase-server --prefix PYTHONPATH : "$PYTHONPATH" + chmod +x $out/bin/etebase-server + ''; + + meta = with lib; { + homepage = "https://github.com/etesync/server"; + description = "An Etebase (EteSync 2.0) server so you can run your own."; + license = licenses.agpl3Only; + maintainers = with maintainers; [ felschr ]; + }; +} diff --git a/pkgs/servers/etebase/secret.patch b/pkgs/servers/etebase/secret.patch new file mode 100644 index 00000000000..182d3259248 --- /dev/null +++ b/pkgs/servers/etebase/secret.patch @@ -0,0 +1,26 @@ +diff --git a/etebase_server/settings.py b/etebase_server/settings.py +index 9baf8d3..501d9f6 100644 +--- a/etebase_server/settings.py ++++ b/etebase_server/settings.py +@@ -23,11 +22,6 @@ + # Quick-start development settings - unsuitable for production + # See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/ + +-# SECURITY WARNING: keep the secret key used in production secret! +-# See secret.py for how this is generated; uses a file 'secret.txt' in the root +-# directory +-SECRET_FILE = os.path.join(BASE_DIR, "secret.txt") +- + # SECURITY WARNING: don't run with debug turned on in production! + DEBUG = True + +@@ -143,7 +137,7 @@ + + section = config["global"] + +- SECRET_FILE = section.get("secret_file", SECRET_FILE) ++ SECRET_FILE = section.get("secret_file", None) + STATIC_ROOT = section.get("static_root", STATIC_ROOT) + STATIC_URL = section.get("static_url", STATIC_URL) + MEDIA_ROOT = section.get("media_root", MEDIA_ROOT) + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9e692cedab2..6b27465a333 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -21634,6 +21634,8 @@ in eteroj.lv2 = libsForQt5.callPackage ../applications/audio/eteroj.lv2 { }; + etebase-server = with python3Packages; toPythonApplication etebase-server; + etesync-dav = callPackage ../applications/misc/etesync-dav {}; etherape = callPackage ../applications/networking/sniffers/etherape { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 5441c9ff13f..1088c4ac897 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2060,6 +2060,8 @@ in { inherit (pkgs.darwin.apple_sdk.frameworks) Security; }; + etebase-server = callPackage ../servers/etebase { }; + etesync = callPackage ../development/python-modules/etesync { }; eth-hash = callPackage ../development/python-modules/eth-hash { };