summary refs log tree commit diff
path: root/pkgs/servers
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2019-12-25 05:15:06 +0100
committerJan Tojnar <jtojnar@gmail.com>2019-12-25 05:15:06 +0100
commitca39dd3a8a93361c262c976038dc4af7ceea2d85 (patch)
tree816c743ccc467ebedac5c6553b0a8a081cf534c3 /pkgs/servers
parentd244b77850263501c149435f2ff2de357b9db72c (diff)
parent760be1f4b221591e75ad0065080720fdb1b4289c (diff)
downloadnixpkgs-ca39dd3a8a93361c262c976038dc4af7ceea2d85.tar
nixpkgs-ca39dd3a8a93361c262c976038dc4af7ceea2d85.tar.gz
nixpkgs-ca39dd3a8a93361c262c976038dc4af7ceea2d85.tar.bz2
nixpkgs-ca39dd3a8a93361c262c976038dc4af7ceea2d85.tar.lz
nixpkgs-ca39dd3a8a93361c262c976038dc4af7ceea2d85.tar.xz
nixpkgs-ca39dd3a8a93361c262c976038dc4af7ceea2d85.tar.zst
nixpkgs-ca39dd3a8a93361c262c976038dc4af7ceea2d85.zip
Merge branch 'master' into staging-next
Diffstat (limited to 'pkgs/servers')
-rw-r--r--pkgs/servers/cloud-print-connector/default.nix10
-rw-r--r--pkgs/servers/computing/slurm/default.nix4
-rw-r--r--pkgs/servers/dns/powerdns/default.nix4
-rw-r--r--pkgs/servers/gotify/default.nix6
-rw-r--r--pkgs/servers/gotify/ui.nix4
-rw-r--r--pkgs/servers/mail/public-inbox/default.nix66
-rw-r--r--pkgs/servers/matrix-synapse/default.nix8
-rw-r--r--pkgs/servers/mautrix-telegram/default.nix10
-rw-r--r--pkgs/servers/miniflux/default.nix4
-rw-r--r--pkgs/servers/monitoring/cadvisor/default.nix25
-rw-r--r--pkgs/servers/monitoring/zabbix/versions.nix12
-rw-r--r--pkgs/servers/mpd/default.nix4
-rw-r--r--pkgs/servers/nextcloud/default.nix4
-rw-r--r--pkgs/servers/plex/raw.nix4
-rw-r--r--pkgs/servers/shairport-sync/default.nix4
-rw-r--r--pkgs/servers/unpfs/default.nix34
-rw-r--r--pkgs/servers/webmetro/default.nix2
-rw-r--r--pkgs/servers/xandikos/default.nix31
18 files changed, 186 insertions, 50 deletions
diff --git a/pkgs/servers/cloud-print-connector/default.nix b/pkgs/servers/cloud-print-connector/default.nix
index bf8623f0a89..2fb5b403508 100644
--- a/pkgs/servers/cloud-print-connector/default.nix
+++ b/pkgs/servers/cloud-print-connector/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, avahi, cups }:
+{ stdenv, buildGoPackage, fetchFromGitHub, avahi, cups, fetchpatch }:
 
 # TODO: Add a service for gcp-cups-connector and perhaps some other
 # kind of configuration for the same thing that gcp-connector-util
@@ -19,6 +19,14 @@ buildGoPackage rec {
     "gcp-cups-connector"
   ];
 
+  patches = [
+    (fetchpatch {
+      # https://github.com/google/cloud-print-connector/pull/475
+      url = "https://github.com/google/cloud-print-connector/commit/6a77c7c283b83cbcc9cbfab59710023cd09da3ed.patch";
+      sha256 = "054pi9nz402va95z5k6wq3dalnv5rcya078wa99p1kdwb7cqmrcq";
+    })
+  ];
+
   src = fetchFromGitHub {
     owner = "google";
     repo = "cloud-print-connector";
diff --git a/pkgs/servers/computing/slurm/default.nix b/pkgs/servers/computing/slurm/default.nix
index 8eb8437b0d5..637ac0607db 100644
--- a/pkgs/servers/computing/slurm/default.nix
+++ b/pkgs/servers/computing/slurm/default.nix
@@ -8,7 +8,7 @@
 
 stdenv.mkDerivation rec {
   pname = "slurm";
-  version = "19.05.4.1";
+  version = "19.05.5.1";
 
   # N.B. We use github release tags instead of https://www.schedmd.com/downloads.php
   # because the latter does not keep older releases.
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     repo = "slurm";
     # The release tags use - instead of .
     rev = "${pname}-${builtins.replaceStrings ["."] ["-"] version}";
-    sha256 = "07ydjda2dl9casz8hh91jlxdyc67mj4af1l2gq3gkzi4397azzz6";
+    sha256 = "0f0gv3sirp6sxdrbwydsbcqicjbmrpm58yhgbsar8v6nx3g6y3hx";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/servers/dns/powerdns/default.nix b/pkgs/servers/dns/powerdns/default.nix
index 5bfb06cb15b..129fec2895b 100644
--- a/pkgs/servers/dns/powerdns/default.nix
+++ b/pkgs/servers/dns/powerdns/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "powerdns";
-  version = "4.2.0";
+  version = "4.2.1";
 
   src = fetchurl {
     url = "https://downloads.powerdns.com/releases/pdns-${version}.tar.bz2";
-    sha256 = "0flhia156vir03np8va53rw31jsbg9wz3dyqqwddgai5bvr0f812";
+    sha256 = "0a5al77rn4cd7v3g8c2q7627nf9b9g8dxg7yzz3b3jwgdfc1jl7n";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/servers/gotify/default.nix b/pkgs/servers/gotify/default.nix
index cce37fd8e6b..3d644093a0b 100644
--- a/pkgs/servers/gotify/default.nix
+++ b/pkgs/servers/gotify/default.nix
@@ -12,16 +12,16 @@ buildGoModule rec {
   pname = "gotify-server";
   # Note that when this is updated, along with the hash, the `ui.nix` file
   # should include the same changes to the version and the sha256.
-  version = "2.0.11";
+  version = "2.0.12";
 
   src = fetchFromGitHub {
     owner = "gotify";
     repo = "server";
     rev = "v${version}";
-    sha256 = "0zrylyaxy1cks1wlzyf0di8in2braj4pfriyqa24vipwrlnhvgs6";
+    sha256 = "0pkws83ymmlxcdxadb1w6rmibw84vzhx9xrhxc6b1rjncb80l0kk";
   };
 
-  modSha256 = "19mghbs1jasb7vxdw13mmwsbk5sfg3y2vvddr73c82lq0f8g2iha";
+  modSha256 = "1awhbc8qs2bwv6y2vwd92r4ys0l1bzymrb36iamr040x961682wv";
 
   postPatch = ''
     substituteInPlace app.go \
diff --git a/pkgs/servers/gotify/ui.nix b/pkgs/servers/gotify/ui.nix
index a47e5279585..ecb0367e3f2 100644
--- a/pkgs/servers/gotify/ui.nix
+++ b/pkgs/servers/gotify/ui.nix
@@ -8,13 +8,13 @@ yarn2nix-moretea.mkYarnPackage rec {
   packageJSON = ./package.json;
   yarnNix = ./yarndeps.nix;
 
-  version = "2.0.11";
+  version = "2.0.12";
 
   src_all = fetchFromGitHub {
     owner = "gotify";
     repo = "server";
     rev = "v${version}";
-    sha256 = "0zrylyaxy1cks1wlzyf0di8in2braj4pfriyqa24vipwrlnhvgs6";
+    sha256 = "0pkws83ymmlxcdxadb1w6rmibw84vzhx9xrhxc6b1rjncb80l0kk";
   };
   src = "${src_all}/ui";
 
diff --git a/pkgs/servers/mail/public-inbox/default.nix b/pkgs/servers/mail/public-inbox/default.nix
new file mode 100644
index 00000000000..b4749558500
--- /dev/null
+++ b/pkgs/servers/mail/public-inbox/default.nix
@@ -0,0 +1,66 @@
+{ buildPerlPackage, lib, fetchurl, makeWrapper
+, DBDSQLite, EmailMIME, IOSocketSSL, IPCRun, Plack, PlackMiddlewareReverseProxy
+, SearchXapian, TimeDate, URI
+, git, highlight, openssl, xapian
+}:
+
+let
+
+  # These tests would fail, and produce "Operation not permitted"
+  # errors from git, because they use git init --shared.  This tries
+  # to set the setgid bit, which isn't permitted inside build
+  # sandboxes.
+  #
+  # These tests were indentified with
+  #     grep -r shared t/
+  skippedTests = [ "convert-compact" "search" "v2writable" "www_listing" ];
+
+  testConditions = with lib;
+    concatMapStringsSep " " (n: "! -name ${escapeShellArg n}.t") skippedTests;
+
+in
+
+buildPerlPackage rec {
+  pname = "public-inbox";
+  version = "1.2.0";
+
+  src = fetchurl {
+    url = "https://public-inbox.org/releases/public-inbox-${version}.tar.gz";
+    sha256 = "0sa2m4f2x7kfg3mi4im7maxqmqvawafma8f7g92nyfgybid77g6s";
+  };
+
+  outputs = [ "out" "devdoc" "sa_config" ];
+
+  postConfigure = ''
+    substituteInPlace Makefile --replace 'TEST_FILES = t/*.t' \
+        'TEST_FILES = $(shell find t -name *.t ${testConditions})'
+  '';
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildInputs = [
+    DBDSQLite EmailMIME IOSocketSSL IPCRun Plack PlackMiddlewareReverseProxy
+    SearchXapian TimeDate URI highlight
+  ];
+
+  checkInputs = [ git openssl xapian ];
+  preCheck = ''
+    perl certs/create-certs.perl
+  '';
+
+  installTargets = [ "install" ];
+  postInstall = ''
+    for prog in $out/bin/*; do
+        wrapProgram $prog --prefix PATH : ${lib.makeBinPath [ git ]}
+    done
+
+    mv sa_config $sa_config
+  '';
+
+  meta = with lib; {
+    homepage = "https://public-inbox.org/";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ qyliss ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix
index db61fd5568e..c270caa5a8e 100644
--- a/pkgs/servers/matrix-synapse/default.nix
+++ b/pkgs/servers/matrix-synapse/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, python3, openssl
-, enableSystemd ? stdenv.isLinux
+, enableSystemd ? stdenv.isLinux, nixosTests
 }:
 
 with python3.pkgs;
@@ -23,11 +23,11 @@ let
 
 in buildPythonApplication rec {
   pname = "matrix-synapse";
-  version = "1.7.1";
+  version = "1.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1aix4n4nk90xh6y3w3gvq3wzvykzz7mhj9isl437nid7mf9mcj6n";
+    sha256 = "1nhzjmxzv5bvihl58cdpjw3hdghbh2pz7sg437k841mjn1qqq5lx";
   };
 
   patches = [
@@ -78,6 +78,8 @@ in buildPythonApplication rec {
 
   doCheck = !stdenv.isDarwin;
 
+  passthru.tests = { inherit (nixosTests) matrix-synapse; };
+
   checkPhase = ''
     PYTHONPATH=".:$PYTHONPATH" ${python3.interpreter} -m twisted.trial tests
   '';
diff --git a/pkgs/servers/mautrix-telegram/default.nix b/pkgs/servers/mautrix-telegram/default.nix
index 415609e77c2..e27e8bef6e8 100644
--- a/pkgs/servers/mautrix-telegram/default.nix
+++ b/pkgs/servers/mautrix-telegram/default.nix
@@ -5,6 +5,7 @@ with python3.pkgs;
 buildPythonPackage rec {
   pname = "mautrix-telegram";
   version = "0.6.1";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
@@ -16,12 +17,17 @@ buildPythonPackage rec {
       url = https://github.com/tulir/mautrix-telegram/commit/be6d395ed66d86ec7f13a262f9ae37731987019c.patch;
       sha256 = "1q69ip17r45yhyrxr0pj8bvqj2grw2l39wak8pi5pm7qrxra93j2";
     })
+    # bump dependencies, remove on next bump
+    (fetchpatch {
+      url = "https://github.com/tulir/mautrix-telegram/commit/cdee0df5ab9e04d6831e34590959496061c6621c.patch";
+      sha256 = "0sbfaais0jgg305dcjg9hn8b975ymdivvhmlzsxm1nm2ksa4c0v1";
+    })
   ];
 
-  disabled = pythonOlder "3.6";
-
   postPatch = ''
     sed -i -e '/alembic>/d' setup.py
+    substituteInPlace setup.py \
+      --replace "telethon>=1.9,<1.10" "telethon~=1.9"
   '';
 
   propagatedBuildInputs = [
diff --git a/pkgs/servers/miniflux/default.nix b/pkgs/servers/miniflux/default.nix
index 96f09c2f82a..dd06c358358 100644
--- a/pkgs/servers/miniflux/default.nix
+++ b/pkgs/servers/miniflux/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "miniflux";
-  version = "2.0.18";
+  version = "2.0.19";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "0480f4481qf47l3l79f4gxhgfzzhfapjvl18kw9qjj3rzqn9xyj4";
+    sha256 = "121qy1af1qbc09c3yfwhpk6r3hwmh3jg6gjx8ygfv3hfrss9yfll";
   };
 
   goPackagePath = "miniflux.app";
diff --git a/pkgs/servers/monitoring/cadvisor/default.nix b/pkgs/servers/monitoring/cadvisor/default.nix
index 029d8700956..aa4db2239f0 100644
--- a/pkgs/servers/monitoring/cadvisor/default.nix
+++ b/pkgs/servers/monitoring/cadvisor/default.nix
@@ -1,32 +1,21 @@
-{ stdenv, go, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub }:
 
-stdenv.mkDerivation rec {
+buildGoPackage rec {
   pname = "cadvisor";
-  version = "0.34.0";
+  version = "0.35.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "cadvisor";
     rev = "v${version}";
-    sha256 = "1hshmhsclja50ja2jqxx2f5lcvbs64n6aw6dw28wbnq3z9v0q8ad";
+    sha256 = "1652yf2a4ng9z0jq8q6jnzh6svj5nwar9j8q7sssgy36bi03ixqa";
   };
 
-  nativeBuildInputs = [ go ];
+  goPackagePath = "github.com/google/cadvisor";
 
-  buildPhase = ''
-    export GOCACHE="$TMPDIR/go-cache"
-    mkdir -p Godeps/_workspace/src/github.com/google/
-    ln -s $(pwd) Godeps/_workspace/src/github.com/google/cadvisor
-    GOPATH=$(pwd)/Godeps/_workspace go build -v -o cadvisor -ldflags="-s -w -X github.com/google/cadvisor/version.Version=${version}" github.com/google/cadvisor
-  '';
+  subPackages = [ "." ];
 
-  installPhase = ''
-    runHook preInstall
-
-    install -Dm755 -t $out/bin cadvisor
-
-    runHook postInstall
-  '';
+  buildFlagsArray = [ "-ldflags=-s -w -X github.com/google/cadvisor/version.Version=${version}" ];
 
   meta = with stdenv.lib; {
     description = "Analyzes resource usage and performance characteristics of running docker containers";
diff --git a/pkgs/servers/monitoring/zabbix/versions.nix b/pkgs/servers/monitoring/zabbix/versions.nix
index affd73f9b41..0a61ba489eb 100644
--- a/pkgs/servers/monitoring/zabbix/versions.nix
+++ b/pkgs/servers/monitoring/zabbix/versions.nix
@@ -1,16 +1,16 @@
 generic: {
   v44 = generic {
-    version = "4.4.3";
-    sha256 = "1rpkgimi9kv9zrcis1zwbrny7yzralick206n71i8071hf95jvwx";
+    version = "4.4.4";
+    sha256 = "0pw66zd89w0i9365zkwn6vihx9bdzsmg7f91hd7zzm42s7kyvxvv";
   };
 
   v40 = generic {
-    version = "4.0.15";
-    sha256 = "19q8h79h7lnsq6gbd0awrlw59scg92x0a1375kd2av6bjpx8r0y9";
+    version = "4.0.16";
+    sha256 = "0hjdvi0cwr9qczmkvnmmd22828hv5c587xcszp9pnap6621f3mx8";
   };
 
   v30 = generic {
-    version = "3.0.28";
-    sha256 = "16966danf5ww4lhjg5gx5bnpid8abxh2ymdg6k5mymrman5bcdjj";
+    version = "3.0.29";
+    sha256 = "1d81w68hnkjdj1a00iasg6aidw25syi4lrbsiyc98pdihmxbpiky";
   };
 }
diff --git a/pkgs/servers/mpd/default.nix b/pkgs/servers/mpd/default.nix
index d2578b185fc..5dbd273fc3f 100644
--- a/pkgs/servers/mpd/default.nix
+++ b/pkgs/servers/mpd/default.nix
@@ -102,13 +102,13 @@ let
 
     in stdenv.mkDerivation rec {
       pname = "mpd";
-      version = "0.21.16";
+      version = "0.21.17";
 
       src = fetchFromGitHub {
         owner  = "MusicPlayerDaemon";
         repo   = "MPD";
         rev    = "v${version}";
-        sha256 = "0yfzn1hcyww8z5pp70n7iinycz097vjc6q9fzmfrc6ikvz3db8f4";
+        sha256 = "0a8nlsmkklm545vnnxcvgq40fqx4a6rp8xvrnvyy0iiwa94kf2r5";
       };
 
       buildInputs = [ glib boost ]
diff --git a/pkgs/servers/nextcloud/default.nix b/pkgs/servers/nextcloud/default.nix
index 02c3759c58b..0d0aec4fb2c 100644
--- a/pkgs/servers/nextcloud/default.nix
+++ b/pkgs/servers/nextcloud/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nextcloud";
-  version = "17.0.1";
+  version = "17.0.2";
 
   src = fetchurl {
     url = "https://download.nextcloud.com/server/releases/${pname}-${version}.tar.bz2";
-    sha256 = "0jrbpzc4xf52zfncn6w2m0ch2fszqqz3ny0jq1cw7fy24vjhwgkp";
+    sha256 = "1qrxalyyfjlv3myzkn5z33smfpv8r1ph2w9ax6jqivspq3zrc9gk";
   };
 
   installPhase = ''
diff --git a/pkgs/servers/plex/raw.nix b/pkgs/servers/plex/raw.nix
index 998d64e34f0..8b68d7bf501 100644
--- a/pkgs/servers/plex/raw.nix
+++ b/pkgs/servers/plex/raw.nix
@@ -8,13 +8,13 @@
 # server, and the FHS userenv and corresponding NixOS module should
 # automatically pick up the changes.
 stdenv.mkDerivation rec {
-  version = "1.18.2.2058-e67a4e892";
+  version = "1.18.3.2156-349e9837e";
   pname = "plexmediaserver";
 
   # Fetch the source
   src = fetchurl {
     url = "https://downloads.plex.tv/plex-media-server-new/${version}/redhat/plexmediaserver-${version}.x86_64.rpm";
-    sha256 = "12riaabhc4pp3nbjqvbp81fsnjzw43yfgnkjm7s9il0n85awzg0s";
+    sha256 = "1kcmcpf2nnly01d2wrk6krg5jh5s7cyr31l9jkqlj5zkf5qj1bbx";
   };
 
   outputs = [ "out" "basedb" ];
diff --git a/pkgs/servers/shairport-sync/default.nix b/pkgs/servers/shairport-sync/default.nix
index f97182612fd..99402b3e1be 100644
--- a/pkgs/servers/shairport-sync/default.nix
+++ b/pkgs/servers/shairport-sync/default.nix
@@ -2,11 +2,11 @@
 , libdaemon, popt, pkgconfig, libconfig, libpulseaudio, soxr }:
 
 stdenv.mkDerivation rec {
-  version = "3.3.4";
+  version = "3.3.5";
   pname = "shairport-sync";
 
   src = fetchFromGitHub {
-    sha256 = "07rxf1la93g5y7yq49fglhxji8vizzr268p1ccf8ws8j025vbl7n";
+    sha256 = "1qaxx1g4dvdx54mc1kw07hm445zij37w6qmkdcwymy13krvsfd4b";
     rev = version;
     repo = "shairport-sync";
     owner = "mikebrady";
diff --git a/pkgs/servers/unpfs/default.nix b/pkgs/servers/unpfs/default.nix
new file mode 100644
index 00000000000..df6cfb70438
--- /dev/null
+++ b/pkgs/servers/unpfs/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "unpfs";
+  version = "0.0.2019-05-17";
+
+  src = fetchFromGitHub {
+    owner = "pfpacket";
+    repo = "rust-9p";
+    rev = "01cf9c60bff0f35567d876db7be7fb86032b44eb";
+    sha256 = "0mhmr1912z5nyfpcvhnlgb3v67a5n7i2n9l5abi05sfqffqssi79";
+  };
+
+  sourceRoot = "source/example/unpfs";
+
+  cargoSha256 = "1d33nwj3i333a6ji3r3037mgg553lc3wsawm0pz13kbvhjf336i8";
+
+  RUSTC_BOOTSTRAP = 1;
+
+  postInstall = ''
+    install -D -m 0444 ../../README* -t "$out/share/doc/${pname}"
+    install -D -m 0444 ../../LICEN* -t "$out/share/doc/${pname}"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "9P2000.L server implementation in Rust";
+    homepage = "https://github.com/pfpacket/rust-9p";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ raskin ];
+
+    # macOS build fails: https://github.com/pfpacket/rust-9p/issues/7
+    platforms = with platforms; linux;
+  };
+}
diff --git a/pkgs/servers/webmetro/default.nix b/pkgs/servers/webmetro/default.nix
index 352c5a80e1f..fc9876e10c2 100644
--- a/pkgs/servers/webmetro/default.nix
+++ b/pkgs/servers/webmetro/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1n2c7ygs8qsd5zgii6fqqcwg427bsij082bg4ijnzkq5630dx651";
   };
 
-  cargoSha256 = "07c8rrm70idmpvijvgkbgw5vswcyrghlrzv1km054xds5qxi2ldq";
+  cargoSha256 = "03ncwj9bn21590phcnqyclclcird7rikbhxbwhg8i9i0nad81aaa";
 
   meta = with stdenv.lib; {
     description = "Simple relay server for broadcasting a WebM stream";
diff --git a/pkgs/servers/xandikos/default.nix b/pkgs/servers/xandikos/default.nix
new file mode 100644
index 00000000000..27fb93a8803
--- /dev/null
+++ b/pkgs/servers/xandikos/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, fetchFromGitHub
+, python3Packages
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "xandikos";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "jelmer";
+    repo = "xandikos";
+    rev = "v${version}";
+    sha256 = "12r8fciid2qpqf054584ywwh49yddyhhpkpcm6jihzyr5y2r4kn1";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    dulwich
+    defusedxml
+    icalendar
+    jinja2
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Lightweight CalDAV/CardDAV server";
+    homepage = "https://github.com/jelmer/xandikos";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers."0x4A6F" ];
+  };
+}
+