summary refs log tree commit diff
path: root/pkgs/servers
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2016-01-19 09:55:31 +0100
committerVladimír Čunát <vcunat@gmail.com>2016-01-19 09:55:31 +0100
commit716aac2519a7571e7f5fd984a886d579a4a051c5 (patch)
tree53cf89cf764d787f4dc8f08474479892b9733177 /pkgs/servers
parentf8472457a440de3c44f6f604142d678b6ae2a762 (diff)
parent53b389327e34de319dc0dbda2b6bcab1a69db69d (diff)
downloadnixlib-716aac2519a7571e7f5fd984a886d579a4a051c5.tar
nixlib-716aac2519a7571e7f5fd984a886d579a4a051c5.tar.gz
nixlib-716aac2519a7571e7f5fd984a886d579a4a051c5.tar.bz2
nixlib-716aac2519a7571e7f5fd984a886d579a4a051c5.tar.lz
nixlib-716aac2519a7571e7f5fd984a886d579a4a051c5.tar.xz
nixlib-716aac2519a7571e7f5fd984a886d579a4a051c5.tar.zst
nixlib-716aac2519a7571e7f5fd984a886d579a4a051c5.zip
Merge branch 'staging' into closure-size
Diffstat (limited to 'pkgs/servers')
-rw-r--r--pkgs/servers/bird/default.nix4
-rw-r--r--pkgs/servers/http/nginx/modules.nix4
-rw-r--r--pkgs/servers/http/nginx/unstable.nix4
-rw-r--r--pkgs/servers/http/pshs/default.nix11
-rw-r--r--pkgs/servers/http/tomcat/axis2/default.nix11
-rw-r--r--pkgs/servers/mail/dspam/default.nix106
-rw-r--r--pkgs/servers/mail/postfix/2.11.nix5
-rw-r--r--pkgs/servers/mail/postfix/3.0.nix49
-rw-r--r--pkgs/servers/mail/postfix/default.nix7
-rw-r--r--pkgs/servers/mail/postfix/postfix-3.0-no-warnings.patch86
-rw-r--r--pkgs/servers/mail/postfix/postfix-script-shell.patch21
-rw-r--r--pkgs/servers/mail/postsrsd/default.nix31
-rw-r--r--pkgs/servers/mail/rmilter/default.nix22
-rw-r--r--pkgs/servers/mail/rspamd/default.nix38
-rw-r--r--pkgs/servers/matrix-synapse/default.nix45
-rw-r--r--pkgs/servers/matrix-synapse/matrix-synapse.patch20
-rw-r--r--pkgs/servers/monitoring/grafana/default.nix6
-rw-r--r--pkgs/servers/mpd/default.nix4
-rw-r--r--pkgs/servers/nosql/apache-jena/binary.nix4
-rw-r--r--pkgs/servers/nosql/hyperdex/busybee.nix9
-rw-r--r--pkgs/servers/nosql/hyperdex/default.nix11
-rw-r--r--pkgs/servers/nosql/hyperdex/hyperleveldb.nix6
-rw-r--r--pkgs/servers/nosql/hyperdex/libe.nix6
-rw-r--r--pkgs/servers/nosql/hyperdex/libmacaroons.nix10
-rw-r--r--pkgs/servers/nosql/hyperdex/libpo6.nix6
-rw-r--r--pkgs/servers/nosql/hyperdex/replicant.nix10
-rw-r--r--pkgs/servers/nosql/redis/default.nix4
-rw-r--r--pkgs/servers/owncloud/default.nix16
-rw-r--r--pkgs/servers/plex/default.nix10
-rw-r--r--pkgs/servers/radius/default.nix35
-rw-r--r--pkgs/servers/rpcbind/0001-handle_reply-Don-t-use-the-xp_auth-pointer-directly.patch43
-rw-r--r--pkgs/servers/rpcbind/default.nix5
-rw-r--r--pkgs/servers/rt/default.nix23
-rw-r--r--pkgs/servers/rt/override-generated.patch21
-rw-r--r--pkgs/servers/shellinabox/default.nix5
-rw-r--r--pkgs/servers/shishi/default.nix2
-rw-r--r--pkgs/servers/shishi/freebsd-unistd.patch12
-rw-r--r--pkgs/servers/sql/postgresql/default.nix7
-rw-r--r--pkgs/servers/ums/default.nix6
-rw-r--r--pkgs/servers/x11/xorg/default.nix274
-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.nix4
-rw-r--r--pkgs/servers/x11/xorg/replacements.nix21
-rw-r--r--pkgs/servers/x11/xorg/tarballs-7.7.list22
-rw-r--r--pkgs/servers/x11/xorg/unichrome/configure.patch37
-rw-r--r--pkgs/servers/x11/xorg/unichrome/default.nix32
-rw-r--r--pkgs/servers/xmpp/ejabberd/default.nix278
48 files changed, 1135 insertions, 261 deletions
diff --git a/pkgs/servers/bird/default.nix b/pkgs/servers/bird/default.nix
index c13ad64fca3f..b73457293126 100644
--- a/pkgs/servers/bird/default.nix
+++ b/pkgs/servers/bird/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, flex, bison, readline }:
 
 stdenv.mkDerivation rec {
-  name = "bird-1.4.5";
+  name = "bird-1.5.0";
 
   src = fetchurl {
     url = "ftp://bird.network.cz/pub/bird/${name}.tar.gz";
-    sha256 = "1z4z7zmx3054zxi4q6a7095s267mw8ky628gir2n5xy5ch65yj7z";
+    sha256 = "0pbvq6rx4ww46vcdslpiplb5fwq3mqma83434q38kx959qjw9mbr";
   };
 
   buildInputs = [ flex bison readline ];
diff --git a/pkgs/servers/http/nginx/modules.nix b/pkgs/servers/http/nginx/modules.nix
index 00b3c6a9d6a4..d0d587eb0410 100644
--- a/pkgs/servers/http/nginx/modules.nix
+++ b/pkgs/servers/http/nginx/modules.nix
@@ -71,8 +71,8 @@
     src = fetchFromGitHub {
       owner = "openresty";
       repo = "lua-nginx-module";
-      rev = "v0.9.19";
-      sha256 = "13h58rzdfhc5kc4xqwrd2p34rgnwim4hikq923cnfz1p2bvlddrf";
+      rev = "v0.10.0";
+      sha256 = "0isdqrnjhfy4zlydj4csf91i9184ykazyah3i63jfrmmarxr5li1";
     };
     inputs = [ pkgs.luajit ];
     preConfigure = ''
diff --git a/pkgs/servers/http/nginx/unstable.nix b/pkgs/servers/http/nginx/unstable.nix
index 4fc513a11739..b5d672ae46ce 100644
--- a/pkgs/servers/http/nginx/unstable.nix
+++ b/pkgs/servers/http/nginx/unstable.nix
@@ -7,10 +7,10 @@
 with stdenv.lib;
 
 let
-  version = "1.9.7";
+  version = "1.9.9";
   mainSrc = fetchurl {
     url = "http://nginx.org/download/nginx-${version}.tar.gz";
-    sha256 = "1ma82wfg9akghx1cnzfmz4nplf0zjv1rk49x4v3f3z7xmwbx4jvr";
+    sha256 = "0wwd0q00pnkw4gjn3izjr63sndp7piyc5k5mbjm369f824mvnrny";
   };
 
 in
diff --git a/pkgs/servers/http/pshs/default.nix b/pkgs/servers/http/pshs/default.nix
index 141f58417fb6..b9a42b4a5f61 100644
--- a/pkgs/servers/http/pshs/default.nix
+++ b/pkgs/servers/http/pshs/default.nix
@@ -1,19 +1,18 @@
-{ stdenv, fetchurl, pkgconfig, libevent, file, qrencode }:
+{ stdenv, fetchurl, pkgconfig, libevent, file, qrencode, miniupnpc }:
 
 let
-  version = "0.2.6";
+  version = "0.3";
 in stdenv.mkDerivation {
   name = "pshs-${version}";
 
   src = fetchurl {
     url = "https://www.bitbucket.org/mgorny/pshs/downloads/pshs-${version}.tar.bz2";
-    sha256 = "0n8l5sjnwjqjmw0jzg3hb93n6npg2wahmdg1zrpsw8fyh9ggjg4g";
+    sha256 = "0qvy1m9jmbjhbihs1qr9nasbaajl3n0x8bgz1vw9xvpkqymx5i63";
   };
 
-  buildInputs = [ pkgconfig libevent file qrencode ];
+  buildInputs = [ pkgconfig libevent file qrencode miniupnpc ];
 
-  # TODO: enable ssl once dependencies
-  # (libssl libcrypto libevent >= 2.1 libevent_openssl) can be met
+  # SSL requires libevent at 2.1 with ssl support
   configureFlags = "--disable-ssl";
 
   meta = {
diff --git a/pkgs/servers/http/tomcat/axis2/default.nix b/pkgs/servers/http/tomcat/axis2/default.nix
index 9aacc6aa85ad..50e6b2987045 100644
--- a/pkgs/servers/http/tomcat/axis2/default.nix
+++ b/pkgs/servers/http/tomcat/axis2/default.nix
@@ -1,11 +1,12 @@
-{stdenv, fetchurl, apacheAnt, jdk, unzip}:
+{ stdenv, fetchurl, apacheAnt, jdk, unzip }:
 
-stdenv.mkDerivation {
-  name = "axis2-1.6.3";
+stdenv.mkDerivation rec {
+  name = "axis2-${version}";
+  version = "1.6.4";
 
   src = fetchurl {
-    url = http://apache.proserve.nl/axis/axis2/java/core/1.6.3/axis2-1.6.3-bin.zip;
-    sha256 = "0a49m7g1gxb904d0az2kbkab8rg02wm8nzbyipiad9k028masr6r";
+    url = "http://apache.proserve.nl/axis/axis2/java/core/${version}/${name}-bin.zip";
+    sha256 = "12ir706dn95567j6lkxdwrh28vnp6292h59qwjyqjm7ckglkmgyr";
   };
 
   buildInputs = [ unzip apacheAnt jdk ];
diff --git a/pkgs/servers/mail/dspam/default.nix b/pkgs/servers/mail/dspam/default.nix
new file mode 100644
index 000000000000..2b5949959516
--- /dev/null
+++ b/pkgs/servers/mail/dspam/default.nix
@@ -0,0 +1,106 @@
+{ stdenv, lib, fetchurl, makeWrapper
+, gawk, gnused, gnugrep, coreutils
+, perl, NetSMTP
+, withMySQL ? false, zlib, libmysql
+, withPgSQL ? false, postgresql
+, withSQLite ? false, sqlite
+, withDB ? false, db
+}:
+
+let
+  drivers = lib.concatStringsSep ","
+            ([ "hash_drv" ]
+             ++ lib.optional withMySQL "mysql_drv"
+             ++ lib.optional withPgSQL "pgsql_drv"
+             ++ lib.optional withSQLite "sqlite3_drv"
+             ++ lib.optional withDB "libdb4_drv"
+            );
+  maintenancePath = lib.makeSearchPath "bin" [ gawk gnused gnugrep coreutils ];
+
+in stdenv.mkDerivation rec {
+  name = "dspam-3.10.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/dspam/dspam/${name}/${name}.tar.gz";
+    sha256 = "1acklnxn1wvc7abn31l3qdj8q6k13s51k5gv86vka7q20jb5cxmf";
+  };
+
+  buildInputs = [ perl ]
+                ++ lib.optionals withMySQL [ zlib libmysql ]
+                ++ lib.optional withPgSQL postgresql
+                ++ lib.optional withSQLite sqlite
+                ++ lib.optional withDB db;
+  nativeBuildInputs = [ makeWrapper ];
+
+  configureFlags = [
+    "--with-storage-driver=${drivers}"
+    "--sysconfdir=/etc/dspam"
+    "--localstatedir=/var"
+    "--with-dspam-home=/var/lib/dspam"
+    "--with-logdir=/var/log/dspam"
+    "--with-logfile=/var/log/dspam/dspam.log"
+
+    "--enable-daemon"
+    "--enable-clamav"
+    "--enable-syslog"
+    "--enable-large-scale"
+    "--enable-virtual-users"
+    "--enable-split-configuration"
+    "--enable-preferences-extension"
+    "--enable-long-usernames"
+    "--enable-external-lookup"
+  ] ++ lib.optional withMySQL "--with-mysql-includes=${libmysql}/include/mysql";
+
+  # Lots of things are hardwired to paths like sysconfdir. That's why we install with both "prefix" and "DESTDIR"
+  # and fix directory structure manually after that.
+  installFlags = [ "DESTDIR=$(out)" ];
+
+  postInstall = ''
+    cp -r $out/$out/* $out
+    rm -rf $out/$(echo "$out" | cut -d "/" -f2)
+    rm -rf $out/var
+
+    wrapProgram $out/bin/dspam_notify \
+      --set PERL5LIB "${lib.makePerlPath [ NetSMTP ]}"
+
+    # Install SQL scripts
+    mkdir -p $out/share/dspam/sql
+    # MySQL
+    cp src/tools.mysql_drv/mysql_*.sql $out/share/dspam/sql
+    for i in src/tools.mysql_drv/{purge*.sql,virtual*.sql}; do
+      cp "$i" $out/share/dspam/sql/mysql_$(basename "$i")
+    done
+    # PostgreSQL
+    cp src/tools.pgsql_drv/pgsql_*.sql $out/share/dspam/sql
+    for i in src/tools.pgsql_drv/{purge*.sql,virtual*.sql}; do
+      cp "$i" $out/share/dspam/sql/pgsql_$(basename "$i")
+    done
+    # SQLite
+    for i in src/tools.sqlite_drv/purge*.sql; do
+      cp "$i" $out/share/dspam/sql/sqlite_$(basename "$i")
+    done
+
+    # Install maintenance script
+    install -Dm755 contrib/dspam_maintenance/dspam_maintenance.sh $out/bin/dspam_maintenance
+    sed -i \
+      -e '2iexport PATH=${maintenancePath}:$PATH' \
+      -e 's,/usr/[a-z0-9/]*,,g' \
+      -e 's,^DSPAM_CONFIGDIR=.*,DSPAM_CONFIGDIR=/etc/dspam,' \
+      -e "s,^DSPAM_HOMEDIR=.*,DSPAM_HOMEDIR=/var/lib/dspam," \
+      -e "s,^DSPAM_PURGE_SCRIPT_DIR=.*,DSPAM_PURGE_SCRIPT_DIR=$out/share/dspam/sql," \
+      -e "s,^DSPAM_BIN_DIR=.*,DSPAM_BIN_DIR=$out/bin," \
+      -e "s,^MYSQL_BIN_DIR=.*,MYSQL_BIN_DIR=/run/current-system/sw/bin," \
+      -e "s,^PGSQL_BIN_DIR=.*,PGSQL_BIN_DIR=/run/current-system/sw/bin," \
+      -e "s,^SQLITE_BIN_DIR=.*,SQLITE_BIN_DIR=/run/current-system/sw/bin," \
+      -e "s,^SQLITE3_BIN_DIR=.*,SQLITE3_BIN_DIR=/run/current-system/sw/bin," \
+      $out/bin/dspam_maintenance
+  '';
+
+  meta = with lib; {
+    homepage = http://dspam.nuclearelephant.com/;
+    description = "Community Driven Antispam Filter";
+    license = licenses.agpl3;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/pkgs/servers/mail/postfix/2.11.nix b/pkgs/servers/mail/postfix/2.11.nix
index bfd10fb591b2..7c936bf12446 100644
--- a/pkgs/servers/mail/postfix/2.11.nix
+++ b/pkgs/servers/mail/postfix/2.11.nix
@@ -13,7 +13,10 @@ stdenv.mkDerivation rec {
     sha256 = "11riz8ggaa09pi8d6xv2807qp7yjn918mrylfvkfwmvcdlgwck0a";
   };
 
-  patches = [ ./postfix-2.11.0.patch ];
+  patches = [
+    ./postfix-2.11.0.patch
+    ./postfix-script-shell.patch
+  ];
 
   buildInputs = [ makeWrapper gnused db openssl cyrus_sasl ];
 
diff --git a/pkgs/servers/mail/postfix/3.0.nix b/pkgs/servers/mail/postfix/3.0.nix
index 93f419bc7f68..73ab8c8116f3 100644
--- a/pkgs/servers/mail/postfix/3.0.nix
+++ b/pkgs/servers/mail/postfix/3.0.nix
@@ -1,8 +1,25 @@
-{ stdenv, fetchurl, makeWrapper, gnused, db, openssl, cyrus_sasl, coreutils
-, findutils, gnugrep, gawk, icu
+{ stdenv, lib, fetchurl, makeWrapper, gnused, db, openssl, cyrus_sasl
+, coreutils, findutils, gnugrep, gawk, icu, pcre
+, withPgSQL ? false, postgresql
+, withMySQL ? false, libmysql
+, withSQLite ? false, sqlite
 }:
 
-stdenv.mkDerivation rec {
+let
+  ccargs = lib.concatStringsSep " " ([
+    "-DUSE_TLS" "-DUSE_SASL_AUTH" "-DUSE_CYRUS_SASL" "-I${cyrus_sasl}/include/sasl"
+    "-DHAS_DB_BYPASS_MAKEDEFS_CHECK"
+    "-fPIE" "-fstack-protector-all" "--param" "ssp-buffer-size=4" "-O2" "-D_FORTIFY_SOURCE=2"
+   ] ++ lib.optional withPgSQL "-DHAS_PGSQL"
+     ++ lib.optionals withMySQL [ "-DHAS_MYSQL" "-I${libmysql}/include/mysql" ]
+     ++ lib.optional withSQLite "-DHAS_SQLITE");
+   auxlibs = lib.concatStringsSep " " ([
+     "-ldb" "-lnsl" "-lresolv" "-lsasl2" "-lcrypto" "-lssl" "-pie" "-Wl,-z,relro,-z,now"
+   ] ++ lib.optional withPgSQL "-lpq"
+     ++ lib.optional withMySQL "-lmysqlclient"
+     ++ lib.optional withSQLite "-lsqlite3");
+
+in stdenv.mkDerivation rec {
 
   name = "postfix-${version}";
 
@@ -13,33 +30,35 @@ stdenv.mkDerivation rec {
     sha256 = "00mc12k5p1zlrlqcf33vh5zizaqr5ai8q78dwv69smjh6kn4c7j0";
   };
 
-  buildInputs = [ makeWrapper gnused db openssl cyrus_sasl icu ];
+  buildInputs = [ makeWrapper gnused db openssl cyrus_sasl icu pcre ]
+                ++ lib.optional withPgSQL postgresql
+                ++ lib.optional withMySQL libmysql
+                ++ lib.optional withSQLite sqlite;
+
+  patches = [ ./postfix-script-shell.patch ./postfix-3.0-no-warnings.patch ];
 
   preBuild = ''
     sed -e '/^PATH=/d' -i postfix-install
 
     export command_directory=$out/sbin
     export config_directory=/etc/postfix
+    export meta_directory=$out/etc/postfix
     export daemon_directory=$out/libexec/postfix
-    export data_directory=/var/lib/postfix
+    export data_directory=/var/lib/postfix/data
     export html_directory=$out/share/postfix/doc/html
     export mailq_path=$out/bin/mailq
     export manpage_directory=$out/share/man
     export newaliases_path=$out/bin/newaliases
-    export queue_directory=/var/spool/postfix
+    export queue_directory=/var/lib/postfix/queue
     export readme_directory=$out/share/postfix/doc
     export sendmail_path=$out/bin/sendmail
 
-    make makefiles \
-      CCARGS='-DUSE_TLS -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I${cyrus_sasl}/include/sasl \
-              -DHAS_DB_BYPASS_MAKEDEFS_CHECK \
-              -fPIE -fstack-protector-all --param ssp-buffer-size=4 -O2 -D_FORTIFY_SOURCE=2' \
-      AUXLIBS='-ldb -lnsl -lresolv -lsasl2 -lcrypto -lssl -pie -Wl,-z,relro,-z,now'
+    make makefiles CCARGS='${ccargs}' AUXLIBS='${auxlibs}'
   '';
 
   installTargets = [ "non-interactive-package" ];
 
-  installFlags = [ " install_root=installdir " ];
+  installFlags = [ "install_root=installdir" ];
 
   postInstall = ''
     mkdir -p $out
@@ -55,9 +74,9 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://www.postfix.org/";
     description = "A fast, easy to administer, and secure mail server";
-    license = stdenv.lib.licenses.bsdOriginal;
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = [ stdenv.lib.maintainers.rickynils ];
+    license = lib.licenses.bsdOriginal;
+    platforms = lib.platforms.linux;
+    maintainers = [ lib.maintainers.rickynils ];
   };
 
 }
diff --git a/pkgs/servers/mail/postfix/default.nix b/pkgs/servers/mail/postfix/default.nix
index 7bd2d6209108..838ca7a8d8df 100644
--- a/pkgs/servers/mail/postfix/default.nix
+++ b/pkgs/servers/mail/postfix/default.nix
@@ -14,7 +14,12 @@ stdenv.mkDerivation rec {
 
   buildInputs = [db openssl cyrus_sasl bison perl];
 
-  patches = [ ./postfix-2.2.9-db.patch  ./postfix-2.2.9-lib.patch ./db-linux3.patch ];
+  patches = [
+    ./postfix-2.2.9-db.patch
+    ./postfix-2.2.9-lib.patch
+    ./db-linux3.patch
+    ./postfix-script-shell.patch
+  ];
 
   postPatch = ''
     sed -i -e s,/usr/bin,/var/run/current-system/sw/bin, \
diff --git a/pkgs/servers/mail/postfix/postfix-3.0-no-warnings.patch b/pkgs/servers/mail/postfix/postfix-3.0-no-warnings.patch
new file mode 100644
index 000000000000..d93eaf0aaa0d
--- /dev/null
+++ b/pkgs/servers/mail/postfix/postfix-3.0-no-warnings.patch
@@ -0,0 +1,86 @@
+diff -ru3 postfix-3.0.3/conf/postfix-script postfix-3.0.3-new/conf/postfix-script
+--- postfix-3.0.3/conf/postfix-script	2014-06-27 18:05:15.000000000 +0400
++++ postfix-3.0.3-new/conf/postfix-script	2016-01-09 17:51:38.545733631 +0300
+@@ -84,24 +84,6 @@
+ 	exit 1
+ }
+ 
+-# If this is a secondary instance, don't touch shared files.
+-
+-instances=`test ! -f $def_config_directory/main.cf ||
+-    $command_directory/postconf -c $def_config_directory \
+-    -h multi_instance_directories | sed 's/,/ /'` || {
+-	$FATAL cannot execute $command_directory/postconf!
+-	exit 1
+-}
+-
+-check_shared_files=1
+-for name in $instances
+-do
+-    case "$name" in
+-    "$def_config_directory") ;;
+-    "$config_directory") check_shared_files=; break;;
+-    esac
+-done
+-
+ #
+ # Parse JCL
+ #
+@@ -262,22 +244,6 @@
+ 	    -prune \( -perm -020 -o -perm -002 \) \
+ 	    -exec $WARN group or other writable: {} \;
+ 
+-	# Check Postfix root-owned directory tree owner/permissions.
+-
+-	todo="$config_directory/."
+-	test -n "$check_shared_files" && {
+-		todo="$daemon_directory/. $meta_directory/. $todo"
+-		test "$shlib_directory" = "no" || 
+-		    todo="$shlib_directory/. $todo"
+-	}
+-	todo=`echo "$todo" | tr ' ' '\12' | sort -u`
+-
+-	find $todo ! -user root \
+-	    -exec $WARN not owned by root: {} \;
+-
+-	find $todo \( -perm -020 -o -perm -002 \) \
+-	    -exec $WARN group or other writable: {} \;
+-
+ 	# Check Postfix mail_owner-owned directory tree owner/permissions.
+ 
+ 	find $data_directory/. ! -user $mail_owner \
+@@ -302,18 +268,11 @@
+ 	# Check Postfix setgid_group-owned directory and file group/permissions.
+ 
+ 	todo="$queue_directory/public $queue_directory/maildrop"
+-	test -n "$check_shared_files" && 
+-	   todo="$command_directory/postqueue $command_directory/postdrop $todo"
+ 
+ 	find $todo \
+ 	    -prune ! -group $setgid_group \
+ 	    -exec $WARN not owned by group $setgid_group: {} \;
+ 
+-	test -n "$check_shared_files" &&
+-	find $command_directory/postqueue $command_directory/postdrop \
+-	    -prune ! -perm -02111 \
+-	    -exec $WARN not set-gid or not owner+group+world executable: {} \;
+-
+ 	# Check non-Postfix root-owned directory tree owner/content.
+ 
+ 	for dir in bin etc lib sbin usr
+@@ -334,15 +293,6 @@
+ 
+ 	find corrupt -type f -exec $WARN damaged message: {} \;
+ 
+-	# Check for non-Postfix MTA remnants.
+-
+-	test -n "$check_shared_files" -a -f /usr/sbin/sendmail -a \
+-		-f /usr/lib/sendmail && {
+-	    cmp -s /usr/sbin/sendmail /usr/lib/sendmail || {
+-		$WARN /usr/lib/sendmail and /usr/sbin/sendmail differ
+-		$WARN Replace one by a symbolic link to the other
+-	    }
+-	}
+ 	exit 0
+ 	;;
+ 
diff --git a/pkgs/servers/mail/postfix/postfix-script-shell.patch b/pkgs/servers/mail/postfix/postfix-script-shell.patch
new file mode 100644
index 000000000000..4f5d2f611110
--- /dev/null
+++ b/pkgs/servers/mail/postfix/postfix-script-shell.patch
@@ -0,0 +1,21 @@
+diff --git a/conf/postfix-script b/conf/postfix-script
+index 19088a6..04fae23 100755
+--- a/conf/postfix-script
++++ b/conf/postfix-script
+@@ -43,7 +43,6 @@ FATAL="$LOGGER -p fatal"
+ PANIC="$LOGGER -p panic"
+ 
+ umask 022
+-SHELL=/bin/sh
+ 
+ #
+ # Can't do much without these in place.
+@@ -229,7 +228,7 @@ status)
+ check-fatal)
+ 	# This command is NOT part of the public interface.
+ 
+-	$SHELL $daemon_directory/post-install create-missing || {
++	$daemon_directory/post-install create-missing || {
+ 		$FATAL unable to create missing queue directories
+ 		exit 1
+ 	}
diff --git a/pkgs/servers/mail/postsrsd/default.nix b/pkgs/servers/mail/postsrsd/default.nix
new file mode 100644
index 000000000000..18c21ffc8154
--- /dev/null
+++ b/pkgs/servers/mail/postsrsd/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, cmake, help2man }:
+
+let
+  version = "1.3";
+
+in stdenv.mkDerivation {
+  name = "postsrsd-${version}";
+
+  src = fetchFromGitHub {
+    owner = "roehling";
+    repo = "postsrsd";
+    rev = version;
+    sha256 = "1z89qh2bnypgb4i2vs0zdzzpqlf445jixwa1acd955hryww50npv";
+  };
+
+  cmakeFlags = [ "-DGENERATE_SRS_SECRET=OFF" "-DINIT_FLAVOR=systemd" ];
+
+  preConfigure = ''
+    sed -i "s,\"/etc\",\"$out/etc\",g" CMakeLists.txt
+  '';
+
+  nativeBuildInputs = [ cmake help2man ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/roehling/postsrsd";
+    description = "Postfix Sender Rewriting Scheme daemon";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/pkgs/servers/mail/rmilter/default.nix b/pkgs/servers/mail/rmilter/default.nix
new file mode 100644
index 000000000000..45c625466280
--- /dev/null
+++ b/pkgs/servers/mail/rmilter/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchFromGitHub, cmake, bison, flex, openssl, pcre, libmilter, opendkim }:
+
+stdenv.mkDerivation rec {
+  name = "rmilter-${version}";
+  version = "1.6.7";
+  src = fetchFromGitHub {
+    owner = "vstakhov";
+    repo = "rmilter";
+    rev = version;
+    sha256 = "1syviydlv4m1isl0r52sk4s0a75fyk788j1z3yvfzzf1hga333gn";
+  };
+
+  nativeBuildInputs = [ bison cmake flex ];
+  buildInputs = [ libmilter openssl pcre opendkim];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/vstakhov/rmilter";
+    license = licenses.bsd2; 
+    description = "server, used to integrate rspamd and milter compatible MTA, for example postfix or sendmail";
+    maintainer = maintainers.avnik;
+  };
+}
diff --git a/pkgs/servers/mail/rspamd/default.nix b/pkgs/servers/mail/rspamd/default.nix
new file mode 100644
index 000000000000..a3b20820a6e0
--- /dev/null
+++ b/pkgs/servers/mail/rspamd/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, cmake, perl
+ ,file , glib, gmime, libevent, luajit, openssl, pcre, pkgconfig, sqlite }:
+
+let libmagic = file;  # libmagic provided buy file package ATM
+in
+
+stdenv.mkDerivation rec {
+  name = "rspamd-${version}";
+  version = "git-2016-01-16";
+  src = fetchFromGitHub {
+    owner = "vstakhov";
+    repo = "rspamd";
+    rev = "04bfc92c1357c0f908ce9371ab303f8bf57657df";
+    sha256 = "1zip1msjjy5q7jcsn4l0yyg92c3wdsf1v5jv1acglrih8dbfl7zj";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig perl ];
+  buildInputs = [ glib gmime libevent libmagic luajit openssl pcre sqlite];
+
+  postPatch = ''
+    substituteInPlace conf/common.conf --replace "\$CONFDIR/rspamd.conf.local" "/etc/rspamd/rspamd.conf.local"
+    substituteInPlace conf/common.conf --replace "\$CONFDIR/rspamd.conf.local.override" "/etc/rspamd/rspamd.conf.local.override"
+  '';
+
+  cmakeFlags = ''
+    -DDEBIAN_BUILD=ON
+    -DRUNDIR=/var/run/rspamd
+    -DDBDIR=/var/lib/rspamd
+    -DLOGDIR=/var/log/rspamd
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/vstakhov/rspamd";
+    license = licenses.bsd2; 
+    description = "advanced spam filtering system";
+    maintainer = maintainers.avnik;
+  };
+}
diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix
new file mode 100644
index 000000000000..66d9e7258f4c
--- /dev/null
+++ b/pkgs/servers/matrix-synapse/default.nix
@@ -0,0 +1,45 @@
+{ pkgs, stdenv, buildPythonPackage, pythonPackages, fetchurl, fetchFromGitHub }:
+let
+  matrix-angular-sdk = buildPythonPackage rec {
+    name = "matrix-angular-sdk-${version}";
+    version = "0.6.6";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/m/matrix-angular-sdk/matrix-angular-sdk-${version}.tar.gz";
+      sha256 = "1vknhmibb8gh8lng50va2cdvng5xm7vqv9dl680m3gj38pg0bv8a";
+    };
+  };
+in
+buildPythonPackage rec {
+  name = "matrix-synapse-${version}";
+  version = "0.12.0";
+
+  src = fetchFromGitHub {
+    owner = "matrix-org";
+    repo = "synapse";
+    rev = "f35f8d06ea58e2d0cdccd82924c7a44fd93f4c38";
+    sha256 = "0b0k1am9lh0qglagc06m91qs26ybv37k7wpbg5333x8jaf5d1si4";
+  };
+
+  patches = [ ./matrix-synapse.patch ];
+
+  propagatedBuildInputs = with pythonPackages; [
+    blist canonicaljson daemonize dateutil frozendict pillow pybcrypt pyasn1
+    pydenticon pymacaroons-pynacl pynacl pyopenssl pysaml2 pytz requests2
+    service-identity signedjson systemd twisted15 ujson unpaddedbase64 pyyaml
+    matrix-angular-sdk
+  ];
+
+  # Checks fail because of Tox.
+  doCheck = false;
+
+  buildInputs = with pythonPackages; [
+    mock setuptoolsTrial
+  ];
+
+  meta = {
+    homepage = https://matrix.org;
+    description = "Matrix reference homeserver";
+    license = stdenv.lib.licenses.asl20;
+  };
+}
diff --git a/pkgs/servers/matrix-synapse/matrix-synapse.patch b/pkgs/servers/matrix-synapse/matrix-synapse.patch
new file mode 100644
index 000000000000..a6a393ea56c3
--- /dev/null
+++ b/pkgs/servers/matrix-synapse/matrix-synapse.patch
@@ -0,0 +1,20 @@
+diff --git a/homeserver b/homeserver
+new file mode 120000
+index 0000000..2f1d413
+--- /dev/null
++++ b/homeserver
+@@ -0,0 +1 @@
++synapse/app/homeserver.py
+\ No newline at end of file
+diff --git a/setup.py b/setup.py
+index 9d24761..f3e6a00 100755
+--- a/setup.py
++++ b/setup.py
+@@ -85,6 +85,6 @@ setup(
+     include_package_data=True,
+     zip_safe=False,
+     long_description=long_description,
+-    scripts=["synctl"] + glob.glob("scripts/*"),
++    scripts=["synctl", "homeserver"] + glob.glob("scripts/*"),
+     cmdclass={'test': Tox},
+ )
diff --git a/pkgs/servers/monitoring/grafana/default.nix b/pkgs/servers/monitoring/grafana/default.nix
index 1ec789b5578a..e9ba8aa7aa83 100644
--- a/pkgs/servers/monitoring/grafana/default.nix
+++ b/pkgs/servers/monitoring/grafana/default.nix
@@ -1,7 +1,7 @@
 { lib, goPackages, fetchurl, fetchFromGitHub }:
 
 goPackages.buildGoPackage rec {
-  version = "2.5.0";
+  version = "2.6.0";
   name = "grafana-v${version}";
   goPackagePath = "github.com/grafana/grafana";
   subPackages = [ "./" ];
@@ -10,12 +10,12 @@ goPackages.buildGoPackage rec {
     rev = "v${version}";
     owner = "grafana";
     repo = "grafana";
-    sha256 = "11m6jvls3gm9z8g27vxmfx84f22vyjff8bllz5lvpdizydry6zar";
+    sha256 = "160jarvmfvrzpk8agbl44761qz4rw273d59jg6kzd0ghls03wipr";
   };
 
   srcStatic = fetchurl {
     url = "https://grafanarel.s3.amazonaws.com/builds/grafana-${version}.linux-x64.tar.gz";
-    sha256 = "1zih0nzlx1sszgc4b5gll4jvsq43ikx782vv991fgy79bb2a5snk";
+    sha256 = "1i4aw5jvamgqfaanxlh3l83sn8xx10wpihciihvf7s3846s623ab";
   };
 
   preBuild = "export GOPATH=$GOPATH:$NIX_BUILD_TOP/go/src/${goPackagePath}/Godeps/_workspace";
diff --git a/pkgs/servers/mpd/default.nix b/pkgs/servers/mpd/default.nix
index b672083340eb..cce893d17eed 100644
--- a/pkgs/servers/mpd/default.nix
+++ b/pkgs/servers/mpd/default.nix
@@ -29,13 +29,13 @@ let
   opt = stdenv.lib.optional;
   mkFlag = c: f: if c then "--enable-${f}" else "--disable-${f}";
   major = "0.19";
-  minor = "11";
+  minor = "12";
 
 in stdenv.mkDerivation rec {
   name = "mpd-${major}.${minor}";
   src = fetchurl {
     url    = "http://www.musicpd.org/download/mpd/${major}/${name}.tar.xz";
-    sha256 = "1iin50s8cnlsgjgjwkm1cbyxlwa0b79f6jfwydx5nyprbam6cp3s";
+    sha256 = "0xg8w5vn6xd0yfw55qj6wnav7v14nmr00s3d4w5gixbjrv3ycvvv";
   };
 
   buildInputs = [ pkgconfig glib boost ]
diff --git a/pkgs/servers/nosql/apache-jena/binary.nix b/pkgs/servers/nosql/apache-jena/binary.nix
index 9b4e19b32708..22c9fc06972c 100644
--- a/pkgs/servers/nosql/apache-jena/binary.nix
+++ b/pkgs/servers/nosql/apache-jena/binary.nix
@@ -3,10 +3,10 @@ let
   s = # Generated upstream information
   rec {
     baseName="apache-jena";
-    version = "3.0.0";
+    version = "3.0.1";
     name="${baseName}-${version}";
     url="http://archive.apache.org/dist/jena/binaries/apache-jena-${version}.tar.gz";
-    sha256 = "1pqg27m295v7v456pidb0fq5120blkc466pdzksqxqcjrwivq4kb";
+    sha256 = "0qim7jnq9gzwpfw6a41s3ngz2sjmxzlaiqjf0lrzycxy9mig2xc1";
   };
   buildInputs = [
     makeWrapper
diff --git a/pkgs/servers/nosql/hyperdex/busybee.nix b/pkgs/servers/nosql/hyperdex/busybee.nix
index 653c74bdabe4..e71fb608260d 100644
--- a/pkgs/servers/nosql/hyperdex/busybee.nix
+++ b/pkgs/servers/nosql/hyperdex/busybee.nix
@@ -1,5 +1,4 @@
-{ stdenv, fetchurl, unzip, autoconf, automake, libtool,
-  libpo6, libe, pkgconfig }:
+{ stdenv, fetchurl, unzip, autoreconfHook, libpo6, libe, pkgconfig }:
 
 stdenv.mkDerivation rec {
   name = "busybee-${version}";
@@ -9,16 +8,14 @@ stdenv.mkDerivation rec {
     url = "https://github.com/rescrv/busybee/archive/releases/${version}.zip";
     sha256 = "0b51h1kmkf0s3d9y7wjqgp1pk1rk9i7n8bcgyj01kflzdgafbl0b";
   };
+
   buildInputs = [
-    autoconf
-    automake
+    autoreconfHook
     libe
     libpo6
-    libtool
     pkgconfig
     unzip
   ];
-  preConfigure = "autoreconf -i";
 
   meta = with stdenv.lib; {
     description = "A high-performance messaging layer";
diff --git a/pkgs/servers/nosql/hyperdex/default.nix b/pkgs/servers/nosql/hyperdex/default.nix
index 3986e49c4bcf..c375fb29626a 100644
--- a/pkgs/servers/nosql/hyperdex/default.nix
+++ b/pkgs/servers/nosql/hyperdex/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, makeWrapper, unzip, autoconf, automake, libtool,
-  python, libsodium, pkgconfig, popt, glog, xz, json_c, gperf, yacc,
-  flex, pandoc, help2man, autoconf-archive, callPackage }:
+{ stdenv, fetchurl, makeWrapper, unzip, autoreconfHook, autoconf-archive
+, python, libsodium, pkgconfig, popt, glog, xz, json_c, gperf, yacc
+, flex, pandoc, help2man, callPackage }:
 
 assert stdenv.isLinux;
 
@@ -25,9 +25,8 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    autoconf
+    autoreconfHook
     autoconf-archive
-    automake
     busybee
     glog
     hyperleveldb
@@ -35,7 +34,6 @@ stdenv.mkDerivation rec {
     libe
     libmacaroons
     libpo6
-    libtool
     pkgconfig
     popt
     python
@@ -47,7 +45,6 @@ stdenv.mkDerivation rec {
     help2man
     pandoc
   ];
-  preConfigure = "autoreconf -fi";
 
   meta = with stdenv.lib; {
     description = "A scalable, searchable key-value store";
diff --git a/pkgs/servers/nosql/hyperdex/hyperleveldb.nix b/pkgs/servers/nosql/hyperdex/hyperleveldb.nix
index f57bbe4f4d24..1e3c3afe234e 100644
--- a/pkgs/servers/nosql/hyperdex/hyperleveldb.nix
+++ b/pkgs/servers/nosql/hyperdex/hyperleveldb.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, unzip, autoconf, automake, libtool }:
+{ stdenv, fetchurl, unzip, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   name = "hyperleveldb-${version}";
@@ -8,8 +8,8 @@ stdenv.mkDerivation rec {
     url = "https://github.com/rescrv/HyperLevelDB/archive/releases/${version}.zip";
     sha256 = "0m5fwl9sc7c6m2zm3zjlxxg7f602gnaryikxgflahhdccdvvr56y";
   };
-  buildInputs = [ unzip autoconf automake libtool ];
-  preConfigure = "autoreconf -i";
+
+  buildInputs = [ unzip autoreconfHook ];
 
   meta = with stdenv.lib; {
     description = ''A fork of LevelDB intended to meet the needs of
diff --git a/pkgs/servers/nosql/hyperdex/libe.nix b/pkgs/servers/nosql/hyperdex/libe.nix
index f7e0d834bb44..dfce4c34a114 100644
--- a/pkgs/servers/nosql/hyperdex/libe.nix
+++ b/pkgs/servers/nosql/hyperdex/libe.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, unzip, autoconf, automake, libtool, libpo6, pkgconfig }:
+{ stdenv, fetchurl, unzip, autoreconfHook, libpo6, pkgconfig }:
 
 stdenv.mkDerivation rec {
   name = "libe-${version}";
@@ -8,8 +8,8 @@ stdenv.mkDerivation rec {
     url = "https://github.com/rescrv/e/archive/releases/${version}.zip";
     sha256 = "18xm0hcnqdf0ipfn19jrgzqsxij5xjbbnihhzc57n4v7yfdca1w3";
   };
-  buildInputs = [ unzip autoconf automake libtool libpo6 pkgconfig ];
-  preConfigure = "autoreconf -i";
+
+  buildInputs = [ unzip autoreconfHook libpo6 pkgconfig ];
 
   meta = with stdenv.lib; {
     description = "Library containing high-performance datastructures and utilities for C++";
diff --git a/pkgs/servers/nosql/hyperdex/libmacaroons.nix b/pkgs/servers/nosql/hyperdex/libmacaroons.nix
index 719b18db8681..016ee704e58c 100644
--- a/pkgs/servers/nosql/hyperdex/libmacaroons.nix
+++ b/pkgs/servers/nosql/hyperdex/libmacaroons.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, unzip, autoconf, automake, libtool, 
-  pkgconfig, libsodium, python }:
+{ stdenv, fetchurl, unzip, autoreconfHook, pkgconfig, libsodium, python }:
+
 stdenv.mkDerivation rec {
   name = "libmacaroons-${version}";
   version = "0.3.0";
@@ -8,9 +8,9 @@ stdenv.mkDerivation rec {
     url = "https://github.com/rescrv/libmacaroons/archive/releases/${version}.zip";
     sha256 = "18c44424jri0p5la6jgrnlz5p937hk7ws2mldhzjwisqyf5qld43";
   };
-  buildInputs = [ unzip autoconf automake libtool python libsodium pkgconfig ];
-  preConfigure = "autoreconf -i";
-  
+
+  buildInputs = [ unzip autoreconfHook python libsodium pkgconfig ];
+
   meta = with stdenv.lib; {
     description = ''Macaroons are flexible authorization credentials that
         support decentralized delegation, attenuation, and verification.'';
diff --git a/pkgs/servers/nosql/hyperdex/libpo6.nix b/pkgs/servers/nosql/hyperdex/libpo6.nix
index fa68020b539c..70e46f453471 100644
--- a/pkgs/servers/nosql/hyperdex/libpo6.nix
+++ b/pkgs/servers/nosql/hyperdex/libpo6.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, unzip, autoconf, automake, libtool }:
+{ stdenv, fetchurl, unzip, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   name = "libpo6-${version}";
@@ -8,8 +8,8 @@ stdenv.mkDerivation rec {
     url = "https://github.com/rescrv/po6/archive/releases/${version}.zip";
     sha256 = "17grzkh6aw1f68qvkhivbb6vwbm6jd41ysbfn88pypf5lczxrxly";
   };
-  buildInputs = [ unzip autoconf automake libtool ];
-  preConfigure = "autoreconf -i";
+
+  buildInputs = [ unzip autoreconfHook ];
 
   meta = with stdenv.lib; {
     description = "POSIX wrappers for C++";
diff --git a/pkgs/servers/nosql/hyperdex/replicant.nix b/pkgs/servers/nosql/hyperdex/replicant.nix
index f2df744e35f1..43c86e6c0c9a 100644
--- a/pkgs/servers/nosql/hyperdex/replicant.nix
+++ b/pkgs/servers/nosql/hyperdex/replicant.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, unzip, autoconf, automake, libtool, glog,
+{ stdenv, fetchurl, unzip, autoreconfHook, glog,
   hyperleveldb, libe, pkgconfig, popt, libpo6, busybee }:
 
 stdenv.mkDerivation rec {
@@ -9,21 +9,19 @@ stdenv.mkDerivation rec {
     url = "https://github.com/rescrv/Replicant/archive/releases/${version}.zip";
     sha256 = "1q3pdq2ndpj70yd1578bn4grlrp77gl8hv2fz34jpx34qmlalda4";
   };
+
   buildInputs = [
-    autoconf
-    automake
+    autoreconfHook
     busybee
     glog
     hyperleveldb
     libe
     libpo6
-    libtool
     pkgconfig
     popt
     unzip
   ];
-  preConfigure = "autoreconf -i";
-  
+
   meta = with stdenv.lib; {
     description = "A system for maintaining replicated state machines";
     homepage = https://github.com/rescrv/Replicant;
diff --git a/pkgs/servers/nosql/redis/default.nix b/pkgs/servers/nosql/redis/default.nix
index 6da7ec11e7c6..dacbaff1835e 100644
--- a/pkgs/servers/nosql/redis/default.nix
+++ b/pkgs/servers/nosql/redis/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  version = "3.0.2";
+  version = "3.0.6";
   name = "redis-${version}";
 
   src = fetchurl {
     url = "http://download.redis.io/releases/${name}.tar.gz";
-    sha256 = "93e422c0d584623601f89b956045be158889ebe594478a2c24e1bf218495633f";
+    sha256 = "092nnxjyaf7h9mnwac5rwjl0ikyyqa44vn426w64hn2534iia7kg";
   };
 
   makeFlags = "PREFIX=$(out)";
diff --git a/pkgs/servers/owncloud/default.nix b/pkgs/servers/owncloud/default.nix
index 0351df9718b4..092e9c3ff3e5 100644
--- a/pkgs/servers/owncloud/default.nix
+++ b/pkgs/servers/owncloud/default.nix
@@ -37,23 +37,23 @@ in {
   };
 
   owncloud70 = common {
-    versiona = "7.0.11";
-    sha256 = "21dd75de4ed832f16f577eb6763d04c663ef13251153ba2e8847e3f5799d2ad2";
+    versiona = "7.0.12";
+    sha256 = "d1a0f73f5094ec1149b50e2409b5fea0a9bebb16d663789d4b8f98fed341aa91";
   };
 
   owncloud80 = common {
-    versiona = "8.0.9";
-    sha256 = "0c1f915f4123dbe07d564cf0172930568690ab5257d2fca4fec4ec515858bef1";
+    versiona = "8.0.10";
+    sha256 = "3054b997f258178b57efc526e14384829ac8ab94757191f2d03c13fcb0a3cd93";
   };
 
   owncloud81 = common {
-    versiona = "8.1.4";
-    sha256 = "e0f4bf0c85821fc1b6e7f6268080ad3ca3e98c41baa68a9d616809d74a77312d";
+    versiona = "8.1.5";
+    sha256 = "6d8687e40af32c5ca5adfea3fee556ed987b77ad15a1ead5d40cc87a8b76f4b4";
   };
 
   owncloud82 = common {
-    versiona = "8.2.1";
-    sha256 = "5390b2172562a5bf97a46e9a621d1dd92f9b74efaccbb77978c39eb90d6988d4";
+    versiona = "8.2.2";
+    sha256 = "d5b935f904744b8b40b310f19679702387c852498d0dc7aaeda4555a3db9ad5b";
   };
 
 }
diff --git a/pkgs/servers/plex/default.nix b/pkgs/servers/plex/default.nix
index 580d5c81ef97..2aeb9379e10f 100644
--- a/pkgs/servers/plex/default.nix
+++ b/pkgs/servers/plex/default.nix
@@ -4,12 +4,12 @@
 
 stdenv.mkDerivation rec {
   name = "plex-${version}";
-  version = "0.9.12.19.1537";
-  vsnHash = "f38ac80";
+  version = "0.9.14.6.1620";
+  vsnHash = "e0b7243";
 
   src = fetchurl {
-    url = "https://downloads.plex.tv/plex-media-server/${version}-${vsnHash}/plexmediaserver-${version}-${vsnHash}.x86_64.rpm";
-    sha256 = "0346l734f3sqjjrrjgsllmsm6nklmj60md4sw8681896m3yrk5kd";
+    url    = "https://downloads.plex.tv/plex-media-server/${version}-${vsnHash}/plexmediaserver-${version}-${vsnHash}.x86_64.rpm";
+    sha256 = "0br82yxnvjapvsrb0mbfd12mx7qqi9zh623jnivsjk2gxbfd3ki1";
   };
 
   buildInputs = [ rpmextract glibc ];
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
     homepage = http://plex.tv/;
     license = licenses.unfree;
     platforms = platforms.linux;
-    maintainers = with stdenv.lib.maintainers; [ forkk ];
+    maintainers = with stdenv.lib.maintainers; [ forkk thoughtpolice ];
     description = "Media / DLNA server";
     longDescription = ''
       Plex is a media server which allows you to store your media and play it
diff --git a/pkgs/servers/radius/default.nix b/pkgs/servers/radius/default.nix
deleted file mode 100644
index a8c991e12d3e..000000000000
--- a/pkgs/servers/radius/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ fetchurl, stdenv, m4, groff, readline }:
-
-stdenv.mkDerivation rec {
-  name = "radius-1.6.1";
-
-  src = fetchurl {
-    url = "mirror://gnu/radius/${name}.tar.gz";
-    sha256 = "1l4k17zkbjsmk8mqrjjymagq8a8kwgrain9mcb5zp8jaf1qbclrh";
-  };
-
-  buildInputs = [ m4 groff readline ] ;
-
-  doCheck = true;
-
-  meta = {
-    description = "GNU Radius remote authentication and accounting system";
-
-    longDescription =
-      '' Radius is a server for remote user authentication and
-         accounting.  Its primary use is for Internet Service
-         Providers, though it may as well be used on any network that
-         needs a centralized authentication and/or accounting service
-         for its workstations.  The package includes an authentication
-         and accounting server and administrator tools.
-      '';
-
-    homepage = http://www.gnu.org/software/radius/;
-    license = stdenv.lib.licenses.gpl3Plus;
-
-    maintainers = [ stdenv.lib.maintainers.bjg ];
-    platforms = stdenv.lib.platforms.all;
-
-    broken = true;
-  };
-}
diff --git a/pkgs/servers/rpcbind/0001-handle_reply-Don-t-use-the-xp_auth-pointer-directly.patch b/pkgs/servers/rpcbind/0001-handle_reply-Don-t-use-the-xp_auth-pointer-directly.patch
new file mode 100644
index 000000000000..16b763ef0dec
--- /dev/null
+++ b/pkgs/servers/rpcbind/0001-handle_reply-Don-t-use-the-xp_auth-pointer-directly.patch
@@ -0,0 +1,43 @@
+From 9194122389f2a56b1cd1f935e64307e2e963c2da Mon Sep 17 00:00:00 2001
+From: Steve Dickson <steved@redhat.com>
+Date: Mon, 2 Nov 2015 17:05:18 -0500
+Subject: [PATCH] handle_reply: Don't use the xp_auth pointer directly
+
+In the latest libtirpc version to access the xp_auth
+one must use the SVC_XP_AUTH macro. To be backwards
+compatible a couple ifdefs were added to use the
+macro when it exists.
+
+Upstream-Status: Backport
+
+Signed-off-by: Steve Dickson <steved@redhat.com>
+Signed-off-by: Maxin B. John <maxin.john@intel.com>
+---
+ src/rpcb_svc_com.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/src/rpcb_svc_com.c b/src/rpcb_svc_com.c
+index 4ae93f1..22d6c84 100644
+--- a/src/rpcb_svc_com.c
++++ b/src/rpcb_svc_com.c
+@@ -1295,10 +1295,17 @@ handle_reply(int fd, SVCXPRT *xprt)
+ 	a.rmt_localvers = fi->versnum;
+ 
+ 	xprt_set_caller(xprt, fi);
++#if defined(SVC_XP_AUTH)
++	SVC_XP_AUTH(xprt) = svc_auth_none;
++#else 
+ 	xprt->xp_auth = &svc_auth_none;
++#endif
+ 	svc_sendreply(xprt, (xdrproc_t) xdr_rmtcall_result, (char *) &a);
++#if !defined(SVC_XP_AUTH)
+ 	SVCAUTH_DESTROY(xprt->xp_auth);
+ 	xprt->xp_auth = NULL;
++#endif
++
+ done:
+ 	if (buffer)
+ 		free(buffer);
+-- 
+2.4.0
+
diff --git a/pkgs/servers/rpcbind/default.nix b/pkgs/servers/rpcbind/default.nix
index 6eb8a57cab4f..7cb2c5a0c381 100644
--- a/pkgs/servers/rpcbind/default.nix
+++ b/pkgs/servers/rpcbind/default.nix
@@ -10,7 +10,10 @@ in stdenv.mkDerivation rec {
     sha256 = "0yyjzv4161rqxrgjcijkrawnk55rb96ha0pav48s03l2klx855wq";
   };
 
-  patches = [ ./sunrpc.patch ];
+  patches = [
+    ./sunrpc.patch
+    ./0001-handle_reply-Don-t-use-the-xp_auth-pointer-directly.patch
+  ];
 
   buildInputs = [ libtirpc ]
              ++ stdenv.lib.optional useSystemd systemd;
diff --git a/pkgs/servers/rt/default.nix b/pkgs/servers/rt/default.nix
new file mode 100644
index 000000000000..7f8c372c3355
--- /dev/null
+++ b/pkgs/servers/rt/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, perl }:
+
+stdenv.mkDerivation rec {
+  name = "rt-4.2.12";
+
+  src = fetchurl {
+    url = "https://download.bestpractical.com/pub/rt/release/${name}.tar.gz";
+
+    sha256 = "0r3jhgfwwhhk654zag42mrai85yrliw9sc0kgabwjvbh173204p2";
+  };
+
+  patches = [ ./override-generated.patch ];
+
+  buildInputs = [ perl ];
+
+  buildPhase = "true";
+
+  installPhase = ''
+    mkdir $out
+    cp -a {bin,docs,etc,lib,sbin,share} $out
+    find $out -name '*.in' -exec rm '{}' \;
+  '';
+}
diff --git a/pkgs/servers/rt/override-generated.patch b/pkgs/servers/rt/override-generated.patch
new file mode 100644
index 000000000000..5727a9b50c58
--- /dev/null
+++ b/pkgs/servers/rt/override-generated.patch
@@ -0,0 +1,21 @@
+commit 7aec1e9478ef679227e759ab9537df7584c6a852
+Author: Shea Levy <shea@shealevy.com>
+Date:   Fri Jan 15 09:09:18 2016 -0500
+
+    Make it possible to override hard-coded paths
+
+diff --git a/lib/RT/Generated.pm.in b/lib/RT/Generated.pm.in
+index 9dcb80b..99b034b 100644
+--- a/lib/RT/Generated.pm.in
++++ b/lib/RT/Generated.pm.in
+@@ -82,4 +82,10 @@ $MasonDataDir = '@MASON_DATA_PATH@';
+ $MasonSessionDir = '@MASON_SESSION_PATH@';
+ 
+ 
++if ( my $override_file = $ENV{RT_PATHS_OVERRIDE} )
++{
++    require "$override_file" || die "Couldn't load paths override file: $@";
++}
++
++
+ 1;
diff --git a/pkgs/servers/shellinabox/default.nix b/pkgs/servers/shellinabox/default.nix
index ed859ac344b8..0a651762f185 100644
--- a/pkgs/servers/shellinabox/default.nix
+++ b/pkgs/servers/shellinabox/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, autoconf, automake, libtool, pam, openssl, openssh, shadow, makeWrapper }:
+{ stdenv, fetchFromGitHub, autoreconfHook, pam, openssl, openssh, shadow, makeWrapper }:
 
 stdenv.mkDerivation rec {
   version = "2.19";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   patches = [ ./shellinabox-minus.patch ];
 
-  buildInputs = [ autoconf automake libtool pam openssl openssh makeWrapper];
+  buildInputs = [ autoreconfHook pam openssl openssh makeWrapper ];
 
   # Disable GSSAPIAuthentication errors. Also, paths in certain source files are
   # hardcoded. Replace the hardcoded paths with correct paths.
@@ -23,7 +23,6 @@ stdenv.mkDerivation rec {
     substituteInPlace ./shellinabox/service.c --replace "/bin/login" "${shadow}/bin/login"
     substituteInPlace ./shellinabox/launcher.c --replace "/bin/login" "${shadow}/bin/login"
     substituteInPlace ./libhttp/ssl.c --replace "/usr/bin" "${openssl}/bin"
-    autoreconf -vfi
   '';
 
   postInstall = ''
diff --git a/pkgs/servers/shishi/default.nix b/pkgs/servers/shishi/default.nix
index 44db5895290b..85dfa805fc14 100644
--- a/pkgs/servers/shishi/default.nix
+++ b/pkgs/servers/shishi/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   };
 
   # Fixes support for gcrypt 1.6+
-  patches = [ ./gcrypt-fix.patch ];
+  patches = [ ./gcrypt-fix.patch ./freebsd-unistd.patch ];
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ libgcrypt libgpgerror libtasn1 optPam optLibidn optGnutls ];
diff --git a/pkgs/servers/shishi/freebsd-unistd.patch b/pkgs/servers/shishi/freebsd-unistd.patch
new file mode 100644
index 000000000000..9399e20205b9
--- /dev/null
+++ b/pkgs/servers/shishi/freebsd-unistd.patch
@@ -0,0 +1,12 @@
+diff --git a/gl/unistd.in.h b/gl/unistd.in.h
+index 2ea9af4..ed58960 100644
+--- a/gl/unistd.in.h
++++ b/gl/unistd.in.h
+@@ -116,6 +116,7 @@
+ # include <getopt.h>
+ #endif
+ 
++#include "config.h"
+ _GL_INLINE_HEADER_BEGIN
+ #ifndef _GL_UNISTD_INLINE
+ # define _GL_UNISTD_INLINE _GL_INLINE
diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix
index fdd35637e570..c5daaa626a7a 100644
--- a/pkgs/servers/sql/postgresql/default.nix
+++ b/pkgs/servers/sql/postgresql/default.nix
@@ -96,4 +96,11 @@ in {
     sha256 = "0faav7k3nlhh1z7j1r3adrhx1fpsji3jixmm2abjm93fdg350z5q";
   };
 
+  postgresql95 = common {
+    version = "9.5.0";
+    psqlSchema = "9.5";
+    sha256 = "f1c0d3a1a8aa8c92738cab0153fbfffcc4d4158b3fee84f7aa6bfea8283978bc";
+  };
+
+
 }
diff --git a/pkgs/servers/ums/default.nix b/pkgs/servers/ums/default.nix
index 4151144e3ab7..15d9d90f7cc3 100644
--- a/pkgs/servers/ums/default.nix
+++ b/pkgs/servers/ums/default.nix
@@ -4,12 +4,12 @@
 
 stdenv.mkDerivation rec {
   name = "ums-${version}";
-  version = "5.3.1";
+  version = "5.4.0";
   
   src = fetchurl {
     url = "http://downloads.sourceforge.net/project/unimediaserver/Official%20Releases/Linux/" + stdenv.lib.toUpper "${name}" + "-Java8.tgz";
-    sha256 = "197lrfqk4n6fffrabj0607a9a5wc1j662s46anc0mkyqbb4r3avh";
-    name = "${name}-${version}.tgz";
+    sha256 = "0ryp26h7pyqing8pyg0xjrp1wm77wwgya4a7d00wczh885pk16kq";
+    name = "${name}.tgz";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix
index 2916edd1ab3d..22b4e750772a 100644
--- a/pkgs/servers/x11/xorg/default.nix
+++ b/pkgs/servers/x11/xorg/default.nix
@@ -25,6 +25,7 @@ let
       sha256 = "1zi4p07mp6jmk030p4gmglwxcwp0lzs5mi31y1b4rp8lsqxdxizw";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   bdftopcf = (mkDerivation "bdftopcf" {
@@ -35,6 +36,7 @@ let
       sha256 = "09i03sk878cmx2i40lkpsysn7zqcvlczb30j7x3lryb11jz4gx1q";
     };
     buildInputs = [pkgconfig libXfont ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libXfont ;};
 
   bigreqsproto = (mkDerivation "bigreqsproto" {
@@ -45,6 +47,7 @@ let
       sha256 = "07hvfm84scz8zjw14riiln2v4w03jlhp756ypwhq27g48jmic8a6";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   compositeproto = (mkDerivation "compositeproto" {
@@ -55,6 +58,7 @@ let
       sha256 = "1z0crmf669hirw4s7972mmp8xig80kfndja9h559haqbpvq5k4q4";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   damageproto = (mkDerivation "damageproto" {
@@ -65,6 +69,7 @@ let
       sha256 = "0nzwr5pv9hg7c21n995pdiv0zqhs91yz3r8rn3aska4ykcp12z2w";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   dmxproto = (mkDerivation "dmxproto" {
@@ -75,6 +80,7 @@ let
       sha256 = "02b5x9dkgajizm8dqyx2w6hmqx3v25l67mgf35nj6sz0lgk52877";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   dri2proto = (mkDerivation "dri2proto" {
@@ -85,6 +91,7 @@ let
       sha256 = "015az1vfdqmil1yay5nlsmpf6cf7vcbpslxjb72cfkzlvrv59dgr";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   dri3proto = (mkDerivation "dri3proto" {
@@ -95,6 +102,7 @@ let
       sha256 = "0x609xvnl8jky5m8jdklw4nymx3irkv32w99dfd8nl800bblkgh1";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   encodings = (mkDerivation "encodings" {
@@ -105,6 +113,7 @@ let
       sha256 = "0ffmaw80vmfwdgvdkp6495xgsqszb6s0iira5j0j6pd4i0lk3mnf";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   fixesproto = (mkDerivation "fixesproto" {
@@ -115,6 +124,7 @@ let
       sha256 = "1ki4wiq2iivx5g4w5ckzbjbap759kfqd72yg18m3zpbb4hqkybxs";
     };
     buildInputs = [pkgconfig xextproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit xextproto ;};
 
   fontadobe100dpi = (mkDerivation "fontadobe100dpi" {
@@ -125,6 +135,7 @@ let
       sha256 = "0m60f5bd0caambrk8ksknb5dks7wzsg7g7xaf0j21jxmx8rq9h5j";
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;};
 
   fontadobe75dpi = (mkDerivation "fontadobe75dpi" {
@@ -135,6 +146,7 @@ let
       sha256 = "02advcv9lyxpvrjv8bjh1b797lzg6jvhipclz49z8r8y98g4l0n6";
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;};
 
   fontadobeutopia100dpi = (mkDerivation "fontadobeutopia100dpi" {
@@ -145,6 +157,7 @@ let
       sha256 = "19dd9znam1ah72jmdh7i6ny2ss2r6m21z9v0l43xvikw48zmwvyi";
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;};
 
   fontadobeutopia75dpi = (mkDerivation "fontadobeutopia75dpi" {
@@ -155,6 +168,7 @@ let
       sha256 = "152wigpph5wvl4k9m3l4mchxxisgsnzlx033mn5iqrpkc6f72cl7";
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;};
 
   fontadobeutopiatype1 = (mkDerivation "fontadobeutopiatype1" {
@@ -165,6 +179,7 @@ let
       sha256 = "0xw0pdnzj5jljsbbhakc6q9ha2qnca1jr81zk7w70yl9bw83b54p";
     };
     buildInputs = [pkgconfig mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit mkfontdir mkfontscale ;};
 
   fontalias = (mkDerivation "fontalias" {
@@ -175,6 +190,7 @@ let
       sha256 = "16ic8wfwwr3jicaml7b5a0sk6plcgc1kg84w02881yhwmqm3nicb";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   fontarabicmisc = (mkDerivation "fontarabicmisc" {
@@ -185,6 +201,7 @@ let
       sha256 = "1x246dfnxnmflzf0qzy62k8jdpkb6jkgspcjgbk8jcq9lw99npah";
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf mkfontdir ;};
 
   fontbh100dpi = (mkDerivation "fontbh100dpi" {
@@ -195,6 +212,7 @@ let
       sha256 = "10cl4gm38dw68jzln99ijix730y7cbx8np096gmpjjwff1i73h13";
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;};
 
   fontbh75dpi = (mkDerivation "fontbh75dpi" {
@@ -205,6 +223,7 @@ let
       sha256 = "073jmhf0sr2j1l8da97pzsqj805f7mf9r2gy92j4diljmi8sm1il";
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;};
 
   fontbhlucidatypewriter100dpi = (mkDerivation "fontbhlucidatypewriter100dpi" {
@@ -215,6 +234,7 @@ let
       sha256 = "1fqzckxdzjv4802iad2fdrkpaxl4w0hhs9lxlkyraq2kq9ik7a32";
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;};
 
   fontbhlucidatypewriter75dpi = (mkDerivation "fontbhlucidatypewriter75dpi" {
@@ -225,6 +245,7 @@ let
       sha256 = "0cfbxdp5m12cm7jsh3my0lym9328cgm7fa9faz2hqj05wbxnmhaa";
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;};
 
   fontbhttf = (mkDerivation "fontbhttf" {
@@ -235,6 +256,7 @@ let
       sha256 = "0pyjmc0ha288d4i4j0si4dh3ncf3jiwwjljvddrb0k8v4xiyljqv";
     };
     buildInputs = [pkgconfig mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit mkfontdir mkfontscale ;};
 
   fontbhtype1 = (mkDerivation "fontbhtype1" {
@@ -245,6 +267,7 @@ let
       sha256 = "1hb3iav089albp4sdgnlh50k47cdjif9p4axm0kkjvs8jyi5a53n";
     };
     buildInputs = [pkgconfig mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit mkfontdir mkfontscale ;};
 
   fontbitstream100dpi = (mkDerivation "fontbitstream100dpi" {
@@ -255,6 +278,7 @@ let
       sha256 = "1kmn9jbck3vghz6rj3bhc3h0w6gh0qiaqm90cjkqsz1x9r2dgq7b";
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf mkfontdir ;};
 
   fontbitstream75dpi = (mkDerivation "fontbitstream75dpi" {
@@ -265,6 +289,7 @@ let
       sha256 = "13plbifkvfvdfym6gjbgy9wx2xbdxi9hfrl1k22xayy02135wgxs";
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf mkfontdir ;};
 
   fontbitstreamtype1 = (mkDerivation "fontbitstreamtype1" {
@@ -275,6 +300,7 @@ let
       sha256 = "1256z0jhcf5gbh1d03593qdwnag708rxqa032izmfb5dmmlhbsn6";
     };
     buildInputs = [pkgconfig mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit mkfontdir mkfontscale ;};
 
   fontcronyxcyrillic = (mkDerivation "fontcronyxcyrillic" {
@@ -285,6 +311,7 @@ let
       sha256 = "0ai1v4n61k8j9x2a1knvfbl2xjxk3xxmqaq3p9vpqrspc69k31kf";
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf mkfontdir ;};
 
   fontcursormisc = (mkDerivation "fontcursormisc" {
@@ -295,6 +322,7 @@ let
       sha256 = "0dd6vfiagjc4zmvlskrbjz85jfqhf060cpys8j0y1qpcbsrkwdhp";
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf mkfontdir ;};
 
   fontdaewoomisc = (mkDerivation "fontdaewoomisc" {
@@ -305,6 +333,7 @@ let
       sha256 = "1s2bbhizzgbbbn5wqs3vw53n619cclxksljvm759h9p1prqdwrdw";
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf mkfontdir ;};
 
   fontdecmisc = (mkDerivation "fontdecmisc" {
@@ -315,6 +344,7 @@ let
       sha256 = "0yzza0l4zwyy7accr1s8ab7fjqkpwggqydbm2vc19scdby5xz7g1";
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf mkfontdir ;};
 
   fontibmtype1 = (mkDerivation "fontibmtype1" {
@@ -325,6 +355,7 @@ let
       sha256 = "1pyjll4adch3z5cg663s6vhi02k8m6488f0mrasg81ssvg9jinzx";
     };
     buildInputs = [pkgconfig mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit mkfontdir mkfontscale ;};
 
   fontisasmisc = (mkDerivation "fontisasmisc" {
@@ -335,6 +366,7 @@ let
       sha256 = "0rx8q02rkx673a7skkpnvfkg28i8gmqzgf25s9yi0lar915sn92q";
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf mkfontdir ;};
 
   fontjismisc = (mkDerivation "fontjismisc" {
@@ -345,6 +377,7 @@ let
       sha256 = "0rdc3xdz12pnv951538q6wilx8mrdndpkphpbblszsv7nc8cw61b";
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf mkfontdir ;};
 
   fontmicromisc = (mkDerivation "fontmicromisc" {
@@ -355,6 +388,7 @@ let
       sha256 = "1dldxlh54zq1yzfnrh83j5vm0k4ijprrs5yl18gm3n9j1z0q2cws";
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf mkfontdir ;};
 
   fontmisccyrillic = (mkDerivation "fontmisccyrillic" {
@@ -365,6 +399,7 @@ let
       sha256 = "0q2ybxs8wvylvw95j6x9i800rismsmx4b587alwbfqiw6biy63z4";
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf mkfontdir ;};
 
   fontmiscethiopic = (mkDerivation "fontmiscethiopic" {
@@ -375,6 +410,7 @@ let
       sha256 = "19cq7iq0pfad0nc2v28n681fdq3fcw1l1hzaq0wpkgpx7bc1zjsk";
     };
     buildInputs = [pkgconfig mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit mkfontdir mkfontscale ;};
 
   fontmiscmeltho = (mkDerivation "fontmiscmeltho" {
@@ -385,6 +421,7 @@ let
       sha256 = "148793fqwzrc3bmh2vlw5fdiwjc2n7vs25cic35gfp452czk489p";
     };
     buildInputs = [pkgconfig mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit mkfontdir mkfontscale ;};
 
   fontmiscmisc = (mkDerivation "fontmiscmisc" {
@@ -395,6 +432,7 @@ let
       sha256 = "150pq6n8n984fah34n3k133kggn9v0c5k07igv29sxp1wi07krxq";
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;};
 
   fontmuttmisc = (mkDerivation "fontmuttmisc" {
@@ -405,6 +443,7 @@ let
       sha256 = "13qghgr1zzpv64m0p42195k1kc77pksiv059fdvijz1n6kdplpxx";
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf mkfontdir ;};
 
   fontschumachermisc = (mkDerivation "fontschumachermisc" {
@@ -415,6 +454,7 @@ let
       sha256 = "0nkym3n48b4v36y4s927bbkjnsmicajarnf6vlp7wxp0as304i74";
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;};
 
   fontscreencyrillic = (mkDerivation "fontscreencyrillic" {
@@ -425,6 +465,7 @@ let
       sha256 = "0yayf1qlv7irf58nngddz2f1q04qkpr5jwp4aja2j5gyvzl32hl2";
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf mkfontdir ;};
 
   fontsonymisc = (mkDerivation "fontsonymisc" {
@@ -435,6 +476,7 @@ let
       sha256 = "1xfgcx4gsgik5mkgkca31fj3w72jw9iw76qyrajrsz1lp8ka6hr0";
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf mkfontdir ;};
 
   fontsproto = (mkDerivation "fontsproto" {
@@ -445,6 +487,7 @@ let
       sha256 = "1f2sdsd74y34nnaf4m1zlcbhyv8xb6irnisc99f84c4ivnq4d415";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   fontsunmisc = (mkDerivation "fontsunmisc" {
@@ -455,6 +498,7 @@ let
       sha256 = "1q6jcqrffg9q5f5raivzwx9ffvf7r11g6g0b125na1bhpz5ly7s8";
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf mkfontdir ;};
 
   fontutil = (mkDerivation "fontutil" {
@@ -465,6 +509,7 @@ let
       sha256 = "08drjb6cf84pf5ysghjpb4i7xkd2p86k3wl2a0jxs1jif6qbszma";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   fontwinitzkicyrillic = (mkDerivation "fontwinitzkicyrillic" {
@@ -475,6 +520,7 @@ let
       sha256 = "181n1bgq8vxfxqicmy1jpm1hnr6gwn1kdhl6hr4frjigs1ikpldb";
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit bdftopcf mkfontdir ;};
 
   fontxfree86type1 = (mkDerivation "fontxfree86type1" {
@@ -485,6 +531,7 @@ let
       sha256 = "0jp3zc0qfdaqfkgzrb44vi9vi0a8ygb35wp082yz7rvvxhmg9sya";
     };
     buildInputs = [pkgconfig mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit mkfontdir mkfontscale ;};
 
   gccmakedep = (mkDerivation "gccmakedep" {
@@ -495,6 +542,7 @@ let
       sha256 = "1r1fpy5ni8chbgx7j5sz0008fpb6vbazpy1nifgdhgijyzqxqxdj";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   glamoregl = (mkDerivation "glamoregl" {
@@ -505,6 +553,7 @@ let
       sha256 = "1jg5clihklb9drh1jd7nhhdsszla6nv7xmbvm8yvakh5wrb1nlv6";
     };
     buildInputs = [pkgconfig dri2proto xorgserver ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit dri2proto xorgserver ;};
 
   glproto = (mkDerivation "glproto" {
@@ -515,6 +564,7 @@ let
       sha256 = "0h5ykmcddwid5qj6sbrszgkcypwn3mslvswxpgy2n2iixnyr9amd";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   iceauth = (mkDerivation "iceauth" {
@@ -525,6 +575,7 @@ let
       sha256 = "02izdyzhwpgiyjd8brzilwvwnfr72ncjb6mzz3y1icwrxqnsy5hj";
     };
     buildInputs = [pkgconfig libICE xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libICE xproto ;};
 
   imake = (mkDerivation "imake" {
@@ -535,6 +586,7 @@ let
       sha256 = "0zpk8p044jh14bis838shbf4100bjg7mccd7bq54glpsq552q339";
     };
     buildInputs = [pkgconfig xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit xproto ;};
 
   inputproto = (mkDerivation "inputproto" {
@@ -545,6 +597,7 @@ let
       sha256 = "1lf1jlxp0fc8h6fjdffhd084dqab94966l1zm3rwwsis0mifwiss";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   kbproto = (mkDerivation "kbproto" {
@@ -555,6 +608,7 @@ let
       sha256 = "0mxqj1pzhjpz9495vrjnpi10kv2n1s4vs7di0sh3yvipfq5j30pq";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   libAppleWM = (mkDerivation "libAppleWM" {
@@ -565,6 +619,7 @@ let
       sha256 = "0r8x28n45q89x91mz8mv0zkkcxi8wazkac886fyvflhiv2y8ap2y";
     };
     buildInputs = [pkgconfig applewmproto libX11 libXext xextproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit applewmproto libX11 libXext xextproto ;};
 
   libFS = (mkDerivation "libFS" {
@@ -575,6 +630,7 @@ let
       sha256 = "1wy4km3qwwajbyl8y9pka0zwizn7d9pfiyjgzba02x3a083lr79f";
     };
     buildInputs = [pkgconfig fontsproto xproto xtrans ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto xproto xtrans ;};
 
   libICE = (mkDerivation "libICE" {
@@ -585,6 +641,7 @@ let
       sha256 = "00p2b6bsg6kcdbb39bv46339qcywxfl4hsrz8asm4hy6q7r34w4g";
     };
     buildInputs = [pkgconfig xproto xtrans ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit xproto xtrans ;};
 
   libSM = (mkDerivation "libSM" {
@@ -595,6 +652,7 @@ let
       sha256 = "1gc7wavgs435g9qkp9jw4lhmaiq6ip9llv49f054ad6ryp4sib0b";
     };
     buildInputs = [pkgconfig libICE libuuid xproto xtrans ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libICE libuuid xproto xtrans ;};
 
   libWindowsWM = (mkDerivation "libWindowsWM" {
@@ -605,6 +663,7 @@ let
       sha256 = "1p0flwb67xawyv6yhri9w17m1i4lji5qnd0gq8v1vsfb8zw7rw15";
     };
     buildInputs = [pkgconfig windowswmproto libX11 libXext xextproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit windowswmproto libX11 libXext xextproto ;};
 
   libX11 = (mkDerivation "libX11" {
@@ -615,6 +674,7 @@ let
       sha256 = "04c1vj53xq2xgyxx5vhln3wm2d76hh1n95fvs3myhligkz1sfcfg";
     };
     buildInputs = [pkgconfig inputproto kbproto libxcb xextproto xf86bigfontproto xproto xtrans ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit inputproto kbproto libxcb xextproto xf86bigfontproto xproto xtrans ;};
 
   libXScrnSaver = (mkDerivation "libXScrnSaver" {
@@ -625,6 +685,7 @@ let
       sha256 = "07ff4r20nkkrj7h08f9fwamds9b3imj8jz5iz6y38zqw6jkyzwcg";
     };
     buildInputs = [pkgconfig scrnsaverproto libX11 libXext xextproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit scrnsaverproto libX11 libXext xextproto ;};
 
   libXau = (mkDerivation "libXau" {
@@ -635,6 +696,7 @@ let
       sha256 = "1wm4pv12f36cwzhldpp7vy3lhm3xdcnp4f184xkxsp7b18r7gm7x";
     };
     buildInputs = [pkgconfig xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit xproto ;};
 
   libXaw = (mkDerivation "libXaw" {
@@ -645,6 +707,7 @@ let
       sha256 = "1kdhxplwrn43d9jp3v54llp05kwx210lrsdvqb6944jp29rhdy4f";
     };
     buildInputs = [pkgconfig libX11 libXext xextproto libXmu libXpm xproto libXt ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 libXext xextproto libXmu libXpm xproto libXt ;};
 
   libXcomposite = (mkDerivation "libXcomposite" {
@@ -655,6 +718,7 @@ let
       sha256 = "0y21nfpa5s8qmx0srdlilyndas3sgl0c6rc26d5fx2vx436m1qpd";
     };
     buildInputs = [pkgconfig compositeproto libX11 libXfixes xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit compositeproto libX11 libXfixes xproto ;};
 
   libXcursor = (mkDerivation "libXcursor" {
@@ -665,6 +729,7 @@ let
       sha256 = "1prkdicl5y5yx32h1azh6gjfbijvjp415javv8dsakd13jrarilv";
     };
     buildInputs = [pkgconfig fixesproto libX11 libXfixes xproto libXrender ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fixesproto libX11 libXfixes xproto libXrender ;};
 
   libXdamage = (mkDerivation "libXdamage" {
@@ -675,6 +740,7 @@ let
       sha256 = "1bamagq7g6s0d23l8rb3nppj8ifqj05f7z9bhbs4fdg8az3ffgvw";
     };
     buildInputs = [pkgconfig damageproto fixesproto libX11 xextproto libXfixes xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit damageproto fixesproto libX11 xextproto libXfixes xproto ;};
 
   libXdmcp = (mkDerivation "libXdmcp" {
@@ -685,6 +751,7 @@ let
       sha256 = "1qp4yhxbfnpj34swa0fj635kkihdkwaiw7kf55cg5zqqg630kzl1";
     };
     buildInputs = [pkgconfig xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit xproto ;};
 
   libXext = (mkDerivation "libXext" {
@@ -695,6 +762,7 @@ let
       sha256 = "0dbfn5bznnrhqzvkrcmw4c44yvvpwdcsrvzxf4rk27r36b9x865m";
     };
     buildInputs = [pkgconfig libX11 xextproto xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 xextproto xproto ;};
 
   libXfixes = (mkDerivation "libXfixes" {
@@ -705,6 +773,7 @@ let
       sha256 = "0rs7qgzr6dpr62db7sd91c1b47hzhzfr010qwnpcm8sg122w1gk3";
     };
     buildInputs = [pkgconfig fixesproto libX11 xextproto xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fixesproto libX11 xextproto xproto ;};
 
   libXfont = (mkDerivation "libXfont" {
@@ -715,6 +784,17 @@ let
       sha256 = "1630v3sfvwwlimb2ja10c84ql6v1mw9bdfhvan7pbybkgi99h25p";
     };
     buildInputs = [pkgconfig libfontenc fontsproto freetype xproto xtrans zlib ];
+    meta.platforms = stdenv.lib.platforms.unix;
+  }) // {inherit libfontenc fontsproto freetype xproto xtrans zlib ;};
+
+  libXfont2 = (mkDerivation "libXfont2" {
+    name = "libXfont2-2.0.1";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = mirror://xorg/individual/lib/libXfont2-2.0.1.tar.bz2;
+      sha256 = "0znvwk36nhmyqpmhbm9mzisgixp1mp5qkfald8x1n5yxbm3vpyz9";
+    };
+    buildInputs = [pkgconfig libfontenc fontsproto freetype xproto xtrans zlib ];
   }) // {inherit libfontenc fontsproto freetype xproto xtrans zlib ;};
 
   libXft = (mkDerivation "libXft" {
@@ -725,16 +805,18 @@ let
       sha256 = "0k6wzi5rzs0d0n338ms8n8lfyhq914hw4yl2j7553wqxfqjci8zm";
     };
     buildInputs = [pkgconfig fontconfig freetype libX11 xproto libXrender ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontconfig freetype libX11 xproto libXrender ;};
 
   libXi = (mkDerivation "libXi" {
-    name = "libXi-1.7.5";
+    name = "libXi-1.7.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/lib/libXi-1.7.5.tar.bz2;
-      sha256 = "0ad21jy40d8b2f9ldadx7lkspmvka1i9r5jqqfwxdxyqnpgdfr6r";
+      url = mirror://xorg/individual/lib/libXi-1.7.6.tar.bz2;
+      sha256 = "1b5p0l19ynmd6blnqr205wyngh6fagl35nqb4v05dw60rr9aachz";
     };
     buildInputs = [pkgconfig inputproto libX11 libXext xextproto libXfixes xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit inputproto libX11 libXext xextproto libXfixes xproto ;};
 
   libXinerama = (mkDerivation "libXinerama" {
@@ -745,6 +827,7 @@ let
       sha256 = "1qlqfvzw45gdzk9xirgwlp2qgj0hbsyiqj8yh8zml2bk2ygnjibs";
     };
     buildInputs = [pkgconfig libX11 libXext xextproto xineramaproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 libXext xextproto xineramaproto ;};
 
   libXmu = (mkDerivation "libXmu" {
@@ -755,6 +838,7 @@ let
       sha256 = "02wx6jw7i0q5qwx87yf94fsn3h0xpz1k7dz1nkwfwm1j71ydqvkm";
     };
     buildInputs = [pkgconfig libX11 libXext xextproto xproto libXt ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 libXext xextproto xproto libXt ;};
 
   libXp = (mkDerivation "libXp" {
@@ -765,6 +849,7 @@ let
       sha256 = "0mwc2jwmq03b1m9ihax5c6gw2ln8rc70zz4fsj3kb7440nchqdkz";
     };
     buildInputs = [pkgconfig printproto libX11 libXau libXext xextproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit printproto libX11 libXau libXext xextproto ;};
 
   libXpm = (mkDerivation "libXpm" {
@@ -775,6 +860,7 @@ let
       sha256 = "07041q4k8m4nirzl7lrqn8by2zylx0xvh6n0za301qqs3njszgf5";
     };
     buildInputs = [pkgconfig libX11 libXext xextproto xproto libXt ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 libXext xextproto xproto libXt ;};
 
   libXpresent = (mkDerivation "libXpresent" {
@@ -785,6 +871,7 @@ let
       sha256 = "12kvvar3ihf6sw49h6ywfdiwmb8i1gh8wasg1zhzp6hs2hay06n1";
     };
     buildInputs = [pkgconfig presentproto libX11 xextproto xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit presentproto libX11 xextproto xproto ;};
 
   libXrandr = (mkDerivation "libXrandr" {
@@ -795,6 +882,7 @@ let
       sha256 = "0n6ycs1arf4wb1cal9il6v7vbxbf21qhs9sbfl8xndgwnxclk1kg";
     };
     buildInputs = [pkgconfig randrproto renderproto libX11 libXext xextproto xproto libXrender ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit randrproto renderproto libX11 libXext xextproto xproto libXrender ;};
 
   libXrender = (mkDerivation "libXrender" {
@@ -805,6 +893,7 @@ let
       sha256 = "06myx7044qqdswxndsmd82fpp670klnizkgzdm194h51h1wyabzw";
     };
     buildInputs = [pkgconfig renderproto libX11 xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit renderproto libX11 xproto ;};
 
   libXres = (mkDerivation "libXres" {
@@ -815,6 +904,7 @@ let
       sha256 = "1rd0bzn67cpb2qkc946gch2183r4bdjfhs6cpqbipy47m9a91296";
     };
     buildInputs = [pkgconfig resourceproto libX11 libXext xextproto xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit resourceproto libX11 libXext xextproto xproto ;};
 
   libXt = (mkDerivation "libXt" {
@@ -825,6 +915,7 @@ let
       sha256 = "06lz6i7rbrp19kgikpaz4c97fw7n31k2h2aiikczs482g2zbdvj6";
     };
     buildInputs = [pkgconfig libICE kbproto libSM libX11 xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libICE kbproto libSM libX11 xproto ;};
 
   libXtst = (mkDerivation "libXtst" {
@@ -835,6 +926,7 @@ let
       sha256 = "1ngn161nq679ffmbwl81i2hn75jjg5b3ffv6n4jilpvyazypy2pg";
     };
     buildInputs = [pkgconfig inputproto recordproto libX11 libXext xextproto libXi ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit inputproto recordproto libX11 libXext xextproto libXi ;};
 
   libXv = (mkDerivation "libXv" {
@@ -845,6 +937,7 @@ let
       sha256 = "09a5j6bisysiipd0nw6s352565bp0n6gbyhv5hp63s3cd3w95zjm";
     };
     buildInputs = [pkgconfig videoproto libX11 libXext xextproto xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit videoproto libX11 libXext xextproto xproto ;};
 
   libXvMC = (mkDerivation "libXvMC" {
@@ -855,6 +948,7 @@ let
       sha256 = "0mjp1b21dvkaz7r0iq085r92nh5vkpmx99awfgqq9hgzyvgxf0q7";
     };
     buildInputs = [pkgconfig videoproto libX11 libXext xextproto xproto libXv ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit videoproto libX11 libXext xextproto xproto libXv ;};
 
   libXxf86dga = (mkDerivation "libXxf86dga" {
@@ -865,6 +959,7 @@ let
       sha256 = "0zn7aqj8x0951d8zb2h2andldvwkzbsc4cs7q023g6nzq6vd9v4f";
     };
     buildInputs = [pkgconfig libX11 libXext xextproto xf86dgaproto xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 libXext xextproto xf86dgaproto xproto ;};
 
   libXxf86misc = (mkDerivation "libXxf86misc" {
@@ -875,6 +970,7 @@ let
       sha256 = "0nvbq9y6k6m9hxdvg3crycqsnnxf1859wrisqcs37z9fhq044gsn";
     };
     buildInputs = [pkgconfig libX11 libXext xextproto xf86miscproto xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 libXext xextproto xf86miscproto xproto ;};
 
   libXxf86vm = (mkDerivation "libXxf86vm" {
@@ -885,6 +981,7 @@ let
       sha256 = "0mydhlyn72i7brjwypsqrpkls3nm6vxw0li8b2nw0caz7kwjgvmg";
     };
     buildInputs = [pkgconfig libX11 libXext xextproto xf86vidmodeproto xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 libXext xextproto xf86vidmodeproto xproto ;};
 
   libdmx = (mkDerivation "libdmx" {
@@ -895,6 +992,7 @@ let
       sha256 = "00djlxas38kbsrglcmwmxfbmxjdchlbj95pqwjvdg8jn5rns6zf9";
     };
     buildInputs = [pkgconfig dmxproto libX11 libXext xextproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit dmxproto libX11 libXext xextproto ;};
 
   libfontenc = (mkDerivation "libfontenc" {
@@ -905,6 +1003,7 @@ let
       sha256 = "08gxmrhgw97mv0pvkfmd46zzxrn6zdw4g27073zl55gwwqq8jn3h";
     };
     buildInputs = [pkgconfig xproto zlib ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit xproto zlib ;};
 
   libpciaccess = (mkDerivation "libpciaccess" {
@@ -915,6 +1014,7 @@ let
       sha256 = "1krgryi9ngjr66242v0v5mczihgv0y7rrvx0563arr318mjn9y07";
     };
     buildInputs = [pkgconfig zlib ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit zlib ;};
 
   libpthreadstubs = (mkDerivation "libpthreadstubs" {
@@ -925,6 +1025,7 @@ let
       sha256 = "16bjv3in19l84hbri41iayvvg4ls9gv1ma0x0qlbmwy67i7dbdim";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   libxcb = (mkDerivation "libxcb" {
@@ -935,6 +1036,7 @@ let
       sha256 = "0c4xyvdyx5adh8dzyhnrmvwwz24gri4z1czxmxqm63i0gmngs85p";
     };
     buildInputs = [pkgconfig libxslt libpthreadstubs python libXau xcbproto libXdmcp ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libxslt libpthreadstubs python libXau xcbproto libXdmcp ;};
 
   libxkbfile = (mkDerivation "libxkbfile" {
@@ -945,6 +1047,7 @@ let
       sha256 = "0smimr14zvail7ar68n7spvpblpdnih3jxrva7cpa6cn602px0ai";
     };
     buildInputs = [pkgconfig kbproto libX11 ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit kbproto libX11 ;};
 
   libxshmfence = (mkDerivation "libxshmfence" {
@@ -955,6 +1058,7 @@ let
       sha256 = "032b0nlkdrpbimdld4gqvhqx53rzn8fawvf1ybhzn7lcswgjs6yj";
     };
     buildInputs = [pkgconfig xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit xproto ;};
 
   lndir = (mkDerivation "lndir" {
@@ -965,6 +1069,7 @@ let
       sha256 = "0pdngiy8zdhsiqx2am75yfcl36l7kd7d7nl0rss8shcdvsqgmx29";
     };
     buildInputs = [pkgconfig xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit xproto ;};
 
   luit = (mkDerivation "luit" {
@@ -975,6 +1080,7 @@ let
       sha256 = "0dn694mk56x6hdk6y9ylx4f128h5jcin278gnw2gb807rf3ygc1h";
     };
     buildInputs = [pkgconfig libfontenc ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libfontenc ;};
 
   makedepend = (mkDerivation "makedepend" {
@@ -985,6 +1091,7 @@ let
       sha256 = "09alw99r6y2bbd1dc786n3jfgv4j520apblyn7cw6jkjydshba7p";
     };
     buildInputs = [pkgconfig xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit xproto ;};
 
   mkfontdir = (mkDerivation "mkfontdir" {
@@ -995,6 +1102,7 @@ let
       sha256 = "0c3563kw9fg15dpgx4dwvl12qz6sdqdns1pxa574hc7i5m42mman";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   mkfontscale = (mkDerivation "mkfontscale" {
@@ -1005,6 +1113,7 @@ let
       sha256 = "081z8lwh9c1gyrx3ad12whnpv3jpfbqsc366mswpfm48mwl54vcc";
     };
     buildInputs = [pkgconfig libfontenc freetype xproto zlib ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libfontenc freetype xproto zlib ;};
 
   presentproto = (mkDerivation "presentproto" {
@@ -1015,6 +1124,7 @@ let
       sha256 = "1kir51aqg9cwazs14ivcldcn3mzadqgykc9cg87rm40zf947sb41";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   printproto = (mkDerivation "printproto" {
@@ -1025,6 +1135,7 @@ let
       sha256 = "06liap8n4s25sgp27d371cc7yg9a08dxcr3pmdjp761vyin3360j";
     };
     buildInputs = [pkgconfig libXau ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libXau ;};
 
   randrproto = (mkDerivation "randrproto" {
@@ -1035,6 +1146,7 @@ let
       sha256 = "0s4496z61y5q45q20gldwpf788b9nsa8hb13gnck1mwwwwrmarsc";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   recordproto = (mkDerivation "recordproto" {
@@ -1045,6 +1157,7 @@ let
       sha256 = "0w3kgr1zabwf79bpc28dcnj0fpni6r53rpi82ngjbalj5s6m8xx7";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   renderproto = (mkDerivation "renderproto" {
@@ -1055,6 +1168,7 @@ let
       sha256 = "0dr5xw6s0qmqg0q5pdkb4jkdhaja0vbfqla79qh5j1xjj9dmlwq6";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   resourceproto = (mkDerivation "resourceproto" {
@@ -1065,6 +1179,7 @@ let
       sha256 = "0638iyfiiyjw1hg3139pai0j6m65gkskrvd9684zgc6ydcx00riw";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   scrnsaverproto = (mkDerivation "scrnsaverproto" {
@@ -1075,6 +1190,7 @@ let
       sha256 = "0rfdbfwd35d761xkfifcscx56q0n56043ixlmv70r4v4l66hmdwb";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   sessreg = (mkDerivation "sessreg" {
@@ -1085,6 +1201,7 @@ let
       sha256 = "0z013rskwmdadd8cdlxvh4asmgim61qijyzfbqmr1q1mg1jpf4am";
     };
     buildInputs = [pkgconfig xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit xproto ;};
 
   setxkbmap = (mkDerivation "setxkbmap" {
@@ -1095,6 +1212,7 @@ let
       sha256 = "1qfk097vjysqb72pq89h0la3462kbb2dh1d11qzs2fr67ybb7pd9";
     };
     buildInputs = [pkgconfig libX11 libxkbfile ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 libxkbfile ;};
 
   smproxy = (mkDerivation "smproxy" {
@@ -1105,6 +1223,7 @@ let
       sha256 = "0rkjyzmsdqmlrkx8gy2j4q6iksk58hcc92xzdprkf8kml9ar3wbc";
     };
     buildInputs = [pkgconfig libICE libSM libXmu libXt ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libICE libSM libXmu libXt ;};
 
   twm = (mkDerivation "twm" {
@@ -1115,6 +1234,7 @@ let
       sha256 = "02iicvhkp3i7q5rliyymiq9bppjr0pzfs6rgb78kppryqdx1cxf5";
     };
     buildInputs = [pkgconfig libICE libSM libX11 libXext libXmu xproto libXt ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libICE libSM libX11 libXext libXmu xproto libXt ;};
 
   utilmacros = (mkDerivation "utilmacros" {
@@ -1125,6 +1245,7 @@ let
       sha256 = "1fnhpryf55l0yqajxn0cxan3kvsjzi67nlanz8clwqzf54cb2d98";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   videoproto = (mkDerivation "videoproto" {
@@ -1135,6 +1256,7 @@ let
       sha256 = "1dnlkd9nb0m135lgd6hd61vc29sdyarsyya8aqpx7z10p261dbld";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   windowswmproto = (mkDerivation "windowswmproto" {
@@ -1145,6 +1267,7 @@ let
       sha256 = "0syjxgy4m8l94qrm03nvn5k6bkxc8knnlld1gbllym97nvnv0ny0";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   x11perf = (mkDerivation "x11perf" {
@@ -1155,6 +1278,7 @@ let
       sha256 = "0lb716yfdb8f11h4cz93d1bapqdxf1xplsb21kbp4xclq7g9hw78";
     };
     buildInputs = [pkgconfig libX11 libXext libXft libXmu xproto libXrender ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 libXext libXft libXmu xproto libXrender ;};
 
   xauth = (mkDerivation "xauth" {
@@ -1165,6 +1289,7 @@ let
       sha256 = "13y2invb0894b1in03jbglximbz6v31y2kr4yjjgica8xciibkjn";
     };
     buildInputs = [pkgconfig libX11 libXau libXext libXmu xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 libXau libXext libXmu xproto ;};
 
   xbacklight = (mkDerivation "xbacklight" {
@@ -1175,6 +1300,7 @@ let
       sha256 = "0arnd1j8vzhzmw72mqhjjcb2qwcbs9qphsy3ps593ajyld8wzxhp";
     };
     buildInputs = [pkgconfig libxcb xcbutil ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libxcb xcbutil ;};
 
   xbitmaps = (mkDerivation "xbitmaps" {
@@ -1185,6 +1311,7 @@ let
       sha256 = "178ym90kwidia6nas4qr5n5yqh698vv8r02js0r4vg3b6lsb0w9n";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   xcbproto = (mkDerivation "xcbproto" {
@@ -1195,6 +1322,7 @@ let
       sha256 = "0bp3f53l9fy5x3mn1rkj1g81aiyzl90wacwvqdgy831aa3kfxb5l";
     };
     buildInputs = [pkgconfig python ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit python ;};
 
   xcbutil = (mkDerivation "xcbutil" {
@@ -1205,6 +1333,7 @@ let
       sha256 = "1sahmrgbpyki4bb72hxym0zvxwnycmswsxiisgqlln9vrdlr9r26";
     };
     buildInputs = [pkgconfig gperf m4 libxcb xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit gperf m4 libxcb xproto ;};
 
   xcbutilcursor = (mkDerivation "xcbutilcursor" {
@@ -1215,6 +1344,7 @@ let
       sha256 = "0fpv46zb7kz04qxwvpax4cpd2kd8yhsm2n0if1isniqdh5xkcrgd";
     };
     buildInputs = [pkgconfig gperf m4 libxcb xcbutilimage xcbutilrenderutil xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit gperf m4 libxcb xcbutilimage xcbutilrenderutil xproto ;};
 
   xcbutilerrors = (mkDerivation "xcbutilerrors" {
@@ -1225,6 +1355,7 @@ let
       sha256 = "158rm913dg3hxrrhyvvxr8bcm0pjy5jws70dhy2s12w1krv829k8";
     };
     buildInputs = [pkgconfig gperf m4 libxcb xcbproto xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit gperf m4 libxcb xcbproto xproto ;};
 
   xcbutilimage = (mkDerivation "xcbutilimage" {
@@ -1235,6 +1366,7 @@ let
       sha256 = "1z1gxacg7q4cw6jrd26gvi5y04npsyavblcdad1xccc8swvnmf9d";
     };
     buildInputs = [pkgconfig gperf m4 libxcb xcbutil xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit gperf m4 libxcb xcbutil xproto ;};
 
   xcbutilkeysyms = (mkDerivation "xcbutilkeysyms" {
@@ -1245,6 +1377,7 @@ let
       sha256 = "1nbd45pzc1wm6v5drr5338j4nicbgxa5hcakvsvm5pnyy47lky0f";
     };
     buildInputs = [pkgconfig gperf m4 libxcb xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit gperf m4 libxcb xproto ;};
 
   xcbutilrenderutil = (mkDerivation "xcbutilrenderutil" {
@@ -1255,6 +1388,7 @@ let
       sha256 = "0nza1csdvvxbmk8vgv8vpmq7q8h05xrw3cfx9lwxd1hjzd47xsf6";
     };
     buildInputs = [pkgconfig gperf m4 libxcb xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit gperf m4 libxcb xproto ;};
 
   xcbutilwm = (mkDerivation "xcbutilwm" {
@@ -1265,6 +1399,7 @@ let
       sha256 = "0gra7hfyxajic4mjd63cpqvd20si53j1q3rbdlkqkahfciwq3gr8";
     };
     buildInputs = [pkgconfig gperf m4 libxcb xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit gperf m4 libxcb xproto ;};
 
   xclock = (mkDerivation "xclock" {
@@ -1275,6 +1410,7 @@ let
       sha256 = "1l3xv4bsca6bwxx73jyjz0blav86i7vwffkhdb1ac81y9slyrki3";
     };
     buildInputs = [pkgconfig libX11 libXaw libXft libxkbfile libXmu xproto libXrender libXt ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 libXaw libXft libxkbfile libXmu xproto libXrender libXt ;};
 
   xcmiscproto = (mkDerivation "xcmiscproto" {
@@ -1285,6 +1421,7 @@ let
       sha256 = "1pyjv45wivnwap2wvsbrzdvjc5ql8bakkbkrvcv6q9bjjf33ccmi";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   xcmsdb = (mkDerivation "xcmsdb" {
@@ -1295,6 +1432,7 @@ let
       sha256 = "1ik7gzlp2igz183x70883000ygp99r20x3aah6xhaslbpdhm6n75";
     };
     buildInputs = [pkgconfig libX11 ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 ;};
 
   xcompmgr = (mkDerivation "xcompmgr" {
@@ -1305,6 +1443,7 @@ let
       sha256 = "14k89mz13jxgp4h2pz0yq0fbkw1lsfcb3acv8vkknc9i4ld9n168";
     };
     buildInputs = [pkgconfig libXcomposite libXdamage libXext libXfixes libXrender ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libXcomposite libXdamage libXext libXfixes libXrender ;};
 
   xcursorgen = (mkDerivation "xcursorgen" {
@@ -1315,6 +1454,7 @@ let
       sha256 = "0v7nncj3kaa8c0524j7ricdf4rvld5i7c3m6fj55l5zbah7r3j1i";
     };
     buildInputs = [pkgconfig libpng libX11 libXcursor ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libpng libX11 libXcursor ;};
 
   xcursorthemes = (mkDerivation "xcursorthemes" {
@@ -1325,6 +1465,7 @@ let
       sha256 = "11mv661nj1p22sqkv87ryj2lcx4m68a04b0rs6iqh3fzp42jrzg3";
     };
     buildInputs = [pkgconfig libXcursor ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libXcursor ;};
 
   xdm = (mkDerivation "xdm" {
@@ -1335,6 +1476,7 @@ let
       sha256 = "0iqw11977lpr9nk1is4fca84d531vck0mq7jldwl44m0vrnl5nnl";
     };
     buildInputs = [pkgconfig libX11 libXau libXaw libXdmcp libXext libXft libXinerama libXmu libXpm libXt ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 libXau libXaw libXdmcp libXext libXft libXinerama libXmu libXpm libXt ;};
 
   xdpyinfo = (mkDerivation "xdpyinfo" {
@@ -1345,6 +1487,7 @@ let
       sha256 = "0ldgrj4w2fa8jng4b3f3biaj0wyn8zvya88pnk70d7k12pcqw8rh";
     };
     buildInputs = [pkgconfig libdmx libX11 libxcb libXcomposite libXext libXi libXinerama xproto libXrender libXtst libXxf86dga libXxf86misc libXxf86vm ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libdmx libX11 libxcb libXcomposite libXext libXi libXinerama xproto libXrender libXtst libXxf86dga libXxf86misc libXxf86vm ;};
 
   xdriinfo = (mkDerivation "xdriinfo" {
@@ -1355,6 +1498,7 @@ let
       sha256 = "0681d0y8liqakkpz7mmsf689jcxrvs5291r20qi78mc9xxk3gfjc";
     };
     buildInputs = [pkgconfig glproto libX11 ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit glproto libX11 ;};
 
   xev = (mkDerivation "xev" {
@@ -1365,6 +1509,7 @@ let
       sha256 = "0krivhrxpq6719103r541xpi3i3a0y15f7ypc4lnrx8sdhmfcjnr";
     };
     buildInputs = [pkgconfig libX11 xproto libXrandr ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 xproto libXrandr ;};
 
   xextproto = (mkDerivation "xextproto" {
@@ -1375,6 +1520,7 @@ let
       sha256 = "1c2vma9gqgc2v06rfxdiqgwhxmzk2cbmknwf1ng3m76vr0xb5x7k";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   xeyes = (mkDerivation "xeyes" {
@@ -1385,6 +1531,7 @@ let
       sha256 = "08d5x2kar5kg4yammw6hhk10iva6jmh8cqq176a1z7nm1il9hplp";
     };
     buildInputs = [pkgconfig libX11 libXext libXmu libXrender libXt ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 libXext libXmu libXrender libXt ;};
 
   xf86bigfontproto = (mkDerivation "xf86bigfontproto" {
@@ -1395,6 +1542,7 @@ let
       sha256 = "0j0n7sj5xfjpmmgx6n5x556rw21hdd18fwmavp95wps7qki214ms";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   xf86dgaproto = (mkDerivation "xf86dgaproto" {
@@ -1405,6 +1553,7 @@ let
       sha256 = "0l4hx48207mx0hp09026r6gy9nl3asbq0c75hri19wp1118zcpmc";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   xf86driproto = (mkDerivation "xf86driproto" {
@@ -1415,6 +1564,7 @@ let
       sha256 = "07v69m0g2dfzb653jni4x656jlr7l84c1k39j8qc8vfb45r8sjww";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   xf86inputevdev = (mkDerivation "xf86inputevdev" {
@@ -1425,6 +1575,7 @@ let
       sha256 = "05yihr84rf209yyjvin8ab55h504b30c7dck8kgrwykvn272k5yh";
     };
     buildInputs = [pkgconfig inputproto udev xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit inputproto udev xorgserver xproto ;};
 
   xf86inputjoystick = (mkDerivation "xf86inputjoystick" {
@@ -1435,6 +1586,7 @@ let
       sha256 = "038mfqairyyqvz02rk7v3i070sab1wr0k6fkxvyvxdgkfbnqcfzf";
     };
     buildInputs = [pkgconfig inputproto kbproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit inputproto kbproto xorgserver xproto ;};
 
   xf86inputkeyboard = (mkDerivation "xf86inputkeyboard" {
@@ -1445,16 +1597,18 @@ let
       sha256 = "04d27kwqq03fc26an6051hs3i0bff8albhnngzyd59wxpwwzzj0s";
     };
     buildInputs = [pkgconfig inputproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit inputproto xorgserver xproto ;};
 
   xf86inputlibinput = (mkDerivation "xf86inputlibinput" {
-    name = "xf86-input-libinput-0.15.0";
+    name = "xf86-input-libinput-0.16.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-input-libinput-0.15.0.tar.bz2;
-      sha256 = "0hcs05zx9mpyi9wajsps9qsbyq4v0c9wysp2l48qnr4l8587qw18";
+      url = mirror://xorg/individual/driver/xf86-input-libinput-0.16.0.tar.bz2;
+      sha256 = "0jbgnxsbr3g4g9vkspcc6pqy7av59zx5bb78vkvaqy8yx4qybbgx";
     };
     buildInputs = [pkgconfig inputproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit inputproto xorgserver xproto ;};
 
   xf86inputmouse = (mkDerivation "xf86inputmouse" {
@@ -1465,6 +1619,7 @@ let
       sha256 = "1kn5kx3qyn9qqvd6s24a2l1wfgck2pgfvzl90xpl024wfxsx719l";
     };
     buildInputs = [pkgconfig inputproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit inputproto xorgserver xproto ;};
 
   xf86inputsynaptics = (mkDerivation "xf86inputsynaptics" {
@@ -1475,6 +1630,7 @@ let
       sha256 = "009zx199pilcvlaqm6fx4mg94q81d6vvl5rznmw3frzkfh6117yk";
     };
     buildInputs = [pkgconfig inputproto randrproto recordproto libX11 libXi xorgserver xproto libXtst ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit inputproto randrproto recordproto libX11 libXi xorgserver xproto libXtst ;};
 
   xf86inputvmmouse = (mkDerivation "xf86inputvmmouse" {
@@ -1485,6 +1641,7 @@ let
       sha256 = "06ckn4hlkpig5vnivl0zj8a7ykcgvrsj8b3iccl1pgn1gaamix8a";
     };
     buildInputs = [pkgconfig inputproto udev randrproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit inputproto udev randrproto xorgserver xproto ;};
 
   xf86inputvoid = (mkDerivation "xf86inputvoid" {
@@ -1495,6 +1652,7 @@ let
       sha256 = "171k8b8s42s3w73l7ln9jqwk88w4l7r1km2blx1vy898c854yvpr";
     };
     buildInputs = [pkgconfig xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit xorgserver xproto ;};
 
   xf86miscproto = (mkDerivation "xf86miscproto" {
@@ -1505,6 +1663,7 @@ let
       sha256 = "15dhcdpv61fyj6rhzrhnwri9hlw8rjfy05z1vik118lc99mfrf25";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   xf86videoark = (mkDerivation "xf86videoark" {
@@ -1515,6 +1674,7 @@ let
       sha256 = "07p5vdsj2ckxb6wh02s61akcv4qfg6s1d5ld3jn3lfaayd3f1466";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess xextproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto libpciaccess xextproto xorgserver xproto ;};
 
   xf86videoast = (mkDerivation "xf86videoast" {
@@ -1525,6 +1685,7 @@ let
       sha256 = "1pm2cy81ma7ldsw0yfk28b33h9z2hcj5rccrxhfxfgvxsiavrnqy";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
 
   xf86videoati = (mkDerivation "xf86videoati" {
@@ -1535,6 +1696,7 @@ let
       sha256 = "0k6kw69mcarlmxlb4jlhz887jxqr94qx2pin04xcv2ysp3pdj5i5";
     };
     buildInputs = [pkgconfig fontsproto glamoregl libdrm udev libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto glamoregl libdrm udev libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
 
   xf86videochips = (mkDerivation "xf86videochips" {
@@ -1545,6 +1707,7 @@ let
       sha256 = "073bcdsvvsg19mb963sa5v7x2zs19y0q6javmgpiwfaqkz7zbblr";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
 
   xf86videocirrus = (mkDerivation "xf86videocirrus" {
@@ -1555,6 +1718,7 @@ let
       sha256 = "1asifc6ld2g9kap15vfhvsvyl69lj7pw3d9ra9mi4najllh7pj7d";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
 
   xf86videodummy = (mkDerivation "xf86videodummy" {
@@ -1565,6 +1729,7 @@ let
       sha256 = "1046p64xap69vlsmsz5rjv0djc970yhvq44fmllmas0mqp5lzy2n";
     };
     buildInputs = [pkgconfig fontsproto randrproto renderproto videoproto xf86dgaproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto randrproto renderproto videoproto xf86dgaproto xorgserver xproto ;};
 
   xf86videofbdev = (mkDerivation "xf86videofbdev" {
@@ -1575,6 +1740,7 @@ let
       sha256 = "06ym7yy017lanj730hfkpfk4znx3dsj8jq3qvyzsn8w294kb7m4x";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xorgserver xproto ;};
 
   xf86videogeode = (mkDerivation "xf86videogeode" {
@@ -1585,6 +1751,7 @@ let
       sha256 = "0h9w6cfj7s86rg72c6qci8f733hg4g7paan5fwmmj7p74ckd9d07";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
 
   xf86videoglide = (mkDerivation "xf86videoglide" {
@@ -1595,6 +1762,7 @@ let
       sha256 = "1vaav6kx4n00q4fawgqnjmbdkppl0dir2dkrj4ad372mxrvl9c4y";
     };
     buildInputs = [pkgconfig xextproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit xextproto xorgserver xproto ;};
 
   xf86videoglint = (mkDerivation "xf86videoglint" {
@@ -1605,6 +1773,7 @@ let
       sha256 = "08a2aark2yn9irws9c78d9q44dichr03i9zbk61jgr54ncxqhzv5";
     };
     buildInputs = [pkgconfig libpciaccess videoproto xextproto xf86dgaproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libpciaccess videoproto xextproto xf86dgaproto xorgserver xproto ;};
 
   xf86videoi128 = (mkDerivation "xf86videoi128" {
@@ -1615,6 +1784,7 @@ let
       sha256 = "171b8lbxr56w3isph947dnw7x87hc46v6m3mcxdcz44gk167x0pq";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
 
   xf86videoi740 = (mkDerivation "xf86videoi740" {
@@ -1625,6 +1795,7 @@ let
       sha256 = "0973zzmdsvlmplcax1c91is7v78lcwy6d9mwp11npgqzl782vq0w";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
 
   xf86videointel = (mkDerivation "xf86videointel" {
@@ -1635,6 +1806,7 @@ let
       sha256 = "0x11dig1wmpjz5n35sh30zs58ar8q8836w3zrkwkvgxj6q6smvvr";
     };
     buildInputs = [pkgconfig dri2proto dri3proto fontsproto libdrm libpng udev libpciaccess presentproto randrproto renderproto libX11 xcbutil libxcb libXcursor libXdamage libXext xextproto xf86driproto libXfixes xorgserver xproto libXrandr libXrender libxshmfence libXtst libXvMC ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit dri2proto dri3proto fontsproto libdrm libpng udev libpciaccess presentproto randrproto renderproto libX11 xcbutil libxcb libXcursor libXdamage libXext xextproto xf86driproto libXfixes xorgserver xproto libXrandr libXrender libxshmfence libXtst libXvMC ;};
 
   xf86videomach64 = (mkDerivation "xf86videomach64" {
@@ -1645,6 +1817,7 @@ let
       sha256 = "07xlf5nsjm0x18ij5gyy4lf8hwpl10i8chi3skpqjh84drdri61y";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
 
   xf86videomga = (mkDerivation "xf86videomga" {
@@ -1655,6 +1828,7 @@ let
       sha256 = "0kyl8w99arviv27pc349zsy2vinnm7mdpy34vr9nzisicw5nkij8";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
 
   xf86videomodesetting = (mkDerivation "xf86videomodesetting" {
@@ -1665,6 +1839,7 @@ let
       sha256 = "0p6pjn5bnd2wr3lmas4b12zcq12d9ilvssga93fzlg90fdahikwh";
     };
     buildInputs = [pkgconfig fontsproto libdrm udev libpciaccess randrproto libX11 xextproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto libdrm udev libpciaccess randrproto libX11 xextproto xorgserver xproto ;};
 
   xf86videoneomagic = (mkDerivation "xf86videoneomagic" {
@@ -1675,6 +1850,7 @@ let
       sha256 = "1whb2kgyqaxdjim27ya404acz50izgmafwnb6y9m89q5n6b97y3j";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto libpciaccess xorgserver xproto ;};
 
   xf86videonewport = (mkDerivation "xf86videonewport" {
@@ -1685,16 +1861,18 @@ let
       sha256 = "1yafmp23jrfdmc094i6a4dsizapsc9v0pl65cpc8w1kvn7343k4i";
     };
     buildInputs = [pkgconfig fontsproto randrproto renderproto videoproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto randrproto renderproto videoproto xorgserver xproto ;};
 
   xf86videonouveau = (mkDerivation "xf86videonouveau" {
-    name = "xf86-video-nouveau-1.0.11";
+    name = "xf86-video-nouveau-1.0.12";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-video-nouveau-1.0.11.tar.bz2;
-      sha256 = "0j3847rnffy81iaxxi6vnd8saadrc9jahfmckr0sjgkzg2rf4kzq";
+      url = mirror://xorg/individual/driver/xf86-video-nouveau-1.0.12.tar.bz2;
+      sha256 = "07irv1zkk0rkyn1d7f2gn1icgcz2ix0pwv74sjian763gynmg80f";
     };
     buildInputs = [pkgconfig dri2proto fontsproto libdrm udev libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit dri2proto fontsproto libdrm udev libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
 
   xf86videonv = (mkDerivation "xf86videonv" {
@@ -1705,6 +1883,7 @@ let
       sha256 = "1gqh1khc4zalip5hh2nksgs7i3piqq18nncgmsx9qvzi05azd5c3";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
 
   xf86videoopenchrome = (mkDerivation "xf86videoopenchrome" {
@@ -1715,6 +1894,7 @@ let
       sha256 = "1v8j4i1r268n4fc5gq54zg1x50j0rhw71f3lba7411mcblg2z7p4";
     };
     buildInputs = [pkgconfig fontsproto glproto libdrm udev libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xf86driproto xorgserver xproto libXvMC ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto glproto libdrm udev libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xf86driproto xorgserver xproto libXvMC ;};
 
   xf86videoqxl = (mkDerivation "xf86videoqxl" {
@@ -1725,6 +1905,7 @@ let
       sha256 = "1368dd5mihn3s098n7wa3fpjkp8pnamabfjjipkqs9zyrcvncy3m";
     };
     buildInputs = [pkgconfig fontsproto libdrm udev libpciaccess randrproto renderproto videoproto xf86dgaproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto libdrm udev libpciaccess randrproto renderproto videoproto xf86dgaproto xorgserver xproto ;};
 
   xf86videor128 = (mkDerivation "xf86videor128" {
@@ -1735,8 +1916,19 @@ let
       sha256 = "0g9m1n5184h05mq14vb6k288zm6g81a9m048id00l8v8f6h33mc0";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xf86miscproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xf86miscproto xorgserver xproto ;};
 
+  xf86videorendition = (mkDerivation "xf86videorendition" {
+    name = "xf86-video-rendition-4.2.6";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = mirror://xorg/individual/driver/xf86-video-rendition-4.2.6.tar.bz2;
+      sha256 = "1a7rqafxzc2hd0s5pnq8s8j9d3jg64ndc0xnq4160kasyqhwy3k6";
+    };
+    buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ];
+  }) // {inherit fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ;};
+
   xf86videos3virge = (mkDerivation "xf86videos3virge" {
     name = "xf86-video-s3virge-1.10.7";
     builder = ./builder.sh;
@@ -1745,6 +1937,7 @@ let
       sha256 = "1nm4cngjbw226q63rdacw6nx5lgxv7l7rsa8vhpr0gs80pg6igjx";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
 
   xf86videosavage = (mkDerivation "xf86videosavage" {
@@ -1755,6 +1948,7 @@ let
       sha256 = "0qzshncynjdmyhavhqw4x5ha3gwbygi0zbsy158fpg1jcnla9kpx";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
 
   xf86videosiliconmotion = (mkDerivation "xf86videosiliconmotion" {
@@ -1765,6 +1959,7 @@ let
       sha256 = "1sqv0y31mi4zmh9yaxqpzg7p8y2z01j6qys433hb8n4yznllkm79";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess videoproto xextproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto libpciaccess videoproto xextproto xorgserver xproto ;};
 
   xf86videosis = (mkDerivation "xf86videosis" {
@@ -1775,6 +1970,7 @@ let
       sha256 = "1znkqwdyd6am23xbsfjzamq125j5rrylg5mzqky4scv9gxbz5wy8";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xf86driproto xineramaproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xf86driproto xineramaproto xorgserver xproto ;};
 
   xf86videosuncg6 = (mkDerivation "xf86videosuncg6" {
@@ -1785,6 +1981,7 @@ let
       sha256 = "04fgwgk02m4nimlv67rrg1wnyahgymrn6rb2cjj1l8bmzkii4glr";
     };
     buildInputs = [pkgconfig fontsproto randrproto renderproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto randrproto renderproto xorgserver xproto ;};
 
   xf86videosunffb = (mkDerivation "xf86videosunffb" {
@@ -1795,6 +1992,7 @@ let
       sha256 = "07z3ngifwg2d4jgq8pms47n5lr2yn0ai72g86xxjnb3k20n5ym7s";
     };
     buildInputs = [pkgconfig fontsproto randrproto renderproto xextproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto randrproto renderproto xextproto xorgserver xproto ;};
 
   xf86videotdfx = (mkDerivation "xf86videotdfx" {
@@ -1805,6 +2003,7 @@ let
       sha256 = "0dvdrhyn1iv6rr85v1c52s1gl0j1qrxgv7x0r7qn3ba0gj38i2is";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
 
   xf86videotga = (mkDerivation "xf86videotga" {
@@ -1815,6 +2014,7 @@ let
       sha256 = "0cb161lvdgi6qnf1sfz722qn38q7kgakcvj7b45ba3i0020828r0";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ;};
 
   xf86videotrident = (mkDerivation "xf86videotrident" {
@@ -1825,6 +2025,7 @@ let
       sha256 = "1bhkwic2acq9za4yz4bwj338cwv5mdrgr2qmgkhlj3bscbg1imgc";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ;};
 
   xf86videov4l = (mkDerivation "xf86videov4l" {
@@ -1835,6 +2036,7 @@ let
       sha256 = "0pcjc75hgbih3qvhpsx8d4fljysfk025slxcqyyhr45dzch93zyb";
     };
     buildInputs = [pkgconfig randrproto videoproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit randrproto videoproto xorgserver xproto ;};
 
   xf86videovesa = (mkDerivation "xf86videovesa" {
@@ -1845,6 +2047,7 @@ let
       sha256 = "1haiw8r1z8ihk68d0jqph2wsld13w4qkl86biq46fvyxg7cg9pbv";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ;};
 
   xf86videovmware = (mkDerivation "xf86videovmware" {
@@ -1855,6 +2058,7 @@ let
       sha256 = "1k50whwnkzxam2ihc1sw456dx0pvr76naycm4qhyjxqv9d72879w";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xineramaproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xineramaproto xorgserver xproto ;};
 
   xf86videovoodoo = (mkDerivation "xf86videovoodoo" {
@@ -1865,6 +2069,7 @@ let
       sha256 = "1s6p7yxmi12q4y05va53rljwyzd6ry492r1pgi7wwq6cznivhgly";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto xextproto xf86dgaproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto libpciaccess randrproto renderproto xextproto xf86dgaproto xorgserver xproto ;};
 
   xf86videowsfb = (mkDerivation "xf86videowsfb" {
@@ -1875,6 +2080,7 @@ let
       sha256 = "0hr8397wpd0by1hc47fqqrnaw3qdqd8aqgwgzv38w5k3l3jy6p4p";
     };
     buildInputs = [pkgconfig xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit xorgserver xproto ;};
 
   xf86videoxgi = (mkDerivation "xf86videoxgi" {
@@ -1885,6 +2091,7 @@ let
       sha256 = "10xd2vah0pnpw5spn40n4p95mpmgvdkly4i1cz51imnlfsw7g8si";
     };
     buildInputs = [pkgconfig fontsproto glproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xineramaproto xorgserver xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit fontsproto glproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xineramaproto xorgserver xproto ;};
 
   xf86vidmodeproto = (mkDerivation "xf86vidmodeproto" {
@@ -1895,6 +2102,7 @@ let
       sha256 = "0w47d7gfa8zizh2bshdr2rffvbr4jqjv019mdgyh6cmplyd4kna5";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   xfs = (mkDerivation "xfs" {
@@ -1905,6 +2113,7 @@ let
       sha256 = "1ylz4r7adf567rnlbb52yi9x3qi4pyv954kkhm7ld4f0fkk7a2x4";
     };
     buildInputs = [pkgconfig libXfont xproto xtrans ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libXfont xproto xtrans ;};
 
   xgamma = (mkDerivation "xgamma" {
@@ -1915,6 +2124,7 @@ let
       sha256 = "1lr2nb1fhg5fk2fchqxdxyl739602ggwhmgl2wiv5c8qbidw7w8f";
     };
     buildInputs = [pkgconfig libX11 xproto libXxf86vm ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 xproto libXxf86vm ;};
 
   xgc = (mkDerivation "xgc" {
@@ -1925,6 +2135,7 @@ let
       sha256 = "0pigvjd3i9fchmj1inqy151aafz3dr0vq1h2zizdb2imvadqv0hl";
     };
     buildInputs = [pkgconfig libXaw libXt ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libXaw libXt ;};
 
   xhost = (mkDerivation "xhost" {
@@ -1935,6 +2146,7 @@ let
       sha256 = "16n26xw6l01zq31d4qvsaz50misvizhn7iihzdn5f7s72pp1krlk";
     };
     buildInputs = [pkgconfig libX11 libXau libXmu xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 libXau libXmu xproto ;};
 
   xineramaproto = (mkDerivation "xineramaproto" {
@@ -1945,6 +2157,7 @@ let
       sha256 = "0ns8abd27x7gbp4r44z3wc5k9zqxxj8zjnazqpcyr4n17nxp8xcp";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   xinit = (mkDerivation "xinit" {
@@ -1955,6 +2168,7 @@ let
       sha256 = "1cq2g469mb2cfgr8k57960yrn90bl33vfqri4pdh2zm0jxrqvn3m";
     };
     buildInputs = [pkgconfig libX11 xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 xproto ;};
 
   xinput = (mkDerivation "xinput" {
@@ -1965,6 +2179,7 @@ let
       sha256 = "1i75mviz9dyqyf7qigzmxq8vn31i86aybm662fzjz5c086dx551n";
     };
     buildInputs = [pkgconfig inputproto libX11 libXext libXi libXinerama libXrandr ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit inputproto libX11 libXext libXi libXinerama libXrandr ;};
 
   xkbcomp = (mkDerivation "xkbcomp" {
@@ -1975,6 +2190,7 @@ let
       sha256 = "0gcjy70ppmcl610z8gxc7sydsx93f8cm8pggm4qhihaa1ngdq103";
     };
     buildInputs = [pkgconfig libX11 libxkbfile xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 libxkbfile xproto ;};
 
   xkbevd = (mkDerivation "xkbevd" {
@@ -1985,6 +2201,7 @@ let
       sha256 = "0sprjx8i86ljk0l7ldzbz2xlk8916z5zh78cafjv8k1a63js4c14";
     };
     buildInputs = [pkgconfig libX11 libxkbfile ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 libxkbfile ;};
 
   xkbprint = (mkDerivation "xkbprint" {
@@ -1995,6 +2212,7 @@ let
       sha256 = "04iyv5z8aqhabv7wcpvbvq0ji0jrz1666vw6gvxkvl7szswalgqb";
     };
     buildInputs = [pkgconfig libX11 libxkbfile xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 libxkbfile xproto ;};
 
   xkbutils = (mkDerivation "xkbutils" {
@@ -2005,16 +2223,18 @@ let
       sha256 = "0c412isxl65wplhl7nsk12vxlri29lk48g3p52hbrs3m0awqm8fj";
     };
     buildInputs = [pkgconfig inputproto libX11 libXaw xproto libXt ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit inputproto libX11 libXaw xproto libXt ;};
 
   xkeyboardconfig = (mkDerivation "xkeyboardconfig" {
-    name = "xkeyboard-config-2.15";
+    name = "xkeyboard-config-2.16";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/data/xkeyboard-config/xkeyboard-config-2.15.tar.bz2;
-      sha256 = "1grqdy5a9f2dii3y24fn0p3kz4q5g9j2kh3jcj2402rgrbvkqi0f";
+      url = mirror://xorg/individual/data/xkeyboard-config/xkeyboard-config-2.16.tar.bz2;
+      sha256 = "0n0xinsljc5mww1qw7dfp8knv0f1r9hs6pdhl0fggdwn5hhiz2hy";
     };
     buildInputs = [pkgconfig libX11 xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 xproto ;};
 
   xkill = (mkDerivation "xkill" {
@@ -2025,6 +2245,7 @@ let
       sha256 = "0bl1ky8ps9jg842j4mnmf4zbx8nkvk0h77w7bqjlpwij9wq2mvw8";
     };
     buildInputs = [pkgconfig libX11 libXmu xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 libXmu xproto ;};
 
   xlsatoms = (mkDerivation "xlsatoms" {
@@ -2035,6 +2256,7 @@ let
       sha256 = "196yjik910xsr7dwy8daa0amr0r22ynfs360z0ndp9mx7mydrra7";
     };
     buildInputs = [pkgconfig libxcb ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libxcb ;};
 
   xlsclients = (mkDerivation "xlsclients" {
@@ -2045,6 +2267,7 @@ let
       sha256 = "0g9x7rrggs741x9xwvv1k9qayma980d88nhdqw7j3pn3qvy6d5jx";
     };
     buildInputs = [pkgconfig libxcb ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libxcb ;};
 
   xlsfonts = (mkDerivation "xlsfonts" {
@@ -2055,6 +2278,7 @@ let
       sha256 = "1yi774g6r1kafsbnxbkrwyndd3i60362ck1fps9ywz076pn5naa0";
     };
     buildInputs = [pkgconfig libX11 xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 xproto ;};
 
   xmag = (mkDerivation "xmag" {
@@ -2065,6 +2289,7 @@ let
       sha256 = "0qg12ifbbk9n8fh4jmyb625cknn8ssj86chd6zwdiqjin8ivr8l7";
     };
     buildInputs = [pkgconfig libX11 libXaw libXmu libXt ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 libXaw libXmu libXt ;};
 
   xmessage = (mkDerivation "xmessage" {
@@ -2075,6 +2300,7 @@ let
       sha256 = "0s5bjlpxnmh8sxx6nfg9m0nr32r1sr3irr71wsnv76s33i34ppxw";
     };
     buildInputs = [pkgconfig libXaw libXt ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libXaw libXt ;};
 
   xmodmap = (mkDerivation "xmodmap" {
@@ -2085,16 +2311,18 @@ let
       sha256 = "0y649an3jqfq9klkp9y5gj20xb78fw6g193f5mnzpl0hbz6fbc5p";
     };
     buildInputs = [pkgconfig libX11 xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 xproto ;};
 
   xorgcffiles = (mkDerivation "xorgcffiles" {
-    name = "xorg-cf-files-1.0.5";
+    name = "xorg-cf-files-1.0.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/util/xorg-cf-files-1.0.5.tar.bz2;
-      sha256 = "1m3ypq0xcy46ghxc0svl1rbhpy3zvgmy0aa2mn7w7v7d8d8bh8zd";
+      url = mirror://xorg/individual/util/xorg-cf-files-1.0.6.tar.bz2;
+      sha256 = "0kckng0zs1viz0nr84rdl6dswgip7ndn4pnh5nfwnviwpsfmmksd";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   xorgdocs = (mkDerivation "xorgdocs" {
@@ -2105,6 +2333,7 @@ let
       sha256 = "0jrc4jmb4raqawx0j9jmhgasr0k6sxv0bm2hrxjh9hb26iy6gf14";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   xorgserver = (mkDerivation "xorgserver" {
@@ -2115,6 +2344,7 @@ let
       sha256 = "0mv4ilpqi5hpg182mzqn766frhi6rw48aba3xfbaj4m82v0lajqc";
     };
     buildInputs = [pkgconfig dri2proto dri3proto renderproto libdrm openssl libX11 libXau libXaw libxcb xcbutil xcbutilwm xcbutilimage xcbutilkeysyms xcbutilrenderutil libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit dri2proto dri3proto renderproto libdrm openssl libX11 libXau libXaw libxcb xcbutil xcbutilwm xcbutilimage xcbutilkeysyms xcbutilrenderutil libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt ;};
 
   # TODO:
@@ -2140,6 +2370,7 @@ let
       sha256 = "0k5pffyi5bx8dmfn033cyhgd3gf6viqj3x769fqixifwhbgy2777";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   xpr = (mkDerivation "xpr" {
@@ -2150,6 +2381,7 @@ let
       sha256 = "1dbcv26w2yand2qy7b3h5rbvw1mdmdd57jw88v53sgdr3vrqvngy";
     };
     buildInputs = [pkgconfig libX11 libXmu xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 libXmu xproto ;};
 
   xprop = (mkDerivation "xprop" {
@@ -2160,6 +2392,7 @@ let
       sha256 = "1ilvhqfjcg6f1hqahjkp8qaay9rhvmv2blvj3w9asraq0aqqivlv";
     };
     buildInputs = [pkgconfig libX11 xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 xproto ;};
 
   xproto = (mkDerivation "xproto" {
@@ -2170,6 +2403,7 @@ let
       sha256 = "1jpnvm33vi2dar5y5zgz7jjh0m8fpkcxm0f0lbwfx37ns5l5bs19";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   xrandr = (mkDerivation "xrandr" {
@@ -2180,6 +2414,7 @@ let
       sha256 = "06xy0kr6ih7ilrwl6b5g6ay75vm2j4lxnv1d5xlj6sdqhqsaqm3i";
     };
     buildInputs = [pkgconfig libX11 xproto libXrandr libXrender ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 xproto libXrandr libXrender ;};
 
   xrdb = (mkDerivation "xrdb" {
@@ -2190,6 +2425,7 @@ let
       sha256 = "0nsnr90wazcdd50nc5dqswy0bmq6qcj14nnrhyi7rln9pxmpp0kk";
     };
     buildInputs = [pkgconfig libX11 libXmu xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 libXmu xproto ;};
 
   xrefresh = (mkDerivation "xrefresh" {
@@ -2200,6 +2436,7 @@ let
       sha256 = "1mlinwgvql6s1rbf46yckbfr9j22d3c3z7jx3n6ix7ca18dnf4rj";
     };
     buildInputs = [pkgconfig libX11 xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 xproto ;};
 
   xset = (mkDerivation "xset" {
@@ -2210,6 +2447,7 @@ let
       sha256 = "0qw0iic27bz3yz2wynf1gxs70hhkcf9c4jrv7zhlg1mq57xz90j3";
     };
     buildInputs = [pkgconfig libX11 libXext libXmu xproto libXxf86misc ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 libXext libXmu xproto libXxf86misc ;};
 
   xsetroot = (mkDerivation "xsetroot" {
@@ -2220,6 +2458,7 @@ let
       sha256 = "1bazzsf9sy0q2bj4lxvh1kvyrhmpggzb7jg575i15sksksa3xwc8";
     };
     buildInputs = [pkgconfig libX11 xbitmaps libXcursor libXmu ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 xbitmaps libXcursor libXmu ;};
 
   xtrans = (mkDerivation "xtrans" {
@@ -2230,6 +2469,7 @@ let
       sha256 = "00c3ph17acnsch3gbdmx33b9ifjnl5w7vx8hrmic1r1cjcv3pgdd";
     };
     buildInputs = [pkgconfig ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit ;};
 
   xvinfo = (mkDerivation "xvinfo" {
@@ -2240,6 +2480,7 @@ let
       sha256 = "1sz5wqhxd1fqsfi1w5advdlwzkizf2fgl12hdpk66f7mv9l8pflz";
     };
     buildInputs = [pkgconfig libX11 xproto libXv ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 xproto libXv ;};
 
   xwd = (mkDerivation "xwd" {
@@ -2250,6 +2491,7 @@ let
       sha256 = "0ybx48agdvjp9lgwvcw79r1x6jbqbyl3fliy3i5xwy4d4si9dcrv";
     };
     buildInputs = [pkgconfig libX11 xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 xproto ;};
 
   xwininfo = (mkDerivation "xwininfo" {
@@ -2260,6 +2502,7 @@ let
       sha256 = "1y1zn8ijqslb5lfpbq4bb78kllhch8in98ps7n8fg3dxjpmb13i1";
     };
     buildInputs = [pkgconfig libX11 libxcb xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 libxcb xproto ;};
 
   xwud = (mkDerivation "xwud" {
@@ -2270,6 +2513,7 @@ let
       sha256 = "1ggql6maivah58kwsh3z9x1hvzxm1a8888xx4s78cl77ryfa1cyn";
     };
     buildInputs = [pkgconfig libX11 xproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit libX11 xproto ;};
 
 }; in xorg
diff --git a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl
index 6665a3bc00a9..054e3f490e44 100755
--- a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl
+++ b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl
@@ -280,6 +280,7 @@ foreach my $pkg (sort (keys %pkgURLs)) {
       sha256 = "$pkgHashes{$pkg}";
     };
     buildInputs = [pkgconfig $inputs];$extraAttrs
+    meta.platforms = stdenv.lib.platforms.unix;
   }) // {inherit $inputs;};
 
 EOF
diff --git a/pkgs/servers/x11/xorg/old.list b/pkgs/servers/x11/xorg/old.list
index 92fed797d70f..801f6e0b7971 100644
--- a/pkgs/servers/x11/xorg/old.list
+++ b/pkgs/servers/x11/xorg/old.list
@@ -12,4 +12,4 @@ mirror://xorg/individual/proto/xf86miscproto-0.9.3.tar.bz2
 mirror://xorg/individual/util/gccmakedep-1.0.3.tar.bz2
 mirror://xorg/individual/util/imake-1.0.7.tar.bz2
 mirror://xorg/individual/util/lndir-1.0.3.tar.bz2
-mirror://xorg/individual/util/xorg-cf-files-1.0.5.tar.bz2
+mirror://xorg/individual/util/xorg-cf-files-1.0.6.tar.bz2
diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix
index e8da348a4610..a0405ec077f3 100644
--- a/pkgs/servers/x11/xorg/overrides.nix
+++ b/pkgs/servers/x11/xorg/overrides.nix
@@ -413,6 +413,10 @@ in
           wrapProgram $out/bin/Xephyr \
             --set XKB_BINDIR "${xorg.xkbcomp}/bin" \
             --add-flags "-xkbdir ${xorg.xkeyboardconfig}/share/X11/xkb"
+          wrapProgram $out/bin/Xvfb \
+            --set XKB_BINDIR "${xorg.xkbcomp}/bin" \
+            --set XORG_DRI_DRIVER_PATH ${args.mesa}/lib/dri \
+            --add-flags "-xkbdir ${xorg.xkeyboardconfig}/share/X11/xkb"
           ( # assert() keeps runtime reference xorgserver-dev in xf86-video-intel and others
             cd "$dev"
             for f in include/xorg/*.h; do
diff --git a/pkgs/servers/x11/xorg/replacements.nix b/pkgs/servers/x11/xorg/replacements.nix
deleted file mode 100644
index 175d05b0a364..000000000000
--- a/pkgs/servers/x11/xorg/replacements.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{stdenv, fetchurl, xorg, automake, autoconf, libtool, makeOverridable}:
-{
-  xf86videoati = {src, suffix}: 
-  makeOverridable stdenv.mkDerivation {
-      name = "xf86-video-ati-${suffix}";
-      buildInputs = xorg.xf86videoati.buildInputs ++
-         [autoconf automake libtool];
-      builder = ./builder.sh;
-      inherit src;
-      preConfigure = ''
-        export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -DPACKAGE_VERSION_MAJOR=6"
-        export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -DPACKAGE_VERSION_MINOR=9"
-        export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -DPACKAGE_VERSION_PATCHLEVEL=999"
-
-        sed -e 's/@DRIVER_MAN_SUFFIX@/man/g' -i man/Makefile.am
-        export DRIVER_MAN_DIR=$out/share/man/man5 
-
-        ./autogen.sh
-      '';
-  };
-}
diff --git a/pkgs/servers/x11/xorg/tarballs-7.7.list b/pkgs/servers/x11/xorg/tarballs-7.7.list
index 7292c6711444..ddda39c76f7f 100644
--- a/pkgs/servers/x11/xorg/tarballs-7.7.list
+++ b/pkgs/servers/x11/xorg/tarballs-7.7.list
@@ -69,8 +69,9 @@ 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.1.tar.bz2
 mirror://xorg/individual/lib/libXfont-1.5.1.tar.bz2
+mirror://xorg/individual/lib/libXfont2-2.0.1.tar.bz2
 mirror://xorg/individual/lib/libXft-2.3.2.tar.bz2
-mirror://xorg/individual/lib/libXi-1.7.5.tar.bz2
+mirror://xorg/individual/lib/libXi-1.7.6.tar.bz2
 mirror://xorg/individual/lib/libXinerama-1.1.3.tar.bz2
 mirror://xorg/individual/lib/libxkbfile-1.0.9.tar.bz2
 mirror://xorg/individual/lib/libXmu-1.1.2.tar.bz2
@@ -118,19 +119,19 @@ mirror://xorg/individual/proto/xextproto-7.3.0.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86bigfontproto-1.2.0.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86dgaproto-2.1.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86driproto-2.1.1.tar.bz2
-mirror://xorg/individual/driver/xf86-input-evdev-2.9.2.tar.bz2
+mirror://xorg/individual/driver/xf86-input-evdev-2.10.0.tar.bz2
 mirror://xorg/individual/driver/xf86-input-joystick-1.6.2.tar.bz2
 mirror://xorg/individual/driver/xf86-input-keyboard-1.8.1.tar.bz2
-mirror://xorg/individual/driver/xf86-input-libinput-0.14.0.tar.bz2
+mirror://xorg/individual/driver/xf86-input-libinput-0.16.0.tar.bz2
 mirror://xorg/individual/driver/xf86-input-mouse-1.9.1.tar.bz2
-mirror://xorg/individual/driver/xf86-input-synaptics-1.8.2.tar.bz2
+mirror://xorg/individual/driver/xf86-input-synaptics-1.8.3.tar.bz2
 mirror://xorg/individual/driver/xf86-input-vmmouse-13.1.0.tar.bz2
 mirror://xorg/individual/driver/xf86-input-void-1.4.1.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.5.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-ati-7.6.1.tar.bz2
 mirror://xorg/individual/driver/glamor-egl-0.6.0.tar.bz2
-mirror://xorg/individual/driver/xf86-video-nouveau-1.0.11.tar.bz2
+mirror://xorg/individual/driver/xf86-video-nouveau-1.0.12.tar.bz2
 mirror://xorg/individual/driver/xf86-video-chips-1.2.6.tar.bz2
 mirror://xorg/individual/driver/xf86-video-cirrus-1.5.3.tar.bz2
 mirror://xorg/individual/driver/xf86-video-dummy-0.3.7.tar.bz2
@@ -150,6 +151,7 @@ mirror://xorg/X11R7.7/src/everything/xf86-video-newport-0.2.4.tar.bz2
 mirror://xorg/individual/driver/xf86-video-nv-2.1.20.tar.bz2
 mirror://xorg/individual/driver/xf86-video-openchrome-0.3.3.tar.bz2
 mirror://xorg/individual/driver/xf86-video-r128-6.10.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-rendition-4.2.6.tar.bz2
 mirror://xorg/individual/driver/xf86-video-s3virge-1.10.7.tar.bz2
 mirror://xorg/individual/driver/xf86-video-savage-2.3.8.tar.bz2
 mirror://xorg/individual/driver/xf86-video-siliconmotion-1.7.8.tar.bz2
@@ -170,11 +172,11 @@ mirror://xorg/individual/app/xgamma-1.0.6.tar.bz2
 mirror://xorg/individual/app/xgc-1.0.5.tar.bz2
 mirror://xorg/individual/app/xhost-1.0.7.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xineramaproto-1.2.1.tar.bz2
-mirror://xorg/individual/app/xinput-1.6.1.tar.bz2
-mirror://xorg/individual/app/xkbcomp-1.3.0.tar.bz2
+mirror://xorg/individual/app/xinput-1.6.2.tar.bz2
+mirror://xorg/individual/app/xkbcomp-1.3.1.tar.bz2
 mirror://xorg/individual/app/xkbevd-1.1.4.tar.bz2
 mirror://xorg/individual/app/xkbutils-1.0.4.tar.bz2
-mirror://xorg/individual/data/xkeyboard-config/xkeyboard-config-2.15.tar.bz2
+mirror://xorg/individual/data/xkeyboard-config/xkeyboard-config-2.16.tar.bz2
 mirror://xorg/individual/app/xkill-1.0.4.tar.bz2
 mirror://xorg/individual/app/xlsatoms-1.1.2.tar.bz2
 mirror://xorg/individual/app/xlsclients-1.1.3.tar.bz2
@@ -182,7 +184,7 @@ mirror://xorg/individual/app/xlsfonts-1.0.5.tar.bz2
 mirror://xorg/individual/app/xmag-1.0.6.tar.bz2
 mirror://xorg/individual/app/xmodmap-1.0.9.tar.bz2
 mirror://xorg/individual/doc/xorg-docs-1.7.1.tar.bz2
-mirror://xorg/individual/xserver/xorg-server-1.17.2.tar.bz2
+mirror://xorg/individual/xserver/xorg-server-1.17.4.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xorg-sgml-doctools-1.11.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xpr-1.0.4.tar.bz2
 mirror://xorg/individual/app/xprop-1.2.2.tar.bz2
diff --git a/pkgs/servers/x11/xorg/unichrome/configure.patch b/pkgs/servers/x11/xorg/unichrome/configure.patch
deleted file mode 100644
index 3c9fc927711b..000000000000
--- a/pkgs/servers/x11/xorg/unichrome/configure.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-diff --git a/configure.ac b/configure.ac
-index bacea8a..691a9fa 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -77,6 +77,14 @@ AC_MSG_CHECKING([X protocol headers directory])
- protodir=$(pkg-config --variable=includex11dir xproto)
- AC_MSG_RESULT([$protodir])
- 
-+AC_MSG_CHECKING([X extension protocol headers directory])
-+extprotodir=$(pkg-config --variable=includedir xextproto)
-+AC_MSG_RESULT([$extprotodir])
-+
-+AC_MSG_CHECKING([XvMC headers directory])
-+xvmcdir=$(pkg-config --variable=includedir xvmc)
-+AC_MSG_RESULT([$extprotodir])
-+
- # Checks for libraries.
- 
- # Checks for header files.
-@@ -139,7 +147,7 @@ if test "x$have_xvmc" != xno; then
- 		      [have_xvmc_h="yes"], [have_xvmc_h="no"])
- 	AC_CHECK_FILE([${protodir}/extensions/vldXvMC.h],
- 		      [have_vldxvmc_h="yes"], [have_vldxvmc_h="no"])
--	AC_CHECK_FILE([${protodir}/extensions/XvMClib.h],
-+	AC_CHECK_FILE([${xvmcdir}/X11/extensions/XvMClib.h],
- 		      [have_xvmclib_h="yes"], [have_xvmclib_h="no"])
- fi
- 
-@@ -225,7 +233,7 @@ fi
- CFLAGS="$SAVED_CFLAGS"
- 
- # in the xserver 1.7 timeframe, the protocol headers were split up.
--AC_CHECK_FILE([${protodir}/extensions/dpmsconst.h],
-+AC_CHECK_FILE([${extprotodir}/X11/extensions/dpmsconst.h],
- 	      [have_dpmsconst_h="yes"], [have_dpmsconst_h="no"])
- if test "x$have_dpmsconst_h" = xyes; then
- 	AC_DEFINE(HAVE_DPMSCONST_H, 1, [Proto Headers have dpmsconst.h])
diff --git a/pkgs/servers/x11/xorg/unichrome/default.nix b/pkgs/servers/x11/xorg/unichrome/default.nix
deleted file mode 100644
index b9cedfc4679f..000000000000
--- a/pkgs/servers/x11/xorg/unichrome/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{stdenv, fetchgit, pkgconfig, fontsproto, libdrm, libpciaccess, randrproto, renderproto,
-videoproto, libX11,
-xextproto, xf86driproto, xorgserver, xproto, libXvMC, glproto, mesa, automake,
-autoconf, libtool, libXext, utilmacros, pixman}:
-
-stdenv.mkDerivation {
-  name = "xf86-video-unichrome";
-  src = fetchgit {
-    url = "git://people.freedesktop.org/~libv/xf86-video-unichrome";
-    md5 = "6e5e0f8ee204af2385a02e502d1ca8f1";
-    rev = "6260e0fc9f0754d101dda014a8f4b5f76f58e978";
-  };
-  buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto
-    videoproto libX11 libXext xextproto xf86driproto xorgserver xproto libXvMC
-    glproto mesa automake autoconf libtool libXext utilmacros pixman ];
-  preConfigure = "chmod +x autogen.sh";
-  prePatch = ''
-    sed s,/bin/bash,/bin/sh, -i git_version.sh
-  '';
-  patches = [ ./configure.patch ];
-  configureScript = "./autogen.sh";
-  CFLAGS="-I${pixman}/include/pixman-1";
-
-  meta = {
-    homepage = "http://unichrome.sourceforge.net/";
-    description = "Xorg video driver for the S3 Unichrome family of integrated graphics devices";
-    license = stdenv.lib.licenses.free;
-    maintainers = with stdenv.lib.maintainers; [viric];
-    platforms = with stdenv.lib.platforms; linux;
-    broken = true;
-  };
-}
diff --git a/pkgs/servers/xmpp/ejabberd/default.nix b/pkgs/servers/xmpp/ejabberd/default.nix
index 3a77c5cd15c6..2fb6f7a4b2df 100644
--- a/pkgs/servers/xmpp/ejabberd/default.nix
+++ b/pkgs/servers/xmpp/ejabberd/default.nix
@@ -1,23 +1,275 @@
-{stdenv, fetchurl, expat, erlang, zlib, openssl, pam, lib}:
+{ stdenv, writeScriptBin, lib, fetchurl, fetchFromGitHub
+, erlang, openssl, expat, libyaml, bash, gnused, gnugrep, coreutils, utillinux, procps
+, withMysql ? false
+, withPgsql ? false
+, withSqlite ? false, sqlite
+, withPam ? false, pam
+, withZlib ? true, zlib
+, withRiak ? false
+, withElixir ? false, elixir
+, withIconv ? true
+, withLager ? true
+, withTools ? false
+, withRedis ? false
+}:
 
-stdenv.mkDerivation rec {
-  version = "2.1.13";
+let
+  ctlpath = lib.makeSearchPath "bin" [ bash gnused gnugrep coreutils utillinux procps ];
+
+  fakegit = writeScriptBin "git" ''
+    #! ${stdenv.shell}
+    exit 0
+  '';
+
+  # These can be extracted from `rebar.config.script`
+  # Some dependencies are from another packages. Try commenting them out; then during build
+  # you'll get necessary revision information.
+  ejdeps = {
+    p1_cache_tab = fetchFromGitHub {
+      owner = "processone";
+      repo = "cache_tab";
+      rev = "f7ea12b0ba962a3d2f9a406d2954cf7de4e27230";
+      sha256 = "043rz66s6vhcbk02qjhn1r8jv8yyy4gk0gsknmk7ya6wq2v1farw";
+    };
+    p1_tls = fetchFromGitHub {
+      owner = "processone";
+      repo = "tls";
+      rev = "e56321afd974e9da33da913cd31beebc8e73e75f";
+      sha256 = "0k8dx8mww2ilr4y5m2llhqh673l0z7r73f0lh7klyf57wfqy7hzk";
+    };
+    p1_stringprep = fetchFromGitHub {
+      owner = "processone";
+      repo = "stringprep";
+      rev = "3c640237a3a7831dc39de6a6d329d3a9af25c579";
+      sha256 = "0mwlkivkfj16bdv80jr8kqa0vcqglxkq90m9qn0m6zp4bjc3jm3n";
+    };
+    p1_xml = fetchFromGitHub {
+      owner = "processone";
+      repo = "xml";
+      rev = "1c8b016b0ac7986efb823baf1682a43565449e65";
+      sha256 = "192jhj0cwwypbiass3rm2449410pqyk3mgrdg7yyvqwmjzzkmh87";
+    };
+    esip = fetchFromGitHub {
+      owner = "processone";
+      repo = "p1_sip";
+      rev = "d662d3fe7f6288b444ea321d854de0bd6d40e022";
+      sha256 = "1mwzkkv01vr9n13h6h3100jrrlgb683ncq9jymnbxqxk6rn7xjd1";
+    };
+    p1_stun = fetchFromGitHub {
+      owner = "processone";
+      repo = "stun";
+      rev = "061bdae484268cbf0457ad4797e74b8516df3ad1";
+      sha256 = "0zaw8yq4sk7x4ybibcq93k9b6rb7fn03i0k8gb2dnlipmbcdd8cf";
+    };
+    p1_yaml = fetchFromGitHub {
+      owner = "processone";
+      repo = "p1_yaml";
+      rev = "79f756ba73a235c4d3836ec07b5f7f2b55f49638";
+      sha256 = "05jjw02ay8v34izwgi5zizqp1mj68ypjilxn59c262xj7c169pzh";
+    };
+    p1_utils = fetchFromGitHub {
+      owner = "processone";
+      repo = "p1_utils";
+      rev = "d7800881e6702723ce58b7646b60c9e4cd25d563";
+      sha256 = "07p47ccrdjymjmn6rn9jlcyg515bs9l0iwfbc75qsk10ddnmbvdi";
+    };
+    jiffy = fetchFromGitHub {
+      owner = "davisp";
+      repo = "jiffy";
+      rev = "cfc61a2e952dc3182e0f9b1473467563699992e2";
+      sha256 = "1c2x71x90jlx4585znxz8fg46q3jxm80nk7v184lf4pqa1snk8kk";
+    };
+    oauth2 = fetchFromGitHub {
+      owner = "prefiks";
+      repo = "oauth2";
+      rev = "e6da9912e5d8f658e7e868f41a102d085bdbef59";
+      sha256 = "0di33bkj8xc7h17z1fs4birp8a88c1ds72jc4xz2qmz8kh7q9m3k";
+    };
+    xmlrpc = fetchFromGitHub {
+      owner = "rds13";
+      repo = "xmlrpc";
+      rev = "42e6e96a0fe7106830274feed915125feb1056f3";
+      sha256 = "10dk480s6z653lr5sap4rcx3zsfmg68hgapvc4jvcyf7vgg12d3s";
+    };
+
+    p1_mysql = fetchFromGitHub {
+      owner = "processone";
+      repo = "mysql";
+      rev = "dfa87da95f8fdb92e270741c2a53f796b682f918";
+      sha256 = "1nw7n1xvid4yqp57s94drdjf6ffap8zpy8hkrz9yffzkhk9biz5y";
+    };
+    p1_pgsql = fetchFromGitHub {
+      owner = "processone";
+      repo = "pgsql";
+      rev = "e72c03c60bfcb56bbb5d259342021d9cb3581dac";
+      sha256 = "0y89995h7g8bi12qi1m4cdzcswsljbv7y8zb43rjg5ss2bcq7kb6";
+    };
+    sqlite3 = fetchFromGitHub {
+      owner = "alexeyr";
+      repo = "erlang-sqlite3";
+      rev = "8350dc603804c503f99c92bfd2eab1dd6885758e";
+      sha256 = "0d0pbqmi3hsvzjp4vjp7a6bq3pjvkfv0spszh6485x9cmxsbwfpc";
+    };
+    p1_pam = fetchFromGitHub {
+      owner = "processone";
+      repo = "epam";
+      rev = "d3ce290b7da75d780a03e86e7a8198a80e9826a6";
+      sha256 = "0s0czrgjvc1nw7j66x8b9rlajcap0yfnv6zqd4gs76ky6096qpb0";
+    };
+    p1_zlib = fetchFromGitHub {
+      owner = "processone";
+      repo = "zlib";
+      rev = "e3d4222b7aae616d7ef2e7e2fa0bbf451516c602";
+      sha256 = "0z960nwva8x4lw1k91i53kpn2bjbf1v1amslkyp8sx2gc5zf0gbn";
+    };
+    riakc = fetchFromGitHub {
+      owner = "basho";
+      repo = "riak-erlang-client";
+      rev = "1.4.2";
+      sha256 = "128jz83n1990m9c2fzwsif6hyapmq46720nzfyyb4z2j75vn85zz";
+    };
+    # dependency of riakc
+    riak_pb = fetchFromGitHub {
+      owner = "basho";
+      repo = "riak_pb";
+      rev = "1.4.4.0";
+      sha256 = "054fg9gaxk4n0id0qs6k8i919qvxsvmh76m6fgfbmixyfxh5jp3w";
+    };
+    # dependency of riak_pb
+    protobuffs = fetchFromGitHub {
+      owner = "basho";
+      repo = "erlang_protobuffs";
+      rev = "0.8.1p1";
+      sha256 = "1x75a26y1gx6pzr829i4sx2mxm5w40kb6hfd5y511him56jcczna";
+    };
+    rebar_elixir_plugin = fetchFromGitHub {
+      owner = "yrashk";
+      repo = "rebar_elixir_plugin";
+      rev = "7058379b7c7e017555647f6b9cecfd87cd50f884";
+      sha256 = "1s5bvbrhal866gbp72lgp0jzphs2cmgmafmka0pylwj30im41c71";
+    };
+    elixir = fetchFromGitHub {
+      owner = "elixir-lang";
+      repo = "elixir";
+      rev = "1d9548fd285d243721b7eba71912bde2ffd1f6c3";
+      sha256 = "1lxn9ly73rm797p6slfx7grsq32nn6bz15qhkbra834rj01fqzh8";
+    };
+    p1_iconv = fetchFromGitHub {
+      owner = "processone";
+      repo = "eiconv";
+      rev = "8b7542b1aaf0a851f335e464956956985af6d9a2";
+      sha256 = "1w3k41fpynqylc2vnirz0fymlidpz0nnym0070f1f1s3pd6g5906";
+    };
+    lager = fetchFromGitHub {
+      owner = "basho";
+      repo = "lager";
+      rev = "4d2ec8c701e1fa2d386f92f2b83b23faf8608ac3";
+      sha256 = "03aav3cid0qpl1n8dn83hk0p70rw05nqvhq1abdh219nrlk9gfmx";
+    };
+    # dependency of lager
+    goldrush = fetchFromGitHub {
+      owner = "DeadZen";
+      repo = "goldrush";
+      rev = "0.1.7";
+      sha256 = "1104j8v86hdavxf08yjyjkpi5vf95rfvsywdx29c69x3z33i4z3m";
+    };
+    p1_logger = fetchFromGitHub {
+      owner = "processone";
+      repo = "p1_logger";
+      rev = "3e19507fd5606a73694917158767ecb3f5704e3f";
+      sha256 = "0mq86gh8x3bgqcpwdjkdn7m3bj2006gbarnj7cn5dfs21m2h2mdn";
+    };
+    meck = fetchFromGitHub {
+      owner = "eproxus";
+      repo = "meck";
+      rev = "fc362e037f424250130bca32d6bf701f2f49dc75";
+      sha256 = "056yca394f8mbg8vwxxlq47dbjx48ykdrg4lvnbi5gfijl786i3s";
+    };
+    eredis = fetchFromGitHub {
+      owner = "wooga";
+      repo = "eredis";
+      rev = "770f828918db710d0c0958c6df63e90a4d341ed7";
+      sha256 = "0qv8hldn5972328pa1qz2lbblw1p2283js5y98dc8papldkicvmm";
+    };
+
+  };
+
+in stdenv.mkDerivation rec {
+  version = "15.11";
   name = "ejabberd-${version}";
+
   src = fetchurl {
     url = "http://www.process-one.net/downloads/ejabberd/${version}/${name}.tgz";
-    sha256 = "0vf8mfrx7vr3c5h3nfp3qcgwf2kmzq20rjv1h9sk3nimwir1q3d8";
+    sha256 = "0sll1si9pd4v7yibzr8hp18hfrbxsa5nj9h7qsldvy7r4md4n101";
   };
-  buildInputs = [ expat erlang zlib openssl pam ];
-  patchPhase = ''
-    sed -i \
-      -e "s|erl \\\|${erlang}/bin/erl \\\|" \
-      -e 's|EXEC_CMD=\"sh -c\"|EXEC_CMD=\"${stdenv.shell} -c\"|' \
-      src/ejabberdctl.template
+
+  nativeBuildInputs = [ fakegit ];
+
+  buildInputs = [ erlang openssl expat libyaml ]
+    ++ lib.optional withSqlite sqlite
+    ++ lib.optional withPam pam
+    ++ lib.optional withZlib zlib
+    ++ lib.optional withElixir elixir
+    ;
+
+  # Apparently needed for Elixir
+  LANG = "en_US.UTF-8";
+
+  depsNames =
+    [ "p1_cache_tab" "p1_tls" "p1_stringprep" "p1_xml" "esip" "p1_stun" "p1_yaml" "p1_utils" "jiffy" "oauth2" "xmlrpc" ]
+    ++ lib.optional withMysql "p1_mysql"
+    ++ lib.optional withPgsql "p1_pgsql"
+    ++ lib.optional withSqlite "sqlite3"
+    ++ lib.optional withPam "p1_pam"
+    ++ lib.optional withZlib "p1_zlib"
+    ++ lib.optionals withRiak [ "riakc" "riak_pb" "protobuffs" ]
+    ++ lib.optionals withElixir [ "rebar_elixir_plugin" "elixir" ]
+    ++ lib.optional withIconv "p1_iconv"
+    ++ lib.optionals withLager [ "lager" "goldrush" ]
+    ++ lib.optional (!withLager) "p1_logger"
+    ++ lib.optional withTools "meck"
+    ++ lib.optional withRedis "eredis"
+  ;
+
+  configureFlags =
+    [ "--enable-nif"
+      (lib.enableFeature withMysql "mysql")
+      (lib.enableFeature withPgsql "pgsql")
+      (lib.enableFeature withSqlite "sqlite")
+      (lib.enableFeature withPam "pam")
+      (lib.enableFeature withZlib "zlib")
+      (lib.enableFeature withRiak "riak")
+      (lib.enableFeature withElixir "elixir")
+      (lib.enableFeature withIconv "iconv")
+      (lib.enableFeature withLager "lager")
+      (lib.enableFeature withTools "tools")
+      (lib.enableFeature withRedis "redis")
+    ] ++ lib.optional withSqlite "--with-sqlite3=${sqlite}";
+
+  depsPaths = map (x: builtins.getAttr x ejdeps) depsNames;
+
+  enableParallelBuilding = true;
+
+  preBuild = ''
+    mkdir deps
+    depsPathsA=( $depsPaths )
+    depsNamesA=( $depsNames )
+    for i in {0..${toString (builtins.length depsNames - 1)}}; do
+      cp -R ''${depsPathsA[$i]} deps/''${depsNamesA[$i]}
+    done
+    chmod -R +w deps
+    touch deps/.got
+    patchShebangs .
   '';
-  preConfigure = ''
-    cd src
+
+  postInstall = ''
+    sed -i \
+      -e '2iexport PATH=${ctlpath}:$PATH' \
+      -e 's,\(^ *FLOCK=\).*,\1${utillinux}/bin/flock,' \
+      -e 's,\(^ *JOT=\).*,\1,' \
+      -e 's,\(^ *CONNLOCKDIR=\).*,\1/var/lock/ejabberdctl,' \
+      $out/sbin/ejabberdctl
   '';
-  configureFlags = ["--enable-pam"];
 
   meta = {
     description = "Open-source XMPP application server written in Erlang";