about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/radicale
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/radicale')
-rw-r--r--nixpkgs/pkgs/servers/radicale/2.x.nix51
-rw-r--r--nixpkgs/pkgs/servers/radicale/3.x.nix58
2 files changed, 109 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/radicale/2.x.nix b/nixpkgs/pkgs/servers/radicale/2.x.nix
new file mode 100644
index 000000000000..c1e596669030
--- /dev/null
+++ b/nixpkgs/pkgs/servers/radicale/2.x.nix
@@ -0,0 +1,51 @@
+{ lib, fetchFromGitHub, python3 }:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "Radicale";
+  version = "2.1.12";
+
+  # No tests in PyPI tarball
+  src = fetchFromGitHub {
+    owner = "Kozea";
+    repo = "Radicale";
+    rev = version;
+    sha256 = "14f9ql0fiwapaa4xaslwgk1ah9fzxxan2p1p2rxb4a5iqph1z0cl";
+  };
+
+  # We only want functional tests
+  postPatch = ''
+    sed -i "s/pytest-cov\|pytest-flake8\|pytest-isort//g" setup.py
+    sed -i "/^addopts/d" setup.cfg
+  '';
+
+  propagatedBuildInputs = with python3.pkgs; [
+    vobject
+    python-dateutil
+    passlib
+    setuptools
+  ];
+
+  nativeCheckInputs = with python3.pkgs; [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # uses unsupported crypt method
+    "test_htpasswd_crypt"
+  ];
+
+  meta = with lib; {
+    homepage = "https://radicale.org/v2.html";
+    description = "CalDAV CardDAV server";
+    mainProgram = "radicale";
+    longDescription = ''
+      The Radicale Project is a complete CalDAV (calendar) and CardDAV
+      (contact) server solution. Calendars and address books are available for
+      both local and remote access, possibly limited through authentication
+      policies. They can be viewed and edited by calendar and contact clients
+      on mobile phones or computers.
+    '';
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ edwtjo pSub infinisil ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/radicale/3.x.nix b/nixpkgs/pkgs/servers/radicale/3.x.nix
new file mode 100644
index 000000000000..92db274bf708
--- /dev/null
+++ b/nixpkgs/pkgs/servers/radicale/3.x.nix
@@ -0,0 +1,58 @@
+{ lib
+, python3
+, fetchFromGitHub
+, nixosTests
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "radicale";
+  version = "3.1.9";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "Kozea";
+    repo = "Radicale";
+    rev = "v${version}";
+    hash = "sha256-i4NQ1+ltRE0g8AoyGKKVcgZgSmLeppnobu6bf2+XmWY=";
+  };
+
+  postPatch = ''
+    sed -i '/addopts/d' setup.cfg
+  '';
+
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    defusedxml
+    passlib
+    vobject
+    python-dateutil
+    pytz # https://github.com/Kozea/Radicale/issues/816
+  ] ++ passlib.optional-dependencies.bcrypt;
+
+  __darwinAllowLocalNetworking = true;
+
+  nativeCheckInputs = with python3.pkgs; [
+    pytestCheckHook
+    waitress
+  ];
+
+  pytestFlagsArray = [
+    # pytest.PytestRemovedIn8Warning: Support for nose tests is deprecated and will be removed in a future release.
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
+  passthru.tests = {
+    inherit (nixosTests) radicale;
+  };
+
+  meta = with lib; {
+    homepage = "https://radicale.org/v3.html";
+    changelog = "https://github.com/Kozea/Radicale/blob/${src.rev}/CHANGELOG.md";
+    description = "CalDAV and CardDAV server";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda erictapen ];
+  };
+}