about summary refs log tree commit diff
path: root/pkgs/servers
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/servers')
-rw-r--r--pkgs/servers/amqp/rabbitmq-server/default.nix10
-rw-r--r--pkgs/servers/apache-kafka/default.nix9
-rw-r--r--pkgs/servers/atlassian/confluence.nix4
-rw-r--r--pkgs/servers/atlassian/crowd.nix4
-rw-r--r--pkgs/servers/atlassian/jira.nix4
-rw-r--r--pkgs/servers/dns/bind/default.nix6
-rw-r--r--pkgs/servers/dns/knot-dns/default.nix4
-rw-r--r--pkgs/servers/dns/nsd/default.nix4
-rw-r--r--pkgs/servers/dns/powerdns/default.nix4
-rw-r--r--pkgs/servers/emby/default.nix4
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix752
-rw-r--r--pkgs/servers/home-assistant/default.nix27
-rw-r--r--pkgs/servers/home-assistant/frontend.nix4
-rwxr-xr-xpkgs/servers/home-assistant/parse-requirements.py123
-rw-r--r--pkgs/servers/http/lighttpd/default.nix11
-rw-r--r--pkgs/servers/http/nginx/modules.nix9
-rw-r--r--pkgs/servers/http/openresty/default.nix4
-rw-r--r--pkgs/servers/jackett/default.nix4
-rw-r--r--pkgs/servers/ldap/389/default.nix4
-rw-r--r--pkgs/servers/mail/postfix/default.nix4
-rw-r--r--pkgs/servers/matrix-synapse/default.nix4
-rw-r--r--pkgs/servers/mattermost/default.nix94
-rw-r--r--pkgs/servers/meguca/default.nix48
-rw-r--r--pkgs/servers/meguca/server_deps.nix255
-rw-r--r--pkgs/servers/memcached/default.nix4
-rw-r--r--pkgs/servers/metabase/default.nix4
-rw-r--r--pkgs/servers/minio/default.nix4
-rw-r--r--pkgs/servers/monitoring/bosun/default.nix6
-rw-r--r--pkgs/servers/monitoring/grafana/default.nix6
-rw-r--r--pkgs/servers/monitoring/net-snmp/default.nix1
-rw-r--r--pkgs/servers/monitoring/plugins/labs_consol_de.nix34
-rw-r--r--pkgs/servers/monitoring/prometheus/default.nix6
-rw-r--r--pkgs/servers/monitoring/riemann/default.nix4
-rw-r--r--pkgs/servers/nosql/arangodb/default.nix4
-rw-r--r--pkgs/servers/nosql/eventstore/default.nix4
-rw-r--r--pkgs/servers/osrm-backend/default.nix4
-rw-r--r--pkgs/servers/plex/default.nix6
-rw-r--r--pkgs/servers/slimserver/default.nix20
-rw-r--r--pkgs/servers/sql/mariadb/default.nix4
-rw-r--r--pkgs/servers/sql/monetdb/default.nix6
-rw-r--r--pkgs/servers/sql/mysql/5.5.x.nix9
-rw-r--r--pkgs/servers/sql/mysql/5.7.x.nix16
-rw-r--r--pkgs/servers/sql/postgresql/default.nix2
-rw-r--r--pkgs/servers/sql/postgresql/pg_repack/default.nix4
-rw-r--r--pkgs/servers/sql/postgresql/pgroonga/default.nix4
-rw-r--r--pkgs/servers/sql/postgresql/timescaledb/default.nix4
-rw-r--r--pkgs/servers/sql/postgresql/tsearch_extras/default.nix4
-rw-r--r--pkgs/servers/web-apps/matomo/default.nix5
-rw-r--r--pkgs/servers/webmetro/default.nix31
-rw-r--r--pkgs/servers/x11/xorg/darwin/0002-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch41
-rw-r--r--pkgs/servers/x11/xorg/darwin/0004-Use-old-miTrapezoids-and-miTriangles-routines.patch297
-rw-r--r--pkgs/servers/x11/xorg/darwin/0006-fb-Revert-fb-changes-that-broke-XQuartz.patch243
-rw-r--r--pkgs/servers/x11/xorg/darwin/bundle_main.patch118
-rw-r--r--pkgs/servers/x11/xorg/darwin/private-extern.patch12
-rw-r--r--pkgs/servers/x11/xorg/darwin/stub.patch80
-rw-r--r--pkgs/servers/x11/xorg/default.nix13
-rwxr-xr-xpkgs/servers/x11/xorg/generate-expr-from-tarballs.pl1
-rw-r--r--pkgs/servers/x11/xorg/old.list2
-rw-r--r--pkgs/servers/x11/xorg/overrides.nix85
-rw-r--r--pkgs/servers/x11/xorg/tarballs-7.7.list8
-rw-r--r--pkgs/servers/x11/xquartz/default.nix2
-rw-r--r--pkgs/servers/x11/xquartz/system-fonts.nix4
-rw-r--r--pkgs/servers/xmpp/prosody/default.nix4
63 files changed, 1426 insertions, 1076 deletions
diff --git a/pkgs/servers/amqp/rabbitmq-server/default.nix b/pkgs/servers/amqp/rabbitmq-server/default.nix
index 3d4a8902c918..4cc187846d0d 100644
--- a/pkgs/servers/amqp/rabbitmq-server/default.nix
+++ b/pkgs/servers/amqp/rabbitmq-server/default.nix
@@ -1,17 +1,11 @@
 { stdenv, fetchurl, runCommand
 , erlang, python, libxml2, libxslt, xmlto
 , docbook_xml_dtd_45, docbook_xsl, zip, unzip, rsync
-
 , AppKit, Carbon, Cocoa
+, getconf
 }:
 
-let
-  # we only need that one glibc binary (28k instead of 2.7M)
-  getconf = runCommand "getconf" {} ''
-    install -D ${stdenv.lib.getBin stdenv.cc.libc}/bin/getconf $out/bin/getconf
-  '';
-
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   name = "rabbitmq-server-${version}";
   version = "3.6.15";
 
diff --git a/pkgs/servers/apache-kafka/default.nix b/pkgs/servers/apache-kafka/default.nix
index 152e60455746..fe67bdd0282c 100644
--- a/pkgs/servers/apache-kafka/default.nix
+++ b/pkgs/servers/apache-kafka/default.nix
@@ -19,9 +19,14 @@ let
       sha256 = "1wj639h95aq5n132fq1rbyzqh5rsa4mlhbg3c5mszqglnzdz4xn7";
     };
     "1.0" = {
-      kafkaVersion = "1.0.0";
+      kafkaVersion = "1.0.1";
       scalaVersion = "2.12";
-      sha256 = "1cs4nmp39m99gqjpy5klsffqksc0h9pz514jkq99qb95a83x1cfm";
+      sha256 = "1fxn6i0kanwksj1dhcnlni0cn542k50wdg8jkwhfmf4qq8yfl90m";
+    };
+    "1.1" = {
+      kafkaVersion = "1.1.0";
+      scalaVersion = "2.12";
+      sha256 = "04idhsr6pbkb0xkx38faxv2pn5nkjcflz6wl4s3ka82h1fbq74j9";
     };
   };
 in
diff --git a/pkgs/servers/atlassian/confluence.nix b/pkgs/servers/atlassian/confluence.nix
index a5d89b493e82..c3427b8029e5 100644
--- a/pkgs/servers/atlassian/confluence.nix
+++ b/pkgs/servers/atlassian/confluence.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   name = "atlassian-confluence-${version}";
-  version = "6.6.1";
+  version = "6.8.0";
 
   src = fetchurl {
     url = "https://www.atlassian.com/software/confluence/downloads/binary/${name}.tar.gz";
-    sha256 = "0nb8rjzfd0fqd9k1yxa3dj7kxgh84dgbg9l8jyj59g74ym77qmw0";
+    sha256 = "07awdbkjxkk4rbnpbb5xfjp4125c33bwxncmydlgzgk5fzy6dg2w";
   };
 
   phases = [ "unpackPhase" "buildPhase" "installPhase" ];
diff --git a/pkgs/servers/atlassian/crowd.nix b/pkgs/servers/atlassian/crowd.nix
index 6d7b332da135..4989c3a417a2 100644
--- a/pkgs/servers/atlassian/crowd.nix
+++ b/pkgs/servers/atlassian/crowd.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   name = "atlassian-crowd-${version}";
-  version = "3.0.1";
+  version = "3.1.2";
 
   src = fetchurl {
     url = "https://www.atlassian.com/software/crowd/downloads/binary/${name}.tar.gz";
-    sha256 = "17pz0rgzdv40sbvzb9w6xmdg598m6gs7gsznfnxcy1j011cgg1wr";
+    sha256 = "0pnl0zl38827ckgxh4y1mnq3lr7bvd7v3ysdxxv3nfr5zya4xgki";
   };
 
   phases = [ "unpackPhase" "buildPhase" "installPhase" "fixupPhase" ];
diff --git a/pkgs/servers/atlassian/jira.nix b/pkgs/servers/atlassian/jira.nix
index fd34c1f43859..01eb808c1082 100644
--- a/pkgs/servers/atlassian/jira.nix
+++ b/pkgs/servers/atlassian/jira.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   name = "atlassian-jira-${version}";
-  version = "7.9.0";
+  version = "7.9.2";
 
   src = fetchurl {
     url = "https://downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-${version}.tar.gz";
-    sha256 = "1xj04a78dhjzb2ms875lfg5s3qc8rw31fws92yhmbs0k1866g33b";
+    sha256 = "05976h6033v2w7d05qnigxmsrm33bg7gmgyzpvis8910fkxrhvhh";
   };
 
   phases = [ "unpackPhase" "buildPhase" "installPhase" "fixupPhase" ];
diff --git a/pkgs/servers/dns/bind/default.nix b/pkgs/servers/dns/bind/default.nix
index 4002c6b3542f..2b1830ea6797 100644
--- a/pkgs/servers/dns/bind/default.nix
+++ b/pkgs/servers/dns/bind/default.nix
@@ -6,14 +6,14 @@
 assert enableSeccomp -> libseccomp != null;
 assert enablePython -> python3 != null;
 
-let version = "9.12.1"; in
+let version = "9.12.1-P2"; in
 
 stdenv.mkDerivation rec {
   name = "bind-${version}";
 
   src = fetchurl {
     url = "http://ftp.isc.org/isc/bind9/${version}/${name}.tar.gz";
-    sha256 = "043mjcw405qa0ghm5dkhfsq35gsy279724fz3mjqpr1mbi14dr0n";
+    sha256 = "0a9dvyg1dk7vpqn9gz7p5jas3bz7z22bjd66b98g1qk16i2w7rqd";
   };
 
   outputs = [ "out" "lib" "dev" "man" "dnsutils" "host" ];
@@ -67,6 +67,8 @@ stdenv.mkDerivation rec {
     done
   '';
 
+  doCheck = false; # requires root and the net
+
   meta = {
     homepage = http://www.isc.org/software/bind;
     description = "Domain name server";
diff --git a/pkgs/servers/dns/knot-dns/default.nix b/pkgs/servers/dns/knot-dns/default.nix
index 88fa07009f83..5fe7a8608c59 100644
--- a/pkgs/servers/dns/knot-dns/default.nix
+++ b/pkgs/servers/dns/knot-dns/default.nix
@@ -7,11 +7,11 @@ let inherit (stdenv.lib) optional optionals; in
 # Note: ATM only the libraries have been tested in nixpkgs.
 stdenv.mkDerivation rec {
   name = "knot-dns-${version}";
-  version = "2.6.6";
+  version = "2.6.7";
 
   src = fetchurl {
     url = "http://secure.nic.cz/files/knot-dns/knot-${version}.tar.xz";
-    sha256 = "02h8qdkja4kic3br79svws6r2pq1ijz945238v99d998d2jxh6ci";
+    sha256 = "1c2a004b05c161f7b36d5eeccebd9d4cdf60aa09930a7cc766514e468ca92243";
   };
 
   outputs = [ "bin" "out" "dev" ];
diff --git a/pkgs/servers/dns/nsd/default.nix b/pkgs/servers/dns/nsd/default.nix
index b4bd6175f3e7..c1c0d4e425c2 100644
--- a/pkgs/servers/dns/nsd/default.nix
+++ b/pkgs/servers/dns/nsd/default.nix
@@ -15,11 +15,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "nsd-4.1.20";
+  name = "nsd-4.1.21";
 
   src = fetchurl {
     url = "http://www.nlnetlabs.nl/downloads/nsd/${name}.tar.gz";
-    sha256 = "04zph9zli3a0zx1sfphwbxx6f8whdxcjai6w0k7a565vgcfzd5wa";
+    sha256 = "1gfjdgb5nc0nrbpdm36ngxml302khl2lnwkykl3q45byl0sbjn3q";
   };
 
   prePatch = ''
diff --git a/pkgs/servers/dns/powerdns/default.nix b/pkgs/servers/dns/powerdns/default.nix
index cde2fe1a426c..0ef24a97f888 100644
--- a/pkgs/servers/dns/powerdns/default.nix
+++ b/pkgs/servers/dns/powerdns/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   name = "powerdns-${version}";
-  version = "4.1.1";
+  version = "4.1.2";
 
   src = fetchurl {
     url = "http://downloads.powerdns.com/releases/pdns-${version}.tar.bz2";
-    sha256 = "1fh4zgj0gxgcnnhnih8k6fbw18hb9brkkrfpx3mj8b4a3hr8ilq8";
+    sha256 = "15anf9x4h3acf7rhvaim4595v2hrz7mn4va9qv18bfnif40vxn46";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/servers/emby/default.nix b/pkgs/servers/emby/default.nix
index 4defe9787ba3..f781e1114ebe 100644
--- a/pkgs/servers/emby/default.nix
+++ b/pkgs/servers/emby/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "emby-${version}";
-  version = "3.4.0.0";
+  version = "3.4.1.0";
 
   src = fetchurl {
     url = "https://github.com/MediaBrowser/Emby/releases/download/${version}/Emby.Mono.zip";
-    sha256 = "1936d5bcrf23av5nc8yh6708gxngsbkh86gvmzpsv3d33jgqv1nl";
+    sha256 = "08jr6v8xhmiwbby0lfvpjrlma280inwh5qp6v4p93lzd07fjynh5";
   };
 
   buildInputs = with pkgs; [
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index 6e0e216488d5..4d970a7e0d5d 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -1,130 +1,437 @@
-# Generated from parse-requirements.py
+# Generated by parse-requirements.py
 # Do not edit!
 
 {
-  version = "0.68.1";
+  version = "0.69.1";
   components = {
     "abode" = ps: with ps; [  ];
     "ads" = ps: with ps; [  ];
+    "alarm_control_panel" = ps: with ps; [  ];
+    "alarm_control_panel.abode" = ps: with ps; [  ];
+    "alarm_control_panel.alarmdecoder" = ps: with ps; [  ];
     "alarm_control_panel.alarmdotcom" = ps: with ps; [  ];
+    "alarm_control_panel.arlo" = ps: with ps; [  ];
+    "alarm_control_panel.canary" = ps: with ps; [  ];
     "alarm_control_panel.concord232" = ps: with ps; [  ];
+    "alarm_control_panel.demo" = ps: with ps; [  ];
+    "alarm_control_panel.egardia" = ps: with ps; [  ];
+    "alarm_control_panel.envisalink" = ps: with ps; [  ];
     "alarm_control_panel.ialarm" = ps: with ps; [  ];
+    "alarm_control_panel.ifttt" = ps: with ps; [  ];
+    "alarm_control_panel.manual" = ps: with ps; [  ];
+    "alarm_control_panel.manual_mqtt" = ps: with ps; [ paho-mqtt ];
+    "alarm_control_panel.mqtt" = ps: with ps; [ paho-mqtt ];
     "alarm_control_panel.nx584" = ps: with ps; [  ];
+    "alarm_control_panel.satel_integra" = ps: with ps; [  ];
     "alarm_control_panel.simplisafe" = ps: with ps; [  ];
+    "alarm_control_panel.spc" = ps: with ps; [  ];
     "alarm_control_panel.totalconnect" = ps: with ps; [  ];
+    "alarm_control_panel.verisure" = ps: with ps; [  ];
+    "alarm_control_panel.wink" = ps: with ps; [  ];
     "alarmdecoder" = ps: with ps; [  ];
-    "amcrest" = ps: with ps; [  ];
+    "alert" = ps: with ps; [  ];
+    "alexa" = ps: with ps; [ aiohttp-cors ];
+    "alexa.const" = ps: with ps; [  ];
+    "alexa.flash_briefings" = ps: with ps; [  ];
+    "alexa.intent" = ps: with ps; [  ];
+    "alexa.smart_home" = ps: with ps; [  ];
+    "amcrest" = ps: with ps; [ ha-ffmpeg ];
     "android_ip_webcam" = ps: with ps; [  ];
     "apcupsd" = ps: with ps; [  ];
+    "api" = ps: with ps; [ aiohttp-cors ];
     "apple_tv" = ps: with ps; [  ];
     "arduino" = ps: with ps; [  ];
     "arlo" = ps: with ps; [  ];
     "asterisk_mbox" = ps: with ps; [  ];
     "august" = ps: with ps; [  ];
+    "auth" = ps: with ps; [ aiohttp-cors ];
+    "auth.client" = ps: with ps; [  ];
+    "automation" = ps: with ps; [  ];
+    "automation.event" = ps: with ps; [  ];
+    "automation.homeassistant" = ps: with ps; [  ];
+    "automation.litejet" = ps: with ps; [  ];
+    "automation.mqtt" = ps: with ps; [ paho-mqtt ];
+    "automation.numeric_state" = ps: with ps; [  ];
+    "automation.state" = ps: with ps; [  ];
+    "automation.sun" = ps: with ps; [  ];
+    "automation.template" = ps: with ps; [  ];
+    "automation.time" = ps: with ps; [  ];
+    "automation.zone" = ps: with ps; [  ];
     "axis" = ps: with ps; [  ];
     "bbb_gpio" = ps: with ps; [  ];
+    "binary_sensor" = ps: with ps; [  ];
+    "binary_sensor.abode" = ps: with ps; [  ];
+    "binary_sensor.ads" = ps: with ps; [  ];
+    "binary_sensor.alarmdecoder" = ps: with ps; [  ];
+    "binary_sensor.android_ip_webcam" = ps: with ps; [  ];
+    "binary_sensor.apcupsd" = ps: with ps; [  ];
+    "binary_sensor.arest" = ps: with ps; [  ];
+    "binary_sensor.august" = ps: with ps; [  ];
+    "binary_sensor.aurora" = ps: with ps; [  ];
+    "binary_sensor.axis" = ps: with ps; [  ];
+    "binary_sensor.bayesian" = ps: with ps; [  ];
+    "binary_sensor.bbb_gpio" = ps: with ps; [  ];
+    "binary_sensor.blink" = ps: with ps; [  ];
+    "binary_sensor.bloomsky" = ps: with ps; [  ];
+    "binary_sensor.bmw_connected_drive" = ps: with ps; [  ];
+    "binary_sensor.command_line" = ps: with ps; [  ];
     "binary_sensor.concord232" = ps: with ps; [  ];
+    "binary_sensor.deconz" = ps: with ps; [  ];
+    "binary_sensor.demo" = ps: with ps; [  ];
+    "binary_sensor.digital_ocean" = ps: with ps; [ digital-ocean ];
+    "binary_sensor.ecobee" = ps: with ps; [  ];
+    "binary_sensor.egardia" = ps: with ps; [  ];
+    "binary_sensor.eight_sleep" = ps: with ps; [  ];
+    "binary_sensor.enocean" = ps: with ps; [  ];
+    "binary_sensor.envisalink" = ps: with ps; [  ];
+    "binary_sensor.ffmpeg_motion" = ps: with ps; [ ha-ffmpeg ];
+    "binary_sensor.ffmpeg_noise" = ps: with ps; [ ha-ffmpeg ];
     "binary_sensor.flic" = ps: with ps; [  ];
+    "binary_sensor.gc100" = ps: with ps; [  ];
     "binary_sensor.hikvision" = ps: with ps; [  ];
+    "binary_sensor.hive" = ps: with ps; [  ];
+    "binary_sensor.homematic" = ps: with ps; [ pyhomematic ];
+    "binary_sensor.ihc" = ps: with ps; [  ];
+    "binary_sensor.insteon_plm" = ps: with ps; [  ];
     "binary_sensor.iss" = ps: with ps; [  ];
+    "binary_sensor.isy994" = ps: with ps; [  ];
+    "binary_sensor.knx" = ps: with ps; [  ];
+    "binary_sensor.linode" = ps: with ps; [ linode-api ];
+    "binary_sensor.maxcube" = ps: with ps; [  ];
+    "binary_sensor.modbus" = ps: with ps; [  ];
+    "binary_sensor.mqtt" = ps: with ps; [ paho-mqtt ];
+    "binary_sensor.mychevy" = ps: with ps; [  ];
+    "binary_sensor.mysensors" = ps: with ps; [  ];
+    "binary_sensor.mystrom" = ps: with ps; [ aiohttp-cors ];
+    "binary_sensor.nest" = ps: with ps; [  ];
+    "binary_sensor.netatmo" = ps: with ps; [  ];
     "binary_sensor.nx584" = ps: with ps; [  ];
+    "binary_sensor.octoprint" = ps: with ps; [  ];
+    "binary_sensor.pilight" = ps: with ps; [  ];
+    "binary_sensor.ping" = ps: with ps; [  ];
+    "binary_sensor.qwikswitch" = ps: with ps; [  ];
+    "binary_sensor.raincloud" = ps: with ps; [  ];
+    "binary_sensor.random" = ps: with ps; [  ];
+    "binary_sensor.raspihats" = ps: with ps; [  ];
+    "binary_sensor.rest" = ps: with ps; [  ];
+    "binary_sensor.rfxtrx" = ps: with ps; [  ];
+    "binary_sensor.ring" = ps: with ps; [  ];
+    "binary_sensor.rpi_gpio" = ps: with ps; [  ];
+    "binary_sensor.rpi_pfio" = ps: with ps; [  ];
+    "binary_sensor.satel_integra" = ps: with ps; [  ];
+    "binary_sensor.skybell" = ps: with ps; [  ];
+    "binary_sensor.sleepiq" = ps: with ps; [  ];
+    "binary_sensor.spc" = ps: with ps; [  ];
     "binary_sensor.tapsaff" = ps: with ps; [  ];
+    "binary_sensor.tcp" = ps: with ps; [  ];
+    "binary_sensor.tellduslive" = ps: with ps; [  ];
+    "binary_sensor.template" = ps: with ps; [  ];
+    "binary_sensor.tesla" = ps: with ps; [  ];
+    "binary_sensor.threshold" = ps: with ps; [  ];
     "binary_sensor.trend" = ps: with ps; [ numpy ];
+    "binary_sensor.upcloud" = ps: with ps; [  ];
+    "binary_sensor.velbus" = ps: with ps; [  ];
+    "binary_sensor.vera" = ps: with ps; [  ];
+    "binary_sensor.verisure" = ps: with ps; [  ];
+    "binary_sensor.volvooncall" = ps: with ps; [  ];
+    "binary_sensor.vultr" = ps: with ps; [ vultr ];
+    "binary_sensor.wemo" = ps: with ps; [  ];
+    "binary_sensor.wink" = ps: with ps; [  ];
     "binary_sensor.workday" = ps: with ps; [  ];
+    "binary_sensor.xiaomi_aqara" = ps: with ps; [  ];
+    "binary_sensor.zha" = ps: with ps; [  ];
+    "binary_sensor.zigbee" = ps: with ps; [  ];
+    "binary_sensor.zwave" = ps: with ps; [  ];
     "blink" = ps: with ps; [  ];
+    "bloomsky" = ps: with ps; [  ];
     "bmw_connected_drive" = ps: with ps; [  ];
+    "browser" = ps: with ps; [  ];
+    "calendar" = ps: with ps; [  ];
     "calendar.caldav" = ps: with ps; [  ];
+    "calendar.demo" = ps: with ps; [  ];
+    "calendar.google" = ps: with ps; [  ];
     "calendar.todoist" = ps: with ps; [ todoist ];
+    "camera" = ps: with ps; [ aiohttp-cors ];
+    "camera.abode" = ps: with ps; [  ];
+    "camera.amcrest" = ps: with ps; [ ha-ffmpeg ];
+    "camera.arlo" = ps: with ps; [ ha-ffmpeg ];
+    "camera.august" = ps: with ps; [  ];
+    "camera.axis" = ps: with ps; [  ];
+    "camera.blink" = ps: with ps; [  ];
+    "camera.bloomsky" = ps: with ps; [  ];
+    "camera.canary" = ps: with ps; [ ha-ffmpeg ];
+    "camera.demo" = ps: with ps; [  ];
+    "camera.doorbird" = ps: with ps; [  ];
+    "camera.ffmpeg" = ps: with ps; [ ha-ffmpeg ];
     "camera.foscam" = ps: with ps; [  ];
-    "camera.onvif" = ps: with ps; [  ];
+    "camera.generic" = ps: with ps; [  ];
+    "camera.local_file" = ps: with ps; [  ];
+    "camera.mjpeg" = ps: with ps; [  ];
+    "camera.mqtt" = ps: with ps; [ paho-mqtt ];
+    "camera.neato" = ps: with ps; [  ];
+    "camera.nest" = ps: with ps; [  ];
+    "camera.netatmo" = ps: with ps; [  ];
+    "camera.onvif" = ps: with ps; [ ha-ffmpeg ];
     "camera.proxy" = ps: with ps; [ pillow ];
+    "camera.ring" = ps: with ps; [ ha-ffmpeg ];
+    "camera.rpi_camera" = ps: with ps; [  ];
+    "camera.skybell" = ps: with ps; [  ];
     "camera.synology" = ps: with ps; [  ];
+    "camera.usps" = ps: with ps; [  ];
     "camera.uvc" = ps: with ps; [  ];
+    "camera.verisure" = ps: with ps; [  ];
     "camera.xeoma" = ps: with ps; [  ];
+    "camera.yi" = ps: with ps; [ ha-ffmpeg ];
+    "camera.zoneminder" = ps: with ps; [  ];
     "canary" = ps: with ps; [  ];
+    "climate" = ps: with ps; [  ];
     "climate.daikin" = ps: with ps; [  ];
+    "climate.demo" = ps: with ps; [  ];
+    "climate.ecobee" = ps: with ps; [  ];
     "climate.econet" = ps: with ps; [  ];
     "climate.ephember" = ps: with ps; [  ];
     "climate.eq3btsmart" = ps: with ps; [ construct ];
     "climate.flexit" = ps: with ps; [  ];
+    "climate.fritzbox" = ps: with ps; [  ];
+    "climate.generic_thermostat" = ps: with ps; [  ];
     "climate.heatmiser" = ps: with ps; [  ];
+    "climate.hive" = ps: with ps; [  ];
+    "climate.homematic" = ps: with ps; [ pyhomematic ];
     "climate.honeywell" = ps: with ps; [  ];
+    "climate.knx" = ps: with ps; [  ];
+    "climate.maxcube" = ps: with ps; [  ];
+    "climate.melissa" = ps: with ps; [  ];
+    "climate.modbus" = ps: with ps; [  ];
+    "climate.mqtt" = ps: with ps; [ paho-mqtt ];
+    "climate.mysensors" = ps: with ps; [  ];
+    "climate.nest" = ps: with ps; [  ];
+    "climate.netatmo" = ps: with ps; [  ];
+    "climate.nuheat" = ps: with ps; [  ];
     "climate.oem" = ps: with ps; [  ];
     "climate.proliphix" = ps: with ps; [  ];
     "climate.radiotherm" = ps: with ps; [  ];
     "climate.sensibo" = ps: with ps; [  ];
+    "climate.tado" = ps: with ps; [  ];
+    "climate.tesla" = ps: with ps; [  ];
+    "climate.toon" = ps: with ps; [  ];
     "climate.touchline" = ps: with ps; [  ];
     "climate.venstar" = ps: with ps; [  ];
-    "cloud" = ps: with ps; [ warrant ];
+    "climate.vera" = ps: with ps; [  ];
+    "climate.wink" = ps: with ps; [  ];
+    "climate.zwave" = ps: with ps; [  ];
+    "cloud" = ps: with ps; [ aiohttp-cors warrant ];
+    "cloud.auth_api" = ps: with ps; [  ];
+    "cloud.const" = ps: with ps; [  ];
+    "cloud.http_api" = ps: with ps; [  ];
+    "cloud.iot" = ps: with ps; [  ];
     "coinbase" = ps: with ps; [  ];
     "comfoconnect" = ps: with ps; [  ];
+    "config" = ps: with ps; [ aiohttp-cors ];
+    "config.automation" = ps: with ps; [  ];
     "config.config_entries" = ps: with ps; [  ];
+    "config.core" = ps: with ps; [  ];
+    "config.customize" = ps: with ps; [  ];
+    "config.entity_registry" = ps: with ps; [  ];
+    "config.group" = ps: with ps; [  ];
+    "config.hassbian" = ps: with ps; [  ];
+    "config.script" = ps: with ps; [  ];
+    "config.zwave" = ps: with ps; [  ];
+    "configurator" = ps: with ps; [  ];
+    "conversation" = ps: with ps; [ aiohttp-cors ];
+    "counter" = ps: with ps; [  ];
+    "cover" = ps: with ps; [  ];
+    "cover.abode" = ps: with ps; [  ];
+    "cover.command_line" = ps: with ps; [  ];
+    "cover.demo" = ps: with ps; [  ];
+    "cover.garadget" = ps: with ps; [  ];
     "cover.gogogate2" = ps: with ps; [  ];
+    "cover.group" = ps: with ps; [  ];
+    "cover.homematic" = ps: with ps; [ pyhomematic ];
+    "cover.isy994" = ps: with ps; [  ];
+    "cover.knx" = ps: with ps; [  ];
+    "cover.lutron" = ps: with ps; [  ];
+    "cover.lutron_caseta" = ps: with ps; [  ];
+    "cover.mqtt" = ps: with ps; [ paho-mqtt ];
     "cover.myq" = ps: with ps; [  ];
+    "cover.mysensors" = ps: with ps; [  ];
+    "cover.opengarage" = ps: with ps; [  ];
+    "cover.rflink" = ps: with ps; [  ];
+    "cover.rfxtrx" = ps: with ps; [  ];
+    "cover.rpi_gpio" = ps: with ps; [  ];
+    "cover.scsgate" = ps: with ps; [  ];
+    "cover.tahoma" = ps: with ps; [  ];
+    "cover.tellduslive" = ps: with ps; [  ];
+    "cover.tellstick" = ps: with ps; [  ];
+    "cover.template" = ps: with ps; [  ];
+    "cover.velbus" = ps: with ps; [  ];
+    "cover.vera" = ps: with ps; [  ];
+    "cover.wink" = ps: with ps; [  ];
+    "cover.xiaomi_aqara" = ps: with ps; [  ];
+    "cover.zwave" = ps: with ps; [  ];
     "daikin" = ps: with ps; [  ];
     "datadog" = ps: with ps; [ datadog ];
     "deconz" = ps: with ps; [  ];
+    "deconz.config_flow" = ps: with ps; [  ];
+    "deconz.const" = ps: with ps; [  ];
+    "demo" = ps: with ps; [ aiohttp-cors ];
+    "device_sun_light_trigger" = ps: with ps; [  ];
+    "device_tracker" = ps: with ps; [  ];
+    "device_tracker.actiontec" = ps: with ps; [  ];
     "device_tracker.aruba" = ps: with ps; [ pexpect ];
     "device_tracker.asuswrt" = ps: with ps; [ pexpect ];
-    "device_tracker.automatic" = ps: with ps; [  ];
+    "device_tracker.automatic" = ps: with ps; [ aiohttp-cors ];
     "device_tracker.bbox" = ps: with ps; [  ];
     "device_tracker.bluetooth_le_tracker" = ps: with ps; [  ];
     "device_tracker.bluetooth_tracker" = ps: with ps; [  ];
+    "device_tracker.bmw_connected_drive" = ps: with ps; [  ];
+    "device_tracker.bt_home_hub_5" = ps: with ps; [  ];
     "device_tracker.cisco_ios" = ps: with ps; [ pexpect ];
+    "device_tracker.ddwrt" = ps: with ps; [  ];
+    "device_tracker.demo" = ps: with ps; [  ];
     "device_tracker.fritz" = ps: with ps; [ fritzconnection ];
+    "device_tracker.geofency" = ps: with ps; [ aiohttp-cors ];
     "device_tracker.google_maps" = ps: with ps; [  ];
+    "device_tracker.gpslogger" = ps: with ps; [ aiohttp-cors ];
+    "device_tracker.hitron_coda" = ps: with ps; [  ];
+    "device_tracker.huawei_router" = ps: with ps; [  ];
     "device_tracker.icloud" = ps: with ps; [  ];
+    "device_tracker.keenetic_ndms2" = ps: with ps; [  ];
     "device_tracker.linksys_ap" = ps: with ps; [ beautifulsoup4 ];
+    "device_tracker.linksys_smart" = ps: with ps; [  ];
+    "device_tracker.locative" = ps: with ps; [ aiohttp-cors ];
+    "device_tracker.luci" = ps: with ps; [  ];
+    "device_tracker.meraki" = ps: with ps; [ aiohttp-cors ];
     "device_tracker.mikrotik" = ps: with ps; [  ];
+    "device_tracker.mqtt" = ps: with ps; [ paho-mqtt ];
+    "device_tracker.mqtt_json" = ps: with ps; [ paho-mqtt ];
+    "device_tracker.mysensors" = ps: with ps; [  ];
     "device_tracker.netgear" = ps: with ps; [  ];
     "device_tracker.nmap_tracker" = ps: with ps; [  ];
-    "device_tracker.owntracks" = ps: with ps; [ libnacl ];
-    "device_tracker.owntracks_http" = ps: with ps; [ libnacl ];
+    "device_tracker.owntracks" = ps: with ps; [ libnacl paho-mqtt ];
+    "device_tracker.owntracks_http" = ps: with ps; [ aiohttp-cors libnacl ];
+    "device_tracker.ping" = ps: with ps; [  ];
+    "device_tracker.sky_hub" = ps: with ps; [  ];
     "device_tracker.snmp" = ps: with ps; [ pysnmp ];
+    "device_tracker.swisscom" = ps: with ps; [  ];
+    "device_tracker.tado" = ps: with ps; [  ];
+    "device_tracker.tesla" = ps: with ps; [  ];
+    "device_tracker.thomson" = ps: with ps; [  ];
     "device_tracker.tile" = ps: with ps; [  ];
+    "device_tracker.tomato" = ps: with ps; [  ];
+    "device_tracker.tplink" = ps: with ps; [  ];
     "device_tracker.trackr" = ps: with ps; [  ];
+    "device_tracker.ubus" = ps: with ps; [  ];
     "device_tracker.unifi" = ps: with ps; [ pyunifi ];
     "device_tracker.unifi_direct" = ps: with ps; [ pexpect ];
     "device_tracker.upc_connect" = ps: with ps; [ defusedxml ];
+    "device_tracker.volvooncall" = ps: with ps; [  ];
+    "device_tracker.xiaomi" = ps: with ps; [  ];
     "device_tracker.xiaomi_miio" = ps: with ps; [ construct ];
+    "dialogflow" = ps: with ps; [ aiohttp-cors ];
     "digital_ocean" = ps: with ps; [ digital-ocean ];
     "discovery" = ps: with ps; [ netdisco ];
-    "dominos" = ps: with ps; [  ];
+    "dominos" = ps: with ps; [ aiohttp-cors ];
     "doorbird" = ps: with ps; [  ];
+    "downloader" = ps: with ps; [  ];
+    "duckdns" = ps: with ps; [  ];
     "dweet" = ps: with ps; [  ];
     "dyson" = ps: with ps; [  ];
     "ecobee" = ps: with ps; [  ];
     "egardia" = ps: with ps; [  ];
     "eight_sleep" = ps: with ps; [  ];
+    "emoncms_history" = ps: with ps; [  ];
     "emulated_hue" = ps: with ps; [ aiohttp-cors ];
+    "emulated_hue.hue_api" = ps: with ps; [  ];
+    "emulated_hue.upnp" = ps: with ps; [  ];
     "enocean" = ps: with ps; [  ];
     "envisalink" = ps: with ps; [  ];
     "eufy" = ps: with ps; [  ];
+    "fan" = ps: with ps; [  ];
+    "fan.comfoconnect" = ps: with ps; [  ];
+    "fan.demo" = ps: with ps; [  ];
+    "fan.dyson" = ps: with ps; [  ];
+    "fan.insteon_local" = ps: with ps; [  ];
+    "fan.insteon_plm" = ps: with ps; [  ];
+    "fan.isy994" = ps: with ps; [  ];
+    "fan.mqtt" = ps: with ps; [ paho-mqtt ];
+    "fan.template" = ps: with ps; [  ];
+    "fan.velbus" = ps: with ps; [  ];
+    "fan.wink" = ps: with ps; [  ];
     "fan.xiaomi_miio" = ps: with ps; [ construct ];
+    "fan.zha" = ps: with ps; [  ];
+    "fan.zwave" = ps: with ps; [  ];
     "feedreader" = ps: with ps; [ feedparser ];
     "ffmpeg" = ps: with ps; [ ha-ffmpeg ];
     "folder_watcher" = ps: with ps; [ watchdog ];
+    "foursquare" = ps: with ps; [ aiohttp-cors ];
+    "freedns" = ps: with ps; [  ];
     "fritzbox" = ps: with ps; [  ];
-    "frontend" = ps: with ps; [  ];
+    "frontend" = ps: with ps; [ aiohttp-cors ];
     "gc100" = ps: with ps; [  ];
     "goalfeed" = ps: with ps; [  ];
     "google" = ps: with ps; [ google_api_python_client oauth2client ];
+    "google_assistant" = ps: with ps; [ aiohttp-cors ];
+    "google_assistant.auth" = ps: with ps; [  ];
+    "google_assistant.const" = ps: with ps; [  ];
+    "google_assistant.helpers" = ps: with ps; [  ];
+    "google_assistant.http" = ps: with ps; [  ];
+    "google_assistant.smart_home" = ps: with ps; [  ];
+    "google_assistant.trait" = ps: with ps; [  ];
+    "google_domains" = ps: with ps; [  ];
+    "graphite" = ps: with ps; [  ];
+    "group" = ps: with ps; [  ];
+    "hassio" = ps: with ps; [ aiohttp-cors ];
+    "hassio.handler" = ps: with ps; [  ];
+    "hassio.http" = ps: with ps; [  ];
     "hdmi_cec" = ps: with ps; [  ];
+    "history" = ps: with ps; [ aiohttp-cors sqlalchemy ];
+    "history_graph" = ps: with ps; [ aiohttp-cors sqlalchemy ];
     "hive" = ps: with ps; [  ];
     "homekit" = ps: with ps; [  ];
+    "homekit.const" = ps: with ps; [  ];
+    "homekit.util" = ps: with ps; [  ];
     "homekit_controller" = ps: with ps; [  ];
     "homematic" = ps: with ps; [ pyhomematic ];
     "homematicip_cloud" = ps: with ps; [  ];
     "http" = ps: with ps; [ aiohttp-cors ];
+    "http.auth" = ps: with ps; [  ];
+    "http.ban" = ps: with ps; [  ];
+    "http.const" = ps: with ps; [  ];
+    "http.cors" = ps: with ps; [  ];
+    "http.data_validator" = ps: with ps; [  ];
+    "http.real_ip" = ps: with ps; [  ];
+    "http.static" = ps: with ps; [  ];
+    "http.view" = ps: with ps; [  ];
     "hue" = ps: with ps; [ aiohue ];
+    "hue.bridge" = ps: with ps; [  ];
+    "hue.config_flow" = ps: with ps; [  ];
+    "hue.const" = ps: with ps; [  ];
+    "hue.errors" = ps: with ps; [  ];
     "ifttt" = ps: with ps; [  ];
     "ihc" = ps: with ps; [  ];
+    "ihc.const" = ps: with ps; [  ];
+    "ihc.ihcdevice" = ps: with ps; [  ];
+    "image_processing" = ps: with ps; [ aiohttp-cors ];
+    "image_processing.demo" = ps: with ps; [  ];
     "image_processing.dlib_face_detect" = ps: with ps; [ face_recognition ];
     "image_processing.dlib_face_identify" = ps: with ps; [ face_recognition ];
+    "image_processing.microsoft_face_detect" = ps: with ps; [ aiohttp-cors ];
+    "image_processing.microsoft_face_identify" = ps: with ps; [ aiohttp-cors ];
+    "image_processing.openalpr_cloud" = ps: with ps; [  ];
+    "image_processing.openalpr_local" = ps: with ps; [  ];
     "image_processing.opencv" = ps: with ps; [ numpy ];
+    "image_processing.seven_segments" = ps: with ps; [  ];
     "influxdb" = ps: with ps; [ influxdb ];
+    "input_boolean" = ps: with ps; [  ];
+    "input_datetime" = ps: with ps; [  ];
+    "input_number" = ps: with ps; [  ];
+    "input_select" = ps: with ps; [  ];
+    "input_text" = ps: with ps; [  ];
     "insteon_local" = ps: with ps; [  ];
     "insteon_plm" = ps: with ps; [  ];
+    "intent_script" = ps: with ps; [  ];
+    "introduction" = ps: with ps; [  ];
+    "ios" = ps: with ps; [ aiohttp-cors zeroconf ];
     "iota" = ps: with ps; [  ];
     "isy994" = ps: with ps; [  ];
     "joaoapps_join" = ps: with ps; [  ];
@@ -134,40 +441,110 @@
     "kira" = ps: with ps; [  ];
     "knx" = ps: with ps; [  ];
     "lametric" = ps: with ps; [  ];
+    "light" = ps: with ps; [  ];
+    "light.abode" = ps: with ps; [  ];
+    "light.ads" = ps: with ps; [  ];
     "light.avion" = ps: with ps; [  ];
     "light.blinksticklight" = ps: with ps; [ BlinkStick ];
     "light.blinkt" = ps: with ps; [  ];
+    "light.deconz" = ps: with ps; [  ];
     "light.decora" = ps: with ps; [  ];
     "light.decora_wifi" = ps: with ps; [  ];
+    "light.demo" = ps: with ps; [  ];
+    "light.enocean" = ps: with ps; [  ];
+    "light.eufy" = ps: with ps; [  ];
     "light.flux_led" = ps: with ps; [  ];
     "light.greenwave" = ps: with ps; [  ];
+    "light.group" = ps: with ps; [  ];
+    "light.hive" = ps: with ps; [  ];
+    "light.homekit_controller" = ps: with ps; [  ];
+    "light.homematic" = ps: with ps; [ pyhomematic ];
+    "light.hue" = ps: with ps; [ aiohue ];
+    "light.hyperion" = ps: with ps; [  ];
     "light.iglo" = ps: with ps; [  ];
+    "light.ihc" = ps: with ps; [  ];
+    "light.insteon_local" = ps: with ps; [  ];
+    "light.insteon_plm" = ps: with ps; [  ];
+    "light.isy994" = ps: with ps; [  ];
+    "light.knx" = ps: with ps; [  ];
     "light.lifx" = ps: with ps; [  ];
     "light.lifx_legacy" = ps: with ps; [  ];
     "light.limitlessled" = ps: with ps; [  ];
+    "light.litejet" = ps: with ps; [  ];
+    "light.lutron" = ps: with ps; [  ];
+    "light.lutron_caseta" = ps: with ps; [  ];
+    "light.mochad" = ps: with ps; [  ];
+    "light.mqtt" = ps: with ps; [ paho-mqtt ];
+    "light.mqtt_json" = ps: with ps; [ paho-mqtt ];
+    "light.mqtt_template" = ps: with ps; [ paho-mqtt ];
+    "light.mysensors" = ps: with ps; [  ];
     "light.mystrom" = ps: with ps; [  ];
     "light.nanoleaf_aurora" = ps: with ps; [  ];
     "light.osramlightify" = ps: with ps; [  ];
     "light.piglow" = ps: with ps; [  ];
+    "light.qwikswitch" = ps: with ps; [  ];
+    "light.rflink" = ps: with ps; [  ];
+    "light.rfxtrx" = ps: with ps; [  ];
     "light.rpi_gpio_pwm" = ps: with ps; [  ];
+    "light.scsgate" = ps: with ps; [  ];
     "light.sensehat" = ps: with ps; [  ];
+    "light.skybell" = ps: with ps; [  ];
+    "light.tellduslive" = ps: with ps; [  ];
+    "light.tellstick" = ps: with ps; [  ];
+    "light.template" = ps: with ps; [  ];
     "light.tikteck" = ps: with ps; [  ];
     "light.tplink" = ps: with ps; [  ];
+    "light.tradfri" = ps: with ps; [  ];
+    "light.velbus" = ps: with ps; [  ];
+    "light.vera" = ps: with ps; [  ];
+    "light.wemo" = ps: with ps; [  ];
+    "light.wink" = ps: with ps; [  ];
+    "light.x10" = ps: with ps; [  ];
+    "light.xiaomi_aqara" = ps: with ps; [  ];
     "light.xiaomi_miio" = ps: with ps; [ construct ];
     "light.yeelight" = ps: with ps; [  ];
     "light.yeelightsunflower" = ps: with ps; [  ];
     "light.zengge" = ps: with ps; [  ];
+    "light.zha" = ps: with ps; [  ];
+    "light.zigbee" = ps: with ps; [  ];
+    "light.zwave" = ps: with ps; [  ];
     "linode" = ps: with ps; [ linode-api ];
     "lirc" = ps: with ps; [  ];
     "litejet" = ps: with ps; [  ];
+    "lock" = ps: with ps; [  ];
+    "lock.abode" = ps: with ps; [  ];
+    "lock.august" = ps: with ps; [  ];
+    "lock.bmw_connected_drive" = ps: with ps; [  ];
+    "lock.demo" = ps: with ps; [  ];
+    "lock.homematic" = ps: with ps; [ pyhomematic ];
+    "lock.isy994" = ps: with ps; [  ];
+    "lock.lockitron" = ps: with ps; [  ];
+    "lock.mqtt" = ps: with ps; [ paho-mqtt ];
     "lock.nello" = ps: with ps; [  ];
     "lock.nuki" = ps: with ps; [  ];
     "lock.sesame" = ps: with ps; [  ];
+    "lock.tesla" = ps: with ps; [  ];
+    "lock.vera" = ps: with ps; [  ];
+    "lock.verisure" = ps: with ps; [  ];
+    "lock.volvooncall" = ps: with ps; [  ];
+    "lock.wink" = ps: with ps; [  ];
+    "lock.zwave" = ps: with ps; [  ];
+    "logbook" = ps: with ps; [ aiohttp-cors sqlalchemy ];
+    "logentries" = ps: with ps; [  ];
+    "logger" = ps: with ps; [  ];
     "lutron" = ps: with ps; [  ];
     "lutron_caseta" = ps: with ps; [  ];
+    "mailbox" = ps: with ps; [ aiohttp-cors ];
+    "mailbox.asterisk_mbox" = ps: with ps; [  ];
+    "mailbox.demo" = ps: with ps; [  ];
+    "mailgun" = ps: with ps; [ aiohttp-cors ];
+    "map" = ps: with ps; [  ];
+    "matrix" = ps: with ps; [ matrix-client ];
     "maxcube" = ps: with ps; [  ];
-    "media_extractor" = ps: with ps; [  ];
+    "media_extractor" = ps: with ps; [ aiohttp-cors youtube-dl-light ];
+    "media_player" = ps: with ps; [ aiohttp-cors ];
     "media_player.anthemav" = ps: with ps; [  ];
+    "media_player.apple_tv" = ps: with ps; [  ];
     "media_player.aquostv" = ps: with ps; [  ];
     "media_player.blackbird" = ps: with ps; [  ];
     "media_player.bluesound" = ps: with ps; [ xmltodict ];
@@ -176,18 +553,24 @@
     "media_player.channels" = ps: with ps; [  ];
     "media_player.clementine" = ps: with ps; [  ];
     "media_player.cmus" = ps: with ps; [  ];
+    "media_player.demo" = ps: with ps; [  ];
+    "media_player.denon" = ps: with ps; [  ];
     "media_player.denonavr" = ps: with ps; [  ];
     "media_player.directv" = ps: with ps; [  ];
     "media_player.dunehd" = ps: with ps; [  ];
     "media_player.emby" = ps: with ps; [  ];
+    "media_player.firetv" = ps: with ps; [  ];
     "media_player.frontier_silicon" = ps: with ps; [  ];
     "media_player.gpmdp" = ps: with ps; [ websocket_client ];
     "media_player.gstreamer" = ps: with ps; [  ];
+    "media_player.hdmi_cec" = ps: with ps; [  ];
+    "media_player.itunes" = ps: with ps; [  ];
     "media_player.kodi" = ps: with ps; [ jsonrpc-async jsonrpc-websocket ];
     "media_player.lg_netcast" = ps: with ps; [  ];
     "media_player.liveboxplaytv" = ps: with ps; [  ];
     "media_player.mediaroom" = ps: with ps; [  ];
     "media_player.monoprice" = ps: with ps; [  ];
+    "media_player.mpchc" = ps: with ps; [  ];
     "media_player.mpd" = ps: with ps; [ mpd2 ];
     "media_player.nad" = ps: with ps; [  ];
     "media_player.nadtcp" = ps: with ps; [  ];
@@ -196,6 +579,7 @@
     "media_player.panasonic_viera" = ps: with ps; [ wakeonlan ];
     "media_player.pandora" = ps: with ps; [ pexpect ];
     "media_player.philips_js" = ps: with ps; [  ];
+    "media_player.pioneer" = ps: with ps; [  ];
     "media_player.plex" = ps: with ps; [  ];
     "media_player.roku" = ps: with ps; [  ];
     "media_player.russound_rio" = ps: with ps; [  ];
@@ -205,107 +589,219 @@
     "media_player.songpal" = ps: with ps; [  ];
     "media_player.sonos" = ps: with ps; [  ];
     "media_player.soundtouch" = ps: with ps; [ libsoundtouch ];
-    "media_player.spotify" = ps: with ps; [ spotipy ];
+    "media_player.spotify" = ps: with ps; [ aiohttp-cors spotipy ];
+    "media_player.squeezebox" = ps: with ps; [  ];
+    "media_player.ue_smart_radio" = ps: with ps; [  ];
+    "media_player.universal" = ps: with ps; [  ];
     "media_player.vizio" = ps: with ps; [  ];
     "media_player.vlc" = ps: with ps; [  ];
+    "media_player.volumio" = ps: with ps; [  ];
     "media_player.webostv" = ps: with ps; [ websockets ];
     "media_player.xiaomi_tv" = ps: with ps; [  ];
     "media_player.yamaha" = ps: with ps; [  ];
     "media_player.yamaha_musiccast" = ps: with ps; [  ];
     "media_player.ziggo_mediabox_xl" = ps: with ps; [  ];
     "melissa" = ps: with ps; [  ];
+    "microsoft_face" = ps: with ps; [ aiohttp-cors ];
     "mochad" = ps: with ps; [  ];
     "modbus" = ps: with ps; [  ];
     "mqtt" = ps: with ps; [ paho-mqtt ];
-    "mqtt.server" = ps: with ps; [ hbmqtt ];
+    "mqtt.discovery" = ps: with ps; [  ];
+    "mqtt.server" = ps: with ps; [ aiohttp-cors hbmqtt ];
+    "mqtt_eventstream" = ps: with ps; [ paho-mqtt ];
+    "mqtt_statestream" = ps: with ps; [ paho-mqtt ];
     "mychevy" = ps: with ps; [  ];
     "mycroft" = ps: with ps; [  ];
     "mysensors" = ps: with ps; [  ];
+    "namecheapdns" = ps: with ps; [  ];
     "neato" = ps: with ps; [  ];
     "nest" = ps: with ps; [  ];
     "netatmo" = ps: with ps; [  ];
+    "no_ip" = ps: with ps; [  ];
+    "notify" = ps: with ps; [  ];
     "notify.apns" = ps: with ps; [  ];
     "notify.aws_lambda" = ps: with ps; [ boto3 ];
     "notify.aws_sns" = ps: with ps; [ boto3 ];
     "notify.aws_sqs" = ps: with ps; [ boto3 ];
     "notify.ciscospark" = ps: with ps; [  ];
+    "notify.clickatell" = ps: with ps; [  ];
+    "notify.clicksend" = ps: with ps; [  ];
+    "notify.clicksend_tts" = ps: with ps; [  ];
+    "notify.command_line" = ps: with ps; [  ];
+    "notify.demo" = ps: with ps; [  ];
     "notify.discord" = ps: with ps; [  ];
+    "notify.ecobee" = ps: with ps; [  ];
+    "notify.facebook" = ps: with ps; [  ];
+    "notify.file" = ps: with ps; [  ];
     "notify.free_mobile" = ps: with ps; [  ];
     "notify.gntp" = ps: with ps; [  ];
+    "notify.group" = ps: with ps; [  ];
     "notify.hipchat" = ps: with ps; [  ];
-    "notify.html5" = ps: with ps; [ pyjwt ];
+    "notify.html5" = ps: with ps; [ pyjwt aiohttp-cors ];
+    "notify.instapush" = ps: with ps; [  ];
+    "notify.ios" = ps: with ps; [ aiohttp-cors zeroconf ];
     "notify.joaoapps_join" = ps: with ps; [  ];
+    "notify.knx" = ps: with ps; [  ];
     "notify.kodi" = ps: with ps; [ jsonrpc-async ];
     "notify.lametric" = ps: with ps; [  ];
-    "notify.mailgun" = ps: with ps; [  ];
+    "notify.lannouncer" = ps: with ps; [  ];
+    "notify.llamalab_automate" = ps: with ps; [  ];
+    "notify.mailgun" = ps: with ps; [ aiohttp-cors ];
     "notify.mastodon" = ps: with ps; [  ];
     "notify.matrix" = ps: with ps; [ matrix-client ];
     "notify.message_bird" = ps: with ps; [  ];
+    "notify.mycroft" = ps: with ps; [  ];
+    "notify.mysensors" = ps: with ps; [  ];
+    "notify.nfandroidtv" = ps: with ps; [  ];
+    "notify.nma" = ps: with ps; [  ];
+    "notify.prowl" = ps: with ps; [  ];
     "notify.pushbullet" = ps: with ps; [ pushbullet ];
     "notify.pushetta" = ps: with ps; [  ];
     "notify.pushover" = ps: with ps; [ python-pushover ];
+    "notify.pushsafer" = ps: with ps; [  ];
+    "notify.rest" = ps: with ps; [  ];
     "notify.rocketchat" = ps: with ps; [  ];
     "notify.sendgrid" = ps: with ps; [  ];
     "notify.simplepush" = ps: with ps; [  ];
     "notify.slack" = ps: with ps; [  ];
+    "notify.smtp" = ps: with ps; [  ];
     "notify.stride" = ps: with ps; [  ];
+    "notify.synology_chat" = ps: with ps; [  ];
+    "notify.syslog" = ps: with ps; [  ];
+    "notify.telegram" = ps: with ps; [ python-telegram-bot ];
+    "notify.telstra" = ps: with ps; [  ];
+    "notify.twilio_call" = ps: with ps; [ aiohttp-cors twilio ];
+    "notify.twilio_sms" = ps: with ps; [ aiohttp-cors twilio ];
     "notify.twitter" = ps: with ps; [  ];
     "notify.webostv" = ps: with ps; [  ];
     "notify.xmpp" = ps: with ps; [ pyasn1-modules pyasn1 sleekxmpp ];
     "notify.yessssms" = ps: with ps; [  ];
     "nuheat" = ps: with ps; [  ];
     "nuimo_controller" = ps: with ps; [  ];
+    "octoprint" = ps: with ps; [  ];
+    "panel_custom" = ps: with ps; [ aiohttp-cors ];
+    "panel_iframe" = ps: with ps; [ aiohttp-cors ];
+    "persistent_notification" = ps: with ps; [  ];
     "pilight" = ps: with ps; [  ];
-    "prometheus" = ps: with ps; [  ];
+    "plant" = ps: with ps; [  ];
+    "prometheus" = ps: with ps; [ aiohttp-cors prometheus_client ];
+    "proximity" = ps: with ps; [  ];
     "python_script" = ps: with ps; [  ];
     "qwikswitch" = ps: with ps; [  ];
     "rainbird" = ps: with ps; [  ];
     "raincloud" = ps: with ps; [  ];
+    "rainmachine" = ps: with ps; [  ];
     "raspihats" = ps: with ps; [  ];
     "recorder" = ps: with ps; [ sqlalchemy ];
+    "recorder.const" = ps: with ps; [  ];
+    "recorder.migration" = ps: with ps; [  ];
+    "recorder.purge" = ps: with ps; [  ];
+    "recorder.util" = ps: with ps; [  ];
     "remember_the_milk" = ps: with ps; [ httplib2 ];
+    "remote" = ps: with ps; [  ];
+    "remote.apple_tv" = ps: with ps; [  ];
+    "remote.demo" = ps: with ps; [  ];
     "remote.harmony" = ps: with ps; [  ];
     "remote.itach" = ps: with ps; [  ];
+    "remote.kira" = ps: with ps; [  ];
     "remote.xiaomi_miio" = ps: with ps; [ construct ];
+    "rest_command" = ps: with ps; [  ];
     "rflink" = ps: with ps; [  ];
     "rfxtrx" = ps: with ps; [  ];
     "ring" = ps: with ps; [  ];
     "rpi_gpio" = ps: with ps; [  ];
     "rpi_pfio" = ps: with ps; [  ];
+    "rss_feed_template" = ps: with ps; [ aiohttp-cors ];
     "satel_integra" = ps: with ps; [  ];
+    "scene" = ps: with ps; [  ];
+    "scene.deconz" = ps: with ps; [  ];
+    "scene.homeassistant" = ps: with ps; [  ];
     "scene.hunterdouglas_powerview" = ps: with ps; [  ];
+    "scene.knx" = ps: with ps; [  ];
+    "scene.lifx_cloud" = ps: with ps; [  ];
+    "scene.litejet" = ps: with ps; [  ];
+    "scene.lutron_caseta" = ps: with ps; [  ];
+    "scene.tahoma" = ps: with ps; [  ];
+    "scene.velux" = ps: with ps; [  ];
+    "scene.vera" = ps: with ps; [  ];
+    "scene.wink" = ps: with ps; [  ];
+    "script" = ps: with ps; [  ];
     "scsgate" = ps: with ps; [  ];
-    "sensor.airvisual" = ps: with ps; [  ];
+    "sensor" = ps: with ps; [  ];
+    "sensor.abode" = ps: with ps; [  ];
+    "sensor.ads" = ps: with ps; [  ];
+    "sensor.airvisual" = ps: with ps; [ pyairvisual ];
+    "sensor.alarmdecoder" = ps: with ps; [  ];
     "sensor.alpha_vantage" = ps: with ps; [  ];
+    "sensor.amcrest" = ps: with ps; [ ha-ffmpeg ];
+    "sensor.android_ip_webcam" = ps: with ps; [  ];
+    "sensor.apcupsd" = ps: with ps; [  ];
+    "sensor.api_streams" = ps: with ps; [  ];
+    "sensor.arduino" = ps: with ps; [  ];
+    "sensor.arest" = ps: with ps; [  ];
+    "sensor.arlo" = ps: with ps; [  ];
+    "sensor.arwn" = ps: with ps; [ paho-mqtt ];
     "sensor.bbox" = ps: with ps; [  ];
     "sensor.bh1750" = ps: with ps; [  ];
     "sensor.bitcoin" = ps: with ps; [  ];
+    "sensor.blink" = ps: with ps; [  ];
     "sensor.blockchain" = ps: with ps; [  ];
+    "sensor.bloomsky" = ps: with ps; [  ];
     "sensor.bme280" = ps: with ps; [  ];
     "sensor.bme680" = ps: with ps; [  ];
+    "sensor.bmw_connected_drive" = ps: with ps; [  ];
+    "sensor.bom" = ps: with ps; [  ];
     "sensor.broadlink" = ps: with ps; [  ];
     "sensor.buienradar" = ps: with ps; [  ];
+    "sensor.canary" = ps: with ps; [  ];
+    "sensor.cert_expiry" = ps: with ps; [  ];
+    "sensor.citybikes" = ps: with ps; [  ];
+    "sensor.coinbase" = ps: with ps; [  ];
     "sensor.coinmarketcap" = ps: with ps; [ coinmarketcap ];
+    "sensor.comed_hourly_pricing" = ps: with ps; [  ];
+    "sensor.comfoconnect" = ps: with ps; [  ];
+    "sensor.command_line" = ps: with ps; [  ];
     "sensor.cpuspeed" = ps: with ps; [  ];
     "sensor.crimereports" = ps: with ps; [  ];
     "sensor.cups" = ps: with ps; [ pycups ];
+    "sensor.currencylayer" = ps: with ps; [  ];
+    "sensor.daikin" = ps: with ps; [  ];
     "sensor.darksky" = ps: with ps; [  ];
+    "sensor.deconz" = ps: with ps; [  ];
     "sensor.deluge" = ps: with ps; [ deluge-client ];
+    "sensor.demo" = ps: with ps; [  ];
     "sensor.deutsche_bahn" = ps: with ps; [  ];
     "sensor.dht" = ps: with ps; [  ];
     "sensor.discogs" = ps: with ps; [ discogs_client ];
     "sensor.dnsip" = ps: with ps; [ aiodns ];
     "sensor.dovado" = ps: with ps; [  ];
     "sensor.dsmr" = ps: with ps; [  ];
+    "sensor.dte_energy_bridge" = ps: with ps; [  ];
+    "sensor.dublin_bus_transport" = ps: with ps; [  ];
+    "sensor.dwd_weather_warnings" = ps: with ps; [  ];
     "sensor.dweet" = ps: with ps; [  ];
+    "sensor.dyson" = ps: with ps; [  ];
+    "sensor.ebox" = ps: with ps; [  ];
+    "sensor.ecobee" = ps: with ps; [  ];
     "sensor.eddystone_temperature" = ps: with ps; [ construct ];
+    "sensor.efergy" = ps: with ps; [  ];
+    "sensor.eight_sleep" = ps: with ps; [  ];
+    "sensor.eliqonline" = ps: with ps; [  ];
+    "sensor.emoncms" = ps: with ps; [  ];
+    "sensor.enocean" = ps: with ps; [  ];
     "sensor.envirophat" = ps: with ps; [  ];
+    "sensor.envisalink" = ps: with ps; [  ];
     "sensor.etherscan" = ps: with ps; [  ];
+    "sensor.fail2ban" = ps: with ps; [  ];
     "sensor.fastdotcom" = ps: with ps; [  ];
     "sensor.fedex" = ps: with ps; [  ];
     "sensor.fido" = ps: with ps; [  ];
-    "sensor.fitbit" = ps: with ps; [  ];
+    "sensor.file" = ps: with ps; [  ];
+    "sensor.filesize" = ps: with ps; [  ];
+    "sensor.filter" = ps: with ps; [  ];
+    "sensor.fitbit" = ps: with ps; [ aiohttp-cors ];
     "sensor.fixer" = ps: with ps; [  ];
+    "sensor.folder" = ps: with ps; [  ];
     "sensor.foobot" = ps: with ps; [  ];
     "sensor.fritzbox_callmonitor" = ps: with ps; [ fritzconnection ];
     "sensor.fritzbox_netmonitor" = ps: with ps; [ fritzconnection ];
@@ -313,40 +809,93 @@
     "sensor.geizhals" = ps: with ps; [ beautifulsoup4 ];
     "sensor.geo_rss_events" = ps: with ps; [ feedparser ];
     "sensor.gitter" = ps: with ps; [  ];
+    "sensor.glances" = ps: with ps; [  ];
     "sensor.google_travel_time" = ps: with ps; [  ];
+    "sensor.google_wifi" = ps: with ps; [  ];
     "sensor.gpsd" = ps: with ps; [  ];
     "sensor.gtfs" = ps: with ps; [  ];
+    "sensor.haveibeenpwned" = ps: with ps; [  ];
+    "sensor.hddtemp" = ps: with ps; [  ];
+    "sensor.history_stats" = ps: with ps; [ aiohttp-cors sqlalchemy ];
+    "sensor.hive" = ps: with ps; [  ];
+    "sensor.homematic" = ps: with ps; [ pyhomematic ];
+    "sensor.homematicip_cloud" = ps: with ps; [  ];
     "sensor.hp_ilo" = ps: with ps; [  ];
     "sensor.htu21d" = ps: with ps; [  ];
     "sensor.hydroquebec" = ps: with ps; [  ];
+    "sensor.ihc" = ps: with ps; [  ];
     "sensor.imap" = ps: with ps; [ aioimaplib ];
+    "sensor.imap_email_content" = ps: with ps; [  ];
     "sensor.influxdb" = ps: with ps; [ influxdb ];
+    "sensor.insteon_plm" = ps: with ps; [  ];
+    "sensor.ios" = ps: with ps; [ aiohttp-cors zeroconf ];
+    "sensor.iota" = ps: with ps; [  ];
     "sensor.irish_rail_transport" = ps: with ps; [  ];
+    "sensor.isy994" = ps: with ps; [  ];
+    "sensor.juicenet" = ps: with ps; [  ];
+    "sensor.kira" = ps: with ps; [  ];
+    "sensor.knx" = ps: with ps; [  ];
     "sensor.kwb" = ps: with ps; [  ];
     "sensor.lacrosse" = ps: with ps; [  ];
     "sensor.lastfm" = ps: with ps; [ pylast ];
     "sensor.linux_battery" = ps: with ps; [ batinfo ];
+    "sensor.london_air" = ps: with ps; [  ];
+    "sensor.london_underground" = ps: with ps; [  ];
     "sensor.loopenergy" = ps: with ps; [  ];
     "sensor.luftdaten" = ps: with ps; [ luftdaten ];
     "sensor.lyft" = ps: with ps; [  ];
+    "sensor.melissa" = ps: with ps; [  ];
     "sensor.metoffice" = ps: with ps; [  ];
     "sensor.mfi" = ps: with ps; [  ];
     "sensor.mhz19" = ps: with ps; [  ];
     "sensor.miflora" = ps: with ps; [  ];
+    "sensor.min_max" = ps: with ps; [  ];
+    "sensor.mitemp_bt" = ps: with ps; [  ];
+    "sensor.modbus" = ps: with ps; [  ];
     "sensor.modem_callerid" = ps: with ps; [  ];
+    "sensor.mold_indicator" = ps: with ps; [  ];
+    "sensor.moon" = ps: with ps; [  ];
     "sensor.mopar" = ps: with ps; [  ];
+    "sensor.mqtt" = ps: with ps; [ paho-mqtt ];
+    "sensor.mqtt_room" = ps: with ps; [ paho-mqtt ];
     "sensor.mvglive" = ps: with ps; [ PyMVGLive ];
+    "sensor.mychevy" = ps: with ps; [  ];
+    "sensor.mysensors" = ps: with ps; [  ];
     "sensor.nederlandse_spoorwegen" = ps: with ps; [  ];
+    "sensor.nest" = ps: with ps; [  ];
+    "sensor.netatmo" = ps: with ps; [  ];
+    "sensor.netdata" = ps: with ps; [  ];
     "sensor.neurio_energy" = ps: with ps; [  ];
     "sensor.nut" = ps: with ps; [  ];
+    "sensor.nzbget" = ps: with ps; [  ];
+    "sensor.octoprint" = ps: with ps; [  ];
+    "sensor.ohmconnect" = ps: with ps; [  ];
+    "sensor.onewire" = ps: with ps; [  ];
     "sensor.openevse" = ps: with ps; [  ];
+    "sensor.openexchangerates" = ps: with ps; [  ];
+    "sensor.openhardwaremonitor" = ps: with ps; [  ];
+    "sensor.opensky" = ps: with ps; [  ];
     "sensor.openweathermap" = ps: with ps; [ pyowm ];
     "sensor.otp" = ps: with ps; [  ];
+    "sensor.pi_hole" = ps: with ps; [  ];
+    "sensor.pilight" = ps: with ps; [  ];
     "sensor.plex" = ps: with ps; [  ];
     "sensor.pocketcasts" = ps: with ps; [  ];
     "sensor.pollen" = ps: with ps; [  ];
+    "sensor.postnl" = ps: with ps; [  ];
     "sensor.pushbullet" = ps: with ps; [ pushbullet ];
+    "sensor.pvoutput" = ps: with ps; [  ];
+    "sensor.pyload" = ps: with ps; [  ];
     "sensor.qnap" = ps: with ps; [  ];
+    "sensor.qwikswitch" = ps: with ps; [  ];
+    "sensor.radarr" = ps: with ps; [  ];
+    "sensor.rainbird" = ps: with ps; [  ];
+    "sensor.raincloud" = ps: with ps; [  ];
+    "sensor.random" = ps: with ps; [  ];
+    "sensor.rest" = ps: with ps; [  ];
+    "sensor.rflink" = ps: with ps; [  ];
+    "sensor.rfxtrx" = ps: with ps; [  ];
+    "sensor.ring" = ps: with ps; [  ];
     "sensor.ripple" = ps: with ps; [  ];
     "sensor.sabnzbd" = ps: with ps; [  ];
     "sensor.scrape" = ps: with ps; [ beautifulsoup4 ];
@@ -357,89 +906,228 @@
     "sensor.serial_pm" = ps: with ps; [  ];
     "sensor.shodan" = ps: with ps; [  ];
     "sensor.sht31" = ps: with ps; [  ];
+    "sensor.sigfox" = ps: with ps; [  ];
+    "sensor.simulated" = ps: with ps; [  ];
+    "sensor.skybeacon" = ps: with ps; [  ];
+    "sensor.skybell" = ps: with ps; [  ];
+    "sensor.sleepiq" = ps: with ps; [  ];
     "sensor.sma" = ps: with ps; [  ];
+    "sensor.smappee" = ps: with ps; [  ];
     "sensor.snmp" = ps: with ps; [ pysnmp ];
     "sensor.sochain" = ps: with ps; [  ];
+    "sensor.socialblade" = ps: with ps; [  ];
+    "sensor.sonarr" = ps: with ps; [  ];
     "sensor.speedtest" = ps: with ps; [  ];
     "sensor.spotcrime" = ps: with ps; [  ];
     "sensor.sql" = ps: with ps; [ sqlalchemy ];
     "sensor.startca" = ps: with ps; [ xmltodict ];
+    "sensor.statistics" = ps: with ps; [  ];
     "sensor.steam_online" = ps: with ps; [  ];
+    "sensor.supervisord" = ps: with ps; [  ];
     "sensor.swiss_hydrological_data" = ps: with ps; [ xmltodict ];
     "sensor.swiss_public_transport" = ps: with ps; [  ];
     "sensor.syncthru" = ps: with ps; [  ];
     "sensor.synologydsm" = ps: with ps; [  ];
     "sensor.systemmonitor" = ps: with ps; [ psutil ];
     "sensor.sytadin" = ps: with ps; [ beautifulsoup4 ];
+    "sensor.tado" = ps: with ps; [  ];
+    "sensor.tahoma" = ps: with ps; [  ];
     "sensor.tank_utility" = ps: with ps; [  ];
+    "sensor.tcp" = ps: with ps; [  ];
     "sensor.ted5000" = ps: with ps; [ xmltodict ];
+    "sensor.teksavvy" = ps: with ps; [  ];
+    "sensor.tellduslive" = ps: with ps; [  ];
+    "sensor.tellstick" = ps: with ps; [  ];
     "sensor.temper" = ps: with ps; [  ];
+    "sensor.template" = ps: with ps; [  ];
+    "sensor.tesla" = ps: with ps; [  ];
+    "sensor.thethingsnetwork" = ps: with ps; [  ];
     "sensor.thinkingcleaner" = ps: with ps; [  ];
     "sensor.tibber" = ps: with ps; [  ];
+    "sensor.time_date" = ps: with ps; [  ];
+    "sensor.toon" = ps: with ps; [  ];
+    "sensor.torque" = ps: with ps; [ aiohttp-cors ];
+    "sensor.tradfri" = ps: with ps; [  ];
+    "sensor.trafikverket_weatherstation" = ps: with ps; [  ];
     "sensor.transmission" = ps: with ps; [ transmissionrpc ];
     "sensor.travisci" = ps: with ps; [  ];
     "sensor.twitch" = ps: with ps; [  ];
     "sensor.uber" = ps: with ps; [  ];
+    "sensor.uk_transport" = ps: with ps; [  ];
+    "sensor.upnp" = ps: with ps; [ aiohttp-cors ];
     "sensor.ups" = ps: with ps; [  ];
+    "sensor.uptime" = ps: with ps; [  ];
     "sensor.uscis" = ps: with ps; [  ];
+    "sensor.usps" = ps: with ps; [  ];
     "sensor.vasttrafik" = ps: with ps; [  ];
+    "sensor.vera" = ps: with ps; [  ];
+    "sensor.verisure" = ps: with ps; [  ];
+    "sensor.version" = ps: with ps; [  ];
+    "sensor.viaggiatreno" = ps: with ps; [  ];
+    "sensor.volvooncall" = ps: with ps; [  ];
+    "sensor.vultr" = ps: with ps; [ vultr ];
     "sensor.waqi" = ps: with ps; [  ];
+    "sensor.waterfurnace" = ps: with ps; [  ];
     "sensor.waze_travel_time" = ps: with ps; [  ];
     "sensor.whois" = ps: with ps; [  ];
+    "sensor.wink" = ps: with ps; [  ];
+    "sensor.worldclock" = ps: with ps; [  ];
+    "sensor.worldtidesinfo" = ps: with ps; [  ];
+    "sensor.worxlandroid" = ps: with ps; [  ];
+    "sensor.wsdot" = ps: with ps; [  ];
+    "sensor.wunderground" = ps: with ps; [  ];
     "sensor.xbox_live" = ps: with ps; [  ];
+    "sensor.xiaomi_aqara" = ps: with ps; [  ];
     "sensor.xiaomi_miio" = ps: with ps; [ construct ];
     "sensor.yahoo_finance" = ps: with ps; [  ];
     "sensor.yr" = ps: with ps; [ xmltodict ];
     "sensor.yweather" = ps: with ps; [ yahooweather ];
+    "sensor.zabbix" = ps: with ps; [  ];
+    "sensor.zamg" = ps: with ps; [  ];
     "sensor.zestimate" = ps: with ps; [ xmltodict ];
+    "sensor.zha" = ps: with ps; [  ];
+    "sensor.zigbee" = ps: with ps; [  ];
+    "sensor.zoneminder" = ps: with ps; [  ];
+    "sensor.zwave" = ps: with ps; [  ];
+    "shell_command" = ps: with ps; [  ];
     "shiftr" = ps: with ps; [ paho-mqtt ];
+    "shopping_list" = ps: with ps; [ aiohttp-cors ];
     "skybell" = ps: with ps; [  ];
     "sleepiq" = ps: with ps; [  ];
     "smappee" = ps: with ps; [  ];
+    "snips" = ps: with ps; [ paho-mqtt ];
     "spc" = ps: with ps; [ websockets ];
+    "splunk" = ps: with ps; [  ];
     "statsd" = ps: with ps; [ statsd ];
+    "sun" = ps: with ps; [  ];
+    "switch" = ps: with ps; [  ];
+    "switch.abode" = ps: with ps; [  ];
     "switch.acer_projector" = ps: with ps; [ pyserial ];
+    "switch.ads" = ps: with ps; [  ];
+    "switch.amcrest" = ps: with ps; [ ha-ffmpeg ];
+    "switch.android_ip_webcam" = ps: with ps; [  ];
     "switch.anel_pwrctrl" = ps: with ps; [  ];
+    "switch.arduino" = ps: with ps; [  ];
+    "switch.arest" = ps: with ps; [  ];
+    "switch.bbb_gpio" = ps: with ps; [  ];
     "switch.broadlink" = ps: with ps; [  ];
+    "switch.command_line" = ps: with ps; [  ];
     "switch.deluge" = ps: with ps; [ deluge-client ];
+    "switch.demo" = ps: with ps; [  ];
+    "switch.digital_ocean" = ps: with ps; [ digital-ocean ];
     "switch.digitalloggers" = ps: with ps; [  ];
     "switch.dlink" = ps: with ps; [  ];
+    "switch.doorbird" = ps: with ps; [  ];
     "switch.edimax" = ps: with ps; [  ];
+    "switch.enocean" = ps: with ps; [  ];
+    "switch.eufy" = ps: with ps; [  ];
+    "switch.flux" = ps: with ps; [  ];
+    "switch.fritzbox" = ps: with ps; [  ];
     "switch.fritzdect" = ps: with ps; [  ];
+    "switch.gc100" = ps: with ps; [  ];
+    "switch.hdmi_cec" = ps: with ps; [  ];
     "switch.hikvisioncam" = ps: with ps; [  ];
+    "switch.hive" = ps: with ps; [  ];
+    "switch.homekit_controller" = ps: with ps; [  ];
+    "switch.homematic" = ps: with ps; [ pyhomematic ];
+    "switch.hook" = ps: with ps; [  ];
+    "switch.ihc" = ps: with ps; [  ];
+    "switch.insteon_local" = ps: with ps; [  ];
+    "switch.insteon_plm" = ps: with ps; [  ];
+    "switch.isy994" = ps: with ps; [  ];
+    "switch.kankun" = ps: with ps; [  ];
+    "switch.knx" = ps: with ps; [  ];
+    "switch.linode" = ps: with ps; [ linode-api ];
+    "switch.litejet" = ps: with ps; [  ];
+    "switch.lutron_caseta" = ps: with ps; [  ];
     "switch.mfi" = ps: with ps; [  ];
+    "switch.mochad" = ps: with ps; [  ];
+    "switch.modbus" = ps: with ps; [  ];
+    "switch.mqtt" = ps: with ps; [ paho-mqtt ];
+    "switch.mysensors" = ps: with ps; [  ];
     "switch.mystrom" = ps: with ps; [  ];
-    "switch.netio" = ps: with ps; [  ];
+    "switch.neato" = ps: with ps; [  ];
+    "switch.netio" = ps: with ps; [ aiohttp-cors ];
     "switch.orvibo" = ps: with ps; [  ];
+    "switch.pilight" = ps: with ps; [  ];
+    "switch.pulseaudio_loopback" = ps: with ps; [  ];
+    "switch.qwikswitch" = ps: with ps; [  ];
     "switch.rachio" = ps: with ps; [  ];
+    "switch.rainbird" = ps: with ps; [  ];
+    "switch.raincloud" = ps: with ps; [  ];
     "switch.rainmachine" = ps: with ps; [  ];
+    "switch.raspihats" = ps: with ps; [  ];
+    "switch.rest" = ps: with ps; [  ];
+    "switch.rflink" = ps: with ps; [  ];
+    "switch.rfxtrx" = ps: with ps; [  ];
+    "switch.rpi_gpio" = ps: with ps; [  ];
+    "switch.rpi_pfio" = ps: with ps; [  ];
     "switch.rpi_rf" = ps: with ps; [  ];
+    "switch.scsgate" = ps: with ps; [  ];
+    "switch.skybell" = ps: with ps; [  ];
+    "switch.smappee" = ps: with ps; [  ];
     "switch.snmp" = ps: with ps; [ pysnmp ];
+    "switch.tahoma" = ps: with ps; [  ];
+    "switch.tellduslive" = ps: with ps; [  ];
+    "switch.tellstick" = ps: with ps; [  ];
+    "switch.telnet" = ps: with ps; [  ];
+    "switch.template" = ps: with ps; [  ];
+    "switch.tesla" = ps: with ps; [  ];
     "switch.thinkingcleaner" = ps: with ps; [  ];
+    "switch.toon" = ps: with ps; [  ];
     "switch.tplink" = ps: with ps; [  ];
     "switch.transmission" = ps: with ps; [ transmissionrpc ];
+    "switch.upcloud" = ps: with ps; [  ];
+    "switch.velbus" = ps: with ps; [  ];
+    "switch.vera" = ps: with ps; [  ];
+    "switch.verisure" = ps: with ps; [  ];
     "switch.vesync" = ps: with ps; [  ];
+    "switch.volvooncall" = ps: with ps; [  ];
+    "switch.vultr" = ps: with ps; [ vultr ];
     "switch.wake_on_lan" = ps: with ps; [ wakeonlan ];
+    "switch.wemo" = ps: with ps; [  ];
+    "switch.wink" = ps: with ps; [  ];
+    "switch.xiaomi_aqara" = ps: with ps; [  ];
     "switch.xiaomi_miio" = ps: with ps; [ construct ];
+    "switch.zha" = ps: with ps; [  ];
+    "switch.zigbee" = ps: with ps; [  ];
+    "switch.zoneminder" = ps: with ps; [  ];
+    "switch.zwave" = ps: with ps; [  ];
+    "system_log" = ps: with ps; [ aiohttp-cors ];
     "tado" = ps: with ps; [  ];
     "tahoma" = ps: with ps; [  ];
     "telegram_bot" = ps: with ps; [ python-telegram-bot ];
+    "telegram_bot.broadcast" = ps: with ps; [  ];
+    "telegram_bot.polling" = ps: with ps; [  ];
+    "telegram_bot.webhooks" = ps: with ps; [ aiohttp-cors ];
     "tellduslive" = ps: with ps; [  ];
     "tellstick" = ps: with ps; [  ];
     "tesla" = ps: with ps; [  ];
+    "thethingsnetwork" = ps: with ps; [  ];
     "thingspeak" = ps: with ps; [  ];
+    "timer" = ps: with ps; [  ];
     "toon" = ps: with ps; [  ];
     "tradfri" = ps: with ps; [  ];
-    "tts" = ps: with ps; [ mutagen ];
+    "tts" = ps: with ps; [ aiohttp-cors mutagen ];
     "tts.amazon_polly" = ps: with ps; [ boto3 ];
     "tts.baidu" = ps: with ps; [  ];
+    "tts.demo" = ps: with ps; [  ];
     "tts.google" = ps: with ps; [  ];
+    "tts.marytts" = ps: with ps; [  ];
     "tts.microsoft" = ps: with ps; [  ];
-    "twilio" = ps: with ps; [ twilio ];
+    "tts.picotts" = ps: with ps; [  ];
+    "tts.voicerss" = ps: with ps; [  ];
+    "tts.yandextts" = ps: with ps; [  ];
+    "twilio" = ps: with ps; [ aiohttp-cors twilio ];
     "upcloud" = ps: with ps; [  ];
     "updater" = ps: with ps; [ distro ];
-    "upnp" = ps: with ps; [  ];
+    "upnp" = ps: with ps; [ aiohttp-cors ];
     "usps" = ps: with ps; [  ];
+    "vacuum" = ps: with ps; [  ];
+    "vacuum.demo" = ps: with ps; [  ];
+    "vacuum.dyson" = ps: with ps; [  ];
+    "vacuum.mqtt" = ps: with ps; [ paho-mqtt ];
+    "vacuum.neato" = ps: with ps; [  ];
     "vacuum.roomba" = ps: with ps; [  ];
     "vacuum.xiaomi_miio" = ps: with ps; [ construct ];
     "velbus" = ps: with ps; [  ];
@@ -450,18 +1138,36 @@
     "vultr" = ps: with ps; [ vultr ];
     "wake_on_lan" = ps: with ps; [ wakeonlan ];
     "waterfurnace" = ps: with ps; [  ];
+    "weather" = ps: with ps; [  ];
+    "weather.bom" = ps: with ps; [  ];
     "weather.buienradar" = ps: with ps; [  ];
     "weather.darksky" = ps: with ps; [  ];
+    "weather.demo" = ps: with ps; [  ];
+    "weather.ecobee" = ps: with ps; [  ];
     "weather.metoffice" = ps: with ps; [  ];
     "weather.openweathermap" = ps: with ps; [ pyowm ];
     "weather.yweather" = ps: with ps; [ yahooweather ];
+    "weather.zamg" = ps: with ps; [  ];
+    "weblink" = ps: with ps; [  ];
+    "websocket_api" = ps: with ps; [ aiohttp-cors ];
     "wemo" = ps: with ps; [  ];
     "wink" = ps: with ps; [  ];
     "xiaomi_aqara" = ps: with ps; [  ];
     "zabbix" = ps: with ps; [  ];
-    "zeroconf" = ps: with ps; [ zeroconf ];
+    "zeroconf" = ps: with ps; [ aiohttp-cors zeroconf ];
     "zha" = ps: with ps; [  ];
+    "zha.const" = ps: with ps; [  ];
     "zigbee" = ps: with ps; [  ];
+    "zone" = ps: with ps; [  ];
+    "zone.config_flow" = ps: with ps; [  ];
+    "zone.const" = ps: with ps; [  ];
+    "zone.zone" = ps: with ps; [  ];
+    "zoneminder" = ps: with ps; [  ];
     "zwave" = ps: with ps; [ pydispatcher python_openzwave ];
+    "zwave.const" = ps: with ps; [  ];
+    "zwave.discovery_schemas" = ps: with ps; [  ];
+    "zwave.node_entity" = ps: with ps; [  ];
+    "zwave.util" = ps: with ps; [  ];
+    "zwave.workaround" = ps: with ps; [  ];
   };
 }
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index a8091c70dfdf..60b005ed54cc 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -28,11 +28,18 @@ let
           sha256 = "af7315c9fa99e0bfd195a21106c82c81619b42f0bd9b6e287b797c6b6b6a9918";
         };
       });
+      attrs = super.attrs.overridePythonAttrs (oldAttrs: rec {
+        version = "18.1.0";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "e0d0eb91441a3b53dab4d9b743eafc1ac44476296a2053b6ca3af0b139faf87b";
+        };
+      });
       astral = super.astral.overridePythonAttrs (oldAttrs: rec {
-        version = "1.6";
+        version = "1.6.1";
         src = oldAttrs.src.override {
           inherit version;
-          sha256 = "874b397ddbf0a4c1d8d644b21c2481e8a96b61343f820ad52d8a322d61a15083";
+          sha256 = "ab0c08f2467d35fcaeb7bad15274743d3ac1ad18b5391f64a0058a9cd192d37d";
         };
       });
       async-timeout = super.async-timeout.overridePythonAttrs (oldAttrs: rec {
@@ -42,6 +49,15 @@ let
           sha256 = "00cff4d2dce744607335cba84e9929c3165632da2d27970dbc55802a0c7873d0";
         };
       });
+      # used by check_config script
+      # can be unpinned once https://github.com/home-assistant/home-assistant/issues/11917 is resolved
+      colorlog = super.colorlog.overridePythonAttrs (oldAttrs: rec {
+        version = "3.1.4";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "418db638c9577f37f0fae4914074f395847a728158a011be2a193ac491b9779d";
+        };
+      });
       hass-frontend = super.callPackage ./frontend.nix { };
     };
   };
@@ -58,7 +74,7 @@ let
   extraBuildInputs = extraPackages py.pkgs;
 
   # Don't forget to run parse-requirements.py after updating
-  hassVersion = "0.68.1";
+  hassVersion = "0.69.1";
 
 in with py.pkgs; buildPythonApplication rec {
   pname = "homeassistant";
@@ -73,7 +89,7 @@ in with py.pkgs; buildPythonApplication rec {
     owner = "home-assistant";
     repo = "home-assistant";
     rev = version;
-    sha256 = "103py7hfdanr8zk3cl93rm7ngjz0n95kwjbphq7iy8l8hqpzs1m8";
+    sha256 = "1y74zq1nah9k6rif8k384ri11h1f23ggr613f7qnn0107b23asr4";
   };
 
   propagatedBuildInputs = [
@@ -91,8 +107,7 @@ in with py.pkgs; buildPythonApplication rec {
     # The components' dependencies are not included, so they cannot be tested
     py.test --ignore tests/components
     # Some basic components should be tested however
-    # test_not_log_password fails because nothing is logged at all
-    py.test -k "not test_not_log_password" \
+    py.test \
       tests/components/{group,http} \
       tests/components/test_{api,configurator,demo,discovery,frontend,init,introduction,logger,script,shell_command,system_log,websocket_api}.py
   '';
diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix
index 678b5d3826c7..168a1ec3b9dd 100644
--- a/pkgs/servers/home-assistant/frontend.nix
+++ b/pkgs/servers/home-assistant/frontend.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "home-assistant-frontend";
-  version = "20180426.0";
+  version = "20180509.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "60ff4e0b0c4538fa0be0db9407f95333546940e119a8d3edb9b0d7e1c86b1f3b";
+    sha256 = "11d9c4a07565358e6ee001f5c57c8393b4aaadac0d993a0a39a0387a33644fba";
   };
 
   propagatedBuildInputs = [ user-agents ];
diff --git a/pkgs/servers/home-assistant/parse-requirements.py b/pkgs/servers/home-assistant/parse-requirements.py
index 46e7acee1782..068b89d9a9fe 100755
--- a/pkgs/servers/home-assistant/parse-requirements.py
+++ b/pkgs/servers/home-assistant/parse-requirements.py
@@ -1,57 +1,70 @@
 #! /usr/bin/env nix-shell
-#! nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ ])"
+#! nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ requests pyyaml pytz pip jinja2 voluptuous typing aiohttp async-timeout astral certifi attrs ])"
 #
-# This script downloads https://github.com/home-assistant/home-assistant/blob/master/requirements_all.txt.
-# This file contains lines of the form
+# This script downloads Home Assistant's source tarball.
+# Inside the homeassistant/components directory, each component has an associated .py file,
+# specifying required packages and other components it depends on:
 #
-#     # homeassistant.components.foo
-#     # homeassistant.components.bar
-#     foobar==1.2.3
+# REQUIREMENTS = [ 'package==1.2.3' ]
+# DEPENDENCIES = [ 'component' ]
 #
-# i.e. it lists dependencies and the components that require them.
-# By parsing the file, a dictionary mapping component to dependencies is created.
-# For all of these dependencies, Nixpkgs' python3Packages are searched for appropriate names.
+# By parsing the files, a dictionary mapping component to requirements and dependencies is created.
+# For all of these requirements and the dependencies' requirements,
+# Nixpkgs' python3Packages are searched for appropriate names.
 # Then, a Nix attribute set mapping component name to dependencies is created.
 
 from urllib.request import urlopen
-from collections import OrderedDict
+import tempfile
+from io import BytesIO
+import tarfile
+import importlib
 import subprocess
 import os
 import sys
 import json
 import re
 
-GENERAL_PREFIX = '# homeassistant.'
-COMPONENT_PREFIX = GENERAL_PREFIX + 'components.'
+COMPONENT_PREFIX = 'homeassistant.components'
 PKG_SET = 'python3Packages'
 
+# If some requirements are matched by multiple python packages,
+# the following can be used to choose one of them
+PKG_PREFERENCES = {
+    # Use python3Packages.youtube-dl-light instead of python3Packages.youtube-dl
+    'youtube-dl': 'youtube-dl-light'
+}
+
 def get_version():
     with open(os.path.dirname(sys.argv[0]) + '/default.nix') as f:
         m = re.search('hassVersion = "([\\d\\.]+)";', f.read())
         return m.group(1)
 
-def fetch_reqs(version='master'):
-    requirements = {}
-    with urlopen('https://github.com/home-assistant/home-assistant/raw/{}/requirements_all.txt'.format(version)) as response:
-        components = []
-        for line in response.read().decode().splitlines():
-            if line == '':
-                components = []
-            elif line[:len(COMPONENT_PREFIX)] == COMPONENT_PREFIX:
-                component = line[len(COMPONENT_PREFIX):]
-                components.append(component)
-                if component not in requirements:
-                    requirements[component] = []
-            elif line[:len(GENERAL_PREFIX)] != GENERAL_PREFIX: # skip lines like "# homeassistant.scripts.xyz"
-                # Some dependencies are commented out because they don't build on all platforms
-                # Since they are still required for running the component, don't skip them
-                if line[:2] == '# ':
-                    line = line[2:]
-                # Some requirements are specified by url, e.g. https://example.org/foobar#xyz==1.0.0
-                # Therefore, if there's a "#" in the line, only take the part after it
-                line = line[line.find('#') + 1:]
-                for component in components:
-                    requirements[component].append(line)
+def parse_components(version='master'):
+    components = {}
+    with tempfile.TemporaryDirectory() as tmp:
+        with urlopen('https://github.com/home-assistant/home-assistant/archive/{}.tar.gz'.format(version)) as response:
+            tarfile.open(fileobj=BytesIO(response.read())).extractall(tmp)
+        # Use part of a script from the Home Assistant codebase
+        sys.path.append(tmp + '/home-assistant-{}'.format(version))
+        from script.gen_requirements_all import explore_module
+        for package in explore_module(COMPONENT_PREFIX, True):
+            # Remove 'homeassistant.components.' prefix
+            component = package[len(COMPONENT_PREFIX + '.'):]
+            try:
+                module = importlib.import_module(package)
+                components[component] = {}
+                components[component]['requirements'] = getattr(module, 'REQUIREMENTS', [])
+                components[component]['dependencies'] = getattr(module, 'DEPENDENCIES', [])
+            # If there is an ImportError, the imported file is not the main file of the component
+            except ImportError:
+                continue
+    return components
+
+# Recursively get the requirements of a component and its dependencies
+def get_reqs(components, component):
+    requirements = set(components[component]['requirements'])
+    for dependency in components[component]['dependencies']:
+        requirements.update(get_reqs(components, dependency))
     return requirements
 
 # Store a JSON dump of Nixpkgs' python3Packages
@@ -59,7 +72,7 @@ output = subprocess.check_output(['nix-env', '-f', os.path.dirname(sys.argv[0])
 packages = json.loads(output)
 
 def name_to_attr_path(req):
-    attr_paths = []
+    attr_paths = set()
     names = [req]
     # E.g. python-mpd2 is actually called python3.6-mpd2
     # instead of python-3.6-python-mpd2 inside Nixpkgs
@@ -71,37 +84,41 @@ def name_to_attr_path(req):
         pattern = re.compile('^python\\d\\.\\d-{}-\\d'.format(name), re.I)
         for attr_path, package in packages.items():
             if pattern.match(package['name']):
-                attr_paths.append(attr_path)
+                attr_paths.add(attr_path)
+    if len(attr_paths) > 1:
+        for to_replace, replacement in PKG_PREFERENCES.items():
+            try:
+                attr_paths.remove(PKG_SET + '.' + to_replace)
+                attr_paths.add(PKG_SET + '.' + replacement)
+            except KeyError:
+                pass
     # Let's hope there's only one derivation with a matching name
     assert(len(attr_paths) <= 1)
-    if attr_paths:
-        return attr_paths[0]
+    if len(attr_paths) == 1:
+        return attr_paths.pop()
     else:
         return None
 
 version = get_version()
 print('Generating component-packages.nix for version {}'.format(version))
-requirements = fetch_reqs(version=version)
+components = parse_components(version=version)
 build_inputs = {}
-for component, reqs in OrderedDict(sorted(requirements.items())).items():
+for component in sorted(components.keys()):
     attr_paths = []
-    for req in reqs:
-        try:
-            name = req.split('==')[0]
-            attr_path = name_to_attr_path(name)
-            if attr_path is not None:
-                # Add attribute path without "python3Packages." prefix
-                attr_paths.append(attr_path[len(PKG_SET + '.'):])
-        except RequirementParseError:
-            continue
+    for req in sorted(get_reqs(components, component)):
+        # Some requirements are specified by url, e.g. https://example.org/foobar#xyz==1.0.0
+        # Therefore, if there's a "#" in the line, only take the part after it
+        req = req[req.find('#') + 1:]
+        name = req.split('==')[0]
+        attr_path = name_to_attr_path(name)
+        if attr_path is not None:
+            # Add attribute path without "python3Packages." prefix
+            attr_paths.append(attr_path[len(PKG_SET + '.'):])
     else:
         build_inputs[component] = attr_paths
 
-# Only select components which have any dependency
-#build_inputs = {k: v for k, v in build_inputs.items() if len(v) > 0}
-
 with open(os.path.dirname(sys.argv[0]) + '/component-packages.nix', 'w') as f:
-    f.write('# Generated from parse-requirements.py\n')
+    f.write('# Generated by parse-requirements.py\n')
     f.write('# Do not edit!\n\n')
     f.write('{\n')
     f.write('  version = "{}";\n'.format(version))
diff --git a/pkgs/servers/http/lighttpd/default.nix b/pkgs/servers/http/lighttpd/default.nix
index 7bf1b1ffa646..31b3449d5f64 100644
--- a/pkgs/servers/http/lighttpd/default.nix
+++ b/pkgs/servers/http/lighttpd/default.nix
@@ -2,11 +2,14 @@
 , openssl, enableMagnet ? false, lua5_1 ? null
 , enableMysql ? false, mysql ? null
 , enableLdap ? false, openldap ? null
+, enableWebDAV ? true, sqlite ? null, libuuid ? null
 }:
 
 assert enableMagnet -> lua5_1 != null;
 assert enableMysql -> mysql != null;
 assert enableLdap -> openldap != null;
+assert enableWebDAV -> sqlite != null;
+assert enableWebDAV -> libuuid != null;
 
 stdenv.mkDerivation rec {
   name = "lighttpd-1.4.49";
@@ -20,12 +23,16 @@ stdenv.mkDerivation rec {
   buildInputs = [ pcre libxml2 zlib attr bzip2 which file openssl ]
              ++ stdenv.lib.optional enableMagnet lua5_1
              ++ stdenv.lib.optional enableMysql mysql.connector-c
-             ++ stdenv.lib.optional enableLdap openldap;
+             ++ stdenv.lib.optional enableLdap openldap
+             ++ stdenv.lib.optional enableWebDAV sqlite
+             ++ stdenv.lib.optional enableWebDAV libuuid;
 
   configureFlags = [ "--with-openssl" ]
                 ++ stdenv.lib.optional enableMagnet "--with-lua"
                 ++ stdenv.lib.optional enableMysql "--with-mysql"
-                ++ stdenv.lib.optional enableLdap "--with-ldap";
+                ++ stdenv.lib.optional enableLdap "--with-ldap"
+                ++ stdenv.lib.optional enableWebDAV "--with-webdav-props"
+                ++ stdenv.lib.optional enableWebDAV "--with-webdav-locks";
 
   preConfigure = ''
     sed -i "s:/usr/bin/file:${file}/bin/file:g" configure
diff --git a/pkgs/servers/http/nginx/modules.nix b/pkgs/servers/http/nginx/modules.nix
index 0e53b35e06d0..f482c92ed9f7 100644
--- a/pkgs/servers/http/nginx/modules.nix
+++ b/pkgs/servers/http/nginx/modules.nix
@@ -15,6 +15,15 @@
     inputs = [ pkgs.brotli ];
   };
 
+  ipscrub = {
+    src = fetchFromGitHub {
+      owner = "masonicboom";
+      repo = "ipscrub";
+      rev = "99230f66d5afe1f929cf4ed217901acb6206f620";
+      sha256 = "0mfrwkg4srql38w713pg6qxi0h4hgy8inkvgc9cm80bwlv2ng9s1";
+    } + "/ipscrub";
+  };
+
   rtmp ={
     src = fetchFromGitHub {
       owner = "arut";
diff --git a/pkgs/servers/http/openresty/default.nix b/pkgs/servers/http/openresty/default.nix
index 093f5f0e5027..252e1a97dfdb 100644
--- a/pkgs/servers/http/openresty/default.nix
+++ b/pkgs/servers/http/openresty/default.nix
@@ -5,11 +5,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "openresty-${version}";
-  version = "1.13.6.1";
+  version = "1.13.6.2";
 
   src = fetchurl {
     url = "http://openresty.org/download/openresty-${version}.tar.gz";
-    sha256 = "0sv93nw1j597mdpnibmgaa3nnghdk0z6k27vavm8w2c1z9n6w96i";
+    sha256 = "0hi9zw4344a4i636g3nbnnlm8qbnq37f50irhd1xncih4xc1jvll";
   };
 
   buildInputs = [ openssl zlib pcre libxml2 libxslt gd geoip postgresql ];
diff --git a/pkgs/servers/jackett/default.nix b/pkgs/servers/jackett/default.nix
index 8324af8b3d0d..5a87c423f4f7 100644
--- a/pkgs/servers/jackett/default.nix
+++ b/pkgs/servers/jackett/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "jackett-${version}";
-  version = "0.8.929";
+  version = "0.8.1014";
 
   src = fetchurl {
     url = "https://github.com/Jackett/Jackett/releases/download/v${version}/Jackett.Binaries.Mono.tar.gz";
-    sha256 = "1dq69734f6x8iw1jpvln5lq7bykpwky6iiwz8iwwamwg8143f20p";
+    sha256 = "0pvm9q8dpavkgsv180mw4y6555iixjv5s7mnmai9xzjspjpf264k";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/ldap/389/default.nix b/pkgs/servers/ldap/389/default.nix
index 5ef909a6d09c..6826df5f6e86 100644
--- a/pkgs/servers/ldap/389/default.nix
+++ b/pkgs/servers/ldap/389/default.nix
@@ -36,7 +36,9 @@ stdenv.mkDerivation rec {
     "--sysconfdir=/etc"
     "--localstatedir=/var"
     "--with-openldap"
-    "--with-db=${db}"
+    "--with-db"
+    "--with-db-inc=${db.dev}/include"
+    "--with-db-lib=${db.out}/lib"
     "--with-sasl=${cyrus_sasl.dev}"
     "--with-netsnmp=${net_snmp}"
   ];
diff --git a/pkgs/servers/mail/postfix/default.nix b/pkgs/servers/mail/postfix/default.nix
index a5168ebd4dfa..41dfebab7907 100644
--- a/pkgs/servers/mail/postfix/default.nix
+++ b/pkgs/servers/mail/postfix/default.nix
@@ -25,11 +25,11 @@ in stdenv.mkDerivation rec {
 
   name = "postfix-${version}";
 
-  version = "3.3.0";
+  version = "3.3.1";
 
   src = fetchurl {
     url = "ftp://ftp.cs.uu.nl/mirror/postfix/postfix-release/official/${name}.tar.gz";
-    sha256 = "0fggpbsc9jkrbaw9hy0zw9h32plmfvcv0x860pbih0g346byhhkr";
+    sha256 = "0fvymsklp32njsv0ngc1f45j01kcy61r5in99g5palibwkd19xal";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix
index 77bcc98da04e..423fbf027fb5 100644
--- a/pkgs/servers/matrix-synapse/default.nix
+++ b/pkgs/servers/matrix-synapse/default.nix
@@ -26,13 +26,13 @@ let
   };
 in pythonPackages.buildPythonApplication rec {
   name = "matrix-synapse-${version}";
-  version = "0.28.1";
+  version = "0.30.0";
 
   src = fetchFromGitHub {
     owner = "matrix-org";
     repo = "synapse";
     rev = "v${version}";
-    sha256 = "1xgiprnhp893zc0g3i7wpwzgjy6q5nb858p0s6kcsca60vr9j6h0";
+    sha256 = "10ggv7669ngxs8py82k8z24874ga0ldcxvpp7xhjpbr1s0gw8zv8";
   };
 
   patches = [
diff --git a/pkgs/servers/mattermost/default.nix b/pkgs/servers/mattermost/default.nix
index 936e457eb336..9943c0b9ab03 100644
--- a/pkgs/servers/mattermost/default.nix
+++ b/pkgs/servers/mattermost/default.nix
@@ -1,49 +1,61 @@
-{ stdenv, fetchurl, fetchFromGitHub, buildGoPackage }:
+{ stdenv, fetchurl, fetchFromGitHub, buildGoPackage, buildEnv }:
 
 let
-  version = "4.8.0";
-  goPackagePath = "github.com/mattermost/mattermost-server";
-  buildFlags = "-ldflags \"-X '${goPackagePath}/model.BuildNumber=nixpkgs-${version}'\"";
-in
+  version = "4.10.0";
 
-buildGoPackage rec {
-  name = "mattermost-${version}";
+  mattermost-server = buildGoPackage rec {
+    name = "mattermost-server-${version}";
 
-  src = fetchFromGitHub {
-    owner = "mattermost";
-    repo = "mattermost-server";
-    rev = "v${version}";
-    sha256 = "16yf4p0n3klgh0zw2ikbahj9cy1wcxbwg86pld0yz63cfvfz5ns4";
-  };
+    src = fetchFromGitHub {
+      owner = "mattermost";
+      repo = "mattermost-server";
+      rev = "v${version}";
+      sha256 = "02isw8qapp35pgriy4w1ar1ppvgc5a10j550hjbc1mylnhzkg1jf";
+    };
+
+    goPackagePath = "github.com/mattermost/mattermost-server";
+
+    buildFlagsArray = ''
+      -ldflags=
+        -X ${goPackagePath}/model.BuildNumber=nixpkgs-${version}
+    '';
+
+    postInstall = ''
+      ln -s $bin/bin/mattermost-server $bin/bin/platform
+      ln -s $bin/bin/mattermost-server $bin/bin/mattermost-platform
+    '';
 
-  webApp = fetchurl {
-    url = "https://releases.mattermost.com/${version}/mattermost-team-${version}-linux-amd64.tar.gz";
-    sha256 = "0ykp9apsv2514bircgay0xi0jigiai65cnb8q77v1qxjzdyx8s75";
   };
 
-  inherit goPackagePath;
-
-  buildPhase = ''
-    runHook preBuild
-    cd go/src/${goPackagePath}/cmd/platform
-    go install ${buildFlags}
-    runHook postBuild
-  '';
-
-  preInstall = ''
-    mkdir -p $bin
-    tar --strip 1 -C $bin -xf $webApp
-  '';
-
-  postInstall = ''
-    ln -s $bin/bin/platform $bin/bin/mattermost-platform
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Open-source, self-hosted Slack-alternative";
-    homepage = https://www.mattermost.org;
-    license = with licenses; [ agpl3 asl20 ];
-    maintainers = with maintainers; [ fpletz ryantm ];
-    platforms = platforms.unix;
+  mattermost-webapp = stdenv.mkDerivation {
+    name = "mattermost-webapp-${version}";
+
+    src = fetchurl {
+      url = "https://releases.mattermost.com/${version}/mattermost-${version}-linux-amd64.tar.gz";
+      sha256 = "0pfj2dxl4qrv4w6yj0385nw0fa4flcg95kkahs0arwhan5bgifl5";
+    };
+
+    installPhase = ''
+      mkdir -p $out
+      tar --strip 1 --directory $out -xf $src \
+        mattermost/client \
+        mattermost/i18n \
+        mattermost/fonts \
+        mattermost/templates \
+        mattermost/config
+    '';
   };
-}
+
+in
+  buildEnv {
+    name = "mattermost-${version}";
+    paths = [ mattermost-server mattermost-webapp ];
+
+    meta = with stdenv.lib; {
+      description = "Open-source, self-hosted Slack-alternative";
+      homepage = https://www.mattermost.org;
+      license = with licenses; [ agpl3 asl20 ];
+      maintainers = with maintainers; [ fpletz ryantm ];
+      platforms = platforms.unix;
+    };
+  }
diff --git a/pkgs/servers/meguca/default.nix b/pkgs/servers/meguca/default.nix
new file mode 100644
index 000000000000..bfe21543555d
--- /dev/null
+++ b/pkgs/servers/meguca/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, buildGoPackage, fetchgit, pkgconfig, ffmpeg-full, graphicsmagick, ghostscript, quicktemplate,
+  go-bindata, easyjson, nodePackages, cmake, emscripten }:
+
+buildGoPackage rec {
+  name = "meguca-unstable-${version}";
+  version = "2018-05-26";
+  rev = "9f3d902fb899dbc874c1a91298d86fda7da59b1e";
+  goPackagePath = "github.com/bakape/meguca";
+  goDeps = ./server_deps.nix;
+  enableParallelBuilding = true;
+  nativeBuildInputs = [ pkgconfig cmake ];
+  buildInputs = [ ffmpeg-full graphicsmagick ghostscript quicktemplate go-bindata easyjson emscripten ];
+
+  src = fetchgit {
+    inherit rev;
+    url = "https://github.com/bakape/meguca";
+    sha256 = "0qblllf23pxcwi5fhaq8xc77iawll7v7xpk2mf9ngks3h8p7gddq";
+    fetchSubmodules = true;
+  };
+
+  configurePhase = ''
+    export HOME=$PWD
+    export GOPATH=$GOPATH:$HOME/go
+    ln -sf ${nodePackages.meguca}/lib/node_modules/meguca/node_modules
+    sed -i "/npm install --progress false --depth 0/d" Makefile
+    make generate_clean
+    go generate meguca/...
+  '';
+
+  buildPhase = ''
+    go build -p $NIX_BUILD_CORES meguca
+    make -j $NIX_BUILD_CORES client wasm
+  '';
+
+  installPhase = ''
+    mkdir -p $bin/bin $bin/share/meguca
+    cp meguca $bin/bin
+    cp -r www $bin/share/meguca
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/bakape/meguca";
+    description = "Anonymous realtime imageboard focused on high performance, free speech and transparent moderation";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ chiiruno ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/servers/meguca/server_deps.nix b/pkgs/servers/meguca/server_deps.nix
new file mode 100644
index 000000000000..493297b9757f
--- /dev/null
+++ b/pkgs/servers/meguca/server_deps.nix
@@ -0,0 +1,255 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+  {
+    goPackagePath = "github.com/Masterminds/squirrel";
+    fetch = {
+      type = "git";
+      url = "https://github.com/Masterminds/squirrel";
+      rev = "40ef4f86bf59a996c348a9f56ddb4c4d3d49a6df";
+      sha256 = "1zdv8hds2skqz9xrybf1pw5hfxzd27c35fsrfq11ryif1wxwbkyp";
+    };
+  }
+  {
+    goPackagePath = "github.com/Soreil/apngdetector";
+    fetch = {
+      type = "git";
+      url = "https://github.com/Soreil/apngdetector";
+      rev = "e412c29dbc998dfcffe266b12587b29096ac4d46";
+      sha256 = "0ci71nk6jijspzbgcfrgi4in9lmd2c39f6xzcf9k3z9ixwv8c79j";
+    };
+  }
+  {
+    goPackagePath = "github.com/aquilax/tripcode";
+    fetch = {
+      type = "git";
+      url = "https://github.com/aquilax/tripcode";
+      rev = "db58da84bb12e26032493b73eb3b58ba884590ef";
+      sha256 = "0maqk0rwp39kcc64w4mfkgcvn2q76hqwziwc3g7ckc1qpwxql5z3";
+    };
+  }
+  {
+    goPackagePath = "github.com/bakape/mnemonics";
+    fetch = {
+      type = "git";
+      url = "https://github.com/bakape/mnemonics";
+      rev = "056d8d3259923b93bb0449a45b0c56ac20c77f1b";
+      sha256 = "137dl4bkpszj7pm4dyj222xdvy9lmwsgmm0l6bxni0msc3jdrqkl";
+    };
+  }
+  {
+    goPackagePath = "github.com/bakape/thumbnailer";
+    fetch = {
+      type = "git";
+      url = "https://github.com/bakape/thumbnailer";
+      rev = "5b92eb4c4500fd8e004e4cc9eeb2038961e2004f";
+      sha256 = "0z9myzp6rjyylh91ibd1nfpz7za1gxg4n3pnn7sw54i9zyws1l4x";
+    };
+  }
+  {
+    goPackagePath = "github.com/boltdb/bolt";
+    fetch = {
+      type = "git";
+      url = "https://github.com/boltdb/bolt";
+      rev = "fd01fc79c553a8e99d512a07e8e0c63d4a3ccfc5";
+      sha256 = "12f5swiwzcamk87r9j73nn7rmyyday7jkgzfh7x5wdg9blzhrir2";
+    };
+  }
+  {
+    goPackagePath = "github.com/dchest/captcha";
+    fetch = {
+      type = "git";
+      url = "https://github.com/dchest/captcha";
+      rev = "6a29415a8364ec2971fdc62d9e415ed53fc20410";
+      sha256 = "0j0yspx5rlyx7fdfcx74viqc8jlq3nwyd62bdx4gvbd56cppldcm";
+    };
+  }
+  {
+    goPackagePath = "github.com/dimfeld/httptreemux";
+    fetch = {
+      type = "git";
+      url = "https://github.com/dimfeld/httptreemux";
+      rev = "7f532489e7739b3d49df5c602bf63549881fe753";
+      sha256 = "0hkw04rsvljvx8ynqjgz9cb743x09fd2xiiycrgz5vbsa8q9iyyk";
+    };
+  }
+  {
+    goPackagePath = "github.com/go-playground/ansi";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-playground/ansi";
+      rev = "777788a9be1a7296979a999c86b251fc777077a9";
+      sha256 = "1y2pqx04lc7cqg50scfivzw0n8f0dliflnih14f5jf4svff8s561";
+    };
+  }
+  {
+    goPackagePath = "github.com/go-playground/errors";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-playground/errors";
+      rev = "14d2d30656a95a5fa5a17d2e33540269eda5f158";
+      sha256 = "0w13vgxwc1x780x716kqzzwp9ld3w3jpkclabh2qwpcwx821nhpy";
+    };
+  }
+  {
+    goPackagePath = "github.com/go-playground/log";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-playground/log";
+      rev = "91a5908e654f9fc444a71ea3c51c72cb5c6c2442";
+      sha256 = "0p67j453pi7ffv3axl5g97qadx8lj22vsi5xrzqrr3v6mj8b0lbm";
+    };
+  }
+  {
+    goPackagePath = "github.com/gorilla/handlers";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gorilla/handlers";
+      rev = "13a38d26174b16d5b4bf6f1094c1389ec9879572";
+      sha256 = "0zg43blpyyy667y0kpiifk5a2w35jh8qkk4zwlabb365c0lzrv6v";
+    };
+  }
+  {
+    goPackagePath = "github.com/gorilla/websocket";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gorilla/websocket";
+      rev = "21ab95fa12b9bdd8fecf5fa3586aad941cc98785";
+      sha256 = "1ygg6cr84461d6k3nzbja0dxhcgf5zvry2w10f6i7291ghrcwhyy";
+    };
+  }
+  {
+    goPackagePath = "github.com/kardianos/osext";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kardianos/osext";
+      rev = "ae77be60afb1dcacde03767a8c37337fad28ac14";
+      sha256 = "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz";
+    };
+  }
+  {
+    goPackagePath = "github.com/lann/builder";
+    fetch = {
+      type = "git";
+      url = "https://github.com/lann/builder";
+      rev = "1b87b36280d04fe7882d1512bf038ea2967ad534";
+      sha256 = "015q46awbyp47vld07yi7d27i0lkd82r7qn5230bb9qxl4mcfiqc";
+    };
+  }
+  {
+    goPackagePath = "github.com/lann/ps";
+    fetch = {
+      type = "git";
+      url = "https://github.com/lann/ps";
+      rev = "62de8c46ede02a7675c4c79c84883eb164cb71e3";
+      sha256 = "10yhcyymypvdiiipchsp80jbglk8c4r7lq7h54v9f4mxmvz6xgf7";
+    };
+  }
+  {
+    goPackagePath = "github.com/lib/pq";
+    fetch = {
+      type = "git";
+      url = "https://github.com/lib/pq";
+      rev = "90697d60dd844d5ef6ff15135d0203f65d2f53b8";
+      sha256 = "0hb4bfsk8g5473yzbf3lzrb373xicakjznkf0v085xgimz991i9r";
+    };
+  }
+  {
+    goPackagePath = "github.com/mailru/easyjson";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mailru/easyjson";
+      rev = "8b799c424f57fa123fc63a99d6383bc6e4c02578";
+      sha256 = "15ba6drfmw98lzw5qjh3ijcxh9iz9rcp3hid169yfd08l06z05w0";
+    };
+  }
+  {
+    goPackagePath = "github.com/nyarlabo/go-crypt";
+    fetch = {
+      type = "git";
+      url = "https://github.com/nyarlabo/go-crypt";
+      rev = "d9a5dc2b789bc330075d4b805d9b7c971f2865a1";
+      sha256 = "0249hbwvhy0xywi9b5k8964km27pvfkr3jvliy3azri6vnyvkkx1";
+    };
+  }
+  {
+    goPackagePath = "github.com/oschwald/maxminddb-golang";
+    fetch = {
+      type = "git";
+      url = "https://github.com/oschwald/maxminddb-golang";
+      rev = "c5bec84d1963260297932a1b7a1753c8420717a7";
+      sha256 = "0n8vhinm2x0prbn0vhxw38c24iiaizwk1b76s4srg30gk3dfdd39";
+    };
+  }
+  {
+    goPackagePath = "github.com/sevlyar/go-daemon";
+    fetch = {
+      type = "git";
+      url = "https://github.com/sevlyar/go-daemon";
+      rev = "45a2ba1b7c6710a044163fa109bf08d060bc3afa";
+      sha256 = "1fd8cwljgbxsm3w38pii0n02zg8s53x7j08w784csj3sfzq7rbv4";
+    };
+  }
+  {
+    goPackagePath = "github.com/ulikunitz/xz";
+    fetch = {
+      type = "git";
+      url = "https://github.com/ulikunitz/xz";
+      rev = "0c6b41e72360850ca4f98dc341fd999726ea007f";
+      sha256 = "0a6l7sp67ipxim093qh6fvw8knbxj24l7bj5lykcddi5gwfi78n3";
+    };
+  }
+  {
+    goPackagePath = "github.com/valyala/bytebufferpool";
+    fetch = {
+      type = "git";
+      url = "https://github.com/valyala/bytebufferpool";
+      rev = "e746df99fe4a3986f4d4f79e13c1e0117ce9c2f7";
+      sha256 = "01lqzjddq6kz9v41nkky7wbgk7f1cw036sa7ldz10d82g5klzl93";
+    };
+  }
+  {
+    goPackagePath = "github.com/valyala/quicktemplate";
+    fetch = {
+      type = "git";
+      url = "https://github.com/valyala/quicktemplate";
+      rev = "a91e0946457b6583004fbfc159339b8171423aed";
+      sha256 = "1z89ang5pkq5qs5b2nwhzyrw0zjlsas539l9kix374fhka49n8yc";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev = "a3beeb748656e13e54256fd2cde19e058f41f60f";
+      sha256 = "0h0a1v2g3hf0dlfjfiv76vfvvy7r9sdhjyqc2snvh9dczm2k5zki";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "c11f84a56e43e20a78cee75a7c034031ecf57d1f";
+      sha256 = "1fn1wwr94v6ca1zcbsrs5v79s95pajdjqzz9rm9lxkgcvv1rl189";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/text";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev = "5c1cf69b5978e5a34c5f9ba09a83e56acc4b7877";
+      sha256 = "03br8p1sb1ffr02l8hyrgcyib7ms0z06wy3v4r1dj2l6q4ghwzfs";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/gomail.v2";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/gomail.v2";
+      rev = "81ebce5c23dfd25c6c67194b37d3dd3f338c98b1";
+      sha256 = "0zdykrv5s19lnq0g49p6njldy4cpk4g161vyjafiw7f84h8r28mc";
+    };
+  }
+]
diff --git a/pkgs/servers/memcached/default.nix b/pkgs/servers/memcached/default.nix
index e326aff0d7ee..8a4159a55213 100644
--- a/pkgs/servers/memcached/default.nix
+++ b/pkgs/servers/memcached/default.nix
@@ -1,12 +1,12 @@
 {stdenv, fetchurl, cyrus_sasl, libevent}:
 
 stdenv.mkDerivation rec {
-  version = "1.5.7";
+  version = "1.5.8";
   name = "memcached-${version}";
 
   src = fetchurl {
     url = "http://memcached.org/files/${name}.tar.gz";
-    sha256 = "0ijfiy1w4hk3j8hhra6kablq8kjabvcdvsl8cwd4drvszjl0ddsv";
+    sha256 = "1ppnhsqv9047vm0rrmqla56y972f8qqjdb780iz6v922jjcc723k";
   };
 
   buildInputs = [cyrus_sasl libevent];
diff --git a/pkgs/servers/metabase/default.nix b/pkgs/servers/metabase/default.nix
index 4eae86b00b0f..588f1dda50cc 100644
--- a/pkgs/servers/metabase/default.nix
+++ b/pkgs/servers/metabase/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "metabase-${version}";
-  version = "0.29.0";
+  version = "0.29.3";
 
   src = fetchurl {
     url = "http://downloads.metabase.com/v${version}/metabase.jar";
-    sha256 = "1dfq06cm8k36pkqpng4cd8ax8cdxbcssww4vapq2w9ccflpnlam2";
+    sha256 = "18yvjxlgdbg7h7ipj1wlic5m0gv5s2943c72shs44jvic6g42pzv";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/minio/default.nix b/pkgs/servers/minio/default.nix
index 786a188bbfd8..7f590461d9de 100644
--- a/pkgs/servers/minio/default.nix
+++ b/pkgs/servers/minio/default.nix
@@ -3,13 +3,13 @@
 buildGoPackage rec {
   name = "minio-${version}";
 
-  version = "2018-03-30T00-38-44Z";
+  version = "2018-05-11T00-29-24Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "minio";
     rev = "RELEASE.${version}";
-    sha256 = "17vam9ifi632yfxakanxi2660wqgqrhrhhzywrgh2jmzljippf80";
+    sha256 = "01jw1djfs0jbhsx9pmx3kj31mfhrw45lr1i4lwkmh8k7fxn8w13x";
   };
 
   goPackagePath = "github.com/minio/minio";
diff --git a/pkgs/servers/monitoring/bosun/default.nix b/pkgs/servers/monitoring/bosun/default.nix
index d9af026dfb6a..905244833602 100644
--- a/pkgs/servers/monitoring/bosun/default.nix
+++ b/pkgs/servers/monitoring/bosun/default.nix
@@ -1,13 +1,13 @@
 { lib, fetchFromGitHub, buildGoPackage }:
 
 buildGoPackage rec {
-  name = "bosun";
-  rev = "0.5.0";
+  name = "bosun-${version}";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
-    inherit rev;
     owner = "bosun-monitor";
     repo = "bosun";
+    rev = version;
     sha256 = "1qj97wiqj6awivvac1n00k0x8wdv4ambzdj4502nmmnr5rdbqq88";
   };
 
diff --git a/pkgs/servers/monitoring/grafana/default.nix b/pkgs/servers/monitoring/grafana/default.nix
index bcae836cbf21..646401ce02f9 100644
--- a/pkgs/servers/monitoring/grafana/default.nix
+++ b/pkgs/servers/monitoring/grafana/default.nix
@@ -1,7 +1,7 @@
 { lib, buildGoPackage, fetchurl, fetchFromGitHub, phantomjs2 }:
 
 buildGoPackage rec {
-  version = "5.1.1";
+  version = "5.1.3";
   name = "grafana-${version}";
   goPackagePath = "github.com/grafana/grafana";
 
@@ -9,12 +9,12 @@ buildGoPackage rec {
     rev = "v${version}";
     owner = "grafana";
     repo = "grafana";
-    sha256 = "0b8i293bfxyblfqwxpb1dkgva95f0bljpvp27j4l4hmjm2g8bpd9";
+    sha256 = "09q4xrh4j02b8nrkskndahs039rhmcs8hrcgvnnpg36qqyvs1x0g";
   };
 
   srcStatic = fetchurl {
     url = "https://grafana-releases.s3.amazonaws.com/release/grafana-${version}.linux-x64.tar.gz";
-    sha256 = "0kyfyxcj2yy9v1in6h6kh6sl5p7m03g643qpjriplwwa93bdmk8k";
+    sha256 = "131dxpjnzhsjh6c0fp48jhxf5piy6wh287pfm2s7pm4ywq9m0q46";
   };
 
   preBuild = "export GOPATH=$GOPATH:$NIX_BUILD_TOP/go/src/${goPackagePath}/Godeps/_workspace";
diff --git a/pkgs/servers/monitoring/net-snmp/default.nix b/pkgs/servers/monitoring/net-snmp/default.nix
index 77dcfa43c43f..a6b738270a9a 100644
--- a/pkgs/servers/monitoring/net-snmp/default.nix
+++ b/pkgs/servers/monitoring/net-snmp/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ file perl unzip openssl ];
 
   enableParallelBuilding = true;
+  doCheck = false; # fails
 
   postInstall = ''
     for f in "$out/lib/"*.la $out/bin/net-snmp-config $out/bin/net-snmp-create-v3-user; do
diff --git a/pkgs/servers/monitoring/plugins/labs_consol_de.nix b/pkgs/servers/monitoring/plugins/labs_consol_de.nix
index 9f33835c8851..350728d509fb 100644
--- a/pkgs/servers/monitoring/plugins/labs_consol_de.nix
+++ b/pkgs/servers/monitoring/plugins/labs_consol_de.nix
@@ -1,25 +1,24 @@
-{ stdenv, fetchFromGitHub, buildPerlPackage, autoreconfHook, makeWrapper
+{ stdenv, fetchFromGitHub, fetchurl, buildPerlPackage, autoreconfHook, makeWrapper
 , perl, NetSNMP, coreutils, gnused, gnugrep }:
 
 let
-  owner = "lausser";
-
   glplugin = fetchFromGitHub {
+    owner = "lausser";
     repo   = "GLPlugin";
-    rev    = "b92a261ca4bf84e5b20d3025cc9a31ade03c474b";
-    sha256 = "0kflnmpjmklq8fy2vf2h8qyvaiznymdi09z2h5qscrfi51xc9gmh";
-    inherit owner;
+    rev    = "e8e1a2907a54435c932b3e6c584ba1d679754849";
+    sha256 = "0wb55a9pmgbilfffx0wkiikg9830qd66j635ypczqp4basslpq5b";
   };
 
-  generic = { pname, version, rev, sha256, description, ... } @ attrs:
+  generic = { pname, version, sha256, description, ... } @ attrs:
   let
     attrs' = builtins.removeAttrs attrs [ "pname" "version" "rev" "sha256"];
+    name' = "${stdenv.lib.replaceStrings [ "-" ] [ "_" ] "${pname}"}-${version}";
   in perl.stdenv.mkDerivation rec {
-    name = stdenv.lib.replaceStrings [ "-" ] [ "_" ] "${pname}-${version}";
+    name = "${pname}-${version}";
 
-    src = fetchFromGitHub {
-      repo   = pname;
-      inherit owner rev sha256;
+    src = fetchurl {
+      url = "https://labs.consol.de/assets/downloads/nagios/${name'}.tar.gz";
+      inherit sha256;
     };
 
     buildInputs = [ perl NetSNMP ];
@@ -27,7 +26,8 @@ let
     nativeBuildInputs = [ autoreconfHook makeWrapper ];
 
     prePatch = with stdenv.lib; ''
-      ln -s ${glplugin}/* GLPlugin
+      rm -rf GLPlugin
+      ln -s ${glplugin} GLPlugin
       substituteInPlace plugins-scripts/Makefile.am \
         --replace /bin/cat  ${getBin coreutils}/bin/cat \
         --replace /bin/echo ${getBin coreutils}/bin/echo \
@@ -56,17 +56,15 @@ let
 in {
   check-nwc-health = generic {
     pname       = "check_nwc_health";
-    version     = "20170804";
-    rev         = "e959b412b5cf027c82a446668e026214fdcf8df3";
-    sha256      = "11l74xw62g15rqrbf9ff2bfd5iw159gwhhgbkxwdqi8sp9j6navk";
+    version     = "7.0.1.3";
+    sha256      = "0rgd6zgd7kplx3z72n8zbzwkh8vnd83361sk9ibh6ng78sds1sl5";
     description = "Check plugin for network equipment.";
   };
 
   check-ups-health = generic {
     pname       = "check_ups_health";
-    version     = "20170804";
-    rev         = "32a8a359ea46ec0d6f3b7aea19ddedaad63b04b9";
-    sha256      = "05na48dxfxrg0i9185j1ck2795p0rw1zwcs8ra0f14cm0qw0lp4l";
+    version     = "2.8.2.2";
+    sha256      = "1gc2wjsymay2vk5ywc1jj9cvrbhs0fs851x8l4nc75df2g75v521";
     description = "Check plugin for UPSs.";
   };
 }
diff --git a/pkgs/servers/monitoring/prometheus/default.nix b/pkgs/servers/monitoring/prometheus/default.nix
index 3287bc6f2583..37d82326cc29 100644
--- a/pkgs/servers/monitoring/prometheus/default.nix
+++ b/pkgs/servers/monitoring/prometheus/default.nix
@@ -19,7 +19,7 @@ let
 
         doCheck = true;
 
-        buildFlagsArray = let t = "${goPackagePath}/version"; in ''
+        buildFlagsArray = let t = "${goPackagePath}/vendor/github.com/prometheus/common/version"; in ''
           -ldflags=
              -X ${t}.Version=${version}
              -X ${t}.Revision=unknown
@@ -45,8 +45,8 @@ let
     } // attrs');
 in rec {
   prometheus_1 = generic {
-    version = "1.8.1";
-    sha256 = "07xvpjhhxc0r73qfmkvf94zhv19zv76privw6blg35k5nxcnj7j4";
+    version = "1.8.2";
+    sha256 = "088flpg3qgnj9afl9vbaa19v2s1d21yxy38nrlv5m7cxwy2pi5pv";
   };
 
   prometheus_2 = generic {
diff --git a/pkgs/servers/monitoring/riemann/default.nix b/pkgs/servers/monitoring/riemann/default.nix
index b930c1ab1f61..6eb4a3dfe9af 100644
--- a/pkgs/servers/monitoring/riemann/default.nix
+++ b/pkgs/servers/monitoring/riemann/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "riemann-${version}";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchurl {
     url = "https://github.com/riemann/riemann/releases/download/${version}/${name}.tar.bz2";
-    sha256 = "151zd8nkhigphdx6g9jhmza6963qvlnki013j1g7lyqaz43qyk1c";
+    sha256 = "0lc3qmwb33jjw2g64j8inqpr7krjmpjwfdmypdssvjy84acpkyal";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix
index b1003687a04d..5d1723274cb4 100644
--- a/pkgs/servers/nosql/arangodb/default.nix
+++ b/pkgs/servers/nosql/arangodb/default.nix
@@ -3,14 +3,14 @@
 
 let
 in stdenv.mkDerivation rec {
-  version = "3.3.8";
+  version = "3.3.9";
   name    = "arangodb-${version}";
 
   src = fetchFromGitHub {
     repo = "arangodb";
     owner = "arangodb";
     rev = "v${version}";
-    sha256 = "07qz5fv4w00hs31hmx099vlzlv0x5i10b5i4h8r0bkprih8k3vg3";
+    sha256 = "1zr9byxlqd7s3rnmvdgv85mmk5xxjz0va1pj2gn6y28k569prcbs";
   };
 
   buildInputs = [
diff --git a/pkgs/servers/nosql/eventstore/default.nix b/pkgs/servers/nosql/eventstore/default.nix
index 3ec00dfa16e7..f97a3a5c1842 100644
--- a/pkgs/servers/nosql/eventstore/default.nix
+++ b/pkgs/servers/nosql/eventstore/default.nix
@@ -5,12 +5,12 @@
 
 stdenv.mkDerivation rec {
   name = "EventStore-${version}";
-  version = "4.1.0";
+  version = "4.1.1";
   src = fetchFromGitHub {
     owner  = "EventStore";
     repo   = "EventStore";
     rev    = "oss-v${version}";
-    sha256 = "0mvjz327kfg157fwvy8xkkf5h0g3v373pfwr70cslsy96n45jp10";
+    sha256 = "1069ncb9ps1wi71yw1fzkfd9rfsavccw8xj3a3miwd9x72w8636f";
   };
 
   buildPhase = ''
diff --git a/pkgs/servers/osrm-backend/default.nix b/pkgs/servers/osrm-backend/default.nix
index 3b11f26d6ce2..04fd2e37b357 100644
--- a/pkgs/servers/osrm-backend/default.nix
+++ b/pkgs/servers/osrm-backend/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "osrm-backend-${version}";
-  version = "5.17.2";
+  version = "5.18.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner  = "Project-OSRM";
     repo   = "osrm-backend";
-    sha256 = "0ar94wpsc2vr6pn4x5wy7mkpjlilgnyw545wm0l78174q43460y9";
+    sha256 = "0ffdw02rgjb4z7xi8fk97c0hl1i7z04csjh3yd18zsb19bk1mkva";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/servers/plex/default.nix b/pkgs/servers/plex/default.nix
index 29be86d16029..57de5281fdfc 100644
--- a/pkgs/servers/plex/default.nix
+++ b/pkgs/servers/plex/default.nix
@@ -6,9 +6,9 @@
 let
   plexPass = throw "Plex pass has been removed at upstream's request; please unset nixpkgs.config.plex.pass";
   plexpkg = if enablePlexPass then plexPass else {
-    version = "1.9.6.4429";
-    vsnHash = "23901a099";
-    sha256 = "0bmqf8b2d9h2h5q3n4ahs8y6a9aihj63rch7wd82rcr1l9xnqk9d";
+    version = "1.13.0.5023";
+    vsnHash = "31d3c0c65";
+    sha256 = "b94d571bcd47bc3201fd7f54b910f5693cabd1b543d5d0b4705668b7b7c24602";
   };
 
 in stdenv.mkDerivation rec {
diff --git a/pkgs/servers/slimserver/default.nix b/pkgs/servers/slimserver/default.nix
index 18dbed4d1f30..c9bf8393afc7 100644
--- a/pkgs/servers/slimserver/default.nix
+++ b/pkgs/servers/slimserver/default.nix
@@ -1,16 +1,22 @@
-{ stdenv, buildPerlPackage, fetchurl
-, perl, perlPackages }:
+{ stdenv, buildPerlPackage, fetchurl, fetchpatch, makeWrapper
+, perl, perlPackages, flac, faad2, sox, lame, monkeysAudio, wavpack }:
 
 buildPerlPackage rec {
   name = "slimserver-${version}";
-  version = "7.9.0";
+  version = "7.9.1";
 
   src = fetchurl {
     url = "https://github.com/Logitech/slimserver/archive/${version}.tar.gz";
-    sha256 = "07rhqipg7m28x0nqdd83nyzi88dp9cf8rr2pamdyrfcwyp1h1b44";
+    sha256 = "0szp5zkmx2b5lncsijf97asjnl73fyijkbgbwkl1i7p8qnqrb4mp";
   };
 
+  patches = [ (fetchpatch {
+    url = "https://github.com/Logitech/slimserver/pull/204.patch";
+    sha256 = "0n1c8nsbvqkmwj5ivkcxh1wkqqm1lwymmfz9i47ih6ifj06hkpxk";
+  } ) ];
+
   buildInputs = [
+    makeWrapper
     perl
     perlPackages.AnyEvent
     perlPackages.AudioScan
@@ -70,17 +76,19 @@ buildPerlPackage rec {
 
   preConfigurePhase = "";
 
-  buildPhase = "
+  buildPhase = ''
     mv lib tmp
     mkdir -p lib/perl5/site_perl
     mv CPAN_used/* lib/perl5/site_perl
     cp -rf tmp/* lib/perl5/site_perl
-  ";
+  '';
 
   doCheck = false;
 
   installPhase = ''
     cp -r . $out
+    wrapProgram $out/slimserver.pl \
+      --prefix PATH : "${stdenv.lib.makeBinPath [ lame flac faad2 sox monkeysAudio wavpack ]}"
   '';
 
   outputs = [ "out" ];
diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix
index 170cc6c84a6a..e22e3a64fac1 100644
--- a/pkgs/servers/sql/mariadb/default.nix
+++ b/pkgs/servers/sql/mariadb/default.nix
@@ -167,11 +167,11 @@ everything = stdenv.mkDerivation (common // {
 
 connector-c = stdenv.mkDerivation rec {
   name = "mariadb-connector-c-${version}";
-  version = "2.3.4";
+  version = "2.3.5";
 
   src = fetchurl {
     url = "https://downloads.mariadb.org/interstitial/connector-c-${version}/mariadb-connector-c-${version}-src.tar.gz/from/http%3A//ftp.hosteurope.de/mirror/archive.mariadb.org/?serve";
-    sha256 = "1g1sq5knarxkfhpkcczr6qxmq12pid65cdkqnhnfs94av89hbswb";
+    sha256 = "0vvlfs56hxin130vh8pcs5w7jpv1yc6g76bhpzg88hnp4v1z8frg";
     name   = "mariadb-connector-c-${version}-src.tar.gz";
   };
 
diff --git a/pkgs/servers/sql/monetdb/default.nix b/pkgs/servers/sql/monetdb/default.nix
index 5f7e879819e9..6067d4983865 100644
--- a/pkgs/servers/sql/monetdb/default.nix
+++ b/pkgs/servers/sql/monetdb/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchurl, pkgconfig, bison, openssl }:
+{ stdenv, fetchurl, pkgconfig
+, bison, openssl, readline
+}:
 
 let
   version = "11.29.3";
@@ -12,7 +14,7 @@ in stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ bison openssl ];
+  buildInputs = [ bison openssl readline ];
 
   meta = with stdenv.lib; {
     description = "An open source database system";
diff --git a/pkgs/servers/sql/mysql/5.5.x.nix b/pkgs/servers/sql/mysql/5.5.x.nix
index 29d25b77afc8..15f82a90208c 100644
--- a/pkgs/servers/sql/mysql/5.5.x.nix
+++ b/pkgs/servers/sql/mysql/5.5.x.nix
@@ -6,11 +6,11 @@
 let
 self = stdenv.mkDerivation rec {
   name = "mysql-${version}";
-  version = "5.5.58";
+  version = "5.5.60";
 
   src = fetchurl {
     url = "mirror://mysql/MySQL-5.5/${name}.tar.gz";
-    sha256 = "1f890376ld1qapl038sjh2ialdizys3sj96vfn4mqmb1ybx14scv";
+    sha256 = "071xaamqkbscybqzm79gf2w3bkr9lqlzwafis3gzc8w8fkhi4hd3";
   };
 
   patches = if stdenv.isCygwin then [
@@ -47,6 +47,8 @@ self = stdenv.mkDerivation rec {
     "-DINSTALL_MYSQLSHAREDIR=share/mysql"
     "-DINSTALL_DOCDIR=share/mysql/docs"
     "-DINSTALL_SHAREDIR=share/mysql"
+    "-DINSTALL_MYSQLTESTDIR="
+    "-DINSTALL_SQLBENCHDIR="
   ];
 
   NIX_CFLAGS_COMPILE = [ "-fpermissive" ]; # since gcc-7
@@ -57,8 +59,7 @@ self = stdenv.mkDerivation rec {
   '';
   postInstall = ''
     sed -i -e "s|basedir=\"\"|basedir=\"$out\"|" $out/bin/mysql_install_db
-    rm -r $out/mysql-test $out/sql-bench $out/data "$out"/lib/*.a
-    rm $out/share/man/man1/mysql-test-run.pl.1
+    rm -r $out/data "$out"/lib/*.a
   '';
 
   passthru = {
diff --git a/pkgs/servers/sql/mysql/5.7.x.nix b/pkgs/servers/sql/mysql/5.7.x.nix
index 15e8569fd09e..4017f5946a48 100644
--- a/pkgs/servers/sql/mysql/5.7.x.nix
+++ b/pkgs/servers/sql/mysql/5.7.x.nix
@@ -6,11 +6,11 @@
 let
 self = stdenv.mkDerivation rec {
   name = "mysql-${version}";
-  version = "5.7.20";
+  version = "5.7.22";
 
   src = fetchurl {
     url = "mirror://mysql/MySQL-5.7/${name}.tar.gz";
-    sha256 = "11v4g3igigv3zvknv67qml8in6fjrbs2vnr3q6bg6f62nydm95sk";
+    sha256 = "1wng15j5caz6fsv28avlcxjgq3c5n90ifk79xa0h7jws19dl1f2f";
   };
 
   preConfigure = stdenv.lib.optional stdenv.isDarwin ''
@@ -26,14 +26,14 @@ self = stdenv.mkDerivation rec {
   outputs = [ "out" "static" ];
 
   cmakeFlags = [
+    "-DCMAKE_SKIP_BUILD_RPATH=OFF" # To run libmysql/libmysql_api_test during build.
     "-DWITH_SSL=yes"
     "-DWITH_EMBEDDED_SERVER=yes"
-    "-DWITH_UNITTEST=no"
+    "-DWITH_UNIT_TESTS=no"
     "-DWITH_ZLIB=yes"
     "-DWITH_ARCHIVE_STORAGE_ENGINE=yes"
     "-DWITH_BLACKHOLE_STORAGE_ENGINE=yes"
     "-DWITH_FEDERATED_STORAGE_ENGINE=yes"
-    "-DCMAKE_VERBOSE_MAKEFILE=yes"
     "-DHAVE_IPV6=yes"
     "-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock"
     "-DMYSQL_DATADIR=/var/lib/mysql"
@@ -45,6 +45,7 @@ self = stdenv.mkDerivation rec {
     "-DINSTALL_DOCREADMEDIR=share/mysql"
     "-DINSTALL_SUPPORTFILESDIR=share/mysql"
     "-DINSTALL_MYSQLSHAREDIR=share/mysql"
+    "-DINSTALL_MYSQLTESTDIR="
     "-DINSTALL_DOCDIR=share/mysql/docs"
     "-DINSTALL_SHAREDIR=share/mysql"
   ];
@@ -53,13 +54,10 @@ self = stdenv.mkDerivation rec {
   NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
 
   prePatch = ''
-    sed -i -e "s|/usr/bin/libtool|libtool|" cmake/libutils.cmake
+    sed -i -e "s|/usr/bin/libtool|libtool|" cmake/merge_archives.cmake.in
   '';
   postInstall = ''
-    sed -i -e "s|basedir=\"\"|basedir=\"$out\"|" $out/bin/mysql_install_db
-    install -vD $out/lib/*.a -t $static/lib
-    rm -r $out/mysql-test
-    rm $out/share/man/man1/mysql-test-run.pl.1 $out/lib/*.a
+    moveToOutput "lib/*.a" $static
     ln -s libmysqlclient${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libmysqlclient_r${stdenv.hostPlatform.extensions.sharedLibrary}
   '';
 
diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix
index a2093962ea93..5d348c129437 100644
--- a/pkgs/servers/sql/postgresql/default.nix
+++ b/pkgs/servers/sql/postgresql/default.nix
@@ -75,6 +75,8 @@ let
         wrapProgram $out/bin/initdb --prefix PATH ":" ${glibc.bin}/bin
       '';
 
+    doInstallCheck = false; # needs a running daemon?
+
     disallowedReferences = [ stdenv.cc ];
 
     passthru = {
diff --git a/pkgs/servers/sql/postgresql/pg_repack/default.nix b/pkgs/servers/sql/postgresql/pg_repack/default.nix
index 50c9c68bb5f7..1b7cd08b082b 100644
--- a/pkgs/servers/sql/postgresql/pg_repack/default.nix
+++ b/pkgs/servers/sql/postgresql/pg_repack/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
     name = "pg_repack-${version}";
-    version = "1.4.2";
+    version = "1.4.3";
 
     buildInputs = [ postgresql openssl zlib readline ];
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
       owner  = "reorg";
       repo   = "pg_repack";
       rev    = "refs/tags/ver_${version}";
-      sha256 = "1yv5x7dgiv1miazbngkrkdbc2zpwklj6nlligghjvv83bcl8969q";
+      sha256 = "1mmd22nfaxjwnbl3i95f3ivmjvfqwdflgaczlg3129dbpwg265xr";
     };
 
     installPhase = ''
diff --git a/pkgs/servers/sql/postgresql/pgroonga/default.nix b/pkgs/servers/sql/postgresql/pgroonga/default.nix
index eb6f5f94810e..6dcd19d8d680 100644
--- a/pkgs/servers/sql/postgresql/pgroonga/default.nix
+++ b/pkgs/servers/sql/postgresql/pgroonga/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "pgroonga-${version}";
-  version = "2.0.5";
+  version = "2.0.6";
 
   src = fetchurl {
     url = "http://packages.groonga.org/source/pgroonga/${name}.tar.gz";
-    sha256 = "1c4m1rg3122y8rndgz7sj9a49l3v9nm0qbpa04pls20pxzx21g5a";
+    sha256 = "1hfmz3d0xwhsa4vw8i08s15i7pfd0h0smi2rv663x3cjjjn40i68";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/servers/sql/postgresql/timescaledb/default.nix b/pkgs/servers/sql/postgresql/timescaledb/default.nix
index e1a4aed3b7e4..ce298cb2745d 100644
--- a/pkgs/servers/sql/postgresql/timescaledb/default.nix
+++ b/pkgs/servers/sql/postgresql/timescaledb/default.nix
@@ -8,7 +8,7 @@
 
 stdenv.mkDerivation rec {
   name = "timescaledb-${version}";
-  version = "0.9.1";
+  version = "0.9.2";
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ postgresql ];
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     owner  = "timescale";
     repo   = "timescaledb";
     rev    = "refs/tags/${version}";
-    sha256 = "00k8fk5a1xpv9nxlmafnngk31wh80h6m72vsl1hnyq7nhby7ylic";
+    sha256 = "1zgyd407skqbsw2zj3l9hixwlisnj82yb6hbq5khjg9k0ifvvgyp";
   };
 
   # Fix the install phase which tries to install into the pgsql extension dir,
diff --git a/pkgs/servers/sql/postgresql/tsearch_extras/default.nix b/pkgs/servers/sql/postgresql/tsearch_extras/default.nix
index c3a452132f28..5140ae1a228f 100644
--- a/pkgs/servers/sql/postgresql/tsearch_extras/default.nix
+++ b/pkgs/servers/sql/postgresql/tsearch_extras/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "tsearch-extras-${version}";
-  version = "0.2";
+  version = "0.3";
 
   src = fetchFromGitHub {
     owner = "zulip";
     repo = "tsearch_extras";
     rev = version;
-    sha256 = "1ivg9zn7f1ks31ixxwywifwhzxn6py8s5ky1djyxnb0s60zckfjg";
+    sha256 = "0i3i99lw80jwd4xflgdqabxmn1dnm1gm7dzf1mqv2drllxcy3yix";
   };
 
   nativenativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/servers/web-apps/matomo/default.nix b/pkgs/servers/web-apps/matomo/default.nix
index c8a918c2bd22..27cf873e7908 100644
--- a/pkgs/servers/web-apps/matomo/default.nix
+++ b/pkgs/servers/web-apps/matomo/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "matomo-${version}";
-  version = "3.4.0";
+  version = "3.5.0";
 
   src = fetchurl {
     # TODO: As soon as the tarballs are renamed as well on future releases, this should be enabled again
     # url = "https://builds.matomo.org/${name}.tar.gz";
     url = "https://builds.matomo.org/piwik-${version}.tar.gz";
-    sha256 = "1hnja8mvjvlbqgw7maa76lxd5hxxg7d5ggq9wyrff25mapj398wc";
+    sha256 = "1l656b194h7z3k52ywl7sfa2h6sxa5gf22wcfrp0pp07v9p6pc5f";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
   #   unix socket authentication only works with localhost,
   #   but password-based SQL authentication works with both.
   # TODO: is upstream interested in this?
+  # -> discussion at https://github.com/matomo-org/matomo/issues/12646
   patches = [ ./make-localhost-default-database-host.patch ];
 
   # this bootstrap.php adds support for getting PIWIK_USER_PATH
diff --git a/pkgs/servers/webmetro/default.nix b/pkgs/servers/webmetro/default.nix
new file mode 100644
index 000000000000..45369f5f5a06
--- /dev/null
+++ b/pkgs/servers/webmetro/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "webmetro";
+  name = "${pname}-${version}";
+  version = "unstable-20180426";
+
+  src = fetchFromGitHub {
+    owner = "Tangent128";
+    repo = pname;
+    rev = "4f6cc00fe647bd311d00a8a4cb53ab08f20a04f9";
+    sha256 = "1n2c7ygs8qsd5zgii6fqqcwg427bsij082bg4ijnzkq5630dx651";
+  };
+
+  cargoSha256 = "0drf331qic1gf58j7izwp0q2l4w0dyrhr19rd2y5k43cw4m1nq59";
+
+  meta = with stdenv.lib; {
+    description = "Simple relay server for broadcasting a WebM stream";
+    longDescription = ''
+    Webmetro is a simple relay server for broadcasting a WebM stream
+    from one uploader to many downloaders, via HTTP.
+    The initialization segment is remembered, so that viewers can join
+    mid-stream.  Cluster timestamps are rewritten to be monotonic, so multiple
+    (compatibly-encoded) webm files can be chained together without
+    clients needing to reconnect.
+    '';
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ leenaars ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/servers/x11/xorg/darwin/0002-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch b/pkgs/servers/x11/xorg/darwin/0002-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch
deleted file mode 100644
index ed0518da5ce1..000000000000
--- a/pkgs/servers/x11/xorg/darwin/0002-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 91971455ee46b1059de75260ef0d1a45170d8b65 Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston <jeremyhu@apple.com>
-Date: Fri, 13 Jan 2012 12:00:57 -0800
-Subject: [PATCH 2/6] sdksyms.sh: Use CPPFLAGS, not CFLAGS
-
-CFLAGS can include flags which are not useful to the preprocessor
-or can even cause it to fail.  This fixes a build issue on darwin
-when building for more than one architecture.
-
-Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
-Reviewed-by: Keith Packard <keithp@keithp.com>
----
- hw/xfree86/Makefile.am | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
-index 27f2cc6..d898c43 100644
---- a/hw/xfree86/Makefile.am
-+++ b/hw/xfree86/Makefile.am
-@@ -48,8 +48,7 @@ DIST_SUBDIRS = common ddc i2c x86emu int10 fbdevhw os-support \
- bin_PROGRAMS = Xorg
- nodist_Xorg_SOURCES = sdksyms.c
- 
--AM_CFLAGS = $(DIX_CFLAGS) @XORG_CFLAGS@
--AM_CPPFLAGS = $(XORG_INCS) -I$(srcdir)/parser -I$(top_srcdir)/miext/cw \
-+AM_CPPFLAGS = $(DIX_CFLAGS) @XORG_CFLAGS@ $(XORG_INCS) -I$(srcdir)/parser -I$(top_srcdir)/miext/cw \
- 	-I$(srcdir)/ddc -I$(srcdir)/i2c -I$(srcdir)/modes -I$(srcdir)/ramdac \
- 	-I$(srcdir)/dri -I$(srcdir)/dri2 -I$(top_srcdir)/dri3
- 
-@@ -135,7 +134,7 @@ CLEANFILES = sdksyms.c sdksyms.dep Xorg.sh
- EXTRA_DIST += sdksyms.sh
- 
- sdksyms.dep sdksyms.c: sdksyms.sh
--	$(AM_V_GEN)CPP='$(CPP)' AWK='$(AWK)' $(SHELL) $(srcdir)/sdksyms.sh $(top_srcdir) $(CFLAGS) $(AM_CFLAGS) $(AM_CPPFLAGS)
-+	$(AM_V_GEN)CPP='$(CPP)' AWK='$(AWK)' $(SHELL) $(srcdir)/sdksyms.sh $(top_srcdir) $(CPPFLAGS) $(AM_CPPFLAGS)
- 
- SDKSYMS_DEP = sdksyms.dep
- -include $(SDKSYMS_DEP)
--- 
-2.3.2 (Apple Git-55)
-
diff --git a/pkgs/servers/x11/xorg/darwin/0004-Use-old-miTrapezoids-and-miTriangles-routines.patch b/pkgs/servers/x11/xorg/darwin/0004-Use-old-miTrapezoids-and-miTriangles-routines.patch
deleted file mode 100644
index 4027227bb53f..000000000000
--- a/pkgs/servers/x11/xorg/darwin/0004-Use-old-miTrapezoids-and-miTriangles-routines.patch
+++ /dev/null
@@ -1,297 +0,0 @@
-From b229a04bde765424542eeba17a7e2bc25785a890 Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
-Date: Sat, 2 Nov 2013 11:00:23 -0700
-Subject: [PATCH 4/6] Use old miTrapezoids and miTriangles routines
-
-Reverts commits:
-    788ccb9a8bcf6a4fb4054c507111eec3338fb969
-    566f1931ee2916269e164e114bffaf2da1d039d1
-
-http://xquartz.macosforge.org/trac/ticket/525
-
-Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
----
- fb/fbpict.c     |   2 -
- render/mipict.c |   4 +-
- render/mipict.h |  27 ++++++++++++++
- render/mitrap.c | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- render/mitri.c  |  61 +++++++++++++++++++++++++++++++
- 5 files changed, 201 insertions(+), 4 deletions(-)
-
-diff --git a/fb/fbpict.c b/fb/fbpict.c
-index c8378ad..cafb027 100644
---- a/fb/fbpict.c
-+++ b/fb/fbpict.c
-@@ -499,10 +499,8 @@ fbPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats)
-     ps->UnrealizeGlyph = fbUnrealizeGlyph;
-     ps->CompositeRects = miCompositeRects;
-     ps->RasterizeTrapezoid = fbRasterizeTrapezoid;
--    ps->Trapezoids = fbTrapezoids;
-     ps->AddTraps = fbAddTraps;
-     ps->AddTriangles = fbAddTriangles;
--    ps->Triangles = fbTriangles;
- 
-     return TRUE;
- }
-diff --git a/render/mipict.c b/render/mipict.c
-index a725104..e14293a 100644
---- a/render/mipict.c
-+++ b/render/mipict.c
-@@ -575,8 +575,8 @@ miPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats)
-     ps->Composite = 0;          /* requires DDX support */
-     ps->Glyphs = miGlyphs;
-     ps->CompositeRects = miCompositeRects;
--    ps->Trapezoids = 0;
--    ps->Triangles = 0;
-+    ps->Trapezoids = miTrapezoids;
-+    ps->Triangles = miTriangles;
- 
-     ps->RasterizeTrapezoid = 0; /* requires DDX support */
-     ps->AddTraps = 0;           /* requires DDX support */
-diff --git a/render/mipict.h b/render/mipict.h
-index 23ce9e8..e0f1d4c 100644
---- a/render/mipict.h
-+++ b/render/mipict.h
-@@ -122,6 +122,16 @@ miCompositeRects(CARD8 op,
-                  xRenderColor * color, int nRect, xRectangle *rects);
- 
- extern _X_EXPORT void
-+miTriangles (CARD8	    op,
-+	     PicturePtr	    pSrc,
-+	     PicturePtr	    pDst,
-+	     PictFormatPtr  maskFormat,
-+	     INT16	    xSrc,
-+	     INT16	    ySrc,
-+	     int	    ntri,
-+	     xTriangle	    *tris);
-+
-+extern _X_EXPORT void
- 
- miTriStrip(CARD8 op,
-            PicturePtr pSrc,
-@@ -137,10 +147,27 @@ miTriFan(CARD8 op,
-          PictFormatPtr maskFormat,
-          INT16 xSrc, INT16 ySrc, int npoints, xPointFixed * points);
- 
-+extern _X_EXPORT PicturePtr
-+miCreateAlphaPicture (ScreenPtr	    pScreen, 
-+		      PicturePtr    pDst,
-+		      PictFormatPtr pPictFormat,
-+		      CARD16	    width,
-+		      CARD16	    height);
-+
- extern _X_EXPORT void
-  miTrapezoidBounds(int ntrap, xTrapezoid * traps, BoxPtr box);
- 
- extern _X_EXPORT void
-+miTrapezoids (CARD8        op,
-+             PicturePtr    pSrc,
-+             PicturePtr    pDst,
-+             PictFormatPtr maskFormat,
-+             INT16         xSrc,
-+             INT16         ySrc,
-+             int           ntrap,
-+             xTrapezoid    *traps);
-+
-+extern _X_EXPORT void
-  miPointFixedBounds(int npoint, xPointFixed * points, BoxPtr bounds);
- 
- extern _X_EXPORT void
-diff --git a/render/mitrap.c b/render/mitrap.c
-index 17b6dcd..71c1857 100644
---- a/render/mitrap.c
-+++ b/render/mitrap.c
-@@ -34,6 +34,55 @@
- #include "picturestr.h"
- #include "mipict.h"
- 
-+PicturePtr
-+miCreateAlphaPicture (ScreenPtr	    pScreen, 
-+		      PicturePtr    pDst,
-+		      PictFormatPtr pPictFormat,
-+		      CARD16	    width,
-+		      CARD16	    height)
-+{
-+    PixmapPtr	    pPixmap;
-+    PicturePtr	    pPicture;
-+    GCPtr	    pGC;
-+    int		    error;
-+    xRectangle	    rect;
-+
-+    if (width > 32767 || height > 32767)
-+	return 0;
-+
-+    if (!pPictFormat)
-+    {
-+	if (pDst->polyEdge == PolyEdgeSharp)
-+	    pPictFormat = PictureMatchFormat (pScreen, 1, PICT_a1);
-+	else
-+	    pPictFormat = PictureMatchFormat (pScreen, 8, PICT_a8);
-+	if (!pPictFormat)
-+	    return 0;
-+    }
-+
-+    pPixmap = (*pScreen->CreatePixmap) (pScreen, width, height, 
-+					pPictFormat->depth, 0);
-+    if (!pPixmap)
-+	return 0;
-+    pGC = GetScratchGC (pPixmap->drawable.depth, pScreen);
-+    if (!pGC)
-+    {
-+	(*pScreen->DestroyPixmap) (pPixmap);
-+	return 0;
-+    }
-+    ValidateGC (&pPixmap->drawable, pGC);
-+    rect.x = 0;
-+    rect.y = 0;
-+    rect.width = width;
-+    rect.height = height;
-+    (*pGC->ops->PolyFillRect)(&pPixmap->drawable, pGC, 1, &rect);
-+    FreeScratchGC (pGC);
-+    pPicture = CreatePicture (0, &pPixmap->drawable, pPictFormat,
-+			      0, 0, serverClient, &error);
-+    (*pScreen->DestroyPixmap) (pPixmap);
-+    return pPicture;
-+}
-+
- static xFixed
- miLineFixedX(xLineFixed * l, xFixed y, Bool ceil)
- {
-@@ -79,3 +128,65 @@ miTrapezoidBounds(int ntrap, xTrapezoid * traps, BoxPtr box)
-             box->x2 = x2;
-     }
- }
-+
-+
-+void
-+miTrapezoids (CARD8        op,
-+             PicturePtr    pSrc,
-+             PicturePtr    pDst,
-+             PictFormatPtr maskFormat,
-+             INT16         xSrc,
-+             INT16         ySrc,
-+             int           ntrap,
-+             xTrapezoid    *traps)
-+{
-+    ScreenPtr          pScreen = pDst->pDrawable->pScreen;
-+    PictureScreenPtr    ps = GetPictureScreen(pScreen);
-+
-+    /*
-+     * Check for solid alpha add
-+     */
-+    if (op == PictOpAdd && miIsSolidAlpha (pSrc))
-+    {
-+       for (; ntrap; ntrap--, traps++)
-+           (*ps->RasterizeTrapezoid) (pDst, traps, 0, 0);
-+    } 
-+    else if (maskFormat)
-+    {
-+       PicturePtr      pPicture;
-+       BoxRec          bounds;
-+       INT16           xDst, yDst;
-+       INT16           xRel, yRel;
-+       
-+       xDst = traps[0].left.p1.x >> 16;
-+       yDst = traps[0].left.p1.y >> 16;
-+
-+       miTrapezoidBounds (ntrap, traps, &bounds);
-+       if (bounds.y1 >= bounds.y2 || bounds.x1 >= bounds.x2)
-+           return;
-+       pPicture = miCreateAlphaPicture (pScreen, pDst, maskFormat,
-+                                        bounds.x2 - bounds.x1,
-+                                        bounds.y2 - bounds.y1);
-+       if (!pPicture)
-+           return;
-+       for (; ntrap; ntrap--, traps++)
-+           (*ps->RasterizeTrapezoid) (pPicture, traps, 
-+                                      -bounds.x1, -bounds.y1);
-+       xRel = bounds.x1 + xSrc - xDst;
-+       yRel = bounds.y1 + ySrc - yDst;
-+       CompositePicture (op, pSrc, pPicture, pDst,
-+                         xRel, yRel, 0, 0, bounds.x1, bounds.y1,
-+                         bounds.x2 - bounds.x1,
-+                         bounds.y2 - bounds.y1);
-+       FreePicture (pPicture, 0);
-+    }
-+    else
-+    {
-+       if (pDst->polyEdge == PolyEdgeSharp)
-+           maskFormat = PictureMatchFormat (pScreen, 1, PICT_a1);
-+       else
-+           maskFormat = PictureMatchFormat (pScreen, 8, PICT_a8);
-+       for (; ntrap; ntrap--, traps++)
-+           miTrapezoids (op, pSrc, pDst, maskFormat, xSrc, ySrc, 1, traps);
-+    }
-+}
-diff --git a/render/mitri.c b/render/mitri.c
-index 922f22a..bdca9ca 100644
---- a/render/mitri.c
-+++ b/render/mitri.c
-@@ -65,3 +65,64 @@ miTriangleBounds(int ntri, xTriangle * tris, BoxPtr bounds)
- {
-     miPointFixedBounds(ntri * 3, (xPointFixed *) tris, bounds);
- }
-+
-+
-+void
-+miTriangles (CARD8	    op,
-+	     PicturePtr	    pSrc,
-+	     PicturePtr	    pDst,
-+	     PictFormatPtr  maskFormat,
-+	     INT16	    xSrc,
-+	     INT16	    ySrc,
-+	     int	    ntri,
-+	     xTriangle	    *tris)
-+{
-+    ScreenPtr		pScreen = pDst->pDrawable->pScreen;
-+    PictureScreenPtr    ps = GetPictureScreen(pScreen);
-+    
-+    /*
-+     * Check for solid alpha add
-+     */
-+    if (op == PictOpAdd && miIsSolidAlpha (pSrc))
-+    {
-+	(*ps->AddTriangles) (pDst, 0, 0, ntri, tris);
-+    }
-+    else if (maskFormat)
-+    {
-+	BoxRec		bounds;
-+	PicturePtr	pPicture;
-+	INT16		xDst, yDst;
-+	INT16		xRel, yRel;
-+	
-+	xDst = tris[0].p1.x >> 16;
-+	yDst = tris[0].p1.y >> 16;
-+
-+	miTriangleBounds (ntri, tris, &bounds);
-+	if (bounds.x2 <= bounds.x1 || bounds.y2 <= bounds.y1)
-+	    return;
-+	pPicture = miCreateAlphaPicture (pScreen, pDst, maskFormat,
-+					 bounds.x2 - bounds.x1,
-+					 bounds.y2 - bounds.y1);
-+	if (!pPicture)
-+	    return;
-+	(*ps->AddTriangles) (pPicture, -bounds.x1, -bounds.y1, ntri, tris);
-+	
-+	xRel = bounds.x1 + xSrc - xDst;
-+	yRel = bounds.y1 + ySrc - yDst;
-+	CompositePicture (op, pSrc, pPicture, pDst,
-+			  xRel, yRel, 0, 0, bounds.x1, bounds.y1,
-+			  bounds.x2 - bounds.x1, bounds.y2 - bounds.y1);
-+	FreePicture (pPicture, 0);
-+    }
-+    else
-+    {
-+	if (pDst->polyEdge == PolyEdgeSharp)
-+	    maskFormat = PictureMatchFormat (pScreen, 1, PICT_a1);
-+	else
-+	    maskFormat = PictureMatchFormat (pScreen, 8, PICT_a8);
-+	
-+	for (; ntri; ntri--, tris++)
-+	    miTriangles (op, pSrc, pDst, maskFormat, xSrc, ySrc, 1, tris);
-+    }
-+}
-+
--- 
-2.3.2 (Apple Git-55)
-
diff --git a/pkgs/servers/x11/xorg/darwin/0006-fb-Revert-fb-changes-that-broke-XQuartz.patch b/pkgs/servers/x11/xorg/darwin/0006-fb-Revert-fb-changes-that-broke-XQuartz.patch
deleted file mode 100644
index 03d4decdb1c9..000000000000
--- a/pkgs/servers/x11/xorg/darwin/0006-fb-Revert-fb-changes-that-broke-XQuartz.patch
+++ /dev/null
@@ -1,243 +0,0 @@
-From 4c7572abafeac9b2dcd884c444c5a5bae5b302c3 Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
-Date: Sat, 31 May 2014 13:14:20 -0700
-Subject: [PATCH 6/6] fb: Revert fb changes that broke XQuartz
-
-    http://bugs.freedesktop.org/show_bug.cgi?id=26124
-
-Revert "Use new pixman_glyph_cache_t API that will be in pixman 0.28.0"
-Revert "fb: Fix origin of source picture in fbGlyphs"
-Revert "fb: Publish fbGlyphs and fbUnrealizeGlyph"
-
-This reverts commit 9cbcb5bd6a5360a128d15b77a02d8d3351f74366.
-This reverts commit 983e30361f49a67252d0b5d82630e70724d69dbf.
-This reverts commit 3c2c59eed3c68c0e5a93c38cf01eedad015e3157.
----
- fb/fb.h       |   3 --
- fb/fbpict.c   | 149 +---------------------------------------------------------
- fb/fbpict.h   |  11 +----
- fb/fbscreen.c |   1 -
- 4 files changed, 2 insertions(+), 162 deletions(-)
-
-diff --git a/fb/fb.h b/fb/fb.h
-index 59eaac3..046b948 100644
---- a/fb/fb.h
-+++ b/fb/fb.h
-@@ -1116,9 +1116,6 @@ extern _X_EXPORT void
- extern _X_EXPORT Bool
-  fbPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats);
- 
--extern _X_EXPORT void
--fbDestroyGlyphCache(void);
--
- /*
-  * fbpixmap.c
-  */
-diff --git a/fb/fbpict.c b/fb/fbpict.c
-index 6ee63e9..9c4cc42 100644
---- a/fb/fbpict.c
-+++ b/fb/fbpict.c
-@@ -65,152 +65,6 @@ fbComposite(CARD8 op,
-     free_pixman_pict(pDst, dest);
- }
- 
--static pixman_glyph_cache_t *glyphCache;
--
--void
--fbDestroyGlyphCache(void)
--{
--    if (glyphCache)
--    {
--	pixman_glyph_cache_destroy (glyphCache);
--	glyphCache = NULL;
--    }
--}
--
--static void
--fbUnrealizeGlyph(ScreenPtr pScreen,
--		 GlyphPtr pGlyph)
--{
--    if (glyphCache)
--	pixman_glyph_cache_remove (glyphCache, pGlyph, NULL);
--}
--
--void
--fbGlyphs(CARD8 op,
--	 PicturePtr pSrc,
--	 PicturePtr pDst,
--	 PictFormatPtr maskFormat,
--	 INT16 xSrc,
--	 INT16 ySrc, int nlist,
--	 GlyphListPtr list,
--	 GlyphPtr *glyphs)
--{
--#define N_STACK_GLYPHS 512
--    ScreenPtr pScreen = pDst->pDrawable->pScreen;
--    pixman_glyph_t stack_glyphs[N_STACK_GLYPHS];
--    pixman_glyph_t *pglyphs = stack_glyphs;
--    pixman_image_t *srcImage, *dstImage;
--    int srcXoff, srcYoff, dstXoff, dstYoff;
--    GlyphPtr glyph;
--    int n_glyphs;
--    int x, y;
--    int i, n;
--    int xDst = list->xOff, yDst = list->yOff;
--
--    miCompositeSourceValidate(pSrc);
--
--    n_glyphs = 0;
--    for (i = 0; i < nlist; ++i)
--	n_glyphs += list[i].len;
--
--    if (!glyphCache)
--	glyphCache = pixman_glyph_cache_create();
--
--    pixman_glyph_cache_freeze (glyphCache);
--
--    if (n_glyphs > N_STACK_GLYPHS) {
--	if (!(pglyphs = malloc (n_glyphs * sizeof (pixman_glyph_t))))
--	    goto out;
--    }
--
--    i = 0;
--    x = y = 0;
--    while (nlist--) {
--        x += list->xOff;
--        y += list->yOff;
--        n = list->len;
--        while (n--) {
--	    const void *g;
--
--            glyph = *glyphs++;
--
--	    if (!(g = pixman_glyph_cache_lookup (glyphCache, glyph, NULL))) {
--		pixman_image_t *glyphImage;
--		PicturePtr pPicture;
--		int xoff, yoff;
--
--		pPicture = GetGlyphPicture(glyph, pScreen);
--		if (!pPicture) {
--		    n_glyphs--;
--		    goto next;
--		}
--
--		if (!(glyphImage = image_from_pict(pPicture, FALSE, &xoff, &yoff)))
--		    goto out;
--
--		g = pixman_glyph_cache_insert(glyphCache, glyph, NULL,
--					      glyph->info.x,
--					      glyph->info.y,
--					      glyphImage);
--
--		free_pixman_pict(pPicture, glyphImage);
--
--		if (!g)
--		    goto out;
--	    }
--
--	    pglyphs[i].x = x;
--	    pglyphs[i].y = y;
--	    pglyphs[i].glyph = g;
--	    i++;
--
--	next:
--            x += glyph->info.xOff;
--            y += glyph->info.yOff;
--	}
--	list++;
--    }
--
--    if (!(srcImage = image_from_pict(pSrc, FALSE, &srcXoff, &srcYoff)))
--	goto out;
--
--    if (!(dstImage = image_from_pict(pDst, TRUE, &dstXoff, &dstYoff)))
--	goto out_free_src;
--
--    if (maskFormat) {
--	pixman_format_code_t format;
--	pixman_box32_t extents;
--
--	format = maskFormat->format | (maskFormat->depth << 24);
--
--	pixman_glyph_get_extents(glyphCache, n_glyphs, pglyphs, &extents);
--
--	pixman_composite_glyphs(op, srcImage, dstImage, format,
--				xSrc + srcXoff + extents.x1 - xDst, ySrc + srcYoff + extents.y1 - yDst,
--				extents.x1, extents.y1,
--				extents.x1 + dstXoff, extents.y1 + dstYoff,
--				extents.x2 - extents.x1,
--				extents.y2 - extents.y1,
--				glyphCache, n_glyphs, pglyphs);
--    }
--    else {
--	pixman_composite_glyphs_no_mask(op, srcImage, dstImage,
--					xSrc + srcXoff - xDst, ySrc + srcYoff - yDst,
--					dstXoff, dstYoff,
--					glyphCache, n_glyphs, pglyphs);
--    }
--
--    free_pixman_pict(pDst, dstImage);
--
--out_free_src:
--    free_pixman_pict(pSrc, srcImage);
--
--out:
--    pixman_glyph_cache_thaw(glyphCache);
--    if (pglyphs != stack_glyphs)
--	free(pglyphs);
--}
--
- static pixman_image_t *
- create_solid_fill_image(PicturePtr pict)
- {
-@@ -461,8 +315,7 @@ fbPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats)
-         return FALSE;
-     ps = GetPictureScreen(pScreen);
-     ps->Composite = fbComposite;
--    ps->Glyphs = fbGlyphs;
--    ps->UnrealizeGlyph = fbUnrealizeGlyph;
-+    ps->Glyphs = miGlyphs;
-     ps->CompositeRects = miCompositeRects;
-     ps->RasterizeTrapezoid = fbRasterizeTrapezoid;
-     ps->AddTraps = fbAddTraps;
-diff --git a/fb/fbpict.h b/fb/fbpict.h
-index 5cb8663..110f32d 100644
---- a/fb/fbpict.h
-+++ b/fb/fbpict.h
-@@ -65,20 +65,11 @@ fbTrapezoids(CARD8 op,
-              INT16 xSrc, INT16 ySrc, int ntrap, xTrapezoid * traps);
- 
- extern _X_EXPORT void
-+
- fbTriangles(CARD8 op,
-             PicturePtr pSrc,
-             PicturePtr pDst,
-             PictFormatPtr maskFormat,
-             INT16 xSrc, INT16 ySrc, int ntris, xTriangle * tris);
- 
--extern _X_EXPORT void
--fbGlyphs(CARD8 op,
--	 PicturePtr pSrc,
--	 PicturePtr pDst,
--	 PictFormatPtr maskFormat,
--	 INT16 xSrc,
--	 INT16 ySrc, int nlist,
--	 GlyphListPtr list,
--	 GlyphPtr *glyphs);
--
- #endif                          /* _FBPICT_H_ */
-diff --git a/fb/fbscreen.c b/fb/fbscreen.c
-index 71bcc5d..55330fc 100644
---- a/fb/fbscreen.c
-+++ b/fb/fbscreen.c
-@@ -32,7 +32,6 @@ fbCloseScreen(ScreenPtr pScreen)
-     int d;
-     DepthPtr depths = pScreen->allowedDepths;
- 
--    fbDestroyGlyphCache();
-     for (d = 0; d < pScreen->numDepths; d++)
-         free(depths[d].vids);
-     free(depths);
--- 
-2.3.2 (Apple Git-55)
-
diff --git a/pkgs/servers/x11/xorg/darwin/bundle_main.patch b/pkgs/servers/x11/xorg/darwin/bundle_main.patch
deleted file mode 100644
index e60ca5738d14..000000000000
--- a/pkgs/servers/x11/xorg/darwin/bundle_main.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-cstrahan:
-
-This patch makes it possible (and necessary) to specify the default
-shell, xterm client, and startx script from environment variables. These
-defaults are used when launching the XQuartz.app, which in turn needs to know
-how to start the X server. I've patched `command_from_prefs' so that it ignores
-the preferences settings and immediately sets them to whatever the environment
-variables are.
-
-When developing an installable package for XQuartz/XQuartz.app, we'll need to
-set an `LSEnvironment' entry in the plist for the XQuartz.app, we'll also need
-to wrap the XQuartz.app/Contents/MacOS/X11 script (the Xquartz server will
-invoke this script during initialization. See stub.patch for more details.).
-
-diff --git a/hw/xquartz/mach-startup/bundle-main.c b/hw/xquartz/mach-startup/bundle-main.c
-index b403662..b1e2070 100644
---- a/hw/xquartz/mach-startup/bundle-main.c
-+++ b/hw/xquartz/mach-startup/bundle-main.c
-@@ -77,13 +77,7 @@ FatalError(const char *f, ...) _X_ATTRIBUTE_PRINTF(1, 2) _X_NORETURN;
- 
- extern int noPanoramiXExtension;
- 
--#define DEFAULT_CLIENT X11BINDIR "/xterm"
--#define DEFAULT_STARTX X11BINDIR "/startx -- " X11BINDIR "/Xquartz"
--#define DEFAULT_SHELL  "/bin/sh"
--
--#ifndef BUILD_DATE
- #define BUILD_DATE ""
--#endif
- #ifndef XSERVER_VERSION
- #define XSERVER_VERSION "?"
- #endif
-@@ -718,14 +712,14 @@ main(int argc, char **argv, char **envp)
-         pid_t child1, child2;
-         int status;
- 
--        pref_app_to_run = command_from_prefs("app_to_run", DEFAULT_CLIENT);
-+        pref_app_to_run = command_from_prefs("app_to_run", getenv("XQUARTZ_DEFAULT_CLIENT"));
-         assert(pref_app_to_run);
- 
--        pref_login_shell = command_from_prefs("login_shell", DEFAULT_SHELL);
-+        pref_login_shell = command_from_prefs("login_shell", getenv("XQUARTZ_DEFAULT_SHELL"));
-         assert(pref_login_shell);
- 
-         pref_startx_script = command_from_prefs("startx_script",
--                                                DEFAULT_STARTX);
-+                                                getenv("XQUARTZ_DEFAULT_STARTX"));
-         assert(pref_startx_script);
- 
-         /* Do the fork-twice trick to avoid having to reap zombies */
-@@ -804,10 +798,12 @@ execute(const char *command)
- static char *
- command_from_prefs(const char *key, const char *default_value)
- {
-+    if (default_value == NULL)
-+        return NULL;
-+
-     char *command = NULL;
- 
-     CFStringRef cfKey;
--    CFPropertyListRef PlistRef;
- 
-     if (!key)
-         return NULL;
-@@ -817,40 +813,24 @@ command_from_prefs(const char *key, const char *default_value)
-     if (!cfKey)
-         return NULL;
- 
--    PlistRef = CFPreferencesCopyAppValue(cfKey,
--                                         kCFPreferencesCurrentApplication);
-+    CFStringRef cfDefaultValue = CFStringCreateWithCString(
-+        NULL, default_value, kCFStringEncodingASCII);
-+    int len = strlen(default_value) + 1;
- 
--    if ((PlistRef == NULL) ||
--        (CFGetTypeID(PlistRef) != CFStringGetTypeID())) {
--        CFStringRef cfDefaultValue = CFStringCreateWithCString(
--            NULL, default_value, kCFStringEncodingASCII);
--        int len = strlen(default_value) + 1;
-+    if (!cfDefaultValue)
-+        goto command_from_prefs_out;
- 
--        if (!cfDefaultValue)
--            goto command_from_prefs_out;
-+    CFPreferencesSetAppValue(cfKey, cfDefaultValue,
-+                             kCFPreferencesCurrentApplication);
-+    CFPreferencesAppSynchronize(kCFPreferencesCurrentApplication);
-+    CFRelease(cfDefaultValue);
- 
--        CFPreferencesSetAppValue(cfKey, cfDefaultValue,
--                                 kCFPreferencesCurrentApplication);
--        CFPreferencesAppSynchronize(kCFPreferencesCurrentApplication);
--        CFRelease(cfDefaultValue);
--
--        command = (char *)malloc(len * sizeof(char));
--        if (!command)
--            goto command_from_prefs_out;
--        strcpy(command, default_value);
--    }
--    else {
--        int len = CFStringGetLength((CFStringRef)PlistRef) + 1;
--        command = (char *)malloc(len * sizeof(char));
--        if (!command)
--            goto command_from_prefs_out;
--        CFStringGetCString((CFStringRef)PlistRef, command, len,
--                           kCFStringEncodingASCII);
--    }
-+    command = (char *)malloc(len * sizeof(char));
-+    if (!command)
-+        goto command_from_prefs_out;
-+    strcpy(command, default_value);
- 
- command_from_prefs_out:
--    if (PlistRef)
--        CFRelease(PlistRef);
-     if (cfKey)
-         CFRelease(cfKey);
-     return command;
diff --git a/pkgs/servers/x11/xorg/darwin/private-extern.patch b/pkgs/servers/x11/xorg/darwin/private-extern.patch
deleted file mode 100644
index 87af7865c376..000000000000
--- a/pkgs/servers/x11/xorg/darwin/private-extern.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/hw/xquartz/xpr/x-list.new.h b/hw/xquartz/xpr/x-list.h
-index 28385fd..71f9d26 100644
---- a/hw/xquartz/xpr/x-list.new.h
-+++ b/hw/xquartz/xpr/x-list.h
-@@ -45,6 +45,7 @@ struct x_list_struct {
- #endif
- 
- #ifndef X_EXTERN
-+#define __private_extern__ extern
- #define X_EXTERN __private_extern__
- #endif
- 
diff --git a/pkgs/servers/x11/xorg/darwin/stub.patch b/pkgs/servers/x11/xorg/darwin/stub.patch
deleted file mode 100644
index db3215b498aa..000000000000
--- a/pkgs/servers/x11/xorg/darwin/stub.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-cstrahan:
-
-When the X / Xquartz server initiallizes, it starts the XQuartz.app and
-hands-off the display FD. To start the XQuartz.app, Xquartz normally uses some
-system calls to get the path of the application by app bundle id, and then
-executes the Contents/MacOS/X11 script contained inside, which in turn executes
-Contents/MacOS/X11.bin (the actual app).
-
-This patch replaces that discovery technique with a simple call to
-`getenv'. In order to make Xquartz actually work, we'll need another wrapper
-that sets the `XQUARTZ_X11' environment variable to point to the `X11' script.
-
-diff --git a/hw/xquartz/mach-startup/stub.c b/hw/xquartz/mach-startup/stub.c
-index 756e4ef..3313a55 100644
---- a/hw/xquartz/mach-startup/stub.c
-+++ b/hw/xquartz/mach-startup/stub.c
-@@ -61,54 +61,16 @@ aslclient aslc;
- static void
- set_x11_path(void)
- {
--#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
--
--    CFURLRef appURL = NULL;
--    OSStatus osstatus =
--        LSFindApplicationForInfo(kLSUnknownCreator, CFSTR(
--                                     kX11AppBundleId), nil, nil, &appURL);
--
--    switch (osstatus) {
--    case noErr:
--        if (appURL == NULL) {
--            asl_log(
--                aslc, NULL, ASL_LEVEL_ERR,
--                "Xquartz: Invalid response from LSFindApplicationForInfo(%s)",
--                kX11AppBundleId);
--            exit(1);
--        }
--
--        if (!CFURLGetFileSystemRepresentation(appURL, true,
--                                              (unsigned char *)x11_path,
--                                              sizeof(x11_path))) {
--            asl_log(aslc, NULL, ASL_LEVEL_ERR,
--                    "Xquartz: Error resolving URL for %s",
--                    kX11AppBundleId);
--            exit(3);
--        }
--
--        strlcat(x11_path, kX11AppBundlePath, sizeof(x11_path));
--        asl_log(aslc, NULL, ASL_LEVEL_INFO, "Xquartz: X11.app = %s", x11_path);
--        break;
--
--    case kLSApplicationNotFoundErr:
--        asl_log(aslc, NULL, ASL_LEVEL_ERR,
--                "Xquartz: Unable to find application for %s",
--                kX11AppBundleId);
--        exit(10);
--
--    default:
--        asl_log(aslc, NULL, ASL_LEVEL_ERR,
--                "Xquartz: Unable to find application for %s, error code = %d",
--                kX11AppBundleId,
--                (int)osstatus);
--        exit(11);
-+    char *xquartzX11 = getenv("XQUARTZ_X11");
-+    if (xquartzX11) {
-+        strlcpy(x11_path, xquartzX11,
-+                sizeof(x11_path));
-+    } else {
-+        asl_log(
-+            aslc, NULL, ASL_LEVEL_ERR,
-+            "Xquartz: XQUARTZ_X11 environment variable not set");
-+        exit(1);
-     }
--#else
--    /* TODO: Make Tiger smarter... but TBH, this should never get called on Tiger... */
--    strlcpy(x11_path, "/Applications/Utilities/X11.app/Contents/MacOS/X11",
--            sizeof(x11_path));
--#endif
- }
- 
- static int
diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix
index 07faa8d3cc7e..e6f5e7ff5887 100644
--- a/pkgs/servers/x11/xorg/default.nix
+++ b/pkgs/servers/x11/xorg/default.nix
@@ -1839,9 +1839,9 @@ let
       sha256 = "0z56ifw3xiq9dychv8chg1cny0hq4v3c1r9pqcybk5fp7nzw9jpq";
     };
     nativeBuildInputs = [ pkgconfig ];
-    buildInputs = [ fontsproto libGL libdrm udev randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ];
+    buildInputs = [ fontsproto mesa_noglu libGL libdrm udev randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ];
     meta.platforms = stdenv.lib.platforms.unix;
-  }) // {inherit fontsproto libGL libdrm udev randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
+  }) // {inherit fontsproto mesa_noglu libGL libdrm udev randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
 
   xf86videoark = (mkDerivation "xf86videoark" {
     name = "xf86-video-ark-0.7.5";
@@ -2468,11 +2468,11 @@ let
   }) // {inherit inputproto libX11 libXaw xproto libXt ;};
 
   xkeyboardconfig = (mkDerivation "xkeyboardconfig" {
-    name = "xkeyboard-config-2.22";
+    name = "xkeyboard-config-2.23.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/data/xkeyboard-config/xkeyboard-config-2.22.tar.bz2;
-      sha256 = "1garmbyfjp0han04l2l90zzwlfbdgdxl6r1qnic36i5wkycckbny";
+      url = mirror://xorg/individual/data/xkeyboard-config/xkeyboard-config-2.23.1.tar.bz2;
+      sha256 = "1wq27cs1c9y7d1d7zp5yhq29paj9smajdb68lyvm28d2zq2vqjra";
     };
     nativeBuildInputs = [ pkgconfig ];
     buildInputs = [ libX11 xproto ];
@@ -2570,9 +2570,6 @@ let
       url = mirror://xorg/individual/util/xorg-cf-files-1.0.6.tar.bz2;
       sha256 = "0kckng0zs1viz0nr84rdl6dswgip7ndn4pnh5nfwnviwpsfmmksd";
     };
-    postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
-      substituteInPlace $out/lib/X11/config/darwin.cf --replace "/usr/bin/" ""
-    '';
     nativeBuildInputs = [ pkgconfig ];
     buildInputs = [ ];
     meta.platforms = stdenv.lib.platforms.unix;
diff --git a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl
index 9f21d3c2024b..dfde730fbea8 100755
--- a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl
+++ b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl
@@ -35,6 +35,7 @@ $pcMap{"dbus-1"} = "dbus";
 $pcMap{"uuid"} = "libuuid";
 $pcMap{"libudev"} = "udev";
 $pcMap{"gl"} = "libGL";
+$pcMap{"gbm"} = "mesa_noglu";
 $pcMap{"\$PIXMAN"} = "pixman";
 $pcMap{"\$RENDERPROTO"} = "renderproto";
 $pcMap{"\$DRI3PROTO"} = "dri3proto";
diff --git a/pkgs/servers/x11/xorg/old.list b/pkgs/servers/x11/xorg/old.list
index 801f6e0b7971..fd6eae916392 100644
--- a/pkgs/servers/x11/xorg/old.list
+++ b/pkgs/servers/x11/xorg/old.list
@@ -3,7 +3,7 @@ mirror://xorg/individual/app/xclock-1.0.7.tar.bz2
 mirror://xorg/individual/app/xdm-1.1.11.tar.bz2
 mirror://xorg/individual/app/xeyes-1.1.1.tar.bz2
 mirror://xorg/individual/app/xfs-1.1.4.tar.bz2
-mirror://xorg/individual/app/xinit-1.3.4.tar.bz2
+mirror://xorg/individual/app/xinit-1.4.0.tar.bz2
 mirror://xorg/individual/app/xmessage-1.0.4.tar.bz2
 mirror://xorg/individual/lib/libXp-1.0.3.tar.bz2
 mirror://xorg/individual/lib/libXxf86misc-1.0.3.tar.bz2
diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix
index 5efa4bfcfd5d..f45ee7500ed0 100644
--- a/pkgs/servers/x11/xorg/overrides.nix
+++ b/pkgs/servers/x11/xorg/overrides.nix
@@ -5,11 +5,9 @@ let
   inherit (stdenv) lib isDarwin;
   inherit (lib) overrideDerivation;
 
-  setMalloc0ReturnsNullCrossCompiling = ''
-    if test -n "$crossConfig"; then
-      configureFlags="$configureFlags --enable-malloc0returnsnull";
-    fi
-  '';
+  malloc0ReturnsNullCrossFlag = stdenv.lib.optional
+    (stdenv.hostPlatform != stdenv.buildPlatform)
+    "--enable-malloc0returnsnull";
 
   gitRelease = { libName, version, rev, sha256 } : attrs : attrs // {
     name = libName + "-" + version;
@@ -101,7 +99,9 @@ in
 
   libX11 = attrs: attrs // {
     outputs = [ "out" "dev" "man" ];
-    preConfigure = setMalloc0ReturnsNullCrossCompiling + ''
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
+    preConfigure = ''
       sed 's,^as_dummy.*,as_dummy="\$PATH",' -i configure
     '';
     postInstall =
@@ -138,16 +138,19 @@ in
 
   libXxf86vm = attrs: attrs // {
     outputs = [ "out" "dev" ];
-    preConfigure = setMalloc0ReturnsNullCrossCompiling;
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
   };
 
   # Propagate some build inputs because of header file dependencies.
   # Note: most of these are in Requires.private, so maybe builder.sh
   # should propagate them automatically.
   libXt = attrs: attrs // {
-    preConfigure = setMalloc0ReturnsNullCrossCompiling + ''
+    preConfigure = ''
       sed 's,^as_dummy.*,as_dummy="\$PATH",' -i configure
     '';
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
     propagatedBuildInputs = [ xorg.libSM ];
     CPP = stdenv.lib.optionalString stdenv.isDarwin "clang -E -";
     outputs = [ "out" "dev" "devdoc" ];
@@ -188,7 +191,8 @@ in
   libXft = attrs: attrs // {
     outputs = [ "out" "dev" ];
     propagatedBuildInputs = [ xorg.libXrender args.freetype args.fontconfig ];
-    preConfigure = setMalloc0ReturnsNullCrossCompiling;
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
     # the include files need ft2build.h, and Requires.private isn't enough for us
     postInstall = ''
       sed "/^Requires:/s/$/, freetype2/" -i "$dev/lib/pkgconfig/xft.pc"
@@ -198,7 +202,8 @@ in
   libXext = attrs: attrs // {
     outputs = [ "out" "dev" "man" "doc" ];
     propagatedBuildInputs = [ xorg.xproto xorg.libXau ];
-    preConfigure = setMalloc0ReturnsNullCrossCompiling;
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
   };
 
   libXfixes = attrs: attrs // {
@@ -221,7 +226,8 @@ in
 
   libXrandr = attrs: attrs // {
     outputs = [ "out" "dev" ];
-    preConfigure = setMalloc0ReturnsNullCrossCompiling;
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
     propagatedBuildInputs = [xorg.libXrender];
   };
 
@@ -232,8 +238,9 @@ in
 
   libXrender = attrs: attrs // {
     outputs = [ "out" "dev" "doc" ];
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
     propagatedBuildInputs = [ xorg.renderproto ];
-    preConfigure = setMalloc0ReturnsNullCrossCompiling;
   };
 
   libXres = attrs: attrs // {
@@ -456,7 +463,7 @@ in
             };
             nativeBuildInputs = [ pkgconfig ];
             buildInputs = [ dri2proto dri3proto renderproto libdrm openssl libX11 libXau libXaw libxcb xcbutil xcbutilwm xcbutilimage xcbutilkeysyms xcbutilrenderutil libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt ];
-            postPatch = "sed '1i#include <malloc.h>' -i include/os.h";
+            postPatch = stdenv.lib.optionalString stdenv.isLinux "sed '1i#include <malloc.h>' -i include/os.h";
             meta.platforms = stdenv.lib.platforms.unix;
         } else throw "unsupported xorg abiCompat ${args.abiCompat} for ${attrs_passed.name}";
 
@@ -465,7 +472,7 @@ in
       version = (builtins.parseDrvName attrs.name).version;
       commonBuildInputs = attrs.buildInputs ++ [ xtrans ];
       commonPropagatedBuildInputs = [
-        args.zlib args.libGL args.mesa_noglu args.dbus
+        args.zlib args.libGL args.libGLU args.dbus
         xf86bigfontproto glproto xf86driproto
         compositeproto scrnsaverproto resourceproto
         xf86dgaproto
@@ -476,8 +483,6 @@ in
         dri2proto dri3proto kbproto xineramaproto resourceproto scrnsaverproto videoproto
         libXfont2
       ];
-      # fix_segfault: https://bugs.freedesktop.org/show_bug.cgi?id=91316
-      commonPatches = [ ];
       # XQuartz requires two compilations: the first to get X / XQuartz,
       # and the second to get Xvfb, Xnest, etc.
       darwinOtherX = overrideDerivation xorgserver (oldAttrs: {
@@ -494,11 +499,10 @@ in
       if (!isDarwin)
       then {
         outputs = [ "out" "dev" ];
-        buildInputs = [ makeWrapper args.libdrm ] ++ commonBuildInputs;
+        buildInputs = commonBuildInputs ++ [ args.libdrm args.mesa_noglu ];
         propagatedBuildInputs = [ libpciaccess args.epoxy ] ++ commonPropagatedBuildInputs ++ lib.optionals stdenv.isLinux [
           args.udev
         ];
-        patches = commonPatches;
         prePatch = stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
           export CFLAGS+=" -D__uid_t=uid_t -D__gid_t=gid_t"
         '';
@@ -515,6 +519,7 @@ in
         ] ++ lib.optionals stdenv.hostPlatform.isMusl [
           "--disable-tls"
         ];
+
         postInstall = ''
           rm -fr $out/share/X11/xkb/compiled # otherwise X will try to write in it
           ( # assert() keeps runtime reference xorgserver-dev in xf86-video-intel and others
@@ -526,6 +531,7 @@ in
         '';
         passthru.version = version; # needed by virtualbox guest additions
       } else {
+        nativeBuildInputs = attrs.nativeBuildInputs ++ [ args.autoreconfHook xorg.utilmacros xorg.fontutil ];
         buildInputs = commonBuildInputs ++ [
           args.bootstrap_cmds args.automake args.autoconf
           args.apple_sdk.libs.Xplugin
@@ -535,16 +541,31 @@ in
         propagatedBuildInputs = commonPropagatedBuildInputs ++ [
           libAppleWM applewmproto
         ];
-        # Patches can be pulled from the server-*-apple branches of:
-        # http://cgit.freedesktop.org/~jeremyhu/xserver/
-        patches = commonPatches ++ [
-          ./darwin/0002-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch
-          ./darwin/0004-Use-old-miTrapezoids-and-miTriangles-routines.patch
-          ./darwin/0006-fb-Revert-fb-changes-that-broke-XQuartz.patch
-          ./darwin/private-extern.patch
-          ./darwin/bundle_main.patch
-          ./darwin/stub.patch
+
+        # XQuartz patchset
+        patches = [
+          (args.fetchpatch {
+            url = "https://github.com/XQuartz/xorg-server/commit/e88fd6d785d5be477d5598e70d105ffb804771aa.patch";
+            sha256 = "1q0a30m1qj6ai924afz490xhack7rg4q3iig2gxsjjh98snikr1k";
+            name = "use-cppflags-not-cflags.patch";
+          })
+          (args.fetchpatch {
+            url = "https://github.com/XQuartz/xorg-server/commit/75ee9649bcfe937ac08e03e82fd45d9e18110ef4.patch";
+            sha256 = "1vlfylm011y00j8mig9zy6gk9bw2b4ilw2qlsc6la49zi3k0i9fg";
+            name = "use-old-mitrapezoids-and-mitriangles-routines.patch";
+          })
+          (args.fetchpatch {
+            url = "https://github.com/XQuartz/xorg-server/commit/c58f47415be79a6564a9b1b2a62c2bf866141e73.patch";
+            sha256 = "19sisqzw8x2ml4lfrwfvavc2jfyq2bj5xcf83z89jdxg8g1gdd1i";
+            name = "revert-fb-changes-1.patch";
+          })
+          (args.fetchpatch {
+            url = "https://github.com/XQuartz/xorg-server/commit/56e6f1f099d2821e5002b9b05b715e7b251c0c97.patch";
+            sha256 = "0zm9g0g1jvy79sgkvy0rjm6ywrdba2xjd1nsnjbxjccckbr6i396";
+            name = "revert-fb-changes-2.patch";
+          })
         ];
+
         configureFlags = [
           # note: --enable-xquartz is auto
           "CPPFLAGS=-I${./darwin/dri}"
@@ -582,6 +603,10 @@ in
     nativeBuildInputs = attrs.nativeBuildInputs ++ [args.bison args.flex];
   };
 
+  xauth = attrs: attrs // {
+    doCheck = false; # fails
+  };
+
   xcursorthemes = attrs: attrs // {
     buildInputs = attrs.buildInputs ++ [xorg.xcursorgen];
     configureFlags = "--with-cursordir=$(out)/share/icons";
@@ -636,6 +661,12 @@ in
     ];
   };
 
+  xorgcffiles = attrs: attrs // {
+    postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+      substituteInPlace $out/lib/X11/config/darwin.cf --replace "/usr/bin/" ""
+    '';
+  };
+
   xwd = attrs: attrs // {
     buildInputs = with xorg; attrs.buildInputs ++ [libXt libxkbfile];
   };
diff --git a/pkgs/servers/x11/xorg/tarballs-7.7.list b/pkgs/servers/x11/xorg/tarballs-7.7.list
index dd48748dceb3..70f3a35505e0 100644
--- a/pkgs/servers/x11/xorg/tarballs-7.7.list
+++ b/pkgs/servers/x11/xorg/tarballs-7.7.list
@@ -68,7 +68,7 @@ mirror://xorg/individual/lib/libXcursor-1.1.15.tar.bz2
 mirror://xorg/individual/lib/libXdamage-1.1.4.tar.bz2
 mirror://xorg/individual/lib/libXdmcp-1.1.2.tar.bz2
 mirror://xorg/individual/lib/libXext-1.3.3.tar.bz2
-mirror://xorg/individual/lib/libXfixes-5.0.2.tar.bz2
+mirror://xorg/individual/lib/libXfixes-5.0.3.tar.bz2
 mirror://xorg/individual/lib/libXfont-1.5.4.tar.bz2
 mirror://xorg/individual/lib/libXfont2-2.0.3.tar.bz2
 mirror://xorg/individual/lib/libXft-2.3.2.tar.bz2
@@ -101,7 +101,7 @@ mirror://xorg/individual/app/sessreg-1.1.1.tar.bz2
 mirror://xorg/individual/app/setxkbmap-1.3.1.tar.bz2
 mirror://xorg/individual/app/smproxy-1.0.6.tar.bz2
 mirror://xorg/individual/app/twm-1.0.9.tar.bz2
-mirror://xorg/individual/util/util-macros-1.19.1.tar.bz2
+mirror://xorg/individual/util/util-macros-1.19.2.tar.bz2
 mirror://xorg/individual/proto/videoproto-2.3.3.tar.bz2
 mirror://xorg/X11R7.7/src/everything/windowswmproto-1.0.4.tar.bz2
 mirror://xorg/individual/app/x11perf-1.6.0.tar.bz2
@@ -131,7 +131,7 @@ mirror://xorg/individual/driver/xf86-input-void-1.4.1.tar.bz2
 mirror://xorg/individual/driver/xf86-video-amdgpu-1.4.0.tar.bz2
 mirror://xorg/individual/driver/xf86-video-ark-0.7.5.tar.bz2
 mirror://xorg/individual/driver/xf86-video-ast-1.1.5.tar.bz2
-mirror://xorg/individual/driver/xf86-video-ati-7.9.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-ati-18.0.1.tar.bz2
 mirror://xorg/individual/driver/xf86-video-nouveau-1.0.15.tar.bz2
 mirror://xorg/individual/driver/xf86-video-chips-1.2.7.tar.bz2
 mirror://xorg/individual/driver/xf86-video-cirrus-1.5.3.tar.bz2
@@ -164,7 +164,7 @@ mirror://xorg/individual/driver/xf86-video-tdfx-1.4.7.tar.bz2
 mirror://xorg/individual/driver/xf86-video-tga-1.2.2.tar.bz2
 mirror://xorg/individual/driver/xf86-video-trident-1.3.8.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86-video-v4l-0.2.0.tar.bz2
-mirror://xorg/individual/driver/xf86-video-vesa-2.3.4.tar.bz2
+mirror://xorg/individual/driver/xf86-video-vesa-2.4.0.tar.bz2
 mirror://xorg/individual/driver/xf86-video-vmware-13.2.1.tar.bz2
 mirror://xorg/individual/driver/xf86-video-voodoo-1.2.5.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86-video-wsfb-0.4.0.tar.bz2
diff --git a/pkgs/servers/x11/xquartz/default.nix b/pkgs/servers/x11/xquartz/default.nix
index 585144f74ed4..9c133f9d5d99 100644
--- a/pkgs/servers/x11/xquartz/default.nix
+++ b/pkgs/servers/x11/xquartz/default.nix
@@ -95,7 +95,7 @@ let
     ];
   };
 in stdenv.mkDerivation {
-  name = "xquartz";
+  name = "xquartz-${stdenv.lib.getVersion xorg.xorgserver}";
 
   buildInputs = [ ruby makeWrapper ];
 
diff --git a/pkgs/servers/x11/xquartz/system-fonts.nix b/pkgs/servers/x11/xquartz/system-fonts.nix
index cf24bb439b91..db47f8afe015 100644
--- a/pkgs/servers/x11/xquartz/system-fonts.nix
+++ b/pkgs/servers/x11/xquartz/system-fonts.nix
@@ -26,9 +26,7 @@ stdenv.mkDerivation {
       fi;
     done;
     cd $out/share/X11-fonts/
-    rm fonts.dir
-    rm fonts.scale
-    rm fonts.alias
+    rm -f fonts.dir fonts.scale fonts.alias
     mkfontdir
     mkfontscale
     cat $( find ${xorg.fontalias}/ -name fonts.alias) >fonts.alias
diff --git a/pkgs/servers/xmpp/prosody/default.nix b/pkgs/servers/xmpp/prosody/default.nix
index 2d0e1a529dac..6f092dd80cde 100644
--- a/pkgs/servers/xmpp/prosody/default.nix
+++ b/pkgs/servers/xmpp/prosody/default.nix
@@ -25,12 +25,12 @@ let
 in
 
 stdenv.mkDerivation rec {
-  version = "0.10.0";
+  version = "0.10.1";
   name = "prosody-${version}";
 
   src = fetchurl {
     url = "http://prosody.im/downloads/source/${name}.tar.gz";
-    sha256 = "1644jy5dk46vahmh6nna36s79k8k668sbi3qamjb4q3c4m3y853l";
+    sha256 = "1kmmpkkgymg1r8r0k8j83pgmiskg1phl8hmpzjrnvlvsfnrnjplr";
   };
 
   communityModules = fetchhg {