about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--nixos/lib/testing.nix12
-rw-r--r--nixos/modules/services/networking/charybdis.nix6
-rw-r--r--nixos/release.nix2
-rw-r--r--nixos/tests/avahi.nix8
-rw-r--r--nixos/tests/bittorrent.nix3
-rw-r--r--nixos/tests/blivet.nix3
-rw-r--r--nixos/tests/cadvisor.nix7
-rw-r--r--nixos/tests/check-filesystems.nix3
-rw-r--r--nixos/tests/chromium.nix3
-rw-r--r--nixos/tests/cjdns.nix7
-rw-r--r--nixos/tests/containers.nix7
-rw-r--r--nixos/tests/docker-registry.nix7
-rw-r--r--nixos/tests/docker.nix8
-rw-r--r--nixos/tests/etcd.nix7
-rw-r--r--nixos/tests/firefox.nix3
-rw-r--r--nixos/tests/firewall.nix8
-rw-r--r--nixos/tests/fleet.nix7
-rw-r--r--nixos/tests/gitlab.nix7
-rw-r--r--nixos/tests/gnome3.nix8
-rw-r--r--nixos/tests/i3wm.nix7
-rw-r--r--nixos/tests/influxdb.nix7
-rw-r--r--nixos/tests/installer.nix7
-rw-r--r--nixos/tests/ipv6.nix8
-rw-r--r--nixos/tests/jenkins.nix7
-rw-r--r--nixos/tests/kde4.nix3
-rw-r--r--nixos/tests/kexec.nix8
-rw-r--r--nixos/tests/kubernetes.nix7
-rw-r--r--nixos/tests/lightdm.nix7
-rw-r--r--nixos/tests/login.nix3
-rw-r--r--nixos/tests/logstash.nix7
-rw-r--r--nixos/tests/mesos.nix7
-rw-r--r--nixos/tests/misc.nix8
-rw-r--r--nixos/tests/mpich.nix7
-rw-r--r--nixos/tests/mumble.nix5
-rw-r--r--nixos/tests/munin.nix7
-rw-r--r--nixos/tests/mysql-replication.nix5
-rw-r--r--nixos/tests/mysql.nix7
-rw-r--r--nixos/tests/nat.nix5
-rw-r--r--nixos/tests/networking-proxy.nix8
-rw-r--r--nixos/tests/networking.nix5
-rw-r--r--nixos/tests/nfs.nix6
-rw-r--r--nixos/tests/nsd.nix7
-rw-r--r--nixos/tests/openssh.nix3
-rw-r--r--nixos/tests/panamax.nix7
-rw-r--r--nixos/tests/peerflix.nix8
-rw-r--r--nixos/tests/phabricator.nix3
-rw-r--r--nixos/tests/printing.nix4
-rw-r--r--nixos/tests/proxy.nix6
-rw-r--r--nixos/tests/quake3.nix5
-rw-r--r--nixos/tests/rabbitmq.nix3
-rw-r--r--nixos/tests/simple.nix7
-rw-r--r--nixos/tests/subversion.nix5
-rw-r--r--nixos/tests/tomcat.nix8
-rw-r--r--nixos/tests/trac.nix3
-rw-r--r--nixos/tests/udisks2.nix3
-rw-r--r--nixos/tests/virtualbox.nix3
-rw-r--r--nixos/tests/xfce.nix8
-rw-r--r--pkgs/applications/misc/merkaartor/default.nix4
-rw-r--r--pkgs/applications/misc/redshift/default.nix35
-rw-r--r--pkgs/development/libraries/gdal/default.nix4
-rw-r--r--pkgs/development/libraries/gdal/gdal-1_11_2.nix59
-rw-r--r--pkgs/development/libraries/openscenegraph/default.nix2
-rw-r--r--pkgs/development/perl-modules/boost-geometry-utils-fix-oom.patch34
-rw-r--r--pkgs/development/web/nodejs/default.nix4
-rw-r--r--pkgs/shells/fish/default.nix4
-rw-r--r--pkgs/top-level/all-packages.nix7
-rw-r--r--pkgs/top-level/perl-packages.nix4
-rw-r--r--pkgs/top-level/python-packages.nix157
68 files changed, 513 insertions, 141 deletions
diff --git a/nixos/lib/testing.nix b/nixos/lib/testing.nix
index ee254ae187fd..59d05f87d5fe 100644
--- a/nixos/lib/testing.nix
+++ b/nixos/lib/testing.nix
@@ -122,12 +122,16 @@ rec {
             ${lib.optionalString (builtins.length vms == 1) "--set USE_SERIAL 1"}
         ''; # "
 
-      test = runTests driver;
+      passMeta = drv: drv // lib.optionalAttrs (t ? meta) {
+        meta = (drv.meta or {}) // t.meta;
+      };
 
-      report = releaseTools.gcovReport { coverageRuns = [ test ]; };
-
-    in (if makeCoverageReport then report else test) // { inherit nodes driver test; };
+      test = passMeta (runTests driver);
+      report = passMeta (releaseTools.gcovReport { coverageRuns = [ test ]; });
 
+    in (if makeCoverageReport then report else test) // { 
+      inherit nodes driver test; 
+    };
 
   runInMachine =
     { drv
diff --git a/nixos/modules/services/networking/charybdis.nix b/nixos/modules/services/networking/charybdis.nix
index 91729ebd60a5..2f7d006b8816 100644
--- a/nixos/modules/services/networking/charybdis.nix
+++ b/nixos/modules/services/networking/charybdis.nix
@@ -85,10 +85,8 @@ in
         PermissionsStartOnly = true; # preStart needs to run with root permissions
       };
       preStart = ''
-        if ! test -d /var/lib/charybdis; then
-          ${coreutils}/bin/mkdir -p ${cfg.statedir}
-          ${coreutils}/bin/chown ${cfg.user}:${cfg.group} ${cfg.statedir}
-        fi
+        ${coreutils}/bin/mkdir -p ${cfg.statedir}
+        ${coreutils}/bin/chown ${cfg.user}:${cfg.group} ${cfg.statedir}
       '';
 
     };
diff --git a/nixos/release.nix b/nixos/release.nix
index c288adfd2063..cf0a00dd2540 100644
--- a/nixos/release.nix
+++ b/nixos/release.nix
@@ -330,7 +330,5 @@ in rec {
         services.postgresql.package = pkgs.postgresql93;
         environment.systemPackages = [ pkgs.php ];
       });
-
   };
-
 }
diff --git a/nixos/tests/avahi.nix b/nixos/tests/avahi.nix
index 3898ddb4e8e6..a39104f603ec 100644
--- a/nixos/tests/avahi.nix
+++ b/nixos/tests/avahi.nix
@@ -1,7 +1,9 @@
 # Test whether `avahi-daemon' and `libnss-mdns' work as expected.
-
-import ./make-test.nix {
+import ./make-test.nix ({ pkgs, ... } : {
   name = "avahi";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ eelco chaoflow wizeman ];
+  };
 
   nodes = {
     one =
@@ -52,4 +54,4 @@ import ./make-test.nix {
        $two->succeed("getent hosts one.local >&2");
        $two->succeed("getent hosts two.local >&2");
     '';
-}
+})
diff --git a/nixos/tests/bittorrent.nix b/nixos/tests/bittorrent.nix
index 0d0f00212a02..95bba075612d 100644
--- a/nixos/tests/bittorrent.nix
+++ b/nixos/tests/bittorrent.nix
@@ -24,6 +24,9 @@ in
 
 {
   name = "bittorrent";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ iElectric eelco chaoflow rob wkennington ];
+  };
 
   nodes =
     { tracker =
diff --git a/nixos/tests/blivet.nix b/nixos/tests/blivet.nix
index 72c2a33f87eb..33a79e65efe1 100644
--- a/nixos/tests/blivet.nix
+++ b/nixos/tests/blivet.nix
@@ -1,5 +1,8 @@
 import ./make-test.nix ({ pkgs, ... }: with pkgs.pythonPackages; rec {
   name = "blivet";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ aszlig ];
+  };
 
   machine = {
     environment.systemPackages = [ pkgs.python blivet mock ];
diff --git a/nixos/tests/cadvisor.nix b/nixos/tests/cadvisor.nix
index 225bf1a7483d..1644cb856cec 100644
--- a/nixos/tests/cadvisor.nix
+++ b/nixos/tests/cadvisor.nix
@@ -1,5 +1,8 @@
-import ./make-test.nix {
+import ./make-test.nix ({ pkgs, ... } : {
   name = "cadvisor";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ offline ];
+  };
 
   nodes = {
     machine = { config, pkgs, ... }: {
@@ -27,4 +30,4 @@ import ./make-test.nix {
       $influxdb->waitForUnit("cadvisor.service");
       $influxdb->succeed("curl http://localhost:8080/containers/");
     '';
-}
+})
diff --git a/nixos/tests/check-filesystems.nix b/nixos/tests/check-filesystems.nix
index 71aa9649840f..cb9ff25f977e 100644
--- a/nixos/tests/check-filesystems.nix
+++ b/nixos/tests/check-filesystems.nix
@@ -7,6 +7,9 @@ with import ../lib/build-vms.nix { inherit nixos nixpkgs system; };
 
 rec {
   name = "check-filesystems";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ eelco chaoflow ];
+  };
 
   nodes = {
     share = {pkgs, config, ...}: {
diff --git a/nixos/tests/chromium.nix b/nixos/tests/chromium.nix
index 6c2302594b91..26e179c39447 100644
--- a/nixos/tests/chromium.nix
+++ b/nixos/tests/chromium.nix
@@ -8,6 +8,9 @@ import ./make-test.nix (
 , ...
 }: rec {
   name = "chromium";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ aszlig ];
+  };
 
   enableOCR = true;
 
diff --git a/nixos/tests/cjdns.nix b/nixos/tests/cjdns.nix
index 45164234b1bd..2cae63fdda44 100644
--- a/nixos/tests/cjdns.nix
+++ b/nixos/tests/cjdns.nix
@@ -22,8 +22,11 @@ let
 
 in
 
-import ./make-test.nix {
+import ./make-test.nix ({ pkgs, ...} : {
   name = "cjdns";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ emery ];
+  };
 
   nodes = rec
     { # Alice finds peers over over ETHInterface.
@@ -119,4 +122,4 @@ import ./make-test.nix {
 
       $bob->succeed("curl --fail -g http://[$aliceIp6]");
     '';
-}
+})
\ No newline at end of file
diff --git a/nixos/tests/containers.nix b/nixos/tests/containers.nix
index e40a8100a06c..c429f9c7b715 100644
--- a/nixos/tests/containers.nix
+++ b/nixos/tests/containers.nix
@@ -1,7 +1,10 @@
 # Test for NixOS' container support.
 
-import ./make-test.nix {
+import ./make-test.nix ({ pkgs, ...} : {
   name = "containers";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ aristid aszlig eelco chaoflow ];
+  };
 
   machine =
     { config, pkgs, ... }:
@@ -113,4 +116,4 @@ import ./make-test.nix {
       $machine->fail("nixos-container destroy webserver");
     '';
 
-}
+})
diff --git a/nixos/tests/docker-registry.nix b/nixos/tests/docker-registry.nix
index cc3c47746800..eed3284202f5 100644
--- a/nixos/tests/docker-registry.nix
+++ b/nixos/tests/docker-registry.nix
@@ -1,7 +1,10 @@
 # This test runs docker-registry and check if it works
 
-import ./make-test.nix {
+import ./make-test.nix ({ pkgs, ...} : {
   name = "docker-registry";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ offline ];
+  };
 
   nodes = {
     registry = { config, pkgs, ... }: {
@@ -37,4 +40,4 @@ import ./make-test.nix {
     $client2->succeed("docker pull registry:8080/scratch");
     $client2->succeed("docker images | grep scratch");
   '';
-}
+})
diff --git a/nixos/tests/docker.nix b/nixos/tests/docker.nix
index fc6449b28d3e..babb2b8e00eb 100644
--- a/nixos/tests/docker.nix
+++ b/nixos/tests/docker.nix
@@ -1,7 +1,10 @@
 # This test runs docker and checks if simple container starts
 
-import ./make-test.nix {
+import ./make-test.nix ({ pkgs, ...} : {
   name = "docker";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ offline ];
+  };
 
   nodes = {
     docker =
@@ -20,5 +23,4 @@ import ./make-test.nix {
     $docker->succeed("docker ps | grep sleeping");
     $docker->succeed("docker stop sleeping");
   '';
-
-}
+})
diff --git a/nixos/tests/etcd.nix b/nixos/tests/etcd.nix
index ace5e05b170a..8a4e7fffce0e 100644
--- a/nixos/tests/etcd.nix
+++ b/nixos/tests/etcd.nix
@@ -1,7 +1,10 @@
 # This test runs etcd as single node, multy node and using discovery
 
-import ./make-test.nix {
+import ./make-test.nix ({ pkgs, ... } : {
   name = "etcd";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ offline ];
+  };
 
   nodes = {
     simple =
@@ -105,4 +108,4 @@ import ./make-test.nix {
       $discovery2->waitUntilSucceeds("etcdctl get /foo/bar | grep 'Hello world'");
     };
   '';
-}
+})
diff --git a/nixos/tests/firefox.nix b/nixos/tests/firefox.nix
index 77a6f6ac9e71..67a2779afc24 100644
--- a/nixos/tests/firefox.nix
+++ b/nixos/tests/firefox.nix
@@ -1,5 +1,8 @@
 import ./make-test.nix ({ pkgs, ... }: {
   name = "firefox";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ eelco chaoflow shlevy ];
+  };
 
   machine =
     { config, pkgs, ... }:
diff --git a/nixos/tests/firewall.nix b/nixos/tests/firewall.nix
index 16922508c7c5..9faf19f0359f 100644
--- a/nixos/tests/firewall.nix
+++ b/nixos/tests/firewall.nix
@@ -1,7 +1,10 @@
 # Test the firewall module.
 
-import ./make-test.nix {
+import ./make-test.nix ( { pkgs, ... } : {
   name = "firewall";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ eelco chaoflow ];
+  };
 
   nodes =
     { walled =
@@ -44,5 +47,4 @@ import ./make-test.nix {
       $walled->stopJob("firewall");
       $attacker->succeed("curl -v http://walled/ >&2");
     '';
-
-}
+})
diff --git a/nixos/tests/fleet.nix b/nixos/tests/fleet.nix
index c60f596b6f50..67c95446526f 100644
--- a/nixos/tests/fleet.nix
+++ b/nixos/tests/fleet.nix
@@ -1,5 +1,8 @@
-import ./make-test.nix rec {
+import ./make-test.nix ({ pkgs, ...} : rec {
   name = "simple";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ offline ];
+  };
 
   nodes = {
     node1 =
@@ -70,4 +73,4 @@ import ./make-test.nix rec {
       $node1->succeed("fleetctl stop hello.service");
       $node1->succeed("fleetctl destroy hello.service");
     '';
-}
+})
diff --git a/nixos/tests/gitlab.nix b/nixos/tests/gitlab.nix
index 27c65fe47e8d..bce862b4ad89 100644
--- a/nixos/tests/gitlab.nix
+++ b/nixos/tests/gitlab.nix
@@ -1,7 +1,10 @@
 # This test runs gitlab and checks if it works
 
-import ./make-test.nix {
+import ./make-test.nix ({ pkgs, ...} : {
   name = "gitlab";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ iElectric offline ];
+  };
 
   nodes = {
     gitlab = { config, pkgs, ... }: {
@@ -18,4 +21,4 @@ import ./make-test.nix {
     $gitlab->waitForUnit("gitlab-sidekiq.service");
     $gitlab->waitUntilSucceeds("curl http://localhost:8080/users/sign_in");
   '';
-}
+})
diff --git a/nixos/tests/gnome3.nix b/nixos/tests/gnome3.nix
index 6f2925e52fa4..f5e0159f1c7d 100644
--- a/nixos/tests/gnome3.nix
+++ b/nixos/tests/gnome3.nix
@@ -1,5 +1,8 @@
-import ./make-test.nix {
+import ./make-test.nix ({ pkgs, ...} : {
   name = "gnome3";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ iElectric eelco chaoflow lethalman ];
+  };
 
   machine =
     { config, pkgs, ... }:
@@ -28,5 +31,4 @@ import ./make-test.nix {
       $machine->sleep(20);
       $machine->screenshot("screen");
     '';
-
-}
+})
diff --git a/nixos/tests/i3wm.nix b/nixos/tests/i3wm.nix
index 0966dba8a3c8..627a150f641b 100644
--- a/nixos/tests/i3wm.nix
+++ b/nixos/tests/i3wm.nix
@@ -1,5 +1,8 @@
-import ./make-test.nix {
+import ./make-test.nix ({ pkgs, ...} : {
   name = "i3wm";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ aszlig ];
+  };
 
   machine = { lib, pkgs, ... }: {
     imports = [ ./common/x11.nix ./common/user-account.nix ];
@@ -25,4 +28,4 @@ import ./make-test.nix {
     $machine->sleep(1);
     $machine->screenshot("terminal");
   '';
-}
+})
diff --git a/nixos/tests/influxdb.nix b/nixos/tests/influxdb.nix
index 9f8ea061b960..0408d8983ade 100644
--- a/nixos/tests/influxdb.nix
+++ b/nixos/tests/influxdb.nix
@@ -1,7 +1,10 @@
 # This test runs influxdb and checks if influxdb is up and running
 
-import ./make-test.nix {
+import ./make-test.nix ({ pkgs, ...} : {
   name = "influxdb";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ chaoflow offline ];
+  };
 
   nodes = {
     one = { config, pkgs, ... }: {
@@ -33,4 +36,4 @@ import ./make-test.nix {
         --data-urlencode 'q=select * from foo limit 1' | grep 6666
     ~);
   '';
-}
+})
diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix
index 4da5c29ca0d3..b2e1abc26eec 100644
--- a/nixos/tests/installer.nix
+++ b/nixos/tests/installer.nix
@@ -149,12 +149,15 @@ let
   makeInstallerTest = name:
     { createPartitions, preBootCommands ? "", extraConfig ? ""
     , grubVersion ? 2, grubDevice ? "/dev/vda"
-    , grubIdentifier ? "uuid", enableOCR ? false
+    , grubIdentifier ? "uuid", enableOCR ? false, meta ? {}
     }:
     makeTest {
       inherit enableOCR;
       name = "installer-" + name;
-
+      meta = with pkgs.stdenv.lib.maintainers; {
+        # put global maintainers here, individuals go into makeInstallerTest fkt call
+        maintainers = [ wkennington ] ++ (meta.maintainers or []);
+      };
       nodes = {
 
         # The configuration of the machine used to run "nixos-install". It
diff --git a/nixos/tests/ipv6.nix b/nixos/tests/ipv6.nix
index 017511ea45c6..4e2e6379cad3 100644
--- a/nixos/tests/ipv6.nix
+++ b/nixos/tests/ipv6.nix
@@ -1,8 +1,11 @@
 # Test of IPv6 functionality in NixOS, including whether router
 # solicication/advertisement using radvd works.
 
-import ./make-test.nix {
+import ./make-test.nix ({ pkgs, ...} : {
   name = "ipv6";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ eelco chaoflow ];
+  };
 
   nodes =
     { client = { config, pkgs, ... }: { };
@@ -73,5 +76,4 @@ import ./make-test.nix {
 
       # TODO: test reachability of a machine on another network.
     '';
-
-}
+})
diff --git a/nixos/tests/jenkins.nix b/nixos/tests/jenkins.nix
index d737038380dd..804cecd700c1 100644
--- a/nixos/tests/jenkins.nix
+++ b/nixos/tests/jenkins.nix
@@ -3,8 +3,11 @@
 #   2. jenkins user can be extended on both master and slave
 #   3. jenkins service not started on slave node
 
-import ./make-test.nix {
+import ./make-test.nix ({ pkgs, ...} : {
   name = "jenkins";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ bjornfor coconnor iElectric eelco chaoflow ];
+  };
 
   nodes = {
 
@@ -41,4 +44,4 @@ import ./make-test.nix {
 
     $slave->mustFail("systemctl is-enabled jenkins.service");
   '';
-}
+})
\ No newline at end of file
diff --git a/nixos/tests/kde4.nix b/nixos/tests/kde4.nix
index dd2574fd02a0..981813ba2bda 100644
--- a/nixos/tests/kde4.nix
+++ b/nixos/tests/kde4.nix
@@ -1,5 +1,8 @@
 import ./make-test.nix ({ pkgs, ... }: {
   name = "kde4";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ iElectric eelco chaoflow ];
+  };
 
   machine =
     { config, pkgs, ... }:
diff --git a/nixos/tests/kexec.nix b/nixos/tests/kexec.nix
index 0f0565a60e95..0f5ddef7b1aa 100644
--- a/nixos/tests/kexec.nix
+++ b/nixos/tests/kexec.nix
@@ -1,7 +1,10 @@
 # Test whether fast reboots via kexec work.
 
-import ./make-test.nix  {
+import ./make-test.nix ({ pkgs, ...} : {
   name = "kexec";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ eelco chaoflow ];
+  };
 
   machine = { config, pkgs, ... }:
     { virtualisation.vlans = [ ]; };
@@ -13,5 +16,4 @@ import ./make-test.nix  {
       $machine->{connected} = 0;
       $machine->waitForUnit("multi-user.target");
     '';
-
-}
+})
diff --git a/nixos/tests/kubernetes.nix b/nixos/tests/kubernetes.nix
index 0a9eda930bad..b19ea67b0baf 100644
--- a/nixos/tests/kubernetes.nix
+++ b/nixos/tests/kubernetes.nix
@@ -1,7 +1,10 @@
 # This test runs two node kubernetes cluster and checks if simple redis pod works
 
-import ./make-test.nix rec {
+import ./make-test.nix ({ pkgs, ...} : rec {
   name = "kubernetes";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ offline ];
+  };
 
   redisMaster = builtins.toFile "redis-master-pod.yaml" ''
       id: redis-master-pod
@@ -176,4 +179,4 @@ import ./make-test.nix rec {
     }
 
   '';
-}
+})
diff --git a/nixos/tests/lightdm.nix b/nixos/tests/lightdm.nix
index dba20a49dbd6..b355081ffd67 100644
--- a/nixos/tests/lightdm.nix
+++ b/nixos/tests/lightdm.nix
@@ -1,5 +1,8 @@
-import ./make-test.nix {
+import ./make-test.nix ({ pkgs, ...} : {
   name = "lightdm";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ aszlig ];
+  };
 
   machine = { lib, ... }: {
     imports = [ ./common/user-account.nix ];
@@ -22,4 +25,4 @@ import ./make-test.nix {
     $machine->waitForText(qr/^\d{2}(?::\d{2}){2} (?:AM|PM)$/m);
     $machine->screenshot("session");
   '';
-}
+})
diff --git a/nixos/tests/login.nix b/nixos/tests/login.nix
index e8373219ca68..e793d89567bf 100644
--- a/nixos/tests/login.nix
+++ b/nixos/tests/login.nix
@@ -2,6 +2,9 @@ import ./make-test.nix ({ pkgs, latestKernel ? false, ... }:
 
 {
   name = "login";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ eelco chaoflow ];
+  };
 
   machine =
     { config, pkgs, lib, ... }:
diff --git a/nixos/tests/logstash.nix b/nixos/tests/logstash.nix
index 7284cde7a33c..317ea063e17c 100644
--- a/nixos/tests/logstash.nix
+++ b/nixos/tests/logstash.nix
@@ -1,8 +1,11 @@
 # This test runs logstash and checks if messages flows and
 # elasticsearch is started.
 
-import ./make-test.nix {
+import ./make-test.nix ({ pkgs, ...} : {
   name = "logstash";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ eelco chaoflow offline ];
+  };
 
   nodes = {
     one =
@@ -37,4 +40,4 @@ import ./make-test.nix {
     $one->fail("journalctl -n 20 _SYSTEMD_UNIT=logstash.service | grep dragons");
     $one->waitUntilSucceeds("curl -s http://127.0.0.1:9200/_status?pretty=true | grep logstash");
   '';
-}
+})
diff --git a/nixos/tests/mesos.nix b/nixos/tests/mesos.nix
index 040f613c5966..3610603aeba2 100644
--- a/nixos/tests/mesos.nix
+++ b/nixos/tests/mesos.nix
@@ -1,5 +1,8 @@
-import ./make-test.nix {
+import ./make-test.nix ({ pkgs, ...} : {
   name = "simple";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ offline ];
+  };
 
   machine = { config, pkgs, ... }: {
     services.zookeeper.enable = true;
@@ -26,4 +29,4 @@ import ./make-test.nix {
       $machine->waitForUnit("mesos-master.service");
       $machine->waitForUnit("mesos-slave.service");
     '';
-}
+})
diff --git a/nixos/tests/misc.nix b/nixos/tests/misc.nix
index b44af5316bea..ecec89226d66 100644
--- a/nixos/tests/misc.nix
+++ b/nixos/tests/misc.nix
@@ -1,7 +1,10 @@
 # Miscellaneous small tests that don't warrant their own VM run.
 
-import ./make-test.nix {
+import ./make-test.nix ({ pkgs, ...} : {
   name = "misc";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ eelco chaoflow ];
+  };
 
   machine =
     { config, lib, pkgs, ... }:
@@ -107,5 +110,4 @@ import ./make-test.nix {
           $machine->succeed("nix-store -qR /run/current-system | grep nixos-");
       };
     '';
-
-}
+})
diff --git a/nixos/tests/mpich.nix b/nixos/tests/mpich.nix
index a4ef7b624267..a28e41deb31e 100644
--- a/nixos/tests/mpich.nix
+++ b/nixos/tests/mpich.nix
@@ -1,7 +1,10 @@
 # Simple example to showcase distributed tests using NixOS VMs.
 
-import ./make-test.nix {
+import ./make-test.nix ({ pkgs, ...} : {
   name = "mpich";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ eelco chaoflow ];
+  };
 
   nodes = {
     master =
@@ -35,4 +38,4 @@ import ./make-test.nix {
 
        $master->succeed("mpiexec -n 2 ./example >&2");
     '';
-}
+})
diff --git a/nixos/tests/mumble.nix b/nixos/tests/mumble.nix
index 3759d73355d3..35f440026997 100644
--- a/nixos/tests/mumble.nix
+++ b/nixos/tests/mumble.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix (
+import ./make-test.nix ({ pkgs, ...} : 
 
 let
   client = { config, pkgs, ... }: {
@@ -8,6 +8,9 @@ let
 in
 {
   name = "mumble";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ thoughtpolice eelco chaoflow ];
+  };
 
   nodes = {
     server = { config, pkgs, ... }: {
diff --git a/nixos/tests/munin.nix b/nixos/tests/munin.nix
index 1e51453df83b..16015d335523 100644
--- a/nixos/tests/munin.nix
+++ b/nixos/tests/munin.nix
@@ -1,8 +1,11 @@
 # This test runs basic munin setup with node and cron job running on the same
 # machine.
 
-import ./make-test.nix {
+import ./make-test.nix ({ pkgs, ...} : {
   name = "munin";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ iElectric eelco chaoflow ];
+  };
 
   nodes = {
     one =
@@ -29,4 +32,4 @@ import ./make-test.nix {
     $one->waitForFile("/var/lib/munin/one/one-uptime-uptime-g.rrd");
     $one->waitForFile("/var/www/munin/one/index.html");
   '';
-}
+})
diff --git a/nixos/tests/mysql-replication.nix b/nixos/tests/mysql-replication.nix
index 5786fdbc58cd..0cd8c4484bd7 100644
--- a/nixos/tests/mysql-replication.nix
+++ b/nixos/tests/mysql-replication.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix (
+import ./make-test.nix ({ pkgs, ...} :
 
 let
   replicateUser = "replicate";
@@ -7,6 +7,9 @@ in
 
 {
   name = "mysql-replication";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ eelco chaoflow shlevy ];
+  };
 
   nodes = {
     master =
diff --git a/nixos/tests/mysql.nix b/nixos/tests/mysql.nix
index 0a753b9b625b..588411617776 100644
--- a/nixos/tests/mysql.nix
+++ b/nixos/tests/mysql.nix
@@ -1,5 +1,8 @@
-import ./make-test.nix {
+import ./make-test.nix ({ pkgs, ...} : {
   name = "mysql";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ eelco chaoflow shlevy ];
+  };
 
   nodes = {
     master =
@@ -20,4 +23,4 @@ import ./make-test.nix {
     $master->sleep(10); # Hopefully this is long enough!!
     $master->succeed("echo 'use testdb; select * from tests' | mysql -u root -N | grep 4");
   '';
-}
+})
diff --git a/nixos/tests/nat.nix b/nixos/tests/nat.nix
index c4d2614f7852..4fbf64462682 100644
--- a/nixos/tests/nat.nix
+++ b/nixos/tests/nat.nix
@@ -3,12 +3,15 @@
 # client on the inside network, a server on the outside network, and a
 # router connected to both that performs Network Address Translation
 # for the client.
-import ./make-test.nix ({ withFirewall, ... }:
+import ./make-test.nix ({ pkgs, withFirewall, ... }:
   let
     unit = if withFirewall then "firewall" else "nat";
   in
   {
     name = "nat${if withFirewall then "WithFirewall" else "Standalone"}";
+  meta = with pkgs.stdenv.lib.maintainers; {
+      maintainers = [ eelco chaoflow rob wkennington ];
+    };
 
     nodes =
       { client =
diff --git a/nixos/tests/networking-proxy.nix b/nixos/tests/networking-proxy.nix
index 30844805ebf8..4c5725731404 100644
--- a/nixos/tests/networking-proxy.nix
+++ b/nixos/tests/networking-proxy.nix
@@ -10,8 +10,11 @@ let default-config = {
 
         virtualisation.memorySize = 128;
       };
-in import ./make-test.nix {
+in import ./make-test.nix ({ pkgs, ...} : {
   name = "networking-proxy";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [  ];
+  };
 
   nodes = {
     # no proxy
@@ -105,5 +108,4 @@ in import ./make-test.nix {
       $machine4->mustSucceed("su - alice -c 'env | grep -i ftp_proxy | grep 000'");
       $machine4->mustSucceed("su - alice -c 'env | grep -i no_proxy | grep 131415'");
     '';
-
-}
+})
diff --git a/nixos/tests/networking.nix b/nixos/tests/networking.nix
index 2ea96ecb7ca7..6a7f63702c41 100644
--- a/nixos/tests/networking.nix
+++ b/nixos/tests/networking.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ networkd, test, ... }:
+import ./make-test.nix ({ pkgs, networkd, test, ... }:
   let
     router = { config, pkgs, ... }:
       with pkgs.lib;
@@ -389,4 +389,7 @@ import ./make-test.nix ({ networkd, test, ... }:
     case = testCases.${test};
   in case // {
     name = "${case.name}-Networking-${if networkd then "Networkd" else "Scripted"}";
+    meta = with pkgs.stdenv.lib.maintainers; {
+      maintainers = [ wkennington ];
+    };
   })
diff --git a/nixos/tests/nfs.nix b/nixos/tests/nfs.nix
index 216fea7784a7..963776dd2acf 100644
--- a/nixos/tests/nfs.nix
+++ b/nixos/tests/nfs.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ version ? 4, ... }:
+import ./make-test.nix ({ pkgs, version ? 4, ... }:
 
 let
 
@@ -18,6 +18,9 @@ in
 
 {
   name = "nfs";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ eelco chaoflow wkennington ];
+  };
 
   nodes =
     { client1 = client;
@@ -83,5 +86,4 @@ in
       my $duration = time - $t1;
       die "shutdown took too long ($duration seconds)" if $duration > 30;
     '';
-
 })
diff --git a/nixos/tests/nsd.nix b/nixos/tests/nsd.nix
index c2331931cdd9..0b1082056f6f 100644
--- a/nixos/tests/nsd.nix
+++ b/nixos/tests/nsd.nix
@@ -5,8 +5,11 @@ let
     # for a host utility with IPv6 support
     environment.systemPackages = [ pkgs.bind ];
   };
-in import ./make-test.nix {
+in import ./make-test.nix ({ pkgs, ...} : {
   name = "nsd";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ aszlig ];
+  };
 
   nodes = {
     clientv4 = { lib, nodes, ... }: {
@@ -80,4 +83,4 @@ in import ./make-test.nix {
       };
     }
   '';
-}
+})
diff --git a/nixos/tests/openssh.nix b/nixos/tests/openssh.nix
index 692618c5a84d..34f9fccb79b8 100644
--- a/nixos/tests/openssh.nix
+++ b/nixos/tests/openssh.nix
@@ -17,6 +17,9 @@ let
 
 in {
   name = "openssh";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ aszlig eelco chaoflow ];
+  };
 
   nodes = {
 
diff --git a/nixos/tests/panamax.nix b/nixos/tests/panamax.nix
index 80af8a19be15..088aa79f8c61 100644
--- a/nixos/tests/panamax.nix
+++ b/nixos/tests/panamax.nix
@@ -1,5 +1,8 @@
-import ./make-test.nix {
+import ./make-test.nix ({ pkgs, ...} : {
   name = "panamax";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ offline ];
+  };
 
   machine = { config, pkgs, ... }: {
     services.panamax.enable = true;
@@ -15,4 +18,4 @@ import ./make-test.nix {
       $machine->succeed("curl --fail http://localhost:8888/ > /dev/null");
       $machine->shutdown;
     '';
-}
+})
diff --git a/nixos/tests/peerflix.nix b/nixos/tests/peerflix.nix
index 739936a10b23..eb729f22f913 100644
--- a/nixos/tests/peerflix.nix
+++ b/nixos/tests/peerflix.nix
@@ -1,7 +1,10 @@
 # This test runs peerflix and checks if peerflix starts
 
-import ./make-test.nix {
+import ./make-test.nix ({ pkgs, ...} : {
   name = "peerflix";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ offline ];
+  };
 
   nodes = {
     peerflix =
@@ -17,5 +20,4 @@ import ./make-test.nix {
     $peerflix->waitForUnit("peerflix.service");
     $peerflix->waitUntilSucceeds("curl localhost:9000");
   '';
-
-}
+})
diff --git a/nixos/tests/phabricator.nix b/nixos/tests/phabricator.nix
index 0fe31f66502d..3bf83ab66655 100644
--- a/nixos/tests/phabricator.nix
+++ b/nixos/tests/phabricator.nix
@@ -1,5 +1,8 @@
 import ./make-test.nix ({ pkgs, ... }: {
   name = "phabricator";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ chaoflow ];
+  };
 
   nodes = {
     storage =
diff --git a/nixos/tests/printing.nix b/nixos/tests/printing.nix
index 1e3a0057c657..b1c2e74136ce 100644
--- a/nixos/tests/printing.nix
+++ b/nixos/tests/printing.nix
@@ -2,6 +2,9 @@
 
 import ./make-test.nix ({pkgs, ... }: {
   name = "printing";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ iElectric eelco chaoflow jgeerds vcunat ];
+  };
 
   nodes = {
 
@@ -90,5 +93,4 @@ import ./make-test.nix ({pkgs, ... }: {
           };
       }
     '';
-
 })
diff --git a/nixos/tests/proxy.nix b/nixos/tests/proxy.nix
index 8350bc5c6a4b..1653c9b2fda7 100644
--- a/nixos/tests/proxy.nix
+++ b/nixos/tests/proxy.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix (
+import ./make-test.nix ({ pkgs, ...} : 
 
 let
 
@@ -15,6 +15,9 @@ in
 
 {
   name = "proxy";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ eelco chaoflow ];
+  };
 
   nodes =
     { proxy =
@@ -89,5 +92,4 @@ in
       $backend2->unblock;
       $client->succeed("curl --fail http://proxy/");
     '';
-
 })
diff --git a/nixos/tests/quake3.nix b/nixos/tests/quake3.nix
index e0e6d6eaadbf..c72d94e11a8d 100644
--- a/nixos/tests/quake3.nix
+++ b/nixos/tests/quake3.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix (
+import ./make-test.nix ({ pkgs, ...} :
 
 let
 
@@ -14,6 +14,9 @@ in
 
 rec {
   name = "quake3";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ iElectric eelco chaoflow ];
+  };
 
   # TODO: lcov doesn't work atm
   #makeCoverageReport = true;
diff --git a/nixos/tests/rabbitmq.nix b/nixos/tests/rabbitmq.nix
index 3ef3f92764c9..23a7e2ed538f 100644
--- a/nixos/tests/rabbitmq.nix
+++ b/nixos/tests/rabbitmq.nix
@@ -2,6 +2,9 @@
 
 import ./make-test.nix ({ pkgs, ... }: {
   name = "rabbitmq";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ eelco chaoflow offline ];
+  };
 
   nodes = {
     one = { config, pkgs, ... }: {
diff --git a/nixos/tests/simple.nix b/nixos/tests/simple.nix
index 1cd9058f9e54..287712be316d 100644
--- a/nixos/tests/simple.nix
+++ b/nixos/tests/simple.nix
@@ -1,5 +1,8 @@
-import ./make-test.nix {
+import ./make-test.nix ({ pkgs, ...} : {
   name = "simple";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ eelco ];
+  };
 
   machine = { config, pkgs, ... }: { };
 
@@ -9,4 +12,4 @@ import ./make-test.nix {
       $machine->waitForUnit("multi-user.target");
       $machine->shutdown;
     '';
-}
+})
diff --git a/nixos/tests/subversion.nix b/nixos/tests/subversion.nix
index 50277edbdd89..a8e33a6f7e59 100644
--- a/nixos/tests/subversion.nix
+++ b/nixos/tests/subversion.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix (
+import ./make-test.nix ({ pkgs, ...} : 
 
 let
 
@@ -33,6 +33,9 @@ in
 
 {
   name = "subversion";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ eelco chaoflow ];
+  };
 
   nodes =
     { webserver =
diff --git a/nixos/tests/tomcat.nix b/nixos/tests/tomcat.nix
index f3ee3477b5ac..92680d82ba89 100644
--- a/nixos/tests/tomcat.nix
+++ b/nixos/tests/tomcat.nix
@@ -1,5 +1,8 @@
-import ./make-test.nix {
+import ./make-test.nix ({ pkgs, ...} : {
   name = "tomcat";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ eelco chaoflow ];
+  };
 
   nodes = {
     server =
@@ -25,5 +28,4 @@ import ./make-test.nix {
     $client->succeed("curl --fail http://server/examples/servlets/servlet/HelloWorldExample");
     $client->succeed("curl --fail http://server/examples/jsp/jsp2/simpletag/hello.jsp");
   '';
-
-}
+})
diff --git a/nixos/tests/trac.nix b/nixos/tests/trac.nix
index 87a2d328b4a6..e7d9759ae0cc 100644
--- a/nixos/tests/trac.nix
+++ b/nixos/tests/trac.nix
@@ -1,5 +1,8 @@
 import ./make-test.nix ({ pkgs, ... }: {
   name = "trac";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ eelco chaoflow ];
+  };
 
   nodes = {
     storage =
diff --git a/nixos/tests/udisks2.nix b/nixos/tests/udisks2.nix
index 1d2f79e4f6c1..72d51c0051c0 100644
--- a/nixos/tests/udisks2.nix
+++ b/nixos/tests/udisks2.nix
@@ -11,6 +11,9 @@ in
 
 {
   name = "udisks2";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ eelco chaoflow ];
+  };
 
   machine =
     { config, pkgs, ... }:
diff --git a/nixos/tests/virtualbox.nix b/nixos/tests/virtualbox.nix
index 827481879a3e..f94d219aba60 100644
--- a/nixos/tests/virtualbox.nix
+++ b/nixos/tests/virtualbox.nix
@@ -298,6 +298,9 @@ import ./make-test.nix ({ pkgs, ... }: with pkgs.lib; let
 
 in {
   name = "virtualbox";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ aszlig wkennington ];
+  };
 
   machine = { pkgs, lib, config, ... }: {
     imports = let
diff --git a/nixos/tests/xfce.nix b/nixos/tests/xfce.nix
index ced0c6b9826b..c131ef7dc8cd 100644
--- a/nixos/tests/xfce.nix
+++ b/nixos/tests/xfce.nix
@@ -1,5 +1,8 @@
-import ./make-test.nix {
+import ./make-test.nix ({ pkgs, ...} : {
   name = "xfce";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ eelco chaoflow shlevy ];
+  };
 
   machine =
     { config, pkgs, ... }:
@@ -28,5 +31,4 @@ import ./make-test.nix {
       $machine->sleep(10);
       $machine->screenshot("screen");
     '';
-
-}
+})
diff --git a/pkgs/applications/misc/merkaartor/default.nix b/pkgs/applications/misc/merkaartor/default.nix
index 932e5bb48300..221b459f84aa 100644
--- a/pkgs/applications/misc/merkaartor/default.nix
+++ b/pkgs/applications/misc/merkaartor/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, qt4, boost, proj, gdal}:
+{stdenv, fetchurl, qt4, boost, proj, gdal_1_11_2}:
 
 stdenv.mkDerivation rec {
   name = "merkaartor-0.18.1";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     qmake -makefile PREFIX=$out
   '';
 
-  buildInputs = [ qt4 boost proj gdal ];
+  buildInputs = [ qt4 boost proj gdal_1_11_2 ];
 
   meta = {
     description = "An openstreetmap editor";
diff --git a/pkgs/applications/misc/redshift/default.nix b/pkgs/applications/misc/redshift/default.nix
index 6070c560815d..d554752e8a85 100644
--- a/pkgs/applications/misc/redshift/default.nix
+++ b/pkgs/applications/misc/redshift/default.nix
@@ -1,45 +1,40 @@
-{ fetchurl, stdenv, libX11, libXrandr, libXxf86vm, libxcb, pkgconfig, python
-, randrproto, xcbutil, xf86vidmodeproto, autoconf, automake, gettext, glib
-, GConf, dbus, dbus_glib, makeWrapper, gtk, pygtk, pyxdg, geoclue }:
+{ fetchurl, stdenv, gettext, geoclue, intltool, makeWrapper
+, pkgconfig , python, pygobject3, pyxdg }:
 
-stdenv.mkDerivation rec {
-  version = "1.9.1";
+let version = "1.10"; in
+stdenv.mkDerivation {
   name = "redshift-${version}";
   src = fetchurl {
-    url = "https://github.com/jonls/redshift/archive/v${version}.tar.gz";
-    sha256 = "0rj7lyg4ikwpk1hr1k2bgk9gjqvvv51z8hydsgpx2k2lqdv6lqri";
+    sha256 = "19pfk9il5x2g2ivqix4a555psz8mj3m0cvjwnjpjvx0llh5fghjv";
+    url = "https://github.com/jonls/redshift/releases/download/v${version}/redshift-${version}.tar.xz";
   };
 
   buildInputs = [
-    libX11 libXrandr libXxf86vm libxcb pkgconfig python randrproto xcbutil
-    xf86vidmodeproto autoconf automake gettext glib GConf dbus dbus_glib
-    makeWrapper gtk pygtk pyxdg geoclue
+    gettext intltool makeWrapper pkgconfig python pygobject3 pyxdg
   ];
 
-  preConfigure = ''
-    ./bootstrap
-  '';
-
   preInstall = ''
-    substituteInPlace src/redshift-gtk/redshift-gtk python --replace "/usr/bin/env python" "${python}/bin/${python.executable}"
+    substituteInPlace src/redshift-gtk/redshift-gtk python \
+      --replace "/usr/bin/env python3" "${python}/bin/${python.executable}"
   '';
 
   postInstall = ''
-    wrapProgram "$out/bin/redshift-gtk" --prefix PYTHONPATH : $PYTHONPATH:${pygtk}/lib/${python.libPrefix}/site-packages/gtk-2.0:${pyxdg}/lib/${python.libPrefix}/site-packages/pyxdg:$out/lib/${python.libPrefix}/site-packages
+    wrapProgram "$out/bin/redshift-gtk" --prefix PYTHONPATH : $PYTHONPATH
   '';
 
   meta = with stdenv.lib; {
-    description = "changes the color temperature of your screen gradually";
+    inherit version;
+    description = "Gradually change screen color temperature";
     longDescription = ''
       The color temperature is set according to the position of the
       sun. A different color temperature is set during night and
       daytime. During twilight and early morning, the color
       temperature transitions smoothly from night to daytime
       temperature to allow your eyes to slowly adapt.
-      '';
-    license = stdenv.lib.licenses.gpl3Plus;
+    '';
+    license = licenses.gpl3Plus;
     homepage = http://jonls.dk/redshift;
     platforms = platforms.linux;
-    maintainers = [ maintainers.mornfall ];
+    maintainers = with maintainers; [ mornfall nckx ];
   }; 
 }
diff --git a/pkgs/development/libraries/gdal/default.nix b/pkgs/development/libraries/gdal/default.nix
index fe7d0869fbd0..22a721191dda 100644
--- a/pkgs/development/libraries/gdal/default.nix
+++ b/pkgs/development/libraries/gdal/default.nix
@@ -3,12 +3,12 @@
 , libpng }:
 
 composableDerivation.composableDerivation {} (fixed: rec {
-  version = "1.11.2";
+  version = "2.0.0";
   name = "gdal-${version}";
 
   src = fetchurl {
     url = "http://download.osgeo.org/gdal/${version}/${name}.tar.gz";
-    sha256 = "66bc8192d24e314a66ed69285186d46e6999beb44fc97eeb9c76d82a117c0845";
+    sha256 = "53761563ff53c5bf27bff7c4d6cab8bb1634baccefda05348e0f3b7acaf4c9e6";
   };
 
   buildInputs = [ unzip libjpeg libtiff libpng python pythonPackages.numpy proj openssl ];
diff --git a/pkgs/development/libraries/gdal/gdal-1_11_2.nix b/pkgs/development/libraries/gdal/gdal-1_11_2.nix
new file mode 100644
index 000000000000..fe7d0869fbd0
--- /dev/null
+++ b/pkgs/development/libraries/gdal/gdal-1_11_2.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchurl, composableDerivation, unzip, libjpeg, libtiff, zlib
+, postgresql, mysql, libgeotiff, python, pythonPackages, proj, geos, openssl
+, libpng }:
+
+composableDerivation.composableDerivation {} (fixed: rec {
+  version = "1.11.2";
+  name = "gdal-${version}";
+
+  src = fetchurl {
+    url = "http://download.osgeo.org/gdal/${version}/${name}.tar.gz";
+    sha256 = "66bc8192d24e314a66ed69285186d46e6999beb44fc97eeb9c76d82a117c0845";
+  };
+
+  buildInputs = [ unzip libjpeg libtiff libpng python pythonPackages.numpy proj openssl ];
+
+  patches = [
+    # This ensures that the python package is installed into gdal's prefix,
+    # rather than trying to install into python's prefix.
+    ./python.patch
+  ];
+
+  # Don't use optimization for gcc >= 4.3. That's said to be causing segfaults.
+  # Unset CC and CXX as they confuse libtool.
+  preConfigure = "export CFLAGS=-O0 CXXFLAGS=-O0; unset CC CXX";
+
+  configureFlags = [
+    "--with-jpeg=${libjpeg}"
+    "--with-libtiff=${libtiff}" # optional (without largetiff support)
+    "--with-libpng=${libpng}"   # optional
+    "--with-libz=${zlib}"       # optional
+
+    "--with-pg=${postgresql}/bin/pg_config"
+    "--with-mysql=${mysql.lib}/bin/mysql_config"
+    "--with-geotiff=${libgeotiff}"
+    "--with-python"               # optional
+    "--with-static-proj4=${proj}" # optional
+    "--with-geos=${geos}/bin/geos-config"# optional
+  ];
+
+  # Prevent this:
+  #
+  #   Checking .pth file support in /nix/store/xkrmb8xnvqxzjwsdmasqmsdh1a5y2y99-gdal-1.11.2/lib/python2.7/site-packages/
+  #   /nix/store/pbi1lgank10fy0xpjckbdpgacqw34dsz-python-2.7.9/bin/python -E -c pass
+  #   TEST FAILED: /nix/store/xkrmb8xnvqxzjwsdmasqmsdh1a5y2y99-gdal-1.11.2/lib/python2.7/site-packages/ does NOT support .pth files
+  #   error: bad install directory or PYTHONPATH
+  preBuild = ''
+    pythonInstallDir=$out/lib/${python.libPrefix}/site-packages
+    mkdir -p $pythonInstallDir
+    export PYTHONPATH=''${PYTHONPATH:+''${PYTHONPATH}:}$pythonInstallDir
+  '';
+
+  meta = {
+    description = "Translator library for raster geospatial data formats";
+    homepage = http://www.gdal.org/;
+    license = stdenv.lib.licenses.mit;
+    maintainers = [ stdenv.lib.maintainers.marcweber ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+})
diff --git a/pkgs/development/libraries/openscenegraph/default.nix b/pkgs/development/libraries/openscenegraph/default.nix
index 9be9f8386326..5fb73eae276a 100644
--- a/pkgs/development/libraries/openscenegraph/default.nix
+++ b/pkgs/development/libraries/openscenegraph/default.nix
@@ -1,6 +1,6 @@
 x@{builderDefsPackage
   , cmake, giflib, libjpeg, libtiff, lib3ds, freetype, libpng
-  , coin3d, jasper, gdal, xproto, libX11, libXmu, freeglut, mesa
+  , coin3d, jasper, gdal_1_11_2, xproto, libX11, libXmu, freeglut, mesa
   , doxygen, ffmpeg, xineLib, unzip, zlib, openal, libxml2
   , curl, a52dec, faad2, gdk_pixbuf, pkgconfig, kbproto, SDL
   , qt4, poppler, librsvg, gtk
diff --git a/pkgs/development/perl-modules/boost-geometry-utils-fix-oom.patch b/pkgs/development/perl-modules/boost-geometry-utils-fix-oom.patch
new file mode 100644
index 000000000000..cbcce3819896
--- /dev/null
+++ b/pkgs/development/perl-modules/boost-geometry-utils-fix-oom.patch
@@ -0,0 +1,34 @@
+From a46f0e41056b48a56c572fe8884d4b5104a8343e Mon Sep 17 00:00:00 2001
+From: Niko Tyni <ntyni@debian.org>
+Date: Sun, 29 Jun 2014 21:51:15 +0300
+Subject: [PATCH] multi_linestring2perl: only extend the array if needed
+
+When the size is 0, we end up extending the stack with
+a negative value. As of Perl 5.19.4, more precisely
+ http://perl5.git.perl.org/perl.git/commit/fc16c3924bd6aa054f21ad5445fecf9b7f39dc36
+this ends up allocating memory for 4G-1 elements.
+
+See Dave Mitchell's comments on perl5-porters:
+ Message-ID: <20140522115758.GX15438@iabyn.com>
+ http://marc.info/?l=perl5-porters&m=140075990913228&w=2
+---
+ src/mline2av.h | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/mline2av.h b/src/mline2av.h
+index e4b3fc2..d7bacee 100644
+--- a/src/mline2av.h
++++ b/src/mline2av.h
+@@ -9,7 +9,8 @@ multi_linestring2perl(pTHX_ const multi_linestring& mls)
+ {
+   AV* av = newAV();
+   const unsigned int size = mls.size();
+-  av_extend(av, size-1);
++  if (size > 0)
++    av_extend(av, size-1);
+ 
+   for (int i = 0; i < size; i++) {
+     AV* lineav = newAV();
+-- 
+2.0.0
+
diff --git a/pkgs/development/web/nodejs/default.nix b/pkgs/development/web/nodejs/default.nix
index 1e3260bd10f8..4c7aa967872c 100644
--- a/pkgs/development/web/nodejs/default.nix
+++ b/pkgs/development/web/nodejs/default.nix
@@ -12,7 +12,7 @@ let
     ln -sv /usr/sbin/dtrace $out/bin
   '';
 
-  version = "0.12.6";
+  version = "0.12.7";
 
   deps = {
     inherit openssl zlib libuv;
@@ -36,7 +36,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://nodejs.org/dist/v${version}/node-v${version}.tar.gz";
-    sha256 = "1llsl7zl3080zd7jfhhy4d5s9pnhr15niw6vivp9sflpa71mlfvs";
+    sha256 = "17gk29zbw58l0sjjfw86acp39pkiblnq0gsq1jdrd70w0pgn8gdj";
   };
 
   configureFlags = concatMap sharedConfigureFlags (builtins.attrNames deps);
diff --git a/pkgs/shells/fish/default.nix b/pkgs/shells/fish/default.nix
index 119a3593cec8..2460c511850f 100644
--- a/pkgs/shells/fish/default.nix
+++ b/pkgs/shells/fish/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "fish-${version}";
-  version = "2.1.2";
+  version = "2.2.0";
 
   src = fetchurl {
     url = "http://fishshell.com/files/${version}/${name}.tar.gz";
-    sha256 = "1pgnz5lapm4qk48a13k9698jaswybzlbz2nyc621d852ldf0vhn6";
+    sha256 = "0ympqz7llmf0hafxwglykplw6j5cz82yhlrw50lw4bnf2kykjqx7";
   };
 
   buildInputs = [ ncurses libiconv ];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c1f5961f3058..8923afb0025c 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6250,6 +6250,8 @@ let
 
   gdal = callPackage ../development/libraries/gdal { };
 
+  gdal_1_11_2 = callPackage ../development/libraries/gdal/gdal-1_11_2.nix { };
+
   gdcm = callPackage ../development/libraries/gdcm { };
 
   ggz_base_libs = callPackage ../development/libraries/ggz_base_libs {};
@@ -14056,10 +14058,7 @@ let
   };
 
   redshift = callPackage ../applications/misc/redshift {
-    inherit (xorg) libX11 libXrandr libxcb randrproto libXxf86vm
-      xf86vidmodeproto;
-    inherit (gnome) GConf;
-    inherit (pythonPackages) pyxdg;
+    inherit (python3Packages) python pygobject3 pyxdg;
     geoclue = geoclue2;
   };
 
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 362aa821ca6f..f2dde8aa8fd0 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -484,6 +484,10 @@ let self = _self // overrides; _self = with self; {
       sha256 = "1jnihz3029x51a455nxa0jx2z125x38q3vkkggsgdlrvawzxsm00";
     };
     propagatedBuildInputs = [ ModuleBuildWithXSpp ExtUtilsTypemapsDefault ];
+    patches = [
+      # Fix out of memory error on Perl 5.19.4 and later.
+      ../development/perl-modules/boost-geometry-utils-fix-oom.patch
+    ];
   };
 
   BusinessISBN = buildPerlPackage {
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 967fc8211625..77b83cbfabf0 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1960,19 +1960,16 @@ let
 
 
   colorama = buildPythonPackage rec {
-    name = "colorama-0.2.5";
+    name = "colorama-${version}";
+    version = "0.3.3";
 
     src = pkgs.fetchurl {
-      url = "https://pypi.python.org/packages/source/c/colorama/colorama-0.2.5.tar.gz";
-      md5 = "308c6e38917bdbfc4d3b0783c614897d";
+      url = "https://pypi.python.org/packages/source/c/colorama/${name}.tar.gz";
+      sha256 = "eb21f2ba718fbf357afdfdf6f641ab393901c7ca8d9f37edd0bee4806ffa269c";
     };
 
-    propagatedBuildInputs = with self; [ self.clientform ];
-
-    doCheck = false;
-
     meta = {
-      homepage = http://code.google.com/p/colorama/;
+      homepage = https://github.com/tartley/colorama;
       license = "bsd";
       description = "Cross-platform colored terminal text";
     };
@@ -2198,11 +2195,12 @@ let
   };
 
   cython = buildPythonPackage rec {
-    name = "Cython-0.20.1";
+    name = "Cython-${version}";
+    version = "0.22.1";
 
     src = pkgs.fetchurl {
       url = "http://www.cython.org/release/${name}.tar.gz";
-      sha256 = "0v3nc9z5ynnnjdgcgkyy5g9wazmkjv53nnpjal1v3mr199s6799i";
+      sha256 = "7fff120e65e7b66edb4a42823f5642bad3bc1e5601bf882d66aee50248cf0682";
     };
 
     setupPyBuildFlags = ["--build-base=$out"];
@@ -2210,8 +2208,10 @@ let
     buildInputs = with self; [ pkgs.pkgconfig ];
 
     meta = {
-      description = "An interpreter to help writing C extensions for Python 2";
+      description = "An optimising static compiler for both the Python programming language and the extended Cython programming language";
       platforms = platforms.all;
+      homepage = http://cython.org;
+      license = licenses.asl20;
     };
   };
   
@@ -2463,6 +2463,24 @@ let
     };
   };
 
+  pytestpep257 = buildPythonPackage rec {
+     name = "pytest-pep257-${version}";
+     version = "0.0.1";
+
+     src = pkgs.fetchurl {
+       url = "https://pypi.python.org/packages/source/p/pytest-pep257/${name}.tar.gz";
+       sha256 = "003vdkxpx37n0kjqpwgj3314hwk2jfz3nz58db7xh68bf8xy75lk";
+     };
+
+     propagatedBuildInputs = with self ; [ pytest pep257 ];
+
+     meta = {
+       homepage = https://github.com/anderslime/pytest-pep257;
+       description = "py.test plugin for PEP257";
+       license = licenses.mit;
+     };
+  };
+
   pytestquickcheck = buildPythonPackage rec {
     name = "pytest-quickcheck-0.8.2";
 
@@ -2576,6 +2594,23 @@ let
     };
   });
 
+  datashape = buildPythonPackage rec {
+    name = "datashape-${version}";
+    version = "0.4.6";
+    
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/D/DataShape/${name}.tar.gz";
+      sha256 = "0caa86a4347f1b0c45f3890d78d0b89662189c7dd6df3a8e5ff3532ae8bc434f";    
+    };
+    
+    propagatedBuildInputs = with self; [ numpy multipledispatch dateutil ];
+    
+    meta = {
+      homepage = https://github.com/ContinuumIO/datashape;
+      description = "A data description language";
+      license = licenses.bsd2;
+    };
+  };
 
   dateutil = buildPythonPackage (rec {
     name = "dateutil-2.2";
@@ -7631,6 +7666,21 @@ let
     propagatedBuildInputs = with self; [ eventlib application gnutls ];
   };
 
+  multipledispatch = buildPythonPackage rec {
+    name = "multipledispatch-${version}";
+    version = "0.4.8";
+   
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/m/multipledispatch/${name}.tar.gz";
+      sha256 = "07d41fb3ed25e8424536e48a8566f88a0f9926ca4b6174bff6aa16c98251b92e";
+    };
+    
+    meta = {
+      homepage = http://github.com/mrocklin/multipledispatch/;
+      description = "A relatively sane approach to multiple dispatch in Python";
+      license = licenses.bsd3;
+    };
+  };
 
   munkres = buildPythonPackage rec {
     name = "munkres-1.0.6";
@@ -8379,6 +8429,24 @@ let
     };
   });
 
+  odo = buildPythonPackage rec {
+    name = "odo-${version}";
+    version= "0.3.3";
+    
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/o/odo/${name}.tar.gz";
+      sha256 = "2499ee86c26c74daa28f21ed235ca331911065950deea5169ebdb7d5dae6ebef";
+    };
+    
+    propagatedBuildInputs = with self; [ datashape numpy pandas toolz multipledispatch networkx ];
+    
+    meta = {
+      homepage = https://github.com/ContinuumIO/odo;
+      description = "Data migration utilities";
+      license = licenses.bsdOriginal;
+    };
+  };
+  
   offtrac = buildPythonPackage rec {
     name = "offtrac-0.1.0";
     meta.maintainers = with maintainers; [ mornfall ];
@@ -8846,6 +8914,23 @@ let
     };
   };
 
+  pep257 = buildPythonPackage rec {
+    name = "pep257-${version}";
+    version = "0.3.2";
+
+    src = pkgs.fetchurl {
+      url = "https://github.com/GreenSteam/pep257/archive/${version}.tar.gz";
+      sha256 = "0v8aq0xzsa7clazszxl42904c3jpq69lg8a5hg754bqcqf72hfrn";
+    };
+
+    meta = {
+      homepage = https://github.com/GreenSteam/pep257/;
+      description = "Python docstring style checker";
+      longDescription = "Static analysis tool for checking compliance with Python PEP 257.";
+      lecense = licenses.mit;
+    };
+  };
+
   percol = buildPythonPackage rec {
     name = "percol-${version}";
     version = "0.0.8";
@@ -10352,6 +10437,22 @@ let
       maintainers = with maintainers; [ koral ];
     };
   };
+  
+  pystache = buildPythonPackage rec {
+    name = "pystache-${version}";
+    version = "0.5.4";
+    
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/p/pystache/${name}.tar.gz";
+      sha256 = "f7bbc265fb957b4d6c7c042b336563179444ab313fb93a719759111eabd3b85a";
+    };
+    
+    meta = {
+      description = "A framework-agnostic, logic-free templating system inspired by ctemplate and et";
+      homepage = https://github.com/defunkt/pystache;
+      license = licenses.mit;
+    };
+  };
 
   PyStemmer = buildPythonPackage (rec {
     name = "PyStemmer-1.3.0";
@@ -10558,6 +10659,21 @@ let
     propagatedBuildInputs = with self; [pkgs.openldap pkgs.cyrus_sasl pkgs.openssl];
   };
 
+  ptyprocess = buildPythonPackage rec {
+    name = "ptyprocess-${version}";
+    version = "0.5";
+    
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/p/ptyprocess/${name}.tar.gz";
+      sha256= "dcb78fb2197b49ca1b7b2f37b047bc89c0da7a90f90bd5bc17c3ce388bb6ef59";
+    };
+    
+    meta = {
+      description = "Run a subprocess in a pseudo terminal";
+      homepage = https://github.com/pexpect/ptyprocess;
+      license = licenses.isc;
+    };
+  };
 
   pylibacl = buildPythonPackage (rec {
     name = "pylibacl-0.5.1";
@@ -13013,7 +13129,24 @@ let
     };
   };
 
-
+  terminado = buildPythonPackage rec {
+    name = "terminado-${version}";
+    version = "0.5";
+    
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/t/terminado/${name}.tar.gz";
+      sha256 = "63e893eff1ba84f1ee7c4bfcca7676ba1de6394538bb9aa80cbbc8866cb875b6";
+    };
+    
+    propagatedBuildInputs = with self; [ ptyprocess tornado ];
+    
+    meta = {
+      description = "Terminals served to term.js using Tornado websockets";
+      homepage = https://github.com/takluyver/terminado;
+      licenses = licenses.bsd2;
+    };
+  };
+  
   testscenarios = buildPythonPackage rec {
     name = "testscenarios-${version}";
     version = "0.4";