about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lib/licenses.nix5
-rw-r--r--lib/options.nix17
-rw-r--r--nixos/modules/installer/tools/nixos-option.sh100
-rw-r--r--nixos/modules/misc/ids.nix1
-rwxr-xr-xnixos/modules/module-list.nix1
-rw-r--r--nixos/modules/services/audio/mpd.nix4
-rw-r--r--nixos/modules/services/networking/tox-bootstrapd.nix80
-rw-r--r--nixos/modules/services/x11/display-managers/default.nix2
-rw-r--r--nixos/modules/services/x11/xserver.nix2
-rw-r--r--pkgs/applications/audio/easytag/default.nix7
-rw-r--r--pkgs/applications/audio/pavucontrol/default.nix10
-rw-r--r--pkgs/applications/graphics/shotwell/default.nix9
-rw-r--r--pkgs/applications/misc/dunst/default.nix5
-rw-r--r--pkgs/applications/misc/gqrx/default.nix4
-rw-r--r--pkgs/applications/science/math/maxima/default.nix11
-rw-r--r--pkgs/applications/science/math/wxmaxima/default.nix4
-rw-r--r--pkgs/data/fonts/gyre/default.nix38
-rw-r--r--pkgs/data/fonts/league-of-moveable-type/default.nix79
-rw-r--r--pkgs/data/fonts/nafees/default.nix2
-rw-r--r--pkgs/development/compilers/rustc/head.nix25
-rw-r--r--pkgs/development/libraries/jasper/default.nix8
-rw-r--r--pkgs/development/libraries/jasper/jasper-CVE-2014-8137-noabort.diff16
-rw-r--r--pkgs/development/libraries/jasper/jasper-CVE-2014-8137-variant2.diff45
-rw-r--r--pkgs/development/libraries/jasper/jasper-CVE-2014-8138.diff16
-rw-r--r--pkgs/development/libraries/jasper/jasper-CVE-2014-9029.diff31
-rw-r--r--pkgs/development/libraries/libtoxcore/default.nix16
-rw-r--r--pkgs/development/python-modules/sip/4.16.nix4
-rw-r--r--pkgs/development/tools/build-managers/cargo/common.nix10
-rw-r--r--pkgs/games/openttd/default.nix6
-rw-r--r--pkgs/games/openttd/fix-freetype-1.4.4.patch31
-rw-r--r--pkgs/os-specific/linux/kernel/patches.nix8
-rw-r--r--pkgs/servers/monitoring/newrelic-sysmond/default.nix30
-rw-r--r--pkgs/tools/backup/attic/default.nix2
-rw-r--r--pkgs/tools/misc/pipelight/default.nix10
-rw-r--r--pkgs/tools/misc/trash-cli/default.nix38
-rw-r--r--pkgs/tools/misc/trash-cli/fix_should_output_info_for_multiple_files.patch60
-rw-r--r--pkgs/tools/misc/trash-cli/nix-paths.patch39
-rw-r--r--pkgs/top-level/all-packages.nix10
38 files changed, 707 insertions, 79 deletions
diff --git a/lib/licenses.nix b/lib/licenses.nix
index 1596c319bd0a..e3b551953fdd 100644
--- a/lib/licenses.nix
+++ b/lib/licenses.nix
@@ -255,6 +255,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec {
     fullName = "LaTeX Project Public License v1.2";
   };
 
+  lppl13c = spdx {
+    spdxId = "LPPL-1.3c";
+    fullName = "LaTeX Project Public License v1.3c";
+  };
+
   lpl-102 = spdx {
     spdxId = "LPL-1.02";
     fullName = "Lucent Public License v1.02";
diff --git a/lib/options.nix b/lib/options.nix
index ecbd81cd997f..939f9948ceef 100644
--- a/lib/options.nix
+++ b/lib/options.nix
@@ -31,6 +31,23 @@ rec {
     type = lib.types.bool;
   };
 
+  # This option accept anything, but it does not produce any result.  This
+  # is useful for sharing a module across different module sets without
+  # having to implement similar features as long as the value of the options
+  # are not expected.
+  mkSinkUndeclaredOptions = attrs: mkOption ({
+    internal = true;
+    visible = false;
+    default = false;
+    description = "Sink for option definitions.";
+    type = mkOptionType {
+      name = "sink";
+      check = x: true;
+      merge = loc: defs: false;
+    };
+    apply = x: throw "Option value is not readable because the option is not declared.";
+  } // attrs);
+
   mergeDefaultOption = loc: defs:
     let list = getValues defs; in
     if length list == 1 then head list
diff --git a/nixos/modules/installer/tools/nixos-option.sh b/nixos/modules/installer/tools/nixos-option.sh
index 4478059813d1..17c17d05e288 100644
--- a/nixos/modules/installer/tools/nixos-option.sh
+++ b/nixos/modules/installer/tools/nixos-option.sh
@@ -13,6 +13,7 @@ usage () {
 
 xml=false
 verbose=false
+nixPath=""
 
 option=""
 
@@ -26,6 +27,7 @@ for arg; do
         while test "$sarg" != "-"; do
           case $sarg in
             --*) longarg=$arg; sarg="--";;
+            -I) argfun="include_nixpath";;
             -*) usage;;
           esac
           # remove the first letter option
@@ -53,6 +55,9 @@ for arg; do
         var=$(echo $argfun | sed 's,^set_,,')
         eval $var=$arg
         ;;
+      include_nixpath)
+        nixPath="-I $arg $nixPath"
+        ;;
     esac
     argfun=""
   fi
@@ -69,20 +74,85 @@ fi
 #############################
 
 evalNix(){
-  result=$(nix-instantiate - --eval-only "$@" 2>&1)
+  result=$(nix-instantiate ${nixPath:+$nixPath} - --eval-only "$@" 2>&1)
   if test $? -eq 0; then
       cat <<EOF
 $result
 EOF
       return 0;
   else
-      sed -n '/error/ { s/, at (string):[0-9]*:[0-9]*//; p; }' <<EOF
+      sed -n '
+  /^error/ { s/, at (string):[0-9]*:[0-9]*//; p; };
+  /^warning: Nix search path/ { p; };
+' <<EOF
 $result
 EOF
       return 1;
   fi
 }
 
+header="let
+  nixos = import <nixpkgs/nixos> {};
+  nixpkgs = import <nixpkgs> {};
+in with nixpkgs.lib;
+"
+
+# This function is used for converting the option definition path given by
+# the user into accessors for reaching the definition and the declaration
+# corresponding to this option.
+generateAccessors(){
+  if result=$(evalNix --strict --show-trace <<EOF
+$header
+
+let
+  path = "${option:+$option}";
+  pathList = splitString "." path;
+
+  walkOptions = attrsNames: result:
+    if attrsNames == [] then
+      result
+    else
+      let name = head attrsNames; rest = tail attrsNames; in
+      if isOption result.options then
+        walkOptions rest {
+          options = result.options.type.getSubOptions "";
+          opt = ''(\${result.opt}.type.getSubOptions "")'';
+          cfg = ''\${result.cfg}."\${name}"'';
+        }
+      else
+        walkOptions rest {
+          options = result.options.\${name};
+          opt = ''\${result.opt}."\${name}"'';
+          cfg = ''\${result.cfg}."\${name}"'';
+        }
+    ;
+
+  walkResult = (if path == "" then x: x else walkOptions pathList) {
+    options = nixos.options;
+    opt = ''nixos.options'';
+    cfg = ''nixos.config'';
+  };
+
+in
+  ''let option = \${walkResult.opt}; config = \${walkResult.cfg}; in''
+EOF
+)
+  then
+      echo $result
+  else
+      # In case of error we want to ignore the error message roduced by the
+      # script above, as it is iterating over each attribute, which does not
+      # produce a nice error message.  The following code is a fallback
+      # solution which is cause a nicer error message in the next
+      # evaluation.
+      echo "\"let option = nixos.options${option:+.$option}; config = nixos.config${option:+.$option}; in\""
+  fi
+}
+
+header="$header
+$(eval echo $(generateAccessors))
+"
+
 evalAttr(){
   local prefix="$1"
   local strict="$2"
@@ -92,10 +162,10 @@ evalAttr(){
   test -n "$strict" && strict=true
 
   evalNix ${strict:+--strict} <<EOF
+$header
+
 let
-  reach = attrs: attrs${option:+.$option}${suffix:+.$suffix};
-  nixos = import <nixos> {};
-  nixpkgs = import <nixpkgs> {};
+  value = $prefix${suffix:+.$suffix};
   strict = ${strict:-false};
   cleanOutput = x: with nixpkgs.lib;
     if isDerivation x then x.outPath
@@ -106,12 +176,12 @@ let
       else x
     else x;
 in
-  cleanOutput (reach nixos.$prefix)
+  cleanOutput value
 EOF
 }
 
 evalOpt(){
-  evalAttr "options" "" "$@"
+  evalAttr "option" "" "$@"
 }
 
 evalCfg(){
@@ -121,8 +191,11 @@ evalCfg(){
 
 findSources(){
   local suffix=$1
-  echo "(import <nixos> {}).options${option:+.$option}.$suffix" |
-    evalNix --strict
+  evalNix --strict <<EOF
+$header
+
+option.$suffix
+EOF
 }
 
 # Given a result from nix-instantiate, recover the list of attributes it
@@ -152,13 +225,12 @@ nixMap() {
 # the output of nixos-option with other tools such as nixos-gui.
 if $xml; then
   evalNix --xml --no-location <<EOF
+$header
+
 let
-  reach = attrs: attrs${option:+.$option};
-  nixos = import <nixos> {};
-  nixpkgs = import <nixpkgs> {};
   sources = builtins.map (f: f.source);
-  opt = reach nixos.options;
-  cfg = reach nixos.config;
+  opt = option;
+  cfg = config;
 in
 
 with nixpkgs.lib;
diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix
index 3bb7fdb9b2d6..bf8365e34645 100644
--- a/nixos/modules/misc/ids.nix
+++ b/nixos/modules/misc/ids.nix
@@ -173,6 +173,7 @@
       peerflix = 163;
       chronos = 164;
       gitlab = 165;
+      tox-bootstrapd = 166;
 
       # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
 
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 1005e281f9b7..2c52ebb37bcb 100755
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -286,6 +286,7 @@
   ./services/networking/tcpcrypt.nix
   ./services/networking/teamspeak3.nix
   ./services/networking/tftpd.nix
+  ./services/networking/tox-bootstrapd.nix
   ./services/networking/unbound.nix
   ./services/networking/unifi.nix
   ./services/networking/vsftpd.nix
diff --git a/nixos/modules/services/audio/mpd.nix b/nixos/modules/services/audio/mpd.nix
index e6b525c4b1ba..eab7993387de 100644
--- a/nixos/modules/services/audio/mpd.nix
+++ b/nixos/modules/services/audio/mpd.nix
@@ -15,7 +15,6 @@ let
     state_file          "${cfg.dataDir}/state"
     sticker_file        "${cfg.dataDir}/sticker.sql"
     log_file            "syslog"
-    user                "mpd"
     ${if cfg.network.host != "any" then
    "bind_to_address     ${cfg.network.host}" else ""}
     ${if cfg.network.port != 6600 then
@@ -99,6 +98,9 @@ in {
       path = [ pkgs.mpd ];
       preStart = "mkdir -p ${cfg.dataDir} && chown -R mpd:mpd  ${cfg.dataDir}";
       script = "exec mpd --no-daemon ${mpdConf}";
+      serviceConfig = {
+        User = "mpd";
+      };
     };
 
     users.extraUsers.mpd = {
diff --git a/nixos/modules/services/networking/tox-bootstrapd.nix b/nixos/modules/services/networking/tox-bootstrapd.nix
new file mode 100644
index 000000000000..65aa87be44cc
--- /dev/null
+++ b/nixos/modules/services/networking/tox-bootstrapd.nix
@@ -0,0 +1,80 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  home = "/var/lib/tox-bootstrapd";
+  PIDFile = "${home}/pid";
+
+  pkg = pkgs.libtoxcore;
+  cfg = config.services.toxBootstrapd;
+  cfgFile = builtins.toFile "tox-bootstrapd.conf"
+    ''
+      port = ${toString cfg.port}
+      keys_file_path = "${home}/keys"
+      pid_file_path = "${PIDFile}"
+      ${cfg.extraConfig}
+    '';
+in
+{
+  options =
+    { services.toxBootstrapd =
+        { enable = mkOption {
+            type = types.bool;
+            default = false;
+            description =
+              ''
+                Whether to enable the Tox DHT boostrap daemon.
+              '';
+          };
+
+          port = mkOption {
+            type = types.int;
+            default = 33445;
+            description = "Listening port (UDP).";
+          };
+
+          keysFile = mkOption {
+            type = types.str;
+            default = "${home}/keys";
+            description = "Node key file.";
+          };
+
+          extraConfig = mkOption {
+            type = types.lines;
+            default = "";
+            description =
+              ''
+                Configuration for boostrap daemon.
+                See <link xlink:href="https://github.com/irungentoo/toxcore/blob/master/other/bootstrap_daemon/tox-bootstrapd.conf"/>
+                and <link xlink:href="http://wiki.tox.im/Nodes"/>.
+             '';
+          };
+      };
+
+    };
+
+  config = mkIf config.services.toxBootstrapd.enable {
+
+    users.extraUsers = singleton
+      { name = "tox-bootstrapd";
+        uid = config.ids.uids.tox-bootstrapd;
+        description = "Tox bootstrap daemon user";
+        inherit home;
+        createHome = true;
+      };
+
+    systemd.services.tox-bootstrapd = {
+      description = "Tox DHT bootstrap daemon";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig =
+        { ExecStart = "${pkg}/bin/tox-bootstrapd ${cfgFile}";
+          Type = "forking";
+          inherit PIDFile;
+          User = "tox-bootstrapd";
+        };
+    };
+
+  };
+}
diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix
index 8bc8175f88f9..a1b5daa3336d 100644
--- a/nixos/modules/services/x11/display-managers/default.nix
+++ b/nixos/modules/services/x11/display-managers/default.nix
@@ -189,7 +189,7 @@ in
       xserverArgs = mkOption {
         type = types.listOf types.str;
         default = [];
-        example = [ "-ac" "-logverbose" "-nolisten tcp" ];
+        example = [ "-ac" "-logverbose" "-verbose" "-nolisten tcp" ];
         description = "List of arguments for the X server.";
         apply = toString;
       };
diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix
index f911d3c81f90..64e0d4d8050e 100644
--- a/nixos/modules/services/x11/xserver.nix
+++ b/nixos/modules/services/x11/xserver.nix
@@ -483,8 +483,6 @@ in
 
     services.xserver.displayManager.xserverArgs =
       [ "-ac"
-        "-logverbose"
-        "-verbose"
         "-terminate"
         "-logfile" "/var/log/X.${toString cfg.display}.log"
         "-config ${configFile}"
diff --git a/pkgs/applications/audio/easytag/default.nix b/pkgs/applications/audio/easytag/default.nix
index d4927cc1a718..2d738f55c286 100644
--- a/pkgs/applications/audio/easytag/default.nix
+++ b/pkgs/applications/audio/easytag/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pkgconfig, intltool, gtk3, glib, libid3tag, id3lib, taglib
 , libvorbis, libogg, flac, itstool, libxml2, gsettings_desktop_schemas
-, makeWrapper, gnome_icon_theme
+, makeWrapper, gnome_icon_theme, dconf
 }:
 
 stdenv.mkDerivation rec {
@@ -14,7 +14,8 @@ stdenv.mkDerivation rec {
 
   preFixup = ''
     wrapProgram $out/bin/easytag \
-      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH:$out/share"
+      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH:$out/share" \
+      --prefix GIO_EXTRA_MODULES : "${dconf}/lib/gio/modules"
   '';
 
   NIX_LDFLAGS = "-lid3tag -lz";
@@ -22,7 +23,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [
     pkgconfig intltool gtk3 glib libid3tag id3lib taglib libvorbis libogg flac
-    itstool libxml2 gsettings_desktop_schemas gnome_icon_theme
+    itstool libxml2 gsettings_desktop_schemas gnome_icon_theme dconf
   ];
 
   meta = {
diff --git a/pkgs/applications/audio/pavucontrol/default.nix b/pkgs/applications/audio/pavucontrol/default.nix
index 538e1cdf9d0d..8696b1c055d0 100644
--- a/pkgs/applications/audio/pavucontrol/default.nix
+++ b/pkgs/applications/audio/pavucontrol/default.nix
@@ -1,5 +1,5 @@
 { fetchurl, stdenv, pkgconfig, intltool, pulseaudio, gtkmm3
-, libcanberra_gtk3 }:
+, libcanberra_gtk3, makeWrapper, gnome3 }:
 
 stdenv.mkDerivation rec {
   name = "pavucontrol-2.0";
@@ -9,7 +9,13 @@ stdenv.mkDerivation rec {
     sha256 = "02s775m1531sshwlbvfddk3pz8zjmwkv1sgzggn386ja3gc9vwi2";
   };
 
-  buildInputs = [ pulseaudio gtkmm3 libcanberra_gtk3 ];
+  preFixup = ''
+    wrapProgram "$out/bin/pavucontrol" \
+     --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS"
+  '';
+
+  buildInputs = [ pulseaudio gtkmm3 libcanberra_gtk3 makeWrapper
+                  gnome3.gnome_icon_theme ];
 
   nativeBuildInputs = [ pkgconfig intltool ];
 
diff --git a/pkgs/applications/graphics/shotwell/default.nix b/pkgs/applications/graphics/shotwell/default.nix
index 48044fba1666..223f632f937d 100644
--- a/pkgs/applications/graphics/shotwell/default.nix
+++ b/pkgs/applications/graphics/shotwell/default.nix
@@ -1,6 +1,6 @@
 { fetchurl, stdenv, m4, glibc, gtk3, libexif, libgphoto2, libsoup, libxml2, vala, sqlite, webkitgtk24x
 , pkgconfig, gnome3, gst_all_1, which, udev, libraw, glib, json_glib, gettext, desktop_file_utils
-, lcms2, gdk_pixbuf, librsvg, makeWrapper, gnome_doc_utils }:
+, lcms2, gdk_pixbuf, librsvg, makeWrapper, gnome_doc_utils, hicolor_icon_theme }:
 
 # for dependencies see http://www.yorba.org/projects/shotwell/install/
 
@@ -42,7 +42,8 @@ in stdenv.mkDerivation rec {
   preFixup = ''
     wrapProgram "$out/bin/shotwell" \
      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-     --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
+     --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
+     --prefix GIO_EXTRA_MODULES : "${gnome3.dconf}/lib/gio/modules"
     rm $out/share/icons/hicolor/icon-theme.cache
   '';
 
@@ -50,7 +51,9 @@ in stdenv.mkDerivation rec {
   buildInputs = [ m4 glibc gtk3 libexif libgphoto2 libsoup libxml2 vala sqlite webkitgtk24x pkgconfig
                   gst_all_1.gstreamer gst_all_1.gst-plugins-base gnome3.libgee which udev gnome3.gexiv2
                   libraw rest json_glib gettext desktop_file_utils glib lcms2 gdk_pixbuf librsvg
-                  makeWrapper gnome_doc_utils ];
+                  makeWrapper gnome_doc_utils
+                  gnome3.gnome_icon_theme gnome3.gnome_icon_theme_symbolic
+                  hicolor_icon_theme ];
 
   meta = with stdenv.lib; {
     description = "Popular photo organizer for the GNOME desktop";
diff --git a/pkgs/applications/misc/dunst/default.nix b/pkgs/applications/misc/dunst/default.nix
index 039b4ac688bf..33371c93b866 100644
--- a/pkgs/applications/misc/dunst/default.nix
+++ b/pkgs/applications/misc/dunst/default.nix
@@ -12,11 +12,6 @@ stdenv.mkDerivation rec {
     sha256 = "0x95f57s0a96c4lifxdpf73v706iggwmdw8742mabbjnxq55l1qs";
   };
 
-  patchPhase = ''
-    substituteInPlace "settings.c" \
-      --replace "xdgConfigOpen(\"dunst/dunstrc\", \"r\", &xdg" "fopen(\"$out/share/dunst/dunstrc\", \"r\""
-  '';
-
   buildInputs =
   [ coreutils unzip which pkgconfig dbus freetype libnotify gdk_pixbuf
     xdg_utils libXext glib pango cairo libX11 libxdg_basedir
diff --git a/pkgs/applications/misc/gqrx/default.nix b/pkgs/applications/misc/gqrx/default.nix
index d0a57e4cec27..169331ceb733 100644
--- a/pkgs/applications/misc/gqrx/default.nix
+++ b/pkgs/applications/misc/gqrx/default.nix
@@ -8,11 +8,11 @@ assert pulseaudioSupport -> pulseaudio != null;
 
 stdenv.mkDerivation rec {
   name = "gqrx-${version}";
-  version = "2.3.0";
+  version = "2.3.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/gqrx/${version}/${name}.tar.xz";
-    sha256 = "0fyfkdd2ailg54ppv1y2fy2c692jmlmsyl1lxr20lyn6bvd9gpyn";
+    sha256 = "1vfqqa976xlbapqkpc9nka364zydvsy18xiwfqjy015kpasshdz1";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/science/math/maxima/default.nix b/pkgs/applications/science/math/maxima/default.nix
index ddd5dc5d6bb4..ffc16a330542 100644
--- a/pkgs/applications/science/math/maxima/default.nix
+++ b/pkgs/applications/science/math/maxima/default.nix
@@ -2,7 +2,7 @@
 
 let
   name    = "maxima";
-  version = "5.34.1";
+  version = "5.35.1";
 
   searchPath =
     stdenv.lib.makeSearchPath "bin"
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://sourceforge/${name}/${name}-${version}.tar.gz";
-    sha256 = "1dw9vfzldpj7lv303xbw0wpyn6ra6i2yzwlrjbcx7j0jm5n43ji0";
+    sha256 = "1wwqvay9z6gal7bsyyyhhcwh0fy5ak4h2a446ali0x6zmybaklcy";
   };
 
   buildInputs = [sbcl texinfo perl makeWrapper];
@@ -29,10 +29,9 @@ stdenv.mkDerivation {
     ln -s ../maxima/${version}/doc $out/share/doc/maxima
   '';
 
-  # Failures in the regression test suite are not going to abort the
-  # build process. We run the suite mostly so that potential errors show
-  # up in the build log. See also:
-  # <http://sourceforge.net/tracker/?func=detail&aid=3365831&group_id=4933&atid=104933>.
+  # Failures in the regression test suite won't abort the build process. We run
+  # the suite only so that potential errors show up in the build log. See also:
+  # http://sourceforge.net/tracker/?func=detail&aid=3365831&group_id=4933&atid=104933.
   doCheck = true;
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/science/math/wxmaxima/default.nix b/pkgs/applications/science/math/wxmaxima/default.nix
index 06eceea65c95..a73e3dbcec04 100644
--- a/pkgs/applications/science/math/wxmaxima/default.nix
+++ b/pkgs/applications/science/math/wxmaxima/default.nix
@@ -2,14 +2,14 @@
 
 let
   name    = "wxmaxima";
-  version = "14.09.0";
+  version = "14.12.1";
 in
 stdenv.mkDerivation {
   name = "${name}-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/${name}/wxMaxima/${version}/wxmaxima-${version}.tar.gz";
-    sha256 = "1wqiw9dgjc9vg94dqk4kif8xs7nlmn34xj3v4zm13fh1jihraksq";
+    sha256 = "0sjxvh0y5w5p2xdq3qzz3yhlsigrg3ynib9dkymhynpfnb51x82z";
   };
 
   buildInputs = [wxGTK maxima makeWrapper];
diff --git a/pkgs/data/fonts/gyre/default.nix b/pkgs/data/fonts/gyre/default.nix
new file mode 100644
index 000000000000..46b947ce77a2
--- /dev/null
+++ b/pkgs/data/fonts/gyre/default.nix
@@ -0,0 +1,38 @@
+{stdenv, fetchurl, unzip}:
+
+stdenv.mkDerivation rec {
+  baseName = "gyre-fonts";
+  version = "2.005";
+  name="${baseName}-${version}";
+  
+  src = fetchurl {
+    url = "http://www.gust.org.pl/projects/e-foundry/tex-gyre/whole/tg-2.005otf.zip";
+    sha256 = "0kph9l3g7jb2bpmxdbdg5zl56wacmnvdvsdn7is1gc750sqvsn31";
+  };
+
+  buildInputs = [unzip];
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    cp *.otf $out/share/fonts/truetype
+  '';
+
+  meta = {
+    description = "OpenType fonts from the Gyre project, suitable for use with (La)TeX";
+
+    longDescription = ''The Gyre project started in 2006, and will
+    eventually include enhanced releases of all 35 freely available
+    PostScript fonts distributed with Ghostscript v4.00.  These are
+    being converted to OpenType and extended with diacritical marks
+    covering all modern European languages and then some'';
+
+    homepage = "http://www.gust.org.pl/projects/e-foundry/tex-gyre/index_html#Readings";
+
+    license = stdenv.lib.licenses.lppl13c;
+
+    platforms = stdenv.lib.platforms.all;
+    maintainers = with stdenv.lib.maintainers; [ bergey ];
+  };
+}
diff --git a/pkgs/data/fonts/league-of-moveable-type/default.nix b/pkgs/data/fonts/league-of-moveable-type/default.nix
new file mode 100644
index 000000000000..c592ac2d38b8
--- /dev/null
+++ b/pkgs/data/fonts/league-of-moveable-type/default.nix
@@ -0,0 +1,79 @@
+{stdenv, fetchurl, unzip}:
+
+stdenv.mkDerivation rec {
+  baseName = "league-of-moveable-type";
+  version = "2014-12";
+  name="${baseName}-${version}";
+
+  srcs = [(fetchurl {
+    url = "https://www.theleagueofmoveabletype.com/league-gothic/download";
+    sha256 = "0nbwsbwhs375kbis3lpk98dw05mnh455vghjg1cq0j2fsj1zb99b";
+    name = "league-gothic.zip";
+  })
+
+  (fetchurl {
+    url = "https://www.theleagueofmoveabletype.com/fanwood/download";
+    sha256 = "1023da7hik8ci8s7rcy6lh4h9p6igx1kz9y1a2cv6sizbp819w8g";
+    name = "fanwood.zip";
+  })
+
+  (fetchurl {
+    url = "https://www.theleagueofmoveabletype.com/linden-hill/download";
+    sha256 = "0rm92rz9kki91l5wcn149mdpwq1mfql4dv6d159hv534qmg3z3ks";
+    name = "linden-hill.zip";
+  })
+
+  (fetchurl {
+    url = "https://www.theleagueofmoveabletype.com/raleway/download";
+    sha256 = "0f6anym0adq0ankqbdqx4lyzbysx824zqdj1x60gafyisjx48y87";
+    name = "raleway.zip";
+  })
+
+  (fetchurl {
+    url = "https://www.theleagueofmoveabletype.com/prociono/download";
+    sha256 = "11hamjry5lx3cykzpjq7kwlp6h9cjqy470fmn9f2pi954b46xkdy";
+    name = "prociono.zip";
+  })
+
+  (fetchurl {
+    url = "https://www.theleagueofmoveabletype.com/goudy-bookletter-1911/download";
+    sha256 = "01qganq5n7rgqw546lf45kj8j7ymfjr00i2bwp3qw7ibifg9pn4n";
+    name = "goudy-bookletter-1911.zip";
+  })
+
+  (fetchurl {
+    url = "https://www.theleagueofmoveabletype.com/sorts-mill-goudy/download";
+    sha256 = "11aywj5lzapk04k2yzi1g96acbbm48x902ka0v9cfwwqpn6js9ra";
+    name = "sorts-mill-goudy.zip";
+  })
+
+
+];
+
+  buildInputs = [unzip];
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    cp */*.otf $out/share/fonts/truetype
+  '';
+
+
+  meta = {
+    description = "Font Collection by The League of Moveable Type";
+
+    longDescription = '' We're done with the tired old fontstacks of
+      yesteryear. The web is no longer limited, and now it's time to raise
+      our standards. Since 2009, The League has given only the most
+      well-made, free & open-source, @font-face ready fonts.
+    '';
+
+    homepage = "https://www.theleagueofmoveabletype.com/";
+
+    license = stdenv.lib.licenses.ofl;
+
+    platforms = stdenv.lib.platforms.all;
+    maintainers = with stdenv.lib.maintainers; [ bergey ];
+  };
+}
diff --git a/pkgs/data/fonts/nafees/default.nix b/pkgs/data/fonts/nafees/default.nix
index aa0c1dbd77ba..bcbf57498106 100644
--- a/pkgs/data/fonts/nafees/default.nix
+++ b/pkgs/data/fonts/nafees/default.nix
@@ -54,6 +54,6 @@ stdenv.mkDerivation rec {
     license = "unknown";
 
     platforms = stdenv.lib.platforms.all;
-    maintainers = [ "Daniel Bergey <bergey@teallabs.org>" ];
+    maintainers = with stdenv.lib.maintainers; [ bergey ];
   };
 }
diff --git a/pkgs/development/compilers/rustc/head.nix b/pkgs/development/compilers/rustc/head.nix
index cc3fabb244e7..6cc866c63a8a 100644
--- a/pkgs/development/compilers/rustc/head.nix
+++ b/pkgs/development/compilers/rustc/head.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, fetchgit, which, file, perl, curl, python27, makeWrapper
-, tzdata, git, valgrind
+, tzdata, git, valgrind, procps, coreutils
 }:
 
 assert stdenv.gcc.gcc != null;
@@ -18,19 +18,19 @@ assert stdenv.gcc.gcc != null;
 
 */
 
-with ((import ./common.nix) {inherit stdenv; version = "0.13.0-pre-1673-g3a325c6";});
+with ((import ./common.nix) {inherit stdenv; version = "0.13.0-pre-2604-g2f3cff6";});
 
 let snapshot = if stdenv.system == "i686-linux"
-      then "c8342e762a1720be939ed7c6a39bdaa27892f66f"
+      then "3daf531aed03f5769402f2fef852377e2838db98"
       else if stdenv.system == "x86_64-linux"
-      then "7a7fe6f5ed47b9cc66261f880e166c7c8738b73e"
+      then "4f3c8b092dd4fe159d6f25a217cf62e0e899b365"
       else if stdenv.system == "i686-darwin"
-      then "63e8644512bd5665c14389a83d5af564c7c0b103"
+      then "2a3e647b9c400505bd49cfe56091e866c83574ca"
       else if stdenv.system == "x86_64-darwin"
-      then "7933ae0e974d1b897806138b7052cb2b4514585f"
+      then "5e730efc34d79a33f464a87686c10eace0760a2e"
       else abort "no-snapshot for platform ${stdenv.system}";
-    snapshotDate = "2014-11-21";
-    snapshotRev = "c9f6d69";
+    snapshotDate = "2014-12-20";
+    snapshotRev = "8443b09";
     snapshotName = "rust-stage0-${snapshotDate}-${snapshotRev}-${platform}-${snapshot}.tar.bz2";
 
 in stdenv.mkDerivation {
@@ -40,8 +40,8 @@ in stdenv.mkDerivation {
 
   src = fetchgit {
     url = https://github.com/rust-lang/rust;
-    rev = "3a325c666d2cb7e297bf3057ff2442f96a79428b";
-    sha256 = "0a0byglfaf0wfsnlm53vng1gqkkz4i29zphdwqg93v26mciqqc61";
+    rev = "2f3cff6956d56048ef7afb6d33e17cbdb2dcf038";
+    sha256 = "113y74sd1gr7f0xs1lsgjw3jkvhz8s4dxx34r9cxlw5vjr7fp066";
   };
 
   # We need rust to build rust. If we don't provide it, configure will try to download it.
@@ -73,9 +73,12 @@ in stdenv.mkDerivation {
       --subst-var-by "ccPath" "${stdenv.gcc}/bin/cc"
     substituteInPlace src/librustc_back/archive.rs \
       --subst-var-by "arPath" "${stdenv.gcc.binutils}/bin/ar"
+
+    substituteInPlace src/rust-installer/gen-install-script.sh \
+      --replace /bin/echo "${coreutils}/bin/echo"
   '';
 
-  buildInputs = [ which file perl curl python27 makeWrapper git valgrind ];
+  buildInputs = [ which file perl curl python27 makeWrapper git valgrind procps ];
 
   enableParallelBuilding = false; # disabled due to rust-lang/rust#16305
 
diff --git a/pkgs/development/libraries/jasper/default.nix b/pkgs/development/libraries/jasper/default.nix
index ed51a0a28206..94e6cba4ee4c 100644
--- a/pkgs/development/libraries/jasper/default.nix
+++ b/pkgs/development/libraries/jasper/default.nix
@@ -8,13 +8,19 @@ stdenv.mkDerivation rec {
     sha256 = "154l7zk7yh3v8l2l6zm5s2alvd2fzkp6c9i18iajfbna5af5m43b";
   };
 
+  patches = [
+    ./jasper-CVE-2014-8137-variant2.diff ./jasper-CVE-2014-8137-noabort.diff
+    ./jasper-CVE-2014-8138.diff
+    ./jasper-CVE-2014-9029.diff
+  ];
+
   nativeBuildInputs = [unzip];
   propagatedBuildInputs = [ libjpeg ];
 
   configureFlags = "--enable-shared";
   
   meta = {
-    homepage = http://www.ece.uvic.ca/~mdadams/jasper/;
+    homepage = https://www.ece.uvic.ca/~frodo/jasper/;
     description = "JPEG2000 Library";
   };
 }
diff --git a/pkgs/development/libraries/jasper/jasper-CVE-2014-8137-noabort.diff b/pkgs/development/libraries/jasper/jasper-CVE-2014-8137-noabort.diff
new file mode 100644
index 000000000000..47b57d5c8098
--- /dev/null
+++ b/pkgs/development/libraries/jasper/jasper-CVE-2014-8137-noabort.diff
@@ -0,0 +1,16 @@
+From RedHat: https://bugzilla.redhat.com/attachment.cgi?id=967284&action=diff
+
+--- jasper-1.900.1.orig/src/libjasper/jp2/jp2_dec.c	2014-12-11 14:30:54.193209780 +0100
++++ jasper-1.900.1/src/libjasper/jp2/jp2_dec.c	2014-12-11 14:36:46.313217814 +0100
+@@ -291,7 +291,10 @@ jas_image_t *jp2_decode(jas_stream_t *in
+ 	case JP2_COLR_ICC:
+ 		iccprof = jas_iccprof_createfrombuf(dec->colr->data.colr.iccp,
+ 		  dec->colr->data.colr.iccplen);
+-		assert(iccprof);
++		if (!iccprof) {
++			jas_eprintf("error: failed to parse ICC profile\n");
++			goto error;
++		}
+ 		jas_iccprof_gethdr(iccprof, &icchdr);
+ 		jas_eprintf("ICC Profile CS %08x\n", icchdr.colorspc);
+ 		jas_image_setclrspc(dec->image, fromiccpcs(icchdr.colorspc));
diff --git a/pkgs/development/libraries/jasper/jasper-CVE-2014-8137-variant2.diff b/pkgs/development/libraries/jasper/jasper-CVE-2014-8137-variant2.diff
new file mode 100644
index 000000000000..243300dd70ee
--- /dev/null
+++ b/pkgs/development/libraries/jasper/jasper-CVE-2014-8137-variant2.diff
@@ -0,0 +1,45 @@
+From RedHat: https://bugzilla.redhat.com/attachment.cgi?id=967283&action=diff
+
+--- jasper-1.900.1.orig/src/libjasper/base/jas_icc.c	2014-12-11 14:06:44.000000000 +0100
++++ jasper-1.900.1/src/libjasper/base/jas_icc.c	2014-12-11 15:16:37.971272386 +0100
+@@ -1009,7 +1009,6 @@ static int jas_icccurv_input(jas_iccattr
+ 	return 0;
+ 
+ error:
+-	jas_icccurv_destroy(attrval);
+ 	return -1;
+ }
+ 
+@@ -1127,7 +1126,6 @@ static int jas_icctxtdesc_input(jas_icca
+ #endif
+ 	return 0;
+ error:
+-	jas_icctxtdesc_destroy(attrval);
+ 	return -1;
+ }
+ 
+@@ -1206,8 +1204,6 @@ static int jas_icctxt_input(jas_iccattrv
+ 		goto error;
+ 	return 0;
+ error:
+-	if (txt->string)
+-		jas_free(txt->string);
+ 	return -1;
+ }
+ 
+@@ -1328,7 +1324,6 @@ static int jas_icclut8_input(jas_iccattr
+ 		goto error;
+ 	return 0;
+ error:
+-	jas_icclut8_destroy(attrval);
+ 	return -1;
+ }
+ 
+@@ -1497,7 +1492,6 @@ static int jas_icclut16_input(jas_iccatt
+ 		goto error;
+ 	return 0;
+ error:
+-	jas_icclut16_destroy(attrval);
+ 	return -1;
+ }
+ 
diff --git a/pkgs/development/libraries/jasper/jasper-CVE-2014-8138.diff b/pkgs/development/libraries/jasper/jasper-CVE-2014-8138.diff
new file mode 100644
index 000000000000..cbf0899d807a
--- /dev/null
+++ b/pkgs/development/libraries/jasper/jasper-CVE-2014-8138.diff
@@ -0,0 +1,16 @@
+From RedHat: https://bugzilla.redhat.com/attachment.cgi?id=967280&action=diff
+
+--- jasper-1.900.1.orig/src/libjasper/jp2/jp2_dec.c	2014-12-11 14:06:44.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jp2/jp2_dec.c	2014-12-11 14:06:26.000000000 +0100
+@@ -386,6 +386,11 @@ jas_image_t *jp2_decode(jas_stream_t *in
+ 	/* Determine the type of each component. */
+ 	if (dec->cdef) {
+ 		for (i = 0; i < dec->numchans; ++i) {
++			/* Is the channel number reasonable? */
++			if (dec->cdef->data.cdef.ents[i].channo >= dec->numchans) {
++				jas_eprintf("error: invalid channel number in CDEF box\n");
++				goto error;
++			}
+ 			jas_image_setcmpttype(dec->image,
+ 			  dec->chantocmptlut[dec->cdef->data.cdef.ents[i].channo],
+ 			  jp2_getct(jas_image_clrspc(dec->image),
diff --git a/pkgs/development/libraries/jasper/jasper-CVE-2014-9029.diff b/pkgs/development/libraries/jasper/jasper-CVE-2014-9029.diff
new file mode 100644
index 000000000000..01db7f03cdf8
--- /dev/null
+++ b/pkgs/development/libraries/jasper/jasper-CVE-2014-9029.diff
@@ -0,0 +1,31 @@
+From RedHat: https://bugzilla.redhat.com/attachment.cgi?id=961994&action=diff
+
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_dec.c	2014-11-27 12:45:44.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_dec.c	2014-11-27 12:44:58.000000000 +0100
+@@ -1281,7 +1281,7 @@ static int jpc_dec_process_coc(jpc_dec_t
+ 	jpc_coc_t *coc = &ms->parms.coc;
+ 	jpc_dec_tile_t *tile;
+ 
+-	if (JAS_CAST(int, coc->compno) > dec->numcomps) {
++	if (JAS_CAST(int, coc->compno) >= dec->numcomps) {
+ 		jas_eprintf("invalid component number in COC marker segment\n");
+ 		return -1;
+ 	}
+@@ -1307,7 +1307,7 @@ static int jpc_dec_process_rgn(jpc_dec_t
+ 	jpc_rgn_t *rgn = &ms->parms.rgn;
+ 	jpc_dec_tile_t *tile;
+ 
+-	if (JAS_CAST(int, rgn->compno) > dec->numcomps) {
++	if (JAS_CAST(int, rgn->compno) >= dec->numcomps) {
+ 		jas_eprintf("invalid component number in RGN marker segment\n");
+ 		return -1;
+ 	}
+@@ -1356,7 +1356,7 @@ static int jpc_dec_process_qcc(jpc_dec_t
+ 	jpc_qcc_t *qcc = &ms->parms.qcc;
+ 	jpc_dec_tile_t *tile;
+ 
+-	if (JAS_CAST(int, qcc->compno) > dec->numcomps) {
++	if (JAS_CAST(int, qcc->compno) >= dec->numcomps) {
+ 		jas_eprintf("invalid component number in QCC marker segment\n");
+ 		return -1;
+ 	}
diff --git a/pkgs/development/libraries/libtoxcore/default.nix b/pkgs/development/libraries/libtoxcore/default.nix
index d569cf28c37c..de224f6b613b 100644
--- a/pkgs/development/libraries/libtoxcore/default.nix
+++ b/pkgs/development/libraries/libtoxcore/default.nix
@@ -1,17 +1,18 @@
-{ stdenv, fetchurl, autoconf, libtool, automake, libsodium, ncurses, libopus
+{ stdenv, fetchFromGitHub, autoconf, libtool, automake, libsodium, ncurses, libopus
 , libvpx, check, libconfig, pkgconfig }:
 
 let
   version = "f6b3e6e8fe98d2457827ac6da944e715f008a08a";
-  date = "20141203";
+  date = "20141219";
 in
 stdenv.mkDerivation rec {
-  name = "tox-core-${date}-${version}";
+  name = "tox-core-${date}-${builtins.substring 0 7 version}";
 
-  src = fetchurl {
-    url = "https://github.com/irungentoo/toxcore/tarball/${version}";
-    name = "${name}.tar.gz";
-    sha256 = "1zsx7saqs25vva3pp0bw31yqzrn40fx84w42ig6fiv723k9gpdzy";
+  src = fetchFromGitHub {
+    owner  = "irungentoo";
+    repo   = "toxcore";
+    rev    = version;
+    sha256 = "1wd817kix3zjyzzb68jz02iir3z4y5k5p40dgl7a29757yb9m608";
   };
 
   NIX_LDFLAGS = "-lgcc_s";
@@ -33,6 +34,7 @@ stdenv.mkDerivation rec {
     "--with-libsodium-headers=${libsodium}/include"
     "--with-libsodium-libs=${libsodium}/lib"
     "--enable-ntox"
+    "--enable-daemon"
   ];
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/sip/4.16.nix b/pkgs/development/python-modules/sip/4.16.nix
index 210346062f9e..b10852d17f39 100644
--- a/pkgs/development/python-modules/sip/4.16.nix
+++ b/pkgs/development/python-modules/sip/4.16.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, python, isPyPy }:
 
 if isPyPy then throw "sip not supported for interpreter ${python.executable}" else stdenv.mkDerivation rec {
-  name = "sip-4.16.1";
+  name = "sip-4.16.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/pyqt/sip/${name}/${name}.tar.gz";
-    sha256 = "1hknl71ij924syc9ik9nk4z051q3n75y7w27q9i07awpd39sp7m4";
+    sha256 = "1xapklcz5ndilax0gr2h1fqzhdzh7yvxfb3y0rxfcag1qlzl9nnf";
   };
 
   configurePhase = ''
diff --git a/pkgs/development/tools/build-managers/cargo/common.nix b/pkgs/development/tools/build-managers/cargo/common.nix
index 447aed275700..0eb728bad28e 100644
--- a/pkgs/development/tools/build-managers/cargo/common.nix
+++ b/pkgs/development/tools/build-managers/cargo/common.nix
@@ -14,16 +14,16 @@ rec {
     else throw "no snapshot to boostrap for this platform (missing platform url suffix)";
 
   snapshotHash = if stdenv.system == "i686-linux"
-    then "3204c8a38721199f69d2971db887d1dc71a63825"
+    then "4dea04e278192c5409f43794a98f20a8f59df2d9"
     else if stdenv.system == "x86_64-linux"
-    then "39ca0d02eac184bc764ff9c1f645ca361715c5c2"
+    then "3e48c573d3c4d26591feb7bfe988174720f08374"
     else if stdenv.system == "i686-darwin"
-    then "ebc1836424c4b3ba49f9adef271c50d2a8e134c0"
+    then "dc3d498c0567af4a0820e91756dcfff8fde0efac"
     else if stdenv.system == "x86_64-darwin"
-    then "a2045e95984b65eab4a704152566f8ab9a3be518"
+    then "f301bd8c3c93a5c88698c69190e464af1525ac96"
     else throw "no snapshot for platform ${stdenv.system}";
 
-  snapshotDate = "2014-11-22";
+  snapshotDate = "2014-12-21";
   snapshotName = "cargo-nightly-${platform}.tar.gz";
 
   snapshot = stdenv.mkDerivation {
diff --git a/pkgs/games/openttd/default.nix b/pkgs/games/openttd/default.nix
index a1af42814d12..d8ae07705c63 100644
--- a/pkgs/games/openttd/default.nix
+++ b/pkgs/games/openttd/default.nix
@@ -17,6 +17,12 @@ stdenv.mkDerivation rec {
     "--without-liblzo2"
   ];
 
+  # NOTE: Remove this patch in 1.4.5 or greater
+  patches = [
+    # Adapted from svn r27079
+    ./fix-freetype-1.4.4.patch
+  ];
+
   makeFlags = "INSTALL_PERSONAL_DIR=";
 
   postInstall = ''
diff --git a/pkgs/games/openttd/fix-freetype-1.4.4.patch b/pkgs/games/openttd/fix-freetype-1.4.4.patch
new file mode 100644
index 000000000000..37706ce05c96
--- /dev/null
+++ b/pkgs/games/openttd/fix-freetype-1.4.4.patch
@@ -0,0 +1,31 @@
+diff --git a/src/fontcache.cpp b/src/fontcache.cpp
+===================================================================
+--- a/src/fontcache.cpp
++++ b/src/fontcache.cpp
+@@ -537,6 +537,6 @@
+ 
+ 	/* Add 1 pixel for the shadow on the medium font. Our sprite must be at least 1x1 pixel */
+-	int width  = max(1, slot->bitmap.width + (this->fs == FS_NORMAL));
+-	int height = max(1, slot->bitmap.rows  + (this->fs == FS_NORMAL));
++	unsigned int width  = max(1U, (unsigned int)slot->bitmap.width + (this->fs == FS_NORMAL));
++	unsigned int height = max(1U, (unsigned int)slot->bitmap.rows  + (this->fs == FS_NORMAL));
+ 
+ 	/* Limit glyph size to prevent overflows later on. */
+@@ -554,6 +554,6 @@
+ 	/* Draw shadow for medium size */
+ 	if (this->fs == FS_NORMAL && !aa) {
+-		for (int y = 0; y < slot->bitmap.rows; y++) {
+-			for (int x = 0; x < slot->bitmap.width; x++) {
++		for (unsigned int y = 0; y < (unsigned int)slot->bitmap.rows; y++) {
++			for (unsigned int x = 0; x < (unsigned int)slot->bitmap.width; x++) {
+ 				if (aa ? (slot->bitmap.buffer[x + y * slot->bitmap.pitch] > 0) : HasBit(slot->bitmap.buffer[(x / 8) + y * slot->bitmap.pitch], 7 - (x % 8))) {
+ 					sprite.data[1 + x + (1 + y) * sprite.width].m = SHADOW_COLOUR;
+@@ -564,6 +564,6 @@
+ 	}
+ 
+-	for (int y = 0; y < slot->bitmap.rows; y++) {
+-		for (int x = 0; x < slot->bitmap.width; x++) {
++	for (unsigned int y = 0; y < (unsigned int)slot->bitmap.rows; y++) {
++		for (unsigned int x = 0; x < (unsigned int)slot->bitmap.width; x++) {
+ 			if (aa ? (slot->bitmap.buffer[x + y * slot->bitmap.pitch] > 0) : HasBit(slot->bitmap.buffer[(x / 8) + y * slot->bitmap.pitch], 7 - (x % 8))) {
+ 				sprite.data[x + y * sprite.width].m = FACE_COLOUR;
diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix
index dc9e17fbc65e..561eadf2f21a 100644
--- a/pkgs/os-specific/linux/kernel/patches.nix
+++ b/pkgs/os-specific/linux/kernel/patches.nix
@@ -61,16 +61,16 @@ rec {
 
   grsecurity_stable = grsecPatch
     { kversion  = "3.14.27";
-      revision  = "201412170659";
+      revision  = "201412211908";
       branch    = "stable";
-      sha256    = "0a6zyq1wvpkny7bwvjqqpvn9i87cidpjld7cn04wd1n0w1h4zyb3";
+      sha256    = "1xs34v1k970sv4i0a9qjcgk7i4cihl2xlgp1q7v320idpxrcym3a";
     };
 
   grsecurity_unstable = grsecPatch
     { kversion  = "3.17.7";
-      revision  = "201412170700";
+      revision  = "201412211910";
       branch    = "test";
-      sha256    = "0ljwzn1c13ljmc1mylaxlqpiygs8h79nd657kcbrv65yd7823wb6";
+      sha256    = "1s3ksf44mah398ix4ar49m6d8xwkk991pl1m8m441yhpm8h1ss3w";
     };
 
   grsec_fix_path =
diff --git a/pkgs/servers/monitoring/newrelic-sysmond/default.nix b/pkgs/servers/monitoring/newrelic-sysmond/default.nix
new file mode 100644
index 000000000000..7551bdf96692
--- /dev/null
+++ b/pkgs/servers/monitoring/newrelic-sysmond/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl }:
+
+assert stdenv.system == "x86_64-linux";
+
+stdenv.mkDerivation rec {
+  name = "newrelic-sysmond-1.5.1.93";
+
+  src = fetchurl {
+    url = "http://download.newrelic.com/server_monitor/release/newrelic-sysmond-1.5.1.93-linux.tar.gz";
+
+    sha256 = "1bfwyczcf7pvji8lx566jxgy8dhyf1gmqmi64lj10673a86axnwz";
+  };
+
+  installPhase = ''
+    mkdir -p $out/bin
+    install -v -m755 daemon/nrsysmond.x64 $out/bin/nrsysmond
+    patchelf --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
+      $out/bin/nrsysmond
+  '';
+
+  meta = {
+    homepage = http://newrelic.com/;
+
+    description = "System-wide monitoring for newrelic";
+
+    license = stdenv.lib.licenses.unfree;
+
+    maintainers = [ stdenv.lib.maintainers.shlevy ];
+  };
+}
diff --git a/pkgs/tools/backup/attic/default.nix b/pkgs/tools/backup/attic/default.nix
index f63c609c26d0..e9a8ca466129 100644
--- a/pkgs/tools/backup/attic/default.nix
+++ b/pkgs/tools/backup/attic/default.nix
@@ -6,7 +6,7 @@ python3Packages.buildPythonPackage rec {
 
   src = fetchurl {
     url = "https://github.com/jborg/attic/archive/0.14.tar.gz";
-    sha256 = "929da4b2e900770cd31558e87074ade347b44937c944218549259ea64646f203";
+    sha256 = "0zabh6cq7v1aml83y2r475vvy3mmmjbvkijk0bnyfx73z8hmsa3z";
   };
 
   propagatedBuildInputs = with python3Packages;
diff --git a/pkgs/tools/misc/pipelight/default.nix b/pkgs/tools/misc/pipelight/default.nix
index 42882c2701a7..5ead0e7c8bab 100644
--- a/pkgs/tools/misc/pipelight/default.nix
+++ b/pkgs/tools/misc/pipelight/default.nix
@@ -3,13 +3,13 @@
   }:
 
 let
-  wine_patches_version = "1.7.30";
-  wine_hash = "0v08w2av46y4wxrl8q4k9fhbi2cgawjaxclahqnpfw098bqcmxqh";
+  wine_patches_version = "1.7.33";
+  wine_hash = "0xcjsh3635i8wpzixzsl05m3dkq74vq193x3ipjr3fy0l9prslg3";
 
   wine_patches = fetchgit {
     url = "git://github.com/compholio/wine-compholio.git";
     rev = "refs/tags/v${wine_patches_version}";
-    sha256 = "02i0bpxxiyxavlcd5qm7wv0q4bm9bxr3ng3w2k234ww7cyndm0ws";
+    sha256 = "09af0cwdskz4clps39f48cp4lzm41kdzg30q8b511nyl0dppd75r";
   };
 
   wine_custom =
@@ -45,13 +45,13 @@ let
 
 in stdenv.mkDerivation rec {
 
-  version = "0.2.7.3";
+  version = "0.2.8";
 
   name = "pipelight-${version}";
 
   src = fetchurl {
     url = "https://bitbucket.org/mmueller2012/pipelight/get/v${version}.tar.gz";
-    sha256 = "0lifgs3aakyxfk6r2f2p27z0iqzgz1dinqfgwx3vdh3l93s8aifv";
+    sha256 = "1i440rf22fmd2w86dlm1mpi3nb7410rfczc0yldnhgsvp5p3sm5f";
   };
 
   buildInputs = [ wine_custom xlibs.libX11 gcc48_multi mesa curl ];
diff --git a/pkgs/tools/misc/trash-cli/default.nix b/pkgs/tools/misc/trash-cli/default.nix
new file mode 100644
index 000000000000..8650b9ff67dd
--- /dev/null
+++ b/pkgs/tools/misc/trash-cli/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, substituteAll, coreutils, python2, python2Packages }:
+
+python2Packages.buildPythonPackage rec {
+  name = "trash-cli-${version}";
+  version = "0.12.9.14";
+  namePrefix = "";
+
+  src = fetchurl {
+    url = "https://github.com/andreafrancia/trash-cli/archive/${version}.tar.gz";
+    sha256 = "10idvzrlppj632pw6mpk1zy9arn1x4lly4d8nfy9cz4zqv06lhvh";
+  };
+
+
+  patches = [
+    # Fix paths.
+    (substituteAll {
+      src = ./nix-paths.patch;
+      df = "${coreutils}/bin/df";
+      python = "${python2}/bin/${python2.executable}";
+      libc = "${stdenv.gcc.libc}/lib/libc.so.6";
+    })
+
+    # Apply https://github.com/JaviMerino/trash-cli/commit/4f45a37a3
+    # to fix failing test case.
+    ./fix_should_output_info_for_multiple_files.patch
+  ];
+
+  buildInputs = with python2Packages; [ nose mock ];
+
+  checkPhase = "nosetests";
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/andreafrancia/trash-cli;
+    description = "Command line tool for the desktop trash can";
+    maintainer = [ maintainers.rycee ];
+    license = licenses.gpl2;
+  };
+}
diff --git a/pkgs/tools/misc/trash-cli/fix_should_output_info_for_multiple_files.patch b/pkgs/tools/misc/trash-cli/fix_should_output_info_for_multiple_files.patch
new file mode 100644
index 000000000000..17947be74824
--- /dev/null
+++ b/pkgs/tools/misc/trash-cli/fix_should_output_info_for_multiple_files.patch
@@ -0,0 +1,60 @@
+From 4f45a37a390d7c844dd9c9b58fff7259a77ffff9 Mon Sep 17 00:00:00 2001
+From: Javi Merino <merino.jav@gmail.com>
+Date: Sun, 31 Aug 2014 05:45:17 -0700
+Subject: [PATCH] Fix should_output_info_for_multiple_files
+
+Test should_output_info_for_multiple_files fails because the output is
+not in the same order as the input.  Add assert_equal_any_order() to
+the OutputCollector, which sorts the expected and actual lines so that
+the output matches even if the order in which they are shown in
+trash-list is different.
+---
+ integration_tests/describe_trash_list.py | 8 +++++---
+ integration_tests/output_collector.py    | 8 ++++++++
+ 2 files changed, 13 insertions(+), 3 deletions(-)
+
+diff --git a/integration_tests/describe_trash_list.py b/integration_tests/describe_trash_list.py
+index 6dd8d30..3489a22 100644
+--- a/integration_tests/describe_trash_list.py
++++ b/integration_tests/describe_trash_list.py
+@@ -73,9 +73,9 @@ def should_output_info_for_multiple_files(self):
+ 
+         self.user.run_trash_list()
+ 
+-        self.user.should_read_output( "2000-01-01 00:00:01 /file1\n"
+-                                      "2000-01-01 00:00:02 /file2\n"
+-                                      "2000-01-01 00:00:03 /file3\n")
++        self.user.should_read_output_any_order( "2000-01-01 00:00:01 /file1\n"
++                                                "2000-01-01 00:00:02 /file2\n"
++                                                "2000-01-01 00:00:03 /file3\n")
+ 
+     @istest
+     def should_output_unknown_dates_with_question_marks(self):
+@@ -294,6 +294,8 @@ def error(self):
+         raise ValueError()
+     def should_read_output(self, expected_value):
+         self.stdout.assert_equal_to(expected_value)
++    def should_read_output_any_order(self, expected_value):
++        self.stdout.assert_equal_any_order(expected_value)
+     def should_read_error(self, expected_value):
+         self.stderr.assert_equal_to(expected_value)
+     def output(self):
+diff --git a/integration_tests/output_collector.py b/integration_tests/output_collector.py
+index 06dc002..7f3704f 100644
+--- a/integration_tests/output_collector.py
++++ b/integration_tests/output_collector.py
+@@ -9,6 +9,14 @@ def write(self,data):
+         self.stream.write(data)
+     def assert_equal_to(self, expected):
+         return self.should_be(expected)
++    def assert_equal_any_order(self, expected):
++        actual_sorted = sorted(self.stream.getvalue().splitlines(1))
++        actual = "".join(actual_sorted)
++
++        expected_sorted = sorted(expected.splitlines(1))
++        expected = "".join(expected_sorted)
++
++        assert_equals_with_unidiff(expected, actual)
+     def should_be(self, expected):
+         assert_equals_with_unidiff(expected, self.stream.getvalue())
+     def should_match(self, regex):
diff --git a/pkgs/tools/misc/trash-cli/nix-paths.patch b/pkgs/tools/misc/trash-cli/nix-paths.patch
new file mode 100644
index 000000000000..29412027b7a5
--- /dev/null
+++ b/pkgs/tools/misc/trash-cli/nix-paths.patch
@@ -0,0 +1,39 @@
+diff -Nurp trash-cli-0.12.9.14-orig/integration_tests/test_trash_rm_script.py trash-cli-0.12.9.14/integration_tests/test_trash_rm_script.py
+--- trash-cli-0.12.9.14-orig/integration_tests/test_trash_rm_script.py	2014-12-23 10:10:43.808470486 +0100
++++ trash-cli-0.12.9.14/integration_tests/test_trash_rm_script.py	2014-12-23 10:11:02.688517975 +0100
+@@ -9,7 +9,7 @@ from pprint import pprint
+ @istest
+ class WhenNoArgs:
+     def setUp(self):
+-        process = Popen(['python', 'trashcli/rm.py'],
++        process = Popen(['@python@', 'trashcli/rm.py'],
+                     env={'PYTHONPATH':'.'},
+                     stdin=None,
+                     stdout=PIPE,
+diff -Nurp trash-cli-0.12.9.14-orig/trashcli/list_mount_points.py trash-cli-0.12.9.14/trashcli/list_mount_points.py
+--- trash-cli-0.12.9.14-orig/trashcli/list_mount_points.py	2014-12-23 10:10:43.808470486 +0100
++++ trash-cli-0.12.9.14/trashcli/list_mount_points.py	2014-12-23 10:19:04.954796457 +0100
+@@ -12,7 +12,7 @@ def mount_points_from_getmnt():
+ 
+ def mount_points_from_df():
+     import subprocess
+-    df_output = subprocess.Popen(["df", "-P"], stdout=subprocess.PIPE).stdout
++    df_output = subprocess.Popen(["@df@", "-P"], stdout=subprocess.PIPE).stdout
+     return list(_mount_points_from_df_output(df_output))
+ 
+ def _mount_points_from_df_output(df_output):
+@@ -46,13 +46,7 @@ def _mounted_filesystems_from_getmnt() :
+                     ("mnt_freq", c_int),       # Dump frequency (in days).
+                     ("mnt_passno", c_int)]     # Pass number for `fsck'.
+ 
+-    if sys.platform == "cygwin":
+-        libc_name = "cygwin1.dll"
+-    else:
+-        libc_name = find_library("c")
+-
+-    if libc_name == None :
+-        libc_name="/lib/libc.so.6" # fix for my Gentoo 4.0
++    libc_name = "@libc@"
+ 
+     libc = cdll.LoadLibrary(libc_name)
+     libc.getmntent.restype = POINTER(mntent_struct)
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 43137bb4e1b7..454398bed5cf 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2581,6 +2581,8 @@ let
 
   traceroute = callPackage ../tools/networking/traceroute { };
 
+  trash-cli = callPackage ../tools/misc/trash-cli { };
+
   trickle = callPackage ../tools/networking/trickle {};
 
   trousers = callPackage ../tools/security/trousers { };
@@ -7761,6 +7763,8 @@ let
 
   net_snmp = callPackage ../servers/monitoring/net-snmp { };
 
+  newrelic-sysmond = callPackage ../servers/monitoring/newrelic-sysmond { };
+
   riemann = callPackage ../servers/monitoring/riemann { };
 
   oidentd = callPackage ../servers/identd/oidentd { };
@@ -8906,6 +8910,8 @@ let
 
   inherit (gnome3) gsettings_desktop_schemas;
 
+  gyre-fonts = callPackage ../data/fonts/gyre {};
+
   hicolor_icon_theme = callPackage ../data/icons/hicolor-icon-theme { };
 
   inconsolata = callPackage ../data/fonts/inconsolata {};
@@ -8918,6 +8924,8 @@ let
 
   kochi-substitute-naga10 = callPackage ../data/fonts/kochi-substitute-naga10 {};
 
+  league-of-moveable-type = callPackage ../data/fonts/league-of-moveable-type {};
+
   liberation_ttf_from_source = callPackage ../data/fonts/redhat-liberation-fonts { };
   liberation_ttf_binary = callPackage ../data/fonts/redhat-liberation-fonts/binary.nix { };
   liberation_ttf = liberation_ttf_binary;
@@ -10285,7 +10293,7 @@ let
   };
 
   easytag = callPackage ../applications/audio/easytag {
-    inherit (gnome3) gnome_icon_theme;
+    inherit (gnome3) gnome_icon_theme dconf;
   };
 
   mp3gain = callPackage ../applications/audio/mp3gain { };