summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lib/licenses.nix2
-rw-r--r--lib/maintainers.nix2
-rw-r--r--lib/modules.nix5
-rw-r--r--nixos/doc/manual/configuration/ipv4-config.xml5
-rw-r--r--nixos/lib/build-vms.nix11
-rw-r--r--nixos/lib/make-system-tarball.nix5
-rw-r--r--nixos/lib/make-system-tarball.sh2
-rwxr-xr-xnixos/maintainers/scripts/gce/create-gce.sh7
-rw-r--r--nixos/modules/config/vpnc.nix41
-rw-r--r--nixos/modules/installer/tools/nixos-generate-config.pl21
-rw-r--r--nixos/modules/installer/tools/tools.nix1
-rw-r--r--nixos/modules/installer/virtualbox-demo.nix3
-rw-r--r--nixos/modules/misc/ids.nix2
-rw-r--r--nixos/modules/misc/meta.nix63
-rw-r--r--nixos/modules/module-list.nix6
-rw-r--r--nixos/modules/programs/shadow.nix2
-rw-r--r--nixos/modules/programs/virtualbox.nix2
-rw-r--r--nixos/modules/security/pam.nix20
-rw-r--r--nixos/modules/security/setuid-wrappers.nix4
-rw-r--r--nixos/modules/services/misc/uhub.nix186
-rw-r--r--nixos/modules/services/network-filesystems/nfsd.nix13
-rw-r--r--nixos/modules/services/networking/atftpd.nix51
-rw-r--r--nixos/modules/services/networking/cjdns.nix316
-rw-r--r--nixos/modules/services/networking/dhcpcd.nix18
-rw-r--r--nixos/modules/services/networking/nsd.nix241
-rw-r--r--nixos/modules/services/networking/openntpd.nix49
-rw-r--r--nixos/modules/services/networking/privoxy.nix76
-rw-r--r--nixos/modules/services/networking/ssh/sshd.nix38
-rw-r--r--nixos/modules/services/networking/znc.nix190
-rw-r--r--nixos/modules/services/security/clamav.nix4
-rw-r--r--nixos/modules/services/ttys/agetty.nix7
-rw-r--r--nixos/modules/services/web-servers/apache-httpd/mediawiki.nix2
-rw-r--r--nixos/modules/services/web-servers/tomcat.nix2
-rw-r--r--nixos/modules/services/x11/display-managers/slim.nix10
-rw-r--r--nixos/modules/system/boot/loader/grub/grub.nix37
-rw-r--r--nixos/modules/system/boot/loader/grub/install-grub.pl135
-rw-r--r--nixos/modules/system/boot/luksroot.nix67
-rw-r--r--nixos/modules/system/boot/modprobe.nix5
-rw-r--r--nixos/modules/tasks/filesystems/nfs.nix37
-rw-r--r--nixos/modules/tasks/filesystems/zfs.nix6
-rw-r--r--nixos/modules/tasks/network-interfaces.nix147
-rw-r--r--nixos/modules/virtualisation/docker-image.nix67
-rw-r--r--nixos/modules/virtualisation/libvirtd.nix35
-rw-r--r--nixos/modules/virtualisation/openvswitch.nix117
-rw-r--r--nixos/release-combined.nix4
-rw-r--r--nixos/release.nix15
-rw-r--r--nixos/tests/bittorrent.nix6
-rw-r--r--nixos/tests/installer.nix21
-rw-r--r--nixos/tests/nat.nix2
-rw-r--r--pkgs/applications/audio/audacious/default.nix9
-rw-r--r--pkgs/applications/audio/guitarix/default.nix14
-rw-r--r--pkgs/applications/audio/hydrogen/default.nix28
-rw-r--r--pkgs/applications/audio/hydrogen/scons-env.patch28
-rw-r--r--pkgs/applications/audio/jalv/default.nix4
-rw-r--r--pkgs/applications/audio/lmms/default.nix18
-rw-r--r--pkgs/applications/audio/petrifoo/default.nix14
-rw-r--r--pkgs/applications/audio/pianobar/default.nix2
-rw-r--r--pkgs/applications/audio/zynaddsubfx/default.nix12
-rw-r--r--pkgs/applications/editors/wxhexeditor/default.nix41
-rw-r--r--pkgs/applications/graphics/k3d/default.nix13
-rw-r--r--pkgs/applications/graphics/k3d/disable_mutable_in_boost_gil.patch20
-rw-r--r--pkgs/applications/graphics/k3d/libpng-1.4.patch (renamed from pkgs/applications/graphics/k3d/k3d-0.7.11.0-libpng14.patch)97
-rw-r--r--pkgs/applications/graphics/mcomix/default.nix6
-rw-r--r--pkgs/applications/graphics/processing/default.nix39
-rw-r--r--pkgs/applications/graphics/processing/use-nixpkgs-jre.patch88
-rw-r--r--pkgs/applications/misc/audio/sox/default.nix6
-rw-r--r--pkgs/applications/misc/bitcoin/altcoins.nix42
-rw-r--r--pkgs/applications/misc/calibre/default.nix4
-rw-r--r--pkgs/applications/misc/namecoin/default.nix37
-rw-r--r--pkgs/applications/misc/namecoin/qt.nix33
-rw-r--r--pkgs/applications/misc/nanoblogger/default.nix29
-rw-r--r--pkgs/applications/misc/pinfo/default.nix23
-rw-r--r--pkgs/applications/misc/tilda/default.nix34
-rw-r--r--pkgs/applications/networking/browsers/chromium/source/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/chromium/source/missing_alg_import.patch11
-rw-r--r--pkgs/applications/networking/browsers/chromium/source/sources.nix16
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/mesos/default.nix2
-rw-r--r--pkgs/applications/networking/ids/daq/default.nix6
-rw-r--r--pkgs/applications/networking/ids/snort/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/mcabber/default.nix19
-rw-r--r--pkgs/applications/networking/mumble/murmur.nix4
-rw-r--r--pkgs/applications/networking/remote/rdesktop/default.nix7
-rw-r--r--pkgs/applications/networking/sync/backintime/common.nix46
-rw-r--r--pkgs/applications/networking/sync/backintime/gnome.nix37
-rw-r--r--pkgs/applications/office/homebank/default.nix4
-rw-r--r--pkgs/applications/office/libreoffice/default.nix10
-rw-r--r--pkgs/applications/office/libreoffice/libreoffice-srcs.nix9
-rw-r--r--pkgs/applications/office/zim/default.nix82
-rw-r--r--pkgs/applications/science/logic/tptp/default.nix4
-rw-r--r--pkgs/applications/science/math/pari/default.nix9
-rw-r--r--pkgs/applications/science/misc/boinc/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-annex/default.nix4
-rw-r--r--pkgs/applications/version-management/gource/default.nix7
-rw-r--r--pkgs/applications/version-management/guitone/default.nix8
-rw-r--r--pkgs/applications/video/mkvtoolnix/default.nix12
-rw-r--r--pkgs/build-support/setup-hooks/make-wrapper.sh5
-rw-r--r--pkgs/build-support/upstream-updater/update-walker-service-specific.sh4
-rwxr-xr-xpkgs/build-support/upstream-updater/update-walker.sh10
-rw-r--r--pkgs/data/fonts/cm-unicode/default.nix14
-rw-r--r--pkgs/data/fonts/cm-unicode/default.upstream7
-rw-r--r--pkgs/data/fonts/symbola/default.nix29
-rw-r--r--pkgs/data/misc/miscfiles/default.nix9
-rw-r--r--pkgs/desktops/gnome-2/bindings/gnome-python/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.12/misc/gnome-tweak-tool/default.nix6
-rw-r--r--pkgs/development/compilers/agda/default.nix16
-rw-r--r--pkgs/development/compilers/agda/stdlib.nix4
-rw-r--r--pkgs/development/compilers/ats2/default.nix4
-rw-r--r--pkgs/development/compilers/fpc/2.4.0.nix39
-rwxr-xr-xpkgs/development/compilers/fpc/binary-builder.sh1
-rw-r--r--pkgs/development/compilers/fpc/binary.nix10
-rw-r--r--pkgs/development/compilers/fpc/default.nix11
-rw-r--r--pkgs/development/compilers/fpc/default.upstream6
-rw-r--r--pkgs/development/compilers/idris/default.nix4
-rw-r--r--pkgs/development/compilers/sbcl/default.nix4
-rw-r--r--pkgs/development/interpreters/acl2/default.nix4
-rw-r--r--pkgs/development/interpreters/erlang/R16.nix9
-rw-r--r--pkgs/development/interpreters/erlang/R17.nix9
-rw-r--r--pkgs/development/interpreters/octave/default.nix12
-rw-r--r--pkgs/development/interpreters/pypy/2.3/default.nix14
-rw-r--r--pkgs/development/interpreters/python/3.4/default.nix2
-rw-r--r--pkgs/development/interpreters/python/3.4/issue21121-3.patch86
-rw-r--r--pkgs/development/interpreters/regina/default.nix12
-rw-r--r--pkgs/development/interpreters/regina/default.upstream5
-rw-r--r--pkgs/development/interpreters/ruby/ruby-2.1.2.nix72
-rw-r--r--pkgs/development/libraries/CGAL/default.nix6
-rw-r--r--pkgs/development/libraries/audio/lilv/default.nix4
-rw-r--r--pkgs/development/libraries/audio/lv2/default.nix4
-rw-r--r--pkgs/development/libraries/audio/sratom/default.nix4
-rw-r--r--pkgs/development/libraries/audio/suil/default.nix4
-rw-r--r--pkgs/development/libraries/axis/builder.sh5
-rw-r--r--pkgs/development/libraries/axis/default.nix16
-rw-r--r--pkgs/development/libraries/eigen/default.nix11
-rw-r--r--pkgs/development/libraries/eigen/default.upstream4
-rw-r--r--pkgs/development/libraries/expat/default.nix5
-rw-r--r--pkgs/development/libraries/ffmpeg/2.x.nix4
-rw-r--r--pkgs/development/libraries/gmock/default.nix32
-rw-r--r--pkgs/development/libraries/gnutls/3.1.nix4
-rw-r--r--pkgs/development/libraries/gnutls/3.2.nix4
-rw-r--r--pkgs/development/libraries/haskell/Chart-cairo/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/Chart-diagrams/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/Chart-gtk/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/Chart/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/FontyFruity/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/IntervalMap/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/JuicyPixels/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/MFlow/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/Rasterific/default.nix26
-rw-r--r--pkgs/development/libraries/haskell/Yampa/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/auto-update/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/binary-conduit/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/c2hs/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/cabal-cargs/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/cabal-lenses/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/cgi/3001.2.0.0.nix18
-rw-r--r--pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/classy-prelude/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/diagrams/rasterific.nix24
-rw-r--r--pkgs/development/libraries/haskell/directory-layout/default.nix25
-rw-r--r--pkgs/development/libraries/haskell/doctest/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/either/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/fay/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/foldl/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/haddock-api/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/haddock-library/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hakyll/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/haste-compiler/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/highlighting-kate/default.nix9
-rw-r--r--pkgs/development/libraries/haskell/hsimport/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hspec-meta/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hspec-wai/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/hspec/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hspec2/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/http-client/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/interpolate/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/llvm-general-pure/3.4.4.0.nix (renamed from pkgs/development/libraries/haskell/llvm-general-pure/3.4.2.2.nix)4
-rw-r--r--pkgs/development/libraries/haskell/llvm-general/3.4.4.0.nix (renamed from pkgs/development/libraries/haskell/llvm-general/3.4.2.2.nix)4
-rw-r--r--pkgs/development/libraries/haskell/meep/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/mmorph/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/monad-journal/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/ncurses/default.nix2
-rw-r--r--pkgs/development/libraries/haskell/pandoc-citeproc/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/pandoc/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/present/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/project-template/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/pwstore-fast/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/recaptcha/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/robots-txt/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/saltine/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/scotty/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/simple-sendfile/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/tagged-transformer/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/vcsgui/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/vcswrapper/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/wordexp/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/xml-html-conduit-lens/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/yaml/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/zeromq4-haskell/default.nix4
-rw-r--r--pkgs/development/libraries/libaal/default.nix13
-rw-r--r--pkgs/development/libraries/libao/default.nix14
-rw-r--r--pkgs/development/libraries/libe-book/0.0.nix30
-rw-r--r--pkgs/development/libraries/libe-book/0.0.upstream4
-rw-r--r--pkgs/development/libraries/libewf/default.nix13
-rw-r--r--pkgs/development/libraries/libewf/default.upstream7
-rw-r--r--pkgs/development/libraries/libgcrypt/1.6.nix6
-rw-r--r--pkgs/development/libraries/libgcrypt/default.nix4
-rw-r--r--pkgs/development/libraries/libgphoto2/default.nix4
-rw-r--r--pkgs/development/libraries/libidn/default.nix5
-rw-r--r--pkgs/development/libraries/libmpeg2/A00-tags.patch27
-rw-r--r--pkgs/development/libraries/libmpeg2/default.nix12
-rw-r--r--pkgs/development/libraries/libmwaw/0.2.nix29
-rw-r--r--pkgs/development/libraries/libmwaw/0.2.upstream4
-rw-r--r--pkgs/development/libraries/libvirt/default.nix1
-rw-r--r--pkgs/development/libraries/liquidfun/default.nix48
-rw-r--r--pkgs/development/libraries/lirc/default.nix20
-rw-r--r--pkgs/development/libraries/lzo/default.nix4
-rw-r--r--pkgs/development/libraries/muparser/default.nix15
-rw-r--r--pkgs/development/libraries/openldap/default.nix7
-rw-r--r--pkgs/development/libraries/osip/default.nix5
-rw-r--r--pkgs/development/libraries/osip/default.upstream3
-rw-r--r--pkgs/development/libraries/protobuf/default.nix6
-rw-r--r--pkgs/development/libraries/science/math/openblas/0.2.10.nix13
-rw-r--r--pkgs/development/libraries/science/math/openblas/0.2.2.nix37
-rw-r--r--pkgs/development/libraries/science/math/openblas/default.nix19
-rw-r--r--pkgs/development/libraries/serd/default.nix4
-rw-r--r--pkgs/development/libraries/serf/default.nix8
-rw-r--r--pkgs/development/libraries/sodium/default.nix8
-rw-r--r--pkgs/development/libraries/sord/default.nix4
-rw-r--r--pkgs/development/libraries/spandsp/default.nix9
-rw-r--r--pkgs/development/libraries/spice-protocol/default.nix13
-rw-r--r--pkgs/development/libraries/spice/default.nix4
-rw-r--r--pkgs/development/lisp-modules/asdf/default.nix9
-rw-r--r--pkgs/development/ocaml-modules/cmdliner/default.nix36
-rw-r--r--pkgs/development/ocaml-modules/lambda-term/default.nix41
-rw-r--r--pkgs/development/ocaml-modules/lwt/default.nix24
-rw-r--r--pkgs/development/ocaml-modules/ocaml-text/default.nix26
-rw-r--r--pkgs/development/ocaml-modules/react/default.nix15
-rw-r--r--pkgs/development/ocaml-modules/yojson/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/zed/default.nix34
-rw-r--r--pkgs/development/python-modules/generic/wrap.sh6
-rw-r--r--pkgs/development/python-modules/h5py/default.nix43
-rw-r--r--pkgs/development/python-modules/mpi4py/default.nix45
-rw-r--r--pkgs/development/tools/analysis/checkstyle/default.nix14
-rw-r--r--pkgs/development/tools/build-managers/scons/default.nix4
-rw-r--r--pkgs/development/tools/documentation/haddock/2.15.0.nix20
-rw-r--r--pkgs/development/tools/haskell/cabal-bounds/default.nix4
-rw-r--r--pkgs/development/tools/haskell/codex/default.nix4
-rw-r--r--pkgs/development/tools/haskell/haskell-docs/default.nix2
-rw-r--r--pkgs/development/tools/haskell/hlint/default.nix4
-rw-r--r--pkgs/development/tools/haskell/timeplot/default.nix2
-rw-r--r--pkgs/development/tools/misc/cl-launch/default.nix8
-rw-r--r--pkgs/development/tools/misc/help2man/default.nix12
-rw-r--r--pkgs/development/tools/misc/inotify-tools/default.nix2
-rw-r--r--pkgs/development/tools/ocaml/merlin/default.nix10
-rw-r--r--pkgs/development/tools/ocaml/utop/default.nix46
-rw-r--r--pkgs/development/tools/parsing/byacc/default.nix9
-rw-r--r--pkgs/development/tools/slimerjs/default.nix8
-rw-r--r--pkgs/games/extremetuxracer/default.nix42
-rw-r--r--pkgs/games/hawkthorne/default.nix38
-rw-r--r--pkgs/games/hawkthorne/makefile.patch33
-rw-r--r--pkgs/games/super-tux-kart/default.nix13
-rw-r--r--pkgs/games/tcl2048/builder.sh5
-rw-r--r--pkgs/games/tcl2048/default.nix19
-rw-r--r--pkgs/misc/emulators/dolphin-emu/default.nix33
-rw-r--r--pkgs/misc/emulators/dolphin-emu/master.nix34
-rw-r--r--pkgs/misc/emulators/higan/builder.sh20
-rw-r--r--pkgs/misc/emulators/higan/default.nix48
-rw-r--r--pkgs/misc/emulators/stella/default.nix32
-rw-r--r--pkgs/misc/emulators/wine/unstable.nix4
-rw-r--r--pkgs/misc/emulators/wine/unstable.upstream2
-rw-r--r--pkgs/misc/my-env/loadenv.sh4
-rw-r--r--pkgs/misc/screensavers/xscreensaver/default.nix3
-rw-r--r--pkgs/os-specific/linux/conspy/default.nix8
-rw-r--r--pkgs/os-specific/linux/conspy/default.upstream6
-rw-r--r--pkgs/os-specific/linux/dmraid/default.nix4
-rw-r--r--pkgs/os-specific/linux/firejail/default.nix8
-rw-r--r--pkgs/os-specific/linux/libaio/default.nix14
-rw-r--r--pkgs/os-specific/linux/lttng-modules/default.nix1
-rw-r--r--pkgs/os-specific/linux/lvm2/default.nix17
-rw-r--r--pkgs/os-specific/linux/lvm2/default.upstream4
-rw-r--r--pkgs/os-specific/linux/openvswitch/default.nix50
-rw-r--r--pkgs/os-specific/linux/s6-linux-utils/default.nix53
-rw-r--r--pkgs/os-specific/linux/sysdig/default.nix10
-rw-r--r--pkgs/servers/http/tomcat/6.0.nix27
-rw-r--r--pkgs/servers/http/tomcat/7.0.nix6
-rw-r--r--pkgs/servers/http/tomcat/8.0.nix6
-rw-r--r--pkgs/servers/http/tomcat/recent.nix24
-rw-r--r--pkgs/servers/monitoring/munin/default.nix2
-rw-r--r--pkgs/servers/nosql/mongodb/default.nix15
-rw-r--r--pkgs/servers/sql/mariadb/default.nix17
-rw-r--r--pkgs/servers/sql/mariadb/my_context_asm.patch18
-rw-r--r--pkgs/servers/uhub/default.nix43
-rw-r--r--pkgs/servers/uhub/plugin-dir.patch23
-rw-r--r--pkgs/servers/uhub/systemd.patch164
-rw-r--r--pkgs/tools/X11/xnee/default.nix7
-rw-r--r--pkgs/tools/backup/duplicity/default.nix9
-rw-r--r--pkgs/tools/compression/xar/default.nix34
-rw-r--r--pkgs/tools/filesystems/btrfsprogs/default.nix11
-rw-r--r--pkgs/tools/filesystems/smbnetfs/default.nix13
-rw-r--r--pkgs/tools/filesystems/smbnetfs/default.upstream6
-rw-r--r--pkgs/tools/graphics/barcode/default.nix15
-rw-r--r--pkgs/tools/graphics/graphviz/2.32.nix61
-rw-r--r--pkgs/tools/graphics/graphviz/default.nix10
-rw-r--r--pkgs/tools/misc/cloc/default.nix13
-rw-r--r--pkgs/tools/misc/grub/2.0x.nix62
-rw-r--r--pkgs/tools/misc/ised/default.nix11
-rw-r--r--pkgs/tools/misc/ised/default.upstream4
-rw-r--r--pkgs/tools/misc/rrdtool/default.nix5
-rw-r--r--pkgs/tools/misc/s6-portable-utils/default.nix55
-rw-r--r--pkgs/tools/misc/xdaliclock/default.nix13
-rw-r--r--pkgs/tools/networking/atftp/default.nix57
-rw-r--r--pkgs/tools/networking/cjdns/default.nix16
-rw-r--r--pkgs/tools/networking/cjdns/makekey.patch64
-rw-r--r--pkgs/tools/networking/dnsmasq/default.nix2
-rw-r--r--pkgs/tools/networking/getmail/default.nix9
-rw-r--r--pkgs/tools/networking/openntpd/default.nix32
-rw-r--r--pkgs/tools/networking/s6-dns/default.nix53
-rw-r--r--pkgs/tools/networking/s6-networking/default.nix63
-rw-r--r--pkgs/tools/networking/urlwatch/default.nix21
-rw-r--r--pkgs/tools/networking/wavemon/default.nix13
-rw-r--r--pkgs/tools/package-management/koji/default.nix21
-rw-r--r--pkgs/tools/security/clamav/default.nix12
-rw-r--r--pkgs/tools/system/dd_rescue/default.nix8
-rw-r--r--pkgs/tools/system/freeipmi/default.nix9
-rw-r--r--pkgs/tools/system/ioping/default.nix12
-rw-r--r--pkgs/tools/system/ioping/default.upstream5
-rw-r--r--pkgs/tools/system/ipmiutil/default.nix12
-rw-r--r--pkgs/tools/system/ipmiutil/default.upstream4
-rw-r--r--pkgs/tools/system/sleuthkit/default.nix6
-rw-r--r--pkgs/tools/system/sleuthkit/default.upstream5
-rw-r--r--pkgs/tools/typesetting/tex/texlive/default.nix8
-rw-r--r--pkgs/tools/typesetting/tex/texlive/extra.nix4
-rw-r--r--pkgs/top-level/all-packages.nix161
-rw-r--r--pkgs/top-level/haskell-packages.nix41
-rw-r--r--pkgs/top-level/node-packages.json2
-rw-r--r--pkgs/top-level/perl-packages.nix1
-rw-r--r--pkgs/top-level/python-packages.nix384
-rw-r--r--pkgs/top-level/release.nix8
338 files changed, 5078 insertions, 2086 deletions
diff --git a/lib/licenses.nix b/lib/licenses.nix
index 812592c74f2..bdcf8a7b8a7 100644
--- a/lib/licenses.nix
+++ b/lib/licenses.nix
@@ -194,6 +194,8 @@ rec {
     fullName = "Lucent Public License v1.02";
   };
 
+  # spdx.org does not (yet) differentiate between the X11 and Expat versions
+  # for details see http://en.wikipedia.org/wiki/MIT_License#Various_versions
   mit = spdx {
     shortName = "MIT";
     fullName = "MIT License";
diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index 3de82db1cd9..9ff9f7ea27a 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -34,6 +34,7 @@
   cfouche = "Chaddaï Fouché <chaddai.fouche@gmail.com>";
   chaoflow = "Florian Friesdorf <flo@chaoflow.net>";
   coconnor = "Corey O'Connor <coreyoconnor@gmail.com>";
+  copumpkin = "Dan Peebles <pumpkingod@gmail.com>";
   coroa = "Jonas Hörsch <jonas@chaoflow.net>";
   cstrahan = "Charles Strahan <charles.c.strahan@gmail.com>";
   DamienCassou = "Damien Cassou <damien.cassou@gmail.com>";
@@ -47,6 +48,7 @@
   flosse = "Markus Kohlhase <mail@markus-kohlhase.de>";
   funfunctor = "Edward O'Callaghan <eocallaghan@alterapraxis.com>";
   fuuzetsu = "Mateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk>";
+  gal_bolle = "Florent Becker <florent.becker@ens-lyon.org>";
   garbas = "Rok Garbas <rok@garbas.si>";
   goibhniu = "Cillian de Róiste <cillian.deroiste@gmail.com>";
   guibert = "David Guibert <david.guibert@gmail.com>";
diff --git a/lib/modules.nix b/lib/modules.nix
index bcaadc7fd97..9fe26083cfd 100644
--- a/lib/modules.nix
+++ b/lib/modules.nix
@@ -277,13 +277,14 @@ rec {
   fixupOptionType = loc: opt:
     let
       options' = opt.options or
-        (throw "Option `${showOption loc'}' has type optionSet but has no option attribute.");
+        (throw "Option `${showOption loc'}' has type optionSet but has no option attribute, in ${showFiles opt.declarations}.");
       coerce = x:
         if isFunction x then x
         else { config, ... }: { options = x; };
       options = map coerce (flatten options');
       f = tp:
-        if tp.name == "option set" then types.submodule options
+        if tp.name == "option set" || tp.name == "submodule" then
+          throw "The option ${showOption loc} uses submodules without a wrapping type, in ${showFiles opt.declarations}."
         else if tp.name == "attribute set of option sets" then types.attrsOf (types.submodule options)
         else if tp.name == "list or attribute set of option sets" then types.loaOf (types.submodule options)
         else if tp.name == "list of option sets" then types.listOf (types.submodule options)
diff --git a/nixos/doc/manual/configuration/ipv4-config.xml b/nixos/doc/manual/configuration/ipv4-config.xml
index e2c51518349..053501b1736 100644
--- a/nixos/doc/manual/configuration/ipv4-config.xml
+++ b/nixos/doc/manual/configuration/ipv4-config.xml
@@ -12,12 +12,9 @@ interfaces.  However, you can configure an interface manually as
 follows:
 
 <programlisting>
-networking.interfaces.eth0 = { ipAddress = "192.168.1.2"; prefixLength = 24; };
+networking.interfaces.eth0.ip4 = [ { address = "192.168.1.2"; prefixLength = 24; } ];
 </programlisting>
 
-(The network prefix can also be specified using the option
-<literal>subnetMask</literal>,
-e.g. <literal>"255.255.255.0"</literal>, but this is deprecated.)
 Typically you’ll also want to set a default gateway and set of name
 servers:
 
diff --git a/nixos/lib/build-vms.nix b/nixos/lib/build-vms.nix
index 498c0a37783..50b3b424166 100644
--- a/nixos/lib/build-vms.nix
+++ b/nixos/lib/build-vms.nix
@@ -48,10 +48,11 @@ rec {
             let
               interfacesNumbered = zipTwoLists config.virtualisation.vlans (range 1 255);
               interfaces = flip map interfacesNumbered ({ first, second }:
-                nameValuePair "eth${toString second}"
-                  { ipAddress = "192.168.${toString first}.${toString m.second}";
-                    subnetMask = "255.255.255.0";
-                  });
+                nameValuePair "eth${toString second}" { ip4 =
+                  [ { address = "192.168.${toString first}.${toString m.second}";
+                      prefixLength = 24;
+                  } ];
+                });
             in
             { key = "ip-address";
               config =
@@ -60,7 +61,7 @@ rec {
                   networking.interfaces = listToAttrs interfaces;
 
                   networking.primaryIPAddress =
-                    optionalString (interfaces != []) (head interfaces).value.ipAddress;
+                    optionalString (interfaces != []) (head (head interfaces).value.ip4).address;
 
                   # Put the IP addresses of all VMs in this machine's
                   # /etc/hosts file.  If a machine has multiple
diff --git a/nixos/lib/make-system-tarball.nix b/nixos/lib/make-system-tarball.nix
index 8fed9a34882..3bd891fdbc2 100644
--- a/nixos/lib/make-system-tarball.nix
+++ b/nixos/lib/make-system-tarball.nix
@@ -15,6 +15,9 @@
   # store path whose closure will be copied, and `symlink' is a
   # symlink to `object' that will be added to the tarball.
   storeContents ? []
+
+  # Extra tar arguments
+, extraArgs ? ""
 }:
 
 stdenv.mkDerivation {
@@ -22,7 +25,7 @@ stdenv.mkDerivation {
   builder = ./make-system-tarball.sh;
   buildInputs = [perl xz];
 
-  inherit fileName pathsFromGraph;
+  inherit fileName pathsFromGraph extraArgs;
 
   # !!! should use XML.
   sources = map (x: x.source) contents;
diff --git a/nixos/lib/make-system-tarball.sh b/nixos/lib/make-system-tarball.sh
index 096d96ac1c8..2eb668115a6 100644
--- a/nixos/lib/make-system-tarball.sh
+++ b/nixos/lib/make-system-tarball.sh
@@ -50,7 +50,7 @@ done
 
 mkdir -p $out/tarball
 
-tar cvJf $out/tarball/$fileName.tar.xz *
+tar cvJf $out/tarball/$fileName.tar.xz * $extraArgs
 
 mkdir -p $out/nix-support
 echo $system > $out/nix-support/system
diff --git a/nixos/maintainers/scripts/gce/create-gce.sh b/nixos/maintainers/scripts/gce/create-gce.sh
index 8bf36f33c7d..fc476fb6e40 100755
--- a/nixos/maintainers/scripts/gce/create-gce.sh
+++ b/nixos/maintainers/scripts/gce/create-gce.sh
@@ -1,5 +1,6 @@
 #! /bin/sh -e
 
+BUCKET_NAME=${BUCKET_NAME:-nixos}
 export NIX_PATH=nixpkgs=../../../..
 export NIXOS_CONFIG=$(dirname $(readlink -f $0))/../../../modules/virtualisation/google-compute-image.nix
 export TIMESTAMP=$(date +%Y%m%d%H%M)
@@ -8,7 +9,7 @@ nix-build '<nixpkgs/nixos>' \
    -A config.system.build.googleComputeImage --argstr system x86_64-linux -o gce --option extra-binary-caches http://hydra.nixos.org -j 10
 
 img=$(echo gce/*.tar.gz)
-if ! gsutil ls gs://nixos/$(basename $img); then
-  gsutil cp $img gs://nixos/$(basename $img)
+if ! gsutil ls gs://${BUCKET_NAME}/$(basename $img); then
+  gsutil cp $img gs://${BUCKET_NAME}/$(basename $img)
 fi
-gcutil addimage $(basename $img .raw.tar.gz | sed 's|\.|-|' | sed 's|_|-|') gs://nixos/$(basename $img)
+gcloud compute images create $(basename $img .raw.tar.gz | sed 's|\.|-|' | sed 's|_|-|') --source-uri gs://${BUCKET_NAME}/$(basename $img)
diff --git a/nixos/modules/config/vpnc.nix b/nixos/modules/config/vpnc.nix
new file mode 100644
index 00000000000..68d755232eb
--- /dev/null
+++ b/nixos/modules/config/vpnc.nix
@@ -0,0 +1,41 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.networking.vpnc;
+  mkServiceDef = name: value:
+    {
+      name = "vpnc/${name}.conf";
+      value = { text = value; };
+    };
+
+in
+{
+  options = {
+    networking.vpnc = {
+      services = mkOption {
+       type = types.attrsOf types.str;
+       default = {};
+       example = {
+         test = 
+          ''
+           IPSec gateway 192.168.1.1 
+           IPSec ID someID
+           IPSec secret secretKey
+           Xauth username name
+           Xauth password pass
+          '';
+       };
+       description = 
+         ''
+           The names of cisco VPNs and their associated definitions
+         '';
+      };
+    };
+  };
+
+  config.environment.etc = mapAttrs' mkServiceDef cfg.services;
+}
+
+
diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl
index 93a348f2717..c507f7f979f 100644
--- a/nixos/modules/installer/tools/nixos-generate-config.pl
+++ b/nixos/modules/installer/tools/nixos-generate-config.pl
@@ -20,13 +20,6 @@ sub uniq {
     return @res;
 }
 
-sub runCommand {
-    my ($cmd) = @_;
-    open FILE, "$cmd 2>/dev/null |" or die "Failed to execute: $cmd\n";
-    my @ret = <FILE>;
-    close FILE;
-    return ($?, @ret);
-}
 
 # Process the command line.
 my $outDir = "/etc/nixos";
@@ -344,20 +337,6 @@ EOF
         }
     }
 
-	# Is this a btrfs filesystem?
-	if ($fsType eq "btrfs") {
-		my ($status, @info) = runCommand("btrfs subvol show $rootDir$mountPoint");
-		if ($status != 0) {
-			die "Failed to retreive subvolume info for $mountPoint";
-		}
-		my @subvols = join("", @info) =~ m/Name:[ \t\n]*([^ \t\n]*)/;
-		if ($#subvols > 0) {
-			die "Btrfs subvol name for $mountPoint listed multiple times in mount\n"
-		} elsif ($#subvols == 0) {
-			push @extraOptions, "subvol=$subvols[0]";
-		}
-	}
-
     # Emit the filesystem.
     $fileSystems .= <<EOF;
   fileSystems.\"$mountPoint\" =
diff --git a/nixos/modules/installer/tools/tools.nix b/nixos/modules/installer/tools/tools.nix
index 91a30695a7a..39da2f1f0be 100644
--- a/nixos/modules/installer/tools/tools.nix
+++ b/nixos/modules/installer/tools/tools.nix
@@ -38,7 +38,6 @@ let
   nixos-generate-config = makeProg {
     name = "nixos-generate-config";
     src = ./nixos-generate-config.pl;
-    path = [ pkgs.btrfsProgs ];
     perl = "${pkgs.perl}/bin/perl -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl";
   };
 
diff --git a/nixos/modules/installer/virtualbox-demo.nix b/nixos/modules/installer/virtualbox-demo.nix
index 49ec0899610..f68f8dc40aa 100644
--- a/nixos/modules/installer/virtualbox-demo.nix
+++ b/nixos/modules/installer/virtualbox-demo.nix
@@ -10,9 +10,6 @@ with lib;
       ../profiles/clone-config.nix
     ];
 
-  # FIXME: UUID detection is currently broken
-  boot.loader.grub.fsIdentifier = "provided";
-
   # Allow mounting of shared folders.
   users.extraUsers.demo.extraGroups = [ "vboxsf" ];
 
diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix
index 513da5d50a1..efd8b253cd4 100644
--- a/nixos/modules/misc/ids.nix
+++ b/nixos/modules/misc/ids.nix
@@ -149,6 +149,7 @@
       radvd = 139;
       zookeeper = 140;
       dnsmasq = 141;
+      uhub = 142;
 
       # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
 
@@ -268,6 +269,7 @@
       mlmmj = 135;
       riemann = 137;
       riemanndash = 138;
+      uhub = 142;
 
       # When adding a gid, make sure it doesn't match an existing uid. And don't use gids above 399!
 
diff --git a/nixos/modules/misc/meta.nix b/nixos/modules/misc/meta.nix
new file mode 100644
index 00000000000..22622706f2c
--- /dev/null
+++ b/nixos/modules/misc/meta.nix
@@ -0,0 +1,63 @@
+{ config, lib, ... }:
+
+with lib;
+
+let
+  maintainer = mkOptionType {
+    name = "maintainer";
+    check = email: elem email (attrValues lib.maintainers);
+    merge = loc: defs: listToAttrs (singleton (nameValuePair (last defs).file (last defs).value));
+  };
+
+  listOfMaintainers = types.listOf maintainer // {
+    # Returns list of
+    #   { "module-file" = [
+    #        "maintainer1 <first@nixos.org>"
+    #        "maintainer2 <second@nixos.org>" ];
+    #   }
+    merge = loc: defs:
+      zipAttrs
+        (flatten (imap (n: def: imap (m: def':
+          maintainer.merge (loc ++ ["[${toString n}-${toString m}]"])
+            [{ inherit (def) file; value = def'; }]) def.value) defs));
+  };
+
+  docFile = types.path // {
+    # Returns tuples of
+    #   { file = "module location"; value = <path/to/doc.xml>; }
+    merge = loc: defs: defs;
+  };
+in
+
+{
+  options = {
+    meta = {
+
+      maintainers = mkOption {
+        type = listOfMaintainers;
+        internal = true;
+        default = [];
+        example = [ lib.maintainers.all ];
+        description = ''
+	  List of maintainers of each module.  This option should be defined at
+          most once per module.
+        '';
+      };
+
+      doc = mkOption {
+        type = docFile;
+        internal = true;
+        example = "./meta.xml";
+        description = ''
+	  Documentation prologe for the set of options of each module.  This
+          option should be defined at most once per module.
+        '';
+      };
+
+    };
+  };
+
+  config = {
+    meta.maintainers = singleton lib.maintainers.pierron;
+  };
+}
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 853961804e5..76d1ed8a9d4 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -21,6 +21,7 @@
   ./config/system-environment.nix
   ./config/system-path.nix
   ./config/timezone.nix
+  ./config/vpnc.nix
   ./config/unix-odbc-drivers.nix
   ./config/users-groups.nix
   ./config/zram.nix
@@ -45,6 +46,7 @@
   ./misc/ids.nix
   ./misc/lib.nix
   ./misc/locate.nix
+  ./misc/meta.nix
   ./misc/nixpkgs.nix
   ./misc/passthru.nix
   ./misc/version.nix
@@ -168,6 +170,7 @@
   ./services/misc/siproxd.nix
   ./services/misc/svnserve.nix
   ./services/misc/synergy.nix
+  ./services/misc/uhub.nix
   ./services/misc/zookeeper.nix
   ./services/monitoring/apcupsd.nix
   ./services/monitoring/dd-agent.nix
@@ -190,6 +193,7 @@
   ./services/network-filesystems/rsyncd.nix
   ./services/network-filesystems/samba.nix
   ./services/networking/amuled.nix
+  ./services/networking/atftpd.nix
   ./services/networking/avahi-daemon.nix
   ./services/networking/bind.nix
   ./services/networking/bitlbee.nix
@@ -227,6 +231,7 @@
   ./services/networking/ntpd.nix
   ./services/networking/oidentd.nix
   ./services/networking/openfire.nix
+  ./services/networking/openntpd.nix
   ./services/networking/openvpn.nix
   ./services/networking/polipo.nix
   ./services/networking/prayer.nix
@@ -360,6 +365,7 @@
   ./virtualisation/docker.nix
   ./virtualisation/libvirtd.nix
   #./virtualisation/nova.nix
+  ./virtualisation/openvswitch.nix
   ./virtualisation/virtualbox-guest.nix
   #./virtualisation/xen-dom0.nix
 ]
diff --git a/nixos/modules/programs/shadow.nix b/nixos/modules/programs/shadow.nix
index 5a467e112c2..5c2ea07c554 100644
--- a/nixos/modules/programs/shadow.nix
+++ b/nixos/modules/programs/shadow.nix
@@ -83,7 +83,7 @@ in
     security.pam.services =
       { chsh = { rootOK = true; };
         chfn = { rootOK = true; };
-        su = { rootOK = true; forwardXAuth = true; };
+        su = { rootOK = true; forwardXAuth = true; logFailures = true; };
         passwd = {};
         # Note: useradd, groupadd etc. aren't setuid root, so it
         # doesn't really matter what the PAM config says as long as it
diff --git a/nixos/modules/programs/virtualbox.nix b/nixos/modules/programs/virtualbox.nix
index e2dd76219eb..fec1a7b61f3 100644
--- a/nixos/modules/programs/virtualbox.nix
+++ b/nixos/modules/programs/virtualbox.nix
@@ -44,5 +44,5 @@ let virtualbox = config.boot.kernelPackages.virtualbox; in
         '';
     };
 
-  networking.interfaces.vboxnet0 = { ipAddress = "192.168.56.1"; prefixLength = 24; };
+  networking.interfaces.vboxnet0.ip4 = [ { address = "192.168.56.1"; prefixLength = 24; } ];
 }
diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix
index b1b75a0068d..844a9da0eb4 100644
--- a/nixos/modules/security/pam.nix
+++ b/nixos/modules/security/pam.nix
@@ -126,12 +126,28 @@ let
         description = "Whether to show the message of the day.";
       };
 
+      makeHomeDir = mkOption {
+        default = false;
+        type = types.bool;
+        description = ''
+          Whether to try to create home directories for users
+          with <literal>$HOME</literal>s pointing to nonexistent
+          locations on session login.
+        '';
+      };
+
       updateWtmp = mkOption {
         default = false;
         type = types.bool;
         description = "Whether to update <filename>/var/log/wtmp</filename>.";
       };
 
+      logFailures = mkOption {
+        default = false;
+        type = types.bool;
+        description = "Whether to log authentication failures in <filename>/var/log/faillog</filename>.";
+      };
+
       text = mkOption {
         type = types.nullOr types.lines;
         description = "Contents of the PAM service file.";
@@ -159,6 +175,8 @@ let
           # Authentication management.
           ${optionalString cfg.rootOK
               "auth sufficient pam_rootok.so"}
+          ${optionalString cfg.logFailures
+              "auth required pam_tally.so"}
           ${optionalString (config.security.pam.enableSSHAgentAuth && cfg.sshAgentAuth)
               "auth sufficient ${pkgs.pam_ssh_agent_auth}/libexec/pam_ssh_agent_auth.so file=~/.ssh/authorized_keys:~/.ssh/authorized_keys2:/etc/ssh/authorized_keys.d/%u"}
           ${optionalString cfg.usbAuth
@@ -192,6 +210,8 @@ let
               "session ${
                 if config.boot.isContainer then "optional" else "required"
               } pam_loginuid.so"}
+          ${optionalString cfg.makeHomeDir
+              "session required ${pkgs.pam}/lib/security/pam_mkhomedir.so silent skel=/etc/skel umask=0022"}
           ${optionalString cfg.updateWtmp
               "session required ${pkgs.pam}/lib/security/pam_lastlog.so silent"}
           ${optionalString config.users.ldap.enable
diff --git a/nixos/modules/security/setuid-wrappers.nix b/nixos/modules/security/setuid-wrappers.nix
index 373afffd3fb..22dbdf6a6bf 100644
--- a/nixos/modules/security/setuid-wrappers.nix
+++ b/nixos/modules/security/setuid-wrappers.nix
@@ -77,7 +77,9 @@ in
   config = {
 
     security.setuidPrograms =
-      [ "fusermount" "wodim" "cdrdao" "growisofs" ];
+      [ "mount.nfs" "mount.nfs4" "mount.cifs"
+        "fusermount" "umount"
+        "wodim" "cdrdao" "growisofs" ];
 
     system.activationScripts.setuid =
       let
diff --git a/nixos/modules/services/misc/uhub.nix b/nixos/modules/services/misc/uhub.nix
new file mode 100644
index 00000000000..15071202b9c
--- /dev/null
+++ b/nixos/modules/services/misc/uhub.nix
@@ -0,0 +1,186 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+  cfg = config.services.uhub;
+
+  uhubPkg = pkgs.uhub.override { tlsSupport = cfg.enableTLS; };
+
+  pluginConfig = ""
+  + optionalString cfg.plugins.authSqlite.enable ''
+    plugin ${uhubPkg.mod_auth_sqlite}/mod_auth_sqlite.so "file=${cfg.plugins.authSqlite.file}"
+  ''
+  + optionalString cfg.plugins.logging.enable ''
+    plugin ${uhubPkg.mod_logging}/mod_logging.so ${if cfg.plugins.logging.syslog then "syslog=true" else "file=${cfg.plugins.logging.file}"}
+  ''
+  + optionalString cfg.plugins.welcome.enable ''
+    plugin ${uhubPkg.mod_welcome}/mod_welcome.so "motd=${pkgs.writeText "motd.txt"  cfg.plugins.welcome.motd} rules=${pkgs.writeText "rules.txt" cfg.plugins.welcome.rules}"
+  ''
+  + optionalString cfg.plugins.history.enable ''
+    plugin ${uhubPkg.mod_chat_history}/mod_chat_history.so "history_max=${toString cfg.plugins.history.max} history_default=${toString cfg.plugins.history.default} history_connect=${toString cfg.plugins.history.connect}"
+  '';
+
+  uhubConfigFile = pkgs.writeText "uhub.conf" ''
+    file_acl=${pkgs.writeText "users.conf" cfg.aclConfig}
+    file_plugins=${pkgs.writeText "plugins.conf" pluginConfig}
+    server_bind_addr=${cfg.address}
+    server_port=${toString cfg.port}
+    ${lib.optionalString cfg.enableTLS "tls_enable=yes"}
+    ${cfg.hubConfig}
+  '';
+
+in
+
+{
+  options = {
+
+    services.uhub = {
+
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+	description = "Whether to enable the uhub ADC hub.";
+      };
+
+      port = mkOption {
+        type = types.int;
+        default = 1511;
+	description = "TCP port to bind the hub to.";
+      };
+
+      address = mkOption {
+        type = types.string;
+        default = "any";
+	description = "Address to bind the hub to.";
+      };
+
+      enableTLS = mkOption {
+        type = types.bool;
+        default = false;
+	description = "Whether to enable TLS support.";
+      };
+
+      hubConfig = mkOption {
+        type = types.lines;
+        default = "";
+	description = "Contents of uhub configuration file.";
+      };
+
+      aclConfig = mkOption {
+        type = types.lines;
+        default = "";
+        description = "Contents of user ACL configuration file.";
+      };
+
+      plugins = {
+
+        authSqlite = {
+	  enable = mkOption {
+            type = types.bool;
+            default = false;
+            description = "Whether to enable the Sqlite authentication database plugin";
+	  };
+          file = mkOption {
+            type = types.string;
+            example = "/var/db/uhub-users";
+            description = "Path to user database. Use the uhub-passwd utility to create the database and add/remove users.";
+          };
+        };
+
+        logging = {
+          enable = mkOption {
+            type = types.bool;
+            default = false;
+            description = "Whether to enable the logging plugin.";
+          };
+          file = mkOption {
+            type = types.string;
+            default = "";
+            description = "Path of log file.";
+          };
+          syslog = mkOption {
+            type = types.bool;
+            default = false;
+            description = "If true then the system log is used instead of writing to file.";
+          };
+        };
+
+        welcome = {
+          enable = mkOption {
+            type = types.bool;
+            default = false;
+            description = "Whether to enable the welcome plugin.";
+          };
+          motd = mkOption {
+            default = "";
+            type = types.lines;
+            description = ''
+              Welcome message displayed to clients after connecting 
+              and with the <literal>!motd</literal> command.
+            '';
+          };
+          rules = mkOption {
+            default = "";
+            type = types.lines;
+            description = ''
+              Rules message, displayed to clients with the <literal>!rules</literal> command.
+            '';
+          };
+        };
+
+        history = {
+          enable = mkOption {
+            type = types.bool;
+            default = false;
+            description = "Whether to enable the history plugin.";
+          };
+          max = mkOption {
+            type = types.int;
+            default = 200;
+            description = "The maximum number of messages to keep in history";
+          };
+          default = mkOption {
+            type = types.int;
+            default = 10;
+            description = "When !history is provided without arguments, then this default number of messages are returned.";
+          };
+          connect = mkOption {
+            type = types.int;
+            default = 5;
+            description = "The number of chat history messages to send when users connect (0 = do not send any history).";
+          };
+        };
+
+      };
+    };
+
+  };
+
+  config = mkIf cfg.enable {
+
+    users = {
+      extraUsers = singleton {
+        name = "uhub";
+        uid = config.ids.uids.uhub;
+      };
+      extraGroups = singleton {
+        name = "uhub";
+        gid = config.ids.gids.uhub;
+      };
+    };
+
+    systemd.services.uhub = {
+      description = "high performance peer-to-peer hub for the ADC network";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        Type = "notify";
+        ExecStart  = "${uhubPkg}/bin/uhub -c ${uhubConfigFile} -u uhub -g uhub -L";
+        ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
+      };
+    };
+  };
+
+}
\ No newline at end of file
diff --git a/nixos/modules/services/network-filesystems/nfsd.nix b/nixos/modules/services/network-filesystems/nfsd.nix
index 2217fec3b0f..57d56cd7287 100644
--- a/nixos/modules/services/network-filesystems/nfsd.nix
+++ b/nixos/modules/services/network-filesystems/nfsd.nix
@@ -56,6 +56,14 @@ in
           default = false;
           description = "Whether to create the mount points in the exports file at startup time.";
         };
+
+        mountdPort = mkOption {
+          default = null;
+          example = 4002;
+          description = ''
+            Use fixed port for rpc.mountd, usefull if server is behind firewall.
+          '';
+        };
       };
 
     };
@@ -138,7 +146,10 @@ in
         restartTriggers = [ exports ];
 
         serviceConfig.Type = "forking";
-        serviceConfig.ExecStart = "@${pkgs.nfsUtils}/sbin/rpc.mountd rpc.mountd";
+        serviceConfig.ExecStart = ''
+          @${pkgs.nfsUtils}/sbin/rpc.mountd rpc.mountd \
+              ${if cfg.mountdPort != null then "-p ${toString cfg.mountdPort}" else ""}
+        '';
         serviceConfig.Restart = "always";
       };
 
diff --git a/nixos/modules/services/networking/atftpd.nix b/nixos/modules/services/networking/atftpd.nix
new file mode 100644
index 00000000000..ab9f8650f0f
--- /dev/null
+++ b/nixos/modules/services/networking/atftpd.nix
@@ -0,0 +1,51 @@
+# NixOS module for atftpd TFTP server
+
+{ config, pkgs, ... }:
+
+with pkgs.lib;
+
+let
+
+  cfg = config.services.atftpd;
+
+in
+
+{
+
+  options = {
+
+    services.atftpd = {
+
+      enable = mkOption {
+        default = false;
+        type = types.uniq types.bool;
+        description = ''
+          Whenever to enable the atftpd TFTP server.
+        '';
+      };
+
+      root = mkOption {
+        default = "/var/empty";
+        type = types.uniq types.string;
+        description = ''
+          Document root directory for the atftpd.
+        '';
+      };
+
+    };
+
+  };
+
+  config = mkIf cfg.enable {
+
+    systemd.services.atftpd = {
+      description = "atftpd TFTP server";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+      # runs as nobody
+      serviceConfig.ExecStart = "${pkgs.atftp}/sbin/atftpd --daemon --no-fork --bind-address 0.0.0.0 ${cfg.root}";
+    };
+
+  };
+
+}
diff --git a/nixos/modules/services/networking/cjdns.nix b/nixos/modules/services/networking/cjdns.nix
index 9306ffd5a18..0519172db91 100644
--- a/nixos/modules/services/networking/cjdns.nix
+++ b/nixos/modules/services/networking/cjdns.nix
@@ -1,13 +1,3 @@
-# You may notice the commented out sections in this file,
-# it would be great to configure cjdns from nix, but cjdns 
-# reads its configuration from stdin, including the private
-# key and admin password, all nested in a JSON structure.
-#
-# Until a good method of storing the keys outside the nix 
-# store and mixing them back into a string is devised
-# (without too much shell hackery), a skeleton of the
-# configuration building lies commented out.
-
 { config, lib, pkgs, ... }:
 
 with lib;
@@ -16,41 +6,35 @@ let
 
   cfg = config.services.cjdns;
 
-  /*
-  # can't keep keys and passwords in the nix store,
-  # but don't want to deal with this stdin quagmire.
-
-  cjdrouteConf = '' {
-    "admin": {"bind": "${cfg.admin.bind}", "password": "\${CJDNS_ADMIN}" },
-    "privateKey": "\${CJDNS_KEY}",
-
-    "interfaces": {
-    ''
-
-    + optionalString (cfg.interfaces.udp.bind.address != null) ''
-      "UDPInterface": [ {
-        "bind": "${cfg.interfaces.udp.bind.address}:"''
-	   ${if cfg.interfaces.upd.bind.port != null
-             then ${toString cfg.interfaces.udp.bind.port}
-	     else ${RANDOM}
-	   fi)
-      + '' } ]''
-
-    + (if cfg.interfaces.eth.bind != null then ''
-      "ETHInterface": [ {
-        "bind": "${cfg.interfaces.eth.bind}",
-        "beacon": ${toString cfg.interfaces.eth.beacon}
-      } ]
-    '' fi )
-    + ''
-    },
-    "router": { "interface": { "type": "TUNInterface" }, },
-    "security": [ { "setuser": "nobody" } ]
-    }
-    '';   
-
-    cjdrouteConfFile = pkgs.writeText "cjdroute.conf" cjdrouteConf
-    */
+  # would be nice to  merge 'cfg' with a //,
+  # but the json nesting is wacky.
+  cjdrouteConf = builtins.toJSON ( {
+    admin = {
+      bind = cfg.admin.bind;
+      password = "@CJDNS_ADMIN_PASSWORD@";
+    };
+    authorizedPasswords = map (p: { password = p; }) cfg.authorizedPasswords;
+    interfaces = {
+      ETHInterface = if (cfg.ETHInterface.bind != "") then [ cfg.ETHInterface ] else [ ];
+      UDPInterface = if (cfg.UDPInterface.bind != "") then [ cfg.UDPInterface ] else [ ];
+    };
+
+    privateKey = "@CJDNS_PRIVATE_KEY@";
+
+    resetAfterInactivitySeconds = 100;
+
+    router = {
+      interface = { type = "TUNInterface"; };
+      ipTunnel = {
+        allowedConnections = [];
+        outgoingConnections = [];
+      };
+    };
+
+    security = [ { exemptAngel = 1; setuser = "nobody"; } ];
+
+  });
+
 in
 
 {
@@ -62,146 +46,180 @@ in
         type = types.bool;
 	default = false;
         description = ''
-          Enable this option to start a instance of the 
-          cjdns network encryption and and routing engine.
-          Configuration will be read from <literal>confFile</literal>.
+          Whether to enable the cjdns network encryption
+          and routing engine. A file at /etc/cjdns.keys will
+          be created if it does not exist to contain a random
+          secret key that your IPv6 address will be derived from.
         '';
       };
 
-      confFile = mkOption {
-	default = "/etc/cjdroute.conf";
-        description = ''
-          Configuration file to pipe to cjdroute.
+      authorizedPasswords = mkOption {
+        type = types.listOf types.str;
+	default = [ ];
+	example = [
+          "snyrfgkqsc98qh1y4s5hbu0j57xw5s0"
+	  "z9md3t4p45mfrjzdjurxn4wuj0d8swv"
+	  "49275fut6tmzu354pq70sr5b95qq0vj"
+        ];
+	description = ''
+	  Any remote cjdns nodes that offer these passwords on 
+	  connection will be allowed to route through this node.
         '';
       };
-
-      /*
+    
       admin = {
         bind = mkOption {
+          type = types.string;
 	  default = "127.0.0.1:11234";
 	  description = ''
             Bind the administration port to this address and port.
 	  '';
         };
+      };
 
-	passwordFile = mkOption {
-	  example = "/root/cjdns.adminPassword";
-	  description = ''
-	    File containing a password to the administration port.
+      UDPInterface = {
+        bind = mkOption {
+          type = types.string;
+	  default = "";
+          example = "192.168.1.32:43211";
+          description = ''
+	    Address and port to bind UDP tunnels to.
+	  '';
+ 	};
+        connectTo = mkOption {
+          type = types.attrsOf ( types.submodule (
+	    { options, ... }:
+            { options = {
+                # TODO make host an option, and add it to networking.extraHosts
+                password = mkOption {
+                  type = types.str;
+                  description = "Authorized password to the opposite end of the tunnel.";
+                };
+                publicKey = mkOption {
+                  type = types.str;
+                  description = "Public key at the opposite end of the tunnel.";
+                };
+              };
+            }
+          ));
+	  default = { };
+          example = {
+            "192.168.1.1:27313" = {
+	      password = "5kG15EfpdcKNX3f2GSQ0H1HC7yIfxoCoImnO5FHM";
+              publicKey = "371zpkgs8ss387tmr81q04mp0hg1skb51hw34vk1cq644mjqhup0.k";
+            };
+          };
+          description = ''
+	    Credentials for making UDP tunnels.
 	  '';
 	};
       };
 
-      keyFile = mkOption {
-        type = types.str;
-	example = "/root/cjdns.key";
-	description = ''
-	  Path to a file containing a cjdns private key on a single line.
-	'';
-      };
-      
-      passwordsFile = mkOption {
-        type = types.str;
-	default = null;
-	example = "/root/cjdns.authorizedPasswords";
-	description = ''
-	  A file containing a list of json dictionaries with passwords.
-	  For example:
-	    {"password": "s8xf5z7znl4jt05g922n3wpk75wkypk"},
-	    { "name": "nice guy",
-	      "password": "xhthk1mglz8tpjrbbvdlhyc092rhpx5"},
-	    {"password": "3qfxyhmrht7uwzq29pmhbdm9w4bnc8w"}
+      ETHInterface = {
+        bind = mkOption {
+	  default = "";
+	  example = "eth0";
+	  description = ''
+	    Bind to this device for native ethernet operation.
 	  '';
-	};
-
-      interfaces = {
-        udp = {
-	  bind = { 
-            address = mkOption {
-	      default = "0.0.0.0";
-	      description = ''
-	        Address to bind UDP tunnels to; disable by setting to null;
-	      '';
- 	    };
-	    port = mkOption {
-	      type = types.int;
-	      default = null;
-	      description = ''
-	        Port to bind UDP tunnels to.
-	        A port will be choosen at random if this is not set.
-	        This option is required to act as the server end of 
-	        a tunnel.
-	      '';
- 	    };
-	  };
-	};
+        };
 
-	eth = {
-	  bind = mkOption {
-	    default = null;
-	    example = "eth0";
-	    description = ''
-	      Bind to this device and operate with native wire format.
-	    '';
-	  };
-
-	  beacon = mkOption {
-	    default = 2;
-	    description = ''
-	      Auto-connect to other cjdns nodes on the same network.
-	      Options:
-	        0 -- Disabled.
-
-                1 -- Accept beacons, this will cause cjdns to accept incoming
-		     beacon messages and try connecting to the sender.
-
-		2 -- Accept and send beacons, this will cause cjdns to broadcast
-		     messages on the local network which contain a randomly
-		     generated per-session password, other nodes which have this
-                     set to 1 or 2 will hear the beacon messages and connect
-                     automatically.
-            '';
-	  };
-	  
-	  connectTo = mkOption {
-	    type = types.listOf types.str;
-	    default = [];
-	    description = ''
-	      Credentials for connecting look similar to UDP credientials
-              except they begin with the mac address, for example:
-              "01:02:03:04:05:06":{"password":"a","publicKey":"b"}
-	    '';
-	  };
+        beacon = mkOption {
+	  type = types.int;
+          default = 2;
+          description = ''
+            Auto-connect to other cjdns nodes on the same network.
+            Options:
+	      0: Disabled.
+              1: Accept beacons, this will cause cjdns to accept incoming
+                 beacon messages and try connecting to the sender.
+              2: Accept and send beacons, this will cause cjdns to broadcast
+                 messages on the local network which contain a randomly
+                 generated per-session password, other nodes which have this
+                 set to 1 or 2 will hear the beacon messages and connect
+                 automatically.
+          '';
         };
+
+        connectTo = mkOption {
+          type = types.attrsOf ( types.submodule (
+	    { options, ... }:
+            { options = {
+                password = mkOption {
+                  type = types.str;
+                  description = "Authorized password to the opposite end of the tunnel.";
+                };
+                publicKey = mkOption {
+                  type = types.str;
+                  description = "Public key at the opposite end of the tunnel.";
+                };
+              };
+            }
+          ));
+	  default = { };
+          example = {
+            "01:02:03:04:05:06" = {
+	      password = "5kG15EfpdcKNX3f2GSQ0H1HC7yIfxoCoImnO5FHM";
+              publicKey = "371zpkgs8ss387tmr81q04mp0hg1skb51hw34vk1cq644mjqhup0.k";
+            };
+          };
+	  description = ''
+	    Credentials for connecting look similar to UDP credientials
+            except they begin with the mac address.
+	  '';
+	};
       };
-      */
+
     };
+
   };
 
   config = mkIf config.services.cjdns.enable {
 
     boot.kernelModules = [ "tun" ];
 
-    /*
-    networking.firewall.allowedUDPPorts = mkIf (cfg.udp.bind.port != null) [
-      cfg.udp.bind.port
-    ];
-    */
+    # networking.firewall.allowedUDPPorts = ...
 
     systemd.services.cjdns = {
       description = "encrypted networking for everybody";
       wantedBy = [ "multi-user.target" ];
-      wants = [ "network.target" ];
-      before = [ "network.target" ];
-      path = [ pkgs.cjdns ];
+      after = [ "network-interfaces.target" ];
+
+      script = ''
+        source /etc/cjdns.keys
+        echo '${cjdrouteConf}' | sed \
+	  -e "s/@CJDNS_ADMIN_PASSWORD@/$CJDNS_ADMIN_PASSWORD/g" \
+          -e "s/@CJDNS_PRIVATE_KEY@/$CJDNS_PRIVATE_KEY/g" \
+            | ${pkgs.cjdns}/sbin/cjdroute
+      '';
 
       serviceConfig = {
         Type = "forking";
-	ExecStart = ''
-          ${pkgs.stdenv.shell} -c "${pkgs.cjdns}/sbin/cjdroute < ${cfg.confFile}"
-	'';
 	Restart = "on-failure";
       };
     };
+
+    system.activationScripts.cjdns = ''
+      grep -q "CJDNS_PRIVATE_KEY=" /etc/cjdns.keys || \
+        echo "CJDNS_PRIVATE_KEY=$(${pkgs.cjdns}/sbin/makekey)" \
+	  >> /etc/cjdns.keys
+
+      grep -q "CJDNS_ADMIN_PASSWORD=" /etc/cjdns.keys || \
+        echo "CJDNS_ADMIN_PASSWORD=$(${pkgs.coreutils}/bin/head -c 96 /dev/urandom | ${pkgs.coreutils}/bin/tr -dc A-Za-z0-9)" \
+	  >> /etc/cjdns.keys
+
+      chmod 600 /etc/cjdns.keys
+    '';
+
+    assertions = [
+      { assertion = ( cfg.ETHInterface.bind != "" || cfg.UDPInterface.bind != "" );
+        message = "Neither cjdns.ETHInterface.bind nor cjdns.UDPInterface.bind defined.";
+      }
+      { assertion = config.networking.enableIPv6;
+        message = "networking.enableIPv6 must be enabled for CJDNS to work";
+      }
+    ];
+
   };
-}
+
+}
\ No newline at end of file
diff --git a/nixos/modules/services/networking/dhcpcd.nix b/nixos/modules/services/networking/dhcpcd.nix
index 89aa9bdb6b6..084ac69e8d5 100644
--- a/nixos/modules/services/networking/dhcpcd.nix
+++ b/nixos/modules/services/networking/dhcpcd.nix
@@ -11,7 +11,7 @@ let
   # Don't start dhcpcd on explicitly configured interfaces or on
   # interfaces that are part of a bridge, bond or sit device.
   ignoredInterfaces =
-    map (i: i.name) (filter (i: i.ipAddress != null) (attrValues config.networking.interfaces))
+    map (i: i.name) (filter (i: i.ip4 != [ ] || i.ipAddress != null) (attrValues config.networking.interfaces))
     ++ mapAttrsToList (i: _: i) config.networking.sits
     ++ concatLists (attrValues (mapAttrs (n: v: v.interfaces) config.networking.bridges))
     ++ concatLists (attrValues (mapAttrs (n: v: v.interfaces) config.networking.bonds))
@@ -64,7 +64,7 @@ let
       #    ${config.systemd.package}/bin/systemctl start ip-down.target
       #fi
 
-      ${config.networking.dhcpcd.runHook}
+      ${cfg.runHook}
     '';
 
 in
@@ -75,6 +75,18 @@ in
 
   options = {
 
+    networking.dhcpcd.persistent = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+          Whenever to leave interfaces configured on dhcpcd daemon
+          shutdown. Set to true if you have your root or store mounted
+          over the network or this machine accepts SSH connections
+          through DHCP interfaces and clients should be notified when
+          it shuts down.
+      '';
+    };
+
     networking.dhcpcd.denyInterfaces = mkOption {
       type = types.listOf types.str;
       default = [];
@@ -139,7 +151,7 @@ in
         serviceConfig =
           { Type = "forking";
             PIDFile = "/run/dhcpcd.pid";
-            ExecStart = "@${dhcpcd}/sbin/dhcpcd dhcpcd --quiet --config ${dhcpcdConf}";
+            ExecStart = "@${dhcpcd}/sbin/dhcpcd dhcpcd --quiet ${optionalString cfg.persistent "--persistent"} --config ${dhcpcdConf}";
             ExecReload = "${dhcpcd}/sbin/dhcpcd --rebind";
             Restart = "always";
           };
diff --git a/nixos/modules/services/networking/nsd.nix b/nixos/modules/services/networking/nsd.nix
index db8cb122871..cacd52f130f 100644
--- a/nixos/modules/services/networking/nsd.nix
+++ b/nixos/modules/services/networking/nsd.nix
@@ -456,156 +456,131 @@ in
       };
 
 
-      ratelimit = mkOption {
-        type = types.submodule (
-          { options, ... }:
-          { options = {
-
-              enable = mkOption {
-                type        = types.bool;
-                default     = false;
-                description = ''
-                  Enable ratelimit capabilities.
-                '';
-              };
-
-              size = mkOption {
-                type        = types.int;
-                default     = 1000000;
-                description = ''
-                  Size of the hashtable. More buckets use more memory but lower
-                  the chance of hash hash collisions.
-                '';
-              };
+      ratelimit = {
+        enable = mkOption {
+          type        = types.bool;
+          default     = false;
+          description = ''
+            Enable ratelimit capabilities.
+          '';
+        };
 
-              ratelimit = mkOption {
-                type        = types.int;
-                default     = 200;
-                description = ''
-                  Max qps allowed from any query source.
-                  0 means unlimited. With an verbosity of 2 blocked and
-                  unblocked subnets will be logged.
-                '';
-              };
+        size = mkOption {
+          type        = types.int;
+          default     = 1000000;
+          description = ''
+            Size of the hashtable. More buckets use more memory but lower
+            the chance of hash hash collisions.
+          '';
+        };
 
-              whitelistRatelimit = mkOption {
-                type        = types.int;
-                default     = 2000;
-                description = ''
-                  Max qps allowed from whitelisted sources.
-                  0 means unlimited. Set the rrl-whitelist option for specific
-                  queries to apply this limit instead of the default to them.
-                '';
-              };
+        ratelimit = mkOption {
+          type        = types.int;
+          default     = 200;
+          description = ''
+            Max qps allowed from any query source.
+            0 means unlimited. With an verbosity of 2 blocked and
+            unblocked subnets will be logged.
+          '';
+        };
 
-              slip = mkOption {
-                type        = types.nullOr types.int;
-                default     = null;
-                description = ''
-                  Number of packets that get discarded before replying a SLIP response.
-                  0 disables SLIP responses. 1 will make every response a SLIP response.
-                '';
-              };
+        whitelistRatelimit = mkOption {
+          type        = types.int;
+          default     = 2000;
+          description = ''
+            Max qps allowed from whitelisted sources.
+            0 means unlimited. Set the rrl-whitelist option for specific
+            queries to apply this limit instead of the default to them.
+          '';
+        };
 
-              ipv4PrefixLength = mkOption {
-                type        = types.nullOr types.int;
-                default     = null;
-                description = ''
-                  IPv4 prefix length. Addresses are grouped by netblock.
-                '';
-              };
+        slip = mkOption {
+          type        = types.nullOr types.int;
+          default     = null;
+          description = ''
+            Number of packets that get discarded before replying a SLIP response.
+            0 disables SLIP responses. 1 will make every response a SLIP response.
+          '';
+        };
 
-              ipv6PrefixLength = mkOption {
-                type        = types.nullOr types.int;
-                default     = null;
-                description = ''
-                  IPv6 prefix length. Addresses are grouped by netblock.
-                '';
-              };
+        ipv4PrefixLength = mkOption {
+          type        = types.nullOr types.int;
+          default     = null;
+          description = ''
+            IPv4 prefix length. Addresses are grouped by netblock.
+          '';
+        };
 
-            };
-          });
-        default = {
+        ipv6PrefixLength = mkOption {
+          type        = types.nullOr types.int;
+          default     = null;
+          description = ''
+            IPv6 prefix length. Addresses are grouped by netblock.
+          '';
         };
-        example = {};
-        description = ''
-        '';
       };
 
 
-      remoteControl = mkOption {
-        type = types.submodule (
-          { config, options, ... }:
-          { options = {
-
-              enable = mkOption {
-                type        = types.bool;
-                default     = false;
-                description = ''
-                  Wheter to enable remote control via nsd-control(8).
-                '';
-              };
-
-              interfaces = mkOption {
-                type        = types.listOf types.str;
-                default     = [ "127.0.0.1" "::1" ];
-                description = ''
-                  Which interfaces NSD should bind to for remote control.
-                '';
-              };
-
-              port = mkOption {
-                type        = types.int;
-                default     = 8952;
-                description = ''
-                  Port number for remote control operations (uses TLS over TCP).
-                '';
-              };
+      remoteControl = {
+        enable = mkOption {
+          type        = types.bool;
+          default     = false;
+          description = ''
+            Wheter to enable remote control via nsd-control(8).
+          '';
+        };
 
-              serverKeyFile = mkOption {
-                type        = types.path;
-                default     = "/etc/nsd/nsd_server.key";
-                description = ''
-                  Path to the server private key, which is used by the server
-                  but not by nsd-control. This file is generated by nsd-control-setup.
-                '';
-              };
+        interfaces = mkOption {
+          type        = types.listOf types.str;
+          default     = [ "127.0.0.1" "::1" ];
+          description = ''
+            Which interfaces NSD should bind to for remote control.
+          '';
+        };
 
-              serverCertFile = mkOption {
-                type        = types.path;
-                default     = "/etc/nsd/nsd_server.pem";
-                description = ''
-                  Path to the server self signed certificate, which is used by the server
-                  but and by nsd-control. This file is generated by nsd-control-setup.
-                '';
-              };
+        port = mkOption {
+          type        = types.int;
+          default     = 8952;
+          description = ''
+            Port number for remote control operations (uses TLS over TCP).
+          '';
+        };
 
-              controlKeyFile = mkOption {
-                type        = types.path;
-                default     = "/etc/nsd/nsd_control.key";
-                description = ''
-                  Path to the client private key, which is used by nsd-control
-                  but not by the server. This file is generated by nsd-control-setup.
-                '';
-              };
+        serverKeyFile = mkOption {
+          type        = types.path;
+          default     = "/etc/nsd/nsd_server.key";
+          description = ''
+            Path to the server private key, which is used by the server
+            but not by nsd-control. This file is generated by nsd-control-setup.
+          '';
+        };
 
-              controlCertFile = mkOption {
-                type        = types.path;
-                default     = "/etc/nsd/nsd_control.pem";
-                description = ''
-                  Path to the client certificate signed with the server certificate.
-                  This file is used by nsd-control and generated by nsd-control-setup.
-                '';
-              };
+        serverCertFile = mkOption {
+          type        = types.path;
+          default     = "/etc/nsd/nsd_server.pem";
+          description = ''
+            Path to the server self signed certificate, which is used by the server
+            but and by nsd-control. This file is generated by nsd-control-setup.
+          '';
+        };
 
-            };
+        controlKeyFile = mkOption {
+          type        = types.path;
+          default     = "/etc/nsd/nsd_control.key";
+          description = ''
+            Path to the client private key, which is used by nsd-control
+            but not by the server. This file is generated by nsd-control-setup.
+          '';
+        };
 
-          });
-        default = {
+        controlCertFile = mkOption {
+          type        = types.path;
+          default     = "/etc/nsd/nsd_control.pem";
+          description = ''
+            Path to the client certificate signed with the server certificate.
+            This file is used by nsd-control and generated by nsd-control-setup.
+          '';
         };
-        example = {};
-        description = ''
-        '';
       };
 
 
diff --git a/nixos/modules/services/networking/openntpd.nix b/nixos/modules/services/networking/openntpd.nix
new file mode 100644
index 00000000000..bd8a7a04a2a
--- /dev/null
+++ b/nixos/modules/services/networking/openntpd.nix
@@ -0,0 +1,49 @@
+{ pkgs, lib, config, options, ... }:
+
+with lib;
+
+let
+  cfg = config.services.openntpd;
+
+  package = pkgs.openntpd.override {
+    privsepUser = "ntp";
+    privsepPath = "/var/empty";
+  };
+
+  cfgFile = pkgs.writeText "openntpd.conf" ''
+    ${concatStringsSep "\n" (map (s: "server ${s}") cfg.servers)}
+  '';
+in
+{
+  ###### interface
+
+  options.services.openntpd = {
+    enable = mkEnableOption "OpenNTP time synchronization server";
+
+    servers = mkOption {
+      default = config.services.ntp.servers;
+      type = types.listOf types.str;
+      inherit (options.services.ntp.servers) description;
+    };
+  };
+
+  ###### implementation
+
+  config = mkIf cfg.enable {
+    services.ntp.enable = mkForce false;
+
+    users.extraUsers = singleton {
+      name = "ntp";
+      uid = config.ids.uids.ntp;
+      description = "OpenNTP daemon user";
+      home = "/var/empty";
+    };
+
+    systemd.services.openntpd = {
+      description = "OpenNTP Server";
+      wantedBy = [ "ip-up.target" ];
+      partOf = [ "ip-up.target" ];
+      serviceConfig.ExecStart = "${package}/sbin/ntpd -d -f ${cfgFile}";
+    };
+  };
+}
diff --git a/nixos/modules/services/networking/privoxy.nix b/nixos/modules/services/networking/privoxy.nix
index 950112b2dab..94beb78ef5a 100644
--- a/nixos/modules/services/networking/privoxy.nix
+++ b/nixos/modules/services/networking/privoxy.nix
@@ -6,19 +6,18 @@ let
 
   inherit (pkgs) privoxy;
 
-  stateDir = "/var/spool/privoxy";
-
   privoxyUser = "privoxy";
 
-  privoxyFlags = "--no-daemon --user ${privoxyUser} ${privoxyCfg}";
-
-  privoxyCfg = pkgs.writeText "privoxy.conf" ''
-    listen-address  ${config.services.privoxy.listenAddress}
-    logdir          ${config.services.privoxy.logDir}
-    confdir         ${privoxy}/etc
-    filterfile      default.filter
+  cfg = config.services.privoxy;
 
-    ${config.services.privoxy.extraConfig}
+  confFile = pkgs.writeText "privoxy.conf" ''
+    user-manual ${privoxy}/share/doc/privoxy/user-manual
+    confdir ${privoxy}/etc/
+    listen-address  ${cfg.listenAddress}
+    enable-edit-actions ${if (cfg.enableEditActions == true) then "1" else "0"}
+    ${concatMapStrings (f: "actionsfile ${f}\n") cfg.actionsFiles}
+    ${concatMapStrings (f: "filterfile ${f}\n") cfg.filterFiles}
+    ${cfg.extraConfig}
   '';
 
 in
@@ -32,27 +31,51 @@ in
     services.privoxy = {
 
       enable = mkOption {
+        type = types.bool;
         default = false;
         description = ''
-          Whether to run the machine as a HTTP proxy server.
+          Whether to enable the Privoxy non-caching filtering proxy.
         '';
       };
 
       listenAddress = mkOption {
+        type = types.str;
         default = "127.0.0.1:8118";
         description = ''
           Address the proxy server is listening to.
         '';
       };
 
-      logDir = mkOption {
-        default = "/var/log/privoxy" ;
+      actionsFiles = mkOption {
+        type = types.listOf types.str;
+        example = [ "match-all.action" "default.action" "/etc/privoxy/user.action" ];
+        default = [ "match-all.action" "default.action" ];
+        description = ''
+          List of paths to Privoxy action files.
+          These paths may either be absolute or relative to the privoxy configuration directory.
+        '';
+      };
+
+      filterFiles = mkOption {
+        type = types.listOf types.str;
+        example = [ "default.filter" "/etc/privoxy/user.filter" ];
+        default = [ "default.filter" ];
+        description = ''
+          List of paths to Privoxy filter files.
+          These paths may either be absolute or relative to the privoxy configuration directory.
+        '';
+      };
+
+      enableEditActions = mkOption {
+        type = types.bool;
+        default = false;
         description = ''
-          Location for privoxy log files.
+          Whether or not the web-based actions file editor may be used.
         '';
       };
 
       extraConfig = mkOption {
+        type = types.lines;
         default = "" ;
         description = ''
           Extra configuration. Contents will be added verbatim to the configuration file.
@@ -62,33 +85,22 @@ in
 
   };
 
-
   ###### implementation
 
-  config = mkIf config.services.privoxy.enable {
+  config = mkIf cfg.enable {
   
-    environment.systemPackages = [ privoxy ];
-
     users.extraUsers = singleton
       { name = privoxyUser;
         uid = config.ids.uids.privoxy;
         description = "Privoxy daemon user";
-        home = stateDir;
       };
 
-    jobs.privoxy =
-      { name = "privoxy";
-
-        startOn = "startup";
-
-        preStart =
-          ''
-            mkdir -m 0755 -p ${stateDir}
-            chown ${privoxyUser} ${stateDir}
-          '';
-
-        exec = "${privoxy}/sbin/privoxy ${privoxyFlags}";
-      };
+    systemd.services.privoxy = {
+      description = "Filtering web proxy";
+      after = [ "network.target" "nss-lookup.target" ];
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig.ExecStart = "${privoxy}/sbin/privoxy --no-daemon --user ${privoxyUser} ${confFile}";
+    };
 
   };
 
diff --git a/nixos/modules/services/networking/ssh/sshd.nix b/nixos/modules/services/networking/ssh/sshd.nix
index e4b29a0b909..379dec2e92c 100644
--- a/nixos/modules/services/networking/ssh/sshd.nix
+++ b/nixos/modules/services/networking/ssh/sshd.nix
@@ -144,6 +144,36 @@ in
         '';
       };
 
+      listenAddresses = mkOption {
+        type = types.listOf types.optionSet;
+        default = [];
+        example = [ { addr = "192.168.3.1"; port = 22; } { addr = "0.0.0.0"; port = 64022; } ];
+        description = ''
+          List of addresses and ports to listen on (ListenAddress directive
+          in config). If port is not specified for address sshd will listen
+          on all ports specified by <literal>ports</literal> option.
+          NOTE: this will override default listening on all local addresses and port 22.
+          NOTE: setting this option won't automatically enable given ports
+          in firewall configuration.
+        '';
+        options = {
+          addr = mkOption {
+            type = types.nullOr types.str;
+            default = null;
+            description = ''
+              Host, IPv4 or IPv6 address to listen to.
+            '';
+          };
+          port = mkOption {
+            type = types.nullOr types.int;
+            default = null;
+            description = ''
+              Port to listen to.
+            '';
+          };
+        };
+      };
+
       passwordAuthentication = mkOption {
         type = types.bool;
         default = true;
@@ -349,6 +379,10 @@ in
           Port ${toString port}
         '') cfg.ports}
 
+        ${concatMapStrings ({ port, addr }: ''
+          ListenAddress ${addr}${if port != null then ":" + toString port else ""}
+        '') cfg.listenAddresses}
+
         ${optionalString cfgc.setXAuthLocation ''
             XAuthLocation ${pkgs.xorg.xauth}/bin/xauth
         ''}
@@ -383,6 +417,10 @@ in
         assertion = (data.publicKey == null && data.publicKeyFile != null) ||
                     (data.publicKey != null && data.publicKeyFile == null);
         message = "knownHost ${name} must contain either a publicKey or publicKeyFile";
+      })
+      ++ flip map cfg.listenAddresses ({ addr, port }: {
+        assertion = addr != null;
+        message = "addr must be specified in each listenAddresses entry";
       });
 
   };
diff --git a/nixos/modules/services/networking/znc.nix b/nixos/modules/services/networking/znc.nix
index 2aa63c6e7df..9b26b2b3244 100644
--- a/nixos/modules/services/networking/znc.nix
+++ b/nixos/modules/services/networking/znc.nix
@@ -25,85 +25,6 @@ let
     paths = cfg.modulePackages;
   };
 
-  confOptions = { ... }: {
-    options = {
-      modules = mkOption {
-        type = types.listOf types.string;
-        default = [ "partyline" "webadmin" "adminlog" "log" ];
-        example = [ "partyline" "webadmin" "adminlog" "log" ];
-        description = ''
-          A list of modules to include in the `znc.conf` file.
-        '';
-      };
-
-      userModules = mkOption {
-        type = types.listOf types.string;
-        default = [ ];
-        example = [ "fish" "push" ];
-        description = ''
-          A list of user modules to include in the `znc.conf` file.
-        '';
-      };
-
-      userName = mkOption {
-        default = defaultUserName;
-        example = "johntron";
-        type = types.string;
-        description = ''
-          The user name to use when generating the `znc.conf` file.
-          This is the user name used by the user logging into the ZNC web admin. 
-        '';
-      };
-
-      nick = mkOption {
-        default = "znc-user";
-        example = "john";
-        type = types.string;
-        description = ''
-          The IRC nick to use when generating the `znc.conf` file.
-        '';
-      };
-
-      passBlock = mkOption {
-        default = defaultPassBlock;
-        example = "Must be the block generated by the `znc --makepass` command.";
-        type = types.string;
-        description = ''
-          The pass block to use when generating the `znc.conf` file.
-          This is the password used by the user logging into the ZNC web admin.
-          This is the block generated by the `znc --makepass` command.
-          !!! If not specified, please change this after starting the service. !!!
-        '';
-      };
-
-      port = mkOption {
-        default = 5000;
-        example = 5000;
-        type = types.int;
-        description = ''
-          Specifies the port on which to listen.
-        '';
-      };
- 
-      useSSL = mkOption {
-        default = true;
-        example = true;
-        type = types.bool;
-        description = ''
-          Indicates whether the ZNC server should use SSL when listening on the specified port.
-        '';
-      };
-
-      extraZncConf = mkOption {
-        default = "";
-        type = types.lines;
-        description = ''
-          Extra config to `znc.conf` file
-        '';
-      };
-    };
-  };
-
   # Keep znc.conf in nix store, then symlink or copy into `dataDir`, depending on `mutable`.
   mkZncConf = confOpts: ''
     // Also check http://en.znc.in/wiki/Configuration
@@ -211,18 +132,91 @@ in
         '';
       };
 
-      confOptions = mkOption {
-        default = {};
-        example = {
-          modules = [ "log" ];
-          userName = "john";
-          nick = "johntron";
+      /* TODO: add to the documentation of the current module:
+
+         Values to use when creating a `znc.conf` file.
+
+           confOptions = {
+             modules = [ "log" ];
+             userName = "john";
+             nick = "johntron";
+           };
+      */
+      confOptions = {
+        modules = mkOption {
+          type = types.listOf types.string;
+          default = [ "partyline" "webadmin" "adminlog" "log" ];
+          example = [ "partyline" "webadmin" "adminlog" "log" ];
+          description = ''
+            A list of modules to include in the `znc.conf` file.
+          '';
+        };
+
+        userModules = mkOption {
+          type = types.listOf types.string;
+          default = [ ];
+          example = [ "fish" "push" ];
+          description = ''
+            A list of user modules to include in the `znc.conf` file.
+          '';
+        };
+
+        userName = mkOption {
+          default = defaultUserName;
+          example = "johntron";
+          type = types.string;
+          description = ''
+            The user name to use when generating the `znc.conf` file.
+            This is the user name used by the user logging into the ZNC web admin.
+          '';
+        };
+
+        nick = mkOption {
+          default = "znc-user";
+          example = "john";
+          type = types.string;
+          description = ''
+            The IRC nick to use when generating the `znc.conf` file.
+          '';
+        };
+
+        passBlock = mkOption {
+          default = defaultPassBlock;
+          example = "Must be the block generated by the `znc --makepass` command.";
+          type = types.string;
+          description = ''
+            The pass block to use when generating the `znc.conf` file.
+            This is the password used by the user logging into the ZNC web admin.
+            This is the block generated by the `znc --makepass` command.
+            !!! If not specified, please change this after starting the service. !!!
+          '';
+        };
+
+        port = mkOption {
+          default = 5000;
+          example = 5000;
+          type = types.int;
+          description = ''
+            Specifies the port on which to listen.
+          '';
+        };
+
+        useSSL = mkOption {
+          default = true;
+          example = true;
+          type = types.bool;
+          description = ''
+            Indicates whether the ZNC server should use SSL when listening on the specified port.
+          '';
+        };
+
+        extraZncConf = mkOption {
+          default = "";
+          type = types.lines;
+          description = ''
+            Extra config to `znc.conf` file
+          '';
         };
-        type = types.optionSet;
-        description = ''
-          Values to use when creating a `znc.conf` file.
-        '';
-        options = confOptions; 
       };
 
       modulePackages = mkOption {
@@ -280,20 +274,16 @@ in
 
         # If mutable, regenerate conf file every time.
         ${optionalString (!cfg.mutable) ''
-          ${pkgs.coreutils}/echo "znc is set to be system-managed. Now deleting old znc.conf file to be regenerated."
-          ${pkgs.coreutils}/rm -f ${cfg.dataDir}/configs/znc.conf
+          ${pkgs.coreutils}/bin/echo "znc is set to be system-managed. Now deleting old znc.conf file to be regenerated."
+          ${pkgs.coreutils}/bin/rm -f ${cfg.dataDir}/configs/znc.conf
         ''}
 
         # Ensure essential files exist.
         if [[ ! -f ${cfg.dataDir}/configs/znc.conf ]]; then
-          ${pkgs.coreutils}/bin/echo "No znc.conf file found in ${cfg.dataDir}. Creating one now."
-          ${if (!cfg.mutable)
-            then "${pkgs.coreutils}/bin/ln --force -s ${zncConfFile} ${cfg.dataDir}/.znc/configs/znc.conf"
-            else ''
-              ${pkgs.coreutils}/bin/cp --no-clobber ${zncConfFile} ${cfg.dataDir}/configs/znc.conf
-              ${pkgs.coreutils}/bin/chmod u+rw ${cfg.dataDir}/configs/znc.conf
-              ${pkgs.coreutils}/bin/chown ${cfg.user} ${cfg.dataDir}/configs/znc.conf
-            ''}
+            ${pkgs.coreutils}/bin/echo "No znc.conf file found in ${cfg.dataDir}. Creating one now."
+            ${pkgs.coreutils}/bin/cp --no-clobber ${zncConfFile} ${cfg.dataDir}/configs/znc.conf
+            ${pkgs.coreutils}/bin/chmod u+rw ${cfg.dataDir}/configs/znc.conf
+            ${pkgs.coreutils}/bin/chown ${cfg.user} ${cfg.dataDir}/configs/znc.conf
         fi
 
         if [[ ! -f ${cfg.dataDir}/znc.pem ]]; then
diff --git a/nixos/modules/services/security/clamav.nix b/nixos/modules/services/security/clamav.nix
index 057891a6047..a4d54301fc1 100644
--- a/nixos/modules/services/security/clamav.nix
+++ b/nixos/modules/services/security/clamav.nix
@@ -71,10 +71,10 @@ in
             mkdir -m 0755 -p ${stateDir}
             chown ${clamavUser}:${clamavGroup} ${stateDir}
           '';
-          exec = "${pkgs.clamav}/bin/freshclam --config-file=${pkgs.writeText "freshclam.conf" cfg.updater.config}";
+          exec = "${pkgs.clamav}/bin/freshclam --daemon --config-file=${pkgs.writeText "freshclam.conf" cfg.updater.config}";
       }; 
     };
 
   };
 
-}
\ No newline at end of file
+}
diff --git a/nixos/modules/services/ttys/agetty.nix b/nixos/modules/services/ttys/agetty.nix
index df21ebbd974..3958be33df2 100644
--- a/nixos/modules/services/ttys/agetty.nix
+++ b/nixos/modules/services/ttys/agetty.nix
@@ -66,6 +66,13 @@ with lib;
         restartIfChanged = false;
       };
 
+    systemd.services."console-getty" =
+      { serviceConfig.ExecStart = "@${pkgs.utillinux}/sbin/agetty agetty --noclear --login-program ${pkgs.shadow}/bin/login --keep-baud console 115200,38400,9600 $TERM";
+        serviceConfig.Restart = "always";
+        restartIfChanged = false;
+	enable = mkDefault config.boot.isContainer;
+      };
+
     environment.etc = singleton
       { # Friendly greeting on the virtual consoles.
         source = pkgs.writeText "issue" ''
diff --git a/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix b/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix
index 76c64f8cb29..bb066aa6c47 100644
--- a/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix
+++ b/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix
@@ -133,7 +133,7 @@ in
         RewriteEngine On
         RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
         RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
-        ${concatMapStringsSep "\n" (u: "RewriteCond %{REQUEST_URI} !^${u.urlPath}") serverInfo.serverConfig.servedDirs}
+        ${concatMapStringsSep "\n" (u: "RewriteCond %{REQUEST_URI} !^${u.urlPath}") serverInfo.vhostConfig.servedDirs}
         RewriteRule ${if config.enableUploads
           then "!^/images"
           else "^.*\$"
diff --git a/nixos/modules/services/web-servers/tomcat.nix b/nixos/modules/services/web-servers/tomcat.nix
index c2f464014ae..2af249a8e96 100644
--- a/nixos/modules/services/web-servers/tomcat.nix
+++ b/nixos/modules/services/web-servers/tomcat.nix
@@ -5,7 +5,7 @@ with lib;
 let
 
   cfg = config.services.tomcat;
-  tomcat = pkgs.tomcat6;
+  tomcat = pkgs.tomcat7;
 in
 
 {
diff --git a/nixos/modules/services/x11/display-managers/slim.nix b/nixos/modules/services/x11/display-managers/slim.nix
index 9ee4e0dc7cb..c7fbfa85e33 100644
--- a/nixos/modules/services/x11/display-managers/slim.nix
+++ b/nixos/modules/services/x11/display-managers/slim.nix
@@ -19,6 +19,7 @@ let
       reboot_cmd ${config.systemd.package}/sbin/shutdown -r now
       ${optionalString (cfg.defaultUser != null) ("default_user " + cfg.defaultUser)}
       ${optionalString cfg.autoLogin "auto_login yes"}
+      ${cfg.extraConfig}
     '';
 
   # Unpack the SLiM theme, or use the default.
@@ -89,6 +90,15 @@ in
         '';
       };
 
+      extraConfig = mkOption {
+        type = types.lines;
+        default = "";
+        description = ''
+          Extra configuration options for SLiM login manager. Do not
+          add options that can be configured directly.
+        '';
+      };
+
     };
 
   };
diff --git a/nixos/modules/system/boot/loader/grub/grub.nix b/nixos/modules/system/boot/loader/grub/grub.nix
index bc9a155ac95..0cc060db8f9 100644
--- a/nixos/modules/system/boot/loader/grub/grub.nix
+++ b/nixos/modules/system/boot/loader/grub/grub.nix
@@ -6,8 +6,7 @@ let
 
   cfg = config.boot.loader.grub;
 
-  realGrub = if cfg.version == 1 then pkgs.grub
-    else pkgs.grub2.override { zfsSupport = cfg.zfsSupport; };
+  realGrub = if cfg.version == 1 then pkgs.grub else pkgs.grub2;
 
   grub =
     # Don't include GRUB if we're only generating a GRUB menu (e.g.,
@@ -26,12 +25,11 @@ let
       inherit (cfg)
         version extraConfig extraPerEntryConfig extraEntries
         extraEntriesBeforeNixOS extraPrepareConfig configurationLimit copyKernels timeout
-        default devices fsIdentifier;
+        default devices explicitBootRoot;
       path = (makeSearchPath "bin" [
-        pkgs.coreutils pkgs.gnused pkgs.gnugrep pkgs.findutils pkgs.diffutils pkgs.btrfsProgs
-        pkgs.utillinux
+        pkgs.coreutils pkgs.gnused pkgs.gnugrep pkgs.findutils pkgs.diffutils
       ]) + ":" + (makeSearchPath "sbin" [
-        pkgs.mdadm pkgs.utillinux
+        pkgs.mdadm
       ]);
     });
 
@@ -211,26 +209,12 @@ in
         '';
       };
 
-      fsIdentifier = mkOption {
-        default = "uuid";
-        type = types.addCheck types.str
-          (type: type == "uuid" || type == "label" || type == "provided");
-        description = ''
-          Determines how grub will identify devices when generating the
-          configuration file. A value of uuid / label signifies that grub
-          will always resolve the uuid or label of the device before using
-          it in the configuration. A value of provided means that grub will
-          use the device name as show in <command>df</command> or
-          <command>mount</command>. Note, zfs zpools / datasets are ignored
-          and will always be mounted using their labels.
-        '';
-      };
-
-      zfsSupport = mkOption {
-        default = false;
-        type = types.bool;
+      explicitBootRoot = mkOption {
+        default = "";
+        type = types.str;
         description = ''
-          Whether grub should be build against libzfs.
+          The relative path of /boot within the parent volume. Leave empty
+          if /boot is not a btrfs subvolume.
         '';
       };
 
@@ -276,9 +260,6 @@ in
           ${pkgs.coreutils}/bin/cp -pf "${v}" "/boot/${n}"
         '') config.boot.loader.grub.extraFiles);
 
-    assertions = [{ assertion = !cfg.zfsSupport || cfg.version == 2;
-                    message = "Only grub version 2 provides zfs support";}];
-
     })
 
   ];
diff --git a/nixos/modules/system/boot/loader/grub/install-grub.pl b/nixos/modules/system/boot/loader/grub/install-grub.pl
index d8ee8b50097..b4900358a5d 100644
--- a/nixos/modules/system/boot/loader/grub/install-grub.pl
+++ b/nixos/modules/system/boot/loader/grub/install-grub.pl
@@ -1,6 +1,5 @@
 use strict;
 use warnings;
-use Class::Struct;
 use XML::LibXML;
 use File::Basename;
 use File::Path;
@@ -28,14 +27,6 @@ sub writeFile {
     close FILE or die;
 }
 
-sub runCommand {
-    my ($cmd) = @_;
-    open FILE, "$cmd 2>/dev/null |" or die "Failed to execute: $cmd\n";
-    my @ret = <FILE>;
-    close FILE;
-    return ($?, @ret);
-}
-
 my $grub = get("grub");
 my $grubVersion = int(get("version"));
 my $extraConfig = get("extraConfig");
@@ -48,7 +39,7 @@ my $configurationLimit = int(get("configurationLimit"));
 my $copyKernels = get("copyKernels") eq "true";
 my $timeout = int(get("timeout"));
 my $defaultEntry = int(get("default"));
-my $fsIdentifier = get("fsIdentifier");
+my $explicitBootRoot = get("explicitBootRoot");
 $ENV{'PATH'} = get("path");
 
 die "unsupported GRUB version\n" if $grubVersion != 1 && $grubVersion != 2;
@@ -57,108 +48,22 @@ print STDERR "updating GRUB $grubVersion menu...\n";
 
 mkpath("/boot/grub", 0, 0700);
 
+
 # Discover whether /boot is on the same filesystem as / and
 # /nix/store.  If not, then all kernels and initrds must be copied to
-# /boot.
-if (stat("/boot")->dev != stat("/nix/store")->dev) {
+# /boot, and all paths in the GRUB config file must be relative to the
+# root of the /boot filesystem.  `$bootRoot' is the path to be
+# prepended to paths under /boot.
+my $bootRoot = "/boot";
+if (stat("/")->dev != stat("/boot")->dev) {
+    $bootRoot = "";
+    $copyKernels = 1;
+} elsif (stat("/boot")->dev != stat("/nix/store")->dev) {
     $copyKernels = 1;
 }
 
-# Discover information about the location of /boot
-struct(Fs => {
-    device => '$',
-    type => '$',
-    mount => '$',
-});
-sub GetFs {
-    my ($dir) = @_;
-    my ($status, @dfOut) = runCommand("df -T $dir");
-    if ($status != 0 || $#dfOut != 1) {
-        die "Failed to retrieve output about $dir from `df`";
-    }
-    my @boot = split(/[ \n\t]+/, $dfOut[1]);
-    return Fs->new(device => $boot[0], type => $boot[1], mount => $boot[6]);
-}
-struct (Grub => {
-    path => '$',
-    search => '$',
-});
-my $driveid = 1;
-sub GrubFs {
-    my ($dir) = @_;
-    my $fs = GetFs($dir);
-    my $path = "/" . substr($dir, length($fs->mount));
-    my $search = "";
-
-    if ($grubVersion > 1) {
-        # ZFS is completely separate logic as zpools are always identified by a label
-        # or custom UUID
-        if ($fs->type eq 'zfs') {
-            my $sid = index($fs->device, '/');
-
-            if ($sid < 0) {
-                $search = '--label ' . $fs->device;
-                $path = '/@' . $path;
-            } else {
-                $search = '--label ' . substr($fs->device, 0, $sid);
-                $path = '/' . substr($fs->device, $sid) . '/@' . $path;
-            }
-        } else {
-            my %types = ('uuid' => '--fs-uuid', 'label' => '--label');
-
-            if ($fsIdentifier eq 'provided') {
-                # If the provided dev is identifying the partition using a label or uuid,
-                # we should get the label / uuid and do a proper search
-                my @matches = $fs->device =~ m/\/dev\/disk\/by-(label|uuid)\/(.*)/;
-                if ($#matches > 1) {
-                    die "Too many matched devices"
-                } elsif ($#matches == 1) {
-                    $search = "$types{$matches[0]} $matches[1]"
-                }
-            } else {
-                # Determine the identifying type
-                $search = $types{$fsIdentifier} . ' ';
-
-                # Based on the type pull in the identifier from the system
-                my ($status, @devInfo) = runCommand("blkid -o export @{[$fs->device]}");
-                if ($status != 0) {
-                    die "Failed to get blkid info for @{[$fs->device]}";
-                }
-                my @matches = join("", @devInfo) =~ m/@{[uc $fsIdentifier]}=([^\n]*)/;
-                if ($#matches != 0) {
-                    die "Couldn't find a $types{$fsIdentifier} for @{[$fs->device]}\n"
-                }
-                $search .= $matches[0];
-            }
-
-            # BTRFS is a special case in that we need to fix the referrenced path based on subvolumes
-            if ($fs->type eq 'btrfs') {
-                my ($status, @info) = runCommand("btrfs subvol show @{[$fs->mount]}");
-                if ($status != 0) {
-                    die "Failed to retreive subvolume info for @{[$fs->mount]}";
-                }
-                my @subvols = join("", @info) =~ m/Name:[ \t\n]*([^ \t\n]*)/;
-                if ($#subvols > 0) {
-                    die "Btrfs subvol name for @{[$fs->device]} listed multiple times in mount\n"
-                } elsif ($#subvols == 0) {
-                    $path = "/$subvols[0]$path";
-                }
-            }
-        }
-        if (not $search eq "") {
-            $search = "search --set=drive$driveid " . $search;
-            $path = "(\$drive$driveid)$path";
-            $driveid += 1;
-        }
-    }
-    return Grub->new(path => $path, search => $search);
-}
-my $grubBoot = GrubFs("/boot");
-my $grubStore = GrubFs("/nix");
-
-# We don't need to copy if we can read the kernels directly
-if ($grubStore->search ne "") {
-	$copyKernels = 0;
+if ($explicitBootRoot ne "") {
+    $bootRoot = $explicitBootRoot;
 }
 
 # Generate the header.
@@ -171,14 +76,12 @@ if ($grubVersion == 1) {
     ";
     if ($splashImage) {
         copy $splashImage, "/boot/background.xpm.gz" or die "cannot copy $splashImage to /boot\n";
-        $conf .= "splashimage " . $grubBoot->path . "/background.xpm.gz\n";
+        $conf .= "splashimage $bootRoot/background.xpm.gz\n";
     }
 }
 
 else {
     $conf .= "
-        " . $grubBoot->search . "
-        " . $grubStore->search . "
         if [ -s \$prefix/grubenv ]; then
           load_env
         fi
@@ -199,7 +102,7 @@ else {
           set timeout=$timeout
         fi
 
-        if loadfont " . $grubBoot->path . "/grub/fonts/unicode.pf2; then
+        if loadfont $bootRoot/grub/fonts/unicode.pf2; then
           set gfxmode=640x480
           insmod gfxterm
           insmod vbe
@@ -213,7 +116,7 @@ else {
         copy $splashImage, "/boot/background.png" or die "cannot copy $splashImage to /boot\n";
         $conf .= "
             insmod png
-            if background_image " . $grubBoot->path . "/background.png; then
+            if background_image $bootRoot/background.png; then
               set color_normal=white/black
               set color_highlight=black/white
             else
@@ -235,7 +138,7 @@ mkpath("/boot/kernels", 0, 0755) if $copyKernels;
 
 sub copyToKernelsDir {
     my ($path) = @_;
-    return $grubStore->path . substr($path, length("/nix")) unless $copyKernels;
+    return $path unless $copyKernels;
     $path =~ /\/nix\/store\/(.*)/ or die;
     my $name = $1; $name =~ s/\//-/g;
     my $dst = "/boot/kernels/$name";
@@ -248,7 +151,7 @@ sub copyToKernelsDir {
         rename $tmp, $dst or die "cannot rename $tmp to $dst\n";
     }
     $copied{$dst} = 1;
-    return $grubBoot->path . "/kernels/$name";
+    return "$bootRoot/kernels/$name";
 }
 
 sub addEntry {
@@ -275,8 +178,6 @@ sub addEntry {
         $conf .= "  " . ($xen ? "module" : "initrd") . " $initrd\n\n";
     } else {
         $conf .= "menuentry \"$name\" {\n";
-	$conf .= $grubBoot->search . "\n";
-	$conf .= $grubStore->search . "\n";
         $conf .= "  $extraPerEntryConfig\n" if $extraPerEntryConfig;
         $conf .= "  multiboot $xen $xenParams\n" if $xen;
         $conf .= "  " . ($xen ? "module" : "linux") . " $kernel $kernelParams\n";
@@ -294,7 +195,7 @@ addEntry("NixOS - Default", $defaultConfig);
 $conf .= "$extraEntries\n" unless $extraEntriesBeforeNixOS;
 
 # extraEntries could refer to @bootRoot@, which we have to substitute
-$conf =~ s/\@bootRoot\@/$grubBoot->path/g;
+$conf =~ s/\@bootRoot\@/$bootRoot/g;
 
 # Emit submenus for all system profiles.
 sub addProfile {
diff --git a/nixos/modules/system/boot/luksroot.nix b/nixos/modules/system/boot/luksroot.nix
index 68392e3cfe2..70ff1d588a3 100644
--- a/nixos/modules/system/boot/luksroot.nix
+++ b/nixos/modules/system/boot/luksroot.nix
@@ -342,40 +342,39 @@ in
               description = "Path where the ramfs used to update the LUKS key will be mounted in stage-1";
             };
 
-            storage = mkOption {
-              type = types.optionSet;
-              description = "Options related to the storing the salt";
-
-              options = {
-                device = mkOption {
-                  default = "/dev/sda1";
-                  type = types.path;
-                  description = ''
-                    An unencrypted device that will temporarily be mounted in stage-1.
-                    Must contain the current salt to create the challenge for this LUKS device.
-                  '';
-                };
-
-                fsType = mkOption {
-                  default = "vfat";
-                  type = types.string;
-                  description = "The filesystem of the unencrypted device";
-                };
-
-                mountPoint = mkOption {
-                  default = "/crypt-storage";
-                  type = types.string;
-                  description = "Path where the unencrypted device will be mounted in stage-1";
-                };
-
-                path = mkOption {
-                  default = "/crypt-storage/default";
-                  type = types.string;
-                  description = ''
-                    Absolute path of the salt on the unencrypted device with
-                    that device's root directory as "/".
-                  '';
-                };
+            /* TODO: Add to the documentation of the current module:
+
+               Options related to the storing the salt.
+            */
+            storage = {
+              device = mkOption {
+                default = "/dev/sda1";
+                type = types.path;
+                description = ''
+                  An unencrypted device that will temporarily be mounted in stage-1.
+                  Must contain the current salt to create the challenge for this LUKS device.
+                '';
+              };
+
+              fsType = mkOption {
+                default = "vfat";
+                type = types.string;
+                description = "The filesystem of the unencrypted device";
+              };
+
+              mountPoint = mkOption {
+                default = "/crypt-storage";
+                type = types.string;
+                description = "Path where the unencrypted device will be mounted in stage-1";
+              };
+
+              path = mkOption {
+                default = "/crypt-storage/default";
+                type = types.string;
+                description = ''
+                  Absolute path of the salt on the unencrypted device with
+                  that device's root directory as "/".
+                '';
               };
             };
           };
diff --git a/nixos/modules/system/boot/modprobe.nix b/nixos/modules/system/boot/modprobe.nix
index 652eb046f50..eaf8cf1ecd6 100644
--- a/nixos/modules/system/boot/modprobe.nix
+++ b/nixos/modules/system/boot/modprobe.nix
@@ -77,6 +77,11 @@ with lib;
         '')}
         ${config.boot.extraModprobeConfig}
       '';
+    environment.etc."modprobe.d/usb-load-ehci-first.conf".text =
+      ''
+        softdep uhci_hcd pre: ehci_hcd
+        softdep ohci_hcd pre: ehci_hcd
+      '';
 
     environment.systemPackages = [ config.system.sbin.modprobe pkgs.kmod ];
 
diff --git a/nixos/modules/tasks/filesystems/nfs.nix b/nixos/modules/tasks/filesystems/nfs.nix
index e8c3d8ab56d..c902b9e0790 100644
--- a/nixos/modules/tasks/filesystems/nfs.nix
+++ b/nixos/modules/tasks/filesystems/nfs.nix
@@ -24,13 +24,37 @@ let
     Method = nsswitch
   '';
 
+  cfg = config.services.nfs;
+
 in
 
 {
+  ###### interface
+
+  options = {
+
+    services.nfs = {
+      statdPort = mkOption {
+        default = null;
+        example = 4000;
+        description = ''
+          Use fixed port for rpc.statd, usefull if NFS server is behind firewall.
+        '';
+      };
+      lockdPort = mkOption {
+        default = null;
+        example = 4001;
+        description = ''
+          Use fixed port for NFS lock manager kernel module (lockd/nlockmgr),
+          usefull if NFS server is behind firewall.
+        '';
+      };
+    };
+  };
 
   ###### implementation
 
-  config = mkIf (any (fs: fs == "nfs" || fs == "nfs4") config.boot.supportedFilesystems) {
+  config = mkIf (any (fs: fs == "nfs" || fs == "nfs4") config.boot.supportedFilesystems) ({
 
     services.rpcbind.enable = true;
 
@@ -60,7 +84,10 @@ in
           '';
 
         serviceConfig.Type = "forking";
-        serviceConfig.ExecStart = "@${pkgs.nfsUtils}/sbin/rpc.statd rpc.statd --no-notify";
+        serviceConfig.ExecStart = ''
+          @${pkgs.nfsUtils}/sbin/rpc.statd rpc.statd --no-notify \
+              ${if cfg.statdPort != null then "-p ${toString statdPort}" else ""}
+        '';
         serviceConfig.Restart = "always";
       };
 
@@ -90,5 +117,9 @@ in
         serviceConfig.Restart = "always";
       };
 
-  };
+  } // mkIf (cfg.lockdPort != null) {
+    boot.extraModprobeConfig = ''
+      options lockd nlm_udpport=${toString cfg.lockdPort} nlm_tcpport=${toString cfg.lockdPort}
+    '';
+  });
 }
diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix
index 1c4bbc16b49..d7deb44c407 100644
--- a/nixos/modules/tasks/filesystems/zfs.nix
+++ b/nixos/modules/tasks/filesystems/zfs.nix
@@ -133,7 +133,7 @@ in
       };
 
       boot.initrd = mkIf inInitrd {
-        kernelModules = [ "spl" "zfs" ];
+        kernelModules = [ "spl" "zfs" ] ;
         extraUtilsCommands =
           ''
             cp -v ${zfsPkg}/sbin/zfs $out/bin
@@ -148,10 +148,6 @@ in
           '';
       };
 
-      boot.loader.grub = mkIf inInitrd {
-        zfsSupport = true;
-      };
-
       systemd.services."zpool-import" = {
         description = "Import zpools";
         after = [ "systemd-udev-settle.service" ];
diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix
index 7dabe70f00c..2adb4bcfaba 100644
--- a/nixos/modules/tasks/network-interfaces.nix
+++ b/nixos/modules/tasks/network-interfaces.nix
@@ -10,6 +10,26 @@ let
   hasSits = cfg.sits != { };
   hasBonds = cfg.bonds != { };
 
+  addrOpts = v:
+    assert v == 4 || v == 6;
+    {
+      address = mkOption {
+        type = types.str;
+        description = ''
+          IPv${toString v} address of the interface.  Leave empty to configure the
+          interface using DHCP.
+        '';
+      };
+
+      prefixLength = mkOption {
+        type = types.addCheck types.int (n: n >= 0 && n <= (if v == 4 then 32 else 128));
+        description = ''
+          Subnet mask of the interface, specified as the number of
+          bits in the prefix (<literal>${if v == 4 then "24" else "64"}</literal>).
+        '';
+      };
+    };
+
   interfaceOpts = { name, ... }: {
 
     options = {
@@ -20,10 +40,36 @@ let
         description = "Name of the interface.";
       };
 
+      ip4 = mkOption {
+        default = [ ];
+        example = [
+          { address = "10.0.0.1"; prefixLength = 16; }
+          { address = "192.168.1.1"; prefixLength = 24; }
+        ];
+        type = types.listOf types.optionSet;
+        options = addrOpts 4;
+        description = ''
+          List of IPv4 addresses that will be statically assigned to the interface.
+        '';
+      };
+
+      ip6 = mkOption {
+        default = [ ];
+        example = [
+          { address = "fdfd:b3f0:482::1"; prefixLength = 48; }
+          { address = "2001:1470:fffd:2098::e006"; prefixLength = 64; }
+        ];
+        type = types.listOf types.optionSet;
+        options = addrOpts 6;
+        description = ''
+          List of IPv6 addresses that will be statically assigned to the interface.
+        '';
+      };
+
       ipAddress = mkOption {
         default = null;
         example = "10.0.0.1";
-        type = types.nullOr (types.str);
+        type = types.nullOr types.str;
         description = ''
           IP address of the interface.  Leave empty to configure the
           interface using DHCP.
@@ -41,20 +87,16 @@ let
       };
 
       subnetMask = mkOption {
-        default = "";
-        example = "255.255.255.0";
-        type = types.str;
+        default = null;
         description = ''
-          Subnet mask of the interface, specified as a bitmask.
-          This is deprecated; use <option>prefixLength</option>
-          instead.
+          Defunct, supply the prefix length instead.
         '';
       };
 
       ipv6Address = mkOption {
         default = null;
         example = "2001:1470:fffd:2098::e006";
-        type = types.nullOr types.string;
+        type = types.nullOr types.str;
         description = ''
           IPv6 address of the interface.  Leave empty to configure the
           interface using NDP.
@@ -224,10 +266,10 @@ in
     networking.interfaces = mkOption {
       default = {};
       example =
-        { eth0 = {
-            ipAddress = "131.211.84.78";
-            subnetMask = "255.255.255.128";
-          };
+        { eth0.ip4 = [ {
+            address = "131.211.84.78";
+            prefixLength = 25;
+          } ];
         };
       description = ''
         The configuration for each network interface.  If
@@ -438,6 +480,12 @@ in
 
   config = {
 
+    assertions =
+      flip map interfaces (i: {
+        assertion = i.subnetMask == null;
+        message = "The networking.interfaces.${i.name}.subnetMask option is defunct. Use prefixLength instead.";
+      });
+
     boot.kernelModules = [ ]
       ++ optional cfg.enableIPv6 "ipv6"
       ++ optional hasVirtuals "tun"
@@ -534,12 +582,18 @@ in
         # network device, so it only gets started after the interface
         # has appeared, and it's stopped when the interface
         # disappears.
-        configureInterface = i: nameValuePair "${i.name}-cfg"
-          (let mask =
-                if i.prefixLength != null then toString i.prefixLength else
-                if i.subnetMask != "" then i.subnetMask else "32";
-               staticIPv6 = cfg.enableIPv6 && i.ipv6Address != null;
+        configureInterface = i:
+          let
+            ips = i.ip4 ++ optionals cfg.enableIPv6 i.ip6
+              ++ optional (i.ipAddress != null) {
+                address = i.ipAddress;
+                prefixLength = i.prefixLength;
+              } ++ optional (cfg.enableIPv6 && i.ipv6Address != null) {
+                address = i.ipv6Address;
+                prefixLength = i.ipv6PrefixLength;
+              };
           in
+          nameValuePair "${i.name}-cfg"
           { description = "Configuration of ${i.name}";
             wantedBy = [ "network-interfaces.target" ];
             bindsTo = [ "sys-subsystem-net-devices-${i.name}.device" ];
@@ -562,36 +616,32 @@ in
                   echo "setting MTU to ${toString i.mtu}..."
                   ip link set "${i.name}" mtu "${toString i.mtu}"
                 ''
-              + optionalString (i.ipAddress != null)
+
+              # Ip Setup
+              +
                 ''
-                  cur=$(ip -4 -o a show dev "${i.name}" | awk '{print $4}')
-                  # Only do a flush/add if it's necessary.  This is
+                  curIps=$(ip -o a show dev "${i.name}" | awk '{print $4}')
+                  # Only do an add if it's necessary.  This is
                   # useful when the Nix store is accessed via this
                   # interface (e.g. in a QEMU VM test).
-                  if [ "$cur" != "${i.ipAddress}/${mask}" ]; then
-                    echo "configuring interface..."
-                    ip -4 addr flush dev "${i.name}"
-                    ip -4 addr add "${i.ipAddress}/${mask}" dev "${i.name}"
-                    restart_network_setup=true
-                  else
-                    echo "skipping configuring interface"
-                  fi
                 ''
-              + optionalString (staticIPv6)
+              + flip concatMapStrings (ips) (ip:
+                let
+                  address = "${ip.address}/${toString ip.prefixLength}";
+                in
                 ''
-                  # Only do a flush/add if it's necessary.  This is
-                  # useful when the Nix store is accessed via this
-                  # interface (e.g. in a QEMU VM test).
-                  if ! ip -6 -o a show dev "${i.name}" | grep "${i.ipv6Address}/${toString i.ipv6prefixLength}"; then
-                    echo "configuring interface..."
-                    ip -6 addr flush dev "${i.name}"
-                    ip -6 addr add "${i.ipv6Address}/${toString i.ipv6prefixLength}" dev "${i.name}"
-                    restart_network_setup=true
-                  else
-                    echo "skipping configuring interface"
+                  echo "checking ip ${address}..."
+                  if ! echo "$curIps" | grep "${address}" >/dev/null 2>&1; then
+                    if out=$(ip addr add "${address}" dev "${i.name}" 2>&1); then
+                      echo "added ip ${address}..."
+                      restart_network_setup=true
+                    elif ! echo "$out" | grep "File exists" >/dev/null 2>&1; then
+                      echo "failed to add ${address}"
+                      exit 1
+                    fi
                   fi
-                ''
-              + optionalString (i.ipAddress != null || staticIPv6)
+                '')
+              + optionalString (ips != [ ])
                 ''
                   if [ restart_network_setup = true ]; then
                     # Ensure that the default gateway remains set.
@@ -608,7 +658,20 @@ in
                 ''
                   echo 1 > /proc/sys/net/ipv6/conf/${i.name}/proxy_ndp
                 '';
-          });
+            preStop =
+              ''
+                echo "releasing configured ip's..."
+              ''
+              + flip concatMapStrings (ips) (ip:
+                let
+                  address = "${ip.address}/${toString ip.prefixLength}";
+                in
+                ''
+                  echo -n "Deleting ${address}..."
+                  ip addr del "${address}" dev "${i.name}" >/dev/null 2>&1 || echo -n " Failed"
+                  echo ""
+                '');
+          };
 
         createTunDevice = i: nameValuePair "${i.name}"
           { description = "Virtual Network Interface ${i.name}";
diff --git a/nixos/modules/virtualisation/docker-image.nix b/nixos/modules/virtualisation/docker-image.nix
new file mode 100644
index 00000000000..13b861dc988
--- /dev/null
+++ b/nixos/modules/virtualisation/docker-image.nix
@@ -0,0 +1,67 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ pkgs2storeContents = l : map (x: { object = x; symlink = "none"; }) l;
+
+in {
+  # Create the tarball
+  system.build.dockerImage = import ../../lib/make-system-tarball.nix {
+    inherit (pkgs) stdenv perl xz pathsFromGraph;
+
+    contents = [];
+    extraArgs = "--owner=0";
+    storeContents = [
+      { object = config.system.build.toplevel + "/init";
+        symlink = "/bin/init";
+      }
+    ] ++ (pkgs2storeContents [ pkgs.stdenv ]);
+  };
+
+  boot.postBootCommands =
+    ''
+      # After booting, register the contents of the Nix store in the Nix
+      # database.
+      if [ -f /nix-path-registration ]; then
+        ${config.nix.package}/bin/nix-store --load-db < /nix-path-registration &&
+        rm /nix-path-registration
+      fi
+
+      # nixos-rebuild also requires a "system" profile and an
+      # /etc/NIXOS tag.
+      touch /etc/NIXOS
+      ${config.nix.package}/bin/nix-env -p /nix/var/nix/profiles/system --set /run/current-system
+
+      # Set virtualisation to docker
+      echo "docker" > /run/systemd/container 
+    '';
+
+
+  # docker image config
+  require = [
+    ../installer/cd-dvd/channel.nix
+    ../profiles/minimal.nix
+    ../profiles/clone-config.nix
+  ];
+
+  boot.isContainer = true;
+
+  # Iptables do not work in docker
+  networking.firewall.enable = false;
+
+  services.openssh.enable = true;
+
+  # Socket activated ssh presents problem in docker
+  services.openssh.startWhenNeeded = false;
+
+  # Allow the user to login as root without password
+  security.initialRootPassword = "";
+
+  # Some more help text.
+  services.mingetty.helpLine =
+    ''
+
+      Log in as "root" with an empty password.
+    '';
+}
diff --git a/nixos/modules/virtualisation/libvirtd.nix b/nixos/modules/virtualisation/libvirtd.nix
index d7d700d8841..318460f4c2c 100644
--- a/nixos/modules/virtualisation/libvirtd.nix
+++ b/nixos/modules/virtualisation/libvirtd.nix
@@ -7,6 +7,7 @@ with lib;
 let
 
   cfg = config.virtualisation.libvirtd;
+  vswitch = config.virtualisation.vswitch;
   configFile = pkgs.writeText "libvirtd.conf" ''
     unix_sock_group = "libvirtd"
     unix_sock_rw_perms = "0770"
@@ -56,6 +57,20 @@ in
           '';
       };
 
+    virtualisation.libvirtd.onShutdown =
+      mkOption {
+        type = types.enum ["shutdown" "suspend" ];
+        default = "suspend";
+        description =
+          ''
+            When shutting down / restarting the host what method should
+            be used to gracefully halt the guests. Setting to "shutdown"
+            will cause an ACPI shutdown of each guest. "suspend" will
+            attempt to save the state of the guests ready to restore on boot.
+          '';
+      };
+
+
   };
 
 
@@ -73,12 +88,17 @@ in
       { description = "Libvirt Virtual Machine Management Daemon";
 
         wantedBy = [ "multi-user.target" ];
-        after = [ "systemd-udev-settle.service" ];
+        after = [ "systemd-udev-settle.service" ]
+                ++ optional vswitch.enable "vswitchd.service";
 
-        path =
-          [ pkgs.bridge_utils pkgs.dmidecode pkgs.dnsmasq
+        path = [ 
+            pkgs.bridge_utils 
+            pkgs.dmidecode 
+            pkgs.dnsmasq
             pkgs.ebtables
-          ] ++ optional cfg.enableKVM pkgs.qemu_kvm;
+          ] 
+          ++ optional cfg.enableKVM pkgs.qemu_kvm
+          ++ optional vswitch.enable vswitch.package;
 
         preStart =
           ''
@@ -152,7 +172,12 @@ in
             ${pkgs.libvirt}/etc/rc.d/init.d/libvirt-guests start || true
           '';
 
-        postStop = "${pkgs.libvirt}/etc/rc.d/init.d/libvirt-guests stop";
+        postStop = 
+            ''
+            export PATH=${pkgs.gettext}/bin:$PATH
+            export ON_SHUTDOWN=${cfg.onShutdown}
+            ${pkgs.libvirt}/etc/rc.d/init.d/libvirt-guests stop
+            '';
 
         serviceConfig.Type = "oneshot";
         serviceConfig.RemainAfterExit = true;
diff --git a/nixos/modules/virtualisation/openvswitch.nix b/nixos/modules/virtualisation/openvswitch.nix
new file mode 100644
index 00000000000..c1579d94657
--- /dev/null
+++ b/nixos/modules/virtualisation/openvswitch.nix
@@ -0,0 +1,117 @@
+# Systemd services for openvswitch
+
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.virtualisation.vswitch;
+
+in
+
+{
+
+  options = {
+
+    virtualisation.vswitch.enable = mkOption {
+      type = types.bool;
+      default = false;
+      description =
+        ''
+        Enable Open vSwitch. A configuration 
+        daemon (ovs-server) will be started.
+        '';
+    };
+
+
+    virtualisation.vswitch.package = mkOption {
+      type = types.package;
+      default = pkgs.openvswitch;
+      description =
+        ''
+        Open vSwitch package to use.
+        '';
+    };
+
+  };
+
+  config = mkIf cfg.enable (let 
+
+    # Where the communication sockets live
+    runDir = "/var/run/openvswitch";
+
+    # Where the config database live (can't be in nix-store)
+    stateDir = "/var/db/openvswitch";
+
+    # The path to the an initialized version of the database 
+    db = pkgs.stdenv.mkDerivation {
+      name = "vswitch.db";
+      unpackPhase = "true";
+      buildPhase = "true";
+      buildInputs = with pkgs; [
+        cfg.package
+      ];
+      installPhase = 
+        ''
+        ensureDir $out/
+        '';
+    };
+
+  in {
+
+    environment.systemPackages = [ cfg.package ]; 
+
+    boot.kernelModules = [ "tun" "openvswitch" ];
+
+    boot.extraModulePackages = [ cfg.package ];
+
+    systemd.services.ovsdb = {
+      description = "Open_vSwitch Database Server";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "systemd-udev-settle.service" ];
+      wants = [ "vswitchd.service" ];
+      path = [ cfg.package ];
+      restartTriggers = [ db cfg.package ];
+      # Create the config database
+      preStart = 
+        ''
+        mkdir -p ${runDir}
+        mkdir -p /var/db/openvswitch
+        chmod +w /var/db/openvswitch
+        if [[ ! -e /var/db/openvswitch/conf.db ]]; then
+          ${cfg.package}/bin/ovsdb-tool create \
+            "/var/db/openvswitch/conf.db" \
+            "${cfg.package}/share/openvswitch/vswitch.ovsschema"
+        fi
+        chmod -R +w /var/db/openvswitch
+        '';
+      serviceConfig.ExecStart = 
+        ''
+        ${cfg.package}/bin/ovsdb-server \
+          --remote=punix:${runDir}/db.sock \
+          --private-key=db:Open_vSwitch,SSL,private_key \
+          --certificate=db:Open_vSwitch,SSL,certificate \
+          --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert \
+          --unixctl=ovsdb.ctl.sock \
+          /var/db/openvswitch/conf.db
+        '';       
+      serviceConfig.Restart = "always";
+      serviceConfig.RestartSec = 3;
+      postStart =
+        ''
+        ${cfg.package}/bin/ovs-vsctl --timeout 3 --retry --no-wait init
+        '';
+
+    };
+
+    systemd.services.vswitchd = {
+      description = "Open_vSwitch Daemon";
+      bindsTo = [ "ovsdb.service" ];
+      after = [ "ovsdb.service" ];
+      path = [ cfg.package ];
+      serviceConfig.ExecStart = ''${cfg.package}/bin/ovs-vswitchd'';
+    };
+
+  });
+
+}
diff --git a/nixos/release-combined.nix b/nixos/release-combined.nix
index 23348e1d089..dae3b9210a8 100644
--- a/nixos/release-combined.nix
+++ b/nixos/release-combined.nix
@@ -52,10 +52,6 @@ in rec {
         (all nixos.tests.installer.lvm)
         (all nixos.tests.installer.separateBoot)
         (all nixos.tests.installer.simple)
-        (all nixos.tests.installer.simpleLabels)
-        (all nixos.tests.installer.simpleProvided)
-        (all nixos.tests.installer.btrfsSimple)
-        (all nixos.tests.installer.btrfsSubvols)
         (all nixos.tests.ipv6)
         (all nixos.tests.kde4)
         (all nixos.tests.login)
diff --git a/nixos/release.nix b/nixos/release.nix
index e5a4e7337ab..e2b93640f91 100644
--- a/nixos/release.nix
+++ b/nixos/release.nix
@@ -222,11 +222,16 @@ in rec {
   tests.firefox = callTest tests/firefox.nix {};
   tests.firewall = callTest tests/firewall.nix {};
   tests.gnome3 = callTest tests/gnome3.nix {};
-  tests.installer = with pkgs.lib;
-    let installer = import tests/installer.nix; in
-    flip mapAttrs (installer { }) (name: _:
-      forAllSystems (system: (installer { system = system; }).${name}.test)
-    );
+  tests.installer.efi = forAllSystems (system: (import tests/installer.nix { inherit system; }).efi.test);
+  tests.installer.grub1 = forAllSystems (system: (import tests/installer.nix { inherit system; }).grub1.test);
+  tests.installer.lvm = forAllSystems (system: (import tests/installer.nix { inherit system; }).lvm.test);
+  tests.installer.rebuildCD = forAllSystems (system: (import tests/installer.nix { inherit system; }).rebuildCD.test);
+  tests.installer.separateBoot = forAllSystems (system: (import tests/installer.nix { inherit system; }).separateBoot.test);
+  tests.installer.simple = forAllSystems (system: (import tests/installer.nix { inherit system; }).simple.test);
+  tests.installer.simpleLabels = forAllSystems (system: (import tests/installer.nix { inherit system; }).simpleLabels.test);
+  tests.installer.simpleProvided = forAllSystems (system: (import tests/installer.nix { inherit system; }).simpleProvided.test);
+  tests.installer.btrfsSimple = forAllSystems (system: (import tests/installer.nix { inherit system; }).btrfsSimple.test);
+  #tests.installer.btrfsSubvols = forAllSystems (system: (import tests/installer.nix { inherit system; }).btrfsSubvols.test);
   tests.influxdb = callTest tests/influxdb.nix {};
   tests.ipv6 = callTest tests/ipv6.nix {};
   tests.jenkins = callTest tests/jenkins.nix {};
diff --git a/nixos/tests/bittorrent.nix b/nixos/tests/bittorrent.nix
index 002e012f65f..b12a861f723 100644
--- a/nixos/tests/bittorrent.nix
+++ b/nixos/tests/bittorrent.nix
@@ -16,7 +16,7 @@ let
   miniupnpdConf = nodes: pkgs.writeText "miniupnpd.conf"
     ''
       ext_ifname=eth1
-      listening_ip=${nodes.router.config.networking.interfaces.eth2.ipAddress}/24
+      listening_ip=${(pkgs.lib.head nodes.router.config.networking.interfaces.eth2.ip4).address}/24
       allow 1024-65535 192.168.2.0/24 1024-65535
     '';
 
@@ -53,7 +53,7 @@ in
         { environment.systemPackages = [ pkgs.transmission ];
           virtualisation.vlans = [ 2 ];
           networking.defaultGateway =
-            nodes.router.config.networking.interfaces.eth2.ipAddress;
+            (pkgs.lib.head nodes.router.config.networking.interfaces.eth2.ip4).address;
           networking.firewall.enable = false;
         };
 
@@ -81,7 +81,7 @@ in
       # Create the torrent.
       $tracker->succeed("mkdir /tmp/data");
       $tracker->succeed("cp ${file} /tmp/data/test.tar.bz2");
-      $tracker->succeed("transmission-create /tmp/data/test.tar.bz2 -t http://${nodes.tracker.config.networking.interfaces.eth1.ipAddress}:6969/announce -o /tmp/test.torrent");
+      $tracker->succeed("transmission-create /tmp/data/test.tar.bz2 -t http://${(pkgs.lib.head nodes.tracker.config.networking.interfaces.eth1.ip4).address}:6969/announce -o /tmp/test.torrent");
       $tracker->succeed("chmod 644 /tmp/test.torrent");
 
       # Start the tracker.  !!! use a less crappy tracker
diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix
index ef11fcb1001..6ee52fd63d8 100644
--- a/nixos/tests/installer.nix
+++ b/nixos/tests/installer.nix
@@ -35,8 +35,8 @@ let
 
 
   # The configuration to install.
-  makeConfig = { testChannel, useEFI, grubVersion, grubDevice, grubIdentifier }:
-    pkgs.writeText "configuration.nix" ''
+  makeConfig = { testChannel, useEFI, grubVersion, grubDevice }: pkgs.writeText "configuration.nix"
+    ''
       { config, pkgs, modulesPath, ... }:
 
       { imports =
@@ -54,7 +54,6 @@ let
           ''}
           boot.loader.grub.device = "${grubDevice}";
           boot.loader.grub.extraConfig = "serial; terminal_output.serial";
-          boot.loader.grub.fsIdentifier = "${grubIdentifier}";
         ''}
 
         environment.systemPackages = [ ${optionalString testChannel "pkgs.rlwrap"} ];
@@ -94,7 +93,7 @@ let
   # disk, and then reboot from the hard disk.  It's parameterized with
   # a test script fragment `createPartitions', which must create
   # partitions and filesystems.
-  testScriptFun = { createPartitions, testChannel, useEFI, grubVersion, grubDevice, grubIdentifier }:
+  testScriptFun = { createPartitions, testChannel, useEFI, grubVersion, grubDevice }:
     let
       # FIXME: OVMF doesn't boot from virtio http://www.mail-archive.com/edk2-devel@lists.sourceforge.net/msg01501.html
       iface = if useEFI || grubVersion == 1 then "scsi" else "virtio";
@@ -162,7 +161,7 @@ let
       $machine->succeed("cat /mnt/etc/nixos/hardware-configuration.nix >&2");
 
       $machine->copyFileFromHost(
-          "${ makeConfig { inherit testChannel useEFI grubVersion grubDevice grubIdentifier; } }",
+          "${ makeConfig { inherit testChannel useEFI grubVersion grubDevice; } }",
           "/mnt/etc/nixos/configuration.nix");
 
       # Perform the installation.
@@ -217,13 +216,13 @@ let
 
 
   makeInstallerTest = name:
-    { createPartitions, testChannel ? false, useEFI ? false, grubVersion ? 2, grubDevice ? "/dev/vda", grubIdentifier ? "uuid" }:
+    { createPartitions, testChannel ? false, useEFI ? false, grubVersion ? 2, grubDevice ? "/dev/vda" }:
     makeTest {
       inherit iso;
       name = "installer-" + name;
       nodes = if testChannel then { inherit webserver; } else { };
       testScript = testScriptFun {
-        inherit createPartitions testChannel useEFI grubVersion grubDevice grubIdentifier;
+        inherit createPartitions testChannel useEFI grubVersion grubDevice;
       };
     };
 
@@ -397,7 +396,7 @@ in {
     };
 
   # Test using labels to identify volumes in grub
-  simpleLabels = makeInstallerTest {
+  simpleLabels = makeInstallerTest "simpleLabels" {
     createPartitions = ''
       $machine->succeed(
         "sgdisk -Z /dev/vda",
@@ -413,7 +412,7 @@ in {
 
   # Test using the provided disk name within grub
   # TODO: Fix udev so the symlinks are unneeded in /dev/disks
-  simpleProvided = makeInstallerTest {
+  simpleProvided = makeInstallerTest "simpleProvided" {
     createPartitions = ''
       my $UUID = "\$(blkid -s UUID -o value /dev/vda2)";
       $machine->succeed(
@@ -436,7 +435,7 @@ in {
   };
 
   # Simple btrfs grub testing
-  btrfsSimple = makeInstallerTest {
+  btrfsSimple = makeInstallerTest "btrfsSimple" {
     createPartitions = ''
       $machine->succeed(
         "sgdisk -Z /dev/vda",
@@ -450,7 +449,7 @@ in {
   };
 
   # Test to see if we can detect /boot and /nix on subvolumes
-  btrfsSubvols = makeInstallerTest {
+  btrfsSubvols = makeInstallerTest "btrfsSubvols" {
     createPartitions = ''
       $machine->succeed(
         "sgdisk -Z /dev/vda",
diff --git a/nixos/tests/nat.nix b/nixos/tests/nat.nix
index 5fdcc0e97ca..87ed974edad 100644
--- a/nixos/tests/nat.nix
+++ b/nixos/tests/nat.nix
@@ -13,7 +13,7 @@ import ./make-test.nix {
         { virtualisation.vlans = [ 1 ];
           networking.firewall.allowPing = true;
           networking.defaultGateway =
-            nodes.router.config.networking.interfaces.eth2.ipAddress;
+            (pkgs.lib.head nodes.router.config.networking.interfaces.eth2.ip4).address;
         };
 
       router =
diff --git a/pkgs/applications/audio/audacious/default.nix b/pkgs/applications/audio/audacious/default.nix
index 409a831727b..49b02f46e9b 100644
--- a/pkgs/applications/audio/audacious/default.nix
+++ b/pkgs/applications/audio/audacious/default.nix
@@ -1,28 +1,29 @@
 { stdenv, fetchurl, pkgconfig, glib, gtk3, libmowgli, libmcs
 , gettext, dbus_glib, libxml2, libmad, xlibs, alsaLib, libogg
 , libvorbis, libcdio, libcddb, flac, ffmpeg, makeWrapper
+, mpg123, neon, faad2
 }:
 
 let
-  version = "3.4.3";
+  version = "3.5.1";
 in
 stdenv.mkDerivation {
   name = "audacious-${version}";
 
   src = fetchurl {
     url = "http://distfiles.audacious-media-player.org/audacious-${version}.tar.bz2";
-    sha256 = "04lzwdr1lx6ghbfxzygvnbmdl420w6rm453ds5lyb0hlvzs58d0q";
+    sha256 = "01wmlvpp540gdjw759wif3byh98h3b3q6f5wawzp0b0ivqd0wf6z";
   };
 
   pluginsSrc = fetchurl {
     url = "http://distfiles.audacious-media-player.org/audacious-plugins-${version}.tar.bz2";
-    sha256 = "00r88q9fs9a0gicdmk2svcans7igcqgacrw303a5bn44is7pmrmy";
+    sha256 = "09lyvi15hbn3pvb2izyz2bm4021917mhcdrwxrn3q3sjvx337np6";
   };
 
   buildInputs =
     [ gettext pkgconfig glib gtk3 libmowgli libmcs libxml2 dbus_glib
       libmad xlibs.libXcomposite libogg libvorbis flac alsaLib libcdio
-      libcddb ffmpeg makeWrapper
+      libcddb ffmpeg makeWrapper mpg123 neon faad2
     ];
 
   # Here we build bouth audacious and audacious-plugins in one
diff --git a/pkgs/applications/audio/guitarix/default.nix b/pkgs/applications/audio/guitarix/default.nix
index 777c0ddb2e3..e593ddf41e6 100644
--- a/pkgs/applications/audio/guitarix/default.nix
+++ b/pkgs/applications/audio/guitarix/default.nix
@@ -1,19 +1,19 @@
-{ stdenv, fetchurl, avahi, boost, fftw, gettext, glib, glibmm, gtk
-, gtkmm, intltool, jack2, ladspaH, librdf, libsndfile, lv2
-, pkgconfig, python }:
+{ stdenv, fetchurl, avahi, boost, eigen, fftw, gettext, glib, glibmm, gtk
+, gtkmm, intltool, jack2, ladspaH, librdf, libsndfile, lilv, lv2
+, pkgconfig, python, serd, sord, sratom }:
 
 stdenv.mkDerivation rec {
   name = "guitarix-${version}";
-  version = "0.28.3";
+  version = "0.30.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.bz2";
-    sha256 = "0ks5avylyicqfj9l1wf4gj62i8m6is2jmp0h11h5l2wbg3xiwxjd";
+    sha256 = "0fbapd1pcixzlqxgzb2s2q1c64g9z9lf4hz3vy73z55cnpk72vdx";
   };
 
   buildInputs = [
-    avahi boost fftw gettext glib glibmm gtk gtkmm intltool jack2
-    ladspaH librdf libsndfile lv2 pkgconfig python
+    avahi boost eigen fftw gettext glib glibmm gtk gtkmm intltool jack2
+    ladspaH librdf libsndfile lilv lv2 pkgconfig python serd sord sratom
   ];
 
   configurePhase = "python waf configure --prefix=$out";
diff --git a/pkgs/applications/audio/hydrogen/default.nix b/pkgs/applications/audio/hydrogen/default.nix
index 10f15f5882c..72e546246d5 100644
--- a/pkgs/applications/audio/hydrogen/default.nix
+++ b/pkgs/applications/audio/hydrogen/default.nix
@@ -1,35 +1,19 @@
-{ stdenv, fetchurl, alsaLib, boost, glib, jack2, ladspaPlugins
-, libarchive, liblrdf , libsndfile, pkgconfig, qt4, scons, subversion }:
+{ stdenv, fetchurl, alsaLib, boost, cmake, glib, jack2, libarchive
+, liblrdf, libsndfile, pkgconfig, qt4 }:
 
 stdenv.mkDerivation rec {
-  version = "0.9.5.1";
+  version = "0.9.6";
   name = "hydrogen-${version}";
 
   src = fetchurl {
-    url = "mirror://sourceforge/hydrogen/hydrogen-${version}.tar.gz";
-    sha256 = "1fvyp6gfzcqcc90dmaqbm11p272zczz5pfz1z4lj33nfr7z0bqgb";
+    url = "https://github.com/hydrogen-music/hydrogen/archive/${version}.tar.gz";
+    sha256 = "1z7j8aq158mp41iv78j0w6fyx98y1y51z592b4x5hkvicabgck5w";
   };
 
   buildInputs = [ 
-    alsaLib boost glib jack2 ladspaPlugins libarchive liblrdf
-    libsndfile pkgconfig qt4 scons subversion
+    alsaLib boost cmake glib jack2 libarchive liblrdf libsndfile pkgconfig qt4
   ];
 
-  patches = [ ./scons-env.patch ];
-
-  postPatch = ''
-    sed -e 's#/usr/lib/ladspa#${ladspaPlugins}/lib/ladspa#' -i libs/hydrogen/src/preferences.cpp
-    sed '/\/usr/d' -i libs/hydrogen/src/preferences.cpp
-    sed "s#pkg_ver.rstrip().split('.')#pkg_ver.rstrip().split('.')[:3]#" -i Sconstruct
-  '';
-
-  # why doesn't scons find librdf?
-  buildPhase = ''
-    scons prefix=$out libarchive=1 lrdf=0 install
-  '';
-
-  installPhase = ":";
-
   meta = with stdenv.lib; {
     description = "Advanced drum machine";
     homepage = http://www.hydrogen-music.org;
diff --git a/pkgs/applications/audio/hydrogen/scons-env.patch b/pkgs/applications/audio/hydrogen/scons-env.patch
deleted file mode 100644
index ebc17f67872..00000000000
--- a/pkgs/applications/audio/hydrogen/scons-env.patch
+++ /dev/null
@@ -1,28 +0,0 @@
---- hydrogen-0.9.5/Sconstruct	2011-03-15 13:22:35.000000000 +0100
-+++ hydrogen-0.9.5/Sconstruct	2011-04-17 16:06:54.000000000 +0200
-@@ -178,7 +178,7 @@
- 
- 	includes.append( "libs/hydrogen/include" )
- 	
--	env = Environment( options = opts ) 
-+	env = Environment( options = opts, ENV = os.environ ) 
- 
- 
- 	#location of qt4.py
-@@ -298,7 +298,6 @@
- 
-         for N in glob.glob('./data/i18n/hydrogen.*'):
-             env.Alias(target="install", source=env.Install(dir= env['DESTDIR'] + env['prefix'] + '/share/hydrogen/data/i18n', source=N))
--	env.Alias(target="install", source=env.Install(dir= env['DESTDIR'] + env['prefix'] + '/share/hydrogen/data', source="./data/img"))
- 
- 	#add every img in ./data/img to the install list. 
- 	os.path.walk("./data/img/",install_images,env) 
-@@ -379,7 +379,7 @@
- 
- includes, a , b = get_platform_flags( opts )
- 
--env = Environment(options = opts, CPPPATH = includes)
-+env = Environment(options = opts, ENV = os.environ)
- 
- 
- Help(opts.GenerateHelpText(env))
diff --git a/pkgs/applications/audio/jalv/default.nix b/pkgs/applications/audio/jalv/default.nix
index 70ef5bdec5c..bf01fe1a935 100644
--- a/pkgs/applications/audio/jalv/default.nix
+++ b/pkgs/applications/audio/jalv/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation  rec {
   name = "jalv-${version}";
-  version = "1.4.4";
+  version = "1.4.6";
 
   src = fetchurl {
     url = "http://download.drobilla.net/${name}.tar.bz2";
-    sha256 = "1iql1r52rmf87q6jkxhcxa3lpq7idzzg55ma91wphywyvh29q7lf";
+    sha256 = "1f1hcq74n3ziw8bk97mn5a1vgw028dxikv3fchaxd430pbbhqgl9";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/audio/lmms/default.nix b/pkgs/applications/audio/lmms/default.nix
index dd0649811bb..ee47d607c2b 100644
--- a/pkgs/applications/audio/lmms/default.nix
+++ b/pkgs/applications/audio/lmms/default.nix
@@ -1,24 +1,22 @@
-{ stdenv, fetchurl, SDL, alsaLib, cmake, fftwSinglePrec, jack2, libogg
-, libsamplerate, libsndfile, pkgconfig, pulseaudio, qt4, freetype
+{ stdenv, fetchurl, SDL, alsaLib, cmake, fftwSinglePrec, fluidsynth
+, fltk13, jack2, libvorbis , libsamplerate, libsndfile, pkgconfig
+, pulseaudio, qt4, freetype
 }:
 
 stdenv.mkDerivation  rec {
   name = "lmms-${version}";
-  version = "0.4.15";
+  version = "1.0.3";
 
   src = fetchurl {
-    url = "mirror://sourceforge/lmms/${name}.tar.bz2";
-    sha256 = "02q2gbsqwk3hf9kvzz58a5bxmlb4cfr2mzy41wdvbxxdm2pcl101";
+    url = "https://github.com/LMMS/lmms/archive/v${version}.tar.gz";
+    sha256 = "191mfld3gspnxlgwcszp9kls58kdwrplj0rfw4zqsz90zdbsjnx3";
   };
 
   buildInputs = [
-    SDL alsaLib cmake fftwSinglePrec jack2 libogg libsamplerate
-    libsndfile pkgconfig pulseaudio qt4
+    SDL alsaLib cmake fftwSinglePrec fltk13 fluidsynth jack2
+    libsamplerate libsndfile libvorbis pkgconfig pulseaudio qt4
   ];
 
-  # work around broken build system of 0.4.*
-  NIX_CFLAGS_COMPILE = "-I${freetype}/include/freetype2";
-
   enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/audio/petrifoo/default.nix b/pkgs/applications/audio/petrifoo/default.nix
index 152ee442761..197a0aa1bbe 100644
--- a/pkgs/applications/audio/petrifoo/default.nix
+++ b/pkgs/applications/audio/petrifoo/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchgit, alsaLib, cmake, gtk, jack2, libgnomecanvas
+{ stdenv, fetchurl, alsaLib, cmake, gtk, jack2, libgnomecanvas
 , libpthreadstubs, libsamplerate, libsndfile, libtool, libxml2
 , pkgconfig }:
 
 stdenv.mkDerivation  rec {
-  name = "petri-foo";
+  name = "petri-foo-${version}";
+  version = "0.1.87";
 
-  src = fetchgit {
-    url = https://github.com/licnep/Petri-Foo.git;
-    rev = "eef3b6efebe842d2fa18ed32b881fea4562b84e0";
-    sha256 = "a20c3f1a633500a65c099c528c7dc2405daa60738b64d881bb8f2036ae59913c";
+  src = fetchurl {
+    url =  "mirror://sourceforge/petri-foo/${name}.tar.bz2";
+    sha256 = "0b25iicgn8c42487fdw32ycfrll1pm2zjgy5djvgw6mfcaa4gizh";
   };
 
   buildInputs =
@@ -16,8 +16,6 @@ stdenv.mkDerivation  rec {
      libsamplerate libsndfile libtool libxml2 pkgconfig
    ];
 
-  dontUseCmakeBuildDir=true;
-
   meta = with stdenv.lib; {
     description = "MIDI controllable audio sampler";
     longDescription = "a fork of Specimen";
diff --git a/pkgs/applications/audio/pianobar/default.nix b/pkgs/applications/audio/pianobar/default.nix
index a9f4b02fa08..a91f25126c1 100644
--- a/pkgs/applications/audio/pianobar/default.nix
+++ b/pkgs/applications/audio/pianobar/default.nix
@@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
     description = "A console front-end for Pandora.com";
     homepage = "http://6xq.net/projects/pianobar/";
     platforms = stdenv.lib.platforms.linux;
-    license = stdenv.lib.licenses.unfree;
+    license = stdenv.lib.licenses.mit; # expat version
   };
 }
diff --git a/pkgs/applications/audio/zynaddsubfx/default.nix b/pkgs/applications/audio/zynaddsubfx/default.nix
index a5aa7d5c8d9..3a89b406742 100644
--- a/pkgs/applications/audio/zynaddsubfx/default.nix
+++ b/pkgs/applications/audio/zynaddsubfx/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchurl, alsaLib, cmake, jack2, fftw, fltk13, minixml
-, pkgconfig, zlib
+{ stdenv, fetchurl, alsaLib, cmake, jack2, fftw, fltk13, libjpeg
+, minixml, pkgconfig, zlib
 }:
 
 stdenv.mkDerivation  rec {
   name = "zynaddsubfx-${version}";
-  version = "2.4.3";
+  version = "2.4.4";
 
   src = fetchurl {
-    url = "mirror://sourceforge/zynaddsubfx/ZynAddSubFX-${version}.tar.bz2";
-    sha256 = "0kgmwyh4rhyqdfrdzhbzjjk2hzggkp9c4aac6sy3xv6cc1b5jjxq";
+    url = "mirror://sourceforge/zynaddsubfx/zynaddsubfx-${version}.tar.xz";
+    sha256 = "15byz08p5maf3v8l1zz11xan6s0qcfasjf1b81xc8rffh13x5f53";
   };
 
-  buildInputs = [ alsaLib jack2 fftw fltk13 minixml zlib ];
+  buildInputs = [ alsaLib jack2 fftw fltk13 libjpeg minixml zlib ];
   nativeBuildInputs = [ cmake pkgconfig ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/editors/wxhexeditor/default.nix b/pkgs/applications/editors/wxhexeditor/default.nix
new file mode 100644
index 00000000000..de423987c02
--- /dev/null
+++ b/pkgs/applications/editors/wxhexeditor/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, wxGTK, autoconf, automake, libtool, python, gettext, bash }:
+
+stdenv.mkDerivation rec {
+  name = "wxHexEditor-${version}";
+  version = "v0.22";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/wxhexeditor/${name}-src.tar.bz2";
+    sha256 = "15ir038g4lyw1q5bsay974hvj0nkg2yd9kccwxz808cd45fp411w";
+  };
+
+  buildInputs = [ wxGTK autoconf automake libtool python gettext ];
+
+  patchPhase = ''
+    substituteInPlace Makefile --replace "/usr/local" "$out"
+    substituteInPlace Makefile --replace "mhash; ./configure" "mhash; ./configure --prefix=$out"
+    substituteInPlace udis86/autogen.sh --replace "/bin/bash" "${bash}/bin/bash"
+  '';
+
+  buildPhase = ''
+    make OPTFLAGS="-fopenmp"
+
+  '';
+
+  meta = {
+    description = "Hex Editor / Disk Editor for Huge Files or Devices";
+    longDescription = ''
+      This is not an ordinary hex editor, but could work as low level disk editor too.
+      If you have problems with your HDD or partition, you can recover your data from HDD or
+      from partition via editing sectors in raw hex.
+      You can edit your partition tables or you could recover files from File System by hand
+      with help of wxHexEditor.
+      Or you might want to analyze your big binary files, partitions, devices... If you need
+      a good reverse engineer tool like a good hex editor, you welcome.
+      wxHexEditor could edit HDD/SDD disk devices or partitions in raw up to exabyte sizes.
+    '';
+    homepage = "http://www.wxhexeditor.org/";
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/graphics/k3d/default.nix b/pkgs/applications/graphics/k3d/default.nix
index 35f3bed866d..6a66685e42b 100644
--- a/pkgs/applications/graphics/k3d/default.nix
+++ b/pkgs/applications/graphics/k3d/default.nix
@@ -1,7 +1,7 @@
 {stdenv, fetchurl
 , cmake, mesa, zlib, python, expat, libxml2, libsigcxx, libuuid, freetype
 , libpng, boost, doxygen, cairomm, pkgconfig, imagemagick, libjpeg, libtiff
-, gettext, intltool, perl, gtkmm, glibmm, gtkglext
+, gettext, intltool, perl, gtkmm, glibmm, gtkglext, pangox_compat, libXmu
 }:
 
 stdenv.mkDerivation rec {
@@ -13,11 +13,8 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
-    # debian package source
-    ./disable_mutable_in_boost_gil.patch
     ./k3d_gtkmm224.patch
-    # http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/media-gfx/k3d/files/k3d-0.7.11.0-libpng14.patch
-    ./k3d-0.7.11.0-libpng14.patch
+    ./libpng-1.4.patch
   ];
 
   preConfigure = ''
@@ -29,10 +26,12 @@ stdenv.mkDerivation rec {
      cmake mesa zlib python expat libxml2 libsigcxx libuuid freetype libpng
      boost doxygen cairomm pkgconfig imagemagick libjpeg libtiff gettext
      intltool perl
-     gtkmm glibmm gtkglext
+     gtkmm glibmm gtkglext pangox_compat libXmu
     ];
 
-  doCheck = false;
+  #doCheck = false;
+
+  enableParallelBuilding = true;
 
   meta = {
     description = "A 3D editor with support for procedural editing";
diff --git a/pkgs/applications/graphics/k3d/disable_mutable_in_boost_gil.patch b/pkgs/applications/graphics/k3d/disable_mutable_in_boost_gil.patch
deleted file mode 100644
index 1774328c618..00000000000
--- a/pkgs/applications/graphics/k3d/disable_mutable_in_boost_gil.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/k3dsdk/gil/boost/gil/extension/dynamic_image/apply_operation_base.hpp
-+++ b/k3dsdk/gil/boost/gil/extension/dynamic_image/apply_operation_base.hpp
-@@ -114,7 +114,7 @@
-     template <typename T2, typename Op>
-     struct reduce_bind1 {
-         const T2& _t2;
--        mutable Op&  _op;
-+        Op&  _op;
- 
-         typedef typename Op::result_type result_type;
- 
-@@ -127,7 +127,7 @@
-     struct reduce_bind2 {
-         const Bits1& _bits1;
-         std::size_t _index1;
--        mutable Op&  _op;
-+        Op&  _op;
- 
-         typedef typename Op::result_type result_type;
- 
diff --git a/pkgs/applications/graphics/k3d/k3d-0.7.11.0-libpng14.patch b/pkgs/applications/graphics/k3d/libpng-1.4.patch
index b54168227b4..e67236617af 100644
--- a/pkgs/applications/graphics/k3d/k3d-0.7.11.0-libpng14.patch
+++ b/pkgs/applications/graphics/k3d/libpng-1.4.patch
@@ -1,54 +1,53 @@
-diff -ur k3d-source-0.7.11.0.orig/k3dsdk/gil/boost/gil/extension/io/png_io_private.hpp k3d-source-0.7.11.0/k3dsdk/gil/boost/gil/extension/io/png_io_private.hpp
---- k3d-source-0.7.11.0.orig/k3dsdk/gil/boost/gil/extension/io/png_io_private.hpp	2009-03-19 22:28:53.000000000 +0200
-+++ k3d-source-0.7.11.0/k3dsdk/gil/boost/gil/extension/io/png_io_private.hpp	2010-05-12 12:21:50.000000000 +0300
+--- k3d-source-0.8.0.1/k3dsdk/gil/boost/gil/extension/io/png_io_private.hpp	2010-04-18 13:49:33.000000000 +0800
++++ k3d-source-0.8.0.1-patched/k3dsdk/gil/boost/gil/extension/io/png_io_private.hpp	2010-06-10 21:17:51.555920268 +0800
 @@ -148,12 +148,12 @@
-         // allocate/initialize the image information data
-         _info_ptr = png_create_info_struct(_png_ptr);
-         if (_info_ptr == NULL) {
--            png_destroy_read_struct(&_png_ptr,png_infopp_NULL,png_infopp_NULL);
-+            png_destroy_read_struct(&_png_ptr,NULL,NULL);
-             io_error("png_get_file_size: fail to call png_create_info_struct()");
-         }
-         if (setjmp(png_jmpbuf(_png_ptr))) {
-             //free all of the memory associated with the png_ptr and info_ptr
--            png_destroy_read_struct(&_png_ptr, &_info_ptr, png_infopp_NULL);
-+            png_destroy_read_struct(&_png_ptr, &_info_ptr, NULL);
-             io_error("png_get_file_size: fail to call setjmp()");
-         }
-         png_init_io(_png_ptr, get());
+         // allocate/initialize the image information data

+         _info_ptr = png_create_info_struct(_png_ptr);

+         if (_info_ptr == NULL) {

+-            png_destroy_read_struct(&_png_ptr,png_infopp_NULL,png_infopp_NULL);

++			png_destroy_read_struct(&_png_ptr,NULL,NULL);

+             io_error("png_get_file_size: fail to call png_create_info_struct()");

+         }

+         if (setjmp(png_jmpbuf(_png_ptr))) {

+             //free all of the memory associated with the png_ptr and info_ptr

+-            png_destroy_read_struct(&_png_ptr, &_info_ptr, png_infopp_NULL);

++			png_destroy_read_struct(&_png_ptr, &_info_ptr, NULL);

+             io_error("png_get_file_size: fail to call setjmp()");

+         }

+         png_init_io(_png_ptr, get());

 @@ -165,7 +165,7 @@
-     png_reader(const char* filename) : file_mgr(filename, "rb") { init(); }
- 
-     ~png_reader() {
--        png_destroy_read_struct(&_png_ptr,&_info_ptr,png_infopp_NULL);
-+        png_destroy_read_struct(&_png_ptr,&_info_ptr,NULL);
-     }
-     point2<std::ptrdiff_t> get_dimensions() {
-         return point2<std::ptrdiff_t>(png_get_image_width(_png_ptr,_info_ptr),
+     png_reader(const char* filename) : file_mgr(filename, "rb") { init(); }

+ 

+     ~png_reader() {

+-        png_destroy_read_struct(&_png_ptr,&_info_ptr,png_infopp_NULL);

++		png_destroy_read_struct(&_png_ptr,&_info_ptr,NULL); 

+     }

+     point2<std::ptrdiff_t> get_dimensions() {

+         return point2<std::ptrdiff_t>(png_get_image_width(_png_ptr,_info_ptr),

 @@ -177,7 +177,7 @@
-         int bit_depth, color_type, interlace_type;
-         png_get_IHDR(_png_ptr, _info_ptr,
-                      &width, &height,&bit_depth,&color_type,&interlace_type,
--                     int_p_NULL, int_p_NULL);
-+                     (int *) NULL, (int *) NULL);
-         io_error_if(((png_uint_32)view.width()!=width || (png_uint_32)view.height()!= height),
-                     "png_read_view: input view size does not match PNG file size");
-         
+         int bit_depth, color_type, interlace_type;

+         png_get_IHDR(_png_ptr, _info_ptr,

+                      &width, &height,&bit_depth,&color_type,&interlace_type,

+-                     int_p_NULL, int_p_NULL);

++					 (int *) NULL, (int *) NULL);

+         io_error_if(((png_uint_32)view.width()!=width || (png_uint_32)view.height()!= height),

+                     "png_read_view: input view size does not match PNG file size");

+         

 @@ -219,7 +219,7 @@
-         int bit_depth, color_type, interlace_type;
-         png_get_IHDR(_png_ptr, _info_ptr,
-                      &width, &height,&bit_depth,&color_type,&interlace_type,
--                     int_p_NULL, int_p_NULL);
-+                     (int *) NULL, (int *) NULL);
-         io_error_if(((png_uint_32)view.width()!=width || (png_uint_32)view.height()!= height),
-                     "png_reader_color_convert::apply(): input view size does not match PNG file size");
-         switch (color_type) {
+         int bit_depth, color_type, interlace_type;

+         png_get_IHDR(_png_ptr, _info_ptr,

+                      &width, &height,&bit_depth,&color_type,&interlace_type,

+-                     int_p_NULL, int_p_NULL);

++					 (int *) NULL, (int *) NULL);

+         io_error_if(((png_uint_32)view.width()!=width || (png_uint_32)view.height()!= height),

+                     "png_reader_color_convert::apply(): input view size does not match PNG file size");

+         switch (color_type) {

 @@ -308,7 +308,7 @@
-         io_error_if(!_png_ptr,"png_write_initialize: fail to call png_create_write_struct()");
-         _info_ptr = png_create_info_struct(_png_ptr);
-         if (!_info_ptr) {
--            png_destroy_write_struct(&_png_ptr,png_infopp_NULL);
-+            png_destroy_write_struct(&_png_ptr,NULL);
-             io_error("png_write_initialize: fail to call png_create_info_struct()");
-         }
-         if (setjmp(png_jmpbuf(_png_ptr))) {
+         io_error_if(!_png_ptr,"png_write_initialize: fail to call png_create_write_struct()");

+         _info_ptr = png_create_info_struct(_png_ptr);

+         if (!_info_ptr) {

+-            png_destroy_write_struct(&_png_ptr,png_infopp_NULL);

++			png_destroy_write_struct(&_png_ptr,NULL);

+             io_error("png_write_initialize: fail to call png_create_info_struct()");

+         }

+         if (setjmp(png_jmpbuf(_png_ptr))) {

diff --git a/pkgs/applications/graphics/mcomix/default.nix b/pkgs/applications/graphics/mcomix/default.nix
index cc1fe8c3a22..53c564beec7 100644
--- a/pkgs/applications/graphics/mcomix/default.nix
+++ b/pkgs/applications/graphics/mcomix/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
     namePrefix = "";
-    name = "mcomix-0.98";
+    name = "mcomix-1.00";
 
     src = fetchurl {
       url = "mirror://sourceforge/mcomix/${name}.tar.bz2";
-      sha256 = "93805b6c8540bd673ac4a6ef6e952f00f8fc10e59a63c7e163324a64db2a6b03";
+      sha256 = "1phcdx1agacdadz8bvbibdbps1apz8idi668zmkky5cpl84k2ifq";
     };
 
     doCheck = false;
@@ -28,7 +28,7 @@ buildPythonPackage rec {
       '';
 
       homepage = http://mcomix.sourceforge.net/;
-
       license = stdenv.lib.licenses.gpl2;
+      maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
     };
 }
diff --git a/pkgs/applications/graphics/processing/default.nix b/pkgs/applications/graphics/processing/default.nix
new file mode 100644
index 00000000000..ecce0e260bb
--- /dev/null
+++ b/pkgs/applications/graphics/processing/default.nix
@@ -0,0 +1,39 @@
+{ fetchurl, stdenv, ant, jre, makeWrapper, libXxf86vm, which }:
+
+stdenv.mkDerivation rec {
+  name = "processing-${version}";
+  version = "2.2.1";
+
+  src = fetchurl {
+    url = "https://github.com/processing/processing/archive/processing-0227-${version}.tar.gz";
+    sha256 = "1r8q5y0h4gpqap5jwkspc0li6566hzx5chr7hwrdn8mxlzsm50xk";
+  };
+
+  # Stop it trying to download its own version of java
+  patches = [ ./use-nixpkgs-jre.patch ];
+
+  buildInputs = [ ant jre makeWrapper libXxf86vm which ];
+
+  buildPhase = "cd build && ant build";
+
+  installPhase = ''
+    mkdir -p $out/${name}
+    mkdir -p $out/bin
+   cp -r linux/work/* $out/${name}/
+   makeWrapper $out/${name}/processing $out/bin/processing \
+     --prefix PATH : "${jre}/bin:${which}/bin" \
+     --prefix LD_LIBRARY_PATH : ${libXxf86vm}/lib
+   makeWrapper $out/${name}/processing-java $out/bin/processing-java \
+     --prefix PATH : "${jre}/bin:${which}/bin" \
+     --prefix LD_LIBRARY_PATH : ${libXxf86vm}/lib
+   ln -s ${jre} $out/${name}/java
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A language and IDE for electronic arts";
+    homepage = http://processing.org;
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.goibhniu ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/graphics/processing/use-nixpkgs-jre.patch b/pkgs/applications/graphics/processing/use-nixpkgs-jre.patch
new file mode 100644
index 00000000000..8f6a5e2018e
--- /dev/null
+++ b/pkgs/applications/graphics/processing/use-nixpkgs-jre.patch
@@ -0,0 +1,88 @@
+From d1fb63255ff028ecc9cc66d5a6b21b24031b4b4a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Cillian=20de=20R=C3=B3iste?= <cillian.deroiste@gmail.com>
+Date: Tue, 26 Aug 2014 00:07:58 +0200
+Subject: [PATCH] patch
+
+---
+ build/build.xml | 42 +++++++++++++++++++++---------------------
+ 1 file changed, 21 insertions(+), 21 deletions(-)
+
+diff --git a/build/build.xml b/build/build.xml
+index 4d0f0b2..c3f5c09 100755
+--- a/build/build.xml
++++ b/build/build.xml
+@@ -640,10 +640,11 @@
+ 	      value="jre-tools-6u37-linux${sun.arch.data.model}.tgz" />
+     -->
+ 
++    <!--
+     <get src="http://processing.googlecode.com/files/${jre.file}" 
+ 	 dest="linux/jre.tgz" 
+ 	 usetimestamp="true" />
+-
++    -->
+ <!--	   
+     Cannot use ant version of tar because it doesn't preserve properties.
+     <untar compression="gzip" 
+@@ -655,39 +656,38 @@
+ <!--
+     http://www.gnu.org/software/tar/manual/html_section/transform.html
+ -->
+-    <exec executable="tar" dir="linux">
++    <!-- <exec executable="tar" dir="linux"> -->
+       <!-- Change directory -->
+       <!--
+       <arg value="-C" /> 
+       <arg value="linux/work" />
+       <arg value="-xzpf" />
+       -->
+-      <arg value="xfz" />
+-      <arg value="jre.tgz"/>
+-    </exec>
++    <!--   <arg value="xfz" /> -->
++    <!--   <arg value="jre.tgz"/> -->
++    <!-- </exec> -->
+ 
+     <!--
+     We only want to move when the folder didn't exist before
+     <move file="linux/jre1.7.0_40" tofile="linux/work/java" />
+     -->
+-    <exec executable="rsync" dir="linux">
+-      <arg value="-a" />
+-      <arg value="--delete" />
+-      <arg value="jre1.7.0_40/" />
+-      <arg value="work/java" />
+-    </exec>
+-    <delete dir="linux/jre1.7.0_40" />
++    <!-- <exec executable="rsync" dir="linux"> -->
++    <!--   <arg value="-a" /> -->
++    <!--   <arg value="jre1.7.0_40/" /> -->
++    <!--   <arg value="work/java" /> -->
++    <!-- </exec> -->
++    <!-- <delete dir="linux/jre1.7.0_40" /> -->
+ 
+     <!-- Remove unused JRE bloat. -->
+-    <delete> 
+-      <fileset refid="javafx-basics" />
+-      <fileset refid="javafx-linux-${sun.arch.data.model}" />
+-      <fileset refid="jre-optional-linux" />
+-    </delete>
+-
+-    <copy todir="linux/work/java/lib/fonts">
+-      <fileset dir="shared/lib/fonts" includes="*" />
+-    </copy>
++    <!-- <delete>  -->
++    <!--   <fileset refid="javafx-basics" /> -->
++    <!--   <fileset refid="javafx-linux-${sun.arch.data.model}" /> -->
++    <!--   <fileset refid="jre-optional-linux" /> -->
++    <!-- </delete> -->
++
++    <!-- <copy todir="linux/work/java/lib/fonts"> -->
++    <!--   <fileset dir="shared/lib/fonts" includes="*" /> -->
++    <!-- </copy> -->
+ 
+   </target>
+   
+-- 
+2.1.0
+
diff --git a/pkgs/applications/misc/audio/sox/default.nix b/pkgs/applications/misc/audio/sox/default.nix
index 0663937c479..1f86a4164f6 100644
--- a/pkgs/applications/misc/audio/sox/default.nix
+++ b/pkgs/applications/misc/audio/sox/default.nix
@@ -4,6 +4,8 @@
 , enableLame ? false, lame ? null
 , enableLibmad ? true, libmad ? null
 , enableLibogg ? true, libogg ? null, libvorbis ? null
+, enableFLAC ? true, flac ? null
+, enablePNG ? true, libpng ? null
 }:
 
 with stdenv.lib;
@@ -21,7 +23,9 @@ stdenv.mkDerivation rec {
     optional enableLibao libao ++
     optional enableLame lame ++
     optional enableLibmad libmad ++
-    optionals enableLibogg [ libogg libvorbis ];
+    optionals enableLibogg [ libogg libvorbis ] ++
+    optional enableFLAC flac ++
+    optional enablePNG libpng;
 
   meta = {
     description = "Sample Rate Converter for audio";
diff --git a/pkgs/applications/misc/bitcoin/altcoins.nix b/pkgs/applications/misc/bitcoin/altcoins.nix
index 2b99bad58da..796cedc1ee2 100644
--- a/pkgs/applications/misc/bitcoin/altcoins.nix
+++ b/pkgs/applications/misc/bitcoin/altcoins.nix
@@ -1,5 +1,6 @@
 { fetchurl, stdenv, pkgconfig
-, openssl, db48, boost, zlib, miniupnpc, qt4, qrencode, glib, protobuf, utillinux }:
+, openssl, db48, boost, zlib, miniupnpc, qt4, qrencode, glib, protobuf
+, utillinux, autogen, autoconf, autobuild, automake, db }:
 
 with stdenv.lib;
 
@@ -79,22 +80,51 @@ in rec {
     };
   };
 
-  dogecoin = buildAltcoin rec {
+  dogecoin = (buildAltcoin rec {
     walletName = "dogecoin";
-    version = "1.4";
+    version = "1.8.0";
 
     src = fetchurl {
-      url = "https://github.com/dogecoin/dogecoin/archive/1.4.tar.gz";
-      sha256 = "4af983f182976c98f0e32d525083979c9509b28b7d6faa0b90c5bd40b71009cc";
+      url = "https://github.com/dogecoin/dogecoin/archive/v${version}.tar.gz";
+      sha256 = "8a33958c04213cd621aa3c86910477813af22512f03b47c98995d20d31f3f935";
     };
 
+    extraBuildInputs = [ autogen autoconf automake pkgconfig db utillinux protobuf ];
+
     meta = {
       description = "Wow, such coin, much shiba, very rich";
       longDescription = "wow";
       homepage = http://www.dogecoin.com/;
       maintainers = [ maintainers.offline maintainers.edwtjo ];
     };
+  }).override rec {
+    patchPhase = ''
+      sed -i \
+        -e 's,BDB_CPPFLAGS=$,BDB_CPPFLAGS="-I${db}/include",g' \
+        -e 's,BDB_LIBS=$,BDB_LIBS="-L${db}/lib",g' \
+        -e 's,bdbdirlist=$,bdbdirlist="${db}/include",g' \
+        src/m4/dogecoin_find_bdb51.m4
+    '';
+    dogeConfigure = ''
+      ./autogen.sh \
+      && ./configure --prefix=$out \
+                     --with-incompatible-bdb \
+                     --with-boost-libdir=${boost}/lib \
+    '';
+    dogeInstall = ''
+      install -D "src/dogecoin-cli" "$out/bin/dogecoin-cli"
+      install -D "src/dogecoind" "$out/bin/dogecoind"
+    '';
+    configurePhase = dogeConfigure + "--with-gui";
+    installPhase = dogeInstall + "install -D src/qt/dogecoin-qt $out/bin/dogecoin-qt";
+  };
+
+  dogecoind = dogecoin.override rec {
+    gui = false;
+    makefile = "Makefile";
+    preBuild = "";
+    configurePhase = dogecoin.dogeConfigure + "--without-gui";
+    installPhase = dogecoin.dogeInstall;
   };
-  dogecoind = dogecoin.override { gui = false; };
 
 }
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index 190b57e1070..00a5d15a84c 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -5,11 +5,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "calibre-2.0.0";
+  name = "calibre-2.1.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/calibre/${name}.tar.xz";
-    sha256 = "1fpn8icfyag2ybj2ywd81sva56ycsin56gyap5m9j5crx63p4c91";
+    sha256 = "1znwrmz740m08bihkmdijm193bvav4nm313xsagd5x9mjh2nffg7";
   };
 
   inherit python;
diff --git a/pkgs/applications/misc/namecoin/default.nix b/pkgs/applications/misc/namecoin/default.nix
new file mode 100644
index 00000000000..b1bd401b2eb
--- /dev/null
+++ b/pkgs/applications/misc/namecoin/default.nix
@@ -0,0 +1,37 @@
+{ fetchgit, stdenv, db4, boost, openssl, unzip }:
+
+stdenv.mkDerivation rec {
+  version = "0.3.75";
+  name = "namecoin-${version}";
+
+  src = fetchgit {
+    url = "https://github.com/namecoin/namecoin";
+    rev = "31ea638d4ba7f0a3011cb25483f4c7d293134c7a";
+    sha256 = "c14a5663cba675b3508937a26a812316559938fd7b64659dd00749a9f5d7e9e0";
+  };
+
+  # Don't build with miniupnpc due to namecoin using a different verison that
+  # ships with NixOS and it is API incompatible.
+  buildInputs = [ db4 boost openssl unzip ];
+
+  patchPhase = ''
+    sed -e 's/-Wl,-Bstatic//g' -e 's/-l gthread-2.0//g' -e 's/-l z//g' -i src/Makefile
+  '';
+
+  buildPhase = ''
+    make -C src INCLUDEPATHS= LIBPATHS=
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp src/namecoind $out/bin
+  '';
+
+  meta = {
+    description = "Decentralized open source information registration and transfer system based on the Bitcoin cryptocurrency";
+    homepage = "http://namecoin.info";
+    license = stdenv.lib.licenses.mit;
+    maintainers = [ stdenv.lib.maintainers.doublec ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/applications/misc/namecoin/qt.nix b/pkgs/applications/misc/namecoin/qt.nix
new file mode 100644
index 00000000000..447a2b42b6b
--- /dev/null
+++ b/pkgs/applications/misc/namecoin/qt.nix
@@ -0,0 +1,33 @@
+{ fetchgit, stdenv, db4, boost, openssl, qt4, unzip, namecoin }:
+
+stdenv.mkDerivation rec {
+  version = "0.3.75";
+  name = "namecoin-qt-${version}";
+
+  src = namecoin.src;
+
+  # Don't build with miniupnpc due to namecoin using a different verison that
+  # ships with NixOS and it is API incompatible.
+  buildInputs = [ db4 boost openssl unzip qt4 ];
+
+  configurePhase = ''
+    qmake USE_UPNP=-
+  '';
+
+  buildPhase = ''
+    make
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp namecoin-qt $out/bin
+  '';
+
+  meta = {
+    description = "Decentralized open source information registration and transfer system based on the Bitcoin cryptocurrency";
+    homepage = "http://namecoin.info";
+    license = stdenv.lib.licenses.mit;
+    maintainers = [ stdenv.lib.maintainers.doublec ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/applications/misc/nanoblogger/default.nix b/pkgs/applications/misc/nanoblogger/default.nix
new file mode 100644
index 00000000000..e910c9ed22e
--- /dev/null
+++ b/pkgs/applications/misc/nanoblogger/default.nix
@@ -0,0 +1,29 @@
+{ fetchurl, stdenv, bash }:
+
+stdenv.mkDerivation rec {
+  version = "3.5-rc1";
+  name = "nanoblogger-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/nanoblogger/${name}.tar.gz";
+    sha256 = "09mv52a5f0h3das8x96irqyznm69arfskx472b7w3b9q4a2ipxbq";
+  };
+
+  buildInputs = [ ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp -r * $out
+    cat > $out/bin/nb << EOF 
+    #!${bash}/bin/bash
+    $out/nb "\$@"
+    EOF
+    chmod 755 $out/bin/nb
+  '';
+
+  meta = {
+    description = "Small weblog engine written in Bash for the command line";
+    homepage = http://nanoblogger.sourceforge.net/;
+    license = stdenv.lib.licenses.gpl2;
+  };
+}
diff --git a/pkgs/applications/misc/pinfo/default.nix b/pkgs/applications/misc/pinfo/default.nix
index d8dba39ccb5..658ff410d37 100644
--- a/pkgs/applications/misc/pinfo/default.nix
+++ b/pkgs/applications/misc/pinfo/default.nix
@@ -1,12 +1,23 @@
-{stdenv, fetchurl, ncurses, readline}:
+{ stdenv, fetchurl, autoreconfHook, gettext, texinfo, ncurses, readline }:
 
 stdenv.mkDerivation {
-  name = "pinfo-0.6.9";
+  name = "pinfo-0.6.10";
+
   src = fetchurl {
-    url = https://alioth.debian.org/frs/download.php/1498/pinfo-0.6.9.tar.bz2;
-    sha256 = "1rbsz1y7nyz6ax9xfkw5wk6pnrhvwz2xcm0wnfnk4sb2wwq760q3";
+    # homepage needed you to login to download the tarball
+    url = "http://pkgs.fedoraproject.org/repo/pkgs/pinfo/pinfo-0.6.10.tar.bz2"
+      + "/fe3d3da50371b1773dfe29bf870dbc5b/pinfo-0.6.10.tar.bz2";
+    sha256 = "0p8wyrpz9npjcbx6c973jspm4c3xz4zxx939nngbq49xqah8088j";
   };
-  buildInputs = [ncurses readline];
 
-  configureFlags = "--with-curses=${ncurses} --with-readline=${readline}";
+  buildInputs = [ autoreconfHook gettext texinfo ncurses readline ];
+
+  configureFlags = [ "--with-curses=${ncurses}" "--with-readline=${readline}" ];
+
+  meta = with stdenv.lib; {
+    description = "A viewer for info files";
+    homepage = https://alioth.debian.org/projects/pinfo/;
+    license = licenses.gpl2Plus;
+  };
 }
+
diff --git a/pkgs/applications/misc/tilda/default.nix b/pkgs/applications/misc/tilda/default.nix
new file mode 100644
index 00000000000..50c4184c91e
--- /dev/null
+++ b/pkgs/applications/misc/tilda/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, pkgconfig
+, autoreconfHook, gettext, expat
+, confuse, vte, gtk
+, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+
+  name = "tilda-${version}";
+  version = "1.1.12";
+
+  src = fetchurl {
+    url = "https://github.com/lanoxx/tilda/archive/${name}.tar.gz";
+    sha256 = "10kjlcdaylkisb8i0cw4wfssg52mrz2lxr5zmw3q4fpnhh2xlaix";
+  };
+
+  buildInputs = [ pkgconfig autoreconfHook gettext confuse vte gtk makeWrapper ];
+
+  LD_LIBRARY_PATH = "${expat}/lib"; # ugly hack for xgettext to work during build
+
+  postInstall = ''
+    wrapProgram "$out/bin/tilda" \
+        --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A Gtk based drop down terminal for Linux and Unix";
+    homepage = https://github.com/lanoxx/tilda/;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.linux;
+  };
+}
+
diff --git a/pkgs/applications/networking/browsers/chromium/source/default.nix b/pkgs/applications/networking/browsers/chromium/source/default.nix
index d7ccc412fa4..91c6ada5138 100644
--- a/pkgs/applications/networking/browsers/chromium/source/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/source/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
 
   prePatch = "patchShebangs .";
 
-  patches = singleton ./sandbox_userns_36.patch;
+  patches = [ ./sandbox_userns_36.patch ./missing_alg_import.patch ];
 
   postPatch = ''
     sed -i -r \
diff --git a/pkgs/applications/networking/browsers/chromium/source/missing_alg_import.patch b/pkgs/applications/networking/browsers/chromium/source/missing_alg_import.patch
new file mode 100644
index 00000000000..243e3fe7049
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/source/missing_alg_import.patch
@@ -0,0 +1,11 @@
+diff -Naur chromium-37.0.2062.94.old/media/cast/logging/encoding_event_subscriber.cc chromium-37.0.2062.94/media/cast/logging/encoding_event_subscriber.cc
+--- chromium-37.0.2062.94.old/media/cast/logging/encoding_event_subscriber.cc	2014-08-29 02:05:15.149140733 -0700
++++ chromium-37.0.2062.94/media/cast/logging/encoding_event_subscriber.cc	2014-08-29 02:06:00.182853590 -0700
+@@ -4,6 +4,7 @@
+ 
+ #include "media/cast/logging/encoding_event_subscriber.h"
+ 
++#include <algorithm>
+ #include <cstring>
+ #include <utility>
+ 
diff --git a/pkgs/applications/networking/browsers/chromium/source/sources.nix b/pkgs/applications/networking/browsers/chromium/source/sources.nix
index 71c825188c3..27ba9420f43 100644
--- a/pkgs/applications/networking/browsers/chromium/source/sources.nix
+++ b/pkgs/applications/networking/browsers/chromium/source/sources.nix
@@ -1,16 +1,16 @@
 # This file is autogenerated from update.sh in the parent directory.
 {
   dev = {
-    version = "38.0.2125.8";
-    sha256 = "1h3vkp0mgznqv48ksnsndlh7ywh3jby25x6dxxd7py445pg6y3c6";
-    sha256bin32 = "1ynqm5yp7m8j3mwgqaa2vvw835g9ifn3dfniqh9z9n0swha27a69";
-    sha256bin64 = "1vdm4wffkvj3jwrb2nihghxkxcvp81xcc5wygpd1w495vrhy4bpf";
+    version = "39.0.2138.3";
+    sha256 = "0adkzv4ydrg02prcacqx3gk8v0ivvs57qisf220wzzicgpzklm26";
+    sha256bin32 = "0rskbr55nhvpmmw6bl90iv2lr0f2chra3r5c92j3ica307y12f2q";
+    sha256bin64 = "0gdyyaxiaq50jpwhvai6d67ypgjxqn8kp9fqix6nbwj4fnmdfcjx";
   };
   beta = {
-    version = "37.0.2062.94";
-    sha256 = "0cz5kivimxcaiml6x5mysarjyfvvanbw02qz2d1y3jvl1dc1jz6j";
-    sha256bin32 = "0pa209sjdfb0y96kicvp4lnn1inwdcgj8kpmn28cmi8l1cr8yy3b";
-    sha256bin64 = "0kk2dm2gwvzvrrp03k7cw6zzp3197lrq2p1si3pr2wbgm8sb5dk5";
+    version = "38.0.2125.24";
+    sha256 = "07v4vk7sc54d2hzgfms0b71cc7z6h85v9d39j110kzk0w1bpk3gy";
+    sha256bin32 = "0l26ci7sqi755cm017qmbcqk74rqja5c08cbzf5v4chsa773qn0m";
+    sha256bin64 = "1ibx40ijjj8z0smpzh5v6y611c57qm5raldk48h5dd1flqbgz0nr";
   };
   stable = {
     version = "37.0.2062.94";
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 d39dfe3582e..55521a13f9c 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix
@@ -36,7 +36,7 @@
 
 let
   # -> http://get.adobe.com/flashplayer/
-  version = "11.2.202.394";
+  version = "11.2.202.400";
 
   src =
     if stdenv.system == "x86_64-linux" then
@@ -47,7 +47,7 @@ let
       else rec {
         inherit version;
         url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.x86_64.tar.gz";
-        sha256 = "1w82kmda91xdsrqpkrbcbrzswnbfszy0x9hvf9wf2h14isimdknx";
+        sha256 = "043bzjcqxjkjk68kba5nk77m59k6g71h32bypjpnwaigdgbhafyl";
       }
     else if stdenv.system == "i686-linux" then
       if debug then {
@@ -58,7 +58,7 @@ let
       } else rec {
         inherit version;
         url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.i386.tar.gz";
-        sha256 = "0c8wp4qn6k224krihxb08g7727wlklk9bl4h7nqp3cpp85x9hg97";
+        sha256 = "1xvfzm926rj0l2mq2kybrvykrv7bjfl3m7p5mvhj1586a3x1gb6h";
       }
     else throw "Flash Player is not supported on this platform";
 
diff --git a/pkgs/applications/networking/cluster/mesos/default.nix b/pkgs/applications/networking/cluster/mesos/default.nix
index 4329308ba04..fe93a072b2c 100644
--- a/pkgs/applications/networking/cluster/mesos/default.nix
+++ b/pkgs/applications/networking/cluster/mesos/default.nix
@@ -18,7 +18,7 @@ in stdenv.mkDerivation {
 
   buildInputs = [
     makeWrapper autoconf automake libtool curl sasl jdk maven
-    python wrapPython boto distutils-cfg
+    python wrapPython boto distutils-cfg setuptools
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/networking/ids/daq/default.nix b/pkgs/applications/networking/ids/daq/default.nix
index 36571809a37..c80d55f9412 100644
--- a/pkgs/applications/networking/ids/daq/default.nix
+++ b/pkgs/applications/networking/ids/daq/default.nix
@@ -1,12 +1,12 @@
 {stdenv, fetchurl, flex, bison, libpcap}:
 
 stdenv.mkDerivation rec {
-  name = "daq-2.0.0";
+  name = "daq-2.0.2";
   
   src = fetchurl {
     name = "${name}.tar.gz";
-    url = http://www.snort.org/downloads/2311;
-    sha256 = "0f0w5jfmx0n2sms4f2mfg984a27r7qh927vkd7fclvx9cbiwibzv";
+    url = "http://www.snort.org/downloads/snort/${name}.tar.gz";
+    sha256 = "1a39qbm9nc05yr8llawl7mz0ny1fci4acj9c2k1h4klrqikiwpfn";
   };
   
   buildInputs = [ flex bison libpcap ];
diff --git a/pkgs/applications/networking/ids/snort/default.nix b/pkgs/applications/networking/ids/snort/default.nix
index 580591c18ad..65e46176fcb 100644
--- a/pkgs/applications/networking/ids/snort/default.nix
+++ b/pkgs/applications/networking/ids/snort/default.nix
@@ -1,12 +1,12 @@
 {stdenv, fetchurl, libpcap, pcre, libdnet, daq, zlib, flex, bison}:
 
 stdenv.mkDerivation rec {
-  name = "snort-2.9.4.6";
+  name = "snort-2.9.6.2";
   
   src = fetchurl {
     name = "${name}.tar.gz";
-    url = http://www.snort.org/downloads/2320;
-    sha256 = "1g5kn36l67a5m95h2shqwqbbjb6rgl3sf1bciakal2l4n6857ang";
+    url = "http://www.snort.org/downloads/snort/${name}.tar.gz";
+    sha256 = "0xsxbd5h701ncnhn9sf7zkmzravlqhn1182whinphfjjw72py7cf";
   };
   
   buildInputs = [ libpcap pcre libdnet daq zlib flex bison ];
diff --git a/pkgs/applications/networking/instant-messengers/mcabber/default.nix b/pkgs/applications/networking/instant-messengers/mcabber/default.nix
index cae0213c6be..362bf0de977 100644
--- a/pkgs/applications/networking/instant-messengers/mcabber/default.nix
+++ b/pkgs/applications/networking/instant-messengers/mcabber/default.nix
@@ -1,19 +1,22 @@
 {stdenv, fetchurl, openssl, ncurses, pkgconfig, glib, loudmouth}:
 
-stdenv.mkDerivation {
-
-  name = "mcabber-0.10.1";
+stdenv.mkDerivation rec {
+  name = "mcabber-${version}";
+  version = "0.10.3";
 
   src = fetchurl {
-    url = "http://mcabber.com/files/mcabber-0.10.1.tar.bz2";
+    url = "http://mcabber.com/files/mcabber-${version}.tar.bz2";
     sha256 = "1248cgci1v2ypb90wfhyipwdyp1wskn3gzh78af5ai1a4w5rrjq0";
   };
 
-  meta = { homepage = "http://mcabber.com/";
-           description = "Small Jabber console client";
-         };
-
   buildInputs = [openssl ncurses pkgconfig glib loudmouth];
 
   configureFlags = "--with-openssl=${openssl}";
+  
+  meta = with stdenv.lib; {
+    homepage = http://mcabber.com/;
+    description = "Small Jabber console client";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ pSub ];
+  };
 }
diff --git a/pkgs/applications/networking/mumble/murmur.nix b/pkgs/applications/networking/mumble/murmur.nix
index 17254aa2fdd..1c06392f60b 100644
--- a/pkgs/applications/networking/mumble/murmur.nix
+++ b/pkgs/applications/networking/mumble/murmur.nix
@@ -12,11 +12,11 @@ let
 in
 stdenv.mkDerivation rec {
   name = "murmur-" + version;
-  version = "1.2.6";
+  version = "1.2.8";
 
   src = fetchurl {
     url = "mirror://sourceforge/mumble/mumble-${version}.tar.gz";
-    sha256 = "1zxnbwbd81p7lvscghlpkad8kynh9gbf1nhc092sp64pp37xwv47";
+    sha256 = "0ng1xd7i0951kqnd9visf84y2dcwia79a1brjwfvr1wnykgw6bsc";
   };
 
   patchPhase = optional iceSupport ''
diff --git a/pkgs/applications/networking/remote/rdesktop/default.nix b/pkgs/applications/networking/remote/rdesktop/default.nix
index 09c20618d66..7d2b7990d3f 100644
--- a/pkgs/applications/networking/remote/rdesktop/default.nix
+++ b/pkgs/applications/networking/remote/rdesktop/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation (rec {
   pname = "rdesktop";
-  version = "1.8.1";
+  version = "1.8.2";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${name}.tar.gz";
-    sha256 = "0il248cdsxvwjsl4bswf27ld9r1a7d48jf6bycr86kf3i55q7k3n";
+    sha256 = "0y0s0qjfsflp4drcn75ykx6as7mn13092bcvlp2ibhilkpa27gzv";
   };
 
   buildInputs = [openssl libX11];
@@ -20,5 +20,8 @@ stdenv.mkDerivation (rec {
 
   meta = {
     description = "Open source client for Windows Terminal Services";
+    homepage = http://www.rdesktop.org/;
+    platforms = stdenv.lib.platforms.linux;
+    license     = stdenv.lib.licenses.gpl2;
   };
 })
diff --git a/pkgs/applications/networking/sync/backintime/common.nix b/pkgs/applications/networking/sync/backintime/common.nix
new file mode 100644
index 00000000000..fa722747e5f
--- /dev/null
+++ b/pkgs/applications/networking/sync/backintime/common.nix
@@ -0,0 +1,46 @@
+{stdenv, fetchurl, makeWrapper, gettext, python2, python2Packages }:
+
+stdenv.mkDerivation rec {
+  version = "1.0.36";
+
+  name = "backintime-common-${version}";
+
+  src = fetchurl {
+    url = "https://launchpad.net/backintime/1.0/${version}/+download/backintime-${version}.tar.gz";
+    md5 = "28630bc7bd5f663ba8fcfb9ca6a742d8";
+  };
+
+  # because upstream tarball has no top-level directory.
+  # https://bugs.launchpad.net/backintime/+bug/1359076
+  sourceRoot = ".";
+
+  buildInputs = [ makeWrapper gettext python2 python2Packages.dbus ];
+
+  installFlags = [ "DEST=$(out)" ];
+
+  preConfigure = "cd common";
+
+  dontAddPrefix = true;
+
+  preFixup =
+    ''
+    substituteInPlace "$out/bin/backintime" \
+      --replace "=\"/usr/share" "=\"$prefix/share"
+    wrapProgram "$out/bin/backintime" \
+      --prefix PYTHONPATH : "$PYTHONPATH" \
+      --prefix PATH : "$prefix/bin:$PATH"
+    '';
+
+  meta = {
+    homepage = https://launchpad.net/backintime;
+    description = "Simple backup tool for Linux";
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ stdenv.lib.maintainers.DamienCassou ];
+    platforms = stdenv.lib.platforms.all;
+    longDescription = ''
+      Back In Time is a simple backup tool (on top of rsync) for Linux
+      inspired from “flyback project” and “TimeVault”. The backup is
+      done by taking snapshots of a specified set of directories.
+    '';
+  };
+}
\ No newline at end of file
diff --git a/pkgs/applications/networking/sync/backintime/gnome.nix b/pkgs/applications/networking/sync/backintime/gnome.nix
new file mode 100644
index 00000000000..56d0f6c5481
--- /dev/null
+++ b/pkgs/applications/networking/sync/backintime/gnome.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchurl, makeWrapper, gettext, python2, python2Packages, gnome2, pkgconfig, pygobject, glib, libtool, backintime-common }:
+
+stdenv.mkDerivation rec {
+  inherit (backintime-common) version src sourceRoot installFlags meta;
+
+  name = "backintime-gnome-${version}";
+
+  buildInputs = [ makeWrapper gettext python2 python2Packages.dbus backintime-common python2Packages.pygtk python2Packages.notify gnome2.gnome_python ];
+
+  preConfigure = "cd gnome";
+  configureFlags = [ "--no-check" ];
+
+  preFixup =
+      ''
+      # Make sure all Python files refer to $prefix/share/backintime
+      # instead of config.get_app_path() which returns the path of the
+      # 'common' module, not the path of the 'gnome' module.
+      filelist=$(mktemp)
+      find "$out/share/backintime/gnome" -name "*.py" -print0 > $filelist
+      while IFS="" read -r -d "" file <&9; do
+      substituteInPlace "$file" \
+         --replace "glade_file = os.path.join(config.get_app_path()," \
+                   "glade_file = os.path.join('$prefix/share/backintime'," \
+         --replace "glade_file = os.path.join(self.config.get_app_path()," \
+                   "glade_file = os.path.join('$prefix/share/backintime',"
+      done 9< "$filelist"
+      rm "$filelist"
+
+      substituteInPlace "$out/bin/backintime-gnome" \
+        --replace "=\"/usr/share" "=\"$prefix/share"
+
+      wrapProgram "$out/bin/backintime-gnome" \
+        --prefix PYTHONPATH : "${gnome2.gnome_python}/lib/python2.7/site-packages/gtk-2.0:${backintime-common}/share/backintime/common:$PYTHONPATH" \
+        --prefix PATH : "${backintime-common}/bin:$PATH"
+    '';
+
+}
diff --git a/pkgs/applications/office/homebank/default.nix b/pkgs/applications/office/homebank/default.nix
index 007e093378d..0fbd2e39812 100644
--- a/pkgs/applications/office/homebank/default.nix
+++ b/pkgs/applications/office/homebank/default.nix
@@ -2,7 +2,7 @@
 
 let
    download_root = "http://homebank.free.fr/public/";
-   name = "homebank-4.5.5";
+   name = "homebank-4.6.3";
    lastrelease = download_root + name + ".tar.gz";
    oldrelease = download_root + "old/" + name + ".tar.gz";
 in
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     urls = [ lastrelease oldrelease ];
-    sha256 = "05k4497qsb6fzr662h9yxz1amsavd287wh0sabrpr9jdbh3jcfkg";
+    sha256 = "0j39788xz9m7ic277phffznbl35c1dm1g7dgq83va9nni6vipqzn";
   };
 
   buildInputs = [ pkgconfig gtk libofx intltool ];
diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix
index 63d4db20af3..bf6728abe63 100644
--- a/pkgs/applications/office/libreoffice/default.nix
+++ b/pkgs/applications/office/libreoffice/default.nix
@@ -24,8 +24,8 @@ let
   langsSpaces = stdenv.lib.concatStringsSep " " langs;
   major = "4";
   minor = "3";
-  patch = "0";
-  tweak = "4";
+  patch = "1";
+  tweak = "2";
   subdir = "${major}.${minor}.${patch}";
   version = "${subdir}${if tweak == "" then "" else "."}${tweak}";
 
@@ -79,14 +79,14 @@ let
 
     translations = fetchSrc {
       name = "translations";
-      sha256 = "1l445284mih0c7d6v3ps1piy5pbjvisyrjjvlrqizvwxqm7bxpr1";
+      sha256 = "0vj1fpr99cb124hag0hijpp3pfbbi0gak56qiikxbwbq7mab6p9h";
     };
 
     # TODO: dictionaries
 
     help = fetchSrc {
       name = "help";
-      sha256 = "0avsc11d4nmycsxvadr0xcd8z9506sjcc89hgmliqlmhmw48ax7y";
+      sha256 = "1q0vzfla764zjz6xcx6r4nc8rikwb3pr2jsraj28hhwr5b26gdfz";
     };
 
   };
@@ -96,7 +96,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
-    sha256 = "1r605nwjdq20qd96chqic1bjkw7y36wmpg2lzzvv5sz6gw12rzi8";
+    sha256 = "0s1j5y1gfyf3r53bbqnzirx17p49i8ah07737nrzik0ggps3lgd5";
   };
 
   # Openoffice will open libcups dynamically, so we link it directly
diff --git a/pkgs/applications/office/libreoffice/libreoffice-srcs.nix b/pkgs/applications/office/libreoffice/libreoffice-srcs.nix
index 4e7dacfe0a9..6110a54feb5 100644
--- a/pkgs/applications/office/libreoffice/libreoffice-srcs.nix
+++ b/pkgs/applications/office/libreoffice/libreoffice-srcs.nix
@@ -185,6 +185,11 @@
   brief = false;
 }
 {
+  name = "source-sans-pro-2.010R-ro-1.065R-it.tar.gz";
+  md5 = "edc4d741888bc0d38e32dbaa17149596";
+  brief = false;
+}
+{
   name = "libfreehand-0.1.0.tar.bz2";
   md5 = "5f029fef73e42a2c2ae4524a7513f97d";
   brief = true;
@@ -326,8 +331,8 @@
 }
 {
   name = "libgltf-0.0.0.tar.bz2";
-  md5 = "3d9ea1f2828c46f8ba94b88a87b3326d";
-  brief = false;
+  md5 = "ca5436e916bfe70694adfe2607782786";
+  brief = true;
   subDir = "libgltf/";
 }
 {
diff --git a/pkgs/applications/office/zim/default.nix b/pkgs/applications/office/zim/default.nix
new file mode 100644
index 00000000000..cca52be1a17
--- /dev/null
+++ b/pkgs/applications/office/zim/default.nix
@@ -0,0 +1,82 @@
+{ stdenv, lib, fetchurl, buildPythonPackage, pythonPackages, pygtk, pygobject, python }:
+
+#
+# TODO: Declare configuration options for the following optional dependencies:
+#  -  File stores: hg, git, bzr
+#  -  Included plugins depenencies: dot, ditaa, dia, any other?
+#  -  pyxdg: Need to make it work first (see setupPyInstallFlags).
+#
+
+buildPythonPackage rec {
+  name = "zim-${version}";
+  version = "0.60";
+  namePrefix = "";
+  
+  src = fetchurl {
+    url = "http://zim-wiki.org/downloads/zim-0.61.tar.gz";
+    sha256 = "0jncxkf83bwra3022jbvjfwhk5w8az0jlwr8nsvm7wa1zfrajhsq";
+  };
+
+  propagatedBuildInputs = [ pythonPackages.sqlite3 pygtk /*pythonPackages.pyxdg*/ pygobject ];
+
+  preBuild = ''
+    mkdir -p $tmp/home
+    export HOME="$tmp/home"
+  '';
+  
+  setupPyInstallFlags = ["--skip-xdg-cmd"];
+  
+  #
+  # Exactly identical to buildPythonPackage's version but for the
+  # `--old-and-unmanagable`, which I removed. This was removed because
+  # this is a setuptools specific flag and as zim is overriding 
+  # the install step, setuptools could not perform its monkey
+  # patching trick for the command. Alternate solutions were to
+  #
+  #  -  Remove the custom install step (tested as working but
+  #	also remove the possibility of performing the xdg-cmd
+  #     stuff).
+  #  -  Explicitly replace distutils import(s) by their setuptools
+  #	equivalent (untested). 
+  #
+  # Both solutions were judged unsatisfactory as altering the code
+  # would be required.
+  #
+  # Note that a improved solution would be to expose the use of 
+  # the `--old-and-unmanagable` flag as an option of passed to the
+  # buildPythonPackage function.
+  #
+  # Also note that I stripped all comments.
+  #
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p "$out/lib/${python.libPrefix}/site-packages"
+
+    export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
+
+    ${python}/bin/${python.executable} setup.py install \
+      --install-lib=$out/lib/${python.libPrefix}/site-packages \
+      --prefix="$out" ${lib.concatStringsSep " " setupPyInstallFlags}
+
+    eapth="$out/lib/${python.libPrefix}"/site-packages/easy-install.pth
+    if [ -e "$eapth" ]; then
+	# move colliding easy_install.pth to specifically named one
+	mv "$eapth" $(dirname "$eapth")/${name}.pth
+    fi
+
+    rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py*
+
+    runHook postInstall
+  '';
+  
+  # Testing fails.
+  doCheck = false;
+
+  meta = {
+      description = "A desktop wiki";
+      homepage = http://zim-wiki.org;
+      license = stdenv.lib.licenses.gpl2Plus;
+  };
+}
+
diff --git a/pkgs/applications/science/logic/tptp/default.nix b/pkgs/applications/science/logic/tptp/default.nix
index ef00b135c27..d4c62858753 100644
--- a/pkgs/applications/science/logic/tptp/default.nix
+++ b/pkgs/applications/science/logic/tptp/default.nix
@@ -11,14 +11,14 @@ let
     (builtins.attrNames (builtins.removeAttrs x helperArgNames));
   sourceInfo = rec {
     baseName="TPTP";
-    version="6.0.0";
+    version="6.1.0";
     name="${baseName}-${version}";
     urls=
     [
     "http://www.cs.miami.edu/~tptp/TPTP/Distribution/TPTP-v${version}.tgz"
     "http://www.cs.miami.edu/~tptp/TPTP/Archive/TPTP-v${version}/TPTP-v${version}.tgz"
     ];
-    hash="0jnjkqdz937c7mkxvh9wc3byw5h1k19jss058fbzdxxc2hkwq1af";
+    hash="054p0kx9qh619ixslxpb4qcwvcqr4kan154b3a87b546b78k7kv4";
   };
 in
 rec {
diff --git a/pkgs/applications/science/math/pari/default.nix b/pkgs/applications/science/math/pari/default.nix
index 576a28b054f..e59bb9fe666 100644
--- a/pkgs/applications/science/math/pari/default.nix
+++ b/pkgs/applications/science/math/pari/default.nix
@@ -1,11 +1,12 @@
 { stdenv, fetchurl, gmp, readline }:
 
 stdenv.mkDerivation rec {
-  name = "pari-2.5.5";
+  version = "2.7.1";
+  name = "pari-${version}";
 
   src = fetchurl {
     url = "http://pari.math.u-bordeaux.fr/pub/pari/unix/${name}.tar.gz";
-    sha256 = "058nw1fhggy7idii4f124ami521lv3izvngs9idfz964aks8cvvn";
+    sha256 = "1gj1rddi22hinzwy7r6hljgbi252wwwyd6gapg4hvcn0ycc7jqyc";
   };
 
   buildInputs = [gmp readline];
@@ -21,5 +22,9 @@ stdenv.mkDerivation rec {
     license     = "GPLv2+";
     maintainers = with stdenv.lib.maintainers; [ertes raskin];
     platforms   = stdenv.lib.platforms.linux;
+
+    inherit version;
+    downloadPage = "http://pari.math.u-bordeaux.fr/download.html";
+    updateWalker = true;
   };
 }
diff --git a/pkgs/applications/science/misc/boinc/default.nix b/pkgs/applications/science/misc/boinc/default.nix
index 7020de0bca8..0898b458593 100644
--- a/pkgs/applications/science/misc/boinc/default.nix
+++ b/pkgs/applications/science/misc/boinc/default.nix
@@ -3,12 +3,12 @@ mesa, libXmu, libXi, freeglut, libjpeg, libtool, wxGTK, xcbutil,
 sqlite, gtk, patchelf, libXScrnSaver, libnotify, libX11, libxcb }:
 
 stdenv.mkDerivation rec {
-  name = "boinc-7.2.42";
+  name = "boinc-7.4.14";
 
   src = fetchgit {
     url = "git://boinc.berkeley.edu/boinc-v2.git";
-    rev = "dd0d630882547c123ca0f8fda7a62e058d60f6a9";
-    sha256 = "1zifpi3mjgaj68fba6kammp3x7z8n2x164zz6fj91xfiapnan56j";
+    rev = "fb31ab18f94f3b5141bea03e8537d76c606cd276";
+    sha256 = "1465zl8l87fm1ps5f2may6mcc3pp40mpd6wphpxnwwk1lmv48x96";
   };
 
   buildInputs = [ libtool automake autoconf m4 pkgconfig curl mesa libXmu libXi
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 62132271ec9..7224d8c6900 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
@@ -17,8 +17,8 @@
 
 cabal.mkDerivation (self: {
   pname = "git-annex";
-  version = "5.20140817";
-  sha256 = "0cly19rd250qiikzszgad2r5xz570kr00vcb8ij6icbm53pw3hxc";
+  version = "5.20140831";
+  sha256 = "0s2pc8bm3c79dsbafwp2pc5yghzh6vdzs9sj0mfq6rxiv27wrrwq";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/applications/version-management/gource/default.nix b/pkgs/applications/version-management/gource/default.nix
index 13c55476774..afe0ac71ea4 100644
--- a/pkgs/applications/version-management/gource/default.nix
+++ b/pkgs/applications/version-management/gource/default.nix
@@ -3,11 +3,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "gource-0.40";
+  version = "0.42";
+  name = "gource-${version}";
 
   src = fetchurl {
-    url = "http://gource.googlecode.com/files/${name}.tar.gz";
-    sha256 = "04nirh07xjslqsph557as4s50nlf91bi6v2l7vmbifmkdf90m2cw";
+    url = "https://github.com/acaudwell/Gource/releases/download/${name}/${name}.tar.gz";
+    sha256 = "08ab57z44y8b5wxg1193j6hiy50njbpi6dwafjh6nb0apcq8ziz5";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/version-management/guitone/default.nix b/pkgs/applications/version-management/guitone/default.nix
index a396765e918..135e7c7e1ef 100644
--- a/pkgs/applications/version-management/guitone/default.nix
+++ b/pkgs/applications/version-management/guitone/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchmtn, qt4 }:
+{ stdenv, fetchurl, fetchmtn, qt4, pkgconfig, graphviz }:
 
 let version = "1.0-mtn-head"; in
 stdenv.mkDerivation rec {
@@ -11,12 +11,12 @@ stdenv.mkDerivation rec {
 
   src = fetchmtn {
     dbs = ["mtn://code.monotone.ca/guitone"];
-    selector = "2777cdef424c65df93fa1ff181f02ee30d4901ab";
-    sha256 = "918d36a83060b84efa0ee0fe0fd058f1c871c91156d91366e2e979c886ff4271";
+    selector = "3a728afdbd3943b1d86c2a249b1e2ede7bf64c27";
+    sha256 = "01vs8m00phs5pl75mjkpdarynfpkqrg0qf4rsn95czi3q6nxiaq5";
     branch = "net.venge.monotone.guitone";
   };
 
-  buildInputs = [ qt4 ];
+  buildInputs = [ qt4 pkgconfig graphviz ];
 
   prefixKey="PREFIX=";
   configureScript = "qmake guitone.pro";
diff --git a/pkgs/applications/video/mkvtoolnix/default.nix b/pkgs/applications/video/mkvtoolnix/default.nix
index ed64448c13a..e0ab4582cd8 100644
--- a/pkgs/applications/video/mkvtoolnix/default.nix
+++ b/pkgs/applications/video/mkvtoolnix/default.nix
@@ -15,14 +15,18 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "mkvtoolnix-6.5.0";
+  version = "7.1.0";
+  name = "mkvtoolnix-${version}";
 
   src = fetchurl {
     url = "http://www.bunkus.org/videotools/mkvtoolnix/sources/${name}.tar.xz";
-    sha256 = "0a3h878bsjbpb2r7b528xzyqzl8r82yhrniry9bnhmw7rcl53bd8";
+    sha256 = "06xqy4f7gi1xj0yqb6y1wmxwvsxfxal2plfsbl33dkwd0srixj06";
   };
 
-  buildInputs = [ libmatroska flac libvorbis file boost xdg_utils expat wxGTK zlib ruby gettext pkgconfig curl ];
+  buildInputs = [
+    libmatroska flac libvorbis file boost xdg_utils
+    expat wxGTK zlib ruby gettext pkgconfig curl
+  ];
 
   configureFlags = "--with-boost-libdir=${boost}/lib";
   buildPhase = ''
@@ -36,5 +40,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Cross-platform tools for Matroska";
     homepage = http://www.bunkus.org/videotools/mkvtoolnix/;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
   };
 }
diff --git a/pkgs/build-support/setup-hooks/make-wrapper.sh b/pkgs/build-support/setup-hooks/make-wrapper.sh
index 41f2a59246d..dd43068be27 100644
--- a/pkgs/build-support/setup-hooks/make-wrapper.sh
+++ b/pkgs/build-support/setup-hooks/make-wrapper.sh
@@ -96,7 +96,10 @@ filterExisting() {
 # Syntax: wrapProgram <PROGRAM> <MAKE-WRAPPER FLAGS...>
 wrapProgram() {
     local prog="$1"
-    local hidden="$(dirname "$prog")/.$(basename "$prog")"-wrapped
+    local progBasename=$(basename $prog)
+    local hiddenDir="$(dirname $prog)/../wrapped-bin/.$progBasename-wrapped-bin"
+    mkdir -p $hiddenDir
+    local hidden="$(cd "$hiddenDir"; pwd)/$progBasename"
     mv $prog $hidden
     makeWrapper $hidden $prog "$@"
 }
diff --git a/pkgs/build-support/upstream-updater/update-walker-service-specific.sh b/pkgs/build-support/upstream-updater/update-walker-service-specific.sh
index 28c28f69587..b66001073f2 100644
--- a/pkgs/build-support/upstream-updater/update-walker-service-specific.sh
+++ b/pkgs/build-support/upstream-updater/update-walker-service-specific.sh
@@ -8,6 +8,10 @@ SF_version_dir () {
   version_link 'http://sourceforge.net/.+/'"$1"'[0-9.]+/$'
 }
 
+SF_version_tarball () {
+  version_link '[.]tar[.].*/download$'
+}
+
 GH_latest () {
   prefetch_command_rel ../fetchgit/nix-prefetch-git
   revision "$("$(dirname "$0")/urls-from-page.sh" "$CURRENT_URL/commits" | grep /commit/ | head -n 1 | xargs basename )"
diff --git a/pkgs/build-support/upstream-updater/update-walker.sh b/pkgs/build-support/upstream-updater/update-walker.sh
index e11eb722e0e..e60499b60f2 100755
--- a/pkgs/build-support/upstream-updater/update-walker.sh
+++ b/pkgs/build-support/upstream-updater/update-walker.sh
@@ -280,6 +280,12 @@ do_overwrite_just_version () {
   set_var_value sha256 $CURRENT_HASH
 }
 
+minimize_overwrite() {
+  do_overwrite(){
+    do_overwrite_just_version
+  }
+}
+
 process_config () {
   CONFIG_DIR="$(directory_of "$1")"
   CONFIG_NAME="$(basename "$1")"
@@ -297,9 +303,7 @@ process_config () {
       exit 1;
     }
     [ -z "$(retrieve_meta fullRegenerate)" ] && eval "
-      do_overwrite(){
-        do_overwrite_just_version
-      }
+      minimize_overwrite
     "
   fi
   ensure_attribute_name
diff --git a/pkgs/data/fonts/cm-unicode/default.nix b/pkgs/data/fonts/cm-unicode/default.nix
index b8f7f7c6d3e..d8f6f7f8351 100644
--- a/pkgs/data/fonts/cm-unicode/default.nix
+++ b/pkgs/data/fonts/cm-unicode/default.nix
@@ -9,17 +9,16 @@ let
   buildInputs = map (n: builtins.getAttr n x)
     (builtins.attrNames (builtins.removeAttrs x helperArgNames));
   sourceInfo = rec {
-    version="0.6.3a";
+    version = "0.7.0";
     baseName="cm-unicode";
     name="${baseName}-${version}";
-    url="ftp://canopus.iacp.dvo.ru/pub/Font/cm_unicode/${name}-otf.tar.gz";
-    hash="1018gmvh7wl7sm6f3fqd917syd1yy0gz3pxmrc9lkxckcr7wz0zp";
+    url="mirror://sourceforge/${baseName}/${baseName}/${version}/${name}-otf.tar.xz";
   };
 in
 rec {
   src = a.fetchurl {
     url = sourceInfo.url;
-    sha256 = sourceInfo.hash;
+    sha256 = "0a0w9qm9g8qz2xh3lr61bj1ymqslqsvk4w2ybc3v2qa89nz7x2jl";
   };
 
   inherit (sourceInfo) name version;
@@ -34,11 +33,8 @@ rec {
     ];
     platforms = with a.lib.platforms;
       all;
-  };
-  passthru = {
-    updateInfo = {
-      downloadPage = "http://canopus.iacp.dvo.ru/~panov/cm-unicode/download.html";
-    };
+    downloadPage = "http://sourceforge.net/projects/cm-unicode/files/cm-unicode/";
+    inherit version;
   };
 }) x
 
diff --git a/pkgs/data/fonts/cm-unicode/default.upstream b/pkgs/data/fonts/cm-unicode/default.upstream
new file mode 100644
index 00000000000..bc24cd919b2
--- /dev/null
+++ b/pkgs/data/fonts/cm-unicode/default.upstream
@@ -0,0 +1,7 @@
+attribute_name cm_unicode
+url http://sourceforge.net/projects/cm-unicode/files/cm-unicode/
+SF_version_dir
+version_link '[-]otf[.]tar[.][a-z0-9]+/download$'
+SF_redirect
+ensure_hash
+do_overwrite() { do_overwrite_just_version; }
diff --git a/pkgs/data/fonts/symbola/default.nix b/pkgs/data/fonts/symbola/default.nix
index 993a4c4f46d..b324e52d021 100644
--- a/pkgs/data/fonts/symbola/default.nix
+++ b/pkgs/data/fonts/symbola/default.nix
@@ -1,40 +1,39 @@
-{stdenv, fetchurl}:
+{stdenv, fetchurl, unzip }:
 
 stdenv.mkDerivation rec {
   name = "symbola-7.12";
 
-  ttf = fetchurl {
-    url = "http://users.teilar.gr/~g1951d/Symbola.ttf";
-    sha256 = "7acc058bd4e56cc986b2a46420520f59be402c3565c202b5dcebca7f3bfd8b5a";
+  src = fetchurl {
+    url = "http://users.teilar.gr/~g1951d/Symbola.zip";
+    sha256 = "19q5wcqk1rz8ps7jvvx1rai6x8ais79z71sm8d36hvsk2vr135al";
   };
   docs_pdf = fetchurl {
     url = "http://users.teilar.gr/~g1951d/Symbola.pdf";
-    sha256 = "11bb082ba5c2780a6f94a9bcddf4f314a54e2650bb63ce3081d1dc867c5e6843";
-  };
-  docs_docx = fetchurl {
-    url = "http://users.teilar.gr/~g1951d/Symbola.docx";
-    sha256 = "4f0ab494e1e5a7aac147aa7bb8b8bdba7278aee2da942a35f995feb9051515b9";
+    sha256 = "11h2202p1p4np4nv5m8k41wk7431p2m35sjpmbi1ygizakkbla3p";
   };
 
+  buildInputs = [ unzip ];
+
   phases = [ "installPhase" ];
 
   installPhase = ''
+    unzip ${src}
     mkdir -p $out/share/fonts/truetype
-    cp -v "$ttf" $out/share/fonts/truetype/"${ttf.name}"
+    cp -v Symbola.ttf $out/share/fonts/truetype/
+    cp -v Symbola_hint.ttf $out/share/fonts/truetype/
 
     mkdir -p "$out/doc/${name}"
+    cp -v Symbola.docx "$out/doc/${name}/"
+    cp -v Symbola.htm "$out/doc/${name}/"
     cp -v "$docs_pdf" "$out/doc/${name}/${docs_pdf.name}"
-    cp -v "$docs_docx" "$out/doc/${name}/${docs_docx.name}"
   '';
 
   meta = {
-    description = "Basic Latin, Greek, Cyrillic and many Symbol blocks of Unicode...";
-
+    description = "Basic Latin, Greek, Cyrillic and many Symbol blocks of Unicode";
     # In lieu of a licence:
     # Fonts in this site are offered free for any use;
     # they may be installed, embedded, opened, edited, modified, regenerated, posted, packaged and redistributed.
-    license = "Unicode Fonts for Ancient Scripts";
-
+    license = stdenv.lib.licenses.free;
     homepage = http://users.teilar.gr/~g1951d/;
   };
 }
diff --git a/pkgs/data/misc/miscfiles/default.nix b/pkgs/data/misc/miscfiles/default.nix
index db4d13b890f..a40856e5910 100644
--- a/pkgs/data/misc/miscfiles/default.nix
+++ b/pkgs/data/misc/miscfiles/default.nix
@@ -1,16 +1,17 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "miscfiles-1.4.2";
+  name = "miscfiles-1.5";
 
   src = fetchurl {
     url = "mirror://gnu/miscfiles/${name}.tar.gz";
-    sha256 = "1rh10y63asyrqyp5mlmxy7y4kdp6svk2inws3y7mfx8lsrhcm6dn";
+    sha256 = "005588vfrwx8ghsdv9p7zczj9lbc9a3r4m5aphcaqv8gif4siaka";
   };
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://www.gnu.org/software/miscfiles/;
-    license = stdenv.lib.licenses.gpl2Plus;
+    license = licenses.gpl2Plus;
     description = "Collection of files not of crucial importance for sysadmins";
+    maintainers = with maintainers; [ pSub ];
   };
 }
diff --git a/pkgs/desktops/gnome-2/bindings/gnome-python/default.nix b/pkgs/desktops/gnome-2/bindings/gnome-python/default.nix
index ed794715ff8..41ca17bd5e4 100644
--- a/pkgs/desktops/gnome-2/bindings/gnome-python/default.nix
+++ b/pkgs/desktops/gnome-2/bindings/gnome-python/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, python, pkgconfig, libgnome, GConf, pygobject, pygtk, glib, gtk, pythonDBus}:
+{ stdenv, fetchurl, python, pkgconfig, libgnome, GConf, pygobject, pygtk, glib, gtk, pythonDBus,  gnome_vfs}:
 
 with stdenv.lib;
 
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     cp bonobo/*.{py,defs} $out/share/pygtk/2.0/defs/
   '';
 
-  buildInputs = [ python pkgconfig pygobject pygtk glib gtk GConf libgnome pythonDBus ];
+  buildInputs = [ python pkgconfig pygobject pygtk glib gtk GConf libgnome pythonDBus gnome_vfs ];
 
   doCheck = false;
 
diff --git a/pkgs/desktops/gnome-3/3.12/misc/gnome-tweak-tool/default.nix b/pkgs/desktops/gnome-3/3.12/misc/gnome-tweak-tool/default.nix
index 1a48d6529a2..26e9144349f 100644
--- a/pkgs/desktops/gnome-3/3.12/misc/gnome-tweak-tool/default.nix
+++ b/pkgs/desktops/gnome-3/3.12/misc/gnome-tweak-tool/default.nix
@@ -4,11 +4,11 @@
 , gnome3, librsvg, gdk_pixbuf, file, libnotify }:
 
 stdenv.mkDerivation rec {
-  name = "gnome-tweak-tool-3.10.1";
+  name = "gnome-tweak-tool-3.12.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-tweak-tool/3.10/${name}.tar.xz";
-    sha256 = "fb5af9022c0521a925ef9f295e4080212b1b45427cd5f5f3a901667590afa7ec";
+    url = "mirror://gnome/sources/gnome-tweak-tool/3.12/${name}.tar.xz";
+    sha256 = "f8811d638797ef62500770a8dccc5bc689a427c8396a0dff8cbeddffdebf0e29";
   };
 
   doCheck = true;
diff --git a/pkgs/development/compilers/agda/default.nix b/pkgs/development/compilers/agda/default.nix
index 6705419add9..db160c652cf 100644
--- a/pkgs/development/compilers/agda/default.nix
+++ b/pkgs/development/compilers/agda/default.nix
@@ -1,15 +1,16 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, alex, binary, boxes, dataHash, deepseq, emacs, equivalence
-, filepath, geniplate, happy, hashable, hashtables, haskeline
-, haskellSrcExts, mtl, parallel, QuickCheck, STMonadTrans, strict
-, text, time, transformers, unorderedContainers, xhtml, zlib
+{ cabal, alex, binary, boxes, cpphs, dataHash, deepseq, emacs
+, equivalence, filepath, geniplate, happy, hashable, hashtables
+, haskeline, haskellSrcExts, mtl, parallel, QuickCheck
+, STMonadTrans, strict, text, time, transformers
+, unorderedContainers, xhtml, zlib
 }:
 
 cabal.mkDerivation (self: {
   pname = "Agda";
-  version = "2.4.0.2";
-  sha256 = "13c4ipscnlnbv94k93yajrp32mwzikqa8rhc95h8pmqzhjgwyh8b";
+  version = "2.4.2";
+  sha256 = "0pgwx79y02a08xn5f6lghw7fsc6wilab5q2gdm9r51yi9gm32aw5";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
@@ -18,7 +19,8 @@ cabal.mkDerivation (self: {
     QuickCheck STMonadTrans strict text time transformers
     unorderedContainers xhtml zlib
   ];
-  buildTools = [ alex emacs happy ];
+  buildTools = [ alex cpphs emacs happy ];
+  noHaddock = true;
   postInstall = ''
     $out/bin/agda -c --no-main $(find $out/share -name Primitive.agda)
     $out/bin/agda-mode compile
diff --git a/pkgs/development/compilers/agda/stdlib.nix b/pkgs/development/compilers/agda/stdlib.nix
index 913ae5cd90f..d0ae1394f89 100644
--- a/pkgs/development/compilers/agda/stdlib.nix
+++ b/pkgs/development/compilers/agda/stdlib.nix
@@ -2,11 +2,11 @@
 
 cabal.mkDerivation (self: rec {
   pname = "Agda-stdlib";
-  version = "0.8";
+  version = "0.8.1";
 
   src = fetchurl {
     url = "https://github.com/agda/agda-stdlib/archive/v${version}.tar.gz";
-    sha256 = "03gdcy2gar46qlmd6w91y05cm1x304ig6bda90ryww9qn05kif78";
+    sha256 = "0ij4rg4lk0pq01ing285gbmnn23dcf2rhihdcs8bbdpjg52vl4gf";
   };
 
   buildDepends = [ filemanip Agda ];
diff --git a/pkgs/development/compilers/ats2/default.nix b/pkgs/development/compilers/ats2/default.nix
index c66143fe1f3..b77c7e47667 100644
--- a/pkgs/development/compilers/ats2/default.nix
+++ b/pkgs/development/compilers/ats2/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name    = "ats2-${version}";
-  version = "0.1.1";
+  version = "0.1.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/ats2-lang/ATS2-Postiats-${version}.tgz";
-    sha256 = "17yr5zc4cr4zlizhzy43ihfcidl63wjxcc002amzahskib4fsbmb";
+    sha256 = "1266hl03d4w13qrimq6jsxcmw1mjivl27l3lhf9ddqlz0vy97j6a";
   };
 
   buildInputs = [ gmp ];
diff --git a/pkgs/development/compilers/fpc/2.4.0.nix b/pkgs/development/compilers/fpc/2.4.0.nix
deleted file mode 100644
index 30081c9d805..00000000000
--- a/pkgs/development/compilers/fpc/2.4.0.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ stdenv, fetchurl, gawk }:
-
-let startFPC = import ./binary.nix { inherit stdenv fetchurl; }; in
-
-stdenv.mkDerivation rec {
-  version = "2.4.0";
-  name = "fpc-${version}";
-
-  src = fetchurl {
-    url = "http://downloads.sourceforge.net/sourceforge/freepascal/fpcbuild-${version}.tar.gz";
-    sha256 = "1m2g2bafjixbwl5b9lna5h7r56y1rcayfnbp8kyjfd1c1ymbxaxk";
-  };
-
-  buildInputs = [ startFPC gawk ];
-
-  preConfigure =
-    if stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux" then ''
-      sed -e "s@'/lib/ld-linux[^']*'@'''@" -i fpcsrc/compiler/systems/t_linux.pas
-      sed -e "s@'/lib64/ld-linux[^']*'@'''@" -i fpcsrc/compiler/systems/t_linux.pas
-    '' else "";
-
-  makeFlags = "NOGDB=1";
-
-  installFlags = "INSTALL_PREFIX=\${out}";
-  
-  postInstall = ''
-    for i in $out/lib/fpc/*/ppc*; do
-      ln -fs $i $out/bin/$(basename $i)
-    done
-    mkdir -p $out/lib/fpc/etc/
-    $out/lib/fpc/*/samplecfg $out/lib/fpc/${version} $out/lib/fpc/etc/
-  '';
-
-  meta = {
-    description = "Free Pascal Compiler from a source distribution";
-    maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/development/compilers/fpc/binary-builder.sh b/pkgs/development/compilers/fpc/binary-builder.sh
index 8be36dec73e..4308c1ed211 100755
--- a/pkgs/development/compilers/fpc/binary-builder.sh
+++ b/pkgs/development/compilers/fpc/binary-builder.sh
@@ -1,6 +1,7 @@
 source $stdenv/setup
 
 tar xf $src
+cd */
 tarballdir=$(pwd)
 for i in *.tar; do tar xvf $i; done
 echo "Deploying binaries.."
diff --git a/pkgs/development/compilers/fpc/binary.nix b/pkgs/development/compilers/fpc/binary.nix
index 88f0ab91067..57e670750db 100644
--- a/pkgs/development/compilers/fpc/binary.nix
+++ b/pkgs/development/compilers/fpc/binary.nix
@@ -1,18 +1,18 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation {
-  name = "fpc-2.4.0-binary";
+  name = "fpc-2.6.0-binary";
 
   src =
     if stdenv.system == "i686-linux" then
       fetchurl {
-        url = "ftp://ftp.chg.ru/pub/lang/pascal/fpc/dist/2.4.0/i386-linux/fpc-2.4.0.i386-linux.tar";
-        sha256 = "1zas9kp0b36zxqvb9i4idh2l0nb6qpmgah038l77w6las7ghh0dv";
+        url = "http://sourceforge.net/projects/freepascal/files/Linux/2.6.0/fpc-2.6.0.i386-linux.tar";
+        sha256 = "08yklvrfxvk59bxsd4rh1i6s3cjn0q06dzjs94h9fbq3n1qd5zdf";
       }
     else if stdenv.system == "x86_64-linux" then
       fetchurl {
-        url = "ftp://ftp.chg.ru/pub/lang/pascal/fpc/dist/2.4.0/x86_64-linux/fpc-2.4.0.x86_64-linux.tar";
-        sha256 = "111d11g5ra55hjywx64ldwwflpimsy8zryvap68v0309nyd23f0z";
+        url = "http://sourceforge.net/projects/freepascal/files/Linux/2.6.0/fpc-2.6.0.x86_64-linux.tar";
+        sha256 = "0k9vi75k39y735fng4jc2vppdywp82j4qhzn7x4r6qjkad64d8lx";
       }
     else throw "Not supported on ${stdenv.system}.";
 
diff --git a/pkgs/development/compilers/fpc/default.nix b/pkgs/development/compilers/fpc/default.nix
index 6be976783bc..b34b5e8a446 100644
--- a/pkgs/development/compilers/fpc/default.nix
+++ b/pkgs/development/compilers/fpc/default.nix
@@ -3,12 +3,12 @@
 let startFPC = import ./binary.nix { inherit stdenv fetchurl; }; in
 
 stdenv.mkDerivation rec {
-  version = "2.6.0";
+  version = "2.6.4";
   name = "fpc-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/freepascal/fpcbuild-${version}.tar.gz";
-    sha256 = "1vxy2y8pm0ribhpdhqlwwz696ncnz4rk2dafbn1mjgipm97qb26p";
+    sha256 = "1akdlp4n9ai1gnn4yq236i5rx03rs5sjfgk60myb7nb9lk7kp74d";
   };
 
   buildInputs = [ startFPC gawk ];
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
       sed -e "s@'/lib64/ld-linux[^']*'@'''@" -i fpcsrc/compiler/systems/t_linux.pas
     '' else "";
 
-  makeFlags = "NOGDB=1";
+  makeFlags = "NOGDB=1 FPC=${startFPC}/bin/fpc";
 
   installFlags = "INSTALL_PREFIX=\${out}";
   
@@ -31,9 +31,14 @@ stdenv.mkDerivation rec {
     $out/lib/fpc/*/samplecfg $out/lib/fpc/${version} $out/lib/fpc/etc/
   '';
 
+  passthru = {
+    bootstrap = startFPC;
+  };
+
   meta = {
     description = "Free Pascal Compiler from a source distribution";
     maintainers = [stdenv.lib.maintainers.raskin];
     platforms = stdenv.lib.platforms.linux;
+    inherit version;
   };
 }
diff --git a/pkgs/development/compilers/fpc/default.upstream b/pkgs/development/compilers/fpc/default.upstream
new file mode 100644
index 00000000000..7c11fb4761e
--- /dev/null
+++ b/pkgs/development/compilers/fpc/default.upstream
@@ -0,0 +1,6 @@
+url http://sourceforge.net/projects/freepascal/files/Source/
+SF_version_dir
+version_link 'fpcbuild-[0-9.]+[.]tar[.]gz/download$'
+SF_redirect
+version '.*-([0-9.]+)[.]tar[.]gz' '\1'
+do_overwrite () { do_overwrite_just_version; }
diff --git a/pkgs/development/compilers/idris/default.nix b/pkgs/development/compilers/idris/default.nix
index f0b07f9d0fa..0761f189bc8 100644
--- a/pkgs/development/compilers/idris/default.nix
+++ b/pkgs/development/compilers/idris/default.nix
@@ -11,8 +11,8 @@
 
 cabal.mkDerivation (self: {
   pname = "idris";
-  version = "0.9.14.1";
-  sha256 = "11x4f0hvd51m9rlf9r0i5xsjmc73kjsayny4xyv0wgb88v9v737b";
+  version = "0.9.14.2";
+  sha256 = "0j64kx357l16z9y9j20i7mvxgqff94bfssbhh1shb13c0pk5lmi6";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/compilers/sbcl/default.nix b/pkgs/development/compilers/sbcl/default.nix
index d3892d43d15..535f2697fea 100644
--- a/pkgs/development/compilers/sbcl/default.nix
+++ b/pkgs/development/compilers/sbcl/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name    = "sbcl-${version}";
-  version = "1.2.0";
+  version = "1.2.3";
 
   src = fetchurl {
     url    = "mirror://sourceforge/project/sbcl/sbcl/${version}/${name}-source.tar.bz2";
-    sha256 = "13k20sys1v4lvgis8cnbczww6zs93rw176vz07g4jx06418k53x2";
+    sha256 = "0lz2a79dlxxyw05s14l6xp35zjsazgbp1dmqygqi0cmd8dc5vj6j";
   };
 
   buildInputs = [ ]
diff --git a/pkgs/development/interpreters/acl2/default.nix b/pkgs/development/interpreters/acl2/default.nix
index 6d074ac9f27..568551bb5ba 100644
--- a/pkgs/development/interpreters/acl2/default.nix
+++ b/pkgs/development/interpreters/acl2/default.nix
@@ -2,7 +2,7 @@ a :
 let 
   fetchurl = a.fetchurl;
 
-  version = a.lib.attrByPath ["version"] "v3-5" a; 
+  version = a.lib.attrByPath ["version"] "v6-5" a; 
   buildInputs = with a; [
     sbcl
   ];
@@ -10,7 +10,7 @@ in
 rec {
   src = fetchurl {
     url = "http://www.cs.utexas.edu/users/moore/acl2/${version}/distrib/acl2.tar.gz";
-    sha256 = "0zmh1njpp7n7azcyjlygr0h0k51d18s1jkj0dr1jn2bh7mpysajk";
+    sha256 = "19kfclgpdyms016s06pjf3icj3mx9jlcj8vfgpbx2ac4ls0ir36g";
     name = "acl2-${version}.tar.gz";
   };
 
diff --git a/pkgs/development/interpreters/erlang/R16.nix b/pkgs/development/interpreters/erlang/R16.nix
index 5945cdd8299..23243803e8d 100644
--- a/pkgs/development/interpreters/erlang/R16.nix
+++ b/pkgs/development/interpreters/erlang/R16.nix
@@ -1,13 +1,15 @@
 { stdenv, fetchurl, perl, gnum4, ncurses, openssl
 , gnused, gawk, makeWrapper
+, odbcSupport ? false, unixODBC ? null
 , wxSupport ? false, mesa ? null, wxGTK ? null, xlibs ? null }:
 
 assert wxSupport -> mesa != null && wxGTK != null && xlibs != null;
+assert odbcSupport -> unixODBC != null;
 
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  name = "erlang-" + version;
+  name = "erlang-" + version + "${optionalString odbcSupport "-odbc"}";
   version = "16B03-1";
 
   src = fetchurl {
@@ -17,7 +19,8 @@ stdenv.mkDerivation rec {
 
   buildInputs =
     [ perl gnum4 ncurses openssl makeWrapper
-    ] ++ optional wxSupport [ mesa wxGTK xlibs.libX11 ];
+    ] ++ optional wxSupport [ mesa wxGTK xlibs.libX11 ]
+      ++ optional odbcSupport [ unixODBC ];
 
   patchPhase = '' sed -i "s@/bin/rm@rm@" lib/odbc/configure erts/configure '';
 
@@ -26,7 +29,7 @@ stdenv.mkDerivation rec {
     sed -e s@/bin/pwd@pwd@g -i otp_build
   '';
 
-  configureFlags= "--with-ssl=${openssl} ${optionalString stdenv.isDarwin "--enable-darwin-64bit"}";
+  configureFlags= "--with-ssl=${openssl} ${optionalString odbcSupport "--with-odbc=${unixODBC}"} ${optionalString stdenv.isDarwin "--enable-darwin-64bit"}";
 
   postInstall = let
     manpages = fetchurl {
diff --git a/pkgs/development/interpreters/erlang/R17.nix b/pkgs/development/interpreters/erlang/R17.nix
index 2aba55d3679..83ea79d67f3 100644
--- a/pkgs/development/interpreters/erlang/R17.nix
+++ b/pkgs/development/interpreters/erlang/R17.nix
@@ -1,13 +1,15 @@
 { stdenv, fetchurl, perl, gnum4, ncurses, openssl
 , gnused, gawk, makeWrapper
+, odbcSupport ? false, unixODBC ? null
 , wxSupport ? false, mesa ? null, wxGTK ? null, xlibs ? null }:
 
 assert wxSupport -> mesa != null && wxGTK != null && xlibs != null;
+assert odbcSupport -> unixODBC != null;
 
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  name = "erlang-" + version;
+  name = "erlang-" + version + "${optionalString odbcSupport "-odbc"}";
   version = "17.1";
 
   src = fetchurl {
@@ -17,7 +19,8 @@ stdenv.mkDerivation rec {
 
   buildInputs =
     [ perl gnum4 ncurses openssl makeWrapper
-    ] ++ optional wxSupport [ mesa wxGTK xlibs.libX11 ];
+    ] ++ optional wxSupport [ mesa wxGTK xlibs.libX11 ]
+      ++ optional odbcSupport [ unixODBC ];
 
   patchPhase = '' sed -i "s@/bin/rm@rm@" lib/odbc/configure erts/configure '';
 
@@ -26,7 +29,7 @@ stdenv.mkDerivation rec {
     sed -e s@/bin/pwd@pwd@g -i otp_build
   '';
 
-  configureFlags= "--with-ssl=${openssl} ${optionalString stdenv.isDarwin "--enable-darwin-64bit"}";
+  configureFlags= "--with-ssl=${openssl} ${optionalString odbcSupport "--with-odbc=${unixODBC}"} ${optionalString stdenv.isDarwin "--enable-darwin-64bit"}";
 
   postInstall = let
     manpages = fetchurl {
diff --git a/pkgs/development/interpreters/octave/default.nix b/pkgs/development/interpreters/octave/default.nix
index 1addccb4bf8..eac067da282 100644
--- a/pkgs/development/interpreters/octave/default.nix
+++ b/pkgs/development/interpreters/octave/default.nix
@@ -1,18 +1,16 @@
-{stdenv, fetchurl, gfortran, readline, ncurses, perl, flex, texinfo, qhull,
-libX11, graphicsmagick, pcre, liblapack, pkgconfig, mesa, fltk,
-fftw, fftwSinglePrec, zlib, curl, qrupdate
+{ stdenv, fetchurl, gfortran, readline, ncurses, perl, flex, texinfo, qhull
+, libX11, graphicsmagick, pcre, liblapack, pkgconfig, mesa, fltk
+, fftw, fftwSinglePrec, zlib, curl, qrupdate
 , qt ? null, ghostscript ? null, llvm ? null, hdf5 ? null,glpk ? null
 , suitesparse ? null, gnuplot ? null, openjdk ? null, python ? null
 }:
 
-let
-  version = "3.8.1";
-in
 stdenv.mkDerivation rec {
+  version = "3.8.2";
   name = "octave-${version}";
   src = fetchurl {
     url = "mirror://gnu/octave/${name}.tar.bz2";
-    sha256 = "1gcvzbgyz98mxzy3gjkdbdiirafkl73l9ywml11j412amp92wxnn";
+    sha256 = "83bbd701aab04e7e57d0d5b8373dd54719bebb64ce0a850e69bf3d7454f33bae";
   };
 
   buildInputs = [ gfortran readline ncurses perl flex texinfo qhull libX11
diff --git a/pkgs/development/interpreters/pypy/2.3/default.nix b/pkgs/development/interpreters/pypy/2.3/default.nix
index 0ed13e2f646..0b3ca739092 100644
--- a/pkgs/development/interpreters/pypy/2.3/default.nix
+++ b/pkgs/development/interpreters/pypy/2.3/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2, pkgconfig, libffi
-, sqlite, openssl, ncurses, pythonFull, expat, tcl, tk, x11, libX11 }:
+, sqlite, openssl, ncurses, pythonFull, expat, tcl, tk, x11, libX11
+, makeWrapper }:
 
 assert zlibSupport -> zlib != null;
 
@@ -20,7 +21,7 @@ let
       sha256 = "0fg4l48c7n59n5j3b1dgcsr927xzylkfny4a6pnk6z0pq2bhvl9z";
     };
 
-    buildInputs = [ bzip2 openssl pkgconfig pythonFull libffi ncurses expat sqlite tk tcl x11 libX11 ]
+    buildInputs = [ bzip2 openssl pkgconfig pythonFull libffi ncurses expat sqlite tk tcl x11 libX11 makeWrapper ]
       ++ stdenv.lib.optional (stdenv ? gcc && stdenv.gcc.libc != null) stdenv.gcc.libc
       ++ stdenv.lib.optional zlibSupport zlib;
 
@@ -84,9 +85,12 @@ let
        ln -s $out/pypy-c/lib-python/${pythonVersion} $out/lib/${libPrefix}
 
        # verify cffi modules
-       $out/bin/pypy -c "import Tkinter;import sqlite3"
+       $out/bin/pypy -c "import Tkinter;import sqlite3;import curses"
 
-       # TODO: compile python files?
+       # make sure pypy finds sqlite3 library
+       wrapProgram "$out/bin/pypy" \
+         --set LD_LIBRARY_PATH "${LD_LIBRARY_PATH}" \
+         --set LIBRARY_PATH "${LIBRARY_PATH}"
     '';
 
     passthru = {
@@ -98,7 +102,7 @@ let
     enableParallelBuilding = true;
 
     meta = with stdenv.lib; {
-      homepage = "http://pypy.org/";
+      homepage = http://pypy.org/;
       description = "Fast, compliant alternative implementation of the Python language (2.7.3)";
       license = licenses.mit;
       platforms = platforms.linux;
diff --git a/pkgs/development/interpreters/python/3.4/default.nix b/pkgs/development/interpreters/python/3.4/default.nix
index 3477cedf4b7..312bf247de7 100644
--- a/pkgs/development/interpreters/python/3.4/default.nix
+++ b/pkgs/development/interpreters/python/3.4/default.nix
@@ -36,6 +36,8 @@ stdenv.mkDerivation {
 
   NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
 
+  patches = [ ./issue21121-3.patch ];
+
   preConfigure = ''
     for i in /usr /sw /opt /pkg; do	# improve purity
       substituteInPlace ./setup.py --replace $i /no-such-path
diff --git a/pkgs/development/interpreters/python/3.4/issue21121-3.patch b/pkgs/development/interpreters/python/3.4/issue21121-3.patch
new file mode 100644
index 00000000000..506d9ea9b3d
--- /dev/null
+++ b/pkgs/development/interpreters/python/3.4/issue21121-3.patch
@@ -0,0 +1,86 @@
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -71,12 +71,17 @@
+ BASECFLAGS=	@BASECFLAGS@
+ BASECPPFLAGS=	@BASECPPFLAGS@
+ CONFIGURE_CFLAGS=	@CFLAGS@
++# CFLAGS_NODIST is used for building the interpreter and stdlib C extensions.
++# Use it when a compiler flag should _not_ be part of the distutils CFLAGS
++# once Python is installed (Issue #21121).
++CONFIGURE_CFLAGS_NODIST=@CFLAGS_NODIST@
+ CONFIGURE_CPPFLAGS=	@CPPFLAGS@
+ CONFIGURE_LDFLAGS=	@LDFLAGS@
+ # Avoid assigning CFLAGS, LDFLAGS, etc. so users can use them on the
+ # command line to append to these values without stomping the pre-set
+ # values.
+ PY_CFLAGS=	$(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS)
++PY_CFLAGS_NODIST=$(CONFIGURE_CFLAGS_NODIST) $(CFLAGS_NODIST)
+ # Both CPPFLAGS and LDFLAGS need to contain the shell's value for setup.py to
+ # be able to build extension modules using the directories specified in the
+ # environment variables
+@@ -91,7 +96,7 @@
+ # Extra C flags added for building the interpreter object files.
+ CFLAGSFORSHARED=@CFLAGSFORSHARED@
+ # C flags used for building the interpreter object files
+-PY_CORE_CFLAGS=	$(PY_CFLAGS) $(PY_CPPFLAGS) $(CFLAGSFORSHARED) -DPy_BUILD_CORE
++PY_CORE_CFLAGS=	$(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) $(CFLAGSFORSHARED) -DPy_BUILD_CORE
+ 
+ 
+ # Machine-dependent subdirectories
+diff --git a/configure b/configure
+--- a/configure
++++ b/configure
+@@ -662,6 +662,7 @@
+ LIBTOOL_CRUFT
+ OTHER_LIBTOOL_OPT
+ UNIVERSAL_ARCH_FLAGS
++CFLAGS_NODIST
+ BASECFLAGS
+ OPT
+ ABIFLAGS
+@@ -6504,7 +6505,7 @@
+ 
+     if test $ac_cv_declaration_after_statement_warning = yes
+     then
+-      BASECFLAGS="$BASECFLAGS -Werror=declaration-after-statement"
++      CFLAGS_NODIST="$CFLAGS_NODIST -Werror=declaration-after-statement"
+     fi
+ 
+     # if using gcc on alpha, use -mieee to get (near) full IEEE 754
+diff --git a/configure.ac b/configure.ac
+--- a/configure.ac
++++ b/configure.ac
+@@ -1147,6 +1147,7 @@
+ fi
+ 
+ AC_SUBST(BASECFLAGS)
++AC_SUBST(CFLAGS_NODIST)
+ 
+ # The -arch flags for universal builds on OSX
+ UNIVERSAL_ARCH_FLAGS=
+@@ -1231,7 +1232,7 @@
+ 
+     if test $ac_cv_declaration_after_statement_warning = yes
+     then
+-      BASECFLAGS="$BASECFLAGS -Werror=declaration-after-statement"
++      CFLAGS_NODIST="$CFLAGS_NODIST -Werror=declaration-after-statement"
+     fi
+ 
+     # if using gcc on alpha, use -mieee to get (near) full IEEE 754
+diff --git a/setup.py b/setup.py
+--- a/setup.py
++++ b/setup.py
+@@ -19,6 +19,12 @@
+ 
+ cross_compiling = "_PYTHON_HOST_PLATFORM" in os.environ
+ 
++# Add special CFLAGS reserved for building the interpreter and the stdlib
++# modules (Issue #21121).
++cflags = sysconfig.get_config_var('CFLAGS')
++py_cflags_nodist = sysconfig.get_config_var('PY_CFLAGS_NODIST')
++sysconfig.get_config_vars()['CFLAGS'] = cflags + ' ' + py_cflags_nodist
++
+ def get_platform():
+     # cross build
+     if "_PYTHON_HOST_PLATFORM" in os.environ:
diff --git a/pkgs/development/interpreters/regina/default.nix b/pkgs/development/interpreters/regina/default.nix
index d8b3558be4f..992f7281554 100644
--- a/pkgs/development/interpreters/regina/default.nix
+++ b/pkgs/development/interpreters/regina/default.nix
@@ -12,16 +12,15 @@ let
   sourceInfo = rec {
     baseName="Regina-REXX";
     pname="regina-rexx";
-    version="3.5";
+    version = "3.8.2";
     name="${baseName}-${version}";
     url="mirror://sourceforge/${pname}/${pname}/${version}/${name}.tar.gz";
-    hash="0gh0k6lbhfixs44adha7lxirl3a08jabdylzr6m7mh5q5fhzv5f8";
   };
 in
 rec {
   src = a.fetchurl {
     url = sourceInfo.url;
-    sha256 = sourceInfo.hash;
+    sha256 = "06vr6p9pqr5zzsxm1l9iwb2w9z8qkm971c2knh0vf5bbm6znjz35";
   };
 
   inherit (sourceInfo) name version;
@@ -43,11 +42,8 @@ rec {
     platforms = with a.lib.platforms;
       linux;
     license = a.lib.licenses.lgpl2;
-  };
-  passthru = {
-    updateInfo = {
-      downloadPage = "http://sourceforge.net/projects/regina-rexx/files/regina-rexx/";
-    };
+    downloadPage = "http://sourceforge.net/projects/regina-rexx/files/regina-rexx/";
+    inherit version;
   };
 }) x
 
diff --git a/pkgs/development/interpreters/regina/default.upstream b/pkgs/development/interpreters/regina/default.upstream
new file mode 100644
index 00000000000..7b3c6905a1c
--- /dev/null
+++ b/pkgs/development/interpreters/regina/default.upstream
@@ -0,0 +1,5 @@
+url http://sourceforge.net/projects/regina-rexx/files/regina-rexx/
+SF_version_dir
+SF_version_tarball
+SF_redirect
+minimize_overwrite
diff --git a/pkgs/development/interpreters/ruby/ruby-2.1.2.nix b/pkgs/development/interpreters/ruby/ruby-2.1.2.nix
new file mode 100644
index 00000000000..430bf4f1665
--- /dev/null
+++ b/pkgs/development/interpreters/ruby/ruby-2.1.2.nix
@@ -0,0 +1,72 @@
+{ stdenv, fetchurl
+, zlib, zlibSupport ? true
+, openssl, opensslSupport ? true
+, gdbm, gdbmSupport ? true
+, ncurses, readline, cursesSupport ? false
+, groff, docSupport ? false
+, libyaml, yamlSupport ? true
+}:
+
+let
+  op = stdenv.lib.optional;
+  ops = stdenv.lib.optionals;
+in
+
+stdenv.mkDerivation rec {
+  name = "ruby-2.1.2";
+  src = fetchurl {
+    url = "http://cache.ruby-lang.org/pub/ruby/2.1/${name}.tar.bz2";
+    sha256 = "6948b02570cdfb89a8313675d4aa665405900e27423db408401473f30fc6e901";
+  };
+
+  # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
+  NROFF = "${groff}/bin/nroff";
+
+  buildInputs = (ops cursesSupport [ ncurses readline ] )
+    ++ (op docSupport groff )
+    ++ (op zlibSupport zlib)
+    ++ (op opensslSupport openssl)
+    ++ (op gdbmSupport gdbm)
+    ++ (op yamlSupport libyaml)
+    # Looks like ruby fails to build on darwin without readline even if curses
+    # support is not enabled, so add readline to the build inputs if curses
+    # support is disabled (if it's enabled, we already have it) and we're
+    # running on darwin
+    ++ (op (!cursesSupport && stdenv.isDarwin) readline);
+
+  enableParallelBuilding = true;
+
+  configureFlags = ["--enable-shared" ]
+    # on darwin, we have /usr/include/tk.h -- so the configure script detects
+    # that tk is installed
+    ++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]);
+
+  installFlags = stdenv.lib.optionalString docSupport "install-doc";
+  # Bundler tries to create this directory
+  postInstall = ''
+    # Bundler tries to create this directory
+    mkdir -pv $out/${passthru.gemPath}
+    mkdir -p $out/nix-support
+    cat > $out/nix-support/setup-hook <<EOF
+    addGemPath() {
+      addToSearchPath GEM_PATH \$1/${passthru.gemPath}
+    }
+
+    envHooks+=(addGemPath)
+    EOF
+  '';
+
+  meta = {
+    license = "Ruby";
+    homepage = "http://www.ruby-lang.org/en/";
+    description = "The Ruby language";
+    platforms = stdenv.lib.platforms.all;
+  };
+
+  passthru = rec {
+    majorVersion = "2.1";
+    minorVersion = "2";
+    libPath = "lib/ruby/${majorVersion}";
+    gemPath = "lib/ruby/gems/${majorVersion}";
+  };
+}
diff --git a/pkgs/development/libraries/CGAL/default.nix b/pkgs/development/libraries/CGAL/default.nix
index 12273f84566..4c2739d00ec 100644
--- a/pkgs/development/libraries/CGAL/default.nix
+++ b/pkgs/development/libraries/CGAL/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, cmake, boost, gmp, mpfr }:
 
 stdenv.mkDerivation rec {
-  version = "4.3";
+  version = "4.4";
 
   name = "cgal-${version}";
 
   src = fetchurl {
-    url = "https://gforge.inria.fr/frs/download.php/32995/CGAL-${version}.tar.xz";
-    sha256 = "015vw57dmy43bf63mg3916cgcsbv9dahwv24bnmiajyanj2mhiyc";
+    url = "https://gforge.inria.fr/frs/download.php/33526/CGAL-${version}.tar.xz";
+    sha256 = "1s0ylyrx74vgw6vsg6xxk4b07jrxh8pqcmxcbkx46v01nczv3ixj";
   };
 
   buildInputs = [ cmake boost gmp mpfr ];
diff --git a/pkgs/development/libraries/audio/lilv/default.nix b/pkgs/development/libraries/audio/lilv/default.nix
index d1510e34238..9f3307742ec 100644
--- a/pkgs/development/libraries/audio/lilv/default.nix
+++ b/pkgs/development/libraries/audio/lilv/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "lilv-${version}";
-  version = "0.18.0";
+  version = "0.20.0";
 
   src = fetchurl {
     url = "http://download.drobilla.net/${name}.tar.bz2";
-    sha256 = "1k9wfc08ylgbkwbnvh1fx1bdzl3y59xrrx8gv0vk68yzcvcmv6am";
+    sha256 = "0aj2plkx56iar8vzjbq2l7hi7sp0ml99m0h44rgwai2x4vqkk2j2";
   };
 
   buildInputs = [ lv2 pkgconfig python serd sord sratom ];
diff --git a/pkgs/development/libraries/audio/lv2/default.nix b/pkgs/development/libraries/audio/lv2/default.nix
index 25d19d089a5..f03f6b3d371 100644
--- a/pkgs/development/libraries/audio/lv2/default.nix
+++ b/pkgs/development/libraries/audio/lv2/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "lv2-${version}";
-  version = "1.8.0";
+  version = "1.10.0";
 
   src = fetchurl {
     url = "http://lv2plug.in/spec/${name}.tar.bz2";
-    sha256 = "1mxkp7gajh1alw6s358cqwf3qkpr1ld9wfxwswnqrxcd9a7hxjd4";
+    sha256 = "1md41x9snrp4mcfyli7lyfpvcfa78nfy6xkdy84kppnl8m5qw378";
   };
 
   buildInputs = [ gtk libsndfile pkgconfig python ];
diff --git a/pkgs/development/libraries/audio/sratom/default.nix b/pkgs/development/libraries/audio/sratom/default.nix
index ac0b9d233fa..a4ba4c16c87 100644
--- a/pkgs/development/libraries/audio/sratom/default.nix
+++ b/pkgs/development/libraries/audio/sratom/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "sratom-${version}";
-  version = "0.4.4";
+  version = "0.4.6";
 
   src = fetchurl {
     url = "http://download.drobilla.net/${name}.tar.bz2";
-    sha256 = "1q4044md8nmqah8ay5mf4lgdl6x0sfa4cjqyqk9da8nqzvs2j37s";
+    sha256 = "080jjiyxjnj7hf25844hd9rb01grvzz1rk8mxcdnakywmspbxfd4";
   };
 
   buildInputs = [ lv2 pkgconfig python serd sord ];
diff --git a/pkgs/development/libraries/audio/suil/default.nix b/pkgs/development/libraries/audio/suil/default.nix
index 87e03472659..f5a98750ded 100644
--- a/pkgs/development/libraries/audio/suil/default.nix
+++ b/pkgs/development/libraries/audio/suil/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "suil-${version}";
-  version = "0.8.0";
+  version = "0.8.2";
 
   src = fetchurl {
     url = "http://download.drobilla.net/${name}.tar.bz2";
-    sha256 = "0y5sbgaivb03vmr3jcpzj16wqxa5h744ml4w3ylzglbxs2bqgl7n";
+    sha256 = "1s3adyiw7sa5gfvm5wasa61qa23629kprxyv6w8hbxdiwp0hhxkq";
   };
 
   buildInputs = [ gtk lv2 pkgconfig python qt4 serd sord sratom ];
diff --git a/pkgs/development/libraries/axis/builder.sh b/pkgs/development/libraries/axis/builder.sh
deleted file mode 100644
index d979eb9d803..00000000000
--- a/pkgs/development/libraries/axis/builder.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-source $stdenv/setup
-
-mkdir -p $out
-unpackPhase
-mv $directory/* $out
diff --git a/pkgs/development/libraries/axis/default.nix b/pkgs/development/libraries/axis/default.nix
deleted file mode 100644
index 62ae463b5fc..00000000000
--- a/pkgs/development/libraries/axis/default.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{stdenv, fetchurl}:
-
-stdenv.mkDerivation {
-  name = "axis-1.3";
-  directory = "axis-1_3";
-  builder = ./builder.sh;
-  src = fetchurl {
-    url = "http://archive.apache.org/dist/ws/axis/1_3/axis-bin-1_3.tar.gz";
-    md5 = "dd8203f08c37872f4fd2bfb45c4bfe04";
-  };
-  inherit stdenv;
-
-  meta = {
-    description = "Implementation of the SOAP (Simple Object Access Protocol) submission to W3C";
-  };
-}
diff --git a/pkgs/development/libraries/eigen/default.nix b/pkgs/development/libraries/eigen/default.nix
index 72a140ed371..14308dc0eb0 100644
--- a/pkgs/development/libraries/eigen/default.nix
+++ b/pkgs/development/libraries/eigen/default.nix
@@ -1,15 +1,15 @@
 {stdenv, fetchurl, cmake}:
 
 let
-  v = "3.2.1";
+  version = "3.2.2";
 in
 stdenv.mkDerivation {
-  name = "eigen-${v}";
+  name = "eigen-${version}";
   
   src = fetchurl {
-    url = "http://bitbucket.org/eigen/eigen/get/${v}.tar.bz2";
-    name = "eigen-${v}.tar.bz2";
-    sha256 = "12ljdirih9n3cf8hy00in285c2ccah7mgalmmr8gc3ldwznz5rk6";
+    url = "http://bitbucket.org/eigen/eigen/get/${version}.tar.gz";
+    name = "eigen-${version}.tar.gz";
+    sha256 = "0pwykjkz5n8wfyg9cjj7smgs54a9zc80m9gi106w43n2m72ni39i";
   };
   
   nativeBuildInputs = [ cmake ];
@@ -19,5 +19,6 @@ stdenv.mkDerivation {
     license = licenses.lgpl3Plus;
     homepage = http://eigen.tuxfamily.org ;
     maintainers = with stdenv.lib.maintainers; [ sander urkud raskin ];
+    inherit version;
   };
 }
diff --git a/pkgs/development/libraries/eigen/default.upstream b/pkgs/development/libraries/eigen/default.upstream
new file mode 100644
index 00000000000..c0c05efc466
--- /dev/null
+++ b/pkgs/development/libraries/eigen/default.upstream
@@ -0,0 +1,4 @@
+url http://eigen.tuxfamily.org/
+ensure_choice
+version '.*/([-0-9.]+)[.]tar[.].*' '\1'
+do_overwrite() { do_overwrite_just_version; }
diff --git a/pkgs/development/libraries/expat/default.nix b/pkgs/development/libraries/expat/default.nix
index d7915a93962..9a49225d172 100644
--- a/pkgs/development/libraries/expat/default.nix
+++ b/pkgs/development/libraries/expat/default.nix
@@ -8,9 +8,10 @@ stdenv.mkDerivation rec {
     sha256 = "11pblz61zyxh68s5pdcbhc30ha1b2vfjd83aiwfg4vc15x3hadw2";
   };
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://www.libexpat.org/;
     description = "A stream-oriented XML parser library written in C";
-    platforms = stdenv.lib.platforms.all;
+    platforms = platforms.all;
+    license = licenses.mit; # expat version
   };
 }
diff --git a/pkgs/development/libraries/ffmpeg/2.x.nix b/pkgs/development/libraries/ffmpeg/2.x.nix
index 8a25c4812b2..8114eb4752d 100644
--- a/pkgs/development/libraries/ffmpeg/2.x.nix
+++ b/pkgs/development/libraries/ffmpeg/2.x.nix
@@ -5,7 +5,8 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "ffmpeg-2.3.3";
+  version = "2.3.3";
+  name = "ffmpeg-${version}";
 
   src = fetchurl {
     url = "http://www.ffmpeg.org/releases/${name}.tar.bz2";
@@ -102,5 +103,6 @@ stdenv.mkDerivation rec {
     description = "A complete, cross-platform solution to record, convert and stream audio and video";
     license = if (fdkAACSupport || faacSupport) then stdenv.lib.licenses.unfree else stdenv.lib.licenses.gpl2Plus;
     platforms = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
   };
 }
diff --git a/pkgs/development/libraries/gmock/default.nix b/pkgs/development/libraries/gmock/default.nix
new file mode 100644
index 00000000000..71ac281195b
--- /dev/null
+++ b/pkgs/development/libraries/gmock/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, unzip, cmake}:
+
+stdenv.mkDerivation rec {
+  version = "1.7.0";
+  name = "gmock-${version}";
+
+  src = fetchurl {
+    url = "https://googlemock.googlecode.com/files/${name}.zip";
+    sha256="26fcbb5925b74ad5fc8c26b0495dfc96353f4d553492eb97e85a8a6d2f43095b";
+  };
+
+  buildInputs = [ unzip cmake ];
+
+  buildPhase = ''
+    # avoid building gtest
+    make gmock gmock_main
+  '';
+
+  installPhase = ''
+    mkdir -p $out/lib
+    cp -v libgmock.a libgmock_main.a $out/lib
+    cp -v -r ../include $out
+    cp -v -r ../src $out
+  '';
+
+  meta = {
+    description = "Google mock: Google's framework for writing C++ mock classes";
+    homepage = https://code.google.com/p/googlemock/;
+    license = stdenv.lib.licenses.bsd3;
+    maintainers = [ stdenv.lib.maintainers.auntie ];
+  };
+}
diff --git a/pkgs/development/libraries/gnutls/3.1.nix b/pkgs/development/libraries/gnutls/3.1.nix
index 6aea78a3ac5..44ea0176e38 100644
--- a/pkgs/development/libraries/gnutls/3.1.nix
+++ b/pkgs/development/libraries/gnutls/3.1.nix
@@ -4,11 +4,11 @@
 assert guileBindings -> guile != null;
 
 stdenv.mkDerivation rec {
-  name = "gnutls-3.1.25";
+  name = "gnutls-3.1.26";
 
   src = fetchurl {
     url = "ftp://ftp.gnutls.org/gcrypt/gnutls/v3.1/${name}.tar.lz";
-    sha256 = "1i1v8pbaw72k0ps09i3lvc1zr9gn34jpliiijbs8k7axrv2w9n5g";
+    sha256 = "7947e18fd0c292c0274d810c9bdf674b8faa3566e056ea404a39f335982607a3";
   };
 
   # FreeBSD doesn't have <alloca.h>, and Gnulib's `alloca' module isn't used.
diff --git a/pkgs/development/libraries/gnutls/3.2.nix b/pkgs/development/libraries/gnutls/3.2.nix
index cd48e08a39c..5bf933fbc96 100644
--- a/pkgs/development/libraries/gnutls/3.2.nix
+++ b/pkgs/development/libraries/gnutls/3.2.nix
@@ -4,11 +4,11 @@
 assert guileBindings -> guile != null;
 
 stdenv.mkDerivation rec {
-  name = "gnutls-3.2.15";
+  name = "gnutls-3.2.17";
 
   src = fetchurl {
     url = "ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2/${name}.tar.lz";
-    sha256 = "16c5c4k41mxib8i06npks940p9xllgn1wrackfp8712wdvl5zc4q";
+    sha256 = "a332adda1d294fbee859ae46ee0c128d8959c4a5b9c28e7cdbe5c9b56898fc25";
   };
 
   patches =
diff --git a/pkgs/development/libraries/haskell/Chart-cairo/default.nix b/pkgs/development/libraries/haskell/Chart-cairo/default.nix
index d2dea815819..28480a4d27d 100644
--- a/pkgs/development/libraries/haskell/Chart-cairo/default.nix
+++ b/pkgs/development/libraries/haskell/Chart-cairo/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "Chart-cairo";
-  version = "1.2.4";
-  sha256 = "1ggqh3v14mwv9q1pmz3hbx7g1dvibfwl1vzvag92q7432q4pqm2z";
+  version = "1.3";
+  sha256 = "1d8v4imbb2g30gbxj3xlm1vqc17cnqbiysxp78n3vrxnalr8s98l";
   buildDepends = [
     cairo Chart colour dataDefaultClass lens mtl operational time
   ];
diff --git a/pkgs/development/libraries/haskell/Chart-diagrams/default.nix b/pkgs/development/libraries/haskell/Chart-diagrams/default.nix
index 002b762fbac..ff4898eb1e7 100644
--- a/pkgs/development/libraries/haskell/Chart-diagrams/default.nix
+++ b/pkgs/development/libraries/haskell/Chart-diagrams/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "Chart-diagrams";
-  version = "1.2.4";
-  sha256 = "099frqvfjqqc7h3zr52saqyg37di0klr0y649afzxd7lj3d67mvw";
+  version = "1.3";
+  sha256 = "1lfdv2bn942w4b0bjd6aw59wdc2jfk305ym5vm88liy9127b65bp";
   buildDepends = [
     blazeSvg Chart colour dataDefaultClass diagramsCore diagramsLib
     diagramsPostscript diagramsSvg lens mtl operational SVGFonts text
@@ -20,6 +20,5 @@ cabal.mkDerivation (self: {
     description = "Diagrams backend for Charts";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
-    hydraPlatforms = self.stdenv.lib.platforms.none;
   };
 })
diff --git a/pkgs/development/libraries/haskell/Chart-gtk/default.nix b/pkgs/development/libraries/haskell/Chart-gtk/default.nix
index 9dbb3c8ae9a..0ce13bd8737 100644
--- a/pkgs/development/libraries/haskell/Chart-gtk/default.nix
+++ b/pkgs/development/libraries/haskell/Chart-gtk/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "Chart-gtk";
-  version = "1.2.4";
-  sha256 = "16dfmkls341cmk13j1z3rw2wxdvxr5rqsv1ff4qjhjak9j7hkqjq";
+  version = "1.3";
+  sha256 = "1bi7gim31w3xf6jsd2hkwhkhw1i9c4dmxnm3f46336k9rsxn59ph";
   buildDepends = [ cairo Chart ChartCairo colour gtk mtl time ];
   meta = {
     homepage = "https://github.com/timbod7/haskell-chart/wiki";
diff --git a/pkgs/development/libraries/haskell/Chart/default.nix b/pkgs/development/libraries/haskell/Chart/default.nix
index d5696a562da..557721007ed 100644
--- a/pkgs/development/libraries/haskell/Chart/default.nix
+++ b/pkgs/development/libraries/haskell/Chart/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "Chart";
-  version = "1.2.4";
-  sha256 = "0zizrkxsligvxs5x5r2j0pynf6ncjl4mgyzbh1zfqgnz29frylh7";
+  version = "1.3";
+  sha256 = "1xvr90x1kmnjfmbap47ffzi3xbawcwz7q6b76v2gbqp4gjlhiyx7";
   buildDepends = [
     colour dataDefaultClass lens mtl operational time
   ];
diff --git a/pkgs/development/libraries/haskell/FontyFruity/default.nix b/pkgs/development/libraries/haskell/FontyFruity/default.nix
new file mode 100644
index 00000000000..1a613492f43
--- /dev/null
+++ b/pkgs/development/libraries/haskell/FontyFruity/default.nix
@@ -0,0 +1,16 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, binary, deepseq, filepath, text, vector }:
+
+cabal.mkDerivation (self: {
+  pname = "FontyFruity";
+  version = "0.3";
+  sha256 = "0ivz7hkz5mx8bqqv5av56a8rw4231wyzzg0dhz6465d59iqmjhd4";
+  buildDepends = [ binary deepseq filepath text vector ];
+  meta = {
+    description = "A true type file format loader";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = with self.stdenv.lib.maintainers; [ bergey ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/IntervalMap/default.nix b/pkgs/development/libraries/haskell/IntervalMap/default.nix
index 774cbd8a19e..65b53d91b52 100644
--- a/pkgs/development/libraries/haskell/IntervalMap/default.nix
+++ b/pkgs/development/libraries/haskell/IntervalMap/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "IntervalMap";
-  version = "0.3.0.3";
-  sha256 = "11lxsjq9nw9mmj5ga0x03d8rgcx2s85kzi17d9cm7m28mq4dqdag";
+  version = "0.4.0.1";
+  sha256 = "0cq0dmmawrss4jjkz3br0lhp37d4k7rd3cinbcyf0bf39dfk6mrf";
   buildDepends = [ deepseq ];
   testDepends = [ Cabal deepseq QuickCheck ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/JuicyPixels/default.nix b/pkgs/development/libraries/haskell/JuicyPixels/default.nix
index fcd2689c548..2305756f93b 100644
--- a/pkgs/development/libraries/haskell/JuicyPixels/default.nix
+++ b/pkgs/development/libraries/haskell/JuicyPixels/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "JuicyPixels";
-  version = "3.1.6.1";
-  sha256 = "1v560y0l1zpznbpw8zgb2j6zlcwi8i207xgzggzzd3p0v2m8955c";
+  version = "3.1.7.1";
+  sha256 = "0mhsknqdrhxnm622mgrswvj4kvksh87x18s5ddgk4ylf0s2fjlap";
   buildDepends = [
     binary deepseq mtl primitive transformers vector zlib
   ];
diff --git a/pkgs/development/libraries/haskell/MFlow/default.nix b/pkgs/development/libraries/haskell/MFlow/default.nix
index a0e4b787ec9..f5e088a4238 100644
--- a/pkgs/development/libraries/haskell/MFlow/default.nix
+++ b/pkgs/development/libraries/haskell/MFlow/default.nix
@@ -9,8 +9,8 @@
 
 cabal.mkDerivation (self: {
   pname = "MFlow";
-  version = "0.4.5.7";
-  sha256 = "0faw082z8yyzf0k1vrgpqa8kvwb2zwmasy1p1vvj3a7lhhnlr20s";
+  version = "0.4.5.8";
+  sha256 = "1gfv5ky68dyn8gjjg60c5s9x3dl9xn6j9q43w7vaj9sd1q12wk3c";
   buildDepends = [
     blazeHtml blazeMarkup caseInsensitive clientsession conduit
     conduitExtra extensibleExceptions httpTypes monadloc mtl parsec
diff --git a/pkgs/development/libraries/haskell/Rasterific/default.nix b/pkgs/development/libraries/haskell/Rasterific/default.nix
new file mode 100644
index 00000000000..c53e9f72858
--- /dev/null
+++ b/pkgs/development/libraries/haskell/Rasterific/default.nix
@@ -0,0 +1,26 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, binary, criterion, deepseq, dlist, filepath, FontyFruity
+, free, JuicyPixels, mtl, QuickCheck, statistics, vector
+, vectorAlgorithms
+}:
+
+cabal.mkDerivation (self: {
+  pname = "Rasterific";
+  version = "0.3";
+  sha256 = "1chbcfcb5il7fbzivszap60qfwcwrq85kpx9y6qdr2pim39199fa";
+  buildDepends = [
+    dlist FontyFruity free JuicyPixels mtl vector vectorAlgorithms
+  ];
+  testDepends = [
+    binary criterion deepseq filepath FontyFruity JuicyPixels
+    QuickCheck statistics vector
+  ];
+  doCheck = false;
+  meta = {
+    description = "A pure haskell drawing engine";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = with self.stdenv.lib.maintainers; [ bergey ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/Yampa/default.nix b/pkgs/development/libraries/haskell/Yampa/default.nix
index a4d1ea666a2..5ae451f8163 100644
--- a/pkgs/development/libraries/haskell/Yampa/default.nix
+++ b/pkgs/development/libraries/haskell/Yampa/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "Yampa";
-  version = "0.9.5";
-  sha256 = "0r6fm2ccls7gbc5s0vbrzrqv6marnzlzc7zr4afkgfk9jsqfmqjh";
+  version = "0.9.6";
+  sha256 = "0a1m0sb0i3kkxbp10vpqd6iw83ksm4alavrg04arzrv71p3skyg0";
   buildDepends = [ random ];
   meta = {
     homepage = "http://www.haskell.org/haskellwiki/Yampa";
diff --git a/pkgs/development/libraries/haskell/auto-update/default.nix b/pkgs/development/libraries/haskell/auto-update/default.nix
index e047e938dae..85f15b500ed 100644
--- a/pkgs/development/libraries/haskell/auto-update/default.nix
+++ b/pkgs/development/libraries/haskell/auto-update/default.nix
@@ -7,6 +7,7 @@ cabal.mkDerivation (self: {
   version = "0.1.1.2";
   sha256 = "0901zqky70wyxl17vwz6smhnpsfjnsk0f2xqiyz902vl7apx66c6";
   testDepends = [ hspec ];
+  doCheck = false;
   meta = {
     homepage = "https://github.com/yesodweb/wai";
     description = "Efficiently run periodic, on-demand actions";
diff --git a/pkgs/development/libraries/haskell/binary-conduit/default.nix b/pkgs/development/libraries/haskell/binary-conduit/default.nix
index 37774c1a16a..848004ca6af 100644
--- a/pkgs/development/libraries/haskell/binary-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/binary-conduit/default.nix
@@ -12,6 +12,7 @@ cabal.mkDerivation (self: {
   testDepends = [
     binary conduit hspec QuickCheck quickcheckAssertions resourcet
   ];
+  jailbreak = true;
   meta = {
     homepage = "http://github.com/qnikst/binary-conduit";
     description = "data serialization/deserialization conduit library";
diff --git a/pkgs/development/libraries/haskell/c2hs/default.nix b/pkgs/development/libraries/haskell/c2hs/default.nix
index 95ead17f01f..eaa91c51a23 100644
--- a/pkgs/development/libraries/haskell/c2hs/default.nix
+++ b/pkgs/development/libraries/haskell/c2hs/default.nix
@@ -1,18 +1,19 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, filepath, HUnit, languageC, shelly, testFramework
-, testFrameworkHunit, text, yaml
+{ cabal, dlist, filepath, HUnit, languageC, shelly, testFramework
+, testFrameworkHunit, text, transformers, yaml
 }:
 
 cabal.mkDerivation (self: {
   pname = "c2hs";
-  version = "0.17.2";
-  sha256 = "1xrk0izdy5akjgmg9k4l9ccmmgv1avwh152pfpc1xm2rrwrg4bxk";
+  version = "0.18.1";
+  sha256 = "17miqihfidzd1nqdswnd7j0580jlv2pj19wxlx8vb3dc5wga58xd";
   isLibrary = false;
   isExecutable = true;
-  buildDepends = [ filepath languageC ];
+  buildDepends = [ dlist filepath languageC shelly text yaml ];
   testDepends = [
-    filepath HUnit shelly testFramework testFrameworkHunit text yaml
+    filepath HUnit shelly testFramework testFrameworkHunit text
+    transformers
   ];
   jailbreak = true;
   doCheck = false;
diff --git a/pkgs/development/libraries/haskell/cabal-cargs/default.nix b/pkgs/development/libraries/haskell/cabal-cargs/default.nix
index a74e54f7e43..2f2b59b597a 100644
--- a/pkgs/development/libraries/haskell/cabal-cargs/default.nix
+++ b/pkgs/development/libraries/haskell/cabal-cargs/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cabal-cargs";
-  version = "0.7.1";
-  sha256 = "0y6v663mw4giwypdv34qr2l2fy1q7zdjvgw39m16sjna5lbwvm1n";
+  version = "0.7.2";
+  sha256 = "03095w08ff3g57qzx9dziv61q9x1rvqyph4lvxkccd1is2g1wywb";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/cabal-lenses/default.nix b/pkgs/development/libraries/haskell/cabal-lenses/default.nix
index b5427b3b747..8bf0148ba6b 100644
--- a/pkgs/development/libraries/haskell/cabal-lenses/default.nix
+++ b/pkgs/development/libraries/haskell/cabal-lenses/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cabal-lenses";
-  version = "0.3.1";
-  sha256 = "17piwqyzd33shp12qa6j4s579rrs34l44x19p2nzz69anhc4g1j7";
+  version = "0.4";
+  sha256 = "19ryd1qvsc301kdpk0zvw89aqhvk26ccbrgddm9j5m31mn62jl2d";
   buildDepends = [ Cabal lens unorderedContainers ];
   meta = {
     description = "Lenses and traversals for the Cabal library";
diff --git a/pkgs/development/libraries/haskell/cgi/3001.2.0.0.nix b/pkgs/development/libraries/haskell/cgi/3001.2.0.0.nix
new file mode 100644
index 00000000000..2bacef96e08
--- /dev/null
+++ b/pkgs/development/libraries/haskell/cgi/3001.2.0.0.nix
@@ -0,0 +1,18 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, exceptions, mtl, network, networkUri, parsec, xhtml }:
+
+cabal.mkDerivation (self: {
+  pname = "cgi";
+  version = "3001.2.0.0";
+  sha256 = "03az978d5ayv5v4g89h4wajjhcribyf37b8ws8kvsqir3i7h7k8d";
+  buildDepends = [ exceptions mtl network networkUri parsec xhtml ];
+  meta = {
+    homepage = "https://github.com/cheecheeo/haskell-cgi";
+    description = "A library for writing CGI programs";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    hydraPlatforms = self.stdenv.lib.platforms.none;
+    broken = true;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix b/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix
index 28e940f3489..286a20f2ba2 100644
--- a/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "classy-prelude-conduit";
-  version = "0.9.3";
-  sha256 = "0wsl3mhczinxl6ij8dpv5001db740z4jq43l2gpzdylv6pmpldzr";
+  version = "0.9.4";
+  sha256 = "07ggdd3c47bs0pj4hl8vl19k2jlbka73pq7x0m4rsgrrjxc5pr1r";
   buildDepends = [
     classyPrelude conduit conduitCombinators monadControl resourcet
     systemFileio transformers void
diff --git a/pkgs/development/libraries/haskell/classy-prelude/default.nix b/pkgs/development/libraries/haskell/classy-prelude/default.nix
index e45a6f256b9..018a54f42d7 100644
--- a/pkgs/development/libraries/haskell/classy-prelude/default.nix
+++ b/pkgs/development/libraries/haskell/classy-prelude/default.nix
@@ -1,19 +1,20 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
 { cabal, basicPrelude, chunkedData, enclosedExceptions, exceptions
-, hashable, hspec, liftedBase, monoTraversable, QuickCheck
-, semigroups, stm, systemFilepath, text, time, transformers
-, unorderedContainers, vector, vectorInstances
+, hashable, hspec, liftedBase, monoTraversable, mtl, primitive
+, QuickCheck, semigroups, stm, systemFilepath, text, time
+, transformers, unorderedContainers, vector, vectorInstances
 }:
 
 cabal.mkDerivation (self: {
   pname = "classy-prelude";
-  version = "0.9.3";
-  sha256 = "06y6zx3mmqjnha5p7y7blzn77bij71kndw2bmi07wz4s4lj9xsiv";
+  version = "0.9.4";
+  sha256 = "1pxg515dg174minvajaxl3sqpqjm862pgfpf7n2ynw5cqmaxngxa";
   buildDepends = [
     basicPrelude chunkedData enclosedExceptions exceptions hashable
-    liftedBase monoTraversable semigroups stm systemFilepath text time
-    transformers unorderedContainers vector vectorInstances
+    liftedBase monoTraversable mtl primitive semigroups stm
+    systemFilepath text time transformers unorderedContainers vector
+    vectorInstances
   ];
   testDepends = [
     hspec QuickCheck transformers unorderedContainers
diff --git a/pkgs/development/libraries/haskell/diagrams/rasterific.nix b/pkgs/development/libraries/haskell/diagrams/rasterific.nix
new file mode 100644
index 00000000000..c2e85058a90
--- /dev/null
+++ b/pkgs/development/libraries/haskell/diagrams/rasterific.nix
@@ -0,0 +1,24 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, dataDefaultClass, diagramsCore, diagramsLib, filepath
+, FontyFruity, JuicyPixels, lens, mtl, optparseApplicative
+, Rasterific, split, statestack, time
+}:
+
+cabal.mkDerivation (self: {
+  pname = "diagrams-rasterific";
+  version = "0.1.0.1";
+  sha256 = "1bgrwnrdhlnbcv5ra80x2nh5yr5bzz81f517zb0ws2y07l072gwm";
+  buildDepends = [
+    dataDefaultClass diagramsCore diagramsLib filepath FontyFruity
+    JuicyPixels lens mtl optparseApplicative Rasterific split
+    statestack time
+  ];
+  meta = {
+    homepage = "http://projects.haskell.org/diagrams/";
+    description = "Rasterific backend for diagrams";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = with self.stdenv.lib.maintainers; [ bergey ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/directory-layout/default.nix b/pkgs/development/libraries/haskell/directory-layout/default.nix
new file mode 100644
index 00000000000..2cc9682dccb
--- /dev/null
+++ b/pkgs/development/libraries/haskell/directory-layout/default.nix
@@ -0,0 +1,25 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, commandQq, doctest, filepath, free, hspec, lens
+, semigroups, temporary, text, transformers, unorderedContainers
+}:
+
+cabal.mkDerivation (self: {
+  pname = "directory-layout";
+  version = "0.7.4.1";
+  sha256 = "0hj7dfv5i2s1dk0rws2fg84crpxz1kgvrq68f373a6hwkbfhv89b";
+  buildDepends = [
+    commandQq filepath free hspec lens semigroups text transformers
+    unorderedContainers
+  ];
+  testDepends = [
+    commandQq doctest filepath free hspec lens semigroups temporary
+    text transformers unorderedContainers
+  ];
+  doCheck = false;
+  meta = {
+    description = "Directory layout DSL";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/doctest/default.nix b/pkgs/development/libraries/haskell/doctest/default.nix
index 018fac06670..af3f9e2d525 100644
--- a/pkgs/development/libraries/haskell/doctest/default.nix
+++ b/pkgs/development/libraries/haskell/doctest/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "doctest";
-  version = "0.9.11";
-  sha256 = "04y6y5hixqh8awl37wrss20c2drvx070w7wd6icfx7r0jqds97jr";
+  version = "0.9.11.1";
+  sha256 = "1gzzzwr7f7281mlbfbk74nxr28l70lwfaws4xjfx2v06xazl99db";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ deepseq filepath ghcPaths syb transformers ];
@@ -18,7 +18,7 @@ cabal.mkDerivation (self: {
   doCheck = false;
   noHaddock = self.stdenv.lib.versionOlder self.ghc.version "7.4";
   meta = {
-    homepage = "https://github.com/sol/doctest-haskell#readme";
+    homepage = "https://github.com/sol/doctest#readme";
     description = "Test interactive Haskell examples";
     license = self.stdenv.lib.licenses.mit;
     platforms = self.ghc.meta.platforms;
diff --git a/pkgs/development/libraries/haskell/either/default.nix b/pkgs/development/libraries/haskell/either/default.nix
index 6d55afd41d6..72f3bff14df 100644
--- a/pkgs/development/libraries/haskell/either/default.nix
+++ b/pkgs/development/libraries/haskell/either/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "either";
-  version = "4.3.0.1";
-  sha256 = "1ib6288gxzqfm2y198dzhhq588mlwqxm07pcrj4h66g1mcy54q1f";
+  version = "4.3.0.2";
+  sha256 = "01n4jkf6py00841cyf3fiwiay736dpbhda8ia2qgm26q4r4h58gd";
   buildDepends = [
     exceptions free monadControl MonadRandom mtl semigroupoids
     semigroups transformers transformersBase
diff --git a/pkgs/development/libraries/haskell/fay/default.nix b/pkgs/development/libraries/haskell/fay/default.nix
index edbf19bda62..c00b009c51d 100644
--- a/pkgs/development/libraries/haskell/fay/default.nix
+++ b/pkgs/development/libraries/haskell/fay/default.nix
@@ -1,24 +1,23 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, aeson, attoparsec, dataDefault, filepath, ghcPaths, groom
-, haskellNames, haskellPackages, haskellSrcExts, languageEcmascript
-, mtl, optparseApplicative, safe, sourcemap, split, spoon, syb
-, tasty, tastyHunit, tastyTh, text, time, transformers, uniplate
-, unorderedContainers, utf8String, vector
+{ cabal, aeson, dataDefault, filepath, ghcPaths, haskellNames
+, haskellPackages, haskellSrcExts, languageEcmascript, mtl
+, optparseApplicative, safe, sourcemap, split, spoon, syb, text
+, time, transformers, uniplate, unorderedContainers, utf8String
+, vector
 }:
 
 cabal.mkDerivation (self: {
   pname = "fay";
-  version = "0.20.1.2";
-  sha256 = "1ssii9wkml8jn8kcdq8h6sxrq4gap4asyglakvif2zawl3sqrdji";
+  version = "0.20.1.3";
+  sha256 = "1r9a1my8wydxx92xg04kacw90s1r4bms84fvs1w52r73knp5kb6r";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
-    aeson attoparsec dataDefault filepath ghcPaths groom haskellNames
-    haskellPackages haskellSrcExts languageEcmascript mtl
-    optparseApplicative safe sourcemap split spoon syb tasty tastyHunit
-    tastyTh text time transformers uniplate unorderedContainers
-    utf8String vector
+    aeson dataDefault filepath ghcPaths haskellNames haskellPackages
+    haskellSrcExts languageEcmascript mtl optparseApplicative safe
+    sourcemap split spoon syb text time transformers uniplate
+    unorderedContainers utf8String vector
   ];
   meta = {
     homepage = "https://github.com/faylang/fay/wiki";
diff --git a/pkgs/development/libraries/haskell/foldl/default.nix b/pkgs/development/libraries/haskell/foldl/default.nix
index 7a942e97dc8..2f04330a315 100644
--- a/pkgs/development/libraries/haskell/foldl/default.nix
+++ b/pkgs/development/libraries/haskell/foldl/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "foldl";
-  version = "1.0.5";
-  sha256 = "08yjzzplg715hzkhwbf8nv2zm7c5wd2kph4zx94iml0cnc6ip048";
+  version = "1.0.6";
+  sha256 = "1i4pm48x7f8l4gqbb2bgqshx5cx44acr24l75czliq656sqm405i";
   buildDepends = [ primitive text transformers vector ];
   meta = {
     description = "Composable, streaming, and efficient left folds";
diff --git a/pkgs/development/libraries/haskell/haddock-api/default.nix b/pkgs/development/libraries/haskell/haddock-api/default.nix
new file mode 100644
index 00000000000..2f3afa32196
--- /dev/null
+++ b/pkgs/development/libraries/haskell/haddock-api/default.nix
@@ -0,0 +1,19 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, Cabal, deepseq, filepath, ghcPaths, haddockLibrary, xhtml
+}:
+
+cabal.mkDerivation (self: {
+  pname = "haddock-api";
+  version = "2.15.0";
+  sha256 = "17h5h40ddn0kiqnz6rmz9p0jqvng11lq3xm6lnizwix9kcwl843b";
+  buildDepends = [
+    Cabal deepseq filepath ghcPaths haddockLibrary xhtml
+  ];
+  meta = {
+    homepage = "http://www.haskell.org/haddock/";
+    description = "A documentation-generation tool for Haskell libraries";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/haddock-library/default.nix b/pkgs/development/libraries/haskell/haddock-library/default.nix
index aece9e35873..a7041b3ba28 100644
--- a/pkgs/development/libraries/haskell/haddock-library/default.nix
+++ b/pkgs/development/libraries/haskell/haddock-library/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "haddock-library";
-  version = "1.1.0";
-  sha256 = "0apqm9nxgxbpvcphaim93q4z67c1cd0vdjz0i1cbr67ymffl69nd";
+  version = "1.1.1";
+  sha256 = "0sjnmbmq1pss9ikcqnhvpf57rv78lzi1r99ywpmmvj1gyva2s31m";
   buildDepends = [ deepseq ];
   testDepends = [ baseCompat deepseq hspec QuickCheck ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/hakyll/default.nix b/pkgs/development/libraries/haskell/hakyll/default.nix
index e38eadad057..7ebc0de734a 100644
--- a/pkgs/development/libraries/haskell/hakyll/default.nix
+++ b/pkgs/development/libraries/haskell/hakyll/default.nix
@@ -27,6 +27,9 @@ cabal.mkDerivation (self: {
     snapCore snapServer systemFilepath tagsoup testFramework
     testFrameworkHunit testFrameworkQuickcheck2 text time utillinux
   ];
+  patchPhase = ''
+    sed -i -e 's|pandoc-citeproc .*,|pandoc-citeproc,|' hakyll.cabal
+  '';
   meta = {
     homepage = "http://jaspervdj.be/hakyll";
     description = "A static website compiler library";
diff --git a/pkgs/development/libraries/haskell/haste-compiler/default.nix b/pkgs/development/libraries/haskell/haste-compiler/default.nix
index 0b5f4875a75..962bf758a1e 100644
--- a/pkgs/development/libraries/haskell/haste-compiler/default.nix
+++ b/pkgs/development/libraries/haskell/haste-compiler/default.nix
@@ -1,22 +1,21 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
 { cabal, binary, blazeBuilder, bzlib, dataBinaryIeee754
-, dataDefault, executablePath, filepath, ghcPaths, HTTP, monadsTf
-, mtl, network, random, shellmate, systemFileio, tar, temporary
-, time, transformers, utf8String, websockets, zipArchive
+, dataDefault, either, filepath, ghcPaths, HTTP, monadsTf, mtl
+, network, random, shellmate, systemFileio, tar, transformers
+, utf8String, websockets
 }:
 
 cabal.mkDerivation (self: {
   pname = "haste-compiler";
-  version = "0.3";
-  sha256 = "0a0hyra1h484c404d95d411l7gddaazy1ikwzlgkgzaqzd7j7dbd";
+  version = "0.4.1";
+  sha256 = "15v4c6rxz4n0wmiys6mam8xprcdq8kxnhpwcqnljshr8wlyihn8b";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
-    binary blazeBuilder bzlib dataBinaryIeee754 dataDefault
-    executablePath filepath ghcPaths HTTP monadsTf mtl network random
-    shellmate systemFileio tar temporary time transformers utf8String
-    websockets zipArchive
+    binary blazeBuilder bzlib dataBinaryIeee754 dataDefault either
+    filepath ghcPaths HTTP monadsTf mtl network random shellmate
+    systemFileio tar transformers utf8String websockets
   ];
   meta = {
     homepage = "http://github.com/valderman/haste-compiler";
diff --git a/pkgs/development/libraries/haskell/highlighting-kate/default.nix b/pkgs/development/libraries/haskell/highlighting-kate/default.nix
index a9540b24950..d77479ff058 100644
--- a/pkgs/development/libraries/haskell/highlighting-kate/default.nix
+++ b/pkgs/development/libraries/haskell/highlighting-kate/default.nix
@@ -1,16 +1,19 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, blazeHtml, filepath, mtl, parsec, regexPcre, utf8String }:
+{ cabal, blazeHtml, Diff, filepath, mtl, parsec, regexPcre
+, utf8String
+}:
 
 cabal.mkDerivation (self: {
   pname = "highlighting-kate";
-  version = "0.5.8.5";
-  sha256 = "0xynbxffjp44189zzqx30wabbrj83mvjl3mj1i5lag1h945yp1nk";
+  version = "0.5.9";
+  sha256 = "025j6d97nwjhhyhdz7bsfhzgpb1ld28va4r8yv7zfh1dvczs6lkr";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
     blazeHtml filepath mtl parsec regexPcre utf8String
   ];
+  testDepends = [ blazeHtml Diff filepath ];
   prePatch = "sed -i -e 's|regex-pcre-builtin >= .*|regex-pcre|' highlighting-kate.cabal";
   meta = {
     homepage = "http://github.com/jgm/highlighting-kate";
diff --git a/pkgs/development/libraries/haskell/hsimport/default.nix b/pkgs/development/libraries/haskell/hsimport/default.nix
index 96bcecddc30..3093cbb2038 100644
--- a/pkgs/development/libraries/haskell/hsimport/default.nix
+++ b/pkgs/development/libraries/haskell/hsimport/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hsimport";
-  version = "0.5.1";
-  sha256 = "17yzfikfl8qvm6vp3d472l6p0kzzw694ng19xn3fmrb43qvki4jj";
+  version = "0.5.2";
+  sha256 = "00kzc7hiwsidwvjnbvc01yh6c8n135ypwsiyvcnf2g179pwmnzkc";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/hspec-meta/default.nix b/pkgs/development/libraries/haskell/hspec-meta/default.nix
index 844b0a52805..09d3a842522 100644
--- a/pkgs/development/libraries/haskell/hspec-meta/default.nix
+++ b/pkgs/development/libraries/haskell/hspec-meta/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hspec-meta";
-  version = "1.11.3";
-  sha256 = "0cydxq5kgi4cczf6q70853wz3x1ymrf9mkp7rp71yir5vrhg0b8p";
+  version = "1.11.4";
+  sha256 = "047vp6wibkwgs9rryjpys2qqn4s5p91mh36w0gnxwhggp8nhfqg3";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/hspec-wai/default.nix b/pkgs/development/libraries/haskell/hspec-wai/default.nix
index 1341bf198c9..5937b0a417c 100644
--- a/pkgs/development/libraries/haskell/hspec-wai/default.nix
+++ b/pkgs/development/libraries/haskell/hspec-wai/default.nix
@@ -1,26 +1,25 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, aeson, aesonQq, caseInsensitive, doctest, hspec2
-, hspecMeta, httpTypes, markdownUnlit, scotty, text, transformers
-, wai, waiExtra
+{ cabal, aeson, aesonQq, caseInsensitive, hspec2, hspecMeta
+, httpTypes, markdownUnlit, scotty, text, transformers, wai
+, waiExtra
 }:
 
 cabal.mkDerivation (self: {
   pname = "hspec-wai";
-  version = "0.3.0";
-  sha256 = "0wkzv406jiyi8ais3g0addm66274y1pvy55gypmnhwx5rp2kr6fb";
+  version = "0.3.0.2";
+  sha256 = "13jf8vw1mx5zg8diklbc4hbil9mkjdbg2azdsdfxp286wh718mna";
   buildDepends = [
     aeson aesonQq caseInsensitive hspec2 httpTypes text transformers
     wai waiExtra
   ];
   testDepends = [
-    aeson caseInsensitive doctest hspec2 hspecMeta httpTypes
-    markdownUnlit scotty text transformers wai waiExtra
+    aeson caseInsensitive hspec2 hspecMeta httpTypes markdownUnlit
+    scotty text transformers wai waiExtra
   ];
   meta = {
     description = "Experimental Hspec support for testing WAI applications (depends on hspec2!)";
     license = self.stdenv.lib.licenses.mit;
     platforms = self.ghc.meta.platforms;
-    hydraPlatforms = self.stdenv.lib.platforms.none;
   };
 })
diff --git a/pkgs/development/libraries/haskell/hspec/default.nix b/pkgs/development/libraries/haskell/hspec/default.nix
index 98cc9f1b97e..1df977dbf57 100644
--- a/pkgs/development/libraries/haskell/hspec/default.nix
+++ b/pkgs/development/libraries/haskell/hspec/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hspec";
-  version = "1.11.3";
-  sha256 = "0kq2cds8khwq7nl60pvgk8v6s2fizfkpdplc1p0mj8zyr9gyz7i0";
+  version = "1.11.4";
+  sha256 = "044vr6xyk0ih20faa4gbl4y4v6vkss0x2gmxgkk96ha6chws2svn";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/hspec2/default.nix b/pkgs/development/libraries/haskell/hspec2/default.nix
index 295b01b4e32..e459e99e2fe 100644
--- a/pkgs/development/libraries/haskell/hspec2/default.nix
+++ b/pkgs/development/libraries/haskell/hspec2/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hspec2";
-  version = "0.4.1";
-  sha256 = "131w90yy7scxdpz7qa37n1wmyr8gvc5jqdsqkpg8s9pqham96w5v";
+  version = "0.4.2";
+  sha256 = "1wk1lvy3lngfa60n0dyllfqbj4gd4v0qxjw7gpvzknfk2y10536x";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
@@ -25,7 +25,5 @@ cabal.mkDerivation (self: {
     description = "Alpha version of Hspec 2.0";
     license = self.stdenv.lib.licenses.mit;
     platforms = self.ghc.meta.platforms;
-    hydraPlatforms = self.stdenv.lib.platforms.none;
-    broken = true;
   };
 })
diff --git a/pkgs/development/libraries/haskell/http-client/default.nix b/pkgs/development/libraries/haskell/http-client/default.nix
index 7f032c3f675..6e41fb85e68 100644
--- a/pkgs/development/libraries/haskell/http-client/default.nix
+++ b/pkgs/development/libraries/haskell/http-client/default.nix
@@ -9,8 +9,8 @@
 
 cabal.mkDerivation (self: {
   pname = "http-client";
-  version = "0.3.7.2";
-  sha256 = "1llrf2bfbh5z01pwg40zdgmz93h45h60mg2pv1k6b8pmzlwr6aaz";
+  version = "0.3.8.1";
+  sha256 = "1iy3wg88z1w0l5dzxkynlw0xd7np5xbxcrcdj3f2kzyfr39mw5v0";
   buildDepends = [
     base64Bytestring blazeBuilder caseInsensitive cookie
     dataDefaultClass deepseq exceptions filepath httpTypes mimeTypes
diff --git a/pkgs/development/libraries/haskell/interpolate/default.nix b/pkgs/development/libraries/haskell/interpolate/default.nix
index eed6aa835f8..875759a17eb 100644
--- a/pkgs/development/libraries/haskell/interpolate/default.nix
+++ b/pkgs/development/libraries/haskell/interpolate/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "interpolate";
-  version = "0.0.3";
-  sha256 = "05aksslx7mvic3cgw9ixwjp0r759a4gf7m178pbp8xm8dpdksjjw";
+  version = "0.0.4";
+  sha256 = "0yr0pahb07r7p6d7hb4bqafa64a4jkd37bchr6vkan2zbffwcrcm";
   buildDepends = [ haskellSrcMeta ];
   testDepends = [
     doctest haskellSrcMeta hspec QuickCheck quickcheckInstances text
diff --git a/pkgs/development/libraries/haskell/llvm-general-pure/3.4.2.2.nix b/pkgs/development/libraries/haskell/llvm-general-pure/3.4.4.0.nix
index c8601d844ca..cd92b67b16a 100644
--- a/pkgs/development/libraries/haskell/llvm-general-pure/3.4.2.2.nix
+++ b/pkgs/development/libraries/haskell/llvm-general-pure/3.4.4.0.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "llvm-general-pure";
-  version = "3.4.2.2";
-  sha256 = "0grbw0lamp0w4jzxg97jccl3jqdgqfgldpb4llvhr1l70591b0s8";
+  version = "3.4.4.0";
+  sha256 = "0x43yfcss3f5v5mlzyv7d13fvajbdgv4cmkx5yx1904xsiddg27v";
   buildDepends = [ mtl parsec setenv transformers ];
   testDepends = [
     HUnit mtl QuickCheck testFramework testFrameworkHunit
diff --git a/pkgs/development/libraries/haskell/llvm-general/3.4.2.2.nix b/pkgs/development/libraries/haskell/llvm-general/3.4.4.0.nix
index 25993bb9fd0..aec66b12723 100644
--- a/pkgs/development/libraries/haskell/llvm-general/3.4.2.2.nix
+++ b/pkgs/development/libraries/haskell/llvm-general/3.4.4.0.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "llvm-general";
-  version = "3.4.2.2";
-  sha256 = "1dqdvv8pslblavyi14xy0bgrr1ca8d1jqp60x16zgbzkk3f2jx6a";
+  version = "3.4.4.0";
+  sha256 = "10x7qb2svw0gz0sqf4vn14hpzks3rk29g4i2pzfdi5qk11j8jd9b";
   buildDepends = [
     llvmGeneralPure mtl parsec setenv transformers utf8String
   ];
diff --git a/pkgs/development/libraries/haskell/meep/default.nix b/pkgs/development/libraries/haskell/meep/default.nix
new file mode 100644
index 00000000000..f8ad537938c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/meep/default.nix
@@ -0,0 +1,21 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, bifunctors, doctest, hspec, hspecExpectationsLens, lens
+, QuickCheck, semigroups
+}:
+
+cabal.mkDerivation (self: {
+  pname = "meep";
+  version = "0.1.1.0";
+  sha256 = "1rk5mrvmk07m5zdayfvxirak58d1bxwb04sgg0gcx07w8q8k4yyq";
+  buildDepends = [ bifunctors lens semigroups ];
+  testDepends = [
+    bifunctors doctest hspec hspecExpectationsLens lens QuickCheck
+    semigroups
+  ];
+  meta = {
+    description = "A silly container";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/mmorph/default.nix b/pkgs/development/libraries/haskell/mmorph/default.nix
index b13eeeb5d83..bf8fb46f793 100644
--- a/pkgs/development/libraries/haskell/mmorph/default.nix
+++ b/pkgs/development/libraries/haskell/mmorph/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "mmorph";
-  version = "1.0.3";
-  sha256 = "0b8pzb63zxw3cjw8yj73swvqhmi9c4lgw1mis1xbraya7flxc6qm";
+  version = "1.0.4";
+  sha256 = "0k5zlzmnixfwcjrqvhgi3i6xg532b0gsjvc39v5jigw69idndqr2";
   buildDepends = [ transformers ];
   meta = {
     description = "Monad morphisms";
diff --git a/pkgs/development/libraries/haskell/monad-journal/default.nix b/pkgs/development/libraries/haskell/monad-journal/default.nix
index 3afce21810c..5cbfed976d1 100644
--- a/pkgs/development/libraries/haskell/monad-journal/default.nix
+++ b/pkgs/development/libraries/haskell/monad-journal/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "monad-journal";
-  version = "0.2.3.0";
-  sha256 = "1k0da0fwk05k8530rlys3n2s1z8glnfdivx93isy6cjr8amndc6b";
+  version = "0.2.3.1";
+  sha256 = "11p7qdga26wz82x6a1fl57iij4swsr1d1aly76sjrlvl8maqlf7d";
   buildDepends = [
     either monadControl mtl transformers transformersBase
   ];
diff --git a/pkgs/development/libraries/haskell/ncurses/default.nix b/pkgs/development/libraries/haskell/ncurses/default.nix
index 7e9ac0ddd95..f964af3c8b7 100644
--- a/pkgs/development/libraries/haskell/ncurses/default.nix
+++ b/pkgs/development/libraries/haskell/ncurses/default.nix
@@ -15,5 +15,7 @@ cabal.mkDerivation (self: {
     description = "Modernised bindings to GNU ncurses";
     license = self.stdenv.lib.licenses.gpl3;
     platforms = self.ghc.meta.platforms;
+    hydraPlatforms = self.stdenv.lib.platforms.none;
+    broken = true;
   };
 })
diff --git a/pkgs/development/libraries/haskell/pandoc-citeproc/default.nix b/pkgs/development/libraries/haskell/pandoc-citeproc/default.nix
index e567bd82059..76ab2fc41b4 100644
--- a/pkgs/development/libraries/haskell/pandoc-citeproc/default.nix
+++ b/pkgs/development/libraries/haskell/pandoc-citeproc/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "pandoc-citeproc";
-  version = "0.4.0.1";
-  sha256 = "1z21mdxa2hrwqdclriyn3s1qqij3ccbkg7hb0acxrk3pzgidcinx";
+  version = "0.5";
+  sha256 = "00azhpll0xnb9nnkh7c3hbfk0fzmvh5cgdxlgx7jvaglrmsnvzw3";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/pandoc/default.nix b/pkgs/development/libraries/haskell/pandoc/default.nix
index 1b2571563c3..c8ef8ba2271 100644
--- a/pkgs/development/libraries/haskell/pandoc/default.nix
+++ b/pkgs/development/libraries/haskell/pandoc/default.nix
@@ -4,26 +4,27 @@
 , blazeHtml, blazeMarkup, dataDefault, deepseqGenerics, Diff
 , executablePath, extensibleExceptions, filepath, haddockLibrary
 , happy, highlightingKate, hslua, HTTP, httpClient, httpClientTls
-, httpTypes, HUnit, JuicyPixels, mtl, network, pandocTypes, parsec
-, QuickCheck, random, scientific, SHA, syb, tagsoup, temporary
-, testFramework, testFrameworkHunit, testFrameworkQuickcheck2
-, texmath, text, time, unorderedContainers, vector, wai, waiExtra
-, xml, yaml, zipArchive, zlib
+, httpTypes, HUnit, JuicyPixels, mtl, network, networkUri
+, pandocTypes, parsec, QuickCheck, random, scientific, SHA, syb
+, tagsoup, temporary, testFramework, testFrameworkHunit
+, testFrameworkQuickcheck2, texmath, text, time
+, unorderedContainers, vector, xml, yaml, zipArchive, zlib
 }:
 
 cabal.mkDerivation (self: {
   pname = "pandoc";
-  version = "1.13.0.1";
-  sha256 = "0pjyxsr93gv0vrdxlr5i0c56mg6rf21qxf1141cb8l0hl0b416d6";
+  version = "1.13.1";
+  sha256 = "0vvysa70xp4pskxrvslmddwdsalc479zb8wn6z1vmpvfssvvj6vv";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
     aeson alex base64Bytestring binary blazeHtml blazeMarkup
     dataDefault deepseqGenerics extensibleExceptions filepath
     haddockLibrary happy highlightingKate hslua HTTP httpClient
-    httpClientTls httpTypes JuicyPixels mtl network pandocTypes parsec
-    random scientific SHA syb tagsoup temporary texmath text time
-    unorderedContainers vector wai waiExtra xml yaml zipArchive zlib
+    httpClientTls httpTypes JuicyPixels mtl network networkUri
+    pandocTypes parsec random scientific SHA syb tagsoup temporary
+    texmath text time unorderedContainers vector xml yaml zipArchive
+    zlib
   ];
   testDepends = [
     ansiTerminal Diff executablePath filepath highlightingKate HUnit
diff --git a/pkgs/development/libraries/haskell/present/default.nix b/pkgs/development/libraries/haskell/present/default.nix
new file mode 100644
index 00000000000..7c5f3afbd98
--- /dev/null
+++ b/pkgs/development/libraries/haskell/present/default.nix
@@ -0,0 +1,15 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, aeson, attoLisp, dataDefault, mtl, semigroups, text }:
+
+cabal.mkDerivation (self: {
+  pname = "present";
+  version = "1.1";
+  sha256 = "1hmzq3qi4hz74xr7cnc33kpwki9ziyinvrwazag8hh77d02fl11z";
+  buildDepends = [ aeson attoLisp dataDefault mtl semigroups text ];
+  meta = {
+    description = "Make presentations for data types";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/project-template/default.nix b/pkgs/development/libraries/haskell/project-template/default.nix
index 9aa8dff59aa..8cb7dfd32ae 100644
--- a/pkgs/development/libraries/haskell/project-template/default.nix
+++ b/pkgs/development/libraries/haskell/project-template/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "project-template";
-  version = "0.1.4.1";
-  sha256 = "1vsx8a4kzdcwbdy47hb2wz32najsa6bqq6jkyal9nbc5ydwb65lb";
+  version = "0.1.4.2";
+  sha256 = "10n23s6g7fv0l42hsb804z0qqcyxqw32kwzg1f0w3c6gka844akr";
   buildDepends = [
     base64Bytestring conduit conduitExtra mtl resourcet systemFileio
     systemFilepath text transformers
diff --git a/pkgs/development/libraries/haskell/pwstore-fast/default.nix b/pkgs/development/libraries/haskell/pwstore-fast/default.nix
index 08f18e8fe11..a59a9b2d2da 100644
--- a/pkgs/development/libraries/haskell/pwstore-fast/default.nix
+++ b/pkgs/development/libraries/haskell/pwstore-fast/default.nix
@@ -1,12 +1,14 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, base64Bytestring, binary, cryptohash, random, SHA }:
+{ cabal, base64Bytestring, binary, byteable, cryptohash, random }:
 
 cabal.mkDerivation (self: {
   pname = "pwstore-fast";
-  version = "2.4.1";
-  sha256 = "1k98b1s2ld0jx8fy53k8d8pscp6n0plh51b2lj6ai6w8xj4vknw4";
-  buildDepends = [ base64Bytestring binary cryptohash random SHA ];
+  version = "2.4.3";
+  sha256 = "02dj297s04fxb4ys9nfdw6aap5zrwlryq515gky0c3af6ss2yiz7";
+  buildDepends = [
+    base64Bytestring binary byteable cryptohash random
+  ];
   meta = {
     homepage = "https://github.com/PeterScott/pwstore";
     description = "Secure password storage";
diff --git a/pkgs/development/libraries/haskell/recaptcha/default.nix b/pkgs/development/libraries/haskell/recaptcha/default.nix
index dd92b7e79de..00fe58be4b1 100644
--- a/pkgs/development/libraries/haskell/recaptcha/default.nix
+++ b/pkgs/development/libraries/haskell/recaptcha/default.nix
@@ -1,12 +1,12 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, HTTP, network, xhtml }:
+{ cabal, HTTP, network, networkUri, xhtml }:
 
 cabal.mkDerivation (self: {
   pname = "recaptcha";
-  version = "0.1.0.2";
-  sha256 = "04sdfp6bmcd3qkz1iqxijfiqa4qf78m5d16r9gjv90ckqf68kbih";
-  buildDepends = [ HTTP network xhtml ];
+  version = "0.1.0.3";
+  sha256 = "18rqsqzni11nr2cvs7ah9k87w493d92c0gmc0n6fhfq6gay9ia19";
+  buildDepends = [ HTTP network networkUri xhtml ];
   meta = {
     homepage = "http://github.com/jgm/recaptcha/tree/master";
     description = "Functions for using the reCAPTCHA service in web applications";
diff --git a/pkgs/development/libraries/haskell/robots-txt/default.nix b/pkgs/development/libraries/haskell/robots-txt/default.nix
index c6534ff0cf4..0ebf6dac301 100644
--- a/pkgs/development/libraries/haskell/robots-txt/default.nix
+++ b/pkgs/development/libraries/haskell/robots-txt/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "robots-txt";
-  version = "0.4.1.0";
-  sha256 = "1q18pgilrwppmd8d7pby3p6qgk47alzmd8izqspk7n4h4agrscn4";
+  version = "0.4.1.1";
+  sha256 = "16r6j96iay1r6435ym34dp9iggwlfigmzmqq5k5f5ss5bljfc72f";
   buildDepends = [ attoparsec time ];
   testDepends = [ attoparsec heredoc hspec QuickCheck transformers ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/saltine/default.nix b/pkgs/development/libraries/haskell/saltine/default.nix
new file mode 100644
index 00000000000..acb4066fb2e
--- /dev/null
+++ b/pkgs/development/libraries/haskell/saltine/default.nix
@@ -0,0 +1,22 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, libsodium, profunctors, QuickCheck, testFramework
+, testFrameworkQuickcheck2, vector
+}:
+
+cabal.mkDerivation (self: {
+  pname = "saltine";
+  version = "0.0.0.3";
+  sha256 = "1xjpjblxlpziyyz74ldaqh04shvy2qi34sc6b3232wpc0kyl5s8y";
+  buildDepends = [ profunctors ];
+  testDepends = [
+    QuickCheck testFramework testFrameworkQuickcheck2 vector
+  ];
+  extraLibraries = [ libsodium ];
+  meta = {
+    description = "Cryptography that's easy to digest (NaCl/libsodium bindings)";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+    maintainers = with self.stdenv.lib.maintainers; [ fuuzetsu ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/scotty/default.nix b/pkgs/development/libraries/haskell/scotty/default.nix
index 91876f7e318..4985f09b38e 100644
--- a/pkgs/development/libraries/haskell/scotty/default.nix
+++ b/pkgs/development/libraries/haskell/scotty/default.nix
@@ -1,21 +1,22 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, aeson, blazeBuilder, caseInsensitive, conduit, dataDefault
-, hspec, httpTypes, liftedBase, monadControl, mtl, regexCompat
+{ cabal, aeson, blazeBuilder, caseInsensitive, dataDefault, hspec2
+, hspecWai, httpTypes, liftedBase, monadControl, mtl, regexCompat
 , text, transformers, transformersBase, wai, waiExtra, warp
 }:
 
 cabal.mkDerivation (self: {
   pname = "scotty";
-  version = "0.8.2";
-  sha256 = "07vjdj26380inlyi350mdifm7v1dpbc56041vi2czf5zzhx97qb0";
+  version = "0.9.0";
+  sha256 = "0gx00k5w4cs68bh3ciplkwhzh2412y6wqg0qdsslnnsb41l5kb1d";
   buildDepends = [
-    aeson blazeBuilder caseInsensitive conduit dataDefault httpTypes
+    aeson blazeBuilder caseInsensitive dataDefault httpTypes
     monadControl mtl regexCompat text transformers transformersBase wai
     waiExtra warp
   ];
-  testDepends = [ hspec httpTypes liftedBase wai waiExtra ];
+  testDepends = [ hspec2 hspecWai httpTypes liftedBase text wai ];
   jailbreak = true;
+  doCheck = false;
   meta = {
     homepage = "https://github.com/scotty-web/scotty";
     description = "Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp";
diff --git a/pkgs/development/libraries/haskell/simple-sendfile/default.nix b/pkgs/development/libraries/haskell/simple-sendfile/default.nix
index 3e8381bf34b..fc41353d357 100644
--- a/pkgs/development/libraries/haskell/simple-sendfile/default.nix
+++ b/pkgs/development/libraries/haskell/simple-sendfile/default.nix
@@ -1,16 +1,14 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, conduit, conduitExtra, hspec, HUnit, network
-, networkConduit, resourcet
-}:
+{ cabal, conduit, conduitExtra, hspec, HUnit, network, resourcet }:
 
 cabal.mkDerivation (self: {
   pname = "simple-sendfile";
-  version = "0.2.15";
-  sha256 = "1fa20h2zcvxwdb5j5a0nnhl38bry1p5ckya1l7lrxx9r2bvjkyj9";
+  version = "0.2.17";
+  sha256 = "1xxzw916v5zwn8i5i61z6p1wa2rm95sa6ry9z3yg2b2ybpyagw5g";
   buildDepends = [ network resourcet ];
   testDepends = [
-    conduit conduitExtra hspec HUnit network networkConduit resourcet
+    conduit conduitExtra hspec HUnit network resourcet
   ];
   doCheck = false;
   meta = {
diff --git a/pkgs/development/libraries/haskell/tagged-transformer/default.nix b/pkgs/development/libraries/haskell/tagged-transformer/default.nix
new file mode 100644
index 00000000000..34da51018e0
--- /dev/null
+++ b/pkgs/development/libraries/haskell/tagged-transformer/default.nix
@@ -0,0 +1,21 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, comonad, contravariant, distributive, exceptions, mtl
+, reflection, semigroupoids, tagged
+}:
+
+cabal.mkDerivation (self: {
+  pname = "tagged-transformer";
+  version = "0.7.1";
+  sha256 = "1qgfx546pj4aqdblb4gddfxp642snn5dx4kxj3sn5q7c9lsgdh8j";
+  buildDepends = [
+    comonad contravariant distributive exceptions mtl reflection
+    semigroupoids tagged
+  ];
+  meta = {
+    homepage = "http://github.com/ekmett/tagged-transformer";
+    description = "Provides newtype wrappers for phantom types to avoid unsafely passing dummy arguments";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/vcsgui/default.nix b/pkgs/development/libraries/haskell/vcsgui/default.nix
index 318f369fc3e..08605391fc2 100644
--- a/pkgs/development/libraries/haskell/vcsgui/default.nix
+++ b/pkgs/development/libraries/haskell/vcsgui/default.nix
@@ -1,20 +1,18 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, filepath, gtk3, mtl, vcswrapper }:
+{ cabal, filepath, gtk3, mtl, text, vcswrapper }:
 
 cabal.mkDerivation (self: {
   pname = "vcsgui";
-  version = "0.0.4";
-  sha256 = "12hfdhnv3xc2dyqk76lyx5ggiygyap4hm50sd6qmwfjj3f2w6b98";
+  version = "0.1.0.0";
+  sha256 = "0wxalzil8ypvwp0z754m7g3848963znwwrjysdxp5q33imzbp60z";
   isLibrary = true;
   isExecutable = true;
-  buildDepends = [ filepath gtk3 mtl vcswrapper ];
+  buildDepends = [ filepath gtk3 mtl text vcswrapper ];
   meta = {
     homepage = "https://github.com/forste/haskellVCSGUI";
     description = "GUI library for source code management systems";
     license = "GPL";
     platforms = self.stdenv.lib.platforms.linux;
-    hydraPlatforms = self.stdenv.lib.platforms.none;
-    broken = true;
   };
 })
diff --git a/pkgs/development/libraries/haskell/vcswrapper/default.nix b/pkgs/development/libraries/haskell/vcswrapper/default.nix
index 75336ef8816..8c2653c66f5 100644
--- a/pkgs/development/libraries/haskell/vcswrapper/default.nix
+++ b/pkgs/development/libraries/haskell/vcswrapper/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "vcswrapper";
-  version = "0.0.4";
-  sha256 = "130pmzxdsqv703k2g197vd5rl60fwkqqv2xck66ygb932wsq3fnk";
+  version = "0.1.0";
+  sha256 = "058xbfgxsp3g4x4rwbp57dqgr9mwnmj623js39dbmiqkixsda31a";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ filepath hxt mtl parsec split text ];
diff --git a/pkgs/development/libraries/haskell/wordexp/default.nix b/pkgs/development/libraries/haskell/wordexp/default.nix
new file mode 100644
index 00000000000..7d03b1adea5
--- /dev/null
+++ b/pkgs/development/libraries/haskell/wordexp/default.nix
@@ -0,0 +1,16 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, c2hs, semigroups }:
+
+cabal.mkDerivation (self: {
+  pname = "wordexp";
+  version = "0.2.0.0";
+  sha256 = "1hfpvzbyyh47ai166xyrhmhvg2shrqcswsfalwa16wab6hcg32ki";
+  buildDepends = [ semigroups ];
+  buildTools = [ c2hs ];
+  meta = {
+    description = "wordexp(3) wrappers";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/xml-html-conduit-lens/default.nix b/pkgs/development/libraries/haskell/xml-html-conduit-lens/default.nix
index 3dded2dcb44..7a53fb456f7 100644
--- a/pkgs/development/libraries/haskell/xml-html-conduit-lens/default.nix
+++ b/pkgs/development/libraries/haskell/xml-html-conduit-lens/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "xml-html-conduit-lens";
-  version = "0.3.2.0";
-  sha256 = "150b772wkl2k8xcrcbqj3qhndjkl35qzwqdjbgs9mxp867aihiv0";
+  version = "0.3.2.1";
+  sha256 = "0iy58nq5b6ixdky2xr4r8xxk3c8wqp1y3jbpsk3dr1qawzjbzp12";
   buildDepends = [ htmlConduit lens text xmlConduit ];
   testDepends = [
     doctest hspec hspecExpectationsLens lens xmlConduit
@@ -17,7 +17,5 @@ cabal.mkDerivation (self: {
     description = "Optics for xml-conduit and html-conduit";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
-    hydraPlatforms = self.stdenv.lib.platforms.none;
-    broken = true;
   };
 })
diff --git a/pkgs/development/libraries/haskell/yaml/default.nix b/pkgs/development/libraries/haskell/yaml/default.nix
index 26cb0dec098..9173baa97ba 100644
--- a/pkgs/development/libraries/haskell/yaml/default.nix
+++ b/pkgs/development/libraries/haskell/yaml/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yaml";
-  version = "0.8.9";
-  sha256 = "13qqqil19yi1qbl9gqma6kxwkz8j5iq6z347fabk916gy9jng3dl";
+  version = "0.8.9.1";
+  sha256 = "129pf4gg3mf2ljag8vxknnqxbrbx53hshzpaggndxjir72303njy";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/zeromq4-haskell/default.nix b/pkgs/development/libraries/haskell/zeromq4-haskell/default.nix
index 0e2cf67a19f..e4519c47358 100644
--- a/pkgs/development/libraries/haskell/zeromq4-haskell/default.nix
+++ b/pkgs/development/libraries/haskell/zeromq4-haskell/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "zeromq4-haskell";
-  version = "0.6";
-  sha256 = "1n8vvlwnmvi2hlqhkmzsqgpbpxnhdcs8jy3rj1srsg729m2aqc8y";
+  version = "0.6.1";
+  sha256 = "14ai6sp39qv6kmj33basnvvfqhzbiqxskv3crjwfdaxbijh23mif";
   buildDepends = [ async exceptions semigroups transformers ];
   testDepends = [
     async QuickCheck tasty tastyHunit tastyQuickcheck
diff --git a/pkgs/development/libraries/libaal/default.nix b/pkgs/development/libraries/libaal/default.nix
index 596b8e2e84c..36d1ddc7151 100644
--- a/pkgs/development/libraries/libaal/default.nix
+++ b/pkgs/development/libraries/libaal/default.nix
@@ -1,11 +1,12 @@
-{stdenv, fetchurl}:
+{ stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "libaal-1.0.5";
+stdenv.mkDerivation rec {
+  version = "1.0.6";
+  name = "libaal-${version}";
 
   src = fetchurl {
-    url = http://chichkin_i.zelnet.ru/namesys/libaal-1.0.5.tar.gz;
-    sha256 = "109f464hxwms90mpczc7h7lmrdlcmlglabkzh86h25xrlxxdn6pz";
+    url = "mirror://sourceforge/reiser4/${name}.tar.gz";
+    sha256 = "176f2sns6iyxv3h9zyirdinjwi05gdak48zqarhib2s38rvm98di";
   };
 
   preInstall = ''
@@ -15,5 +16,7 @@ stdenv.mkDerivation {
   meta = {
     homepage = http://www.namesys.com/;
     description = "Support library for Reiser4";
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
   };
 }
diff --git a/pkgs/development/libraries/libao/default.nix b/pkgs/development/libraries/libao/default.nix
index 401573378ee..44e800b6f1e 100644
--- a/pkgs/development/libraries/libao/default.nix
+++ b/pkgs/development/libraries/libao/default.nix
@@ -1,14 +1,15 @@
 { lib, stdenv, fetchurl, pkgconfig, pulseaudio, alsaLib
 , usePulseAudio }:
 
-stdenv.mkDerivation {
-  name = "libao-1.1.0";
+stdenv.mkDerivation rec {
+  version = "1.2.0";
+  name = "libao-${version}";
   src = fetchurl {
-    url = http://downloads.xiph.org/releases/ao/libao-1.1.0.tar.gz;
-    sha256 = "1m0v2y6bhr4iwsgdkc7b3y0qgpvpv1ifbxsy8n8ahsvjn6wmppi9";
+    url = "http://downloads.xiph.org/releases/ao/${name}.tar.gz";
+    sha256 = "1bwwv1g9lchaq6qmhvj1pp3hnyqr64ydd4j38x94pmprs4d27b83";
   };
 
-  buildInputs = 
+  buildInputs =
     [ pkgconfig ] ++
     lib.optional stdenv.isLinux (if usePulseAudio then [ pulseaudio ] else [ alsaLib ]);
 
@@ -19,6 +20,7 @@ stdenv.mkDerivation {
       platforms.
     '';
     homepage = http://xiph.org/ao/;
-    license = stdenv.lib.licenses.gpl2Plus;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
   };
 }
diff --git a/pkgs/development/libraries/libe-book/0.0.nix b/pkgs/development/libraries/libe-book/0.0.nix
deleted file mode 100644
index 2dc8de67039..00000000000
--- a/pkgs/development/libraries/libe-book/0.0.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{stdenv, fetchurl, gperf, pkgconfig, librevenge, libxml2, boost, icu, cppunit
-, libwpd}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="libe-book";
-    version="0.0.3";
-    name="${baseName}-${version}";
-    hash="06xhg319wbqrkj8914npasv5lr7k2904mmy7wa78063mkh31365i";
-    url="mirror://sourceforge/project/libebook/libe-book-0.0.3/libe-book-0.0.3.tar.xz";
-    sha256="06xhg319wbqrkj8914npasv5lr7k2904mmy7wa78063mkh31365i";
-  };
-  buildInputs = [
-    gperf pkgconfig librevenge libxml2 boost icu cppunit libwpd
-  ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
-  meta = {
-    inherit (s) version;
-    description = ''Library for import of reflowable e-book formats'';
-    license = stdenv.lib.licenses.lgpl21Plus ;
-    maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/development/libraries/libe-book/0.0.upstream b/pkgs/development/libraries/libe-book/0.0.upstream
deleted file mode 100644
index e2994f52691..00000000000
--- a/pkgs/development/libraries/libe-book/0.0.upstream
+++ /dev/null
@@ -1,4 +0,0 @@
-url http://sourceforge.net/projects/libebook/files/
-SF_version_dir libe-book-0.0.
-version_link '[.]tar.xz/download$'
-SF_redirect
diff --git a/pkgs/development/libraries/libewf/default.nix b/pkgs/development/libraries/libewf/default.nix
index 7c948aa9824..fad0170ade7 100644
--- a/pkgs/development/libraries/libewf/default.nix
+++ b/pkgs/development/libraries/libewf/default.nix
@@ -1,10 +1,11 @@
-{ fetchurl, stdenv, zlib, openssl, libuuid, file }:
+{ fetchurl, stdenv, zlib, openssl, libuuid, file, fuse }:
 
 stdenv.mkDerivation rec {
-  name = "libewf-20100226";
+  version = "20140608";
+  name = "libewf-${version}";
   src = fetchurl {
-    url = "mirror://sourceforge/libewf/${name}.tar.gz";
-    sha256 = "aedd2a6b3df6525ff535ab95cd569ebb361a4022eb4163390f26257913c2941a";
+    url = "https://googledrive.com/host/0B3fBvzttpiiSMTdoaVExWWNsRjg/libewf-20140608.tar.gz";
+    sha256 = "0wfsffzxk934hl8cpwr14w8ixnh8d23x0xnnzcspjwi2c7730h6i";
   };
 
   preConfigure = ''sed -e 's@/usr/bin/file@file@g' -i configure'';
@@ -14,6 +15,8 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Library for support of the Expert Witness Compression Format";
     homepage = http://sourceforge.net/projects/libewf/;
-    license = "free";
+    license = stdenv.lib.licenses.lgpl3;
+    maintainers = [ stdenv.lib.maintainers.raskin ] ;
+    inherit version;
   };
 }
diff --git a/pkgs/development/libraries/libewf/default.upstream b/pkgs/development/libraries/libewf/default.upstream
new file mode 100644
index 00000000000..a071132463f
--- /dev/null
+++ b/pkgs/development/libraries/libewf/default.upstream
@@ -0,0 +1,7 @@
+url https://code.google.com/p/libewf/
+version_link 'googledrive[.]com'
+version_link '[.]tar[.]'
+do_overwrite () {
+  do_overwrite_just_version
+  set_var_value url "$CURRENT_URL"
+}
diff --git a/pkgs/development/libraries/libgcrypt/1.6.nix b/pkgs/development/libraries/libgcrypt/1.6.nix
index ced3b723b13..e468c3163d3 100644
--- a/pkgs/development/libraries/libgcrypt/1.6.nix
+++ b/pkgs/development/libraries/libgcrypt/1.6.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, libgpgerror, transfig, ghostscript, texinfo }:
 
 stdenv.mkDerivation rec {
-  name = "libgcrypt-1.6.1";
+  name = "libgcrypt-1.6.2";
 
   src = fetchurl {
     url = "mirror://gnupg/libgcrypt/${name}.tar.bz2";
-    sha256 = "0w10vhpj1r5nq7qm6jp21p1v1vhf37701cw8yilygzzqd7mfzhx1";
+    sha256 = "de084492a6b38cdb27b67eaf749ceba76bf7029f63a9c0c3c1b05c88c9885c4c";
   };
 
   nativeBuildInputs = [ transfig ghostscript texinfo ];
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "GNU Libgcrypt, a general-pupose cryptographic library";
+    description = "General-pupose cryptographic library";
 
     longDescription = ''
       GNU Libgcrypt is a general purpose cryptographic library based on
diff --git a/pkgs/development/libraries/libgcrypt/default.nix b/pkgs/development/libraries/libgcrypt/default.nix
index f47d3a62729..ed267e23c87 100644
--- a/pkgs/development/libraries/libgcrypt/default.nix
+++ b/pkgs/development/libraries/libgcrypt/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, libgpgerror }:
 
 stdenv.mkDerivation (rec {
-  name = "libgcrypt-1.5.3";
+  name = "libgcrypt-1.5.4";
 
   src = fetchurl {
     url = "mirror://gnupg/libgcrypt/${name}.tar.bz2";
-    sha256 = "1lar8y3lh61zl5flljpz540d78g99h4d5idfwrfw8lm3gm737xdw";
+    sha256 = "d5f88d9f41a46953dc250cdb8575129b37ee2208401b7fa338c897f667c7fb33";
   };
 
   propagatedBuildInputs = [ libgpgerror ];
diff --git a/pkgs/development/libraries/libgphoto2/default.nix b/pkgs/development/libraries/libgphoto2/default.nix
index ca8073fbe30..dc041490f78 100644
--- a/pkgs/development/libraries/libgphoto2/default.nix
+++ b/pkgs/development/libraries/libgphoto2/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://sourceforge/gphoto/${name}.tar.bz2";
-    sha256 = "1h0bwrbc69yq561pw4fjyclwvk0g6rrj3pw6zrdx33isipi15d2z";
+    sha256 = "1w2bfy6619fgrigasgmx3lnill8c99lq7blmy2bpp0qqqqwdb93d";
   };
   
   nativeBuildInputs = [ pkgconfig gettext ];
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
       MTP, and other vendor specific protocols for controlling and transferring data
       from digital cameras. 
     '';
-    version = "2.5.4";
+    version = "2.5.5";
     # XXX: the homepage claims LGPL, but several src files are lgpl21Plus
     license = stdenv.lib.licenses.lgpl21Plus; 
     platforms = with stdenv.lib.platforms; unix;
diff --git a/pkgs/development/libraries/libidn/default.nix b/pkgs/development/libraries/libidn/default.nix
index 37d19d10f29..5aea194e39d 100644
--- a/pkgs/development/libraries/libidn/default.nix
+++ b/pkgs/development/libraries/libidn/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv }:
 
 stdenv.mkDerivation rec {
-  name = "libidn-1.28";
+  name = "libidn-1.29";
 
   src = fetchurl {
     url = "mirror://gnu/libidn/${name}.tar.gz";
-    sha256 = "1yxbfdiwr3l91m79sksn6v5mgpl4lfj8i82zgryckas9hjb7ldfx";
+    sha256 = "fb82747dbbf9b36f703ed27293317d818d7e851d4f5773dedf3efa4db32a7c7c";
   };
 
   doCheck = ! stdenv.isDarwin;
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
       included.
     '';
 
+    repositories.git = git://git.savannah.gnu.org/libidn.git;
     license = stdenv.lib.licenses.lgpl2Plus;
     platforms = stdenv.lib.platforms.all;
     maintainers = [ ];
diff --git a/pkgs/development/libraries/libmpeg2/A00-tags.patch b/pkgs/development/libraries/libmpeg2/A00-tags.patch
deleted file mode 100644
index 0b5d7d7da12..00000000000
--- a/pkgs/development/libraries/libmpeg2/A00-tags.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff -ru mpeg2dec.orig/libmpeg2/decode.c mpeg2dec/libmpeg2/decode.c
---- mpeg2dec.orig/libmpeg2/decode.c	2008-07-09 12:16:05.000000000 -0700
-+++ mpeg2dec/libmpeg2/decode.c	2009-07-03 16:29:48.000000000 -0700
-@@ -212,7 +212,7 @@
- 
- mpeg2_state_t mpeg2_parse_header (mpeg2dec_t * mpeg2dec)
- {
--    static int (* process_header[]) (mpeg2dec_t * mpeg2dec) = {
-+    static int (* process_header[]) (mpeg2dec_t *) = {
- 	mpeg2_header_picture, mpeg2_header_extension, mpeg2_header_user_data,
- 	mpeg2_header_sequence, NULL, NULL, NULL, NULL, mpeg2_header_gop
-     };
-@@ -368,6 +368,14 @@
- 
- void mpeg2_tag_picture (mpeg2dec_t * mpeg2dec, uint32_t tag, uint32_t tag2)
- {
-+    if (mpeg2dec->num_tags == 0 && mpeg2dec->state == STATE_PICTURE && mpeg2dec->picture) {
-+        // since tags got processed when we entered this state we
-+        // have to set them directly or they'll end up on the next frame.
-+        mpeg2dec->picture->tag = tag;
-+        mpeg2dec->picture->tag2 = tag2;
-+        mpeg2dec->picture->flags |= PIC_FLAG_TAGS;
-+        return;
-+    }
-     mpeg2dec->tag_previous = mpeg2dec->tag_current;
-     mpeg2dec->tag2_previous = mpeg2dec->tag2_current;
-     mpeg2dec->tag_current = tag;
diff --git a/pkgs/development/libraries/libmpeg2/default.nix b/pkgs/development/libraries/libmpeg2/default.nix
index e651a932efe..c2008700804 100644
--- a/pkgs/development/libraries/libmpeg2/default.nix
+++ b/pkgs/development/libraries/libmpeg2/default.nix
@@ -1,20 +1,18 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "libmpeg2-0.5.1p4";
-  
+  version = "0.5.1";
+  name = "libmpeg2-${version}";
+
   src = fetchurl {
     url = "http://libmpeg2.sourceforge.net/files/${name}.tar.gz";
     sha256 = "1m3i322n2fwgrvbs1yck7g5md1dbg22bhq5xdqmjpz5m7j4jxqny";
   };
 
-  # From Handbrake - Project seems unmaintained
-  patches = [
-    ./A00-tags.patch
-  ];
-
   meta = {
     homepage = http://libmpeg2.sourceforge.net/;
     description = "A free library for decoding mpeg-2 and mpeg-1 video streams";
+    license = stdenv.lib.licenses.gpl2;
+    maintainer = with stdenv.lib.maintainers; [ fuuzetsu ];
   };
 }
diff --git a/pkgs/development/libraries/libmwaw/0.2.nix b/pkgs/development/libraries/libmwaw/0.2.nix
deleted file mode 100644
index d66414b6814..00000000000
--- a/pkgs/development/libraries/libmwaw/0.2.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{stdenv, fetchurl, boost, pkgconfig, cppunit, zlib, libwpg, libwpd, librevenge}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="libmwaw";
-    version="0.2.1";
-    name="${baseName}-${version}";
-    hash="1fil1ll84pq0k3g6rcc2xfg1yrigkljp4ay5p2wpwd9qlmfvvvqn";
-    url="mirror://sourceforge/project/libmwaw/libmwaw/libmwaw-0.2.1/libmwaw-0.2.1.tar.xz";
-    sha256="1fil1ll84pq0k3g6rcc2xfg1yrigkljp4ay5p2wpwd9qlmfvvvqn";
-  };
-  buildInputs = [
-    boost pkgconfig cppunit zlib libwpg libwpd librevenge
-  ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
-  meta = {
-    inherit (s) version;
-    description = ''Import library for some old mac text documents'';
-    license = stdenv.lib.licenses.mpl20 ;
-    maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/development/libraries/libmwaw/0.2.upstream b/pkgs/development/libraries/libmwaw/0.2.upstream
deleted file mode 100644
index 8ce00ecf767..00000000000
--- a/pkgs/development/libraries/libmwaw/0.2.upstream
+++ /dev/null
@@ -1,4 +0,0 @@
-url http://sourceforge.net/projects/libmwaw/files/libmwaw/
-SF_version_dir libmwaw-0.2.
-version_link '[.]tar.xz/download$'
-SF_redirect
diff --git a/pkgs/development/libraries/libvirt/default.nix b/pkgs/development/libraries/libvirt/default.nix
index e2ff06fcd43..a4c8c167b39 100644
--- a/pkgs/development/libraries/libvirt/default.nix
+++ b/pkgs/development/libraries/libvirt/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
   ];
 
   postInstall = ''
+    sed -i 's/ON_SHUTDOWN=suspend/ON_SHUTDOWN=''${ON_SHUTDOWN:-suspend}/' $out/libexec/libvirt-guests.sh
     substituteInPlace $out/libexec/libvirt-guests.sh \
       --replace "$out/bin" "${gettext}/bin"
     wrapProgram $out/sbin/libvirtd \
diff --git a/pkgs/development/libraries/liquidfun/default.nix b/pkgs/development/libraries/liquidfun/default.nix
new file mode 100644
index 00000000000..994c013c631
--- /dev/null
+++ b/pkgs/development/libraries/liquidfun/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, requireFile, cmake, mesa, libX11, libXi }:
+
+let 
+  sourceInfo = rec {
+    version="1.1.0";
+    name="liquidfun-${version}";
+    url="https://github.com/google/liquidfun/releases/download/v${version}/${name}";
+    hash="5011a000eacd6202a47317c489e44aa753a833fb562d970e7b8c0da9de01df86";
+  };
+in
+stdenv.mkDerivation rec {
+  src = requireFile {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+    name = sourceInfo.name + ".tar.gz";
+  };
+
+  inherit (sourceInfo) name version;
+  buildInputs = [ cmake mesa libX11 libXi ];
+
+  sourceRoot = "liquidfun/Box2D/";
+
+  preConfigurePhases = "preConfigure";
+
+  preConfigure = ''
+    sed -i Box2D/Common/b2Settings.h -e 's@b2_maxPolygonVertices .*@b2_maxPolygonVertices 15@'
+    substituteInPlace Box2D/CMakeLists.txt --replace "Common/b2GrowableStack.h" "Common/b2GrowableStack.h Common/b2GrowableBuffer.h"
+  '';
+      
+  configurePhase = ''
+    mkdir Build
+    cd Build; 
+    cmake -DBOX2D_INSTALL=ON -DBOX2D_BUILD_SHARED=ON -DCMAKE_INSTALL_PREFIX=$out ..
+  '';
+
+  meta = {
+    description = "2D physics engine based on Box2D";
+    maintainers = with stdenv.lib.maintainers;
+    [
+      qknight
+    ];
+    platforms = with stdenv.lib.platforms;
+      linux;
+    license = stdenv.lib.licenses.bsd2;
+    homepage = https://google.github.io/liquidfun/;
+  };
+}
+
diff --git a/pkgs/development/libraries/lirc/default.nix b/pkgs/development/libraries/lirc/default.nix
index 75f175a5b2d..88565d5d51b 100644
--- a/pkgs/development/libraries/lirc/default.nix
+++ b/pkgs/development/libraries/lirc/default.nix
@@ -1,18 +1,30 @@
-{ stdenv, fetchurl, alsaLib }:
+{ stdenv, fetchurl, alsaLib, bash, help2man }:
 
 stdenv.mkDerivation rec {
-  name = "lirc-0.9.0";
+  name = "lirc-0.9.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/lirc/${name}.tar.bz2";
-    sha256 = "1zx4mcnjwzz6jsi6ln7a3dkgx05nvg1pxxvmjqvd966ldapay8v3";
+    sha256 = "0vakq9x10hyj9k7iv35sm5f4dhxvk0miwxvv6kn0bhwkr2mnapj6";
   };
 
-  buildInputs = [ alsaLib ];
+  preBuild = "patchShebangs .";
+
+  buildInputs = [ alsaLib help2man ];
 
   configureFlags = [
     "--with-driver=devinput"
     "--sysconfdir=$(out)/etc"
     "--enable-sandboxed"
   ];
+
+  makeFlags = [ "m4dir=$(out)/m4" ];
+
+  meta = with stdenv.lib; {
+    description = "Allows to receive and send infrared signals";
+    homepage = http://www.lirc.org/;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ pSub ];
+  };
 }
diff --git a/pkgs/development/libraries/lzo/default.nix b/pkgs/development/libraries/lzo/default.nix
index 7fa6194cbca..f4bff72fa80 100644
--- a/pkgs/development/libraries/lzo/default.nix
+++ b/pkgs/development/libraries/lzo/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "lzo-2.06";
+  name = "lzo-2.08";
 
   src = fetchurl {
     url = "${meta.homepage}/download/${name}.tar.gz";
-    sha256 = "0wryshs446s7cclrbjykyj766znhcpnr7s3cxy33ybfn6vwfcygz";
+    sha256 = "0536ad3ksk1r8h2a27d0y4p27lwjarzyndw7sagvxzj6xr6kw6xc";
   };
 
   configureFlags = [ "--enable-shared" ];
diff --git a/pkgs/development/libraries/muparser/default.nix b/pkgs/development/libraries/muparser/default.nix
index 9d9a524e86d..b68f04f642f 100644
--- a/pkgs/development/libraries/muparser/default.nix
+++ b/pkgs/development/libraries/muparser/default.nix
@@ -1,11 +1,14 @@
 {stdenv, fetchurl, unzip}:
 
-stdenv.mkDerivation {
-	name = "muparser-2.2.2";
-	src = fetchurl {
-		url = mirror://sourceforge/muparser/muparser_v2_2_2.zip;
-		sha256 = "0pncvjzzbwcadgpwnq5r7sl9v5r2y9gjgfnlw0mrs9wj206dbhx9";
-	};
+stdenv.mkDerivation rec {
+  name = "muparser-${version}";
+  version = "2.2.3";
+  url-version = stdenv.lib.replaceChars ["."] ["_"] version;
+
+  src = fetchurl {
+    url = "mirror://sourceforge/muparser/muparser_v${url-version}.zip";
+    sha256 = "00l92k231yb49wijzkspa2l58mapn6vh2dlxnlg0pawjjfv33s6z";
+  };
 
   buildInputs = [ unzip ];
 
diff --git a/pkgs/development/libraries/openldap/default.nix b/pkgs/development/libraries/openldap/default.nix
index cfbbce2f559..01a4e2e21da 100644
--- a/pkgs/development/libraries/openldap/default.nix
+++ b/pkgs/development/libraries/openldap/default.nix
@@ -18,9 +18,10 @@ stdenv.mkDerivation rec {
 
   dontPatchELF = 1; # !!!
 
-  meta = {
-    homepage = "http://www.openldap.org/";
+  meta = with stdenv.lib; {
+    homepage    = http://www.openldap.org/;
     description = "An open source implementation of the Lightweight Directory Access Protocol";
-    maintainers = stdenv.lib.maintainers.mornfall;
+    maintainers = with maintainers; [ lovek323 mornfall ];
+    platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/osip/default.nix b/pkgs/development/libraries/osip/default.nix
index cfa838f5a37..4db1cb5b524 100644
--- a/pkgs/development/libraries/osip/default.nix
+++ b/pkgs/development/libraries/osip/default.nix
@@ -1,9 +1,9 @@
 {stdenv, fetchurl}:
 stdenv.mkDerivation rec {
-  version = "4.0.0";
+  version = "4.1.0";
   src = fetchurl {
     url = "mirror://gnu/osip/libosip2-${version}.tar.gz";
-    sha256 = "05dhj4s5k4qmhn2amca070xgh1gkcl42n040fhwsn3vm86524bdv";
+    sha256 = "014503kqv7z63az6lgxr5fbajlrqylm5c4kgbf8p3a0n6cva0slr";
   };
   name = "libosip2-${version}";
 
@@ -13,5 +13,6 @@ stdenv.mkDerivation rec {
     description = "The GNU oSIP library, an implementation of the Session Initiation Protocol (SIP)";
     maintainers = with stdenv.lib.maintainers; [ raskin ];
     platforms = stdenv.lib.platforms.linux;
+    inherit version;
   };
 }
diff --git a/pkgs/development/libraries/osip/default.upstream b/pkgs/development/libraries/osip/default.upstream
new file mode 100644
index 00000000000..ba0ed2a9b29
--- /dev/null
+++ b/pkgs/development/libraries/osip/default.upstream
@@ -0,0 +1,3 @@
+url http://ftp.u-tx.net/gnu/osip/
+attribute_name libosip
+minimize_overwrite
diff --git a/pkgs/development/libraries/protobuf/default.nix b/pkgs/development/libraries/protobuf/default.nix
index 3452335decd..bba8481780a 100644
--- a/pkgs/development/libraries/protobuf/default.nix
+++ b/pkgs/development/libraries/protobuf/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "protobuf-2.6.0";
+  name = "protobuf-2.5.0";
 
   src = fetchurl {
-    url = "http://protobuf.googlecode.com/svn-history/r579/rc/protobuf-2.6.0.tar.bz2";
-    sha256 = "0krfkxc85vfznqwbh59qlhp7ld81al9ss35av0gfbg74i0rvjids";
+    url = "http://protobuf.googlecode.com/files/${name}.tar.bz2";
+    sha256 = "0xxn9gxhvsgzz2sgmihzf6pf75clr05mqj6218camwrwajpcbgqk";
   };
 
   buildInputs = [ zlib ];
diff --git a/pkgs/development/libraries/science/math/openblas/0.2.10.nix b/pkgs/development/libraries/science/math/openblas/0.2.10.nix
index a8db0631911..ec4422ce895 100644
--- a/pkgs/development/libraries/science/math/openblas/0.2.10.nix
+++ b/pkgs/development/libraries/science/math/openblas/0.2.10.nix
@@ -1,5 +1,8 @@
-{ stdenv, fetchurl, gfortran, perl, liblapack }:
+{ stdenv, fetchurl, gfortran, perl, liblapack, config }:
 
+let local = config.openblas.preferLocalBuild or false;
+    localTarget = config.openblas.target or "";
+in
 stdenv.mkDerivation rec {
   version = "0.2.10";
 
@@ -16,17 +19,19 @@ stdenv.mkDerivation rec {
 
   cpu = builtins.head (stdenv.lib.splitString "-" stdenv.system);
 
-  target = if cpu == "i686" then "P2" else 
+  target = if local then localTarget else
+    if cpu == "i686" then "P2" else
     if cpu == "x86_64" then "CORE2" else
      # allow autodetect
       "";
 
   makeFlags = "${if target != "" then "TARGET=" else ""}${target} FC=gfortran CC=cc PREFIX=\"\$(out)\" INTERFACE64=1";
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Basic Linear Algebra Subprograms";
-    license = stdenv.lib.licenses.bsd3;
+    license = licenses.bsd3;
     homepage = "https://github.com/xianyi/OpenBLAS";
     platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ ttuegel ];
   };
 }
diff --git a/pkgs/development/libraries/science/math/openblas/0.2.2.nix b/pkgs/development/libraries/science/math/openblas/0.2.2.nix
new file mode 100644
index 00000000000..c476dac955a
--- /dev/null
+++ b/pkgs/development/libraries/science/math/openblas/0.2.2.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, gfortran, perl, liblapack, config }:
+
+let local = config.openblas.preferLocalBuild or false;
+    localTarget = config.openblas.target or "";
+in
+stdenv.mkDerivation rec {
+  version = "0.2.2";
+
+  name = "openblas-${version}";
+  src = fetchurl {
+    url = "https://github.com/xianyi/OpenBLAS/tarball/v${version}";
+    sha256 = "13kdx3knff5ajnmgn419g0dnh83plin07p7akwamr3v7z5qfrzqr";
+    name = "openblas-${version}.tar.gz";
+  };
+
+  preBuild = "cp ${liblapack.src} lapack-${liblapack.meta.version}.tgz";
+
+  buildInputs = [gfortran perl];
+
+  cpu = builtins.head (stdenv.lib.splitString "-" stdenv.system);
+
+  target = if local then localTarget else
+    if cpu == "i686" then "P2" else
+    if cpu == "x86_64" then "CORE2" else
+     # allow autodetect
+      "";
+
+  makeFlags = "${if target != "" then "TARGET=" else ""}${target} FC=gfortran CC=cc PREFIX=\"\$(out)\"";
+
+  meta = with stdenv.lib; {
+    description = "Basic Linear Algebra Subprograms";
+    license = licenses.bsd3;
+    homepage = "https://github.com/xianyi/OpenBLAS";
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ ttuegel ];
+  };
+}
diff --git a/pkgs/development/libraries/science/math/openblas/default.nix b/pkgs/development/libraries/science/math/openblas/default.nix
index c535b1a39db..6ca1f4ccada 100644
--- a/pkgs/development/libraries/science/math/openblas/default.nix
+++ b/pkgs/development/libraries/science/math/openblas/default.nix
@@ -1,12 +1,15 @@
-{ stdenv, fetchurl, gfortran, perl, liblapack }:
+{ stdenv, fetchurl, gfortran, perl, liblapack, config }:
 
+let local = config.openblas.preferLocalBuild or false;
+    localTarget = config.openblas.target or "";
+in
 stdenv.mkDerivation rec {
-  version = "0.2.2";
+  version = "0.2.11";
 
   name = "openblas-${version}";
   src = fetchurl {
     url = "https://github.com/xianyi/OpenBLAS/tarball/v${version}";
-    sha256 = "13kdx3knff5ajnmgn419g0dnh83plin07p7akwamr3v7z5qfrzqr";
+    sha256 = "1va4yhzgj2chcj6kaxgfbzirajp1zgvkic61959aka2xq2c5igms";
     name = "openblas-${version}.tar.gz";
   };
 
@@ -16,17 +19,19 @@ stdenv.mkDerivation rec {
 
   cpu = builtins.head (stdenv.lib.splitString "-" stdenv.system);
 
-  target = if cpu == "i686" then "P2" else 
+  target = if local then localTarget else
+    if cpu == "i686" then "P2" else
     if cpu == "x86_64" then "CORE2" else
      # allow autodetect
       "";
 
-  makeFlags = "${if target != "" then "TARGET=" else ""}${target} FC=gfortran CC=cc PREFIX=\"\$(out)\"";
+  makeFlags = "${if target != "" then "TARGET=" else ""}${target} FC=gfortran CC=cc PREFIX=\"\$(out)\" INTERFACE64=1";
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Basic Linear Algebra Subprograms";
-    license = stdenv.lib.licenses.bsd3;
+    license = licenses.bsd3;
     homepage = "https://github.com/xianyi/OpenBLAS";
     platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ ttuegel ];
   };
 }
diff --git a/pkgs/development/libraries/serd/default.nix b/pkgs/development/libraries/serd/default.nix
index 2fd5c9ad493..c0935bd33fd 100644
--- a/pkgs/development/libraries/serd/default.nix
+++ b/pkgs/development/libraries/serd/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "serd-${version}";
-  version = "0.18.2";
+  version = "0.20.0";
 
   src = fetchurl {
     url = "http://download.drobilla.net/${name}.tar.bz2";
-    sha256 = "1hgajhm4iar4n2kh71pv6yr0yhipj28kds9y5mbig8izqc188gcf";
+    sha256 = "1gxbzqsm212wmn8qkdd3lbl6wbv7fwmaf9qh2nxa4yxjbr7mylb4";
   };
 
   buildInputs = [ pcre pkgconfig python ];
diff --git a/pkgs/development/libraries/serf/default.nix b/pkgs/development/libraries/serf/default.nix
index f0fedba5ac1..873f59dba3a 100644
--- a/pkgs/development/libraries/serf/default.nix
+++ b/pkgs/development/libraries/serf/default.nix
@@ -1,11 +1,12 @@
 { stdenv, fetchurl, apr, scons, openssl, aprutil, zlib, krb5, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  name = "serf-1.3.7";
+  version = "1.3.7";
+  name = "serf-${version}";
 
   src = fetchurl {
     url = "http://serf.googlecode.com/svn/src_releases/${name}.tar.bz2";
-    sha1 = "db9ae339dba10a2b47f9bdacf30a58fd8e36683a";
+    sha256 = "1bphz616dv1svc50kkm8xbgyszhg3ni2dqbij99sfvjycr7bgk7c";
   };
 
   buildInputs = [ apr scons openssl aprutil zlib krb5 pkgconfig ];
@@ -30,5 +31,8 @@ stdenv.mkDerivation rec {
     license = stdenv.lib.licenses.asl20 ;
     maintainers = [stdenv.lib.maintainers.raskin];
     hydraPlatforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
+    inherit version;
+    downloadPage = "http://serf.googlecode.com/svn/src_releases/";
+    updateWalker = true;
   };
 }
diff --git a/pkgs/development/libraries/sodium/default.nix b/pkgs/development/libraries/sodium/default.nix
index be52725f2c8..266675614ce 100644
--- a/pkgs/development/libraries/sodium/default.nix
+++ b/pkgs/development/libraries/sodium/default.nix
@@ -3,11 +3,11 @@ let
   s = # Generated upstream information
   rec {
     baseName="sodium";
-    version="0.6.1";
+    version="0.7.0";
     name="${baseName}-${version}";
-    hash="151nril3kzkpmy6khvqphk4zk15ri0dqv0isyyhz6n9nsbmzxk04";
-    url="http://download.dnscrypt.org/libsodium/releases/libsodium-0.6.1.tar.gz";
-    sha256="151nril3kzkpmy6khvqphk4zk15ri0dqv0isyyhz6n9nsbmzxk04";
+    hash="0s4iis5h7yh27kamwic3rddyp5ra941bcqcawa37grjvl78zzjjc";
+    url="http://download.dnscrypt.org/libsodium/releases/libsodium-0.7.0.tar.gz";
+    sha256="0s4iis5h7yh27kamwic3rddyp5ra941bcqcawa37grjvl78zzjjc";
   };
   buildInputs = [
   ];
diff --git a/pkgs/development/libraries/sord/default.nix b/pkgs/development/libraries/sord/default.nix
index 8f122cb699a..96a19bf37cc 100644
--- a/pkgs/development/libraries/sord/default.nix
+++ b/pkgs/development/libraries/sord/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "sord-${version}";
-  version = "0.12.0";
+  version = "0.12.2";
 
   src = fetchurl {
     url = "http://download.drobilla.net/${name}.tar.bz2";
-    sha256 = "1f0wz7ynnk72hyr4jfi0lgvj90ld2va1kig8fkw30s8b903alsqj";
+    sha256 = "0rq7vafdv4vsxi6xk9zf5shr59w3kppdhqbj78185rz5gp9kh1dx";
   };
 
   buildInputs = [ pkgconfig python serd ];
diff --git a/pkgs/development/libraries/spandsp/default.nix b/pkgs/development/libraries/spandsp/default.nix
index f88ab48e027..24dc443ca70 100644
--- a/pkgs/development/libraries/spandsp/default.nix
+++ b/pkgs/development/libraries/spandsp/default.nix
@@ -1,10 +1,10 @@
 {stdenv, fetchurl, audiofile, libtiff}:
 stdenv.mkDerivation rec {
-  version = "0.0.5";
+  version = "0.0.6";
   name = "spandsp-${version}";
   src=fetchurl {
-    url = "http://www.soft-switch.org/downloads/spandsp/spandsp-${version}.tgz";
-    sha256 = "07f42a237c77b08fa765c3a148c83cdfa267bf24c0ab681d80b90d30dd0b3dbf";
+    url = "http://www.soft-switch.org/downloads/spandsp/spandsp-${version}.tar.gz";
+    sha256 = "0rclrkyspzk575v8fslzjpgp4y2s4x7xk3r55ycvpi4agv33l1fc";
   };
   buildInputs = [];
   propagatedBuildInputs = [audiofile libtiff];
@@ -13,6 +13,9 @@ stdenv.mkDerivation rec {
     platforms = with stdenv.lib.platforms; linux;
     maintainers = with stdenv.lib.maintainers; [raskin];
     license = with stdenv.lib.licenses; gpl2;
+    downloadPage = "http://www.soft-switch.org/downloads/spandsp/";
+    inherit version;
+    updateWalker = true;
   };
 }
 
diff --git a/pkgs/development/libraries/spice-protocol/default.nix b/pkgs/development/libraries/spice-protocol/default.nix
index 162a832c93a..79fe47ff476 100644
--- a/pkgs/development/libraries/spice-protocol/default.nix
+++ b/pkgs/development/libraries/spice-protocol/default.nix
@@ -1,19 +1,18 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "spice-protocol-0.12.6";
+  name = "spice-protocol-0.12.7";
 
   src = fetchurl {
     url = "http://www.spice-space.org/download/releases/${name}.tar.bz2";
-    sha256 = "16r5x2sppiaa6pzawkrvk5q4hmw7ynmlp2xr38f1vaxj5rh4aiwx";
+    sha256 = "1hhn94bw2l76h09sy05a15bs6zalsijnylyqpwcys5hq6rrwpiln";
   };
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Protocol headers for the SPICE protocol";
     homepage = http://www.spice-space.org;
-    license = stdenv.lib.licenses.bsd3;
-
-    maintainers = [ stdenv.lib.maintainers.bluescreen303 ];
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ bluescreen303 ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/spice/default.nix b/pkgs/development/libraries/spice/default.nix
index 2af9565e0b4..2353eec7348 100644
--- a/pkgs/development/libraries/spice/default.nix
+++ b/pkgs/development/libraries/spice/default.nix
@@ -5,11 +5,11 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  name = "spice-0.12.4";
+  name = "spice-0.12.5";
 
   src = fetchurl {
     url = "http://www.spice-space.org/download/releases/${name}.tar.bz2";
-    sha256 = "11xkdz26b39syynxm3iyjsr8q7x0v09zdli9an1ilcrfyiykw1ng";
+    sha256 = "10gmqaanfg929aamf11n4si4r3d1g7z9qjdclsl9kjv7iw6s42a2";
   };
 
   buildInputs = [ pixman celt alsaLib openssl libjpeg zlib
diff --git a/pkgs/development/lisp-modules/asdf/default.nix b/pkgs/development/lisp-modules/asdf/default.nix
index 97e1661544b..100577b3a7f 100644
--- a/pkgs/development/lisp-modules/asdf/default.nix
+++ b/pkgs/development/lisp-modules/asdf/default.nix
@@ -3,11 +3,11 @@ let
   s = # Generated upstream information
   rec {
     baseName="asdf";
-    version="3.1.2";
+    version="3.1.3";
     name="${baseName}-${version}";
-    hash="0d427908q4hcspmdhc5ps38dbvz113hy6687l9ypmfl79qfb2qki";
-    url="http://common-lisp.net/project/asdf/archives/asdf-3.1.2.tar.gz";
-    sha256="0d427908q4hcspmdhc5ps38dbvz113hy6687l9ypmfl79qfb2qki";
+    hash="11jgbl2ys98i7lir0z76g0msm89zmz1b91gwkdz0gnxr6gavj6cn";
+    url="http://common-lisp.net/project/asdf/archives/asdf-3.1.3.tar.gz";
+    sha256="11jgbl2ys98i7lir0z76g0msm89zmz1b91gwkdz0gnxr6gavj6cn";
   };
   buildInputs = [
     texinfo texLive
@@ -29,7 +29,6 @@ stdenv.mkDerivation {
     cp -r ./* "$out"/lib/common-lisp/asdf/
     cp -r doc/* "$out"/share/doc/asdf/
   '';
-  sourceRoot=".";
   meta = {
     inherit (s) version;
     description = ''Standard software-system definition library for Common Lisp'';
diff --git a/pkgs/development/ocaml-modules/cmdliner/default.nix b/pkgs/development/ocaml-modules/cmdliner/default.nix
new file mode 100644
index 00000000000..3a00f0c3888
--- /dev/null
+++ b/pkgs/development/ocaml-modules/cmdliner/default.nix
@@ -0,0 +1,36 @@
+{stdenv, fetchurl, ocaml, findlib, opam}:
+
+let
+  pname = "cmdliner";
+  version = "0.9.5";
+  ocaml_version = (builtins.parseDrvName ocaml.name).version;
+in
+stdenv.mkDerivation {
+
+  name = "ocaml-${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://erratique.ch/software/${pname}/releases/${pname}-${version}.tbz";
+    sha256 = "a0e199c4930450e12edf81604eeceddeeb32d55c43438be689e60df282277a7e";
+  };
+
+  unpackCmd = "tar xjf $src";
+  buildInputs = [ ocaml findlib opam ];
+
+  createFindlibDestdir = true;
+
+  configurePhase = "ocaml pkg/git.ml";
+  buildPhase     = "ocaml pkg/build.ml native=true native-dynlink=true";
+  installPhase   = ''
+    opam-installer --script --prefix=$out ${pname}.install > install.sh
+    sh install.sh
+    ln -s $out/lib/${pname} $out/lib/ocaml/${ocaml_version}/site-lib/
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://erratique.ch/software/cmdliner;
+    description = "An OCaml module for the declarative definition of command line interfaces";
+    license = licenses.bsd3;
+    platforms = ocaml.meta.platforms;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/lambda-term/default.nix b/pkgs/development/ocaml-modules/lambda-term/default.nix
new file mode 100644
index 00000000000..b6edadb0b14
--- /dev/null
+++ b/pkgs/development/ocaml-modules/lambda-term/default.nix
@@ -0,0 +1,41 @@
+{stdenv, fetchurl, libev, ocaml, findlib, ocaml_lwt, ocaml_react, zed}:
+
+stdenv.mkDerivation rec {
+  version = "1.6";
+  name = "lambda-term-${version}";
+
+  src = fetchurl {
+    url = https://github.com/diml/lambda-term/archive/1.6.tar.gz;
+    sha256 = "1rhfixdgpylxznf6sa9wr31wb4pjzpfn5mxhxqpbchmpl2afwa09";
+  };
+
+  buildInputs = [ libev ocaml findlib ocaml_lwt ocaml_react ];
+
+  propagatedBuildInputs = [ zed ];
+
+  createFindlibDestdir = true;
+
+  meta = { description = "Terminal manipulation library for OCaml";
+    longDescription = ''
+    Lambda-term is a cross-platform library for
+    manipulating the terminal. It provides an abstraction for keys,
+    mouse events, colors, as well as a set of widgets to write
+    curses-like applications.
+
+    The main objective of lambda-term is to provide a higher level
+    functional interface to terminal manipulation than, for example,
+    ncurses, by providing a native OCaml interface instead of bindings to
+    a C library.
+
+    Lambda-term integrates with zed to provide text edition facilities in
+    console applications.
+    '';
+
+    homepage = https://github.com/diml/lambda-term;
+    license = stdenv.lib.licenses.bsd3;
+    platforms = ocaml.meta.platforms;
+    maintainers = [
+      stdenv.lib.maintainers.gal_bolle
+    ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/lwt/default.nix b/pkgs/development/ocaml-modules/lwt/default.nix
index 9ef10906365..061dbb398fe 100644
--- a/pkgs/development/ocaml-modules/lwt/default.nix
+++ b/pkgs/development/ocaml-modules/lwt/default.nix
@@ -1,21 +1,27 @@
-{stdenv, fetchurl, which, cryptopp, ocaml, findlib, ocaml_react, ocaml_ssl}:
+{stdenv, fetchgit, which, cryptopp, ocaml, findlib, ocaml_react, ocaml_ssl, libev, pkgconfig, ncurses, ocaml_oasis, ocaml_text, glib}:
 
 let
-  ocaml_version = (builtins.parseDrvName ocaml.name).version;
-  version = "2.1.1";
+  version = "2.4.5";
 in
 
 stdenv.mkDerivation {
+
+
   name = "ocaml-lwt-${version}";
 
-  src = fetchurl {
-    url = "http://ocsigen.org/download/lwt-${version}.tar.gz";
-    sha256 = "1zjn0sgihryshancn4kna1xslhc8gifliny1qd3a85f72xxxnw0w";
+  src = fetchgit {
+    url = git://github.com/ocsigen/lwt;
+    rev = "refs/tags/${version}";
+    sha256 = "2bbf4f216dd62eeb765a89413f3b2b6d417a9c289ca49d595bb4d7a0545e343e";
   };
 
-  buildInputs = [which cryptopp ocaml findlib ocaml_react ocaml_ssl];
+  buildInputs = [ocaml_oasis pkgconfig which cryptopp ocaml findlib glib libev ncurses];
+
+  propagatedBuildInputs = [ ocaml_react ocaml_ssl ocaml_text ];
+
+  configureFlags = [ "--enable-all" ];
 
-  configurePhase = "true";
+  createFindlibDestdir = true;
 
   meta = {
     homepage = http://ocsigen.org/lwt;
@@ -23,7 +29,7 @@ stdenv.mkDerivation {
     license = "LGPL";
     platforms = ocaml.meta.platforms;
     maintainers = [
-      stdenv.lib.maintainers.z77z
+      stdenv.lib.maintainers.z77z stdenv.lib.maintainers.gal_bolle
     ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/ocaml-text/default.nix b/pkgs/development/ocaml-modules/ocaml-text/default.nix
new file mode 100644
index 00000000000..08136dd2b10
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ocaml-text/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl, libiconv, ocaml, findlib, ncurses}:
+
+stdenv.mkDerivation {
+  name = "ocaml-text-0.6";
+
+  src = fetchurl {
+    url = https://forge.ocamlcore.org/frs/download.php/937/ocaml-text-0.6.tar.gz;
+    sha256 = "0j8gaak0ajnlmn8knvfygqwwzs7awjv5rfn5cbj6qxqbxhjd5m6g";
+  };
+
+  buildInputs = [ocaml findlib libiconv ncurses];
+
+  configurePhase = "iconv_prefix=${libiconv} ocaml setup.ml -configure";
+
+  createFindlibDestdir = true;
+
+
+  meta = {
+    homepage = "http://ocaml-text.forge.ocamlcore.org/";
+    description = "OCaml-Text is a library for dealing with ``text'', i.e. sequence of unicode characters, in a convenient way. ";
+    license = "BSD";
+    platforms = ocaml.meta.platforms;
+    maintainers = [
+    ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/react/default.nix b/pkgs/development/ocaml-modules/react/default.nix
index 6b0e694d54a..dfc8dcd1439 100644
--- a/pkgs/development/ocaml-modules/react/default.nix
+++ b/pkgs/development/ocaml-modules/react/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, ocaml, findlib, opam}:
 
 stdenv.mkDerivation {
-  name = "ocaml-react-1.0.1";
+  name = "ocaml-react-1.1.0";
 
   src = fetchurl {
-    url = "http://erratique.ch/software/react/releases/react-1.0.1.tbz";
-    sha256 = "007c9kzl0i6xvxnqj9jny4hgm28v9a1i079q53vl5hfb5f7h1mda";
+    url = http://erratique.ch/software/react/releases/react-1.1.0.tbz;
+    sha256 = "1gymn8hy7ga0l9qymmb1jcnnkqvy7l2zr87xavzqz0dfi9ci8dm7";
   };
 
   unpackCmd = "tar xjf $src";
@@ -15,8 +15,13 @@ stdenv.mkDerivation {
 
   configurePhase = "ocaml pkg/git.ml";
   buildPhase     = "ocaml pkg/build.ml native=true native-dynlink=true";
-  installPhase   = ''
+
+  installPhase   =
+  let ocamlVersion = (builtins.parseDrvName (ocaml.name)).version;
+  in
+   ''
     opam-installer --script --prefix=$out react.install > install.sh
+    sed -i s!lib/react!lib/ocaml/${ocamlVersion}/site-lib/react! install.sh
     sh install.sh
   '';
 
@@ -25,6 +30,6 @@ stdenv.mkDerivation {
     description = "Applicative events and signals for OCaml";
     license = licenses.bsd3;
     platforms = ocaml.meta.platforms;
-    maintainers = with maintainers; [ z77z vbmithr ];
+    maintainers = with maintainers; [ z77z vbmithr gal_bolle];
   };
 }
diff --git a/pkgs/development/ocaml-modules/yojson/default.nix b/pkgs/development/ocaml-modules/yojson/default.nix
index 9237db080d6..562d25550da 100644
--- a/pkgs/development/ocaml-modules/yojson/default.nix
+++ b/pkgs/development/ocaml-modules/yojson/default.nix
@@ -4,16 +4,18 @@ let
   version = "1.1.8";
   webpage = "http://mjambon.com/${pname}.html";
 in
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
 
-  name = "${pname}-${version}";
+  name = "ocaml-${pname}-${version}";
 
   src = fetchurl {
-    url = "http://mjambon.com/releases/${pname}/${name}.tar.gz";
+    url = "http://mjambon.com/releases/${pname}/${pname}-${version}.tar.gz";
     sha256 = "0ayx17dimnpavdfyq6dk9xv2x1fx69by85vc6vl3nqxjkcv5d2rv";
   };
 
-  buildInputs = [ ocaml findlib cppo easy-format biniou ];
+  buildInputs = [ ocaml findlib ];
+
+  propagatedBuildInputs = [ cppo easy-format biniou ];
 
   createFindlibDestdir = true;
 
diff --git a/pkgs/development/ocaml-modules/zed/default.nix b/pkgs/development/ocaml-modules/zed/default.nix
new file mode 100644
index 00000000000..3c2fae472be
--- /dev/null
+++ b/pkgs/development/ocaml-modules/zed/default.nix
@@ -0,0 +1,34 @@
+{stdenv, fetchurl, ocaml, findlib, camomile, ocaml_react}:
+
+stdenv.mkDerivation rec {
+  version = "1.3";
+  name = "ocaml-zed-${version}";
+
+  src = fetchurl {
+    url = https://github.com/diml/zed/archive/1.3.tar.gz;
+    sha256 = "1fr9xzf5msdnl2wx279aqj051nqbhs6v9aq1mfpv3r1mrqvrrfwj";
+  };
+
+  buildInputs = [ ocaml findlib ocaml_react];
+
+  propagatedBuildInputs = [ camomile ];
+
+  createFindlibDestdir = true;
+
+  meta = {
+    description = "Abstract engine for text edition in OCaml";
+    longDescription = ''
+    Zed is an abstract engine for text edition. It can be used to write text editors, edition widgets, readlines, ...
+
+    Zed uses Camomile to fully support the Unicode specification, and implements an UTF-8 encoded string type with validation, and a rope datastructure to achieve efficient operations on large Unicode buffers. Zed also features a regular expression search on ropes.
+
+    To support efficient text edition capabilities, Zed provides macro recording and cursor management facilities.
+    '';
+    homepage = https://github.com/diml/zed;
+    license = stdenv.lib.licenses.bsd3;
+    platforms = ocaml.meta.platforms;
+    maintainers = [
+      stdenv.lib.maintainers.gal_bolle
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/generic/wrap.sh b/pkgs/development/python-modules/generic/wrap.sh
index 857f002cace..282aeca9ed1 100644
--- a/pkgs/development/python-modules/generic/wrap.sh
+++ b/pkgs/development/python-modules/generic/wrap.sh
@@ -26,12 +26,6 @@ wrapPythonProgramsIn() {
             # dont wrap EGG-INFO scripts since they are called from python
             if echo "$i" | grep -v EGG-INFO/scripts; then
                 echo "wrapping \`$i'..."
-                sed -i "$i" -re '1 {
-                    /^#!/!b; :r
-                    /\\$/{N;b r}
-                    /__future__|^ *(#.*)?$/{n;b r}
-                    /^ *[^# ]/i import sys; sys.argv[0] = '"'$(basename "$i")'"'
-                }'
                 wrapProgram "$i" \
                     --prefix PYTHONPATH ":" $program_PYTHONPATH \
                     --prefix PATH ":" $program_PATH
diff --git a/pkgs/development/python-modules/h5py/default.nix b/pkgs/development/python-modules/h5py/default.nix
deleted file mode 100644
index 9ab68ac4cd2..00000000000
--- a/pkgs/development/python-modules/h5py/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ stdenv, fetchurl, python, buildPythonPackage
-, numpy, hdf5, cython
-, mpiSupport ? false, mpi4py ? null, mpi ? null }:
-
-assert mpiSupport == hdf5.mpiSupport;
-assert mpiSupport -> mpi != null
-  && mpi4py != null
-  && mpi == mpi4py.mpi
-  && mpi == hdf5.mpi
-  ;
-
-with stdenv.lib;
-
-buildPythonPackage rec {
-  name = "h5py-2.3.1";
-
-  src = fetchurl {
-    url = "https://pypi.python.org/packages/source/h/h5py/${name}.tar.gz";
-    md5 = "8f32f96d653e904d20f9f910c6d9dd91";
-  };
-
-  setupPyBuildFlags = [ "--hdf5=${hdf5}" ]
-    ++ optional mpiSupport "--mpi"
-    ;
-  setupPyInstallFlags = setupPyBuildFlags;
-
-  preBuild = if mpiSupport then "export CC=${mpi}/bin/mpicc" else "";
-
-  buildInputs = [ hdf5 cython ]
-    ++ optional mpiSupport mpi
-    ;
-  propagatedBuildInputs = [ numpy ]
-    ++ optional mpiSupport mpi4py
-    ;
-
-  meta = {
-    description = "
-      The h5py package is a Pythonic interface to the HDF5 binary data format.
-    ";
-    homepage = "http://www.h5py.org/";
-    license = stdenv.lib.licenses.bsd2;
-  };
-}
diff --git a/pkgs/development/python-modules/mpi4py/default.nix b/pkgs/development/python-modules/mpi4py/default.nix
deleted file mode 100644
index 74d46def907..00000000000
--- a/pkgs/development/python-modules/mpi4py/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ stdenv, fetchurl, python, buildPythonPackage, mpi, openssh }:
-
-buildPythonPackage rec {
-  name = "mpi4py-1.3.1";
-
-  src = fetchurl {
-    url = "https://bitbucket.org/mpi4py/mpi4py/downloads/${name}.tar.gz";
-    sha256 = "e7bd2044aaac5a6ea87a87b2ecc73b310bb6efe5026031e33067ea3c2efc3507";
-  };
-
-  passthru = {
-    inherit mpi;
-  };
-
-  configurePhase = "";
-
-  installPhase = ''
-    mkdir -p "$out/lib/${python.libPrefix}/site-packages"
-    export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
-
-    ${python}/bin/${python.executable} setup.py install \
-      --install-lib=$out/lib/${python.libPrefix}/site-packages \
-      --prefix="$out"
-
-    # --install-lib:
-    # sometimes packages specify where files should be installed outside the usual
-    # python lib prefix, we override that back so all infrastructure (setup hooks)
-    # work as expected
-  '';
-
-  setupPyBuildFlags = ["--mpicc=${mpi}/bin/mpicc"];
-
-  buildInputs = [ mpi ];
-  # Requires openssh for tests. Tests of dependent packages will also fail,
-  # if openssh is not present. E.g. h5py with mpi support.
-  propagatedBuildInputs = [ openssh ];
-
-  meta = {
-    description = "
-      Provides Python bindings for the Message Passing Interface standard.
-    ";
-    homepage = "http://code.google.com/p/mpi4py/";
-    license = stdenv.lib.licenses.bsd3;
-  };
-}
diff --git a/pkgs/development/tools/analysis/checkstyle/default.nix b/pkgs/development/tools/analysis/checkstyle/default.nix
index 1dfaa5cf875..56797d9c702 100644
--- a/pkgs/development/tools/analysis/checkstyle/default.nix
+++ b/pkgs/development/tools/analysis/checkstyle/default.nix
@@ -1,12 +1,12 @@
-{stdenv, fetchurl, unzip}:
+{ stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "checkstyle-5.0";
-  buildInputs = [unzip] ; 
+stdenv.mkDerivation rec {
+  version = "5.7";
+  name = "checkstyle-${version}";
 
   src = fetchurl {
-    url = mirror://sourceforge/checkstyle/checkstyle-5.0.zip ;
-    sha256 = "0972afcxjniz64hlnc89ddnd1d0mcd5hb1sd7lpw5k52h39683nh";
+    url = "mirror://sourceforge/checkstyle/${version}/${name}-bin.tar.gz";
+    sha256 = "0kzj507ylynq6p7v097bjzsckkjny5i2fxwxyrlwi5samhi2m06x";
   };
 
   installPhase = ''
@@ -22,6 +22,6 @@ stdenv.mkDerivation {
       Conventions, but is highly configurable.
     '';
     homepage = http://checkstyle.sourceforge.net/;
+    license = stdenv.lib.licenses.lgpl21;
   };
 }
-
diff --git a/pkgs/development/tools/build-managers/scons/default.nix b/pkgs/development/tools/build-managers/scons/default.nix
index 93f7699481c..e173f827664 100644
--- a/pkgs/development/tools/build-managers/scons/default.nix
+++ b/pkgs/development/tools/build-managers/scons/default.nix
@@ -2,7 +2,7 @@
 
 let
   name = "scons";
-  version = "2.3.2";
+  version = "2.3.3";
 in
 
 stdenv.mkDerivation {
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://sourceforge/scons/${name}-${version}.tar.gz";
-    sha256 = "1m29lhwz7p6k4f8wc8qjpwa89058lzq3vrycgxbfc5cmbq6354zr";
+    sha256 = "1qn0gk4k796a6vwsq62w80d6w96r9xh6kz7aa14xb6md2884x9v3";
   };
 
   buildInputs = [python makeWrapper];
diff --git a/pkgs/development/tools/documentation/haddock/2.15.0.nix b/pkgs/development/tools/documentation/haddock/2.15.0.nix
new file mode 100644
index 00000000000..3b3d91a1f2f
--- /dev/null
+++ b/pkgs/development/tools/documentation/haddock/2.15.0.nix
@@ -0,0 +1,20 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, Cabal, filepath, haddockApi }:
+
+cabal.mkDerivation (self: {
+  pname = "haddock";
+  version = "2.15.0";
+  sha256 = "1vay0v0a02xj2m40w71vmjadlm6pzv309r1jhr61xv1wnj88i75w";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ haddockApi ];
+  testDepends = [ Cabal filepath ];
+  preCheck = "unset GHC_PACKAGE_PATH";
+  meta = {
+    homepage = "http://www.haskell.org/haddock/";
+    description = "A documentation-generation tool for Haskell libraries";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/tools/haskell/cabal-bounds/default.nix b/pkgs/development/tools/haskell/cabal-bounds/default.nix
index 97dac34af3b..368c421221b 100644
--- a/pkgs/development/tools/haskell/cabal-bounds/default.nix
+++ b/pkgs/development/tools/haskell/cabal-bounds/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cabal-bounds";
-  version = "0.8.5";
-  sha256 = "19lai2gdxs76mrvcz77sjsx7hh87cf1f4qmy7z1zcd130z11q04a";
+  version = "0.8.6";
+  sha256 = "0q7fpblhxba4np5a9igwmcvmkkvka9f85nccxw0m2lvwbjrs51xq";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/tools/haskell/codex/default.nix b/pkgs/development/tools/haskell/codex/default.nix
index fac145b14c2..a2f9c119700 100644
--- a/pkgs/development/tools/haskell/codex/default.nix
+++ b/pkgs/development/tools/haskell/codex/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "codex";
-  version = "0.1.0.3";
-  sha256 = "0sbkri6y9f4wws120kbb93sv1z0z75hjw9pw5r3wadmmd0lygsn9";
+  version = "0.1.0.4";
+  sha256 = "1wnrjmf2iypnmdsmjxbjg7kqn8802yhd9vbdc4vg19pqspir87wz";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/tools/haskell/haskell-docs/default.nix b/pkgs/development/tools/haskell/haskell-docs/default.nix
index b9cd34c716e..9cc92aafc21 100644
--- a/pkgs/development/tools/haskell/haskell-docs/default.nix
+++ b/pkgs/development/tools/haskell/haskell-docs/default.nix
@@ -20,5 +20,7 @@ cabal.mkDerivation (self: {
     description = "A program to find and display the docs and type of a name";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
+    hydraPlatforms = self.stdenv.lib.platforms.none;
+    broken = true;
   };
 })
diff --git a/pkgs/development/tools/haskell/hlint/default.nix b/pkgs/development/tools/haskell/hlint/default.nix
index 4fe5f01c3d1..92a33602a1f 100644
--- a/pkgs/development/tools/haskell/hlint/default.nix
+++ b/pkgs/development/tools/haskell/hlint/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hlint";
-  version = "1.9.3";
-  sha256 = "1sdz981yq0amsw9q6hx0aqkd0ayrax5p77s3n3gz4bphpk37n09b";
+  version = "1.9.4";
+  sha256 = "0vqdkrhzxi99py9zrk01cz3hayfbp757rh1c1sgz00a1gf1pyz8m";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/tools/haskell/timeplot/default.nix b/pkgs/development/tools/haskell/timeplot/default.nix
index 4342b877a2e..a07383778ed 100644
--- a/pkgs/development/tools/haskell/timeplot/default.nix
+++ b/pkgs/development/tools/haskell/timeplot/default.nix
@@ -20,5 +20,7 @@ cabal.mkDerivation (self: {
     description = "A tool for visualizing time series from log files";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
+    hydraPlatforms = self.stdenv.lib.platforms.none;
+    broken = true;
   };
 })
diff --git a/pkgs/development/tools/misc/cl-launch/default.nix b/pkgs/development/tools/misc/cl-launch/default.nix
index d66ca9868f5..085af9df3a3 100644
--- a/pkgs/development/tools/misc/cl-launch/default.nix
+++ b/pkgs/development/tools/misc/cl-launch/default.nix
@@ -3,11 +3,11 @@ let
   s = # Generated upstream information
   rec {
     baseName="cl-launch";
-    version="4.0.5";
+    version="4.1";
     name="${baseName}-${version}";
-    hash="00i11pkwsb9r9cjzxjmj0dsp369i0gpz04f447xss9a9v192dhlj";
-    url="http://common-lisp.net/project/xcvb/cl-launch/cl-launch-4.0.5.tar.gz";
-    sha256="00i11pkwsb9r9cjzxjmj0dsp369i0gpz04f447xss9a9v192dhlj";
+    hash="0fmxa8013sgxmbfmh1wqffywg72zynzlw5yyrdvy9qpx1my36pwb";
+    url="http://common-lisp.net/project/xcvb/cl-launch/cl-launch-4.1.tar.gz";
+    sha256="0fmxa8013sgxmbfmh1wqffywg72zynzlw5yyrdvy9qpx1my36pwb";
   };
   buildInputs = [
   ];
diff --git a/pkgs/development/tools/misc/help2man/default.nix b/pkgs/development/tools/misc/help2man/default.nix
index c4ba7073889..c8cff116282 100644
--- a/pkgs/development/tools/misc/help2man/default.nix
+++ b/pkgs/development/tools/misc/help2man/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, perl, gettext, LocaleGettext, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  name = "help2man-1.44.1";
+  name = "help2man-1.46.1";
 
   src = fetchurl {
     url = "mirror://gnu/help2man/${name}.tar.xz";
-    sha256 = "1yyyfw9zrfdvslnv91bnhyqmazwx243wmkc9wdaz888rfx36ipi2";
+    sha256 = "0iqwb3qirl7rp1wwpbh01q89qxvi4h3bc73wi03av6hl4sh05z9x";
   };
 
   buildInputs = [ makeWrapper perl gettext LocaleGettext ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     '';
 
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Generate man pages from `--help' output";
 
     longDescription =
@@ -28,8 +28,8 @@ stdenv.mkDerivation rec {
 
     homepage = http://www.gnu.org/software/help2man/;
 
-    license = stdenv.lib.licenses.gpl3Plus;
-    platforms = stdenv.lib.platforms.gnu;         # arbitrary choice
-    maintainers = [ stdenv.lib.maintainers.ludo ];
+    license = licenses.gpl3Plus;
+    platforms = platforms.gnu;         # arbitrary choice
+    maintainers = with maintainers; [ ludo pSub ];
   };
 }
diff --git a/pkgs/development/tools/misc/inotify-tools/default.nix b/pkgs/development/tools/misc/inotify-tools/default.nix
index 3402c2060e7..4c1cd5bd7bd 100644
--- a/pkgs/development/tools/misc/inotify-tools/default.nix
+++ b/pkgs/development/tools/misc/inotify-tools/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-${version}.tar.gz";
-    sha256 = "0icl4bx041axd5dvhg89kilfkysjj86hjakc7bk8n49cxjn4cha6";
+    sha256 = "0by9frv1k59f76cx08sn06sk6lmdxsfb6zr0rshzhyrxi6lcqar2";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/ocaml/merlin/default.nix b/pkgs/development/tools/ocaml/merlin/default.nix
index c0882439f5c..970c07f3546 100644
--- a/pkgs/development/tools/ocaml/merlin/default.nix
+++ b/pkgs/development/tools/ocaml/merlin/default.nix
@@ -1,14 +1,14 @@
-{stdenv, fetchurl, ocaml, findlib, easy-format, biniou, yojson, menhir}:
+{stdenv, fetchurl, ocaml, findlib, yojson, menhir}:
 stdenv.mkDerivation {
 
-  name = "merlin-1.6";
+  name = "merlin-1.7.1";
 
   src = fetchurl {
-    url = "https://github.com/the-lambda-church/merlin/archive/v1.6.tar.gz";
-    sha256 = "0wq75hgffaszazrhkl0nfjxgx8bvazi2sjannd8q64hvax8hxzcy";
+    url = https://github.com/the-lambda-church/merlin/archive/v1.7.1.tar.gz;
+    sha256 = "c3b60c7b3fddaa2860e0d8ac0d4fed2ed60e319875734c7ac1a93df524c67aff";
   };
 
-  buildInputs = [ ocaml findlib biniou yojson menhir easy-format ];
+  buildInputs = [ ocaml findlib yojson menhir ];
 
   prefixKey = "--prefix ";
 
diff --git a/pkgs/development/tools/ocaml/utop/default.nix b/pkgs/development/tools/ocaml/utop/default.nix
new file mode 100644
index 00000000000..1b99c4d4d43
--- /dev/null
+++ b/pkgs/development/tools/ocaml/utop/default.nix
@@ -0,0 +1,46 @@
+{stdenv, fetchurl, ocaml, findlib, lambdaTerm, ocaml_lwt, makeWrapper,
+ ocaml_react, camomile, zed
+}:
+
+stdenv.mkDerivation rec {
+  version = "1.14";
+  name = "utop-${version}";
+
+  src = fetchurl {
+    url = https://github.com/diml/utop/archive/1.14.tar.gz;
+    sha256 = "17dqinvdrpba2fjs7sl6gxs47rrx6j8a5bbjhc7flp6bdls898zk";
+  };
+
+  buildInputs = [ ocaml findlib makeWrapper];
+
+  propagatedBuildInputs = [ lambdaTerm ocaml_lwt ];
+
+  createFindlibDestdir = true;
+
+  buildPhase = ''
+    make
+    make doc
+    '';
+
+  postFixup =
+  let ocamlVersion = (builtins.parseDrvName (ocaml.name)).version;
+  in
+   ''
+    wrapProgram "$out"/bin/utop --set CAML_LD_LIBRARY_PATH "${ocaml_lwt}"/lib/ocaml/${ocamlVersion}/site-lib/lwt/:"${lambdaTerm}"/lib/ocaml/${ocamlVersion}/site-lib/lambda-term/:'$CAML_LD_LIBRARY_PATH' --set OCAMLPATH "${ocaml_lwt}"/lib/ocaml/${ocamlVersion}/site-lib:${ocaml_react}/lib/ocaml/${ocamlVersion}/site-lib:${camomile}/lib/ocaml/${ocamlVersion}/site-lib:${zed}/lib/ocaml/${ocamlVersion}/site-lib:${lambdaTerm}/lib/ocaml/${ocamlVersion}/site-lib:"$out"/lib/ocaml/${ocamlVersion}/site-lib:'$OCAMLPATH'
+    '';
+
+  meta = {
+    description = "Universal toplevel for OCaml";
+    longDescription = ''
+    utop is an improved toplevel for OCaml. It can run in a terminal or in Emacs. It supports line edition, history, real-time and context sensitive completion, colors, and more.
+
+    It integrates with the tuareg mode in Emacs.
+    '';
+    homepage = https://github.com/diml/utop;
+    license = stdenv.lib.licenses.bsd3;
+    platforms = ocaml.meta.platforms;
+    maintainers = [
+      stdenv.lib.maintainers.gal_bolle
+    ];
+  };
+}
diff --git a/pkgs/development/tools/parsing/byacc/default.nix b/pkgs/development/tools/parsing/byacc/default.nix
index ec302611053..8842c8723b1 100644
--- a/pkgs/development/tools/parsing/byacc/default.nix
+++ b/pkgs/development/tools/parsing/byacc/default.nix
@@ -4,15 +4,10 @@ stdenv.mkDerivation {
   name = "byacc-1.9";
 
   src = fetchurl {
-    url = http://www.isc.org/sources/devel/tools/byacc-1.9.tar.gz;
-    sha256 = "d61a15ac4ac007c188d0c0e99365f016f8d327755f43032b58e400754846f736";
+    url = ftp://invisible-island.net/byacc/byacc-20140715.tgz;
+    sha256 = "1rbzx5ipkvih9rjfdfv6310wcr6mxjbdlsh9zcv5aaz6yxxxil7c";
   };
 
-  preConfigure =
-    ''mkdir -p $out/bin
-      sed -i "s@^DEST.*\$@DEST = $out/bin/yacc@" Makefile
-    '';
-
   meta = { 
     description = "Berkeley YACC";
     homepage = http://dickey.his.com/byacc/byacc.html;
diff --git a/pkgs/development/tools/slimerjs/default.nix b/pkgs/development/tools/slimerjs/default.nix
index 9741b0930d2..23b7d9e692c 100644
--- a/pkgs/development/tools/slimerjs/default.nix
+++ b/pkgs/development/tools/slimerjs/default.nix
@@ -3,11 +3,11 @@ let
   s = # Generated upstream information
   rec {
     baseName="slimerjs";
-    version="0.9.1";
+    version="0.9.2";
     name="${baseName}-${version}";
-    hash="1ss69z2794mv40nfa5bfjd8h78jzcjq5xm63hzay1iyvp5rjbl7k";
-    url="http://download.slimerjs.org/v0.9/0.9.1/slimerjs-0.9.1.zip";
-    sha256="1ss69z2794mv40nfa5bfjd8h78jzcjq5xm63hzay1iyvp5rjbl7k";
+    hash="0817f3aq0gn04q4hq43xk4av02d86s2001lg5s5p38phd2jvh703";
+    url="http://download.slimerjs.org/releases/0.9.2/slimerjs-0.9.2.zip";
+    sha256="0817f3aq0gn04q4hq43xk4av02d86s2001lg5s5p38phd2jvh703";
   };
   buildInputs = [
     unzip zip
diff --git a/pkgs/games/extremetuxracer/default.nix b/pkgs/games/extremetuxracer/default.nix
index e35eb3266c2..af80467c960 100644
--- a/pkgs/games/extremetuxracer/default.nix
+++ b/pkgs/games/extremetuxracer/default.nix
@@ -1,34 +1,38 @@
-a :  
-let 
-  fetchurl = a.fetchurl;
+{ stdenv, fetchurl, mesa, libX11, xproto, tcl, freeglut
+, SDL, SDL_mixer, SDL_image, libXi, inputproto
+, libXmu, libXext, xextproto, libXt, libSM, libICE
+, libpng, pkgconfig, gettext, intltool
+}:
 
-  version = a.lib.attrByPath ["version"] "0.5beta" a; 
-  buildInputs = with a; [
+stdenv.mkDerivation rec {
+  version = "0.6.0";
+  name = "extremetuxracer-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/extremetuxracer/etr-${version}.tar.xz";
+    sha256 = "0fl9pwkywqnsmgr6plfj9zb05xrdnl5xb2hcmbjk7ap9l4cjfca4";
+  };
+
+  buildInputs = [
     mesa libX11 xproto tcl freeglut
-    SDL SDL_mixer libXi inputproto
+    SDL SDL_mixer SDL_image libXi inputproto
     libXmu libXext xextproto libXt libSM libICE
     libpng pkgconfig gettext intltool
   ];
-in
-rec {
-  src = fetchurl {
-    url = "mirror://sourceforge/extremetuxracer/extremetuxracer-${version}.tar.gz";
-    sha256 = "04d99fsfna5mc9apjxsiyw0zgnswy33kwmm1s9d03ihw6rba2zxs";
-  };
 
-  inherit buildInputs;
-  configureFlags = [
-  		"--with-tcl=${a.tcl}/lib"
-  	];
+  configureFlags = [ "--with-tcl=${tcl}/lib" ];
 
-  /* doConfigure should be removed if not needed */
-  phaseNames = ["doConfigure" "doMakeInstall"];
+  preConfigure = ''
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${SDL}/include/SDL"
+  '';
 
-  name = "extremetuxracer-" + version;
   meta = {
     description = "High speed arctic racing game based on Tux Racer";
     longDescription = ''
       ExtremeTuxRacer - Tux lies on his belly and accelerates down ice slopes.
     '';
+    license = stdenv.lib.licenses.gpl2Plus;
+    homepage = http://sourceforge.net/projects/extremetuxracer/;
+    maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
   };
 }
diff --git a/pkgs/games/hawkthorne/default.nix b/pkgs/games/hawkthorne/default.nix
new file mode 100644
index 00000000000..4a99ec44764
--- /dev/null
+++ b/pkgs/games/hawkthorne/default.nix
@@ -0,0 +1,38 @@
+{ fetchgit, stdenv, love, curl, zip }:
+
+stdenv.mkDerivation rec {
+  version = "0.9.1";
+  name = "hawkthorne-${version}";
+
+  src = fetchgit {
+    url = "https://github.com/hawkthorne/hawkthorne-journey.git";
+    rev = "e48b5eef0058f63bb8ee746bc00b47b3e03f0854";
+    sha256 = "0rvcpv8fsi450xs2cglv4w6m5iqbhsr2n09pcvhh0krhg7xay538";
+  };
+
+  buildInputs = [
+    love curl zip
+  ];
+
+  patches = [
+    ./makefile.patch
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Journey to the Center of Hawkthorne - A fan-made retro-style game based on the show Community";
+    longDescription = ''
+      Journey to the Center of Hawkthorne is an open source game written in Love2D.
+      It's based on the show Community, starring Jim Rash and Joel McHale as
+      the primary will-they-or-won't-they relationship.
+
+      This game has been entirely developed by fans of the show, who were inspired
+      to bring to life the video game used to determine the winner of Pierce
+      Hawthorne's inheritance.
+    '';
+    homepage = "http://www.reddit.com/r/hawkthorne";
+    license = stdenv.lib.licenses.mit;
+    maintainers = with stdenv.lib.maintainers; [ campadrenalin ];
+  };
+}
diff --git a/pkgs/games/hawkthorne/makefile.patch b/pkgs/games/hawkthorne/makefile.patch
new file mode 100644
index 00000000000..16a79683149
--- /dev/null
+++ b/pkgs/games/hawkthorne/makefile.patch
@@ -0,0 +1,33 @@
+diff --git a/Makefile b/Makefile
+index 55eb817..f3406aa 100644
+--- a/Makefile
++++ b/Makefile
+@@ -18,10 +18,14 @@ endif
+
+ tilemaps := $(patsubst %.tmx,%.lua,$(wildcard src/maps/*.tmx))
+
+-maps: $(tilemaps)
+-
+ love: build/hawkthorne.love
+
++shebang: build/hawkthorne.love
++	cat <(echo '#!/usr/bin/env love') build/hawkthorne.love > build/hawkthorne
++	chmod +x build/hawkthorne
++
++maps: $(tilemaps)
++
+ build/hawkthorne.love: $(tilemaps) src/*
+ 	mkdir -p build
+ 	cd src && zip --symlinks -q -r ../build/hawkthorne.love . -x ".*" \
+@@ -30,6 +34,12 @@ build/hawkthorne.love: $(tilemaps) src/*
+ run: $(tilemaps) $(LOVE)
+ 	$(LOVE) src
+
++check: test
++
++install: shebang
++	mkdir -p $(out)/bin
++	cp build/hawkthorne $(out)/bin
++
+ src/maps/%.lua: src/maps/%.tmx bin/tmx2lua
+ 	bin/tmx2lua $<
diff --git a/pkgs/games/super-tux-kart/default.nix b/pkgs/games/super-tux-kart/default.nix
index 29d3b4e4557..db42572de5e 100644
--- a/pkgs/games/super-tux-kart/default.nix
+++ b/pkgs/games/super-tux-kart/default.nix
@@ -1,18 +1,19 @@
 { fetchurl, cmake, stdenv, plib, SDL, openal, freealut, mesa
 , libvorbis, libogg, gettext, libXxf86vm, curl, pkgconfig
-, fribidi, autoconf, automake, libtool }:
+, fribidi, autoconf, automake, libtool, bluez }:
 
 stdenv.mkDerivation rec {
-  name = "supertuxkart-0.8";
+  version = "0.8.1";
+  name = "supertuxkart-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/supertuxkart/${name}-src.tar.bz2";
-    sha256 = "12sbml4wxg2x2wgnnkxfisj96a9gcsaj3fj27kdk8yj524ikv7xr";
+    sha256 = "1mpqmi62a2kl6n58mw11fj0dr5xiwmjkqnfmd2z7ghdhc6p02lrk";
   };
 
   buildInputs = [
     plib SDL openal freealut mesa libvorbis libogg gettext
-    libXxf86vm curl pkgconfig fribidi autoconf automake libtool cmake
+    libXxf86vm curl pkgconfig fribidi autoconf automake libtool cmake bluez
   ];
 
   enableParallelBuilding = true;
@@ -27,15 +28,13 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "SuperTuxKart is a Free 3D kart racing game";
-
     longDescription = ''
       SuperTuxKart is a Free 3D kart racing game, with many tracks,
       characters and items for you to try, similar in spirit to Mario
       Kart.
     '';
-
     homepage = http://supertuxkart.sourceforge.net/;
-
     license = stdenv.lib.licenses.gpl2Plus;
+    maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
   };
 }
diff --git a/pkgs/games/tcl2048/builder.sh b/pkgs/games/tcl2048/builder.sh
new file mode 100644
index 00000000000..b34441cdc99
--- /dev/null
+++ b/pkgs/games/tcl2048/builder.sh
@@ -0,0 +1,5 @@
+source $stdenv/setup
+
+mkdir -p $out/bin
+cp $src $out/bin/2048
+chmod +x $out/bin/2048
diff --git a/pkgs/games/tcl2048/default.nix b/pkgs/games/tcl2048/default.nix
new file mode 100644
index 00000000000..01ffd27d5bb
--- /dev/null
+++ b/pkgs/games/tcl2048/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, tcl, tcllib }:
+
+stdenv.mkDerivation {
+  name = "tcl2048-0.2.6";
+
+  src = fetchurl {
+    url = https://raw.githubusercontent.com/dbohdan/2048-tcl/v0.2.6/2048.tcl;
+    sha256 = "481eac7cccc37d1122c3069da6186f584906bd27b86b8d4ae1a2d7e355c1b6b2";
+  };
+
+  builder = ./builder.sh;
+
+  meta = {
+    homepage = https://github.com/dbohdan/2048-tcl;
+    description = "The game of 2048 implemented in Tcl.";
+    license = stdenv.lib.licenses.mit;
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/misc/emulators/dolphin-emu/default.nix b/pkgs/misc/emulators/dolphin-emu/default.nix
new file mode 100644
index 00000000000..bf03e1e52aa
--- /dev/null
+++ b/pkgs/misc/emulators/dolphin-emu/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, pkgconfig, cmake, bluez, ffmpeg, libao, mesa, gtk2, glib
+, gettext, libpthreadstubs, libXrandr, libXext, readline
+, openal, libXdmcp, portaudio, SDL, wxGTK30, fetchurl
+, pulseaudio ? null }:
+
+stdenv.mkDerivation rec {
+  name = "dolphin-emu-4.0.2";
+  src = fetchurl {
+    url = https://github.com/dolphin-emu/dolphin/archive/4.0.2.tar.gz;
+    sha256 = "0a8ikcxdify9d7lqz8fn2axk2hq4q1nvbcsi1b8vb9z0mdrhzw89";
+  };
+
+  cmakeFlags = ''
+    -DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib}/lib/glib-2.0/include
+    -DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2}/lib/gtk-2.0/include
+    -DGTK2_INCLUDE_DIRS=${gtk2}/include/gtk-2.0
+    -DCMAKE_BUILD_TYPE=Release
+    -DENABLE_LTO=True
+  '';
+
+  enableParallelBuilding = true;
+
+  buildInputs = [ stdenv pkgconfig cmake bluez ffmpeg libao mesa gtk2 glib
+                  gettext libpthreadstubs libXrandr libXext readline openal
+                  libXdmcp portaudio SDL wxGTK30 pulseaudio ];
+
+  meta = {
+    homepage = http://dolphin-emu.org/;
+    description = "Gamecube/Wii/Triforce emulator for x86_64 and ARM";
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = with stdenv.lib.maintainers; [ MP2E ];
+  };
+}
diff --git a/pkgs/misc/emulators/dolphin-emu/master.nix b/pkgs/misc/emulators/dolphin-emu/master.nix
new file mode 100644
index 00000000000..4823d41d1ac
--- /dev/null
+++ b/pkgs/misc/emulators/dolphin-emu/master.nix
@@ -0,0 +1,34 @@
+{ stdenv, pkgconfig, cmake, bluez, ffmpeg, libao, mesa, gtk2, glib
+, gettext, git, libpthreadstubs, libXrandr, libXext, readline
+, openal, libXdmcp, portaudio, SDL, wxGTK30, fetchgit
+, pulseaudio ? null }:
+
+stdenv.mkDerivation rec {
+  name = "dolphin-emu-20140902";
+  src = fetchgit {
+    url = git://github.com/dolphin-emu/dolphin.git;
+    rev = "cc6db8cf26c1508ae382912bc25e64aaf12e0543";
+    sha256 = "17pc4kk1v0p1llc12ifih02j2klfjz29qh8nhz5lapb0a1wr6lb3";
+  };
+
+  cmakeFlags = ''
+    -DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib}/lib/glib-2.0/include
+    -DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2}/lib/gtk-2.0/include
+    -DGTK2_INCLUDE_DIRS=${gtk2}/include/gtk-2.0
+    -DCMAKE_BUILD_TYPE=Release
+    -DENABLE_LTO=True
+  '';
+
+  enableParallelBuilding = true;
+
+  buildInputs = [ stdenv pkgconfig cmake bluez ffmpeg libao mesa gtk2 glib
+                  gettext libpthreadstubs libXrandr libXext readline openal
+                  git libXdmcp portaudio SDL wxGTK30 pulseaudio ];
+
+  meta = {
+    homepage = http://dolphin-emu.org/;
+    description = "Gamecube/Wii/Triforce emulator for x86_64 and ARM";
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = with stdenv.lib.maintainers; [ MP2E ];
+  };
+}
diff --git a/pkgs/misc/emulators/higan/builder.sh b/pkgs/misc/emulators/higan/builder.sh
new file mode 100644
index 00000000000..144c23d39de
--- /dev/null
+++ b/pkgs/misc/emulators/higan/builder.sh
@@ -0,0 +1,20 @@
+
+source $stdenv/setup
+
+unpackPhase
+cd $sourceName
+make phoenix=gtk profile=accuracy -C ananke
+make phoenix=gtk profile=accuracy
+
+install -dm 755 $out/share/applications $out/share/pixmaps $out/share/higan/Video\ Shaders $out/bin $out/lib
+
+install -m 644 data/higan.desktop $out/share/applications/
+install -m 644 data/higan.png $out/share/pixmaps/
+cp -dr --no-preserve=ownership profile/* data/cheats.bml $out/share/higan/
+cp -dr --no-preserve=ownership shaders/*.shader $out/share/higan/Video\ Shaders/
+
+install -m 755 out/higan $out/bin/higan
+install -m 644 ananke/libananke.so $out/lib/libananke.so.1
+(cd $out/lib && ln -s libananke.so.1 libananke.so)
+oldRPath=$(patchelf --print-rpath $out/bin/higan)
+patchelf --set-rpath $oldRPath:$out/lib $out/bin/higan
diff --git a/pkgs/misc/emulators/higan/default.nix b/pkgs/misc/emulators/higan/default.nix
new file mode 100644
index 00000000000..aceb55b1396
--- /dev/null
+++ b/pkgs/misc/emulators/higan/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl
+, pkgconfig
+, libX11, libXv
+, udev
+, mesa, gtk, SDL
+, libao, openal, pulseaudio
+}:
+
+stdenv.mkDerivation rec {
+
+  name = "higan-${version}";
+  version = "094";
+  sourceName = "higan_v${version}-source";
+
+  src = fetchurl {
+    url = "http://byuu.org/files/${sourceName}.tar.xz";
+    sha256 = "06qm271pzf3qf2labfw2lx6k0xcd89jndmn0jzmnc40cspwrs52y";
+    curlOpts = "--user-agent 'Mozilla/5.0'"; # the good old user-agent trick...
+  };
+
+  buildInputs = with stdenv.lib;
+  [ pkgconfig libX11 libXv udev mesa gtk SDL libao openal pulseaudio ];
+
+  builder = ./builder.sh;
+
+  meta = {
+    description = "An open-source, cycle-accurate Nintendo multi-system emulator";
+    longDescription = ''
+      Higan (formerly bsnes) is a Nintendo multi-system emulator.
+      It currently supports the following systems:
+        Famicom; Super Famicom;
+        Game Boy; Game Boy Color; Game Boy Advance
+      higan also supports the following subsystems:
+        Super Game Boy; BS-X Satellaview; Sufami Turbo
+    '';
+    homepage = http://byuu.org/higan/;
+    license = stdenv.lib.licenses.gpl3Plus;
+    maintainers = [ stdenv.lib.maintainers.AndersonTorres ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
+
+#
+# TODO:
+#   - options to choose profiles (accuracy, balanced, performance)
+#     and different GUIs (gtk2, qt4)
+#   - fix the BML and BIOS paths - maybe a custom patch to Higan project?
+#
diff --git a/pkgs/misc/emulators/stella/default.nix b/pkgs/misc/emulators/stella/default.nix
new file mode 100644
index 00000000000..3f10d7afb6e
--- /dev/null
+++ b/pkgs/misc/emulators/stella/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl
+, pkgconfig, SDL2
+}:
+
+stdenv.mkDerivation rec {
+
+  name = "stella-${version}";
+  version = "4.0";
+
+  src = fetchurl {
+    url = "http://downloads.sourceforge.net/project/stella/stella/${version}/${name}-src.tar.gz";
+    sha256 = "1j96sj2qflq3agb7fvb08ih3pxy8nsvlkwj40q3n00q9k884ad5w";
+  };
+
+  buildInputs = with stdenv.lib;
+  [ pkgconfig SDL2 ];
+
+  meta = with stdenv.lib; {
+    description = "An open-source Atari 2600 VCS emulator";
+    longDescription = ''
+    Stella is a multi-platform Atari 2600 VCS emulator released under
+    the GNU General Public License (GPL). Stella was originally
+    developed for Linux by Bradford W. Mott, and is currently
+    maintained by Stephen Anthony.
+    As of its 3.5 release, Stella is officialy donationware. 
+    '';
+    homepage = http://stella.sourceforge.net/;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/misc/emulators/wine/unstable.nix b/pkgs/misc/emulators/wine/unstable.nix
index cd5c5a8b479..a7d52f2bca4 100644
--- a/pkgs/misc/emulators/wine/unstable.nix
+++ b/pkgs/misc/emulators/wine/unstable.nix
@@ -7,12 +7,12 @@ assert stdenv.isLinux;
 assert stdenv.gcc.gcc != null;
 
 let
-    version = "1.7.23";
+    version = "1.7.25";
     name = "wine-${version}";
 
     src = fetchurl {
       url = "mirror://sourceforge/wine/${name}.tar.bz2";
-      sha256 = "012ww1yifayakw9n2m23sx83dc3i2xiq3bn5n9iprppdhwxpp76v";
+      sha256 = "0h7mijxv5nhn0nn5knr8arq9bl7chi3diaa668yyhjbxwn15xqzm";
     };
 
     gecko = fetchurl {
diff --git a/pkgs/misc/emulators/wine/unstable.upstream b/pkgs/misc/emulators/wine/unstable.upstream
index e3616df7680..fa78360c76a 100644
--- a/pkgs/misc/emulators/wine/unstable.upstream
+++ b/pkgs/misc/emulators/wine/unstable.upstream
@@ -1,5 +1,5 @@
 url http://sourceforge.net/projects/wine/files/Source/
-attribute_name wine_unstable
+attribute_name wineUnstable
 version_link '[.]tar[.][^./]+/download$'
 SF_redirect
 do_overwrite () {
diff --git a/pkgs/misc/my-env/loadenv.sh b/pkgs/misc/my-env/loadenv.sh
index 1aab4ac0208..2a990e8685c 100644
--- a/pkgs/misc/my-env/loadenv.sh
+++ b/pkgs/misc/my-env/loadenv.sh
@@ -2,6 +2,8 @@
 
 OLDPATH="$PATH"
 OLDTZ="$TZ"
+OLD_http_proxy="$http_proxy"
+OLD_ftp_proxy="$http_proxy"
 source @myenvpath@
 
 PATH="$PATH:$OLDPATH"
@@ -10,6 +12,8 @@ export NIX_MYENV_NAME="@name@"
 export buildInputs
 export NIX_STRIP_DEBUG=0
 export TZ="$OLDTZ"
+export http_proxy="$OLD_http_proxy"
+export ftp_proxy="$OLD_ftp_proxy"
 
 if test $# -gt 0; then
     exec "$@"
diff --git a/pkgs/misc/screensavers/xscreensaver/default.nix b/pkgs/misc/screensavers/xscreensaver/default.nix
index 04791749810..40fad768b16 100644
--- a/pkgs/misc/screensavers/xscreensaver/default.nix
+++ b/pkgs/misc/screensavers/xscreensaver/default.nix
@@ -41,5 +41,8 @@ stdenv.mkDerivation rec {
     description = "A set of screensavers";
     maintainers = with stdenv.lib.maintainers; [ raskin urkud ];
     platforms = with stdenv.lib.platforms; allBut cygwin;
+    inherit version;
+    downloadPage = "http://www.jwz.org/xscreensaver/download.html";
+    updateWalker = true;
   };
 }
diff --git a/pkgs/os-specific/linux/conspy/default.nix b/pkgs/os-specific/linux/conspy/default.nix
index d252d9ce162..78d403a3afc 100644
--- a/pkgs/os-specific/linux/conspy/default.nix
+++ b/pkgs/os-specific/linux/conspy/default.nix
@@ -3,11 +3,11 @@ let
   s = # Generated upstream information
   rec {
     baseName="conspy";
-    version="1.9";
+    version="1.10";
     name="${baseName}-${version}";
-    hash="1ndwdx8x5lnjl6cddy1d8g8m7ndxyj3wrs100w2bp9gnvbxbb8vv";
-    url="http://ace-host.stuart.id.au/russell/files/conspy/conspy-1.9.tar.gz";
-    sha256="1ndwdx8x5lnjl6cddy1d8g8m7ndxyj3wrs100w2bp9gnvbxbb8vv";
+    hash="1vnph4xa1qp4sr52jc9zldmbdpkr6z5j7hk2vgyhfn7m1vc5g0qw";
+    url="mirror://sourceforge/project/conspy/conspy-1.10-1/conspy-1.10.tar.gz";
+    sha256="1vnph4xa1qp4sr52jc9zldmbdpkr6z5j7hk2vgyhfn7m1vc5g0qw";
   };
   buildInputs = [
     autoconf automake ncurses
diff --git a/pkgs/os-specific/linux/conspy/default.upstream b/pkgs/os-specific/linux/conspy/default.upstream
index db0c0fd9680..3eeacf34694 100644
--- a/pkgs/os-specific/linux/conspy/default.upstream
+++ b/pkgs/os-specific/linux/conspy/default.upstream
@@ -1 +1,5 @@
-url http://ace-host.stuart.id.au/russell/files/conspy/
+url http://sourceforge.net/projects/conspy/files/
+version_link 'conspy-[-0-9.]+/$'
+version_link '[-0-9.]+[.]tar[.][a-z0-9]+/download$'
+SF_redirect
+version '.*-([-0-9.]+)[.]tar[.].*' '\1'
diff --git a/pkgs/os-specific/linux/dmraid/default.nix b/pkgs/os-specific/linux/dmraid/default.nix
index 35efa8533ab..ec4621e6957 100644
--- a/pkgs/os-specific/linux/dmraid/default.nix
+++ b/pkgs/os-specific/linux/dmraid/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, devicemapper }:
 
 stdenv.mkDerivation rec {
-  name = "dmraid-1.0.0.rc15";
+  name = "dmraid-1.0.0.rc16";
 
   src = fetchurl {
     url = "http://people.redhat.com/~heinzm/sw/dmraid/src/old/${name}.tar.bz2";
-    sha256 = "01bcaq0sc329ghgj7f182xws7jgjpdc41bvris8fsiprnxc7511h";
+    sha256 = "0m92971gyqp61darxbiri6a48jz3wq3gkp8r2k39320z0i6w8jgq";
   };
 
   preConfigure = "cd */";
diff --git a/pkgs/os-specific/linux/firejail/default.nix b/pkgs/os-specific/linux/firejail/default.nix
index c1fa2c26205..d7f3d293c48 100644
--- a/pkgs/os-specific/linux/firejail/default.nix
+++ b/pkgs/os-specific/linux/firejail/default.nix
@@ -3,11 +3,11 @@ let
   s = # Generated upstream information
   rec {
     baseName="firejail";
-    version="0.9.8.1";
+    version="0.9.10";
     name="${baseName}-${version}";
-    hash="0wjanz42k301zdwv06ylnzqrabxy424j0k9dh4i4aqhvihvxr83x";
-    url="mirror://sourceforge/project/firejail/firejail/firejail-0.9.8.1.tar.bz2";
-    sha256="0wjanz42k301zdwv06ylnzqrabxy424j0k9dh4i4aqhvihvxr83x";
+    hash="0pjzs77r86nnhddpfm39f0a4lrzahq0cwi8d2wsg35gxvb19w1jg";
+    url="mirror://sourceforge/project/firejail/firejail/firejail-0.9.10.tar.bz2";
+    sha256="0pjzs77r86nnhddpfm39f0a4lrzahq0cwi8d2wsg35gxvb19w1jg";
   };
   buildInputs = [
   ];
diff --git a/pkgs/os-specific/linux/libaio/default.nix b/pkgs/os-specific/linux/libaio/default.nix
index bf30530e9ad..b3df129912e 100644
--- a/pkgs/os-specific/linux/libaio/default.nix
+++ b/pkgs/os-specific/linux/libaio/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchgit }:
+{ stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "libaio-0.3.109";
+  version = "0.3.110";
+  name = "libaio-${version}";
 
-  src = fetchgit {
-    url = https://git.fedorahosted.org/git/libaio.git;
-    rev = "refs/tags/${name}";
-    sha256 = "1wbziq0hqvnbckpxrz1cgr8dlw3mifs4xpy3qhnagbrrsmrq2rhi";
+  src = fetchurl {
+    url = "https://fedorahosted.org/releases/l/i/libaio/${name}.tar.gz";
+    sha256 = "0zjzfkwd1kdvq6zpawhzisv7qbq1ffs343i5fs9p498pcf7046g0";
   };
 
   makeFlags = "prefix=$(out)";
@@ -15,5 +15,7 @@ stdenv.mkDerivation rec {
     description = "Library for asynchronous I/O in Linux";
     homepage = http://lse.sourceforge.net/io/aio.html;
     platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.lgpl21;
+    maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
   };
 }
diff --git a/pkgs/os-specific/linux/lttng-modules/default.nix b/pkgs/os-specific/linux/lttng-modules/default.nix
index 8e20bf1e3d3..4794cd8f96c 100644
--- a/pkgs/os-specific/linux/lttng-modules/default.nix
+++ b/pkgs/os-specific/linux/lttng-modules/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
     # TODO license = with licenses; [ lgpl21 gpl2 mit ];
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
+    broken = true;
   };
 
 }
diff --git a/pkgs/os-specific/linux/lvm2/default.nix b/pkgs/os-specific/linux/lvm2/default.nix
index 9e2b0c90079..ee6165bfc9a 100644
--- a/pkgs/os-specific/linux/lvm2/default.nix
+++ b/pkgs/os-specific/linux/lvm2/default.nix
@@ -1,19 +1,21 @@
-{ stdenv, fetchurl, pkgconfig, udev, utillinux, coreutils }:
+{ stdenv, fetchurl, pkgconfig, udev, utillinux, coreutils, enable_dmeventd ? false }:
 
 let
-  v = "2.02.106";
+  version = "2.02.110";
 in
 
 stdenv.mkDerivation {
-  name = "lvm2-${v}";
+  name = "lvm2-${version}";
 
   src = fetchurl {
-    url = "ftp://sources.redhat.com/pub/lvm2/releases/LVM2.${v}.tgz";
-    sha256 = "0nr833bl0q4zq52drjxmmpf7bs6kqxwa5kahwwxm9411khkxz0vc";
+    url = "ftp://sources.redhat.com/pub/lvm2/releases/LVM2.${version}.tgz";
+    sha256 = "04fdzvv5431d1i4p701zkm9kc50087q56k7l2l5l5f3i9ah1mb9x";
   };
 
   configureFlags =
-    "--disable-readline --enable-udev_rules --enable-udev_sync --enable-pkgconfig --enable-applib";
+    "--disable-readline --enable-udev_rules --enable-udev_sync --enable-pkgconfig --enable-applib --enable-cmdlib"
+      + (stdenv.lib.optionalString enable_dmeventd " --enable-dmeventd")
+      ;
 
   buildInputs = [ pkgconfig udev ];
 
@@ -54,5 +56,8 @@ stdenv.mkDerivation {
     homepage = http://sourceware.org/lvm2/;
     descriptions = "Tools to support Logical Volume Management (LVM) on Linux";
     platforms = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [raskin];
+    inherit version;
+    downloadPage = "ftp://sources.redhat.com/pub/lvm2/";
   };
 }
diff --git a/pkgs/os-specific/linux/lvm2/default.upstream b/pkgs/os-specific/linux/lvm2/default.upstream
new file mode 100644
index 00000000000..1e5aaf5ab5c
--- /dev/null
+++ b/pkgs/os-specific/linux/lvm2/default.upstream
@@ -0,0 +1,4 @@
+url ftp://sources.redhat.com/pub/lvm2/
+version_link '[.]tgz$'
+version '.*[^0-9.][^.]*[.]([0-9.]+)[.].*' '\1'
+do_overwrite () { do_overwrite_just_version; }
diff --git a/pkgs/os-specific/linux/openvswitch/default.nix b/pkgs/os-specific/linux/openvswitch/default.nix
new file mode 100644
index 00000000000..2e25c0383b7
--- /dev/null
+++ b/pkgs/os-specific/linux/openvswitch/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchurl, openssl, python27, iproute, perl, kernel ? null}:
+let
+
+  version = "2.1.2";
+
+  skipKernelMod = kernel == null;
+
+in
+stdenv.mkDerivation {
+  version = "2.1.2";
+  name = "openvswitch-${version}";
+  src = fetchurl {
+    url = "http://openvswitch.org/releases/openvswitch-2.1.2.tar.gz";
+    sha256 = "16q7faqrj2pfchhn0x5s9ggi5ckcg9n62f6bnqaih064aaq2jm47";
+  };
+  kernel = if skipKernelMod then null else kernel.dev;
+  buildInputs = [
+    openssl
+    python27
+    perl
+  ];
+  configureFlags = [
+    "--localstatedir=/var"
+    "--sharedstatedir=/var"
+    "--sbindir=$(out)/bin"
+  ] ++ (if skipKernelMod then [] else ["--with-linux"]);
+  # Leave /var out of this!
+  installFlags = [
+    "LOGDIR=$(TMPDIR)/dummy"
+    "RUNDIR=$(TMPDIR)/dummy"
+    "PKIDIR=$(TMPDIR)/dummy"
+  ];
+  meta = {
+    platforms = stdenv.lib.platforms.linux;
+    description = "A multilayer virtual switch";
+    longDescription = 
+      ''
+      Open vSwitch is a production quality, multilayer virtual switch 
+      licensed under the open source Apache 2.0 license. It is 
+      designed to enable massive network automation through 
+      programmatic extension, while still supporting standard 
+      management interfaces and protocols (e.g. NetFlow, sFlow, SPAN, 
+      RSPAN, CLI, LACP, 802.1ag). In addition, it is designed to 
+      support distribution across multiple physical servers similar 
+      to VMware's vNetwork distributed vswitch or Cisco's Nexus 1000V.
+      '';
+    homepage = "http://openvswitch.org/";
+    licence = "Apache 2.0";
+  };
+}
diff --git a/pkgs/os-specific/linux/s6-linux-utils/default.nix b/pkgs/os-specific/linux/s6-linux-utils/default.nix
new file mode 100644
index 00000000000..0f0967079df
--- /dev/null
+++ b/pkgs/os-specific/linux/s6-linux-utils/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchurl, skalibs }:
+
+let
+
+  version = "1.0.3.1";
+
+in stdenv.mkDerivation rec {
+
+  name = "s6-linux-utils-${version}";
+
+  src = fetchurl {
+    url = "http://www.skarnet.org/software/s6-linux-utils/${name}.tar.gz";
+    sha256 = "1s17g03z5hfpiz32g001g5wyamyvn9l36fr2csk3k7r0jkqfnl0d";
+  };
+
+  buildInputs = [ skalibs ];
+
+  sourceRoot = "admin/${name}";
+
+  configurePhase = ''
+    pushd conf-compile
+
+    printf "$out/bin"           > conf-install-command
+    printf "$out/include"       > conf-install-include
+    printf "$out/lib"           > conf-install-library
+    printf "$out/lib"           > conf-install-library.so
+
+    # let nix builder strip things, cross-platform
+    truncate --size 0 conf-stripbins
+    truncate --size 0 conf-striplibs
+
+    printf "${skalibs}/sysdeps"      > import
+    printf "%s" "${skalibs}/include" > path-include
+    printf "%s" "${skalibs}/lib"     > path-library
+
+    rm -f flag-slashpackage
+    touch flag-allstatic
+
+    popd
+  '';
+
+  preBuild = ''
+    patchShebangs src/sys
+  '';
+
+  meta = {
+    homepage = http://www.skarnet.org/software/s6-linux-utils/;
+    description = "A set of minimalistic Linux-specific system utilities.";
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.isc;
+  };
+
+}
diff --git a/pkgs/os-specific/linux/sysdig/default.nix b/pkgs/os-specific/linux/sysdig/default.nix
index d5e2ed3ff94..80677a52a32 100644
--- a/pkgs/os-specific/linux/sysdig/default.nix
+++ b/pkgs/os-specific/linux/sysdig/default.nix
@@ -3,14 +3,14 @@ let
   inherit (stdenv.lib) optional optionalString;
   s = rec {
     baseName="sysdig";
-    version="0.1.87";
+    version = "0.1.88";
     name="${baseName}-${version}";
     url="https://github.com/draios/sysdig/archive/${version}.tar.gz";
-    sha256="0xfildaj8kzbngpza47zqm363i6q87m97a18qlmdisrxmz11s32b";
+    sha256 = "1a4ij3qpk1h7xnyhic6p21jp46p9lpnagfl46ky46snflld4bz96";
   };
   buildInputs = [
     cmake zlib luajit
-  ] ++ optional (kernel != null) kernel;
+  ];
 in
 stdenv.mkDerivation {
   inherit (s) name version;
@@ -30,6 +30,10 @@ stdenv.mkDerivation {
   '';
   postInstall = optionalString (kernel != null) ''
     make install_driver
+    kernel_dev=${kernel.dev}
+    kernel_dev=''${kernel_dev#/nix/store/}
+    kernel_dev=''${kernel_dev%%-linux*dev*}
+    sed -i "s#$kernel_dev#................................#g" $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/servers/http/tomcat/6.0.nix b/pkgs/servers/http/tomcat/6.0.nix
index ee0049ce08f..19f20cc8823 100644
--- a/pkgs/servers/http/tomcat/6.0.nix
+++ b/pkgs/servers/http/tomcat/6.0.nix
@@ -1,23 +1,6 @@
-{ stdenv, fetchurl }:
-
-let version = "6.0.39"; in
-
-stdenv.mkDerivation rec {
-  name = "apache-tomcat-${version}";
-
-  src = fetchurl {
-    url = "mirror://apache/tomcat/tomcat-6/v${version}/bin/${name}.tar.gz";
+import ./recent.nix 
+  {
+    versionMajor = "6";
+    versionMinor = "0.39";
     sha256 = "19qix6affhc252n03smjf482drg3nxd27shni1gvhphgj3zfmgfy";
-  };
-
-  installPhase =
-    ''
-      mkdir $out
-      mv * $out
-    '';
-
-  meta = {
-    homepage = http://tomcat.apache.org/;
-    description = "An implementation of the Java Servlet and JavaServer Pages technologies";
-  };
-}
+  }
diff --git a/pkgs/servers/http/tomcat/7.0.nix b/pkgs/servers/http/tomcat/7.0.nix
new file mode 100644
index 00000000000..87bc57eb2b6
--- /dev/null
+++ b/pkgs/servers/http/tomcat/7.0.nix
@@ -0,0 +1,6 @@
+import ./recent.nix 
+  {
+    versionMajor = "7";
+    versionMinor = "0.55";
+    sha256 = "c20934fda63bc7311e2d8e067d67f886890c8be72280425c5f6f8fdd7a376c15";
+  }
diff --git a/pkgs/servers/http/tomcat/8.0.nix b/pkgs/servers/http/tomcat/8.0.nix
new file mode 100644
index 00000000000..63b8d2bbc94
--- /dev/null
+++ b/pkgs/servers/http/tomcat/8.0.nix
@@ -0,0 +1,6 @@
+import ./recent.nix 
+  {
+    versionMajor = "8";
+    versionMinor = "0.9";
+    sha256 = "5ea3c8260088ee4fd223a532a4b0c23a10e549c34705e2f190279a1a7f1f83d9";
+  }
diff --git a/pkgs/servers/http/tomcat/recent.nix b/pkgs/servers/http/tomcat/recent.nix
new file mode 100644
index 00000000000..0d11ba7a104
--- /dev/null
+++ b/pkgs/servers/http/tomcat/recent.nix
@@ -0,0 +1,24 @@
+{ versionMajor, versionMinor, sha256 }:
+{ stdenv, fetchurl }:
+
+let version = "${versionMajor}.${versionMinor}"; in
+
+stdenv.mkDerivation rec {
+  name = "apache-tomcat-${version}";
+
+  src = fetchurl {
+    url = "mirror://apache/tomcat/tomcat-${versionMajor}/v${version}/bin/${name}.tar.gz";
+    inherit sha256;
+  };
+
+  installPhase =
+    ''
+      mkdir $out
+      mv * $out
+    '';
+
+  meta = {
+    homepage = http://tomcat.apache.org/;
+    description = "An implementation of the Java Servlet and JavaServer Pages technologies";
+  };
+}
diff --git a/pkgs/servers/monitoring/munin/default.nix b/pkgs/servers/monitoring/munin/default.nix
index 245c838607f..0ce58e64015 100644
--- a/pkgs/servers/monitoring/munin/default.nix
+++ b/pkgs/servers/monitoring/munin/default.nix
@@ -105,7 +105,7 @@ stdenv.mkDerivation rec {
             *.jar) continue;;
         esac
         wrapProgram "$file" \
-          --set PERL5LIB "$out/lib/perl5/site_perl:${with perlPackages; stdenv.lib.makePerlPath [
+          --set PERL5LIB "$out/lib/perl5/site_perl:${rrdtool}/lib/perl:${with perlPackages; stdenv.lib.makePerlPath [
                 Log4Perl IOSocketInet6 Socket6 URI DBFile DateManip
                 HTMLTemplate FileCopyRecursive FCGI NetSNMP NetServer
                 ListMoreUtils TimeHiRes DBDPg LWPUserAgent
diff --git a/pkgs/servers/nosql/mongodb/default.nix b/pkgs/servers/nosql/mongodb/default.nix
index f51a2b8fe3f..40c255d5921 100644
--- a/pkgs/servers/nosql/mongodb/default.nix
+++ b/pkgs/servers/nosql/mongodb/default.nix
@@ -1,17 +1,18 @@
 { stdenv, fetchurl, scons, boost, gperftools, pcre, snappy }:
 
+with stdenv.lib;
+
 let version = "2.6.4";
     system-libraries = [
-      "tcmalloc"
       "pcre"
       "boost"
       "snappy"
       # "v8"      -- mongo still bundles 3.12 and does not work with 3.15+
       # "stemmer" -- not nice to package yet (no versioning, no makefile, no shared libs)
       # "yaml"    -- it seems nixpkgs' yamlcpp (0.5.1) is problematic for mongo
-    ];
-    system-lib-args = stdenv.lib.concatStringsSep " "
-                          (map (lib: "--use-system-${lib}") system-libraries);
+    ] ++ optionals (!stdenv.isDarwin) [ "tcmalloc" ];
+    system-lib-args = concatStringsSep " "
+                        (map (lib: "--use-system-${lib}") system-libraries);
 
 in stdenv.mkDerivation rec {
   name = "mongodb-${version}";
@@ -40,9 +41,9 @@ in stdenv.mkDerivation rec {
   meta = {
     description = "a scalable, high-performance, open source NoSQL database";
     homepage = http://www.mongodb.org;
-    license = stdenv.lib.licenses.agpl3;
+    license = licenses.agpl3;
 
-    maintainers = [ stdenv.lib.maintainers.bluescreen303 ];
-    platforms = stdenv.lib.platforms.linux;
+    maintainers = with maintainers; [ bluescreen303 offline ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix
index bb0c0bc8da8..0efdd542fa4 100644
--- a/pkgs/servers/sql/mariadb/default.nix
+++ b/pkgs/servers/sql/mariadb/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, ncurses, openssl, bison, boost, libxml2, libaio, judy, libevent, groff }:
+{ stdenv, fetchurl, cmake, ncurses, openssl, bison, boost, libxml2, libaio, judy, libevent, groff, perl, fixDarwinDylibNames }:
 
 stdenv.mkDerivation rec {
   name = "mariadb-${version}";
@@ -9,12 +9,25 @@ stdenv.mkDerivation rec {
     sha256 = "039wz89vs03a27anpshj5xaqknm7cqi7mrypvwingqkq26ns0mhs";
   };
 
-  buildInputs = [ cmake ncurses openssl bison boost libxml2 libaio judy libevent groff ];
+  buildInputs = [ cmake ncurses openssl bison boost libxml2 judy libevent groff ]
+     ++ stdenv.lib.optional (!stdenv.isDarwin) libaio
+     ++ stdenv.lib.optionals stdenv.isDarwin [ perl fixDarwinDylibNames ];
+
+  patches = stdenv.lib.optional stdenv.isDarwin ./my_context_asm.patch;
 
   cmakeFlags = [ "-DWITH_READLINE=yes" "-DWITH_EMBEDDED_SERVER=yes" "-DINSTALL_SCRIPTDIR=bin" ];
 
   enableParallelBuilding = true;
 
+  prePatch = ''
+    substituteInPlace cmake/libutils.cmake \
+      --replace /usr/bin/libtool libtool
+  '';
+  postInstall = ''
+    substituteInPlace $out/bin/mysql_install_db \
+      --replace basedir=\"\" basedir=\"$out\"
+  '';
+
   passthru.mysqlVersion = "5.5";
 
   meta = {
diff --git a/pkgs/servers/sql/mariadb/my_context_asm.patch b/pkgs/servers/sql/mariadb/my_context_asm.patch
new file mode 100644
index 00000000000..3a747ed1b03
--- /dev/null
+++ b/pkgs/servers/sql/mariadb/my_context_asm.patch
@@ -0,0 +1,18 @@
+--- a/mysys/my_context.c
++++ b/mysys/my_context.c
+@@ -206,15 +206,6 @@ my_context_spawn(struct my_context *c, void (*f)(void *), void *d)
+     (
+      "movq %%rsp, (%[save])\n\t"
+      "movq %[stack], %%rsp\n\t"
+-#if __GNUC__ >= 4 && __GNUC_MINOR__ >= 4 && !defined(__INTEL_COMPILER)
+-     /*
+-       This emits a DWARF DW_CFA_undefined directive to make the return address
+-       undefined. This indicates that this is the top of the stack frame, and
+-       helps tools that use DWARF stack unwinding to obtain stack traces.
+-       (I use numeric constant to avoid a dependency on libdwarf includes).
+-     */
+-     ".cfi_escape 0x07, 16\n\t"
+-#endif
+      "movq %%rbp, 8(%[save])\n\t"
+      "movq %%rbx, 16(%[save])\n\t"
+      "movq %%r12, 24(%[save])\n\t"
diff --git a/pkgs/servers/uhub/default.nix b/pkgs/servers/uhub/default.nix
new file mode 100644
index 00000000000..a6e0d474d89
--- /dev/null
+++ b/pkgs/servers/uhub/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, cmake, openssl, sqlite, pkgconfig, systemd
+, tlsSupport ? false }:
+
+assert tlsSupport -> openssl != null;
+
+let version = "0.4.1"; in
+stdenv.mkDerivation {
+  name = "uhub-${version}";
+
+  src = fetchurl {
+    url = "http://www.extatic.org/downloads/uhub/uhub-${version}-src.tar.bz2";
+    sha256 = "1q0n74fb0h5w0k9fhfkznxb4r46qyfb8g2ss3wflivx4l0m1f9x2";
+  };
+
+  buildInputs = [ cmake sqlite pkgconfig systemd ] ++ stdenv.lib.optional tlsSupport openssl;
+
+  outputs = [ "out"
+    "mod_example"
+    "mod_welcome"
+    "mod_logging"
+    "mod_auth_simple"
+    "mod_auth_sqlite"
+    "mod_chat_history"
+    "mod_chat_only"
+    "mod_topic"
+    "mod_no_guest_downloads"
+  ];
+
+  patches = [ ./plugin-dir.patch ./systemd.patch ];
+
+  cmakeFlags = ''
+    -DSYSTEMD_SUPPORT=ON
+    ${if tlsSupport then "-DSSL_SUPPORT=ON" else "-DSSL_SUPPORT=OFF"}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "High performance peer-to-peer hub for the ADC network";
+    homepage = https://www.uhub.org/;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.emery ];
+    platforms = platforms.unix;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/servers/uhub/plugin-dir.patch b/pkgs/servers/uhub/plugin-dir.patch
new file mode 100644
index 00000000000..95ebfd6706f
--- /dev/null
+++ b/pkgs/servers/uhub/plugin-dir.patch
@@ -0,0 +1,23 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 40e996e..d3b7e6d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -185,10 +185,16 @@ else()
+ 	# add_definitions(-DDEBUG)
+ endif()
+ 
++set( PLUGINS mod_example mod_welcome mod_logging mod_auth_simple mod_auth_sqlite mod_chat_history mod_chat_only mod_topic mod_no_guest_downloads )
++
+ if (UNIX)
+ 	install( TARGETS uhub RUNTIME DESTINATION bin )
+-	install( TARGETS mod_example mod_welcome mod_logging mod_auth_simple mod_auth_sqlite mod_chat_history mod_chat_only mod_topic mod_no_guest_downloads DESTINATION /usr/lib/uhub/ OPTIONAL )
+-	install( FILES ${CMAKE_SOURCE_DIR}/doc/uhub.conf ${CMAKE_SOURCE_DIR}/doc/plugins.conf ${CMAKE_SOURCE_DIR}/doc/rules.txt ${CMAKE_SOURCE_DIR}/doc/motd.txt DESTINATION /etc/uhub OPTIONAL )
++
++        foreach( PLUGIN ${PLUGINS} )
++		install( TARGETS ${PLUGIN} DESTINATION $ENV{${PLUGIN}} OPTIONAL )
++        endforeach( PLUGIN )
++
++	install( FILES ${CMAKE_SOURCE_DIR}/doc/uhub.conf ${CMAKE_SOURCE_DIR}/doc/plugins.conf ${CMAKE_SOURCE_DIR}/doc/rules.txt ${CMAKE_SOURCE_DIR}/doc/motd.txt DESTINATION doc/ OPTIONAL )
+ 
+ 	if (SQLITE_SUPPORT)
+ 		install( TARGETS uhub-passwd RUNTIME DESTINATION bin )
diff --git a/pkgs/servers/uhub/systemd.patch b/pkgs/servers/uhub/systemd.patch
new file mode 100644
index 00000000000..05e7571d18d
--- /dev/null
+++ b/pkgs/servers/uhub/systemd.patch
@@ -0,0 +1,164 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 40e996e..fc4fb01 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -19,6 +19,7 @@ option(LINK_SUPPORT "Allow hub linking" OFF)
+ option(SSL_SUPPORT "Enable SSL support" ON)
+ option(USE_OPENSSL "Use OpenSSL's SSL support" ON )
+ option(SQLITE_SUPPORT "Enable SQLite support" ON)
++option(SYSTEMD_SUPPORT "Enable systemd notify and journal logging" OFF)
+ option(ADC_STRESS "Enable the stress tester client" OFF)
+ 
+ find_package(Git)
+@@ -34,6 +35,12 @@ if (SSL_SUPPORT)
+ 	endif()
+ endif()
+ 
++if (SYSTEMD_SUPPORT)
++        INCLUDE(FindPkgConfig)
++        pkg_search_module(SD_DAEMON REQUIRED libsystemd-daemon)
++        pkg_search_module(SD_JOURNAL REQUIRED libsystemd-journal)
++endif()
++
+ if (MSVC)
+ 	add_definitions(-D_CRT_SECURE_NO_WARNINGS)
+ endif()
+@@ -175,6 +182,18 @@ if(SSL_SUPPORT)
+ 	endif()
+ endif()
+ 
++if (SYSTEMD_SUPPORT)
++        target_link_libraries(uhub ${SD_DAEMON_LIBRARIES})
++        target_link_libraries(uhub ${SD_JOURNAL_LIBRARIES})
++        target_link_libraries(test ${SD_DAEMON_LIBRARIES})
++        target_link_libraries(test ${SD_JOURNAL_LIBRARIES})
++        target_link_libraries(uhub-passwd ${SD_JOURNAL_LIBRARIES})
++        target_link_libraries(uhub-admin ${SD_JOURNAL_LIBRARIES})
++        include_directories(${SD_DAEMON_INCLUDE_DIRS})
++        include_directories(${SD_JOURNAL_INCLUDE_DIRS})
++        add_definitions(-DSYSTEMD)
++endif()
++
+ configure_file ("${PROJECT_SOURCE_DIR}/version.h.in" "${PROJECT_SOURCE_DIR}/version.h")
+ 
+ mark_as_advanced(FORCE CMAKE_BUILD_TYPE)
+diff --git a/src/core/main.c b/src/core/main.c
+index bb78672..ac2d2a8 100644
+--- a/src/core/main.c
++++ b/src/core/main.c
+@@ -19,6 +19,10 @@
+ 
+ #include "uhub.h"
+ 
++#ifdef SYSTEMD
++#include <systemd/sd-daemon.h>
++#endif
++
+ static int arg_verbose = 5;
+ static int arg_fork    = 0;
+ static int arg_check_config = 0;
+@@ -145,7 +149,16 @@ int main_loop()
+ 			}
+ #if !defined(WIN32)
+ 			setup_signal_handlers(hub);
+-#endif
++#ifdef SYSTEMD
++                        /* Notify the service manager that this daemon has 
++                         * been successfully initalized and shall enter the
++                         * main loop.
++                         */
++                        sd_notifyf(0, "READY=1\n"
++                                      "MAINPID=%lu", (unsigned long) getpid());
++#endif /* SYSTEMD */
++
++#endif /* ! WIN32 */
+ 		}
+ 
+ 		hub_set_variables(hub, &acl);
+@@ -216,13 +229,17 @@ void print_usage(char* program)
+ 		"   -q          Quiet mode - no output\n"
+ 		"   -f          Fork to background\n"
+ 		"   -l <file>   Log messages to given file (default: stderr)\n"
+-		"   -L          Log messages to syslog\n"
+ 		"   -c <file>   Specify configuration file (default: " SERVER_CONFIG ")\n"
+ 		"   -C          Check configuration and return\n"
+ 		"   -s          Show configuration parameters\n"
+ 		"   -S          Show configuration parameters, but ignore defaults\n"
+ 		"   -h          This message\n"
+ #ifndef WIN32
++#ifdef SYSTEMD
++		"   -L          Log messages to journal\n"
++#else
++		"   -L          Log messages to syslog\n"
++#endif
+ 		"   -u <user>   Run as given user\n"
+ 		"   -g <group>  Run with given group permissions\n"
+ 		"   -p <file>   Store pid in file (process id)\n"
+diff --git a/src/util/log.c b/src/util/log.c
+index 42badb3..2d97528 100644
+--- a/src/util/log.c
++++ b/src/util/log.c
+@@ -21,7 +21,15 @@
+ #include <locale.h>
+ 
+ #ifndef WIN32
++
++#ifdef SYSTEMD
++#define SD_JOURNAL_SUPPRESS_LOCATION
++#include <systemd/sd-journal.h>
++
++#else
+ #include <syslog.h>
++#endif
++
+ static int use_syslog = 0;
+ #endif
+ 
+@@ -83,7 +91,9 @@ void hub_log_initialize(const char* file, int syslog)
+ 	if (syslog)
+ 	{
+ 		use_syslog = 1;
++                #ifndef SYSTEMD
+ 		openlog("uhub", LOG_PID, LOG_USER);
++                #endif
+ 	}
+ #endif
+ 
+@@ -132,7 +142,9 @@ void hub_log_shutdown()
+ 	if (use_syslog)
+ 	{
+ 		use_syslog = 0;
++                #ifndef SYSTEMD
+ 		closelog();
++                #endif
+ 	}
+ #endif
+ }
+@@ -212,7 +224,12 @@ void hub_log(int log_verbosity, const char *format, ...)
+ 			case log_fatal:    level = LOG_CRIT; break;
+ 			case log_error:    level = LOG_ERR; break;
+ 			case log_warning:  level = LOG_WARNING; break;
+-			case log_user:     level = LOG_INFO | LOG_AUTH; break;
++                        #ifdef SYSTEMD
++                        case log_user:     level = LOG_INFO; break;
++
++                        #else
++                        case log_user:     level = LOG_INFO | LOG_AUTH; break;
++                        #endif
+ 			case log_info:     level = LOG_INFO; break;
+ 			case log_debug:    level = LOG_DEBUG; break;
+ 			
+@@ -224,8 +241,13 @@ void hub_log(int log_verbosity, const char *format, ...)
+ 		if (level == 0)
+ 			return;
+ 		
++                #ifdef SYSTEMD
++		sd_journal_print(level, "%s", logmsg);
++
++                #else
+ 		level |= (LOG_USER | LOG_DAEMON);
+ 		syslog(level, "%s", logmsg);
++                #endif
+ 	}
+ #endif
+ 	
diff --git a/pkgs/tools/X11/xnee/default.nix b/pkgs/tools/X11/xnee/default.nix
index 35c4ca06c6c..43fa105e680 100644
--- a/pkgs/tools/X11/xnee/default.nix
+++ b/pkgs/tools/X11/xnee/default.nix
@@ -2,11 +2,12 @@
 , gtk, libXi, inputproto, pkgconfig, recordproto, texinfo }:
 
 stdenv.mkDerivation rec {
-  name = "xnee-3.12";
+  version = "3.19";
+  name = "xnee-${version}";
 
   src = fetchurl {
     url = "mirror://gnu/xnee/${name}.tar.gz";
-    sha256 = "10vxn0in0l2jir6x90grx5jc64x63l3b0f8liladdbplc8za8zmw";
+    sha256 = "04n2lac0vgpv8zsn7nmb50hf3qb56pmj90dmwnivg09gyrf1x92j";
   };
 
   patchPhase =
@@ -48,7 +49,7 @@ stdenv.mkDerivation rec {
 
     homepage = http://www.gnu.org/software/xnee/;
 
-    maintainers = [ ];
+    maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
     platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
   };
 }
diff --git a/pkgs/tools/backup/duplicity/default.nix b/pkgs/tools/backup/duplicity/default.nix
index 45d6cb83739..0f8c46e2dc3 100644
--- a/pkgs/tools/backup/duplicity/default.nix
+++ b/pkgs/tools/backup/duplicity/default.nix
@@ -1,14 +1,15 @@
-{ stdenv, fetchurl, python, librsync, ncftp, gnupg, boto, makeWrapper, lockfile }:
+{ stdenv, fetchurl, python, librsync, ncftp, gnupg, boto, makeWrapper
+, lockfile, setuptools }:
 
 let
-  version = "0.6.23";
+  version = "0.6.24";
 in
 stdenv.mkDerivation {
   name = "duplicity-${version}";
 
   src = fetchurl {
     url = "http://code.launchpad.net/duplicity/0.6-series/${version}/+download/duplicity-${version}.tar.gz";
-    sha256 = "0q0ckkmyq9z7xfbb1jajflmbzjwxpcjkkiab43rxrplm0ghz25vs";
+    sha256 = "0l14nrhbgkyjgvh339bbhnm6hrdwrjadphq1jmpi0mcgcdbdfh8x";
   };
 
   installPhase = ''
@@ -20,7 +21,7 @@ stdenv.mkDerivation {
       --prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${boto}):$(toPythonPath ${lockfile})" \
   '';
 
-  buildInputs = [ python librsync makeWrapper ];
+  buildInputs = [ python librsync makeWrapper setuptools ];
 
   meta = {
     description = "Encrypted bandwidth-efficient backup using the rsync algorithm";
diff --git a/pkgs/tools/compression/xar/default.nix b/pkgs/tools/compression/xar/default.nix
new file mode 100644
index 00000000000..0bb4a1fb2ae
--- /dev/null
+++ b/pkgs/tools/compression/xar/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, libxml2, openssl, zlib, bzip2 }:
+
+stdenv.mkDerivation rec {
+  version = "1.5.2";
+  name    = "xar-${version}";
+
+  src = fetchurl {
+    url    = "https://xar.googlecode.com/files/${name}.tar.gz";
+    sha256 = "1rp3va6akzlh35yqrapfqnbxaxa0zi8wyr93swbapprwh215cpac";
+  };
+
+  buildInputs = [ libxml2 openssl zlib bzip2 ];
+
+  meta = {
+    homepage    = https://code.google.com/p/xar/;
+    description = "Extensible Archiver";
+
+    longDescription =
+      '' The XAR project aims to provide an easily extensible archive format.
+         Important design decisions include an easily extensible XML table of
+         contents for random access to archived files, storing the toc at the
+         beginning of the archive to allow for efficient handling of streamed
+         archives, the ability to handle files of arbitrarily large sizes, the
+         ability to choose independent encodings for individual files in the
+         archive, the ability to store checksums for individual files in both
+         compressed and uncompressed form, and the ability to query the table
+         of content's rich meta-data.
+      '';
+
+    license     = stdenv.lib.licenses.bsd3;
+    maintainers = with stdenv.lib.maintainers; [ copumpkin ];
+    platforms   = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/tools/filesystems/btrfsprogs/default.nix b/pkgs/tools/filesystems/btrfsprogs/default.nix
index 66152f9589b..02f214ad430 100644
--- a/pkgs/tools/filesystems/btrfsprogs/default.nix
+++ b/pkgs/tools/filesystems/btrfsprogs/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, attr, acl, zlib, libuuid, e2fsprogs, lzo
 , asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl, libxslt }:
 
-let version = "3.14.2"; in
+let version = "3.16"; in
 
 stdenv.mkDerivation rec {
   name = "btrfs-progs-${version}";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/people/mason/btrfs-progs/btrfs-progs-v${version}.tar.xz";
-    sha256 = "14vpj6f2v076v9zabgrz8l4dp6n1ar2mvk3lvii51ykvi35d1qbh";
+    sha256 = "0phbrgipl04q8cdj9nnshik7b6p2bg51jxb3l1gvfc04dkgm2xls";
   };
 
   buildInputs = [
@@ -21,10 +21,11 @@ stdenv.mkDerivation rec {
 
   makeFlags = "prefix=$(out)";
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Utilities for the btrfs filesystem";
     homepage = https://btrfs.wiki.kernel.org/;
-    maintainers = [ stdenv.lib.maintainers.raskin ];
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ raskin wkennington ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/filesystems/smbnetfs/default.nix b/pkgs/tools/filesystems/smbnetfs/default.nix
index 616f61e6c84..e9d9b27d751 100644
--- a/pkgs/tools/filesystems/smbnetfs/default.nix
+++ b/pkgs/tools/filesystems/smbnetfs/default.nix
@@ -12,17 +12,16 @@ let
   sourceInfo = rec {
     baseName="smbnetfs";
     dirBaseName="SMBNetFS";
-    version="0.5.3a";
+    version = "0.5.3b";
     name="${baseName}-${version}";
     project="${baseName}";
     url="mirror://sourceforge/project/${project}/${baseName}/${dirBaseName}-${version}/${name}.tar.bz2";
-    hash="0fzlw11y2vkxmjzz3qcypqlvz074v6a3pl4pyffbniqal64qgrsw";
   };
 in
 rec {
   src = a.fetchurl {
     url = sourceInfo.url;
-    sha256 = sourceInfo.hash;
+    sha256 = "1j9b30kh4ymv4nr8c1qc7hfg6pscgyj75ib16pqa0zljjk1klx18";
   };
 
   inherit (sourceInfo) name version;
@@ -40,11 +39,9 @@ rec {
     platforms = with a.lib.platforms;
       linux;
     license = a.lib.licenses.gpl2;
-  };
-  passthru = {
-    updateInfo = {
-      downloadPage = "http://sourceforge.net/projects/smbnetfs/files/smbnetfs";
-    };
+    downloadPage = "http://sourceforge.net/projects/smbnetfs/files/smbnetfs";
+    updateWalker = true;
+    inherit version;
   };
 }) x
 
diff --git a/pkgs/tools/filesystems/smbnetfs/default.upstream b/pkgs/tools/filesystems/smbnetfs/default.upstream
new file mode 100644
index 00000000000..9e2ba2bd59b
--- /dev/null
+++ b/pkgs/tools/filesystems/smbnetfs/default.upstream
@@ -0,0 +1,6 @@
+url http://sourceforge.net/projects/smbnetfs/files/smbnetfs/
+version_link '[-][0-9.]+[a-z]*/$'
+version_link '[.]tar[.][a-z0-9]+/download$'
+SF_redirect
+version '.*[-]([0-9.]+[a-z]*)[.]tar[.].*' '\1'
+do_overwrite () { do_overwrite_just_version; }
diff --git a/pkgs/tools/graphics/barcode/default.nix b/pkgs/tools/graphics/barcode/default.nix
index 60dc5a285da..23a2e6dd78f 100644
--- a/pkgs/tools/graphics/barcode/default.nix
+++ b/pkgs/tools/graphics/barcode/default.nix
@@ -9,17 +9,16 @@ let
   buildInputs = map (n: builtins.getAttr n x)
     (builtins.attrNames (builtins.removeAttrs x helperArgNames));
   sourceInfo = rec {
-    version="0.99";
+    version = "0.99";
     baseName="barcode";
     name="${baseName}-${version}";
-    url="mirror://gnu/${baseName}/${name}.tar.gz";
-    hash="0r2b2lwg7a9i9ic5spkbnavy1ynrppmrldv46vsl44l1xgriq0vw";
+    url="mirror://gnu/${baseName}/${name}.tar.xz";
   };
 in
 rec {
   src = a.fetchurl {
     url = sourceInfo.url;
-    sha256 = sourceInfo.hash;
+    sha256 = "1indapql5fjz0bysyc88cmc54y8phqrbi7c76p71fgjp45jcyzp8";
   };
 
   inherit (sourceInfo) name version;
@@ -35,11 +34,9 @@ rec {
       raskin
     ];
     platforms = with a.lib.platforms; allBut darwin;
-  };
-  passthru = {
-    updateInfo = {
-      downloadPage = "ftp://ftp.gnu.org/gnu/barcode/";
-    };
+    downloadPage = "http://ftp.gnu.org/gnu/barcode/";
+    updateWalker = true;
+    inherit version;
   };
 }) x
 
diff --git a/pkgs/tools/graphics/graphviz/2.32.nix b/pkgs/tools/graphics/graphviz/2.32.nix
new file mode 100644
index 00000000000..0a86a892417
--- /dev/null
+++ b/pkgs/tools/graphics/graphviz/2.32.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchurl, pkgconfig, libpng, libjpeg, expat, libXaw
+, yacc, libtool, fontconfig, pango, gd, xlibs, gts, gettext, cairo
+}:
+
+stdenv.mkDerivation rec {
+  version = "2.32.0";
+  name = "graphviz-${version}";
+
+  src = fetchurl {
+    url = "http://www.graphviz.org/pub/graphviz/ARCHIVE/${name}.tar.gz";
+    sha256 = "0ym7lw3xnkcgbk32vfmm3329xymca60gzn90rq6dv8887qqv4lyq";
+  };
+
+  buildInputs =
+    [ pkgconfig libpng libjpeg expat libXaw yacc libtool fontconfig
+      pango gd gts
+    ] ++ stdenv.lib.optionals (xlibs != null) [ xlibs.xlibs xlibs.libXrender ]
+    ++ stdenv.lib.optional (stdenv.system == "x86_64-darwin") gettext;
+
+  CPPFLAGS = stdenv.lib.optionalString (stdenv.system == "x86_64-darwin") "-I${cairo}/include/cairo";
+
+  configureFlags =
+    [ "--with-pngincludedir=${libpng}/include"
+      "--with-pnglibdir=${libpng}/lib"
+      "--with-jpegincludedir=${libjpeg}/include"
+      "--with-jpeglibdir=${libjpeg}/lib"
+      "--with-expatincludedir=${expat}/include"
+      "--with-expatlibdir=${expat}/lib"
+      "--with-cgraph=no"
+      "--with-sparse=no"
+    ]
+    ++ stdenv.lib.optional (xlibs == null) "--without-x";
+
+  preBuild = ''
+    sed -e 's@am__append_5 *=.*@am_append_5 =@' -i lib/gvc/Makefile
+  '';
+
+  # "command -v" is POSIX, "which" is not
+  postInstall = ''
+    sed -i 's|`which lefty`|"'$out'/bin/lefty"|' $out/bin/dotty
+    sed -i 's|which|command -v|' $out/bin/vimdot
+  '';
+
+  meta = {
+    homepage = "http://www.graphviz.org/";
+    description = "Open source graph visualization software";
+
+    longDescription = ''
+      Graphviz is open source graph visualization software. Graph
+      visualization is a way of representing structural information as
+      diagrams of abstract graphs and networks. It has important
+      applications in networking, bioinformatics, software engineering,
+      database and web design, machine learning, and in visual
+      interfaces for other technical domains.
+    '';
+
+    hydraPlatforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
+    maintainers = with stdenv.lib.maintainers; [ simons bjornfor raskin ];
+    inherit version;
+  };
+}
diff --git a/pkgs/tools/graphics/graphviz/default.nix b/pkgs/tools/graphics/graphviz/default.nix
index 27883ca6037..e9a552e3300 100644
--- a/pkgs/tools/graphics/graphviz/default.nix
+++ b/pkgs/tools/graphics/graphviz/default.nix
@@ -3,11 +3,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "graphviz-2.36.0";
+  version = "2.38.0";
+  name = "graphviz-${version}";
 
   src = fetchurl {
     url = "http://www.graphviz.org/pub/graphviz/ARCHIVE/${name}.tar.gz";
-    sha256 = "0qb30z5sxlbjni732ndad3j4x7l36vsxpxn4fmf5fn7ivvc6dz9p";
+    sha256 = "17l5czpvv5ilmg17frg0w4qwf89jzh2aglm9fgx0l0aakn6j7al1";
   };
 
   buildInputs =
@@ -52,6 +53,9 @@ stdenv.mkDerivation rec {
     '';
 
     hydraPlatforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
-    maintainers = with stdenv.lib.maintainers; [ simons bjornfor ];
+    maintainers = with stdenv.lib.maintainers; [ simons bjornfor raskin ];
+    downloadPage = "http://www.graphviz.org/pub/graphviz/ARCHIVE/";
+    inherit version;
+    updateWalker = true;
   };
 }
diff --git a/pkgs/tools/misc/cloc/default.nix b/pkgs/tools/misc/cloc/default.nix
index dfe5476f813..8d7ba0c70c8 100644
--- a/pkgs/tools/misc/cloc/default.nix
+++ b/pkgs/tools/misc/cloc/default.nix
@@ -1,30 +1,25 @@
 { stdenv, fetchurl, perl, AlgorithmDiff, RegexpCommon }:
 
 stdenv.mkDerivation rec {
-  
+
   name = "cloc-${version}";
 
-  version = "1.58";
+  version = "1.62";
 
   src = fetchurl {
     url = "mirror://sourceforge/cloc/cloc-${version}.tar.gz";
-    sha256 = "1k92jldy4m717lh1xd6yachx3l2hhpx76qhj1ipnx12hsxw1zc8w";
+    sha256 = "1cxc663dccd0sc2m0aj5lxdbnbzrys6rh9n8q122h74bfvsiw4f4";
   };
 
   buildInputs = [ perl AlgorithmDiff RegexpCommon ];
 
-  unpackPhase = ''
-    mkdir ${name}
-    tar xf $src -C ${name}
-    cd ${name}
-  '';
-
   makeFlags = [ "prefix=" "DESTDIR=$(out)" "INSTALL=install" ];
 
   meta = {
     description = "A program that counts lines of source code";
     homepage = http://cloc.sourceforge.net;
     license = stdenv.lib.licenses.gpl2;
+    maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
   };
 
 }
diff --git a/pkgs/tools/misc/grub/2.0x.nix b/pkgs/tools/misc/grub/2.0x.nix
index e3c07af759c..b1877bdcf98 100644
--- a/pkgs/tools/misc/grub/2.0x.nix
+++ b/pkgs/tools/misc/grub/2.0x.nix
@@ -1,45 +1,30 @@
-{ stdenv, fetchurl, autogen, flex, bison, python, autoconf, automake
-, gettext, ncurses, libusb, freetype, qemu, devicemapper
-, linuxPackages ? null
-, efiSupport ? false
-, zfsSupport ? false
-}:
-
-with stdenv.lib;
-let
-  efiSystems = {
-    "i686-linux".target = "i386";
-    "x86_64-linux".target = "x86_64";
-  };
+{ fetchurl, stdenv, flex, bison, gettext, ncurses, libusb, freetype, qemu
+, devicemapper, EFIsupport ? false }:
 
-  canEfi = any (system: stdenv.system == system) (mapAttrsToList (name: _: name) efiSystems);
+let
 
-  prefix = "grub${if efiSupport then "-efi" else ""}";
+  prefix = "grub${if EFIsupport then "-efi" else ""}";
 
-  version = "2.02-beta2";
+  version = "2.00";
 
   unifont_bdf = fetchurl {
     url = "http://unifoundry.com/unifont-5.1.20080820.bdf.gz";
     sha256 = "0s0qfff6n6282q28nwwblp5x295zd6n71kl43xj40vgvdqxv0fxx";
   };
-in (
 
-assert efiSupport -> canEfi;
-assert zfsSupport -> linuxPackages != null && linuxPackages.zfs != null;
+in
 
 stdenv.mkDerivation rec {
   name = "${prefix}-${version}";
 
   src = fetchurl {
-    name = "grub-2.02-beta2.tar.xz";
-    url = "http://alpha.gnu.org/gnu/grub/grub-2.02~beta2.tar.xz";
-    sha256 = "13a13fhc0wf473dn73zhga15mjvkg6vqp4h25dxg4n7am2r05izn";
+    url = "mirror://gnu/grub/grub-${version}.tar.xz";
+    sha256 = "0n64hpmsccvicagvr0c6v0kgp2yw0kgnd3jvsyd26cnwgs7c6kkq";
   };
 
-  nativeBuildInputs = [ autogen flex bison python autoconf automake ];
+  nativeBuildInputs = [ flex bison ];
   buildInputs = [ ncurses libusb freetype gettext devicemapper ]
-    ++ optional doCheck qemu
-    ++ optional zfsSupport linuxPackages.zfs;
+    ++ stdenv.lib.optional doCheck qemu;
 
   preConfigure =
     '' for i in "tests/util/"*.in
@@ -58,19 +43,27 @@ stdenv.mkDerivation rec {
        # See <http://www.mail-archive.com/qemu-devel@nongnu.org/msg22775.html>.
        sed -i "tests/util/grub-shell.in" \
            -e's/qemu-system-i386/qemu-system-x86_64 -nodefaults/g'
+
+       # Fix for building on Glibc 2.16.  Won't be needed once the
+       # gnulib in grub is updated.
+       sed -i '/gets is a security hole/d' grub-core/gnulib/stdio.in.h
     '';
 
   prePatch =
-    '' sh autogen.sh
-       gunzip < "${unifont_bdf}" > "unifont.bdf"
+    '' gunzip < "${unifont_bdf}" > "unifont.bdf"
        sed -i "configure" \
            -e "s|/usr/src/unifont.bdf|$PWD/unifont.bdf|g"
     '';
 
   patches = [ ./fix-bash-completion.patch ];
 
-  configureFlags = optional zfsSupport "--enable-libzfs"
-    ++ optionals efiSupport [ "--with-platform=efi" "--target=${efiSystems.${stdenv.system}.target}" "--program-prefix=" ];
+  configureFlags =
+    let arch = if stdenv.system == "i686-linux" then "i386"
+               else if stdenv.system == "x86_64-linux" then "x86_64"
+               else throw "unsupported EFI firmware architecture";
+    in
+      stdenv.lib.optionals EFIsupport
+        [ "--with-platform=efi" "--target=${arch}" "--program-prefix=" ];
 
   doCheck = false;
   enableParallelBuilding = true;
@@ -79,7 +72,7 @@ stdenv.mkDerivation rec {
     paxmark pms $out/sbin/grub-{probe,bios-setup}
   '';
 
-  meta = with stdenv.lib; {
+  meta = {
     description = "GNU GRUB, the Grand Unified Boot Loader (2.x beta)";
 
     longDescription =
@@ -96,8 +89,11 @@ stdenv.mkDerivation rec {
 
     homepage = http://www.gnu.org/software/grub/;
 
-    license = licenses.gpl3Plus;
+    license = stdenv.lib.licenses.gpl3Plus;
 
-    platforms = platforms.gnu;
+    platforms = if EFIsupport then
+      [ "i686-linux" "x86_64-linux" ]
+    else
+      stdenv.lib.platforms.gnu;
   };
-})
+}
diff --git a/pkgs/tools/misc/ised/default.nix b/pkgs/tools/misc/ised/default.nix
index 02cb65b1060..96acc6c8ab9 100644
--- a/pkgs/tools/misc/ised/default.nix
+++ b/pkgs/tools/misc/ised/default.nix
@@ -10,16 +10,15 @@ let
     (builtins.attrNames (builtins.removeAttrs x helperArgNames));
   sourceInfo = rec {
     baseName="ised";
-    version="2.5.0";
+    version = "2.6.0";
     name="${baseName}-${version}";
     url="mirror://sourceforge/project/ised/${name}.tar.bz2";
-    hash="1avfb4ivq6iz50rraci0pcxl0w94899sz6icdqc0l4954y4zs8qd";
   };
 in
 rec {
   src = a.fetchurl {
     url = sourceInfo.url;
-    sha256 = sourceInfo.hash;
+    sha256 = "0rf9brqkrad8f3czpfc1bxq9ybv3nxci9276wdxas033c82cqkjs";
   };
 
   inherit (sourceInfo) name version;
@@ -37,11 +36,7 @@ rec {
     platforms = with a.lib.platforms;
       linux;
     license = a.lib.licenses.gpl3Plus;
-  };
-  passthru = {
-    updateInfo = {
-      downloadPage = "ised.sf.net";
-    };
+    inherit version;
   };
 }) x
 
diff --git a/pkgs/tools/misc/ised/default.upstream b/pkgs/tools/misc/ised/default.upstream
new file mode 100644
index 00000000000..6539bf477e5
--- /dev/null
+++ b/pkgs/tools/misc/ised/default.upstream
@@ -0,0 +1,4 @@
+url http://ised.sourceforge.net/web_nav.html
+SF_version_tarball
+SF_redirect
+minimize_overwrite
diff --git a/pkgs/tools/misc/rrdtool/default.nix b/pkgs/tools/misc/rrdtool/default.nix
index aa14087dfc8..29d98284ccf 100644
--- a/pkgs/tools/misc/rrdtool/default.nix
+++ b/pkgs/tools/misc/rrdtool/default.nix
@@ -7,6 +7,11 @@ stdenv.mkDerivation {
     sha256 = "07fgn0y4yj7p2vh6a37q273hf98gkfw2sdam5r1ldn1k0m1ayrqj";
   };
   buildInputs = [ gettext perl pkgconfig libxml2 pango cairo ];
+  
+  postInstall = ''
+    # for munin support
+    mv $out/lib/perl/5*/*/*.pm $out/lib/perl/5*/
+  '';
 
   meta = {
     homepage = http://oss.oetiker.ch/rrdtool/;
diff --git a/pkgs/tools/misc/s6-portable-utils/default.nix b/pkgs/tools/misc/s6-portable-utils/default.nix
new file mode 100644
index 00000000000..f8e7dfaddc9
--- /dev/null
+++ b/pkgs/tools/misc/s6-portable-utils/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchurl, skalibs }:
+
+let
+
+  version = "1.0.3.2";
+
+in stdenv.mkDerivation rec {
+
+  name = "s6-portable-utils-${version}";
+
+  src = fetchurl {
+    url = "http://www.skarnet.org/software/s6-portable-utils/${name}.tar.gz";
+    sha256 = "040nmls7qbgw8yn502lym4kgqh5zxr2ks734bqajpi2ricnasvhl";
+  };
+
+  buildInputs = [ skalibs ];
+
+  sourceRoot = "admin/${name}";
+
+  configurePhase = ''
+    pushd conf-compile
+
+    printf "$out/bin"           > conf-install-command
+    printf "$out/libexec"       > conf-install-libexec
+
+    # let nix builder strip things, cross-platform
+    truncate --size 0 conf-stripbins
+    truncate --size 0 conf-striplibs
+
+    printf "${skalibs}/sysdeps"      > import
+    printf "%s" "${skalibs}/include" > path-include
+    printf "%s" "${skalibs}/lib"     > path-library
+
+    rm -f flag-slashpackage
+    touch flag-allstatic
+
+    popd
+  '';
+
+  preBuild = ''
+    patchShebangs src/sys
+  '';
+
+  preInstall = ''
+    mkdir -p "$out/libexec"
+  '';
+
+  meta = {
+    homepage = http://www.skarnet.org/software/s6-portable-utils/;
+    description = "A set of tiny general Unix utilities optimized for simplicity and small size.";
+    platforms = stdenv.lib.platforms.all;
+    license = stdenv.lib.licenses.isc;
+  };
+
+}
diff --git a/pkgs/tools/misc/xdaliclock/default.nix b/pkgs/tools/misc/xdaliclock/default.nix
index 79c6a743bce..df1a7eedeff 100644
--- a/pkgs/tools/misc/xdaliclock/default.nix
+++ b/pkgs/tools/misc/xdaliclock/default.nix
@@ -12,17 +12,16 @@ let
     (builtins.attrNames (builtins.removeAttrs x helperArgNames));
   sourceInfo = rec {
     baseName="xdaliclock";
-    version="2.40";
+    version = "2.41";
     name="${baseName}-${version}";
     project="${baseName}";
     url="http://www.jwz.org/${project}/${name}.tar.gz";
-    hash="03i8vwi9vz3gr938wr4miiymwv283mg11wgfaf2jhl6aqbmz4id7";
   };
 in
 rec {
   src = a.fetchurl {
     url = sourceInfo.url;
-    sha256 = sourceInfo.hash;
+    sha256 = "1crkjvza692irkqm9vwgn58m8ps93n0rxigm6pasgl5dnx3p6d1d";
   };
 
   inherit (sourceInfo) name version;
@@ -46,10 +45,8 @@ rec {
     platforms = with a.lib.platforms;
       linux ++ freebsd;
     license = "free"; #TODO BSD on Gentoo, looks like MIT
-  };
-  passthru = {
-    updateInfo = {
-      downloadPage = "http://www.jwz.org/xdaliclock/";
-    };
+    downloadPage = "http://www.jwz.org/xdaliclock/";
+    inherit version;
+    updateWalker = true;
   };
 }) x
diff --git a/pkgs/tools/networking/atftp/default.nix b/pkgs/tools/networking/atftp/default.nix
index acd71ea893d..b6bdfc7fabc 100644
--- a/pkgs/tools/networking/atftp/default.nix
+++ b/pkgs/tools/networking/atftp/default.nix
@@ -1,27 +1,34 @@
-{ stdenv, fetchurl, pcre, readline }:
-
+{ lib, stdenv, fetchurl, readline, tcp_wrappers, pcre, makeWrapper }:
+assert stdenv.isLinux;
+assert stdenv.gcc.gcc != null;
+let
+version = "0.7";
+debianPatch = fetchurl {
+url = "mirror://debian/pool/main/a/atftp/atftp_${version}.dfsg-11.diff.gz";
+sha256 = "07g4qbmp0lnscg2dkj6nsj657jaghibvfysdm1cdxcn215n3zwqd";
+};
+in
 stdenv.mkDerivation {
-  name = "atftp-0.7.1";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/atftp/atftp-0.7.1.tar.gz";
-    sha256 = "0bgr31gbnr3qx4ixf8hz47l58sh3367xhcnfqd8233fvr84nyk5f";
-  };
-
-  buildInputs = [ pcre readline ];
-
-  NIX_LDFLAGS = "-lgcc_s"; # for pthread_cancel
-
-  configureFlags = [
-    "--enable-libreadline"
-    "--enable-libpcre"
-    "--enable-mtftp"
-  ];
-
-  meta = with stdenv.lib; {
-    description = "Advanced TFTP server and client";
-    homepage = http://sourceforge.net/projects/atftp/;
-    license = licenses.gpl2Plus;
-    platforms = platforms.linux;
-  };
+name = "atftp";
+inherit version;
+src = fetchurl {
+url = "mirror://debian/pool/main/a/atftp/atftp_${version}.dfsg.orig.tar.gz";
+sha256 = "0nd5dl14d6z5abgcbxcn41rfn3syza6s57bbgh4aq3r9cxdmz08q";
+};
+buildInputs = [ readline tcp_wrappers pcre makeWrapper ];
+patches = [ debianPatch ];
+postInstall = ''
+wrapProgram $out/sbin/atftpd --prefix LD_LIBRARY_PATH : ${stdenv.gcc.gcc}/lib${if stdenv.system == "x86_64-linux" then "64" else ""}
+'';
+meta = {
+description = "Advanced tftp tools";
+maintainers = lib.maintainers.raskin;
+platforms = lib.platforms.linux;
+license = lib.licenses.gpl2Plus;
+passthru = {
+updateInfo = {
+downloadPage = "http://packages.debian.org/source/wheezy/atftp";
+};
+};
+};
 }
diff --git a/pkgs/tools/networking/cjdns/default.nix b/pkgs/tools/networking/cjdns/default.nix
index 48e21f4507e..be107dfa81e 100644
--- a/pkgs/tools/networking/cjdns/default.nix
+++ b/pkgs/tools/networking/cjdns/default.nix
@@ -1,21 +1,27 @@
 { stdenv, fetchgit, nodejs, which, python27 }:
 
 let
-  date = "20140303";
-  rev = "f11ce1fd4795b0173ac0ef18c8a6f752aa824adb";
+  date = "20140829";
+  rev = "9595d67f9edd759054c5bd3aaee0968ff55e361a";
 in
 stdenv.mkDerivation {
   name = "cjdns-${date}-${stdenv.lib.strings.substring 0 7 rev}";
 
   src = fetchgit {
-    url = "git://github.com/cjdelisle/cjdns.git";
+    url = "https://github.com/cjdelisle/cjdns.git";
     inherit rev;
-    sha256 = "1bxhf9f1v0slf9mz3ll6jf45mkwvwxlf3yqxx9k23kjyr1nsc8s8";
+    sha256 = "519c549c42ae26c5359ae13a4548c44b51e36db403964b4d9f78c19b749dfb83";
   };
 
   buildInputs = [ which python27 nodejs];
 
-  builder = ./builder.sh;
+  patches = [ ./makekey.patch ];
+
+  buildPhase = "bash do";
+  installPhase = ''
+    mkdir -p $out/sbin
+    cp cjdroute makekey $out/sbin
+  '';
 
   meta = {
     homepage = https://github.com/cjdelisle/cjdns;
diff --git a/pkgs/tools/networking/cjdns/makekey.patch b/pkgs/tools/networking/cjdns/makekey.patch
new file mode 100644
index 00000000000..fcce5e3e728
--- /dev/null
+++ b/pkgs/tools/networking/cjdns/makekey.patch
@@ -0,0 +1,64 @@
+diff --git a/contrib/c/makekey.c b/contrib/c/makekey.c
+new file mode 100644
+index 0000000..c7184e5
+--- /dev/null
++++ b/contrib/c/makekey.c
+@@ -0,0 +1,46 @@
++/* vim: set expandtab ts=4 sw=4: */
++/*
++ * You may redistribute this program and/or modify it under the terms of
++ * the GNU General Public License as published by the Free Software Foundation,
++ * either version 3 of the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
++ */
++#include "crypto/random/Random.h"
++#include "memory/MallocAllocator.h"
++#include "crypto/AddressCalc.h"
++#include "util/AddrTools.h"
++#include "util/Hex.h"
++
++#include "crypto_scalarmult_curve25519.h"
++
++#include <stdio.h>
++
++int main(int argc, char** argv)
++{
++    struct Allocator* alloc = MallocAllocator_new(1<<22);
++    struct Random* rand = Random_new(alloc, NULL, NULL);
++
++    uint8_t privateKey[32];
++    uint8_t publicKey[32];
++    uint8_t ip[16];
++    uint8_t hexPrivateKey[65];
++
++    for (;;) {
++        Random_bytes(rand, privateKey, 32);
++        crypto_scalarmult_curve25519_base(publicKey, privateKey);
++        if (AddressCalc_addressForPublicKey(ip, publicKey)) {
++            Hex_encode(hexPrivateKey, 65, privateKey, 32);
++            printf(hexPrivateKey);
++            return 0;
++        }
++    }
++    return 0;
++}
++
+diff --git a/node_build/make.js b/node_build/make.js
+index 5e51645..11465e3 100644
+--- a/node_build/make.js
++++ b/node_build/make.js
+@@ -339,6 +339,7 @@ Builder.configure({
+     builder.buildExecutable('contrib/c/privatetopublic.c');
+     builder.buildExecutable('contrib/c/sybilsim.c');
+     builder.buildExecutable('contrib/c/makekeys.c');
++    builder.buildExecutable('contrib/c/makekey.c');
+ 
+     builder.buildExecutable('crypto/random/randombytes.c');
+ 
diff --git a/pkgs/tools/networking/dnsmasq/default.nix b/pkgs/tools/networking/dnsmasq/default.nix
index 02f24ce4c00..3cfc902711e 100644
--- a/pkgs/tools/networking/dnsmasq/default.nix
+++ b/pkgs/tools/networking/dnsmasq/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     install -Dm644 dbus/dnsmasq.conf $out/etc/dbus-1/system.d/dnsmasq.conf
     install -Dm644 trust-anchors.conf $out/share/dnsmasq/trust-anchors.conf
 
-    ensureDir $out/share/dbus-1/system-services
+    mkdir -p $out/share/dbus-1/system-services
     cat <<END > $out/share/dbus-1/system-services/uk.org.thekelleys.dnsmasq.service
     [D-BUS Service]
     Name=uk.org.thekelleys.dnsmasq
diff --git a/pkgs/tools/networking/getmail/default.nix b/pkgs/tools/networking/getmail/default.nix
index 6d9666506b8..8c9103790b9 100644
--- a/pkgs/tools/networking/getmail/default.nix
+++ b/pkgs/tools/networking/getmail/default.nix
@@ -1,12 +1,13 @@
 { stdenv, fetchurl, buildPythonPackage }:
 
 buildPythonPackage rec {
-  name = "getmail-4.43.0";
+  version = "4.46.0";
+  name = "getmail-${version}";
   namePrefix = "";
 
   src = fetchurl {
     url = "http://pyropus.ca/software/getmail/old-versions/${name}.tar.gz";
-    sha256 = "0abcj4d2jp9y56c85kq7265d8wcij91w9lpzib9q6j9lcs4la8hy";
+    sha256 = "15rqmm25pq6ll8aaqh8h6pfdkpqs7y6yismb3h3w1bz8j292c8zl";
   };
 
   doCheck = false;
@@ -15,5 +16,9 @@ buildPythonPackage rec {
     description = "A program for retrieving mail";
     maintainers = [ stdenv.lib.maintainers.raskin stdenv.lib.maintainers.iElectric ];
     platforms = stdenv.lib.platforms.linux;
+
+    homepage = "http://pyropus.ca/software/getmail/";
+    inherit version;
+    updateWalker = true;
   };
 }
diff --git a/pkgs/tools/networking/openntpd/default.nix b/pkgs/tools/networking/openntpd/default.nix
new file mode 100644
index 00000000000..c90582a7547
--- /dev/null
+++ b/pkgs/tools/networking/openntpd/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchgit, openssl
+, privsepPath ? "/var/empty"
+, privsepUser ? "ntp"
+}:
+
+stdenv.mkDerivation rec {
+  name = "openntpd-${version}";
+  version = "20080406p-10";
+
+  src = fetchgit {
+    url = "git://git.debian.org/collab-maint/openntpd.git";
+    rev = "refs/tags/debian/${version}";
+    sha256 = "0gd6j4sw4x4adlz0jzbp6lblx5vlnk6l1034hzbj2xd95k8hjhh8";
+  };
+
+  postPatch = ''
+    sed -i -e '/^install:/,/^$/{/@if.*PRIVSEP_PATH/,/^$/d}' Makefile.in
+  '';
+
+  configureFlags = [
+    "--with-privsep-path=${privsepPath}"
+    "--with-privsep-user=${privsepUser}"
+  ];
+
+  buildInputs = [ openssl ];
+
+  meta = {
+    homepage = "http://www.openntpd.org/";
+    license = stdenv.lib.licenses.bsd3;
+    description = "OpenBSD NTP daemon (Debian port)";
+  };
+}
diff --git a/pkgs/tools/networking/s6-dns/default.nix b/pkgs/tools/networking/s6-dns/default.nix
new file mode 100644
index 00000000000..3165434de3d
--- /dev/null
+++ b/pkgs/tools/networking/s6-dns/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchurl, skalibs }:
+
+let
+
+  version = "0.1.0.0";
+
+in stdenv.mkDerivation rec {
+
+  name = "s6-dns-${version}";
+
+  src = fetchurl {
+    url = "http://www.skarnet.org/software/s6-dns/${name}.tar.gz";
+    sha256 = "1r82l5fnz2rrwm5wq2sldqp74lk9fifr0d8hyq98xdyh24hish68";
+  };
+
+  buildInputs = [ skalibs ];
+
+  sourceRoot = "web/${name}";
+
+  configurePhase = ''
+    pushd conf-compile
+
+    printf "$out/bin"           > conf-install-command
+    printf "$out/include"       > conf-install-include
+    printf "$out/lib"           > conf-install-library
+    printf "$out/lib"           > conf-install-library.so
+
+    # let nix builder strip things, cross-platform
+    truncate --size 0 conf-stripbins
+    truncate --size 0 conf-striplibs
+
+    printf "${skalibs}/sysdeps"      > import
+    printf "%s" "${skalibs}/include" > path-include
+    printf "%s" "${skalibs}/lib"     > path-library
+
+    rm -f flag-slashpackage
+    touch flag-allstatic
+
+    popd
+  '';
+
+  preBuild = ''
+    patchShebangs src/sys
+  '';
+
+  meta = {
+    homepage = http://www.skarnet.org/software/s6-dns/;
+    description = "A suite of DNS client programs and libraries for Unix systems.";
+    platforms = stdenv.lib.platforms.all;
+    license = stdenv.lib.licenses.isc;
+  };
+
+}
diff --git a/pkgs/tools/networking/s6-networking/default.nix b/pkgs/tools/networking/s6-networking/default.nix
new file mode 100644
index 00000000000..3d5e3e04811
--- /dev/null
+++ b/pkgs/tools/networking/s6-networking/default.nix
@@ -0,0 +1,63 @@
+{ stdenv
+, execline
+, fetchurl
+, s6Dns
+, skalibs
+}:
+
+let
+
+  version = "0.1.0.0";
+
+in stdenv.mkDerivation rec {
+
+  name = "s6-networking-${version}";
+
+  src = fetchurl {
+    url = "http://www.skarnet.org/software/s6-networking/${name}.tar.gz";
+    sha256 = "1np9m2j1i2450mbcjvpbb56kv3wc2fbyvmv2a039q61j2lk6vjz7";
+  };
+
+  buildInputs = [ skalibs s6Dns execline ];
+
+  sourceRoot = "net/${name}";
+
+  configurePhase = ''
+    pushd conf-compile
+
+    printf "$out/bin"           > conf-install-command
+    printf "$out/include"       > conf-install-include
+    printf "$out/lib"           > conf-install-library
+    printf "$out/lib"           > conf-install-library.so
+
+    # let nix builder strip things, cross-platform
+    truncate --size 0 conf-stripbins
+    truncate --size 0 conf-striplibs
+
+    printf "${skalibs}/sysdeps"      > import
+
+    rm -f path-include
+    rm -f path-library
+    for dep in "${execline}" "${s6Dns}" "${skalibs}"; do
+      printf "%s\n" "$dep/include" >> path-include
+      printf "%s\n" "$dep/lib"     >> path-library
+    done
+
+    rm -f flag-slashpackage
+    touch flag-allstatic
+
+    popd
+  '';
+
+  preBuild = ''
+    patchShebangs src/sys
+  '';
+
+  meta = {
+    homepage = http://www.skarnet.org/software/s6-networking/;
+    description = "A suite of small networking utilities for Unix systems.";
+    platforms = stdenv.lib.platforms.all;
+    license = stdenv.lib.licenses.isc;
+  };
+
+}
diff --git a/pkgs/tools/networking/urlwatch/default.nix b/pkgs/tools/networking/urlwatch/default.nix
new file mode 100644
index 00000000000..4843f07c8f2
--- /dev/null
+++ b/pkgs/tools/networking/urlwatch/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, python3Packages }:
+
+python3Packages.buildPythonPackage rec {
+  name = "urlwatch-1.16";
+
+  src = fetchurl {
+    url = "http://thp.io/2008/urlwatch/${name}.tar.gz";
+    sha256 = "0yf1m909awfm06z7xwn20qxbbgslb1vjwwb6rygp6bn7sq022f1f";
+  };
+
+  patchPhase = ''
+    ./convert-to-python3.sh
+  '';
+
+  meta = {
+    description = "A tool for monitoring webpages for updates";
+    homepage = https://thp.io/2008/urlwatch/;
+    license = stdenv.lib.licenses.bsd3;
+    maintainers = [ stdenv.lib.maintainers.tv ];
+  };
+}
diff --git a/pkgs/tools/networking/wavemon/default.nix b/pkgs/tools/networking/wavemon/default.nix
index e9c102817e1..b5927fd2478 100644
--- a/pkgs/tools/networking/wavemon/default.nix
+++ b/pkgs/tools/networking/wavemon/default.nix
@@ -11,16 +11,15 @@ let
     (builtins.attrNames (builtins.removeAttrs x helperArgNames));
   sourceInfo = rec {
     baseName="wavemon";
-    version="0.7.5";
+    version = "0.7.6";
     name="${baseName}-${version}";
     url="http://eden-feed.erg.abdn.ac.uk/wavemon/stable-releases/${name}.tar.bz2";
-    hash="0b1fx00aar2fsw49a10w5bpiyjpz8h8f4nrlwb1acfw36yi1pfkd";
   };
 in
 rec {
   src = a.fetchurl {
     url = sourceInfo.url;
-    sha256 = sourceInfo.hash;
+    sha256 = "18cwlzgmwzy7z9dfr6lwd8kmkv0pqiihizm4gi0kkm52bzz6836y";
   };
 
   inherit (sourceInfo) name version;
@@ -38,11 +37,9 @@ rec {
     platforms = with a.lib.platforms;
       linux;
     license = a.lib.licenses.gpl2Plus;
-  };
-  passthru = {
-    updateInfo = {
-      downloadPage = "http://eden-feed.erg.abdn.ac.uk/wavemon/";
-    };
+    downloadPage = "http://eden-feed.erg.abdn.ac.uk/wavemon/";
+    inherit version;
+    updateWalker = true;
   };
 }) x
 
diff --git a/pkgs/tools/package-management/koji/default.nix b/pkgs/tools/package-management/koji/default.nix
new file mode 100644
index 00000000000..7f03ed1625e
--- /dev/null
+++ b/pkgs/tools/package-management/koji/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pythonPackages, python }:
+
+stdenv.mkDerivation rec {
+  name = "koji-1.8";
+
+  src = fetchurl {
+    url = "https://fedorahosted.org/released/koji/koji-1.8.0.tar.bz2";
+    sha256 = "10dph209h4jgajb5jmbjhqy4z4hd22i7s2d93vm3ikdf01i8iwf1";
+  };
+
+  propagatedBuildInputs = [ pythonPackages.pycurl python ];
+
+  makeFlags = "DESTDIR=$(out)";
+
+  postInstall = ''
+    cp -R $out/nix/store/*/* $out/
+    rm -rf $out/nix
+  '';
+
+  meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
+}
diff --git a/pkgs/tools/security/clamav/default.nix b/pkgs/tools/security/clamav/default.nix
index fc43f01b344..f5c4a4e9b4e 100644
--- a/pkgs/tools/security/clamav/default.nix
+++ b/pkgs/tools/security/clamav/default.nix
@@ -1,19 +1,23 @@
-{ stdenv, fetchurl, zlib, bzip2, libiconv }:
+{ stdenv, fetchurl, zlib, bzip2, libiconv, libxml2, openssl, ncurses, curl }:
 stdenv.mkDerivation rec {
   name = "clamav-${version}";
-  version = "0.98.1";
+  version = "0.98.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/clamav/clamav-${version}.tar.gz";
-    sha256 = "1p13n8g3b88cxwxj07if9z1d2cav1ib94v6cq4r4bpacfd6yix9m";
+    sha256 = "071yzamalj3rf7kl2jvc35ipnk1imdkq5ylbb8whyxfgmd3nf06k";
   };
 
-  buildInputs = [ zlib bzip2 libiconv ];
+  buildInputs = [ zlib bzip2 libiconv libxml2 openssl ncurses curl ];
 
   configureFlags = [
     "--with-zlib=${zlib}"
     "--with-libbz2-prefix=${bzip2}"
     "--with-iconv-dir=${libiconv}"
+    "--with-xml=${libxml2}"
+    "--with-openssl=${openssl}"
+    "--with-libncurses-prefix=${ncurses}"
+    "--with-libcurl=${curl}"
     "--disable-clamav" ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/system/dd_rescue/default.nix b/pkgs/tools/system/dd_rescue/default.nix
index 9c7f0413421..7b3e62a1bc0 100644
--- a/pkgs/tools/system/dd_rescue/default.nix
+++ b/pkgs/tools/system/dd_rescue/default.nix
@@ -1,10 +1,11 @@
 { stdenv, fetchurl, autoconf }:
 
 stdenv.mkDerivation rec {
-  name = "dd_rescue-1.42.1";
+  version = "1.46";
+  name = "dd_rescue-${version}";
 
   src = fetchurl {
-    sha256 = "0g2d292m1cnp8syy19hh5jvly3zy7lcvcj563wgjnf20ppm2diaq";
+    sha256 = "1fhs4jl5pkyn4aq75fxczrgnsj2m0kz9hfa7dhxy93vp7xcba2cy";
     url="http://www.garloff.de/kurt/linux/ddrescue/${name}.tar.gz";
   };
 
@@ -33,5 +34,8 @@ stdenv.mkDerivation rec {
     description = "A tool to copy data from a damaged block device";
     maintainers = with maintainers; [ raskin iElectric ];
     platforms = with platforms; linux;
+    downloadPage = "http://www.garloff.de/kurt/linux/ddrescue/";
+    inherit version;
+    updateWalker = true;
   };
 }
diff --git a/pkgs/tools/system/freeipmi/default.nix b/pkgs/tools/system/freeipmi/default.nix
index 48562adffeb..8f94b21a771 100644
--- a/pkgs/tools/system/freeipmi/default.nix
+++ b/pkgs/tools/system/freeipmi/default.nix
@@ -1,11 +1,12 @@
 { fetchurl, stdenv, libgcrypt, readline }:
 
 stdenv.mkDerivation rec {
-  name = "freeipmi-1.3.4";
+  version = "1.4.5";
+  name = "freeipmi-${version}";
 
   src = fetchurl {
     url = "mirror://gnu/freeipmi/${name}.tar.gz";
-    sha256 = "0gadf3yj019y3rvgf34pxk502p0p6nrhy6nwldvvir5rknndxh63";
+    sha256 = "033zakrk3kvi4y41kslicr90b3yb2kj052cl6nbja7ybn70y9nkz";
   };
 
   buildInputs = [ libgcrypt readline ];
@@ -30,10 +31,14 @@ stdenv.mkDerivation rec {
       '';
 
     homepage = http://www.gnu.org/software/freeipmi/;
+    downloadPage = "http://www.gnu.org/software/freeipmi/download.html";
 
     license = stdenv.lib.licenses.gpl3Plus;
 
     maintainers = with stdenv.lib.maintainers; [ raskin ];
     platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+
+    updateWalker = true;
+    inherit version;
   };
 }
diff --git a/pkgs/tools/system/ioping/default.nix b/pkgs/tools/system/ioping/default.nix
index 52d32b4e838..588da0624ce 100644
--- a/pkgs/tools/system/ioping/default.nix
+++ b/pkgs/tools/system/ioping/default.nix
@@ -10,16 +10,15 @@ let
     (builtins.attrNames (builtins.removeAttrs x helperArgNames));
   sourceInfo = rec {
     baseName="ioping";
-    version="0.7";
+    version = "0.8";
     name="${baseName}-${version}";
     url="http://ioping.googlecode.com/files/${name}.tar.gz";
-    hash="1c0k9gsq7rr9fqh6znn3i196l84zsm44nq3pl1b7grsnnbp2hki3";
   };
 in
 rec {
   src = a.fetchurl {
     url = sourceInfo.url;
-    sha256 = sourceInfo.hash;
+    sha256 = "0j7yal61nby1lkg9wnr6lxfljbd7wl3n0z8khqwvc9lf57bxngz2";
   };
 
   inherit (sourceInfo) name version;
@@ -40,11 +39,8 @@ rec {
     platforms = with a.lib.platforms;
       linux;
     license = a.lib.licenses.gpl3Plus;
-  };
-  passthru = {
-    updateInfo = {
-      downloadPage = "http://code.google.com/p/ioping/downloads/list";
-    };
+    downloadPage = "http://code.google.com/p/ioping/downloads/list";
+    inherit version;
   };
 }) x
 
diff --git a/pkgs/tools/system/ioping/default.upstream b/pkgs/tools/system/ioping/default.upstream
new file mode 100644
index 00000000000..e51cb487852
--- /dev/null
+++ b/pkgs/tools/system/ioping/default.upstream
@@ -0,0 +1,5 @@
+url http://code.google.com/p/ioping/downloads/list
+version_link '[.]tar[.][a-z0-9]+$'
+process 'code[.]google[.]com//' ''
+
+do_overwrite() { do_overwrite_just_version; }
diff --git a/pkgs/tools/system/ipmiutil/default.nix b/pkgs/tools/system/ipmiutil/default.nix
index c5f33c32359..6590b1ad209 100644
--- a/pkgs/tools/system/ipmiutil/default.nix
+++ b/pkgs/tools/system/ipmiutil/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   baseName = "ipmiutil";
-  version = "2.9.3";
+  version = "2.7.3";
   name = "${baseName}-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/${baseName}/${name}.tar.gz";
-    sha256 = "1dwyxp4jn5wxzyahd0x839kj1q7z6xin1wybpx9na4xsgscj6v27";
+    sha256 = "0z6ykz5db4ws7hpi25waf9vznwsh0vp819h5s7s8r054vxslrfpq";
   };
 
   buildInputs = [ openssl ];
@@ -26,11 +26,7 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
     license = licenses.bsd3;
-  };
-
-  passthru = {
-    updateInfo = {
-      downloadPage = "http://sourceforge.net/projects/ipmiutil/files/ipmiutil/";
-    };
+    downloadPage = "http://sourceforge.net/projects/ipmiutil/files/ipmiutil/";
+    inherit version;
   };
 }
diff --git a/pkgs/tools/system/ipmiutil/default.upstream b/pkgs/tools/system/ipmiutil/default.upstream
new file mode 100644
index 00000000000..18dc096a36b
--- /dev/null
+++ b/pkgs/tools/system/ipmiutil/default.upstream
@@ -0,0 +1,4 @@
+url http://sourceforge.net/projects/ipmiutil/files/ipmiutil/
+SF_version_tarball
+SF_redirect
+minimize_overwrite
diff --git a/pkgs/tools/system/sleuthkit/default.nix b/pkgs/tools/system/sleuthkit/default.nix
index 0148e3c699e..016e2ccda37 100644
--- a/pkgs/tools/system/sleuthkit/default.nix
+++ b/pkgs/tools/system/sleuthkit/default.nix
@@ -1,11 +1,12 @@
 { stdenv, fetchurl, libewf, afflib, openssl, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "sleuthkit-3.2.2";
+  version = "4.1.3";
+  name = "sleuthkit-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/sleuthkit/${name}.tar.gz";
-    sha256 = "02hik5xvbgh1dpisvc3wlhhq1aprnlsk0spbw6h5khpbq9wqnmgj";
+    sha256 = "09q3ky4rpv18jasf5gc2hlivzadzl70jy4nnk23db1483aix5yb7";
   };
 
   enableParallelBuilding = true;
@@ -20,5 +21,6 @@ stdenv.mkDerivation rec {
     maintainers = [ stdenv.lib.maintainers.raskin ];
     platforms = stdenv.lib.platforms.linux;
     license = "IBM Public License";
+    inherit version;
   };
 }
diff --git a/pkgs/tools/system/sleuthkit/default.upstream b/pkgs/tools/system/sleuthkit/default.upstream
new file mode 100644
index 00000000000..f8ffe9352ed
--- /dev/null
+++ b/pkgs/tools/system/sleuthkit/default.upstream
@@ -0,0 +1,5 @@
+url http://sourceforge.net/projects/sleuthkit/files/sleuthkit/
+SF_version_dir
+SF_version_tarball
+SF_redirect
+minimize_overwrite
diff --git a/pkgs/tools/typesetting/tex/texlive/default.nix b/pkgs/tools/typesetting/tex/texlive/default.nix
index c2840fd843f..beb6a7f3a68 100644
--- a/pkgs/tools/typesetting/tex/texlive/default.nix
+++ b/pkgs/tools/typesetting/tex/texlive/default.nix
@@ -5,16 +5,16 @@ rec {
     sha256 = "0nh8hfayyf60nm4z8zyclrbc3792c62azgsvrwxnl28iq223200s";
   };
 
-  texmfVersion = "2014.20140717";
+  texmfVersion = "2014.20140821";
   texmfSrc = fetchurl {
     url = "mirror://debian/pool/main/t/texlive-base/texlive-base_${texmfVersion}.orig.tar.xz";
-    sha256 = "08vhl6x742r8fl0gags2r6yspz8ynvz26vdjrqb4vyz5h7h3rzc9";
+    sha256 = "02qkzlhb381sybs970fgpc94nhx4jm0l3j5pv8z48l11415lvm9b";
   };
 
-  langTexmfVersion = "2014.20140717";
+  langTexmfVersion = "2014.20140821";
   langTexmfSrc = fetchurl {
     url = "mirror://debian/pool/main/t/texlive-lang/texlive-lang_${langTexmfVersion}.orig.tar.xz";
-    sha256 = "1x9aa3v2cg4lcb58lwksnfdsgrhi0sg968pjqsbndmbxhr1msbp7";
+    sha256 = "075avhhhhzw5pbd19q659rn23rws15b5hv7nv0grd93vn3vfwdcy";
   };
 
   passthru = { inherit texmfSrc langTexmfSrc; };
diff --git a/pkgs/tools/typesetting/tex/texlive/extra.nix b/pkgs/tools/typesetting/tex/texlive/extra.nix
index 4644ee3e50e..f47fedd927d 100644
--- a/pkgs/tools/typesetting/tex/texlive/extra.nix
+++ b/pkgs/tools/typesetting/tex/texlive/extra.nix
@@ -1,11 +1,11 @@
 args: with args;
 rec {
   name    = "texlive-extra-2014";
-  version = "2014.20140717";
+  version = "2014.20140821";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/t/texlive-extra/texlive-extra_${version}.orig.tar.xz";
-    sha256 = "1khxqdq9gagm6z8kbpjbraysfzibfjs2cgbrhjpncbd24sxpw13q";
+    sha256 = "1y3w8bgp85s90ng2y5dw9chrrvvdf7ibb6ynss8kycvgc0y4m6b3";
   };
 
   buildInputs = [texLive xz];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 7d89e4b4292..a96ede812cf 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -933,6 +933,9 @@ let
 
   dotnetfx40 = callPackage ../development/libraries/dotnetfx40 { };
 
+  dolphinEmu = callPackage ../misc/emulators/dolphin-emu { };
+  dolphinEmuMaster = callPackage ../misc/emulators/dolphin-emu/master.nix { };
+
   dropbear = callPackage ../tools/networking/dropbear { };
 
   dtach = callPackage ../tools/misc/dtach { };
@@ -1210,9 +1213,15 @@ let
 
   /* Readded by Michael Raskin. There are programs in the wild
    * that do want 2.0 but not 2.22. Please give a day's notice for
-   * objections before removal.
+   * objections before removal. The feature is integer coordinates
    */
   graphviz_2_0 = callPackage ../tools/graphics/graphviz/2.0.nix { };
+  
+  /* Readded by Michael Raskin. There are programs in the wild
+   * that do want 2.32 but not 2.0 or 2.36. Please give a day's notice for
+   * objections before removal. The feature is libgraph.
+   */
+  graphviz_2_32 = callPackage ../tools/graphics/graphviz/2.32.nix { };
 
   grive = callPackage ../tools/filesystems/grive {
     json_c = json-c-0-11; # won't configure with 0.12; others are vulnerable
@@ -1226,11 +1235,9 @@ let
     buggyBiosCDSupport = config.grub.buggyBiosCDSupport or true;
   };
 
-  grub2 = callPackage ../tools/misc/grub/2.0x.nix { };
+  grub2 = callPackage ../tools/misc/grub/2.0x.nix { libusb = libusb1; flex = flex_2_5_35; };
 
-  grub2_efi = grub2.override { efiSupport = true; };
-
-  grub2_zfs = grub2.override { zfsSupport = true; };
+  grub2_efi = grub2.override { EFIsupport = true; };
 
   gssdp = callPackage ../development/libraries/gssdp {
     inherit (gnome) libsoup;
@@ -1239,6 +1246,7 @@ let
   gt5 = callPackage ../tools/system/gt5 { };
 
   gtest = callPackage ../development/libraries/gtest {};
+  gmock = callPackage ../development/libraries/gmock {};
 
   gtkdatabox = callPackage ../development/libraries/gtkdatabox {};
 
@@ -1280,6 +1288,8 @@ let
 
   haveged = callPackage ../tools/security/haveged { };
 
+  hawkthorne = callPackage ../games/hawkthorne { love = love_0_9; };
+
   hardlink = callPackage ../tools/system/hardlink { };
 
   hashcat = callPackage ../tools/security/hashcat { };
@@ -1746,6 +1756,8 @@ let
 
   openjade = callPackage ../tools/text/sgml/openjade { };
 
+  openntpd = callPackage ../tools/networking/openntpd { };
+
   openobex = callPackage ../tools/bluetooth/openobex { };
 
   openopc = callPackage ../tools/misc/openopc {
@@ -1780,6 +1792,8 @@ let
 
   openvpn_learnaddress = callPackage ../tools/networking/openvpn/openvpn_learnaddress.nix { };
 
+  openvswitch = callPackage ../os-specific/linux/openvswitch { };
+
   optipng = callPackage ../tools/graphics/optipng {
     libpng = libpng12;
   };
@@ -2051,6 +2065,14 @@ let
     ruby = ruby18;
   };
 
+  s6Dns = callPackage ../tools/networking/s6-dns { };
+
+  s6LinuxUtils = callPackage ../os-specific/linux/s6-linux-utils { };
+
+  s6Networking = callPackage ../tools/networking/s6-networking { };
+
+  s6PortableUtils = callPackage ../tools/misc/s6-portable-utils { };
+
   sablotron = callPackage ../tools/text/xml/sablotron { };
 
   safecopy = callPackage ../tools/system/safecopy { };
@@ -2211,6 +2233,8 @@ let
 
   tboot = callPackage ../tools/security/tboot { };
 
+  tcl2048 = callPackage ../games/tcl2048 { };
+
   tcpdump = callPackage ../tools/networking/tcpdump { };
 
   tcpflow = callPackage ../tools/networking/tcpflow { };
@@ -2399,6 +2423,8 @@ let
     inherit (pkgs.kde4) kdelibs;
   };
 
+  uhub = callPackage ../servers/uhub { };
+
   unclutter = callPackage ../tools/misc/unclutter { };
 
   unbound = callPackage ../tools/networking/unbound { };
@@ -2407,6 +2433,8 @@ let
 
   unrar = callPackage ../tools/archivers/unrar { };
 
+  xar = callPackage ../tools/compression/xar { };
+
   xarchive = callPackage ../tools/archivers/xarchive { };
 
   xarchiver = callPackage ../tools/archivers/xarchiver { };
@@ -2423,6 +2451,8 @@ let
 
   uptimed = callPackage ../tools/system/uptimed { };
 
+  urlwatch = callPackage ../tools/networking/urlwatch { };
+
   varnish = callPackage ../servers/varnish { };
 
   varnish2 = callPackage ../servers/varnish/2.1.nix { };
@@ -2679,7 +2709,6 @@ let
   adobe_flex_sdk = callPackage ../development/compilers/adobe-flex-sdk { };
 
   fpc = callPackage ../development/compilers/fpc { };
-  fpc_2_4_0 = callPackage ../development/compilers/fpc/2.4.0.nix { };
 
   gambit = callPackage ../development/compilers/gambit { };
 
@@ -3127,10 +3156,12 @@ let
   juliaGit = callPackage ../development/compilers/julia/git-20131013.nix {
     liblapack = liblapack.override {shared = true;};
     llvm = llvm_33;
+    openblas = openblas_0_2_2;
   };
   julia021 = callPackage ../development/compilers/julia/0.2.1.nix {
     liblapack = liblapack.override {shared = true;};
     llvm = llvm_33;
+    openblas = openblas_0_2_2;
   };
   julia030 = let
     liblapack = liblapack_3_5_0.override {shared = true;};
@@ -3139,10 +3170,10 @@ let
     suitesparse = suitesparse.override {
       inherit liblapack;
     };
-    openblas = openblas_0_2_10;
     llvm = llvm_34;
+    openblas = openblas_0_2_10;
   };
-  julia = julia021;
+  julia = julia030;
 
   lazarus = builderDefsPackage (import ../development/compilers/fpc/lazarus.nix) {
     inherit makeWrapper gtk glib pango atk gdk_pixbuf;
@@ -3254,6 +3285,8 @@ let
 
     ocaml_cairo = callPackage ../development/ocaml-modules/ocaml-cairo { };
 
+    cmdliner = callPackage ../development/ocaml-modules/cmdliner { };
+
     cppo = callPackage ../development/tools/ocaml/cppo { };
 
     cryptokit = callPackage ../development/ocaml-modules/cryptokit { };
@@ -3286,6 +3319,8 @@ let
       gtkmathview = callPackage ../development/libraries/gtkmathview { };
     };
 
+    lambdaTerm = callPackage ../development/ocaml-modules/lambda-term { };
+
     menhir = callPackage ../development/ocaml-modules/menhir { };
 
     merlin = callPackage ../development/tools/ocaml/merlin { };
@@ -3330,6 +3365,8 @@ let
 
     ocaml_ssl = callPackage ../development/ocaml-modules/ssl { };
 
+    ocaml_text = callPackage ../development/ocaml-modules/ocaml-text { };
+
     ounit = callPackage ../development/ocaml-modules/ounit { };
 
     ulex = callPackage ../development/ocaml-modules/ulex { };
@@ -3355,6 +3392,8 @@ let
     opam_1_1 = callPackage ../development/tools/ocaml/opam/1.1.nix { };
     opam = opam_1_1;
 
+    utop = callPackage ../development/tools/ocaml/utop { };
+
     sawja = callPackage ../development/ocaml-modules/sawja { };
 
     uucd = callPackage ../development/ocaml-modules/uucd { };
@@ -3365,6 +3404,9 @@ let
     yojson = callPackage ../development/ocaml-modules/yojson { };
 
     zarith = callPackage ../development/ocaml-modules/zarith { };
+
+    zed = callPackage ../development/ocaml-modules/zed { };
+
   };
 
   ocamlPackages = recurseIntoAttrs ocamlPackages_4_01_0;
@@ -3509,8 +3551,11 @@ let
   erlangR14 = callPackage ../development/interpreters/erlang/R14.nix { };
   erlangR15 = callPackage ../development/interpreters/erlang/R15.nix { };
   erlangR16 = callPackage ../development/interpreters/erlang/R16.nix { };
+  erlangR16_odbc = callPackage ../development/interpreters/erlang/R16.nix { odbcSupport = true; };
   erlangR17 = callPackage ../development/interpreters/erlang/R17.nix { };
+  erlangR17_odbc = callPackage ../development/interpreters/erlang/R17.nix { odbcSupport = true; };
   erlang = erlangR17;
+  erlang_odbc = erlangR17_odbc;
 
   rebar = callPackage ../development/tools/build-managers/rebar { };
 
@@ -3701,6 +3746,7 @@ let
   ruby18 = callPackage ../development/interpreters/ruby/ruby-18.nix { };
   ruby19 = callPackage ../development/interpreters/ruby/ruby-19.nix { };
   ruby2 = lowPrio (callPackage ../development/interpreters/ruby/ruby-2.0.nix { });
+  ruby21 = callPackage ../development/interpreters/ruby/ruby-2.1.2.nix { };
 
   ruby = ruby19;
 
@@ -4359,8 +4405,6 @@ let
 
   audiofile = callPackage ../development/libraries/audiofile { };
 
-  axis = callPackage ../development/libraries/axis { };
-
   babl_0_0_22 = callPackage ../development/libraries/babl/0_0_22.nix { };
 
   babl = callPackage ../development/libraries/babl { };
@@ -4551,11 +4595,7 @@ let
 
   expat = callPackage ../development/libraries/expat { };
 
-  extremetuxracer = builderDefsPackage (import ../games/extremetuxracer) {
-    inherit mesa tcl freeglut SDL SDL_mixer pkgconfig
-      gettext intltool;
-    inherit (xlibs) libX11 xproto libXi inputproto
-      libXmu libXext xextproto libXt libSM libICE;
+  extremetuxracer = callPackage ../games/extremetuxracer {
     libpng = libpng12;
   };
 
@@ -5224,7 +5264,6 @@ let
   liblscp = callPackage ../development/libraries/liblscp { };
 
   libe-book = callPackage ../development/libraries/libe-book {};
-  libe-book_00 = callPackage ../development/libraries/libe-book/0.0.nix {};
 
   libev = builderDefsPackage ../development/libraries/libev { };
 
@@ -5441,7 +5480,6 @@ let
   libmusicbrainz = libmusicbrainz3;
 
   libmwaw = callPackage ../development/libraries/libmwaw { };
-  libmwaw_02 = callPackage ../development/libraries/libmwaw/0.2.nix { };
 
   libmx = callPackage ../development/libraries/libmx { };
 
@@ -5697,6 +5735,8 @@ let
 
   lirc = callPackage ../development/libraries/lirc { };
 
+  liquidfun = callPackage ../development/libraries/liquidfun { };
+
   liquidwar = builderDefsPackage ../games/liquidwar {
     inherit (xlibs) xproto libX11 libXrender;
     inherit gmp mesa libjpeg
@@ -5898,7 +5938,11 @@ let
 
   openexr = callPackage ../development/libraries/openexr { };
 
-  openldap = callPackage ../development/libraries/openldap { };
+  openldap = callPackage ../development/libraries/openldap {
+    stdenv = if stdenv.isDarwin
+      then clangStdenv
+      else stdenv;
+  };
 
   openlierox = callPackage ../games/openlierox { };
 
@@ -7066,6 +7110,10 @@ let
 
   tomcat6 = callPackage ../servers/http/tomcat/6.0.nix { };
 
+  tomcat7 = callPackage ../servers/http/tomcat/7.0.nix { };
+	
+  tomcat8 = callPackage ../servers/http/tomcat/8.0.nix { };
+
   tomcat_mysql_jdbc = callPackage ../servers/http/tomcat/jdbc/mysql { };
 
   axis2 = callPackage ../servers/http/tomcat/axis2 { };
@@ -7239,7 +7287,9 @@ let
     inherit (xlibs) xproto;
   };
 
-  dmraid = callPackage ../os-specific/linux/dmraid { };
+  dmraid = callPackage ../os-specific/linux/dmraid {
+    devicemapper = devicemapper.override {enable_dmeventd = true;};
+  };
 
   drbd = callPackage ../os-specific/linux/drbd { };
 
@@ -7387,12 +7437,6 @@ let
     kernelPatches = [];
   };
 
-  linux_3_2_xen = lowPrio (linux_3_2.override {
-    extraConfig = ''
-      XEN_DOM0 y
-    '';
-  });
-
   linux_3_4 = makeOverridable (import ../os-specific/linux/kernel/linux-3.4.nix) {
     inherit fetchurl stdenv perl buildLinux;
     kernelPatches = lib.optionals ((platform.kernelArch or null) == "mips")
@@ -7590,7 +7634,6 @@ let
 
   # Build the kernel modules for the some of the kernels.
   linuxPackages_3_2 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_2 linuxPackages_3_2);
-  linuxPackages_3_2_xen = linuxPackagesFor pkgs.linux_3_2_xen linuxPackages_3_2_xen;
   linuxPackages_3_4 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_4 linuxPackages_3_4);
   linuxPackages_3_6_rpi = linuxPackagesFor pkgs.linux_3_6_rpi linuxPackages_3_6_rpi;
   linuxPackages_3_10 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_10 linuxPackages_3_10);
@@ -8258,6 +8301,12 @@ let
 
   inherit (gnome3) baobab;
 
+  backintime-common = callPackage ../applications/networking/sync/backintime/common.nix { };
+
+  backintime-gnome = callPackage ../applications/networking/sync/backintime/gnome.nix { };
+
+  backintime = backintime-gnome;
+
   bar = callPackage ../applications/window-managers/bar { };
 
   baresip = callPackage ../applications/networking/instant-messengers/baresip {
@@ -8341,20 +8390,16 @@ let
 
   chatzilla = callPackage ../applications/networking/irc/chatzilla { };
 
-  chromium = lowPrio (callPackage ../applications/networking/browsers/chromium {
+  chromium = callPackage ../applications/networking/browsers/chromium {
     channel = "stable";
     pulseSupport = config.pulseaudio or true;
     enablePepperFlash = config.chromium.enablePepperFlash or false;
     enablePepperPDF = config.chromium.enablePepperPDF or false;
-  });
+  };
 
   chromiumBeta = lowPrio (chromium.override { channel = "beta"; });
-  chromiumBetaWrapper = lowPrio (wrapChromium chromiumBeta);
 
   chromiumDev = lowPrio (chromium.override { channel = "dev"; });
-  chromiumDevWrapper = lowPrio (wrapChromium chromiumDev);
-
-  chromiumWrapper = wrapChromium chromium;
 
   cinelerra = callPackage ../applications/video/cinelerra { };
 
@@ -8979,7 +9024,9 @@ let
 
   gpsd = callPackage ../servers/gpsd { };
 
-  guitone = callPackage ../applications/version-management/guitone { };
+  guitone = callPackage ../applications/version-management/guitone {
+    graphviz = graphviz_2_32;
+  };
 
   gv = callPackage ../applications/misc/gv { };
 
@@ -9116,6 +9163,8 @@ let
     inherit (gnome) libglade;
   };
 
+  koji = callPackage ../tools/package-management/koji { };
+
   lame = callPackage ../applications/audio/lame { };
 
   larswm = callPackage ../applications/window-managers/larswm { };
@@ -9205,7 +9254,7 @@ let
     inherit (gnome) vte;
     gtk = gtk2;
   };
-  
+
   lynx = callPackage ../applications/networking/browsers/lynx { };
 
   lyx = callPackage ../applications/misc/lyx { };
@@ -9371,6 +9420,9 @@ let
 
   mutt = callPackage ../applications/networking/mailreaders/mutt { };
 
+  namecoin = callPackage ../applications/misc/namecoin { };
+  namecoinqt = callPackage ../applications/misc/namecoin/qt.nix { };
+
   pcmanfm = callPackage ../applications/misc/pcmanfm { };
 
   ruby_gpgme = callPackage ../development/libraries/ruby_gpgme {
@@ -9433,6 +9485,8 @@ let
 
   nano = callPackage ../applications/editors/nano { };
 
+  nanoblogger = callPackage ../applications/misc/nanoblogger { };
+
   navipowm = callPackage ../applications/misc/navipowm { };
 
   navit = callPackage ../applications/misc/navit { };
@@ -9567,6 +9621,8 @@ let
 
   qiv = callPackage ../applications/graphics/qiv { };
 
+  processing = callPackage ../applications/graphics/processing { inherit (xorg) libXxf86vm; };
+
   # perhaps there are better apps for this task? It's how I had configured my preivous system.
   # And I don't want to rewrite all rules
   procmail = callPackage ../applications/misc/procmail { };
@@ -9700,6 +9756,8 @@ let
     conf = config.st.conf or null;
   };
 
+  stella = callPackage ../misc/emulators/stella { };
+  
   linuxstopmotion = callPackage ../applications/video/linuxstopmotion { };
 
   sweethome3d = recurseIntoAttrs (  (callPackage ../applications/misc/sweethome3d { })
@@ -9872,6 +9930,11 @@ let
 
   tig = gitAndTools.tig;
 
+  tilda = callPackage ../applications/misc/tilda {
+    vte = gnome3.vte;
+    gtk = gtk3;
+  };
+
   timidity = callPackage ../tools/misc/timidity { };
 
   tint2 = callPackage ../applications/misc/tint2 { };
@@ -10060,13 +10123,6 @@ let
 
   wordnet = callPackage ../applications/misc/wordnet { };
 
-  wrapChromium = browser: wrapFirefox {
-    inherit browser;
-    browserName = browser.packageName;
-    desktopName = "Chromium";
-    icon = "${browser}/share/icons/hicolor/48x48/apps/${browser.packageName}.png";
-  };
-
   wrapFirefox =
     { browser, browserName ? "firefox", desktopName ? "Firefox", nameSuffix ? ""
     , icon ? "${browser}/lib/${browser.name}/browser/icons/mozicon128.png" }:
@@ -10095,6 +10151,8 @@ let
       gtk_modules = [ libcanberra ];
     };
 
+  wxhexeditor = callPackage ../applications/editors/wxhexeditor { };
+
   x11vnc = callPackage ../tools/X11/x11vnc { };
 
   x2vnc = callPackage ../tools/X11/x2vnc { };
@@ -10198,10 +10256,7 @@ let
 
   xmp = callPackage ../applications/audio/xmp { };
 
-  xnee = callPackage ../tools/X11/xnee {
-    # Work around "missing separator" error.
-    stdenv = overrideInStdenv stdenv [ gnumake381 ];
-  };
+  xnee = callPackage ../tools/X11/xnee { };
 
   xvidcap = callPackage ../applications/video/xvidcap {
     inherit (gnome) scrollkeeper libglade;
@@ -10240,6 +10295,10 @@ let
 
   zgrviewer = callPackage ../applications/graphics/zgrviewer {};
 
+  zim = callPackage ../applications/office/zim {
+    pygtk = pyGtkGlade;
+  };
+  
   zotero = callPackage ../applications/office/zotero {
     xulrunner = xulrunner_30;
   };
@@ -10912,10 +10971,16 @@ let
 
   liblbfgs = callPackage ../development/libraries/science/math/liblbfgs { };
 
-  openblas = callPackage ../development/libraries/science/math/openblas { };
-  openblas_0_2_10 = callPackage ../development/libraries/science/math/openblas/0.2.10.nix { 
+  # julia is pinned to specific versions of openblas, so keep old versions
+  # until they aren't needed. The un-versioned attribute may continue to track
+  # upstream development.
+  openblas = callPackage ../development/libraries/science/math/openblas {
     liblapack = liblapack_3_5_0;
   };
+  openblas_0_2_10 = callPackage ../development/libraries/science/math/openblas/0.2.10.nix {
+    liblapack = liblapack_3_5_0;
+  };
+  openblas_0_2_2 = callPackage ../development/libraries/science/math/openblas/0.2.2.nix { };
 
   mathematica = callPackage ../applications/science/math/mathematica { };
 
@@ -11559,6 +11624,8 @@ let
 
   snes9x-gtk = callPackage ../misc/emulators/snes9x-gtk { };
 
+  higan = callPackage ../misc/emulators/higan { };
+
   misc = import ../misc/misc.nix { inherit pkgs stdenv; };
 
   bullet = callPackage ../development/libraries/bullet {};
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 7a4d4c4f10b..15f6ed71007 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -391,7 +391,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
   cgi_3001_1_7_4 = callPackage ../development/libraries/haskell/cgi/3001.1.7.4.nix {};
   cgi_3001_1_7_5 = callPackage ../development/libraries/haskell/cgi/3001.1.7.5.nix {};
   cgi_3001_1_8_5 = callPackage ../development/libraries/haskell/cgi/3001.1.8.5.nix {};
-  cgi = self.cgi_3001_1_8_5;
+  cgi_3001_2_0_0 = callPackage ../development/libraries/haskell/cgi/3001.2.0.0.nix {};
+  cgi = self.cgi_3001_2_0_0;
 
   cgrep = callPackage ../development/libraries/haskell/cgrep {};
 
@@ -642,6 +643,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
   diagramsContrib = callPackage ../development/libraries/haskell/diagrams/contrib.nix {};
   diagramsLib = callPackage ../development/libraries/haskell/diagrams/lib.nix {};
   diagramsPostscript = callPackage ../development/libraries/haskell/diagrams/postscript.nix {};
+  diagramsRasterific = callPackage ../development/libraries/haskell/diagrams/rasterific.nix {};
   diagramsSvg = callPackage ../development/libraries/haskell/diagrams/svg.nix {};
 
   Diff = callPackage ../development/libraries/haskell/Diff {};
@@ -668,6 +670,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   directSqlite = callPackage ../development/libraries/haskell/direct-sqlite {};
 
+  directoryLayout = callPackage ../development/libraries/haskell/directory-layout {};
+
   directoryTree = callPackage ../development/libraries/haskell/directory-tree {};
 
   distributedStatic = callPackage ../development/libraries/haskell/distributed-static {};
@@ -771,7 +775,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   eventList = callPackage ../development/libraries/haskell/event-list {};
 
-  exPool = callPackage ../development/libraries/haskell/ex-pool { };
+  exPool = callPackage ../development/libraries/haskell/ex-pool {};
 
   exceptionMtl = callPackage ../development/libraries/haskell/exception-mtl {};
 
@@ -853,6 +857,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   folds = callPackage ../development/libraries/haskell/folds {};
 
+  FontyFruity = callPackage ../development/libraries/haskell/FontyFruity {};
+
   forceLayout = callPackage ../development/libraries/haskell/force-layout {};
 
   formatting = callPackage ../development/libraries/haskell/formatting {};
@@ -1506,14 +1512,14 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
     llvmConfig = pkgs.llvm_33;
     llvmGeneralPure = self.llvmGeneralPure_3_3_8_2;
   };
-  llvmGeneral_3_4_2_2 = callPackage ../development/libraries/haskell/llvm-general/3.4.2.2.nix {
+  llvmGeneral_3_4_4_0 = callPackage ../development/libraries/haskell/llvm-general/3.4.4.0.nix {
     llvmConfig = pkgs.llvm;
   };
-  llvmGeneral = self.llvmGeneral_3_4_2_2;
+  llvmGeneral = self.llvmGeneral_3_4_4_0;
 
-  llvmGeneralPure_3_3_8_2 = callPackage ../development/libraries/haskell/llvm-general-pure/3.3.8.2.nix { };
-  llvmGeneralPure_3_4_2_2 = callPackage ../development/libraries/haskell/llvm-general-pure/3.4.2.2.nix {};
-  llvmGeneralPure = self.llvmGeneralPure_3_4_2_2;
+  llvmGeneralPure_3_3_8_2 = callPackage ../development/libraries/haskell/llvm-general-pure/3.3.8.2.nix {};
+  llvmGeneralPure_3_4_4_0 = callPackage ../development/libraries/haskell/llvm-general-pure/3.4.4.0.nix {};
+  llvmGeneralPure = self.llvmGeneralPure_3_4_4_0;
 
   lrucache = callPackage ../development/libraries/haskell/lrucache {};
 
@@ -1553,6 +1559,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   MaybeT = callPackage ../development/libraries/haskell/MaybeT {};
 
+  meep = callPackage ../development/libraries/haskell/meep {};
+
   MemoTrie = callPackage ../development/libraries/haskell/MemoTrie {};
 
   mersenneRandomPure64 = callPackage ../development/libraries/haskell/mersenne-random-pure64 {};
@@ -1729,7 +1737,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   networkProtocolXmpp = callPackage ../development/libraries/haskell/network-protocol-xmpp {};
 
-  networkSimple = callPackage ../development/libraries/haskell/network-simple { };
+  networkSimple = callPackage ../development/libraries/haskell/network-simple {};
 
   networkTransport = callPackage ../development/libraries/haskell/network-transport {};
 
@@ -1931,6 +1939,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   presburger = callPackage ../development/libraries/haskell/presburger {};
 
+  present = callPackage ../development/libraries/haskell/present {};
+
   prettyclass = callPackage ../development/libraries/haskell/prettyclass {};
 
   prettyShow = callPackage ../development/libraries/haskell/pretty-show {};
@@ -2014,6 +2024,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   ranges = callPackage ../development/libraries/haskell/ranges {};
 
+  Rasterific = callPackage ../development/libraries/haskell/Rasterific {};
+
   reserve = callPackage ../development/libraries/haskell/reserve {};
 
   rvar = callPackage ../development/libraries/haskell/rvar {};
@@ -2122,6 +2134,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   RSA = callPackage ../development/libraries/haskell/RSA {};
 
+  saltine = callPackage ../development/libraries/haskell/saltine {};
+
   sampleFrame = callPackage ../development/libraries/haskell/sample-frame {};
 
   safe = callPackage ../development/libraries/haskell/safe {};
@@ -2395,6 +2409,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   tagged = callPackage ../development/libraries/haskell/tagged {};
 
+  taggedTransformer = callPackage ../development/libraries/haskell/tagged-transformer {};
+
   taggy = callPackage ../development/libraries/haskell/taggy {};
 
   taggyLens = callPackage ../development/libraries/haskell/taggy-lens {};
@@ -2739,6 +2755,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   word8 = callPackage ../development/libraries/haskell/word8 {};
 
+  wordexp = callPackage ../development/libraries/haskell/wordexp {};
+
   Workflow = callPackage ../development/libraries/haskell/Workflow {};
 
   wreq = callPackage ../development/libraries/haskell/wreq {};
@@ -2910,7 +2928,10 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
   haddock_2_13_2 = callPackage ../development/tools/documentation/haddock/2.13.2.nix {};
   haddock_2_14_2 = callPackage ../development/tools/documentation/haddock/2.14.2.nix {};
   haddock_2_14_3 = callPackage ../development/tools/documentation/haddock/2.14.3.nix {};
-  haddock = self.haddock_2_14_3;
+  haddock_2_15_0 = callPackage ../development/tools/documentation/haddock/2.15.0.nix {};
+  haddock = self.haddock_2_15_0;
+
+  haddockApi = callPackage ../development/libraries/haskell/haddock-api {};
 
   haddockLibrary = callPackage ../development/libraries/haskell/haddock-library {};
 
@@ -2957,7 +2978,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   pointful = callPackage ../development/tools/haskell/pointful {};
 
-  ShellCheck = callPackage ../development/tools/misc/ShellCheck { };
+  ShellCheck = callPackage ../development/tools/misc/ShellCheck {};
 
   SourceGraph = callPackage ../development/tools/haskell/SourceGraph {};
 
diff --git a/pkgs/top-level/node-packages.json b/pkgs/top-level/node-packages.json
index fec7884eb25..1ebb9f290b7 100644
--- a/pkgs/top-level/node-packages.json
+++ b/pkgs/top-level/node-packages.json
@@ -83,6 +83,7 @@
 , "grunt-contrib-uglify"
 , "grunt-karma"
 , "grunt-sed"
+, "gulp"
 , "karma"
 , "karma-mocha"
 , "karma-coverage"
@@ -123,4 +124,5 @@
 , "sinon"
 , "shelljs"
 , "typescript"
+, "git-run"
 ]
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index a50a5617794..67accf016cc 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -480,6 +480,7 @@ let self = _self // overrides; _self = with self; {
       sha256 = "14s75bsm5irisp8wkbwl3ycw160srr1rks7x9jcbvcxh79wr6gbh";
     };
     propagatedBuildInputs = [ DigestSHA1 Error IPCShareLite ];
+    doCheck = false; # randomly fails
   };
 
   CacheFastMmap = buildPerlPackage rec {
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 533f59b78d8..3af1950f9b1 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -90,19 +90,6 @@ rec {
     '';
   };
 
-  h5py = callPackage ../development/python-modules/h5py {
-    inherit (pkgs) stdenv fetchurl;
-    inherit python buildPythonPackage cython numpy;
-    hdf5 = pkgs.hdf5.override { mpi = null; };
-  };
-
-  h5py-mpi = h5py.override {
-    mpiSupport = true;
-    mpi = pkgs.openmpi;
-    hdf5 = pkgs.hdf5.override { mpi = pkgs.openmpi; enableShared = true; };
-    inherit mpi4py;
-  };
-
   ipython = import ../shells/ipython {
     inherit (pkgs) stdenv fetchurl sip pyqt4;
     inherit buildPythonPackage pythonPackages;
@@ -119,12 +106,6 @@ rec {
     pylabQtSupport = false;
   });
 
-  mpi4py = callPackage ../development/python-modules/mpi4py {
-    inherit (pkgs) stdenv fetchurl openssh;
-    inherit python buildPythonPackage;
-    mpi = pkgs.openmpi;
-  };
-
   nixpart = callPackage ../tools/filesystems/nixpart { };
 
   # This is used for NixOps to make sure we won't break it with the next major
@@ -159,7 +140,7 @@ rec {
   pygtk = import ../development/python-modules/pygtk {
     inherit (pkgs) fetchurl stdenv pkgconfig gtk;
     inherit python buildPythonPackage pygobject pycairo isPy3k;
-  }; 
+  };
 
   # XXX: how can we get an override here?
   #pyGtkGlade = pygtk.override {
@@ -492,6 +473,23 @@ rec {
 
   });
 
+  arrow = buildPythonPackage rec {
+    name = "arrow-${version}";
+    version = "0.4.4";
+
+    src = fetchurl {
+      url    = "https://pypi.python.org/packages/source/a/arrow/${name}.tar.gz";
+      sha256 = "1sdr4gyjgvz86yr0ll0i11mgy8l1slndr7f0ngam87rpy78gp052";
+    };
+
+    doCheck = false;
+
+    meta = {
+      description = "Twitter API library";
+      license     = "apache";
+      maintainers = [ maintainers.thoughtpolice ];
+    };
+  };
 
   async = buildPythonPackage rec {
     name = "async-0.6.1";
@@ -572,7 +570,7 @@ rec {
     name = "avro-1.7.6";
 
     disabled = isPy3k;
-    
+
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/a/avro/${name}.tar.gz";
       md5 = "7f4893205e5ad69ac86f6b44efb7df72";
@@ -586,9 +584,9 @@ rec {
 
   avro3k = pkgs.lowPrio (buildPythonPackage (rec {
     name = "avro3k-1.7.7-SNAPSHOT";
-    
+
     disabled = (!isPy3k);
-    
+
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/a/avro3k/${name}.tar.gz";
       sha256 = "15ahl0irwwj558s964abdxg4vp6iwlabri7klsm2am6q5r0ngsky";
@@ -674,7 +672,7 @@ rec {
 
   beaker = buildPythonPackage rec {
     name = "Beaker-1.6.4";
-    
+
     disabled = isPy3k;
 
     src = fetchurl {
@@ -713,7 +711,8 @@ rec {
     };
 
     buildInputs = [ pkgs.btrfsProgs ];
-    propagatedBuildInputs = with pkgs; [ contextlib2 sqlalchemy9 pyxdg pycparser cffi alembic ];
+    propagatedBuildInputs = with pkgs; [ contextlib2 sqlalchemy9 pyxdg pycparser alembic ]
+      ++ optionals (!isPyPy) [ cffi ];
 
     meta = {
       description = "Deduplication for Btrfs";
@@ -755,9 +754,9 @@ rec {
         modules.sqlite3
         modules.readline
       ];
-      
+
     buildInputs = with pythonPackages; [ mock pyechonest six responses nose ];
-    
+
     # 10 tests are failing
     doCheck = false;
 
@@ -768,12 +767,12 @@ rec {
       maintainers = [ stdenv.lib.maintainers.iElectric ];
     };
   };
-  
+
   responses = pythonPackages.buildPythonPackage rec {
     name = "responses-0.2.2";
 
     propagatedBuildInputs = with pythonPackages; [ requests mock six pytest flake8 ];
-    
+
     doCheck = false;
 
     src = fetchurl {
@@ -782,7 +781,7 @@ rec {
     };
 
   };
- 
+
   rarfile = pythonPackages.buildPythonPackage rec {
     name = "rarfile-2.6";
 
@@ -798,7 +797,7 @@ rec {
       homepage = https://github.com/markokr/rarfile;
     };
   };
-  
+
   pyechonest = pythonPackages.buildPythonPackage rec {
     name = "pyechonest-8.0.2";
 
@@ -1017,10 +1016,10 @@ rec {
       maintainers = [ stdenv.lib.maintainers.garbas ];
     };
   };
-  
+
   zc_buildout171 = buildPythonPackage rec {
     name = "zc.buildout-1.7.1";
-    
+
     disabled = isPy3k;
 
     src = fetchurl {
@@ -1035,10 +1034,10 @@ rec {
       maintainers = [ stdenv.lib.maintainers.garbas ];
     };
   };
-  
+
   zc_buildout152 = buildPythonPackage rec {
     name = "zc.buildout-1.5.2";
-    
+
     disabled = isPy3k;
 
     src = fetchurl {
@@ -1496,7 +1495,7 @@ rec {
       md5 = "c5df008669d17dd6eeb5e2042d5e136f";
     };
 
-    buildInputs = [ cffi pycparser mock pytest py ];
+    buildInputs = [ pycparser mock pytest py ] ++ optionals (!isPyPy) [ cffi ];
 
     meta = {
       maintainers = [ stdenv.lib.maintainers.iElectric ];
@@ -1746,7 +1745,7 @@ rec {
       platforms = stdenv.lib.platforms.all;
     };
   };
-  
+
   deform2 = buildPythonPackage rec {
     name = "deform-2.0a2";
 
@@ -1836,6 +1835,27 @@ rec {
     };
   };
 
+  docker = buildPythonPackage rec {
+    name = "docker-py-0.4.0";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/d/docker-py/${name}.tar.gz";
+      md5 = "21ab8fd729105487e6423b654d6c0860";
+    };
+
+    propagatedBuildInputs = [ six requests ];
+
+    # Version conflict
+    doCheck = false;
+
+    meta = {
+      description = "An API client for docker written in Python";
+      homepage = https://github.com/docker/docker-py;
+      license = licenses.asl20;
+    };
+  };
+
+
   dogpile_cache = buildPythonPackage rec {
     name = "dogpile.cache-0.5.4";
 
@@ -2015,7 +2035,7 @@ rec {
 
   facebook-sdk = buildPythonPackage rec {
     name = "facebook-sdk-0.4.0";
-    
+
     disabled = isPy3k;
 
     src = fetchurl {
@@ -2192,14 +2212,14 @@ rec {
   gtimelog = buildPythonPackage rec {
     name = "gtimelog-${version}";
     version = "0.9.1";
-    
+
     disabled = isPy26;
 
     src = fetchurl {
       url = "https://github.com/gtimelog/gtimelog/archive/${version}.tar.gz";
       sha256 = "0qk8fv8cszzqpdi3wl9vvkym1jil502ycn6sic4jrxckw5s9jsfj";
     };
-    
+
     preBuild = ''
       export LOCALE_ARCHIVE=${pkgs.glibcLocales}/lib/locale/locale-archive
       export LC_ALL="en_US.UTF-8"
@@ -2212,12 +2232,12 @@ rec {
       substituteInPlace runtests --replace "/usr/bin/env python" "${python}/bin/${python.executable}"
       ./runtests
     '';
-    
+
     preFixup = ''
         wrapProgram $out/bin/gtimelog \
           --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
           --prefix LD_LIBRARY_PATH ":" "${pkgs.gtk3}/lib" \
-     
+
     '';
 
     meta = with stdenv.lib; {
@@ -2243,25 +2263,6 @@ rec {
     };
   };
 
-  # TODO: this shouldn't use a buildPythonPackage
-  koji = buildPythonPackage (rec {
-    name = "koji-1.8";
-    meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
-    disabled = isPy3k;
-
-    src = fetchurl {
-      url = "https://fedorahosted.org/released/koji/koji-1.8.0.tar.bz2";
-      sha256 = "10dph209h4jgajb5jmbjhqy4z4hd22i7s2d93vm3ikdf01i8iwf1";
-    };
-
-    configurePhase = ":";
-    buildPhase = ":";
-    installPhase = "make install DESTDIR=$out/ && cp -R $out/nix/store/*/* $out/ && rm -rf $out/nix";
-    doCheck = false;
-    propagatedBuildInputs = [ pythonPackages.pycurl ];
-
-  });
-
   logilab_astng = buildPythonPackage rec {
     name = "logilab-astng-0.24.3";
 
@@ -2369,7 +2370,7 @@ rec {
       url = "http://pypi.python.org/packages/source/p/pyramid/${name}.tar.gz";
       md5 = "8a1ab3b773d8e22437828f7df22852c1";
     };
-    
+
     preCheck = ''
       # test is failing, see https://github.com/Pylons/pyramid/issues/1405
       rm pyramid/tests/test_response.py
@@ -2549,11 +2550,11 @@ rec {
   radicale = buildPythonPackage rec {
     name = "radicale-${version}";
     namePrefix = "";
-    version = "0.9b1";
+    version = "0.9";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/R/Radicale/Radicale-${version}.tar.gz";
-      sha256 = "3a8451909de849f173f577ddec0a085f19040dbb6aa13d5256208a0f8e11d88d";
+      sha256 = "77bf813fd26f0d359c1a7b7bcce9b842b4503c5516989a4a0a4f648e299e41f7";
     };
 
     propagatedBuildInputs = with pythonPackages; [
@@ -2566,6 +2567,7 @@ rec {
 
     meta = {
       homepage = "http://www.radicale.org/";
+      description = "CalDAV CardDAV server";
       longDescription = ''
         The Radicale Project is a complete CalDAV (calendar) and CardDAV
         (contact) server solution. Calendars and address books are available for
@@ -2651,7 +2653,7 @@ rec {
       url = "http://pypi.python.org/packages/source/p/pyramid_zodbconn/${name}.tar.gz";
       md5 = "3c7746a227fbcda3e138ab8bfab7700b";
     };
-    
+
     # should be fixed in next release
     doCheck = false;
 
@@ -2732,7 +2734,7 @@ rec {
       maintainers = [ stdenv.lib.maintainers.iElectric ];
     };
   };
-  
+
   ZEO = pythonPackages.buildPythonPackage rec {
     name = "ZEO-4.0.0";
 
@@ -2747,9 +2749,11 @@ rec {
       homepage = https://pypi.python.org/pypi/ZEO;
     };
   };
-  
+
   random2 = pythonPackages.buildPythonPackage rec {
     name = "random2-1.0.1";
+    
+    doCheck = !isPyPy;
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/r/random2/${name}.zip";
@@ -2947,11 +2951,11 @@ rec {
   };
 
   deluge = buildPythonPackage rec {
-    name = "deluge-1.3.6";
+    name = "deluge-1.3.7";
 
     src = fetchurl {
-      url = "http://download.deluge-torrent.org/source/${name}.tar.gz";
-      md5 = "33557678bf2f320de670ddaefaea009d";
+      url = "http://download.deluge-torrent.org/source/${name}.tar.bz2";
+      sha256 = "07m5lgkqymlh0810bk2f5l0k83n51xb3gszj11sr509jgbnxjnmm";
     };
 
     propagatedBuildInputs = with pkgs; [
@@ -3272,7 +3276,7 @@ rec {
       url = "http://pypi.python.org/packages/source/e/enum/${name}.tar.gz";
       md5 = "ce75c7c3c86741175a84456cc5bd531e";
     };
-    
+
     doCheck = !isPyPy;
 
     buildInputs = [ ];
@@ -3322,7 +3326,7 @@ rec {
 
     buildInputs = [ nose httplib2  ];
 
-    propagatedBuildInputs = [ greenlet ];
+    propagatedBuildInputs = optionals (!isPyPy) [ greenlet ];
 
     PYTHON_EGG_CACHE = "`pwd`/.egg-cache";
 
@@ -3452,7 +3456,7 @@ rec {
     };
 
     buildInputs = [ nose mock ];
-    
+
     patchPhase = ''
       substituteInPlace jsonschema/tests/test_jsonschema_test_suite.py --replace "python" "${python}/bin/${python.executable}"
     '';
@@ -3613,15 +3617,15 @@ rec {
 
   gevent = buildPythonPackage rec {
     name = "gevent-1.0.1";
-    disabled = isPy3k;
-    
+    disabled = isPy3k || isPyPy;  # see https://github.com/surfly/gevent/issues/248
+
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/g/gevent/${name}.tar.gz";
       sha256 = "0hyzfb0gcx9pm5c2igan8y57hqy2wixrwvdjwsaivxsqs0ay49s6";
     };
 
     buildInputs = [ pkgs.libev ];
-    propagatedBuildInputs = [ greenlet ];
+    propagatedBuildInputs = optionals (!isPyPy) [ greenlet ];
 
     meta = with stdenv.lib; {
       description = "Coroutine-based networking library";
@@ -4038,7 +4042,7 @@ rec {
       url = "http://pypi.python.org/packages/source/i/iptools/iptools-${version}.tar.gz";
       md5 = "aed4045638fd40c16f8d9bb04606f700";
     };
-    
+
     buildInputs = [ nose ];
 
     meta = {
@@ -4345,7 +4349,7 @@ rec {
     patchPhase = ''
       substituteInPlace magic.py --replace "ctypes.CDLL(dll)" "ctypes.CDLL('${pkgs.file}/lib/libmagic.so')"
     '';
-    
+
     doCheck = false;
 
     # TODO: tests are failing
@@ -4551,7 +4555,6 @@ rec {
     };
   };
 
-
   memcached = buildPythonPackage rec {
     name = "memcached-1.51";
 
@@ -4606,6 +4609,35 @@ rec {
     };
   };
 
+  rainbowstream = buildPythonPackage rec {
+    name = "rainbowstream-${version}";
+    version = "0.9.5";
+
+    src = fetchurl {
+      url    = "https://pypi.python.org/packages/source/r/rainbowstream/${name}.tar.gz";
+      sha256 = "0v79xiihgsfjipxkzzi92l8y1f8vxxachpv71gyzyhxdsl2zfj57";
+    };
+
+    doCheck = false;
+
+    preBuild = ''
+      export LOCALE_ARCHIVE=${pkgs.glibcLocales}/lib/locale/locale-archive
+      export LC_ALL="en_US.UTF-8"
+    '';
+
+    buildInputs = [
+      pkgs.libjpeg pkgs.freetype pkgs.zlib
+      pillow twitter pyfiglet requests arrow dateutil modules.readline
+    ];
+
+    meta = {
+      description = "Streaming command-line twitter client";
+      homepage    = "http://www.rainbowstream.org/";
+      license     = licenses.mit;
+      maintainers = [ maintainers.thoughtpolice ];
+    };
+  };
+
   mitmproxy = buildPythonPackage rec {
     baseName = "mitmproxy";
     name = "${baseName}-${meta.version}";
@@ -4718,7 +4750,7 @@ rec {
     name = "python-mpd-0.3.0";
 
     disabled = isPy3k;
-    
+
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/p/python-mpd/python-mpd-0.3.0.tar.gz";
       md5 = "5b3849b131e2fb12f251434597d65635";
@@ -4783,7 +4815,7 @@ rec {
       url = "http://pypi.python.org/packages/source/m/musicbrainzngs/${name}.tar.gz";
       md5 = "9e17a181af72d04a291c9a960bc73d44";
     };
-    
+
     preCheck = ''
       export LOCALE_ARCHIVE=${pkgs.glibcLocales}/lib/locale/locale-archive
       export LC_ALL="en_US.UTF-8"
@@ -4805,7 +4837,7 @@ rec {
       url = "http://pypi.python.org/packages/source/m/mutagen/${name}.tar.gz";
       sha256 = "12f70aaf5ggdzll76bhhkn64b27xy9s1acx417dbsaqnnbis8s76";
     };
-    
+
     # one unicode test fails
     doCheck = false;
 
@@ -4839,7 +4871,7 @@ rec {
 
   MySQL_python = buildPythonPackage {
     name = "MySQL-python-1.2.3";
-    
+
     disabled = isPy3k;
 
     # plenty of failing tests
@@ -5466,7 +5498,7 @@ rec {
 
     # tests failures since 1.14.0 release..
     doCheck = false;
-    
+
     checkPhase = "${python}/bin/${python.executable} test.py";
 
     meta = {
@@ -5656,37 +5688,37 @@ rec {
 
     propagatedBuildInputs = [ unittest2 ];
   };
-  
+
   pil = buildPythonPackage rec {
     name = "PIL-${version}";
     version = "1.1.7";
-    
+
     src = fetchurl {
       url = "http://effbot.org/downloads/Imaging-${version}.tar.gz";
       sha256 = "04aj80jhfbmxqzvmq40zfi4z3cw6vi01m3wkk6diz3lc971cfnw9";
     };
-  
+
     buildInputs = [ python pkgs.libjpeg pkgs.zlib pkgs.freetype ];
-  
+
     disabled = isPy3k;
-  
+
     doCheck = true;
-  
+
     preConfigure = ''
       sed -i "setup.py" \
           -e 's|^FREETYPE_ROOT =.*$|FREETYPE_ROOT = libinclude("${pkgs.freetype}")|g ;
               s|^JPEG_ROOT =.*$|JPEG_ROOT = libinclude("${pkgs.libjpeg}")|g ;
               s|^ZLIB_ROOT =.*$|ZLIB_ROOT = libinclude("${pkgs.zlib}")|g ;'
     '';
-  
+
     checkPhase   = "${python}/bin/${python.executable} selftest.py";
     buildPhase   = "${python}/bin/${python.executable} setup.py build_ext -i";
-  
+
     postInstall = ''
       cd "$out"/lib/python*/site-packages
       ln -s $PWD PIL
     '';
-  
+
     meta = {
       homepage = http://www.pythonware.com/products/pil/;
       description = "The Python Imaging Library (PIL)";
@@ -5821,7 +5853,7 @@ rec {
       url = "http://pypi.python.org/packages/source/P/PrettyTable/${name}.tar.bz2";
       sha1 = "ad346a18d92c1d95f2295397c7a8a4f489e48851";
     };
-    
+
     preCheck = ''
       export LANG="en_US.UTF-8"
       export LOCALE_ARCHIVE=${pkgs.glibcLocales}/lib/locale/locale-archive
@@ -5839,7 +5871,7 @@ rec {
 
     propagatedBuildInputs = [ pkgs.protobuf google_apputils  ];
     sourceRoot = "${name}/python";
-    
+
 
     meta = {
       description = "Protocol Buffers are Google's data interchange format.";
@@ -5969,7 +6001,7 @@ rec {
       export DYLD_LIBRARY_PATH="${pkgs.libgit2}/lib"
     '' else "" );
 
-    propagatedBuildInputs = [ pkgs.libgit2 cffi ];
+    propagatedBuildInputs = [ pkgs.libgit2 ] ++ optionals (!isPyPy) [ cffi ];
 
     preCheck = ''
       # disable tests that require networking
@@ -6060,6 +6092,7 @@ rec {
 
   pycryptopp = buildPythonPackage (rec {
     name = "pycryptopp-0.6.0.1206569328141510525648634803928199668821045408958";
+    disabled = isPy3k || isPyPy;  # see https://bitbucket.org/pypy/pypy/issue/1190/
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/pycryptopp/${name}.tar.gz";
@@ -6167,6 +6200,24 @@ rec {
     };
   };
 
+  pyfiglet = buildPythonPackage rec {
+    name = "pyfiglet-${version}";
+    version = "0.7.1";
+
+    src = fetchurl {
+      url    = "https://pypi.python.org/packages/source/p/pyfiglet/${name}.tar.gz";
+      sha256 = "14lgwg47gnnad7sfkmmwhknwysbfmr74c9b2a6d9wgjmydycc6ka";
+    };
+
+    doCheck = false;
+
+    meta = {
+      description = "FIGlet in pure Python";
+      license     = licenses.gpl2Plus;
+      maintainers = [ maintainers.thoughtpolice ];
+    };
+  };
+
   pyflakes = buildPythonPackage rec {
     name = "pyflakes-0.8.1";
 
@@ -6176,7 +6227,7 @@ rec {
     };
 
     buildInputs = [ unittest2 ];
-    
+
     doCheck = !isPyPy;
 
     meta = {
@@ -7082,7 +7133,7 @@ rec {
     propagatedBuildInputs =
       [ django_1_3 recaptcha_client pytz memcached dateutil_1_5 paramiko flup pygments
         djblets django_evolution pycrypto modules.sqlite3
-        pysvn pil psycopg2 
+        pysvn pil psycopg2
       ];
   };
 
@@ -7097,7 +7148,7 @@ rec {
 
     # error: invalid command 'test'
     doCheck = false;
-    
+
     propagatedBuildInputs = [ isodate ];
 
     meta = {
@@ -7105,7 +7156,7 @@ rec {
       homepage = http://www.rdflib.net/;
     };
   });
-  
+
   isodate = buildPythonPackage rec {
     name = "isodate-0.5.0";
 
@@ -7222,14 +7273,14 @@ rec {
 
 
   rope = buildPythonPackage rec {
-    version = "0.9.4";
+    version = "0.10.2";
     name = "rope-${version}";
-    
+
     disabled = isPy3k;
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/r/rope/${name}.tar.gz";
-      sha256 = "1fm6ahff50b10mlnc0ar4x1fv9sxmcp1g651myyqy7c50hk39h1d";
+      sha256 = "0rdlvp8h74qs49wz1hx6qy8mgp2ddwlfs7z13h9139ynq04a3z7z";
     };
 
     meta = with stdenv.lib; {
@@ -7309,7 +7360,7 @@ rec {
 
     # buildPhase = "python setup.py build";
     # doCheck = false;
-    propagatedBuildInputs = [ pycurl koji GitPython pkgs.git
+    propagatedBuildInputs = [ pycurl pkgs.koji GitPython pkgs.git
                               pkgs.rpm pkgs.pyopenssl ];
 
   });
@@ -7637,7 +7688,7 @@ rec {
       url    = "https://github.com/sympy/sympy/releases/download/${name}/${name}.tar.gz";
       sha256 = "0h1b9mx0snyyybj1x1ga69qssgjzkkgx2rw6nddjhyz1fknf8ywh";
     };
-    
+
     preCheck = ''
       export LANG="en_US.UTF-8"
       export LOCALE_ARCHIVE=${pkgs.glibcLocales}/lib/locale/locale-archive
@@ -7749,7 +7800,7 @@ rec {
 
   semantic = buildPythonPackage rec {
     name = "semantic-1.0.3";
-    
+
     disabled = isPy3k;
 
     propagatedBuildInputs = [ quantities numpy ];
@@ -7889,7 +7940,7 @@ rec {
 
   supervisor = buildPythonPackage rec {
     name = "supervisor-3.1.1";
-    
+
     disabled = isPy3k;
 
     src = fetchurl {
@@ -7997,6 +8048,9 @@ rec {
       # waiting for 0.7.11 release
       ../development/python-modules/sqlalchemy-0.7.10-test-failures.patch
     ];
+    preConfigure = optionalString isPy3k ''
+      python3 sa2to3.py --no-diffs -w lib test examples
+    '';
   });
 
   sqlalchemy8 = pkgs.lib.overrideDerivation sqlalchemy9 (args: rec {
@@ -8005,6 +8059,9 @@ rec {
       url = "https://pypi.python.org/packages/source/S/SQLAlchemy/${name}.tar.gz";
       md5 = "4f3377306309e46739696721b1785335";
     };
+    preConfigure = optionalString isPy3k ''
+      python3 sa2to3.py --no-diffs -w lib test examples
+    '';
   });
 
   sqlalchemy9 = buildPythonPackage rec {
@@ -8149,7 +8206,7 @@ rec {
   sure = buildPythonPackage rec {
     name = "sure-${version}";
     version = "1.2.7";
-    
+
     preBuild = ''
       export LOCALE_ARCHIVE=${pkgs.glibcLocales}/lib/locale/locale-archive
       export LC_ALL="en_US.UTF-8"
@@ -8161,8 +8218,8 @@ rec {
       rev = "86ab9faa97aa9c1720c7d090deac2be385ed3d7a";
       sha256 = "02vffcdgr6vbj80lhl925w7zqy6cqnfvs088i0rbkjs5lxc511b3";
     };
-    
-    
+
+
 
     buildInputs = [ nose ];
 
@@ -8269,9 +8326,9 @@ rec {
       url = "http://pypi.python.org/packages/source/T/Tempita/Tempita-${version}.tar.gz";
       md5 = "4c2f17bb9d481821c41b6fbee904cea1";
     };
-    
+
     disabled = isPy3k;
-    
+
     buildInputs = [ nose ];
 
     meta = {
@@ -8363,11 +8420,11 @@ rec {
 
   tox = buildPythonPackage rec {
     name = "tox-1.7.2";
-  
+
     propagatedBuildInputs = [ py virtualenv ];
 
     doCheck = false;
-  
+
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/t/tox/${name}.tar.gz";
       md5 = "0d9b3acb1a9252659d753b0ae6b9b264";
@@ -8507,11 +8564,29 @@ rec {
     };
   });
 
+  twitter = buildPythonPackage rec {
+    name = "twitter-${version}";
+    version = "1.14.3";
+
+    src = fetchurl {
+      url    = "https://pypi.python.org/packages/source/t/twitter/${name}.tar.gz";
+      sha256 = "1nhhjajbq0jik43q2makpnz094qcziq9p8rj35jxamybd0hwwzs9";
+    };
+
+    doCheck = false;
+
+    meta = {
+      description = "Twitter API library";
+      license     = licenses.mit;
+      maintainers = [ maintainers.thoughtpolice ];
+    };
+  };
+
   twisted = buildPythonPackage rec {
     # NOTE: When updating please check if new versions still cause issues
     # to packages like carbon (http://stackoverflow.com/questions/19894708/cant-start-carbon-12-04-python-error-importerror-cannot-import-name-daem)
     disabled = isPy3k;
- 
+
     name = "Twisted-11.1.0";
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/T/Twisted/${name}.tar.bz2";
@@ -8632,6 +8707,7 @@ rec {
 
   pyuv = buildPythonPackage rec {
     name = "pyuv-0.11.5";
+    disabled = isPyPy;  # see https://github.com/saghul/pyuv/issues/49
 
     src = fetchurl {
       url = "https://github.com/saghul/pyuv/archive/${name}.tar.gz";
@@ -8847,7 +8923,7 @@ rec {
       url = "http://pypi.python.org/packages/source/W/WebTest/WebTest-${version}.zip";
       md5 = "49314bdba23f4d0bd807facb2a6d3f90";
     };
-    
+
     preConfigure = ''
       substituteInPlace setup.py --replace "nose<1.3.0" "nose"
     '';
@@ -9061,7 +9137,7 @@ rec {
     };
 
     propagatedBuildInputs  = [ zconfig ];
-    
+
     # too many deps..
     doCheck = false;
 
@@ -9121,7 +9197,7 @@ rec {
       maintainers = [ stdenv.lib.maintainers.goibhniu ];
     };
   };
-  
+
   zodb = buildPythonPackage rec {
     name = "zodb-${version}";
     version = "4.0.1";
@@ -9138,7 +9214,7 @@ rec {
       # test failure on py3.4
       rm src/ZODB/tests/testDB.py
     '' else "";
-    
+
     meta = {
       description = "An object-oriented database for Python";
       homepage = http://pypi.python.org/pypi/ZODB;
@@ -9146,7 +9222,7 @@ rec {
       maintainers = [ stdenv.lib.maintainers.goibhniu ];
     };
   };
-  
+
   zodbpickle = pythonPackages.buildPythonPackage rec {
     name = "zodbpickle-0.5.2";
 
@@ -9154,7 +9230,7 @@ rec {
       url = "https://pypi.python.org/packages/source/z/zodbpickle/${name}.tar.gz";
       md5 = "d401bd89f99ec8d56c22493e6f8c0443";
     };
-    
+
     # fails..
     doCheck = false;
 
@@ -9163,10 +9239,10 @@ rec {
     };
   };
 
-  
+
   BTrees = pythonPackages.buildPythonPackage rec {
     name = "BTrees-4.0.8";
-    
+
     patches = [ ./../development/python-modules/btrees_interger_overflow.patch ];
 
     propagatedBuildInputs = [ persistent zope_interface transaction ];
@@ -9182,7 +9258,7 @@ rec {
     };
   };
 
-  
+
   persistent = pythonPackages.buildPythonPackage rec {
     name = "persistent-4.0.8";
 
@@ -9217,11 +9293,11 @@ rec {
 
 
   zope_browser = buildPythonPackage rec {
-    name = "zope.browser-1.3";
+    name = "zope.browser-2.0.2";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.browser/${name}.zip";
-      md5 = "4ff0ddbf64c45bfcc3189e35f4214ded";
+      sha256 = "0f9r5rn9lzgi4hvkhgb6vgw8kpz9sv16jsfb9ws4am8gbqcgv2iy";
     };
 
     propagatedBuildInputs = [ zope_interface ];
@@ -9230,7 +9306,7 @@ rec {
         maintainers = [ stdenv.lib.maintainers.goibhniu ];
     };
   };
-  
+
   zope_browserresource = buildPythonPackage rec {
     name = "zope.browserresource-4.0.1";
 
@@ -9251,11 +9327,11 @@ rec {
 
 
   zope_component = buildPythonPackage rec {
-    name = "zope.component-4.0.2";
+    name = "zope.component-4.2.1";
 
     src = fetchurl {
-      url = "http://pypi.python.org/packages/source/z/zope.component/zope.component-4.0.2.tar.gz";
-      md5 = "8c2fd4414ca23cbbe014dcaf911acebc";
+      url = "http://pypi.python.org/packages/source/z/zope.component/zope.component-4.2.1.tar.gz";
+      sha256 = "1gzbr0j6c2h0cqnpi2cjss38wrz1bcwx8xahl3vykgz5laid15l6";
     };
 
     propagatedBuildInputs = [
@@ -9273,11 +9349,11 @@ rec {
 
 
   zope_configuration = buildPythonPackage rec {
-    name = "zope.configuration-4.0.2";
+    name = "zope.configuration-4.0.3";
 
     src = fetchurl {
-      url = "http://pypi.python.org/packages/source/z/zope.configuration/zope.configuration-4.0.2.tar.gz";
-      md5 = "40b3c7ad0b748ede532d8cfe2544e44e";
+      url = "http://pypi.python.org/packages/source/z/zope.configuration/zope.configuration-4.0.3.tar.gz";
+      sha256 = "1x9dfqypgympnlm25p9m43xh4qv3p7d75vksv9pzqibrb4cggw5n";
     };
 
     propagatedBuildInputs = [ zope_i18nmessageid zope_schema ];
@@ -9340,11 +9416,11 @@ rec {
 
   zope_event = buildPythonPackage rec {
     name = "zope.event-${version}";
-    version = "4.0.2";
+    version = "4.0.3";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.event/${name}.tar.gz";
-      md5 = "e08dd299d428d77a1cfcbfe841b81872";
+      sha256 = "1w858k9kmgzfj36h65kp27m9slrmykvi5cjq6c119xqnaz5gdzgm";
     };
 
     meta = {
@@ -9393,11 +9469,11 @@ rec {
 
 
   zope_i18n = buildPythonPackage rec {
-    name = "zope.i18n-3.7.4";
+    name = "zope.i18n-3.8.0";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.i18n/${name}.tar.gz";
-      md5 = "a6fe9d9ad53dd7e94e87cd58fb67d3b7";
+      sha256 = "045nnimmshibcq71yym2d8yrs6wzzhxq5gl7wxjnkpyjm5y0hfkm";
     };
 
     propagatedBuildInputs = [ pytz zope_component ];
@@ -9409,11 +9485,11 @@ rec {
 
 
   zope_i18nmessageid = buildPythonPackage rec {
-    name = "zope.i18nmessageid-4.0.2";
+    name = "zope.i18nmessageid-4.0.3";
 
     src = fetchurl {
-      url = "http://pypi.python.org/packages/source/z/zope.i18nmessageid/zope.i18nmessageid-4.0.2.tar.gz";
-      md5 = "c4550f7a0b4a736186e6e0fa3b2471f7";
+      url = "http://pypi.python.org/packages/source/z/zope.i18nmessageid/zope.i18nmessageid-4.0.3.tar.gz";
+      sha256 = "1rslyph0klk58dmjjy4j0jxy21k03azksixc3x2xhqbkv97cmzml";
     };
 
     meta = {
@@ -9423,11 +9499,11 @@ rec {
 
 
   zope_lifecycleevent = buildPythonPackage rec {
-    name = "zope.lifecycleevent-3.6.2";
+    name = "zope.lifecycleevent-3.7.0";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.lifecycleevent/${name}.tar.gz";
-      md5 = "3ba978f3ba7c0805c81c2c79ea3edb33";
+      sha256 = "0s5brphqzzz89cykg61gy7zcmz0ryq1jj2va7gh2n1b3cccllp95";
     };
 
     propagatedBuildInputs = [ zope_event zope_component ];
@@ -9439,11 +9515,11 @@ rec {
 
 
   zope_location = buildPythonPackage rec {
-    name = "zope.location-4.0.0";
+    name = "zope.location-4.0.3";
 
     src = fetchurl {
-      url = "http://pypi.python.org/packages/source/z/zope.location/zope.location-4.0.0.tar.gz";
-      md5 = "cd0e10d5923c95e352bcde505cc11324";
+      url = "http://pypi.python.org/packages/source/z/zope.location/zope.location-4.0.3.tar.gz";
+      sha256 = "1nj9da4ksiyv3h8n2vpzwd0pb03mdsh7zy87hfpx72b6p2zcwg74";
     };
 
     propagatedBuildInputs = [ zope_proxy ];
@@ -9496,11 +9572,11 @@ rec {
 
 
   zope_schema = buildPythonPackage rec {
-    name = "zope.schema-4.2.2";
+    name = "zope.schema-4.4.1";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.schema/${name}.tar.gz";
-      md5 = "e7e581af8193551831560a736a53cf58";
+      sha256 = "0wpwfggd736ai8bbrwbsnqf522sh5j57d1zxq8m8p6i5nwml0q02";
     };
 
     propagatedBuildInputs = [ zope_location zope_event zope_interface zope_testing ] ++ optional isPy26 ordereddict;
@@ -9531,11 +9607,11 @@ rec {
 
 
   zope_size = buildPythonPackage rec {
-    name = "zope.size-3.4.1";
+    name = "zope.size-3.5.0";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.size/${name}.tar.gz";
-      md5 = "55d9084dfd9dcbdb5ad2191ceb5ed03d";
+      sha256 = "006xfkhvmypwd3ww9gbba4zly7n9w30bpp1h74d53la7l7fiqk2f";
     };
 
     propagatedBuildInputs = [ zope_i18nmessageid zope_interface ];
@@ -9575,7 +9651,7 @@ rec {
       url = "http://pypi.python.org/packages/source/z/zope.testing/${name}.tar.gz";
       md5 = "6c73c5b668a67fdc116a25b884058ed9";
     };
-    
+
     doCheck = !(python.isPypy or false);
 
     propagatedBuildInputs = [ zope_interface zope_exceptions zope_location ];
@@ -9591,11 +9667,11 @@ rec {
 
   zope_testrunner = buildPythonPackage rec {
     name = "zope.testrunner-${version}";
-    version = "4.4.1";
+    version = "4.4.3";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.testrunner/${name}.zip";
-      md5 = "1d689abad000419891494b30dd7d8190";
+      sha256 = "1dwk35kg0bmj2lzp4fd2bgp6dv64q5sda09bf0y8j63y53vqbsw8";
     };
 
     propagatedBuildInputs = [ zope_interface zope_exceptions zope_testing six ] ++ optional (!python.is_py3k or false) subunit;
@@ -9726,7 +9802,7 @@ rec {
   tarman = buildPythonPackage rec {
     version = "0.1.3";
     name = "tarman-${version}";
-    
+
     disabled = isPy3k;
 
     src = fetchurl {
@@ -10172,7 +10248,7 @@ rec {
       url = "http://freshfoo.com/projects/IMAPClient/${name}.tar.gz";
       sha256 = "1w54h8gz25qf6ggazzp6xf7kvsyiadsjfkkk17gm0p6pmzvvccbn";
     };
-    
+
     buildInputs = [ mock ];
 
     preConfigure = ''
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index 9970c2789ac..07c3126e5ab 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -440,6 +440,14 @@ let
         xfwm4 = linux;
       };
 
+      linuxPackages_testing = { };
+      linuxPackages_grsec_stable_desktop = { };
+      linuxPackages_grsec_stable_server = { };
+      linuxPackages_grsec_stable_server_xen = { };
+      linuxPackages_grsec_testing_desktop = { };
+      linuxPackages_grsec_testing_server = { };
+      linuxPackages_grsec_testing_server_xen = { };
+
     } ));
 
 in jobs