summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorJack Cummings <jack@mudshark.org>2013-01-09 11:37:32 -0800
committerJack Cummings <jack@mudshark.org>2013-01-09 11:37:32 -0800
commitb3a23081e38e58751563821b46c4106c0a05b951 (patch)
treeace8d4b5beae88e912279b29a783f8339ab025ba /pkgs
parent663a21a8bdd279006f6448ad9449741b1b57622a (diff)
parentfdf11fdb7e5879b8444160c449067d37e7c060ce (diff)
downloadnixpkgs-b3a23081e38e58751563821b46c4106c0a05b951.tar
nixpkgs-b3a23081e38e58751563821b46c4106c0a05b951.tar.gz
nixpkgs-b3a23081e38e58751563821b46c4106c0a05b951.tar.bz2
nixpkgs-b3a23081e38e58751563821b46c4106c0a05b951.tar.lz
nixpkgs-b3a23081e38e58751563821b46c4106c0a05b951.tar.xz
nixpkgs-b3a23081e38e58751563821b46c4106c0a05b951.tar.zst
nixpkgs-b3a23081e38e58751563821b46c4106c0a05b951.zip
Merge remote-tracking branch 'upstream/master' into master_clean
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/audio/bristol/default.nix5
-rw-r--r--pkgs/applications/editors/zile/default.nix3
-rw-r--r--pkgs/applications/graphics/ImageMagick/default.nix4
-rw-r--r--pkgs/applications/graphics/ipe/default.nix47
-rw-r--r--pkgs/applications/misc/freicoin/default.nix30
-rw-r--r--pkgs/applications/misc/lyx/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/firefox/18.0.nix176
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix2
-rw-r--r--pkgs/applications/networking/ftp/filezilla/default.nix23
-rw-r--r--pkgs/applications/networking/p2p/gnunet/default.nix14
-rw-r--r--pkgs/applications/science/misc/boinc/default.nix32
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-annex/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix4
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/default.nix14
-rw-r--r--pkgs/applications/window-managers/xmonad/default.nix19
-rw-r--r--pkgs/applications/window-managers/xmonad/xmonad-contrib.nix4
-rw-r--r--pkgs/applications/window-managers/xmonad/xmonad-extras.nix5
-rw-r--r--pkgs/data/documentation/man-pages/default.nix4
-rw-r--r--pkgs/development/compilers/sbcl/default.nix10
-rw-r--r--pkgs/development/interpreters/python/2.6/default.nix10
-rw-r--r--pkgs/development/libraries/ffmpeg/1.0.nix4
-rw-r--r--pkgs/development/libraries/haskell/Diff/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/Graphalyze/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/X11/1.5.0.1.nix16
-rw-r--r--pkgs/development/libraries/haskell/X11/default.nix (renamed from pkgs/development/libraries/haskell/X11/1.6.0.2.nix)0
-rw-r--r--pkgs/development/libraries/haskell/active/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/basic-prelude/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/cautious-file/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/classy-prelude/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/clientsession/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/comonad-transformers/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/comonad/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/comonads-fd/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/cprng-aes/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/crypto-random-api/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/cryptohash/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/dataenc/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/diagrams/core.nix5
-rw-r--r--pkgs/development/libraries/haskell/diagrams/lib.nix5
-rw-r--r--pkgs/development/libraries/haskell/digestive-functors-heist/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/dimensional-tf/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/distributive/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/double-conversion/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/dual-tree/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/either/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/file-embed/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/filestore/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/fsnotify/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/gitit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/graphviz/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/hakyll/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/hashable/1.2.0.3.nix (renamed from pkgs/development/libraries/haskell/hashable/1.2.0.2.nix)4
-rw-r--r--pkgs/development/libraries/haskell/heist/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/highlighting-kate/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hsemail/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/http-conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/http-date/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/http-reverse-proxy/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/language-c-quote/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/lens/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/liblastfm/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/mainland-pretty/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/monoid-extras/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/multiarg/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/nat/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/nats/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/naturals/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/network-conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/numtype-tf/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/persistent-template/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/persistent/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/pretty-show/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/random-fu/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/random-source/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/semigroupoids/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/semigroups/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/srcloc/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/tabular/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/texmath/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/transformers-compat/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/type-level-natural-number/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/uu-parsinglib/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/void/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/wai-app-static/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/wai-extra/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/warp/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/wxHaskell/fix-bogus-pointer-assignment.patch13
-rw-r--r--pkgs/development/libraries/haskell/wxHaskell/wxc.nix2
-rw-r--r--pkgs/development/libraries/haskell/xss-sanitize/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yaml/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-core/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/zip-archive/default.nix4
-rw-r--r--pkgs/development/libraries/libmicrohttpd/default.nix4
-rw-r--r--pkgs/development/libraries/libvdpau/default.nix4
-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/libraries/v8/default.nix6
-rw-r--r--pkgs/development/libraries/wxGTK-2.9/default.nix9
-rw-r--r--pkgs/development/mobile/androidenv/addon.xml (renamed from pkgs/development/androidenv/addon.xml)0
-rw-r--r--pkgs/development/mobile/androidenv/addons.nix (renamed from pkgs/development/androidenv/addons.nix)0
-rw-r--r--pkgs/development/mobile/androidenv/androidsdk.nix (renamed from pkgs/development/androidenv/androidsdk.nix)0
-rw-r--r--pkgs/development/mobile/androidenv/build-app.nix (renamed from pkgs/development/androidenv/build-app.nix)0
-rw-r--r--pkgs/development/mobile/androidenv/default.nix (renamed from pkgs/development/androidenv/default.nix)0
-rw-r--r--pkgs/development/mobile/androidenv/emulate-app.nix (renamed from pkgs/development/androidenv/emulate-app.nix)0
-rwxr-xr-xpkgs/development/mobile/androidenv/generate-addons.sh (renamed from pkgs/development/androidenv/generate-addons.sh)0
-rw-r--r--pkgs/development/mobile/androidenv/generate-addons.xsl (renamed from pkgs/development/androidenv/generate-addons.xsl)0
-rwxr-xr-xpkgs/development/mobile/androidenv/generate-platforms.sh (renamed from pkgs/development/androidenv/generate-platforms.sh)0
-rw-r--r--pkgs/development/mobile/androidenv/generate-platforms.xsl (renamed from pkgs/development/androidenv/generate-platforms.xsl)0
-rwxr-xr-xpkgs/development/mobile/androidenv/generate-sysimages.sh (renamed from pkgs/development/androidenv/generate-sysimages.sh)0
-rw-r--r--pkgs/development/mobile/androidenv/generate-sysimages.xsl (renamed from pkgs/development/androidenv/generate-sysimages.xsl)0
-rw-r--r--pkgs/development/mobile/androidenv/platform-tools.nix (renamed from pkgs/development/androidenv/platform-tools.nix)0
-rw-r--r--pkgs/development/mobile/androidenv/platforms-linux.nix (renamed from pkgs/development/androidenv/platforms-linux.nix)0
-rw-r--r--pkgs/development/mobile/androidenv/platforms-macosx.nix (renamed from pkgs/development/androidenv/platforms-macosx.nix)0
-rw-r--r--pkgs/development/mobile/androidenv/repository-7.xml (renamed from pkgs/development/androidenv/repository-7.xml)0
-rw-r--r--pkgs/development/mobile/androidenv/support.nix (renamed from pkgs/development/androidenv/support.nix)0
-rw-r--r--pkgs/development/mobile/androidenv/sysimages.nix (renamed from pkgs/development/androidenv/sysimages.nix)0
-rw-r--r--pkgs/development/mobile/titaniumenv/build-app.nix87
-rw-r--r--pkgs/development/mobile/titaniumenv/default.nix18
-rw-r--r--pkgs/development/mobile/titaniumenv/examples/default.nix38
-rw-r--r--pkgs/development/mobile/titaniumenv/examples/emulate-kitchensink/default.nix10
-rw-r--r--pkgs/development/mobile/titaniumenv/examples/kitchensink/default.nix24
-rw-r--r--pkgs/development/mobile/titaniumenv/examples/simulate-kitchensink/default.nix8
-rw-r--r--pkgs/development/mobile/titaniumenv/fixnativelibs.sed1
-rw-r--r--pkgs/development/mobile/titaniumenv/fixselfruntimev8.sed1
-rw-r--r--pkgs/development/mobile/titaniumenv/fixtiverify.sed1
-rw-r--r--pkgs/development/mobile/titaniumenv/titaniumsdk.nix57
-rw-r--r--pkgs/development/mobile/xcodeenv/build-app.nix92
-rw-r--r--pkgs/development/mobile/xcodeenv/default.nix15
-rw-r--r--pkgs/development/mobile/xcodeenv/simulate-app.nix17
-rw-r--r--pkgs/development/mobile/xcodeenv/xcodewrapper.nix24
-rw-r--r--pkgs/development/python-modules/generic/default.nix3
-rw-r--r--pkgs/development/tools/haskell/SourceGraph/default.nix4
-rw-r--r--pkgs/development/tools/haskell/hlint/default.nix4
-rw-r--r--pkgs/development/tools/haskell/splot/default.nix4
-rw-r--r--pkgs/development/tools/misc/automake/automake-1.13.x.nix40
-rw-r--r--pkgs/development/web/nodejs/default.nix2
-rw-r--r--pkgs/games/anki/default.nix67
-rw-r--r--pkgs/games/bsdgames/default.nix11
-rw-r--r--pkgs/lib/types.nix2
-rw-r--r--pkgs/misc/emulators/wine/default.nix4
-rw-r--r--pkgs/os-specific/linux/atop/default.nix4
-rw-r--r--pkgs/os-specific/linux/cryptsetup/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.2.nix4
-rwxr-xr-xpkgs/os-specific/linux/nvidia-x11/builder.sh30
-rw-r--r--pkgs/os-specific/linux/systemd/0001-Make-systemctl-daemon-reexec-do-the-right-thing-on-N.patch (renamed from pkgs/os-specific/linux/systemd/reexec.patch)17
-rw-r--r--pkgs/os-specific/linux/systemd/0002-Ignore-duplicate-paths-in-systemctl-start.patch (renamed from pkgs/os-specific/linux/systemd/ignore-duplicates.patch)16
-rw-r--r--pkgs/os-specific/linux/systemd/0003-Start-device-units-for-uninitialised-encrypted-devic.patch (renamed from pkgs/os-specific/linux/systemd/crypt-devices-are-ready.patch)22
-rw-r--r--pkgs/os-specific/linux/systemd/0004-Set-switch-to-configuration-hints-for-some-units.patch74
-rw-r--r--pkgs/os-specific/linux/systemd/0005-sysinit.target-Drop-the-dependency-on-local-fs.targe.patch33
-rw-r--r--pkgs/os-specific/linux/systemd/0006-Don-t-call-plymouth-quit.patch38
-rw-r--r--pkgs/os-specific/linux/systemd/default.nix25
-rw-r--r--pkgs/os-specific/linux/sysvinit/default.nix11
-rw-r--r--pkgs/os-specific/linux/wpa_supplicant/default.nix7
-rw-r--r--pkgs/servers/ftp/vsftpd/default.nix16
-rw-r--r--pkgs/servers/samba/default.nix6
-rw-r--r--pkgs/tools/backup/bup/default.nix19
-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.nix12
-rw-r--r--pkgs/tools/networking/dd-agent/default.nix36
-rw-r--r--pkgs/tools/networking/maildrop/default.nix20
-rw-r--r--pkgs/tools/networking/maildrop/maildrop.configure.hack.patch13
-rw-r--r--pkgs/tools/networking/network-manager/default.nix8
-rw-r--r--pkgs/tools/networking/nzbget/default.nix12
-rw-r--r--pkgs/tools/package-management/nix/default.nix10
-rw-r--r--pkgs/top-level/all-packages.nix39
-rw-r--r--pkgs/top-level/haskell-packages.nix34
-rw-r--r--pkgs/top-level/platforms.nix5
-rw-r--r--pkgs/top-level/python-packages.nix179
-rw-r--r--pkgs/top-level/release.nix3
178 files changed, 2193 insertions, 392 deletions
diff --git a/pkgs/applications/audio/bristol/default.nix b/pkgs/applications/audio/bristol/default.nix
index 81d44fdcb74..0978b15bfaf 100644
--- a/pkgs/applications/audio/bristol/default.nix
+++ b/pkgs/applications/audio/bristol/default.nix
@@ -14,6 +14,11 @@ stdenv.mkDerivation  rec {
     xlibs.xproto
   ];
 
+  preInstall = ''
+    sed -e "s@\`which bristol\`@$out/bin/bristol@g" -i bin/startBristol
+    sed -e "s@\`which brighton\`@$out/bin/brighton@g" -i bin/startBristol
+  '';
+
   meta = with stdenv.lib; {
     description = "A range of synthesiser, electric piano and organ emulations";
     homepage = http://bristol.sourceforge.net;
diff --git a/pkgs/applications/editors/zile/default.nix b/pkgs/applications/editors/zile/default.nix
index a64561b1099..13a36e258fd 100644
--- a/pkgs/applications/editors/zile/default.nix
+++ b/pkgs/applications/editors/zile/default.nix
@@ -11,6 +11,9 @@ stdenv.mkDerivation rec {
   buildInputs = [ ncurses boehmgc ];
   buildNativeInputs = [ help2man perl ];
 
+  # `help2man' wants to run Zile, which fails when cross-compiling.
+  crossAttrs.buildNativeInputs = [];
+
   # Tests can't be run because most of them rely on the ability to
   # fiddle with the terminal.
   doCheck = false;
diff --git a/pkgs/applications/graphics/ImageMagick/default.nix b/pkgs/applications/graphics/ImageMagick/default.nix
index cbab2da551a..d66db51a4de 100644
--- a/pkgs/applications/graphics/ImageMagick/default.nix
+++ b/pkgs/applications/graphics/ImageMagick/default.nix
@@ -46,6 +46,8 @@ stdenv.mkDerivation rec {
     '' else "";
 
   meta = {
-    homepage = http://www.imagemagick.org;
+    homepage = http://www.imagemagick.org/;
+    description = "A software suite to create, edit, compose, or convert bitmap images";
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/applications/graphics/ipe/default.nix b/pkgs/applications/graphics/ipe/default.nix
new file mode 100644
index 00000000000..df50dd5bd79
--- /dev/null
+++ b/pkgs/applications/graphics/ipe/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, pkgconfig, zlib, qt4, freetype, cairo, lua5, texLive, ghostscriptX
+, makeWrapper }:
+let ghostscript = ghostscriptX; in
+stdenv.mkDerivation rec {
+  name = "ipe-7.1.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/ipe7/ipe/7.1.0/${name}-src.tar.gz";
+    sha256 = "04fs5slci3bmpgz8d038h3hnzzdw57xykcpsmisdxci2xrkxx41k";
+  };
+
+  # changes taken from Gentoo portage
+  preConfigure = ''
+    cd src
+    sed -i \
+      -e 's/fpic/fPIC/' \
+      -e 's/moc-qt4/moc/' \
+      config.mak || die
+    sed -i -e 's/install -s/install/' common.mak || die
+  '';
+
+  IPEPREFIX="$$out";
+  URWFONTDIR="${texLive}/texmf-dist/fonts/type1/urw/";
+
+  buildInputs = [
+    pkgconfig zlib qt4 freetype cairo lua5 texLive ghostscript makeWrapper
+  ];
+
+  postInstall = ''
+    for prog in $out/bin/*; do
+      wrapProgram "$prog" --prefix PATH : "${texLive}/bin"
+    done
+  '';
+
+  #TODO: make .desktop entry
+
+  meta = {
+    description = "An editor for drawing figures";
+    homepage = http://ipe7.sourceforge.net;
+    license = "GPLv3+";
+    longDescription = ''
+      Ipe is an extensible drawing editor for creating figures in PDF and Postscript format.
+      It supports making small figures for inclusion into LaTeX-documents
+      as well as presentations in PDF.
+    '';
+  };
+}
diff --git a/pkgs/applications/misc/freicoin/default.nix b/pkgs/applications/misc/freicoin/default.nix
new file mode 100644
index 00000000000..163cb04c27e
--- /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 cb832ed99f5..798b0e5162f 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.1";
   name = "lyx-${version}";
 
   src = fetchurl {
     url = "ftp://ftp.lyx.org/pub/lyx/stable/2.0.x/${name}.tar.xz";
-    sha256 = "137dzmz1z6aqz9mdj8gmmi0k60s9sfn6gy916j175cwzq6hpncb8";
+    sha256 = "18k9qbz40v6lqmkfcg98wvcv4wi4p36ach1jz3z2b15gbmv2gr9n";
   };
 
   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/browsers/firefox/18.0.nix b/pkgs/applications/networking/browsers/firefox/18.0.nix
new file mode 100644
index 00000000000..4e0b4194257
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox/18.0.nix
@@ -0,0 +1,176 @@
+{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL
+, libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs
+, freetype, fontconfig, file, alsaLib, nspr, nss, libnotify
+, yasm, mesa, sqlite, unzip, makeWrapper, pysqlite
+
+, # If you want the resulting program to call itself "Firefox" instead
+  # of "Shiretoko" or whatever, enable this option.  However, those
+  # binaries may not be distributed without permission from the
+  # Mozilla Foundation, see
+  # http://www.mozilla.org/foundation/trademarks/.
+  enableOfficialBranding ? false
+}:
+
+assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
+
+rec {
+
+  firefoxVersion = "18.0";
+
+  xulVersion = "18.0"; # this attribute is used by other packages
+
+
+  src = fetchurl {
+    urls = [
+        # It is better to use this url for official releases, to take load off Mozilla's ftp server.
+        "http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2"
+        # Fall back to this url for versions not available at releases.mozilla.org.
+        "ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2"
+    ];
+    sha1 = "3356562e69d699e5901df5a4da4e2e59dd1e7f57";
+  };
+
+  commonConfigureFlags =
+    [ "--enable-optimize"
+      #"--enable-profiling"
+      "--disable-debug"
+      "--enable-strip"
+      # "--with-system-jpeg" # Too old in nixpkgs
+      "--with-system-zlib"
+      "--with-system-bz2"
+      "--with-system-nspr"
+      # "--with-system-nss" # Too old in nixpkgs
+      # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
+      # "--enable-system-cairo" # disabled for the moment because our Cairo is too old
+      "--enable-system-sqlite"
+      "--disable-crashreporter"
+      "--disable-tests"
+      "--disable-necko-wifi" # maybe we want to enable this at some point
+      "--disable-installer"
+      "--disable-updater"
+    ];
+
+
+  xulrunner = stdenv.mkDerivation rec {
+    name = "xulrunner-${xulVersion}";
+
+    inherit src;
+
+    buildInputs =
+      [ pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
+        python dbus dbus_glib pango freetype fontconfig xlibs.libXi
+        xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file
+        alsaLib nspr nss libnotify xlibs.pixman yasm mesa
+        xlibs.libXScrnSaver xlibs.scrnsaverproto pysqlite
+        xlibs.libXext xlibs.xextproto sqlite unzip makeWrapper
+      ];
+
+    configureFlags =
+      [ "--enable-application=xulrunner"
+        "--disable-javaxpcom"
+      ] ++ commonConfigureFlags;
+
+    enableParallelBuilding = true;
+
+    preConfigure =
+      ''
+        export NIX_LDFLAGS="$NIX_LDFLAGS -L$out/lib/xulrunner-${xulVersion}"
+
+        mkdir ../objdir
+        cd ../objdir
+        configureScript=../mozilla-release/configure
+      ''; # */
+
+    #installFlags = "SKIP_GRE_REGISTRATION=1";
+
+    postInstall = ''
+      # Fix run-mozilla.sh search
+      libDir=$(cd $out/lib && ls -d xulrunner-[0-9]*)
+      echo libDir: $libDir
+      test -n "$libDir"
+      cd $out/bin
+      rm xulrunner
+
+      for i in $out/lib/$libDir/*; do
+          file $i;
+          if file $i | grep executable &>/dev/null; then
+              echo -e '#! /bin/sh\nexec "'"$i"'" "$@"' > "$out/bin/$(basename "$i")";
+              chmod a+x "$out/bin/$(basename "$i")";
+          fi;
+      done
+      for i in $out/lib/$libDir/*.so; do
+          patchelf --set-rpath "$(patchelf --print-rpath "$i"):$out/lib/$libDir" $i || true
+      done
+      for i in $out/lib/$libDir/{plugin-container,xulrunner,xulrunner-stub}; do
+          wrapProgram $i --prefix LD_LIBRARY_PATH ':' "$out/lib/$libDir"
+      done
+      rm -f $out/bin/run-mozilla.sh
+    ''; # */
+
+    meta = {
+      description = "Mozilla Firefox XUL runner";
+      homepage = http://www.mozilla.com/en-US/firefox/;
+    };
+
+    passthru = { inherit gtk; version = xulVersion; };
+  };
+
+
+  firefox = stdenv.mkDerivation rec {
+    name = "firefox-${firefoxVersion}";
+
+    inherit src;
+
+    enableParallelBuilding = true;
+
+    buildInputs =
+      [ pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 python
+        dbus dbus_glib pango freetype fontconfig alsaLib nspr nss libnotify
+        xlibs.pixman yasm mesa sqlite file unzip pysqlite
+      ];
+
+    propagatedBuildInputs = [xulrunner];
+
+    configureFlags =
+      [ "--enable-application=browser"
+        "--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}"
+        "--enable-chrome-format=jar"
+        "--disable-elf-hack"
+      ]
+      ++ commonConfigureFlags
+      ++ stdenv.lib.optional enableOfficialBranding "--enable-official-branding";
+
+    makeFlags = [
+      "SYSTEM_LIBXUL=1"
+    ];
+
+    # Hack to work around make's idea of -lbz2 dependency
+    preConfigure =
+      ''
+        find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${
+          stdenv.lib.concatStringsSep ":"
+            (map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc]))
+        }' ';'
+      '';
+
+    postInstall =
+      ''
+        ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $(echo $out/lib/firefox-*)/xulrunner
+        cd "$out/lib/"firefox-*
+        rm firefox
+        echo -e '#!${stdenv.shell}\nexec ${xulrunner}/bin/xulrunner "'"$PWD"'/application.ini" "$@"' > firefox
+        chmod a+x firefox
+      ''; # */
+
+    meta = {
+      description = "Mozilla Firefox - the browser, reloaded";
+      homepage = http://www.mozilla.com/en-US/firefox/;
+      maintainers = [ stdenv.lib.maintainers.eelco ];
+    };
+
+    passthru = {
+      inherit gtk xulrunner nspr;
+      isFirefox3Like = true;
+    };
+  };
+}
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix
index 3496097b86d..7e2bfb692a3 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix
@@ -13,6 +13,7 @@
 , libXrender
 , libXcursor
 , libXt
+, libvdpau
 , gtk
 , glib
 , pango
@@ -78,6 +79,7 @@ stdenv.mkDerivation {
   rpath = stdenv.lib.makeLibraryPath
     [ zlib alsaLib curl nss nspr fontconfig freetype expat libX11
       libXext libXrender libXcursor libXt gtk glib pango atk cairo gdk_pixbuf
+      libvdpau
     ];
 
   buildPhase = ":";
diff --git a/pkgs/applications/networking/ftp/filezilla/default.nix b/pkgs/applications/networking/ftp/filezilla/default.nix
new file mode 100644
index 00000000000..43ee98b55dc
--- /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/p2p/gnunet/default.nix b/pkgs/applications/networking/p2p/gnunet/default.nix
index f2fbf704649..02f782c75a1 100644
--- a/pkgs/applications/networking/p2p/gnunet/default.nix
+++ b/pkgs/applications/networking/p2p/gnunet/default.nix
@@ -1,19 +1,19 @@
 { stdenv, fetchurl, libextractor, libmicrohttpd, libgcrypt
 , zlib, gmp, curl, libtool, adns, sqlite, pkgconfig
-, libxml2, ncurses, gettext, libunistring
+, libxml2, ncurses, gettext, libunistring, libidn
 , makeWrapper }:
 
 stdenv.mkDerivation rec {
-  name = "gnunet-0.9.3";
+  name = "gnunet-0.9.5";
 
   src = fetchurl {
     url = "mirror://gnu/gnunet/${name}.tar.gz";
-    sha256 = "0ppirvwjb7w7270g0w83z6wyk984cnxv2ydxj7qr0j1cz2j6nn2h";
+    sha256 = "162bahbskhzc0b2pda7v36dckm3p5p9rnbv2w0fbl0xl2gln63aa";
   };
 
   buildInputs = [
     libextractor libmicrohttpd libgcrypt gmp curl libtool
-    zlib adns sqlite libxml2 ncurses
+    zlib adns sqlite libxml2 ncurses libidn
     pkgconfig gettext libunistring makeWrapper
   ];
 
@@ -36,6 +36,10 @@ stdenv.mkDerivation rec {
       echo "$i: replacing references to \`/tmp' by \`$TMPDIR'..."
       substituteInPlace "$i" --replace "/tmp" "$TMPDIR"
     done
+
+    # Ensure NSS installation works fine
+    configureFlags="$configureFlags --with-nssdir=$out/lib"
+    patchShebangs src/gns/nss/install-nss-plugin.sh
   '';
 
   doCheck = false;
@@ -72,7 +76,7 @@ stdenv.mkDerivation rec {
 
     license = "GPLv2+";
 
-    maintainers = [ stdenv.lib.maintainers.ludo ];
+    maintainers = with stdenv.lib.maintainers; [ ludo viric ];
     platforms = stdenv.lib.platforms.gnu;
   };
 }
diff --git a/pkgs/applications/science/misc/boinc/default.nix b/pkgs/applications/science/misc/boinc/default.nix
index 5cc79469b76..9d8bc705fa4 100644
--- a/pkgs/applications/science/misc/boinc/default.nix
+++ b/pkgs/applications/science/misc/boinc/default.nix
@@ -1,18 +1,20 @@
-{ fetchsvn, stdenv, autoconf, automake, pkgconfig, m4, curl,
-mesa, libXmu, libXi, freeglut, libjpeg, libtool, wxGTK,
-sqlite, gtk, patchelf, libXScrnSaver, libnotify, libX11 }:
+{ fetchgit, stdenv, autoconf, automake, pkgconfig, m4, curl,
+mesa, libXmu, libXi, freeglut, libjpeg, libtool, wxGTK, xcbutil,
+sqlite, gtk, patchelf, libXScrnSaver, libnotify, libX11, libxcb }:
 
 stdenv.mkDerivation rec {
-  name = "boinc-6.12.39";
+  name = "boinc-7.0.44";
 
-  src = fetchsvn {
-    url = "http://boinc.berkeley.edu/svn/tags/boinc_core_release_6_12_39";
-    rev = 24341;
-    sha256 = "158fkm4mr7wljsy8gav20km8jamf00mxjk1wsiqw6kx62bih37yb";
+  src = fetchgit {
+    url = "git://boinc.berkeley.edu/boinc.git";
+    rev = "7c449b1fb8a681ceb27d6895751b62a2b3adf0f2";
+    sha256 = "0hdramyl9nip3gadp7xiaz8ngyld15i93d8ai1nsd04bmrvdfqia";
   };
 
   buildInputs = [ libtool automake autoconf m4 pkgconfig curl mesa libXmu libXi
-    freeglut libjpeg wxGTK sqlite gtk libXScrnSaver libnotify patchelf libX11 ];
+    freeglut libjpeg wxGTK sqlite gtk libXScrnSaver libnotify patchelf libX11 
+    libxcb xcbutil
+  ];
 
   postConfigure = ''
     sed -i -e s,/etc,$out/etc, client/scripts/Makefile
@@ -27,17 +29,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  configureFlags = "--disable-server --disable-fast-install";
-
-  postInstall = "
-    # Remove a leading rpath to /tmp/... I don't know how it got there
-    # I could not manage to get rid of that through autotools.
-    for a in $out/bin/*; do
-      RPATH=$(patchelf --print-rpath $a)
-      NEWRPATH=$(echo $RPATH | sed 's/^[^:]*://')
-      patchelf --set-rpath $out/lib:$NEWRPATH $a
-    done
-  ";
+  configureFlags = "--disable-server";
 
   meta = {
     description = "Free software for distributed and grid computing";
diff --git a/pkgs/applications/version-management/git-and-tools/git-annex/default.nix b/pkgs/applications/version-management/git-and-tools/git-annex/default.nix
index 99e1f839093..aef86c06cfb 100644
--- a/pkgs/applications/version-management/git-and-tools/git-annex/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-annex/default.nix
@@ -12,14 +12,14 @@
 }:
 
 let
-  version = "3.20121211";
+  version = "3.20130107";
 in
 stdenv.mkDerivation {
   name = "git-annex-${version}";
 
   src = fetchurl {
     url = "http://git.kitenet.net/?p=git-annex.git;a=snapshot;sf=tgz;h=${version}";
-    sha256 = "1l5sffcn6mcfk0s808z490s30dbq8m4wi8a11ard35hyf599zawq";
+    sha256 = "15x4rmpxv3mgp8r4gb6jana5262nvyl6rm5p8slc5z5ijl0qwbzq";
     name = "git-annex-${version}.tar.gz";
   };
 
diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index 857b7de3486..db3833f1855 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -9,7 +9,7 @@
 
 let
 
-  version = "1.8.0.1";
+  version = "1.8.1";
 
   svn = subversionClient.override { perlBindings = true; };
 
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://git-core.googlecode.com/files/git-${version}.tar.gz";
-    sha1 = "4e7492f7558f3ba2a450c43efa7de3b0b1adc6c1";
+    sha1 = "wfj2pbqf9l56014dm330wb13qgcwx3dc";
   };
 
   patches = [ ./docbook2texi.patch ];
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
index 219f8531787..9483868bc5e 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/xmonad/default.nix b/pkgs/applications/window-managers/xmonad/default.nix
index fd215986fa3..a15755205ee 100644
--- a/pkgs/applications/window-managers/xmonad/default.nix
+++ b/pkgs/applications/window-managers/xmonad/default.nix
@@ -1,24 +1,19 @@
-{ cabal, extensibleExceptions, mtl, utf8String, X11, xmessage }:
+{ cabal, extensibleExceptions, filepath, mtl, utf8String, X11 }:
 
 cabal.mkDerivation (self: {
   pname = "xmonad";
-  version = "0.10";
-  sha256 = "19z5y36pybsm93x6hlj5hzyys9r4ag7hkdib5spsnryk2mv72xj6";
+  version = "0.11";
+  sha256 = "1nsv88y2b206n3s5hrsp5ginvz1bj818ns7jmikavb2g33akdgg5";
   isLibrary = true;
   isExecutable = true;
-  buildDepends = [ extensibleExceptions mtl utf8String X11 ];
+  buildDepends = [
+    extensibleExceptions filepath mtl utf8String X11
+  ];
   meta = {
     homepage = "http://xmonad.org";
     description = "A tiling window manager";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
-    maintainers = [
-      self.stdenv.lib.maintainers.andres
-    ];
+    maintainers = [ self.stdenv.lib.maintainers.andres ];
   };
-
-  preConfigure = ''
-    substituteInPlace XMonad/Core.hs --replace \
-      '"xmessage"' '"${xmessage}/bin/xmessage"'
-  '';
 })
diff --git a/pkgs/applications/window-managers/xmonad/xmonad-contrib.nix b/pkgs/applications/window-managers/xmonad/xmonad-contrib.nix
index 11c8531ad17..6716591eaba 100644
--- a/pkgs/applications/window-managers/xmonad/xmonad-contrib.nix
+++ b/pkgs/applications/window-managers/xmonad/xmonad-contrib.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "xmonad-contrib";
-  version = "0.10";
-  sha256 = "0lp7qr69rpjy4s3knhdgh2bp6zs81xp0az1lisv4a2i7i1ys7hfq";
+  version = "0.11";
+  sha256 = "188brys16b3wmxd22j4284wnpasm8bixdjfxl1jr2q2xi45nzks0";
   buildDepends = [
     extensibleExceptions mtl random utf8String X11 X11Xft xmonad
   ];
diff --git a/pkgs/applications/window-managers/xmonad/xmonad-extras.nix b/pkgs/applications/window-managers/xmonad/xmonad-extras.nix
index 334c7f59d57..025bab67e96 100644
--- a/pkgs/applications/window-managers/xmonad/xmonad-extras.nix
+++ b/pkgs/applications/window-managers/xmonad/xmonad-extras.nix
@@ -4,13 +4,14 @@
 
 cabal.mkDerivation (self: {
   pname = "xmonad-extras";
-  version = "0.10.1.2";
-  sha256 = "1v0yhi3sw7qks8d13amps0qs5p90j3prjh5abm02wblcd0bm1xay";
+  version = "0.11";
+  sha256 = "09r64z09mfdz86k7v5c6zds9ng0fjcp44kd8f5qg1sz40yblrny5";
   buildDepends = [
     hint libmpd mtl network parsec random regexPosix split X11 xmonad
     xmonadContrib
   ];
   configureFlags = "-f-with_hlist -fwith_split -fwith_parsec";
+  jailbreak = true;
   meta = {
     homepage = "http://projects.haskell.org/xmonad-extras";
     description = "Third party extensions for xmonad with wacky dependencies";
diff --git a/pkgs/data/documentation/man-pages/default.nix b/pkgs/data/documentation/man-pages/default.nix
index 465d83f8b4c..d00ca6c869f 100644
--- a/pkgs/data/documentation/man-pages/default.nix
+++ b/pkgs/data/documentation/man-pages/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "man-pages-3.43";
+  name = "man-pages-3.45";
 
   src = fetchurl {
     url = "mirror://kernel/linux/docs/man-pages/Archive/${name}.tar.xz";
-    sha256 = "05fjq8llfxm77mnf2jhly98780xbkakim7b7hbx6kafvvs5zisrf";
+    sha256 = "1lwqrp79xcyhnjlyg1n0imz5wc88lpgv909xxz8bdgbk7c1mky0h";
   };
 
   preBuild =
diff --git a/pkgs/development/compilers/sbcl/default.nix b/pkgs/development/compilers/sbcl/default.nix
index 607e1da8117..794a97b205f 100644
--- a/pkgs/development/compilers/sbcl/default.nix
+++ b/pkgs/development/compilers/sbcl/default.nix
@@ -4,11 +4,11 @@ let
   s= # Generated upstream information
   rec {
     baseName="sbcl";
-    version="1.1.2";
-    name="sbcl-1.1.2";
-    hash="04vp68cf0jfpjwx64iys7hi7qxbk2h7277wiym7k4jgirka08yhc";
-    url="mirror://sourceforge/project/sbcl/sbcl/1.1.2/sbcl-1.1.2-source.tar.bz2";
-    sha256="04vp68cf0jfpjwx64iys7hi7qxbk2h7277wiym7k4jgirka08yhc";
+    version="1.1.3";
+    name="${baseName}-${version}";
+    hash="1qy64fy0nvjdgzlmasswgvzg1b2h2rygnnjvlf9vj7wg16i5383i";
+    url="mirror://sourceforge/project/sbcl/sbcl/1.1.3/sbcl-1.1.3-source.tar.bz2";
+    sha256="1qy64fy0nvjdgzlmasswgvzg1b2h2rygnnjvlf9vj7wg16i5383i";
   };
   buildInputs = with a; [
     clisp makeWrapper
diff --git a/pkgs/development/interpreters/python/2.6/default.nix b/pkgs/development/interpreters/python/2.6/default.nix
index 6fa27c23525..3fe753a5a6f 100644
--- a/pkgs/development/interpreters/python/2.6/default.nix
+++ b/pkgs/development/interpreters/python/2.6/default.nix
@@ -9,11 +9,13 @@ with stdenv.lib;
 let
 
   majorVersion = "2.6";
-  version = "${majorVersion}.7";
+  version = "${majorVersion}.8";
 
+  # http://www.python.org/download/releases/2.6.8/
+  # md5 taken from webpage, python 2.6 will receive security fixes until Oct 2013
   src = fetchurl {
     url = "http://www.python.org/ftp/python/${version}/Python-${version}.tar.bz2";
-    sha256 = "0p0fd8i533zsdm6gc0jmhmdifccx4v064mh0i1hl2s6fcjhc20j5";
+    md5 = "c6e0420a21d8b23dee8b0195c9b9a125";
   };
   
   patches =
@@ -51,6 +53,10 @@ let
         for i in /usr /sw /opt /pkg; do
           substituteInPlace ./setup.py --replace $i /no-such-path
         done
+      '' + optionalString (stdenv ? gcc && stdenv.gcc.libc != null) ''
+        for i in Lib/plat-*/regen; do
+          substituteInPlace $i --replace /usr/include/ ${stdenv.gcc.libc}/include/
+        done
       '';
 
     NIX_CFLAGS_COMPILE = optionalString stdenv.isDarwin "-msse2";
diff --git a/pkgs/development/libraries/ffmpeg/1.0.nix b/pkgs/development/libraries/ffmpeg/1.0.nix
index 7ac77ffdcb7..d703fd8e369 100644
--- a/pkgs/development/libraries/ffmpeg/1.0.nix
+++ b/pkgs/development/libraries/ffmpeg/1.0.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, yasm, zlib, bzip2
+{ stdenv, fetchurl, pkgconfig, yasm, zlib, bzip2, alsaLib
 , mp3Support ? true, lame ? null
 , speexSupport ? true, speex ? null
 , theoraSupport ? true, libtheora ? null
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optional dc1394Support "--enable-libdc1394"
     ++ stdenv.lib.optional x11grabSupport "--enable-x11grab";
 
-  buildInputs = [ pkgconfig lame yasm zlib bzip2 ]
+  buildInputs = [ pkgconfig lame yasm zlib bzip2 alsaLib ]
     ++ stdenv.lib.optional mp3Support lame
     ++ stdenv.lib.optional speexSupport speex
     ++ stdenv.lib.optional theoraSupport libtheora
diff --git a/pkgs/development/libraries/haskell/Diff/default.nix b/pkgs/development/libraries/haskell/Diff/default.nix
index c28bef5cbd7..86e219ac91d 100644
--- a/pkgs/development/libraries/haskell/Diff/default.nix
+++ b/pkgs/development/libraries/haskell/Diff/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "Diff";
-  version = "0.1.3";
-  sha256 = "02dhy4rp3mkzm5x3h1rkdin2h8qcb7h7nhn14gl2gvl6wdykfh5w";
+  version = "0.2.0";
+  sha256 = "15hdkrzwajnfcx8bj4jdcy4jli115g9v20msw1xyc9wnwrmbz97k";
   meta = {
     description = "O(ND) diff algorithm in haskell";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/Graphalyze/default.nix b/pkgs/development/libraries/haskell/Graphalyze/default.nix
index 90bcb9f8605..489e338cba5 100644
--- a/pkgs/development/libraries/haskell/Graphalyze/default.nix
+++ b/pkgs/development/libraries/haskell/Graphalyze/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "Graphalyze";
-  version = "0.13.0.1";
-  sha256 = "1yk7iglsspbj0kxh5rhjkc6q65vz07vpygiig07w86g2s6gad8am";
+  version = "0.14.0.0";
+  sha256 = "027nxvv38cza6y6rivmvc9wpglbazkjrkyriwv3mn03pp21y53fg";
   buildDepends = [
     bktrees fgl filepath graphviz pandoc random text time
   ];
diff --git a/pkgs/development/libraries/haskell/X11/1.5.0.1.nix b/pkgs/development/libraries/haskell/X11/1.5.0.1.nix
deleted file mode 100644
index e36b940e923..00000000000
--- a/pkgs/development/libraries/haskell/X11/1.5.0.1.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ cabal, libX11, libXext, libXinerama, syb }:
-
-cabal.mkDerivation (self: {
-  pname = "X11";
-  version = "1.5.0.1";
-  sha256 = "0s8k3lhvlks6i1mwfnm5fimfd2f0sjw9k2p67is3x564kih7mh19";
-  buildDepends = [ syb ];
-  extraLibraries = [ libX11 libXext libXinerama ];
-  meta = {
-    homepage = "https://github.com/haskell-pkg-janitors/X11";
-    description = "A binding to the X11 graphics library";
-    license = self.stdenv.lib.licenses.bsd3;
-    platforms = self.ghc.meta.platforms;
-    maintainers = [ self.stdenv.lib.maintainers.andres ];
-  };
-})
diff --git a/pkgs/development/libraries/haskell/X11/1.6.0.2.nix b/pkgs/development/libraries/haskell/X11/default.nix
index dff5bca4400..dff5bca4400 100644
--- a/pkgs/development/libraries/haskell/X11/1.6.0.2.nix
+++ b/pkgs/development/libraries/haskell/X11/default.nix
diff --git a/pkgs/development/libraries/haskell/active/default.nix b/pkgs/development/libraries/haskell/active/default.nix
index 5c563ad9cd7..d3307d0a30d 100644
--- a/pkgs/development/libraries/haskell/active/default.nix
+++ b/pkgs/development/libraries/haskell/active/default.nix
@@ -2,9 +2,10 @@
 
 cabal.mkDerivation (self: {
   pname = "active";
-  version = "0.1.0.2";
-  sha256 = "1iymh3sd21ba7ijwv5afphn5vhmwchk6725hbcsdwk2d2x2gd674";
+  version = "0.1.0.3";
+  sha256 = "0jarc270z6raak1vz30jy2gl0pkj9a2x3ib5hq7vsl2ljbvbgyqi";
   buildDepends = [ newtype semigroupoids semigroups vectorSpace ];
+  jailbreak = true;
   meta = {
     description = "Abstractions for animation";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/basic-prelude/default.nix b/pkgs/development/libraries/haskell/basic-prelude/default.nix
index c30f3f5c7e0..df00aff549f 100644
--- a/pkgs/development/libraries/haskell/basic-prelude/default.nix
+++ b/pkgs/development/libraries/haskell/basic-prelude/default.nix
@@ -1,13 +1,13 @@
-{ cabal, hashable, ReadArgs, systemFilepath, text, transformers
-, unorderedContainers, vector
+{ cabal, hashable, liftedBase, ReadArgs, systemFilepath, text
+, transformers, unorderedContainers, vector
 }:
 
 cabal.mkDerivation (self: {
   pname = "basic-prelude";
-  version = "0.3.1.0";
-  sha256 = "15k89z78zjhga36wrvfn8b17hsmlwr1na6xq0gmimivfrdlnz5j0";
+  version = "0.3.2.0";
+  sha256 = "1sdwkh9xrsx8v96d06jll7cqc0p6ykv2y9gnjzpbfx0k3ns69kcj";
   buildDepends = [
-    hashable ReadArgs systemFilepath text transformers
+    hashable liftedBase ReadArgs systemFilepath text transformers
     unorderedContainers vector
   ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/cautious-file/default.nix b/pkgs/development/libraries/haskell/cautious-file/default.nix
index bbdb6d350c8..aa6e87565ae 100644
--- a/pkgs/development/libraries/haskell/cautious-file/default.nix
+++ b/pkgs/development/libraries/haskell/cautious-file/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cautious-file";
-  version = "1.0.1";
-  sha256 = "0mlgchvdhw9lhml4pqmxxvx1zcqmkcyl3yx6w3zp0df200njzsws";
+  version = "1.0.2";
+  sha256 = "1sw5ngwrarq1lsd4c6v2wdmgbhkkq6kpybb62r8ccm11ddgn3yiq";
   buildDepends = [ filepath ];
   meta = {
     description = "Ways to write a file cautiously, to reduce the chances of problems such as data loss due to crashes or power failures";
diff --git a/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix b/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix
index ee9c93fa7f9..c167f191d4d 100644
--- a/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "classy-prelude-conduit";
-  version = "0.4.2";
-  sha256 = "1p5j519s95cgiy5ig0agbfs4vyay8srzwsimnblij68zz5jjfrzp";
+  version = "0.4.3";
+  sha256 = "0ny4si6z6i6g6khcg9d3m9wks42sqh8i8kpgghhdwd37v32l3f34";
   buildDepends = [
     classyPrelude conduit monadControl resourcet transformers void
     xmlConduit
diff --git a/pkgs/development/libraries/haskell/classy-prelude/default.nix b/pkgs/development/libraries/haskell/classy-prelude/default.nix
index dbc53987861..9f8893bf72f 100644
--- a/pkgs/development/libraries/haskell/classy-prelude/default.nix
+++ b/pkgs/development/libraries/haskell/classy-prelude/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "classy-prelude";
-  version = "0.4.2";
-  sha256 = "082zqhyswzlnl250g8pf88nmh7pkwxwjwnkp0pm9960qsl6kbn7s";
+  version = "0.4.3";
+  sha256 = "1k2iszja03s8azypl8lpkdjvvqsgzg73cl1wp4jl2fqp1psqv36q";
   buildDepends = [
     basicPrelude hashable systemFilepath text transformers
     unorderedContainers vector
diff --git a/pkgs/development/libraries/haskell/clientsession/default.nix b/pkgs/development/libraries/haskell/clientsession/default.nix
index 03d3896e853..82c735b731f 100644
--- a/pkgs/development/libraries/haskell/clientsession/default.nix
+++ b/pkgs/development/libraries/haskell/clientsession/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "clientsession";
-  version = "0.8.0.1";
-  sha256 = "0r6j15wkyp4akhaxvimjxlwdka7cbm3c3nfk5bvkqan1nrip5rxv";
+  version = "0.8.0.2";
+  sha256 = "189v030g23lvky4vccdaw3p0p6drn26zly80a8n9bbn7b8kbfh4r";
   buildDepends = [
     base64Bytestring cereal cprngAes cryptoApi cryptocipher entropy
     skein tagged
diff --git a/pkgs/development/libraries/haskell/comonad-transformers/default.nix b/pkgs/development/libraries/haskell/comonad-transformers/default.nix
index bc378235b91..3a56b37edf9 100644
--- a/pkgs/development/libraries/haskell/comonad-transformers/default.nix
+++ b/pkgs/development/libraries/haskell/comonad-transformers/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "comonad-transformers";
-  version = "3.0";
-  sha256 = "1bjix61rdzmqcd1irh6p91jwy4sz1617sj4zic07p7ng9h7fsz24";
+  version = "3.0.1";
+  sha256 = "1lmcz01zsgy0lfzsznqbdq83vlk6h10zs7i41nav8qhzzhjn095j";
   buildDepends = [
     comonad contravariant distributive semigroupoids semigroups
     transformers
diff --git a/pkgs/development/libraries/haskell/comonad/default.nix b/pkgs/development/libraries/haskell/comonad/default.nix
index 3394de01206..b37ffdf596e 100644
--- a/pkgs/development/libraries/haskell/comonad/default.nix
+++ b/pkgs/development/libraries/haskell/comonad/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "comonad";
-  version = "3.0.0.2";
-  sha256 = "01q71b446mdbdj81qjrxjl5bshbg4bjih5zpw9fd4y5431bclfhi";
+  version = "3.0.1.1";
+  sha256 = "01zqxrqxy6x6nf6rynzmncbhlgbbpshhw10pkimnw5isg3b8qhc2";
   buildDepends = [ semigroups transformers ];
   meta = {
     homepage = "http://github.com/ekmett/comonad/";
diff --git a/pkgs/development/libraries/haskell/comonads-fd/default.nix b/pkgs/development/libraries/haskell/comonads-fd/default.nix
index 26a18c667a2..5921d8b07d3 100644
--- a/pkgs/development/libraries/haskell/comonads-fd/default.nix
+++ b/pkgs/development/libraries/haskell/comonads-fd/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "comonads-fd";
-  version = "3.0";
-  sha256 = "1j5ymj711c49fsk2ilxfpzqr0jr117z8kb5ggyh5nlwjy16m32in";
+  version = "3.0.1";
+  sha256 = "0ap9sw7h130bza43091mbl9a5bsin6342zawgycdcsag49wm3dyy";
   buildDepends = [
     comonad comonadTransformers mtl semigroups transformers
   ];
diff --git a/pkgs/development/libraries/haskell/conduit/default.nix b/pkgs/development/libraries/haskell/conduit/default.nix
index 07e24ab996e..74827d407b7 100644
--- a/pkgs/development/libraries/haskell/conduit/default.nix
+++ b/pkgs/development/libraries/haskell/conduit/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "conduit";
-  version = "0.5.5";
-  sha256 = "0av12gaxsrfmsbs70y532wfwnpz9v6ymn182dr8phpqn8d9lx2iq";
+  version = "0.5.6";
+  sha256 = "1a5apcds3jjksz7hzw4ag725796axqk9nm5fhn5i4l82zphq2cxs";
   buildDepends = [
     liftedBase monadControl resourcet text transformers
     transformersBase void
diff --git a/pkgs/development/libraries/haskell/cprng-aes/default.nix b/pkgs/development/libraries/haskell/cprng-aes/default.nix
index f2ad59dc88a..de5f400615a 100644
--- a/pkgs/development/libraries/haskell/cprng-aes/default.nix
+++ b/pkgs/development/libraries/haskell/cprng-aes/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cprng-aes";
-  version = "0.3.1";
-  sha256 = "0z1kpgy9d4yp1vmcparsv3r5g1khv2yqqkr99ac3mgvr6pyh24dk";
+  version = "0.3.2";
+  sha256 = "1xwwhg83llf9fzfafxsky65biwk0sla9273rp4gqr7vg9p02k221";
   buildDepends = [
     cipherAes cryptoApi cryptoRandomApi entropy random
   ];
diff --git a/pkgs/development/libraries/haskell/crypto-random-api/default.nix b/pkgs/development/libraries/haskell/crypto-random-api/default.nix
index 0530a4bb245..7c3b10a3838 100644
--- a/pkgs/development/libraries/haskell/crypto-random-api/default.nix
+++ b/pkgs/development/libraries/haskell/crypto-random-api/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "crypto-random-api";
-  version = "0.1.0";
-  sha256 = "1zx05hskzdxm0kfj6x9qsx8f659zv77pa189s3xg56i7h18d25md";
+  version = "0.2.0";
+  sha256 = "0z49kwgjj7rz235642q64hbkgp0zl6ipn29xd19yb75xc5q7gsan";
   buildDepends = [ entropy ];
   meta = {
     homepage = "http://github.com/vincenthz/hs-crypto-random-api";
diff --git a/pkgs/development/libraries/haskell/cryptohash/default.nix b/pkgs/development/libraries/haskell/cryptohash/default.nix
index 61f2f2a050d..2dc0cad9772 100644
--- a/pkgs/development/libraries/haskell/cryptohash/default.nix
+++ b/pkgs/development/libraries/haskell/cryptohash/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cryptohash";
-  version = "0.8.2";
-  sha256 = "0mym1q5sa1pqfffy0p8v12lfim1dlaczppw3c3wjhxgs222303wj";
+  version = "0.8.3";
+  sha256 = "1fcqbbclii2hmbhi7h64v0nnbc34zzs107m3lqq38iiyy5fvqqv2";
   buildDepends = [ cereal cryptoApi tagged ];
   meta = {
     homepage = "http://github.com/vincenthz/hs-cryptohash";
diff --git a/pkgs/development/libraries/haskell/dataenc/default.nix b/pkgs/development/libraries/haskell/dataenc/default.nix
index 2ece14dcfdc..9c4de4a1b84 100644
--- a/pkgs/development/libraries/haskell/dataenc/default.nix
+++ b/pkgs/development/libraries/haskell/dataenc/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "dataenc";
-  version = "0.14.0.4";
-  sha256 = "0xnn90nyz4m0rbzykkr5p9270s8dq2bfiz5j7qyzyy5m8vbl15bw";
+  version = "0.14.0.5";
+  sha256 = "13gajqbayar7x8sq3rw93i277gqd0bx1i34spshlj4b41fraxc8w";
   isLibrary = true;
   isExecutable = true;
   meta = {
diff --git a/pkgs/development/libraries/haskell/diagrams/core.nix b/pkgs/development/libraries/haskell/diagrams/core.nix
index 3f494208662..c087e27d025 100644
--- a/pkgs/development/libraries/haskell/diagrams/core.nix
+++ b/pkgs/development/libraries/haskell/diagrams/core.nix
@@ -4,12 +4,13 @@
 
 cabal.mkDerivation (self: {
   pname = "diagrams-core";
-  version = "0.6";
-  sha256 = "15frd5jdzkgpdcvyyhd0mbi5d4a69ajcnxawa1gafl4c3byz1778";
+  version = "0.6.0.1";
+  sha256 = "0kw0rxk9a2zkpnbx4bfd0japm75y29ldvdn7i3c93kvz0p6jc2wa";
   buildDepends = [
     dualTree MemoTrie monoidExtras newtype semigroups vectorSpace
     vectorSpacePoints
   ];
+  jailbreak = true;
   meta = {
     homepage = "http://projects.haskell.org/diagrams";
     description = "Core libraries for diagrams EDSL";
diff --git a/pkgs/development/libraries/haskell/diagrams/lib.nix b/pkgs/development/libraries/haskell/diagrams/lib.nix
index 472657b2df7..1bd77db8580 100644
--- a/pkgs/development/libraries/haskell/diagrams/lib.nix
+++ b/pkgs/development/libraries/haskell/diagrams/lib.nix
@@ -4,12 +4,13 @@
 
 cabal.mkDerivation (self: {
   pname = "diagrams-lib";
-  version = "0.6";
-  sha256 = "05nfp5ggjk4fviwvwiblmzzw5dbzbi1w8dx5dimvah7wxb0km3lf";
+  version = "0.6.0.1";
+  sha256 = "00ysdppl2jv0kspj0pjy8qj8shc9gg6g10lkq62vlvr39wnxx6yj";
   buildDepends = [
     active colour dataDefault diagramsCore monoidExtras newtype
     NumInstances semigroups vectorSpace
   ];
+  jailbreak = true;
   meta = {
     homepage = "http://projects.haskell.org/diagrams";
     description = "Embedded domain-specific language for declarative graphics";
diff --git a/pkgs/development/libraries/haskell/digestive-functors-heist/default.nix b/pkgs/development/libraries/haskell/digestive-functors-heist/default.nix
index 92eadc44fcf..2c2e95913b8 100644
--- a/pkgs/development/libraries/haskell/digestive-functors-heist/default.nix
+++ b/pkgs/development/libraries/haskell/digestive-functors-heist/default.nix
@@ -1,10 +1,10 @@
-{ cabal, digestiveFunctors, heist, text, xmlhtml }:
+{ cabal, digestiveFunctors, heist, mtl, text, xmlhtml }:
 
 cabal.mkDerivation (self: {
   pname = "digestive-functors-heist";
-  version = "0.5.1.0";
-  sha256 = "1rycf6y1c0car2m71iia929si5iqpc2rdyyxzp326q0rgj94whpk";
-  buildDepends = [ digestiveFunctors heist text xmlhtml ];
+  version = "0.5.1.1";
+  sha256 = "0jdg35xrikqg3r0rziv71g619vnmn8fzsv63b73m72fbj5xvy881";
+  buildDepends = [ digestiveFunctors heist mtl text xmlhtml ];
   meta = {
     homepage = "http://github.com/jaspervdj/digestive-functors";
     description = "Heist frontend for the digestive-functors library";
diff --git a/pkgs/development/libraries/haskell/dimensional-tf/default.nix b/pkgs/development/libraries/haskell/dimensional-tf/default.nix
new file mode 100644
index 00000000000..70995ecb3ce
--- /dev/null
+++ b/pkgs/development/libraries/haskell/dimensional-tf/default.nix
@@ -0,0 +1,14 @@
+{ cabal, numtypeTf, time }:
+
+cabal.mkDerivation (self: {
+  pname = "dimensional-tf";
+  version = "0.1.1";
+  sha256 = "0hhp2nx8xyk5ms3mzg1d3jhzm1b0bxz7aijxqasrxjq9p04jr2ci";
+  buildDepends = [ numtypeTf time ];
+  meta = {
+    homepage = "http://dimensional.googlecode.com/";
+    description = "Statically checked physical dimensions, implemented using type families";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/distributive/default.nix b/pkgs/development/libraries/haskell/distributive/default.nix
index a8b07c608d8..6709569b054 100644
--- a/pkgs/development/libraries/haskell/distributive/default.nix
+++ b/pkgs/development/libraries/haskell/distributive/default.nix
@@ -1,10 +1,10 @@
-{ cabal, transformers }:
+{ cabal, transformers, transformersCompat }:
 
 cabal.mkDerivation (self: {
   pname = "distributive";
-  version = "0.2.2";
-  sha256 = "13wvr2wb3h2nr1qd3dwjqx0b6g4igjqm3q2cyi4mc41gwihkbhr2";
-  buildDepends = [ transformers ];
+  version = "0.3";
+  sha256 = "0z6vwak2n91vpx9ps9j1pbiw0zlh9jmds84yx1yqssbqx8npi32f";
+  buildDepends = [ transformers transformersCompat ];
   meta = {
     homepage = "http://github.com/ekmett/distributive/";
     description = "Haskell 98 Distributive functors -- Dual to Traversable";
diff --git a/pkgs/development/libraries/haskell/double-conversion/default.nix b/pkgs/development/libraries/haskell/double-conversion/default.nix
index 5d92b8178c1..878eba660a0 100644
--- a/pkgs/development/libraries/haskell/double-conversion/default.nix
+++ b/pkgs/development/libraries/haskell/double-conversion/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "double-conversion";
-  version = "0.2.0.5";
-  sha256 = "1z23a8sfnq5lady8n2kcina9a7df8lmsliscf85x84dxkd3a1ahf";
+  version = "0.2.0.6";
+  sha256 = "1c6hy0ghdqf44fvhdpdxjbcr0ahimw283x5fnvjxja36i71qshjp";
   buildDepends = [ text ];
   meta = {
     homepage = "https://github.com/bos/double-conversion";
diff --git a/pkgs/development/libraries/haskell/dual-tree/default.nix b/pkgs/development/libraries/haskell/dual-tree/default.nix
index f1206fd822e..ebca3b5a3be 100644
--- a/pkgs/development/libraries/haskell/dual-tree/default.nix
+++ b/pkgs/development/libraries/haskell/dual-tree/default.nix
@@ -2,9 +2,10 @@
 
 cabal.mkDerivation (self: {
   pname = "dual-tree";
-  version = "0.1.0.0";
-  sha256 = "0av525gjxzd2hhrg5da647chwbv4j30gccaff2b3n5qijzy8l167";
+  version = "0.1.0.1";
+  sha256 = "09bdid65frccpbh1bs01f7vprq0vfgqsb5bfa4j8yi3q773mycb2";
   buildDepends = [ monoidExtras newtype semigroups ];
+  jailbreak = true;
   meta = {
     description = "Rose trees with cached and accumulating monoidal annotations";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/either/default.nix b/pkgs/development/libraries/haskell/either/default.nix
index 3d293d3b86e..cbfa53b6d00 100644
--- a/pkgs/development/libraries/haskell/either/default.nix
+++ b/pkgs/development/libraries/haskell/either/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "either";
-  version = "3.0.2";
-  sha256 = "1s3rpxxqc9052hrmiznwqwxhl4826qzbgpivpv5acxfhm0w06lhg";
+  version = "3.0.3";
+  sha256 = "02kpb8xd19n00ll61haqr6k3hy8qmbdf73gr4zs59q9xh0739qxc";
   buildDepends = [ semigroupoids semigroups transformers ];
   meta = {
     homepage = "http://github.com/ekmett/either/";
diff --git a/pkgs/development/libraries/haskell/file-embed/default.nix b/pkgs/development/libraries/haskell/file-embed/default.nix
index a36d333e909..119d9d185e5 100644
--- a/pkgs/development/libraries/haskell/file-embed/default.nix
+++ b/pkgs/development/libraries/haskell/file-embed/default.nix
@@ -1,9 +1,10 @@
-{ cabal }:
+{ cabal, filepath }:
 
 cabal.mkDerivation (self: {
   pname = "file-embed";
-  version = "0.0.4.6";
-  sha256 = "0p2vs56s1jy5xaw3axzfsir925z2a46624n32x797lga9khm3qvp";
+  version = "0.0.4.7";
+  sha256 = "1hn08499kay0y6ik5z1s58s8r9h1nzf116avgi6ia4b565wpzkvi";
+  buildDepends = [ filepath ];
   meta = {
     homepage = "https://github.com/snoyberg/file-embed";
     description = "Use Template Haskell to embed file contents directly";
diff --git a/pkgs/development/libraries/haskell/filestore/default.nix b/pkgs/development/libraries/haskell/filestore/default.nix
index f56db649fc7..43492d73fae 100644
--- a/pkgs/development/libraries/haskell/filestore/default.nix
+++ b/pkgs/development/libraries/haskell/filestore/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "filestore";
-  version = "0.5.0.1";
-  sha256 = "1wbiw3skbbcqi9p97xnhg5lnakq3vyan9v4f68wd3g4swk09xp7l";
+  version = "0.6";
+  sha256 = "1bmsqxrkiqw791h0xwasry3jm56rjsyvl9l5r78209bhiv5v6xk0";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/fsnotify/default.nix b/pkgs/development/libraries/haskell/fsnotify/default.nix
index 2b8378803b9..80b6760a3b7 100644
--- a/pkgs/development/libraries/haskell/fsnotify/default.nix
+++ b/pkgs/development/libraries/haskell/fsnotify/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "fsnotify";
-  version = "0.0.4";
-  sha256 = "0s71zxj48jimzhl7wz9j22g9c09z64g61nfmpy4mlrhpkzn1f8sz";
+  version = "0.0.6";
+  sha256 = "0ib6ansj3vaq9hxxbsq5jw14w2b61wp4jfahzb3c3x46mdb1bqw5";
   buildDepends = [ hinotify systemFileio systemFilepath text time ];
   meta = {
     description = "Cross platform library for file creation, modification, and deletion notification";
diff --git a/pkgs/development/libraries/haskell/gitit/default.nix b/pkgs/development/libraries/haskell/gitit/default.nix
index a77c122985e..e518dd879a0 100644
--- a/pkgs/development/libraries/haskell/gitit/default.nix
+++ b/pkgs/development/libraries/haskell/gitit/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "gitit";
-  version = "0.10.0.2";
-  sha256 = "0cnql35h4laqpaymg32dmszwzc74qmbmmjas44gcsd8v5n6f701i";
+  version = "0.10.1.1";
+  sha256 = "1akrc362cf3fzfjyyf1g8bzna093kwsiyxdfpz0d9wd3z6jyc8cg";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/graphviz/default.nix b/pkgs/development/libraries/haskell/graphviz/default.nix
index e48f92e5b81..637bb5ba45a 100644
--- a/pkgs/development/libraries/haskell/graphviz/default.nix
+++ b/pkgs/development/libraries/haskell/graphviz/default.nix
@@ -4,12 +4,11 @@
 
 cabal.mkDerivation (self: {
   pname = "graphviz";
-  version = "2999.14.1.0";
-  sha256 = "13fni5sf6cdfvgyh7kqjjdhmjxkhbgl3gbi0cbq90n8blzg4q1ql";
+  version = "2999.15.0.1";
+  sha256 = "137d8n20fbpdz7az79gqharsfl293pl3xn444338i6blfi47ssdy";
   buildDepends = [
     colour dlist fgl filepath polyparse text transformers wlPprintText
   ];
-  patchPhase = "sed -i -e 's|bytestring.*,|bytestring,|' graphviz.cabal";
   meta = {
     homepage = "http://projects.haskell.org/graphviz/";
     description = "Bindings to Graphviz for graph visualisation";
diff --git a/pkgs/development/libraries/haskell/hakyll/default.nix b/pkgs/development/libraries/haskell/hakyll/default.nix
index 093a92dd16e..50ff535d874 100644
--- a/pkgs/development/libraries/haskell/hakyll/default.nix
+++ b/pkgs/development/libraries/haskell/hakyll/default.nix
@@ -5,14 +5,13 @@
 
 cabal.mkDerivation (self: {
   pname = "hakyll";
-  version = "3.5.2.0";
-  sha256 = "088qhzycpz003qa4b7hnn6frgmidk6219icii04ap964fkw0mqn0";
+  version = "3.5.2.1";
+  sha256 = "1fp7jak2sfznvg3lfyjqy13m1iq9821mdq6n5qmqz5dh5b960iv4";
   buildDepends = [
     binary blazeHtml blazeMarkup citeprocHs cryptohash filepath hamlet
     lrucache mtl pandoc parsec regexBase regexTdfa snapCore snapServer
     tagsoup text time
   ];
-  jailbreak = true;
   meta = {
     homepage = "http://jaspervdj.be/hakyll";
     description = "A static website compiler library";
diff --git a/pkgs/development/libraries/haskell/hashable/1.2.0.2.nix b/pkgs/development/libraries/haskell/hashable/1.2.0.3.nix
index 10f9c0ec620..43d99b63d5a 100644
--- a/pkgs/development/libraries/haskell/hashable/1.2.0.2.nix
+++ b/pkgs/development/libraries/haskell/hashable/1.2.0.3.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hashable";
-  version = "1.2.0.2";
-  sha256 = "1l827sh7v2jls2gcbxgbvz5hacwi43bcrxwmd3wp92hfwy1yza65";
+  version = "1.2.0.3";
+  sha256 = "0q4zl2mry6qfp9vln6pxmgqik7szv1sh7if55gydnxln1ybvvgmp";
   buildDepends = [ text ];
   meta = {
     homepage = "http://github.com/tibbe/hashable";
diff --git a/pkgs/development/libraries/haskell/heist/default.nix b/pkgs/development/libraries/haskell/heist/default.nix
index 22860a85218..a2251f69673 100644
--- a/pkgs/development/libraries/haskell/heist/default.nix
+++ b/pkgs/development/libraries/haskell/heist/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "heist";
-  version = "0.10.2";
-  sha256 = "13v9x5dph52xddkb2dy4gfrapvihf1881fin996ag0snbma3wh68";
+  version = "0.10.2.1";
+  sha256 = "14lp27vlzv6qqv325x2vqqvphw5ads5ywjqpjramv3hhd275fn3d";
   buildDepends = [
     aeson attoparsec blazeBuilder blazeHtml directoryTree dlist errors
     filepath hashable MonadCatchIOTransformers mtl random text time
diff --git a/pkgs/development/libraries/haskell/highlighting-kate/default.nix b/pkgs/development/libraries/haskell/highlighting-kate/default.nix
index 4b2e32d2352..cc591acf202 100644
--- a/pkgs/development/libraries/haskell/highlighting-kate/default.nix
+++ b/pkgs/development/libraries/haskell/highlighting-kate/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "highlighting-kate";
-  version = "0.5.3.3";
-  sha256 = "08jxl2ba0kb4vj1qbdf4sas8bwbxzayzwsxnjvq358x57i5l302n";
+  version = "0.5.3.4";
+  sha256 = "1xm9dr71qna1w65vzaf63hbchpvshfjvvs5038sy04x2ddwdix77";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ blazeHtml filepath mtl parsec regexPcre ];
diff --git a/pkgs/development/libraries/haskell/hsemail/default.nix b/pkgs/development/libraries/haskell/hsemail/default.nix
index ac22e94abb8..e8c0c9e4da8 100644
--- a/pkgs/development/libraries/haskell/hsemail/default.nix
+++ b/pkgs/development/libraries/haskell/hsemail/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hsemail";
-  version = "1.7.3";
-  sha256 = "0i9qh4rbgcgpjiz7nj8rrmj0ai53s420dskfvwrbwl4j6z67f7la";
+  version = "1.7.4";
+  sha256 = "0nigv0zbkm90m5jskfc5a4zx2d3gyqj1y472jplrgd76s15alsmw";
   buildDepends = [ mtl parsec ];
   meta = {
     homepage = "http://gitorious.org/hsemail";
diff --git a/pkgs/development/libraries/haskell/http-conduit/default.nix b/pkgs/development/libraries/haskell/http-conduit/default.nix
index e467d572f9d..aada13af06a 100644
--- a/pkgs/development/libraries/haskell/http-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/http-conduit/default.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "http-conduit";
-  version = "1.8.5.2";
-  sha256 = "0c1a6iknvi34sh97j7cfzwyikcz0kdz4vgsc47lr7c2a75gl0via";
+  version = "1.8.6.2";
+  sha256 = "0b9iw8gq0kyfmnpv1jba2dx8rik9136zx5q9xdyvy0lczdgb8i09";
   buildDepends = [
     asn1Data attoparsec attoparsecConduit base64Bytestring blazeBuilder
     blazeBuilderConduit caseInsensitive certificate conduit cookie
diff --git a/pkgs/development/libraries/haskell/http-date/default.nix b/pkgs/development/libraries/haskell/http-date/default.nix
index a0168a51958..58d4dd7ecbf 100644
--- a/pkgs/development/libraries/haskell/http-date/default.nix
+++ b/pkgs/development/libraries/haskell/http-date/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "http-date";
-  version = "0.0.3";
-  sha256 = "12iylfzz1d0v0gl4cf31dxcmlg0x7bq5f7acacy2pb0ilrxmzsnn";
+  version = "0.0.4";
+  sha256 = "1pbm066i1cpa3z2kfsqpva0qixnx87s76dpafz3wf6dkaqj8n8i5";
   buildDepends = [ attoparsec ];
   meta = {
     description = "HTTP Date parser/formatter";
diff --git a/pkgs/development/libraries/haskell/http-reverse-proxy/default.nix b/pkgs/development/libraries/haskell/http-reverse-proxy/default.nix
index 62bc2ebac18..e30a30fc7aa 100644
--- a/pkgs/development/libraries/haskell/http-reverse-proxy/default.nix
+++ b/pkgs/development/libraries/haskell/http-reverse-proxy/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "http-reverse-proxy";
-  version = "0.1.1";
-  sha256 = "0p04zpw1v0zhzri7wpikc0b8g7n21kgl8j8238vv7xqxapkal0pc";
+  version = "0.1.1.1";
+  sha256 = "0xg6xw0j61db75smys2fgjn0nzv2dy8c1ha4m828ssnxlic98lk2";
   buildDepends = [
     blazeBuilder caseInsensitive classyPreludeConduit conduit
     dataDefault httpConduit httpTypes liftedBase monadControl network
diff --git a/pkgs/development/libraries/haskell/language-c-quote/default.nix b/pkgs/development/libraries/haskell/language-c-quote/default.nix
index 136c2f30191..fc569f996a8 100644
--- a/pkgs/development/libraries/haskell/language-c-quote/default.nix
+++ b/pkgs/development/libraries/haskell/language-c-quote/default.nix
@@ -11,6 +11,7 @@ cabal.mkDerivation (self: {
     mainlandPretty mtl srcloc syb symbol
   ];
   buildTools = [ alex happy ];
+  jailbreak = true;
   meta = {
     homepage = "http://www.eecs.harvard.edu/~mainland/";
     description = "C/CUDA/OpenCL quasiquoting library";
diff --git a/pkgs/development/libraries/haskell/lens/default.nix b/pkgs/development/libraries/haskell/lens/default.nix
index dd9966a0d58..ab634ea70e9 100644
--- a/pkgs/development/libraries/haskell/lens/default.nix
+++ b/pkgs/development/libraries/haskell/lens/default.nix
@@ -1,17 +1,20 @@
 { cabal, comonad, comonadsFd, comonadTransformers, filepath
-, hashable, mtl, parallel, semigroups, split, text, transformers
-, unorderedContainers, vector
+, hashable, mtl, nats, parallel, semigroups, split, text
+, transformers, transformersCompat, unorderedContainers, vector
 }:
 
 cabal.mkDerivation (self: {
   pname = "lens";
-  version = "3.7.1.2";
-  sha256 = "1hapcnmyqyc3645gsy1ikwzm2srbbznps6yrfr02y2lcbnjpn3g6";
+  version = "3.7.3";
+  sha256 = "0mvwczviszfv52ylymvrz3zk6s05ngmqc2g1k4r6pym8s9cmgmzz";
   buildDepends = [
-    comonad comonadsFd comonadTransformers filepath hashable mtl
-    parallel semigroups split text transformers unorderedContainers
-    vector
+    comonad comonadsFd comonadTransformers filepath hashable mtl nats
+    parallel semigroups split text transformers transformersCompat
+    unorderedContainers vector
   ];
+  patchPhase = ''
+    sed -i -e 's|semigroups.*,|semigroups,|' lens.cabal
+  '';
   meta = {
     homepage = "http://github.com/ekmett/lens/";
     description = "Lenses, Folds and Traversals";
diff --git a/pkgs/development/libraries/haskell/liblastfm/default.nix b/pkgs/development/libraries/haskell/liblastfm/default.nix
index ac38a6de716..d9a04355e2e 100644
--- a/pkgs/development/libraries/haskell/liblastfm/default.nix
+++ b/pkgs/development/libraries/haskell/liblastfm/default.nix
@@ -1,16 +1,16 @@
-{ cabal, aeson, attoparsec, curl, mtl, pureMD5, urlencoded
-, utf8String, xml
+{ cabal, aeson, cereal, cryptoApi, httpConduit, httpTypes, network
+, pureMD5, text
 }:
 
 cabal.mkDerivation (self: {
   pname = "liblastfm";
-  version = "0.0.3.8";
-  sha256 = "0icx86x3w85z0pqdxcch583j6jk5id5aw9gf24266mgfg5k6iwdy";
+  version = "0.1.0.0";
+  sha256 = "1777p2zysha9z389dkzvc22wph5k2xa6f23xk1ckr8j1q5v9dg6x";
   buildDepends = [
-    aeson attoparsec curl mtl pureMD5 urlencoded utf8String xml
+    aeson cereal cryptoApi httpConduit httpTypes network pureMD5 text
   ];
   meta = {
-    description = "Wrapper to Lastfm API";
+    description = "Lastfm API interface";
     license = self.stdenv.lib.licenses.mit;
     platforms = self.ghc.meta.platforms;
   };
diff --git a/pkgs/development/libraries/haskell/mainland-pretty/default.nix b/pkgs/development/libraries/haskell/mainland-pretty/default.nix
index 5da3e47a333..30681bd340b 100644
--- a/pkgs/development/libraries/haskell/mainland-pretty/default.nix
+++ b/pkgs/development/libraries/haskell/mainland-pretty/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "mainland-pretty";
-  version = "0.2.4";
-  sha256 = "0x481k36rz4zvj1nwvrfw1d10vbmmx8gb5f2nc8alnxcbc2y7xwq";
+  version = "0.2.5";
+  sha256 = "0h3q7xw69dc0lcqwlacsnv36dlbj0sfgv5imjlqrixy6m5cniq9x";
   buildDepends = [ srcloc text ];
   meta = {
     homepage = "http://www.eecs.harvard.edu/~mainland/";
diff --git a/pkgs/development/libraries/haskell/monoid-extras/default.nix b/pkgs/development/libraries/haskell/monoid-extras/default.nix
index a86bdce3839..a67017298a8 100644
--- a/pkgs/development/libraries/haskell/monoid-extras/default.nix
+++ b/pkgs/development/libraries/haskell/monoid-extras/default.nix
@@ -2,9 +2,10 @@
 
 cabal.mkDerivation (self: {
   pname = "monoid-extras";
-  version = "0.2.2.1";
-  sha256 = "0n2zwkwwq8kg9m6qr79mrhlxsfsrjzbyg96gfhcgk21zgc09zary";
+  version = "0.2.2.2";
+  sha256 = "1fz93hm0sswisvwvbygxvbwmmnzqcxmz9h82i4361wzychf2si22";
   buildDepends = [ semigroups ];
+  jailbreak = true;
   meta = {
     description = "Various extra monoid-related definitions and utilities";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/multiarg/default.nix b/pkgs/development/libraries/haskell/multiarg/default.nix
index 8b2871c3ce4..74254a4c591 100644
--- a/pkgs/development/libraries/haskell/multiarg/default.nix
+++ b/pkgs/development/libraries/haskell/multiarg/default.nix
@@ -2,13 +2,13 @@
 
 cabal.mkDerivation (self: {
   pname = "multiarg";
-  version = "0.6.0.0";
-  sha256 = "1qrw1rajdvrvd297a7lpfkxm5qqhwmnnl5jiagjwzb9lckgpy87y";
+  version = "0.8.0.0";
+  sha256 = "17zfrm9zjf7c8g7q9vqj1srk0g766ifhwqp7gm4ql890541q5lv5";
   buildDepends = [ explicitException utf8String ];
   meta = {
     homepage = "https://github.com/massysett/multiarg";
     description = "Combinators to build command line parsers";
-    license = self.stdenv.lib.licenses.mit;
+    license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
     maintainers = [ self.stdenv.lib.maintainers.andres ];
   };
diff --git a/pkgs/development/libraries/haskell/nat/default.nix b/pkgs/development/libraries/haskell/nat/default.nix
new file mode 100644
index 00000000000..3ad4240e289
--- /dev/null
+++ b/pkgs/development/libraries/haskell/nat/default.nix
@@ -0,0 +1,12 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "nat";
+  version = "0.3";
+  sha256 = "1v43c1dr72qn8mymnwcq6an8sqxjaxhac037k4gbv8z8bg18zmf5";
+  meta = {
+    description = "Lazy binary natural numbers";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/nats/default.nix b/pkgs/development/libraries/haskell/nats/default.nix
new file mode 100644
index 00000000000..02f5c289836
--- /dev/null
+++ b/pkgs/development/libraries/haskell/nats/default.nix
@@ -0,0 +1,13 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "nats";
+  version = "0.1";
+  sha256 = "08gh7jjmws70919hmqqmvnfqcpxr34f03jmg3lzmmhqvr15gm1vy";
+  meta = {
+    homepage = "http://github.com/ekmett/nats/";
+    description = "Haskell 98 natural numbers";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/naturals/default.nix b/pkgs/development/libraries/haskell/naturals/default.nix
new file mode 100644
index 00000000000..787ac70ffa9
--- /dev/null
+++ b/pkgs/development/libraries/haskell/naturals/default.nix
@@ -0,0 +1,13 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "naturals";
+  version = "0.2.0.2";
+  sha256 = "1ay291833dcah411zc3r4qjilaw8x13ljlnb5z40d1s7784djm16";
+  meta = {
+    homepage = "frigidcode.com";
+    description = "Constructors and related functions for natural numbers";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/network-conduit/default.nix b/pkgs/development/libraries/haskell/network-conduit/default.nix
index 1b2187daaaf..a56c35a214b 100644
--- a/pkgs/development/libraries/haskell/network-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/network-conduit/default.nix
@@ -3,8 +3,8 @@
 
 cabal.mkDerivation (self: {
   pname = "network-conduit";
-  version = "0.6.2.1";
-  sha256 = "1pkqkkj18yn31dmxcc8xfq2drg2jm9169my0s3jsxjbyxsyq58l6";
+  version = "0.6.2.2";
+  sha256 = "1v8abhw977hr78hkshrbxy04abbbhafvvnhr4xxgqc0phwch02mc";
   buildDepends = [
     conduit liftedBase monadControl network transformers
   ];
diff --git a/pkgs/development/libraries/haskell/numtype-tf/default.nix b/pkgs/development/libraries/haskell/numtype-tf/default.nix
new file mode 100644
index 00000000000..76f57daca38
--- /dev/null
+++ b/pkgs/development/libraries/haskell/numtype-tf/default.nix
@@ -0,0 +1,13 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "numtype-tf";
+  version = "0.1";
+  sha256 = "1hvnqgjg7yifxdsji9v0wqwbp4syhdc97pa3nrn4p96g7kmvw25v";
+  meta = {
+    homepage = "http://dimensional.googlecode.com/";
+    description = "Type-level (low cardinality) integers, implemented using type families";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/persistent-template/default.nix b/pkgs/development/libraries/haskell/persistent-template/default.nix
index f19a38a55f0..596b0789445 100644
--- a/pkgs/development/libraries/haskell/persistent-template/default.nix
+++ b/pkgs/development/libraries/haskell/persistent-template/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "persistent-template";
-  version = "1.1.2";
-  sha256 = "1hz8cxx2a84c93x364vgahmv4xd3cbpjx4j7si5n0pasyq3clbvr";
+  version = "1.1.2.1";
+  sha256 = "02sqrq847cxywj9hwixvi0bqq09kxr9w6lhn6kqg4ww0mw2add6s";
   buildDepends = [ aeson monadControl persistent text transformers ];
   meta = {
     homepage = "http://www.yesodweb.com/book/persistent";
diff --git a/pkgs/development/libraries/haskell/persistent/default.nix b/pkgs/development/libraries/haskell/persistent/default.nix
index 1cec3d609b5..a45dbea57ae 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.3.1";
-  sha256 = "12gv2gjkrf7qchlv6kj0an8bvpkin8vdhdkxg4ck9ydw7hh292v2";
+  version = "1.1.3.2";
+  sha256 = "1q8p5nxsf9fjhsyy1lha852f7vssp9mz6l24gg47mgv6y5mm9myv";
   buildDepends = [
     aeson attoparsec base64Bytestring blazeHtml blazeMarkup conduit
     liftedBase monadControl monadLogger pathPieces poolConduit
diff --git a/pkgs/development/libraries/haskell/pretty-show/default.nix b/pkgs/development/libraries/haskell/pretty-show/default.nix
index 791d8c59b74..5fedd0aca29 100644
--- a/pkgs/development/libraries/haskell/pretty-show/default.nix
+++ b/pkgs/development/libraries/haskell/pretty-show/default.nix
@@ -1,15 +1,15 @@
-{ cabal, haskellLexer }:
+{ cabal, filepath, haskellLexer }:
 
 cabal.mkDerivation (self: {
   pname = "pretty-show";
-  version = "1.3.2";
-  sha256 = "0m3kw4d68gd1mhlgi5vy3k2cqi9f0i4s502m2sgy4pww45fjllxy";
+  version = "1.5";
+  sha256 = "1n04f9aypgbhkq0lbji9czv1mjfwv4f80w1c6hqs55gmzwif63m4";
   isLibrary = true;
   isExecutable = true;
-  buildDepends = [ haskellLexer ];
+  buildDepends = [ filepath haskellLexer ];
   meta = {
     homepage = "http://wiki.github.com/yav/pretty-show";
-    description = "Tools for working with derived Show instances";
+    description = "Tools for working with derived `Show` instances and generic inspection of values";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
     maintainers = [ self.stdenv.lib.maintainers.andres ];
diff --git a/pkgs/development/libraries/haskell/random-fu/default.nix b/pkgs/development/libraries/haskell/random-fu/default.nix
index 520f232d81f..8dd228ad3db 100644
--- a/pkgs/development/libraries/haskell/random-fu/default.nix
+++ b/pkgs/development/libraries/haskell/random-fu/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "random-fu";
-  version = "0.2.3.1";
-  sha256 = "06b4v7012fj1kmnz6i63vbwl9gkhzgk556gmcc62k14299ks8pci";
+  version = "0.2.4.0";
+  sha256 = "1wiwh52qfs699mcj3ylwc97pyabczn6dr8j92qczs89g8vvi91wd";
   buildDepends = [
     erf gamma monadLoops mtl randomShuffle randomSource rvar syb
     transformers vector
diff --git a/pkgs/development/libraries/haskell/random-source/default.nix b/pkgs/development/libraries/haskell/random-source/default.nix
index e4dab92dcb7..acc0285a59a 100644
--- a/pkgs/development/libraries/haskell/random-source/default.nix
+++ b/pkgs/development/libraries/haskell/random-source/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "random-source";
-  version = "0.3.0.2";
-  sha256 = "0sp39bj7rqg4w4rc4d4zgj0f77c23z4xc47p55chy12znc4frlp2";
+  version = "0.3.0.4";
+  sha256 = "1gvx9r6vy36lx7fy537zdbnbhpmfxz88a7gh0aiyd2vi7bvnndxy";
   buildDepends = [
     flexibleDefaults mersenneRandomPure64 mtl mwcRandom random stateref
     syb thExtras
diff --git a/pkgs/development/libraries/haskell/semigroupoids/default.nix b/pkgs/development/libraries/haskell/semigroupoids/default.nix
index c2e8deefbad..7e25fa5913e 100644
--- a/pkgs/development/libraries/haskell/semigroupoids/default.nix
+++ b/pkgs/development/libraries/haskell/semigroupoids/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "semigroupoids";
-  version = "3.0.0.1";
-  sha256 = "0ilqmpywiwp9m1k8lrw0mxb0pzc9l8bs2hgzrp8k5iln1yq1fh6i";
+  version = "3.0.1";
+  sha256 = "12k2yryr31lxhwq42cx05kswljmbli8p8c2wknigzkkam63d8k5h";
   buildDepends = [ comonad contravariant semigroups transformers ];
   meta = {
     homepage = "http://github.com/ekmett/semigroupoids";
diff --git a/pkgs/development/libraries/haskell/semigroups/default.nix b/pkgs/development/libraries/haskell/semigroups/default.nix
index 1a412aec908..ea0f2813b55 100644
--- a/pkgs/development/libraries/haskell/semigroups/default.nix
+++ b/pkgs/development/libraries/haskell/semigroups/default.nix
@@ -1,9 +1,10 @@
-{ cabal }:
+{ cabal, nats }:
 
 cabal.mkDerivation (self: {
   pname = "semigroups";
-  version = "0.8.5";
-  sha256 = "0dnxqqxfyxj0mpy524nvgwagsp6ynadmh2yr4k5159rzbg2xgz90";
+  version = "0.9";
+  sha256 = "0cwyjjlr9zgpxryzdf26pb58dmad0cp8d0493rarhh5zmgighh90";
+  buildDepends = [ nats ];
   meta = {
     homepage = "http://github.com/ekmett/semigroups/";
     description = "Haskell 98 semigroups";
diff --git a/pkgs/development/libraries/haskell/srcloc/default.nix b/pkgs/development/libraries/haskell/srcloc/default.nix
index c867a353cd6..f652ed001e4 100644
--- a/pkgs/development/libraries/haskell/srcloc/default.nix
+++ b/pkgs/development/libraries/haskell/srcloc/default.nix
@@ -1,10 +1,9 @@
-{ cabal, syb }:
+{ cabal }:
 
 cabal.mkDerivation (self: {
   pname = "srcloc";
-  version = "0.3.0";
-  sha256 = "1ymk8k0r9ckk7dalz3virvvpyrf4nw8xvb23cs6ibdjjbzsphpiz";
-  buildDepends = [ syb ];
+  version = "0.4.0";
+  sha256 = "00af562n4m3nwlhl86x8rx7hhpnhwaijin61wk574pp47bh2jg0k";
   meta = {
     homepage = "http://www.eecs.harvard.edu/~mainland/";
     description = "Data types for managing source code locations";
diff --git a/pkgs/development/libraries/haskell/tabular/default.nix b/pkgs/development/libraries/haskell/tabular/default.nix
index 65e12aa9295..32ede2f660b 100644
--- a/pkgs/development/libraries/haskell/tabular/default.nix
+++ b/pkgs/development/libraries/haskell/tabular/default.nix
@@ -2,12 +2,11 @@
 
 cabal.mkDerivation (self: {
   pname = "tabular";
-  version = "0.2.2.3";
-  sha256 = "cf6d9f1928ec6981edcbb06c4dcbaea7a96deef5272192ad4290caa18711ea76";
+  version = "0.2.2.4";
+  sha256 = "103fqbypsgykv6z29jp1s75pd99vra9sfa70krcnlhbk9kbvdyjk";
   buildDepends = [ csv html mtl ];
-  jailbreak = true;
   meta = {
-    homepage = "http://patch-tag.com/r/kowey/tabular";
+    homepage = "http://hub.darcs.net/kowey/tabular";
     description = "Two-dimensional data tables with rendering functions";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
diff --git a/pkgs/development/libraries/haskell/texmath/default.nix b/pkgs/development/libraries/haskell/texmath/default.nix
index 65d9da1548f..78ec99da8db 100644
--- a/pkgs/development/libraries/haskell/texmath/default.nix
+++ b/pkgs/development/libraries/haskell/texmath/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "texmath";
-  version = "0.6.1.1";
-  sha256 = "06yk19jvpj7di1njybk1hdc7hp6c9h3yb4gvi7ljna6wqrh6zqaz";
+  version = "0.6.1.2";
+  sha256 = "1izsjy30saz2il16dwx8sh2s30b1pfgcpq6023v135w1bdrzrnmq";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ parsec syb xml ];
diff --git a/pkgs/development/libraries/haskell/transformers-compat/default.nix b/pkgs/development/libraries/haskell/transformers-compat/default.nix
new file mode 100644
index 00000000000..d36ace0eb29
--- /dev/null
+++ b/pkgs/development/libraries/haskell/transformers-compat/default.nix
@@ -0,0 +1,15 @@
+{ cabal, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "transformers-compat";
+  version = "0.1";
+  sha256 = "100xw00h2l6iipg6lq5bbncpil3bl6w3frak99klpi8gn6ihd8ah";
+  buildDepends = [ transformers ];
+  noHaddock = true;
+  meta = {
+    homepage = "http://github.com/ekmett/transformers-compat/";
+    description = "Lenses, Folds and Traversals";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/type-level-natural-number/default.nix b/pkgs/development/libraries/haskell/type-level-natural-number/default.nix
new file mode 100644
index 00000000000..8dff0ffd58f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/type-level-natural-number/default.nix
@@ -0,0 +1,12 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "type-level-natural-number";
+  version = "1.1.1";
+  sha256 = "1zc26nckpcixxp1m818jhzi3dj1ysnjfc2xliq4rpmf5583k6mjw";
+  meta = {
+    description = "Simple, Haskell 2010-compatible type level natural numbers";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/uu-parsinglib/default.nix b/pkgs/development/libraries/haskell/uu-parsinglib/default.nix
index 02356789bc3..d28eb827dab 100644
--- a/pkgs/development/libraries/haskell/uu-parsinglib/default.nix
+++ b/pkgs/development/libraries/haskell/uu-parsinglib/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "uu-parsinglib";
-  version = "2.7.4";
-  sha256 = "1cznyn09a3glfkvvzqma3bhjinddkp6v2xwiy5x403v0wy8y565j";
+  version = "2.7.4.1";
+  sha256 = "1aya95j7dd0yal0ygy6d4w4wmlhgn5ddy3c5f6ncl4k3kg7hjxd1";
   buildDepends = [ ListLike time ];
   meta = {
     homepage = "http://www.cs.uu.nl/wiki/bin/view/HUT/ParserCombinators";
diff --git a/pkgs/development/libraries/haskell/void/default.nix b/pkgs/development/libraries/haskell/void/default.nix
index 5cd54a3e0e7..cdf21c78233 100644
--- a/pkgs/development/libraries/haskell/void/default.nix
+++ b/pkgs/development/libraries/haskell/void/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "void";
-  version = "0.5.10";
-  sha256 = "0adykqns7vvzgrjg7waaklfj3dl1h7vk5rwlfx0f18js6di9zrh4";
+  version = "0.5.11";
+  sha256 = "0fi8ccnhg0ckz5v3cgxhdd67p0v3g9yawin917ik4vxfbwz5j3v6";
   buildDepends = [ semigroups ];
   meta = {
     homepage = "http://github.com/ekmett/void";
diff --git a/pkgs/development/libraries/haskell/wai-app-static/default.nix b/pkgs/development/libraries/haskell/wai-app-static/default.nix
index 5ccf7531d4c..2ff18247000 100644
--- a/pkgs/development/libraries/haskell/wai-app-static/default.nix
+++ b/pkgs/development/libraries/haskell/wai-app-static/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "wai-app-static";
-  version = "1.3.0.5";
-  sha256 = "1fz2a30f3imn0m5q6hjkm2xan0ddalhfbzx78pklz4g7k79s1ncn";
+  version = "1.3.1";
+  sha256 = "0r2ghx3nqh7nms8yxa874h5pyagj993r077f8riybjyjp078s2lk";
   buildDepends = [
     base64Bytestring blazeBuilder blazeHtml blazeMarkup cereal
     cryptoConduit cryptohash fileEmbed httpDate httpTypes mimeTypes
diff --git a/pkgs/development/libraries/haskell/wai-extra/default.nix b/pkgs/development/libraries/haskell/wai-extra/default.nix
index b0837b0246c..bc55da65469 100644
--- a/pkgs/development/libraries/haskell/wai-extra/default.nix
+++ b/pkgs/development/libraries/haskell/wai-extra/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "wai-extra";
-  version = "1.3.0.5";
-  sha256 = "0xzsnsf4sdbzkw92xyzmyi6qp2qpbh5dj3579sppcihdq9djj8l8";
+  version = "1.3.1.1";
+  sha256 = "0590i9zs47fxqlz4l7zrk15x4s1rvzvp0fs1caygr5hw32v8h0by";
   buildDepends = [
     ansiTerminal blazeBuilder blazeBuilderConduit caseInsensitive
     conduit dataDefault dateCache fastLogger httpTypes network
diff --git a/pkgs/development/libraries/haskell/warp/default.nix b/pkgs/development/libraries/haskell/warp/default.nix
index 0620fc7f88b..edd1dfd1992 100644
--- a/pkgs/development/libraries/haskell/warp/default.nix
+++ b/pkgs/development/libraries/haskell/warp/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "warp";
-  version = "1.3.6";
-  sha256 = "0aw5m7apj7l6fjb0w59bmgiy4j0rmdwjil4ppgp5qz2q2njqbbnj";
+  version = "1.3.7";
+  sha256 = "06648wqiwlcsvd41qdqdbgn1zcq890iq39zsxi24vf4s8q7jnzyf";
   buildDepends = [
     blazeBuilder blazeBuilderConduit caseInsensitive conduit hashable
     httpTypes liftedBase network networkConduit simpleSendfile
diff --git a/pkgs/development/libraries/haskell/wxHaskell/fix-bogus-pointer-assignment.patch b/pkgs/development/libraries/haskell/wxHaskell/fix-bogus-pointer-assignment.patch
new file mode 100644
index 00000000000..38551d24d43
--- /dev/null
+++ b/pkgs/development/libraries/haskell/wxHaskell/fix-bogus-pointer-assignment.patch
@@ -0,0 +1,13 @@
+diff -ubr wxc-0.90.0.4-orig/src/cpp/eljpen.cpp wxc-0.90.0.4/src/cpp/eljpen.cpp
+--- wxc-0.90.0.4-orig/src/cpp/eljpen.cpp	2012-07-03 12:12:17.000000000 +0200
++++ wxc-0.90.0.4/src/cpp/eljpen.cpp	2013-01-07 12:09:50.296417007 +0100
+@@ -156,7 +156,7 @@
+ EWXWEXPORT(void,wxPen_GetStipple)(void* self,wxBitmap* _ref)

+ {

+ #if defined(__WXGTK__)

+-    *_ref = NULL;

++    _ref = NULL;

+ #else

+     *_ref = *(((wxPen*)self)->GetStipple());

+ #endif

+Only in wxc-0.90.0.4/src/cpp: eljpen.cpp.orig
diff --git a/pkgs/development/libraries/haskell/wxHaskell/wxc.nix b/pkgs/development/libraries/haskell/wxHaskell/wxc.nix
index f439b9e1594..74ca4f91d70 100644
--- a/pkgs/development/libraries/haskell/wxHaskell/wxc.nix
+++ b/pkgs/development/libraries/haskell/wxHaskell/wxc.nix
@@ -10,7 +10,7 @@ cabal.mkDerivation (self: {
   postInstall = ''
     cp -v dist/build/libwxc.so.${self.version} $out/lib/libwxc.so
   '';
-
+  patches = [ ./fix-bogus-pointer-assignment.patch ];
   meta = {
     homepage = "http://haskell.org/haskellwiki/WxHaskell";
     description = "wxHaskell C++ wrapper";
diff --git a/pkgs/development/libraries/haskell/xss-sanitize/default.nix b/pkgs/development/libraries/haskell/xss-sanitize/default.nix
index 0fac2ad6372..f592568cb32 100644
--- a/pkgs/development/libraries/haskell/xss-sanitize/default.nix
+++ b/pkgs/development/libraries/haskell/xss-sanitize/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "xss-sanitize";
-  version = "0.3.2";
-  sha256 = "0m7gl232i06i090kbrlz67cs4q3pqf8169m9kjdj41kj6jay1dcx";
+  version = "0.3.3";
+  sha256 = "0xnyp8nwglh4waawijk1q5z8higf8mggh6hp0pp6ys4bm7gsp74a";
   buildDepends = [
     attoparsec cssText network tagsoup text utf8String
   ];
diff --git a/pkgs/development/libraries/haskell/yaml/default.nix b/pkgs/development/libraries/haskell/yaml/default.nix
index 6ab227a205d..eb90b847fc8 100644
--- a/pkgs/development/libraries/haskell/yaml/default.nix
+++ b/pkgs/development/libraries/haskell/yaml/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yaml";
-  version = "0.8.1.2";
-  sha256 = "1prk1nxzb84svqr552pgrfxg8kd34zvnh35js8l0q58y9rifxyq0";
+  version = "0.8.2";
+  sha256 = "1c83vxgry1425z4wk2mnijy183pnlhamcra7fvh55rvhq4bql1m8";
   buildDepends = [
     aeson attoparsec conduit resourcet text transformers
     unorderedContainers vector
diff --git a/pkgs/development/libraries/haskell/yesod-core/default.nix b/pkgs/development/libraries/haskell/yesod-core/default.nix
index 6f17a9a5177..65b24a4534c 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.7";
-  sha256 = "1z47h7ghhi8mvmrc0rcwb3si1bq4623i5x127k8fahcy6qk4qls8";
+  version = "1.1.7.1";
+  sha256 = "07rh6yy8hz660hxz60gvminm166cb5was8qb1l24lrmzchigbf3r";
   buildDepends = [
     aeson blazeBuilder blazeHtml blazeMarkup caseInsensitive cereal
     clientsession conduit cookie failure fastLogger hamlet httpTypes
diff --git a/pkgs/development/libraries/haskell/zip-archive/default.nix b/pkgs/development/libraries/haskell/zip-archive/default.nix
index 5ee2377147e..300de9df4c9 100644
--- a/pkgs/development/libraries/haskell/zip-archive/default.nix
+++ b/pkgs/development/libraries/haskell/zip-archive/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "zip-archive";
-  version = "0.1.2.1";
-  sha256 = "1c0pjbrkfv44nbpz60b1c4xdbkdk8qaxlkfxl51rb2183gj1gkph";
+  version = "0.1.3.3";
+  sha256 = "0zzps6s6lsv35qv1xx1fwipk2nwv255wpa956mvzbwdr47pgqjwi";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ binary digest filepath mtl time utf8String zlib ];
diff --git a/pkgs/development/libraries/libmicrohttpd/default.nix b/pkgs/development/libraries/libmicrohttpd/default.nix
index 90888ce0961..42f7c60610e 100644
--- a/pkgs/development/libraries/libmicrohttpd/default.nix
+++ b/pkgs/development/libraries/libmicrohttpd/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, curl}:
 
 stdenv.mkDerivation rec {
-  name = "libmicrohttpd-0.9.9";
+  name = "libmicrohttpd-0.9.24";
 
   src = fetchurl {
     url = "mirror://gnu/libmicrohttpd/${name}.tar.gz";
-    sha256 = "0059isy80cmxv44dhngnsc4g25kwxdcfis5yrva199r0vnb8ab6c";
+    sha256 = "0cp2ac6wbk493zslbvbmb5z96h18k496f9id8d2ji7hbdrwzfk6h";
   };
 
   buildInputs = [ curl ];
diff --git a/pkgs/development/libraries/libvdpau/default.nix b/pkgs/development/libraries/libvdpau/default.nix
index bf9927c9307..92ab8d67c91 100644
--- a/pkgs/development/libraries/libvdpau/default.nix
+++ b/pkgs/development/libraries/libvdpau/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, libX11 }:
 
 stdenv.mkDerivation rec {
-  name = "libvdpau-0.4.1";
+  name = "libvdpau-0.5";
   
   src = fetchurl {
     url = "http://people.freedesktop.org/~aplattner/vdpau/${name}.tar.gz";
-    sha256 = "16zmmbawfnvrxjqvgfwxjfd1wh3vyz2cmvxza6cgf4j9qs36y6q6";
+    sha256 = "0k2ydz4yp7zynlkpd1llfwax30xndwbca36z83ah1i4ldjw2gfhx";
   };
 
   buildInputs = [ pkgconfig libX11 ];
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 00000000000..ca89685a458
--- /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 00000000000..3164261291b
--- /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 00000000000..8770859817c
--- /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/libraries/v8/default.nix b/pkgs/development/libraries/v8/default.nix
index 5cd083a7e33..1fd6179183f 100644
--- a/pkgs/development/libraries/v8/default.nix
+++ b/pkgs/development/libraries/v8/default.nix
@@ -37,7 +37,11 @@ stdenv.mkDerivation rec {
       mkdir -p $out/bin
       mkdir -p $out/lib
       mv -v out/${arch}.release/d8 $out/bin
-      mv -v out/${arch}.release/lib.target/libv8.so $out/lib
+
+      ${if stdenv.system == "x86_64-darwin" then
+        "mv -v out/${arch}.release/libv8.dylib $out/lib"
+      else
+        "mv -v out/${arch}.release/lib.target/libv8.so $out/lib"}
       mv -v include $out/
     '';
 }
diff --git a/pkgs/development/libraries/wxGTK-2.9/default.nix b/pkgs/development/libraries/wxGTK-2.9/default.nix
index a0e69bff0fe..21a80d8951f 100644
--- a/pkgs/development/libraries/wxGTK-2.9/default.nix
+++ b/pkgs/development/libraries/wxGTK-2.9/default.nix
@@ -7,12 +7,15 @@ assert withMesa -> mesa != null;
 
 with stdenv.lib;
 
+let
+  version = "2.9.4";
+in
 stdenv.mkDerivation {
-  name = "wxwidgets-2.9.3";
+  name = "wxwidgets-${version}";
 
   src = fetchurl {
-    url = "mirror://sourceforge/wxwindows/wxWidgets-2.9.3.tar.bz2";
-    sha256 = "739c31a360b5c46b55904a7fb086f5cdfff0816efbc491d8263349210bf323b2";
+    url = "mirror://sourceforge/wxwindows/wxWidgets-${version}.tar.bz2";
+    sha256 = "04jda4bns7cmp7xy68qz112yg0lribpc6xs5k9gilfqcyhshqlvc";
   };
 
   buildInputs = [ gtk libXinerama libSM libXxf86vm xf86vidmodeproto gstreamer gst_plugins_base GConf ]
diff --git a/pkgs/development/androidenv/addon.xml b/pkgs/development/mobile/androidenv/addon.xml
index fb5d324d778..fb5d324d778 100644
--- a/pkgs/development/androidenv/addon.xml
+++ b/pkgs/development/mobile/androidenv/addon.xml
diff --git a/pkgs/development/androidenv/addons.nix b/pkgs/development/mobile/androidenv/addons.nix
index f26db5c2cb7..f26db5c2cb7 100644
--- a/pkgs/development/androidenv/addons.nix
+++ b/pkgs/development/mobile/androidenv/addons.nix
diff --git a/pkgs/development/androidenv/androidsdk.nix b/pkgs/development/mobile/androidenv/androidsdk.nix
index e8e1f919fe4..e8e1f919fe4 100644
--- a/pkgs/development/androidenv/androidsdk.nix
+++ b/pkgs/development/mobile/androidenv/androidsdk.nix
diff --git a/pkgs/development/androidenv/build-app.nix b/pkgs/development/mobile/androidenv/build-app.nix
index 571cd2be623..571cd2be623 100644
--- a/pkgs/development/androidenv/build-app.nix
+++ b/pkgs/development/mobile/androidenv/build-app.nix
diff --git a/pkgs/development/androidenv/default.nix b/pkgs/development/mobile/androidenv/default.nix
index a76deb98b6e..a76deb98b6e 100644
--- a/pkgs/development/androidenv/default.nix
+++ b/pkgs/development/mobile/androidenv/default.nix
diff --git a/pkgs/development/androidenv/emulate-app.nix b/pkgs/development/mobile/androidenv/emulate-app.nix
index 3cbe5723806..3cbe5723806 100644
--- a/pkgs/development/androidenv/emulate-app.nix
+++ b/pkgs/development/mobile/androidenv/emulate-app.nix
diff --git a/pkgs/development/androidenv/generate-addons.sh b/pkgs/development/mobile/androidenv/generate-addons.sh
index 9b2cf34eabc..9b2cf34eabc 100755
--- a/pkgs/development/androidenv/generate-addons.sh
+++ b/pkgs/development/mobile/androidenv/generate-addons.sh
diff --git a/pkgs/development/androidenv/generate-addons.xsl b/pkgs/development/mobile/androidenv/generate-addons.xsl
index 0100b980a4e..0100b980a4e 100644
--- a/pkgs/development/androidenv/generate-addons.xsl
+++ b/pkgs/development/mobile/androidenv/generate-addons.xsl
diff --git a/pkgs/development/androidenv/generate-platforms.sh b/pkgs/development/mobile/androidenv/generate-platforms.sh
index 983d8bde87b..983d8bde87b 100755
--- a/pkgs/development/androidenv/generate-platforms.sh
+++ b/pkgs/development/mobile/androidenv/generate-platforms.sh
diff --git a/pkgs/development/androidenv/generate-platforms.xsl b/pkgs/development/mobile/androidenv/generate-platforms.xsl
index 1802ae63efe..1802ae63efe 100644
--- a/pkgs/development/androidenv/generate-platforms.xsl
+++ b/pkgs/development/mobile/androidenv/generate-platforms.xsl
diff --git a/pkgs/development/androidenv/generate-sysimages.sh b/pkgs/development/mobile/androidenv/generate-sysimages.sh
index dc28c27f45f..dc28c27f45f 100755
--- a/pkgs/development/androidenv/generate-sysimages.sh
+++ b/pkgs/development/mobile/androidenv/generate-sysimages.sh
diff --git a/pkgs/development/androidenv/generate-sysimages.xsl b/pkgs/development/mobile/androidenv/generate-sysimages.xsl
index 1224ebbd4e8..1224ebbd4e8 100644
--- a/pkgs/development/androidenv/generate-sysimages.xsl
+++ b/pkgs/development/mobile/androidenv/generate-sysimages.xsl
diff --git a/pkgs/development/androidenv/platform-tools.nix b/pkgs/development/mobile/androidenv/platform-tools.nix
index 55499608290..55499608290 100644
--- a/pkgs/development/androidenv/platform-tools.nix
+++ b/pkgs/development/mobile/androidenv/platform-tools.nix
diff --git a/pkgs/development/androidenv/platforms-linux.nix b/pkgs/development/mobile/androidenv/platforms-linux.nix
index f544fcc08be..f544fcc08be 100644
--- a/pkgs/development/androidenv/platforms-linux.nix
+++ b/pkgs/development/mobile/androidenv/platforms-linux.nix
diff --git a/pkgs/development/androidenv/platforms-macosx.nix b/pkgs/development/mobile/androidenv/platforms-macosx.nix
index a1434bbe56c..a1434bbe56c 100644
--- a/pkgs/development/androidenv/platforms-macosx.nix
+++ b/pkgs/development/mobile/androidenv/platforms-macosx.nix
diff --git a/pkgs/development/androidenv/repository-7.xml b/pkgs/development/mobile/androidenv/repository-7.xml
index 7bbbaf1e362..7bbbaf1e362 100644
--- a/pkgs/development/androidenv/repository-7.xml
+++ b/pkgs/development/mobile/androidenv/repository-7.xml
diff --git a/pkgs/development/androidenv/support.nix b/pkgs/development/mobile/androidenv/support.nix
index 2e9690de7a2..2e9690de7a2 100644
--- a/pkgs/development/androidenv/support.nix
+++ b/pkgs/development/mobile/androidenv/support.nix
diff --git a/pkgs/development/androidenv/sysimages.nix b/pkgs/development/mobile/androidenv/sysimages.nix
index b35b4298983..b35b4298983 100644
--- a/pkgs/development/androidenv/sysimages.nix
+++ b/pkgs/development/mobile/androidenv/sysimages.nix
diff --git a/pkgs/development/mobile/titaniumenv/build-app.nix b/pkgs/development/mobile/titaniumenv/build-app.nix
new file mode 100644
index 00000000000..0fd4929bda7
--- /dev/null
+++ b/pkgs/development/mobile/titaniumenv/build-app.nix
@@ -0,0 +1,87 @@
+{stdenv, androidsdk, titaniumsdk, xcodewrapper}:
+{ appId, name, src, target, androidPlatformVersions ? [ "8" ]
+, release ? false, androidKeyStore ? null, androidKeyAlias ? null, androidKeyStorePassword ? null
+, iosKeyFile ? null, iosCertificateName ? null, iosCertificate ? null, iosCertificatePassword ? null
+}:
+
+assert (release && target == "android") -> androidKeyStore != null && androidKeyAlias != null && androidKeyStorePassword != null;
+assert (release && target == "iphone") -> iosKeyFile != null && iosCertificateName != null && iosCertificate != null && iosCertificatePassword != null;
+
+let
+  androidsdkComposition = androidsdk {
+    platformVersions = androidPlatformVersions;
+    useGoogleAPIs = true;
+  };
+in
+stdenv.mkDerivation {
+  inherit name src;
+  
+  buildInputs = [] ++ stdenv.lib.optional (stdenv.system == "x86_64-darwin") xcodewrapper;
+
+  buildPhase = ''
+    export HOME=$TMPDIR
+
+    mkdir -p $out
+    
+    ${if target == "android" then
+        if release then
+          "${titaniumsdk}/mobilesdk/*/*/android/builder.py distribute ${name} ${androidsdkComposition}/libexec/android-sdk-* $(pwd) ${appId} ${androidKeyStore} ${androidKeyStorePassword} ${androidKeyAlias} $out"
+        else
+          "${titaniumsdk}/mobilesdk/*/*/android/builder.py build ${name} ${androidsdkComposition}/libexec/android-sdk-* $(pwd) ${appId}"
+
+      else if target == "iphone" then
+        if release then
+          ''
+            export HOME=/Users/$(whoami)
+            export keychainName=$(basename $out)
+            
+            # Create a keychain with the component hash name (should always be unique)
+            security create-keychain -p "" $keychainName
+            security default-keychain -s $keychainName
+            security unlock-keychain -p "" $keychainName
+            security import ${iosCertificate} -k $keychainName -P "${iosCertificatePassword}" -A
+
+            provisioningId=$(grep UUID -A1 -a ${iosKeyFile} | grep -o "[-A-Z0-9]\{36\}")
+   
+            # Ensure that the requested provisioning profile can be found
+            
+            if [ ! -f "$HOME/Library/MobileDevice/Provisioning Profiles" ]
+            then
+                mkdir -p "$HOME/Library/MobileDevice/Provisioning Profiles"
+                cp ${iosKeyFile} "$HOME/Library/MobileDevice/Provisioning Profiles/$provisioningId.mobileprovision"
+            fi
+            
+            ${titaniumsdk}/mobilesdk/*/*/iphone/builder.py adhoc 6.0 $(pwd) ${appId} ${name} "$provisioningId" "${iosCertificateName}" universal "$HOME/Library/Keychains/$keychainName"
+            
+            # Remove our generated keychain
+            
+            security delete-keychain $keychainName
+          ''
+        else
+          ''
+            # Copy all sources to the output store directory.
+            # Why? Debug application include *.js files, which are symlinked into their
+            # sources. If they are not copied, we have dangling references to the
+            # temp folder.
+            
+            cp -av * $out
+            cd $out
+            ${titaniumsdk}/mobilesdk/*/*/iphone/builder.py build 6.0 $(pwd) ${appId} ${name}
+          ''
+
+      else throw "Target: ${target} is not supported!"}
+  '';
+  
+  installPhase = ''
+    mkdir -p $out
+    
+    ${if target == "android" && release then ""
+      else
+        if target == "android" then
+          ''cp $(ls build/android/bin/*.apk | grep -v '\-unsigned.apk') $out''
+        else if target == "iphone" && release then
+           "cp -av build/iphone/build/* $out"
+        else if target == "iphone" then ""
+        else throw "Target: ${target} is not supported!"}
+  '';
+}
diff --git a/pkgs/development/mobile/titaniumenv/default.nix b/pkgs/development/mobile/titaniumenv/default.nix
new file mode 100644
index 00000000000..8117b452d70
--- /dev/null
+++ b/pkgs/development/mobile/titaniumenv/default.nix
@@ -0,0 +1,18 @@
+{pkgs, pkgs_i686}:
+
+rec {
+  androidenv = pkgs.androidenv;
+
+  xcodeenv = if pkgs.stdenv.system == "x86_64-darwin" then pkgs.xcodeenv else null;
+
+  titaniumsdk = import ./titaniumsdk.nix {
+    inherit (pkgs) stdenv fetchurl unzip makeWrapper python jdk;
+  };
+  
+  buildApp = import ./build-app.nix {
+    inherit (pkgs) stdenv;
+    inherit (androidenv) androidsdk;
+    inherit (xcodeenv) xcodewrapper;
+    inherit titaniumsdk;
+  };
+}
diff --git a/pkgs/development/mobile/titaniumenv/examples/default.nix b/pkgs/development/mobile/titaniumenv/examples/default.nix
new file mode 100644
index 00000000000..1526d4c4359
--- /dev/null
+++ b/pkgs/development/mobile/titaniumenv/examples/default.nix
@@ -0,0 +1,38 @@
+let
+  pkgs = import <nixpkgs> {};
+  pkgs_i686 = import <nixpkgs> { system = "i686-linux"; };
+in
+rec {
+  titaniumenv = import ./.. {
+    inherit pkgs pkgs_i686;
+  };
+  
+  kitchensink_android = import ./kitchensink {
+    inherit titaniumenv;
+    inherit (pkgs) fetchgit;
+    target = "android";
+  };
+  
+  kitchensink_iphone = import ./kitchensink {
+    inherit titaniumenv;
+    inherit (pkgs) fetchgit;
+    target = "iphone";
+  };
+  
+  emulate_kitchensink = import ./emulate-kitchensink {
+    inherit (titaniumenv) androidenv;
+    kitchensink = kitchensink_android;
+  };
+  
+  simulate_kitchensink_iphone = import ./simulate-kitchensink {
+    inherit (titaniumenv) xcodeenv;
+    kitchensink = kitchensink_iphone;
+    device = "iPhone";
+  };
+  
+  simulate_kitchensink_ipad = import ./simulate-kitchensink {
+    inherit (titaniumenv) xcodeenv;
+    kitchensink = kitchensink_iphone;
+    device = "iPad";
+  };
+}
diff --git a/pkgs/development/mobile/titaniumenv/examples/emulate-kitchensink/default.nix b/pkgs/development/mobile/titaniumenv/examples/emulate-kitchensink/default.nix
new file mode 100644
index 00000000000..817aa5ab37f
--- /dev/null
+++ b/pkgs/development/mobile/titaniumenv/examples/emulate-kitchensink/default.nix
@@ -0,0 +1,10 @@
+{androidenv, kitchensink}:
+
+androidenv.emulateApp {
+  name = "kitchensink";
+  app = kitchensink;
+  platformVersion = "8";
+  useGoogleAPIs = true;
+  package = "com.appcelerator.kitchensink";
+  activity = "KitchensinkActivity";
+}
diff --git a/pkgs/development/mobile/titaniumenv/examples/kitchensink/default.nix b/pkgs/development/mobile/titaniumenv/examples/kitchensink/default.nix
new file mode 100644
index 00000000000..8e2b1df264a
--- /dev/null
+++ b/pkgs/development/mobile/titaniumenv/examples/kitchensink/default.nix
@@ -0,0 +1,24 @@
+{titaniumenv, fetchgit, target, androidPlatformVersions ? [ "8" ]}:
+
+titaniumenv.buildApp {
+  name = "KitchenSink";
+  appId = "com.appcelerator.kitchensink";
+  src = fetchgit {
+    url = https://github.com/appcelerator/KitchenSink.git;
+    rev = "0f2c0b818034cc4e6867f0aa2afc98bf77dbff02";
+    sha256 = "de31496cfb5625d7a193bbbc32a8021e4094ffab20ae13ef2e1583b0394d7c60";
+  };
+  
+  inherit target androidPlatformVersions;
+  
+  /*release = true;
+  androidKeyStore = /home/sander/keystore;
+  androidKeyAlias = "sander";
+  androidKeyStorePassword = "foobar";*/
+  
+  /*release = true;
+  iosKeyFile = /Users/sander/Downloads/profile.mobileprovision;
+  iosCertificateName = "My Company";
+  iosCertificate = /Users/sander/Downloads/c.p12;
+  iosCertificatePassword = "";*/
+}
diff --git a/pkgs/development/mobile/titaniumenv/examples/simulate-kitchensink/default.nix b/pkgs/development/mobile/titaniumenv/examples/simulate-kitchensink/default.nix
new file mode 100644
index 00000000000..70ec534f6ae
--- /dev/null
+++ b/pkgs/development/mobile/titaniumenv/examples/simulate-kitchensink/default.nix
@@ -0,0 +1,8 @@
+{xcodeenv, kitchensink, device}:
+
+xcodeenv.simulateApp {
+  name = "kitchensink";
+  app = kitchensink;
+  inherit device;
+  baseDir = "build/iphone/build/Debug-iphonesimulator";
+}
diff --git a/pkgs/development/mobile/titaniumenv/fixnativelibs.sed b/pkgs/development/mobile/titaniumenv/fixnativelibs.sed
new file mode 100644
index 00000000000..76b330136b6
--- /dev/null
+++ b/pkgs/development/mobile/titaniumenv/fixnativelibs.sed
@@ -0,0 +1 @@
+s|\t\t\t\t\t\t\t\tapk_zip.write(native_lib, path_in_zip)|\t\t\t\t\t\t\t\tinfo = zipfile.ZipInfo(path_in_zip)\n\t\t\t\t\t\t\t\tinfo.compress_type = zipfile.ZIP_DEFLATED\n\t\t\t\t\t\t\t\tinfo.create_system = 3\n\t\t\t\t\t\t\t\tf = open(native_lib)\n\t\t\t\t\t\t\t\tapk_zip.writestr(info, f.read())\n\t\t\t\t\t\t\t\tf.close()|
diff --git a/pkgs/development/mobile/titaniumenv/fixselfruntimev8.sed b/pkgs/development/mobile/titaniumenv/fixselfruntimev8.sed
new file mode 100644
index 00000000000..c849aaa611c
--- /dev/null
+++ b/pkgs/development/mobile/titaniumenv/fixselfruntimev8.sed
@@ -0,0 +1 @@
+s|apk_zip.write(os.path.join(lib_source_dir, fname), lib_dest_dir + fname)|info = zipfile.ZipInfo(lib_dest_dir + fname)\n\t\t\t\t\tinfo.compress_type = zipfile.ZIP_DEFLATED\n\t\t\t\t\tinfo.create_system = 3\n\t\t\t\t\tf = open(os.path.join(lib_source_dir, fname))\n\t\t\t\t\tapk_zip.writestr(info, f.read())\n\t\t\t\t\tf.close()|
diff --git a/pkgs/development/mobile/titaniumenv/fixtiverify.sed b/pkgs/development/mobile/titaniumenv/fixtiverify.sed
new file mode 100644
index 00000000000..8e1114769c8
--- /dev/null
+++ b/pkgs/development/mobile/titaniumenv/fixtiverify.sed
@@ -0,0 +1 @@
+s|apk_zip.write(os.path.join(lib_source_dir, 'libtiverify.so'), lib_dest_dir + 'libtiverify.so')|info = zipfile.ZipInfo(lib_dest_dir + 'libtiverify.so')\n\t\t\tinfo.compress_type = zipfile.ZIP_DEFLATED\n\t\t\tinfo.create_system = 3\n\t\t\tf = open(os.path.join(lib_source_dir, 'libtiverify.so'))\n\t\t\tapk_zip.writestr(info, f.read())\n\t\t\tf.close()|
diff --git a/pkgs/development/mobile/titaniumenv/titaniumsdk.nix b/pkgs/development/mobile/titaniumenv/titaniumsdk.nix
new file mode 100644
index 00000000000..5e1943b1bdc
--- /dev/null
+++ b/pkgs/development/mobile/titaniumenv/titaniumsdk.nix
@@ -0,0 +1,57 @@
+{stdenv, fetchurl, unzip, makeWrapper, python, jdk}:
+
+stdenv.mkDerivation {
+  name = "titanium-mobilesdk-2.1.5.v20121112144658";
+  src = if (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") then fetchurl {
+    url = http://builds.appcelerator.com.s3.amazonaws.com/mobile/2_1_X/mobilesdk-2.1.5.v20121112144658-linux.zip;
+    sha1 = "79f073d11ee893c508c5aa675a3126501dd385fd";
+  }
+  else if stdenv.system == "x86_64-darwin" then fetchurl {
+    url = http://builds.appcelerator.com.s3.amazonaws.com/mobile/2_1_X/mobilesdk-2.1.5.v20121112144658-osx.zip;
+    sha1 = "6a9a726882222d1615de332aa1ca608c15564e1c";
+  }
+  else throw "Platform: ${stdenv.system} not supported!";
+  
+  buildInputs = [ unzip makeWrapper ];
+  
+  buildCommand = ''
+    mkdir -p $out
+    cd $out
+    yes y | unzip $src
+    
+    # Fix shebang header for python scripts
+    
+    find . -name \*.py | while read i
+    do
+        sed -i -e "s|#!/usr/bin/env python|#!${python}/bin/python|" $i
+    done
+   
+    # Zip files do not support timestamps lower than 1980. We have to apply a few work-arounds to cope with that
+    # Yes, I know it's nasty :-)
+    
+    cd mobilesdk/*/*/android
+    
+    sed -i -f ${./fixtiverify.sed} builder.py
+    sed -i -f ${./fixselfruntimev8.sed} builder.py
+    sed -i -f ${./fixnativelibs.sed} builder.py
+    
+    # Patch some executables
+    
+    ${if stdenv.system == "i686-linux" then
+      ''
+        patchelf --set-interpreter ${stdenv.gcc.libc}/lib/ld-linux.so.2 titanium_prep.linux32
+      ''
+      else if stdenv.system == "x86_64-linux" then
+      ''
+        patchelf --set-interpreter ${stdenv.gcc.libc}/lib/ld-linux-x86-64.so.2 titanium_prep.linux64
+      ''
+      else ""}
+    
+    # Wrap builder script
+    
+    wrapProgram `pwd`/builder.py \
+      --prefix PYTHONPATH : ${python.modules.sqlite3}/lib/python*/site-packages \
+      --prefix PATH : ${jdk}/bin \
+      --prefix JAVA_HOME : ${jdk}
+  '';
+}
diff --git a/pkgs/development/mobile/xcodeenv/build-app.nix b/pkgs/development/mobile/xcodeenv/build-app.nix
new file mode 100644
index 00000000000..3ac9e4bb958
--- /dev/null
+++ b/pkgs/development/mobile/xcodeenv/build-app.nix
@@ -0,0 +1,92 @@
+{stdenv, xcodewrapper}:
+{ name
+, src
+, target ? null
+, configuration ? null
+, scheme ? null
+, sdk ? null
+, arch ? null
+, xcodeFlags ? ""
+, release ? false
+, codeSignIdentity ? null
+, certificateFile ? null
+, certificatePassword ? null
+, provisioningProfile ? null
+, generateIPA ? false
+, generateXCArchive ? false
+}:
+
+assert release -> codeSignIdentity != null && certificateFile != null && certificatePassword != null && provisioningProfile != null;
+
+let
+  # Set some default values here
+  
+  _target = if target == null then name else target;
+  _scheme = if scheme == null then name else scheme;
+
+  _configuration = if configuration == null
+    then
+      if release then "Release" else "Debug"
+    else configuration;
+    
+  _arch = if arch == null
+    then
+      if release then "armv7" else "i386"
+    else arch;
+
+  _sdk = if sdk == null
+    then
+      if release then "iphoneos6.0" else "iphonesimulator6.0"
+    else sdk;
+
+  # The following is to prevent repetition
+  deleteKeychain = "security delete-keychain $keychainName";
+in
+stdenv.mkDerivation {
+  inherit name src;
+  buildInputs = [ xcodewrapper ];
+  buildPhase = ''
+    ${stdenv.lib.optionalString release ''
+        export HOME=/Users/$(whoami)
+        keychainName="$(basename $out)"
+        
+        # Create a keychain
+        security create-keychain -p "" $keychainName
+        security default-keychain -s $keychainName
+        security unlock-keychain -p "" $keychainName
+        
+        # Import the certificate into the keychain
+        security import ${certificateFile} -k $keychainName -P "${certificatePassword}" -A 
+
+        # Determine provisioning ID
+        PROVISIONING_PROFILE=$(grep UUID -A1 -a ${provisioningProfile} | grep -o "[-A-Z0-9]\{36\}")
+
+        if [ ! -f "$HOME/Library/MobileDevice/Provisioning Profiles/$PROVISIONING_PROFILE.mobileprovision" ]
+        then
+            # Copy provisioning profile into the home directory
+            mkdir -p "$HOME/Library/MobileDevice/Provisioning Profiles"
+            cp ${provisioningProfile} "$HOME/Library/MobileDevice/Provisioning Profiles/$PROVISIONING_PROFILE.mobileprovision"
+        fi
+        
+        # Check whether the identity can be found
+        security find-identity -p codesigning $keychainName
+      ''}
+
+    # Do the building
+    xcodebuild -target ${_target} -configuration ${_configuration} -scheme ${_scheme} -sdk ${_sdk} -arch ${_arch} ONLY_ACTIVE_ARCH=NO CONFIGURATION_TEMP_DIR=$TMPDIR CONFIGURATION_BUILD_DIR=$out ${if generateXCArchive then "archive" else ""} ${xcodeFlags} ${if release then ''"CODE_SIGN_IDENTITY=${codeSignIdentity}" PROVISIONING_PROFILE=$PROVISIONING_PROFILE OTHER_CODE_SIGN_FLAGS="--keychain $HOME/Library/Keychains/$keychainName"'' else ""}
+    
+    ${stdenv.lib.optionalString release ''
+      ${stdenv.lib.optionalString generateIPA ''
+        # Produce an IPA file
+        xcrun -sdk iphoneos PackageApplication -v $out/*.app -o $out/${name}.ipa
+      ''}
+      
+      # Delete our temp keychain
+      ${deleteKeychain}
+    ''}
+  '';
+  
+  failureHook = stdenv.lib.optionalString release deleteKeychain;
+  
+  installPhase = "true";
+}
diff --git a/pkgs/development/mobile/xcodeenv/default.nix b/pkgs/development/mobile/xcodeenv/default.nix
new file mode 100644
index 00000000000..7f834688e63
--- /dev/null
+++ b/pkgs/development/mobile/xcodeenv/default.nix
@@ -0,0 +1,15 @@
+{stdenv}:
+
+rec {
+  xcodewrapper = import ./xcodewrapper.nix {
+    inherit stdenv;
+  };
+
+  buildApp = import ./build-app.nix {
+    inherit stdenv xcodewrapper;
+  };
+
+  simulateApp = import ./simulate-app.nix {
+    inherit stdenv xcodewrapper;
+  };
+}
diff --git a/pkgs/development/mobile/xcodeenv/simulate-app.nix b/pkgs/development/mobile/xcodeenv/simulate-app.nix
new file mode 100644
index 00000000000..456732abe1f
--- /dev/null
+++ b/pkgs/development/mobile/xcodeenv/simulate-app.nix
@@ -0,0 +1,17 @@
+{stdenv, xcodewrapper}:
+{name, app, device ? "iPhone", baseDir ? ""}:
+
+stdenv.mkDerivation {
+  inherit name;
+  buildCommand = ''
+    ensureDir $out/bin
+    cat > $out/bin/run-test-simulator << "EOF"
+    #! ${stdenv.shell} -e
+
+    cd ${app}/${baseDir}/${name}.app
+    "$(readlink "${xcodewrapper}/bin/iPhone Simulator")" -SimulateApplication ./${name} -SimulateDevice '${device}'
+    EOF
+    chmod +x $out/bin/run-test-simulator
+  '';
+}
+
diff --git a/pkgs/development/mobile/xcodeenv/xcodewrapper.nix b/pkgs/development/mobile/xcodeenv/xcodewrapper.nix
new file mode 100644
index 00000000000..39804b1a248
--- /dev/null
+++ b/pkgs/development/mobile/xcodeenv/xcodewrapper.nix
@@ -0,0 +1,24 @@
+{stdenv}:
+
+let
+  version = "4.5.2";
+in
+stdenv.mkDerivation {
+  name = "xcode-wrapper-"+version;
+  buildCommand = ''
+    ensureDir $out/bin
+    cd $out/bin
+    ln -s /usr/bin/xcode-select
+    ln -s /usr/bin/xcodebuild
+    ln -s /usr/bin/xcrun
+    ln -s /usr/bin/security
+    ln -s "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone Simulator.app/Contents/MacOS/iPhone Simulator"
+
+    # Check if we have the xcodebuild version that we want
+    if [ -z "$($out/bin/xcodebuild -version | grep ${version})" ]
+    then
+        echo "We require xcodebuild version: ${version}"
+        exit 1
+    fi
+  '';
+}
diff --git a/pkgs/development/python-modules/generic/default.nix b/pkgs/development/python-modules/generic/default.nix
index 8da833b0dc1..e007795105f 100644
--- a/pkgs/development/python-modules/generic/default.nix
+++ b/pkgs/development/python-modules/generic/default.nix
@@ -37,6 +37,7 @@
       runHook postCheck
     ''
 
+, preInstall ? ""
 , postInstall ? ""
 
 , ... } @ attrs:
@@ -63,7 +64,7 @@ python.stdenv.mkDerivation (attrs // {
     ${preConfigure}
   '';
 
-  installPhase = ''
+  installPhase = preInstall + ''
     mkdir -p "$out/lib/${python.libPrefix}/site-packages"
 
     echo "installing \`${name}' with \`easy_install'..."
diff --git a/pkgs/development/tools/haskell/SourceGraph/default.nix b/pkgs/development/tools/haskell/SourceGraph/default.nix
index 382a940408f..f5d43a7ab50 100644
--- a/pkgs/development/tools/haskell/SourceGraph/default.nix
+++ b/pkgs/development/tools/haskell/SourceGraph/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "SourceGraph";
-  version = "0.7.0.3";
-  sha256 = "04bx7przxha38n9vckcxz3mbcxcws5ifbc1xfm0rg6bn8rym78yb";
+  version = "0.7.0.4";
+  sha256 = "1rxbanvw1dpdnpmrf5gpl12gn9796yq89dnmdxy56mb9qzsm7nm6";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/tools/haskell/hlint/default.nix b/pkgs/development/tools/haskell/hlint/default.nix
index bb6d64e54f0..4cbd57a8c5f 100644
--- a/pkgs/development/tools/haskell/hlint/default.nix
+++ b/pkgs/development/tools/haskell/hlint/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hlint";
-  version = "1.8.39";
-  sha256 = "009qf441nri8pxzz22xvpz44dhspr9bkh5diaz29abimj10fm375";
+  version = "1.8.40";
+  sha256 = "18w4dhxv7c1y4x1agdjq99ss5i77jnm8p9vg3jp9gvhk2arhcl0x";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/tools/haskell/splot/default.nix b/pkgs/development/tools/haskell/splot/default.nix
index dcab346aab5..4bd47b8decd 100644
--- a/pkgs/development/tools/haskell/splot/default.nix
+++ b/pkgs/development/tools/haskell/splot/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "splot";
-  version = "0.3.7";
-  sha256 = "0mal7zphwzycxm2i0v87vn6gvdb582zy51prngj4w11xgpxd7dg1";
+  version = "0.3.8";
+  sha256 = "188v9c070wn6gr47k5q55gsiph0lj96d96bss76gz7znknfj9rm3";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/tools/misc/automake/automake-1.13.x.nix b/pkgs/development/tools/misc/automake/automake-1.13.x.nix
new file mode 100644
index 00000000000..3556b4f47aa
--- /dev/null
+++ b/pkgs/development/tools/misc/automake/automake-1.13.x.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, perl, autoconf, makeWrapper, doCheck ? false }:
+
+stdenv.mkDerivation rec {
+  name = "automake-1.13.1";
+
+  src = fetchurl {
+    url = "mirror://gnu/automake/${name}.tar.xz";
+    sha256 = "12yi1bzkipi7qdmkdy77pazljsa9z7q66hi6c4rq73p7hbv6rkbf";
+  };
+
+  buildInputs = [ perl autoconf ];
+
+  setupHook = ./setup-hook.sh;
+
+  # Disable indented log output from Make, otherwise "make.test" will
+  # fail.
+  preCheck = "unset NIX_INDENT_MAKE";
+  inherit doCheck;
+
+  # The test suite can run in parallel.
+  enableParallelBuilding = true;
+
+  # Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the
+  # "fixed" path in generated files!
+  dontPatchShebangs = true;
+
+  meta = {
+    homepage = "http://www.gnu.org/software/automake/";
+    description = "GNU Automake, a GNU standard-compliant makefile generator";
+    license = "GPLv2+";
+
+    longDescription = ''
+      GNU Automake is a tool for automatically generating
+      `Makefile.in' files compliant with the GNU Coding
+      Standards.  Automake requires the use of Autoconf.
+    '';
+
+    maintainers = [ stdenv.lib.maintainers.ludo stdenv.lib.maintainers.simons ];
+  };
+}
diff --git a/pkgs/development/web/nodejs/default.nix b/pkgs/development/web/nodejs/default.nix
index 48d1c306993..533411b92de 100644
--- a/pkgs/development/web/nodejs/default.nix
+++ b/pkgs/development/web/nodejs/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     "--shared-v8-libpath=${v8}/lib"
   ];
 
-  patches = stdenv.lib.optional stdenv.isDarwin ./no-arch-flag.patch;
+  #patches = stdenv.lib.optional stdenv.isDarwin ./no-arch-flag.patch;
 
   prePatch = ''
     sed -e 's|^#!/usr/bin/env python$|#!${python}/bin/python|g' -i tools/{*.py,waf-light,node-waf} configure
diff --git a/pkgs/games/anki/default.nix b/pkgs/games/anki/default.nix
new file mode 100644
index 00000000000..d2e438dfa7b
--- /dev/null
+++ b/pkgs/games/anki/default.nix
@@ -0,0 +1,67 @@
+{ stdenv, lib, fetchurl
+, python, pyqt4, pythonPackages
+# This little flag adds a huge number of dependencies, but we assume that
+# everyone wants Anki to draw plots with statistics by default.
+, plotsSupport ? true }:
+
+let
+    py = pythonPackages;
+in
+
+stdenv.mkDerivation rec {
+    name = "anki-2.0.3";
+    src = fetchurl {
+      url = "http://ankisrs.net/download/mirror/${name}.tgz";
+      sha256 = "f40ee4ef29c91101cf9978ce7bd4c513f13ca7c77497a3fb50b8128adf3a5178";
+    };
+
+    pythonPath = [ pyqt4 py.pysqlite py.sqlalchemy ]
+              ++ lib.optional plotsSupport py.matplotlib;
+
+    buildInputs = [ python py.wrapPython ];
+
+    preConfigure = ''
+      substituteInPlace anki \
+        --replace /usr/share/ $out/share/
+
+      substituteInPlace Makefile \
+        --replace PREFIX=/usr PREFIX=$out \
+        --replace /local/bin/ /bin/
+
+      sed -i '/xdg-mime/ d' Makefile
+    '';
+
+    preInstall = ''
+      mkdir -p $out/bin
+      mkdir -p $out/share/pixmaps
+      mkdir -p $out/share/applications
+      mkdir -p $out/share/man/man1
+    '';
+
+    postInstall = ''
+      wrapPythonPrograms
+    '';
+
+    meta = {
+      homepage = http://ankisrs.net/;
+      description = "Spaced repetition flashcard program";
+      # Copy-pasted from the homepage
+      longDescription = ''
+        Anki is a program which makes remembering things easy. Because it is a lot
+        more efficient than traditional study methods, you can either greatly
+        decrease your time spent studying, or greatly increase the amount you learn.
+
+        Anyone who needs to remember things in their daily life can benefit from
+        Anki. Since it is content-agnostic and supports images, audio, videos and 
+        scientific markup (via LaTeX), the possibilities are endless. For example:
+
+        * learning a language
+        * studying for medical and law exams
+        * memorizing people's names and faces
+        * brushing up on geography
+        * mastering long poems
+        * even practicing guitar chords!
+      '';
+      license = "GPLv3";
+    };
+}
diff --git a/pkgs/games/bsdgames/default.nix b/pkgs/games/bsdgames/default.nix
index 38a32da9537..59423d7a5a6 100644
--- a/pkgs/games/bsdgames/default.nix
+++ b/pkgs/games/bsdgames/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, ncurses, openssl, flex, bison, miscfiles}:
+{stdenv, fetchurl, ncurses, openssl, flex, bison, less, miscfiles}:
 
 stdenv.mkDerivation {
   name = "bsd-games-2.17";
@@ -26,12 +26,19 @@ stdenv.mkDerivation {
     bsd_games_cfg_fortune_dir=$out/share/games/fortune
     bsd_games_cfg_quiz_dir=$out/share/games/quiz
     bsd_games_cfg_gamesdir=$out/bin
+    bsd_games_cfg_sbindir=$out/bin
+    bsd_games_cfg_usrbindir=$out/bin
+    bsd_games_cfg_libexecdir=$out/lib/games/dm
+    bsd_games_cfg_docdir=$out/share/doc/bsd-games
+    bsd_games_cfg_sharedir=$out/share/games
+    bsd_games_cfg_varlibdir=.
     bsd_games_cfg_non_interactive=y
     bsd_games_cfg_no_build_dirs="dab hack phantasia sail"
     bsd_games_cfg_dictionary_src=${miscfiles}/share/dict/words
+    bsd_games_cfg_pager=${less}
     EOF
 
-    sed -e s/getline/sdgames_local_getline/g -i $(grep getline -rl .)
+    sed -e s/getline/bsdgames_local_getline/g -i $(grep getline -rl .)
   '';
 
   postConfigure = ''
diff --git a/pkgs/lib/types.nix b/pkgs/lib/types.nix
index 6bc2e0f1ecb..1cb1185b8bb 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/misc/emulators/wine/default.nix b/pkgs/misc/emulators/wine/default.nix
index 401c9da575b..f4968158dd2 100644
--- a/pkgs/misc/emulators/wine/default.nix
+++ b/pkgs/misc/emulators/wine/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://sourceforge/wine/${name}.tar.bz2";
-    sha256 = "0c14paj2j3sswl6mpjjmy9bxnpijk095ks58x9dsycx9c8x0gqvm";
+    sha256 = "0l5kr3iq1lkv3gcw8ljzfjcfnsh9b5crdd4i0dzwdk1i3bfw2xxc";
   };
 
   gecko = fetchurl {
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = {
-    version = "1.5.20";
+    version = "1.5.21";
     homepage = "http://www.winehq.org/";
     license = "LGPL";
     description = "An Open Source implementation of the Windows API on top of X, OpenGL, and Unix";
diff --git a/pkgs/os-specific/linux/atop/default.nix b/pkgs/os-specific/linux/atop/default.nix
index 0e2df1e25fb..39ba5dc3973 100644
--- a/pkgs/os-specific/linux/atop/default.nix
+++ b/pkgs/os-specific/linux/atop/default.nix
@@ -1,12 +1,12 @@
 {stdenv, fetchurl, zlib, ncurses}:
 
 stdenv.mkDerivation rec {
-  version = "1.27-3";
+  version = "2.0.2";
   name = "atop-${version}";
 
   src = fetchurl {
     url = "http://www.atoptool.nl/download/atop-${version}.tar.gz";
-    sha256 = "bce36e0b50f0e03995d86d25dbc9ab4a289f6755ce3558844f96d41b0bba563f";
+    sha256 = "029lfa2capz1lg3m3rnyrgb8v6jm4znin84vjh2f0zkwvvhdn856";
   };
 
   buildInputs = [zlib ncurses];
diff --git a/pkgs/os-specific/linux/cryptsetup/default.nix b/pkgs/os-specific/linux/cryptsetup/default.nix
index 9e762f64904..6d612f8cdbd 100644
--- a/pkgs/os-specific/linux/cryptsetup/default.nix
+++ b/pkgs/os-specific/linux/cryptsetup/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, devicemapper, libgcrypt, libuuid, pkgconfig, popt }:
 
 stdenv.mkDerivation rec {
-  name = "cryptsetup-1.5.0";
+  name = "cryptsetup-1.5.1";
 
   src = fetchurl {
     url = "http://cryptsetup.googlecode.com/files/${name}.tar.bz2";
-    sha256 = "1l7qcmaq092k28k8sbw845hs6jwn0f05h68rmb7iwh52232m8wa0";
+    sha256 = "0dib3nw6ifd7d7hr9k4iyaha3hz0pkzairqa38l3fndkr9w3zlhn";
   };
 
   configureFlags = "--enable-cryptsetup-reencrypt";
diff --git a/pkgs/os-specific/linux/kernel/linux-3.2.nix b/pkgs/os-specific/linux/kernel/linux-3.2.nix
index 8a3a6ba47e3..212a86f36a3 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.2.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.2.nix
@@ -237,7 +237,7 @@ in
 import ./generic.nix (
 
   rec {
-    version = "3.2.35";
+    version = "3.2.36";
     testing = false;
 
     modDirVersion = version;
@@ -248,7 +248,7 @@ import ./generic.nix (
 
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v3.0/${if testing then "testing/" else ""}linux-${version}.tar.xz";
-      sha256 = "0p665msvhmjmcvgravi10yyfbnvn6bm9xfhsflj61qj0frj0lzn9";
+      sha256 = "0jyla0mjh1jjk84jywyvd7n6ax27xarkllfjf991rqj32zinlnzn";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/nvidia-x11/builder.sh b/pkgs/os-specific/linux/nvidia-x11/builder.sh
index 124c8955e26..98a03002fc2 100755
--- a/pkgs/os-specific/linux/nvidia-x11/builder.sh
+++ b/pkgs/os-specific/linux/nvidia-x11/builder.sh
@@ -27,19 +27,23 @@ buildPhase() {
 installPhase() {
 
     # Install libGL and friends.
-    mkdir -p $out/lib
-    cp -prd libcuda.* libGL.* libnvidia-cfg.* libnvidia-compiler.* libnvidia-tls.* libnvidia-glcore.* libOpenCL.* libvdpau_nvidia* tls $out/lib/
-
-    ln -snf libnvidia-glcore.so.$versionNumber $out/lib/libnvidia-glcore.so
-    ln -snf libnvidia-glcore.so.$versionNumber $out/lib/libnvidia-glcore.so.1
-    ln -snf libGL.so.$versionNumber $out/lib/libGL.so
-    ln -snf libGL.so.$versionNumber $out/lib/libGL.so.1
-    ln -snf libnvidia-cfg.so.$versionNumber $out/lib/libnvidia-cfg.so.1
-    ln -snf libnvidia-tls.so.$versionNumber $out/lib/libnvidia-tls.so.1
-    ln -snf libnvidia-tls.so.$versionNumber $out/lib/tls/libnvidia-tls.so.1
-    ln -snf libcuda.so.$versionNumber $out/lib/libcuda.so.1
-    ln -snf libcuda.so.1 $out/lib/libcuda.so
-    ln -snf libvdpau_nvidia.so.$versionNumber $out/lib/libvdpau_nvidia.so
+    mkdir -p $out/lib/vendors
+
+    for f in \
+      libcuda libGL libnvcuvid libnvidia-cfg libnvidia-compiler \
+      libnvidia-encode libnvidia-glcore libnvidia-ml libnvidia-opencl \
+      libnvidia-tls libOpenCL libnvidia-tls libvdpau_nvidia
+    do
+      cp -prd $f.* $out/lib/
+      ln -snf $f.so.$versionNumber $out/lib/$f.so
+      ln -snf $f.so.$versionNumber $out/lib/$f.so.1
+    done
+
+    cp -p nvidia.icd $out/lib/vendors/
+    cp -prd tls $out/lib/
+    cp -prd libOpenCL.so.1.0.0 $out/lib/
+    ln -snf libOpenCL.so.1.0.0 $out/lib/libOpenCL.so
+    ln -snf libOpenCL.so.1.0.0 $out/lib/libOpenCL.so.1
 
     patchelf --set-rpath $out/lib:$glPath $out/lib/libGL.so.*.*
     patchelf --set-rpath $out/lib:$glPath $out/lib/libvdpau_nvidia.so.*.*
diff --git a/pkgs/os-specific/linux/systemd/reexec.patch b/pkgs/os-specific/linux/systemd/0001-Make-systemctl-daemon-reexec-do-the-right-thing-on-N.patch
index ff13a44ca0b..9afa7543e57 100644
--- a/pkgs/os-specific/linux/systemd/reexec.patch
+++ b/pkgs/os-specific/linux/systemd/0001-Make-systemctl-daemon-reexec-do-the-right-thing-on-N.patch
@@ -1,10 +1,18 @@
-Make "systemctl daemon-reexec" do the right thing on NixOS.
+From 0085f49cd0ba889e3db9102f328f6044ae3a2c18 Mon Sep 17 00:00:00 2001
+From: Eelco Dolstra <eelco.dolstra@logicblox.com>
+Date: Tue, 8 Jan 2013 15:44:33 +0100
+Subject: [PATCH 1/6] Make "systemctl daemon-reexec" do the right thing on
+ NixOS
+
+---
+ src/core/main.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/core/main.c b/src/core/main.c
-index 04fc0b3..0f5b0e9 100644
+index 1ee3c9c..1686f60 100644
 --- a/src/core/main.c
 +++ b/src/core/main.c
-@@ -1819,7 +1819,7 @@ finish:
+@@ -1858,7 +1858,7 @@ finish:
                          char_array_0(sfd);
  
                          i = 0;
@@ -13,3 +21,6 @@ index 04fc0b3..0f5b0e9 100644
                          if (switch_root_dir)
                                  args[i++] = "--switched-root";
                          args[i++] = arg_running_as == SYSTEMD_SYSTEM ? "--system" : "--user";
+-- 
+1.8.0.1
+
diff --git a/pkgs/os-specific/linux/systemd/ignore-duplicates.patch b/pkgs/os-specific/linux/systemd/0002-Ignore-duplicate-paths-in-systemctl-start.patch
index 764eead54ea..76160a1f7cc 100644
--- a/pkgs/os-specific/linux/systemd/ignore-duplicates.patch
+++ b/pkgs/os-specific/linux/systemd/0002-Ignore-duplicate-paths-in-systemctl-start.patch
@@ -1,10 +1,17 @@
-Ignore duplicate paths in "systemctl start".
+From 2b0a9106d3aabb365af0cc34b595a1e697120f37 Mon Sep 17 00:00:00 2001
+From: Eelco Dolstra <eelco.dolstra@logicblox.com>
+Date: Tue, 8 Jan 2013 15:45:01 +0100
+Subject: [PATCH 2/6] Ignore duplicate paths in "systemctl start"
+
+---
+ src/systemctl/systemctl.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
 
 diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
-index a4290c4..d3ac3ad 100644
+index 2ebfff8..9f99df5 100644
 --- a/src/systemctl/systemctl.c
 +++ b/src/systemctl/systemctl.c
-@@ -1596,8 +1596,11 @@ static int start_unit_one(
+@@ -1591,8 +1591,11 @@ static int start_unit_one(
  
                  r = set_put(s, p);
                  if (r < 0) {
@@ -18,3 +25,6 @@ index a4290c4..d3ac3ad 100644
                  }
  
                  p = NULL;
+-- 
+1.8.0.1
+
diff --git a/pkgs/os-specific/linux/systemd/crypt-devices-are-ready.patch b/pkgs/os-specific/linux/systemd/0003-Start-device-units-for-uninitialised-encrypted-devic.patch
index 4646ed0e44c..a16a2672feb 100644
--- a/pkgs/os-specific/linux/systemd/crypt-devices-are-ready.patch
+++ b/pkgs/os-specific/linux/systemd/0003-Start-device-units-for-uninitialised-encrypted-devic.patch
@@ -1,9 +1,16 @@
-Do start device units for uninitialised encrypted devices, because the
-service that initialises the filesystem depends on the appearance of
-the device unit.  Also, this makes more sense to me: the device is
-ready; it's the filesystem that's not, but taking care of that is the
-responsibility of the mount unit.  (However, this ignores the fsck
-unit, so it's not perfect...)
+From a013beb84f135cebf1c8c9363d5676c1c0a6be7a Mon Sep 17 00:00:00 2001
+From: Eelco Dolstra <eelco.dolstra@logicblox.com>
+Date: Tue, 8 Jan 2013 15:46:30 +0100
+Subject: [PATCH 3/6] Start device units for uninitialised encrypted devices
+
+This is necessary because the NixOS service that initialises the
+filesystem depends on the appearance of the device unit.  Also, this
+makes more sense to me: the device is ready; it's the filesystem
+that's not, but taking care of that is the responsibility of the mount
+unit.  (However, this ignores the fsck unit, so it's not perfect...)
+---
+ rules/99-systemd.rules.in | 4 ----
+ 1 file changed, 4 deletions(-)
 
 diff --git a/rules/99-systemd.rules.in b/rules/99-systemd.rules.in
 index d17bdd9..040b10e 100644
@@ -20,3 +27,6 @@ index d17bdd9..040b10e 100644
  # Ignore raid devices that are not yet assembled and started
  SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", TEST!="md/array_state", ENV{SYSTEMD_READY}="0"
  SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", ATTR{md/array_state}=="|clear|inactive", ENV{SYSTEMD_READY}="0"
+-- 
+1.8.0.1
+
diff --git a/pkgs/os-specific/linux/systemd/0004-Set-switch-to-configuration-hints-for-some-units.patch b/pkgs/os-specific/linux/systemd/0004-Set-switch-to-configuration-hints-for-some-units.patch
new file mode 100644
index 00000000000..beab35d63a0
--- /dev/null
+++ b/pkgs/os-specific/linux/systemd/0004-Set-switch-to-configuration-hints-for-some-units.patch
@@ -0,0 +1,74 @@
+From b40d8783f94666035baae567882c0d4be82cda01 Mon Sep 17 00:00:00 2001
+From: Eelco Dolstra <eelco.dolstra@logicblox.com>
+Date: Tue, 8 Jan 2013 15:48:19 +0100
+Subject: [PATCH 4/6] Set switch-to-configuration hints for some units
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Target units like local-fs.target need ‘X-StopOnReconfiguration=yes’
+to ensure dependencies *on* that target properly take into account the
+dependencies *of* the target.
+
+‘X-RestartIfChanged=no’ is necessary for systemd-journald.service
+because restarting it causes services connected to journald to stop
+logging.
+
+‘X-RestartIfChanged=no’ is necessary for systemd-user-sessions.service
+to prevent all user sessions from being killed when this unit changes.
+---
+ units/local-fs.target                  | 2 ++
+ units/remote-fs.target                 | 2 ++
+ units/systemd-journald.service.in      | 5 +++++
+ units/systemd-user-sessions.service.in | 3 +++
+ 4 files changed, 12 insertions(+)
+
+diff --git a/units/local-fs.target b/units/local-fs.target
+index dd92b17..dfcbc7b 100644
+--- a/units/local-fs.target
++++ b/units/local-fs.target
+@@ -10,3 +10,5 @@ Description=Local File Systems
+ Documentation=man:systemd.special(7)
+ OnFailure=emergency.target
+ OnFailureIsolate=yes
++
++X-StopOnReconfiguration=yes
+diff --git a/units/remote-fs.target b/units/remote-fs.target
+index 9e68878..85a53d7 100644
+--- a/units/remote-fs.target
++++ b/units/remote-fs.target
+@@ -9,5 +9,7 @@
+ Description=Remote File Systems
+ Documentation=man:systemd.special(7)
+ 
++X-StopOnReconfiguration=yes
++
+ [Install]
+ WantedBy=multi-user.target
+diff --git a/units/systemd-journald.service.in b/units/systemd-journald.service.in
+index ab2e50c..9563a7d 100644
+--- a/units/systemd-journald.service.in
++++ b/units/systemd-journald.service.in
+@@ -24,3 +24,8 @@ CapabilityBoundingSet=CAP_SYS_ADMIN CAP_DAC_OVERRIDE CAP_SYS_PTRACE CAP_SYSLOG C
+ # Increase the default a bit in order to allow many simultaneous
+ # services being run since we keep one fd open per service.
+ LimitNOFILE=16384
++
++# Don't restart journald, since that causes services connected to
++# journald to stop logging (see
++# https://bugs.freedesktop.org/show_bug.cgi?id=56043).
++X-RestartIfChanged=no
+diff --git a/units/systemd-user-sessions.service.in b/units/systemd-user-sessions.service.in
+index 0869e73..b6ed958 100644
+--- a/units/systemd-user-sessions.service.in
++++ b/units/systemd-user-sessions.service.in
+@@ -15,3 +15,6 @@ Type=oneshot
+ RemainAfterExit=yes
+ ExecStart=@rootlibexecdir@/systemd-user-sessions start
+ ExecStop=@rootlibexecdir@/systemd-user-sessions stop
++
++# Restart kills all active sessions.
++X-RestartIfChanged=no
+-- 
+1.8.0.1
+
diff --git a/pkgs/os-specific/linux/systemd/0005-sysinit.target-Drop-the-dependency-on-local-fs.targe.patch b/pkgs/os-specific/linux/systemd/0005-sysinit.target-Drop-the-dependency-on-local-fs.targe.patch
new file mode 100644
index 00000000000..4403e6f56aa
--- /dev/null
+++ b/pkgs/os-specific/linux/systemd/0005-sysinit.target-Drop-the-dependency-on-local-fs.targe.patch
@@ -0,0 +1,33 @@
+From c5c8ac3a0420fb42ba2f629368fd5bd6ea1e753b Mon Sep 17 00:00:00 2001
+From: Eelco Dolstra <eelco.dolstra@logicblox.com>
+Date: Tue, 8 Jan 2013 15:56:03 +0100
+Subject: [PATCH 5/6] sysinit.target: Drop the dependency on local-fs.target
+ and swap.target
+
+Having all services with DefaultDependencies=yes depend on
+local-fs.target is annoying, because some of those services might be
+necessary to mount local filesystems.  For instance, Charon's
+send-keys feature requires sshd to be running in order to receive LUKS
+encryption keys, which in turn requires dhcpcd, and so on.  So we drop
+this dependency (and swap.target as well for consistency).  If
+services require a specific mount, they should use RequiresMountsFor
+in any case.
+---
+ units/sysinit.target | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/units/sysinit.target b/units/sysinit.target
+index 8f4fb8f..e0f0147 100644
+--- a/units/sysinit.target
++++ b/units/sysinit.target
+@@ -9,6 +9,5 @@
+ Description=System Initialization
+ Documentation=man:systemd.special(7)
+ Conflicts=emergency.service emergency.target
+-Wants=local-fs.target swap.target
+-After=local-fs.target swap.target emergency.service emergency.target
++After=emergency.service emergency.target
+ RefuseManualStart=yes
+-- 
+1.8.0.1
+
diff --git a/pkgs/os-specific/linux/systemd/0006-Don-t-call-plymouth-quit.patch b/pkgs/os-specific/linux/systemd/0006-Don-t-call-plymouth-quit.patch
new file mode 100644
index 00000000000..250a751fe0c
--- /dev/null
+++ b/pkgs/os-specific/linux/systemd/0006-Don-t-call-plymouth-quit.patch
@@ -0,0 +1,38 @@
+From d3caa154098e215145679f38fa92a8bd482107be Mon Sep 17 00:00:00 2001
+From: Eelco Dolstra <eelco.dolstra@logicblox.com>
+Date: Tue, 8 Jan 2013 18:36:28 +0100
+Subject: [PATCH 6/6] Don't call "plymouth quit"
+
+NixOS doesn't use Plymouth (yet).
+---
+ units/emergency.service.in | 1 -
+ units/rescue.service.m4.in | 1 -
+ 2 files changed, 2 deletions(-)
+
+diff --git a/units/emergency.service.in b/units/emergency.service.in
+index 442f0e0..6b7eafd 100644
+--- a/units/emergency.service.in
++++ b/units/emergency.service.in
+@@ -15,7 +15,6 @@ Before=shutdown.target
+ [Service]
+ Environment=HOME=/root
+ WorkingDirectory=/root
+-ExecStartPre=-/bin/plymouth quit
+ ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again\\nto boot into default mode.'
+ ExecStart=-/sbin/sulogin
+ ExecStopPost=@SYSTEMCTL@ --fail --no-block default
+diff --git a/units/rescue.service.m4.in b/units/rescue.service.m4.in
+index 269797a..2c640f4 100644
+--- a/units/rescue.service.m4.in
++++ b/units/rescue.service.m4.in
+@@ -16,7 +16,6 @@ Before=shutdown.target
+ [Service]
+ Environment=HOME=/root
+ WorkingDirectory=/root
+-ExecStartPre=-/bin/plymouth quit
+ ExecStartPre=-/bin/echo -e 'Welcome to rescue mode! Type "systemctl default" or ^D to enter default mode.\\nType "journalctl -xb" to view system logs. Type "systemctl reboot" to reboot.'
+ ExecStart=-/sbin/sulogin
+ ExecStopPost=-@SYSTEMCTL@ --fail --no-block default
+-- 
+1.8.0.1
+
diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix
index a207213d12d..93471d497c6 100644
--- a/pkgs/os-specific/linux/systemd/default.nix
+++ b/pkgs/os-specific/linux/systemd/default.nix
@@ -1,22 +1,25 @@
 { stdenv, fetchurl, pkgconfig, intltool, gperf, libcap, dbus, kmod
 , xz, pam, acl, cryptsetup, libuuid, m4, utillinux
-, glib, kbd, libxslt, coreutils, libgcrypt
+, glib, kbd, libxslt, coreutils, libgcrypt, sysvtools
 }:
 
 assert stdenv.gcc.libc or null != null;
 
 stdenv.mkDerivation rec {
-  name = "systemd-196";
+  name = "systemd-197";
 
   src = fetchurl {
     url = "http://www.freedesktop.org/software/systemd/${name}.tar.xz";
-    sha256 = "1gz4an5havzwzp7xsinn01prwvf51hgipb8pbciri0fxlmcadm3b";
+    sha256 = "1dbljyyc3w4a1af99f15f3sqnfx7mfmc5x5hwxb70kg23ai7x1g6";
   };
 
   patches =
-    [ ./reexec.patch
-      ./ignore-duplicates.patch
-      ./crypt-devices-are-ready.patch
+    [ ./0001-Make-systemctl-daemon-reexec-do-the-right-thing-on-N.patch
+      ./0002-Ignore-duplicate-paths-in-systemctl-start.patch
+      ./0003-Start-device-units-for-uninitialised-encrypted-devic.patch
+      ./0004-Set-switch-to-configuration-hints-for-some-units.patch
+      ./0005-sysinit.target-Drop-the-dependency-on-local-fs.targe.patch
+      ./0006-Don-t-call-plymouth-quit.patch
     ];
 
   buildInputs =
@@ -27,7 +30,6 @@ stdenv.mkDerivation rec {
   configureFlags =
     [ "--localstatedir=/var"
       "--sysconfdir=/etc"
-      "--with-distro=other"
       "--with-rootprefix=$(out)"
       "--with-rootprefix=$(out)"
       "--with-dbusinterfacedir=$(out)/share/dbus-1/interfaces"
@@ -41,20 +43,25 @@ stdenv.mkDerivation rec {
   preConfigure =
     ''
       # FIXME: patch this in systemd properly (and send upstream).
-      for i in src/remount-fs/remount-fs.c src/core/mount.c src/core/swap.c src/fsck/fsck.c; do
+      # FIXME: use sulogin from util-linux once updated.
+      for i in src/remount-fs/remount-fs.c src/core/mount.c src/core/swap.c src/fsck/fsck.c units/emergency.service.in units/rescue.service.m4.in; do
         test -e $i
         substituteInPlace $i \
           --replace /bin/mount ${utillinux}/bin/mount \
           --replace /bin/umount ${utillinux}/bin/umount \
           --replace /sbin/swapon ${utillinux}/sbin/swapon \
           --replace /sbin/swapoff ${utillinux}/sbin/swapoff \
-          --replace /sbin/fsck ${utillinux}/sbin/fsck
+          --replace /sbin/fsck ${utillinux}/sbin/fsck \
+          --replace /bin/echo ${coreutils}/bin/echo \
+          --replace /sbin/sulogin ${sysvtools}/sbin/sulogin
       done
 
       substituteInPlace src/journal/catalog.c \
         --replace /usr/lib/systemd/catalog/ $out/lib/systemd/catalog/
     '';
 
+  PYTHON_BINARY = "${coreutils}/bin/env python"; # don't want a build time dependency on Python
+
   NIX_CFLAGS_COMPILE =
     [ "-DKBD_LOADKEYS=\"${kbd}/bin/loadkeys\""
       "-DKBD_SETFONT=\"${kbd}/bin/setfont\""
diff --git a/pkgs/os-specific/linux/sysvinit/default.nix b/pkgs/os-specific/linux/sysvinit/default.nix
index 7b3ea62ea2d..99aebd11667 100644
--- a/pkgs/os-specific/linux/sysvinit/default.nix
+++ b/pkgs/os-specific/linux/sysvinit/default.nix
@@ -4,12 +4,12 @@ let version = "2.88dsf"; in
 
 stdenv.mkDerivation {
   name = (if withoutInitTools then "sysvtools" else "sysvinit") + "-" + version;
-  
+
   src = fetchurl {
     url = "mirror://savannah/sysvinit/sysvinit-${version}.tar.bz2";
     sha256 = "068mvzaz808a673zigyaqb63xc8bndh2klk16zi5c83rw70wifv0";
   };
-  
+
   prePatch = ''
     # Patch some minimal hard references, so halt/shutdown work
     sed -i -e "s,/sbin/,$out/sbin/," src/halt.c src/init.c src/paths.h
@@ -27,16 +27,17 @@ stdenv.mkDerivation {
     '';
 
   postInstall = stdenv.lib.optionalString withoutInitTools
-    ''  
+    ''
       mv $out/sbin/killall5 $out/bin
       ln -sf killall5 $out/bin/pidof
-      rm -rf $out/sbin
+      shopt -s extglob
+      rm -rf $out/sbin/!(sulogin)
       rm -rf $out/include
       rm -rf $out/share/man/man5
       rm $(for i in $out/share/man/man8/*; do echo $i; done | grep -v 'pidof\|killall5')
       rm $out/bin/{mountpoint,wall} $out/share/man/man1/{mountpoint.1,wall.1}
     '';
-    
+
   meta = {
     homepage = http://www.nongnu.org/sysvinit/;
     description = "Utilities related to booting and shutdown";
diff --git a/pkgs/os-specific/linux/wpa_supplicant/default.nix b/pkgs/os-specific/linux/wpa_supplicant/default.nix
index f947bc9a1e7..b1bc15ff083 100644
--- a/pkgs/os-specific/linux/wpa_supplicant/default.nix
+++ b/pkgs/os-specific/linux/wpa_supplicant/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, openssl, dbus_libs, pkgconfig, libnl }:
 
 stdenv.mkDerivation rec {
-  version = "1.0";
+  version = "1.1";
 
   name = "wpa_supplicant-${version}";
 
   src = fetchurl {
     url = "http://hostap.epitest.fi/releases/${name}.tar.gz";
-    sha256 = "171b9027rbzy64zaal4832ix9i3mm6ypwmynbpia5bss793ivm4i";
+    sha256 = "00lyifj8cz7qyal6dy1dxbpk3g3bywvdarik8gbj9ds7zmfbwkd5";
   };
 
   preBuild = ''
@@ -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 0fc1531056b..39b78958b03 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
@@ -14,9 +14,13 @@ stdenv.mkDerivation (rec {
     sed -i -e 's/-idirafter.*//' Makefile
   '';
   
-  preBuild =''
-    makeFlagsArray=( "LIBS=${if sslEnable then "-lcrypt -lssl -lcrypto " else ""}-lpam -lcap" )
-  '';
+  preBuild = let
+      sslLibs = if sslEnable then "-lcrypt -lssl -lcrypto " else "";
+    in ''
+      makeFlagsArray=( "LIBS=${sslLibs}-lpam -lcap -fstack-protector" )
+    '';
+
+  # It won't link without this flag, used in CFLAGS
 
   buildInputs = [ openssl libcap pam ];
 
diff --git a/pkgs/servers/samba/default.nix b/pkgs/servers/samba/default.nix
index 08c53182dd5..059b1c1a217 100644
--- a/pkgs/servers/samba/default.nix
+++ b/pkgs/servers/samba/default.nix
@@ -75,4 +75,10 @@ stdenv.mkDerivation rec {
       cp ../examples/LDAP/samba.schema $out/etc/openldap/schema
     '' # */
     + stdenv.lib.optionalString (configDir == "") "touch $out/lib/smb.conf";
+
+  meta = {
+    homepage = http://www.samba.org/;
+    description = "The standard Windows interoperability suite of programs for Linux and Unix";
+    platforms = stdenv.lib.platforms.linux;
+  };
 }
diff --git a/pkgs/tools/backup/bup/default.nix b/pkgs/tools/backup/bup/default.nix
index 586fc514ba6..7ba5175d550 100644
--- a/pkgs/tools/backup/bup/default.nix
+++ b/pkgs/tools/backup/bup/default.nix
@@ -1,14 +1,17 @@
-{ stdenv, fetchgit, python, pyxattr, pylibacl, setuptools, fuse, git, perl, pandoc, makeWrapper }:
+{ stdenv, fetchgit, python, pyxattr, pylibacl, setuptools, fuse, git, perl, pandoc, makeWrapper
+, par2cmdline, par2Support ? false }:
+
+assert par2Support -> par2cmdline != null;
 
 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 +29,8 @@ 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'])"
+  '' + optionalString par2Support ''
+    substituteInPlace cmd/fsck-cmd.py --replace "['par2'" "['${par2cmdline}/bin/par2'"
   '';
 
   makeFlags = [
@@ -42,6 +45,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 07b86c2e41e..dcac235c670 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 00000000000..6dd0639c607
--- /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 00000000000..a9892cc780e
--- /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 00000000000..3abb1ba25d3
--- /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 00000000000..483ec5f8415
--- /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 4c1963f4633..a42c6aa7a7e 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 00000000000..1c113ddefbe
--- /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 cb5d8ed0696..52c8e493fdc 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, python, pandoc }:
+{ stdenv, fetchurl, python, pandoc, zip }:
 
 let
   version = "2012.12.11";
@@ -11,7 +11,13 @@ stdenv.mkDerivation {
     sha256 = "03zv3z8p0fi122nqj7ff8hkgqscir4s7psm03rq7dfpg1z35klmn";
   };
 
-  buildInputs = [ python pandoc ];
+  buildInputs = [ python ];
+  buildNativeInputs = [ pandoc zip ];
+
+  patchPhase = ''
+    rm youtube-dl
+    substituteInPlace Makefile --replace "#!/usr/bin/env python" "#!${python}/bin/python"
+  '';
 
   configurePhase = ''
     makeFlagsArray=( PREFIX=$out SYSCONFDIR=$out/etc )
@@ -20,6 +26,6 @@ stdenv.mkDerivation {
   meta = {
     homepage = "http://rg3.github.com/youtube-dl/";
     description = "Command-line tool to download videos from YouTube.com and other sites";
-    maintainers = [ stdenv.lib.maintainers.bluescreen303 stdenv.lib.maintainers.simons ];
+    maintainers = with stdenv.lib.maintainers; [ bluescreen303 simons ];
   };
 }
diff --git a/pkgs/tools/networking/dd-agent/default.nix b/pkgs/tools/networking/dd-agent/default.nix
new file mode 100644
index 00000000000..e83ad7933f1
--- /dev/null
+++ b/pkgs/tools/networking/dd-agent/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchgit, python, sysstat }:
+
+stdenv.mkDerivation rec {
+    name = "dd-agent-ab14fde6f9";
+
+    src = fetchgit {
+      url = git://github.com/DataDog/dd-agent.git;
+      rev = "ab14fde6f9b9f6cb3544f643cece97ef18a0d770";
+      sha256 = "2615a2f122ac97363eba8973dfc6c2ce81cb61a26eb61c2988faad2abd05efc5";
+    };
+
+    buildInputs = [ python ];
+
+    postUnpack = "export sourceRoot=$sourceRoot/packaging";
+
+    makeFlags = [ "BUILD=$(out)" ];
+
+    installTargets = [ "install_base" "install_full" ];
+
+    postInstall = ''
+      mv $out/usr/* $out
+      rmdir $out/usr
+    '';
+
+    meta = {
+      description = "Event collector for the DataDog analysis service";
+
+      homepage = http://www.datadoghq.com;
+
+      maintainers = [ stdenv.lib.maintainers.shlevy ];
+
+      license = stdenv.lib.licenses.bsd3;
+
+      platforms = stdenv.lib.platforms.all;
+    };
+}
diff --git a/pkgs/tools/networking/maildrop/default.nix b/pkgs/tools/networking/maildrop/default.nix
new file mode 100644
index 00000000000..b91282c9a2b
--- /dev/null
+++ b/pkgs/tools/networking/maildrop/default.nix
@@ -0,0 +1,20 @@
+{ fetchurl, stdenv, pkgconfig, pcre, perl }:
+
+stdenv.mkDerivation rec {
+  name = "maildrop-2.6.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/courier/maildrop/2.6.0/maildrop-2.6.0.tar.bz2";
+    sha256 = "1a94p2b41iy334cwfwmzi19557dn5j61abh0cp2rfc9dkc8ibhdg";
+  };
+
+  buildInputs = [ pkgconfig pcre perl ];
+
+  patches = [ ./maildrop.configure.hack.patch ]; # for building in chroot
+
+  meta = {
+    homepage = http://www.courier-mta.org/maildrop/;
+    description = "Mail filter/mail delivery agent that is used by the Courier Mail Server";
+    licenses = [ "GPLv3" ];
+  };
+}
diff --git a/pkgs/tools/networking/maildrop/maildrop.configure.hack.patch b/pkgs/tools/networking/maildrop/maildrop.configure.hack.patch
new file mode 100644
index 00000000000..08988f6cde5
--- /dev/null
+++ b/pkgs/tools/networking/maildrop/maildrop.configure.hack.patch
@@ -0,0 +1,13 @@
+--- a/maildrop/configure	2012-09-06 01:52:13.000000000 +0100
++++ b/maildrop/configure	2013-01-04 03:00:57.095628327 +0000
+@@ -17562,8 +17562,8 @@
+ check_spooldir() {
+   if test "$CHECKED_SPOOLDIR" != 1
+   then
+-     get_spooldir
+-     MBOX_DIR="$SPOOLDIR"
++     MBOX_DIR="/var/spool/mail"
++     MBOX_RESET_GID=0
+      CHECKED_SPOOLDIR=1
+   fi
+ }
diff --git a/pkgs/tools/networking/network-manager/default.nix b/pkgs/tools/networking/network-manager/default.nix
index eec7361f6a2..0adb9b1e579 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 = ''
@@ -29,7 +29,9 @@ stdenv.mkDerivation rec {
     "--without-resolvconf"
     "--sysconfdir=/etc" "--localstatedir=/var"
     "--with-dbus-sys-dir=\${out}/etc/dbus-1/system.d"
-    "--with-crypto=gnutls" "--disable-more-warnings" ];
+    "--with-crypto=gnutls" "--disable-more-warnings"
+    "--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/tools/networking/nzbget/default.nix b/pkgs/tools/networking/nzbget/default.nix
index 7ff1ab4a5d3..c5386553f4f 100644
--- a/pkgs/tools/networking/nzbget/default.nix
+++ b/pkgs/tools/networking/nzbget/default.nix
@@ -2,20 +2,18 @@
 , gnutls, libgcrypt }:
 
 stdenv.mkDerivation rec {
-  name = "nzbget-0.8.0";
+  name = "nzbget-9.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/nzbget/${name}.tar.gz";
-    sha256 = "15bxsxdbkml9cqpy6zxgv78ff69l8qrv8r201gmzvylpc1ckjsb4";
+    sha256 = "1r4ys5nmcz1ilkdjdh3r8lawaf96i8spk6hl02h823q9rppvmya0";
   };
 
   buildInputs = [ pkgconfig libxml2 ncurses libsigcxx libpar2 gnutls libgcrypt ];
 
-  postInstall =
-    ''
-      mkdir -p $out/etc
-      cp nzbget.conf.example $out/etc/
-    '';
+  enableParallelBuilding = true;
+
+  NIX_LDFLAGS = "-lz";
 
   meta = {
     homepage = http://nzbget.sourceforge.net/;
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index e6f15b7a5e5..5448c9f5ba3 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -5,11 +5,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "nix-1.2";
+  name = "nix-1.3";
 
   src = fetchurl {
     url = "http://nixos.org/releases/nix/${name}/${name}.tar.xz";
-    sha256 = "2f7c2d27e240b6a43ebfba330127072e3fb1473c17dbfc5e9662ea589dfd16e5";
+    sha256 = "32cba96df0e02d6627f5625a441fdd4ea0db718dd5bfd50044cdfd3c606d4852";
   };
 
   buildNativeInputs = [ perl pkgconfig ];
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   configureFlags =
     ''
-      --with-store-dir=${storeDir} --localstatedir=${stateDir}
+      --with-store-dir=${storeDir} --localstatedir=${stateDir} --sysconfdir=/etc
       --with-dbi=${perlPackages.DBI}/${perl.libPrefix}
       --with-dbd-sqlite=${perlPackages.DBDSQLite}/${perl.libPrefix}
       --with-www-curl=${perlPackages.WWWCurl}/${perl.libPrefix}
@@ -35,6 +35,10 @@ stdenv.mkDerivation rec {
       CFLAGS=-O3 CXXFLAGS=-O3
     '';
 
+  makeFlags = "profiledir=$(out)/etc/profile.d";
+
+  installFlags = "sysconfdir=$(out)/etc";
+
   doInstallCheck = true;
 
   crossAttrs = {
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index f0aabb25d17..e5bf3e136a5 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -411,7 +411,14 @@ let
     client = true;
   });
 
-  androidenv = import ../development/androidenv {
+  androidenv = import ../development/mobile/androidenv {
+    inherit pkgs;
+    pkgs_i686 = pkgsi686Linux;
+  };
+  
+  xcodeenv = callPackage ../development/mobile/xcodeenv { };
+  
+  titaniumenv = import ../development/mobile/titaniumenv {
     inherit pkgs;
     pkgs_i686 = pkgsi686Linux;
   };
@@ -513,6 +520,7 @@ let
   bup = callPackage ../tools/backup/bup {
     inherit (pythonPackages) pyxattr pylibacl setuptools fuse;
     inherit (haskellPackages) pandoc;
+    par2Support = (config.bup.par2Support or false);
   };
 
   atool = callPackage ../tools/archivers/atool { };
@@ -1054,6 +1062,8 @@ let
 
   lzop = callPackage ../tools/compression/lzop { };
 
+  maildrop = callPackage ../tools/networking/maildrop { };
+
   mailutils = callPackage ../tools/networking/mailutils {
     guile = guile_1_8;
   };
@@ -2972,6 +2982,8 @@ let
       && stdenv.system != "i686-solaris";
   };
 
+  automake113x = callPackage ../development/tools/misc/automake/automake-1.13.x.nix { };
+
   automoc4 = callPackage ../development/tools/misc/automoc4 { };
 
   avrdude = callPackage ../development/tools/misc/avrdude { };
@@ -4996,6 +5008,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 { };
@@ -6749,7 +6765,7 @@ let
 
   cuneiform = builderDefsPackage (import ../tools/graphics/cuneiform) {
     inherit cmake patchelf;
-    imagemagick=imagemagick;
+    imagemagick = imagemagick;
   };
 
   cvs = callPackage ../applications/version-management/cvs { };
@@ -6766,6 +6782,8 @@ let
     inherit (gnome) GConf libglade;
   };
 
+  "dd-agent" = callPackage ../tools/networking/dd-agent { };
+
   dia = callPackage ../applications/graphics/dia {
     inherit (pkgs.gnome) libart_lgpl libgnomeui;
   };
@@ -7034,6 +7052,8 @@ let
 
   feh = callPackage ../applications/graphics/feh { };
 
+  filezilla = callPackage ../applications/networking/ftp/filezilla { };
+
   firefox = pkgs.firefoxPkgs.firefox;
 
   firefoxWrapper = wrapFirefox { browser = pkgs.firefox; };
@@ -7059,6 +7079,13 @@ let
 
   firefox17Wrapper = lowPrio (wrapFirefox { browser = firefox17Pkgs.firefox; });
 
+  firefox18Pkgs = callPackage ../applications/networking/browsers/firefox/18.0.nix {
+    inherit (gnome) libIDL;
+    inherit (pythonPackages) pysqlite;
+  };
+
+  firefox18Wrapper = lowPrio (wrapFirefox { browser = firefox18Pkgs.firefox; });
+
   flac = callPackage ../applications/audio/flac { };
 
   flashplayer = callPackage ../applications/networking/browsers/mozilla-plugins/flashplayer-11 {
@@ -7083,6 +7110,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;
@@ -7306,6 +7337,8 @@ let
     lua = lua5;
   };
 
+  ipe = callPackage ../applications/graphics/ipe { };
+
   iptraf = callPackage ../applications/networking/iptraf { };
 
   irssi = callPackage ../applications/networking/irc/irssi { };
@@ -8154,6 +8187,8 @@ let
 
   andyetitmoves = if stdenv.isLinux then callPackage ../games/andyetitmoves {} else null;
 
+  anki = callPackage ../games/anki { };
+
   asc = callPackage ../games/asc {
     lua = lua5;
     libsigcxx = libsigcxx12;
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 3d23010bbb6..6f2db83c194 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -711,6 +711,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   dimensional = callPackage ../development/libraries/haskell/dimensional {};
 
+  dimensionalTf = callPackage ../development/libraries/haskell/dimensional-tf {};
+
   directoryTree = callPackage ../development/libraries/haskell/directory-tree {};
 
   distributedProcess = callPackage ../development/libraries/haskell/distributed-process {};
@@ -911,7 +913,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   happstackHamlet = callPackage ../development/libraries/haskell/happstack/happstack-hamlet.nix {};
 
   hashable_1_1_2_5 = callPackage ../development/libraries/haskell/hashable/1.1.2.5.nix {};
-  hashable_1_3_0_2 = callPackage ../development/libraries/haskell/hashable/1.2.0.2.nix {};
+  hashable_1_2_0_3 = callPackage ../development/libraries/haskell/hashable/1.2.0.3.nix {};
   hashable = self.hashable_1_1_2_5;
 
   hashedStorage = callPackage ../development/libraries/haskell/hashed-storage {};
@@ -1242,6 +1244,12 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   NanoProlog = callPackage ../development/libraries/haskell/NanoProlog {};
 
+  nat = callPackage ../development/libraries/haskell/nat {};
+
+  nats = callPackage ../development/libraries/haskell/nats {};
+
+  naturals = callPackage ../development/libraries/haskell/naturals {};
+
   netlist = callPackage ../development/libraries/haskell/netlist {};
 
   netlistToVhdl = callPackage ../development/libraries/haskell/netlist-to-vhdl {};
@@ -1279,6 +1287,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   numtype = callPackage ../development/libraries/haskell/numtype {};
 
+  numtypeTf = callPackage ../development/libraries/haskell/numtype-tf {};
+
   OneTuple = callPackage ../development/libraries/haskell/OneTuple {};
 
   ObjectName = callPackage ../development/libraries/haskell/ObjectName {};
@@ -1678,10 +1688,14 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   transformersBase = callPackage ../development/libraries/haskell/transformers-base {};
 
+  transformersCompat = callPackage ../development/libraries/haskell/transformers-compat {};
+
   tuple = callPackage ../development/libraries/haskell/tuple {};
 
   typeEquality = callPackage ../development/libraries/haskell/type-equality {};
 
+  typeLlevelNaturalNumber = callPackage ../development/libraries/haskell/type-level-natural-number {};
+
   unbound = callPackage ../development/libraries/haskell/unbound {};
 
   uniplate = callPackage ../development/libraries/haskell/uniplate {};
@@ -1784,9 +1798,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   wxdirect = callPackage ../development/libraries/haskell/wxHaskell/wxdirect.nix {};
 
-  X11_1_5_0_1 = callPackage ../development/libraries/haskell/X11/1.5.0.1.nix {};
-  X11_1_6_0_2 = callPackage ../development/libraries/haskell/X11/1.6.0.2.nix {};
-  X11 = self.X11_1_6_0_2;
+  X11 = callPackage ../development/libraries/haskell/X11 {};
 
   X11Xft = callPackage ../development/libraries/haskell/X11-xft {};
 
@@ -1960,18 +1972,11 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
     stm = self.stm_2_3;
   };
 
-  xmonad = callPackage ../applications/window-managers/xmonad {
-    X11 = self.X11_1_5_0_1;
-  };
+  xmonad = callPackage ../applications/window-managers/xmonad {};
 
-  xmonadContrib = callPackage ../applications/window-managers/xmonad/xmonad-contrib.nix {
-    X11 = self.X11_1_5_0_1;
-    X11Xft = self.X11Xft.override { X11 = self.X11_1_5_0_1; };
-  };
+  xmonadContrib = callPackage ../applications/window-managers/xmonad/xmonad-contrib.nix {};
 
-  xmonadExtras = callPackage ../applications/window-managers/xmonad/xmonad-extras.nix {
-    X11 = self.X11_1_5_0_1;
-  };
+  xmonadExtras = callPackage ../applications/window-managers/xmonad/xmonad-extras.nix {};
 
   # Tools.
 
@@ -1983,7 +1988,6 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
     tar          = self.tar_0_3_2_0;
   };
 
-
   cabalGhci = callPackage ../development/tools/haskell/cabal-ghci {};
 
   cabalInstall_0_6_2  = callPackage ../tools/package-management/cabal-install/0.6.2.nix  {};
diff --git a/pkgs/top-level/platforms.nix b/pkgs/top-level/platforms.nix
index f00ad36f2e4..4ff31414722 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 9c81ffc2882..41b545a6862 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -86,13 +86,13 @@ let pythonPackages = python.modules // rec {
 
 
   alot = buildPythonPackage rec {
-    rev = "09804636609b4245cde4faceddffdb5361f3d390";
+    rev = "5b5dbecb5a03840b751219db90bcf4dcffda315e";
     name = "alot-0.3.3_${rev}";
 
     src = fetchurl {
       url = "https://github.com/pazz/alot/tarball/${rev}";
       name = "${name}.tar.bz";
-      sha256 = "b5239c4dfcd9882608fb48ef80fe9ba9223949ab7e6a2c1abe970ac307ebcd4a";
+      sha256 = "156q7x4wilhcgmaap7rjci3cgwm5ia85ddgx6xm6lfp5hkf5300v";
     };
 
     # error: invalid command 'test'
@@ -1047,6 +1047,22 @@ let pythonPackages = python.modules // rec {
     };
   };
 
+  jedi = buildPythonPackage (rec {
+    name = "jedi-0.5b5";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/j/jedi/${name}.tar.gz";
+      sha256 = "10xqdhda9kdbc22h4dphxqjncpdb80s1crxsirr5h016rw9czsa4";
+    };
+
+    meta = {
+      homepage = "https://github.com/davidhalter/jedi";
+      description = "An autocompletion tool for Python that can be used for text editors.";
+      license = pkgs.lib.licenses.lgpl3Plus;
+      maintainers = [ stdenv.lib.maintainers.garbas ];
+      platforms = python.meta.platforms;
+    };
+  });
 
   jinja2 = buildPythonPackage {
     name = "jinja2-2.6";
@@ -2102,23 +2118,19 @@ let pythonPackages = python.modules // rec {
 
 
   pymacs = pkgs.stdenv.mkDerivation rec {
-    version = "v0.24-beta2";
+    version = "v0.25";
     name = "Pymacs-${version}";
 
     src = fetchurl {
       url = "https://github.com/pinard/Pymacs/tarball/${version}";
       name = "${name}.tar.gz";
-      sha256 = "0nzb3wrxwy0cmmj087pszkwgj2v22x0y5m4vxb6axz94zfl02r8j";
+      sha256 = "1hmy76c5igm95rqbld7gvk0az24smvc8hplfwx2f5rhn6frj3p2i";
     };
 
     buildInputs = [ python ];
 
-    configurePhase = ''
-      python p4 -C p4config.py *.in Pymacs contrib tests
-    '';
-
-    installPhase = ''
-      python setup.py install --prefix=$out
+    patchPhase = ''
+      sed -e "s@ install@ install --prefix=$out@g" -i Makefile
     '';
 
     meta = with stdenv.lib; {
@@ -2449,21 +2461,15 @@ let pythonPackages = python.modules // rec {
     };
   });
 
-  rope = pkgs.stdenv.mkDerivation rec {
-    version = "0.9.3";
+  rope = buildPythonPackage rec {
+    version = "0.9.4";
     name = "rope-${version}";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/r/rope/${name}.tar.gz";
-      sha256 = "1092rlsfna7rm1jkdanilsmw7rr3hlkgyji02xfd02wfcm8xa2i7";
+      sha256 = "1fm6ahff50b10mlnc0ar4x1fv9sxmcp1g651myyqy7c50hk39h1d";
     };
 
-    buildInputs = [ python ];
-
-    installPhase = ''
-      python setup.py install --prefix=$out
-    '';
-
     meta = with stdenv.lib; {
       description = "python refactoring library";
       homepage = http://rope.sf.net;
@@ -2472,20 +2478,16 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  ropemacs = pkgs.stdenv.mkDerivation rec {
-    version = "0.6";
+  ropemacs = buildPythonPackage rec {
+    version = "0.7";
     name = "ropemacs-${version}";
 
     src = fetchurl {
-      url = "mirror://sourceforge/rope/${name}.tar.gz";
-      sha256 = "1afqybmjn7fqkwx8y8kx1kfx181ix73cbq3a0d5n7ryjm7k1r0s4";
+      url = "http://pypi.python.org/packages/source/r/ropemacs/${name}.tar.gz";
+      sha256 = "1x5qf1drcdz9jfiiakc60kzqkb3ahsg9j902c5byf3gjfacdrmqj";
     };
 
-    buildInputs = [ python ];
-
-    installPhase = ''
-      python setup.py install --prefix=$out
-    '';
+    propagatedBuildInputs = [ ropemode ];
 
      meta = with stdenv.lib; {
        description = "a plugin for performing python refactorings in emacs";
@@ -2495,6 +2497,26 @@ let pythonPackages = python.modules // rec {
      };
   };
 
+  ropemode = buildPythonPackage rec {
+    version = "0.2";
+    name = "ropemode-${version}";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/r/ropemode/${name}.tar.gz";
+      sha256 = "0jw6h1wvk6wk0wknqdf7s9pw76m8472jv546lqdd88jbl2scgcjl";
+    };
+
+    propagatedBuildInputs = [ rope ];
+
+     meta = with stdenv.lib; {
+       description = "a plugin for performing python refactorings in emacs";
+       homepage = http://rope.sf.net;
+       maintainers = [ maintainers.goibhniu ];
+       license = licenses.gpl2;
+     };
+  };
+
+
 
   routes = buildPythonPackage rec {
     name = "routes-1.12.3";
@@ -2577,7 +2599,6 @@ let pythonPackages = python.modules // rec {
           sha256 = "1wif9r6307qhlcp2zbg6n05yvxxn9ppkxh8gpsplcbyh22zi7bcd";
         };
 
-      preInstallPhases = "preInstall";
       preInstall = ''
         cp ${x_ignore_nofocus}/* .
         sed -i 's|dlopen(library,|dlopen("libX11.so.6",|' x_ignore_nofocus.c
@@ -2916,7 +2937,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 +3274,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 +3338,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 +3360,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
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index e4efb2cbd9c..55def41ca8a 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -146,7 +146,6 @@ with (import ./release-lib.nix);
   icewm = linux;
   idutils = all;
   ifplugd = linux;
-  imagemagick = allBut "i686-cygwin";
   impressive = linux;
   inetutils = linux;
   inkscape = linux;
@@ -252,7 +251,6 @@ with (import ./release-lib.nix);
   rubber = allBut "i686-cygwin";
   ruby = all;
   rxvt_unicode = linux;
-  samba = linux;
   screen = linux ++ darwin;
   scrot = linux;
   sdparm = linux;
@@ -354,6 +352,7 @@ with (import ./release-lib.nix);
 
   firefox36Pkgs.firefox = linux;
   firefox17Pkgs.firefox = linux;
+  firefox18Pkgs.firefox = linux;
 
   gnome = {
     gnome_panel = linux;