summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/applications/misc/freicoin/default.nix30
-rw-r--r--pkgs/applications/misc/lyx/default.nix6
-rw-r--r--pkgs/applications/networking/ftp/filezilla/default.nix23
-rw-r--r--pkgs/applications/networking/instant-messengers/kadu/default.nix14
-rw-r--r--pkgs/applications/networking/instant-messengers/kadu/disable_some_plugins.patch28
-rw-r--r--pkgs/applications/networking/irc/weechat/default.nix15
-rw-r--r--pkgs/applications/science/logic/hol_light/default.nix6
-rw-r--r--pkgs/applications/science/logic/logisim/default.nix32
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/default.nix14
-rw-r--r--pkgs/applications/window-managers/ion-3/default.nix6
-rw-r--r--pkgs/development/compilers/gcc/4.7/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/hamlet/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/heist/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/http-reverse-proxy/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/monad-logger/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/persistent-postgresql/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/persistent/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/shakespeare-js/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/shelly/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-core/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-static/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-test/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/yesod/default.nix4
-rw-r--r--pkgs/development/libraries/libgadu/default.nix6
-rw-r--r--pkgs/development/libraries/tinyxml/2.6.2-add-pkgconfig.patch13
-rwxr-xr-xpkgs/development/libraries/tinyxml/2.6.2-entity.patch64
-rw-r--r--pkgs/development/libraries/tinyxml/2.6.2.nix61
-rw-r--r--pkgs/development/tools/profiling/sysprof/default.nix34
-rw-r--r--pkgs/lib/maintainers.nix1
-rw-r--r--pkgs/lib/types.nix2
-rw-r--r--pkgs/os-specific/linux/wpa_supplicant/default.nix3
-rw-r--r--pkgs/servers/ftp/vsftpd/default.nix6
-rw-r--r--pkgs/servers/nosql/redis/darwin.patch12
-rw-r--r--pkgs/tools/X11/xkb-switch/default.nix22
-rw-r--r--pkgs/tools/backup/bup/default.nix12
-rw-r--r--pkgs/tools/backup/obnam/default.nix10
-rw-r--r--pkgs/tools/filesystems/btrfsprogs/btrfs-progs-Fix-the-receive-code-pathing.patch146
-rw-r--r--pkgs/tools/filesystems/btrfsprogs/btrfs-receive-help-text.patch13
-rw-r--r--pkgs/tools/filesystems/btrfsprogs/btrfs-receive-lchown.patch12
-rw-r--r--pkgs/tools/filesystems/btrfsprogs/btrfs-set-received-uuid.c109
-rw-r--r--pkgs/tools/filesystems/btrfsprogs/default.nix19
-rw-r--r--pkgs/tools/filesystems/btrfsprogs/subvol-listing.patch34
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix38
-rw-r--r--pkgs/tools/networking/aircrack-ng/default.nix4
-rw-r--r--pkgs/tools/networking/httpie/default.nix20
-rw-r--r--pkgs/tools/networking/network-manager/default.nix7
-rw-r--r--pkgs/top-level/all-packages.nix20
-rw-r--r--pkgs/top-level/platforms.nix5
-rw-r--r--pkgs/top-level/python-packages.nix100
49 files changed, 853 insertions, 167 deletions
diff --git a/pkgs/applications/misc/freicoin/default.nix b/pkgs/applications/misc/freicoin/default.nix
new file mode 100644
index 000000000000..163cb04c27eb
--- /dev/null
+++ b/pkgs/applications/misc/freicoin/default.nix
@@ -0,0 +1,30 @@
+{ fetchurl, stdenv, db4, boost, gmp, mpfr, miniupnpc, qt4, unzip }:
+
+stdenv.mkDerivation rec {
+  version = "0.0.1-3";
+  name = "freicoin-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/freicoin/freicoin/archive/v${version}.zip";
+    sha256 = "19q4llv67kmvfr0x56rnqcf0d050dayv246q4i51mmkvjijc1qpf";
+  };
+
+  # I think that openssl and zlib are required, but come through other
+  # packages
+  buildInputs = [ db4 boost gmp mpfr miniupnpc qt4 unzip ];
+
+  configurePhase = "qmake";
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp freicoin-qt $out/bin
+  '';
+
+  meta = {
+    description = "Peer-to-peer currency with demurrage fee";
+    homepage = "http://freicoi.in/";
+    license = "MIT";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/applications/misc/lyx/default.nix b/pkgs/applications/misc/lyx/default.nix
index cb832ed99f5c..4c24f149f005 100644
--- a/pkgs/applications/misc/lyx/default.nix
+++ b/pkgs/applications/misc/lyx/default.nix
@@ -3,19 +3,19 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.0.4";
+  version = "2.0.5";
   name = "lyx-${version}";
 
   src = fetchurl {
     url = "ftp://ftp.lyx.org/pub/lyx/stable/2.0.x/${name}.tar.xz";
-    sha256 = "137dzmz1z6aqz9mdj8gmmi0k60s9sfn6gy916j175cwzq6hpncb8";
+    sha256 = "00pv2d9p8j1p6x87kalbn1bgxg9l4zqh65zcajrnh10a76isv6nk";
   };
 
   configureFlags = [
     #"--without-included-boost"
     /*  Boost is a huge dependency from which 1.4 MB of libs would be used.
         Using internal boost stuff only increases executable by around 0.2 MB. */
-    #"--without-included-mythes" # such a small library isn't worth a split package
+    #"--without-included-mythes" # such a small library isn't worth a separate package
   ];
 
   buildInputs = [
diff --git a/pkgs/applications/networking/ftp/filezilla/default.nix b/pkgs/applications/networking/ftp/filezilla/default.nix
new file mode 100644
index 000000000000..43ee98b55dcb
--- /dev/null
+++ b/pkgs/applications/networking/ftp/filezilla/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, dbus, gnutls2, wxGTK28, libidn, tinyxml, gettext, pkgconfig, xdg_utils, gtk2, sqlite36 }:
+
+let version = "3.6.0.2"; in
+stdenv.mkDerivation {
+  name = "filezilla-${version}";
+  
+  src = fetchurl {
+    url = "mirror://sourceforge/project/filezilla/FileZilla_Client/${version}/FileZilla_${version}_src.tar.bz2";
+    sha256 = "01n6k1q21i21451rdx3rgc4hhxghdn5b0ldzpjsp44ipgww5wsjk";
+  };
+  
+  configureFlags = [
+    "--disable-manualupdatecheck"
+  ];
+  
+  buildInputs = [ dbus gnutls2 wxGTK28 libidn tinyxml gettext pkgconfig xdg_utils gtk2 sqlite36 ];
+  
+  meta = {
+    homepage = "http://filezilla-project.org/";
+    description = "FileZilla is a cross-platform graphical FTP, FTPS and SFTP client a lot of features, supporting Windows, Linux, Mac OS X and more.";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/kadu/default.nix b/pkgs/applications/networking/instant-messengers/kadu/default.nix
index 7dc66886af6e..03cbb1ce0737 100644
--- a/pkgs/applications/networking/instant-messengers/kadu/default.nix
+++ b/pkgs/applications/networking/instant-messengers/kadu/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation {
 
-  name = "kadu-0.10.1";
+  name = "kadu-0.12.2";
 
   src = fetchurl {
-    url = http://download.kadu.im/stable/kadu-0.10.1.tar.bz2;
-    sha256 = "0j88pyp2nqpc57j38zr135ypfiv4v329gfgiz9rdbqi8j26cyp7g";
+    url = http://download.kadu.im/stable/kadu-0.12.2.tar.bz2;
+    sha256 = "0rqhkiyn8c7jigpxmvwh7daxsgjxlvd16zjdss1azdzd9x2dbym1";
   };
 
   buildInputs = [ cmake qt4 libgadu libXScrnSaver libsndfile libX11 alsaLib aspell libidn qca2 phonon pkgconfig
@@ -21,8 +21,12 @@ stdenv.mkDerivation {
     patchShebangs .
   '';
 
-  # because I was not able to get those working
-  patches = [ ./disable_some_plugins.patch ];
+  # Disable the kadu plugins I wasn't able to get to work
+  patchPhase = ''
+    sed -i -e '/mpd_mediaplayer/d' \
+           -e '/encryption_ng/d'   \
+           -e '/encryption_ng_simlite/d' Plugins.cmake
+  '';
 
   NIX_LDFLAGS="-lX11";
 
diff --git a/pkgs/applications/networking/instant-messengers/kadu/disable_some_plugins.patch b/pkgs/applications/networking/instant-messengers/kadu/disable_some_plugins.patch
deleted file mode 100644
index 0ee06c21382a..000000000000
--- a/pkgs/applications/networking/instant-messengers/kadu/disable_some_plugins.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/Plugins.cmake b/Plugins.cmake
-index ad63f20..c14a781 100644
---- a/Plugins.cmake
-+++ b/Plugins.cmake
-@@ -30,9 +30,9 @@ set (COMPILE_PLUGINS
- 
- # encryption
- 	# Encrypted chat support
--	encryption_ng
-+        # encryption_ng
- 	# OpenSSL encrypted chat support
--	encryption_ng_simlite
-+        # encryption_ng_simlite
- 
- # docking
- 	# Tray icon support (common part of all docking modules)
-@@ -104,9 +104,9 @@ if (UNIX)
- 
- 	# mediaplayer
- 		# MPD mediaplayer support
--		mpd_mediaplayer
-+		# mpd_mediaplayer
- 		# MPRIS Media Players support
--		mprisplayer_mediaplayer
-+                # mprisplayer_mediaplayer
- 	)
- endif (UNIX)
- 
diff --git a/pkgs/applications/networking/irc/weechat/default.nix b/pkgs/applications/networking/irc/weechat/default.nix
index eb1a9c4474f4..ba7953d737cf 100644
--- a/pkgs/applications/networking/irc/weechat/default.nix
+++ b/pkgs/applications/networking/irc/weechat/default.nix
@@ -1,20 +1,27 @@
 { stdenv, fetchurl, ncurses, openssl, perl, python, aspell, gnutls
-, zlib, curl , pkgconfig, libgcrypt, ruby, lua5, tcl, guile }:
+, zlib, curl , pkgconfig, libgcrypt, ruby, lua5, tcl, guile
+, pythonPackages, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  version = "0.3.9";
+  version = "0.3.9.2";
   name = "weechat-${version}";
 
   src = fetchurl {
     url = "http://weechat.org/files/src/${name}.tar.gz";
-    sha256 = "8666c788cbb212036197365df3ba3cf964a23e4f644d76ea51d66dbe3be593bb";
+    sha256 = "114cffqwnrqx8r4dslz7sc4i4ky4akzh863rnzaw3dnn9ky9r503";
   };
 
   buildInputs = 
     [ ncurses perl python openssl aspell gnutls zlib curl pkgconfig
-      libgcrypt ruby lua5 tcl guile
+      libgcrypt ruby lua5 tcl guile pythonPackages.pycrypto makeWrapper
     ];
 
+  postInstall = ''
+       wrapProgram "$out/bin/weechat-curses" \
+         --prefix PYTHONPATH : "$PYTHONPATH" \
+         --prefix PYTHONPATH : "$out/lib/${python.libPrefix}/site-packages"
+  '';
+
   meta = {
     homepage = http://http://www.weechat.org/;
     description = "A fast, light and extensible chat client";
diff --git a/pkgs/applications/science/logic/hol_light/default.nix b/pkgs/applications/science/logic/hol_light/default.nix
index 5d9866a650bc..e62751cde9d4 100644
--- a/pkgs/applications/science/logic/hol_light/default.nix
+++ b/pkgs/applications/science/logic/hol_light/default.nix
@@ -9,11 +9,11 @@ let
 in
 
 stdenv.mkDerivation {
-  name = "hol_light-20120529";
+  name = "hol_light-20121213";
   src = fetchsvn {
     url = http://hol-light.googlecode.com/svn/trunk;
-    rev = "141";
-    sha256 = "a11d7e5db7c6035a2debcf9e73f43c6322389aeac5bc4d123ebf58918052a57f";
+    rev = "153";
+    sha256 = "1n4da5k3jya8mf7dgif8cl5sr2dqf6vl21fw1fcdna215v2x1rc0";
   };
 
   buildInputs = [ ocaml findlib camlp5 ];
diff --git a/pkgs/applications/science/logic/logisim/default.nix b/pkgs/applications/science/logic/logisim/default.nix
new file mode 100644
index 000000000000..009bed3ffe2a
--- /dev/null
+++ b/pkgs/applications/science/logic/logisim/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, jre }:
+
+let version = "2.7.1"; in
+
+stdenv.mkDerivation {
+  name = "logisim-${version}";
+  
+  src = fetchurl {
+    url = "mirror://sourceforge/project/circuit/2.7.x/${version}/logisim-generic-${version}.jar";
+    sha256 = "1hkvc9zc7qmvjbl9579p84hw3n8wl3275246xlzj136i5b0phain";
+  };
+  
+  phases = [ "installPhase" ];
+  
+  installPhase = ''
+    mkdir -pv $out/bin
+    cp -v $src $out/logisim.jar
+    
+    cat > $out/bin/logisim << EOF
+    #!${stdenv.shell}
+    ${jre}/bin/java -jar $out/logisim.jar
+    EOF
+    
+    chmod +x $out/bin/logisim
+  '';
+  
+  meta = {
+    homepage = "http://ozark.hendrix.edu/~burch/logisim";
+    description = "Logisim is an educational tool for designing and simulating digital logic circuits.";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
index 219f8531787d..9483868bc5e3 100644
--- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, lib, patchelf, cdrkit, kernel, which, makeWrapper
-, libX11, libXt, libXext, libXmu, libXcomposite, libXfixes, libXrandr, libXcursor}:
+, libX11, libXt, libXext, libXmu, libXcomposite, libXfixes, libXrandr, libXcursor
+, dbus }:
 
 let version = "4.2.4"; in
 
@@ -13,7 +14,7 @@ stdenv.mkDerivation {
 
   KERN_DIR = "${kernel}/lib/modules/*/build";
 
-  buildInputs = [ patchelf cdrkit makeWrapper ];
+  buildInputs = [ patchelf cdrkit makeWrapper dbus ];
 
   installPhase = ''
     mkdir -p $out
@@ -56,7 +57,7 @@ stdenv.mkDerivation {
     cd ..
 
     # Change the interpreter for various binaries
-    for i in sbin/VBoxService bin/{VBoxClient,VBoxControl}
+    for i in sbin/VBoxService bin/{VBoxClient,VBoxControl} lib/VBoxGuestAdditions/mount.vboxsf
     do
         ${if stdenv.system == "i686-linux" then ''
           patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2 $i
@@ -66,14 +67,12 @@ stdenv.mkDerivation {
         ''
         else throw ("Architecture: "+stdenv.system+" not supported for VirtualBox guest additions")
         }
+        patchelf --set-rpath ${stdenv.gcc.gcc}/lib:${dbus}/lib:${libX11}/lib:${libXt}/lib:${libXext}/lib:${libXmu}/lib:${libXfixes}/lib:${libXrandr}/lib:${libXcursor}/lib $i
     done
 
-    # Change rpath for various binaries and libraries
-    patchelf --set-rpath ${stdenv.gcc.gcc}/lib:${libX11}/lib:${libXt}/lib:${libXext}/lib:${libXmu}/lib:${libXfixes}/lib:${libXrandr}/lib:${libXcursor}/lib bin/VBoxClient
-
     for i in lib/VBoxOGL*.so
     do
-        patchelf --set-rpath $out/lib $i
+        patchelf --set-rpath $out/lib:${dbus}/lib $i
     done
 
     # Remove references to /usr from various scripts and files
@@ -82,6 +81,7 @@ stdenv.mkDerivation {
 
     # Install binaries
     mkdir -p $out/sbin
+    install -m 4755 lib/VBoxGuestAdditions/mount.vboxsf $out/sbin/mount.vboxsf
     install -m 755 sbin/VBoxService $out/sbin
 
     mkdir -p $out/bin
diff --git a/pkgs/applications/window-managers/ion-3/default.nix b/pkgs/applications/window-managers/ion-3/default.nix
index e6714536cadd..b4dabb300c19 100644
--- a/pkgs/applications/window-managers/ion-3/default.nix
+++ b/pkgs/applications/window-managers/ion-3/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, x11, lua, gettext, groff }:
 
 stdenv.mkDerivation {
-  name = "ion-3rc-20070902";
+  name = "ion-3-20090110";
   meta = {
     description = "Ion is a tiling tabbed window manager designed with keyboard users in mind.";
     homepage = http://modeemi.fi/~tuomov/ion;
   };
   src = fetchurl {
-    url = http://iki.fi/tuomov/dl/ion-3rc-20070902.tar.gz;
-    sha256 = "062a0rgxzz4h1hih5lp7l2nfvhz095brag9fmnanzqc4dac228xl";
+    url = http://tuomov.iki.fi/software/dl/ion-3-20090110.tar.gz;
+    sha256 = "1nkks5a95986nyfkxvg2rik6zmwx0lh7szd5fji7yizccwzc9xns";
   };
   buildInputs = [ x11 lua gettext groff ];
   buildFlags = "LUA_DIR=${lua} X11_PREFIX=/no-such-path PREFIX=\${out}";
diff --git a/pkgs/development/compilers/gcc/4.7/default.nix b/pkgs/development/compilers/gcc/4.7/default.nix
index 60ef44f2a901..5ab7166204e9 100644
--- a/pkgs/development/compilers/gcc/4.7/default.nix
+++ b/pkgs/development/compilers/gcc/4.7/default.nix
@@ -89,9 +89,11 @@ let version = "4.7.2";
     gccArch = stdenv.lib.attrByPath [ "gcc" "arch" ] null cross;
     gccCpu = stdenv.lib.attrByPath [ "gcc" "cpu" ] null cross;
     gccAbi = stdenv.lib.attrByPath [ "gcc" "abi" ] null cross;
+    gccMode = stdenv.lib.attrByPath [ "gcc" "mode" ] null cross;
     withArch = if gccArch != null then " --with-arch=${gccArch}" else "";
     withCpu = if gccCpu != null then " --with-cpu=${gccCpu}" else "";
     withAbi = if gccAbi != null then " --with-abi=${gccAbi}" else "";
+    withMode = if gccMode != null then " --with-mode=${gccMode}" else "";
     crossMingw = (cross != null && cross.libc == "msvcrt");
 
     crossConfigureFlags =
@@ -99,6 +101,7 @@ let version = "4.7.2";
       withArch +
       withCpu +
       withAbi +
+      withMode +
       (if (crossMingw && crossStageStatic) then
         " --with-headers=${libcCross}/include" +
         " --with-gcc" +
diff --git a/pkgs/development/libraries/haskell/hamlet/default.nix b/pkgs/development/libraries/haskell/hamlet/default.nix
index 609b1ad4fb8e..906a8e2759aa 100644
--- a/pkgs/development/libraries/haskell/hamlet/default.nix
+++ b/pkgs/development/libraries/haskell/hamlet/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hamlet";
-  version = "1.1.2";
-  sha256 = "0k6wnjqmap4wv0p1hvzpd8br4wr4vda9aw87agzf7pix6hwmiybq";
+  version = "1.1.3.1";
+  sha256 = "04qqsjrn0fh9y4z7gjf3g60w69gqxhzq7dqkraq97p3w45fijm1i";
   buildDepends = [
     blazeBuilder blazeHtml blazeMarkup failure parsec shakespeare text
   ];
diff --git a/pkgs/development/libraries/haskell/heist/default.nix b/pkgs/development/libraries/haskell/heist/default.nix
index 4191536407e1..22860a85218e 100644
--- a/pkgs/development/libraries/haskell/heist/default.nix
+++ b/pkgs/development/libraries/haskell/heist/default.nix
@@ -5,14 +5,13 @@
 
 cabal.mkDerivation (self: {
   pname = "heist";
-  version = "0.10.1";
-  sha256 = "1rwik8x2bfb0474vc1wzbqlhjgas3089g1rvphs7irfbmyki1646";
+  version = "0.10.2";
+  sha256 = "13v9x5dph52xddkb2dy4gfrapvihf1881fin996ag0snbma3wh68";
   buildDepends = [
     aeson attoparsec blazeBuilder blazeHtml directoryTree dlist errors
     filepath hashable MonadCatchIOTransformers mtl random text time
     unorderedContainers vector xmlhtml
   ];
-  jailbreak = true;
   meta = {
     homepage = "http://snapframework.com/";
     description = "An Haskell template system supporting both HTML5 and XML";
diff --git a/pkgs/development/libraries/haskell/http-reverse-proxy/default.nix b/pkgs/development/libraries/haskell/http-reverse-proxy/default.nix
index 7e50b68286ce..62bc2ebac184 100644
--- a/pkgs/development/libraries/haskell/http-reverse-proxy/default.nix
+++ b/pkgs/development/libraries/haskell/http-reverse-proxy/default.nix
@@ -1,15 +1,15 @@
 { cabal, blazeBuilder, caseInsensitive, classyPreludeConduit
-, conduit, httpConduit, httpTypes, liftedBase, monadControl
-, network, networkConduit, text, wai, warp, word8
+, conduit, dataDefault, httpConduit, httpTypes, liftedBase
+, monadControl, network, networkConduit, text, wai, warp, word8
 }:
 
 cabal.mkDerivation (self: {
   pname = "http-reverse-proxy";
-  version = "0.1.0.7";
-  sha256 = "1fshng7bcpzjq5iqnvl2qsyia9yi80b8sbif18a3w86gsw5xcakk";
+  version = "0.1.1";
+  sha256 = "0p04zpw1v0zhzri7wpikc0b8g7n21kgl8j8238vv7xqxapkal0pc";
   buildDepends = [
     blazeBuilder caseInsensitive classyPreludeConduit conduit
-    httpConduit httpTypes liftedBase monadControl network
+    dataDefault httpConduit httpTypes liftedBase monadControl network
     networkConduit text wai warp word8
   ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/monad-logger/default.nix b/pkgs/development/libraries/haskell/monad-logger/default.nix
index 40f82c69a378..97078f2fb84f 100644
--- a/pkgs/development/libraries/haskell/monad-logger/default.nix
+++ b/pkgs/development/libraries/haskell/monad-logger/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "monad-logger";
-  version = "0.2.3.1";
-  sha256 = "15f85cf1nsy3xbjgikrn8cr09r70h8n2c67bpbxnfjna3ak94gkn";
+  version = "0.2.3.2";
+  sha256 = "0b5jfmzmsb7pdawcm5i74sy934q2d78pjs39invas502kx5bxzk5";
   buildDepends = [
     conduit fastLogger monadControl mtl resourcet text transformers
     transformersBase
diff --git a/pkgs/development/libraries/haskell/persistent-postgresql/default.nix b/pkgs/development/libraries/haskell/persistent-postgresql/default.nix
index e09a9b8d161e..8fdc9f641aac 100644
--- a/pkgs/development/libraries/haskell/persistent-postgresql/default.nix
+++ b/pkgs/development/libraries/haskell/persistent-postgresql/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "persistent-postgresql";
-  version = "1.1.2";
-  sha256 = "06ylfijm59akdzb6kd0qs5kw3qyn5ig7q9wbj0a8sgkf8hs2mmad";
+  version = "1.1.2.1";
+  sha256 = "1iz6w9isva1drbr37c8f42g3nnl78sp27ydaj0975yqyp7nh7and";
   buildDepends = [
     aeson conduit monadControl persistent postgresqlLibpq
     postgresqlSimple text time transformers
diff --git a/pkgs/development/libraries/haskell/persistent/default.nix b/pkgs/development/libraries/haskell/persistent/default.nix
index 817047fd5c08..1cec3d609b54 100644
--- a/pkgs/development/libraries/haskell/persistent/default.nix
+++ b/pkgs/development/libraries/haskell/persistent/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "persistent";
-  version = "1.1.2";
-  sha256 = "1khzbmdw3ham8ig58srvcdsz4j5r9mg2s2ackm1f40851fa0642r";
+  version = "1.1.3.1";
+  sha256 = "12gv2gjkrf7qchlv6kj0an8bvpkin8vdhdkxg4ck9ydw7hh292v2";
   buildDepends = [
     aeson attoparsec base64Bytestring blazeHtml blazeMarkup conduit
     liftedBase monadControl monadLogger pathPieces poolConduit
diff --git a/pkgs/development/libraries/haskell/shakespeare-js/default.nix b/pkgs/development/libraries/haskell/shakespeare-js/default.nix
index 228e35bab467..a7238ba52eb3 100644
--- a/pkgs/development/libraries/haskell/shakespeare-js/default.nix
+++ b/pkgs/development/libraries/haskell/shakespeare-js/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "shakespeare-js";
-  version = "1.1.0";
-  sha256 = "0rb1fim6xvpgc2in71drxgimh1z75p72zj0k6hwh2hyfwkj2yh9p";
+  version = "1.1.1";
+  sha256 = "1xzhb3ipax2489311hmiaxp9i44099bsbclcj3ds0rhdfa62xarg";
   buildDepends = [ aeson shakespeare text ];
   meta = {
     homepage = "http://www.yesodweb.com/book/shakespearean-templates";
diff --git a/pkgs/development/libraries/haskell/shelly/default.nix b/pkgs/development/libraries/haskell/shelly/default.nix
index a0ae240f6718..15245bfe0bcd 100644
--- a/pkgs/development/libraries/haskell/shelly/default.nix
+++ b/pkgs/development/libraries/haskell/shelly/default.nix
@@ -3,8 +3,8 @@
 
 cabal.mkDerivation (self: {
   pname = "shelly";
-  version = "0.15.3.3";
-  sha256 = "0g062rzpcksnszcjln9z39lw9cd084k0zs9pbr23s1985xkf6cj7";
+  version = "0.15.4";
+  sha256 = "1b8fn5fa350hhlswn97g6zn9454nzn9sz60x55j959phwys0fcdk";
   buildDepends = [
     mtl systemFileio systemFilepath text time unixCompat
   ];
diff --git a/pkgs/development/libraries/haskell/yesod-core/default.nix b/pkgs/development/libraries/haskell/yesod-core/default.nix
index 75b36eb0aeba..6f17a9a51774 100644
--- a/pkgs/development/libraries/haskell/yesod-core/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-core/default.nix
@@ -9,8 +9,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-core";
-  version = "1.1.6.1";
-  sha256 = "0pk7pxqp9g5pkbba2na503az9pghgqvs538pcz2k3r3cpb6nhgpa";
+  version = "1.1.7";
+  sha256 = "1z47h7ghhi8mvmrc0rcwb3si1bq4623i5x127k8fahcy6qk4qls8";
   buildDepends = [
     aeson blazeBuilder blazeHtml blazeMarkup caseInsensitive cereal
     clientsession conduit cookie failure fastLogger hamlet httpTypes
diff --git a/pkgs/development/libraries/haskell/yesod-static/default.nix b/pkgs/development/libraries/haskell/yesod-static/default.nix
index ada24ea3193e..7923b6e9e8e3 100644
--- a/pkgs/development/libraries/haskell/yesod-static/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-static/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-static";
-  version = "1.1.1.1";
-  sha256 = "1wp3ijiwsai9npf6zl0bq3fi4rbh0qjy8bii3d178sariv7588js";
+  version = "1.1.1.2";
+  sha256 = "0x3vrzqqddi4fmbivmy5pi66jmnc5fh68j5fjfxn5nyhp4n6z0sw";
   buildDepends = [
     base64Bytestring cereal conduit cryptoConduit cryptohash fileEmbed
     httpTypes systemFilepath text transformers unixCompat wai
diff --git a/pkgs/development/libraries/haskell/yesod-test/default.nix b/pkgs/development/libraries/haskell/yesod-test/default.nix
index ebbbc3f939fc..b03274902e67 100644
--- a/pkgs/development/libraries/haskell/yesod-test/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-test/default.nix
@@ -1,17 +1,18 @@
-{ cabal, attoparsec, blazeHtml, blazeMarkup, caseInsensitive, hspec
-, htmlConduit, httpTypes, HUnit, monadControl, network, persistent
-, poolConduit, text, transformers, wai, waiTest, xmlConduit
-, xmlTypes
+{ cabal, attoparsec, blazeBuilder, blazeHtml, blazeMarkup
+, caseInsensitive, cookie, hspec, htmlConduit, httpTypes, HUnit
+, monadControl, network, persistent, poolConduit, text, time
+, transformers, wai, waiTest, xmlConduit, xmlTypes
 }:
 
 cabal.mkDerivation (self: {
   pname = "yesod-test";
-  version = "0.3.2";
-  sha256 = "1wd5iwar6jxbv0p7p47js4spivwhph98h403bnmf3dl7069nyjcs";
+  version = "0.3.3";
+  sha256 = "1jb410r905wd26swh2rk59nbyy389gcfz261adhb69awmsyql5x3";
   buildDepends = [
-    attoparsec blazeHtml blazeMarkup caseInsensitive hspec htmlConduit
-    httpTypes HUnit monadControl network persistent poolConduit text
-    transformers wai waiTest xmlConduit xmlTypes
+    attoparsec blazeBuilder blazeHtml blazeMarkup caseInsensitive
+    cookie hspec htmlConduit httpTypes HUnit monadControl network
+    persistent poolConduit text time transformers wai waiTest
+    xmlConduit xmlTypes
   ];
   meta = {
     homepage = "http://www.yesodweb.com";
diff --git a/pkgs/development/libraries/haskell/yesod/default.nix b/pkgs/development/libraries/haskell/yesod/default.nix
index 717bba2853c9..50365296270d 100644
--- a/pkgs/development/libraries/haskell/yesod/default.nix
+++ b/pkgs/development/libraries/haskell/yesod/default.nix
@@ -12,8 +12,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod";
-  version = "1.1.7.1";
-  sha256 = "01sic3s3mwn67das6cffvndpf4c6n612hd183bvw4a80h7mbaqxz";
+  version = "1.1.7.2";
+  sha256 = "0mxxzcmp63sdn7g30ilp40dsj2iccajc9gpxycnqxqabdzhqkbm0";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/libgadu/default.nix b/pkgs/development/libraries/libgadu/default.nix
index 98324c184c66..430560107702 100644
--- a/pkgs/development/libraries/libgadu/default.nix
+++ b/pkgs/development/libraries/libgadu/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation {
 
-  name = "libgadu-1.11.0";
+  name = "libgadu-1.11.2";
 
   src = fetchurl {
-    url = http://toxygen.net/libgadu/files/libgadu-1.11.0.tar.gz;
-    sha256 = "045a0bd395k3ramdvlzyfx3878p42fv4r04rgasmdsm2n33wgm38";
+    url = http://toxygen.net/libgadu/files/libgadu-1.11.2.tar.gz;
+    sha256 = "0kifi9blhbimihqw4kaf6wyqhlx8fpp8nq4s6y280ar9p0il2n3z";
   };
 
   propagatedBuildInputs = [ zlib ];
diff --git a/pkgs/development/libraries/tinyxml/2.6.2-add-pkgconfig.patch b/pkgs/development/libraries/tinyxml/2.6.2-add-pkgconfig.patch
new file mode 100644
index 000000000000..ca89685a458f
--- /dev/null
+++ b/pkgs/development/libraries/tinyxml/2.6.2-add-pkgconfig.patch
@@ -0,0 +1,13 @@
+--- a/tinyxml.pc	1970-01-01 01:00:00.000000000 +0100
++++ b/tinyxml.pc	2012-12-29 08:52:07.512266072 +0100
+@@ -0,0 +1,10 @@
++prefix=@out@
++exec_prefix=${prefix}
++libdir=${exec_prefix}/lib
++includedir=${prefix}/include
++
++Name: TinyXML
++Description: A simple, small, C++ XML parser
++Version: @version@
++Libs: -L${libdir} -ltinyxml
++Cflags: -I${includedir}
diff --git a/pkgs/development/libraries/tinyxml/2.6.2-entity.patch b/pkgs/development/libraries/tinyxml/2.6.2-entity.patch
new file mode 100755
index 000000000000..3164261291ba
--- /dev/null
+++ b/pkgs/development/libraries/tinyxml/2.6.2-entity.patch
@@ -0,0 +1,64 @@
+? entity.patch
+Index: a/tinyxml.cpp
+===================================================================
+RCS file: b/tinyxml.cpp,v
+retrieving revision 1.105
+diff -u -r1.105 a/tinyxml.cpp
+--- tinyxml.cpp	5 Jun 2010 19:06:57 -0000	1.105
++++ tinyxml.cpp	19 Jul 2010 21:24:16 -0000
+@@ -57,30 +57,7 @@
+ 	{
+ 		unsigned char c = (unsigned char) str[i];
+ 
+-		if (    c == '&' 
+-		     && i < ( (int)str.length() - 2 )
+-			 && str[i+1] == '#'
+-			 && str[i+2] == 'x' )
+-		{
+-			// Hexadecimal character reference.
+-			// Pass through unchanged.
+-			// &#xA9;	-- copyright symbol, for example.
+-			//
+-			// The -1 is a bug fix from Rob Laveaux. It keeps
+-			// an overflow from happening if there is no ';'.
+-			// There are actually 2 ways to exit this loop -
+-			// while fails (error case) and break (semicolon found).
+-			// However, there is no mechanism (currently) for
+-			// this function to return an error.
+-			while ( i<(int)str.length()-1 )
+-			{
+-				outString->append( str.c_str() + i, 1 );
+-				++i;
+-				if ( str[i] == ';' )
+-					break;
+-			}
+-		}
+-		else if ( c == '&' )
++		if ( c == '&' )
+ 		{
+ 			outString->append( entity[0].str, entity[0].strLength );
+ 			++i;
+Index: a/xmltest.cpp
+===================================================================
+RCS file: b/xmltest.cpp,v
+retrieving revision 1.89
+diff -u -r1.89 a/xmltest.cpp
+--- xmltest.cpp	5 Jun 2010 17:41:52 -0000	1.89
++++ xmltest.cpp	19 Jul 2010 21:24:16 -0000
+@@ -1340,6 +1340,16 @@
+ 		}*/
+ 	}
+ 
++	#ifdef TIXML_USE_STL
++	{
++		TiXmlDocument xml;
++		xml.Parse("<foo>foo&amp;#xa+bar</foo>");
++		std::string str;
++		str << xml;
++		XmlTest( "Entity escaping", "<foo>foo&amp;#xa+bar</foo>", str.c_str() );
++	}
++	#endif
++
+ 	/*  1417717 experiment
+ 	{
+ 		TiXmlDocument xml;
diff --git a/pkgs/development/libraries/tinyxml/2.6.2.nix b/pkgs/development/libraries/tinyxml/2.6.2.nix
new file mode 100644
index 000000000000..8770859817ca
--- /dev/null
+++ b/pkgs/development/libraries/tinyxml/2.6.2.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchurl, unzip }:
+
+let
+  version = "2.6.2";
+in stdenv.mkDerivation {
+  name = "tinyxml-${version}";
+  
+  src = fetchurl {
+    url = "mirror://sourceforge/project/tinyxml/tinyxml/${version}/tinyxml_2_6_2.zip";
+    sha256 = "04nmw6im2d1xp12yir8va93xns5iz816pwi25n9cql3g3i8bjsxc";
+  };
+  
+  patches = [
+    # add pkgconfig file
+    ./2.6.2-add-pkgconfig.patch
+    
+    # http://sourceforge.net/tracker/index.php?func=detail&aid=3031828&group_id=13559&atid=313559
+    ./2.6.2-entity.patch
+  ];
+  
+  buildInputs = [ unzip ];
+  buildPhase = ''
+    # build xmltest
+    make
+    
+    # build the lib as a shared library
+    g++ -Wall -O2 -shared -fpic tinyxml.cpp \
+    tinyxmlerror.cpp tinyxmlparser.cpp      \
+    tinystr.cpp -o libtinyxml.so
+  '';
+  
+  doCheck = true;
+  checkPhase = ''
+    ./xmltest
+    result=$?
+    if [[ $result != 0 ]] ; then
+      exit $result
+    fi
+  '';
+  
+  installPhase = ''
+    mkdir -pv $out/include/
+    mkdir -pv $out/lib/pkgconfig/
+    mkdir -pv $out/share/doc/tinyxml/
+    
+    cp -v libtinyxml.so $out/lib/
+    cp -v *.h $out/include/
+    
+    substituteInPlace tinyxml.pc --replace "@out@" "$out"
+    substituteInPlace tinyxml.pc --replace "@version@" "${version}"
+    cp -v tinyxml.pc $out/lib/pkgconfig/
+    
+    cp -v docs/* $out/share/doc/tinyxml/
+  '';
+  
+  meta = {
+    description = "TinyXML is a simple, small, C++ XML parser that can be easily integrating into other programs.";
+    homepage = "http://www.grinninglizard.com/tinyxml/index.html";
+    license = "free-non-copyleft";
+  };
+}
diff --git a/pkgs/development/tools/profiling/sysprof/default.nix b/pkgs/development/tools/profiling/sysprof/default.nix
index 154561e27e1e..b6750f889373 100644
--- a/pkgs/development/tools/profiling/sysprof/default.nix
+++ b/pkgs/development/tools/profiling/sysprof/default.nix
@@ -1,44 +1,24 @@
-{ fetchurl, stdenv, kernel, binutils
+{ fetchurl, stdenv, binutils
 , pkgconfig, gtk, glib, pango, libglade }:
 
 stdenv.mkDerivation rec {
-  name = "sysprof-1.0.12-${kernel.version}";
+  name = "sysprof-1.2.0";
 
   src = fetchurl {
-    url = "http://www.daimi.au.dk/~sandmann/sysprof/sysprof-1.0.12.tar.gz";
-    sha256 = "0f0z1dh97swlrkw3cbv5k2jhy5rk7wxv55hp7yhysw3idgp8wbmz";
+    url = "http://www.sysprof.com/sysprof-1.2.0.tar.gz";
+    sha256 = "1wb4d844rsy8qjg3z5m6rnfm72da4xwzrrkkb1q5r10sq1pkrw5s";
   };
 
   buildInputs = [ binutils pkgconfig gtk glib pango libglade ];
 
-  patches = [ ./configure.patch ];
-
-  preConfigure = ''
-    kernelVersion=$(cd "${kernel}/lib/modules" && echo *)
-    echo "assuming Linux kernel version \`$kernelVersion'"
-
-    sed -i "module/Makefile" \
-        -e"s|^[[:blank:]]*KDIR[[:blank:]]*:=.*$|KDIR := ${kernel}/lib/modules/$kernelVersion/build|g ;
-	   s|\$(KMAKE) modules_install|install sysprof-module.ko $out/share/sysprof/module|g ;
-	   s|\\[ -e /sbin/depmod.*$|true|g"
-
-    # XXX: We won't run `depmod' after installing the module.
-  '';
-
-  configureFlags = "--enable-kernel-module";
-
-  preInstall = ''
-    mkdir -p "$out/share/sysprof/module"
-  '';
-
   meta = {
-    homepage = http://www.daimi.au.dk/~sandmann/sysprof/;
+    homepage = http://sysprof.com/;
     description = "Sysprof, a system-wide profiler for Linux";
     license = "GPLv2+";
 
     longDescription = ''
-      Sysprof is a sampling CPU profiler for Linux that uses a kernel
-      module to profile the entire system, not just a single
+      Sysprof is a sampling CPU profiler for Linux that uses the perf_event_open
+      system call to profile the entire system, not just a single
       application.  Sysprof handles shared libraries and applications
       do not need to be recompiled.  In fact they don't even have to
       be restarted.
diff --git a/pkgs/lib/maintainers.nix b/pkgs/lib/maintainers.nix
index d0ba6b8b6a55..b065a50ce004 100644
--- a/pkgs/lib/maintainers.nix
+++ b/pkgs/lib/maintainers.nix
@@ -37,6 +37,7 @@
   sander = "Sander van der Burg <s.vanderburg@tudelft.nl>";
   shlevy = "Shea Levy <shea@shealevy.com>";
   simons = "Peter Simons <simons@cryp.to>";
+  smironov = "Sergey Mironov <ierton@gmail.com>";
   thammers = "Tobias Hammerschmidt <jawr@gmx.de>";
   urkud = "Yury G. Kudryashov <urkud+nix@ya.ru>";
   viric = "LluĂ­s Batlle i Rossell <viric@viric.name>";
diff --git a/pkgs/lib/types.nix b/pkgs/lib/types.nix
index 6bc2e0f1ecb3..1cb1185b8bb8 100644
--- a/pkgs/lib/types.nix
+++ b/pkgs/lib/types.nix
@@ -11,7 +11,7 @@ with import ./trivial.nix;
 rec {
 
   hasType = x: isAttrs x && x ? _type;
-  typeOf = x: if hasType x then x._type else "";
+  typeOf = x: x._type or "";
 
   setType = typeName: value: value // {
     _type = typeName;
diff --git a/pkgs/os-specific/linux/wpa_supplicant/default.nix b/pkgs/os-specific/linux/wpa_supplicant/default.nix
index 3f26e159b431..b1bc15ff0836 100644
--- a/pkgs/os-specific/linux/wpa_supplicant/default.nix
+++ b/pkgs/os-specific/linux/wpa_supplicant/default.nix
@@ -38,10 +38,11 @@ stdenv.mkDerivation rec {
     mkdir -p $out/share/man/man5 $out/share/man/man8
     cp -v doc/docbook/*.5 $out/share/man/man5/
     cp -v doc/docbook/*.8 $out/share/man/man8/
-    mkdir -p $out/etc/dbus-1/system.d $out/share/dbus-1/system-services
+    mkdir -p $out/etc/dbus-1/system.d $out/share/dbus-1/system-services $out/etc/systemd/system
     cp -v dbus/*service $out/share/dbus-1/system-services
     sed -e "s@/sbin/wpa_supplicant@$out&@" -i $out/share/dbus-1/system-services/*
     cp -v dbus/dbus-wpa_supplicant.conf $out/etc/dbus-1/system.d
+    cp -v systemd/*.service $out/etc/systemd/system
   ''; # */
 
   meta = {
diff --git a/pkgs/servers/ftp/vsftpd/default.nix b/pkgs/servers/ftp/vsftpd/default.nix
index 0fc1531056bc..6dc3cc162975 100644
--- a/pkgs/servers/ftp/vsftpd/default.nix
+++ b/pkgs/servers/ftp/vsftpd/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, openssl, sslEnable ? false, libcap, pam }:
 
 stdenv.mkDerivation (rec {
-  name = "vsftpd-2.3.4";
+  name = "vsftpd-3.0.2";
   
   src = fetchurl {
-    url = "ftp://vsftpd.beasts.org/users/cevans/${name}.tar.gz";
-    sha256 = "0nhsqwnb8qkbxx5wjahara1ln85hp151v656psra5brpckwysrml";
+    url = "https://security.appspot.com/downloads/${name}.tar.gz";
+    sha256 = "0mjy345wszskz1vnk83360c1y37arwgap3gwz8hy13sjqpig0imy";
   };
 
   # The gcc-wrappers use -idirafter for glibc, and vsftpd also, and
diff --git a/pkgs/servers/nosql/redis/darwin.patch b/pkgs/servers/nosql/redis/darwin.patch
new file mode 100644
index 000000000000..002f09b36f34
--- /dev/null
+++ b/pkgs/servers/nosql/redis/darwin.patch
@@ -0,0 +1,12 @@
+diff -ru redis-2.4.7/deps/hiredis/Makefile redis-2.4.7.patched/deps/hiredis/Makefile
+--- redis-2.4.7/deps/hiredis/Makefile	2012-02-02 14:29:24.000000000 +0000
++++ redis-2.4.7.patched/deps/hiredis/Makefile	2012-12-07 17:14:43.000000000 +0000
+@@ -20,7 +20,7 @@
+   CFLAGS?=-std=c99 -pedantic $(OPTIMIZATION) -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings $(ARCH) $(PROF)
+   CCLINK?=-lm -pthread
+   LDFLAGS?=-L. -Wl,-rpath,.
+-  OBJARCH?=-arch i386 -arch x86_64
++  #OBJARCH?=-arch i386 -arch x86_64
+   DYLIBNAME?=libhiredis.dylib
+   DYLIB_MAKE_CMD?=libtool -dynamic -o ${DYLIBNAME} -lm ${DEBUG} - ${OBJ}
+   STLIBNAME?=libhiredis.a
diff --git a/pkgs/tools/X11/xkb-switch/default.nix b/pkgs/tools/X11/xkb-switch/default.nix
new file mode 100644
index 000000000000..0fc49038efee
--- /dev/null
+++ b/pkgs/tools/X11/xkb-switch/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchgit, cmake, libX11 }:
+
+stdenv.mkDerivation rec {
+  name = "xkb-switch-1.2";
+
+  src = fetchgit {
+    url = https://github.com/ierton/xkb-switch.git;
+    rev = "4c90511ecf2cacc040c97f034a13254c3fa9dfef";
+    sha256 = "1jxya67v1qnvbzd0cd5gj7xrwvxyfy1rpa70l8p30p9cmw3ahk41";
+  };
+
+  buildInputs = [ cmake libX11 ];
+
+  meta = {
+    description = "Switch X layouts from the command line";
+    homepage = https://github.com/ierton/xkb-switch.git;
+    maintainers = with stdenv.lib.maintainers; [smironov];
+    platforms = stdenv.lib.platforms.gnu;
+    license = "BSD";
+  };
+}
+
diff --git a/pkgs/tools/backup/bup/default.nix b/pkgs/tools/backup/bup/default.nix
index 586fc514ba65..eef465bd142c 100644
--- a/pkgs/tools/backup/bup/default.nix
+++ b/pkgs/tools/backup/bup/default.nix
@@ -3,12 +3,12 @@
 with stdenv.lib;
 
 stdenv.mkDerivation {
-  name = "bup-0.25git20120722";
+  name = "bup-0.25git20121224";
 
   src = fetchgit {
-    url = "https://github.com/apenwarr/bup.git";
-    sha256 = "3ad232d7f23071ed34f920bd4c3137583f1adffbe23c022896289bc0a03fe7aa";
-    rev = "02bd2b566ea5eec2fd656e0ae572b4c7b6b9550a";
+    url = "https://github.com/bup/bup.git";
+    sha256 = "f0e0c835ab83f00b28920d493e4150d2247113aad3a74385865c2a8c6f1ba7b8";
+    rev = "458e92da32ddd3c18fc1c3e52a76e9f0b48b832f";
   };
 
   buildNativeInputs = [ pandoc perl makeWrapper ];
@@ -26,8 +26,6 @@ stdenv.mkDerivation {
       substituteInPlace $f --replace "/usr/bin/env python" "${python}/bin/python"
     done
     substituteInPlace Makefile --replace "./format-subst.pl" "perl ./format-subst.pl"
-    substituteInPlace lib/bup/csetup.py \
-      --replace "'bupsplit.c'])" "'bupsplit.c'], library_dirs=['${python}/lib'])"
   '';
 
   makeFlags = [
@@ -42,6 +40,6 @@ stdenv.mkDerivation {
       Highly efficient file backup system based on the git packfile format.
       Capable of doing *fast* incremental backups of virtual machine images.
     '';
-    homepage = "https://github.com/apenwarr/bup";
+    homepage = "https://github.com/bup/bup";
   };
 }
diff --git a/pkgs/tools/backup/obnam/default.nix b/pkgs/tools/backup/obnam/default.nix
index 07b86c2e41ed..dcac235c6703 100644
--- a/pkgs/tools/backup/obnam/default.nix
+++ b/pkgs/tools/backup/obnam/default.nix
@@ -1,12 +1,14 @@
 { stdenv, fetchurl, python, pythonPackages, pycrypto, attr }:
 
-pythonPackages.buildPythonPackage {
-  name = "obnam-1.2";
+pythonPackages.buildPythonPackage rec {
+  name = "obnam-${version}";
+  version = "1.3";
+
   namePrefix = "";
 
   src = fetchurl rec {
-    url = "http://code.liw.fi/debian/pool/main/o/obnam/obnam_1.2.orig.tar.gz";
-    sha256 = "33457452726d5c393d98c565b8e1ab3ac11276cc42bf67c4eee6c4e4ac9976d6";
+    url = "http://code.liw.fi/debian/pool/main/o/obnam/obnam_${version}.orig.tar.gz";
+    sha256 = "1hmi58knv7qjw6jr5m28sip5gwzavk87i3s77xk72anaxhvf4g8w";
   };
 
   buildInputs = [ pythonPackages.sphinx attr ];
diff --git a/pkgs/tools/filesystems/btrfsprogs/btrfs-progs-Fix-the-receive-code-pathing.patch b/pkgs/tools/filesystems/btrfsprogs/btrfs-progs-Fix-the-receive-code-pathing.patch
new file mode 100644
index 000000000000..6dd0639c607e
--- /dev/null
+++ b/pkgs/tools/filesystems/btrfsprogs/btrfs-progs-Fix-the-receive-code-pathing.patch
@@ -0,0 +1,146 @@
+diff --git a/cmds-receive.c b/cmds-receive.c
+index a8be6fa..6b7cf12 100644
+--- a/cmds-receive.c
++++ b/cmds-receive.c
+@@ -52,11 +52,13 @@ static int g_verbose = 0;
+ struct btrfs_receive
+ {
+ 	int mnt_fd;
++	int dest_dir_fd;
+
+ 	int write_fd;
+ 	char *write_path;
+
+ 	char *root_path;
++	char *dest_dir_path; /* relative to root_path */
+ 	char *full_subvol_path;
+
+ 	struct subvol_info *cur_subvol;
+@@ -150,8 +152,11 @@ static int process_subvol(const char *path, const u8 *uuid, u64 ctransid,
+ 	r->cur_subvol = calloc(1, sizeof(*r->cur_subvol));
+ 	r->parent_subvol = NULL;
+
+-	r->cur_subvol->path = strdup(path);
+-	r->full_subvol_path = path_cat(r->root_path, path);
++	if (strlen(r->dest_dir_path) == 0)
++		r->cur_subvol->path = strdup(path);
++	else
++		r->cur_subvol->path = path_cat(r->dest_dir_path, path);
++	r->full_subvol_path = path_cat3(r->root_path, r->dest_dir_path, path);
+
+ 	fprintf(stderr, "At subvol %s\n", path);
+
+@@ -167,7 +172,7 @@ static int process_subvol(const char *path, const u8 *uuid, u64 ctransid,
+
+ 	memset(&args_v1, 0, sizeof(args_v1));
+ 	strcpy(args_v1.name, path);
+-	ret = ioctl(r->mnt_fd, BTRFS_IOC_SUBVOL_CREATE, &args_v1);
++	ret = ioctl(r->dest_dir_fd, BTRFS_IOC_SUBVOL_CREATE, &args_v1);
+ 	if (ret < 0) {
+ 		ret = -errno;
+ 		fprintf(stderr, "ERROR: creating subvolume %s failed. "
+@@ -195,8 +200,11 @@ static int process_snapshot(const char *path, const u8 *uuid, u64 ctransid,
+ 	r->cur_subvol = calloc(1, sizeof(*r->cur_subvol));
+ 	r->parent_subvol = NULL;
+
+-	r->cur_subvol->path = strdup(path);
+-	r->full_subvol_path = path_cat(r->root_path, path);
++	if (strlen(r->dest_dir_path) == 0)
++		r->cur_subvol->path = strdup(path);
++	else
++		r->cur_subvol->path = path_cat(r->dest_dir_path, path);
++	r->full_subvol_path = path_cat3(r->root_path, r->dest_dir_path, path);
+
+ 	fprintf(stderr, "At snapshot %s\n", path);
+
+@@ -243,7 +251,7 @@ static int process_snapshot(const char *path, const u8 *uuid, u64 ctransid,
+ 		goto out;
+ 	}
+
+-	ret = ioctl(r->mnt_fd, BTRFS_IOC_SNAP_CREATE_V2, &args_v2);
++	ret = ioctl(r->dest_dir_fd, BTRFS_IOC_SNAP_CREATE_V2, &args_v2);
+ 	close(args_v2.fd);
+ 	if (ret < 0) {
+ 		ret = -errno;
+@@ -790,17 +798,48 @@ struct btrfs_send_ops send_ops = {
+ int do_receive(struct btrfs_receive *r, const char *tomnt, int r_fd)
+ {
+ 	int ret;
++	char *dest_dir_full_path;
+ 	int end = 0;
+
+-	r->root_path = strdup(tomnt);
+-	r->mnt_fd = open(tomnt, O_RDONLY | O_NOATIME);
++	dest_dir_full_path = realpath(tomnt, NULL);
++	if (!dest_dir_full_path) {
++		ret = -errno;
++		fprintf(stderr, "ERROR: realpath(%s) failed. %s\n", tomnt,
++				strerror(-ret));
++		goto out;
++	}
++	r->dest_dir_fd = open(dest_dir_full_path, O_RDONLY | O_NOATIME);
++	if (r->dest_dir_fd < 0) {
++		ret = -errno;
++		fprintf(stderr, "ERROR: failed to open destination directory %s. %s\n",
++			    dest_dir_full_path, strerror(-ret));
++		goto out;
++	}
++
++	ret = find_mount_root(dest_dir_full_path, &r->root_path);
++	if (ret < 0) {
++		ret = -EINVAL;
++		fprintf(stderr, "ERROR: failed to determine mount point "
++				"for %s\n", dest_dir_full_path);
++		goto out;
++	}
++	r->mnt_fd = open(r->root_path, O_RDONLY | O_NOATIME);
+ 	if (r->mnt_fd < 0) {
+ 		ret = -errno;
+-		fprintf(stderr, "ERROR: failed to open %s. %s\n", tomnt,
++		fprintf(stderr, "ERROR: failed to open %s. %s\n", r->root_path,
+ 				strerror(-ret));
+ 		goto out;
+ 	}
+
++	/*
++	 * find_mount_root returns a root_path that is a subpath of
++	 * dest_dir_full_path. Now get the other part of root_path,
++	 * which is the destination dir relative to root_path.
++	 */
++	r->dest_dir_path = dest_dir_full_path + strlen(r->root_path);
++	if (r->dest_dir_path[0] == '/')
++		r->dest_dir_path++;
++
+ 	ret = subvol_uuid_search_init(r->mnt_fd, &r->sus);
+ 	if (ret < 0)
+ 		return ret;
+diff --git a/cmds-send.c b/cmds-send.c
+index 9b47e70..c408bc7 100644
+--- a/cmds-send.c
++++ b/cmds-send.c
+@@ -81,6 +81,14 @@ int find_mount_root(const char *path, char **mount_root)
+ 		}
+ 	}
+
++	if (!longest_match) {
++		fprintf(stderr, "ERROR: Failed to find mount root for path %s.\n",
++			    path);
++		fprintf(stderr, "Please make sure that you have a valid \
++			/etc/mtab file.\n");
++		return -ENOENT;
++	}
++
+ 	*mount_root = realpath(longest_match, NULL);
+ 	free(longest_match);
+
+diff --git a/send-utils.h b/send-utils.h
+index da407eb..a3e038b 100644
+--- a/send-utils.h
++++ b/send-utils.h
+@@ -65,5 +65,6 @@ void subvol_uuid_search_add(struct subvol_uuid_search *s,
+ char *path_cat(const char *p1, const char *p2);
+ char *path_cat3(const char *p1, const char *p2, const char *p3);
+
++int find_mount_root(const char *path, char **mount_root);
+
+ #endif /* SEND_UTILS_H_ */
diff --git a/pkgs/tools/filesystems/btrfsprogs/btrfs-receive-help-text.patch b/pkgs/tools/filesystems/btrfsprogs/btrfs-receive-help-text.patch
new file mode 100644
index 000000000000..a9892cc780ed
--- /dev/null
+++ b/pkgs/tools/filesystems/btrfsprogs/btrfs-receive-help-text.patch
@@ -0,0 +1,13 @@
+diff --git a/cmds-receive.c b/cmds-receive.c
+index a8be6fa..c182175 100644
+--- a/cmds-receive.c
++++ b/cmds-receive.c
+@@ -880,7 +880,7 @@ static const char * const receive_cmd_group_usage[] = {
+ };
+
+ static const char * const cmd_receive_usage[] = {
+-	"btrfs receive [-v] [-i <infile>] <mount>",
++	"btrfs receive [-v] [-f <infile>] <mount>",
+ 	"Receive subvolumes from stdin.",
+ 	"Receives one or more subvolumes that were previously ",
+ 	"sent with btrfs send. The received subvolumes are stored",
diff --git a/pkgs/tools/filesystems/btrfsprogs/btrfs-receive-lchown.patch b/pkgs/tools/filesystems/btrfsprogs/btrfs-receive-lchown.patch
new file mode 100644
index 000000000000..3abb1ba25d32
--- /dev/null
+++ b/pkgs/tools/filesystems/btrfsprogs/btrfs-receive-lchown.patch
@@ -0,0 +1,12 @@
+diff --git a/cmds-receive.c b/cmds-receive.c
+index 6b7cf12..a6a6a5b 100644
+--- a/cmds-receive.c
++++ b/cmds-receive.c
+@@ -731,7 +731,7 @@  static int process_chown(const char *path, u64 uid, u64 gid, void *user)
+ 		fprintf(stderr, "chown %s - uid=%llu, gid=%llu\n", path,
+ 				uid, gid);
+
+-	ret = chown(full_path, uid, gid);
++	ret = lchown(full_path, uid, gid);
+ 	if (ret < 0) {
+ 		ret = -errno;
diff --git a/pkgs/tools/filesystems/btrfsprogs/btrfs-set-received-uuid.c b/pkgs/tools/filesystems/btrfsprogs/btrfs-set-received-uuid.c
new file mode 100644
index 000000000000..483ec5f84155
--- /dev/null
+++ b/pkgs/tools/filesystems/btrfsprogs/btrfs-set-received-uuid.c
@@ -0,0 +1,109 @@
+/*
+btrfs receive currently mandates that incremental receives can only be performed on a parent subvolume
+that was also received. This means you cannot apply it to (snapshotted) subvolumes you still have on disk, 
+as they were not received themselves.
+
+This small utility allows you to set the received_uuid of a subvolume, tricking btrfs receive into using it.
+
+found on btrfs mailing list
+read the discussion here: http://comments.gmane.org/gmane.comp.file-systems.btrfs/21922
+*/
+
+#define _GNU_SOURCE
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <string.h>
+#include <uuid/uuid.h>
+#include <sys/ioctl.h>
+
+#include "ctree.h"
+#include "ioctl.h"
+#include "send-utils.h"
+
+#define CLEAR(var) memset(&var, 0, sizeof(var))
+
+
+int main(int argc, char **argv) {
+	int ret, fd;
+	struct subvol_uuid_search sus;
+	struct btrfs_ioctl_received_subvol_args rs_args;
+	struct subvol_info *si;
+	char uuidbuf[37], parent_uuidbuf[37], received_uuidbuf[37];
+
+
+	if (argc != 3 && argc != 4) {
+		printf("usage: btrfs-set-received-uuid btrfs-mountpoint src-subvolume-path-relative-to-mountpoint [dest-absolute-subvolume-path]\n");
+		exit(1);
+	}
+
+	printf("opening srcmnt %s\n", argv[1]);
+	fd = open(argv[1], O_RDONLY | O_NOATIME);
+	if (fd < 0) {
+		printf("failed to open srcmnt %s! %s\n", argv[1], strerror(errno));
+		exit(2);
+	}
+
+	puts("initializing sub search");
+	CLEAR(sus);
+	ret = subvol_uuid_search_init(fd, &sus);
+	if (ret < 0) {
+		printf("failed to initialize sub search! %s\n", strerror(-ret));
+		exit(3);
+	}
+	
+	printf("searching srcsub %s\n", argv[2]);
+	si = subvol_uuid_search(&sus, 0, NULL, 0, argv[2], subvol_search_by_path);
+	if (!si) {
+		puts("srcsub not found!");
+		exit(4);
+	}
+
+	uuid_unparse(si->uuid,                   uuidbuf);
+	uuid_unparse(si->parent_uuid,     parent_uuidbuf);
+	uuid_unparse(si->received_uuid, received_uuidbuf);
+
+	printf("\nsrcsub found:\n"
+	       "         uuid=%s\n"
+	       "  parent_uuid=%s\n"
+	       "received_uuid=%s\n"
+	       "ctransid=%Lu otransid=%Lu stransid=%Lu rtransid=%Lu\n\n",
+	       uuidbuf, parent_uuidbuf, received_uuidbuf,
+	       (unsigned long long)(si->ctransid),
+	       (unsigned long long)(si->otransid),
+	       (unsigned long long)(si->stransid),
+	       (unsigned long long)(si->rtransid));
+
+	if (argc == 3)
+		goto done;
+
+	printf("opening dst subvol %s\n", argv[3]);
+	fd = open(argv[3], O_RDONLY | O_NOATIME);
+	if (fd < 0) {
+		printf("failed to open dst subvol %s. %s\n", argv[3], strerror(errno));
+		exit(5);
+	}
+
+	printf("\nhere we go with BTRFS_IOC_SET_RECEIVED_SUBVOL:\n"
+	       "dstsub.received_uuid = srcsub.uuid == %s\n"
+	       "dstsub.stransid = srcsub.ctransid == %Lu\n\n",
+	       uuidbuf, (unsigned long long)(si->ctransid));
+
+	CLEAR(rs_args);
+	memcpy(rs_args.uuid, si->uuid, BTRFS_UUID_SIZE);
+	rs_args.stransid = si->ctransid;
+
+	ret = ioctl(fd, BTRFS_IOC_SET_RECEIVED_SUBVOL, &rs_args);
+	if (ret < 0) {
+		printf("BTRFS_IOC_SET_RECEIVED_SUBVOL failed: %s", strerror(-ret));
+		exit(6);
+	}
+
+done:
+	printf("done.\n");
+	exit(0);
+}
diff --git a/pkgs/tools/filesystems/btrfsprogs/default.nix b/pkgs/tools/filesystems/btrfsprogs/default.nix
index 4c1963f46332..a42c6aa7a7ec 100644
--- a/pkgs/tools/filesystems/btrfsprogs/default.nix
+++ b/pkgs/tools/filesystems/btrfsprogs/default.nix
@@ -11,8 +11,27 @@ stdenv.mkDerivation {
     sha256 = "72d4cd4fb23d876a17146d6231ad40a2151fa47c648485c54cf7478239b43764";
   };
 
+  patches = [
+    ./subvol-listing.patch
+    ./btrfs-receive-help-text.patch
+    ./btrfs-progs-Fix-the-receive-code-pathing.patch
+    ./btrfs-receive-lchown.patch
+  ];
+
   buildInputs = [ zlib libuuid acl attr e2fsprogs ];
 
+  postPatch = ''
+    cp ${./btrfs-set-received-uuid.c} btrfs-set-received-uuid.c
+  '';
+
+  postBuild = ''
+    gcc -O2 -luuid -o btrfs-set-received-uuid send-utils.o rbtree.o btrfs-list.o btrfs-set-received-uuid.c
+  '';
+
+  postInstall = ''
+    cp btrfs-set-received-uuid $out/bin
+  '';
+
   makeFlags = "prefix=$(out)";
 
   meta = {
diff --git a/pkgs/tools/filesystems/btrfsprogs/subvol-listing.patch b/pkgs/tools/filesystems/btrfsprogs/subvol-listing.patch
new file mode 100644
index 000000000000..1c113ddefbe3
--- /dev/null
+++ b/pkgs/tools/filesystems/btrfsprogs/subvol-listing.patch
@@ -0,0 +1,34 @@
+--- a/btrfs-list.c	2012-12-30 12:20:01.394137593 +0100
++++ b/btrfs-list.c	2012-12-30 12:22:47.242452906 +0100
+@@ -1004,6 +1004,23 @@
+ 	return 0;
+ }
+ 
++static void __drop_deleting_roots(struct root_lookup *root_lookup)
++{
++	struct rb_node *n;
++
++again:
++	n = rb_first(&root_lookup->root);
++	while (n) {
++		struct root_info *entry = rb_entry(n, struct root_info, rb_node);
++		if (!entry->ref_tree) {
++			rb_erase(n, &root_lookup->root);
++			free(entry);
++			goto again;
++		}
++		n = rb_next(n);
++	}
++}
++
+ static int __list_subvol_search(int fd, struct root_lookup *root_lookup)
+ {
+ 	int ret;
+@@ -1123,6 +1140,8 @@
+ 			break;
+ 	}
+ 
++	__drop_deleting_roots(root_lookup);
++
+ 	return 0;
+ }
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index 1fc5c08042cb..52c8e493fdcc 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -1,31 +1,31 @@
-{stdenv, fetchgit, python}:
+{ stdenv, fetchurl, python, pandoc, zip }:
 
-let pkgname = "youtube-dl";
-    pkgver  = "2012.09.27";
-    
+let
+  version = "2012.12.11";
 in
 stdenv.mkDerivation {
-  name = "${pkgname}-${pkgver}";
+  name = "youtube-dl-${version}";
 
-  src = fetchgit {
-    url = "git://github.com/rg3/${pkgname}";
-    rev = "refs/tags/${pkgver}";
-    sha256 = "a98f3339301324ddd6620f7b1353abed807cd8dea5586d6901d7fe69bc6a397c";
+  src = fetchurl {
+    url = "https://github.com/downloads/rg3/youtube-dl/youtube-dl.${version}.tar.gz";
+    sha256 = "03zv3z8p0fi122nqj7ff8hkgqscir4s7psm03rq7dfpg1z35klmn";
   };
 
-  buildInputs = [python];
-  buildPhase = "sed -i 's|#!/usr/bin/env python|#!#{python}/bin/python|' youtube-dl";
+  buildInputs = [ python ];
+  buildNativeInputs = [ pandoc zip ];
 
-  installPhase = ''
-    ensureDir $out/bin
-    cp youtube-dl $out/bin
+  patchPhase = ''
+    rm youtube-dl
+    substituteInPlace Makefile --replace "#!/usr/bin/env python" "#!${python}/bin/python"
+  '';
+
+  configurePhase = ''
+    makeFlagsArray=( PREFIX=$out SYSCONFDIR=$out/etc )
   '';
 
   meta = {
-    description = "A small command-line program to download videos from YouTube.com and a few more sites";
-    homepage = http://rg3.github.com/youtube-dl/;
-    maintainers = [
-      stdenv.lib.maintainers.bluescreen303
-    ];
+    homepage = "http://rg3.github.com/youtube-dl/";
+    description = "Command-line tool to download videos from YouTube.com and other sites";
+    maintainers = with stdenv.lib.maintainers; [ bluescreen303 simons ];
   };
 }
diff --git a/pkgs/tools/networking/aircrack-ng/default.nix b/pkgs/tools/networking/aircrack-ng/default.nix
index ea4f517000a2..c616ba9ee160 100644
--- a/pkgs/tools/networking/aircrack-ng/default.nix
+++ b/pkgs/tools/networking/aircrack-ng/default.nix
@@ -1,7 +1,7 @@
 {stdenv, fetchsvn, libpcap, openssl, zlib, wirelesstools}:
 
 let
-  rev = "2178";
+  rev = "2212";
 in
 stdenv.mkDerivation rec {
   name = "aircrack-ng-1.1-${rev}";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   src = fetchsvn {
     url = "http://trac.aircrack-ng.org/svn/trunk";
     inherit rev;
-    sha256 = "d16fd3a4e918fd6a855c0d0ae0c863247a45189e6ec35c0c7082d3d07b6438db";
+    sha256 = "80e567b4e4bc501721cd58f7efadcd13fc3b235a41486174826694a6e701ce09";
   };
 
   buildInputs = [libpcap openssl zlib];
diff --git a/pkgs/tools/networking/httpie/default.nix b/pkgs/tools/networking/httpie/default.nix
new file mode 100644
index 000000000000..200bac53086a
--- /dev/null
+++ b/pkgs/tools/networking/httpie/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, buildPythonPackage }:
+
+buildPythonPackage {
+  name = "httpie-0.3.1";
+  namePrefix = "";
+
+  src = fetchurl {
+    url = "http://pypi.python.org/packages/source/h/httpie/httpie-0.3.1.tar.gz";
+    sha256 = "0abjkwcirmp6qa190qgbgj5fmmkmk5aa3fdiyayl2indh6304x7a";
+  };
+
+  doCheck = false;
+
+  meta = {
+    description = "A command line HTTP client whose goal is to make CLI human-friendly";
+    homepage = http://httpie.org/;
+    license = "BSD";
+    maintainers = [ stdenv.lib.maintainers.antono ];
+  };
+}
diff --git a/pkgs/tools/networking/network-manager/default.nix b/pkgs/tools/networking/network-manager/default.nix
index ea0095c66848..316598809f1c 100644
--- a/pkgs/tools/networking/network-manager/default.nix
+++ b/pkgs/tools/networking/network-manager/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "network-manager-${version}";
-  version = "0.9.4.0";
+  version = "0.9.6.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/NetworkManager/0.9/NetworkManager-${version}.tar.xz";
-    sha256 = "eb4f124008b3d855a37205d03ef035b7218639cd7332bdae5567095977e93e0f";
+    sha256 = "1sx7h29j9h13qszcppja1p27zq2m7vdrylbcyb47n62x0lg426si";
   };
 
   preConfigure = ''
@@ -30,7 +30,8 @@ stdenv.mkDerivation rec {
     "--sysconfdir=/etc" "--localstatedir=/var"
     "--with-dbus-sys-dir=\${out}/etc/dbus-1/system.d"
     "--with-crypto=gnutls" "--disable-more-warnings"
-    "--with-systemdsystemunitdir=$(out)/etc/systemd/systemd" ];
+    "--with-systemdsystemunitdir=$(out)/etc/systemd/system"
+    "--with-kernel-firmware-dir=/run/current-system/firmware" ];
 
   buildInputs = [ wirelesstools udev libnl libuuid polkit ppp xz ];
 
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 1ed0c572e1ae..7efc21b827da 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -916,6 +916,8 @@ let
 
   hping = callPackage ../tools/networking/hping { };
 
+  httpie = callPackage ../tools/networking/httpie { };
+
   httpfs2 = callPackage ../tools/filesystems/httpfs { };
 
   # FIXME: This Hydra snapshot is outdated and depends on the `nixPerl',
@@ -1804,7 +1806,7 @@ let
 
   xvfb_run = callPackage ../tools/misc/xvfb-run { inherit (texFunctions) fontsConf; };
 
-  youtubeDL = callPackage ../tools/misc/youtube-dl { };
+  youtubeDL = callPackage ../tools/misc/youtube-dl { inherit (haskellPackages) pandoc; };
 
   zbar = callPackage ../tools/graphics/zbar {};
 
@@ -4992,6 +4994,10 @@ let
 
   telepathy_qt = callPackage ../development/libraries/telepathy/qt { };
 
+  tinyxml = tinyxml2;
+  
+  tinyxml2 = callPackage ../development/libraries/tinyxml/2.6.2.nix { };
+
   tk = callPackage ../development/libraries/tk { };
 
   tnt = callPackage ../development/libraries/tnt { };
@@ -7029,6 +7035,8 @@ let
 
   feh = callPackage ../applications/graphics/feh { };
 
+  filezilla = callPackage ../applications/networking/ftp/filezilla { };
+
   firefox = pkgs.firefoxPkgs.firefox;
 
   firefoxWrapper = wrapFirefox { browser = pkgs.firefox; };
@@ -7078,6 +7086,10 @@ let
 
   freerdpUnstable = callPackage ../applications/networking/remote/freerdp/unstable.nix { };
 
+  freicoin = callPackage ../applications/misc/freicoin {
+    db4 = db48;
+  };
+
   fspot = callPackage ../applications/graphics/f-spot {
     inherit (gnome) libgnome libgnomeui;
     gtksharp = gtksharp1;
@@ -7937,7 +7949,7 @@ let
     inherit (pkgs) python perl tcl ruby /*x11*/;
     lua = pkgs.lua5;
     # optional features by flags
-    flags = [ "X11" ]; # only flag "X11" by now
+    flags = [ "python" "X11" ]; # only flag "X11" by now
   };
 
   virtviewer = callPackage ../applications/virtualization/virt-viewer {};
@@ -8090,6 +8102,8 @@ let
     base14Fonts = "${ghostscript}/share/ghostscript/fonts";
   };
 
+  xkb_switch = callPackage ../tools/X11/xkb-switch { };
+
   libxpdf = callPackage ../applications/misc/xpdf/libxpdf.nix { };
 
   xpra = callPackage ../tools/X11/xpra {
@@ -8740,6 +8754,8 @@ let
 
   leo2 = callPackage ../applications/science/logic/leo2 {};
 
+  logisim = callPackage ../applications/science/logic/logisim {};
+
   matita = callPackage ../applications/science/logic/matita {
     ocaml = ocaml_3_11_2;
     inherit (ocamlPackages_3_11_2) findlib lablgtk ocaml_expat gmetadom ocaml_http
diff --git a/pkgs/top-level/platforms.nix b/pkgs/top-level/platforms.nix
index f00ad36f2e47..4ff31414722b 100644
--- a/pkgs/top-level/platforms.nix
+++ b/pkgs/top-level/platforms.nix
@@ -119,6 +119,11 @@ rec {
         UBIFS_FS_LZO y
         UBIFS_FS_ZLIB y
         UBIFS_FS_DEBUG n
+
+        # Kdb, for kernel troubles
+        KGDB y
+        KGDB_SERIAL_CONSOLE y
+        KGDB_KDB y
       '';
     kernelTarget = "uImage";
     uboot = "sheevaplug";
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 9c81ffc28829..e0768538cd6a 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -2916,7 +2916,7 @@ let pythonPackages = python.modules // rec {
   });
 
   twisted = buildPythonPackage rec {
-    name = "twisted-10.2.0";
+    name = "twisted-12.3.0";
 
     src = fetchurl {
       url = http://tmrc.mit.edu/mirror/twisted/Twisted/10.2/Twisted-10.2.0.tar.bz2;
@@ -3253,11 +3253,12 @@ let pythonPackages = python.modules // rec {
   # };
 
   cliapp = buildPythonPackage rec {
-    name = "cliapp-1.20120929";
+    name = "cliapp-${version}";
+    version = "1.20121216";
 
     src = fetchurl rec {
-      url = "http://code.liw.fi/debian/pool/main/p/python-cliapp/python-cliapp_1.20120929.orig.tar.gz";
-      sha256 = "30d5077e53b3e45f892b1c49feaaf4f47e4664400ed71435e77a82a2b823a0f8";
+      url = "http://code.liw.fi/debian/pool/main/p/python-cliapp/python-cliapp_${version}.orig.tar.gz";
+      sha256 = "1bzvc4aj3w8g85qycwz1jxa73jj8rl6zrgd4hi78kr4dgslcfns5";
     };
 
     buildInputs = [ sphinx ];
@@ -3316,11 +3317,12 @@ let pythonPackages = python.modules // rec {
   };
 
   larch = buildPythonPackage rec {
-    name = "larch-1.20121006";
+    name = "larch-${version}";
+    version = "1.20121216";
 
     src = fetchurl rec {
-      url = "http://code.liw.fi/debian/pool/main/p/python-larch/python-larch_1.20121006.orig.tar.gz";
-      sha256 = "b4482981010e9c22ee3fce6fdc664b8fc0a1a3a18ed30b40f247f3b44437ccfa";
+      url = "http://code.liw.fi/debian/pool/main/p/python-larch/python-larch_${version}.orig.tar.gz";
+      sha256 = "0w4hirs8wkp1hji6nxfmq4rahkd5rgw4cavvdhpdfr4mddycbis3";
     };
 
     buildInputs = [ sphinx ];
@@ -3337,4 +3339,88 @@ let pythonPackages = python.modules // rec {
     };
   };
 
+  whisper = buildPythonPackage rec {
+    name = "whisper-${version}";
+    version = "0.9.10";
+
+    src = fetchurl rec {
+      url = "https://launchpad.net/graphite/0.9/${version}/+download/${name}.tar.gz";
+      sha256 = "1zy4z4hrbiqj4ipcv2m9197hf03d4xphllqav9w4c8i6fn8zmd9n";
+    };
+
+    # error: invalid command 'test'
+    doCheck = false;
+
+    meta = {
+      homepage = http://graphite.wikidot.com/;
+      description = "Fixed size round-robin style database";
+      maintainers = [ stdenv.lib.maintainers.rickynils ];
+      platforms = python.meta.platforms;
+    };
+  };
+
+  carbon = buildPythonPackage rec {
+    name = "carbon-${version}";
+    version = "0.9.10";
+
+    src = fetchurl rec {
+      url = "https://launchpad.net/graphite/0.9/${version}/+download/${name}.tar.gz";
+      sha256 = "0wjhd87pvpcpvaj3wql2d92g8lpp33iwmxdkp7npic5mjl2y0dsg";
+    };
+
+    buildInputs = [ txamqp zopeInterface twisted ];
+    propagatedBuildInputs = [ whisper ];
+
+    # error: invalid command 'test'
+    doCheck = false;
+
+    meta = {
+      homepage = http://graphite.wikidot.com/;
+      description = "Backend data caching and persistence daemon for Graphite";
+      maintainers = [ stdenv.lib.maintainers.rickynils ];
+      platforms = python.meta.platforms;
+    };
+  };
+
+  txamqp = buildPythonPackage rec {
+    name = "txamqp-${version}";
+    version = "0.3";
+
+    src = fetchurl rec {
+      url = "https://launchpad.net/txamqp/trunk/${version}/+download/python-txamqp_${version}.orig.tar.gz";
+      sha256 = "1r2ha0r7g14i4b5figv2spizjrmgfpspdbl1m031lw9px2hhm463";
+    };
+
+    buildInputs = [ twisted ];
+
+    meta = {
+      homepage = https://launchpad.net/txamqp;
+      description = "Library for communicating with AMQP peers and brokers using Twisted";
+      maintainers = [ stdenv.lib.maintainers.rickynils ];
+      platforms = python.meta.platforms;
+    };
+  };
+
+  graphite_web = buildPythonPackage rec {
+    name = "graphite-web-${version}";
+    version = "0.9.10";
+
+    src = fetchurl rec {
+      url = "https://launchpad.net/graphite/0.9/${version}/+download/${name}.tar.gz";
+      sha256 = "1gj8i6j2i172cldqw98395235bn78ciagw6v17fgv01rmind3lag";
+    };
+
+    buildInputs = [ django pkgs.pycairo ldap memcached python.modules.sqlite3 ];
+
+    # error: invalid command 'test'
+    doCheck = false;
+
+    meta = {
+      homepage = http://graphite.wikidot.com/;
+      description = "Enterprise scalable realtime graphing";
+      maintainers = [ stdenv.lib.maintainers.rickynils ];
+      platforms = python.meta.platforms;
+    };
+  };
+
 }; in pythonPackages