summary refs log tree commit diff
path: root/pkgs/servers
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/servers')
-rw-r--r--pkgs/servers/amqp/rabbitmq-server/default.nix4
-rw-r--r--pkgs/servers/etcd/default.nix30
-rw-r--r--pkgs/servers/etcd/deps.nix54
-rw-r--r--pkgs/servers/fleet/default.nix30
-rw-r--r--pkgs/servers/fleet/deps.nix81
-rw-r--r--pkgs/servers/http/apache-httpd/2.4.nix4
-rw-r--r--pkgs/servers/http/couchdb/default.nix4
-rw-r--r--pkgs/servers/http/nginx/default.nix32
-rw-r--r--pkgs/servers/http/nix-binary-cache/default.nix61
-rw-r--r--pkgs/servers/http/nix-binary-cache/nix-binary-cache-start.in105
-rw-r--r--pkgs/servers/http/nix-binary-cache/nix-binary-cache.cgi.in97
-rw-r--r--pkgs/servers/http/tomcat/axis2/default.nix4
-rw-r--r--pkgs/servers/monitoring/munin/default.nix11
-rw-r--r--pkgs/servers/monitoring/nagios/default.nix27
-rw-r--r--pkgs/servers/monitoring/nagios/nagios.patch18
-rw-r--r--pkgs/servers/monitoring/nagios/plugins/official-2.x.nix (renamed from pkgs/servers/monitoring/nagios/plugins/official/default.nix)22
-rw-r--r--pkgs/servers/mpd/default.nix2
-rw-r--r--pkgs/servers/nsq/default.nix37
-rw-r--r--pkgs/servers/nsq/deps.nix134
-rw-r--r--pkgs/servers/polipo/default.nix10
-rw-r--r--pkgs/servers/pulseaudio/default.nix6
-rw-r--r--pkgs/servers/restund/default.nix4
-rw-r--r--pkgs/servers/samba/default.nix6
-rw-r--r--pkgs/servers/search/elasticsearch/default.nix12
-rw-r--r--pkgs/servers/search/elasticsearch/plugins.nix53
-rw-r--r--pkgs/servers/serfdom/default.nix144
-rw-r--r--pkgs/servers/serfdom/deps.nix185
-rw-r--r--pkgs/servers/sql/mariadb/default.nix2
-rw-r--r--pkgs/servers/sql/mysql/5.5.x.nix5
-rw-r--r--pkgs/servers/x11/xorg/default.nix10
-rw-r--r--pkgs/servers/x11/xorg/tarballs-7.7.list1
-rw-r--r--pkgs/servers/xmpp/openfire/default.nix47
32 files changed, 1032 insertions, 210 deletions
diff --git a/pkgs/servers/amqp/rabbitmq-server/default.nix b/pkgs/servers/amqp/rabbitmq-server/default.nix
index da0ec89cbc6..09b091b323c 100644
--- a/pkgs/servers/amqp/rabbitmq-server/default.nix
+++ b/pkgs/servers/amqp/rabbitmq-server/default.nix
@@ -4,11 +4,11 @@
 stdenv.mkDerivation rec {
   name = "rabbitmq-server-${version}";
 
-  version = "3.2.4";
+  version = "3.3.4";
 
   src = fetchurl {
     url = "http://www.rabbitmq.com/releases/rabbitmq-server/v${version}/${name}.tar.gz";
-    sha256 = "17rvqhzcb7rscp228vmgixk0rsqi42m820jzxj9g5wid6qmzjc59";
+    sha256 = "13nnsn34b44mz8w4b69bcpxmq4daqnxzd0lppg0f138pcssha43l";
   };
 
   buildInputs =
diff --git a/pkgs/servers/etcd/default.nix b/pkgs/servers/etcd/default.nix
new file mode 100644
index 00000000000..1fb21f2b8ab
--- /dev/null
+++ b/pkgs/servers/etcd/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, lib, go, fetchurl, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  version = "0.4.3";
+  name = "etcd-${version}";
+
+  src = import ./deps.nix {
+    inherit stdenv lib fetchgit fetchhg fetchbzr fetchFromGitHub;
+  };
+
+  buildInputs = [ go ];
+
+  buildPhase = ''
+    export GOPATH=$src
+    go build -v -o etcd github.com/coreos/etcd
+  '';
+
+  installPhase = ''
+    ensureDir $out/bin
+    mv etcd $out/bin/etcd
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A highly-available key value store for shared configuration and service discovery";
+    homepage = http://coreos.com/using-coreos/etcd/;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ cstrahan ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/etcd/deps.nix b/pkgs/servers/etcd/deps.nix
new file mode 100644
index 00000000000..e9fd4a50d3e
--- /dev/null
+++ b/pkgs/servers/etcd/deps.nix
@@ -0,0 +1,54 @@
+{ stdenv, lib, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
+
+let
+  goDeps = [
+    {
+      root = "github.com/coreos/etcd";
+      src = fetchFromGitHub {
+        owner = "coreos";
+        repo = "etcd";
+        rev = "9970141f76241c909977af7bafe7b6f2c4923de8";
+        sha256 = "1bva46gfy4rkfw8k8pb3lsfzfg16csds01f0nvfrkh99pr7sp0sy";
+      };
+    }
+    {
+      root = "github.com/stathat/go";
+      src = fetchFromGitHub {
+        owner = "stathat";
+        repo = "go";
+        rev = "01d012b9ee2ecc107cb28b6dd32d9019ed5c1d77";
+        sha256 = "0mrn70wjfcs4rfkmga3hbfqmbjk33skcsc8pyqxp02bzpwdpc4bi";
+      };
+    }
+    {
+      root = "github.com/stretchr/objx";
+      src = fetchFromGitHub {
+        owner = "stretchr";
+        repo = "objx";
+        rev = "cbeaeb16a013161a98496fad62933b1d21786672";
+        sha256 = "1xn7iibjik77h6h0jilfvcjkkzaqz45baf44p3rb2i03hbmkqkp1";
+      };
+    }
+    {
+      root = "github.com/stretchr/testify";
+      src = fetchFromGitHub {
+        owner = "stretchr";
+        repo = "testify";
+        rev = "3e03dde72495487a4deb74152ac205d0619fbc8d";
+        sha256 = "1xd9sbi6y68cfwkxgybcz0dbfx4r6jmxq51wjj6six3wm9p7m8ls";
+      };
+    }
+  ];
+
+in
+
+stdenv.mkDerivation rec {
+  name = "go-deps";
+
+  buildCommand =
+    lib.concatStrings
+      (map (dep: ''
+              mkdir -p $out/src/`dirname ${dep.root}`
+              ln -s ${dep.src} $out/src/${dep.root}
+            '') goDeps);
+}
diff --git a/pkgs/servers/fleet/default.nix b/pkgs/servers/fleet/default.nix
new file mode 100644
index 00000000000..627c1ff0cf9
--- /dev/null
+++ b/pkgs/servers/fleet/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, lib, go, fetchurl, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  version = "0.5.0";
+  name = "fleet-${version}";
+
+  src = import ./deps.nix {
+    inherit stdenv lib fetchgit fetchhg fetchbzr fetchFromGitHub;
+  };
+
+  buildInputs = [ go ];
+
+  buildPhase = ''
+    export GOPATH=$src
+    go build -v -o fleet github.com/coreos/fleet
+  '';
+
+  installPhase = ''
+    ensureDir $out/bin
+    mv fleet $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A distributed init system";
+    homepage = http://coreos.com/using-coreos/clustering/;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ cstrahan ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/fleet/deps.nix b/pkgs/servers/fleet/deps.nix
new file mode 100644
index 00000000000..d0529db37a2
--- /dev/null
+++ b/pkgs/servers/fleet/deps.nix
@@ -0,0 +1,81 @@
+{ stdenv, lib, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
+
+let
+  goDeps = [
+    {
+      root = "code.google.com/p/gogoprotobuf";
+      src = fetchgit {
+        url = "https://code.google.com/p/gogoprotobuf";
+        rev = "7fd1620f09261338b6b1ca1289ace83aee0ec946";
+        sha256 = "0f13y29zpxkv7b7kwnszygvg04fd5m9r8vpkl1wa3gxnc6az54i9";
+      };
+    }
+    {
+      root = "github.com/coreos/etcd";
+      src = fetchFromGitHub {
+        owner = "coreos";
+        repo = "etcd";
+        rev = "1359d29fa451b059bb76b51260610d92853e7316";
+        sha256 = "0iz3vmf3nfp1i5r8al207wm0jvj68i47a814w90b1jl8g4f2amp7";
+      };
+    }
+    {
+      root = "github.com/coreos/fleet";
+      src = fetchFromGitHub {
+        owner = "coreos";
+        repo = "fleet";
+        rev = "da0a02ed3b07d83b0b542dcdee56e08d2457ab9c";
+        sha256 = "0b8aq4ppyv1fjvf3f2qjq80mvjvf9r104bf4048wgsrs0pccs6s8";
+      };
+    }
+    {
+      root = "github.com/coreos/raft";
+      src = fetchFromGitHub {
+        owner = "coreos";
+        repo = "raft";
+        rev = "67dca7288f1665b59860421673d46314f4348e45";
+        sha256 = "1l27kjkwcxgx89d2m537plagbp1wh6qlzxirza6lliblrgxry6mw";
+      };
+    }
+    {
+      root = "github.com/stathat/go";
+      src = fetchFromGitHub {
+        owner = "stathat";
+        repo = "go";
+        rev = "01d012b9ee2ecc107cb28b6dd32d9019ed5c1d77";
+        sha256 = "0mrn70wjfcs4rfkmga3hbfqmbjk33skcsc8pyqxp02bzpwdpc4bi";
+      };
+    }
+    {
+      root = "github.com/stretchr/objx";
+      src = fetchFromGitHub {
+        owner = "stretchr";
+        repo = "objx";
+        rev = "cbeaeb16a013161a98496fad62933b1d21786672";
+        sha256 = "1xn7iibjik77h6h0jilfvcjkkzaqz45baf44p3rb2i03hbmkqkp1";
+      };
+    }
+    {
+      root = "github.com/stretchr/testify";
+      src = fetchFromGitHub {
+        owner = "stretchr";
+        repo = "testify";
+        rev = "3e03dde72495487a4deb74152ac205d0619fbc8d";
+        sha256 = "1xd9sbi6y68cfwkxgybcz0dbfx4r6jmxq51wjj6six3wm9p7m8ls";
+      };
+    }
+  ];
+
+in
+
+stdenv.mkDerivation rec {
+  name = "go-deps";
+
+  buildCommand =
+    lib.concatStrings
+      (map (dep: ''
+              mkdir -p $out/src/`dirname ${dep.root}`
+              ln -s ${dep.src} $out/src/${dep.root}
+            '') goDeps);
+}
+
diff --git a/pkgs/servers/http/apache-httpd/2.4.nix b/pkgs/servers/http/apache-httpd/2.4.nix
index 7deab6584f8..e164c21ec78 100644
--- a/pkgs/servers/http/apache-httpd/2.4.nix
+++ b/pkgs/servers/http/apache-httpd/2.4.nix
@@ -14,12 +14,12 @@ assert sslSupport -> aprutil.sslSupport && openssl != null;
 assert ldapSupport -> aprutil.ldapSupport && openldap != null;
 
 stdenv.mkDerivation rec {
-  version = "2.4.9";
+  version = "2.4.10";
   name = "apache-httpd-${version}";
 
   src = fetchurl {
     url = "mirror://apache/httpd/httpd-${version}.tar.bz2";
-    sha256 = "00vnhki0rdwlhl4cjgvkq5vpf8szx2sdd3yi7bcg7jj7z86wk37p";
+    sha256 = "0slwcqw9f7fnb3kyz27hlsgh8j4wiza4yzqyp6vhfpvl3an4sv0p";
   };
 
   buildInputs = [perl] ++
diff --git a/pkgs/servers/http/couchdb/default.nix b/pkgs/servers/http/couchdb/default.nix
index 36d932c1ace..35d4ebbf89f 100644
--- a/pkgs/servers/http/couchdb/default.nix
+++ b/pkgs/servers/http/couchdb/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   name = "couchdb-${version}";
-  version = "1.5.1";
+  version = "1.6.0";
 
   src = fetchurl {
     url = "mirror://apache/couchdb/source/${version}/apache-${name}.tar.gz";
-    sha256 = "0isddp29zh72idgwjaswqy887c1fwx5g1lwlbzscwcv6q70xrmfr";
+    sha256 = "0m4k7i3gibzzcabssysv42rmdr89myppc6765xr0jggwkwdxgxmx";
   };
 
   buildInputs = [ erlang icu openssl spidermonkey curl help2man sphinx which
diff --git a/pkgs/servers/http/nginx/default.nix b/pkgs/servers/http/nginx/default.nix
index 32d4634e7fb..8f748078dcf 100644
--- a/pkgs/servers/http/nginx/default.nix
+++ b/pkgs/servers/http/nginx/default.nix
@@ -3,7 +3,10 @@
 , rtmp ? false
 , fullWebDAV ? false
 , syslog ? false
-, moreheaders ? false}:
+, moreheaders ? false
+, echo ? false }:
+
+with stdenv.lib;
 
 let
   version = "1.6.0";
@@ -35,6 +38,12 @@ let
     rev = "0c6e05d3125a97892a250e9ba8b7674163ba500b";
     sha256 = "e121d97fd3c81c64e6cbf6902bbcbdb01be9ac985c6832d40434379d5e998eaf";
   };
+
+  echo-ext = fetchgit {
+    url = https://github.com/openresty/echo-nginx-module.git;
+    rev = "refs/tags/v0.53";
+    sha256 = "90d4e3a49c678019f4f335bc18529aa108fcc9cfe0747ea4e2f6084a70da2868";
+  };
 in
 
 stdenv.mkDerivation rec {
@@ -43,7 +52,7 @@ stdenv.mkDerivation rec {
 
   buildInputs =
     [ openssl zlib pcre libxml2 libxslt gd geoip
-    ] ++ stdenv.lib.optional fullWebDAV expat;
+    ] ++ optional fullWebDAV expat;
 
   patches = if syslog then [ "${syslog-ext}/syslog-1.5.6.patch" ] else [];
 
@@ -69,12 +78,15 @@ stdenv.mkDerivation rec {
     "--with-ipv6"
     # Install destination problems
     # "--with-http_perl_module"
-  ] ++ stdenv.lib.optional rtmp "--add-module=${rtmp-ext}"
-    ++ stdenv.lib.optional fullWebDAV "--add-module=${dav-ext}"
-    ++ stdenv.lib.optional syslog "--add-module=${syslog-ext}"
-    ++ stdenv.lib.optional moreheaders "--add-module=${moreheaders-ext}";
+  ] ++ optional rtmp "--add-module=${rtmp-ext}"
+    ++ optional fullWebDAV "--add-module=${dav-ext}"
+    ++ optional syslog "--add-module=${syslog-ext}"
+    ++ optional moreheaders "--add-module=${moreheaders-ext}"
+    ++ optional echo "--add-module=${echo-ext}"
+    ++ optional (elem stdenv.system (with platforms; linux ++ freebsd)) "--with-file-aio";
+
 
-  additionalFlags = stdenv.lib.optionalString stdenv.isDarwin "-Wno-error=deprecated-declarations";
+  additionalFlags = optionalString stdenv.isDarwin "-Wno-error=deprecated-declarations";
 
   preConfigure = ''
     export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${libxml2}/include/libxml2 $additionalFlags"
@@ -87,8 +99,8 @@ stdenv.mkDerivation rec {
   meta = {
     description = "A reverse proxy and lightweight webserver";
     homepage    = http://nginx.org;
-    license     = stdenv.lib.licenses.bsd2;
-    platforms   = stdenv.lib.platforms.all;
-    maintainers = with stdenv.lib.maintainers; [ thoughtpolice raskin ];
+    license     = licenses.bsd2;
+    platforms   = platforms.all;
+    maintainers = with maintainers; [ thoughtpolice raskin ];
   };
 }
diff --git a/pkgs/servers/http/nix-binary-cache/default.nix b/pkgs/servers/http/nix-binary-cache/default.nix
new file mode 100644
index 00000000000..b007c09b056
--- /dev/null
+++ b/pkgs/servers/http/nix-binary-cache/default.nix
@@ -0,0 +1,61 @@
+{stdenv, fetchurl
+, coreutils, findutils, nix, xz, bzip2, gnused, gnugrep, openssl
+, lighttpd, iproute }:
+stdenv.mkDerivation rec {
+  version = "2014-06-29-1";
+  name = "nix-binary-cache-${version}";
+
+  phases = ["installPhase"];
+
+  installPhase = ''
+    mkdir -p "$out/bin"
+    substitute "${./nix-binary-cache.cgi.in}" "$out"/bin/nix-binary-cache.cgi \
+      --replace @out@ "$out/bin" \
+      --replace @shell@ "${stdenv.shell}" \
+      --replace @coreutils@ "${coreutils}/bin" \
+      --replace @findutils@ "${findutils}/bin" \
+      --replace @nix@ "${nix}/bin" \
+      --replace @xz@ "${xz}/bin" \
+      --replace @bzip2@ "${bzip2}/bin" \
+      --replace @gnused@ "${gnused}/bin" \
+      --replace @gnugrep@ "${gnugrep}/bin" \
+      --replace @openssl@ "${openssl}/bin" \
+      --replace @lighttpd@ "${lighttpd}/sbin" \
+      --replace @iproute@ "${iproute}/sbin" \
+      --replace "xXxXx" "xXxXx"
+
+    chmod a+x "$out/bin/nix-binary-cache.cgi"
+
+    substitute "${./nix-binary-cache-start.in}" "$out"/bin/nix-binary-cache-start \
+      --replace @out@ "$out/bin" \
+      --replace @shell@ "${stdenv.shell}" \
+      --replace @coreutils@ "${coreutils}/bin" \
+      --replace @findutils@ "${findutils}/bin" \
+      --replace @nix@ "${nix}/bin" \
+      --replace @xz@ "${xz}/bin" \
+      --replace @bzip2@ "${bzip2}/bin" \
+      --replace @gnused@ "${gnused}/bin" \
+      --replace @gnugrep@ "${gnugrep}/bin" \
+      --replace @openssl@ "${openssl}/bin" \
+      --replace @lighttpd@ "${lighttpd}/sbin" \
+      --replace @iproute@ "${iproute}/sbin" \
+      --replace "xXxXx" "xXxXx"
+
+    chmod a+x "$out/bin/nix-binary-cache-start"
+  '';
+
+  meta = {
+    description = ''A set of scripts to serve the Nix store as a binary cache'';
+    longDescription = ''
+      This package installs a CGI script that serves Nix store path in the 
+      binary cache format. It also installs a launcher called 
+      nix-binary-cache-start that can be run without any setup to launch
+      a binary cache and get the example arguments for its usage.
+    '';
+    maintainers = [stdenv.lib.maintainers.raskin];
+    license = stdenv.lib.licenses.gpl2Plus;
+    inherit version;
+    platforms = stdenv.lib.platforms.all;
+    hydraPlatforms = [];
+  };
+}
diff --git a/pkgs/servers/http/nix-binary-cache/nix-binary-cache-start.in b/pkgs/servers/http/nix-binary-cache/nix-binary-cache-start.in
new file mode 100644
index 00000000000..2a2356f39ab
--- /dev/null
+++ b/pkgs/servers/http/nix-binary-cache/nix-binary-cache-start.in
@@ -0,0 +1,105 @@
+#! @shell@
+
+parse_opts () {
+  while @coreutils@/test -n "$1" && @coreutils@/test "x$1" != x-- ; do 
+    case "$1" in
+      --store-dir)
+        shift;
+        echo "STORE_DIR='$1'"
+        shift;
+        ;;
+      --priority)
+        shift;
+        echo "PRIORITY=$1";
+        shift;
+        ;;
+      --compression)
+        shift;
+        echo "COMPRESSION=$1";
+        shift;
+        ;;
+      --key)
+        shift;
+        echo "KEY=${1#*:}"
+        echo "KEYNAME=${1%%:*}"
+        shift;
+        ;;
+      --nix-remote)
+        shift;
+        echo "NIX_REMOTE=$1"
+        shift;
+        ;;
+      --mass-query)
+        shift;
+        echo "MASS_QUERY=$1"
+        shift;
+        ;;
+      --port)
+        shift;
+        echo "PORT=$1"
+        shift;
+        ;;
+      --help)
+        cat <<EOF >&2
+"$0": start the Nix binary cache serving the Nix store dynamically.
+
+Recognized options:
+
+--port           server port
+--store-dir      served Nix store
+
+--priority       binary cache priority
+--mass-query     0 or 1 - whether binary cache expects queries for nix-env -qas
+
+--compression    compression to use: bzip2 or xz
+--key            name:/path/to/key - key to use for narinfo signing
+
+--nix-remote     'daemon' or empty string '' - whether to use daemon for store
+                   operations
+
+--help           show help and exit
+EOF
+	exit 1;
+        ;;
+      *) shift ;;
+    esac;
+  done
+}
+
+workingdir="$(@coreutils@/mktemp -d)"
+cd "$workingdir"
+
+PORT=8080
+(echo "STORE_DIR=${NIX_STORE_DIR:-/nix/store}"; parse_opts "$@" 
+  ) > nix-binary-cache.conf || exit
+. "$workingdir/nix-binary-cache.conf"
+
+echo "
+server.port = $PORT
+server.modules = ( \"mod_cgi\", \"mod_setenv\", )
+server.document-root = \"$workingdir\"
+cgi.assign = ( \".cgi\" => \"@shell@\" )
+setenv.add-request-header = ( \"NIX_BINARY_CACHE_CONFIG\" => \"$workingdir/nix-binary-cache.conf\" )
+" > lighttpd.conf
+
+cp @out@/nix-binary-cache.cgi . 
+cp @out@/nix-binary-cache.cgi ./nix-bc.cgi 
+
+ip="$(@iproute@/ip a | @gnugrep@/grep 'inet .* scope global' | @coreutils@/head -n 1)"
+ip="${ip%%/*}"
+ip="${ip##* }"
+
+url="http://$ip:$PORT/nix-bc.cgi?"
+
+echo "Working directory: $workingdir"
+echo
+echo "Address of the binary cache: $url"
+echo
+echo "Usage example: NIX_REMOTE= nix-store --option binary-caches '$url'"
+echo
+echo
+
+@lighttpd@/lighttpd -D -f "$workingdir/lighttpd.conf"
+
+cd /
+@coreutils@/rm -rf "$workingdir"
diff --git a/pkgs/servers/http/nix-binary-cache/nix-binary-cache.cgi.in b/pkgs/servers/http/nix-binary-cache/nix-binary-cache.cgi.in
new file mode 100644
index 00000000000..219ab9763ad
--- /dev/null
+++ b/pkgs/servers/http/nix-binary-cache/nix-binary-cache.cgi.in
@@ -0,0 +1,97 @@
+#! @shell@
+
+STORE_DIR="${NIX_STORE_DIR:-/nix/store}"
+MASS_QUERY=0
+PRIORITY=75
+COMPRESSION=bzip2
+KEY=
+KEYNAME=na
+
+export NIX_REMOTE=daemon
+
+config="${NIX_BINARY_CACHE_CONFIG:-${HTTP_NIX_BINARY_CACHE_CONFIG:-/etc/nix/nix-binary-cache.cgi.conf}}"
+config="$(cd "$(@coreutils@/dirname "$config")"; 
+  @coreutils@/pwd)/$(@coreutils@/basename "$config")"
+@coreutils@/test -e "$config" && . "$config"
+
+header(){
+	echo "Content-Type: text/plain; charset=utf-8"
+	echo 
+}
+
+clean_path() {
+	@gnused@/sed -re "s@^$STORE_DIR/?@@" | @findutils@/xargs
+}
+
+storeq(){
+	@nix@/nix-store -q "$@"
+}
+
+sign(){
+	test -n "$1" && 
+	  @coreutils@/sha256sum | @gnused@/sed -e 's/ .*//' | 
+	  @openssl@/openssl rsautl -sign -inkey "$@" | @coreutils@/base64 -w 0
+}
+
+case "$QUERY_STRING" in 
+	"")
+		header
+		echo "Hello, this is a dynamically-generated Nix binary cache"
+		;;
+	/debug)
+		header
+		set
+		;;
+	/nix-cache-info)
+		header
+		echo "StoreDir: $STORE_DIR"
+		echo "WantMassQuery: $MASS_QUERY"
+		echo "Priority: $PRIORITY"
+		;;
+	*.narinfo)
+		hash=${QUERY_STRING%.narinfo}
+		hash=${hash#/}
+		path="$(echo "$STORE_DIR/$hash-"* )"
+		if [ -n "$path" ] && [ -e "$path" ]; then
+			header
+			info="$(
+			echo "StorePath: $path"
+			echo "URL: $(@coreutils@/basename "$path"
+			  ).nar.$COMPRESSION"
+			echo "Compression: $COMPRESSION"
+			echo "NarHash: $(storeq --hash "$path")"
+			echo "NarSize: $(storeq --size "$path")"
+			echo "References: $(storeq --references "$path" | 
+			  @coreutils@/tac | clean_path )"
+			echo "Deriver: $(storeq --deriver "$path" | 
+			  clean_path )"
+			)"
+			signature="$(echo "$info" | sign "$KEY")"
+
+			echo "$info"
+			echo "Signature: 1;$KEYNAME;$signature"
+
+		else
+			exit 1
+		fi
+		;;
+	*.nar.xz)
+		path="$STORE_DIR${QUERY_STRING%.nar.xz}"
+		if [ -n "$path" ] && [ -e "$path" ]; then
+			header
+			@nix@/nix-store --dump "$path" | @xz@/xz
+		else
+			exit 1
+		fi
+		;;
+	*.nar.bzip2)
+		path="$STORE_DIR${QUERY_STRING%.nar.bzip2}"
+		echo "$path" >&2;
+		if [ -n "$path" ] && [ -e "$path" ]; then
+			header
+			@nix@/nix-store --dump "$path" | @bzip2@/bzip2
+		else
+			exit 1
+		fi
+		;;
+esac
diff --git a/pkgs/servers/http/tomcat/axis2/default.nix b/pkgs/servers/http/tomcat/axis2/default.nix
index 4bf3d59685b..cf64ba2d3c6 100644
--- a/pkgs/servers/http/tomcat/axis2/default.nix
+++ b/pkgs/servers/http/tomcat/axis2/default.nix
@@ -10,4 +10,8 @@ stdenv.mkDerivation {
 
   buildInputs = [ unzip apacheAnt jdk ];
   builder = ./builder.sh;
+
+  meta = {
+    description = "Web Services / SOAP / WSDL engine, the successor to the widely used Apache Axis SOAP stack";
+  };
 }
diff --git a/pkgs/servers/monitoring/munin/default.nix b/pkgs/servers/monitoring/munin/default.nix
index be890ff5900..245c838607f 100644
--- a/pkgs/servers/monitoring/munin/default.nix
+++ b/pkgs/servers/monitoring/munin/default.nix
@@ -99,18 +99,17 @@ stdenv.mkDerivation rec {
         ln -s $out/nix-support/propagated-native-build-inputs $out/nix-support/propagated-user-env-packages
     fi
 
-    # TODO: toPerlLibPath can be added to
-    # pkgs/development/interpreters/perl5.16/setup-hook.sh (and the other perl
-    # versions) just like for python. NOTE: it causes massive rebuilds.
-    # $(toPerlLibPath $out perlPackages.Log4Perl ...)
-
     for file in "$out"/bin/munindoc "$out"/sbin/munin-* "$out"/lib/munin-* "$out"/www/cgi/*; do
         # don't wrap .jar files
         case "$file" in
             *.jar) continue;;
         esac
         wrapProgram "$file" \
-          --set PERL5LIB "$out/lib/perl5/site_perl:${perlPackages.Log4Perl}/lib/perl5/site_perl:${perlPackages.IOSocketInet6}/lib/perl5/site_perl:${perlPackages.Socket6}/lib/perl5/site_perl:${perlPackages.URI}/lib/perl5/site_perl:${perlPackages.DBFile}/lib/perl5/site_perl:${perlPackages.DateManip}/lib/perl5/site_perl:${perlPackages.HTMLTemplate}/lib/perl5/site_perl:${perlPackages.FileCopyRecursive}/lib/perl5/site_perl:${perlPackages.FCGI}/lib/perl5/site_perl:${perlPackages.NetSNMP}/lib/perl5/site_perl:${perlPackages.NetServer}/lib/perl5/site_perl:${perlPackages.ListMoreUtils}/lib/perl5/site_perl:${perlPackages.TimeHiRes}/lib/perl5/site_perl:${rrdtool}/lib/perl:${perlPackages.DBDPg}/lib/perl5/site_perl:${perlPackages.LWPUserAgent}/lib/perl5/site_perl"
+          --set PERL5LIB "$out/lib/perl5/site_perl:${with perlPackages; stdenv.lib.makePerlPath [
+                Log4Perl IOSocketInet6 Socket6 URI DBFile DateManip
+                HTMLTemplate FileCopyRecursive FCGI NetSNMP NetServer
+                ListMoreUtils TimeHiRes DBDPg LWPUserAgent
+                ]}"
     done
   '';
 
diff --git a/pkgs/servers/monitoring/nagios/default.nix b/pkgs/servers/monitoring/nagios/default.nix
index dba063bb106..5af759db1c9 100644
--- a/pkgs/servers/monitoring/nagios/default.nix
+++ b/pkgs/servers/monitoring/nagios/default.nix
@@ -1,23 +1,30 @@
-{ stdenv, fetchurl, perl, gdSupport ? false
-, gd ? null, libpng ? null, zlib ? null
-}:
+{ stdenv, fetchurl, perl, php, gd, libpng, zlib }:
 
 stdenv.mkDerivation {
-  name = "nagios-2.10";
+  name = "nagios-4.0.7";
 
   src = fetchurl {
-    url = mirror://sourceforge/nagios/nagios-2.10.tar.gz;
-    md5 = "8c3a29e138f2ff8c8abbd3dd8a40c4b6";
+    url = mirror://sourceforge/nagios/nagios-4.x/nagios-4.0.7/nagios-4.0.7.tar.gz;
+    sha256 = "1687qnbsag84r57y9745g2klypacfixd6gkzaj42lmzn0v8y27gg";
   };
 
-  patches = [./nagios.patch];
-  buildInputs = [perl] ++ (if gdSupport then [gd libpng zlib] else []);
+  patches = [ ./nagios.patch ];
+  buildInputs = [ php perl gd libpng zlib ];
+
+  configureFlags = [ "--localstatedir=/var/lib/nagios" ];
   buildFlags = "all";
+
+  # Do not create /var directories
+  preInstall = ''
+    substituteInPlace Makefile --replace '$(MAKE) install-basic' ""
+  '';
   installTargets = "install install-config";
 
   meta = {
     description = "A host, service and network monitoring program";
-    homepage = http://www.nagios.org/;
-    license = "GPL";
+    homepage    = http://www.nagios.org/;
+    license     = stdenv.lib.licenses.gpl2;
+    platforms   = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ thoughtpolice relrod ];
   };
 }
diff --git a/pkgs/servers/monitoring/nagios/nagios.patch b/pkgs/servers/monitoring/nagios/nagios.patch
index 6fc27153617..cec4c4942b5 100644
--- a/pkgs/servers/monitoring/nagios/nagios.patch
+++ b/pkgs/servers/monitoring/nagios/nagios.patch
@@ -1,7 +1,7 @@
-diff -ruN nagios-2.6/configure nagios-2.6.new/configure
---- nagios-2.6/configure	2006-11-28 03:29:04.000000000 +0100
-+++ nagios-2.6.new/configure	2006-12-28 01:22:56.000000000 +0100
-@@ -4810,7 +4810,8 @@
+diff -ruN nagios-4.0.7.orig/configure nagios-4.0.7/configure
+--- nagios-4.0.7.orig/configure	2014-06-03 10:41:42.000000000 -0400
++++ nagios-4.0.7/configure	2014-06-12 00:30:17.516468583 -0400
+@@ -6014,7 +6014,8 @@
  #define DEFAULT_NAGIOS_GROUP "$nagios_grp"
  _ACEOF
  
@@ -11,3 +11,13 @@ diff -ruN nagios-2.6/configure nagios-2.6.new/configure
  
  
  
+@@ -6035,7 +6036,8 @@
+ 
+ 
+ 
+-COMMAND_OPTS="-o $command_user -g $command_grp"
++#COMMAND_OPTS="-o $command_user -g $command_grp"
++COMMAND_OPTS=""
+ 
+ 
+ MAIL_PROG=no
diff --git a/pkgs/servers/monitoring/nagios/plugins/official/default.nix b/pkgs/servers/monitoring/nagios/plugins/official-2.x.nix
index c466813b23b..3420003c641 100644
--- a/pkgs/servers/monitoring/nagios/plugins/official/default.nix
+++ b/pkgs/servers/monitoring/nagios/plugins/official-2.x.nix
@@ -1,11 +1,12 @@
-{stdenv, fetchurl, openssh}:
+{ stdenv, fetchurl, openssh }:
 
-stdenv.mkDerivation {
-  name = "nagios-plugins-1.4.10";
+stdenv.mkDerivation rec {
+  name = "nagios-plugins-${version}";
+  version = "2.0";
 
   src = fetchurl {
-    url = https://www.monitoring-plugins.org/download/nagios-plugins-1.4.10.tar.gz;
-    sha256 = "0vm7sjiygxbfc5vbsi1g0dakpvynfzi86fhqx4yxd61brn0g8ghr";
+    url = "http://nagios-plugins.org/download/${name}.tar.gz";
+    sha256 = "113nv9jqpbqpdjqilqbj1iyshxyvcmq8w94bq5ajz4dxi9j8045s";
   };
 
   # !!! Awful hack. Grrr... this of course only works on NixOS.
@@ -22,11 +23,14 @@ stdenv.mkDerivation {
 
   postInstall = "ln -s libexec $out/bin";
 
-  buildInputs = [openssh]; # !!! make openssh a runtime dependency only
+  # !!! make openssh a runtime dependency only
+  buildInputs = [ openssh ];
 
   meta = {
-    description = "Plugins for Nagios";
-    homepage = http://www.monitoring-plugins.org;
-    license = "GPL";
+    description = "Official plugins for Nagios";
+    homepage    = http://www.nagios.org/download/plugins;
+    license     = stdenv.lib.licenses.gpl2;
+    platforms   = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ thoughtpolice relrod ];
   };
 }
diff --git a/pkgs/servers/mpd/default.nix b/pkgs/servers/mpd/default.nix
index 5bc55039260..38be02e76ef 100644
--- a/pkgs/servers/mpd/default.nix
+++ b/pkgs/servers/mpd/default.nix
@@ -55,7 +55,7 @@ in stdenv.mkDerivation rec {
     ++ opt mpg123Support mpg123
     ++ opt aacSupport faad2
     ++ opt zipSupport zziplib
-    ++ opt zipSupport pulseaudio;
+    ++ opt pulseaudioSupport pulseaudio;
 
   configureFlags =
     [ (mkFlag (!stdenv.isDarwin && alsaSupport) "alsa")
diff --git a/pkgs/servers/nsq/default.nix b/pkgs/servers/nsq/default.nix
new file mode 100644
index 00000000000..b1570d96c7b
--- /dev/null
+++ b/pkgs/servers/nsq/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, lib, go, fetchurl, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  version = "0.2.28";
+  name = "nsq-${version}";
+
+  src = import ./deps.nix {
+    inherit stdenv lib fetchgit fetchhg fetchbzr fetchFromGitHub;
+  };
+
+  buildInputs = [ go ];
+
+  buildPhase = ''
+    export GOPATH=$src
+    apps=(nsq_pubsub nsq_stat nsq_tail nsq_to_file nsq_to_http nsq_to_nsq nsqd nsqlookupd)
+
+    mkdir build
+
+    go build -v -o build/nsqadmin github.com/bitly/nsq/nsqadmin
+    for app in "''${apps[@]}"; do
+      go build -v -o build/$app github.com/bitly/nsq/apps/$app
+    done
+  '';
+
+  installPhase = ''
+    ensureDir $out/bin
+    mv build/* $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A realtime distributed messaging platform";
+    homepage = http://nsq.io/;
+    license = licenses.mit;
+    maintainers = with maintainers; [ cstrahan ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/nsq/deps.nix b/pkgs/servers/nsq/deps.nix
new file mode 100644
index 00000000000..bd98357ece6
--- /dev/null
+++ b/pkgs/servers/nsq/deps.nix
@@ -0,0 +1,134 @@
+{ stdenv, lib, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
+
+let
+  goDeps = [
+    {
+      root = "code.google.com/p/snappy-go";
+      src = fetchhg {
+        url = "http://code.google.com/p/snappy-go";
+        rev = "14";
+        sha256 = "0ywa52kcii8g2a9lbqcx8ghdf6y56lqq96sl5nl9p6h74rdvmjr7";
+      };
+    }
+    {
+      root = "github.com/BurntSushi/toml";
+      src = fetchFromGitHub {
+        owner = "BurntSushi";
+        repo = "toml";
+        rev = "f87ce853111478914f0bcffa34d43a93643e6eda";
+        sha256 = "0g8203y9ycf34j2q3ymxb8nh4habgwdrjn9vdgrginllx73yq565";
+      };
+    }
+    {
+      root = "github.com/bitly/go-hostpool";
+      src = fetchFromGitHub {
+        owner = "bitly";
+        repo = "go-hostpool";
+        rev = "fed86fae5cacdc77e7399937e2f8836563620a2e";
+        sha256 = "0nbssfp5ksj4hhc0d8lfq54afd9nqv6qzk3vi6rinxr3fgplrj44";
+      };
+    }
+    {
+      root = "github.com/bitly/go-nsq";
+      src = fetchFromGitHub {
+        owner = "bitly";
+        repo = "go-nsq";
+        rev = "c79a282f05364e340eadc2ce2f862a3d44eea9c0";
+        sha256 = "19jlwj5419p5xwjzfnzlddjnbh5g7ifnqhd00i5p0b6ww1gk011p";
+      };
+    }
+    {
+      root = "github.com/bitly/go-simplejson";
+      src = fetchFromGitHub {
+        owner = "bitly";
+        repo = "go-simplejson";
+        rev = "1cfceb0e12f47ec02665ef480212d7b531d6f4c5";
+        sha256 = "1d8x0himl58qn87lv418djy6mbs66p9ai3zpqq13nhkfl67fj3bi";
+      };
+    }
+    {
+      root = "github.com/bitly/nsq";
+      src = fetchFromGitHub {
+        owner = "bitly";
+        repo = "nsq";
+        rev = "048691a8242c9ec224fc46bf7d05f321026b69f8";
+        sha256 = "0drmf1j5w3q4l6f7xjy3y7d7cl50gcx0qwci6mahxsyaaclx60yx";
+      };
+    }
+    {
+      root = "github.com/bmizerany/assert";
+      src = fetchFromGitHub {
+        owner = "bmizerany";
+        repo = "assert";
+        rev = "e17e99893cb6509f428e1728281c2ad60a6b31e3";
+        sha256 = "1lfrvqqmb09y6pcr76yjv4r84cshkd4s7fpmiy7268kfi2cvqnpc";
+      };
+    }
+    {
+      root = "github.com/bmizerany/perks";
+      src = fetchFromGitHub {
+        owner = "bmizerany";
+        repo = "perks";
+        rev = "aac9e2eab5a334037057336897fd10b0289a5ae8";
+        sha256 = "1d027jgc327qz5xmal0hrpqvsj45i9yqmm9pxk3xp3hancvz3l3k";
+      };
+    }
+    {
+      root = "github.com/kr/pretty";
+      src = fetchFromGitHub {
+        owner = "kr";
+        repo = "pretty";
+        rev = "bc9499caa0f45ee5edb2f0209fbd61fbf3d9018f";
+        sha256 = "1m61y592qsnwsqn76v54mm6h2pcvh4wlzbzscc1ag645x0j33vvl";
+      };
+    }
+    {
+      root = "github.com/kr/pty";
+      src = fetchFromGitHub {
+        owner = "kr";
+        repo = "pty";
+        rev = "67e2db24c831afa6c64fc17b4a143390674365ef";
+        sha256 = "1l3z3wbb112ar9br44m8g838z0pq2gfxcp5s3ka0xvm1hjvanw2d";
+      };
+    }
+    {
+      root = "github.com/kr/text";
+      src = fetchFromGitHub {
+        owner = "kr";
+        repo = "text";
+        rev = "6807e777504f54ad073ecef66747de158294b639";
+        sha256 = "1wkszsg08zar3wgspl9sc8bdsngiwdqmg3ws4y0bh02sjx5a4698";
+      };
+    }
+    {
+      root = "github.com/mreiferson/go-options";
+      src = fetchFromGitHub {
+        owner = "mreiferson";
+        repo = "go-options";
+        rev = "896a539cd709f4f39d787562d1583c016ce7517e";
+        sha256 = "0hg0n5grcjcj5719rqchz0plp39wfk3znqxw8y354k4jwsqwmn17";
+      };
+    }
+    {
+      root = "github.com/mreiferson/go-snappystream";
+      src = fetchFromGitHub {
+        owner = "mreiferson";
+        repo = "go-snappystream";
+        rev = "97c96e6648e99c2ce4fe7d169aa3f7368204e04d";
+        sha256 = "08ylvx9r6b1fi76v6cqjvny4yqsvcqjfsg93jdrgs7hi4mxvxynn";
+      };
+    }
+  ];
+
+in
+
+stdenv.mkDerivation rec {
+  name = "go-deps";
+
+  buildCommand =
+    lib.concatStrings
+      (map (dep: ''
+              mkdir -p $out/src/`dirname ${dep.root}`
+              ln -s ${dep.src} $out/src/${dep.root}
+            '') goDeps);
+}
diff --git a/pkgs/servers/polipo/default.nix b/pkgs/servers/polipo/default.nix
index 3e49715b94d..08ccbbd06c6 100644
--- a/pkgs/servers/polipo/default.nix
+++ b/pkgs/servers/polipo/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, texinfo }:
-stdenv.mkDerivation rec {
 
+stdenv.mkDerivation rec {
   name = "polipo-${version}";
-  version = "1.0.4.1";
+  version = "1.1.1";
 
   src = fetchurl {
-    url = "http://freehaven.net/~chrisd/polipo/${name}.tar.gz";
-    sha256 = "1ykwkyvmdw6fsaj2hc40971pkwf60hvi9c43whijim00qvgbyvwd";
+    url = "http://www.pps.univ-paris-diderot.fr/~jch/software/files/polipo/${name}.tar.gz";
+    sha256 = "05g09sg9qkkhnc2mxldm1w1xkxzs2ylybkjzs28w8ydbjc3pand2";
   };
 
   buildInputs = [ texinfo ];
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     homepage = http://www.pps.jussieu.fr/~jch/software/polipo/;
     description = "A small and fast caching web proxy";
     license = licenses.mit;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = with maintainers; [ phreedom emery ];
     platforms = platforms.all;
   };
 }
\ No newline at end of file
diff --git a/pkgs/servers/pulseaudio/default.nix b/pkgs/servers/pulseaudio/default.nix
index 35922b3c46f..0665222a9e0 100644
--- a/pkgs/servers/pulseaudio/default.nix
+++ b/pkgs/servers/pulseaudio/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, gnum4, gdbm, libtool, glib, dbus, avahi
 , gconf, gtk, intltool, gettext, alsaLib, libsamplerate, libsndfile, speex
 , bluez, sbc, udev, libcap, json_c
-, jackaudioSupport ? false, jackaudio ? null
+, jackaudioSupport ? false, jack2 ? null
 , x11Support ? false, xlibs
 , useSystemd ? false, systemd ? null }:
 
-assert jackaudioSupport -> jackaudio != null;
+assert jackaudioSupport -> jack2 != null;
 
 stdenv.mkDerivation rec {
   name = "pulseaudio-5.0";
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   buildInputs =
     [ pkgconfig gnum4 libtool intltool glib dbus avahi libsamplerate libsndfile
       speex json_c ]
-    ++ stdenv.lib.optional jackaudioSupport jackaudio
+    ++ stdenv.lib.optional jackaudioSupport jack2
     ++ stdenv.lib.optionals x11Support [ xlibs.xlibs xlibs.libXtst xlibs.libXi ]
     ++ stdenv.lib.optional useSystemd systemd
     ++ stdenv.lib.optionals stdenv.isLinux [ alsaLib bluez sbc udev ];
diff --git a/pkgs/servers/restund/default.nix b/pkgs/servers/restund/default.nix
index e817151e778..d6952e9700e 100644
--- a/pkgs/servers/restund/default.nix
+++ b/pkgs/servers/restund/default.nix
@@ -24,5 +24,9 @@ stdenv.mkDerivation rec {
     platforms = with stdenv.lib.platforms; linux;
     maintainers = with stdenv.lib.maintainers; [raskin];
     license = with stdenv.lib.licenses; bsd3;
+    inherit version;
+    downloadPage = "http://www.creytiv.com/pub/";
+    updateWalker = true;
+    downloadURLRegexp = "/restund-.*[.]tar[.]";
   };
 }
diff --git a/pkgs/servers/samba/default.nix b/pkgs/servers/samba/default.nix
index ade79e2c99c..08f12d97506 100644
--- a/pkgs/servers/samba/default.nix
+++ b/pkgs/servers/samba/default.nix
@@ -18,11 +18,11 @@
 assert useKerberos -> kerberos != null;
 
 stdenv.mkDerivation rec {
-  name = "samba-3.6.22";
+  name = "samba-3.6.24";
 
   src = fetchurl {
-    url = "http://us3.samba.org/samba/ftp/stable/${name}.tar.gz";
-    sha256 = "1sny3irf1p4fjli5qa29swr3l217grg90cva35rmay48fw7g5g9h";
+    url = "http://samba.org/samba/ftp/stable/${name}.tar.gz";
+    sha256 = "19rln8m1k359bz6dhmlv39kzyjg7p296dz4y4mq1jwrlnw2bvl0i";
   };
 
   buildInputs = [ readline pam openldap popt iniparser libunwind fam acl cups ]
diff --git a/pkgs/servers/search/elasticsearch/default.nix b/pkgs/servers/search/elasticsearch/default.nix
index b227832ad73..76e416d6472 100644
--- a/pkgs/servers/search/elasticsearch/default.nix
+++ b/pkgs/servers/search/elasticsearch/default.nix
@@ -1,15 +1,18 @@
 { stdenv, fetchurl, makeWrapper, jre, utillinux }:
+
+with stdenv.lib;
+
 stdenv.mkDerivation rec {
-  name = "elasticsearch-1.2.1";
+  name = "elasticsearch-1.2.2";
 
   src = fetchurl {
     url = "https://download.elasticsearch.org/elasticsearch/elasticsearch/${name}.tar.gz";
-    sha256 = "11lirxl0hb0xfd57accsgldq1adrlv9pak2520jll2sj5gg71cmj";
+    sha256 = "1vpvxndcq48rcsgw2jnzdh4fwnf141hf5wjxrjs1g7p2qw0d0cy8";
   };
 
   patches = [ ./es-home.patch ];
 
-  buildInputs = [ makeWrapper jre utillinux ];
+  buildInputs = [ makeWrapper jre ] ++ optional (!stdenv.isDarwin) utillinux;
 
   installPhase = ''
     mkdir -p $out
@@ -21,7 +24,7 @@ stdenv.mkDerivation rec {
     # set ES_CLASSPATH and JAVA_HOME
     wrapProgram $out/bin/elasticsearch \
       --prefix ES_CLASSPATH : "$out/lib/${name}.jar":"$out/lib/*":"$out/lib/sigar/*" \
-      --prefix PATH : "${utillinux}/bin/" \
+      ${optionalString (!stdenv.isDarwin) ''--prefix PATH : "${utillinux}/bin/"''} \
       --set JAVA_HOME "${jre}"
     wrapProgram $out/bin/elasticsearch-plugin \
       --prefix ES_CLASSPATH : "$out/lib/${name}.jar":"$out/lib/*":"$out/lib/sigar/*" --set JAVA_HOME "${jre}"
@@ -30,5 +33,6 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Open Source, Distributed, RESTful Search Engine";
     license = "ASL2.0";
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/servers/search/elasticsearch/plugins.nix b/pkgs/servers/search/elasticsearch/plugins.nix
new file mode 100644
index 00000000000..c03a2feae5f
--- /dev/null
+++ b/pkgs/servers/search/elasticsearch/plugins.nix
@@ -0,0 +1,53 @@
+{ pkgs,  stdenv, fetchurl, unzip, elasticsearch }:
+
+with pkgs.lib;
+
+let
+  esPlugin = a@{
+    pluginName, 
+    installPhase ? ''
+      mkdir -p $out
+      ES_HOME=$out ${elasticsearch}/bin/elasticsearch-plugin --install ${pluginName} --url file://$src
+    '', 
+    ...
+  }:
+    stdenv.mkDerivation (a // {
+      inherit installPhase;
+      unpackPhase = "true";
+      buildInputs = [ unzip ];
+      meta = a.meta // {
+        platforms = elasticsearch.meta.platforms;
+        maintainers = (a.meta.maintainers or []) ++ [ maintainers.offline ];
+      };
+    });
+in {
+  elasticsearch_river_jdbc = esPlugin rec {
+    name = "elasticsearch-river-jdbc-${version}";
+    pluginName = "jdbc";
+    version = "1.2.1.1";
+    src = fetchurl {
+      url = "http://xbib.org/repository/org/xbib/elasticsearch/plugin/elasticsearch-river-jdbc/${version}/${name}-plugin.zip";
+      sha1 = "68e7e1fdf45d0e5852b21610a84740595223ea11";
+    };
+    meta = {
+      homepage = "https://github.com/jprante/elasticsearch-river-jdbc";
+      description = "Plugin to fetch data from JDBC sources for indexing into Elasticsearch";
+      license = licenses.asl20;
+    };
+  };
+
+  elasticsearch_analisys_lemmagen = esPlugin rec {
+    name = "elasticsearch-analysis-lemmagen-${version}";
+    pluginName = "elasticsearch-analysis-lemmagen";
+    version = "0.1";
+    src = fetchurl {
+      url = "https://github.com/vhyza/elasticsearch-analysis-lemmagen/releases/download/v${version}/${name}-plugin.zip";
+      sha256 = "bf7bf5ce3ccdd3afecd0e18cd6fce1ef56f824e41f4ef50553ae598caa5c366d";
+    };
+    meta = {
+      homepage = "https://github.com/vhyza/elasticsearch-analysis-lemmagen";
+      description = "LemmaGen Analysis plugin provides jLemmaGen lemmatizer as Elasticsearch token filter";
+      license = licenses.asl20;
+    };
+  };
+}
diff --git a/pkgs/servers/serfdom/default.nix b/pkgs/servers/serfdom/default.nix
index 274fc89f94d..92ab3bd780a 100644
--- a/pkgs/servers/serfdom/default.nix
+++ b/pkgs/servers/serfdom/default.nix
@@ -1,126 +1,30 @@
-{ stdenv, fetchurl, fetchgit, fetchhg, go, lib }:
+{ stdenv, lib, go, fetchurl, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
 
-let
-  goDeps = [
-    {
-      dir     = "github.com/hashicorp";
-      name    = "serf";
-      rev     = "c5b41a9d1d261135117a8d501d3293efade3cc74";
-      sha256  = "a314d3c13fb370842a8f7c6650abfa907b51172a09c64f9184a240fab05b43df";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/armon";
-      name    = "go-metrics";
-      rev     = "e12c3591b520e819e8234bd585d592774f2b2ad5";
-      sha256  = "79476efefb68876fcad7e71e76d95f4a7eece2cfcdc5a9c10f998af3178230ba";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/hashicorp";
-      name    = "logutils";
-      rev     = "8e0820fe7ac5eb2b01626b1d99df47c5449eb2d8";
-      sha256  = "184lnn7x1v3xvj6zz1rg9s0252wkkd59kij2iyrrm7y80bym2jys";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/hashicorp";
-      name    = "memberlist";
-      rev     = "d5be01d1f4d75b086eba4ae808f2767c08cbbf73";
-      sha256  = "4ab2b610d439e96c169d9caf9ac0e009d71d3ef9a2fd2c812870b71eb6b27dfc";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/ugorji";
-      name    = "go";
-      rev     = "71c2886f5a673a35f909803f38ece5810165097b";
-      sha256  = "128853bcc5f114c300772cbce316b55e84206fa56705c5b9cc94c1693b11ee94";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/mitchellh";
-      name    = "cli";
-      rev     = "69f0b65ce53b27f729b1b807b88dc88007f41dd3";
-      sha256  = "0hnnqd8vg5ca2hglkrj141ba2akdh7crl2lsrgz8d6ipw6asszx3";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/armon";
-      name    = "mdns";
-      rev     = "8be7e3ac4e941555169a99d01abcabd3c982d87a";
-      sha256  = "87cd3a0ada3b094ee8fc4c4742158e0d051cde893da1ea320158a47d6254f69d";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/miekg";
-      name    = "dns";
-      rev     = "7ebb4c59b39d5984952a355086606dd91f6cfe86";
-      sha256  = "8418ad2d27e607cef1dc0003471416294443e467f2de9df135e3a2ab411e2512";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/mitchellh";
-      name    = "mapstructure";
-      rev     = "57bb2fa7a7e00b26c80e4c4b0d4f15a210d94039";
-      sha256  = "13lvd5vw8y6h5zl3samkrb7237kk778cky7k7ys1cm46mfd957zy";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/ryanuber";
-      name    = "columnize";
-      rev     = "d066e113d6e13232f45bda646a915dffeee7f1a4";
-      sha256  = "2aaec396a223fc4b45117a595e74c0a874bd5cd9604c742b8c4747436b4721e9";
-      fetcher = git;
-    }
-    {
-      dir     = "code.google.com/p";
-      name    = "go.net";
-      rev     = "89dbba2db2d4";
-      sha256  = "0168inai10nkdrz4g0rjlj8b5v34mv135v8bhyvh501vnqql50jn";
-      fetcher = hg;
-    }
-  ];
-  git = desc: fetchgit { url = "https://${desc.dir}/${desc.name}";
-                         inherit (desc) rev sha256; };
-  hg = desc: fetchhg { url = "https://${desc.dir}/${desc.name}";
-                       tag = desc.rev;
-                       inherit (desc) sha256; };
-  createGoPathCmds =
-    lib.concatStrings
-      (map (desc:
-            let fetched = desc.fetcher desc; in ''
-              mkdir -p $GOPATH/src/${desc.dir}
-              ln -s ${fetched} $GOPATH/src/${desc.dir}/${desc.name}
-            '') goDeps);
-in
-  stdenv.mkDerivation rec {
-    version = "0.5.0";
-    name = "serfdom-${version}";
+stdenv.mkDerivation rec {
+  version = "0.6.3";
+  name = "serfdom-${version}";
 
-    src = fetchurl {
-      url = "https://github.com/hashicorp/serf/archive/v${version}.tar.gz";
-      sha256 = "1p2cpkdx0gck1ypxc98im7gsv3275avpkizhsif3nxvl1xd8g1qp";
-    };
+  src = import ./deps.nix {
+    inherit stdenv lib fetchgit fetchhg fetchbzr fetchFromGitHub;
+  };
 
-    buildInputs = [ go ];
+  buildInputs = [ go ];
 
-    buildPhase = ''
-      mkdir $TMPDIR/go
-      export GOPATH=$TMPDIR/go
-      ${createGoPathCmds}
-      go build -v -o bin/serf
-    '';
+  buildPhase = ''
+    export GOPATH=$src
+    go build -v -o serf github.com/hashicorp/serf
+  '';
 
-    installPhase = ''
-      ensureDir $out/bin
-      cp bin/serf $out/bin
-    '';
+  installPhase = ''
+    ensureDir $out/bin
+    mv serf $out/bin/serf
+  '';
 
-    meta = with stdenv.lib; {
-      description = "Serf is a service discovery and orchestration tool that is decentralized, highly available, and fault tolerant";
-      homepage = http://www.serfdom.io/;
-      license = licenses.mpl20;
-      maintainers = [ maintainers.msackman ];
-      platforms = platforms.linux;
-    };
-  }
+  meta = with stdenv.lib; {
+    description = "Serf is a service discovery and orchestration tool that is decentralized, highly available, and fault tolerant";
+    homepage = http://www.serfdom.io/;
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ msackman cstrahan ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/serfdom/deps.nix b/pkgs/servers/serfdom/deps.nix
new file mode 100644
index 00000000000..a4b4058a711
--- /dev/null
+++ b/pkgs/servers/serfdom/deps.nix
@@ -0,0 +1,185 @@
+{ stdenv, lib, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
+
+let
+  goDeps = [
+    {
+      root = "code.google.com/p/go.net";
+      src = fetchhg {
+        url = "http://code.google.com/p/go.net";
+        rev = "134";
+        sha256 = "1jycpgrfwgkfac60zjbx6babcz7sgyn9xgy6cr3l811j6k8r2pbv";
+      };
+    }
+    {
+      root = "code.google.com/p/go.text";
+      src = fetchhg {
+        url = "http://code.google.com/p/go.text";
+        rev = "85";
+        sha256 = "1x8h6vq9g5gbi7iiwla6dkaaqqf7wmkdm4szj7wvzlsijf2x8dwr";
+      };
+    }
+    {
+      root = "github.com/armon/circbuf";
+      src = fetchFromGitHub {
+        owner = "armon";
+        repo = "circbuf";
+        rev = "f092b4f207b6e5cce0569056fba9e1a2735cb6cf";
+        sha256 = "06kwwdwa3hskdh6ws7clj1vim80dyc3ldim8k9y5qpd30x0avn5s";
+      };
+    }
+    {
+      root = "github.com/armon/go-metrics";
+      src = fetchFromGitHub {
+        owner = "armon";
+        repo = "go-metrics";
+        rev = "02567bbc4f518a43853d262b651a3c8257c3f141";
+        sha256 = "08fk3zmw0ywmdfp2qhrpv0vrk1y97hzqczrgr3y2yip3x8sr37ar";
+      };
+    }
+    {
+      root = "github.com/armon/mdns";
+      src = fetchFromGitHub {
+        owner = "armon";
+        repo = "mdns";
+        rev = "70462deb060d44247356ee238ebafd7699ddcffe";
+        sha256 = "0xkm3d0hsixdm1yrkx9c39723kfjkb3wvrzrmx3np9ylcwn6h5p5";
+      };
+    }
+    {
+      root = "github.com/hashicorp/go-syslog";
+      src = fetchFromGitHub {
+        owner = "hashicorp";
+        repo = "go-syslog";
+        rev = "ac3963b72ac367e48b1e68a831e62b93fb69091c";
+        sha256 = "1r9s1gsa4azcs05gx1179ixk7qvrkrik3v92wr4s8gwm00m0gf81";
+      };
+    }
+    {
+      root = "github.com/hashicorp/logutils";
+      src = fetchFromGitHub {
+        owner = "hashicorp";
+        repo = "logutils";
+        rev = "8e0820fe7ac5eb2b01626b1d99df47c5449eb2d8";
+        sha256 = "033rbkc066g657r0dnzysigjz2bs4biiz0kmiypd139d34jvslwz";
+      };
+    }
+    {
+      root = "github.com/hashicorp/memberlist";
+      src = fetchFromGitHub {
+        owner = "hashicorp";
+        repo = "memberlist";
+        rev = "17d39b695094be943bfb98442a80b082e6b9ac47";
+        sha256 = "0nvgjnwmfqhv2wvr77d2q5mq1bfw4xbpil6wgyj4fyrmhsfzrv3g";
+      };
+    }
+    {
+      root = "github.com/hashicorp/serf";
+      src = fetchFromGitHub {
+        owner = "hashicorp";
+        repo = "serf";
+        rev = "5e0771b8d61bee28986087a246f7611d6bd4a87a";
+        sha256 = "0ck77ji28bvm4ahzxyyi4sm17c3fxc16k0k5mihl1nlkgdd73m8y";
+      };
+    }
+    {
+      root = "github.com/miekg/dns";
+      src = fetchFromGitHub {
+        owner = "miekg";
+        repo = "dns";
+        rev = "fc67c4b981930a377f8a26a5a1f2c0ccd5dd1514";
+        sha256 = "1csjmkx0gl34r4hmkhdbdxb0693f1p10yrjaj8f2jwli9p9sl4mg";
+      };
+    }
+    {
+      root = "github.com/mitchellh/cli";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "cli";
+        rev = "8262fe3f76f0da53b5674eb35c8c6436430794c3";
+        sha256 = "0pqkxh1q49kkxihggrfjs8174d927g4c5qqx00ggw8sqqsgrw6vn";
+      };
+    }
+    {
+      root = "github.com/mitchellh/mapstructure";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "mapstructure";
+        rev = "6fb2c832bcac61d01212ab1d172f7a14a8585b07";
+        sha256 = "0mx855lwhv0rk461wmbnbzbpkhmq5p2ipmrm5bhzimagrr1w17hw";
+      };
+    }
+    {
+      root = "github.com/ryanuber/columnize";
+      src = fetchFromGitHub {
+        owner = "ryanuber";
+        repo = "columnize";
+        rev = "785d943a7b6886e0bb2f139a60487b823dd8d9de";
+        sha256 = "1h3sxzhiwz65vf3cvclirlf6zhdr97v01dpn5cmf3m09rxxpnp3f";
+      };
+    }
+    {
+      root = "github.com/ugorji/go";
+      src = fetchFromGitHub {
+        owner = "ugorji";
+        repo = "go";
+        rev = "71c2886f5a673a35f909803f38ece5810165097b";
+        sha256 = "157f24xnkhclrjwwa1b7lmpj112ynlbf7g1cfw0c657iqny5720j";
+      };
+    }
+    {
+      root = "github.com/ugorji/go-msgpack";
+      src = fetchFromGitHub {
+        owner = "ugorji";
+        repo = "go-msgpack";
+        rev = "75092644046c5e38257395b86ed26c702dc95b92";
+        sha256 = "1bmqi16bfiqw7qhb3d5hbh0dfzhx2bbq1g15nh2pxwxckwh80x98";
+      };
+    }
+    {
+      root = "github.com/vmihailenco/bufio";
+      src = fetchFromGitHub {
+        owner = "vmihailenco";
+        repo = "bufio";
+        rev = "24e7e48f60fc2d9e99e43c07485d9fff42051e66";
+        sha256 = "0x46qnf2f15v7m0j2dcb16raxjamk5rdc7hqwgyxfr1sqmmw3983";
+      };
+    }
+    {
+      root = "github.com/vmihailenco/msgpack";
+      src = fetchFromGitHub {
+        owner = "vmihailenco";
+        repo = "msgpack";
+        rev = "20c1b88a6c7fc5432037439f4e8c582e236fb205";
+        sha256 = "1dj5scpfhgnw0yrh0w6jlrb9d03halvsv4l3wgjhazrrimdqf0q0";
+      };
+    }
+    {
+      root = "launchpad.net/gocheck";
+      src = fetchbzr {
+        url = "https://launchpad.net/gocheck";
+        rev = "87";
+        sha256 = "1y9fa2mv61if51gpik9isls48idsdz87zkm1p3my7swjdix7fcl0";
+      };
+    }
+    {
+      root = "launchpad.net/mgo";
+      src = fetchbzr {
+        url = "https://launchpad.net/mgo";
+        rev = "2";
+        sha256 = "0h1dxzyx5c4r4gfnmjxv92hlhjxrgx9p4g53p4fhmz6x2fdglb0x";
+      };
+    }
+  ];
+
+in
+
+stdenv.mkDerivation rec {
+  name = "go-deps";
+
+  buildCommand =
+    lib.concatStrings
+      (map (dep: ''
+              mkdir -p $out/src/`dirname ${dep.root}`
+              ln -s ${dep.src} $out/src/${dep.root}
+            '') goDeps);
+}
diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix
index d0f7f5ef3e5..1df9f6a440f 100644
--- a/pkgs/servers/sql/mariadb/default.nix
+++ b/pkgs/servers/sql/mariadb/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   version = "10.0.11";
 
   src = fetchurl {
-    url    = "https://fossies.org/linux/misc/${name}.tar.gz";
+    url    = "https://downloads.mariadb.org/interstitial/mariadb-${version}/source/mariadb-${version}.tar.gz";
     sha256 = "1p8h06kns30rlbnzw9ddmihs7r3jhp8xlrl4r6h5d107wkcw86v3";
   };
 
diff --git a/pkgs/servers/sql/mysql/5.5.x.nix b/pkgs/servers/sql/mysql/5.5.x.nix
index 782019f8ee0..7c31bd7c582 100644
--- a/pkgs/servers/sql/mysql/5.5.x.nix
+++ b/pkgs/servers/sql/mysql/5.5.x.nix
@@ -11,6 +11,11 @@ stdenv.mkDerivation rec {
     md5 = "bf1d80c66d4822ec6036300399a33c03";
   };
 
+  preConfigure = stdenv.lib.optional stdenv.isDarwin ''
+    ln -s /bin/ps $TMPDIR/ps
+    export PATH=$PATH:$TMPDIR
+  '';
+
   buildInputs = [ cmake bison ncurses openssl readline zlib ]
      ++ stdenv.lib.optional stdenv.isDarwin perl;
 
diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix
index 7fca58f5446..1834dfd6a96 100644
--- a/pkgs/servers/x11/xorg/default.nix
+++ b/pkgs/servers/x11/xorg/default.nix
@@ -1869,6 +1869,16 @@ let
     buildInputs = [pkgconfig libX11 libxkbfile ];
   })) // {inherit libX11 libxkbfile ;};
 
+  xkbprint = (stdenv.mkDerivation ((if overrides ? xkbprint then overrides.xkbprint else x: x) {
+    name = "xkbprint-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = mirror://xorg/individual/app/xkbprint-1.0.3.tar.bz2;
+      sha256 = "1h4jb3gjrbjp79h5gcgkjvdxykcy2bmq03smpls820c8wnw6v17s";
+    };
+    buildInputs = [pkgconfig libX11 libxkbfile ];
+  })) // {inherit libX11 libxkbfile ;};
+
   xkbutils = (stdenv.mkDerivation ((if overrides ? xkbutils then overrides.xkbutils else x: x) {
     name = "xkbutils-1.0.4";
     builder = ./builder.sh;
diff --git a/pkgs/servers/x11/xorg/tarballs-7.7.list b/pkgs/servers/x11/xorg/tarballs-7.7.list
index 512bbbb9eff..e7b3a6f4ad6 100644
--- a/pkgs/servers/x11/xorg/tarballs-7.7.list
+++ b/pkgs/servers/x11/xorg/tarballs-7.7.list
@@ -185,3 +185,4 @@ mirror://xorg/individual/app/xvinfo-1.1.2.tar.bz2
 mirror://xorg/individual/app/xwd-1.0.6.tar.bz2
 mirror://xorg/individual/app/xwininfo-1.1.3.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xwud-1.0.4.tar.bz2
+mirror://xorg/individual/app/xkbprint-1.0.3.tar.bz2
diff --git a/pkgs/servers/xmpp/openfire/default.nix b/pkgs/servers/xmpp/openfire/default.nix
index 736517b53f1..3fb89d7a222 100644
--- a/pkgs/servers/xmpp/openfire/default.nix
+++ b/pkgs/servers/xmpp/openfire/default.nix
@@ -1,34 +1,25 @@
-{ stdenv, fetchurl, builderDefs, jre }:
+{ stdenv, fetchurl, jre }:
 
-with builderDefs;
-  let 
-    version="3_6_3";
-    localDefs = builderDefs.passthru.function (rec {
-    src = /* put a fetchurl here */
-      fetchurl {
-        url = "http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_${version}.tar.gz";
-        sha256 = "0ibzhmh9qw4lmx45ir1i280p30npgwnj7vrkl432kj3zi7hp79q2";
-      };
+stdenv.mkDerivation rec {
+  name = "openfire-${version}";
+  version  = "3_6_3";
 
-    buildInputs = [jre];
-    configureFlags = [];
+  src = fetchurl {
+    url = "http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_${version}.tar.gz";
+    sha256 = "0ibzhmh9qw4lmx45ir1i280p30npgwnj7vrkl432kj3zi7hp79q2";
+  };
+
+  buildInputs = [ jre ];
+
+  installPhase = ''
+    sed -e 's@\(common_jvm_locations\)=.*@\1${jre}@' -i bin/openfire
+    cp -r . $out
+    rm -r $out/logs
+    mv $out/conf $out/conf.inst
+    ln -s /var/log/openfire $out/logs
+    ln -s /etc/openfire $out/conf
+  ''; 
 
-    installPhase = fullDepEntry (''
-      sed -e 's@\(common_jvm_locations\)=.*@\1${jre}@' -i bin/openfire
-      cp -r . $out
-      rm -r $out/logs
-      mv $out/conf $out/conf.inst
-      ln -s /var/log/openfire $out/logs
-      ln -s /etc/openfire $out/conf
-    '') 
-    ["minInit" "doUnpack" "addInputs"];
-  });
-  in with localDefs;
-stdenv.mkDerivation rec {
-  name = "openfire-"+version;
-  builder = writeScript (name + "-builder")
-    (textClosure localDefs 
-      [ installPhase doForceShare doPropagate]);
   meta = {
     description = "XMPP server in Java";
   };