summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTING.md43
-rw-r--r--README.md3
-rw-r--r--lib/maintainers.nix4
-rwxr-xr-xmaintainers/scripts/travis-nox-review-pr.sh10
-rw-r--r--nixos/modules/services/cluster/kubernetes.nix2
-rw-r--r--nixos/modules/services/mail/mlmmj.nix1
-rw-r--r--nixos/modules/services/mail/postfix.nix49
-rw-r--r--nixos/modules/services/misc/confd.nix2
-rw-r--r--nixos/modules/services/misc/plex.nix2
-rw-r--r--nixos/modules/services/misc/ripple-data-api.nix2
-rw-r--r--nixos/modules/services/misc/ripple-rest.nix6
-rw-r--r--nixos/modules/services/misc/rippled.nix4
-rw-r--r--nixos/modules/services/monitoring/das_watchdog.nix2
-rw-r--r--nixos/modules/services/monitoring/grafana.nix2
-rw-r--r--nixos/modules/services/monitoring/graphite.nix2
-rw-r--r--nixos/modules/services/networking/consul.nix2
-rw-r--r--nixos/modules/services/networking/docker-registry-server.nix2
-rw-r--r--nixos/modules/services/networking/racoon.nix2
-rw-r--r--nixos/modules/services/networking/skydns.nix2
-rw-r--r--nixos/modules/services/x11/display-managers/default.nix8
-rw-r--r--nixos/modules/services/x11/xserver.nix8
-rw-r--r--nixos/modules/virtualisation/vmware-guest.nix2
-rw-r--r--pkgs/applications/audio/morituri/default.nix2
-rw-r--r--pkgs/applications/audio/pavucontrol/default.nix2
-rw-r--r--pkgs/applications/editors/emacs-modes/offlineimap/default.nix1
-rw-r--r--pkgs/applications/graphics/simple-scan/default.nix8
-rw-r--r--pkgs/applications/misc/calibre/default.nix4
-rw-r--r--pkgs/applications/misc/hstr/default.nix4
-rw-r--r--pkgs/applications/misc/keepassx/2.0.nix2
-rw-r--r--pkgs/applications/misc/keepassx/default.nix2
-rw-r--r--pkgs/applications/misc/rofi/default.nix13
-rw-r--r--pkgs/applications/misc/rofi/pass.nix2
-rw-r--r--pkgs/applications/misc/rtv/default.nix13
-rw-r--r--pkgs/applications/misc/scim/default.nix4
-rw-r--r--pkgs/applications/misc/tasknc/default.nix46
-rw-r--r--pkgs/applications/misc/taskwarrior/default.nix8
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix56
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix6
-rw-r--r--pkgs/applications/networking/dropbox/default.nix6
-rw-r--r--pkgs/applications/networking/irc/hexchat/default.nix16
-rw-r--r--pkgs/applications/networking/mailreaders/mailpile/default.nix2
-rw-r--r--pkgs/applications/networking/mumble/default.nix2
-rw-r--r--pkgs/applications/science/electronics/eagle/default.nix6
-rw-r--r--pkgs/applications/science/logic/isabelle/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-cola/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/gitflow/default.nix14
-rw-r--r--pkgs/applications/video/k9copy/default.nix53
-rw-r--r--pkgs/applications/video/obs-studio/default.nix1
-rw-r--r--pkgs/applications/window-managers/tabbed/default.nix25
-rw-r--r--pkgs/applications/window-managers/tabbed/xft.patch234
-rw-r--r--pkgs/build-support/build-maven.nix58
-rw-r--r--pkgs/desktops/gnome-3/3.16/apps/vinagre/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.16/core/gdm/default.nix3
-rw-r--r--pkgs/desktops/gnome-3/3.16/core/gdm/no-dbus-launch.patch20
-rw-r--r--pkgs/desktops/gnome-3/3.16/core/gtk-vnc/default.nix30
-rw-r--r--pkgs/desktops/gnome-3/3.16/default.nix3
-rw-r--r--pkgs/development/compilers/rustc/1.0.0.nix2
-rw-r--r--pkgs/development/compilers/rustc/generic.nix (renamed from pkgs/development/compilers/rustc/makeRustcDerivation.nix)4
-rw-r--r--pkgs/development/compilers/rustc/head.nix2
-rw-r--r--pkgs/development/coq-modules/mathcomp/1.5.nix26
-rw-r--r--pkgs/development/coq-modules/mathcomp/default.nix34
-rw-r--r--pkgs/development/coq-modules/mathcomp/generic.nix33
-rw-r--r--pkgs/development/coq-modules/ssreflect/default.nix39
-rw-r--r--pkgs/development/coq-modules/ssreflect/generic.nix (renamed from pkgs/development/coq-modules/ssreflect/1.5.nix)22
-rw-r--r--pkgs/development/libraries/libasr/default.nix4
-rw-r--r--pkgs/development/libraries/liblaxjson/default.nix23
-rw-r--r--pkgs/development/libraries/ncurses/default.nix5
-rw-r--r--pkgs/development/libraries/openssl/1.0.2.x.nix4
-rw-r--r--pkgs/development/libraries/tk/8.5.nix11
-rw-r--r--pkgs/development/libraries/tk/8.6.nix13
-rw-r--r--pkgs/development/libraries/tk/generic.nix (renamed from pkgs/development/libraries/tk/default.nix)9
-rw-r--r--pkgs/development/ocaml-modules/herelib/default.nix2
-rw-r--r--pkgs/development/tools/misc/dialog/default.nix41
-rw-r--r--pkgs/development/tools/misc/strace/default.nix2
-rw-r--r--pkgs/development/tools/rucksack/default.nix23
-rw-r--r--pkgs/development/tools/vagrant/default.nix2
-rw-r--r--pkgs/games/bastet/default.nix1
-rw-r--r--pkgs/games/steam/chrootenv.nix1
-rw-r--r--pkgs/games/zandronum/bin.nix2
-rw-r--r--pkgs/os-specific/linux/dstat/default.nix8
-rw-r--r--pkgs/os-specific/linux/kmod/default.nix4
-rw-r--r--pkgs/os-specific/linux/lxc/default.nix11
-rw-r--r--pkgs/os-specific/linux/procps-ng/default.nix28
-rw-r--r--pkgs/os-specific/linux/wpa_supplicant/default.nix2
-rw-r--r--pkgs/servers/dns/skydns/default.nix6
-rw-r--r--pkgs/shells/ipython/default.nix2
-rw-r--r--pkgs/tools/X11/ckbcomp/default.nix36
-rw-r--r--pkgs/tools/backup/attic/default.nix11
-rw-r--r--pkgs/tools/filesystems/sshfs-fuse/default.nix5
-rw-r--r--pkgs/tools/graphics/maim/default.nix30
-rw-r--r--pkgs/tools/inputmethods/ibus-table-others/default.nix29
-rw-r--r--pkgs/tools/inputmethods/ibus-table/default.nix21
-rw-r--r--pkgs/tools/misc/asciinema/default.nix22
-rw-r--r--pkgs/tools/misc/detox/default.nix8
-rw-r--r--pkgs/tools/misc/i3minator/default.nix17
-rw-r--r--pkgs/tools/misc/pv/default.nix2
-rw-r--r--pkgs/tools/misc/rockbox-utility/default.nix2
-rw-r--r--pkgs/tools/misc/screen/default.nix2
-rw-r--r--pkgs/tools/misc/slop/default.nix24
-rw-r--r--pkgs/tools/misc/stow/default.nix2
-rw-r--r--pkgs/tools/networking/dnscrypt-proxy/default.nix7
-rw-r--r--pkgs/tools/networking/dnsmasq/default.nix35
-rw-r--r--pkgs/tools/networking/tcpdump/default.nix2
-rw-r--r--pkgs/tools/networking/wolfebin/default.nix29
-rw-r--r--pkgs/tools/security/kpcli/default.nix4
-rw-r--r--pkgs/tools/security/pinentry/default.nix4
-rw-r--r--pkgs/tools/system/logrotate/default.nix4
-rw-r--r--pkgs/tools/system/lshw/default.nix2
-rw-r--r--pkgs/tools/system/stress-ng/default.nix4
-rw-r--r--pkgs/tools/text/silver-searcher/default.nix25
-rw-r--r--pkgs/top-level/all-packages.nix72
-rw-r--r--pkgs/top-level/go-packages.nix124
-rw-r--r--pkgs/top-level/perl-packages.nix38
-rw-r--r--pkgs/top-level/python-packages.nix65
114 files changed, 1396 insertions, 414 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 195d1ae6d0ac..764508ca25f0 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -3,15 +3,16 @@
 ## Opening issues
 
 * Make sure you have a [GitHub account](https://github.com/signup/free)
-* Submit a ticket for your issue, assuming one does not already exist.
+* [Submit an issue](https://github.com/NixOS/nixpkgs/issues) - assuming one does not already exist.
   * Clearly describe the issue including steps to reproduce when it is a bug.
+  * Include information what version of nixpkgs and Nix are you using (nixos-version or git revision).
 
 ## Making patches
 
-* Read [Manual (How to write packages for Nix)](https://nixos.org/nixpkgs/manual/)
+* Read [Manual (How to write packages for Nix)](https://nixos.org/nixpkgs/manual/).
 * Fork the repository on GitHub.
 * Create a branch for your future fix.
-  * You can make branch from a commit of your local `nixos-version`. That will help you to avoid additional local compilations. Because you will recieve some packages from cache server.
+  * You can make branch from a commit of your local `nixos-version`. That will help you to avoid additional local compilations. Because you will recieve packages from binary cache.
     * For example: `nixos-version` returns `15.05.git.0998212 (Dingo)`. So you can do:
 
         ```bash
@@ -20,22 +21,22 @@
         ```
   * Please avoid working directly on the `master` branch.
 * Make commits of logical units. 
-  * If you removed pkgs, made some major changes etc., write about them in `nixos/doc/manual/release-notes/rl-unstable.xml`.
+  * If you removed pkgs, made some major NixOS changes etc., write about them in `nixos/doc/manual/release-notes/rl-unstable.xml`.
 * Check for unnecessary whitespace with `git diff --check` before committing.
 * Format the commit in a following way:
 
         ```
-        (pkg-name | service-name): (update from -> to | init at version | refactor | etc)
+        (pkg-name | service-name): (from -> to | init at version | refactor | etc)
 
         Additional information.
         ```
   * Examples:
-    * `foo-pkg: init at 2.0.1`
-    * `bar-pkg: update 3.0 -> 3.1.1`
-    * `lala-service: add bazBaz option`
-    * `tata-service: refactor config generation`
-* Test your changes. If you work with 
-  * nixpkgs
+    * `nginx: init at 2.0.1`
+    * `firefox: 3.0 -> 3.1.1`
+    * `hydra service: add bazBaz option`
+    * `nginx service: refactor config generation`
+* Test your changes. If you work with
+  * nixpkgs:
     * update pkg -> 
       * `nix-env -i pkg-name -f <path to your local nixpkgs folder>`
     * add pkg -> 
@@ -44,25 +45,25 @@
     * _If you don't want to install pkg in you profile_. 
       * `nix-build -A pkg-attribute-name <path to your local nixpkgs folder>/default.nix` and check results in the folder `result`. It will appear in the same directory where you did `nix-build`.
     * If you did `nix-env -i pkg-name` you can do `nix-env -e pkg-name` to uninstall it from your system.
-  * nixos and its modules
-    * You can add new module to you `nixos-configuration file` (usually it's `/etc/nixos/configuration.nix`.  
-    And do `sudo nixos-rebuild test -I nixpkgs=<path to your local nixpkgs folder> --fast`
+  * NixOS and its modules:
+    * You can add new module to your NixOS configuration file (usually it's `/etc/nixos/configuration.nix`).
+    And do `sudo nixos-rebuild test -I nixpkgs=<path to your local nixpkgs folder> --fast`.
 * If you have commits `pkg-name: oh, forgot to insert whitespace`: squash commits in this case. Use `git rebase -i`.
 * Rebase you branch against current `master`.
 
 ## Submitting changes
 
 * Push your changes to your fork of nixpkgs.
-* Create pull request.
-  * Write the title in format `(pkg-name | service): improvement`
-    * If you update the pkg, write versions `from -> to`
+* Create pull request:
+  * Write the title in format `(pkg-name | service): improvement`.
+    * If you update the pkg, write versions `from -> to`.
   * Write in comment if you have tested your patch. Do not rely much on `TravisCI`.
-  * If you make an improvement, write why is it good.
-  * Notify maintainers of the package. For example add to the message: `cc @jagajaga @domenkozar`
+  * If you make an improvement, write about your motivation.
+  * Notify maintainers of the package. For example add to the message: `cc @jagajaga @domenkozar`.
 
 ## Hotfixing pull requests
 
 * Make the appropriate changes in you branch.
-* Don't create additional commits.
-  * `git rebase`
+* Don't create additional commits, do
+  * `git rebase -i`
   * `git push --force` to your branch.
diff --git a/README.md b/README.md
index 672fc7495ded..dc00a0ebd694 100644
--- a/README.md
+++ b/README.md
@@ -40,6 +40,3 @@ Communication:
 
 * [Mailing list](http://lists.science.uu.nl/mailman/listinfo/nix-dev)
 * [IRC - #nixos on freenode.net](irc://irc.freenode.net/#nixos)
-
----
-[![Throughput Graph](https://graphs.waffle.io/nixos/nixpkgs/throughput.svg)](https://waffle.io/nixos/nixpkgs/metrics)
diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index 018d515155a4..9a5ec73ebd09 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -132,6 +132,7 @@
   lassulus = "Lassulus <lassulus@gmail.com>";
   lethalman = "Luca Bruno <lucabru@src.gnome.org>";
   lhvwb = "Nathaniel Baxter <nathaniel.baxter@gmail.com>";
+  lihop = "Leroy Hopson <nixos@leroy.geek.nz>";
   linquize = "Linquize <linquize@yahoo.com.hk>";
   linus = "Linus Arver <linusarver@gmail.com>";
   lnl7 = "Daiderd Jordan <daiderd@gmail.com>";
@@ -144,6 +145,7 @@
   marcweber = "Marc Weber <marco-oweber@gmx.de>";
   matejc = "Matej Cotman <cotman.matej@gmail.com>";
   matthiasbeyer = "Matthias Beyer <mail@beyermatthias.de>";
+  mbakke = "Marius Bakke <ymse@tuta.io>";
   meditans = "Carlo Nucera <meditans@gmail.com>";
   meisternu = "Matt Miemiec <meister@krutt.org>";
   michelk = "Michel Kuhlmann <michel@kuhlmanns.info>";
@@ -154,6 +156,7 @@
   MP2E = "Cray Elliott <MP2E@archlinux.us>";
   msackman = "Matthew Sackman <matthew@wellquite.org>";
   mtreskin = "Max Treskin <zerthurd@gmail.com>";
+  mudri = "James Wood <lamudri@gmail.com>";
   muflax = "Stefan Dorn <mail@muflax.com>";
   nathan-gs = "Nathan Bijnens <nathan@nathan.gs>";
   nckx = "Tobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com>";
@@ -213,6 +216,7 @@
   sjmackenzie = "Stewart Mackenzie <setori88@gmail.com>";
   skeidel = "Sven Keidel <svenkeidel@gmail.com>";
   smironov = "Sergey Mironov <ierton@gmail.com>";
+  spacefrogg = "Michael Raitza <spacefrogg-nixos@meterriblecrew.net>";
   sprock = "Roger Mason <rmason@mun.ca>";
   spwhitt = "Spencer Whitt <sw@swhitt.me>";
   stephenmw = "Stephen Weinberg <stephen@q5comm.com>";
diff --git a/maintainers/scripts/travis-nox-review-pr.sh b/maintainers/scripts/travis-nox-review-pr.sh
index 3c3f9151d837..545499557479 100755
--- a/maintainers/scripts/travis-nox-review-pr.sh
+++ b/maintainers/scripts/travis-nox-review-pr.sh
@@ -31,7 +31,15 @@ elif [[ $1 == build ]]; then
         echo "=== Not a pull request"
     else
         echo "=== Checking PR"
-        nox-review pr ${TRAVIS_PULL_REQUEST}
+
+        if ! nox-review pr ${TRAVIS_PULL_REQUEST}; then
+            if sudo dmesg | egrep 'Out of memory|Killed process' > /tmp/oom-log; then
+                echo "=== The build failed due to running out of memory:"
+                cat /tmp/oom-log
+                echo "=== Please disregard the result of this Travis build."
+            fi
+            exit 1
+        fi
     fi
     # echo "=== Checking tarball creation"
     # nix-build pkgs/top-level/release.nix -A tarball
diff --git a/nixos/modules/services/cluster/kubernetes.nix b/nixos/modules/services/cluster/kubernetes.nix
index a7f4ec7b008b..86b8817c28c6 100644
--- a/nixos/modules/services/cluster/kubernetes.nix
+++ b/nixos/modules/services/cluster/kubernetes.nix
@@ -324,7 +324,7 @@ in {
     };
 
     kube2sky = {
-      enable = mkEnableOption "Whether to enable kube2sky dns service.";
+      enable = mkEnableOption "kube2sky dns service";
 
       domain = mkOption  {
         description = "Kuberntes kube2sky domain under which all DNS names will be hosted.";
diff --git a/nixos/modules/services/mail/mlmmj.nix b/nixos/modules/services/mail/mlmmj.nix
index db3a266d011f..1545c60f4de3 100644
--- a/nixos/modules/services/mail/mlmmj.nix
+++ b/nixos/modules/services/mail/mlmmj.nix
@@ -88,7 +88,6 @@ in
 
     services.postfix = {
       enable = true;
-      recipientDelimiter= "+";
       extraMasterConf = ''
         mlmmj unix - n n - - pipe flags=ORhu user=mlmmj argv=${pkgs.mlmmj}/bin/mlmmj-receive -F -L ${spoolDir}/$nextHop
       '';
diff --git a/nixos/modules/services/mail/postfix.nix b/nixos/modules/services/mail/postfix.nix
index 24bcc6bb57ce..3d9bb9ccf24c 100644
--- a/nixos/modules/services/mail/postfix.nix
+++ b/nixos/modules/services/mail/postfix.nix
@@ -77,8 +77,6 @@ let
       smtpd_tls_key_file = ${cfg.sslKey}
 
       smtpd_use_tls = yes
-
-      recipientDelimiter = ${cfg.recipientDelimiter}
     ''
     + optionalString (cfg.virtual != "") ''
       virtual_alias_maps = hash:/etc/postfix/virtual
@@ -291,14 +289,6 @@ in
         description = "SSL key to use.";
       };
 
-      recipientDelimiter = mkOption {
-        default = "";
-        example = "+";
-        description = "
-          Delimiter for address extension: so mail to user+test can be handled by ~user/.forward+test
-        ";
-      };
-
       virtual = mkOption {
         default = "";
         description = "
@@ -369,31 +359,30 @@ in
 
         daemonType = "fork";
 
-        preStart =
-          ''
-            if ! [ -d /var/spool/postfix ]; then
-              ${pkgs.coreutils}/bin/mkdir -p /var/spool/mail /var/postfix/conf /var/postfix/queue
-            fi
+        preStart = ''
+          if ! [ -d /var/spool/postfix ]; then
+            ${pkgs.coreutils}/bin/mkdir -p /var/spool/mail /var/postfix/conf /var/postfix/queue
+          fi
 
-            ${pkgs.coreutils}/bin/chown -R ${user}:${group} /var/postfix
-            ${pkgs.coreutils}/bin/chown -R ${user}:${setgidGroup} /var/postfix/queue
-            ${pkgs.coreutils}/bin/chmod -R ug+rwX /var/postfix/queue
-            ${pkgs.coreutils}/bin/chown root:root /var/spool/mail
-            ${pkgs.coreutils}/bin/chmod a+rwxt /var/spool/mail
-            ${pkgs.coreutils}/bin/ln -sf /var/spool/mail /var/mail
+          ${pkgs.coreutils}/bin/chown -R ${user}:${group} /var/postfix
+          ${pkgs.coreutils}/bin/chown -R ${user}:${setgidGroup} /var/postfix/queue
+          ${pkgs.coreutils}/bin/chmod -R ug+rwX /var/postfix/queue
+          ${pkgs.coreutils}/bin/chown root:root /var/spool/mail
+          ${pkgs.coreutils}/bin/chmod a+rwxt /var/spool/mail
+          ${pkgs.coreutils}/bin/ln -sf /var/spool/mail /var/mail
 
-            ln -sf "${pkgs.postfix}/share/postfix/conf/"* /var/postfix/conf
+          ln -sf "${pkgs.postfix}/etc/postfix/"* /var/postfix/conf
 
-            ln -sf ${aliasesFile} /var/postfix/conf/aliases
-            ln -sf ${virtualFile} /var/postfix/conf/virtual
-            ln -sf ${mainCfFile} /var/postfix/conf/main.cf
-            ln -sf ${masterCfFile} /var/postfix/conf/master.cf
+          ln -sf ${aliasesFile} /var/postfix/conf/aliases
+          ln -sf ${virtualFile} /var/postfix/conf/virtual
+          ln -sf ${mainCfFile} /var/postfix/conf/main.cf
+          ln -sf ${masterCfFile} /var/postfix/conf/master.cf
 
-            ${pkgs.postfix}/sbin/postalias -c /var/postfix/conf /var/postfix/conf/aliases
-            ${pkgs.postfix}/sbin/postmap -c /var/postfix/conf /var/postfix/conf/virtual
+          ${pkgs.postfix}/sbin/postalias -c /var/postfix/conf /var/postfix/conf/aliases
+          ${pkgs.postfix}/sbin/postmap -c /var/postfix/conf /var/postfix/conf/virtual
 
-            ${pkgs.postfix}/sbin/postfix -c /var/postfix/conf start
-          '';
+          ${pkgs.postfix}/sbin/postfix -c /var/postfix/conf start
+        '';
 
         preStop = ''
             ${pkgs.postfix}/sbin/postfix -c /var/postfix/conf stop
diff --git a/nixos/modules/services/misc/confd.nix b/nixos/modules/services/misc/confd.nix
index 7094bb460895..98738b6497bf 100644
--- a/nixos/modules/services/misc/confd.nix
+++ b/nixos/modules/services/misc/confd.nix
@@ -17,7 +17,7 @@ let
 
 in {
   options.services.confd = {
-    enable = mkEnableOption "Whether to enable confd service.";
+    enable = mkEnableOption "confd service";
 
     backend = mkOption {
       description = "Confd config storage backend to use.";
diff --git a/nixos/modules/services/misc/plex.nix b/nixos/modules/services/misc/plex.nix
index f5f0a8c18161..de8bc71a2712 100644
--- a/nixos/modules/services/misc/plex.nix
+++ b/nixos/modules/services/misc/plex.nix
@@ -9,7 +9,7 @@ in
 {
   options = {
     services.plex = {
-      enable = mkEnableOption "Enable Plex Media Server";
+      enable = mkEnableOption "Plex Media Server";
 
       # FIXME: In order for this config option to work, symlinks in the Plex
       # package in the Nix store have to be changed to point to this directory.
diff --git a/nixos/modules/services/misc/ripple-data-api.nix b/nixos/modules/services/misc/ripple-data-api.nix
index 3b281449a256..dbca56b13335 100644
--- a/nixos/modules/services/misc/ripple-data-api.nix
+++ b/nixos/modules/services/misc/ripple-data-api.nix
@@ -35,7 +35,7 @@ let
 in {
   options = {
     services.rippleDataApi = {
-      enable = mkEnableOption "Whether to enable ripple data api.";
+      enable = mkEnableOption "ripple data api";
 
       port = mkOption {
         description = "Ripple data api port";
diff --git a/nixos/modules/services/misc/ripple-rest.nix b/nixos/modules/services/misc/ripple-rest.nix
index dc07ee132fa6..49520f68a50a 100644
--- a/nixos/modules/services/misc/ripple-rest.nix
+++ b/nixos/modules/services/misc/ripple-rest.nix
@@ -23,9 +23,9 @@ let
 
 in {
   options.services.rippleRest = {
-    enable = mkEnableOption "Whether to enable ripple rest.";
+    enable = mkEnableOption "ripple rest";
 
-    debug = mkEnableOption "Wheter to enable debug for ripple-rest.";
+    debug = mkEnableOption "debug for ripple-rest";
 
     host = mkOption {
       description = "Ripple rest host.";
@@ -40,7 +40,7 @@ in {
     };
 
     ssl = {
-      enable = mkEnableOption "Whether to enable ssl.";
+      enable = mkEnableOption "ssl";
 
       keyPath = mkOption {
         description = "Path to the ripple rest key file.";
diff --git a/nixos/modules/services/misc/rippled.nix b/nixos/modules/services/misc/rippled.nix
index 045330eb5513..d940c1bc900e 100644
--- a/nixos/modules/services/misc/rippled.nix
+++ b/nixos/modules/services/misc/rippled.nix
@@ -202,7 +202,7 @@ in
 
   options = {
     services.rippled = {
-      enable = mkEnableOption "Whether to enable rippled";
+      enable = mkEnableOption "rippled";
 
       package = mkOption {
 	description = "Which rippled package to use.";
@@ -373,7 +373,7 @@ in
       };
 
       statsd = {
-        enable = mkEnableOption "Whether enable statsd monitoring for rippled";
+        enable = mkEnableOption "statsd monitoring for rippled";
 
         address = mkOption {
           description = "The UDP address and port of the listening StatsD server.";
diff --git a/nixos/modules/services/monitoring/das_watchdog.nix b/nixos/modules/services/monitoring/das_watchdog.nix
index 785b4289dff4..6e2653836d5e 100644
--- a/nixos/modules/services/monitoring/das_watchdog.nix
+++ b/nixos/modules/services/monitoring/das_watchdog.nix
@@ -12,7 +12,7 @@ in {
   ###### interface
 
   options = {
-    services.das_watchdog.enable = mkEnableOption "Whether to enable realtime watchdog";
+    services.das_watchdog.enable = mkEnableOption "realtime watchdog";
   };
 
   ###### implementation
diff --git a/nixos/modules/services/monitoring/grafana.nix b/nixos/modules/services/monitoring/grafana.nix
index ef0cc68a5355..6a1799dedc8e 100644
--- a/nixos/modules/services/monitoring/grafana.nix
+++ b/nixos/modules/services/monitoring/grafana.nix
@@ -154,7 +154,7 @@ let
 
 in {
   options.services.grafana = {
-    enable = mkEnableOption "Whether to enable grafana.";
+    enable = mkEnableOption "grafana";
 
     protocol = mkOption {
       description = "Which protocol to listen.";
diff --git a/nixos/modules/services/monitoring/graphite.nix b/nixos/modules/services/monitoring/graphite.nix
index fb30daba1dc1..ac0fba597a04 100644
--- a/nixos/modules/services/monitoring/graphite.nix
+++ b/nixos/modules/services/monitoring/graphite.nix
@@ -356,7 +356,7 @@ in {
     };
 
     beacon = {
-      enable = mkEnableOption "Whether to enable graphite beacon.";
+      enable = mkEnableOption "graphite beacon";
 
       config = mkOption {
         description = "Graphite beacon configuration.";
diff --git a/nixos/modules/services/networking/consul.nix b/nixos/modules/services/networking/consul.nix
index 31bae628050b..66838735c4da 100644
--- a/nixos/modules/services/networking/consul.nix
+++ b/nixos/modules/services/networking/consul.nix
@@ -104,7 +104,7 @@ in
       };
 
       alerts = {
-        enable = mkEnableOption "Whether to enable consul-alerts";
+        enable = mkEnableOption "consul-alerts";
 
         package = mkOption {
           description = "Package to use for consul-alerts.";
diff --git a/nixos/modules/services/networking/docker-registry-server.nix b/nixos/modules/services/networking/docker-registry-server.nix
index 093d20ecb16a..d21bbb6a86c3 100644
--- a/nixos/modules/services/networking/docker-registry-server.nix
+++ b/nixos/modules/services/networking/docker-registry-server.nix
@@ -7,7 +7,7 @@ let
 
 in {
   options.services.nodeDockerRegistry = {
-    enable = mkEnableOption "Whether to enable docker registry service.";
+    enable = mkEnableOption "docker registry service";
 
     port = mkOption {
       description = "Docker registry listening port.";
diff --git a/nixos/modules/services/networking/racoon.nix b/nixos/modules/services/networking/racoon.nix
index 00986bbbd849..9428d9112a1b 100644
--- a/nixos/modules/services/networking/racoon.nix
+++ b/nixos/modules/services/networking/racoon.nix
@@ -6,7 +6,7 @@ let
   cfg = config.services.racoon;
 in {
   options.services.racoon = {
-    enable = mkEnableOption "Whether to enable racoon.";
+    enable = mkEnableOption "racoon";
 
     config = mkOption {
       description = "Contents of racoon configuration file.";
diff --git a/nixos/modules/services/networking/skydns.nix b/nixos/modules/services/networking/skydns.nix
index 2d0129d63101..045e908a3b18 100644
--- a/nixos/modules/services/networking/skydns.nix
+++ b/nixos/modules/services/networking/skydns.nix
@@ -7,7 +7,7 @@ let
 
 in {
   options.services.skydns = {
-    enable = mkEnableOption "Whether to enable skydns service.";
+    enable = mkEnableOption "skydns service";
 
     etcd = {
       machines = mkOption {
diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix
index 1fb7f20893d3..7e05cd84be64 100644
--- a/nixos/modules/services/x11/display-managers/default.nix
+++ b/nixos/modules/services/x11/display-managers/default.nix
@@ -50,13 +50,19 @@ let
         exec > ~/.xsession-errors 2>&1
       ''}
 
+      ${optionalString cfg.startDbusSession ''
+        if test -z "$DBUS_SESSION_BUS_ADDRESS"; then
+          exec ${pkgs.dbus.tools}/bin/dbus-launch --exit-with-session "$0" "$sessionType"
+        fi
+      ''}
+
       ${optionalString cfg.displayManager.desktopManagerHandlesLidAndPower ''
         # Stop systemd from handling the power button and lid switch,
         # since presumably the desktop environment will handle these.
         if [ -z "$_INHIBITION_LOCK_TAKEN" ]; then
           export _INHIBITION_LOCK_TAKEN=1
           if ! ${config.systemd.package}/bin/loginctl show-session $XDG_SESSION_ID | grep -q '^RemoteHost='; then
-            exec ${config.systemd.package}/bin/systemd-inhibit --what=handle-lid-switch:handle-power-key "$0" "$sessionType"
+            exec ${config.systemd.package}/bin/systemd-inhibit --what=handle-lid-switch:handle-power-key --why="See NixOS configuration option 'services.xserver.displayManager.desktopManagerHandlesLidAndPower' for more information." "$0" "$sessionType"
           fi
         fi
 
diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix
index 9fddc6a72104..1ec098fded6e 100644
--- a/nixos/modules/services/x11/xserver.nix
+++ b/nixos/modules/services/x11/xserver.nix
@@ -238,6 +238,14 @@ in
         '';
       };
 
+      startDbusSession = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Whether to start a new DBus session when you log in with dbus-launch.
+        '';
+      };
+
       layout = mkOption {
         type = types.str;
         default = "us";
diff --git a/nixos/modules/virtualisation/vmware-guest.nix b/nixos/modules/virtualisation/vmware-guest.nix
index 3f19f6a28b2b..ac2415a22b52 100644
--- a/nixos/modules/virtualisation/vmware-guest.nix
+++ b/nixos/modules/virtualisation/vmware-guest.nix
@@ -8,7 +8,7 @@ let
 in
 {
   options = {
-    services.vmwareGuest.enable = mkEnableOption "Enable VMWare Guest Support";
+    services.vmwareGuest.enable = mkEnableOption "VMWare Guest Support";
   };
 
   config = mkIf cfg.enable {
diff --git a/pkgs/applications/audio/morituri/default.nix b/pkgs/applications/audio/morituri/default.nix
index 6498f48351da..4dc150d0642d 100644
--- a/pkgs/applications/audio/morituri/default.nix
+++ b/pkgs/applications/audio/morituri/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     homepage = http://thomas.apestaart.org/morituri/trac/;
     description = "A CD ripper aiming for accuracy over speed";
-    maintainers = [ maintainers.rycee ];
+    maintainers = with maintainers; [ rycee jgeerds ];
     license = licenses.gpl3Plus;
   };
 }
diff --git a/pkgs/applications/audio/pavucontrol/default.nix b/pkgs/applications/audio/pavucontrol/default.nix
index 8db0a94a9904..2c6f70195b14 100644
--- a/pkgs/applications/audio/pavucontrol/default.nix
+++ b/pkgs/applications/audio/pavucontrol/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
 
     license = stdenv.lib.licenses.gpl2Plus;
 
-    maintainers = [ maintainers.abbradar ];
+    maintainers = with maintainers; [ abbradar jgeerds ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/editors/emacs-modes/offlineimap/default.nix b/pkgs/applications/editors/emacs-modes/offlineimap/default.nix
index d94da4f88d9e..f61eaa982663 100644
--- a/pkgs/applications/editors/emacs-modes/offlineimap/default.nix
+++ b/pkgs/applications/editors/emacs-modes/offlineimap/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     homepage = "http://julien.danjou.info/projects/emacs-packages#offlineimap";
     platforms = stdenv.lib.platforms.all;
     maintainers = [ stdenv.lib.maintainers.garbas ];
+    broken = true;
   };
 }
diff --git a/pkgs/applications/graphics/simple-scan/default.nix b/pkgs/applications/graphics/simple-scan/default.nix
index b96688333a22..744f789e55ca 100644
--- a/pkgs/applications/graphics/simple-scan/default.nix
+++ b/pkgs/applications/graphics/simple-scan/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, cairo, colord, glib, gtk3, intltool, itstool, libxml2
 , makeWrapper, pkgconfig, saneBackends, systemd, vala }:
 
-let version = "3.17.2"; in
+let version = "3.17.3"; in
 stdenv.mkDerivation rec {
   name = "simple-scan-${version}";
 
   src = fetchurl {
-    sha256 = "07r32hsafb8is2fs0flk7dvi5agyzf9jqs96sbgia2pizmyl1s1m";
+    sha256 = "1kb2xk4vr2nab3hfjfnfyapv2z65h99c3g7mfkmanzrng5xwrj8q";
     url = "https://launchpad.net/simple-scan/3.17/${version}/+download/${name}.tar.xz";
   };
 
@@ -26,9 +26,9 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ nckx ];
   };
 
-  buildInputs = [ cairo colord glib gtk3 intltool itstool libxml2
+  buildInputs = [ cairo colord glib gtk3 libxml2
     saneBackends systemd vala ];
-  nativeBuildInputs = [ makeWrapper pkgconfig ];
+  nativeBuildInputs = [ intltool itstool makeWrapper pkgconfig ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index b5dbfe207fe5..fe6a3932af9a 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -5,11 +5,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "calibre-2.30.0";
+  name = "calibre-2.31.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/calibre/${name}.tar.xz";
-    sha256 = "1k2rpn06nfzqjy5k6fh8pwfj8vbhpn7rgkpkkpz5n2fqg3z8ph1j";
+    sha256 = "1414c324alvgwbiszalklck1kay41yca2wnm488imr2768fihzkz";
   };
 
   inherit python;
diff --git a/pkgs/applications/misc/hstr/default.nix b/pkgs/applications/misc/hstr/default.nix
index f4d4af0e12df..bf2fd97f26ee 100644
--- a/pkgs/applications/misc/hstr/default.nix
+++ b/pkgs/applications/misc/hstr/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, readline, ncurses }:
 
 let
-  version = "1.16";
+  version = "1.17";
 in
 stdenv.mkDerivation rec {
 
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://github.com/dvorka/hstr/releases/download/${version}/hh-${version}-src.tgz";
-    sha256 = "1hl3fn6kravx5gsdsr0l824vnkj5aiz0dybhd3ak932v95b5knyg";
+    sha256 = "0vjc4d8cl3sfbv9lywdpd2slffqyp3cpj52yp29g9lr2n3nfksk8";
   };
 
   buildInputs = [ readline ncurses ];
diff --git a/pkgs/applications/misc/keepassx/2.0.nix b/pkgs/applications/misc/keepassx/2.0.nix
index c39c72398f7b..1c5f2c6e7810 100644
--- a/pkgs/applications/misc/keepassx/2.0.nix
+++ b/pkgs/applications/misc/keepassx/2.0.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
     description = "Qt password manager compatible with its Win32 and Pocket PC versions";
     homepage = http://www.keepassx.org/;
     license = stdenv.lib.licenses.gpl2;
-    maintainers = with stdenv.lib.maintainers; [qknight];
+    maintainers = with stdenv.lib.maintainers; [ qknight jgeerds ];
     platforms = with stdenv.lib.platforms; linux;
   };
 }
diff --git a/pkgs/applications/misc/keepassx/default.nix b/pkgs/applications/misc/keepassx/default.nix
index fc089f4fa5b7..02a299922f17 100644
--- a/pkgs/applications/misc/keepassx/default.nix
+++ b/pkgs/applications/misc/keepassx/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     description = "Qt password manager compatible with its Win32 and Pocket PC versions";
     homepage = http://www.keepassx.org/;
     license = stdenv.lib.licenses.gpl2;
-    maintainers = with stdenv.lib.maintainers; [qknight];
+    maintainers = with stdenv.lib.maintainers; [ qknight jgeerds ];
     platforms = with stdenv.lib.platforms; linux;
   };
 }
diff --git a/pkgs/applications/misc/rofi/default.nix b/pkgs/applications/misc/rofi/default.nix
index 1bbe026cfebd..55f63d99ce29 100644
--- a/pkgs/applications/misc/rofi/default.nix
+++ b/pkgs/applications/misc/rofi/default.nix
@@ -1,17 +1,15 @@
-{ stdenv, fetchFromGitHub, autoconf, automake, pkgconfig
+{ stdenv, fetchurl, autoconf, automake, pkgconfig
 , libX11, libXinerama, libXft, pango
 , i3Support ? false, i3
 }:
 
 stdenv.mkDerivation rec {
   name = "rofi-${version}";
-  version = "0.15.2";
+  version = "0.15.5";
 
-  src = fetchFromGitHub {
-    repo = "rofi";
-    owner = "DaveDavenport";
-    rev = "${version}";
-    sha256 = "0b8k5g2fpqrz1yac09kmfk4caxcc107qq4yhncnl159xdxw66vz8";
+  src = fetchurl {
+    url = "https://github.com/DaveDavenport/rofi/archive/${version}.tar.gz";
+    sha256 = "16dffwxqxcx5krb6v1m6gh0r6d0a4hwl0jq4fdyblcv9xid5hxf5";
   };
 
   buildInputs = [ autoconf automake pkgconfig libX11 libXinerama libXft pango
@@ -25,5 +23,6 @@ stdenv.mkDerivation rec {
       description = "Window switcher, run dialog and dmenu replacement";
       homepage = https://davedavenport.github.io/rofi;
       license = stdenv.lib.licenses.mit;
+      maintainers = [ stdenv.lib.maintainers.mbakke ];
   };
 }
diff --git a/pkgs/applications/misc/rofi/pass.nix b/pkgs/applications/misc/rofi/pass.nix
index 8a7382ae737a..ccde370c2925 100644
--- a/pkgs/applications/misc/rofi/pass.nix
+++ b/pkgs/applications/misc/rofi/pass.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchgit, rofi, wmctrl, xprop, xdotool}:
 
 stdenv.mkDerivation rec {
-  name = "rofi-${version}";
+  name = "rofi-pass-${version}";
   version = "2015-06-08";
 
   src = fetchgit {
diff --git a/pkgs/applications/misc/rtv/default.nix b/pkgs/applications/misc/rtv/default.nix
index 30ce67a82f6c..a94308a65ad2 100644
--- a/pkgs/applications/misc/rtv/default.nix
+++ b/pkgs/applications/misc/rtv/default.nix
@@ -1,27 +1,26 @@
 { stdenv, fetchurl, pkgs, python, pythonPackages }:
 
 pythonPackages.buildPythonPackage rec {
-  version = "1.2.2";
+  version = "1.4";
   name = "rtv-${version}";
 
   src = fetchurl {
     url = "https://github.com/michael-lazar/rtv/archive/v${version}.tar.gz";
-    sha256 = "0pisairv28lhqvq8zs0whz3ww8fraj98941kk5idyxadbq0icmk3";
+    sha256 = "0qi45was70p3z15pnh25hkbliya440jldlzmpasqvbdy9zdgpv0w";
   };
 
   propagatedBuildInputs = with pythonPackages; [
     requests
     six
     praw
+    kitchen
     python.modules.curses
   ];
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = https://github.com/michael-lazar/rtv;
     description = "Browse Reddit from your Terminal";
-    license = stdenv.lib.licenses.mit;
-    maintainers = with stdenv.lib.maintainers; [ matthiasbeyer ];
+    license = licenses.mit;
+    maintainers = with maintainers; [ matthiasbeyer jgeerds ];
   };
 }
-
-
diff --git a/pkgs/applications/misc/scim/default.nix b/pkgs/applications/misc/scim/default.nix
index ef1bb0bed1dc..98594157211c 100644
--- a/pkgs/applications/misc/scim/default.nix
+++ b/pkgs/applications/misc/scim/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, yacc, ncurses, libxml2 }:
 
 let
-  version = "0.1.8";
+  version = "0.1.9";
 in
 stdenv.mkDerivation rec {
 
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://github.com/andmarti1424/scim/archive/v${version}.tar.gz";
-    sha256 = "0qjixb1hzbdrypbmzwb2iaw5wp57kn7fmm1zpjp4gzjyanrhazs2";
+    sha256 = "00rjz344acw0bxv78x1w9jz8snl9lb9qhr9z22phxinidnd3vaaz";
   };
 
   buildInputs = [ yacc ncurses libxml2 ];
diff --git a/pkgs/applications/misc/tasknc/default.nix b/pkgs/applications/misc/tasknc/default.nix
new file mode 100644
index 000000000000..f7460618d964
--- /dev/null
+++ b/pkgs/applications/misc/tasknc/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, taskwarrior, perl, ncurses }:
+
+stdenv.mkDerivation rec {
+  version = "0.8";
+  name = "tasknc-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/mjheagle8/tasknc/archive/v${version}.tar.gz";
+    sha256 = "0max5schga9hmf3vfqk2ic91dr6raxglyyjcqchzla280kxn5c28";
+  };
+
+  #
+  # I know this is ugly, but the Makefile does strange things in this package,
+  # so we have to:
+  #
+  #   1. Remove the "doc" task dependency from the "all" target
+  #   2. Remove the "tasknc.1" task dependency from the "install" target
+  #   3. Remove the installing of the tasknc.1 file from the install target as
+  #      we just removed the build target for it.
+  #
+  # TODO : One could also provide a patch for the doc/manual.pod file so it
+  # actually builds, but I'm not familiar with this, so this is the faster
+  # approach for me. We have no manpage, though.
+  #
+  preConfigure = ''
+    sed -i -r 's,(all)(.*)doc,\1\2,' Makefile
+    sed -i -r 's,(install)(.*)tasknc\.1,\1\2,' Makefile
+    sed -i -r 's,install\ -D\ -m644\ tasknc\.1\ (.*),,' Makefile
+  '';
+
+  installPhase = ''
+    mkdir $out/bin/ -p
+    mkdir $out/share/man1 -p
+    mkdir $out/share/tasknc -p
+    DESTDIR=$out PREFIX= MANPREFIX=share make install
+  '';
+
+  buildInputs = [ taskwarrior perl ncurses ];
+
+  meta = {
+    homepage = "https://github.com/mjheagle8/tasknc";
+    description = "a ncurses wrapper around taskwarrior";
+    maintainers = [ stdenv.lib.maintainers.matthiasbeyer ];
+    platforms = stdenv.lib.platforms.linux; # Cannot test others
+  };
+}
diff --git a/pkgs/applications/misc/taskwarrior/default.nix b/pkgs/applications/misc/taskwarrior/default.nix
index 20f7bfec646d..7f3ca4223235 100644
--- a/pkgs/applications/misc/taskwarrior/default.nix
+++ b/pkgs/applications/misc/taskwarrior/default.nix
@@ -18,11 +18,11 @@ stdenv.mkDerivation rec {
     ln -s "../../share/doc/task/scripts/bash/task.sh" "$out/etc/bash_completion.d/"
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "GTD (getting things done) implementation";
     homepage = http://taskwarrior.org;
-    license = stdenv.lib.licenses.mit;
-    maintainers = [stdenv.lib.maintainers.marcweber];
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.mit;
+    maintainers = with maintainers; [ marcweber jgeerds ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix
new file mode 100644
index 000000000000..64ceebfa527c
--- /dev/null
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl, xorg, gtk, glib, gdk_pixbuf, dpkg, libXext, libXfixes
+, libXrender, libuuid, libXrandr, libXcomposite
+}:
+
+with stdenv.lib;
+
+let
+
+  rpathInstaller = makeLibraryPath
+    [gtk glib stdenv.cc.cc];
+
+  rpathPlugin = makeLibraryPath
+    [ stdenv.cc.cc gtk glib xorg.libX11 gdk_pixbuf libXext libXfixes libXrender libXrandr libuuid libXcomposite ];
+
+in
+
+stdenv.mkDerivation rec {
+  name = "bluejeans-2.100.41.8";
+
+  version = "2.100.41.8";
+
+  src = fetchurl {
+    url = "https://swdl.bluejeans.com/skinny/bjnplugin_2.100.41.8-1_amd64.deb";
+    sha256 = "013m17lpgi6nhw2df10wvrsnsjxy5n7z41ab69vj5m9h0prw9vd1";
+  };
+
+  phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
+
+  unpackPhase = "${dpkg}/bin/dpkg-deb -x $src .";
+
+  installPhase =
+    ''
+      mkdir -p $out
+      cp -R usr/lib $out/
+
+      plugins=$out/lib/mozilla/plugins
+      patchelf \
+        --set-rpath "${rpathPlugin}" \
+        $plugins/npbjnplugin_2.100.41.8.so
+
+      patchelf \
+        --set-rpath "${rpathInstaller}" \
+        $plugins/npbjninstallplugin_2.100.41.8.so
+    '';
+
+  dontStrip = true;
+  dontPatchELF = true;
+
+  passthru.mozillaPlugin = "/lib/mozilla/plugins";
+
+  meta = {
+    homepage = http://bluejeans.com;
+    license = stdenv.lib.licenses.unfree;
+    maintainers = [ stdenv.lib.maintainers.ocharles ];
+  };
+}
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix
index 79d95571f2f9..e736c90d6bb9 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix
@@ -36,7 +36,7 @@
 
 let
   # -> http://get.adobe.com/flashplayer/
-  version = "11.2.202.460";
+  version = "11.2.202.466";
 
   src =
     if stdenv.system == "x86_64-linux" then
@@ -47,7 +47,7 @@ let
       else rec {
         inherit version;
         url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.x86_64.tar.gz";
-        sha256 = "152hhxismgvz6hkh5m8z5x1drpwflymd2zk3v96nszpkb2xxirnr";
+        sha256 = "1clwfhq57gck638sj7i19gxar1z5ks2zfdw1p9iln515a57ik158";
       }
     else if stdenv.system == "i686-linux" then
       if debug then
@@ -60,7 +60,7 @@ let
       else rec {
         inherit version;
         url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.i386.tar.gz";
-        sha256 = "15655c3kzk1mk00737wgc52i4zz5jh9fkjgjs747qwiik5pnh7x1";
+        sha256 = "1vzxai3b6d7xs34h7qj1nal9i7vvnv6k7rb37rqxaiv2yf58nw9h";
       }
     else throw "Flash Player is not supported on this platform";
 
diff --git a/pkgs/applications/networking/dropbox/default.nix b/pkgs/applications/networking/dropbox/default.nix
index 14360f9ff0bb..33df71c62c38 100644
--- a/pkgs/applications/networking/dropbox/default.nix
+++ b/pkgs/applications/networking/dropbox/default.nix
@@ -19,11 +19,11 @@
 
 let
   # NOTE: When updating, please also update in current stable, as older versions stop working
-  version = "3.4.6";
+  version = "3.6.7";
   sha256 =
     {
-      "x86_64-linux" = "0crhv21q48lwa86qcqgbcd9g73biibfrc2vgbavi67cwxvzcskky";
-      "i686-linux" = "0kli84kzg1wcwszjni948zb4qih8mynmyqhdwyiv1l7v5lrhb8k2";
+      "x86_64-linux" = "1jwzrpw382amx0jap9m411a3yvkc9iwnw6n35kwq3infmbwjs6q8";
+      "i686-linux" = "0rjd908bhfk00qh6gvizf2fyfb3cccd78spyvh435z377x2pmxzy";
     }."${stdenv.system}" or (throw "system ${stdenv.system} not supported");
 
   arch =
diff --git a/pkgs/applications/networking/irc/hexchat/default.nix b/pkgs/applications/networking/irc/hexchat/default.nix
index f1cc7df19046..dfe5c3b0182f 100644
--- a/pkgs/applications/networking/irc/hexchat/default.nix
+++ b/pkgs/applications/networking/irc/hexchat/default.nix
@@ -1,32 +1,32 @@
 { stdenv, fetchurl, pkgconfig, gtk, perl, python, gettext
 , libtool, pciutils, dbus_glib, libcanberra, libproxy
-, libsexy, enchant, libnotify, openssl
+, libsexy, enchant, libnotify, openssl, intltool
 , desktop_file_utils, hicolor_icon_theme
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.9.6.1";
+  version = "2.10.2";
   name = "hexchat-${version}";
 
   src = fetchurl {
     url = "http://dl.hexchat.net/hexchat/${name}.tar.xz";
-    sha256 = "0w34jr1pqril6r011fwxv40m17bnb88q9cv5hf08mv0a9lygyrv2";
+    sha256 = "0b5mw6jxa7c93nbgiwijm7j7klm6nccx6l9zyainyrbnqmjz7sw7";
   };
 
   buildInputs = [
     pkgconfig gtk perl python gettext
     libtool pciutils dbus_glib libcanberra libproxy
-    libsexy libnotify openssl
+    libsexy libnotify openssl intltool
     desktop_file_utils hicolor_icon_theme
   ];
 
   configureFlags = [ "--enable-shm" "--enable-textfe" ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A popular and easy to use graphical IRC (chat) client";
     homepage = http://hexchat.github.io/;
-    license = stdenv.lib.licenses.gpl2;
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = [ stdenv.lib.maintainers.romildo ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo jgeerds ];
   };
 }
diff --git a/pkgs/applications/networking/mailreaders/mailpile/default.nix b/pkgs/applications/networking/mailreaders/mailpile/default.nix
index 695e2b381576..c43944dc5979 100644
--- a/pkgs/applications/networking/mailreaders/mailpile/default.nix
+++ b/pkgs/applications/networking/mailreaders/mailpile/default.nix
@@ -27,7 +27,7 @@ pythonPackages.buildPythonPackage rec {
   meta = with stdenv.lib; {
     description = "A modern, fast web-mail client with user-friendly encryption and privacy features";
     homepage = https://www.mailpile.is/;
-    license = map (getAttr "shortName") [ licenses.asl20 licenses.agpl3 ];
+    license = [ licenses.asl20 licenses.agpl3 ];
     platforms = platforms.linux;
     maintainers = [ maintainers.iElectric ];
   };
diff --git a/pkgs/applications/networking/mumble/default.nix b/pkgs/applications/networking/mumble/default.nix
index cd361fe7ede3..4eabdadc4876 100644
--- a/pkgs/applications/networking/mumble/default.nix
+++ b/pkgs/applications/networking/mumble/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
     description = "Low-latency, high quality voice chat software";
     homepage = "http://mumble.sourceforge.net/";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ viric ];
+    maintainers = with maintainers; [ viric jgeerds ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/science/electronics/eagle/default.nix b/pkgs/applications/science/electronics/eagle/default.nix
index e4cb4685f16e..da4894c11a85 100644
--- a/pkgs/applications/science/electronics/eagle/default.nix
+++ b/pkgs/applications/science/electronics/eagle/default.nix
@@ -13,11 +13,11 @@ in
 
 stdenv.mkDerivation rec {
   name = "eagle-${version}";
-  version = "6.5.0";
+  version = "6.6.0";
 
   src = fetchurl {
-    url = "ftp://ftp.cadsoft.de/eagle/program/6.5/eagle-lin-${version}.run";
-    sha256 = "17plwx2p8q2ylk0nzj5crfbdm7jc35pw7v3j8f4j81yl37l7bj22";
+    url = "ftp://ftp.cadsoft.de/eagle/program/6.6/eagle-lin-${version}.run";
+    sha256 = "0m5289daah85b2rwpivnh2z1573v6j4alzjy9hg78fkb9jdgbn0x";
   };
 
   desktopItem = makeDesktopItem {
diff --git a/pkgs/applications/science/logic/isabelle/default.nix b/pkgs/applications/science/logic/isabelle/default.nix
index 88bbe820e2f3..97534b0ddd36 100644
--- a/pkgs/applications/science/logic/isabelle/default.nix
+++ b/pkgs/applications/science/logic/isabelle/default.nix
@@ -12,11 +12,11 @@ stdenv.mkDerivation {
 
   src = if stdenv.isDarwin
     then fetchurl {
-      url = http://isabelle.in.tum.de/dist/Isabelle2014_macos.tar.gz;
+      url = http://isabelle.in.tum.de/website-Isabelle2014/dist/Isabelle2014_macos.tar.gz;
       sha256 = "1aa3vz2nnkkyd4mlsqbs69jqfxlll5h0k5fj9m1j9wqiddqwvwcf";
     }
     else fetchurl {
-      url = http://isabelle.in.tum.de/dist/Isabelle2014_linux.tar.gz;
+      url = http://isabelle.in.tum.de/website-Isabelle2014/dist/Isabelle2014_linux.tar.gz;
       sha256 = "0z81pwwllavka4r57fx6yi9kbpbb9xbanp8dsjix49qpyj2a72jy";
     };
 
diff --git a/pkgs/applications/version-management/git-and-tools/git-cola/default.nix b/pkgs/applications/version-management/git-and-tools/git-cola/default.nix
index a43bd8d3a373..c10ab14f6398 100644
--- a/pkgs/applications/version-management/git-and-tools/git-cola/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-cola/default.nix
@@ -2,11 +2,11 @@
 
 pythonPackages.buildPythonPackage rec {
   name = "git-cola-${version}";
-  version = "2.1.1";
+  version = "2.2.1";
 
   src = fetchurl {
     url = "https://github.com/git-cola/git-cola/archive/v${version}.tar.gz";
-    sha256 = "0fpi5nvhyqkx67ak5pfcpgxbc3m19dqlvdh2c9igv2j0vp5rzkj1";
+    sha256 = "1v1s9gx16xihdcck4qp92bdci8zc6pb5a3z3y8k9jqj97hfkw2nz";
   };
 
   buildInputs = [ makeWrapper gettext ];
diff --git a/pkgs/applications/version-management/git-and-tools/gitflow/default.nix b/pkgs/applications/version-management/git-and-tools/gitflow/default.nix
index 0898345c30b6..99c1db20fb2a 100644
--- a/pkgs/applications/version-management/git-and-tools/gitflow/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gitflow/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "gitflow-${version}";
-  version = "1.7.0";
+  version = "1.8.0";
 
   src = fetchurl {
     url = "https://github.com/petervanderdoes/gitflow/archive/${version}.tar.gz";
-    sha256 = "0rppgyqgk0drip6852bdm2479zks16cb3mj1jdw6jq80givrqnjx";
+    sha256 = "1vxdawx4sinl19g59ifmrdalmr2dl5pkgawyj9z0s5mcildi6fc2";
   };
 
   preBuild = ''
@@ -15,9 +15,15 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     homepage = https://github.com/petervanderdoes/gitflow;
-    description = "A collection of Git extensions to provide high-level repository operations for Vincent Driessen's branching model";
+    description = "Extend git with the Gitflow branching model";
+    longDescription = ''
+      A set of scripts that provide high-level repository operations
+      for managing feature/release/hotfix branches in a Git repository,
+      particularly suited to be utilised to follow Vincent Driessen's
+      branching model.
+    '';
     license = licenses.bsd2;
     platforms = platforms.all;
-    maintainers = [ maintainers.offline ];
+    maintainers = with maintainers; [ offline jgeerds ];
   };
 }
diff --git a/pkgs/applications/video/k9copy/default.nix b/pkgs/applications/video/k9copy/default.nix
new file mode 100644
index 000000000000..ad5dc58cbebb
--- /dev/null
+++ b/pkgs/applications/video/k9copy/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchurl, cmake, automoc4, kf5, dvdauthor, xineLib, libmpeg2, libav,
+libdvdread, libdvdnav, dvdplusrwtools }:
+
+stdenv.mkDerivation rec {
+  version = "3.0.3";
+  name = "k9copy-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/k9copy-reloaded/${name}.tar.gz";
+    sha256 = "0dp06rwihks50c57bbv04d6bj2qc88isl91971r4lii2xp0qn7sg";
+  };
+
+  cmakeFlags = [
+    "-DQT5_BUILD=ON"
+    "-DCMAKE_MINIMUM_REQUIRED_VERSION=3.0"
+  ];
+
+  # Hack to disable documentation
+  preConfigure = ''
+   substituteInPlace ./CMakeLists.txt \
+     --replace "add_subdirectory(doc)" ""
+  '';
+
+  buildInputs = [
+    cmake
+    dvdauthor
+    xineLib
+    libmpeg2
+    libav
+    libdvdread
+    libdvdnav
+    dvdplusrwtools
+    automoc4
+  ] ++ (with kf5; [
+    extra-cmake-modules
+    kio
+    solid
+    scope.Phonon4Qt5
+    scope.Qt5X11Extras
+    kiconthemes
+    ki18n
+    kdesu
+    kdoctools
+  ]);
+
+  meta = {
+    description = "DVD backup and DVD authoring program";
+    homepage = "http://k9copy-reloaded.sourceforge.net/";
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = with stdenv.lib.maintainers; [ flosse ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/applications/video/obs-studio/default.nix b/pkgs/applications/video/obs-studio/default.nix
index 67f5e11de681..894a51c58cce 100644
--- a/pkgs/applications/video/obs-studio/default.nix
+++ b/pkgs/applications/video/obs-studio/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
                   libv4l
                   libxkbcommon
                   qt5.base
+                  qt5.x11extras
                   x264
                 ];
 
diff --git a/pkgs/applications/window-managers/tabbed/default.nix b/pkgs/applications/window-managers/tabbed/default.nix
index 4e6c9c9a83e6..a7e2059cd042 100644
--- a/pkgs/applications/window-managers/tabbed/default.nix
+++ b/pkgs/applications/window-managers/tabbed/default.nix
@@ -1,24 +1,25 @@
-{stdenv, fetchhg, xproto, libX11, patches ? []}:
+{stdenv, fetchgit, xproto, libX11, enableXft, libXft}:
+
+with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  name = "tabbed-20120209";
- 
-  src = fetchhg {
-    url = http://hg.suckless.org/tabbed;
-    rev = "d7542a6f6dc5";
-    sha256 = "1963jsazfmh5k7923c1mfwppz1xbh48z16j0sa64fiscq22as2gj";
+  name = "tabbed-20150509";
+
+  src = fetchgit {
+    url = http://git.suckless.org/tabbed;
+    rev = "55dc32b27b73c121cab18009bf087e95ef3d9c18";
+    sha256 = "0c5ayf1lrb1xiz5h8dfd4mh05kas42zzi5m5ylrvl67sfz3z4wg1";
   };
 
-  # Allow users set their own list of patches
-  inherit patches;
+  patches = optional enableXft ./xft.patch;
 
-  buildInputs = [ xproto libX11 ];
+  buildInputs = [ xproto libX11 ] ++ optional enableXft libXft;
 
   preInstall = ''
     export makeFlags="PREFIX=$out"
   '';
- 
-  meta = with stdenv.lib; {
+
+  meta = {
     homepage = http://tools.suckless.org/tabbed;
     description = "Simple generic tabbed fronted to xembed aware applications";
     license = licenses.mit;
diff --git a/pkgs/applications/window-managers/tabbed/xft.patch b/pkgs/applications/window-managers/tabbed/xft.patch
new file mode 100644
index 000000000000..f4f1e82e7052
--- /dev/null
+++ b/pkgs/applications/window-managers/tabbed/xft.patch
@@ -0,0 +1,234 @@
+diff --git a/config.def.h b/config.def.h
+index b3da7f0..ce43686 100644
+--- a/config.def.h
++++ b/config.def.h
+@@ -1,7 +1,7 @@
+ /* See LICENSE file for copyright and license details. */
+ 
+ /* appearance */
+-static const char font[]        = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";
++static const char font[]        = "monospace-9";
+ static const char* normbgcolor  = "#222222";
+ static const char* normfgcolor  = "#cccccc";
+ static const char* selbgcolor   = "#555555";
+diff --git a/config.mk b/config.mk
+index dd741e4..ed3a2e9 100644
+--- a/config.mk
++++ b/config.mk
+@@ -9,7 +9,7 @@ MANPREFIX = ${PREFIX}/share/man
+ 
+ # includes and libs
+ INCS = -I. -I/usr/include
+-LIBS = -L/usr/lib -lc -lX11
++LIBS = -L/usr/lib -lc -lXft -lX11
+ 
+ # flags
+ CPPFLAGS = -DVERSION=\"${VERSION}\" -D_DEFAULT_SOURCE
+diff --git a/tabbed.c b/tabbed.c
+index b15f9cb..6e50c41 100644
+--- a/tabbed.c
++++ b/tabbed.c
+@@ -15,6 +15,7 @@
+ #include <X11/Xproto.h>
+ #include <X11/Xutil.h>
+ #include <X11/XKBlib.h>
++#include <X11/Xft/Xft.h>
+ 
+ #include "arg.h"
+ 
+@@ -64,17 +65,16 @@ typedef struct {
+ 
+ typedef struct {
+ 	int x, y, w, h;
+-	unsigned long norm[ColLast];
+-	unsigned long sel[ColLast];
+-	unsigned long urg[ColLast];
++	XftColor norm[ColLast];
++	XftColor sel[ColLast];
++	XftColor urg[ColLast];
+ 	Drawable drawable;
+ 	GC gc;
+ 	struct {
+ 		int ascent;
+ 		int descent;
+ 		int height;
+-		XFontSet set;
+-		XFontStruct *xfont;
++		XftFont *xfont;
+ 	} font;
+ } DC; /* draw context */
+ 
+@@ -97,7 +97,7 @@ static void unmapnotify(const XEvent *e);
+ static void destroynotify(const XEvent *e);
+ static void die(const char *errstr, ...);
+ static void drawbar(void);
+-static void drawtext(const char *text, unsigned long col[ColLast]);
++static void drawtext(const char *text, XftColor col[ColLast]);
+ static void *ecalloc(size_t n, size_t size);
+ static void *erealloc(void *o, size_t size);
+ static void expose(const XEvent *e);
+@@ -107,7 +107,7 @@ static void focusonce(const Arg *arg);
+ static void fullscreen(const Arg *arg);
+ static char* getatom(int a);
+ static int getclient(Window w);
+-static unsigned long getcolor(const char *colstr);
++static XftColor getcolor(const char *colstr);
+ static int getfirsttab(void);
+ static Bool gettextprop(Window w, Atom atom, char *text, unsigned int size);
+ static void initfont(const char *fontstr);
+@@ -220,12 +220,6 @@ cleanup(void) {
+ 	free(clients);
+ 	clients = NULL;
+ 
+-	if(dc.font.set) {
+-		XFreeFontSet(dpy, dc.font.set);
+-	} else {
+-		XFreeFont(dpy, dc.font.xfont);
+-	}
+-
+ 	XFreePixmap(dpy, dc.drawable);
+ 	XFreeGC(dpy, dc.gc);
+ 	XDestroyWindow(dpy, win);
+@@ -315,7 +309,7 @@ die(const char *errstr, ...) {
+ 
+ void
+ drawbar(void) {
+-	unsigned long *col;
++	XftColor *col;
+ 	int c, cc, fc, width;
+ 	char *name = NULL;
+ 
+@@ -368,12 +362,13 @@ drawbar(void) {
+ }
+ 
+ void
+-drawtext(const char *text, unsigned long col[ColLast]) {
++drawtext(const char *text, XftColor col[ColLast]) {
+ 	int i, x, y, h, len, olen;
+ 	char buf[256];
++	XftDraw *d;
+ 	XRectangle r = { dc.x, dc.y, dc.w, dc.h };
+ 
+-	XSetForeground(dpy, dc.gc, col[ColBG]);
++	XSetForeground(dpy, dc.gc, col[ColBG].pixel);
+ 	XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1);
+ 	if(!text)
+ 		return;
+@@ -394,13 +389,12 @@ drawtext(const char *text, unsigned long col[ColLast]) {
+ 		for(i = len; i && i > len - 3; buf[--i] = '.');
+ 	}
+ 
+-	XSetForeground(dpy, dc.gc, col[ColFG]);
+-	if(dc.font.set) {
+-		XmbDrawString(dpy, dc.drawable, dc.font.set,
+-				dc.gc, x, y, buf, len);
+-	} else {
+-		XDrawString(dpy, dc.drawable, dc.gc, x, y, buf, len);
+-	}
++	XSetForeground(dpy, dc.gc, col[ColFG].pixel);
++
++	d = XftDrawCreate(dpy, dc.drawable, DefaultVisual(dpy, screen), DefaultColormap(dpy,screen));
++
++	XftDrawStringUtf8(d, &col[ColFG], dc.font.xfont, x, y, (XftChar8 *) buf, len);
++	XftDrawDestroy(d);
+ }
+ 
+ void *
+@@ -537,15 +531,14 @@ getclient(Window w) {
+ 	return -1;
+ }
+ 
+-unsigned long
++XftColor
+ getcolor(const char *colstr) {
+-	Colormap cmap = DefaultColormap(dpy, screen);
+-	XColor color;
++	XftColor color;
+ 
+-	if(!XAllocNamedColor(dpy, cmap, colstr, &color, &color))
++	if(!XftColorAllocName(dpy, DefaultVisual(dpy, screen), DefaultColormap(dpy, screen), colstr, &color))
+ 		die("tabbed: cannot allocate color '%s'\n", colstr);
+ 
+-	return color.pixel;
++	return color;
+ }
+ 
+ int
+@@ -594,41 +587,11 @@ gettextprop(Window w, Atom atom, char *text, unsigned int size) {
+ 
+ void
+ initfont(const char *fontstr) {
+-	char *def, **missing, **font_names;
+-	int i, n;
+-	XFontStruct **xfonts;
+-
+-	missing = NULL;
+-	if(dc.font.set)
+-		XFreeFontSet(dpy, dc.font.set);
+-
+-	dc.font.set = XCreateFontSet(dpy, fontstr, &missing, &n, &def);
+-	if(missing) {
+-		while(n--)
+-			fprintf(stderr, "tabbed: missing fontset: %s\n", missing[n]);
+-		XFreeStringList(missing);
+-	}
+-
+-	if(dc.font.set) {
+-		dc.font.ascent = dc.font.descent = 0;
+-		n = XFontsOfFontSet(dc.font.set, &xfonts, &font_names);
+-		for(i = 0, dc.font.ascent = 0, dc.font.descent = 0; i < n; i++) {
+-			dc.font.ascent = MAX(dc.font.ascent, (*xfonts)->ascent);
+-			dc.font.descent = MAX(dc.font.descent,(*xfonts)->descent);
+-			xfonts++;
+-		}
+-	} else {
+-		if(dc.font.xfont)
+-			XFreeFont(dpy, dc.font.xfont);
+-		dc.font.xfont = NULL;
+-		if(!(dc.font.xfont = XLoadQueryFont(dpy, fontstr))
+-				&& !(dc.font.xfont = XLoadQueryFont(dpy, "fixed"))) {
+-			die("tabbed: cannot load font: '%s'\n", fontstr);
+-		}
++	if(!(dc.font.xfont = XftFontOpenName(dpy,screen,fontstr)) && !(dc.font.xfont = XftFontOpenName(dpy,screen,"fixed")))
++		die("error, cannot load font: '%s'\n", fontstr);
+ 
+-		dc.font.ascent = dc.font.xfont->ascent;
+-		dc.font.descent = dc.font.xfont->descent;
+-	}
++	dc.font.ascent = dc.font.xfont->ascent;
++	dc.font.descent = dc.font.xfont->descent;
+ 	dc.font.height = dc.font.ascent + dc.font.descent;
+ }
+ 
+@@ -1000,11 +963,9 @@ setup(void) {
+ 	dc.drawable = XCreatePixmap(dpy, root, ww, wh,
+ 			DefaultDepth(dpy, screen));
+ 	dc.gc = XCreateGC(dpy, root, 0, 0);
+-	if(!dc.font.set)
+-		XSetFont(dpy, dc.gc, dc.font.xfont->fid);
+ 
+ 	win = XCreateSimpleWindow(dpy, root, wx, wy, ww, wh, 0,
+-			dc.norm[ColFG], dc.norm[ColBG]);
++			dc.norm[ColFG].pixel, dc.norm[ColBG].pixel);
+ 	XMapRaised(dpy, win);
+ 	XSelectInput(dpy, win, SubstructureNotifyMask|FocusChangeMask|
+ 			ButtonPressMask|ExposureMask|KeyPressMask|PropertyChangeMask|
+@@ -1070,15 +1031,9 @@ spawn(const Arg *arg) {
+ 
+ int
+ textnw(const char *text, unsigned int len) {
+-	XRectangle r;
+-
+-	if(dc.font.set) {
+-		XmbTextExtents(dc.font.set, text, len, NULL, &r);
+-
+-		return r.width;
+-	}
+-
+-	return XTextWidth(dc.font.xfont, text, len);
++	XGlyphInfo ext;
++	XftTextExtentsUtf8(dpy, dc.font.xfont, (XftChar8 *) text, len, &ext);
++	return ext.xOff;
+ }
+ 
+ void
diff --git a/pkgs/build-support/build-maven.nix b/pkgs/build-support/build-maven.nix
new file mode 100644
index 000000000000..bde95080e745
--- /dev/null
+++ b/pkgs/build-support/build-maven.nix
@@ -0,0 +1,58 @@
+{ stdenv, maven, runCommand, writeText, fetchurl, lib }:
+/* Takes an info file generated by mvn2nix
+ * (https://github.com/shlevy/mvn2nix-maven-plugin) and builds the maven
+ * project with it.
+ *
+ * repo: A local maven repository with the project's dependencies.
+ *
+ * settings: A settings.xml to pass to maven to use the repo.
+ *
+ * build: A simple build derivation that uses mvn compile and package to build
+ *        the project.
+ */
+infoFile: let
+  info = builtins.fromJSON (builtins.readFile infoFile);
+
+  repo = runCommand "maven-repository" {} ''
+    ${lib.concatStrings (map (dep: let
+      inherit (dep) url sha1 groupId artifactId version;
+
+      fetch = fetchurl { inherit url sha1; };
+    in ''
+      dir=$out/$(echo ${groupId} | sed 's|\.|/|g')/${artifactId}/${version}
+      mkdir -p $dir
+      ln -sv ${fetch} $dir/${fetch.name}
+    '') info.dependencies)}
+  '';
+
+  settings = writeText "settings.xml" ''
+    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
+                          http://maven.apache.org/xsd/settings-1.0.0.xsd">
+      <localRepository>${repo}</localRepository>
+    </settings>
+  '';
+
+  src = dirOf infoFile;
+in {
+  inherit repo settings;
+
+  build = stdenv.mkDerivation {
+    name = "${info.project.artifactId}-${info.project.version}.jar";
+
+    src = builtins.filterSource (path: type:
+      (toString path) != (toString (src + "/target")) &&
+        (toString path) != (toString (src + "/.git"))
+    ) src;
+
+    buildInputs = [ maven ];
+
+    buildPhase = "mvn --offline --settings ${settings} compile";
+
+    installPhase = ''
+      mvn --offline --settings ${settings} package
+      mv target/*.jar $out
+    '';
+  };
+}
diff --git a/pkgs/desktops/gnome-3/3.16/apps/vinagre/default.nix b/pkgs/desktops/gnome-3/3.16/apps/vinagre/default.nix
index 38263ac73f89..b2cf8277641a 100644
--- a/pkgs/desktops/gnome-3/3.16/apps/vinagre/default.nix
+++ b/pkgs/desktops/gnome-3/3.16/apps/vinagre/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, gtk3, gnome3, vte, libxml2, gtk-vnc, intltool
+{ stdenv, fetchurl, pkgconfig, gtk3, gnome3, vte, libxml2, gtkvnc, intltool
 , libsecret, itstool, makeWrapper, librsvg }:
 
 stdenv.mkDerivation rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "0gs8sqd4r6jlgxn1b7ggyfcisig50z79p0rmigpzwpjjx1bh0z6p";
   };
 
-  buildInputs = [ pkgconfig gtk3 vte libxml2 gtk-vnc intltool libsecret
+  buildInputs = [ pkgconfig gtk3 vte libxml2 gtkvnc intltool libsecret
                   itstool makeWrapper gnome3.defaultIconTheme librsvg ];
 
   preFixup = ''
diff --git a/pkgs/desktops/gnome-3/3.16/core/gdm/default.nix b/pkgs/desktops/gnome-3/3.16/core/gdm/default.nix
index 43a3d450ac72..17245bd9d2a9 100644
--- a/pkgs/desktops/gnome-3/3.16/core/gdm/default.nix
+++ b/pkgs/desktops/gnome-3/3.16/core/gdm/default.nix
@@ -27,11 +27,10 @@ stdenv.mkDerivation rec {
 
   preBuild = ''
     substituteInPlace daemon/gdm-simple-slave.c --replace 'BINDIR "/gnome-session' '"${gnome_session}/bin/gnome-session'
-    substituteInPlace daemon/gdm-launch-environment.c --replace 'BINDIR "/dbus-launch' '"${dbus.tools}/bin/dbus-launch'
   '';
 
   # Disable Access Control because our X does not support FamilyServerInterpreted yet
-  patches = [ ./xserver_path.patch ./sessions_dir.patch ./disable_x_access_control.patch ];
+  patches = [ ./xserver_path.patch ./sessions_dir.patch ./disable_x_access_control.patch ./no-dbus-launch.patch ];
 
   meta = with stdenv.lib; {
     homepage = https://wiki.gnome.org/Projects/GDM;
diff --git a/pkgs/desktops/gnome-3/3.16/core/gdm/no-dbus-launch.patch b/pkgs/desktops/gnome-3/3.16/core/gdm/no-dbus-launch.patch
new file mode 100644
index 000000000000..c87554078c7c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/3.16/core/gdm/no-dbus-launch.patch
@@ -0,0 +1,20 @@
+--- a/daemon/gdm-launch-environment.c	2015-06-22 15:11:07.277474398 +0000
++++ b/daemon/gdm-launch-environment.c	2015-06-22 15:12:31.301157665 +0000
+@@ -48,8 +48,6 @@
+ #include "gdm-session-enum-types.h"
+ #include "gdm-launch-environment.h"
+ 
+-#define DBUS_LAUNCH_COMMAND BINDIR "/dbus-launch --exit-with-session"
+-
+ extern char **environ;
+ 
+ #define GDM_LAUNCH_ENVIRONMENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_LAUNCH_ENVIRONMENT, GdmLaunchEnvironmentPrivate))
+@@ -512,7 +510,7 @@
+                 gdm_session_select_program (launch_environment->priv->session, launch_environment->priv->command);
+         } else {
+                 /* wrap it in dbus-launch */
+-                char *command = g_strdup_printf ("%s %s", DBUS_LAUNCH_COMMAND, launch_environment->priv->command);
++                char *command = g_strdup (launch_environment->priv->command);
+ 
+                 gdm_session_select_program (launch_environment->priv->session, command);
+                 g_free (command);
diff --git a/pkgs/desktops/gnome-3/3.16/core/gtk-vnc/default.nix b/pkgs/desktops/gnome-3/3.16/core/gtk-vnc/default.nix
deleted file mode 100644
index ebe7370aba75..000000000000
--- a/pkgs/desktops/gnome-3/3.16/core/gtk-vnc/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ stdenv, fetchurl, gdk_pixbuf, pkgconfig, gtk3, cyrus_sasl
-, gnutls, gobjectIntrospection, vala, intltool, libgcrypt }:
-
-stdenv.mkDerivation rec {
-  versionMajor = "0.5";
-  versionMinor = "4";
-  moduleName   = "gtk-vnc";
-
-  name = "${moduleName}-${versionMajor}.${versionMinor}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
-    sha256 = "1rwwdh7lb16xdmy76ca6mpqfc3zfl3a4bkcr0qb6hs6ffrxak2j8";
-  };
-
-  buildInputs = [ pkgconfig gtk3 gdk_pixbuf gnutls cyrus_sasl
-                  gobjectIntrospection vala intltool libgcrypt ];
-
-  configureFlags = [ "--with-gtk=3.0" ];
-
-  enableParallelBuilding = true;
-
-  meta = with stdenv.lib; {
-    homepage = https://wiki.gnome.org/Projects/gtk-vnc;
-    description = "A VNC viewer widget for GTK+";
-    license = licenses.lgpl2;
-    maintainers = with maintainers; [ lethalman ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/3.16/default.nix b/pkgs/desktops/gnome-3/3.16/default.nix
index 0c3d49f769f6..7387ee710d0a 100644
--- a/pkgs/desktops/gnome-3/3.16/default.nix
+++ b/pkgs/desktops/gnome-3/3.16/default.nix
@@ -41,6 +41,7 @@ let
   cogl = pkgs.cogl_1_20;
   gtk = gtk3;
   gtkmm = gtkmm3;
+  gtkvnc = pkgs.gtkvnc.override { enableGTK3 = true; };
   vala = pkgs.vala_0_26;
   gegl_0_3 = pkgs.gegl_0_3.override { inherit gtk; };
 
@@ -151,8 +152,6 @@ let
 
   gtksourceview = callPackage ./core/gtksourceview { };
 
-  gtk-vnc = callPackage ./core/gtk-vnc { };
-
   gucharmap = callPackage ./core/gucharmap { };
 
   gvfs = pkgs.gvfs.override { gnome = gnome3; gnomeSupport = true; };
diff --git a/pkgs/development/compilers/rustc/1.0.0.nix b/pkgs/development/compilers/rustc/1.0.0.nix
index a85ed9290fe2..5bb03b592b94 100644
--- a/pkgs/development/compilers/rustc/1.0.0.nix
+++ b/pkgs/development/compilers/rustc/1.0.0.nix
@@ -1,5 +1,5 @@
 { stdenv, callPackage }:
-callPackage ./makeRustcDerivation.nix {
+callPackage ./generic.nix {
   shortVersion = "1.0.0";
   isRelease = true;
   srcSha = "14brziw91d3r88fa1kvpvhap5ws4z8h2mas7h6k9lpsc2zl9blak";
diff --git a/pkgs/development/compilers/rustc/makeRustcDerivation.nix b/pkgs/development/compilers/rustc/generic.nix
index 6208190f8dfd..d1091643f779 100644
--- a/pkgs/development/compilers/rustc/makeRustcDerivation.nix
+++ b/pkgs/development/compilers/rustc/generic.nix
@@ -63,7 +63,7 @@ let version = if isRelease then
       homepage = http://www.rust-lang.org/;
       description = "A safe, concurrent, practical language";
       maintainers = with maintainers; [ madjar cstrahan wizeman globin ];
-      license = map (builtins.getAttr "shortName") [ licenses.mit licenses.asl20 ];
+      license = [ licenses.mit licenses.asl20 ];
       platforms = platforms.linux;
     };
 
@@ -136,6 +136,8 @@ stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
+  outputs = [ "out" "doc" ];
+
   preCheck = "export TZDIR=${tzdata}/share/zoneinfo";
 
   doCheck = true;
diff --git a/pkgs/development/compilers/rustc/head.nix b/pkgs/development/compilers/rustc/head.nix
index c73a12c6f6e8..5e5b41e8b250 100644
--- a/pkgs/development/compilers/rustc/head.nix
+++ b/pkgs/development/compilers/rustc/head.nix
@@ -1,5 +1,5 @@
 { stdenv, callPackage }:
-callPackage ./makeRustcDerivation.nix {
+callPackage ./generic.nix {
   shortVersion = "1.0.0-dev";
   isRelease = false;
   # src rev for master on 2015-05-13
diff --git a/pkgs/development/coq-modules/mathcomp/1.5.nix b/pkgs/development/coq-modules/mathcomp/1.5.nix
deleted file mode 100644
index c984bab49171..000000000000
--- a/pkgs/development/coq-modules/mathcomp/1.5.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{stdenv, fetchurl, coq, ssreflect}:
-
-stdenv.mkDerivation {
-
-  name = "coq-mathcomp-1.5-8.5b2";
-
-  src = fetchurl {
-    url = http://ssr.msr-inria.inria.fr/FTP/mathcomp-1.5.coq85beta2.tar.gz;
-    sha256 = "03bnq44ym43x8shi7whc02l0g5vy6rx8f1imjw478chlgwcxazqy";
-  };
-
-  propagatedBuildInputs = [ coq ssreflect ];
-
-  enableParallelBuilding = true;
-
-  installFlags = "COQLIB=$(out)/lib/coq/${coq.coq-version}/";
-
-  meta = with stdenv.lib; {
-    homepage = http://ssr.msr-inria.inria.fr/;
-    license = licenses.cecill-b;
-    maintainers = [ maintainers.vbgl maintainers.jwiegley ];
-    platforms = coq.meta.platforms;
-    hydraPlatforms = [];
-  };
-
-}
diff --git a/pkgs/development/coq-modules/mathcomp/default.nix b/pkgs/development/coq-modules/mathcomp/default.nix
index 02d06edd538b..7c34e186717c 100644
--- a/pkgs/development/coq-modules/mathcomp/default.nix
+++ b/pkgs/development/coq-modules/mathcomp/default.nix
@@ -1,26 +1,24 @@
-{stdenv, fetchurl, coq, ssreflect}:
+{ callPackage, coq, fetchurl }:
 
-stdenv.mkDerivation {
+let src = 
+  if coq.coq-version == "8.4" then
 
-  name = "coq-mathcomp-1.5";
+    fetchurl {
+      url = http://ssr.msr-inria.inria.fr/FTP/mathcomp-1.5.tar.gz;
+      sha256 = "1297svwi18blrlyd8vsqilar2h5nfixlvlifdkbx47aljq4m5bam";
+    }
 
-  src = fetchurl {
-    url = http://ssr.msr-inria.inria.fr/FTP/mathcomp-1.5.tar.gz;
-    sha256 = "1297svwi18blrlyd8vsqilar2h5nfixlvlifdkbx47aljq4m5bam";
-  };
+  else if coq.coq-version == "8.5" then
 
-  propagatedBuildInputs = [ coq ssreflect ];
+    fetchurl {
+      url = http://ssr.msr-inria.inria.fr/FTP/mathcomp-1.5.coq85beta2.tar.gz;
+      sha256 = "03bnq44ym43x8shi7whc02l0g5vy6rx8f1imjw478chlgwcxazqy";
+    }
 
-  enableParallelBuilding = true;
+  else throw "No mathcomp package for Coq version ${coq.coq-version}";
 
-  installFlags = "COQLIB=$(out)/lib/coq/${coq.coq-version}/";
-
-  meta = with stdenv.lib; {
-    homepage = http://ssr.msr-inria.inria.fr/;
-    license = licenses.cecill-b;
-    maintainers = [ maintainers.vbgl maintainers.jwiegley ];
-    platforms = coq.meta.platforms;
-    hydraPlatforms = [];
-  };
+in
 
+callPackage ./generic.nix {
+  inherit src;
 }
diff --git a/pkgs/development/coq-modules/mathcomp/generic.nix b/pkgs/development/coq-modules/mathcomp/generic.nix
new file mode 100644
index 000000000000..56838734b6d3
--- /dev/null
+++ b/pkgs/development/coq-modules/mathcomp/generic.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, coq, ssreflect
+, graphviz, ocamlPackages, withDoc ? true
+, src
+}:
+
+stdenv.mkDerivation {
+
+  name = "coq-mathcomp-1.5-${coq.coq-version}";
+
+  inherit src;
+
+  nativeBuildInputs = stdenv.lib.optionals withDoc
+    ([ graphviz ] ++ (with ocamlPackages; [ ocaml camlp5_transitional ]));
+  propagatedBuildInputs = [ ssreflect ];
+
+  enableParallelBuilding = true;
+
+  buildFlags = stdenv.lib.optionalString withDoc "doc";
+
+  installFlags = "COQLIB=$(out)/lib/coq/${coq.coq-version}/";
+
+  postInstall = stdenv.lib.optionalString withDoc ''
+    make -f Makefile.coq install-doc DOCDIR=$out/share/coq/${coq.coq-version}/
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://ssr.msr-inria.inria.fr/;
+    license = licenses.cecill-b;
+    maintainers = [ maintainers.vbgl maintainers.jwiegley ];
+    platforms = coq.meta.platforms;
+  };
+
+}
diff --git a/pkgs/development/coq-modules/ssreflect/default.nix b/pkgs/development/coq-modules/ssreflect/default.nix
index 75112ec96639..a0b0d951c0df 100644
--- a/pkgs/development/coq-modules/ssreflect/default.nix
+++ b/pkgs/development/coq-modules/ssreflect/default.nix
@@ -1,40 +1,27 @@
-{stdenv, fetchurl, coq}:
+{ callPackage, fetchurl, coq }:
 
-assert coq.coq-version == "8.4";
+if coq.coq-version == "8.4" then
 
-stdenv.mkDerivation {
-
-  name = "coq-ssreflect-1.5";
+callPackage ./generic.nix {
 
   src = fetchurl {
     url = http://ssr.msr-inria.inria.fr/FTP/ssreflect-1.5.tar.gz;
     sha256 = "0hm1ha7sxqfqhc7iwhx6zdz3nki4rj5nfd3ab24hmz8v7mlpinds";
   };
 
-  buildInputs = [ coq.ocaml coq.camlp5 ];
-  propagatedBuildInputs = [ coq ];
-
-  enableParallelBuilding = true;
-
-  patchPhase = ''
-    # Permit building of the ssrcoq statically-bound executable
-    sed -i 's/^#-custom/-custom/' Make
-    sed -i 's/^#SSRCOQ/SSRCOQ/' Make
-  '';
+}
 
-  installFlags = "COQLIB=$(out)/lib/coq/${coq.coq-version}/";
+else if coq.coq-version == "8.5" then
 
-  postInstall = ''
-    mkdir -p $out/bin
-    cp -p bin/ssrcoq $out/bin
-    cp -p bin/ssrcoq.byte $out/bin
-  '';
+callPackage ./generic.nix {
 
-  meta = with stdenv.lib; {
-    homepage = http://ssr.msr-inria.inria.fr/;
-    license = licenses.cecill-b;
-    maintainers = with maintainers; [ vbgl jwiegley ];
-    platforms = coq.meta.platforms;
+  src = fetchurl {
+    url = http://ssr.msr-inria.inria.fr/FTP/ssreflect-1.5.coq85beta2.tar.gz;
+    sha256 = "084l9xd5vgb8jml0dkm66g8cil5rsf04w821pjhn2qk9mdbwaagf";
   };
 
+  patches = [ ./threads.patch ];
+
 }
+
+else throw "No ssreflect package for Coq version ${coq.coq-version}"
diff --git a/pkgs/development/coq-modules/ssreflect/1.5.nix b/pkgs/development/coq-modules/ssreflect/generic.nix
index 7c16b43ba8cb..e208f1cc25a8 100644
--- a/pkgs/development/coq-modules/ssreflect/1.5.nix
+++ b/pkgs/development/coq-modules/ssreflect/generic.nix
@@ -1,22 +1,21 @@
-{stdenv, fetchurl, coq}:
-
-assert coq.coq-version == "8.5";
+{ stdenv, fetchurl, coq
+, graphviz, withDoc ? true
+, src, patches ? []
+}:
 
 stdenv.mkDerivation {
 
-  name = "coq-ssreflect-1.5-8.5b2";
+  name = "coq-ssreflect-1.5-${coq.coq-version}";
 
-  src = fetchurl {
-    url = http://ssr.msr-inria.inria.fr/FTP/ssreflect-1.5.coq85beta2.tar.gz;
-    sha256 = "084l9xd5vgb8jml0dkm66g8cil5rsf04w821pjhn2qk9mdbwaagf";
-  };
+  inherit src;
 
+  nativeBuildInputs = stdenv.lib.optionals withDoc [ graphviz ];
   buildInputs = [ coq.ocaml coq.camlp5 ];
   propagatedBuildInputs = [ coq ];
 
   enableParallelBuilding = true;
 
-  patches = [ ./threads.patch ];
+  inherit patches;
 
   postPatch = ''
     # Permit building of the ssrcoq statically-bound executable
@@ -24,12 +23,17 @@ stdenv.mkDerivation {
     sed -i 's/^#SSRCOQ/SSRCOQ/' Make
   '';
 
+  buildFlags = stdenv.lib.optionalString withDoc "doc";
+
   installFlags = "COQLIB=$(out)/lib/coq/${coq.coq-version}/";
 
   postInstall = ''
     mkdir -p $out/bin
     cp -p bin/ssrcoq $out/bin
     cp -p bin/ssrcoq.byte $out/bin
+  '' + stdenv.lib.optionalString withDoc ''
+    mkdir -p $out/share/doc/coq/${coq.coq-version}/user-contrib/Ssreflect/
+    cp -r html $out/share/doc/coq/${coq.coq-version}/user-contrib/Ssreflect/
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/libasr/default.nix b/pkgs/development/libraries/libasr/default.nix
index b919aef5658c..2f4a122d61e8 100644
--- a/pkgs/development/libraries/libasr/default.nix
+++ b/pkgs/development/libraries/libasr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "libasr-${version}";
-  version=  "1.0.1";
+  version=  "1.0.2";
 
   src = fetchurl {
     url = "https://www.opensmtpd.org/archives/${name}.tar.gz";
-    sha256 = "10h1c9b58msbggns8k2m0857zmbldb0x8ghk3aay88yn2bip2916";
+    sha256 = "0d4blm0kzdhb75fq8sbcpvkc25lv5dbjaxa2ldniaf39633d3xd6";
   };
 
   buildInputs = [ libevent openssl ];
diff --git a/pkgs/development/libraries/liblaxjson/default.nix b/pkgs/development/libraries/liblaxjson/default.nix
new file mode 100644
index 000000000000..cafd6a66aa00
--- /dev/null
+++ b/pkgs/development/libraries/liblaxjson/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  version = "1.0.5";
+  name = "liblaxjson-${version}";
+
+  src = fetchFromGitHub {
+    owner = "andrewrk";
+    repo = "liblaxjson";
+    rev = "${version}";
+    sha256 = "01iqbpbhnqfifhv82m6hi8190w5sdim4qyrkss7z1zyv3gpchc5s";
+  };
+
+  buildInputs = [ cmake ];
+
+  meta = with stdenv.lib; {
+    description = "Library for parsing JSON config files";
+    homepage = https://github.com/andrewrk/liblaxjson;
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.andrewrk ];
+  };
+}
diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix
index 15e711b096bb..36cc4d55933d 100644
--- a/pkgs/development/libraries/ncurses/default.nix
+++ b/pkgs/development/libraries/ncurses/default.nix
@@ -107,5 +107,8 @@ stdenv.mkDerivation rec {
     maintainers = [ lib.maintainers.wkennington ];
   };
 
-  passthru.ldflags = "-lncurses";
+  passthru = {
+    ldflags = "-lncurses";
+    inherit unicode abiVersion;
+  };
 }
diff --git a/pkgs/development/libraries/openssl/1.0.2.x.nix b/pkgs/development/libraries/openssl/1.0.2.x.nix
index a1645189161a..944a531ae9c3 100644
--- a/pkgs/development/libraries/openssl/1.0.2.x.nix
+++ b/pkgs/development/libraries/openssl/1.0.2.x.nix
@@ -2,7 +2,7 @@
 , withCryptodev ? false, cryptodevHeaders }:
 
 let
-  name = "openssl-1.0.2a";
+  name = "openssl-1.0.2c";
 
   opensslCrossSystem = stdenv.lib.attrByPath [ "openssl" "system" ]
     (throw "openssl needs its platform name cross building" null)
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
       "http://www.openssl.org/source/${name}.tar.gz"
       "http://openssl.linux-mirror.org/source/${name}.tar.gz"
     ];
-    sha256 = "0jijgzf72659pikms2bc5w31h78xrd1h5zp2r01an2h340y3kdhm";
+    sha256 = "10vasdg52qiyqvgbp14n9z7ghglmhzvag9qpiz2nfqssycvvlf00";
   };
 
   patches = (patchesCross false) ++ extraPatches;
diff --git a/pkgs/development/libraries/tk/8.5.nix b/pkgs/development/libraries/tk/8.5.nix
new file mode 100644
index 000000000000..c3396dcdad22
--- /dev/null
+++ b/pkgs/development/libraries/tk/8.5.nix
@@ -0,0 +1,11 @@
+{ callPackage, fetchurl, tcl, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+
+  src = fetchurl {
+    url = "mirror://sourceforge/tcl/tk${tcl.version}-src.tar.gz";
+    sha256 = "0an3wqkjzlyyq6l9l3nawz76axsrsppbyylx0zk9lkv7llrala03";
+  };
+
+})
+
diff --git a/pkgs/development/libraries/tk/8.6.nix b/pkgs/development/libraries/tk/8.6.nix
new file mode 100644
index 000000000000..110151227bdd
--- /dev/null
+++ b/pkgs/development/libraries/tk/8.6.nix
@@ -0,0 +1,13 @@
+{ callPackage, fetchurl, tcl, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+
+  src = fetchurl {
+    url = "mirror://sourceforge/tcl/tk${tcl.version}-src.tar.gz";
+    sha256 = "1h96vp15zl5xz0d4qp6wjyrchqmrmdm3q5k22wkw9jaxbvw9vy88";
+  };
+
+  patches = [ ./different-prefix-with-tcl.patch ];
+
+})
+
diff --git a/pkgs/development/libraries/tk/default.nix b/pkgs/development/libraries/tk/generic.nix
index a847f848a02a..c3bab0b2f868 100644
--- a/pkgs/development/libraries/tk/default.nix
+++ b/pkgs/development/libraries/tk/generic.nix
@@ -1,14 +1,9 @@
-{ stdenv, fetchurl, pkgconfig, tcl, libXft, fontconfig }:
+{ stdenv, src, pkgconfig, tcl, libXft, fontconfig, patches ? [], ... }:
 
 stdenv.mkDerivation {
   name = "tk-${tcl.version}";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/tcl/tk${tcl.version}-src.tar.gz";
-    sha256 = "1h96vp15zl5xz0d4qp6wjyrchqmrmdm3q5k22wkw9jaxbvw9vy88";
-  };
-
-  patches = [ ./different-prefix-with-tcl.patch ];
+  inherit src patches;
 
   postInstall = ''
     ln -s $out/bin/wish* $out/bin/wish
diff --git a/pkgs/development/ocaml-modules/herelib/default.nix b/pkgs/development/ocaml-modules/herelib/default.nix
index fd955602844e..716e31b2bfe2 100644
--- a/pkgs/development/ocaml-modules/herelib/default.nix
+++ b/pkgs/development/ocaml-modules/herelib/default.nix
@@ -4,7 +4,7 @@ buildOcaml rec {
   version = "109.35.02";
   name = "herelib";
 
-  minimumSupportedOcamlVersion = "4.02";
+  minimumSupportedOcamlVersion = "4.00";
 
   src = fetchurl {
     url = "https://github.com/janestreet/herelib/archive/${version}.tar.gz";
diff --git a/pkgs/development/tools/misc/dialog/default.nix b/pkgs/development/tools/misc/dialog/default.nix
new file mode 100644
index 000000000000..d70f409f3430
--- /dev/null
+++ b/pkgs/development/tools/misc/dialog/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, ncurses, gettext
+, withLibrary ? false, libtool
+, unicodeSupport ? true
+}:
+
+let optional = stdenv.lib.optional;
+    optStr = stdenv.lib.optionalString;
+    buildShared = !stdenv.isDarwin;
+in
+
+assert withLibrary -> libtool != null;
+assert unicodeSupport -> ncurses.unicode && ncurses != null;
+
+stdenv.mkDerivation rec {
+  name = "dialog-${version}";
+  version = "1.2-20150225";
+
+  src = fetchurl {
+    url = "ftp://invisible-island.net/dialog/${name}.tgz";
+    sha256 = "6844b13a7a1fea568a8d5bb3004e1af90888cd4a5e8c2ded2c38f34fcc7397ff";
+  };
+
+  buildInputs = [ ncurses ];
+
+  configureFlags = ''
+    --disable-rpath-hacks
+    ${optStr withLibrary "--with-libtool"}
+    --with-libtool-opts=${optStr buildShared "-shared"}
+    --with-ncurses${optStr unicodeSupport "w"}
+  '';
+
+  installTargets = "install${optStr withLibrary "-full"}";
+
+  meta = {
+    homepage = http://invisible-island.net/dialog/dialog.html;
+    description = "Display dialog boxes from shell";
+    license = stdenv.lib.licenses.lgpl21Plus;
+    maintainers = [ stdenv.lib.maintainers.spacefrogg ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/tools/misc/strace/default.nix b/pkgs/development/tools/misc/strace/default.nix
index 43959c8a43c8..07e67b558d2f 100644
--- a/pkgs/development/tools/misc/strace/default.nix
+++ b/pkgs/development/tools/misc/strace/default.nix
@@ -15,6 +15,6 @@ stdenv.mkDerivation rec {
     description = "A system call tracer for Linux";
     license = licenses.bsd3;
     platforms = platforms.linux;
-    maintainers = [ maintainers.mornfall ];
+    maintainers = with maintainers; [ mornfall jgeerds ];
   };
 }
diff --git a/pkgs/development/tools/rucksack/default.nix b/pkgs/development/tools/rucksack/default.nix
new file mode 100644
index 000000000000..09008c9d63d8
--- /dev/null
+++ b/pkgs/development/tools/rucksack/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, liblaxjson, cmake, freeimage }:
+
+stdenv.mkDerivation rec {
+  version = "3.1.0";
+  name = "rucksack-${version}";
+
+  src = fetchFromGitHub {
+    owner = "andrewrk";
+    repo = "rucksack";
+    rev = "${version}";
+    sha256 = "0bcm20hqxqnq1j0zghb9i7z9frri6bbf7rmrv5g8dd626sq07vyv";
+  };
+
+  buildInputs = [ cmake liblaxjson freeimage ];
+
+  meta = with stdenv.lib; {
+    description = "Texture packer and resource bundler";
+    platforms = platforms.unix;
+    homepage = https://github.com/andrewrk/rucksack;
+    license = licenses.mit;
+    maintainers = [ maintainers.andrewrk ];
+  };
+}
diff --git a/pkgs/development/tools/vagrant/default.nix b/pkgs/development/tools/vagrant/default.nix
index 84bfcce541ac..16b6981fdb8c 100644
--- a/pkgs/development/tools/vagrant/default.nix
+++ b/pkgs/development/tools/vagrant/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     description = "A tool for building complete development environments";
     homepage    = http://vagrantup.com;
     license     = licenses.mit;
-    maintainers = with maintainers; [ lovek323 globin ];
+    maintainers = with maintainers; [ lovek323 globin jgeerds ];
     platforms   = platforms.linux;
   };
 
diff --git a/pkgs/games/bastet/default.nix b/pkgs/games/bastet/default.nix
index a729a5b014f3..682756c77871 100644
--- a/pkgs/games/bastet/default.nix
+++ b/pkgs/games/bastet/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     homepage = http://fph.altervista.org/prog/bastet.html;
     license = licenses.gpl3;
     maintainers = [ maintainers.dezgeg ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/games/steam/chrootenv.nix b/pkgs/games/steam/chrootenv.nix
index 1876e81dc315..96f409faef87 100644
--- a/pkgs/games/steam/chrootenv.nix
+++ b/pkgs/games/steam/chrootenv.nix
@@ -13,6 +13,7 @@ buildFHSUserEnv {
       pkgs.python
       pkgs.gnome2.zenity
       pkgs.xdg_utils
+      pkgs.xlibs.xrandr
     ]
     ++ lib.optional (config.steam.java or false) pkgs.jdk
     ++ lib.optional (config.steam.primus or false) pkgs.primus
diff --git a/pkgs/games/zandronum/bin.nix b/pkgs/games/zandronum/bin.nix
index 5d20686c2ae3..baf91a666229 100644
--- a/pkgs/games/zandronum/bin.nix
+++ b/pkgs/games/zandronum/bin.nix
@@ -17,6 +17,8 @@
 , zlib
 }:
 
+assert stdenv.system == "x86_64-linux";
+
 stdenv.mkDerivation rec {
   name = "zandronum-2.0";
   src = fetchurl {
diff --git a/pkgs/os-specific/linux/dstat/default.nix b/pkgs/os-specific/linux/dstat/default.nix
index c95532f13602..b12ed2ee6ec0 100644
--- a/pkgs/os-specific/linux/dstat/default.nix
+++ b/pkgs/os-specific/linux/dstat/default.nix
@@ -17,11 +17,11 @@ stdenv.mkDerivation rec {
 
   makeFlags = "prefix=$(out)";
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://dag.wieers.com/home-made/dstat/;
     description = "Versatile resource statistics tool";
-    license = stdenv.lib.licenses.gpl2;
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = [ ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ jgeerds ];
   };
 }
diff --git a/pkgs/os-specific/linux/kmod/default.nix b/pkgs/os-specific/linux/kmod/default.nix
index 1d190be71b8b..b5559e535ec5 100644
--- a/pkgs/os-specific/linux/kmod/default.nix
+++ b/pkgs/os-specific/linux/kmod/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, xz, zlib, pkgconfig, libxslt }:
 
 stdenv.mkDerivation rec {
-  name = "kmod-20";
+  name = "kmod-21";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/kernel/kmod/${name}.tar.xz";
-    sha256 = "186sz8b82n02yykza6a1q8fk80fl5gx0nr42wpmzjc9w36ia3hc9";
+    sha256 = "1h4m1mkknxcshsz1qbg9riszmynix2ikg7q8inq7bkvlmx4982hn";
   };
 
   # Disable xz/zlib support to prevent needing them in the initrd.
diff --git a/pkgs/os-specific/linux/lxc/default.nix b/pkgs/os-specific/linux/lxc/default.nix
index 8115aa1055be..1c6847cce822 100644
--- a/pkgs/os-specific/linux/lxc/default.nix
+++ b/pkgs/os-specific/linux/lxc/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, perl, docbook2x
-, docbook_xml_dtd_45, systemd
+, docbook_xml_dtd_45, systemd, wrapPython
 , libapparmor ? null, gnutls ? null, libseccomp ? null, cgmanager ? null
-, libnih ? null, dbus ? null, libcap ? null
+, libnih ? null, dbus ? null, libcap ? null, python3 ? null
 }:
 
 let
@@ -20,7 +20,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     autoreconfHook pkgconfig perl docbook2x systemd
-    libapparmor gnutls libseccomp cgmanager libnih dbus libcap
+    libapparmor gnutls libseccomp cgmanager libnih dbus libcap python3
+    wrapPython
   ];
 
   patches = [ ./support-db2x.patch ];
@@ -49,6 +50,8 @@ stdenv.mkDerivation rec {
     "LXCPATH=\${TMPDIR}/var/lib/lxc"
   ];
 
+  postInstall = "wrapPythonPrograms";
+
   meta = {
     homepage = "http://lxc.sourceforge.net";
     description = "userspace tools for Linux Containers, a lightweight virtualization system";
@@ -63,6 +66,6 @@ stdenv.mkDerivation rec {
     '';
 
     platforms = platforms.linux;
-    maintainers = with maintainers; [ simons wkennington ];
+    maintainers = with maintainers; [ simons wkennington globin ];
   };
 }
diff --git a/pkgs/os-specific/linux/procps-ng/default.nix b/pkgs/os-specific/linux/procps-ng/default.nix
index 9ecc0c5bcb57..7a810e9fff97 100644
--- a/pkgs/os-specific/linux/procps-ng/default.nix
+++ b/pkgs/os-specific/linux/procps-ng/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchurl, pkgconfig, ncurses, systemd }:
+{ lib, stdenv, fetchurl, ncurses }:
 
-stdenv.mkDerivation rec {
-  name = "procps-ng-3.3.10";
+stdenv.mkDerivation {
+  name = "procps-3.3.10";
 
   src = fetchurl {
-    url = "mirror://sourceforge/procps-ng/${name}.tar.xz";
+    url = mirror://sourceforge/procps-ng/procps-ng-3.3.10.tar.xz;
     sha256 = "013z4rzy3p5m1zp6mmynpblv0c6zlcn91pw4k2vymz2djyc6ybm0";
   };
 
-  buildInputs = [ pkgconfig ncurses systemd ];
+  buildInputs = [ ncurses ];
 
   makeFlags = "usrbin_execdir=$(out)/bin";
 
@@ -19,21 +19,13 @@ stdenv.mkDerivation rec {
   };
 
   # Too red
-  configureFlags = [
-    "--disable-modern-top"
-    "--enable-watch8bit"
-    "--with-systemd"
-    "--enable-skill"
-    "--enable-oomem"
-    "--enable-sigwinch"
-  ];
-
-  meta = with stdenv.lib; {
+  configureFlags = [ "--disable-modern-top" ];
+
+  meta = {
     homepage = http://sourceforge.net/projects/procps-ng/;
     description = "Utilities that give information about processes using the /proc filesystem";
     priority = 10; # less than coreutils, which also provides "kill" and "uptime"
-    maintainers = with maintainers; [ wkennington ];
-    license = licenses.gpl2;
-    platforms = platforms.linux;
+    license = lib.licenses.gpl2;
+    platforms = lib.platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/wpa_supplicant/default.nix b/pkgs/os-specific/linux/wpa_supplicant/default.nix
index d18dbcbd49dc..ccfe396bf554 100644
--- a/pkgs/os-specific/linux/wpa_supplicant/default.nix
+++ b/pkgs/os-specific/linux/wpa_supplicant/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
     CONFIG_IEEE80211W=y
     CONFIG_TLS=openssl
     CONFIG_TLSV11=y
-    CONFIG_TLSV12=y
+    #CONFIG_TLSV12=y see #8332
     CONFIG_IEEE80211R=y
     CONFIG_DEBUG_SYSLOG=y
     #CONFIG_PRIVSEP=y
diff --git a/pkgs/servers/dns/skydns/default.nix b/pkgs/servers/dns/skydns/default.nix
index ba311918c71e..054c5c422e1c 100644
--- a/pkgs/servers/dns/skydns/default.nix
+++ b/pkgs/servers/dns/skydns/default.nix
@@ -4,15 +4,15 @@ with goPackages;
 
 buildGoPackage rec {
   name = "skydns-${version}";
-  version = "2.1.0a";
+  version = "2.5.0a";
 
   goPackagePath = "github.com/skynetservices/skydns";
 
   src = fetchFromGitHub {
     owner = "skynetservices";
     repo = "skydns";
-    rev = "f5141ee69309fb4c542d5a0b50fc7616370c5c06";
-    sha256 = "1bnc9r22kwvmn1bgz7zaidkjqm7pmw99bn5n87r76vcrd7n2a9pd";
+    rev = version;
+    sha256 = "18mw8bcz54i4yrv6pc73s3ffcj1vv9cwnn76c9k0bj1mxp1pmdl2";
   };
 
   buildInputs = with goPackages; [ go-etcd rcrowley.go-metrics influxdb go-systemd go-log dns stathat osext etcd ];
diff --git a/pkgs/shells/ipython/default.nix b/pkgs/shells/ipython/default.nix
index a9c672471a80..f53bed62e442 100644
--- a/pkgs/shells/ipython/default.nix
+++ b/pkgs/shells/ipython/default.nix
@@ -52,6 +52,6 @@ buildPythonPackage rec {
       enhanced interactive Python shell and an architecture for
       interactive parallel computing.
     '';
-    maintainers = [ stdenv.lib.maintainers.bjornfor ];
+    maintainers = with stdenv.lib.maintainers; [ bjornfor jgeerds ];
   };
 }
diff --git a/pkgs/tools/X11/ckbcomp/default.nix b/pkgs/tools/X11/ckbcomp/default.nix
new file mode 100644
index 000000000000..90eaef73e165
--- /dev/null
+++ b/pkgs/tools/X11/ckbcomp/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchgit, perl, xkeyboard_config }:
+
+stdenv.mkDerivation rec {
+  name = "ckbcomp-${version}";
+  version = "1.129";
+
+  src = fetchgit {
+    url = "git://anonscm.debian.org/d-i/console-setup.git";
+    rev = "refs/tags/${version}";
+    sha256 = "1shbqnjhdmy7qwz2kwfhrdxbjw1vv98rpz1x7wlgqxr812aqcfdd";
+  };
+
+  buildInputs = [ perl ];
+
+  patchPhase = ''
+    substituteInPlace Keyboard/ckbcomp --replace "/usr/share/X11/xkb" "${xkeyboard_config}/share/X11/xkb"
+    substituteInPlace Keyboard/ckbcomp --replace "rules = 'xorg'" "rules = 'base'"
+  '';
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p "$out"/bin
+    cp Keyboard/ckbcomp "$out"/bin/
+    mkdir -p "$out"/share/man/man1
+    cp man/ckbcomp.1 "$out"/share/man/man1
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Compiles a XKB keyboard description to a keymap suitable for loadkeys";
+    homepage = http://anonscm.debian.org/cgit/d-i/console-setup.git;
+    license = licenses.gpl2Plus;
+    maintainers = with stdenv.lib.maintainers; [ dezgeg ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/backup/attic/default.nix b/pkgs/tools/backup/attic/default.nix
index fba7a28eded9..e04281936870 100644
--- a/pkgs/tools/backup/attic/default.nix
+++ b/pkgs/tools/backup/attic/default.nix
@@ -1,13 +1,14 @@
 { stdenv, fetchzip, python3Packages, openssl, acl }:
 
 python3Packages.buildPythonPackage rec {
-  name = "attic-0.15";
+  name = "attic-${version}";
+  version = "0.16";
   namePrefix = "";
 
   src = fetchzip {
     name = "${name}-src";
-    url = "https://github.com/jborg/attic/archive/0.15.tar.gz";
-    sha256 = "0c5rsxxcg897a619cbv75hzi1ahpkym8dccf6y3jlcs98z11vm5d";
+    url = "https://github.com/jborg/attic/archive/${version}.tar.gz";
+    sha256 = "008566hhsd3ck70ql0fdn4vaqjfcnf493gwd49d6294f8r7qn06z";
   };
 
   propagatedBuildInputs = with python3Packages;
@@ -18,8 +19,8 @@ python3Packages.buildPythonPackage rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "A deduplication backup program";
-    homepage = "https://attic-backup.org";
+    description = "A deduplicating backup program";
+    homepage = https://attic-backup.org;
     license = licenses.bsd3;
     maintainers = [ maintainers.wscott ];
     platforms = platforms.unix; # Darwin and FreeBSD mentioned on homepage
diff --git a/pkgs/tools/filesystems/sshfs-fuse/default.nix b/pkgs/tools/filesystems/sshfs-fuse/default.nix
index 98cf3c533ae7..d1e33098a94f 100644
--- a/pkgs/tools/filesystems/sshfs-fuse/default.nix
+++ b/pkgs/tools/filesystems/sshfs-fuse/default.nix
@@ -14,9 +14,10 @@ stdenv.mkDerivation rec {
     ln -sf $out/bin/sshfs $out/sbin/mount.sshfs
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://fuse.sourceforge.net/sshfs.html;
     description = "FUSE-based filesystem that allows remote filesystems to be mounted over SSH";
-    platforms = stdenv.lib.platforms.linux;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ jgeerds ];
   };
 }
diff --git a/pkgs/tools/graphics/maim/default.nix b/pkgs/tools/graphics/maim/default.nix
new file mode 100644
index 000000000000..425fa5fb6cd2
--- /dev/null
+++ b/pkgs/tools/graphics/maim/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, cmake, gengetopt, imlib2, libXrandr, libXfixes
+, cppcheck}:
+
+stdenv.mkDerivation rec {
+  name = "maim-${version}";
+  version = "3.3.41";
+
+  src = fetchurl {
+    url = "https://github.com/naelstrof/maim/archive/v${version}.tar.gz";
+    sha256 = "12p9zd4skxds26hicy6hrxkxnhbqv1c5ys1h6jchaypvwdggcgnc";
+  };
+
+  buildInputs = [ cmake gengetopt imlib2 libXrandr libXfixes ]
+                ++ stdenv.lib.optional doCheck cppcheck;
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/naelstrof/maim;
+    description = "A command-line screenshot utility";
+    longDescription = ''
+      maim (make image) takes screenshots of your desktop. It has options to
+      take only a region, and relies on slop to query for regions. maim is
+      supposed to be an improved scrot.
+    '';
+    platforms = stdenv.lib.platforms.all;
+    license = stdenv.lib.licenses.gpl3Plus;
+    maintainers = with maintainers; [ mbakke ];
+  };
+}
diff --git a/pkgs/tools/inputmethods/ibus-table-others/default.nix b/pkgs/tools/inputmethods/ibus-table-others/default.nix
new file mode 100644
index 000000000000..f356bcdee85d
--- /dev/null
+++ b/pkgs/tools/inputmethods/ibus-table-others/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, ibus, ibus-table, pkgconfig, python3 }:
+
+stdenv.mkDerivation rec {
+  name = "ibus-table-others-${version}";
+  version = "1.3.7";
+
+  src = fetchurl {
+    url = "https://github.com/moebiuscurve/ibus-table-others/releases/download/${version}/${name}.tar.gz";
+    sha256 = "0vmz82il796062jbla5pawsr5dqyhs7ald7xjp84zfccc09dg9kx";
+  };
+
+  buildInputs = [ ibus ibus-table pkgconfig python3 ];
+
+  preBuild = ''
+    export HOME=/tmp/ibus-table-others
+  '';
+
+  postFixup = ''
+    rm -rf /tmp/ibus-table-others
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Various table-based input methods for IBus";
+    homepage    = https://github.com/moebiuscurve/ibus-table-others;
+    license     = licenses.gpl3;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ mudri ];
+  };
+}
diff --git a/pkgs/tools/inputmethods/ibus-table/default.nix b/pkgs/tools/inputmethods/ibus-table/default.nix
new file mode 100644
index 000000000000..58b890b0c929
--- /dev/null
+++ b/pkgs/tools/inputmethods/ibus-table/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, ibus, pkgconfig, python3, pythonPackages }:
+
+stdenv.mkDerivation rec {
+  name = "ibus-table-${version}";
+  version = "1.9.6";
+
+  src = fetchurl {
+    url = "https://github.com/kaio/ibus-table/releases/download/${version}/${name}.tar.gz";
+    sha256 = "0xygfscmsx0x80c4d4v40k9bc7831kgdsc74mc84ljxbjg9p9lcf";
+  };
+
+  buildInputs = [ ibus pkgconfig python3 pythonPackages.pygobject3 ];
+
+  meta = with stdenv.lib; {
+    description = "An IBus framework for table-based input methods";
+    homepage    = https://github.com/kaio/ibus-table/wiki;
+    license     = licenses.lgpl21;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ mudri ];
+  };
+}
diff --git a/pkgs/tools/misc/asciinema/default.nix b/pkgs/tools/misc/asciinema/default.nix
new file mode 100644
index 000000000000..626fb5c2321e
--- /dev/null
+++ b/pkgs/tools/misc/asciinema/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchFromGitHub, goPackages }:
+
+goPackages.buildGoPackage rec {
+  name = "asciinema-${version}";
+  version = "1.1.1";
+
+  goPackagePath = "github.com/asciinema/asciinema";
+
+  src = fetchFromGitHub {
+    owner = "asciinema";
+    repo = "asciinema";
+    rev = "d6f7cabcd085e237872f13d0ab5580964cb64fb2";
+    sha256 = "0ip7wcqzf5wax99c1fjmnwd38q88z1xiyv9cfbjyk47npdqb8173";
+  };
+
+  meta = {
+    homepage = https://asciinema.org/;
+    license = stdenv.lib.licenses.gpl3;
+    description = "Terminal session recorder";
+    maintainers = with stdenv.lib.maintainers; [ lassulus ];
+  };
+}
diff --git a/pkgs/tools/misc/detox/default.nix b/pkgs/tools/misc/detox/default.nix
index 65a0047738bc..bdc018aec34a 100644
--- a/pkgs/tools/misc/detox/default.nix
+++ b/pkgs/tools/misc/detox/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation {
 
   buildInputs = [flex];
 
-  meta = {
+  meta = with stdenv.lib; {
+    homepage = http://detox.sourceforge.net/;
     description = "Utility designed to clean up filenames";
     longDescription = ''
       Detox is a utility designed to clean up filenames. It replaces
@@ -18,7 +19,8 @@ stdenv.mkDerivation {
       equivalents. It will also clean up filenames with UTF-8 or Latin-1
       (or CP-1252) characters in them.
     '';
-    homepage = "http://detox.sourceforge.net/";
-    license = stdenv.lib.licenses.bsd3;
+    license = licenses.bsd3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ jgeerds ];
   };
 }
diff --git a/pkgs/tools/misc/i3minator/default.nix b/pkgs/tools/misc/i3minator/default.nix
index 02b804936549..0c3907b89bfe 100644
--- a/pkgs/tools/misc/i3minator/default.nix
+++ b/pkgs/tools/misc/i3minator/default.nix
@@ -1,19 +1,6 @@
 { stdenv, fetchurl, buildPythonPackage, pythonPackages, python }:
 
-let
-  i3-py = buildPythonPackage rec {
-    version = "0.6.4";
-    name = "i3-py-${version}";
-
-    src = fetchurl {
-      url = "https://pypi.python.org/packages/source/i/i3-py/i3-py-${version}.tar.gz";
-      sha256 = "1sgl438jrb4cdyl7hbc3ymwsf7y3zy09g1gh7ynilxpllp37jc8y";
-    };
-
-    # no tests in tarball
-    doCheck = false;
-  };
-in buildPythonPackage rec {
+buildPythonPackage rec {
   name = "i3minator-${version}";
   version = "0.0.4";
 
@@ -22,7 +9,7 @@ in buildPythonPackage rec {
     sha256 = "11dn062788kwfs8k2ry4v8zr2gn40r6lsw770s9g2gvhl5n469dw";
   };
 
-  propagatedBuildInputs = [ pythonPackages.pyyaml i3-py ];
+  propagatedBuildInputs = [ pythonPackages.pyyaml pythonPackages.i3-py ];
 
   meta = with stdenv.lib; {
     description = "i3 project manager similar to tmuxinator";
diff --git a/pkgs/tools/misc/pv/default.nix b/pkgs/tools/misc/pv/default.nix
index a2d8c535d063..8a3aa08abb78 100644
--- a/pkgs/tools/misc/pv/default.nix
+++ b/pkgs/tools/misc/pv/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     homepage = http://www.ivarch.com/programs/pv;
     description = "Tool for monitoring the progress of data through a pipeline";
     license = stdenv.lib.licenses.artistic2;
-    maintainers = with stdenv.lib.maintainers; [viric];
+    maintainers = with stdenv.lib.maintainers; [ viric jgeerds ];
     platforms = with stdenv.lib.platforms; all;
   };
 }
diff --git a/pkgs/tools/misc/rockbox-utility/default.nix b/pkgs/tools/misc/rockbox-utility/default.nix
index eac12bae381e..c9c0cf6949f8 100644
--- a/pkgs/tools/misc/rockbox-utility/default.nix
+++ b/pkgs/tools/misc/rockbox-utility/default.nix
@@ -26,6 +26,6 @@ stdenv.mkDerivation  rec {
     homepage = http://www.rockbox.org;
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = [ maintainers.goibhniu ];
+    maintainers = with maintainers; [ goibhniu jgeerds ];
   };
 }
diff --git a/pkgs/tools/misc/screen/default.nix b/pkgs/tools/misc/screen/default.nix
index e8a39623d9a6..d329106b979e 100644
--- a/pkgs/tools/misc/screen/default.nix
+++ b/pkgs/tools/misc/screen/default.nix
@@ -45,6 +45,6 @@ stdenv.mkDerivation rec {
       '';
 
     platforms = stdenv.lib.platforms.unix;
-    maintainers = [ stdenv.lib.maintainers.simons ];
+    maintainers = with stdenv.lib.maintainers; [ simons jgeerds ];
   };
 }
diff --git a/pkgs/tools/misc/slop/default.nix b/pkgs/tools/misc/slop/default.nix
new file mode 100644
index 000000000000..62ec5ab2d63e
--- /dev/null
+++ b/pkgs/tools/misc/slop/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, cmake, gengetopt, libX11, libXext, cppcheck}:
+
+stdenv.mkDerivation rec {
+  name = "slop-${version}";
+  version = "4.1.15";
+
+  src = fetchurl {
+    url = "https://github.com/naelstrof/slop/archive/v${version}.tar.gz";
+    sha256 = "e20fd47de898abcb537c8100faed859eef4955d7784dbc52470570dae403f02e";
+  };
+
+  buildInputs = [ cmake gengetopt libX11 libXext ]
+                ++ stdenv.lib.optional doCheck cppcheck;
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/naelstrof/slop;
+    description = "Queries a selection from the user and prints to stdout";
+    platforms = stdenv.lib.platforms.all;
+    license = stdenv.lib.licenses.gpl3Plus;
+    maintainers = with maintainers; [ mbakke ];
+  };
+}
diff --git a/pkgs/tools/misc/stow/default.nix b/pkgs/tools/misc/stow/default.nix
index a6afe475e3bd..a9d8554525bd 100644
--- a/pkgs/tools/misc/stow/default.nix
+++ b/pkgs/tools/misc/stow/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation {
     license = stdenv.lib.licenses.gpl3Plus;
     homepage = http://www.gnu.org/software/stow/;
 
-    maintainers = with stdenv.lib.maintainers; [ the-kenny ];
+    maintainers = with stdenv.lib.maintainers; [ the-kenny jgeerds ];
     platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/tools/networking/dnscrypt-proxy/default.nix b/pkgs/tools/networking/dnscrypt-proxy/default.nix
index 11dadf9dcd87..e975cb1e7382 100644
--- a/pkgs/tools/networking/dnscrypt-proxy/default.nix
+++ b/pkgs/tools/networking/dnscrypt-proxy/default.nix
@@ -1,11 +1,12 @@
 { stdenv, fetchurl, libsodium }:
 
 stdenv.mkDerivation rec {
-  name = "dnscrypt-proxy-1.4.3";
+  name = "dnscrypt-proxy-${version}";
+  version = "1.5.0";
 
   src = fetchurl {
     url = "http://download.dnscrypt.org/dnscrypt-proxy/${name}.tar.bz2";
-    sha256 = "0cij80ryxnikpmm6s79c2fqg6bdiz1wdy50xrnd7w954vw9mhr0b";
+    sha256 = "1cp3ivxngrihil6i7b659d39v9v6iwjs16s2kj9wz1anzyx0j6nx";
   };
 
   buildInputs = [ libsodium ];
@@ -14,7 +15,7 @@ stdenv.mkDerivation rec {
     description = "A tool for securing communications between a client and a DNS resolver";
     homepage = http://dnscrypt.org/;
     license = stdenv.lib.licenses.isc;
-    maintainers = with stdenv.lib.maintainers; [ joachifm ];
+    maintainers = with stdenv.lib.maintainers; [ joachifm jgeerds ];
     platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/tools/networking/dnsmasq/default.nix b/pkgs/tools/networking/dnsmasq/default.nix
index 8883334fe6d7..7752338c6bb2 100644
--- a/pkgs/tools/networking/dnsmasq/default.nix
+++ b/pkgs/tools/networking/dnsmasq/default.nix
@@ -1,5 +1,15 @@
-{ pkgconfig, dbus_libs, nettle, stdenv, fetchurl }:
-
+{ stdenv, fetchurl, pkgconfig, dbus_libs, nettle, libidn, libnetfilter_conntrack }:
+
+with stdenv.lib;
+let
+  copts = concatStringsSep " " ([
+    "-DHAVE_DBUS"
+    "-DHAVE_IDN"
+    "-DHAVE_DNSSEC"
+  ] ++ optionals stdenv.isLinux [
+    "-DHAVE_CONNTRACK"
+  ]);
+in
 stdenv.mkDerivation rec {
   name = "dnsmasq-2.73";
 
@@ -8,13 +18,16 @@ stdenv.mkDerivation rec {
     sha256 = "1xnqfaw2l78f4zw4z9sgr9nl9yc233gxc3sd7hxapz2k7q883zqb";
   };
 
-  # Can't rely on make flags because of space in one of the parameters
-  buildPhase = ''
-    make COPTS="-DHAVE_DNSSEC -DHAVE_DBUS"
+  preBuild = ''
+    makeFlagsArray=("COPTS=${copts}")
   '';
 
-  # make flags used for installation only
-  makeFlags = "DESTDIR= BINDIR=$(out)/bin MANDIR=$(out)/man LOCALEDIR=$(out)/share/locale";
+  makeFlags = [
+    "DESTDIR="
+    "BINDIR=$(out)/bin"
+    "MANDIR=$(out)/man"
+    "LOCALEDIR=$(out)/share/locale"
+  ];
 
   postInstall = ''
     install -Dm644 dbus/dnsmasq.conf $out/etc/dbus-1/system.d/dnsmasq.conf
@@ -24,15 +37,17 @@ stdenv.mkDerivation rec {
     cat <<END > $out/share/dbus-1/system-services/uk.org.thekelleys.dnsmasq.service
     [D-BUS Service]
     Name=uk.org.thekelleys.dnsmasq
-    Exec=$out/sbin/dnsmasq -k -1
+    Exec=$out/bin/dnsmasq -k -1
     User=root
     SystemdService=dnsmasq.service
     END
   '';
 
-  buildInputs = [ pkgconfig dbus_libs nettle ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ dbus_libs nettle libidn ]
+    ++ optional stdenv.isLinux libnetfilter_conntrack;
 
-  meta = with stdenv.lib; {
+  meta = {
     description = "An integrated DNS, DHCP and TFTP server for small networks";
     homepage = http://www.thekelleys.org.uk/dnsmasq/doc.html;
     license = licenses.gpl2;
diff --git a/pkgs/tools/networking/tcpdump/default.nix b/pkgs/tools/networking/tcpdump/default.nix
index 4edfdf6af1ec..a50fad8b3744 100644
--- a/pkgs/tools/networking/tcpdump/default.nix
+++ b/pkgs/tools/networking/tcpdump/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     description = "Network sniffer";
     homepage = http://www.tcpdump.org/;
     license = "BSD-style";
-    maintainers = [ stdenv.lib.maintainers.mornfall ];
+    maintainers = with stdenv.lib.maintainers; [ mornfall jgeerds ];
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/wolfebin/default.nix b/pkgs/tools/networking/wolfebin/default.nix
new file mode 100644
index 000000000000..05bf8d5dd11c
--- /dev/null
+++ b/pkgs/tools/networking/wolfebin/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, python }:
+
+stdenv.mkDerivation rec {
+  version = "5.4";
+  name = "wolfebin-${version}";
+  
+  src = fetchFromGitHub {
+    owner = "thejoshwolfe";
+    repo = "wolfebin";
+    rev = "${version}";
+    sha256 = "16xj6zz30sn9q05p211bmmsl0i6fknfxf8dssn6knm6nkiym8088";
+  };
+
+  buildInputs = [ python ];
+
+  installPhase = ''
+    install -m 755 -d $out/bin
+    install -m 755 wolfebin $out/bin
+    install -m 755 wolfebin_server.py $out/bin/wolfebin_server
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/thejoshwolfe/wolfebin;
+    description = "Quick and easy file sharing";
+    license = licenses.mit;
+    maintainers = [ maintainers.andrewrk ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/tools/security/kpcli/default.nix b/pkgs/tools/security/kpcli/default.nix
index ca3cad5129ed..58ea52bc4c08 100644
--- a/pkgs/tools/security/kpcli/default.nix
+++ b/pkgs/tools/security/kpcli/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, makeWrapper, perl, perlPackages }:
 
 stdenv.mkDerivation rec {
-  version = "2.8";
+  version = "3.0";
   name = "kpcli-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/kpcli/${name}.pl";
-    sha256 = "1vmj131ii3skm1dx0pmcvq19h6a94a2vjldmqlf1b3dxjvz1ld91";
+    sha256 = "1704b412f8h9cls85xcpqm9k4n5vga26r4xq9ghp4pr1hl27nywl";
   };
 
   buildInputs = [ makeWrapper perl ];
diff --git a/pkgs/tools/security/pinentry/default.nix b/pkgs/tools/security/pinentry/default.nix
index b4ff0b77f385..6c87d8062eca 100644
--- a/pkgs/tools/security/pinentry/default.nix
+++ b/pkgs/tools/security/pinentry/default.nix
@@ -10,11 +10,11 @@ let
 in
 with stdenv.lib;
 stdenv.mkDerivation rec {
-  name = "pinentry-0.9.1";
+  name = "pinentry-0.9.4";
 
   src = fetchurl {
     url = "mirror://gnupg/pinentry/${name}.tar.bz2";
-    sha256 = "15cn7q6wg3k433l9ks48pz4dbikp7ysp0h8jqynz6p9rdf2qxl4w";
+    sha256 = "1q72ir9r9j70px61rdpd80an56k4ixmzy810nr14aildffxkb22b";
   };
 
   buildInputs = [ libcap gtk2 ncurses qt4 ];
diff --git a/pkgs/tools/system/logrotate/default.nix b/pkgs/tools/system/logrotate/default.nix
index 771de9205a93..af7e4543579f 100644
--- a/pkgs/tools/system/logrotate/default.nix
+++ b/pkgs/tools/system/logrotate/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, gzip, popt }:
 
 stdenv.mkDerivation rec {
-  name = "logrotate-3.8.9";
+  name = "logrotate-3.9.1";
 
   src = fetchurl {
     url = "https://fedorahosted.org/releases/l/o/logrotate/${name}.tar.gz";
-    sha256 = "19yzs7gc8ixr6iqq22n5gbixmvzsgmwp96kp4jiwr8bjj37df3kh";
+    sha256 = "0i95qnacv5wf7kfkcpi38ys3i14fr01ifhm8b4ari04c53inj9q2";
   };
 
   # Logrotate wants to access the 'mail' program; to be done.
diff --git a/pkgs/tools/system/lshw/default.nix b/pkgs/tools/system/lshw/default.nix
index e9d8e8aabd90..02b331a36deb 100644
--- a/pkgs/tools/system/lshw/default.nix
+++ b/pkgs/tools/system/lshw/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     homepage = http://ezix.org/project/wiki/HardwareLiSter;
     description = "Provide detailed information on the hardware configuration of the machine";
     license = licenses.gpl2;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = with maintainers; [ phreedom jgeerds ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/system/stress-ng/default.nix b/pkgs/tools/system/stress-ng/default.nix
index af09b7af0308..74410426010e 100644
--- a/pkgs/tools/system/stress-ng/default.nix
+++ b/pkgs/tools/system/stress-ng/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, attr }:
 
-let version = "0.04.06"; in
+let version = "0.04.07"; in
 stdenv.mkDerivation rec {
   name = "stress-ng-${version}";
 
   src = fetchurl {
-    sha256 = "1iwl16gzxl1gq7gkn6pwhk6ss641n11wgf37yd47jcdr5pac6z9s";
+    sha256 = "0yzh0lkjll4qwhgjlrji9n9qps4nmh10240nsyqkgr4yv3my9fi0";
     url = "http://kernel.ubuntu.com/~cking/tarballs/stress-ng/${name}.tar.gz";
   };
 
diff --git a/pkgs/tools/text/silver-searcher/default.nix b/pkgs/tools/text/silver-searcher/default.nix
index ae3bb94fb902..fbd33ce68da6 100644
--- a/pkgs/tools/text/silver-searcher/default.nix
+++ b/pkgs/tools/text/silver-searcher/default.nix
@@ -1,24 +1,25 @@
-{stdenv, fetchgit, autoreconfHook, pkgconfig, pcre, zlib, lzma}:
+{stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, pcre, zlib, lzma}:
 
-let release = "0.29.1"; in
-stdenv.mkDerivation {
-  name = "silver-searcher-${release}";
+stdenv.mkDerivation rec {
+  name = "silver-searcher-${version}";
+  version = "0.30.0";
 
-  src = fetchgit {
-    url = "https://github.com/ggreer/the_silver_searcher.git";
-    rev = "refs/tags/${release}";
-    sha256 = "05508c2714d356464a0de6f41a6a8408ccd861b967e968302c4b72feade89581";
+  src = fetchFromGitHub {
+    owner = "ggreer";
+    repo = "the_silver_searcher";
+    rev = "${version}";
+    sha256 = "07fz0hyisy3kisisxy558lfmmjdxq03x5ljdfxfkpw0xbfwgz14j";
   };
 
   NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
 
   buildInputs = [ autoreconfHook pkgconfig pcre zlib lzma ];
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = https://github.com/ggreer/the_silver_searcher/;
     description = "A code-searching tool similar to ack, but faster";
-    maintainers = [ stdenv.lib.maintainers.madjar ];
-    platforms = stdenv.lib.platforms.all;
-    license = stdenv.lib.licenses.asl20;
+    maintainers = with maintainers; [ madjar jgeerds ];
+    platforms = platforms.all;
+    license = licenses.asl20;
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 68bfd571ce4c..0c436808c785 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -280,6 +280,8 @@ let
     runScript = args.runScript;
   };
 
+  buildMaven = callPackage ../build-support/build-maven.nix {};
+
   dotnetenv = import ../build-support/dotnetenv {
     inherit stdenv;
     dotnetfx = dotnetfx40;
@@ -586,6 +588,8 @@ let
 
   ascii = callPackage ../tools/text/ascii { };
 
+  asciinema = callPackage ../tools/misc/asciinema { };
+
   asymptote = callPackage ../tools/graphics/asymptote {
     texLive = texLiveAggregationFun {
       paths = [ texLive texLiveExtra texLiveCMSuper ];
@@ -779,6 +783,8 @@ let
 
   ccnet = callPackage ../tools/networking/ccnet { };
 
+  ckbcomp = callPackage ../tools/X11/ckbcomp { };
+
   cli53 = callPackage ../tools/admin/cli53 { };
 
   cloud-init = callPackage ../tools/virtualization/cloud-init { };
@@ -823,6 +829,8 @@ let
     inherit (haskellngPackages) ghcWithPackages diagrams-builder;
   };
 
+  dialog = callPackage ../development/tools/misc/dialog { };
+
   direnv = callPackage ../tools/misc/direnv { };
 
   discount = callPackage ../tools/text/discount { };
@@ -1104,6 +1112,10 @@ let
 
   ibus-anthy = callPackage ../tools/inputmethods/ibus-anthy { };
 
+  ibus-table = callPackage ../tools/inputmethods/ibus-table { };
+
+  ibus-table-others = callPackage ../tools/inputmethods/ibus-table-others { };
+
   biosdevname = callPackage ../tools/networking/biosdevname { };
 
   checkbashism = callPackage ../development/tools/misc/checkbashisms { };
@@ -2049,7 +2061,9 @@ let
 
   lshw = callPackage ../tools/system/lshw { };
 
-  lxc = callPackage ../os-specific/linux/lxc { };
+  lxc = callPackage ../os-specific/linux/lxc {
+    wrapPython = python3Packages.wrapPython;
+  };
 
   lzip = callPackage ../tools/compression/lzip { };
 
@@ -2077,6 +2091,8 @@ let
     guile = guile_1_8;
   };
 
+  maim = callPackage ../tools/graphics/maim {};
+
   mairix = callPackage ../tools/text/mairix { };
 
   makemkv = callPackage ../applications/video/makemkv { };
@@ -3183,6 +3199,10 @@ let
 
   welkin = callPackage ../tools/graphics/welkin {};
 
+  wolfebin = callPackage ../tools/networking/wolfebin {
+    python = python2;
+  };
+
   xl2tpd = callPackage ../tools/networking/xl2tpd { };
 
   testdisk = callPackage ../tools/misc/testdisk { };
@@ -6464,6 +6484,10 @@ let
     lua = lua5_1;
   };
 
+  k9copy = callPackage ../applications/video/k9copy {
+    kf5 = kf510;
+  };
+
   keybinder3 = callPackage ../development/libraries/keybinder3 {
     automake = automake111x;
   };
@@ -6718,6 +6742,8 @@ let
 
   libLAS = callPackage ../development/libraries/libLAS { };
 
+  liblaxjson = callPackage ../development/libraries/liblaxjson { };
+
   liblo = callPackage ../development/libraries/liblo { };
 
   liblrdf = librdf;
@@ -8027,7 +8053,10 @@ let
 
   tinyxml2 = callPackage ../development/libraries/tinyxml/2.6.2.nix { };
 
-  tk = callPackage ../development/libraries/tk { };
+  tk = tk-8_6;
+
+  tk-8_6 = callPackage ../development/libraries/tk/8.6.nix { };
+  tk-8_5 = callPackage ../development/libraries/tk/8.5.nix { tcl = tcl-8_5; };
 
   tnt = callPackage ../development/libraries/tnt { };
 
@@ -10537,6 +10566,8 @@ let
     gtk = gtk3;
   };
 
+  bluejeans = callPackage ../applications/networking/browsers/mozilla-plugins/bluejeans { };
+
   bristol = callPackage ../applications/audio/bristol { };
 
   bspwm = callPackage ../applications/window-managers/bspwm { };
@@ -12323,6 +12354,8 @@ let
 
   slmenu = callPackage ../applications/misc/slmenu {};
 
+  slop = callPackage ../tools/misc/slop {};
+
   slrn = callPackage ../applications/networking/newsreaders/slrn { };
 
   sooperlooper = callPackage ../applications/audio/sooperlooper { };
@@ -12480,7 +12513,9 @@ let
   # linux only by now
   synergy = callPackage ../applications/misc/synergy { };
 
-  tabbed = callPackage ../applications/window-managers/tabbed { };
+  tabbed = callPackage ../applications/window-managers/tabbed {
+    enableXft = true;
+  };
 
   tagainijisho = callPackage ../applications/office/tagainijisho {};
 
@@ -12503,6 +12538,8 @@ let
 
   taskjuggler = callPackage ../applications/misc/taskjuggler { };
 
+  tasknc = callPackage ../applications/misc/tasknc { };
+
   taskwarrior = callPackage ../applications/misc/taskwarrior { };
 
   taskserver = callPackage ../servers/misc/taskserver { };
@@ -12862,6 +12899,7 @@ let
           ++ lib.optional (cfg.enableFriBIDPlugin or false) fribid
           ++ lib.optional (cfg.enableGnomeExtensions or false) gnome3.gnome_shell
           ++ lib.optional (cfg.enableTrezor or false) trezor-bridge
+          ++ lib.optional (cfg.enableBluejeans or false) bluejeans
          );
       libs = [ gstreamer gst_plugins_base ] ++ lib.optionals (cfg.enableQuakeLive or false)
              (with xlibs; [ stdenv.cc libX11 libXxf86dga libXxf86vm libXext libXt alsaLib zlib ])
@@ -13512,7 +13550,10 @@ let
 
   xboard =  callPackage ../games/xboard { };
 
-  xconq = callPackage ../games/xconq {};
+  xconq = callPackage ../games/xconq {
+    tcl = tcl-8_5;
+    tk = tk-8_5;
+  };
 
   # TODO: the corresponding nix file is missing
   # xracer = callPackage ../games/xracer { };
@@ -13982,6 +14023,8 @@ let
 
   mkCoqPackages_8_4 = self: let callPackage = newScope self; in {
 
+    inherit callPackage;
+
     bedrock = callPackage ../development/coq-modules/bedrock {};
 
     contribs =
@@ -14024,19 +14067,18 @@ let
 
   mkCoqPackages_8_5 = self: let callPackage = newScope self; in rec {
 
-    mathcomp = callPackage ../development/coq-modules/mathcomp/1.5.nix {
-      coq = coq_8_5;
-      ssreflect = ssreflect;
-    };
+    inherit callPackage;
 
-    ssreflect = callPackage ../development/coq-modules/ssreflect/1.5.nix {
-      coq = coq_8_5;
-    };
+    coq = coq_8_5;
+
+    mathcomp = callPackage ../development/coq-modules/mathcomp { };
+
+    ssreflect = callPackage ../development/coq-modules/ssreflect { };
 
   };
 
   coqPackages = recurseIntoAttrs (mkCoqPackages_8_4 coqPackages);
-  coqPackages_8_5 = recurseIntoAttrs (mkCoqPackages_8_5 coqPackages);
+  coqPackages_8_5 = recurseIntoAttrs (mkCoqPackages_8_5 coqPackages_8_5);
 
   cvc3 = callPackage ../applications/science/logic/cvc3 {};
   cvc4 = callPackage ../applications/science/logic/cvc4 {};
@@ -14372,7 +14414,9 @@ let
   gnuk-unstable = callPackage ../misc/gnuk/unstable.nix { };
   gnuk-git = callPackage ../misc/gnuk/git.nix { };
 
-  guix = callPackage ../tools/package-management/guix { };
+  guix = callPackage ../tools/package-management/guix {
+    libgcrypt = libgcrypt_1_5;
+  };
 
   gxemul = callPackage ../misc/emulators/gxemul { };
 
@@ -14475,6 +14519,8 @@ let
 
   robomongo = callPackage ../applications/misc/robomongo { };
 
+  rucksack = callPackage ../development/tools/rucksack { };
+
   opkg = callPackage ../tools/package-management/opkg { };
 
   opkg-utils = callPackage ../tools/package-management/opkg-utils { };
diff --git a/pkgs/top-level/go-packages.nix b/pkgs/top-level/go-packages.nix
index ce8e529a9212..bab63e87b30c 100644
--- a/pkgs/top-level/go-packages.nix
+++ b/pkgs/top-level/go-packages.nix
@@ -102,6 +102,22 @@ let
     };
   };
 
+  gogo.protobuf = buildGoPackage rec {
+    rev = "499788908625f4d83de42a204d1350fde8588e4f";
+    name = "protobuf-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/gogo/protobuf";
+    goPackageAliases = [ "code.google.com/p/gogoprotobuf/proto" "code.google.com/p/goprotobuf/proto" ];
+
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "gogo";
+      repo = "protobuf";
+      sha256 = "09h2j0apl70709nbqasqrkss6fdk99xm7xr5ci311dl48rmm1dzn";
+    };
+
+    subPackages = [ "proto" ];
+  };
+
   text = buildGoPackage rec {
     rev = "c93e7c9fff19fb9139b5ab04ce041833add0134e";
     name = "text-${stdenv.lib.strings.substring 0 7 rev}";
@@ -553,6 +569,19 @@ let
     buildInputs = [ go-multierror go-syslog hcl logutils mapstructure ];
   };
 
+  context = buildGoPackage rec {
+    rev = "215affda49addc4c8ef7e2534915df2c8c35c6cd";
+    name = "config-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/gorilla/context";
+
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "gorilla";
+      repo = "context";
+      sha256 = "1ybvjknncyx1f112mv28870n0l7yrymsr0861vzw10gc4yn1h97g";
+    };
+  };
+
   dbus = buildGoPackage rec {
     rev = "a5942dec6340eb0d57f43f2003c190ce06e43dea";
     name = "dbus-${stdenv.lib.strings.substring 0 7 rev}";
@@ -757,6 +786,20 @@ let
     };
   };
 
+  dgnorton.goback = buildGoPackage rec {
+    rev = "a49ca3c0a18f50ae0b8a247e012db4385e516cf4";
+    name = "goback-${stdenv.lib.strings.substring 0 7 rev}";
+
+    goPackagePath = "github.com/dgnorton/goback";
+
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "dgnorton";
+      repo = "goback";
+      sha256 = "1nyg6sckwd0iafs9vcmgbga2k3hid2q0avhwj29qbdhj3l78xi47";
+    };
+  };
+
   gocheck = buildGoPackage rec {
     rev = "87";
     name = "gocheck-${rev}";
@@ -807,6 +850,19 @@ let
     };
   };
 
+  influx.gomdb = buildGoPackage rec {
+    rev = "29fe330c5ab33c4e48470bd4b980bf522471190a";
+    name = "gomdb-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/influxdb/gomdb";
+
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "influxdb";
+      repo = "gomdb";
+      sha256 = "0yg1jpr7lcaqh6i8n9wbs9r128kk541qjv06r9a6fp9vj56rqr3m";
+    };
+  };
+
   govers = buildGoPackage rec {
     rev = "3b5f175f65d601d06f48d78fcbdb0add633565b9";
     name = "govers-${stdenv.lib.strings.substring 0 7 rev}";
@@ -1215,7 +1271,7 @@ let
       sha256 = "07dc74kiam8v5my7rhi3yxqrpnaapladhk8b3qbnrpjk3shvnx5f";
     };
 
-    buildInputs = [ influxdb stathat ];
+    buildInputs = [ influxdb8 stathat ];
   };
 
   appengine = buildGoPackage rec {
@@ -1550,7 +1606,7 @@ let
   };
 
   influxdb = buildGoPackage rec {
-    rev = "d80ef2286d476d9e306548305e47c3ba967f5bc2";
+    rev = "50a2b9ba0f189213fc399f59247787e71b872b2d";
     name = "influxdb-${stdenv.lib.strings.substring 0 7 rev}";
     goPackagePath = "github.com/influxdb/influxdb";
     goPackageAliases = [
@@ -1561,10 +1617,10 @@ let
       inherit rev;
       owner = "influxdb";
       repo = "influxdb";
-      sha256 = "0p3s0pbn5x294qg2r0qgysb5wmspsvjxhccxh2hs6hc24dl6y93b";
+      sha256 = "0spwnr9dwxwrjxrajpcspj3aci2ylkrm085jhq7rd99nmbsms6jq";
     };
 
-    propagatedBuildInputs = [ bolt crypto statik liner toml pat gollectd ];
+    propagatedBuildInputs = [ bolt crypto statik liner toml pat gollectd gogo.protobuf raft raft-boltdb pool ];
   };
 
   influxdb8 = buildGoPackage rec {
@@ -1582,7 +1638,7 @@ let
       sha256 = "0xpigp76rlsxqj93apjzkbi98ha5g4678j584l6hg57p711gqsdv";
     };
 
-    buildInputs = [ statik crypto protobuf log4go toml pmylund.go-cache ];
+    buildInputs = [ statik crypto gogo.protobuf log4go toml pmylund.go-cache gollectd pat dgnorton.goback mux context gocheck influx.gomdb levigo ];
   };
 
   eckardt.influxdb-go = buildGoPackage rec {
@@ -1620,6 +1676,19 @@ let
     };
   };
 
+  ipfs = buildGoPackage rec {
+    rev = "952dc9c60fdff27902749222fdc30164e7eea1ee";
+    name = "ipfs-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/ipfs/go-ipfs";
+
+    src = fetchFromGitHub {
+      inherit rev;
+      owner  = "ipfs";
+      repo   = "go-ipfs";
+      sha256 = "1mlilx1i77px85jag4jwpcy8fy0vv15hsmpr1d9zvcs3b7qhskqp";
+    };
+  };
+
   vanackere.ldap = buildGoPackage rec {
     rev = "e29b797d1abde6567ccb4ab56236e033cabf845a";
     name = "ldap-${stdenv.lib.strings.substring 0 7 rev}";
@@ -1638,6 +1707,23 @@ let
     propagatedBuildInputs = [ asn1-ber ];
   };
 
+  levigo = buildGoPackage rec {
+    rev = "1ddad808d437abb2b8a55a950ec2616caa88969b";
+    name = "logrus-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/jmhodges/levigo";
+
+    excludedPackages = "examples";
+
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "jmhodges";
+      repo = "levigo";
+      sha256 = "1lmafyk7nglhig3n471jq4hmnqf45afj5ldb2jx0253f5ii4r2yq";
+    };
+
+    buildInputs = [ pkgs.leveldb ];
+  };
+
   liner = buildGoPackage rec {
     rev = "1bb0d1c1a25ed393d8feb09bab039b2b1b1fbced";
     name = "liner-${stdenv.lib.strings.substring 0 7 rev}";
@@ -1808,6 +1894,21 @@ let
     };
   };
 
+  mux = buildGoPackage rec {
+    rev = "47e8f450ef38c857cdd922ec08862ca9d65a1c6d";
+    name = "mux-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/gorilla/mux";
+
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "gorilla";
+      repo = "mux";
+      sha256 = "03z7pk95z3314s3jryp6vs33209fj147g5jb2f331567gzld3b9g";
+    };
+
+    buildInputs = [ context ];
+  };
+
   muxado = buildGoPackage rec {
     rev = "f693c7e88ba316d1a0ae3e205e22a01aa3ec2848";
     name = "muxado-${stdenv.lib.strings.substring 0 7 rev}";
@@ -2035,6 +2136,19 @@ let
     doCheck = false; # bad import path in tests
   };
 
+  pool = buildGoPackage rec {
+    rev = "v2.0.0";
+    name = "pq-${rev}";
+    goPackagePath = "gopkg.in/fatih/pool.v2";
+
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "fatih";
+      repo = "pool";
+      sha256 = "1jlrakgnpvhi2ny87yrsj1gyrcncfzdhypa9i2mlvvzqlj4r0dn0";
+    };
+  };
+
   pq = buildGoPackage rec {
     rev = "93e9980741c9e593411b94e07d5bad8cfb4809db";
     name = "pq-${stdenv.lib.strings.substring 0 7 rev}";
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index c166457add24..362aa821ca6f 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -2250,12 +2250,12 @@ let self = _self // overrides; _self = with self; {
   };
 
   DateTime = buildPerlModule {
-    name = "DateTime-1.08";
+    name = "DateTime-1.19";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-1.08.tar.gz;
-      sha256 = "0ijhb1mqrfp1pbj4r3wkpp0hdj3zg355skxdn6dsiv439fp65asf";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-1.19.tar.gz;
+      sha256 = "07c8624a7827277e8eda35c77cfc6fd056bf2782238597f424ef6a6e33ed6009";
     };
-    buildInputs = [ TestFatal ];
+    buildInputs = [ TestFatal TestWarnings ];
     propagatedBuildInputs = [ DateTimeLocale DateTimeTimeZone ParamsValidate TryTiny ];
     meta = {
       description = "A date and time object";
@@ -2382,10 +2382,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   DateTimeFormatStrptime = buildPerlPackage {
-    name = "DateTime-Format-Strptime-1.54";
+    name = "DateTime-Format-Strptime-1.56";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-Strptime-1.54.tar.gz;
-      sha256 = "00bb61b12472fb1a637ec55bbd8878db05b3aac89a67b7991b281e32896db9de";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-Strptime-1.56.tar.gz;
+      sha256 = "2ff69d0f5a0359aab04e7276db5bee3be10040da24fbf09de1d904e7ead78b28";
     };
     propagatedBuildInputs = [ DateTime DateTimeLocale DateTimeTimeZone ParamsValidate ];
     meta = {
@@ -2395,11 +2395,12 @@ let self = _self // overrides; _self = with self; {
   };
 
   DateTimeLocale = buildPerlPackage {
-    name = "DateTime-Locale-0.45";
+    name = "DateTime-Locale-0.46";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Locale-0.45.tar.gz;
-      sha256 = "8aa1b8db0baccc26ed88f8976a228d2cdf4f6ed4e10fc88c1501ecd8f3ccaf9c";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Locale-0.46.tar.gz;
+      sha256 = "b4ceaa0dc0b89d4eb180eb970a927cf376e3d04ef42de98de2e034cd2021348d";
     };
+    buildInputs = [ DistCheckConflicts ];
     propagatedBuildInputs = [ ListMoreUtils ParamsValidate ];
     meta = {
       homepage = http://datetime.perl.org/;
@@ -2422,13 +2423,13 @@ let self = _self // overrides; _self = with self; {
   };
 
   DateTimeTimeZone = buildPerlPackage {
-    name = "DateTime-TimeZone-1.63";
+    name = "DateTime-TimeZone-1.91";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-TimeZone-1.63.tar.gz;
-      sha256 = "02a3kyz3cyrag98b1949k19axm03fa5ri82gdc1y4lnxjvjvxkfw";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-TimeZone-1.91.tar.gz;
+      sha256 = "0b0899a1b1a32ed3928397323a06692223688db2c3c050734e7ff4c7b231bd32";
     };
-    buildInputs = [ TestOutput ];
-    propagatedBuildInputs = [ ClassLoad ClassSingleton ParamsValidate ];
+    buildInputs = [ TestFatal TestRequires ];
+    propagatedBuildInputs = [ ClassSingleton ListAllUtils ModuleRuntime ParamsValidate TryTiny ];
     meta = {
       description = "Time zone object base class and factory";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -5142,11 +5143,12 @@ let self = _self // overrides; _self = with self; {
   };
 
   ListAllUtils = buildPerlPackage {
-    name = "List-AllUtils-0.03";
+    name = "List-AllUtils-0.09";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DR/DROLSKY/List-AllUtils-0.03.tar.gz;
-      sha256 = "05d1q88pr4wgsqcla0g4kd45mxg7h9v3z3f4pv830xaviiqwq1j8";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/List-AllUtils-0.09.tar.gz;
+      sha256 = "4cfe6359cc6c9f4ba0d178e223f4b468d3cf7768d645334962f05de069bdaee2";
     };
+    buildInputs = [ TestWarnings ];
     propagatedBuildInputs = [ ListMoreUtils ];
     meta = {
       description = "Combines List::Util and List::MoreUtils in one bite-sized package";
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 45148de8ac3e..1469bfcbcfd7 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -3410,6 +3410,26 @@ let
     };
   };
 
+  i3-py = buildPythonPackage rec {
+    version = "0.6.4";
+    name = "i3-py-${version}";
+
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/i/i3-py/i3-py-${version}.tar.gz";
+      sha256 = "1sgl438jrb4cdyl7hbc3ymwsf7y3zy09g1gh7ynilxpllp37jc8y";
+    };
+
+    # no tests in tarball
+    doCheck = false;
+
+    meta = {
+      description = "tools for i3 users and developers";
+      homepage =  "https://github.com/ziberna/i3-py";
+      license = licenses.gpl3;
+      platforms = platforms.linux;
+    };
+  };
+
   jsonpatch = buildPythonPackage rec {
     name = "jsonpatch-1.8";
 
@@ -3446,6 +3466,26 @@ let
     };
   };
 
+  jdcal = buildPythonPackage rec {
+    version = "1.0";
+    name = "jdcal-${version}";
+
+    src = pkgs.fetchFromGitHub {
+      owner = "phn";
+      repo = "jdcal";
+      rev = "v${version}";
+      sha256 = "0jjgrrylraqzk3n97hay4gj00ky6vlvkfaapfgqlbcxyq30j24vq";
+    };
+
+    meta = {
+      description = "A module containing functions for converting between Julian dates and calendar dates";
+      homepage = "https://github.com/phn/jdcal";
+      license = licenses.bsd2;
+      maintainers = with maintainers; [ lihop ];
+      platforms = platforms.all;
+    };
+  };
+
   jsonwatch = buildPythonPackage rec {
     name = "jsonwatch-0.2.0";
 
@@ -8079,6 +8119,27 @@ let
     doCheck = false;
   };
 
+  openpyxl = buildPythonPackage rec {
+    version = "2.2.4";
+    name = "openpyxl-${version}";
+
+    src = pkgs.fetchhg {
+      url = "https://bitbucket.org/openpyxl/openpyxl";
+      rev = "${version}";
+      sha256 = "1g9imbg4sjfyv5sqg2s7h4svhdmbnvq16hvc1a8jpaqq8nc2vjj2";
+    };
+
+    propagatedBuildInputs = with self; [ jdcal ];
+
+    meta = {
+      description = "A Python library to read/write Excel 2007 xlsx/xlsm files";
+      homepage = "https://openpyxl.readthedocs.org";
+      license = licenses.mit;
+      maintainers = with maintainers; [ lihop ];
+      platforms = platforms.all;
+    };
+  };
+
   # optfunc = buildPythonPackage ( rec {
   #   name = "optfunc-git";
   #
@@ -8884,10 +8945,10 @@ let
 
   prompt_toolkit = buildPythonPackage rec {
     name = "prompt_toolkit-${version}";
-    version = "0.40";
+    version = "0.41";
 
     src = pkgs.fetchurl {
-      sha256 = "0zyp2zpbckpdhapijvg7jwli71ilhp02awn99ly70q3l1f44m9dj";
+      sha256 = "0s8zsa06vbs8n959ri2cc2fk5dkxjfr0zabqzjvx7klasxwzmsra";
       url = "https://pypi.python.org/packages/source/p/prompt_toolkit/${name}.tar.gz";
     };