summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/applications/audio/ardour/default.nix41
-rw-r--r--pkgs/applications/audio/audacious/default.nix2
-rw-r--r--pkgs/applications/audio/id3v2/default.nix2
-rw-r--r--pkgs/applications/audio/lash/default.nix3
-rw-r--r--pkgs/applications/audio/lash/gcc-47.patch11
-rw-r--r--pkgs/applications/audio/yoshimi/default.nix2
-rw-r--r--pkgs/applications/audio/zynaddsubfx/default.nix2
-rw-r--r--pkgs/applications/editors/ed/default.nix4
-rw-r--r--pkgs/applications/editors/emacs-22/builder.sh27
-rw-r--r--pkgs/applications/editors/emacs-22/default.nix58
-rw-r--r--pkgs/applications/editors/emacs-modes/org/default.nix2
-rw-r--r--pkgs/applications/editors/kdevelop/default.nix2
-rw-r--r--pkgs/applications/editors/kile/default.nix2
-rw-r--r--pkgs/applications/editors/vim/configurable.nix18
-rw-r--r--pkgs/applications/editors/vim/default.nix2
-rw-r--r--pkgs/applications/editors/zile/default.nix4
-rw-r--r--pkgs/applications/graphics/cinepaint/default.nix2
-rw-r--r--pkgs/applications/graphics/dia/default.nix2
-rw-r--r--pkgs/applications/graphics/digikam/default.nix2
-rw-r--r--pkgs/applications/graphics/djview/default.nix2
-rw-r--r--pkgs/applications/graphics/fbida/default.nix2
-rw-r--r--pkgs/applications/graphics/gimp/plugins/default.nix18
-rw-r--r--pkgs/applications/graphics/graphicsmagick/default.nix2
-rw-r--r--pkgs/applications/graphics/hugin/default.nix2
-rw-r--r--pkgs/applications/graphics/kipi-plugins/default.nix2
-rw-r--r--pkgs/applications/graphics/kuickshow/default.nix2
-rw-r--r--pkgs/applications/graphics/sane/frontends.nix2
-rw-r--r--pkgs/applications/graphics/sane/xsane.nix2
-rw-r--r--pkgs/applications/graphics/xara/default.nix2
-rw-r--r--pkgs/applications/graphics/xfig/default.nix2
-rw-r--r--pkgs/applications/graphics/xournal/default.nix2
-rw-r--r--pkgs/applications/misc/calibre/default.nix2
-rw-r--r--pkgs/applications/misc/googleearth/default.nix4
-rw-r--r--pkgs/applications/misc/gphoto2/default.nix2
-rw-r--r--pkgs/applications/misc/kde-wacomtablet/default.nix2
-rw-r--r--pkgs/applications/misc/nut/default.nix2
-rw-r--r--pkgs/applications/misc/qgis/default.nix2
-rw-r--r--pkgs/applications/misc/rsibreak/default.nix2
-rw-r--r--pkgs/applications/misc/tangogps/default.nix8
-rw-r--r--pkgs/applications/misc/taskwarrior/default.nix2
-rw-r--r--pkgs/applications/misc/truecrypt/default.nix2
-rw-r--r--pkgs/applications/misc/yakuake/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/chromium/default.nix3
-rw-r--r--pkgs/applications/networking/browsers/chromium/glibc-2.16-use-siginfo_t.patch27
-rw-r--r--pkgs/applications/networking/browsers/elinks/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/links2/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/lynx/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/rekonq/default.nix12
-rw-r--r--pkgs/applications/networking/browsers/w3m/default.nix9
-rw-r--r--pkgs/applications/networking/browsers/w3m/glibc214.patch60
-rw-r--r--pkgs/applications/networking/instant-messengers/baresip/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/centerim/default.nix8
-rw-r--r--pkgs/applications/networking/instant-messengers/linphone/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/psi/linux-headers.patch86
-rw-r--r--pkgs/applications/networking/instant-messengers/psi/psimedia.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/skype/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix8
-rw-r--r--pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/telepathy/kde/0.4.0.nix16
-rw-r--r--pkgs/applications/networking/instant-messengers/telepathy/kde/0.5.3.nix16
-rw-r--r--pkgs/applications/networking/instant-messengers/telepathy/kde/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/telepathy/rakia/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix2
-rw-r--r--pkgs/applications/networking/sniffers/etherape/default.nix10
-rw-r--r--pkgs/applications/networking/sync/rsync/default.nix2
-rw-r--r--pkgs/applications/networking/sync/unison/default.nix2
-rw-r--r--pkgs/applications/office/basket/default.nix2
-rw-r--r--pkgs/applications/office/calligra/default.nix2
-rw-r--r--pkgs/applications/office/kmymoney/default.nix2
-rw-r--r--pkgs/applications/office/koffice/default.nix3
-rw-r--r--pkgs/applications/office/skrooge/default.nix2
-rw-r--r--pkgs/applications/science/chemistry/avogadro/default.nix2
-rw-r--r--pkgs/applications/science/electronics/qucs/default.nix7
-rw-r--r--pkgs/applications/science/electronics/qucs/tr1-complex.patch10
-rw-r--r--pkgs/applications/science/math/ginac/default.nix2
-rw-r--r--pkgs/applications/science/math/yacas/default.nix2
-rw-r--r--pkgs/applications/science/misc/tulip/default.nix2
-rw-r--r--pkgs/applications/version-management/fossil/default.nix2
-rw-r--r--pkgs/applications/version-management/kdesvn/default.nix2
-rw-r--r--pkgs/applications/version-management/monotone/default.nix8
-rw-r--r--pkgs/applications/version-management/monotone/glibc-file-handle.patch166
-rw-r--r--pkgs/applications/version-management/rcs/default.nix6
-rw-r--r--pkgs/applications/video/bangarang/default.nix2
-rw-r--r--pkgs/applications/video/dvdauthor/default.nix2
-rw-r--r--pkgs/applications/video/gpac/default.nix2
-rw-r--r--pkgs/applications/video/mplayer/default.nix2
-rw-r--r--pkgs/applications/video/mplayer2/default.nix2
-rw-r--r--pkgs/applications/video/mythtv/default.nix2
-rw-r--r--pkgs/applications/video/vlc/default.nix2
-rw-r--r--pkgs/applications/video/xbmc/default.nix90
-rw-r--r--pkgs/applications/video/xine-ui/default.nix2
-rw-r--r--pkgs/applications/virtualization/virt-manager/default.nix2
-rw-r--r--pkgs/applications/window-managers/compiz/default.nix14
-rw-r--r--pkgs/build-support/builder-defs/builder-defs.nix26
-rw-r--r--pkgs/build-support/cabal/default.nix55
-rw-r--r--pkgs/build-support/checker/default.nix4
-rw-r--r--pkgs/build-support/clang-wrapper/default.nix10
-rw-r--r--pkgs/build-support/clang-wrapper/utils.sh1
-rw-r--r--pkgs/build-support/fetchhg/default.nix6
-rw-r--r--pkgs/build-support/fetchmtn/default.nix2
-rw-r--r--pkgs/build-support/fetchurl/mirrors.nix1
-rw-r--r--pkgs/build-support/gcc-cross-wrapper/builder.sh2
-rw-r--r--pkgs/build-support/gcc-cross-wrapper/default.nix2
-rw-r--r--pkgs/build-support/gcc-cross-wrapper/utils.sh1
-rw-r--r--pkgs/build-support/gcc-upc-wrapper/add-flags24
-rw-r--r--pkgs/build-support/gcc-upc-wrapper/builder.sh114
-rw-r--r--pkgs/build-support/gcc-upc-wrapper/default.nix43
-rw-r--r--pkgs/build-support/gcc-upc-wrapper/gcc-wrapper.sh139
-rw-r--r--pkgs/build-support/gcc-upc-wrapper/ld-wrapper.sh145
-rw-r--r--pkgs/build-support/gcc-upc-wrapper/setup-hook.sh29
-rw-r--r--pkgs/build-support/gcc-upc-wrapper/utils.sh23
-rw-r--r--pkgs/build-support/gcc-wrapper/builder.sh4
-rw-r--r--pkgs/build-support/gcc-wrapper/buildergo.sh194
-rw-r--r--pkgs/build-support/gcc-wrapper/default.nix23
-rw-r--r--pkgs/build-support/gcc-wrapper/utils.sh1
-rw-r--r--pkgs/build-support/kernel/make-initrd.nix4
-rw-r--r--pkgs/build-support/setup-hooks/autoreconf.sh2
-rw-r--r--pkgs/build-support/trivial-builders.nix2
-rw-r--r--pkgs/data/documentation/gnome-user-docs/default.nix2
-rw-r--r--pkgs/data/misc/gsettings-desktop-schemas/default.nix2
-rw-r--r--pkgs/data/misc/xkeyboard-config/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/desktop/gnome-icon-theme/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/desktop/gnome-keyring/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/desktop/gnome-panel/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/desktop/gnome-session/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/desktop/gnome-settings-daemon/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/desktop/gvfs/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/desktop/zenity/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/GConf/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/ORBit2/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/gconfmm/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/gtkglextmm/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/libIDL/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/libbonobo/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/libbonoboui/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnome/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnomecanvas/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnomeui/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/libunique/default.nix2
-rw-r--r--pkgs/desktops/kde-4.7/kde-wallpapers.nix2
-rw-r--r--pkgs/desktops/kde-4.7/kde-workspace.nix2
-rw-r--r--pkgs/desktops/kde-4.7/kdeartwork/kscreensaver.nix2
-rw-r--r--pkgs/desktops/kde-4.7/kdebindings/smokegen.nix2
-rw-r--r--pkgs/desktops/kde-4.7/kdebindings/smokeqt.nix4
-rw-r--r--pkgs/desktops/kde-4.7/kdegames.nix2
-rw-r--r--pkgs/desktops/kde-4.7/kdegraphics/gwenview.nix2
-rw-r--r--pkgs/desktops/kde-4.7/kdelibs.nix2
-rw-r--r--pkgs/desktops/kde-4.7/kdenetwork/kopete.nix2
-rw-r--r--pkgs/desktops/kde-4.7/kdeplasma-addons.nix2
-rw-r--r--pkgs/desktops/kde-4.7/oxygen-icons.nix2
-rw-r--r--pkgs/desktops/kde-4.7/support/akonadi/default.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kde-package/default.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kde-runtime.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kde-wallpapers.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kde-workspace.nix4
-rw-r--r--pkgs/desktops/kde-4.8/kdeartwork/kscreensaver.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kdebindings/perlqt.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kdebindings/qtruby.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kdebindings/smokegen.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kdebindings/smokekde.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kdebindings/smokeqt.nix4
-rw-r--r--pkgs/desktops/kde-4.8/kdegames.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kdegraphics/gwenview.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kdelibs.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kdenetwork/kopete.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kdeplasma-addons.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/okteta.nix2
-rw-r--r--pkgs/desktops/kde-4.8/oxygen-icons.nix2
-rw-r--r--pkgs/desktops/kde-4.8/support/akonadi/default.nix2
-rw-r--r--pkgs/development/compilers/gcc-upc-4.0/builder.sh85
-rw-r--r--pkgs/development/compilers/gcc-upc-4.0/default.nix63
-rw-r--r--pkgs/development/compilers/gcc-upc-4.0/honor-cflags.patch20
-rw-r--r--pkgs/development/compilers/gcc-upc-4.0/no-sys-dirs.patch202
-rw-r--r--pkgs/development/compilers/gcc/2.95/builder.sh72
-rw-r--r--pkgs/development/compilers/gcc/2.95/default.nix17
-rw-r--r--pkgs/development/compilers/gcc/2.95/no-sys-dirs.patch231
-rw-r--r--pkgs/development/compilers/gcc/4.0/builder.sh85
-rw-r--r--pkgs/development/compilers/gcc/4.0/default.nix51
-rw-r--r--pkgs/development/compilers/gcc/4.0/no-sys-dirs.patch228
-rw-r--r--pkgs/development/compilers/gcc/4.1/builder.sh83
-rw-r--r--pkgs/development/compilers/gcc/4.1/default.nix71
-rw-r--r--pkgs/development/compilers/gcc/4.1/no-sys-dirs.patch177
-rw-r--r--pkgs/development/compilers/gcc/4.3/default.nix10
-rw-r--r--pkgs/development/compilers/gcc/4.3/siginfo_t_fix.patch174
-rw-r--r--pkgs/development/compilers/gcc/4.4/default.nix45
-rw-r--r--pkgs/development/compilers/gcc/4.4/siginfo_t_fix.patch174
-rw-r--r--pkgs/development/compilers/gcc/4.5/default.nix34
-rw-r--r--pkgs/development/compilers/gcc/4.6/builder.sh18
-rw-r--r--pkgs/development/compilers/gcc/4.6/default.nix192
-rw-r--r--pkgs/development/compilers/gcc/4.6/siginfo_t_fix.patch211
-rw-r--r--pkgs/development/compilers/gcc/4.7/builder.sh15
-rw-r--r--pkgs/development/compilers/gcc/4.7/default.nix211
-rw-r--r--pkgs/development/compilers/gnatboot/default.nix4
-rw-r--r--pkgs/development/compilers/go/default.nix8
-rw-r--r--pkgs/development/compilers/iasl/default.nix25
-rw-r--r--pkgs/development/compilers/llvm/dragonegg.nix7
-rw-r--r--pkgs/development/compilers/mit-scheme/default.nix2
-rw-r--r--pkgs/development/compilers/sbcl/default.nix5
-rw-r--r--pkgs/development/compilers/sbcl/newglibc.patch43
-rw-r--r--pkgs/development/compilers/tinycc/default.nix2
-rw-r--r--pkgs/development/compilers/vala/15.2.nix2
-rw-r--r--pkgs/development/compilers/vala/16.1.nix2
-rw-r--r--pkgs/development/compilers/vala/default.nix2
-rw-r--r--pkgs/development/interpreters/clisp/bits_ipctypes_to_sys_ipc.patch12
-rw-r--r--pkgs/development/interpreters/clisp/default.nix10
-rw-r--r--pkgs/development/interpreters/guile/1.8.nix4
-rw-r--r--pkgs/development/interpreters/guile/default.nix8
-rw-r--r--pkgs/development/interpreters/hiphopvm/default.nix4
-rw-r--r--pkgs/development/interpreters/octave/default.nix4
-rw-r--r--pkgs/development/interpreters/octave/hg.nix2
-rw-r--r--pkgs/development/interpreters/perl/5.16/default.nix63
-rw-r--r--pkgs/development/interpreters/perl/5.16/no-libutil.patch12
-rw-r--r--pkgs/development/interpreters/perl/5.16/no-sys-dirs.patch152
-rw-r--r--pkgs/development/interpreters/perl/5.16/setup-hook.sh5
-rw-r--r--pkgs/development/interpreters/plt-scheme/default.nix29
-rw-r--r--pkgs/development/interpreters/racket/default.nix8
-rw-r--r--pkgs/development/libraries/GConf/3.x.nix2
-rw-r--r--pkgs/development/libraries/SDL/default.nix2
-rw-r--r--pkgs/development/libraries/acl/default.nix2
-rw-r--r--pkgs/development/libraries/agg/default.nix7
-rw-r--r--pkgs/development/libraries/aqbanking/default.nix2
-rw-r--r--pkgs/development/libraries/asc-support/default.nix2
-rw-r--r--pkgs/development/libraries/asf-support/default.nix2
-rw-r--r--pkgs/development/libraries/atk/2.6.x.nix2
-rw-r--r--pkgs/development/libraries/atkmm/default.nix2
-rw-r--r--pkgs/development/libraries/attica/default.nix2
-rw-r--r--pkgs/development/libraries/attr/default.nix2
-rw-r--r--pkgs/development/libraries/avahi/default.nix2
-rw-r--r--pkgs/development/libraries/boolstuff/default.nix2
-rw-r--r--pkgs/development/libraries/boost/1.44.nix6
-rw-r--r--pkgs/development/libraries/boost/1.47.nix90
-rw-r--r--pkgs/development/libraries/boost/1.49.nix12
-rw-r--r--pkgs/development/libraries/boost/1.53.nix10
-rw-r--r--pkgs/development/libraries/boost/boost_filesystem_1_47_0.patch24
-rw-r--r--pkgs/development/libraries/boost/time_utc.patch320
-rw-r--r--pkgs/development/libraries/c-library/default.nix2
-rw-r--r--pkgs/development/libraries/caelum/default.nix2
-rw-r--r--pkgs/development/libraries/cloog-ppl/default.nix2
-rw-r--r--pkgs/development/libraries/clucene-core/2.x.nix2
-rw-r--r--pkgs/development/libraries/clutter-gtk/0.10.8.nix2
-rw-r--r--pkgs/development/libraries/clutter-gtk/default.nix2
-rw-r--r--pkgs/development/libraries/clutter/default.nix2
-rw-r--r--pkgs/development/libraries/cogl/default.nix2
-rw-r--r--pkgs/development/libraries/config-support/default.nix2
-rw-r--r--pkgs/development/libraries/crypto++/default.nix18
-rw-r--r--pkgs/development/libraries/crypto++/pic.patch22
-rw-r--r--pkgs/development/libraries/crypto++/salsa-gcc4.6.patch62
-rw-r--r--pkgs/development/libraries/dbus-glib/default.nix2
-rw-r--r--pkgs/development/libraries/dbus/default.nix4
-rw-r--r--pkgs/development/libraries/directfb/default.nix2
-rw-r--r--pkgs/development/libraries/eigen/2.0.nix8
-rw-r--r--pkgs/development/libraries/eigen/default.nix2
-rw-r--r--pkgs/development/libraries/error-support/default.nix2
-rw-r--r--pkgs/development/libraries/farsight2/default.nix2
-rw-r--r--pkgs/development/libraries/farstream/default.nix6
-rw-r--r--pkgs/development/libraries/ffmpeg/default.nix4
-rw-r--r--pkgs/development/libraries/fltk/fltk13.nix2
-rw-r--r--pkgs/development/libraries/fmod/default.nix4
-rw-r--r--pkgs/development/libraries/funambol/default.nix2
-rw-r--r--pkgs/development/libraries/gamin/default.nix2
-rw-r--r--pkgs/development/libraries/gdk-pixbuf/2.26.x.nix2
-rw-r--r--pkgs/development/libraries/gegl/default.nix2
-rw-r--r--pkgs/development/libraries/gettext/default.nix4
-rw-r--r--pkgs/development/libraries/gettext/no-gets.patch42
-rw-r--r--pkgs/development/libraries/glib-networking/default.nix2
-rw-r--r--pkgs/development/libraries/glib/2.34.x.nix2
-rw-r--r--pkgs/development/libraries/glibc/2.13/common.nix19
-rw-r--r--pkgs/development/libraries/glibc/2.14/common.nix223
-rw-r--r--pkgs/development/libraries/glibc/2.14/dont_use_system_ld_so_cache.patch43
-rw-r--r--pkgs/development/libraries/glibc/2.14/info.nix26
-rw-r--r--pkgs/development/libraries/glibc/2.14/nss-skip-unavail.patch21
-rw-r--r--pkgs/development/libraries/glibc/2.14/rpcgen-path.patch72
-rw-r--r--pkgs/development/libraries/glibc/2.17/builder.sh (renamed from pkgs/development/libraries/glibc/2.14/builder.sh)0
-rw-r--r--pkgs/development/libraries/glibc/2.17/common.nix181
-rw-r--r--pkgs/development/libraries/glibc/2.17/default.nix (renamed from pkgs/development/libraries/glibc/2.14/default.nix)8
-rw-r--r--pkgs/development/libraries/glibc/2.17/dont-use-system-ld-so-cache.patch45
-rw-r--r--pkgs/development/libraries/glibc/2.17/glibc-crypt-blowfish.patch795
-rw-r--r--pkgs/development/libraries/glibc/2.17/glibc-elf-localscope.patch (renamed from pkgs/development/libraries/glibc/2.14/glibc-elf-localscope.patch)0
-rw-r--r--pkgs/development/libraries/glibc/2.17/glibc-rh739743.patch55
-rw-r--r--pkgs/development/libraries/glibc/2.17/info.nix26
-rw-r--r--pkgs/development/libraries/glibc/2.17/locales-builder.sh (renamed from pkgs/development/libraries/glibc/2.14/locales-builder.sh)0
-rw-r--r--pkgs/development/libraries/glibc/2.17/locales.nix (renamed from pkgs/development/libraries/glibc/2.14/locales.nix)0
-rw-r--r--pkgs/development/libraries/glibc/2.17/nix-locale-archive.patch (renamed from pkgs/development/libraries/glibc/2.14/nix-locale-archive.patch)48
-rw-r--r--pkgs/development/libraries/glibc/2.17/rpcgen-path.patch54
-rw-r--r--pkgs/development/libraries/glibc/2.5/binutils-ld.patch27
-rw-r--r--pkgs/development/libraries/glibc/2.5/builder.sh57
-rw-r--r--pkgs/development/libraries/glibc/2.5/default.nix40
-rw-r--r--pkgs/development/libraries/glibc/2.5/glibc-getcwd-param-MAX.patch14
-rw-r--r--pkgs/development/libraries/glibc/2.5/glibc-inline.patch1822
-rw-r--r--pkgs/development/libraries/glibc/2.5/glibc-pwd.patch74
-rw-r--r--pkgs/development/libraries/glibc/2.5/make-3-82-fix.patch14
-rw-r--r--pkgs/development/libraries/glibc/2.5/x86-fnstsw.patch32
-rw-r--r--pkgs/development/libraries/glibc/2.7/builder.sh60
-rw-r--r--pkgs/development/libraries/glibc/2.7/default.nix57
-rw-r--r--pkgs/development/libraries/glibc/2.7/nss-skip-unavail.patch25
-rw-r--r--pkgs/development/libraries/glibc/2.9/binutils-2.20.patch42
-rw-r--r--pkgs/development/libraries/glibc/2.9/binutils-ld.patch33
-rw-r--r--pkgs/development/libraries/glibc/2.9/builder.sh85
-rw-r--r--pkgs/development/libraries/glibc/2.9/default.nix103
-rw-r--r--pkgs/development/libraries/glibc/2.9/headers.nix63
-rw-r--r--pkgs/development/libraries/glibc/2.9/headersbuilder.sh38
-rw-r--r--pkgs/development/libraries/glibc/2.9/info.nix47
-rw-r--r--pkgs/development/libraries/glibc/2.9/locale-override.patch72
-rw-r--r--pkgs/development/libraries/glibc/2.9/locales.nix67
-rw-r--r--pkgs/development/libraries/glibc/2.9/localesbuilder.sh50
-rw-r--r--pkgs/development/libraries/glibc/2.9/nss-skip-unavail.patch25
-rw-r--r--pkgs/development/libraries/glibc/2.9/rpcgen-path.patch72
-rw-r--r--pkgs/development/libraries/glibmm/default.nix2
-rw-r--r--pkgs/development/libraries/gmp/4.3.2.nix2
-rw-r--r--pkgs/development/libraries/gmp/5.0.5.nix2
-rw-r--r--pkgs/development/libraries/gmp/5.1.1.nix54
-rw-r--r--pkgs/development/libraries/gnutls/2.12.nix8
-rw-r--r--pkgs/development/libraries/gnutls/default.nix2
-rw-r--r--pkgs/development/libraries/goffice/default.nix3
-rw-r--r--pkgs/development/libraries/goffice/pcre_info.patch13
-rw-r--r--pkgs/development/libraries/google-perftools/default.nix14
-rw-r--r--pkgs/development/libraries/gperftools/default.nix22
-rw-r--r--pkgs/development/libraries/gperftools/glibc-2.16.patch13
-rw-r--r--pkgs/development/libraries/gpgme/default.nix2
-rw-r--r--pkgs/development/libraries/gsasl/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/gst-plugins-good/default.nix6
-rw-r--r--pkgs/development/libraries/gstreamer/gst-plugins-good/v4l.patch11
-rw-r--r--pkgs/development/libraries/gstreamer/qt-gstreamer/default.nix2
-rw-r--r--pkgs/development/libraries/gtk+/2.24.x.nix6
-rw-r--r--pkgs/development/libraries/gtk+/3.2.x.nix2
-rw-r--r--pkgs/development/libraries/gtk-sharp-2/default.nix7
-rw-r--r--pkgs/development/libraries/gtkmm/2.x.nix2
-rw-r--r--pkgs/development/libraries/gtkmm/3.x.nix2
-rw-r--r--pkgs/development/libraries/gupnp-igd/default.nix2
-rw-r--r--pkgs/development/libraries/gupnp/default.nix2
-rw-r--r--pkgs/development/libraries/gwenhywfar/default.nix2
-rw-r--r--pkgs/development/libraries/haskell/cuda/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/data-default/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/doctest/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/ghc-mod/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hakyll/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/hledger-web/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/http-conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/pandoc/default.nix2
-rw-r--r--pkgs/development/libraries/haskell/uulib/default.nix4
-rw-r--r--pkgs/development/libraries/hspell/dicts.nix2
-rw-r--r--pkgs/development/libraries/hwloc/default.nix2
-rw-r--r--pkgs/development/libraries/ilbc/default.nix2
-rw-r--r--pkgs/development/libraries/imlib2/default.nix2
-rw-r--r--pkgs/development/libraries/itk/default.nix2
-rw-r--r--pkgs/development/libraries/jasper/default.nix2
-rw-r--r--pkgs/development/libraries/json-glib/default.nix2
-rw-r--r--pkgs/development/libraries/kdevplatform/default.nix2
-rw-r--r--pkgs/development/libraries/libalkimia/default.nix4
-rw-r--r--pkgs/development/libraries/libbluray/default.nix2
-rw-r--r--pkgs/development/libraries/libcdr/default.nix2
-rw-r--r--pkgs/development/libraries/libchop/default.nix3
-rw-r--r--pkgs/development/libraries/libdbusmenu-qt/default.nix2
-rw-r--r--pkgs/development/libraries/libdevil/default.nix2
-rw-r--r--pkgs/development/libraries/libdiscid/default.nix2
-rw-r--r--pkgs/development/libraries/libdmtx/default.nix2
-rw-r--r--pkgs/development/libraries/libdrm/default.nix2
-rw-r--r--pkgs/development/libraries/libgnome-keyring/3.x.nix2
-rw-r--r--pkgs/development/libraries/libgnome-keyring/default.nix2
-rw-r--r--pkgs/development/libraries/libgphoto2/default.nix2
-rw-r--r--pkgs/development/libraries/libgpod/default.nix2
-rw-r--r--pkgs/development/libraries/libgsf/default.nix2
-rw-r--r--pkgs/development/libraries/libgtop/default.nix2
-rw-r--r--pkgs/development/libraries/libgweather/default.nix2
-rw-r--r--pkgs/development/libraries/libharu/default.nix2
-rw-r--r--pkgs/development/libraries/libical/default.nix2
-rw-r--r--pkgs/development/libraries/libidn/default.nix4
-rw-r--r--pkgs/development/libraries/libimobiledevice/default.nix2
-rw-r--r--pkgs/development/libraries/libktorrent/default.nix2
-rw-r--r--pkgs/development/libraries/liblastfm/default.nix2
-rw-r--r--pkgs/development/libraries/libmad/default.nix2
-rw-r--r--pkgs/development/libraries/libmms/default.nix2
-rw-r--r--pkgs/development/libraries/libmng/default.nix2
-rw-r--r--pkgs/development/libraries/libnice/default.nix6
-rw-r--r--pkgs/development/libraries/libogg/default.nix2
-rw-r--r--pkgs/development/libraries/libopensc-dnie/default.nix4
-rw-r--r--pkgs/development/libraries/libpcap/default.nix2
-rw-r--r--pkgs/development/libraries/libplist/default.nix2
-rw-r--r--pkgs/development/libraries/libpng/12.nix2
-rw-r--r--pkgs/development/libraries/librdf/default.nix28
-rw-r--r--pkgs/development/libraries/librdf/raptor2.nix6
-rw-r--r--pkgs/development/libraries/librdf/rasqal.nix10
-rw-r--r--pkgs/development/libraries/librdf/redland.nix6
-rw-r--r--pkgs/development/libraries/librsvg/default.nix2
-rw-r--r--pkgs/development/libraries/libsoup/default.nix2
-rw-r--r--pkgs/development/libraries/libssh/default.nix2
-rw-r--r--pkgs/development/libraries/libtasn1/default.nix4
-rw-r--r--pkgs/development/libraries/libtheora/default.nix2
-rw-r--r--pkgs/development/libraries/libvirt/default.nix4
-rw-r--r--pkgs/development/libraries/libvisio/default.nix2
-rw-r--r--pkgs/development/libraries/libvorbis/default.nix2
-rw-r--r--pkgs/development/libraries/libwpd/0.8.nix2
-rw-r--r--pkgs/development/libraries/libwpd/default.nix2
-rw-r--r--pkgs/development/libraries/libwpg/default.nix2
-rw-r--r--pkgs/development/libraries/libxcrypt/default.nix17
-rw-r--r--pkgs/development/libraries/libxcrypt/gcc46.patch18
-rw-r--r--pkgs/development/libraries/libxklavier/default.nix2
-rw-r--r--pkgs/development/libraries/lirc/default.nix6
-rw-r--r--pkgs/development/libraries/mediastreamer/default.nix2
-rw-r--r--pkgs/development/libraries/mesa/default.nix2
-rw-r--r--pkgs/development/libraries/mythes/default.nix2
-rw-r--r--pkgs/development/libraries/ncurses/default.nix2
-rw-r--r--pkgs/development/libraries/ntrack/default.nix2
-rw-r--r--pkgs/development/libraries/ogrepaged/default.nix2
-rw-r--r--pkgs/development/libraries/openbabel/default.nix2
-rw-r--r--pkgs/development/libraries/opencv/default.nix2
-rw-r--r--pkgs/development/libraries/openscenegraph/default.nix16
-rw-r--r--pkgs/development/libraries/openscenegraph/xine.patch18
-rw-r--r--pkgs/development/libraries/openssl/darwin-arch.patch30
-rw-r--r--pkgs/development/libraries/openssl/default.nix15
-rw-r--r--pkgs/development/libraries/pango/1.30.x.nix2
-rw-r--r--pkgs/development/libraries/pangomm/2.28.x.nix2
-rw-r--r--pkgs/development/libraries/pcre/8.30.nix38
-rw-r--r--pkgs/development/libraries/pcre/8.31.nix38
-rw-r--r--pkgs/development/libraries/pcre/default.nix4
-rw-r--r--pkgs/development/libraries/pgen/default.nix2
-rw-r--r--pkgs/development/libraries/phonon-backend-gstreamer/default.nix2
-rw-r--r--pkgs/development/libraries/phonon-backend-vlc/default.nix2
-rw-r--r--pkgs/development/libraries/phonon/default.nix2
-rw-r--r--pkgs/development/libraries/physfs/default.nix2
-rw-r--r--pkgs/development/libraries/plib/default.nix2
-rw-r--r--pkgs/development/libraries/podofo/default.nix2
-rw-r--r--pkgs/development/libraries/polkit-qt-1/default.nix2
-rw-r--r--pkgs/development/libraries/poppler/default.nix2
-rw-r--r--pkgs/development/libraries/ppl/default.nix2
-rw-r--r--pkgs/development/libraries/prison/default.nix2
-rw-r--r--pkgs/development/libraries/pt-support/default.nix2
-rw-r--r--pkgs/development/libraries/ptable-support/default.nix2
-rw-r--r--pkgs/development/libraries/qca2/default.nix2
-rw-r--r--pkgs/development/libraries/qca2/ossl.nix2
-rw-r--r--pkgs/development/libraries/qhull/default.nix2
-rw-r--r--pkgs/development/libraries/qjson/default.nix4
-rw-r--r--pkgs/development/libraries/qt-3/default.nix2
-rw-r--r--pkgs/development/libraries/qt-4.x/4.8/default.nix2
-rw-r--r--pkgs/development/libraries/rstore-support/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/liblapack/default.nix2
-rw-r--r--pkgs/development/libraries/sdf-support/default.nix2
-rw-r--r--pkgs/development/libraries/sglr/default.nix2
-rw-r--r--pkgs/development/libraries/simgear/default.nix22
-rw-r--r--pkgs/development/libraries/sofia-sip/default.nix2
-rw-r--r--pkgs/development/libraries/soprano/default.nix2
-rw-r--r--pkgs/development/libraries/soqt/default.nix2
-rw-r--r--pkgs/development/libraries/spice/default.nix2
-rw-r--r--pkgs/development/libraries/sqlite/full.nix2
-rw-r--r--pkgs/development/libraries/strigi/default.nix2
-rw-r--r--pkgs/development/libraries/taglib-extras/default.nix2
-rw-r--r--pkgs/development/libraries/taglib/default.nix10
-rw-r--r--pkgs/development/libraries/telepathy/farstream/default.nix8
-rw-r--r--pkgs/development/libraries/telepathy/glib/default.nix6
-rw-r--r--pkgs/development/libraries/telepathy/qt/default.nix10
-rw-r--r--pkgs/development/libraries/tide-support/default.nix2
-rw-r--r--pkgs/development/libraries/tokyo-tyrant/default.nix2
-rw-r--r--pkgs/development/libraries/toolbuslib/default.nix2
-rw-r--r--pkgs/development/libraries/tremor/default.nix2
-rw-r--r--pkgs/development/libraries/v8/default.nix2
-rw-r--r--pkgs/development/libraries/vcdimager/default.nix2
-rw-r--r--pkgs/development/libraries/vxl/default.nix5
-rw-r--r--pkgs/development/libraries/webkit/bison26.patch515
-rw-r--r--pkgs/development/libraries/webkit/default.nix48
-rw-r--r--pkgs/development/libraries/webkit/gtk2.nix53
-rw-r--r--pkgs/development/libraries/webkit/src-for-gtk2.nix11
-rw-r--r--pkgs/development/libraries/wxGTK-2.8/default.nix2
-rw-r--r--pkgs/development/libraries/wxGTK-2.9/default.nix2
-rw-r--r--pkgs/development/libraries/xine-lib/default.nix2
-rw-r--r--pkgs/development/libraries/zlib/default.nix2
-rw-r--r--pkgs/development/mobile/androidenv/build-app.nix2
-rw-r--r--pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix1
-rw-r--r--pkgs/development/perl-modules/generic/builder.sh4
-rw-r--r--pkgs/development/python-modules/generic/default.nix13
-rw-r--r--pkgs/development/python-modules/generic/wrap.sh2
-rw-r--r--pkgs/development/python-modules/python-sip/default.nix5
-rw-r--r--pkgs/development/tools/analysis/valgrind/default.nix4
-rw-r--r--pkgs/development/tools/analysis/valgrind/glibc-2.17.patch78
-rwxr-xr-xpkgs/development/tools/build-managers/cmake/setup-hook.sh2
-rw-r--r--pkgs/development/tools/build-managers/gnumake/3.81.nix1
-rw-r--r--pkgs/development/tools/build-managers/gnumake/MAKEFLAGS-reexec.patch14
-rw-r--r--pkgs/development/tools/build-managers/gnumake/archives-many-objs.patch48
-rw-r--r--pkgs/development/tools/build-managers/gnumake/construct-command-line.patch71
-rw-r--r--pkgs/development/tools/build-managers/gnumake/copy-on-expand.patch58
-rw-r--r--pkgs/development/tools/build-managers/gnumake/darwin-library_search-dylib.patch17
-rw-r--r--pkgs/development/tools/build-managers/gnumake/default.nix14
-rw-r--r--pkgs/development/tools/build-managers/gnumake/glob-speedup.patch104
-rw-r--r--pkgs/development/tools/build-managers/gnumake/impure-dirs.patch12
-rw-r--r--pkgs/development/tools/build-managers/gnumake/intermediate-parallel.patch46
-rw-r--r--pkgs/development/tools/build-managers/gnumake/log-3.81.patch24
-rw-r--r--pkgs/development/tools/build-managers/gnumake/log.patch24
-rw-r--r--pkgs/development/tools/build-managers/gnumake/long-command-line.patch54
-rw-r--r--pkgs/development/tools/build-managers/gnumake/memory-corruption.patch37
-rw-r--r--pkgs/development/tools/build-managers/gnumake/oneshell.patch24
-rw-r--r--pkgs/development/tools/build-managers/gnumake/parallel-remake.patch39
-rw-r--r--pkgs/development/tools/documentation/doxygen/1.7.nix2
-rw-r--r--pkgs/development/tools/documentation/doxygen/default.nix2
-rw-r--r--pkgs/development/tools/documentation/gnome-doc-utils/default.nix2
-rw-r--r--pkgs/development/tools/misc/autogen/default.nix8
-rw-r--r--pkgs/development/tools/misc/automake/automake-1.11.x.nix4
-rw-r--r--pkgs/development/tools/misc/automake/automake-1.12.x.nix6
-rw-r--r--pkgs/development/tools/misc/binutils/default.nix9
-rw-r--r--pkgs/development/tools/misc/binutils/dtneeded.patch12
-rw-r--r--pkgs/development/tools/misc/cscope/default.nix4
-rw-r--r--pkgs/development/tools/misc/elfutils/default.nix4
-rw-r--r--pkgs/development/tools/misc/gdb/default.nix10
-rw-r--r--pkgs/development/tools/misc/gnum4/default.nix2
-rw-r--r--pkgs/development/tools/misc/gnum4/no-gets.patch26
-rw-r--r--pkgs/development/tools/misc/libtool/libtool2.nix2
-rw-r--r--pkgs/development/tools/misc/strace/default.nix2
-rw-r--r--pkgs/development/tools/misc/texinfo/4.13a.nix2
-rw-r--r--pkgs/development/tools/misc/xxdiff/default.nix2
-rw-r--r--pkgs/development/tools/parsing/bison/bison-1.875.nix13
-rw-r--r--pkgs/development/tools/parsing/bison/bison-2.3.nix38
-rw-r--r--pkgs/development/tools/parsing/bison/bison-2.4.nix40
-rw-r--r--pkgs/development/tools/parsing/bison/bison-2.5.nix44
-rw-r--r--pkgs/development/tools/parsing/bison/default.nix (renamed from pkgs/development/tools/parsing/bison/bison-2.6.nix)6
-rw-r--r--pkgs/development/tools/parsing/flex/flex-2.5.35.nix2
-rw-r--r--pkgs/development/tools/phantomjs/default.nix2
-rw-r--r--pkgs/development/tools/profiling/oprofile/default.nix7
-rw-r--r--pkgs/development/web/nodejs/build-node-package.nix2
-rw-r--r--pkgs/games/andyetitmoves/default.nix2
-rw-r--r--pkgs/games/flightgear/default.nix20
-rw-r--r--pkgs/games/freeciv/default.nix2
-rw-r--r--pkgs/games/freedink/default.nix44
-rw-r--r--pkgs/games/naev/default.nix2
-rw-r--r--pkgs/games/prboom/default.nix2
-rw-r--r--pkgs/games/scorched3d/default.nix2
-rw-r--r--pkgs/games/torcs/default.nix2
-rw-r--r--pkgs/games/wesnoth/default.nix4
-rw-r--r--pkgs/lib/customisation.nix8
-rw-r--r--pkgs/lib/debug.nix2
-rw-r--r--pkgs/lib/misc.nix20
-rw-r--r--pkgs/lib/platforms.nix2
-rw-r--r--pkgs/lib/strings.nix7
-rw-r--r--pkgs/misc/my-env/default.nix6
-rw-r--r--pkgs/misc/source-and-tags/default.nix4
-rw-r--r--pkgs/misc/uboot/default.nix2
-rw-r--r--pkgs/misc/uboot/guruplug.nix2
-rw-r--r--pkgs/misc/uboot/sheevaplug.nix2
-rw-r--r--pkgs/os-specific/gnu/default.nix12
-rw-r--r--pkgs/os-specific/gnu/libpthread/default.nix2
-rw-r--r--pkgs/os-specific/gnu/mach/default.nix2
-rw-r--r--pkgs/os-specific/gnu/mig/default.nix4
-rw-r--r--pkgs/os-specific/gnu/unionfs/default.nix2
-rw-r--r--pkgs/os-specific/linux/alsa-lib/default.nix13
-rw-r--r--pkgs/os-specific/linux/alsa-oss/default.nix2
-rw-r--r--pkgs/os-specific/linux/alsa-utils/default.nix2
-rw-r--r--pkgs/os-specific/linux/busybox/default.nix5
-rw-r--r--pkgs/os-specific/linux/busybox/include-missing-sys-resource-header.patch12
-rw-r--r--pkgs/os-specific/linux/cryptodev/default.nix2
-rw-r--r--pkgs/os-specific/linux/ebtables/default.nix15
-rw-r--r--pkgs/os-specific/linux/eject/default.nix14
-rw-r--r--pkgs/os-specific/linux/firmware/raspberrypi/default.nix23
-rw-r--r--pkgs/os-specific/linux/iproute/default.nix2
-rw-r--r--pkgs/os-specific/linux/jujuutils/default.nix6
-rw-r--r--pkgs/os-specific/linux/kernel-headers/2.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel-headers/2.6.28.nix2
-rw-r--r--pkgs/os-specific/linux/kernel-headers/2.6.32.nix4
-rw-r--r--pkgs/os-specific/linux/kernel-headers/3.7.nix (renamed from pkgs/os-specific/linux/kernel-headers/3.3.5.nix)25
-rw-r--r--pkgs/os-specific/linux/kernel-headers/default.nix62
-rw-r--r--pkgs/os-specific/linux/kernel/generic.nix9
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rpi-3.6.nix42
-rw-r--r--pkgs/os-specific/linux/kernel/manual-config.nix2
-rw-r--r--pkgs/os-specific/linux/kernel/perf.nix6
-rw-r--r--pkgs/os-specific/linux/klibc/default.nix2
-rw-r--r--pkgs/os-specific/linux/libcap/default.nix2
-rw-r--r--pkgs/os-specific/linux/libcgroup/default.nix2
-rw-r--r--pkgs/os-specific/linux/mdadm/default.nix2
-rw-r--r--pkgs/os-specific/linux/net-tools/config.h11
-rw-r--r--pkgs/os-specific/linux/net-tools/default.nix12
-rw-r--r--pkgs/os-specific/linux/net-tools/net-tools-labels.patch38
-rw-r--r--pkgs/os-specific/linux/pam/default.nix25
-rw-r--r--pkgs/os-specific/linux/pam_unix2/default.nix16
-rw-r--r--pkgs/os-specific/linux/pwdutils/default.nix42
-rw-r--r--pkgs/os-specific/linux/pwdutils/sys-stat-h.patch37
-rw-r--r--pkgs/os-specific/linux/qemu-kvm/default.nix5
-rw-r--r--pkgs/os-specific/linux/qemu-kvm/fix-librt-check.patch72
-rw-r--r--pkgs/os-specific/linux/syslinux/default.nix19
-rw-r--r--pkgs/os-specific/linux/uclibc/default.nix6
-rw-r--r--pkgs/os-specific/linux/udisks/default.nix2
-rw-r--r--pkgs/os-specific/linux/upower/default.nix2
-rw-r--r--pkgs/os-specific/linux/util-linux/default.nix31
-rw-r--r--pkgs/os-specific/linux/util-linux/linux-specific-header.patch16
-rw-r--r--pkgs/os-specific/linux/wpa_supplicant/default.nix2
-rw-r--r--pkgs/os-specific/linux/wpa_supplicant/gui.nix2
-rw-r--r--pkgs/os-specific/windows/jom/default.nix4
-rw-r--r--pkgs/os-specific/windows/w32api/default.nix2
-rw-r--r--pkgs/servers/dico/default.nix10
-rw-r--r--pkgs/servers/firebird/default.nix10
-rw-r--r--pkgs/servers/gpm/default.nix2
-rw-r--r--pkgs/servers/gpsd/default.nix2
-rw-r--r--pkgs/servers/monitoring/net-snmp/default.nix7
-rw-r--r--pkgs/servers/nosql/mongodb/default.nix2
-rw-r--r--pkgs/servers/prayer/default.nix2
-rw-r--r--pkgs/servers/shishi/default.nix18
-rw-r--r--pkgs/servers/shishi/no-gets.patch20
-rw-r--r--pkgs/servers/unfs3/default.nix2
-rw-r--r--pkgs/servers/x11/xorg/builder.sh4
-rw-r--r--pkgs/servers/x11/xorg/overrides.nix8
-rw-r--r--pkgs/shells/bash/bash-4.2-patches.nix18
-rw-r--r--pkgs/shells/bash/default.nix6
-rw-r--r--pkgs/stdenv/adapters.nix95
-rw-r--r--pkgs/stdenv/default.nix1
-rw-r--r--pkgs/stdenv/generic/default.nix15
-rw-r--r--pkgs/stdenv/generic/setup.sh44
-rw-r--r--pkgs/stdenv/linux/bootstrap/armv6l/default.nix15
-rw-r--r--pkgs/stdenv/linux/default.nix60
-rw-r--r--pkgs/stdenv/linux/make-bootstrap-tools-crosspi.nix269
-rw-r--r--pkgs/stdenv/linux/scripts/unpack-bootstrap-tools-arm.sh28
-rwxr-xr-xpkgs/stdenv/mingw/setup.sh4
-rw-r--r--pkgs/stdenv/nix/default.nix6
-rw-r--r--pkgs/tools/X11/xpra/default.nix2
-rw-r--r--pkgs/tools/admin/tigervnc/default.nix31
-rw-r--r--pkgs/tools/archivers/gnutar/default.nix23
-rw-r--r--pkgs/tools/archivers/sharutils/default.nix7
-rw-r--r--pkgs/tools/backup/bup/default.nix2
-rw-r--r--pkgs/tools/bluetooth/kbluetooth/default.nix4
-rw-r--r--pkgs/tools/bluetooth/obexd/default.nix2
-rw-r--r--pkgs/tools/compression/bzip2/builder.sh2
-rw-r--r--pkgs/tools/compression/gzip/default.nix22
-rw-r--r--pkgs/tools/compression/gzip/gets-undeclared.patch26
-rw-r--r--pkgs/tools/compression/xz/default.nix4
-rw-r--r--pkgs/tools/filesystems/fuse-zip/default.nix6
-rw-r--r--pkgs/tools/filesystems/fuse-zip/libzip.patch24
-rw-r--r--pkgs/tools/filesystems/jfsutils/default.nix2
-rw-r--r--pkgs/tools/filesystems/jfsutils/types.patch12
-rw-r--r--pkgs/tools/filesystems/ntfs-3g/default.nix2
-rw-r--r--pkgs/tools/graphics/argyllcms/default.nix2
-rw-r--r--pkgs/tools/graphics/enblend-enfuse/default.nix2
-rw-r--r--pkgs/tools/graphics/pfstools/default.nix2
-rw-r--r--pkgs/tools/graphics/qrencode/default.nix2
-rw-r--r--pkgs/tools/misc/coreutils/8.19.nix70
-rw-r--r--pkgs/tools/misc/coreutils/default.nix30
-rw-r--r--pkgs/tools/misc/file/511.nix17
-rw-r--r--pkgs/tools/misc/file/default.nix19
-rw-r--r--pkgs/tools/misc/findutils/default.nix2
-rw-r--r--pkgs/tools/misc/grub/2.0x.nix6
-rw-r--r--pkgs/tools/misc/hddtemp/byteswap.patch28
-rw-r--r--pkgs/tools/misc/hddtemp/default.nix9
-rw-r--r--pkgs/tools/misc/hddtemp/dontwake.patch20
-rw-r--r--pkgs/tools/misc/hddtemp/execinfo.patch21
-rw-r--r--pkgs/tools/misc/hddtemp/satacmds.patch26
-rw-r--r--pkgs/tools/misc/idutils/default.nix7
-rw-r--r--pkgs/tools/misc/partition-manager/default.nix25
-rw-r--r--pkgs/tools/misc/ttf2pt1/default.nix2
-rw-r--r--pkgs/tools/misc/usbmuxd/default.nix2
-rw-r--r--pkgs/tools/misc/wv2/default.nix21
-rw-r--r--pkgs/tools/misc/wv2/fix-include.patch12
-rw-r--r--pkgs/tools/misc/xburst-tools/default.nix2
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix2
-rw-r--r--pkgs/tools/networking/curl/default.nix4
-rw-r--r--pkgs/tools/networking/inetutils/default.nix14
-rw-r--r--pkgs/tools/networking/lftp/default.nix16
-rw-r--r--pkgs/tools/networking/lftp/no-gets.patch15
-rw-r--r--pkgs/tools/networking/mailutils/default.nix2
-rw-r--r--pkgs/tools/networking/mailutils/no-gets.patch14
-rw-r--r--pkgs/tools/networking/modemmanager/default.nix2
-rw-r--r--pkgs/tools/networking/netboot/default.nix35
-rw-r--r--pkgs/tools/networking/network-manager-applet/default.nix2
-rw-r--r--pkgs/tools/networking/network-manager/default.nix2
-rw-r--r--pkgs/tools/networking/network-manager/pptp.nix2
-rw-r--r--pkgs/tools/networking/networkmanagement/default.nix2
-rw-r--r--pkgs/tools/networking/ntop/default.nix2
-rw-r--r--pkgs/tools/networking/openssh/default.nix1
-rw-r--r--pkgs/tools/networking/pptp/default.nix2
-rw-r--r--pkgs/tools/networking/surfraw/default.nix2
-rw-r--r--pkgs/tools/networking/wget/default.nix2
-rw-r--r--pkgs/tools/package-management/nix/default.nix6
-rw-r--r--pkgs/tools/package-management/nix/unstable.nix6
-rw-r--r--pkgs/tools/security/ccid/default.nix13
-rw-r--r--pkgs/tools/security/ccrypt/default.nix2
-rw-r--r--pkgs/tools/security/pcsclite/default.nix17
-rw-r--r--pkgs/tools/security/pinentry/default.nix2
-rw-r--r--pkgs/tools/security/polkit-gnome/default.nix2
-rw-r--r--pkgs/tools/security/polkit-kde-agent/default.nix2
-rw-r--r--pkgs/tools/system/acct/default.nix2
-rw-r--r--pkgs/tools/system/acct/no-gets.patch22
-rw-r--r--pkgs/tools/text/diffutils/default.nix22
-rw-r--r--pkgs/tools/text/diffutils/gets-undeclared.patch71
-rw-r--r--pkgs/tools/text/gawk/default.nix18
-rw-r--r--pkgs/tools/text/gnugrep/default.nix14
-rw-r--r--pkgs/tools/text/gnupatch/darwin-fix.patch60
-rw-r--r--pkgs/tools/text/gnupatch/default.nix17
-rw-r--r--pkgs/tools/text/groff/default.nix12
-rw-r--r--pkgs/tools/text/kdiff3/default.nix2
-rw-r--r--pkgs/tools/text/wdiff/default.nix9
-rw-r--r--pkgs/top-level/all-packages.nix387
-rw-r--r--pkgs/top-level/haskell-packages.nix8
-rw-r--r--pkgs/top-level/platforms.nix84
-rw-r--r--pkgs/top-level/python-packages.nix8
-rw-r--r--pkgs/top-level/release-cross.nix168
-rw-r--r--pkgs/top-level/release-lib.nix2
-rw-r--r--pkgs/top-level/release-python.nix2
-rw-r--r--pkgs/top-level/release-small.nix7
-rw-r--r--pkgs/top-level/release.nix6
693 files changed, 7091 insertions, 8247 deletions
diff --git a/pkgs/applications/audio/ardour/default.nix b/pkgs/applications/audio/ardour/default.nix
index 58ed4c61f4ba..3ed650d4ae73 100644
--- a/pkgs/applications/audio/ardour/default.nix
+++ b/pkgs/applications/audio/ardour/default.nix
@@ -1,49 +1,42 @@
-{ stdenv, fetchsvn, scons, boost, pkgconfig, fftw, librdf_raptor
+{ stdenv, fetchurl, scons, boost, pkgconfig, fftw, librdf_raptor2
 , librdf_rasqal, jackaudio, flac, libsamplerate, alsaLib, libxml2
+, lilv, lv2, serd, sord, sratom, suil # these are probably optional
 , libxslt, libsndfile, libsigcxx, libusb, cairomm, glib, pango
-, gtk, glibmm, gtkmm, libgnomecanvas,  liblo, aubio
-, fftwSinglePrec, libmad, automake, autoconf, libtool, liblrdf }:
+, gtk, glibmm, gtkmm, libgnomecanvas, libgnomecanvasmm, liblo, aubio
+, fftwSinglePrec, libmad, automake, autoconf, libtool, liblrdf, curl }:
 
 stdenv.mkDerivation rec {
   name = "ardour-${version}";
-  version = "2.8.12";
+  version = "2.8.16";
 
-  # svn is the source to get official releases from their site?
-  # alternative: wget  --data-urlencode 'key=7c4b2e1df903aae5ff5cc4077cda801e' http://ardour.org/downloader
-  # but hash is changing ?
-
-  # TODO: see if this is also true when using a tag (~goibhniu)
-
-  # This version does not run it exits with the following error:
-  # raptor_new_uri_for_rdf_concept called with Raptor V1 world object
-  # raptor_general.c:240:raptor_init: fatal error: raptor_init() failedAborted
-  src = fetchsvn {
-    url = "http://subversion.ardour.org/svn/ardour2/tags/${version}";
-    sha256 = "0d4y8bv12kb0yd2srvxn5388sa4cl5d5rk381saj9f3jgpiciyky";
+  src = fetchurl {
+    url = "mirror://gentoo/distfiles/${name}.tar.bz2";
+    sha256 = "0h2y0x4yznalllja53anjil2gmgcb26f39zshc4gl1d1kc8k5vip";
   };
 
-  patchPhase = ''
-    sed -e "s#/usr/bin/which#type -P#" -i libs/glibmm2/autogen.sh
+  postPatch = ''
+    #sed -e "s#/usr/bin/which#type -P#" -i libs/glibmm2/autogen.sh
     echo '#include "ardour/svn_revision.h"' > libs/ardour/svn_revision.cc
     echo -e 'namespace ARDOUR {\n extern const char* svn_revision = "2.8.12";\n }\n' >> libs/ardour/svn_revision.cc
   '';
 
   buildInputs = [
-    scons boost pkgconfig fftw librdf_raptor librdf_rasqal jackaudio
+    scons boost pkgconfig fftw librdf_raptor2 librdf_rasqal jackaudio
     flac libsamplerate alsaLib libxml2 libxslt libsndfile libsigcxx
-    libusb cairomm glib pango gtk glibmm gtkmm libgnomecanvas liblrdf
-    liblo aubio fftwSinglePrec libmad autoconf automake libtool
+    #lilv lv2 serd sord sratom suil
+    libusb cairomm glib pango gtk glibmm gtkmm libgnomecanvas libgnomecanvasmm liblrdf
+    liblo aubio fftwSinglePrec libmad autoconf automake libtool curl
   ];
 
   buildPhase = ''
     mkdir -p $out
     export CXX=g++
-    scons PREFIX=$out install
+    scons PREFIX=$out SYSLIBS=1 install
   '';
-  
+
   installPhase = ":";
 
-  meta = { 
+  meta = {
     description = "Multi-track hard disk recording software";
     longDescription = ''
       Broken: use ardour3-svn instead
diff --git a/pkgs/applications/audio/audacious/default.nix b/pkgs/applications/audio/audacious/default.nix
index 9bd793613c11..9ac62f585703 100644
--- a/pkgs/applications/audio/audacious/default.nix
+++ b/pkgs/applications/audio/audacious/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation {
 
       # Then build the plugins.
       (
-        buildNativeInputs="$out $buildNativeInputs" # to find audacious
+        nativeBuildInputs="$out $nativeBuildInputs" # to find audacious
         source $stdenv/setup
         rm -rfv audacious-*
         src=$pluginsSrc
diff --git a/pkgs/applications/audio/id3v2/default.nix b/pkgs/applications/audio/id3v2/default.nix
index 8e7f573cc849..8a025ac68430 100644
--- a/pkgs/applications/audio/id3v2/default.nix
+++ b/pkgs/applications/audio/id3v2/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
 
   patches = [ ./id3v2-0.1.11-track-bad-free.patch ];
 
-  buildNativeInputs = [ groff ];
+  nativeBuildInputs = [ groff ];
   buildInputs = [ id3lib ];
 
   configurePhase = ''
diff --git a/pkgs/applications/audio/lash/default.nix b/pkgs/applications/audio/lash/default.nix
index 3bbc9e4277b4..72087c76b05d 100644
--- a/pkgs/applications/audio/lash/default.nix
+++ b/pkgs/applications/audio/lash/default.nix
@@ -12,7 +12,8 @@ stdenv.mkDerivation  rec {
     sha256 = "05kc4brcx8mncai0rj2gz4s4bsrsy9q8xlnaddf75i0m8jl7snhh";
   };
 
-  patches = [ ./socket.patch ];
+  # http://permalink.gmane.org/gmane.linux.redhat.fedora.extras.cvs/822346
+  patches = [ ./socket.patch ./gcc-47.patch ];
 
   buildInputs = [ alsaLib gtk jackaudio libuuid libxml2 makeWrapper
     pkgconfig readline ];
diff --git a/pkgs/applications/audio/lash/gcc-47.patch b/pkgs/applications/audio/lash/gcc-47.patch
new file mode 100644
index 000000000000..774add431fab
--- /dev/null
+++ b/pkgs/applications/audio/lash/gcc-47.patch
@@ -0,0 +1,11 @@
+diff -rupN liblash/lash.c lash-0.5.4/liblash/lash.c
+--- a/liblash/lash.c	2007-03-09 10:34:40.000000000 -0500
++++ b/liblash/lash.c	2012-07-22 18:17:46.003963521 -0400
+@@ -22,6 +22,7 @@
+ #include <string.h>
+ #include <strings.h>
+ #include <pthread.h>
++#include <sys/resource.h>
+ #include <sys/types.h>
+ #include <sys/wait.h>
+ #include <sys/socket.h>
diff --git a/pkgs/applications/audio/yoshimi/default.nix b/pkgs/applications/audio/yoshimi/default.nix
index 082f5dd9ab9e..bce7e0ef5ee0 100644
--- a/pkgs/applications/audio/yoshimi/default.nix
+++ b/pkgs/applications/audio/yoshimi/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation  rec {
 
   buildInputs = [ alsaLib boost fftwSinglePrec fltk jackaudio libsndfile mesa
     minixml zlib ];
-  buildNativeInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig ];
 
   preConfigure = "cd src";
 
diff --git a/pkgs/applications/audio/zynaddsubfx/default.nix b/pkgs/applications/audio/zynaddsubfx/default.nix
index 08f0f48011c0..fcec85b7fe57 100644
--- a/pkgs/applications/audio/zynaddsubfx/default.nix
+++ b/pkgs/applications/audio/zynaddsubfx/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation  rec {
   };
 
   buildInputs = [ alsaLib fftw fltk13 minixml zlib ];
-  buildNativeInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig ];
 
   patches = [
     (fetchurl {
diff --git a/pkgs/applications/editors/ed/default.nix b/pkgs/applications/editors/ed/default.nix
index 01b4ff547e8a..eb364ec730ee 100644
--- a/pkgs/applications/editors/ed/default.nix
+++ b/pkgs/applications/editors/ed/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv }:
 
 stdenv.mkDerivation rec {
-  name = "ed-1.5";
+  name = "ed-1.7";
 
   src = fetchurl {
     url = "mirror://gnu/ed/${name}.tar.gz";
-    sha256 = "18gvhyhwpabmgv4lh21lg8vl3z7acdyhh2mr2kj9g75wksj39pcp";
+    sha256 = "0c908wb5pm48rjrrfbm5dhrqzys8f1dbvi90dn0vgwjzk80l2hl9";
   };
 
   /* FIXME: Tests currently fail on Darwin:
diff --git a/pkgs/applications/editors/emacs-22/builder.sh b/pkgs/applications/editors/emacs-22/builder.sh
deleted file mode 100644
index 7a82f6552efc..000000000000
--- a/pkgs/applications/editors/emacs-22/builder.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-source $stdenv/setup
-
-preConfigure() {
-    libc=$(cat ${NIX_GCC}/nix-support/orig-libc)
-    echo "libc: $libc"
-
-    case "${system}" in
-	x86_64-*)	glibclibdir=lib64 ;;
-	*)		glibclibdir=lib ;;
-    esac
-
-    for i in src/s/*.h src/m/*.h; do
-        substituteInPlace $i \
-            --replace /usr/${glibclibdir}/crt1.o $libc/${glibclibdir}/crt1.o \
-            --replace /usr/${glibclibdir}/crti.o $libc/${glibclibdir}/crti.o \
-            --replace /usr/${glibclibdir}/crtn.o $libc/${glibclibdir}/crtn.o \
-            --replace /usr/lib/crt1.o $libc/${glibclibdir}/crt1.o \
-            --replace /usr/lib/crti.o $libc/${glibclibdir}/crti.o \
-            --replace /usr/lib/crtn.o $libc/${glibclibdir}/crtn.o
-    done
-
-    for i in Makefile.in ./src/Makefile.in ./lib-src/Makefile.in ./leim/Makefile.in; do
-        substituteInPlace $i --replace /bin/pwd pwd
-    done
-}
-
-genericBuild
diff --git a/pkgs/applications/editors/emacs-22/default.nix b/pkgs/applications/editors/emacs-22/default.nix
deleted file mode 100644
index 4a8369170adf..000000000000
--- a/pkgs/applications/editors/emacs-22/default.nix
+++ /dev/null
@@ -1,58 +0,0 @@
-{ xawSupport ? true
-, xpmSupport ? true
-, xaw3dSupport ? false
-, gtkGUI ? false
-, stdenv, fetchurl, x11, libXaw ? null, libXpm ? null, Xaw3d ? null
-, pkgconfig ? null, gtk ? null
-, ncurses
-}:
-
-assert xawSupport && !xaw3dSupport -> libXaw != null;
-assert xawSupport && xaw3dSupport -> Xaw3d != null;
-assert xpmSupport -> libXpm != null;
-assert gtkGUI -> pkgconfig != null && gtk != null;
-
-stdenv.mkDerivation rec {
-  name = "emacs-22.3";
-
-  builder = ./builder.sh;
-
-  src = fetchurl {
-    url = "mirror://gnu/emacs/${name}.tar.gz";
-    sha256 = "05hd89bchcpwzcx5la0alcp0wb7xywvnf98dxrshrqlfvccvgnbv";
-  };
-
-  buildInputs = [ncurses x11]
-    ++ stdenv.lib.optional xawSupport (if xaw3dSupport then Xaw3d else libXaw)
-    ++ stdenv.lib.optional xpmSupport libXpm
-    ++ stdenv.lib.optionals gtkGUI [pkgconfig gtk];
-
-  configureFlags =
-    stdenv.lib.optional gtkGUI "--with-x-toolkit=gtk";
-
-  postInstall = ''
-    cat >$out/share/emacs/site-lisp/site-start.el <<EOF
-;; nixos specific load-path
-(when (getenv "NIX_PROFILES") (setq load-path
-                      (append (reverse (mapcar (lambda (x) (concat x "/share/emacs/site-lisp/"))
-                                               (split-string (getenv "NIX_PROFILES"))))
-                       load-path)))
-EOF
-  '';
-
-  meta = {
-    description = "GNU Emacs, *the* text editor";
-
-    longDescription = ''
-      GNU Emacs is an extensible, customizable text editor—and more.
-      At its core is an interpreter for Emacs Lisp, a dialect of the
-      Lisp programming language with extensions to support text
-      editing.
-    '';
-
-    homepage = http://www.gnu.org/software/emacs/;
-    license = "GPLv3+";
-
-    platforms = stdenv.lib.platforms.all;
-  };
-}
diff --git a/pkgs/applications/editors/emacs-modes/org/default.nix b/pkgs/applications/editors/emacs-modes/org/default.nix
index d3829bc9d115..e045b83a74de 100644
--- a/pkgs/applications/editors/emacs-modes/org/default.nix
+++ b/pkgs/applications/editors/emacs-modes/org/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ emacs ];
-  buildNativeInputs = [ texinfo texLive ];
+  nativeBuildInputs = [ texinfo texLive ];
 
   configurePhase =
     '' sed -i mk/default.mk \
diff --git a/pkgs/applications/editors/kdevelop/default.nix b/pkgs/applications/editors/kdevelop/default.nix
index 249ede5ebd0e..14f9c1eb0d49 100644
--- a/pkgs/applications/editors/kdevelop/default.nix
+++ b/pkgs/applications/editors/kdevelop/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ kdevplatform kdebase_workspace okteta ];
 
-  buildNativeInputs = [ cmake pkgconfig automoc4 shared_mime_info gettext perl ];
+  nativeBuildInputs = [ cmake pkgconfig automoc4 shared_mime_info gettext perl ];
 
   patches =
     [ ( fetchurl {
diff --git a/pkgs/applications/editors/kile/default.nix b/pkgs/applications/editors/kile/default.nix
index a24c6b18d8c8..6b14b40a2c9f 100644
--- a/pkgs/applications/editors/kile/default.nix
+++ b/pkgs/applications/editors/kile/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "0nx5fmjrxrndnzvknxnybd8qh15jzfxzbny2rljq3amjw02y9lc2";
   };
 
-  buildNativeInputs = [ cmake gettext ];
+  nativeBuildInputs = [ cmake gettext ];
   buildInputs = [ kdelibs ];
 
   # for KDE 4.7 the nl translations fail since kile-2.1.2
diff --git a/pkgs/applications/editors/vim/configurable.nix b/pkgs/applications/editors/vim/configurable.nix
index 9e6b700f9efa..9d07121f4cb4 100644
--- a/pkgs/applications/editors/vim/configurable.nix
+++ b/pkgs/applications/editors/vim/configurable.nix
@@ -13,7 +13,7 @@ composableDerivation {} {
 
     configureFlags = ["--enable-gui=auto" "--with-features=${args.features}"];
 
-    buildNativeInputs = [ncurses pkgconfig]
+    nativeBuildInputs = [ncurses pkgconfig]
       ++ [ gtk libX11 libXext libSM libXpm libXt libXaw libXau libXmu glib 
            libICE ];
 
@@ -27,11 +27,11 @@ composableDerivation {} {
       // edf { name = "xsmp"; } #Disable XSMP session management
       // edf { name = "xsmp_interact"; } #Disable XSMP interaction
       // edf { name = "mzscheme"; } #Include MzScheme interpreter.
-      // edf { name = "perl"; feat = "perlinterp"; enable = { buildNativeInputs = [perl]; };} #Include Perl interpreter.
-      // edf { name = "python"; feat = "pythoninterp"; enable = { buildNativeInputs = [python]; }; } #Include Python interpreter.
-      // edf { name = "tcl"; enable = { buildNativeInputs = [tcl]; }; } #Include Tcl interpreter.
-      // edf { name = "ruby"; feat = "rubyinterp"; enable = { buildNativeInputs = [ruby]; };} #Include Ruby interpreter.
-      // edf { name = "lua" ; feat = "luainterp"; enable = { buildNativeInputs = [lua]; configureFlags = ["--with-lua-prefix=${args.lua}"];};}
+      // edf { name = "perl"; feat = "perlinterp"; enable = { nativeBuildInputs = [perl]; };} #Include Perl interpreter.
+      // edf { name = "python"; feat = "pythoninterp"; enable = { nativeBuildInputs = [python]; }; } #Include Python interpreter.
+      // edf { name = "tcl"; enable = { nativeBuildInputs = [tcl]; }; } #Include Tcl interpreter.
+      // edf { name = "ruby"; feat = "rubyinterp"; enable = { nativeBuildInputs = [ruby]; };} #Include Ruby interpreter.
+      // edf { name = "lua" ; feat = "luainterp"; enable = { nativeBuildInputs = [lua]; configureFlags = ["--with-lua-prefix=${args.lua}"];};}
       // edf { name = "cscope"; } #Include cscope interface.
       // edf { name = "workshop"; } #Include Sun Visual Workshop support.
       // edf { name = "netbeans"; } #Disable NetBeans integration support.
@@ -42,7 +42,7 @@ composableDerivation {} {
       // edf { name = "fontset"; } #Include X fontset output support.
       // edf { name = "acl"; } #Don't check for ACL support.
       // edf { name = "gpm"; } #Don't use gpm (Linux mouse daemon).
-      // edf { name = "nls"; enable = {buildNativeInputs = [gettext];}; } #Don't support NLS (gettext()).
+      // edf { name = "nls"; enable = {nativeBuildInputs = [gettext];}; } #Don't support NLS (gettext()).
       ;
 
   cfg = {
@@ -70,11 +70,11 @@ composableDerivation {} {
 
   postInstall = "
     rpath=`patchelf --print-rpath \$out/bin/vim`;
-    for i in $\buildNativeInputs; do
+    for i in \$nativeBuildInputs; do
       echo adding \$i/lib
       rpath=\$rpath:\$i/lib
     done
-    echo \$buildNativeInputs
+    echo \$nativeBuildInputs
     echo \$rpath
     patchelf --set-rpath \$rpath \$out/bin/{vim,gvim}
   ";
diff --git a/pkgs/applications/editors/vim/default.nix b/pkgs/applications/editors/vim/default.nix
index dec933271678..ff8da0e09473 100644
--- a/pkgs/applications/editors/vim/default.nix
+++ b/pkgs/applications/editors/vim/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
  
   buildInputs = [ ncurses pkgconfig ];
-  buildNativeInputs = [ gettext ];
+  nativeBuildInputs = [ gettext ];
 
   configureFlags = [
     "--enable-multibyte"
diff --git a/pkgs/applications/editors/zile/default.nix b/pkgs/applications/editors/zile/default.nix
index 13a36e258fde..5929f4c76c89 100644
--- a/pkgs/applications/editors/zile/default.nix
+++ b/pkgs/applications/editors/zile/default.nix
@@ -9,10 +9,10 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ ncurses boehmgc ];
-  buildNativeInputs = [ help2man perl ];
+  nativeBuildInputs = [ help2man perl ];
 
   # `help2man' wants to run Zile, which fails when cross-compiling.
-  crossAttrs.buildNativeInputs = [];
+  crossAttrs.nativeBuildInputs = [];
 
   # Tests can't be run because most of them rely on the ability to
   # fiddle with the terminal.
diff --git a/pkgs/applications/graphics/cinepaint/default.nix b/pkgs/applications/graphics/cinepaint/default.nix
index bea04f6dc2c3..7b1a7f26239f 100644
--- a/pkgs/applications/graphics/cinepaint/default.nix
+++ b/pkgs/applications/graphics/cinepaint/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   patches = [ ./install.patch ];
 
-  buildNativeInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig ];
 
   NIX_LDFLAGS = "-llcms -ljpeg";
 
diff --git a/pkgs/applications/graphics/dia/default.nix b/pkgs/applications/graphics/dia/default.nix
index 769acd2a3b6f..ab421cee158a 100644
--- a/pkgs/applications/graphics/dia/default.nix
+++ b/pkgs/applications/graphics/dia/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
       libxslt docbook_xsl libart_lgpl
     ] ++ stdenv.lib.optional withGNOME libgnomeui;
 
-  buildNativeInputs = [ pkgconfig intltool perl ];
+  nativeBuildInputs = [ pkgconfig intltool perl ];
 
   configureFlags = stdenv.lib.optionalString withGNOME "--enable-gnome";
 
diff --git a/pkgs/applications/graphics/digikam/default.nix b/pkgs/applications/graphics/digikam/default.nix
index a293311e2a43..e64889ff52f0 100644
--- a/pkgs/applications/graphics/digikam/default.nix
+++ b/pkgs/applications/graphics/digikam/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "1prnaywnbv0xpw6knqagzc4gn1vsj9kw2hvdasjwknc9ljiyl721";
   };
 
-  buildNativeInputs = [ cmake automoc4 pkgconfig ];
+  nativeBuildInputs = [ cmake automoc4 pkgconfig ];
 
   buildInputs = [ qt4 kdelibs phonon qimageblitz qca2 eigen lcms libjpeg libtiff
     jasper libgphoto2 kdepimlibs gettext soprano liblqr1 lensfun qjson libkdcraw
diff --git a/pkgs/applications/graphics/djview/default.nix b/pkgs/applications/graphics/djview/default.nix
index 0ac499f2681a..f832513a8241 100644
--- a/pkgs/applications/graphics/djview/default.nix
+++ b/pkgs/applications/graphics/djview/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
 
 	buildInputs = [djvulibre qt4];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   patches = [ ./djview4-qt-4.8.patch ];
 
diff --git a/pkgs/applications/graphics/fbida/default.nix b/pkgs/applications/graphics/fbida/default.nix
index 2685aad8cf75..927ca2ab6797 100644
--- a/pkgs/applications/graphics/fbida/default.nix
+++ b/pkgs/applications/graphics/fbida/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "1riia87v5nsx858xnlvc7sspr1p36adjqrdch1255ikr5xbv6h6x";
   };
 
-  buildNativeInputs = [ pkgconfig which ];
+  nativeBuildInputs = [ pkgconfig which ];
   buildInputs =
     [ libexif libjpeg libpng libungif freetype fontconfig libtiff libwebp
       imagemagick curl saneBackends
diff --git a/pkgs/applications/graphics/gimp/plugins/default.nix b/pkgs/applications/graphics/gimp/plugins/default.nix
index 70a27030969b..962cb387c736 100644
--- a/pkgs/applications/graphics/gimp/plugins/default.nix
+++ b/pkgs/applications/graphics/gimp/plugins/default.nix
@@ -36,7 +36,7 @@ let
  libLQR = pluginDerivation {
     name = "liblqr-1-0.4.1";
     # required by lqrPlugin, you don't havet to install this lib explicitely
-    buildInputs = [ gimp ] ++ gimp.buildNativeInputs;
+    buildInputs = [ gimp ] ++ gimp.nativeBuildInputs;
     src = fetchurl {
       url = http://registry.gimp.org/files/liblqr-1-0.4.1.tar.bz2;
       sha256 = "02g90wag7xi5rjlmwq8h0qs666b1i2sa90s4303hmym40il33nlz";
@@ -50,7 +50,7 @@ rec {
        Video
     */
     name = "gap-2.6.0";
-    buildInputs = [ gimp pkgconfig glib pkgs.intltool gimp.gtk ] ++ gimp.buildNativeInputs;
+    buildInputs = [ gimp pkgconfig glib pkgs.intltool gimp.gtk ] ++ gimp.nativeBuildInputs;
     src = fetchurl {
       url = ftp://ftp.gimp.org/pub/gimp/plug-ins/v2.6/gap/gimp-gap-2.6.0.tar.bz2;
       sha256 = "1jic7ixcmsn4kx2cn32nc5087rk6g8xsrz022xy11yfmgvhzb0ql";
@@ -74,7 +74,7 @@ rec {
        Filters/Generic/FFT Inverse
     */
     name = "fourier-0.3.3";
-    buildInputs = [ gimp pkgs.fftwSinglePrec  pkgconfig glib] ++ gimp.buildNativeInputs;
+    buildInputs = [ gimp pkgs.fftwSinglePrec  pkgconfig glib] ++ gimp.nativeBuildInputs;
     postInstall = "fail";
     installPhase = "installPlugins fourier";
     src = fetchurl {
@@ -91,7 +91,7 @@ rec {
       Filters/Enhance/Smart remove selection
     */
     name = "resynthesizer-0.16";
-    buildInputs = [ gimp pkgs.fftw ] ++ gimp.buildNativeInputs;
+    buildInputs = [ gimp pkgs.fftw ] ++ gimp.nativeBuildInputs;
     src = fetchurl {
       url = http://www.logarithmic.net/pfh-files/resynthesizer/resynthesizer-0.16.tar.gz;
       sha256 = "1k90a1jzswxmajn56rdxa4r60v9v34fmqsiwfdxqcvx3yf4yq96x";
@@ -105,7 +105,7 @@ rec {
 
   texturize = pluginDerivation {
     name = "texturize-2.1";
-    buildInputs = [ gimp ] ++ gimp.buildNativeInputs;
+    buildInputs = [ gimp ] ++ gimp.nativeBuildInputs;
     src = fetchurl {
       url = http://prdownloads.sourceforge.net/gimp-texturize/texturize-2.1_src.tgz;
       sha256 = "0cdjq25g3yfxx6bzx6nid21kq659s1vl9id4wxyjs2dhcv229cg3";
@@ -118,7 +118,7 @@ rec {
       Filters/Enhance/Wavelet sharpen
     */
     name = "wavelet-sharpen-0.1.2";
-    buildInputs = [ gimp ] ++ gimp.buildNativeInputs;
+    buildInputs = [ gimp ] ++ gimp.nativeBuildInputs;
     src = fetchurl {
       url = http://registry.gimp.org/files/wavelet-sharpen-0.1.2.tar.gz;
       sha256 = "0vql1k67i21g5ivaa1jh56rg427m0icrkpryrhg75nscpirfxxqw";
@@ -131,7 +131,7 @@ rec {
        Layer/Liquid Rescale
     */
     name = "lqr-plugin-0.6.1";
-    buildInputs = [ pkgconfig libLQR gimp ] ++ gimp.buildNativeInputs;
+    buildInputs = [ pkgconfig libLQR gimp ] ++ gimp.nativeBuildInputs;
     src = fetchurl {
       url = http://registry.gimp.org/files/gimp-lqr-plugin-0.6.1.tar.bz2;
       sha256 = "00hklkpcimcbpjly4rjhfipaw096cpy768g9wixglwrsyqhil7l9";
@@ -146,7 +146,7 @@ rec {
   let imagemagick = pkgs.imagemagickBig; # maybe the non big version is enough?
   in pluginDerivation {
       name = "gmic-1.3.2.0";
-      buildInputs = [ imagemagick pkgconfig gimp pkgs.fftwSinglePrec ] ++ gimp.buildNativeInputs;
+      buildInputs = [ imagemagick pkgconfig gimp pkgs.fftwSinglePrec ] ++ gimp.nativeBuildInputs;
       src = fetchurl {
         url = http://dfn.dl.sourceforge.net/sourceforge/gmic/gmic_1.3.2.0.tar.gz;
         sha256 = "0mxq664vzzc2l6k6sqm9syp34mihhi262i6fixk1g12lmc28797h";
@@ -172,7 +172,7 @@ rec {
   # or use the binary
   ufraw = pluginDerivation {
     name = "ufraw-0.15";
-    buildInputs = [pkgs.lcms gimp] ++ gimp.buildNativeInputs;
+    buildInputs = [pkgs.lcms gimp] ++ gimp.nativeBuildInputs;
       # --enable-mime - install mime files, see README for more information
       # --enable-extras - build extra (dcraw, nikon-curve) executables
       # --enable-dst-correction - enable DST correction for file timestamps.
diff --git a/pkgs/applications/graphics/graphicsmagick/default.nix b/pkgs/applications/graphics/graphicsmagick/default.nix
index 6caf0f05c510..c02bc6024df1 100644
--- a/pkgs/applications/graphics/graphicsmagick/default.nix
+++ b/pkgs/applications/graphics/graphicsmagick/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
       zlib libtool
     ];
 
-  buildNativeInputs = [ xz ];
+  nativeBuildInputs = [ xz ];
 
   postInstall = ''
     sed -i 's/-ltiff.*'\'/\'/ $out/bin/*
diff --git a/pkgs/applications/graphics/hugin/default.nix b/pkgs/applications/graphics/hugin/default.nix
index 27b3c0c9b032..a9ff7ef25c32 100644
--- a/pkgs/applications/graphics/hugin/default.nix
+++ b/pkgs/applications/graphics/hugin/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ panotools wxGTK libtiff libpng openexr boost tclap
     exiv2 gettext ilmbase mesa freeglut glew libXmu libXi ];
 
-  buildNativeInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig ];
 
   propagatedUserEnvPackages = [ enblendenfuse autopanosiftc ];
 
diff --git a/pkgs/applications/graphics/kipi-plugins/default.nix b/pkgs/applications/graphics/kipi-plugins/default.nix
index e551b1523904..61a8380b1c58 100644
--- a/pkgs/applications/graphics/kipi-plugins/default.nix
+++ b/pkgs/applications/graphics/kipi-plugins/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
       libksane libxslt gettext opencv libgpod gdk_pixbuf qjson
     ];
 
-  buildNativeInputs = [ pkgconfig cmake automoc4 ];
+  nativeBuildInputs = [ pkgconfig cmake automoc4 ];
 
   meta = {
     description = "Photo Management Program";
diff --git a/pkgs/applications/graphics/kuickshow/default.nix b/pkgs/applications/graphics/kuickshow/default.nix
index b26ac12300b0..7a4106429585 100644
--- a/pkgs/applications/graphics/kuickshow/default.nix
+++ b/pkgs/applications/graphics/kuickshow/default.nix
@@ -10,5 +10,5 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ kdelibs imlib ];
 
-  buildNativeInputs = [ cmake gettext pkgconfig ];
+  nativeBuildInputs = [ cmake gettext pkgconfig ];
 }
diff --git a/pkgs/applications/graphics/sane/frontends.nix b/pkgs/applications/graphics/sane/frontends.nix
index 1c768e29873e..9e73a08e0967 100644
--- a/pkgs/applications/graphics/sane/frontends.nix
+++ b/pkgs/applications/graphics/sane/frontends.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs = [saneBackends libX11 gtk pkgconfig] ++
-	(if (libusb != null) then [libusb] else []);
+	(if libusb != null then [libusb] else []);
 
   meta = {
     homepage = "http://www.sane-project.org/";
diff --git a/pkgs/applications/graphics/sane/xsane.nix b/pkgs/applications/graphics/sane/xsane.nix
index c4fdf3a00440..de8d4c336521 100644
--- a/pkgs/applications/graphics/sane/xsane.nix
+++ b/pkgs/applications/graphics/sane/xsane.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs = [libpng saneBackends saneFrontends libX11 gtk pkgconfig ] ++
-	(if (libusb != null) then [libusb] else []);
+	(if libusb != null then [libusb] else []);
 
   meta = {
     homepage = http://www.sane-project.org/;
diff --git a/pkgs/applications/graphics/xara/default.nix b/pkgs/applications/graphics/xara/default.nix
index 8a6bac4db2b9..cd3a09887d0f 100644
--- a/pkgs/applications/graphics/xara/default.nix
+++ b/pkgs/applications/graphics/xara/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
     sha256 = "05xbzq1i1vw2mdsv7zjqfpxfv3g1j0g5kks0gq6sh373xd6y8lyh";
   };
     
-  buildNativeInputs = [ automake pkgconfig gettext perl zip ];
+  nativeBuildInputs = [ automake pkgconfig gettext perl zip ];
   buildInputs = [ wxGTK gtk libxml2 freetype pango ];
 
   configureFlags = "--disable-svnversion";
diff --git a/pkgs/applications/graphics/xfig/default.nix b/pkgs/applications/graphics/xfig/default.nix
index c5f147ed032f..88183c5e5a3b 100644
--- a/pkgs/applications/graphics/xfig/default.nix
+++ b/pkgs/applications/graphics/xfig/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
 
   buildInputs = [x11 libXpm libXmu libXi libXp Xaw3d libpng libjpeg];
 
-  buildNativeInputs = [ imake makeWrapper ];
+  nativeBuildInputs = [ imake makeWrapper ];
 
   NIX_CFLAGS_COMPILE = "-I${libXpm}/include/X11";
 
diff --git a/pkgs/applications/graphics/xournal/default.nix b/pkgs/applications/graphics/xournal/default.nix
index 990709c03e50..1f1c26c11520 100644
--- a/pkgs/applications/graphics/xournal/default.nix
+++ b/pkgs/applications/graphics/xournal/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     pango libX11 xproto zlib poppler poppler_data
   ];
 
-  buildNativeInputs = [ autoconf automake libtool pkgconfig ];
+  nativeBuildInputs = [ autoconf automake libtool pkgconfig ];
 
   # Build with poppler-0.18.x
   patchFlags = "-p0";
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index b9b148483702..562a9dd52ad4 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   inherit python;
 
-  buildNativeInputs = [ makeWrapper pkgconfig ];
+  nativeBuildInputs = [ makeWrapper pkgconfig ];
 
   buildInputs =
     [ python pyqt4 sip popplerQt4 libpng imagemagick libjpeg
diff --git a/pkgs/applications/misc/googleearth/default.nix b/pkgs/applications/misc/googleearth/default.nix
index 8da4e9de8fd6..08b868bca926 100644
--- a/pkgs/applications/misc/googleearth/default.nix
+++ b/pkgs/applications/misc/googleearth/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
     sha256 = "0bcpmnlk03382x577qbnbw3i6y08hr3qmg85pqj35scnl6van74c";
   };
 
-  buildNativeInputs = [
+  nativeBuildInputs = [
     glibc
     glib
     stdenv.gcc.gcc
@@ -55,7 +55,7 @@ stdenv.mkDerivation {
     chmod +x $out/bin/googleearth
 
     fullPath=
-    for i in $buildNativeInputs; do
+    for i in $nativeBuildInputs; do
       fullPath=$fullPath:$i/lib
     done
           
diff --git a/pkgs/applications/misc/gphoto2/default.nix b/pkgs/applications/misc/gphoto2/default.nix
index 022cb437c698..7c732ab677ae 100644
--- a/pkgs/applications/misc/gphoto2/default.nix
+++ b/pkgs/applications/misc/gphoto2/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "08x1p8xhl65r79a6gn1fi63z1lspd5j55l05diiyzcwfxvqwsm47";
   };
   
-  buildNativeInputs = [ pkgconfig gettext ];
+  nativeBuildInputs = [ pkgconfig gettext ];
   buildInputs = [ libgphoto2 libexif popt libjpeg readline libtool ];
   
   meta = {
diff --git a/pkgs/applications/misc/kde-wacomtablet/default.nix b/pkgs/applications/misc/kde-wacomtablet/default.nix
index 467308480243..22587a1bae04 100644
--- a/pkgs/applications/misc/kde-wacomtablet/default.nix
+++ b/pkgs/applications/misc/kde-wacomtablet/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ kdelibs ];
 
-  buildNativeInputs = [ gettext ];
+  nativeBuildInputs = [ gettext ];
 
   meta = with stdenv.lib; {
     description = "KDE Wacom graphic tablet configuration tool";
diff --git a/pkgs/applications/misc/nut/default.nix b/pkgs/applications/misc/nut/default.nix
index b89a35d2f814..157ecc0ffd8a 100644
--- a/pkgs/applications/misc/nut/default.nix
+++ b/pkgs/applications/misc/nut/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ neon libusb openssl udev avahi freeipmi ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   configureFlags =
     [ "--with-all"
diff --git a/pkgs/applications/misc/qgis/default.nix b/pkgs/applications/misc/qgis/default.nix
index 7e27736ee7e4..834b3f0cfbe3 100644
--- a/pkgs/applications/misc/qgis/default.nix
+++ b/pkgs/applications/misc/qgis/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ gdal qt4 flex bison proj geos x11 sqlite gsl pyqt4 qwt
     fcgi ];
 
-  buildNativeInputs = [ cmake python];
+  nativeBuildInputs = [ cmake python];
 
   patches = [ ./r14988.diff ];
 
diff --git a/pkgs/applications/misc/rsibreak/default.nix b/pkgs/applications/misc/rsibreak/default.nix
index 8aab11beec3c..fe8118b19763 100644
--- a/pkgs/applications/misc/rsibreak/default.nix
+++ b/pkgs/applications/misc/rsibreak/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "1yrf73r8mixskh8b531wb8dfs9z7rrw010xsrflhjhjmqh94h8mw";
   };
 
-  buildNativeInputs = [ gettext ];
+  nativeBuildInputs = [ gettext ];
 
   buildInputs = [ kdelibs kdebase_workspace ];
 
diff --git a/pkgs/applications/misc/tangogps/default.nix b/pkgs/applications/misc/tangogps/default.nix
index 854ebb1a4383..609849166d16 100644
--- a/pkgs/applications/misc/tangogps/default.nix
+++ b/pkgs/applications/misc/tangogps/default.nix
@@ -11,6 +11,12 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ pkgconfig gettext gtk gconf curl libexif sqlite libxml2 ];
 
+  # bogus includes fail with newer library version
+  postPatch = ''
+    sed -i -e 's,#include <glib/.*>,#include <glib.h>,g' src/*.c
+    sed -i -e 's,#include <curl/.*>,#include <curl/curl.h>,g' src/*.c src/*.h
+  '';
+
   meta = {
     description = "tangoGPS, a user friendly map and GPS user interface";
 
@@ -30,7 +36,7 @@ stdenv.mkDerivation rec {
       conveniently pre-cache areas with tangoGPS.
     '';
 
-    homepage = http://www.tangogps.org/;
+    #homepage = http://www.tangogps.org/; # no longer valid, I couldn't find any other
 
     license = "GPLv2+";
   };
diff --git a/pkgs/applications/misc/taskwarrior/default.nix b/pkgs/applications/misc/taskwarrior/default.nix
index cab0c2b07de1..dae574804b4d 100644
--- a/pkgs/applications/misc/taskwarrior/default.nix
+++ b/pkgs/applications/misc/taskwarrior/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
     sha256 = "0diy72sgiyvfl6bdy7k3qwv3ijx2z1y477smkk6jsbbd9fsp2lfg";
   };
 
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   meta = {
     description = "GTD (getting things done) implementation";
diff --git a/pkgs/applications/misc/truecrypt/default.nix b/pkgs/applications/misc/truecrypt/default.nix
index 40a4f8412667..19fa85b279c6 100644
--- a/pkgs/applications/misc/truecrypt/default.nix
+++ b/pkgs/applications/misc/truecrypt/default.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [ pkgconfig fuse devicemapper wxGTK nasm ]; 
-  makeFlags = if (wxGUI) then "" else "NOGUI=1";
+  makeFlags = if wxGUI then "" else "NOGUI=1";
 
   meta = {
     description = "Free Open-Source filesystem on-the-fly encryption";
diff --git a/pkgs/applications/misc/yakuake/default.nix b/pkgs/applications/misc/yakuake/default.nix
index e06f812a18a5..c781a5619ae4 100644
--- a/pkgs/applications/misc/yakuake/default.nix
+++ b/pkgs/applications/misc/yakuake/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
 
   buildInputs = [ kdelibs ];
 
-  buildNativeInputs = [ gettext ];
+  nativeBuildInputs = [ gettext ];
 
   meta = {
     homepage = http://yakuake.kde.org;
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index 5d191b2550d5..019ba1792f3b 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -127,8 +127,7 @@ in stdenv.mkDerivation rec {
   patches = optional cupsSupport ./cups_allow_deprecated.patch
          ++ optional pulseSupport ./pulseaudio_array_bounds.patch
          ++ optional post25 ./clone_detached.patch
-         # XXX: Remove after stdenv-updates merge!
-         ++ singleton "/dev/null";
+         ++ [ ./glibc-2.16-use-siginfo_t.patch ];
 
   postPatch = ''
     sed -i -r -e 's/-f(stack-protector)(-all)?/-fno-\1/' build/common.gypi
diff --git a/pkgs/applications/networking/browsers/chromium/glibc-2.16-use-siginfo_t.patch b/pkgs/applications/networking/browsers/chromium/glibc-2.16-use-siginfo_t.patch
new file mode 100644
index 000000000000..d06555dda54b
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/glibc-2.16-use-siginfo_t.patch
@@ -0,0 +1,27 @@
+--- a/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h.orig		2012-12-22 16:01:44.000000000 +0200
++++ b/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h		2012-12-23 21:53:26.746069153 +0200
+@@ -250,7 +250,7 @@
+ struct kernel_old_sigaction {
+   union {
+     void             (*sa_handler_)(int);
+-    void             (*sa_sigaction_)(int, struct siginfo *, void *);
++    void             (*sa_sigaction_)(int, siginfo_t *, void *);
+   };
+   unsigned long      sa_mask;
+   unsigned long      sa_flags;
+@@ -287,13 +287,13 @@
+   unsigned long      sa_flags;
+   union {
+     void             (*sa_handler_)(int);
+-    void             (*sa_sigaction_)(int, struct siginfo *, void *);
++    void             (*sa_sigaction_)(int, siginfo_t *, void *);
+   };
+   struct kernel_sigset_t sa_mask;
+ #else
+   union {
+     void             (*sa_handler_)(int);
+-    void             (*sa_sigaction_)(int, struct siginfo *, void *);
++    void             (*sa_sigaction_)(int, siginfo_t *, void *);
+   };
+   unsigned long      sa_flags;
+   void               (*sa_restorer)(void);
diff --git a/pkgs/applications/networking/browsers/elinks/default.nix b/pkgs/applications/networking/browsers/elinks/default.nix
index 1587a2e34953..9334ff4bd41b 100644
--- a/pkgs/applications/networking/browsers/elinks/default.nix
+++ b/pkgs/applications/networking/browsers/elinks/default.nix
@@ -21,12 +21,12 @@ stdenv.mkDerivation rec {
     '';
 
   crossAttrs = {
-    propagatedBuildInputs = [ ncurses.hostDrv zlib.hostDrv openssl.hostDrv ];
+    propagatedBuildInputs = [ ncurses.crossDrv zlib.crossDrv openssl.crossDrv ];
     configureFlags = ''
       --enable-finger --enable-html-highlight
       --enable-gopher --enable-cgi --enable-bittorrent --enable-nntp
-      --with-openssl=${openssl.hostDrv}
-      --with-bzip2=${bzip2.hostDrv}
+      --with-openssl=${openssl.crossDrv}
+      --with-bzip2=${bzip2.crossDrv}
     '';
   };
 
diff --git a/pkgs/applications/networking/browsers/links2/default.nix b/pkgs/applications/networking/browsers/links2/default.nix
index 49bc93b80d27..7efdf7ed015e 100644
--- a/pkgs/applications/networking/browsers/links2/default.nix
+++ b/pkgs/applications/networking/browsers/links2/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optionals enableX11 [ libX11 libXau libXt ]
     ++ stdenv.lib.optional enableDirectFB [ directfb ];
 
-  buildNativeInputs = [ pkgconfig bzip2 ];
+  nativeBuildInputs = [ pkgconfig bzip2 ];
 
   configureFlags = [ "--with-ssl" ]
     ++ stdenv.lib.optional (enableX11 || enableFB || enableDirectFB) "--enable-graphics"
diff --git a/pkgs/applications/networking/browsers/lynx/default.nix b/pkgs/applications/networking/browsers/lynx/default.nix
index c0175fc6a703..63760c94426d 100644
--- a/pkgs/applications/networking/browsers/lynx/default.nix
+++ b/pkgs/applications/networking/browsers/lynx/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
   configureFlags = if sslSupport then "--with-ssl" else "";
   
   buildInputs = [ ncurses gzip ] ++ stdenv.lib.optional sslSupport openssl;
-  buildNativeInputs = [ ncurses ];
+  nativeBuildInputs = [ ncurses ];
 
   crossAttrs = {
     configureFlags = "--enable-widec" +
diff --git a/pkgs/applications/networking/browsers/rekonq/default.nix b/pkgs/applications/networking/browsers/rekonq/default.nix
index 4a46de14f9bc..c8542ad7a527 100644
--- a/pkgs/applications/networking/browsers/rekonq/default.nix
+++ b/pkgs/applications/networking/browsers/rekonq/default.nix
@@ -1,16 +1,18 @@
-{ stdenv, fetchurl, kdelibs, gettext, pkgconfig, shared_desktop_ontologies, qca2, qoauth }:
+{ stdenv, fetchurl, kde4, gettext, pkgconfig, shared_desktop_ontologies, qca2, qoauth }:
+
+assert builtins.compareVersions "4.8.3" kde4.release != 1; # https://bugs.kde.org/show_bug.cgi?id=306077
 
 stdenv.mkDerivation rec {
-  name = "rekonq-1.1";
+  name = "rekonq-1.70"; # >=1.80 need kde >=4.9.0
 
   src = fetchurl {
     url = "mirror://sourceforge/rekonq/${name}.tar.bz2";
-    sha256 = "1bs733mwyfb7bxnial8n49b82ip04sark2mxwlq7ixxsbgq7972l";
+    sha256 = "05zqm329vajsn32l5b5nlbw92gl3irdcx8kifr4y921i9bkzigad";
   };
 
-  buildInputs = [ kdelibs qca2 qoauth ];
+  buildInputs = [ kde4.kdelibs qca2 qoauth ];
 
-  buildNativeInputs = [ gettext pkgconfig shared_desktop_ontologies ];
+  nativeBuildInputs = [ gettext pkgconfig shared_desktop_ontologies ];
 
   meta = with stdenv.lib; {
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/browsers/w3m/default.nix b/pkgs/applications/networking/browsers/w3m/default.nix
index 38ef20ec9694..5953111fad59 100644
--- a/pkgs/applications/networking/browsers/w3m/default.nix
+++ b/pkgs/applications/networking/browsers/w3m/default.nix
@@ -19,9 +19,10 @@ stdenv.mkDerivation rec {
     sha256 = "1qx9f0kprf92r1wxl3sacykla0g04qsi0idypzz24b7xy9ix5579";
   };
 
-  # Patch for the newer unstable boehm-gc 7.2alpha. Not all platforms use that
-  # alpha. At the time of writing this, boehm-gc-7.1 is the last stable.
-  patches = stdenv.lib.optional (boehmgc.name != "boehm-gc-7.1") [ ./newgc.patch ];
+  patches = [ ./glibc214.patch ]
+    # Patch for the newer unstable boehm-gc 7.2alpha. Not all platforms use that
+    # alpha. At the time of writing this, boehm-gc-7.1 is the last stable.
+    ++ stdenv.lib.optional (boehmgc.name != "boehm-gc-7.1") [ ./newgc.patch ];
 
   buildInputs = [ncurses boehmgc gettext zlib]
     ++ stdenv.lib.optional sslSupport openssl
@@ -36,6 +37,8 @@ stdenv.mkDerivation rec {
     substituteInPlace ./configure --replace /usr /no-such-path
   '';
 
+  enableParallelBuilding = false;
+
   meta = {
     homepage = http://w3m.sourceforge.net/;
     description = "A text-mode web browser";
diff --git a/pkgs/applications/networking/browsers/w3m/glibc214.patch b/pkgs/applications/networking/browsers/w3m/glibc214.patch
new file mode 100644
index 000000000000..37e466e21067
--- /dev/null
+++ b/pkgs/applications/networking/browsers/w3m/glibc214.patch
@@ -0,0 +1,60 @@
+http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/www-client/w3m/files/w3m-0.5.3-glibc214.patch?revision=1.1
+
+--- a/istream.c.~1.27.~	2011-01-04 18:22:22.000000000 +0900
++++ b/istream.c	2011-06-24 08:15:23.522990618 +0900
+@@ -22,8 +22,8 @@
+ static void basic_close(int *handle);
+ static int basic_read(int *handle, char *buf, int len);
+ 
+-static void file_close(struct file_handle *handle);
+-static int file_read(struct file_handle *handle, char *buf, int len);
++static void file_close(struct afile_handle *handle);
++static int file_read(struct afile_handle *handle, char *buf, int len);
+ 
+ static int str_read(Str handle, char *buf, int len);
+ 
+@@ -114,7 +114,7 @@
+     stream = New(union input_stream);
+     init_base_stream(&stream->base, STREAM_BUF_SIZE);
+     stream->file.type = IST_FILE;
+-    stream->file.handle = New(struct file_handle);
++    stream->file.handle = New(struct afile_handle);
+     stream->file.handle->f = f;
+     if (closep)
+ 	stream->file.handle->close = closep;
+@@ -658,13 +658,13 @@
+ }
+ 
+ static void
+-file_close(struct file_handle *handle)
++file_close(struct afile_handle *handle)
+ {
+     handle->close(handle->f);
+ }
+ 
+ static int
+-file_read(struct file_handle *handle, char *buf, int len)
++file_read(struct afile_handle *handle, char *buf, int len)
+ {
+     return fread(buf, 1, len, handle->f);
+ }
+--- a/istream.h.~1.12.~	2003-10-21 01:41:56.000000000 +0900
++++ b/istream.h	2011-06-24 08:15:54.392991144 +0900
+@@ -20,7 +20,7 @@
+ 
+ typedef struct stream_buffer *StreamBuffer;
+ 
+-struct file_handle {
++struct afile_handle {
+     FILE *f;
+     void (*close) ();
+ };
+@@ -53,7 +53,7 @@
+ 
+ struct file_stream {
+     struct stream_buffer stream;
+-    struct file_handle *handle;
++    struct afile_handle *handle;
+     char type;
+     char iseos;
+     int (*read) ();
diff --git a/pkgs/applications/networking/instant-messengers/baresip/default.nix b/pkgs/applications/networking/instant-messengers/baresip/default.nix
index ba530374c71f..61cd62fefd46 100644
--- a/pkgs/applications/networking/instant-messengers/baresip/default.nix
+++ b/pkgs/applications/networking/instant-messengers/baresip/default.nix
@@ -4,11 +4,11 @@
 , gsm, speex, portaudio, spandsp, libuuid
 }:
 stdenv.mkDerivation rec {
-  version = "0.4.2";
+  version = "0.4.3";
   name = "baresip-${version}";
   src=fetchurl {
     url = "http://www.creytiv.com/pub/baresip-${version}.tar.gz";
-    sha256 = "3ac15b3d3cf17b2417ba871e7eaaaf41ab10cb30b900adcee357d5e91ea033e7";
+    sha256 = "03vpzn0c3mybnwn84ha3yci780qsjm669dwja1srj0hbrq81rbil";
   };
   buildInputs = [zlib openssl libre librem pkgconfig
     cairo mpg123 gstreamer gst_ffmpeg gst_plugins_base gst_plugins_bad gst_plugins_good
diff --git a/pkgs/applications/networking/instant-messengers/centerim/default.nix b/pkgs/applications/networking/instant-messengers/centerim/default.nix
index 6a608e8d9502..d746d54974af 100644
--- a/pkgs/applications/networking/instant-messengers/centerim/default.nix
+++ b/pkgs/applications/networking/instant-messengers/centerim/default.nix
@@ -2,12 +2,18 @@
 , withGpg ? true, gpgme ? null}:
 
 stdenv.mkDerivation rec {
-  name = "centerim-4.22.10";
+  version = "4.22.10";
+  debPatch = "2";
+  name = "centerim-${version}";
 
   src = fetchurl {
     url = "http://centerim.org/download/releases/${name}.tar.gz";
     sha256 = "0viz86jflp684vfginhl6aaw4gh2qvalc25anlwljjl3kkmibklk";
   };
+  patches = fetchurl {
+    url = "mirror://debian/pool/main/c/centerim/centerim_${version}-${debPatch}.diff.gz";
+    sha256 = "18iz3hkvr31jsyznryvyldxm9ckyrpy9sczxikrnw2i2r1xyfj8m";
+  };
 
   buildInputs = [ openssl curl ncurses libjpeg ]
     ++ stdenv.lib.optional withGpg gpgme;
diff --git a/pkgs/applications/networking/instant-messengers/linphone/default.nix b/pkgs/applications/networking/instant-messengers/linphone/default.nix
index 6327cf1efaed..7bdb6cc1452d 100644
--- a/pkgs/applications/networking/instant-messengers/linphone/default.nix
+++ b/pkgs/applications/networking/instant-messengers/linphone/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ gtk libglade libosip libexosip readline mediastreamer speex libsoup ];
 
-  buildNativeInputs = [ intltool pkgconfig ];
+  nativeBuildInputs = [ intltool pkgconfig ];
 
   preConfigure = "rm -r mediastreamer2 oRTP";
 
diff --git a/pkgs/applications/networking/instant-messengers/psi/linux-headers.patch b/pkgs/applications/networking/instant-messengers/psi/linux-headers.patch
new file mode 100644
index 000000000000..a5386b3e111e
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/psi/linux-headers.patch
@@ -0,0 +1,86 @@
+http://pkgs.fedoraproject.org/gitweb/?p=psimedia.git;a=blob_plain;f=psimedia-remove-v4l.patch;hb=HEAD
+
+--- a/gstprovider/deviceenum/deviceenum_unix.cpp
++++ b/gstprovider/deviceenum/deviceenum_unix.cpp
+@@ -35,7 +35,7 @@
+ # include <sys/stat.h>
+ # include <dirent.h>
+ # include <sys/ioctl.h>
+-# include <linux/videodev.h>
++# include <linux/videodev2.h>
+ #endif
+ 
+ namespace DeviceEnum {
+@@ -478,72 +478,7 @@
+ // v4l detection scheme adapted from PWLib (used by Ekiga/Gnomemeeting)
+ static QList<Item> get_v4l_items()
+ {
+-#ifdef Q_OS_LINUX
+-	QList<Item> out;
+-
+-	QList<V4LName> list = get_v4l_names("/sys/class/video4linux", true);
+-	if(list.isEmpty())
+-		list = get_v4l_names("/proc/video/dev", false);
+-
+-	// if we can't find anything, then do a raw scan for possibilities
+-	if(list.isEmpty())
+-	{
+-		QStringList possible = scan_for_videodevs("/dev");
+-		foreach(QString str, possible)
+-		{
+-			V4LName v;
+-			v.dev = str;
+-			list += v;
+-		}
+-	}
+-
+-	for(int n = 0; n < list.count(); ++n)
+-	{
+-		V4LName &v = list[n];
+-
+-		// if we already have a friendly name then we'll skip the confirm
+-		//   in order to save resources.  the only real drawback here that
+-		//   I can think of is if the device isn't a capture type.  but
+-		//   what does it mean to have a V4L device that isn't capture??
+-		if(v.friendlyName.isEmpty())
+-		{
+-			int fd = open(QFile::encodeName(v.dev).data(), O_RDONLY | O_NONBLOCK);
+-			if(fd == -1)
+-				continue;
+-
+-			// get video capabilities and close
+-			struct video_capability caps;
+-			memset(&caps, 0, sizeof(caps));
+-			int ret = ioctl(fd, VIDIOCGCAP, &caps);
+-			close(fd);
+-			if(ret == -1)
+-				continue;
+-
+-			if(!(caps.type & VID_TYPE_CAPTURE))
+-				continue;
+-
+-			v.friendlyName = caps.name;
+-		}
+-
+-		Item i;
+-		i.type = Item::Video;
+-		i.dir = Item::Input;
+-		i.name = v.friendlyName;
+-		i.driver = "v4l";
+-		i.id = v.dev;
+-
+-		// HACK
+-		if(v.friendlyName == "Labtec Webcam Notebook")
+-			i.explicitCaptureSize = QSize(640, 480);
+-
+-		out += i;
+-	}
+-
+-	return out;
+-#else
+-	// return empty list if non-linux
+ 	return QList<Item>();
+-#endif
+ }
+ 
+ static QList<Item> get_v4l2_items()
diff --git a/pkgs/applications/networking/instant-messengers/psi/psimedia.nix b/pkgs/applications/networking/instant-messengers/psi/psimedia.nix
index 993a018625e8..aa54053c67f4 100644
--- a/pkgs/applications/networking/instant-messengers/psi/psimedia.nix
+++ b/pkgs/applications/networking/instant-messengers/psi/psimedia.nix
@@ -2,14 +2,14 @@
 , glib, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  name = "psimedia";
+  name = "psimedia-1.0.3";
 
   src = fetchurl {
-    url = "http://delta.affinix.com/download/psimedia/psimedia-1.0.3.tar.bz2";
+    url = "http://delta.affinix.com/download/psimedia/${name}.tar.bz2";
     sha256 = "0fxjdz8afh75gfx2msysb1gss6zx578l3224jvc9jhm99w1ii781";
   };
 
-  patches = [ ./glib-2.32.patch ];
+  patches = [ ./glib-2.32.patch ./linux-headers.patch ];
 
   buildInputs = [ qt4 gstreamer gst_plugins_base liboil speex which glib pkgconfig ];
 
diff --git a/pkgs/applications/networking/instant-messengers/skype/default.nix b/pkgs/applications/networking/instant-messengers/skype/default.nix
index 66a18dbdfe97..715f0e5c2deb 100644
--- a/pkgs/applications/networking/instant-messengers/skype/default.nix
+++ b/pkgs/applications/networking/instant-messengers/skype/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
     cp -r * $out/libexec/skype/
 
     fullPath=
-    for i in $buildNativeInputs; do
+    for i in $nativeBuildInputs; do
       fullPath=$fullPath''${fullPath:+:}$i/lib
     done
 
diff --git a/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix b/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix
index 25919875bd19..8863af259842 100644
--- a/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix
@@ -2,18 +2,18 @@
 , sqlite, libsoup, libnice, gnutls }:
 
 stdenv.mkDerivation rec {
-  name = "telepathy-gabble-0.16.0";
+  name = "telepathy-gabble-0.17.2";
 
   src = fetchurl {
     url = "${meta.homepage}/releases/telepathy-gabble/${name}.tar.gz";
-    sha256 = "0fk65f7q75z3wm5h4wad7g5sm2j6r8v2845b74ycl29br78ki2hf";
+    sha256 = "137sslbgh0326lmwihcr2ybljgq9mzsx5wnciilpx884si22wpk8";
   };
 
-  buildNativeInputs = [pkgconfig libxslt];
+  nativeBuildInputs = [pkgconfig libxslt];
   buildInputs = [ libxml2 dbus_glib sqlite libsoup libnice telepathy_glib gnutls ];
 
   configureFlags = "--with-ca-certificates=/etc/ca-bundle.crt";
-  
+
   meta = {
     homepage = http://telepathy.freedesktop.org;
   };
diff --git a/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix b/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix
index 1e2ded5292ab..b2fd13837d79 100644
--- a/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix
@@ -2,16 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "telepathy-haze";
-  name = "${pname}-0.6.0";
+  name = "${pname}-0.7.0";
 
   src = fetchurl {
     url = "http://telepathy.freedesktop.org/releases/${pname}/${name}.tar.gz";
-    sha256 = "1qrgmcr8ga6nvaz9hhn0mv0p7v799wsawrg3k5l791cgxx5carz2";
+    sha256 = "1gaj8518ilm3gnzqf3lmiqgnwkay8wfbsqngcz15whzji8sl608b";
   };
 
   buildInputs = [ glib telepathy_glib dbus_glib pidgin ];
 
-  buildNativeInputs = [ pkgconfig libxslt ];
+  nativeBuildInputs = [ pkgconfig libxslt ];
 
   meta = {
     description = "A Telepathy connection manager based on libpurple";
diff --git a/pkgs/applications/networking/instant-messengers/telepathy/kde/0.4.0.nix b/pkgs/applications/networking/instant-messengers/telepathy/kde/0.4.0.nix
deleted file mode 100644
index aadeb3e2a675..000000000000
--- a/pkgs/applications/networking/instant-messengers/telepathy/kde/0.4.0.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-[
-{name="ktp-accounts-kcm";key="accounts_kcm";sha256="1a312cfm1i8ipqp0r09zfhlk7vacp006pbhwwvyf0sgracizr0cp";}
-{name="ktp-approver";key="approver";sha256="0wfpwlk5f3n37xl619jzjxmgrq81qnr9kg9m955zbcad2jsx3z35";}
-{name="ktp-auth-handler";key="auth_handler";sha256="1q5jjj3np3kg7py28jb74q8lpi6camw7907950igpnwzbzmacxwa";}
-{name="ktp-call-ui";key="call_ui";sha256="08k59q0gf6fq0mmz72akiqkldqy6grw1gs7jz44gzmr82jvaqjb3";}
-{name="ktp-common-internals";key="common_internals";sha256="1cmil7wp6rgqzl0bciphqmvdzipm856c45kx2mzrk6n1vnl9l500";}
-{name="ktp-contact-applet";key="contact_applet";sha256="1j42yqq06bkpfb4jgm88qqbwnz9538ys5aghyfg147jr50h9pk8k";}
-{name="ktp-contact-list";key="contact_list";sha256="1ndpr2z99clmy8f7l8l6ws7bljmmqvfrb5f0nrym91lyvcdz7sb2";}
-{name="ktp-contact-runner";key="contact_runner";sha256="1v8mcp8q1cfmxdg65qqh159q9pynz3pc3y0ycr6hn1nrgxncs48k";}
-{name="ktp-filetransfer-handler";key="filetransfer_handler";sha256="0dj2if34wxajwylgfxwd5chvxk63lxmsq52sc039dsj9p174cp3y";}
-{name="ktp-kded-integration-module";key="kded_integration_module";sha256="0p873h6cjdinfinfz1cggyw611v2gllmkvzczszxnl8q2hcprx96";}
-{name="ktp-presence-applet";key="presence_applet";sha256="1y8yhbbjp9qgycn93lqd6ss7jln1hpxa0dnqgirijfjn15c20nfl";}
-{name="ktp-send-file";key="send_file";sha256="0sacvda2xs5g7w2xca9p6z61f2w69sgw0g3sj2fazrsm0x7a0z0d";}
-{name="ktp-text-ui";key="text_ui";sha256="1xsslwaisk90wa45rgps3500wl1fbxq4qp6njljf4qbysyw4wfdb";}
-{name="telepathy-logger-qt";key="telepathy_logger_qt";sha256="1398iyb72grhwwi0idxdwj1qdi2s02cp2wvjv72wvv3vyfwb51kn";}
-]
diff --git a/pkgs/applications/networking/instant-messengers/telepathy/kde/0.5.3.nix b/pkgs/applications/networking/instant-messengers/telepathy/kde/0.5.3.nix
new file mode 100644
index 000000000000..eb0543aa5b0f
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/telepathy/kde/0.5.3.nix
@@ -0,0 +1,16 @@
+[
+{name="ktp-accounts-kcm";key="accounts_kcm";sha256="0nmjwbm7ycy5awwlx359889am7qbvs64gk0bd1800a9jl2lhvw56";}
+{name="ktp-approver";key="approver";sha256="0n0a2abbz7xvzp3p4l6khgbhbjylppvskcyma440fmfv3j3jdc12";}
+{name="ktp-auth-handler";key="auth_handler";sha256="11vfim3ck60cy22x84bz6cw0267kf884qa00nbm033kpwjbx4zr6";}
+{name="ktp-call-ui";key="call_ui";sha256="0gmppn4f5a9yd3pnzga3sdwz37c7qpmx586914r64jbkii196xg4";}
+{name="ktp-common-internals";key="common_internals";sha256="1lkmaym8bv5ijy7sksbihr63qify9b9vrhrikck6q23n8sk112n9";}
+{name="ktp-contact-applet";key="contact_applet";sha256="0gsf1m276mhvysy30qqw1h7ssdipyyjh43jbf2lx4bb934by9wby";}
+{name="ktp-contact-list";key="contact_list";sha256="19nlzs650lwmzr30lrviv0qw1xd061pdrk17cm512ldvzibc70ab";}
+{name="ktp-contact-runner";key="contact_runner";sha256="0x3zkk11x9npx30w330s8n49ybqlyhgcndvqizg4sbj1lfbrmhn1";}
+{name="ktp-filetransfer-handler";key="filetransfer_handler";sha256="0w90hsypzgakqx96xkf0wk2qqns6v5ji814gvc3rf9ajcwh0d024";}
+{name="ktp-kded-integration-module";key="kded_integration_module";sha256="0sz0d1yfj35q5r1gc4m6v2c8r0cik2vzvkqfx9pqy8g97d7q1nmj";}
+{name="ktp-presence-applet";key="presence_applet";sha256="081jas1vzh6nwj3w60bw3w95gpdbi74pdi9rdxv0wvra5w76s4i6";}
+{name="ktp-send-file";key="send_file";sha256="19nlm4sfa0m0y856nzs3hrncbznc35zwbsxavssd9wrbb8p9cns6";}
+{name="ktp-text-ui";key="text_ui";sha256="0g8114adqyvzsdm8ldhidf2gyxkv0bnky71zg70gmhkdmzcfssyn";}
+{name="telepathy-logger-qt";key="telepathy_logger_qt";sha256="17bfkbxc7gfcspmjd5w6vn9a75f36qinj7illqafb7k0jqqz2nq6";}
+]
diff --git a/pkgs/applications/networking/instant-messengers/telepathy/kde/default.nix b/pkgs/applications/networking/instant-messengers/telepathy/kde/default.nix
index 70e6293c9a30..d41db2e44983 100644
--- a/pkgs/applications/networking/instant-messengers/telepathy/kde/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telepathy/kde/default.nix
@@ -3,7 +3,7 @@
 
 let
   pkgconfig = pkgconfigUpstream;
-  version = "0.4.0";
+  version = "0.5.3";
   manifest = import (./. + "/${version}.nix");
 
   overrides = {
@@ -20,7 +20,7 @@ let
     text_ui = [ ktp.telepathy_logger_qt qt_gstreamer telepathy_logger ];
   };
 
-  extraBuildNativeInputs = {
+  extraNativeBuildInputs = {
     telepathy_logger_qt = [ flex bison ];
   };
 
@@ -37,7 +37,7 @@ let
           inherit sha256;
         };
 
-        buildNativeInputs = [ gettext pkgconfig ] ++ (stdenv.lib.attrByPath [ key ] [] extraBuildNativeInputs);
+        nativeBuildInputs = [ gettext pkgconfig ] ++ (stdenv.lib.attrByPath [ key ] [] extraNativeBuildInputs);
         buildInputs = [ kdelibs telepathy_qt ]
           ++ stdenv.lib.optional (name != "ktp-common-internals") ktp.common_internals
           ++ (stdenv.lib.attrByPath [ key ] [] extraBuildInputs);
diff --git a/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix b/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix
index a820e0f8a99b..527642348d25 100644
--- a/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix
@@ -3,16 +3,16 @@
 
 stdenv.mkDerivation rec {
   project = "telepathy-logger";
-  name = "${project}-0.4.0";
+  name = "${project}-0.8.0";
 
   src = fetchurl {
     url = "http://telepathy.freedesktop.org/releases/${project}/${name}.tar.bz2";
-    sha256 = "1rb58ipz56c9bac8b31md5gk1fw7jim8x9dx3cm5gmxg2q3apd86";
+    sha256 = "18i00l8lnp5dghqmgmpxnn0is2a20pkisxy0sb78hnd2dz0z6xnl";
   };
 
   buildInputs = [ dbus_glib libxml2 sqlite telepathy_glib pkgconfig intltool ];
 
-  buildNativeInputs = [ libxslt ];
+  nativeBuildInputs = [ libxslt ];
 
   configureFlags = "--enable-call";
 
diff --git a/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix b/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix
index 4d79f0c89d88..56abf34e1b39 100644
--- a/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, pkgconfig, telepathy_glib, libxslt }:
 
 stdenv.mkDerivation rec {
-  name = "${pname}-5.12.0";
+  name = "${pname}-5.14.0";
   pname = "telepathy-mission-control";
 
   src = fetchurl {
     url = "http://telepathy.freedesktop.org/releases/${pname}/${name}.tar.gz";
-    sha256 = "0xsycjk2l19h026adqms8ik7c2xj9j9rba76znfh46ryaijyn2k6";
+    sha256 = "0c4asjgk7pk39i8njf0q1df0mhisif83lq716ln6r0wja9zh9q2q";
   };
 
   buildInputs = [ telepathy_glib ];
 
-  buildNativeInputs = [ pkgconfig libxslt ];
+  nativeBuildInputs = [ pkgconfig libxslt ];
 }
diff --git a/pkgs/applications/networking/instant-messengers/telepathy/rakia/default.nix b/pkgs/applications/networking/instant-messengers/telepathy/rakia/default.nix
index e8b120b93316..a60e207b7527 100644
--- a/pkgs/applications/networking/instant-messengers/telepathy/rakia/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telepathy/rakia/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "11cmmdq31kivm6nsv61hxy3hxnnmbd8sj55xqwx9hyqzybh70dyf";
   };
 
-  buildNativeInputs = [pkgconfigUpstream libxslt python];
+  nativeBuildInputs = [pkgconfigUpstream libxslt python];
   buildInputs = [ libxml2 dbus_glib telepathy_glib sofia_sip];
 
   meta = {
diff --git a/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix b/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix
index 3c100282aa46..4300ac15c998 100644
--- a/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ glib libxml2 telepathy_glib avahi libsoup libuuid gnutls
     sqlite ];
 
-  buildNativeInputs = [ libxslt pkgconfigUpstream ];
+  nativeBuildInputs = [ libxslt pkgconfigUpstream ];
 
   configureFlags = "--disable-avahi-tests";
 
diff --git a/pkgs/applications/networking/sniffers/etherape/default.nix b/pkgs/applications/networking/sniffers/etherape/default.nix
index e268cdb7bbae..3b9b8cce9e7c 100644
--- a/pkgs/applications/networking/sniffers/etherape/default.nix
+++ b/pkgs/applications/networking/sniffers/etherape/default.nix
@@ -1,5 +1,5 @@
-{stdenv, fetchurl, pkgconfig, gtk, libpcap, libglade, libgnome, libgnomeui,
-gnomedocutils, scrollkeeper, libxslt}:
+{ stdenv, fetchurl, pkgconfig, libtool, gtk, libpcap, libglade, libgnome, libgnomeui
+, gnomedocutils, scrollkeeper, libxslt }:
 
 stdenv.mkDerivation rec {
   name = "etherape-0.9.12";
@@ -9,8 +9,10 @@ stdenv.mkDerivation rec {
   };
 
   configureFlags = [ "--disable-scrollkeeper" ];
-  buildInputs = [ gtk libpcap pkgconfig libglade libgnome libgnomeui gnomedocutils
-    scrollkeeper libxslt ];
+  buildInputs = [
+    pkgconfig libtool gtk libpcap libglade libgnome libgnomeui gnomedocutils
+    scrollkeeper libxslt
+  ];
 
   meta = {
     homepage = http://etherape.sourceforge.net/;
diff --git a/pkgs/applications/networking/sync/rsync/default.nix b/pkgs/applications/networking/sync/rsync/default.nix
index 09f85b9edfc8..32b531528d05 100644
--- a/pkgs/applications/networking/sync/rsync/default.nix
+++ b/pkgs/applications/networking/sync/rsync/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   patches = [] ++ stdenv.lib.optional enableCopyDevicesPatch "./patches/copy-devices.diff";
 
   buildInputs = stdenv.lib.optional enableACLs acl;
-  buildNativeInputs = [perl];
+  nativeBuildInputs = [perl];
 
   meta = {
     homepage = http://samba.anu.edu.au/rsync/;
diff --git a/pkgs/applications/networking/sync/unison/default.nix b/pkgs/applications/networking/sync/unison/default.nix
index ea30903fb383..35dd2d2a7d02 100644
--- a/pkgs/applications/networking/sync/unison/default.nix
+++ b/pkgs/applications/networking/sync/unison/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation (rec {
     done
   '' else "";
 
-  dontStrip = if ! ocaml.nativeCompilers then true else false;
+  dontStrip = !ocaml.nativeCompilers;
 
   meta = {
     homepage = http://www.cis.upenn.edu/~bcpierce/unison/;
diff --git a/pkgs/applications/office/basket/default.nix b/pkgs/applications/office/basket/default.nix
index fff93ba99695..023d133b4dd7 100644
--- a/pkgs/applications/office/basket/default.nix
+++ b/pkgs/applications/office/basket/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ kdelibs qimageblitz kdepimlibs gpgme ];
 
-  buildNativeInputs = [ cmake gettext ];
+  nativeBuildInputs = [ cmake gettext ];
   
   meta = {
     description = "A multi-purpose note-taking application";
diff --git a/pkgs/applications/office/calligra/default.nix b/pkgs/applications/office/calligra/default.nix
index 152246ee58f2..0769f324c15d 100644
--- a/pkgs/applications/office/calligra/default.nix
+++ b/pkgs/applications/office/calligra/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0q6ydi7hzrzwqzb38gikdh1l2zf8qp4i3nkgyb01148bjwrhvf21";
   };
 
-  buildNativeInputs = [ cmake perl pkgconfig ];
+  nativeBuildInputs = [ cmake perl pkgconfig ];
 
   buildInputs = [ kdelibs attica zlib libpng boost mesa kdepimlibs
     createresources eigen qca2 exiv2 soprano marble lcms2 fontconfig freetype
diff --git a/pkgs/applications/office/kmymoney/default.nix b/pkgs/applications/office/kmymoney/default.nix
index da815c5fb6b4..d55c66a26246 100644
--- a/pkgs/applications/office/kmymoney/default.nix
+++ b/pkgs/applications/office/kmymoney/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ kdepimlibs perl boost gpgme gmpxx libalkimia libofx libical ];
-  buildNativeInputs = [ cmake automoc4 gettext shared_mime_info pkgconfig ];
+  nativeBuildInputs = [ cmake automoc4 gettext shared_mime_info pkgconfig ];
 
   KDEDIRS = libalkimia;
 
diff --git a/pkgs/applications/office/koffice/default.nix b/pkgs/applications/office/koffice/default.nix
index 784b60070352..773b755e9b27 100644
--- a/pkgs/applications/office/koffice/default.nix
+++ b/pkgs/applications/office/koffice/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
     license = "GPL";
     homepage = http://www.koffice.org;
     maintainers = with stdenv.lib.maintainers; [ sander urkud ];
-    inherit (kdelibs.meta) platforms;
+    # doesn't build, seems dead and superseded by calligra
+    #inherit (kdelibs.meta) platforms;
   };
 }
diff --git a/pkgs/applications/office/skrooge/default.nix b/pkgs/applications/office/skrooge/default.nix
index 44ffdf57db58..dfb4c243c8cf 100644
--- a/pkgs/applications/office/skrooge/default.nix
+++ b/pkgs/applications/office/skrooge/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ kdelibs grantlee qca2 libofx ];
 
-  buildNativeInputs = [ gettext ];
+  nativeBuildInputs = [ gettext ];
 
   meta = {
     inherit (kdelibs.meta) platforms;
diff --git a/pkgs/applications/science/chemistry/avogadro/default.nix b/pkgs/applications/science/chemistry/avogadro/default.nix
index b444783ba21d..f4b353296fdc 100644
--- a/pkgs/applications/science/chemistry/avogadro/default.nix
+++ b/pkgs/applications/science/chemistry/avogadro/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ qt4 eigen zlib openbabel mesa libX11 ];
 
-  buildNativeInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig ];
 
   NIX_CFLAGS_COMPILE = "-include ${mesa}/include/GL/glu.h";
 
diff --git a/pkgs/applications/science/electronics/qucs/default.nix b/pkgs/applications/science/electronics/qucs/default.nix
index 979faa2e5977..e434c97db2b0 100644
--- a/pkgs/applications/science/electronics/qucs/default.nix
+++ b/pkgs/applications/science/electronics/qucs/default.nix
@@ -1,13 +1,16 @@
 {stdenv, fetchurl, qt3, libX11}:
 
 stdenv.mkDerivation rec {
-  name = "qucs-0.0.15";
+  name = "qucs-0.0.16";
 
   src = fetchurl {
     url = "mirror://sourceforge/qucs/${name}.tar.gz";
-    sha256 = "0ggs2nicj8q270l0rbmzg4jc0d0zdxvfsjh4wgww670ma5855xsp";
+    sha256 = "1h8ba84k06rix5zl5p9p414zj2facbnlf1vxwh4a1sp4h9dbfnzy";
   };
 
+  patches = [ ./tr1-complex.patch ];
+  patchFlags = "-p0";
+
   buildInputs = [ qt3 libX11 ];
 
   meta = {
diff --git a/pkgs/applications/science/electronics/qucs/tr1-complex.patch b/pkgs/applications/science/electronics/qucs/tr1-complex.patch
new file mode 100644
index 000000000000..0be7ae00eb95
--- /dev/null
+++ b/pkgs/applications/science/electronics/qucs/tr1-complex.patch
@@ -0,0 +1,10 @@
+--- qucs-core/configure.orig	2011-07-03 07:34:09.069218113 -0500
++++ qucs-core/configure	2011-07-03 07:34:46.618990497 -0500
+@@ -5884,7 +5884,6 @@
+ 
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+-#include <tr1/complex>
+ using namespace std;
+ using namespace std::tr1;
+ int
diff --git a/pkgs/applications/science/math/ginac/default.nix b/pkgs/applications/science/math/ginac/default.nix
index 081d2bd62530..9bffc5548dd0 100644
--- a/pkgs/applications/science/math/ginac/default.nix
+++ b/pkgs/applications/science/math/ginac/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = [ cln ];
   buildInputs = [ readline ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   configureFlags = "--disable-rpath";
 
diff --git a/pkgs/applications/science/math/yacas/default.nix b/pkgs/applications/science/math/yacas/default.nix
index 7b97e1a82c00..acc4740eb6b4 100644
--- a/pkgs/applications/science/math/yacas/default.nix
+++ b/pkgs/applications/science/math/yacas/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   # Perl is only for the documentation
-  buildNativeInputs = [ perl ];
+  nativeBuildInputs = [ perl ];
 
   patches = [ ./gcc43.patch ];
 
diff --git a/pkgs/applications/science/misc/tulip/default.nix b/pkgs/applications/science/misc/tulip/default.nix
index 52b93c8e1742..1402dc9b1824 100644
--- a/pkgs/applications/science/misc/tulip/default.nix
+++ b/pkgs/applications/science/misc/tulip/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ libxml2 freetype glew mesa qt4 libjpeg ];
 
-  buildNativeInputs = [ cmake makeWrapper ];
+  nativeBuildInputs = [ cmake makeWrapper ];
 
   # FIXME: "make check" needs Docbook's DTD 4.4, among other things.
   doCheck = false;
diff --git a/pkgs/applications/version-management/fossil/default.nix b/pkgs/applications/version-management/fossil/default.nix
index 7e842aa72e5f..368557e3c2ce 100644
--- a/pkgs/applications/version-management/fossil/default.nix
+++ b/pkgs/applications/version-management/fossil/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [ zlib openssl readline sqlite ];
-  buildNativeInputs = [ tcl ];
+  nativeBuildInputs = [ tcl ];
 
   doCheck = true;
 
diff --git a/pkgs/applications/version-management/kdesvn/default.nix b/pkgs/applications/version-management/kdesvn/default.nix
index 7761c45850ec..29b8b306fe54 100644
--- a/pkgs/applications/version-management/kdesvn/default.nix
+++ b/pkgs/applications/version-management/kdesvn/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ apr aprutil subversion db4 kdelibs ];
 
-  buildNativeInputs = [ gettext ];
+  nativeBuildInputs = [ gettext ];
 
   meta = {
     description = "KDE SVN front-end";
diff --git a/pkgs/applications/version-management/monotone/default.nix b/pkgs/applications/version-management/monotone/default.nix
index cde31b5cef97..0df1c652761e 100644
--- a/pkgs/applications/version-management/monotone/default.nix
+++ b/pkgs/applications/version-management/monotone/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, boost, zlib, botan, libidn
-, lua, pcre, sqlite, perl, pkgconfig }:
+, lua, pcre, sqlite, perl, pkgconfig, expect }:
 
 let
   version = "1.0";
@@ -16,7 +16,9 @@ stdenv.mkDerivation rec {
     sha256 = "5c530bc4652b2c08b5291659f0c130618a14780f075f981e947952dcaefc31dc";
   };
 
-  buildInputs = [boost zlib botan libidn lua pcre sqlite pkgconfig];
+  patches = [ ./glibc-file-handle.patch ];
+
+  buildInputs = [ boost zlib botan libidn lua pcre sqlite pkgconfig expect ];
 
   postInstall = ''
     mkdir -p $out/share/${name}
@@ -25,6 +27,8 @@ stdenv.mkDerivation rec {
     cp -v contrib/Monotone.pm $out/lib/perl5/site_perl/${perlVersion}
   '';
 
+  #doCheck = true; # some tests fail (and they take VERY long)
+
   meta = {
     description = "A free distributed version control system";
     maintainers = [stdenv.lib.maintainers.raskin];
diff --git a/pkgs/applications/version-management/monotone/glibc-file-handle.patch b/pkgs/applications/version-management/monotone/glibc-file-handle.patch
new file mode 100644
index 000000000000..601b6ede0fb9
--- /dev/null
+++ b/pkgs/applications/version-management/monotone/glibc-file-handle.patch
@@ -0,0 +1,166 @@
+Revision: da62cad10eda55aa233ac124273f3db4f541137a
+Parent:   65bcb8cf8b32f68a5b48629b328f6d65979e58df
+Author:   Thomas Moschny <thomas.moschny@gmx.de>
+Date:     07.05.2011 13:32:06
+Branch:   net.venge.monotone
+
+Changelog: 
+
+* src/rcs_file.cc: Rename struct "file_handle" to "rcs_file_handle"
+  to avoid a name clash with a struct of same name defined by newer
+  glibc's "fcntl.h". For aesthetic reasons, also rename struct
+  "file_source".
+
+References:
+https://code.monotone.ca/p/monotone/source/commit/da62cad10eda55aa233ac124273f3db4f541137a/
+https://bugs.gentoo.org/396651
+
+============================================================
+--- a/src/rcs_file.cc	885b3fbe7b6cfed78816f0e57cd71d44616213c6
++++ b/src/rcs_file.cc	03cf68912a4a708545ebce3d415c0e970ddead0b
+@@ -42,12 +42,12 @@ struct
+ 
+ #ifdef HAVE_MMAP
+ struct
+-file_handle
++rcs_file_handle
+ {
+   string const & filename;
+   off_t length;
+   int fd;
+-  file_handle(string const & fn) :
++  rcs_file_handle(string const & fn) :
+     filename(fn),
+     length(0),
+     fd(-1)
+@@ -60,13 +60,13 @@ file_handle
+       if (fd == -1)
+         throw oops("open of " + filename + " failed");
+     }
+-  ~file_handle()
++  ~rcs_file_handle()
+     {
+       if (close(fd) == -1)
+         throw oops("close of " + filename + " failed");
+     }
+ };
+-struct file_source
++struct rcs_file_source
+ {
+   string const & filename;
+   int fd;
+@@ -91,7 +91,7 @@ struct file_source
+       ++pos;
+     return good();
+   }
+-  file_source(string const & fn,
++  rcs_file_source(string const & fn,
+               int f,
+               off_t len) :
+     filename(fn),
+@@ -104,7 +104,7 @@ struct file_source
+     if (mapping == MAP_FAILED)
+       throw oops("mmap of " + filename + " failed");
+   }
+-  ~file_source()
++  ~rcs_file_source()
+   {
+     if (munmap(mapping, length) == -1)
+       throw oops("munmapping " + filename + " failed, after reading RCS file");
+@@ -112,12 +112,12 @@ struct
+ };
+ #elif defined(WIN32)
+ struct
+-file_handle
++rcs_file_handle
+ {
+   string const & filename;
+   off_t length;
+   HANDLE fd;
+-  file_handle(string const & fn) :
++  rcs_file_handle(string const & fn) :
+     filename(fn),
+     length(0),
+     fd(NULL)
+@@ -134,7 +134,7 @@ file_handle
+       if (fd == NULL)
+         throw oops("open of " + filename + " failed");
+     }
+-  ~file_handle()
++  ~rcs_file_handle()
+     {
+       if (CloseHandle(fd)==0)
+         throw oops("close of " + filename + " failed");
+@@ -142,7 +142,7 @@ struct
+ };
+ 
+ struct
+-file_source
++rcs_file_source
+ {
+   string const & filename;
+   HANDLE fd,map;
+@@ -167,7 +167,7 @@ file_source
+       ++pos;
+     return good();
+   }
+-  file_source(string const & fn,
++  rcs_file_source(string const & fn,
+               HANDLE f,
+               off_t len) :
+     filename(fn),
+@@ -183,7 +183,7 @@ file_source
+     if (mapping==NULL)
+       throw oops("MapViewOfFile of " + filename + " failed");
+   }
+-  ~file_source()
++  ~rcs_file_source()
+   {
+     if (UnmapViewOfFile(mapping)==0)
+       throw oops("UnmapViewOfFile of " + filename + " failed");
+@@ -193,7 +193,7 @@ file_source
+ };
+ #else
+ // no mmap at all
+-typedef istream file_source;
++typedef istream rcs_file_source;
+ #endif
+ 
+ typedef enum
+@@ -220,7 +220,7 @@ static token_type
+ }
+ 
+ static token_type
+-get_token(file_source & ist,
++get_token(rcs_file_source & ist,
+           string & str,
+           size_t & line,
+           size_t & col)
+@@ -303,14 +303,14 @@ struct parser
+ 
+ struct parser
+ {
+-  file_source & ist;
++  rcs_file_source & ist;
+   rcs_file & r;
+   string token;
+   token_type ttype;
+ 
+   size_t line, col;
+ 
+-  parser(file_source & s,
++  parser(rcs_file_source & s,
+          rcs_file & r)
+     : ist(s), r(r), line(1), col(1)
+   {}
+@@ -489,8 +489,8 @@ parse_rcs_file(string const & filename, 
+ parse_rcs_file(string const & filename, rcs_file & r)
+ {
+ #if defined(HAVE_MMAP) || defined(WIN32)
+-      file_handle handle(filename);
+-      file_source ifs(filename, handle.fd, handle.length);
++      rcs_file_handle handle(filename);
++      rcs_file_source ifs(filename, handle.fd, handle.length);
+ #else
+       ifstream ifs(filename.c_str());
+       ifs.unsetf(ios_base::skipws);
diff --git a/pkgs/applications/version-management/rcs/default.nix b/pkgs/applications/version-management/rcs/default.nix
index 4be4c0c5f697..65625ff27695 100644
--- a/pkgs/applications/version-management/rcs/default.nix
+++ b/pkgs/applications/version-management/rcs/default.nix
@@ -1,11 +1,11 @@
-{stdenv, fetchurl}:
+{ stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "rcs-5.8";
+  name = "rcs-5.8.1";
 
   src = fetchurl {
     url = "mirror://gnu/rcs/${name}.tar.gz";
-    sha256 = "0q12nlghv4khxw5lk0y4949caghzg4jg0ripddi2h3q75vmfh6vh";
+    sha256 = "1b1y6s4gy3miv2bvx0z01kvnv58h35sw766lccdkxkalk43cml04";
   };
 
   doCheck = true;
diff --git a/pkgs/applications/video/bangarang/default.nix b/pkgs/applications/video/bangarang/default.nix
index 0bc7476dc820..5dde88076a1e 100644
--- a/pkgs/applications/video/bangarang/default.nix
+++ b/pkgs/applications/video/bangarang/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ kdelibs phonon soprano shared_desktop_ontologies kdemultimedia taglib gettext ];
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   meta = with stdenv.lib; {
     description = "A media player for KDE based on Nepomuk and Phonon";
diff --git a/pkgs/applications/video/dvdauthor/default.nix b/pkgs/applications/video/dvdauthor/default.nix
index 2e115806315c..6889e4d9ef86 100644
--- a/pkgs/applications/video/dvdauthor/default.nix
+++ b/pkgs/applications/video/dvdauthor/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec{
   };
 
   buildInputs = [ libpng freetype libdvdread libxml2 zlib fribidi imagemagick ];
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     description = "Tools for generating DVD files to be played on standalone DVD players";
diff --git a/pkgs/applications/video/gpac/default.nix b/pkgs/applications/video/gpac/default.nix
index 292010a3717c..6a863a5e2c4b 100644
--- a/pkgs/applications/video/gpac/default.nix
+++ b/pkgs/applications/video/gpac/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   # this is the bare minimum configuration, as I'm only interested in MP4Box
   # For most other functionality, this should probably be extended
-  buildNativeInputs = [ pkgconfig zlib ];
+  nativeBuildInputs = [ pkgconfig zlib ];
 
   meta = {
     description = "Open Source multimedia framework for research and academic purposes";
diff --git a/pkgs/applications/video/mplayer/default.nix b/pkgs/applications/video/mplayer/default.nix
index a04079c8de29..d86b81be7563 100644
--- a/pkgs/applications/video/mplayer/default.nix
+++ b/pkgs/applications/video/mplayer/default.nix
@@ -114,7 +114,7 @@ stdenv.mkDerivation rec {
     ++ optional libpngSupport libpng
     ;
 
-  buildNativeInputs = [ yasm ];
+  nativeBuildInputs = [ yasm ];
 
   postConfigure = ''
     echo CONFIG_MPEGAUDIODSP=yes >> config.mak
diff --git a/pkgs/applications/video/mplayer2/default.nix b/pkgs/applications/video/mplayer2/default.nix
index 52b5b9f7bd44..79c25d65c05c 100644
--- a/pkgs/applications/video/mplayer2/default.nix
+++ b/pkgs/applications/video/mplayer2/default.nix
@@ -93,7 +93,7 @@ stdenv.mkDerivation rec {
     ++ optional libpngSupport libpng
     ;
 
-  buildNativeInputs = [ yasm python3 ];
+  nativeBuildInputs = [ yasm python3 ];
 
   postConfigure = ''
     patchShebangs TOOLS
diff --git a/pkgs/applications/video/mythtv/default.nix b/pkgs/applications/video/mythtv/default.nix
index 59a2519edb45..a4fe07b2d053 100644
--- a/pkgs/applications/video/mythtv/default.nix
+++ b/pkgs/applications/video/mythtv/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     libX11 libXv libXrandr libXvMC libXmu libXinerama libXxf86vm libXmu
   ];
 
-  buildNativeInputs = [ pkgconfig which ];
+  nativeBuildInputs = [ pkgconfig which ];
 
   patches = [ ./settings.patch ];
 }
diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix
index 7d04a02f27f5..5529fbeff836 100644
--- a/pkgs/applications/video/vlc/default.nix
+++ b/pkgs/applications/video/vlc/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
       libdc1394 libraw1394
     ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   configureFlags =
     [ "--enable-alsa"
diff --git a/pkgs/applications/video/xbmc/default.nix b/pkgs/applications/video/xbmc/default.nix
new file mode 100644
index 000000000000..96423a52369d
--- /dev/null
+++ b/pkgs/applications/video/xbmc/default.nix
@@ -0,0 +1,90 @@
+{ stdenv, lib, fetchurl, makeWrapper
+, pkgconfig, cmake, gnumake, yasm, python
+, boost
+, gettext, pcre, yajl, fribidi
+, openssl, gperf
+, libX11, xproto, inputproto
+, libXt, libXmu, libXext, xextproto
+, libXinerama, libXrandr, randrproto
+, libXtst, libXfixes, fixesproto
+, SDL, SDL_image, SDL_mixer, alsaLib
+, mesa, glew, fontconfig, freetype, ftgl
+, libjpeg, jasper, libpng, libtiff
+, ffmpeg, libmpeg2, libsamplerate, libmad
+, libogg, libvorbis, flac
+, lzo, libcdio, libmodplug, libass
+, sqlite, mysql, nasm
+, curl, bzip2, zip, unzip, glxinfo, xdpyinfo
+, dbus_libs ? null, dbusSupport ? true
+, udev, udevSupport ? true
+, libusb ? null, usbSupport ? false
+, samba ? null, sambaSupport ? true
+# TODO: would be nice to have nfsSupport (needs libnfs library)
+, libvdpau ? null, vdpauSupport ? true
+}:
+
+assert dbusSupport  -> dbus_libs != null;
+assert udevSupport  -> udev != null;
+assert usbSupport   -> libusb != null && ! udevSupport; # libusb won't be used if udev is avaliable
+assert sambaSupport -> samba != null;
+assert vdpauSupport -> libvdpau != null && ffmpeg.vdpauSupport;
+
+stdenv.mkDerivation rec {
+    name = "xbmc-11.0";
+
+    src = fetchurl {
+      url = "http://mirrors.xbmc.org/releases/source/${name}.tar.gz";
+      sha256 = "1fe5d310c16138f26e2b13bc545604e95f48ace6c8636f23e77da402cd7b0b19";
+    };
+
+    buildInputs = [
+      makeWrapper
+      pkgconfig cmake gnumake yasm python
+      boost
+      gettext pcre yajl fribidi
+      openssl gperf
+      libX11 xproto inputproto
+      libXt libXmu libXext xextproto
+      libXinerama libXrandr randrproto
+      libXtst libXfixes fixesproto
+      SDL SDL_image SDL_mixer alsaLib
+      mesa glew fontconfig freetype ftgl
+      libjpeg jasper libpng libtiff
+      ffmpeg libmpeg2 libsamplerate libmad
+      libogg libvorbis flac
+      lzo libcdio libmodplug libass
+      sqlite mysql nasm
+      curl bzip2 zip unzip glxinfo xdpyinfo
+    ]
+    ++ lib.optional dbusSupport dbus_libs
+    ++ lib.optional udevSupport udev
+    ++ lib.optional usbSupport libusb
+    ++ lib.optional sambaSupport samba
+    ++ lib.optional vdpauSupport libvdpau;
+
+    dontUseCmakeConfigure = true;
+
+    configureFlags = [
+      "--enable-external-libraries"
+      "--disable-webserver"
+    ]
+    ++ lib.optional (! sambaSupport) "--disable-samba"
+    ++ lib.optional vdpauSupport "--enable-vdpau";
+
+    postInstall = ''
+      for p in $(ls $out/bin/) ; do
+        wrapProgram $out/bin/$p \
+          --prefix PATH ":" "${python}/bin" \
+          --prefix PATH ":" "${glxinfo}/bin" \
+          --prefix PATH ":" "${xdpyinfo}/bin" \
+          --prefix LD_LIBRARY_PATH ":" "${curl}/lib" \
+          --prefix LD_LIBRARY_PATH ":" "${libvdpau}/lib"
+      done
+    '';
+
+    meta = {
+      homepage = http://xbmc.org/;
+      description = "XBMC Media Center";
+      license = "GPLv2";
+    };
+}
diff --git a/pkgs/applications/video/xine-ui/default.nix b/pkgs/applications/video/xine-ui/default.nix
index 821e1c7bb0c5..9307b9e1d1bd 100644
--- a/pkgs/applications/video/xine-ui/default.nix
+++ b/pkgs/applications/video/xine-ui/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1i3byriqav06b55kwzs4dkzrjw7mmmcv0rc7jzb52hn8qp8xz34x";
   };
   
-  buildNativeInputs = [ pkgconfig shared_mime_info ];
+  nativeBuildInputs = [ pkgconfig shared_mime_info ];
 
   buildInputs =
     [ xineLib libpng readline ncurses curl lirc libjpeg
diff --git a/pkgs/applications/virtualization/virt-manager/default.nix b/pkgs/applications/virtualization/virt-manager/default.nix
index 79ea777eeadd..195ee5d45c01 100644
--- a/pkgs/applications/virtualization/virt-manager/default.nix
+++ b/pkgs/applications/virtualization/virt-manager/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
 
   buildPhase = "make";
   
-  buildNativeInputs = [ makeWrapper pythonPackages.wrapPython ];
+  nativeBuildInputs = [ makeWrapper pythonPackages.wrapPython ];
 
   # patch the runner script in order to make wrapPythonPrograms work and run the program using a syscall
   # example code: /etc/nixos/nixpkgs/pkgs/development/interpreters/spidermonkey/1.8.0-rc1.nix
diff --git a/pkgs/applications/window-managers/compiz/default.nix b/pkgs/applications/window-managers/compiz/default.nix
index ba9d9574366a..46aa6e4d77eb 100644
--- a/pkgs/applications/window-managers/compiz/default.nix
+++ b/pkgs/applications/window-managers/compiz/default.nix
@@ -1,6 +1,7 @@
 {stdenv, fetchurl, cmake, pkgconfig
 , libXrender, renderproto, gtk, libwnck, pango, cairo
 , GConf, libXdamage, damageproto, libxml2, libxslt, glibmm
+, metacity
 , libstartup_notification, libpthreadstubs, libxcb, intltool
 , ORBit2, libXau
 , dbus, dbus_glib, librsvg, mesa
@@ -14,15 +15,15 @@ let
   s = # Generated upstream information
   rec {
     baseName="compiz";
-    version="0.9.8.6";
-    name="compiz-0.9.8.6";
-    hash="0agz5s11lwrkhk3svz3rwimlb6318ln3zcywlzczwks139svxnk6";
-    url="https://launchpad.net/compiz/0.9.8/0.9.8.6/+download/compiz-0.9.8.6.tar.bz2";
-    sha256="0agz5s11lwrkhk3svz3rwimlb6318ln3zcywlzczwks139svxnk6";
+    version="0.9.9.0";
+    name="compiz-${version}";
+    url="https://launchpad.net/compiz/0.9.9/${version}/+download/${name}.tar.bz2";
+    sha256="0nxv9lv0zwzs82p2d5g38sbvzbqgfs837xdgwc26lh5wdv31d93s";
   };
   buildInputs = [cmake pkgconfig
     libXrender renderproto gtk libwnck pango cairo
     GConf libXdamage damageproto libxml2 libxslt glibmm libstartup_notification
+    metacity
     libpthreadstubs libxcb intltool
     ORBit2 libXau
     dbus dbus_glib librsvg mesa
@@ -40,7 +41,8 @@ stdenv.mkDerivation rec {
   };
   inherit buildInputs;
 
-  NIX_CFLAGS_COMPILE=" -Wno-error ";
+  NIX_CFLAGS_COMPILE = " -Wno-error ";
+  NIX_CFLAGS_LINK = "-lm -ldl -pthread -lutil";
   postInstall = ''
     wrapProgram "$out/bin/ccsm" \
       --prefix PYTHONPATH : "$PYTHONPATH" \
diff --git a/pkgs/build-support/builder-defs/builder-defs.nix b/pkgs/build-support/builder-defs/builder-defs.nix
index 7d0f138880dc..3c5d7af621c8 100644
--- a/pkgs/build-support/builder-defs/builder-defs.nix
+++ b/pkgs/build-support/builder-defs/builder-defs.nix
@@ -20,21 +20,21 @@ let inherit (builtins) head tail trace; in
                 else if (hasSuffixHack ".tar.gz" s) || (hasSuffixHack ".tgz" s) then "tgz" 
                 else if (hasSuffixHack ".tar.bz2" s) || (hasSuffixHack ".tbz2" s) || 
 			(hasSuffixHack ".tbz" s) then "tbz2"
-                else if (hasSuffixHack ".tar.Z" s) then "tZ" 
-                else if (hasSuffixHack ".tar.lzma" s) then "tar.lzma"
-                else if (hasSuffixHack ".tar.xz" s) then "tar.xz"
+                else if hasSuffixHack ".tar.Z" s then "tZ" 
+                else if hasSuffixHack ".tar.lzma" s then "tar.lzma"
+                else if hasSuffixHack ".tar.xz" s then "tar.xz"
                 else if (hasSuffixHack ".zip" s) || (hasSuffixHack ".ZIP" s) then "zip"
-                else if (hasSuffixHack "-cvs-export" s) then "cvs-dir"
-                else if (hasSuffixHack "-git-export" s) then "git-dir"
-                else if (hasSuffixHack ".nar.bz2" s) then "narbz2"
-                else if (hasSuffixHack ".rpm" s) then "rpm"
+                else if hasSuffixHack "-cvs-export" s then "cvs-dir"
+                else if hasSuffixHack "-git-export" s then "git-dir"
+                else if hasSuffixHack ".nar.bz2" s then "narbz2"
+                else if hasSuffixHack ".rpm" s then "rpm"
 
                 # Mostly for manually specified directories..
-                else if (hasSuffixHack "/" s) then "dir"
+                else if hasSuffixHack "/" s then "dir"
 
                 # Last block - for single files!! It should be always after .tar.*
-                else if (hasSuffixHack ".bz2" s) then "plain-bz2"
-                else if (hasSuffixHack ".gz" s) then "plain-gz"
+                else if hasSuffixHack ".bz2" s then "plain-bz2"
+                else if hasSuffixHack ".gz" s then "plain-gz"
 
 		# For bootstrap calls
 		else if (s ==("" + (substring 0 0 s))) then "empty"
@@ -391,7 +391,7 @@ let inherit (builtins) head tail trace; in
 
         cmakeFlags = attrByPath ["cmakeFlags"] [] args;
 
-        cmakeRPathFlag = if (attrByPath ["cmakeSkipRpath "] true args) then " -DCMAKE_SKIP_BUILD_RPATH=ON " else "";
+        cmakeRPathFlag = if attrByPath ["cmakeSkipRpath "] true args then " -DCMAKE_SKIP_BUILD_RPATH=ON " else "";
 
         cmakeBuildDir = attrByPath ["cmakeBuildDir"] "build" args;
 
@@ -508,7 +508,7 @@ let inherit (builtins) head tail trace; in
         );
 
 	builderDefsPackage = bd: func:
-	  if (builtins.isFunction func) then 
+	  if builtins.isFunction func then 
 	    (foldArgs 
 	      (x: y: ((func (bd // x // y)) // y))
               (innerBuilderDefsPackage bd)
@@ -588,7 +588,7 @@ let inherit (builtins) head tail trace; in
      url = srcInfo.url;
      sha256 = srcInfo.hash;
    } // 
-   (if (srcInfo ? downloadName) then {name = srcInfo.downloadName;} else {}));
+   (if srcInfo ? downloadName then {name = srcInfo.downloadName;} else {}));
 
    fetchGitFromSrcInfo = srcInfo: fetchgit {
      url = srcInfo.url;
diff --git a/pkgs/build-support/cabal/default.nix b/pkgs/build-support/cabal/default.nix
index 7dc58a0adfe3..334b7e6f2c26 100644
--- a/pkgs/build-support/cabal/default.nix
+++ b/pkgs/build-support/cabal/default.nix
@@ -9,7 +9,7 @@
         internalAttrs = [
           "internalAttrs" "buildDepends" "buildTools" "extraLibraries" "pkgconfigDepends"
           "isLibrary" "isExecutable" "testDepends"
-        ] ++ stdenv.lib.optional (!args.doCheck or false) "doCheck";
+        ];
 
         # Stuff happening after the user preferences have been processed. We remove
         # internal attributes and strip null elements from the dependency lists, all
@@ -55,7 +55,7 @@
             # but often propagatedBuildInputs is preferable anyway
             buildInputs = [ghc Cabal] ++ self.extraBuildInputs;
             extraBuildInputs = self.buildTools ++
-                               (stdenv.lib.optionals (self.doCheck or false) self.testDepends) ++
+                               (stdenv.lib.optionals self.doCheck self.testDepends) ++
                                (if self.pkgconfigDepends == [] then [] else [pkgconfig]) ++
                                (if self.isLibrary then [] else self.buildDepends ++ self.extraLibraries ++ self.pkgconfigDepends);
 
@@ -69,6 +69,9 @@
             # build-depends Cabal field
             buildDepends = [];
 
+            # build-depends Cabal fields stated in test-suite stanzas
+            testDepends = [];
+
             # build-tools Cabal field
             buildTools = [];
 
@@ -81,32 +84,45 @@
             isLibrary = ! self.isExecutable;
             isExecutable = false;
 
-            libraryProfiling =
-              if enableLibraryProfiling then ["--enable-library-profiling"]
-                                        else ["--disable-library-profiling"];
+            # ignore version restrictions on the build inputs that the cabal file might specify
+            jailbreak = false;
+
+            # pass the '--enable-split-objs' flag to cabal in the configure stage
+            enableSplitObjs = true;
+
+            # pass the '--enable-tests' flag to cabal in the configure stage
+            # and run any regression test suites the package might have
+            doCheck = true;
+
+            extraConfigureFlags = [
+              (stdenv.lib.enableFeature enableLibraryProfiling "library-profiling")
+              (stdenv.lib.enableFeature self.enableSplitObjs "split-objs")
+              (stdenv.lib.enableFeature self.doCheck "tests")
+            ];
 
             # compiles Setup and configures
             configurePhase = ''
               eval "$preConfigure"
 
-              ${lib.optionalString (lib.attrByPath ["jailbreak"] false self) "${jailbreakCabal}/bin/jailbreak-cabal ${self.pname}.cabal && "
-              }${lib.optionalString (lib.attrByPath ["doCheck"] false self)  "configureFlags+=\" --enable-test\" && "
-	      }for i in Setup.hs Setup.lhs; do
+              ${lib.optionalString self.jailbreak "${jailbreakCabal}/bin/jailbreak-cabal ${self.pname}.cabal"}
+
+              for i in Setup.hs Setup.lhs; do
                 test -f $i && ghc --make $i
               done
 
-              for p in $extraBuildInputs $propagatedBuildNativeInputs; do
+              for p in $extraBuildInputs $propagatedNativeBuildInputs; do
                 if [ -d "$p/include" ]; then
-                  extraLibDirs="$extraLibDirs --extra-include-dir=$p/include"
+                  extraConfigureFlags+=" --extra-include-dir=$p/include"
                 fi
                 for d in lib{,64}; do
                   if [ -d "$p/$d" ]; then
-                    extraLibDirs="$extraLibDirs --extra-lib-dir=$p/$d"
+                    extraConfigureFlags+=" --extra-lib-dir=$p/$d"
                   fi
                 done
               done
 
-              ./Setup configure --verbose --prefix="$out" $libraryProfiling $extraLibDirs $configureFlags
+              echo "configure flags: $extraConfigureFlags $configureFlags"
+              ./Setup configure --verbose --prefix="$out" $extraConfigureFlags $configureFlags
 
               eval "$postConfigure"
             '';
@@ -117,13 +133,20 @@
 
               ./Setup build
 
-              ${lib.optionalString (lib.attrByPath ["doCheck"] false self)  "./Setup test && "
-	      }export GHC_PACKAGE_PATH=$(ghc-packages)
+              export GHC_PACKAGE_PATH=$(ghc-packages)
               [ -n "$noHaddock" ] || ./Setup haddock
 
               eval "$postBuild"
             '';
 
+            checkPhase = stdenv.lib.optional self.doCheck ''
+              eval "$preCheck"
+
+              ./Setup test
+
+              eval "$postCheck"
+            '';
+
             # installs via Cabal; creates a registration file for nix-support
             # so that the package can be used in other Haskell-builds; also
             # adds all propagated build inputs to the user environment packages
@@ -148,8 +171,8 @@
             '';
 
             postFixup = ''
-              if test -f $out/nix-support/propagated-build-native-inputs; then
-                ln -s $out/nix-support/propagated-build-native-inputs $out/nix-support/propagated-user-env-packages
+              if test -f $out/nix-support/propagated-native-build-inputs; then
+                ln -s $out/nix-support/propagated-native-build-inputs $out/nix-support/propagated-user-env-packages
               fi
             '';
 
diff --git a/pkgs/build-support/checker/default.nix b/pkgs/build-support/checker/default.nix
index 4f95c3b95eeb..66f8c45e37bc 100644
--- a/pkgs/build-support/checker/default.nix
+++ b/pkgs/build-support/checker/default.nix
@@ -8,14 +8,14 @@ with lib;
 
 let 
   findInList = p: list: default:
-       if (list == []) then default else
+       if list == [] then default else
        if (p (head list)) then (head list) else
        findInList p (tail list) default;
   
 
   checkAttrInclusion = s: a: b:
 	(
-	if (! isAttrs b) then s else
+	if ! isAttrs b then s else
 	if (lib.attrByPath ["_type"] "" b) == "option" then "" else
 	findInList (x : x != "") 
 		( map (x: if (x == "servicesProposal") # this attr will be checked at another place ( -> upstart-jobs/default.nix )
diff --git a/pkgs/build-support/clang-wrapper/default.nix b/pkgs/build-support/clang-wrapper/default.nix
index 165e3bace906..9f560d0d2fba 100644
--- a/pkgs/build-support/clang-wrapper/default.nix
+++ b/pkgs/build-support/clang-wrapper/default.nix
@@ -47,11 +47,11 @@ stdenv.mkDerivation {
     else shell;
 
   crossAttrs = {
-    shell = shell.hostDrv + shell.hostDrv.shellPath;
-    libc = libc.hostDrv;
-    coreutils = coreutils.hostDrv;
-    binutils = binutils.hostDrv;
-    clang = clang.hostDrv;
+    shell = shell.crossDrv + shell.crossDrv.shellPath;
+    libc = libc.crossDrv;
+    coreutils = coreutils.crossDrv;
+    binutils = binutils.crossDrv;
+    clang = clang.crossDrv;
     #
     # This is not the best way to do this. I think the reference should be
     # the style in the gcc-cross-wrapper, but to keep a stable stdenv now I
diff --git a/pkgs/build-support/clang-wrapper/utils.sh b/pkgs/build-support/clang-wrapper/utils.sh
index 9a664e1d1e6b..753b3772e956 100644
--- a/pkgs/build-support/clang-wrapper/utils.sh
+++ b/pkgs/build-support/clang-wrapper/utils.sh
@@ -17,6 +17,7 @@ badPath() {
     # Otherwise, the path should refer to the store or some temporary
     # directory (including the build directory).
     test \
+        "$p" != "/dev/null" -a \
         "${p:0:${#NIX_STORE}}" != "$NIX_STORE" -a \
         "${p:0:4}" != "/tmp" -a \
         "${p:0:${#NIX_BUILD_TOP}}" != "$NIX_BUILD_TOP"
diff --git a/pkgs/build-support/fetchhg/default.nix b/pkgs/build-support/fetchhg/default.nix
index 537867f215ba..1aebb7ecc877 100644
--- a/pkgs/build-support/fetchhg/default.nix
+++ b/pkgs/build-support/fetchhg/default.nix
@@ -2,16 +2,16 @@
 
 # TODO: statically check if mercurial as the https support if the url starts woth https.
 stdenv.mkDerivation {
-  name = "hg-archive" + (if (name != null) then "-${name}" else "");
+  name = "hg-archive" + (if name != null then "-${name}" else "");
   builder = ./builder.sh;
   buildInputs = [mercurial];
 
   # Nix <= 0.7 compatibility.
   id = md5;
 
-  outputHashAlgo = if (md5 != null) then "md5" else "sha256";
+  outputHashAlgo = if md5 != null then "md5" else "sha256";
   outputHashMode = "recursive";
-  outputHash = if (md5 != null) then md5 else sha256;
+  outputHash = if md5 != null then md5 else sha256;
   
   inherit url tag;
   preferLocalBuild = true;
diff --git a/pkgs/build-support/fetchmtn/default.nix b/pkgs/build-support/fetchmtn/default.nix
index 80d9091e01de..daead9ad6d2d 100644
--- a/pkgs/build-support/fetchmtn/default.nix
+++ b/pkgs/build-support/fetchmtn/default.nix
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation {
   builder = ./builder.sh;
-  buildNativeInputs = [monotone];
+  nativeBuildInputs = [monotone];
 
   outputHashAlgo = "sha256";
   outputHashMode = "recursive";
diff --git a/pkgs/build-support/fetchurl/mirrors.nix b/pkgs/build-support/fetchurl/mirrors.nix
index 98dd7d8fb8ea..23404e6da5d8 100644
--- a/pkgs/build-support/fetchurl/mirrors.nix
+++ b/pkgs/build-support/fetchurl/mirrors.nix
@@ -118,7 +118,6 @@ rec {
   ];
 
   savannah = [
-    ftp://ftp.twaren.net/Unix/NonGNU/
     ftp://mirror.csclub.uwaterloo.ca/nongnu/
     ftp://mirror.publicns.net/pub/nongnu/
     ftp://savannah.c3sl.ufpr.br/
diff --git a/pkgs/build-support/gcc-cross-wrapper/builder.sh b/pkgs/build-support/gcc-cross-wrapper/builder.sh
index fae37342940f..5a5bd45a8f81 100644
--- a/pkgs/build-support/gcc-cross-wrapper/builder.sh
+++ b/pkgs/build-support/gcc-cross-wrapper/builder.sh
@@ -28,7 +28,7 @@ if test -z "$nativeLibc"; then
 
     echo "$cflagsCompile -B$libc/lib/ -idirafter $libc/include -idirafter $gcc/lib/gcc/*/*/include-fixed" > $out/nix-support/libc-cflags
 
-    echo "-L$libc/lib" > $out/nix-support/libc-ldflags
+    echo "-L$libc/lib -rpath $libc/lib -rpath-link $libc/lib" > $out/nix-support/libc-ldflags
 
     # The dynamic linker is passed in `ldflagsBefore' to allow
     # explicit overrides of the dynamic linker by callers to gcc/ld
diff --git a/pkgs/build-support/gcc-cross-wrapper/default.nix b/pkgs/build-support/gcc-cross-wrapper/default.nix
index be071607d8bd..b2e30be10ef7 100644
--- a/pkgs/build-support/gcc-cross-wrapper/default.nix
+++ b/pkgs/build-support/gcc-cross-wrapper/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation {
   utils = ./utils.sh;
   addFlags = ./add-flags;
   inherit nativeTools nativeLibc nativePrefix gcc libc binutils;
-  crossConfig = if (cross != null) then cross.config else null;
+  crossConfig = if cross != null then cross.config else null;
   gccLibs = if gcc != null then gccLibs else null;
   name = chosenName;
   langC = if nativeTools then true else gcc.langC;
diff --git a/pkgs/build-support/gcc-cross-wrapper/utils.sh b/pkgs/build-support/gcc-cross-wrapper/utils.sh
index 9a664e1d1e6b..753b3772e956 100644
--- a/pkgs/build-support/gcc-cross-wrapper/utils.sh
+++ b/pkgs/build-support/gcc-cross-wrapper/utils.sh
@@ -17,6 +17,7 @@ badPath() {
     # Otherwise, the path should refer to the store or some temporary
     # directory (including the build directory).
     test \
+        "$p" != "/dev/null" -a \
         "${p:0:${#NIX_STORE}}" != "$NIX_STORE" -a \
         "${p:0:4}" != "/tmp" -a \
         "${p:0:${#NIX_BUILD_TOP}}" != "$NIX_BUILD_TOP"
diff --git a/pkgs/build-support/gcc-upc-wrapper/add-flags b/pkgs/build-support/gcc-upc-wrapper/add-flags
deleted file mode 100644
index ace0a789628c..000000000000
--- a/pkgs/build-support/gcc-upc-wrapper/add-flags
+++ /dev/null
@@ -1,24 +0,0 @@
-# `-B@out@/bin' forces gcc to use ld-wrapper.sh when calling ld.
-export NIX_CFLAGS_COMPILE="-B@out@/bin/ $NIX_CFLAGS_COMPILE"
-
-if test -e @out@/nix-support/libc-cflags; then
-    export NIX_CFLAGS_COMPILE="$(cat @out@/nix-support/libc-cflags) $NIX_CFLAGS_COMPILE"
-fi
-
-if test -e @out@/nix-support/libc-ldflags; then
-    export NIX_LDFLAGS="$(cat @out@/nix-support/libc-ldflags) $NIX_LDFLAGS"
-fi
-
-if test -e @out@/nix-support/gcc-cflags; then
-    export NIX_CFLAGS_COMPILE="$(cat @out@/nix-support/gcc-cflags) $NIX_CFLAGS_COMPILE"
-fi
-
-if test -e @out@/nix-support/gcc-ldflags; then
-    export NIX_LDFLAGS="$(cat @out@/nix-support/gcc-ldflags) $NIX_LDFLAGS"
-fi
-
-if test -e @out@/nix-support/libc-ldflags-before; then
-    export NIX_LDFLAGS_BEFORE="$(cat @out@/nix-support/libc-ldflags-before) $NIX_LDFLAGS_BEFORE"
-fi
-
-export NIX_GCC_WRAPPER_FLAGS_SET=1
diff --git a/pkgs/build-support/gcc-upc-wrapper/builder.sh b/pkgs/build-support/gcc-upc-wrapper/builder.sh
deleted file mode 100644
index af121afe155a..000000000000
--- a/pkgs/build-support/gcc-upc-wrapper/builder.sh
+++ /dev/null
@@ -1,114 +0,0 @@
-source $stdenv/setup
-
-
-mkdir -p $out/bin
-mkdir -p $out/nix-support
-
-
-if test -z "$nativeLibc"; then
-    dynamicLinker="$libc/lib/$dynamicLinker"
-    echo $dynamicLinker > $out/nix-support/dynamic-linker
-
-    # The "-B$libc/lib/" flag is a quick hack to force gcc to link
-    # against the crt1.o from our own glibc, rather than the one in
-    # /usr/lib.  (This is only an issue when using an `impure'
-    # compiler/linker, i.e., one that searches /usr/lib and so on.)
-    echo "-B$libc/lib/ -isystem $libc/include" > $out/nix-support/libc-cflags
-    
-    echo "-L$libc/lib" > $out/nix-support/libc-ldflags
-
-    # The dynamic linker is passed in `ldflagsBefore' to allow
-    # explicit overrides of the dynamic linker by callers to gcc/ld
-    # (the *last* value counts, so ours should come first).
-    echo "-dynamic-linker $dynamicLinker" > $out/nix-support/libc-ldflags-before
-fi
-
-if test -n "$nativeTools"; then
-    gccPath="$nativePrefix/bin"
-    ldPath="$nativePrefix/bin"
-else
-    if test -e "$gcc/lib64"; then
-        gccLDFlags="$gccLDFlags -L$gcc/lib64"
-    fi
-    gccLDFlags="$gccLDFlags -L$gcc/lib"
-    echo "$gccLDFlags" > $out/nix-support/gcc-ldflags
-
-    # GCC shows $gcc/lib in `gcc -print-search-dirs', but not
-    # $gcc/lib64 (even though it does actually search there...)..
-    # This confuses libtool.  So add it to the compiler tool search
-    # path explicitly.
-    if test -e "$gcc/lib64"; then
-        gccCFlags="$gccCFlags -B$gcc/lib64"
-    fi
-    echo "$gccCFlags" > $out/nix-support/gcc-cflags
-    
-    gccPath="$gcc/bin"
-    ldPath="$binutils/bin"
-fi
-
-
-doSubstitute() {
-    local src=$1
-    local dst=$2
-    # Can't use substitute() here, because replace may not have been
-    # built yet (in the bootstrap).
-    sed \
-        -e "s^@out@^$out^g" \
-        -e "s^@shell@^$shell^g" \
-        -e "s^@gcc@^$gcc^g" \
-        -e "s^@gccProg@^$gccProg^g" \
-        -e "s^@binutils@^$binutils^g" \
-        -e "s^@libc@^$libc^g" \
-        -e "s^@ld@^$ldPath/ld^g" \
-        < "$src" > "$dst" 
-}
-
-
-# Make wrapper scripts around gcc, g++, and g77.  Also make symlinks
-# cc, c++, and f77.
-mkGccWrapper() {
-    local dst=$1
-    local src=$2
-
-    if ! test -f "$src"; then
-        echo "$src does not exist (skipping)"
-        return
-    fi
-
-    gccProg="$src"
-    doSubstitute "$gccWrapper" "$dst"
-    chmod +x "$dst"
-}
-
-mkGccWrapper $out/bin/upc $gccPath/upc
-
-
-# Create a symlink to as (the assembler).  This is useful when a
-# gcc-wrapper is installed in a user environment, as it ensures that
-# the right assembler is called.
-ln -s $ldPath/as $out/bin/as
-
-
-# Make a wrapper around the linker.
-doSubstitute "$ldWrapper" "$out/bin/ld"
-chmod +x "$out/bin/ld"
-
-
-# Emit a setup hook.  Also store the path to the original GCC and
-# Glibc.
-test -n "$gcc" && echo $gcc > $out/nix-support/orig-gcc
-test -n "$libc" && echo $libc > $out/nix-support/orig-libc
-
-doSubstitute "$addFlags" "$out/nix-support/add-flags.sh"
-
-doSubstitute "$setupHook" "$out/nix-support/setup-hook"
-
-cp -p $utils $out/nix-support/utils.sh
-
-
-# Propagate the wrapped gcc so that if you install the wrapper, you get
-# tools like gcov, the manpages, etc. as well (including for binutils
-# and Glibc).
-if test -z "$nativeTools"; then
-    echo $gcc $binutils $libc > $out/nix-support/propagated-user-env-packages
-fi
diff --git a/pkgs/build-support/gcc-upc-wrapper/default.nix b/pkgs/build-support/gcc-upc-wrapper/default.nix
deleted file mode 100644
index 6e67bbf74e6b..000000000000
--- a/pkgs/build-support/gcc-upc-wrapper/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-# The Nix `gcc' stdenv.mkDerivation is not directly usable, since it doesn't
-# know where the C library and standard header files are.  Therefore
-# the compiler produced by that package cannot be installed directly
-# in a user environment and used from the command line.  This
-# stdenv.mkDerivation provides a wrapper that sets up the right environment
-# variables so that the compiler and the linker just "work".
-
-{ name ? "", stdenv, nativeTools, nativeLibc, nativePrefix ? ""
-, gcc ? null, libc ? null, binutils ? null, shell ? ""
-}:
-
-assert nativeTools -> nativePrefix != "";
-assert !nativeTools -> gcc != null && binutils != null;
-assert !nativeLibc -> libc != null;
-
-stdenv.mkDerivation {
-  builder = ./builder.sh;
-  setupHook = ./setup-hook.sh;
-  gccWrapper = ./gcc-wrapper.sh;
-  ldWrapper = ./ld-wrapper.sh;
-  utils = ./utils.sh;
-  addFlags = ./add-flags;
-  
-  inherit nativeTools nativeLibc nativePrefix gcc libc binutils;
-  name = if name == "" then gcc.name else name;
-  langC = if nativeTools then true else gcc.langC;
-  langCC = if nativeTools then true else gcc.langCC;
-  langF77 = if nativeTools then false else gcc.langF77;
-  shell = if shell == "" then stdenv.shell else shell;
-  
-  meta = if gcc != null && (gcc ? meta) then removeAttrs gcc.meta ["priority"] else
-    { description = "System C compiler wrapper";
-    };
-
-  # The dynamic linker has different names on different Linux platforms.
-  dynamicLinker =
-    if !nativeLibc then
-      (if stdenv.system == "i686-linux" then "ld-linux.so.2" else
-       if stdenv.system == "x86_64-linux" then "ld-linux-x86-64.so.2" else
-       if stdenv.system == "powerpc-linux" then "ld.so.1" else
-       abort "don't know the name of the dynamic linker for this platform")
-    else "";
-}
diff --git a/pkgs/build-support/gcc-upc-wrapper/gcc-wrapper.sh b/pkgs/build-support/gcc-upc-wrapper/gcc-wrapper.sh
deleted file mode 100644
index 23117694767d..000000000000
--- a/pkgs/build-support/gcc-upc-wrapper/gcc-wrapper.sh
+++ /dev/null
@@ -1,139 +0,0 @@
-#! @shell@ -e
-
-if test -n "$NIX_GCC_WRAPPER_START_HOOK"; then
-    source "$NIX_GCC_WRAPPER_START_HOOK"
-fi
-
-if test -z "$NIX_GCC_WRAPPER_FLAGS_SET"; then
-    source @out@/nix-support/add-flags.sh
-fi
-
-source @out@/nix-support/utils.sh
-
-
-# Figure out if linker flags should be passed.  GCC prints annoying
-# warnings when they are not needed.
-dontLink=0
-getVersion=0
-nonFlagArgs=0
-
-for i in "$@"; do
-    if test "$i" = "-c"; then
-        dontLink=1
-    elif test "$i" = "-S"; then
-        dontLink=1
-    elif test "$i" = "-E"; then
-        dontLink=1
-    elif test "$i" = "-E"; then
-        dontLink=1
-    elif test "$i" = "-M"; then
-        dontLink=1
-    elif test "$i" = "-MM"; then
-        dontLink=1
-    elif test "${i:0:1}" != "-"; then
-        nonFlagArgs=1
-    fi
-done
-
-# If we pass a flag like -Wl, then gcc will call the linker unless it
-# can figure out that it has to do something else (e.g., because of a
-# "-c" flag).  So if no non-flag arguments are given, don't pass any
-# linker flags.  This catches cases like "gcc" (should just print
-# "gcc: no input files") and "gcc -v" (should print the version).
-if test "$nonFlagArgs" = "0"; then
-    dontLink=1
-fi
-
-
-# Optionally filter out paths not refering to the store.
-params=("$@")
-if test "$NIX_ENFORCE_PURITY" = "1" -a -n "$NIX_STORE"; then
-    rest=()
-    n=0
-    while test $n -lt ${#params[*]}; do
-        p=${params[n]}
-        p2=${params[$((n+1))]}
-        if test "${p:0:3}" = "-L/" && badPath "${p:2}"; then
-            skip $p
-        elif test "$p" = "-L" && badPath "$p2"; then
-            n=$((n + 1)); skip $p2
-        elif test "${p:0:3}" = "-I/" && badPath "${p:2}"; then
-            skip $p
-        elif test "$p" = "-I" && badPath "$p2"; then
-            n=$((n + 1)); skip $p2
-        elif test "$p" = "-isystem" && badPath "$p2"; then
-            n=$((n + 1)); skip $p2
-        else
-            rest=("${rest[@]}" "$p")
-        fi
-        n=$((n + 1))
-    done
-    params=("${rest[@]}")
-fi
-
-
-# Add the flags for the C compiler proper.
-extraAfter=($NIX_CFLAGS_COMPILE)
-extraBefore=()
-
-if test "$dontLink" != "1"; then
-
-    # Add the flags that should only be passed to the compiler when
-    # linking.
-    extraAfter=(${extraAfter[@]} $NIX_CFLAGS_LINK)
-
-    # Add the flags that should be passed to the linker (and prevent
-    # `ld-wrapper' from adding NIX_LDFLAGS again).
-    for i in $NIX_LDFLAGS_BEFORE; do
-        extraBefore=(${extraBefore[@]} "-Wl,$i")
-    done
-    for i in $NIX_LDFLAGS; do
-	if test "${i:0:3}" = "-L/"; then
-	    extraAfter=(${extraAfter[@]} "$i")
-	else
-	    extraAfter=(${extraAfter[@]} "-Wl,$i")
-	fi
-    done
-    export NIX_LDFLAGS_SET=1
-fi
-
-# As a very special hack, if the arguments are just `-v', then don't
-# add anything.  This is to prevent `gcc -v' (which normally prints
-# out the version number and returns exit code 0) from printing out
-# `No input files specified' and returning exit code 1.
-if test "$*" = "-v"; then
-    extraAfter=()
-    extraBefore=()
-fi    
-
-# Optionally print debug info.
-if test "$NIX_DEBUG" = "1"; then
-  echo "original flags to @gccProg@:" >&2
-  for i in "${params[@]}"; do
-      echo "  $i" >&2
-  done
-  echo "extraBefore flags to @gccProg@:" >&2
-  for i in ${extraBefore[@]}; do
-      echo "  $i" >&2
-  done
-  echo "extraAfter flags to @gccProg@:" >&2
-  for i in ${extraAfter[@]}; do
-      echo "  $i" >&2
-  done
-fi
-
-if test -n "$NIX_GCC_WRAPPER_EXEC_HOOK"; then
-    source "$NIX_GCC_WRAPPER_EXEC_HOOK"
-fi
-
-
-# Call the real `gcc'.  Filter out warnings from stderr about unused
-# `-B' flags, since they confuse some programs.  Deep bash magic to
-# apply grep to stderr (by swapping stdin/stderr twice).
-if test -z "$NIX_GCC_NEEDS_GREP"; then
-    @gccProg@ ${extraBefore[@]} "${params[@]}" ${extraAfter[@]}
-else
-    (@gccProg@ ${extraBefore[@]} "${params[@]}" ${extraAfter[@]} 3>&2 2>&1 1>&3- \
-        | (grep -v 'file path prefix' || true); exit ${PIPESTATUS[0]}) 3>&2 2>&1 1>&3-
-    exit $?
-fi    
diff --git a/pkgs/build-support/gcc-upc-wrapper/ld-wrapper.sh b/pkgs/build-support/gcc-upc-wrapper/ld-wrapper.sh
deleted file mode 100644
index 94241e42ce9b..000000000000
--- a/pkgs/build-support/gcc-upc-wrapper/ld-wrapper.sh
+++ /dev/null
@@ -1,145 +0,0 @@
-#! @shell@ -e
-
-if test -n "$NIX_LD_WRAPPER_START_HOOK"; then
-    source "$NIX_LD_WRAPPER_START_HOOK"
-fi
-
-if test -z "$NIX_GCC_WRAPPER_FLAGS_SET"; then
-    source @out@/nix-support/add-flags.sh
-fi
-
-source @out@/nix-support/utils.sh
-
-
-# Optionally filter out paths not refering to the store.
-params=("$@")
-if test "$NIX_ENFORCE_PURITY" = "1" -a -n "$NIX_STORE" \
-        -a \( -z "$NIX_IGNORE_LD_THROUGH_GCC" -o -z "$NIX_LDFLAGS_SET" \); then
-    rest=()
-    n=0
-    while test $n -lt ${#params[*]}; do
-        p=${params[n]}
-        p2=${params[$((n+1))]}
-        if test "${p:0:3}" = "-L/" && badPath "${p:2}"; then
-            skip $p
-        elif test "$p" = "-L" && badPath "$p2"; then
-            n=$((n + 1)); skip $p2
-        elif test "$p" = "-rpath" && badPath "$p2"; then
-            n=$((n + 1)); skip $p2
-        elif test "$p" = "-dynamic-linker" && badPath "$p2"; then
-            n=$((n + 1)); skip $p2
-        elif test "${p:0:1}" = "/" && badPath "$p"; then
-            # We cannot skip this; barf.
-            echo "impure path \`$p' used in link" >&2
-            exit 1
-        else
-            rest=("${rest[@]}" "$p")
-        fi
-        n=$((n + 1))
-    done
-    params=("${rest[@]}")
-fi
-
-
-extra=()
-extraBefore=()
-
-if test -z "$NIX_LDFLAGS_SET"; then
-    extra=(${extra[@]} $NIX_LDFLAGS)
-    extraBefore=(${extraBefore[@]} $NIX_LDFLAGS_BEFORE)
-fi
-
-
-# Add all used dynamic libraries to the rpath.
-if test "$NIX_DONT_SET_RPATH" != "1"; then
-
-    # First, find all -L... switches.
-    allParams=("${params[@]}" ${extra[@]})
-    libPath=""
-    addToLibPath() {
-        local path="$1"
-        if test "${path:0:1}" != "/"; then return 0; fi
-        case "$path" in
-            *..*|*./*|*/.*|*//*)
-                local path2
-                if path2=$(readlink -f "$path"); then
-                    path="$path2"
-                fi
-                ;;
-        esac
-        case $libPath in
-            *\ $path\ *) return 0 ;;
-        esac
-        libPath="$libPath $path "
-    }
-    n=0
-    while test $n -lt ${#allParams[*]}; do
-        p=${allParams[n]}
-        p2=${allParams[$((n+1))]}
-        if test "${p:0:3}" = "-L/"; then
-            addToLibPath ${p:2}
-        elif test "$p" = "-L"; then
-            addToLibPath ${p2}
-            n=$((n + 1))
-        fi
-        n=$((n + 1))
-    done
-
-    # Second, for each -l... switch, find the directory containing the
-    # library and add it to the rpath.
-    rpath=""
-    addToRPath() {
-        # If the path is not in the store, don't add it to the rpath.
-        # This typically happens for libraries in /tmp that are later
-        # copied to $out/lib.  If not, we're screwed.
-        if test "${1:0:${#NIX_STORE}}" != "$NIX_STORE"; then return 0; fi
-        case $rpath in
-            *\ $1\ *) return 0 ;;
-        esac
-        rpath="$rpath $1 "
-    }
-    findLib() {
-        for i in $libPath; do
-            if test -f $i/lib$1.so; then
-                addToRPath $i
-            fi
-        done
-    }
-    n=0
-    while test $n -lt ${#allParams[*]}; do
-        p=${allParams[n]}
-        p2=${allParams[$((n+1))]}
-        if test "${p:0:2}" = "-l"; then
-            findLib ${p:2}
-        elif test "$p" = "-l"; then
-            # I haven't seen `-l foo', but you never know...
-            findLib ${p2}
-            n=$((n + 1))
-        fi
-        n=$((n + 1))
-    done
-
-    # Finally, add `-rpath' switches.
-    for i in $rpath; do
-        extra=(${extra[@]} -rpath $i)
-    done
-fi
-
-
-# Optionally print debug info.
-if test "$NIX_DEBUG" = "1"; then
-  echo "original flags to @ld@:" >&2
-  for i in "${params[@]}"; do
-      echo "  $i" >&2
-  done
-  echo "extra flags to @ld@:" >&2
-  for i in ${extra[@]}; do
-      echo "  $i" >&2
-  done
-fi
-
-if test -n "$NIX_LD_WRAPPER_EXEC_HOOK"; then
-    source "$NIX_LD_WRAPPER_EXEC_HOOK"
-fi
-
-exec @ld@ ${extraBefore[@]} "${params[@]}" ${extra[@]}
diff --git a/pkgs/build-support/gcc-upc-wrapper/setup-hook.sh b/pkgs/build-support/gcc-upc-wrapper/setup-hook.sh
deleted file mode 100644
index 60aad0fe4dc6..000000000000
--- a/pkgs/build-support/gcc-upc-wrapper/setup-hook.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-addCVars () {
-    if test -d $1/include; then
-        export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$1/include"
-    fi
-
-    if test -d $1/lib64; then
-        export NIX_LDFLAGS="$NIX_LDFLAGS -L$1/lib64"
-    fi
-
-    if test -d $1/lib; then
-        export NIX_LDFLAGS="$NIX_LDFLAGS -L$1/lib"
-    fi
-}
-
-envHooks=(${envHooks[@]} addCVars)
-
-# Note: these come *after* $out in the PATH (see setup.sh).
-
-if test -n "@gcc@"; then
-    PATH=$PATH:@gcc@/bin
-fi
-
-if test -n "@binutils@"; then
-    PATH=$PATH:@binutils@/bin
-fi
-
-if test -n "@libc@"; then
-    PATH=$PATH:@libc@/bin
-fi
diff --git a/pkgs/build-support/gcc-upc-wrapper/utils.sh b/pkgs/build-support/gcc-upc-wrapper/utils.sh
deleted file mode 100644
index 9a664e1d1e6b..000000000000
--- a/pkgs/build-support/gcc-upc-wrapper/utils.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-skip () {
-    if test "$NIX_DEBUG" = "1"; then
-        echo "skipping impure path $1" >&2
-    fi
-}
-
-
-# Checks whether a path is impure.  E.g., `/lib/foo.so' is impure, but
-# `/nix/store/.../lib/foo.so' isn't.
-badPath() {
-    local p=$1
-    
-    # Relative paths are okay (since they're presumably relative to
-    # the temporary build directory).
-    if test "${p:0:1}" != "/"; then return 1; fi
-    
-    # Otherwise, the path should refer to the store or some temporary
-    # directory (including the build directory).
-    test \
-        "${p:0:${#NIX_STORE}}" != "$NIX_STORE" -a \
-        "${p:0:4}" != "/tmp" -a \
-        "${p:0:${#NIX_BUILD_TOP}}" != "$NIX_BUILD_TOP"
-}
diff --git a/pkgs/build-support/gcc-wrapper/builder.sh b/pkgs/build-support/gcc-wrapper/builder.sh
index ad2b8003f090..ed7ad0a50b73 100644
--- a/pkgs/build-support/gcc-wrapper/builder.sh
+++ b/pkgs/build-support/gcc-wrapper/builder.sh
@@ -31,7 +31,7 @@ if test -z "$nativeLibc"; then
     # The dynamic linker is passed in `ldflagsBefore' to allow
     # explicit overrides of the dynamic linker by callers to gcc/ld
     # (the *last* value counts, so ours should come first).
-    echo "-dynamic-linker $dynamicLinker" > $out/nix-support/libc-ldflags-before
+    echo "-dynamic-linker" $dynamicLinker > $out/nix-support/libc-ldflags-before
 fi
 
 if test -n "$nativeTools"; then
@@ -152,6 +152,8 @@ fi
 
 mkGccWrapper $out/bin/gcj $gccPath/gcj || true
 
+mkGccWrapper $out/bin/gccgo $gccPath/gccgo || true
+
 mkGccWrapper $out/bin/gnatgcc $gccPath/gnatgcc || true
 mkGnatWrapper $out/bin/gnatmake $gccPath/gnatmake || true
 mkGnatWrapper $out/bin/gnatbind $gccPath/gnatbind || true
diff --git a/pkgs/build-support/gcc-wrapper/buildergo.sh b/pkgs/build-support/gcc-wrapper/buildergo.sh
deleted file mode 100644
index cb6bfd7f0517..000000000000
--- a/pkgs/build-support/gcc-wrapper/buildergo.sh
+++ /dev/null
@@ -1,194 +0,0 @@
-source $stdenv/setup
-
-
-mkdir -p $out/bin
-mkdir -p $out/nix-support
-
-
-if test -z "$nativeLibc"; then
-    dynamicLinker="$libc/lib/$dynamicLinker"
-    echo $dynamicLinker > $out/nix-support/dynamic-linker
-
-    if test -e $libc/lib/32/ld-linux.so.2; then
-        echo $libc/lib/32/ld-linux.so.2 > $out/nix-support/dynamic-linker-m32
-    fi
-
-    # The "-B$libc/lib/" flag is a quick hack to force gcc to link
-    # against the crt1.o from our own glibc, rather than the one in
-    # /usr/lib.  (This is only an issue when using an `impure'
-    # compiler/linker, i.e., one that searches /usr/lib and so on.)
-    #
-    # Unfortunately, setting -B appears to override the default search
-    # path. Thus, the gcc-specific "../includes-fixed" directory is
-    # now longer searched and glibc's <limits.h> header fails to
-    # compile, because it uses "#include_next <limits.h>" to find the
-    # limits.h file in ../includes-fixed. To remedy the problem,
-    # another -idirafter is necessary to add that directory again.
-    echo "-B$libc/lib/ -idirafter $libc/include -idirafter $gcc/lib/gcc/*/*/include-fixed" > $out/nix-support/libc-cflags
-
-    echo "-L$libc/lib" > $out/nix-support/libc-ldflags
-
-    # The dynamic linker is passed in `ldflagsBefore' to allow
-    # explicit overrides of the dynamic linker by callers to gcc/ld
-    # (the *last* value counts, so ours should come first).
-    echo "-dynamic-linker $dynamicLinker" > $out/nix-support/libc-ldflags-before
-fi
-
-if test -n "$nativeTools"; then
-    gccPath="$nativePrefix/bin"
-    ldPath="$nativePrefix/bin"
-else
-    if test -e "$gcc/lib64"; then
-        gccLDFlags="$gccLDFlags -L$gcc/lib64"
-    fi
-    gccLDFlags="$gccLDFlags -L$gcc/lib"
-    if [ -n "$langVhdl" ]; then
-        gccLDFlags="$gccLDFlags -L$zlib/lib"
-    fi
-    echo "$gccLDFlags" > $out/nix-support/gcc-ldflags
-
-    # GCC shows $gcc/lib in `gcc -print-search-dirs', but not
-    # $gcc/lib64 (even though it does actually search there...)..
-    # This confuses libtool.  So add it to the compiler tool search
-    # path explicitly.
-    if test -e "$gcc/lib64"; then
-        gccCFlags="$gccCFlags -B$gcc/lib64"
-    fi
-
-    # Find the gcc libraries path (may work only without multilib)
-    if [ -n "$langAda" ]; then
-        basePath=`echo $gcc/lib/*/*/*`
-        gccCFlags="$gccCFlags -B$basePath -I$basePath/adainclude"
-
-        gnatCFlags="-aI$basePath/adainclude -aO$basePath/adalib"
-        echo "$gnatCFlags" > $out/nix-support/gnat-cflags
-    fi
-    echo "$gccCFlags" > $out/nix-support/gcc-cflags
-    
-    gccPath="$gcc/bin"
-    ldPath="$binutils/bin"
-fi
-
-
-doSubstitute() {
-    local src=$1
-    local dst=$2
-    # Can't use substitute() here, because replace may not have been
-    # built yet (in the bootstrap).
-    sed \
-        -e "s^@out@^$out^g" \
-        -e "s^@shell@^$shell^g" \
-        -e "s^@gcc@^$gcc^g" \
-        -e "s^@gccProg@^$gccProg^g" \
-        -e "s^@gnatProg@^$gnatProg^g" \
-        -e "s^@gnatlinkProg@^$gnatlinkProg^g" \
-        -e "s^@binutils@^$binutils^g" \
-        -e "s^@coreutils@^$coreutils^g" \
-        -e "s^@libc@^$libc^g" \
-        -e "s^@ld@^$ldPath/ld^g" \
-        < "$src" > "$dst" 
-}
-
-
-# Make wrapper scripts around gcc, g++, and gfortran.  Also make symlinks
-# cc, c++, and f77.
-mkGccWrapper() {
-    local dst=$1
-    local src=$2
-
-    if ! test -f "$src"; then
-        echo "$src does not exist (skipping)"
-        return 1
-    fi
-
-    gccProg="$src"
-    doSubstitute "$gccWrapper" "$dst"
-    chmod +x "$dst"
-}
-
-mkGnatWrapper() {
-    local dst=$1
-    local src=$2
-
-    if ! test -f "$src"; then
-        echo "$src does not exist (skipping)"
-        return 1
-    fi
-
-    gnatProg="$src"
-    doSubstitute "$gnatWrapper" "$dst"
-    chmod +x "$dst"
-}
-
-mkGnatLinkWrapper() {
-    local dst=$1
-    local src=$2
-
-    if ! test -f "$src"; then
-        echo "$src does not exist (skipping)"
-        return 1
-    fi
-
-    gnatlinkProg="$src"
-    doSubstitute "$gnatlinkWrapper" "$dst"
-    chmod +x "$dst"
-}
-
-if mkGccWrapper $out/bin/gcc $gccPath/gcc
-then
-    ln -sv gcc $out/bin/cc
-fi
-
-if mkGccWrapper $out/bin/g++ $gccPath/g++
-then
-    ln -sv g++ $out/bin/c++
-fi
-
-if mkGccWrapper $out/bin/gfortran $gccPath/gfortran
-then
-    ln -sv gfortran $out/bin/g77
-    ln -sv gfortran $out/bin/f77
-fi
-
-mkGccWrapper $out/bin/gcj $gccPath/gcj || true
-
-mkGccWrapper $out/bin/gccgo $gccPath/gccgo || true
-
-mkGccWrapper $out/bin/gnatgcc $gccPath/gnatgcc || true
-mkGnatWrapper $out/bin/gnatmake $gccPath/gnatmake || true
-mkGnatWrapper $out/bin/gnatbind $gccPath/gnatbind || true
-mkGnatLinkWrapper $out/bin/gnatlink $gccPath/gnatlink || true
-
-if [ -f $gccPath/ghdl ]; then
-    ln -sf $gccPath/ghdl $out/bin/ghdl
-fi
-
-# Create a symlink to as (the assembler).  This is useful when a
-# gcc-wrapper is installed in a user environment, as it ensures that
-# the right assembler is called.
-ln -s $ldPath/as $out/bin/as
-
-
-# Make a wrapper around the linker.
-doSubstitute "$ldWrapper" "$out/bin/ld"
-chmod +x "$out/bin/ld"
-
-
-# Emit a setup hook.  Also store the path to the original GCC and
-# Glibc.
-test -n "$gcc" && echo $gcc > $out/nix-support/orig-gcc
-test -n "$libc" && echo $libc > $out/nix-support/orig-libc
-
-doSubstitute "$addFlags" "$out/nix-support/add-flags.sh"
-
-doSubstitute "$setupHook" "$out/nix-support/setup-hook"
-
-cp -p $utils $out/nix-support/utils.sh
-
-
-# Propagate the wrapped gcc so that if you install the wrapper, you get
-# tools like gcov, the manpages, etc. as well (including for binutils
-# and Glibc).
-if test -z "$nativeTools"; then
-    echo $gcc $binutils $libc > $out/nix-support/propagated-user-env-packages
-fi
diff --git a/pkgs/build-support/gcc-wrapper/default.nix b/pkgs/build-support/gcc-wrapper/default.nix
index 5e50a5c7dfb5..87617621e64c 100644
--- a/pkgs/build-support/gcc-wrapper/default.nix
+++ b/pkgs/build-support/gcc-wrapper/default.nix
@@ -25,7 +25,7 @@ let
   langGo = if nativeTools then false else gcc ? langGo && gcc.langGo;
 in
 
-stdenv.mkDerivation ({
+stdenv.mkDerivation {
   name =
     (if name != "" then name else gccName + "-wrapper") +
     (if gcc != null && gccVersion != "" then "-" + gccVersion else "");
@@ -50,17 +50,17 @@ stdenv.mkDerivation ({
   langFortran = if nativeTools then false else gcc ? langFortran;
   langAda = if nativeTools then false else gcc ? langAda && gcc.langAda;
   langVhdl = if nativeTools then false else gcc ? langVhdl && gcc.langVhdl;
-  zlib = if (gcc != null && gcc ? langVhdl) then zlib else null;
+  zlib = if gcc != null && gcc ? langVhdl then zlib else null;
   shell = if shell == "" then stdenv.shell else
     if builtins.isAttrs shell then (shell + shell.shellPath)
     else shell;
 
   crossAttrs = {
-    shell = shell.hostDrv + shell.hostDrv.shellPath;
-    libc = libc.hostDrv;
-    coreutils = coreutils.hostDrv;
-    binutils = binutils.hostDrv;
-    gcc = gcc.hostDrv;
+    shell = shell.crossDrv + shell.crossDrv.shellPath;
+    libc = libc.crossDrv;
+    coreutils = coreutils.crossDrv;
+    binutils = binutils.crossDrv;
+    gcc = gcc.crossDrv;
     #
     # This is not the best way to do this. I think the reference should be
     # the style in the gcc-cross-wrapper, but to keep a stable stdenv now I
@@ -85,15 +85,10 @@ stdenv.mkDerivation ({
     if !nativeLibc then
       (if stdenv.system == "i686-linux" then "ld-linux.so.2" else
        if stdenv.system == "x86_64-linux" then "ld-linux-x86-64.so.2" else
-       if stdenv.isArm then "ld-linux.so.3" else
+       # ARM with a wildcard, which can be "" or "-armhf".
+       if stdenv.isArm then "ld-linux*.so.3" else
        if stdenv.system == "powerpc-linux" then "ld.so.1" else
        if stdenv.system == "mips64el-linux" then "ld.so.1" else
        abort "don't know the name of the dynamic linker for this platform")
     else "";
 }
-#  This go wrapper should be reworked in stdenv-updates.
-// (if langGo then
-{
-  inherit langGo;
-  builder = ./buildergo.sh;
-} else {}))
diff --git a/pkgs/build-support/gcc-wrapper/utils.sh b/pkgs/build-support/gcc-wrapper/utils.sh
index 9a664e1d1e6b..753b3772e956 100644
--- a/pkgs/build-support/gcc-wrapper/utils.sh
+++ b/pkgs/build-support/gcc-wrapper/utils.sh
@@ -17,6 +17,7 @@ badPath() {
     # Otherwise, the path should refer to the store or some temporary
     # directory (including the build directory).
     test \
+        "$p" != "/dev/null" -a \
         "${p:0:${#NIX_STORE}}" != "$NIX_STORE" -a \
         "${p:0:4}" != "/tmp" -a \
         "${p:0:${#NIX_BUILD_TOP}}" != "$NIX_BUILD_TOP"
diff --git a/pkgs/build-support/kernel/make-initrd.nix b/pkgs/build-support/kernel/make-initrd.nix
index 38def9c59a69..4ddf0706e03e 100644
--- a/pkgs/build-support/kernel/make-initrd.nix
+++ b/pkgs/build-support/kernel/make-initrd.nix
@@ -22,7 +22,7 @@ in
 stdenv.mkDerivation {
   name = "initrd";
   builder = ./make-initrd.sh;
-  buildNativeInputs = inputsFun stdenv.platform.uboot;
+  nativeBuildInputs = inputsFun stdenv.platform.uboot;
 
   makeUInitrd = makeUInitrdFun stdenv.platform.uboot;
 
@@ -37,7 +37,7 @@ stdenv.mkDerivation {
   pathsFromGraph = ./paths-from-graph.pl;
 
   crossAttrs = {
-    buildNativeInputs = inputsFun stdenv.cross.platform.uboot;
+    nativeBuildInputs = inputsFun stdenv.cross.platform.uboot;
     makeUInitrd = makeUInitrdFun stdenv.cross.platform.uboot;
   };
   inherit compressor;
diff --git a/pkgs/build-support/setup-hooks/autoreconf.sh b/pkgs/build-support/setup-hooks/autoreconf.sh
index 027c83221633..f70a10870843 100644
--- a/pkgs/build-support/setup-hooks/autoreconf.sh
+++ b/pkgs/build-support/setup-hooks/autoreconf.sh
@@ -1,7 +1,7 @@
 preConfigurePhases+=" autoreconfPhase"
 
 for i in @autoconf@ @automake@ @libtool@; do
-    findInputs $i nativePkgs propagated-build-native-inputs
+    findInputs $i nativePkgs propagated-native-build-inputs
 done
 
 autoreconfPhase() {
diff --git a/pkgs/build-support/trivial-builders.nix b/pkgs/build-support/trivial-builders.nix
index 474d43c30fff..5ae2e7b4fc9b 100644
--- a/pkgs/build-support/trivial-builders.nix
+++ b/pkgs/build-support/trivial-builders.nix
@@ -55,7 +55,7 @@ rec {
         mkdir -p $out/nix-support
         cp ${script} $out/nix-support/setup-hook
       '' + stdenv.lib.optionalString (deps != []) ''
-        echo ${toString deps} > $out/nix-support/propagated-build-native-inputs
+        echo ${toString deps} > $out/nix-support/propagated-native-build-inputs
       '' + stdenv.lib.optionalString (substitutions != {}) ''
         substituteAll ${script} $out/nix-support/setup-hook
       '');
diff --git a/pkgs/data/documentation/gnome-user-docs/default.nix b/pkgs/data/documentation/gnome-user-docs/default.nix
index f92882b9a832..9e6639c0a0ad 100644
--- a/pkgs/data/documentation/gnome-user-docs/default.nix
+++ b/pkgs/data/documentation/gnome-user-docs/default.nix
@@ -8,5 +8,5 @@ stdenv.mkDerivation {
     sha256 = "1ka0nw2kc85p10y8x31v0wv06a88k7qrgafp4ys04y9fzz0rkcjj";
   };
 
-  buildNativeInputs = [ itstool libxml2 gettext ];
+  nativeBuildInputs = [ itstool libxml2 gettext ];
 }
diff --git a/pkgs/data/misc/gsettings-desktop-schemas/default.nix b/pkgs/data/misc/gsettings-desktop-schemas/default.nix
index 4527b2fec0b1..c934863d75d7 100644
--- a/pkgs/data/misc/gsettings-desktop-schemas/default.nix
+++ b/pkgs/data/misc/gsettings-desktop-schemas/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [ glib ];
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
 
   meta = {
     inherit (glib.meta) maintainers platforms;
diff --git a/pkgs/data/misc/xkeyboard-config/default.nix b/pkgs/data/misc/xkeyboard-config/default.nix
index 67bb79725fb9..15574a1dc366 100644
--- a/pkgs/data/misc/xkeyboard-config/default.nix
+++ b/pkgs/data/misc/xkeyboard-config/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ gettext ];
 
-  buildNativeInputs = [ perl perlXMLParser intltool xkbcomp ];
+  nativeBuildInputs = [ perl perlXMLParser intltool xkbcomp ];
 
   patches = [ ./eo.patch ];
 
diff --git a/pkgs/desktops/gnome-2/desktop/gnome-icon-theme/default.nix b/pkgs/desktops/gnome-2/desktop/gnome-icon-theme/default.nix
index a1dbf78bba26..fffffcb0c2d0 100644
--- a/pkgs/desktops/gnome-2/desktop/gnome-icon-theme/default.nix
+++ b/pkgs/desktops/gnome-2/desktop/gnome-icon-theme/default.nix
@@ -10,5 +10,5 @@ stdenv.mkDerivation rec {
     sha256 = "cc7f15e54e2640697b58c26e74cc3f6ebadeb4ef6622bffe9c1e6874cc3478d6";
   };
   
-  buildNativeInputs = [ pkgconfig intltool iconnamingutils gtk ];
+  nativeBuildInputs = [ pkgconfig intltool iconnamingutils gtk ];
 }
diff --git a/pkgs/desktops/gnome-2/desktop/gnome-keyring/default.nix b/pkgs/desktops/gnome-2/desktop/gnome-keyring/default.nix
index a0c11d1b85e2..f31875bed91c 100644
--- a/pkgs/desktops/gnome-2/desktop/gnome-keyring/default.nix
+++ b/pkgs/desktops/gnome-2/desktop/gnome-keyring/default.nix
@@ -13,5 +13,5 @@ stdenv.mkDerivation {
 
   propagatedBuildInputs = [ glib libtasn1 ];
 
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
 }
diff --git a/pkgs/desktops/gnome-2/desktop/gnome-panel/default.nix b/pkgs/desktops/gnome-2/desktop/gnome-panel/default.nix
index a1427d822834..6ca2a9142c15 100644
--- a/pkgs/desktops/gnome-2/desktop/gnome-panel/default.nix
+++ b/pkgs/desktops/gnome-2/desktop/gnome-panel/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
       libtasn1 libtool libcanberra
     ];
 
-  buildNativeInputs = [ pkgconfig intltool which ];
+  nativeBuildInputs = [ pkgconfig intltool which ];
   configureFlags = "--disable-scrollkeeper";
 
   NIX_CFLAGS_COMPILE="-I${GConf}/include/gconf/2";
diff --git a/pkgs/desktops/gnome-2/desktop/gnome-session/default.nix b/pkgs/desktops/gnome-2/desktop/gnome-session/default.nix
index 8704d22d2f27..ccabff27549f 100644
--- a/pkgs/desktops/gnome-2/desktop/gnome-session/default.nix
+++ b/pkgs/desktops/gnome-2/desktop/gnome-session/default.nix
@@ -13,5 +13,5 @@ stdenv.mkDerivation {
     [ dbus_glib gtk libXau libXtst inputproto libglade startup_notification
       GConf upower
     ];
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
 }
diff --git a/pkgs/desktops/gnome-2/desktop/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-2/desktop/gnome-settings-daemon/default.nix
index 47ddde9029f2..dca3b3a16a2e 100644
--- a/pkgs/desktops/gnome-2/desktop/gnome-settings-daemon/default.nix
+++ b/pkgs/desktops/gnome-2/desktop/gnome-settings-daemon/default.nix
@@ -14,5 +14,5 @@ stdenv.mkDerivation {
       pulseaudio
     ];
 
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
 }
diff --git a/pkgs/desktops/gnome-2/desktop/gvfs/default.nix b/pkgs/desktops/gnome-2/desktop/gvfs/default.nix
index bae6c19c6ea6..9e7949047c7f 100644
--- a/pkgs/desktops/gnome-2/desktop/gvfs/default.nix
+++ b/pkgs/desktops/gnome-2/desktop/gvfs/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
       libgnome_keyring libsoup avahi libtool libxslt docbook_xsl
     ];
 
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
 
   enableParallelBuilding = true;
 }
diff --git a/pkgs/desktops/gnome-2/desktop/zenity/default.nix b/pkgs/desktops/gnome-2/desktop/zenity/default.nix
index 9e6785146894..3ab8838c97b6 100644
--- a/pkgs/desktops/gnome-2/desktop/zenity/default.nix
+++ b/pkgs/desktops/gnome-2/desktop/zenity/default.nix
@@ -12,5 +12,5 @@ stdenv.mkDerivation {
   configureFlags = "--disable-scrollkeeper";
   buildInputs = [ gtk libglade libxml2 libxslt libX11 ];
 
-  buildNativeInputs = [ pkgconfig intltool gnome_doc_utils which ];
+  nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which ];
 }
diff --git a/pkgs/desktops/gnome-2/platform/GConf/default.nix b/pkgs/desktops/gnome-2/platform/GConf/default.nix
index a75e089b5080..4769247a5162 100644
--- a/pkgs/desktops/gnome-2/platform/GConf/default.nix
+++ b/pkgs/desktops/gnome-2/platform/GConf/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
   buildInputs = [ ORBit2 dbus_libs dbus_glib libxml2 polkit gtk ];
   propagatedBuildInputs = [ glib ];
 
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
 
   configureFlags = "--with-gtk=2.0";
 }
diff --git a/pkgs/desktops/gnome-2/platform/ORBit2/default.nix b/pkgs/desktops/gnome-2/platform/ORBit2/default.nix
index e58dd38e369e..ec6931724bc2 100644
--- a/pkgs/desktops/gnome-2/platform/ORBit2/default.nix
+++ b/pkgs/desktops/gnome-2/platform/ORBit2/default.nix
@@ -9,6 +9,6 @@ stdenv.mkDerivation rec {
     sha256 = "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   propagatedBuildInputs = [ glib libIDL ];
 }
diff --git a/pkgs/desktops/gnome-2/platform/gconfmm/default.nix b/pkgs/desktops/gnome-2/platform/gconfmm/default.nix
index 0597da92e68a..8f6075375d6d 100644
--- a/pkgs/desktops/gnome-2/platform/gconfmm/default.nix
+++ b/pkgs/desktops/gnome-2/platform/gconfmm/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "a5e0092bb73371a3ca76b2ecae794778f3a9409056fee9b28ec1db072d8e6108";
   };
 
-  buildNativeInputs = [pkgconfig];
+  nativeBuildInputs = [pkgconfig];
 
   propagatedBuildInputs = [ GConf gtkmm glibmm ];
 
diff --git a/pkgs/desktops/gnome-2/platform/gtkglextmm/default.nix b/pkgs/desktops/gnome-2/platform/gtkglextmm/default.nix
index 38b816ccc77f..93bb44c54e1e 100644
--- a/pkgs/desktops/gnome-2/platform/gtkglextmm/default.nix
+++ b/pkgs/desktops/gnome-2/platform/gtkglextmm/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   patches = [ ./gdk.patch ];
 
-  buildNativeInputs = [pkgconfig];
+  nativeBuildInputs = [pkgconfig];
 
   propagatedBuildInputs = [ gtkglext gtkmm gtk mesa gdk_pixbuf ];
 
diff --git a/pkgs/desktops/gnome-2/platform/libIDL/default.nix b/pkgs/desktops/gnome-2/platform/libIDL/default.nix
index 5783976d9a22..64f2b19c3e9f 100644
--- a/pkgs/desktops/gnome-2/platform/libIDL/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libIDL/default.nix
@@ -11,5 +11,5 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ glib gettext ];
 
-  buildNativeInputs = [ flex bison pkgconfig ];
+  nativeBuildInputs = [ flex bison pkgconfig ];
 }
diff --git a/pkgs/desktops/gnome-2/platform/libbonobo/default.nix b/pkgs/desktops/gnome-2/platform/libbonobo/default.nix
index bd268e5ec43a..79c41f924d3f 100644
--- a/pkgs/desktops/gnome-2/platform/libbonobo/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libbonobo/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   };
 
   preConfigure = "export USER=`whoami`";
-  buildNativeInputs = [ flex bison pkgconfig intltool procps ];
+  nativeBuildInputs = [ flex bison pkgconfig intltool procps ];
   buildInputs = [ libxml2 ];
   propagatedBuildInputs = [ popt glib ORBit2 ];
 }
diff --git a/pkgs/desktops/gnome-2/platform/libbonoboui/default.nix b/pkgs/desktops/gnome-2/platform/libbonoboui/default.nix
index 6eefd42b38db..55a4ecec6959 100644
--- a/pkgs/desktops/gnome-2/platform/libbonoboui/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libbonoboui/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs";
   };
 
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
   buildInputs = [ bison popt gtk libxml2 GConf libglade libtool ];
   propagatedBuildInputs = [ libbonobo libgnomecanvas libgnome ];
 }
diff --git a/pkgs/desktops/gnome-2/platform/libgnome/default.nix b/pkgs/desktops/gnome-2/platform/libgnome/default.nix
index 76f213b5fa89..37dbfd129611 100644
--- a/pkgs/desktops/gnome-2/platform/libgnome/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libgnome/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj";
   };
   
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ popt zlib intltool GConf gnome_vfs libcanberra libtool ];
   propagatedBuildInputs = [ glib libbonobo ];
 }
diff --git a/pkgs/desktops/gnome-2/platform/libgnomecanvas/default.nix b/pkgs/desktops/gnome-2/platform/libgnomecanvas/default.nix
index bf2c0360aa21..dd6ebbb91745 100644
--- a/pkgs/desktops/gnome-2/platform/libgnomecanvas/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libgnomecanvas/default.nix
@@ -10,6 +10,6 @@ stdenv.mkDerivation rec {
   };
   
   buildInputs = [ libglade ];
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
   propagatedBuildInputs = [ libart_lgpl gtk ];
 }
diff --git a/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix b/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix
index 379602c6ea37..cc8db43ad130 100644
--- a/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf";
   };
   
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
   buildInputs =
     [ xlibs.xlibs libxml2 GConf pango glib libgnome_keyring libglade libtool ];
 
diff --git a/pkgs/desktops/gnome-2/platform/libunique/default.nix b/pkgs/desktops/gnome-2/platform/libunique/default.nix
index 2661307c9d2a..6b9cee800429 100644
--- a/pkgs/desktops/gnome-2/platform/libunique/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libunique/default.nix
@@ -9,6 +9,6 @@ stdenv.mkDerivation rec {
     sha256 = "1fsgvmncd9caw552lyfg8swmsd6bh4ijjsph69bwacwfxwf09j75";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ gtk ];
 }
diff --git a/pkgs/desktops/kde-4.7/kde-wallpapers.nix b/pkgs/desktops/kde-4.7/kde-wallpapers.nix
index 97773ffadcd5..57f2b643aa4d 100644
--- a/pkgs/desktops/kde-4.7/kde-wallpapers.nix
+++ b/pkgs/desktops/kde-4.7/kde-wallpapers.nix
@@ -1,7 +1,7 @@
 { kde, cmake }:
 
 kde {
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   patches = [ ./files/kde-wallpapers-buildsystem.patch ];
 
diff --git a/pkgs/desktops/kde-4.7/kde-workspace.nix b/pkgs/desktops/kde-4.7/kde-workspace.nix
index 1ece3f490761..827307029890 100644
--- a/pkgs/desktops/kde-4.7/kde-workspace.nix
+++ b/pkgs/desktops/kde-4.7/kde-workspace.nix
@@ -15,7 +15,7 @@ kde {
       libusb python libqalculate kdepimlibs pam prison akonadi
     ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   preConfigure =
    ''
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/kscreensaver.nix b/pkgs/desktops/kde-4.7/kdeartwork/kscreensaver.nix
index 72676e35f715..7028b9db228d 100644
--- a/pkgs/desktops/kde-4.7/kdeartwork/kscreensaver.nix
+++ b/pkgs/desktops/kde-4.7/kdeartwork/kscreensaver.nix
@@ -3,7 +3,7 @@
 kde {
   buildInputs = [ kdelibs xscreensaver kde_workspace eigen libkexiv2 libXt ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   preConfigure = "cp -v ${./FindXscreensaver.cmake} cmake/modules/FindXscreensaver.cmake";
 
diff --git a/pkgs/desktops/kde-4.7/kdebindings/smokegen.nix b/pkgs/desktops/kde-4.7/kdebindings/smokegen.nix
index df26eb2717eb..43f54b552e5a 100644
--- a/pkgs/desktops/kde-4.7/kdebindings/smokegen.nix
+++ b/pkgs/desktops/kde-4.7/kdebindings/smokegen.nix
@@ -2,7 +2,7 @@
 
 kde {
   buildInputs = [ qt4 ];
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   patchPhase = "sed -e /RPATH/d -i CMakeLists.txt";
 
diff --git a/pkgs/desktops/kde-4.7/kdebindings/smokeqt.nix b/pkgs/desktops/kde-4.7/kdebindings/smokeqt.nix
index 0d0aa816a941..29e25093d11b 100644
--- a/pkgs/desktops/kde-4.7/kdebindings/smokeqt.nix
+++ b/pkgs/desktops/kde-4.7/kdebindings/smokeqt.nix
@@ -2,8 +2,8 @@
 
 kde {
   propagatedBuildInputs = [ qt4 phonon qimageblitz ];
-  buildNativeInputs = [ cmake ];
-  propagatedBuildNativeInputs = [ smokegen ];
+  nativeBuildInputs = [ cmake ];
+  propagatedNativeBuildInputs = [ smokegen ];
 
   meta = {
     description = "C++ parser used to generate language bindings for Qt/KDE";
diff --git a/pkgs/desktops/kde-4.7/kdegames.nix b/pkgs/desktops/kde-4.7/kdegames.nix
index 03ecfbd88b4b..dfca49be12fd 100644
--- a/pkgs/desktops/kde-4.7/kdegames.nix
+++ b/pkgs/desktops/kde-4.7/kdegames.nix
@@ -7,7 +7,7 @@ kde rec {
 
   pythonPath = [ pythonPackages.twisted pykde4 ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   # TODO: ggz
 
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/gwenview.nix b/pkgs/desktops/kde-4.7/kdegraphics/gwenview.nix
index b6b659c39474..c03c82469e66 100644
--- a/pkgs/desktops/kde-4.7/kdegraphics/gwenview.nix
+++ b/pkgs/desktops/kde-4.7/kdegraphics/gwenview.nix
@@ -6,7 +6,7 @@ kde {
   buildInputs =
     [ kdelibs exiv2 shared_desktop_ontologies kde_baseapps libkipi libjpeg ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     description = "Gwenview, the KDE image viewer";
diff --git a/pkgs/desktops/kde-4.7/kdelibs.nix b/pkgs/desktops/kde-4.7/kdelibs.nix
index 429fbb2a709c..41a648d10561 100644
--- a/pkgs/desktops/kde-4.7/kdelibs.nix
+++ b/pkgs/desktops/kde-4.7/kdelibs.nix
@@ -15,7 +15,7 @@ kde {
 
   propagatedBuildInputs = [ qt4 soprano strigi phonon ];
 
-  propagatedBuildNativeInputs = [ automoc4 cmake perl shared_mime_info ];
+  propagatedNativeBuildInputs = [ automoc4 cmake perl shared_mime_info ];
 
   # TODO: make sonnet plugins (dictionaries) really work.
   # There are a few hardcoded paths.
diff --git a/pkgs/desktops/kde-4.7/kdenetwork/kopete.nix b/pkgs/desktops/kde-4.7/kdenetwork/kopete.nix
index 704f6d04dfe2..440e8595704a 100644
--- a/pkgs/desktops/kde-4.7/kdenetwork/kopete.nix
+++ b/pkgs/desktops/kde-4.7/kdenetwork/kopete.nix
@@ -7,7 +7,7 @@ kde {
     jasper libidn mediastreamer msilbc libxml2 libxslt giflib libgadu boost qca2
     gpgme sqlite ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   KDEDIRS = libktorrent;
 
diff --git a/pkgs/desktops/kde-4.7/kdeplasma-addons.nix b/pkgs/desktops/kde-4.7/kdeplasma-addons.nix
index ddffa48dc55b..30a32b465b60 100644
--- a/pkgs/desktops/kde-4.7/kdeplasma-addons.nix
+++ b/pkgs/desktops/kde-4.7/kdeplasma-addons.nix
@@ -11,7 +11,7 @@ kde {
     attica python qca2 qimageblitz kdepimlibs
     libqalculate libXtst shared_desktop_ontologies marble libkexiv2];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     description = "KDE Plasma Addons";
diff --git a/pkgs/desktops/kde-4.7/oxygen-icons.nix b/pkgs/desktops/kde-4.7/oxygen-icons.nix
index f2a5e666232d..1f7572b4d8ee 100644
--- a/pkgs/desktops/kde-4.7/oxygen-icons.nix
+++ b/pkgs/desktops/kde-4.7/oxygen-icons.nix
@@ -5,7 +5,7 @@ kde {
   outputHashMode = "recursive";
   outputHash = "0c12c72bcf41cfaf03f85fc1ae27e44d8cecac3deb504ab1de4c30f4fc9e3cd0";
 
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   meta = {
     description = "KDE Oxygen theme icons";
diff --git a/pkgs/desktops/kde-4.7/support/akonadi/default.nix b/pkgs/desktops/kde-4.7/support/akonadi/default.nix
index 38ec7f859076..cf5155096027 100644
--- a/pkgs/desktops/kde-4.7/support/akonadi/default.nix
+++ b/pkgs/desktops/kde-4.7/support/akonadi/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ qt4 soprano libxslt boost ];
 
-  buildNativeInputs = [ cmake automoc4 shared_mime_info ];
+  nativeBuildInputs = [ cmake automoc4 shared_mime_info ];
 
   enableParallelBuilding = true;
   
diff --git a/pkgs/desktops/kde-4.8/kde-package/default.nix b/pkgs/desktops/kde-4.8/kde-package/default.nix
index da6440b58faf..cd2860920d67 100644
--- a/pkgs/desktops/kde-4.8/kde-package/default.nix
+++ b/pkgs/desktops/kde-4.8/kde-package/default.nix
@@ -51,7 +51,7 @@ rec {
           "-DBUILD_${subdir}=TRUE"
         ] ++ cmakeFlags;
       meta = defMeta // meta;
-      enableParallelBuilding = true;
+      enableParallelBuilding = module.enableParallelBuilding or true;
     } // (removeAttrs a [ "meta" "name" "cmakeFlags" ]));
 
   # A KDE monolithic module
diff --git a/pkgs/desktops/kde-4.8/kde-runtime.nix b/pkgs/desktops/kde-4.8/kde-runtime.nix
index b219bd4599af..f8246190462d 100644
--- a/pkgs/desktops/kde-4.8/kde-runtime.nix
+++ b/pkgs/desktops/kde-4.8/kde-runtime.nix
@@ -9,7 +9,7 @@ kde {
       samba (libcanberra.override { gtk = null; }) ntrack libjpeg qca2 pulseaudio
     ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   passthru.propagatedUserEnvPackages = [ virtuoso ];
 
diff --git a/pkgs/desktops/kde-4.8/kde-wallpapers.nix b/pkgs/desktops/kde-4.8/kde-wallpapers.nix
index 803b027668a8..ad4c22c632db 100644
--- a/pkgs/desktops/kde-4.8/kde-wallpapers.nix
+++ b/pkgs/desktops/kde-4.8/kde-wallpapers.nix
@@ -1,7 +1,7 @@
 { kde, cmake }:
 
 kde {
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   patches = [ ./files/kde-wallpapers-buildsystem.patch ];
 
diff --git a/pkgs/desktops/kde-4.8/kde-workspace.nix b/pkgs/desktops/kde-4.8/kde-workspace.nix
index 1a86eacb3367..394cd550b968 100644
--- a/pkgs/desktops/kde-4.8/kde-workspace.nix
+++ b/pkgs/desktops/kde-4.8/kde-workspace.nix
@@ -16,7 +16,7 @@ kde {
       kactivities
     ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   preConfigure =
    ''
@@ -28,6 +28,8 @@ kde {
        --replace /usr/share/X11 ${xkeyboard_config}/etc/X11
    '';
 
+  enableParallelBuilding = false; # frequent problems on Hydra
+
   meta = {
     description = "KDE workspace components such as Plasma, Kwin and System Settings";
     license = "GPLv2";
diff --git a/pkgs/desktops/kde-4.8/kdeartwork/kscreensaver.nix b/pkgs/desktops/kde-4.8/kdeartwork/kscreensaver.nix
index 72676e35f715..7028b9db228d 100644
--- a/pkgs/desktops/kde-4.8/kdeartwork/kscreensaver.nix
+++ b/pkgs/desktops/kde-4.8/kdeartwork/kscreensaver.nix
@@ -3,7 +3,7 @@
 kde {
   buildInputs = [ kdelibs xscreensaver kde_workspace eigen libkexiv2 libXt ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   preConfigure = "cp -v ${./FindXscreensaver.cmake} cmake/modules/FindXscreensaver.cmake";
 
diff --git a/pkgs/desktops/kde-4.8/kdebindings/perlqt.nix b/pkgs/desktops/kde-4.8/kdebindings/perlqt.nix
index 2c1378f10496..f2b5462f33e2 100644
--- a/pkgs/desktops/kde-4.8/kdebindings/perlqt.nix
+++ b/pkgs/desktops/kde-4.8/kdebindings/perlqt.nix
@@ -2,7 +2,7 @@
 
 kde {
   buildInputs = [ smokeqt perl ];
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   patches =
     # The order is important
diff --git a/pkgs/desktops/kde-4.8/kdebindings/qtruby.nix b/pkgs/desktops/kde-4.8/kdebindings/qtruby.nix
index 5dd25899e74c..723732f6104a 100644
--- a/pkgs/desktops/kde-4.8/kdebindings/qtruby.nix
+++ b/pkgs/desktops/kde-4.8/kdebindings/qtruby.nix
@@ -2,7 +2,7 @@
 
 kde {
   buildInputs = [ smokeqt ruby ];
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   # The second patch is not ready for upstream submmission. I should add an
   # option() instead.
diff --git a/pkgs/desktops/kde-4.8/kdebindings/smokegen.nix b/pkgs/desktops/kde-4.8/kdebindings/smokegen.nix
index e32ed57c9074..8b5da2a641dd 100644
--- a/pkgs/desktops/kde-4.8/kdebindings/smokegen.nix
+++ b/pkgs/desktops/kde-4.8/kdebindings/smokegen.nix
@@ -2,7 +2,7 @@
 
 kde {
   buildInputs = [ qt4 ];
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   patches = [ ./smokegen-nix.patch ];
 
diff --git a/pkgs/desktops/kde-4.8/kdebindings/smokekde.nix b/pkgs/desktops/kde-4.8/kdebindings/smokekde.nix
index 6f1b7a0b7081..0e823a95e3b2 100644
--- a/pkgs/desktops/kde-4.8/kdebindings/smokekde.nix
+++ b/pkgs/desktops/kde-4.8/kdebindings/smokekde.nix
@@ -3,7 +3,7 @@
 kde {
   # attica, akonadi and kdepimlibs are disabled due to smokegen crash
   buildInputs = [ smokeqt kdelibs shared_desktop_ontologies ];
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   cmakeFlags = "-DQTDEFINES_FILE=${smokeqt}/share/smokegen/qtdefines";
   meta = {
diff --git a/pkgs/desktops/kde-4.8/kdebindings/smokeqt.nix b/pkgs/desktops/kde-4.8/kdebindings/smokeqt.nix
index 0d0aa816a941..29e25093d11b 100644
--- a/pkgs/desktops/kde-4.8/kdebindings/smokeqt.nix
+++ b/pkgs/desktops/kde-4.8/kdebindings/smokeqt.nix
@@ -2,8 +2,8 @@
 
 kde {
   propagatedBuildInputs = [ qt4 phonon qimageblitz ];
-  buildNativeInputs = [ cmake ];
-  propagatedBuildNativeInputs = [ smokegen ];
+  nativeBuildInputs = [ cmake ];
+  propagatedNativeBuildInputs = [ smokegen ];
 
   meta = {
     description = "C++ parser used to generate language bindings for Qt/KDE";
diff --git a/pkgs/desktops/kde-4.8/kdegames.nix b/pkgs/desktops/kde-4.8/kdegames.nix
index 03ecfbd88b4b..dfca49be12fd 100644
--- a/pkgs/desktops/kde-4.8/kdegames.nix
+++ b/pkgs/desktops/kde-4.8/kdegames.nix
@@ -7,7 +7,7 @@ kde rec {
 
   pythonPath = [ pythonPackages.twisted pykde4 ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   # TODO: ggz
 
diff --git a/pkgs/desktops/kde-4.8/kdegraphics/gwenview.nix b/pkgs/desktops/kde-4.8/kdegraphics/gwenview.nix
index b6b659c39474..c03c82469e66 100644
--- a/pkgs/desktops/kde-4.8/kdegraphics/gwenview.nix
+++ b/pkgs/desktops/kde-4.8/kdegraphics/gwenview.nix
@@ -6,7 +6,7 @@ kde {
   buildInputs =
     [ kdelibs exiv2 shared_desktop_ontologies kde_baseapps libkipi libjpeg ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     description = "Gwenview, the KDE image viewer";
diff --git a/pkgs/desktops/kde-4.8/kdelibs.nix b/pkgs/desktops/kde-4.8/kdelibs.nix
index 31df83e5ee92..0e7c9cfdbea0 100644
--- a/pkgs/desktops/kde-4.8/kdelibs.nix
+++ b/pkgs/desktops/kde-4.8/kdelibs.nix
@@ -15,7 +15,7 @@ kde {
 
   propagatedBuildInputs = [ qt4 soprano strigi phonon ];
 
-  propagatedBuildNativeInputs = [ automoc4 cmake perl shared_mime_info ];
+  propagatedNativeBuildInputs = [ automoc4 cmake perl shared_mime_info ];
 
   # TODO: make sonnet plugins (dictionaries) really work.
   # There are a few hardcoded paths.
diff --git a/pkgs/desktops/kde-4.8/kdenetwork/kopete.nix b/pkgs/desktops/kde-4.8/kdenetwork/kopete.nix
index ec48b96fe19b..d1d9f0c8e03e 100644
--- a/pkgs/desktops/kde-4.8/kdenetwork/kopete.nix
+++ b/pkgs/desktops/kde-4.8/kdenetwork/kopete.nix
@@ -7,7 +7,7 @@ kde {
     jasper libidn mediastreamer msilbc libxml2 libxslt giflib libgadu boost qca2
     gpgme sqlite ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   KDEDIRS = libktorrent;
 
diff --git a/pkgs/desktops/kde-4.8/kdeplasma-addons.nix b/pkgs/desktops/kde-4.8/kdeplasma-addons.nix
index 9d70579d6d24..a69002bff28b 100644
--- a/pkgs/desktops/kde-4.8/kdeplasma-addons.nix
+++ b/pkgs/desktops/kde-4.8/kdeplasma-addons.nix
@@ -11,7 +11,7 @@ kde {
     attica python qca2 qimageblitz kdepimlibs libdbusmenu_qt
     libqalculate libXtst shared_desktop_ontologies marble libkexiv2];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     description = "KDE Plasma Addons";
diff --git a/pkgs/desktops/kde-4.8/kdesdk/okteta.nix b/pkgs/desktops/kde-4.8/kdesdk/okteta.nix
index 1b53a0e03dc4..058636596ad8 100644
--- a/pkgs/desktops/kde-4.8/kdesdk/okteta.nix
+++ b/pkgs/desktops/kde-4.8/kdesdk/okteta.nix
@@ -5,6 +5,8 @@ kde {
 
 # TODO: Look what does -DBUILD_mobile add
 
+  enableParallelBuilding = false;
+
   meta = {
     description = "KDE byte editor";
   };
diff --git a/pkgs/desktops/kde-4.8/oxygen-icons.nix b/pkgs/desktops/kde-4.8/oxygen-icons.nix
index c821e2a7aac4..52e5e5f6bb01 100644
--- a/pkgs/desktops/kde-4.8/oxygen-icons.nix
+++ b/pkgs/desktops/kde-4.8/oxygen-icons.nix
@@ -5,7 +5,7 @@ kde {
   outputHashMode = "recursive";
   outputHash = "3984dac79aa7398578bcd9d69d74988bd992807518d46cd1dabc03867044c8a4";
 
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   meta = {
     description = "KDE Oxygen theme icons";
diff --git a/pkgs/desktops/kde-4.8/support/akonadi/default.nix b/pkgs/desktops/kde-4.8/support/akonadi/default.nix
index b939eb19b5e4..9a9e8a870660 100644
--- a/pkgs/desktops/kde-4.8/support/akonadi/default.nix
+++ b/pkgs/desktops/kde-4.8/support/akonadi/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ qt4 soprano libxslt boost ];
 
-  buildNativeInputs = [ cmake automoc4 shared_mime_info ];
+  nativeBuildInputs = [ cmake automoc4 shared_mime_info ];
 
   enableParallelBuilding = true;
   
diff --git a/pkgs/development/compilers/gcc-upc-4.0/builder.sh b/pkgs/development/compilers/gcc-upc-4.0/builder.sh
deleted file mode 100644
index 08622c1899ed..000000000000
--- a/pkgs/development/compilers/gcc-upc-4.0/builder.sh
+++ /dev/null
@@ -1,85 +0,0 @@
-source $stdenv/setup
-
-
-export NIX_FIXINC_DUMMY=$NIX_BUILD_TOP/dummy
-mkdir $NIX_FIXINC_DUMMY
-
-
-# libstdc++ needs this; otherwise it will use /lib/cpp, which is a Bad
-# Thing.
-export CPP="gcc -E"
-export CXXCPP="gcc -E"
-
-
-if test "$noSysDirs" = "1"; then
-
-    if test -e $NIX_GCC/nix-support/orig-libc; then
-
-        # Figure out what extra flags to pass to the gcc compilers
-        # being generated to make sure that they use our glibc.
-        extraCFlags="$(cat $NIX_GCC/nix-support/libc-cflags)"
-        extraLDFlags="$(cat $NIX_GCC/nix-support/libc-ldflags) $(cat $NIX_GCC/nix-support/libc-ldflags-before)"
-
-        # Use *real* header files, otherwise a limits.h is generated
-        # that does not include Glibc's limits.h (notably missing
-        # SSIZE_MAX, which breaks the build).
-        export NIX_FIXINC_DUMMY=$(cat $NIX_GCC/nix-support/orig-libc)/include
-        
-    else
-        # Hack: support impure environments.
-        extraCFlags="-isystem /usr/include"
-        extraLDFlags="-L/usr/lib64 -L/usr/lib"
-        export NIX_FIXINC_DUMMY=/usr/include
-    fi
-
-    extraCFlags="-g0 $extraCFlags"
-    extraLDFlags="--strip-debug $extraLDFlags"
-
-    export NIX_EXTRA_CFLAGS=$extraCFlags
-    for i in $extraLDFlags; do
-        export NIX_EXTRA_LDFLAGS="$NIX_EXTRA_LDFLAGS -Wl,$i"
-    done
-
-    export CFLAGS=$extraCFlags
-    export CXXFLAGS=$extraCFlags
-    
-    makeFlagsArray=( \
-        NATIVE_SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \
-        SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \
-        LIMITS_H_TEST=true \
-        X_CFLAGS="$NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS" \
-        LDFLAGS="$NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS" \
-        LDFLAGS_FOR_TARGET="$NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS" \
-        )
-fi
-
-
-preConfigure() {
-    # Perform the build in a different directory.
-    mkdir ../build
-    cd ../build
-    configureScript=../$sourceRoot/configure
-}
-
-
-postInstall() {
-    # Remove precompiled headers for now.  They are very big and
-    # probably not very useful yet.
-    find $out/include -name "*.gch" -exec rm -rf {} \; -prune
-
-    # Remove `fixincl' to prevent a retained dependency on the
-    # previous gcc.
-    rm -rf $out/libexec/gcc/*/*/install-tools
-
-    # Get rid of some "fixed" header files
-    rm -rf $out/lib/gcc/*/*/include/root
-}
-
-
-if test -z "$profiledCompiler"; then
-    buildFlags="bootstrap"
-else    
-    buildFlags="profiledbootstrap"
-fi
-
-genericBuild
diff --git a/pkgs/development/compilers/gcc-upc-4.0/default.nix b/pkgs/development/compilers/gcc-upc-4.0/default.nix
deleted file mode 100644
index b3b458aae1fa..000000000000
--- a/pkgs/development/compilers/gcc-upc-4.0/default.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-# Nix expression for GCC-UPC 4.0, based on that of GCC 4.0.
-
-{ stdenv, fetchurl, noSysDirs, bison, autoconf, gnum4
-, profiledCompiler ? false
-, gmp ? null , mpfr ? null
-, texinfo ? null
-}:
-
-with stdenv.lib;
-
-# GCC-UPC apparently doesn't support GCov and friends.
-assert profiledCompiler == false;
-
-stdenv.mkDerivation {
-  name = "gcc-upc-4.0.3.5";
-  
-  builder = ../gcc/4.0/builder.sh;
-  
-  src = fetchurl {
-    url = "ftp://ftp.intrepid.com/pub/upc/rls/upc-4.0.3.5/upc-4.0.3.5.src.tar.gz";
-    sha256 = "0afnz1bz0kknhl18205bbwncyza08983ivfaagj5yl7x3nwy7prv";
-  };
-  
-  patches = [ ./honor-cflags.patch ]
-    ++ optional noSysDirs [ ./no-sys-dirs.patch ];
-    
-  inherit noSysDirs profiledCompiler;
-
-  # Attributes used by `wrapGCC'.
-  langC   = true ;
-  langCC  = false;
-  langF77 = false;
-  langUPC = true;    # unused
-
-  buildInputs =
-    [ gmp mpfr texinfo
-      # Bison is needed to build the parsers.
-      bison
-      # For some reason, `autoheader' and `m4' are needed.
-      autoconf gnum4
-    ];
-
-  # Note: We use `--enable-maintainer-mode' so that `bison' is actually
-  # run when needed.
-  configureFlags = "
-    --disable-multilib
-    --disable-libstdcxx-pch
-    --disable-libmudflap
-    --with-system-zlib
-    ${if stdenv.isi686 then "--with-arch=i686" else ""}
-    --enable-maintainer-mode
-  ";
-
-  meta = {
-    homepage = http://www.intrepid.com/upc.html;
-    license = "GPL/LGPL";
-    longDscription = ''
-      A GCC-based compiler for the Unified Parallel C (UPC) language,
-      a distributed shared memory aware variant of C (see
-      http://upc.gwu.edu/).
-    '';
-  };
-}
diff --git a/pkgs/development/compilers/gcc-upc-4.0/honor-cflags.patch b/pkgs/development/compilers/gcc-upc-4.0/honor-cflags.patch
deleted file mode 100644
index 986288455118..000000000000
--- a/pkgs/development/compilers/gcc-upc-4.0/honor-cflags.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- upc-4.0.3.5/gcc/upc/Make-lang.in	2008-03-03 18:56:13.000000000 +0100
-+++ upc-4.0.3.5/gcc/upc/Make-lang.in	2008-03-03 18:57:27.000000000 +0100
-@@ -70,7 +70,7 @@ xupc$(exeext): $(srcdir)/upc/upc-cmd.c M
- 	    "-DLIB_PATH=\"$${libdir}\"" \
- 	    "-DINC_PATH=\"$${incdir}\"" \
- 	    -c $(srcdir)/upc/upc-cmd.c -o xupc-tmp.o
--	$(CC) xupc-tmp.o -o xupc$(exeext) $(LIBS)
-+	$(CC) xupc-tmp.o $(ALL_CFLAGS) $(LDFLAGS) -o xupc$(exeext) $(LIBS)
- 	rm -f xupc-tmp.o
- 
- upc-cmd$(exeext): $(srcdir)/upc/upc-cmd.c Makefile cc1upc$(exeext) $(LIBDEPS)
-@@ -80,7 +80,7 @@ upc-cmd$(exeext): $(srcdir)/upc/upc-cmd.
- 	    "-DCOMPILER=\"gcc\"" \
- 	    "-DBIN_PATH=\"$(bindir)\"" \
- 	    -c $(srcdir)/upc/upc-cmd.c -o upc-cmd-tmp.o
--	$(CC) upc-cmd-tmp.o -o upc-cmd$(exeext) $(LIBS)
-+	$(CC) upc-cmd-tmp.o $(ALL_CFLAGS) $(LDFLAGS) -o upc-cmd$(exeext) $(LIBS)
- 	rm -f upc-cmd-tmp.o
- 
- # UPC language specific files.
diff --git a/pkgs/development/compilers/gcc-upc-4.0/no-sys-dirs.patch b/pkgs/development/compilers/gcc-upc-4.0/no-sys-dirs.patch
deleted file mode 100644
index dcac5342637a..000000000000
--- a/pkgs/development/compilers/gcc-upc-4.0/no-sys-dirs.patch
+++ /dev/null
@@ -1,202 +0,0 @@
-diff -rc gcc-4.0.0-orig/gcc/cppdefault.c gcc-4.0.0/gcc/cppdefault.c
-*** gcc-4.0.0-orig/gcc/cppdefault.c	2004-11-03 04:23:49.000000000 +0100
---- gcc-4.0.0/gcc/cppdefault.c	2005-04-22 09:53:28.000000000 +0200
-***************
-*** 41,46 ****
---- 41,50 ----
-  # undef CROSS_INCLUDE_DIR
-  #endif
-  
-+ #undef LOCAL_INCLUDE_DIR
-+ #undef SYSTEM_INCLUDE_DIR
-+ #undef STANDARD_INCLUDE_DIR
-+ 
-  const struct default_include cpp_include_defaults[]
-  #ifdef INCLUDE_DEFAULTS
-  = INCLUDE_DEFAULTS;
-diff -rc gcc-4.0.0-orig/gcc/Makefile.in gcc-4.0.0/gcc/Makefile.in
-*** gcc-4.0.0-orig/gcc/Makefile.in	2005-04-04 21:45:13.000000000 +0200
---- gcc-4.0.0/gcc/Makefile.in	2005-04-22 10:38:50.000000000 +0200
-***************
-*** 213,219 ****
-  CPPFLAGS = @CPPFLAGS@
-  
-  # These exists to be overridden by the x-* and t-* files, respectively.
-! X_CFLAGS =
-  T_CFLAGS =
-  
-  X_CPPFLAGS =
---- 213,219 ----
-  CPPFLAGS = @CPPFLAGS@
-  
-  # These exists to be overridden by the x-* and t-* files, respectively.
-! X_CFLAGS = $(NIX_EXTRA_CFLAGS) $(NIX_EXTRA_LDFLAGS)
-  T_CFLAGS =
-  
-  X_CPPFLAGS =
-***************
-*** 373,379 ****
-  MD5_H	    = $(srcdir)/../include/md5.h
-  
-  # Default native SYSTEM_HEADER_DIR, to be overridden by targets.
-! NATIVE_SYSTEM_HEADER_DIR = /usr/include
-  # Default cross SYSTEM_HEADER_DIR, to be overridden by targets.
-  CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
-  
---- 373,383 ----
-  MD5_H	    = $(srcdir)/../include/md5.h
-  
-  # Default native SYSTEM_HEADER_DIR, to be overridden by targets.
-! # Nix: we override NATIVE_SYSTEM_HEADER_DIR in order to prevent
-! # `fixinc' from fixing header files in /usr/include.  However,
-! # NATIVE_SYSTEM_HEADER_DIR must point to an existing directory, so set
-! # it to some dummy directory.
-! NATIVE_SYSTEM_HEADER_DIR = $(NIX_FIXINC_DUMMY)
-  # Default cross SYSTEM_HEADER_DIR, to be overridden by targets.
-  CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
-  
-***************
-*** 385,391 ****
-  STMP_FIXINC = @STMP_FIXINC@
-  
-  # Test to see whether <limits.h> exists in the system header files.
-! LIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR)/limits.h ]
-  
-  # Directory for prefix to system directories, for
-  # each of $(system_prefix)/usr/include, $(system_prefix)/usr/lib, etc.
---- 389,395 ----
-  STMP_FIXINC = @STMP_FIXINC@
-  
-  # Test to see whether <limits.h> exists in the system header files.
-! LIMITS_H_TEST = true
-  
-  # Directory for prefix to system directories, for
-  # each of $(system_prefix)/usr/include, $(system_prefix)/usr/lib, etc.
-***************
-*** 2677,2683 ****
-    -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
-    -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \
-    -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
-!   -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \
-    -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \
-    -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
-    @TARGET_SYSTEM_ROOT_DEFINE@
---- 2681,2687 ----
-    -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
-    -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \
-    -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
-!   -DLOCAL_INCLUDE_DIR=\"/no-such-dir\" \
-    -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \
-    -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
-    @TARGET_SYSTEM_ROOT_DEFINE@
-diff -rc gcc-4.0.0-orig/ltcf-cxx.sh gcc-4.0.0/ltcf-cxx.sh
-*** gcc-4.0.0-orig/ltcf-cxx.sh	2004-10-02 18:33:06.000000000 +0200
---- gcc-4.0.0/ltcf-cxx.sh	2005-04-22 09:53:28.000000000 +0200
-***************
-*** 988,994 ****
-    # the conftest object file.
-    pre_test_object_deps_done=no
-  
-!   for p in `eval $output_verbose_link_cmd`; do
-  
-      case $p in
-  
---- 988,994 ----
-    # the conftest object file.
-    pre_test_object_deps_done=no
-  
-!   for p in `true`; do
-  
-      case $p in
-  
-Only in gcc-4.0.0: ltcf-cxx.sh.orig
-diff -rc gcc-4.0.0-orig/ltconfig gcc-4.0.0/ltconfig
-*** gcc-4.0.0-orig/ltconfig	2004-10-02 18:33:06.000000000 +0200
---- gcc-4.0.0/ltconfig	2005-04-22 13:33:33.000000000 +0200
-***************
-*** 2321,2326 ****
---- 2321,2331 ----
-  # A language-specific compiler.
-  CC=$CC
-  
-+ # Ugly hack to get libmudflap (and possibly other libraries) to build.
-+ # Libtool filters out \`-B' flags when linking (why?), so the \`-B' flag
-+ # to Glibc gets lost.  Here we forcibly add it to any invocation.
-+ CC="\$CC $NIX_EXTRA_LDFLAGS"
-+ 
-  # Is the compiler the GNU C compiler?
-  with_gcc=$with_gcc
-  
-Only in gcc-4.0.0: ltconfig~
-diff -rc gcc-4.0.0-orig/Makefile.in gcc-4.0.0/Makefile.in
-*** gcc-4.0.0-orig/Makefile.in	2005-04-21 09:04:10.000000000 +0200
---- gcc-4.0.0/Makefile.in	2005-04-22 09:53:28.000000000 +0200
-***************
-*** 336,342 ****
-  NM = @NM@
-  
-  LD = @LD@
-! LDFLAGS = 
-  
-  RANLIB = @RANLIB@
-  
---- 336,342 ----
-  NM = @NM@
-  
-  LD = @LD@
-! LDFLAGS = $(NIX_EXTRA_LDFLAGS)
-  
-  RANLIB = @RANLIB@
-  
-***************
-*** 387,393 ****
-  # CFLAGS will be just -g.  We want to ensure that TARGET libraries
-  # (which we know are built with gcc) are built with optimizations so
-  # prepend -O2 when setting CFLAGS_FOR_TARGET.
-! CFLAGS_FOR_TARGET = -O2 $(CFLAGS)
-  # If GCC_FOR_TARGET is not overriden on the command line, then this
-  # variable is passed down to the gcc Makefile, where it is used to
-  # build libgcc2.a.  We define it here so that it can itself be
---- 387,393 ----
-  # CFLAGS will be just -g.  We want to ensure that TARGET libraries
-  # (which we know are built with gcc) are built with optimizations so
-  # prepend -O2 when setting CFLAGS_FOR_TARGET.
-! CFLAGS_FOR_TARGET = -O2 $(CFLAGS) $(NIX_EXTRA_CFLAGS)
-  # If GCC_FOR_TARGET is not overriden on the command line, then this
-  # variable is passed down to the gcc Makefile, where it is used to
-  # build libgcc2.a.  We define it here so that it can itself be
-***************
-*** 400,406 ****
-  RAW_CXX_FOR_TARGET = @RAW_CXX_FOR_TARGET@
-  CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
-  RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
-! CXXFLAGS_FOR_TARGET = $(CXXFLAGS)
-  LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
-  
-  DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@
---- 400,406 ----
-  RAW_CXX_FOR_TARGET = @RAW_CXX_FOR_TARGET@
-  CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
-  RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
-! CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(NIX_EXTRA_CFLAGS)
-  LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
-  
-  DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@
-***************
-*** 434,440 ****
-      fi; \
-    fi`
-  
-! LDFLAGS_FOR_TARGET = 
-  
-  NM_FOR_TARGET=@NM_FOR_TARGET@
-  CONFIGURED_NM_FOR_TARGET=@CONFIGURED_NM_FOR_TARGET@
---- 434,440 ----
-      fi; \
-    fi`
-  
-! LDFLAGS_FOR_TARGET = $(NIX_EXTRA_LDFLAGS)
-  
-  NM_FOR_TARGET=@NM_FOR_TARGET@
-  CONFIGURED_NM_FOR_TARGET=@CONFIGURED_NM_FOR_TARGET@
-Only in gcc-4.0.0: Makefile.in.orig
diff --git a/pkgs/development/compilers/gcc/2.95/builder.sh b/pkgs/development/compilers/gcc/2.95/builder.sh
deleted file mode 100644
index 5244d986da08..000000000000
--- a/pkgs/development/compilers/gcc/2.95/builder.sh
+++ /dev/null
@@ -1,72 +0,0 @@
-source $stdenv/setup
-
-
-export NIX_FIXINC_DUMMY=$NIX_BUILD_TOP/dummy
-mkdir $NIX_FIXINC_DUMMY
-
-
-if test "$noSysDirs" = "1"; then
-
-    if test "$noSysDirs" = "1"; then
-        # Figure out what extra flags to pass to the gcc compilers
-        # being generated to make sure that they use our glibc.
-        if test -e $NIX_GCC/nix-support/orig-glibc; then
-            glibc=$(cat $NIX_GCC/nix-support/orig-glibc)
-            # Ugh.  Copied from gcc-wrapper/builder.sh.  We can't just
-            # source in $NIX_GCC/nix-support/add-flags, since that
-            # would cause *this* GCC to be linked against the
-            # *previous* GCC.  Need some more modularity there.
-            extraCFlags="-B$glibc/lib -isystem $glibc/include"
-            extraLDFlags="-B$glibc/lib -L$glibc/lib -Wl,-s \
-              -Wl,-dynamic-linker,$glibc/lib/ld-linux.so.2"
-
-            # Oh, what a hack.  I should be shot for this.
-            # In stage 1, we should link against the previous GCC, but
-            # not afterwards.  Otherwise we retain a dependency.
-            # However, ld-wrapper, which adds the linker flags for the
-            # previous GCC, is also used in stage 2/3.  We can prevent
-            # it from adding them by NIX_GLIBC_FLAGS_SET, but then
-            # gcc-wrapper will also not add them, thereby causing
-            # stage 1 to fail.  So we use a trick to only set the
-            # flags in gcc-wrapper.
-            hook=$(pwd)/ld-wrapper-hook
-            echo "NIX_GLIBC_FLAGS_SET=1" > $hook
-            export NIX_LD_WRAPPER_START_HOOK=$hook
-        fi
-
-        export NIX_EXTRA_CFLAGS=$extraCFlags
-        export NIX_EXTRA_LDFLAGS=$extraLDFlags
-        export CFLAGS=$extraCFlags
-        export CXXFLAGS=$extraCFlags
-        export LDFLAGS=$extraLDFlags
-        export BOOT_LDFLAGS=$extraLDFlags
-    fi
-
-else
-    patches=""
-fi
-
-
-preConfigure() {
-    
-    # Determine the frontends to build.
-    langs="c"
-    if test -n "$langCC"; then
-        langs="$langs,c++"
-    fi
-    if test -n "$langF77"; then
-        langs="$langs,f77"
-    fi
-
-    # Perform the build in a different directory.
-    mkdir ../build
-    cd ../build
-
-    configureScript=../$sourceRoot/configure
-    configureFlags="--enable-languages=$langs"
-}
-
-
-buildFlags="bootstrap"
-
-genericBuild
diff --git a/pkgs/development/compilers/gcc/2.95/default.nix b/pkgs/development/compilers/gcc/2.95/default.nix
deleted file mode 100644
index d1f20dd230ff..000000000000
--- a/pkgs/development/compilers/gcc/2.95/default.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ stdenv, fetchurl, noSysDirs
-, langC ? true, langCC ? true, langF77 ? false
-}:
-
-assert langC;
-
-stdenv.mkDerivation {
-  name = "gcc-2.95.3";
-  builder = ./builder.sh;
-  src = fetchurl {
-    url = mirror://gnu/gcc/gcc-2.95.3.tar.gz;
-    md5 = "f3ad4f32c2296fad758ed051b5ac8e28";
-  };
-  # !!! apply only if noSysDirs is set
-  patches = [./no-sys-dirs.patch];
-  inherit noSysDirs langC langCC langF77;
-}
diff --git a/pkgs/development/compilers/gcc/2.95/no-sys-dirs.patch b/pkgs/development/compilers/gcc/2.95/no-sys-dirs.patch
deleted file mode 100644
index 886b7cb37c3c..000000000000
--- a/pkgs/development/compilers/gcc/2.95/no-sys-dirs.patch
+++ /dev/null
@@ -1,231 +0,0 @@
-diff -rc gcc-orig/config.if gcc-2.95.3/config.if
-*** gcc-orig/config.if	1998-10-18 19:37:10.000000000 +0200
---- gcc-2.95.3/config.if	2004-08-03 12:29:32.000000000 +0200
-***************
-*** 64,70 ****
-    return 0;
-  }
-  EOF
-!       ${CC-cc} $dummy.c -o $dummy 2>/dev/null
-        if [ "$?" = 0 ]
-        then
-  	libc_interface=-libc6.`./$dummy`-
---- 64,70 ----
-    return 0;
-  }
-  EOF
-!       ${CC-cc} $NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS $dummy.c -o $dummy 2>/dev/null
-        if [ "$?" = 0 ]
-        then
-  	libc_interface=-libc6.`./$dummy`-
-diff -rc gcc-orig/gcc/cccp.c gcc-2.95.3/gcc/cccp.c
-*** gcc-orig/gcc/cccp.c	2001-01-25 15:03:00.000000000 +0100
---- gcc-2.95.3/gcc/cccp.c	2004-08-03 10:54:39.000000000 +0200
-***************
-*** 373,378 ****
---- 373,382 ----
-      char fname[1];
-    };
-  
-+ #undef LOCAL_INCLUDE_DIR
-+ #undef SYSTEM_INCLUDE_DIR
-+ #undef STANDARD_INCLUDE_DIR
-+ 
-  /* #include "file" looks in source file dir, then stack.  */
-  /* #include <file> just looks in the stack.  */
-  /* -I directories are added to the end, then the defaults are added.  */
-***************
-*** 424,430 ****
---- 428,436 ----
-  #ifndef STANDARD_INCLUDE_COMPONENT
-  #define STANDARD_INCLUDE_COMPONENT 0
-  #endif
-+ #ifdef STANDARD_INCLUDE_DIR
-      { STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT, 0, 0, 0 },
-+ #endif
-  #endif /* not CROSS_COMPILE */
-      { 0, 0, 0, 0, 0 }
-      };
-diff -rc gcc-orig/gcc/gcc.c gcc-2.95.3/gcc/gcc.c
-*** gcc-orig/gcc/gcc.c	2001-01-25 15:03:16.000000000 +0100
---- gcc-2.95.3/gcc/gcc.c	2004-08-03 11:48:09.000000000 +0200
-***************
-*** 1369,1388 ****
-  #undef MD_STARTFILE_PREFIX_1
-  #endif
-  
-- #ifndef STANDARD_EXEC_PREFIX
-- #define STANDARD_EXEC_PREFIX "/usr/local/lib/gcc-lib/"
-- #endif /* !defined STANDARD_EXEC_PREFIX */
-- 
-  static const char *standard_exec_prefix = STANDARD_EXEC_PREFIX;
-- static const char *standard_exec_prefix_1 = "/usr/lib/gcc/";
-  #ifdef MD_EXEC_PREFIX
-  static const char *md_exec_prefix = MD_EXEC_PREFIX;
-  #endif
-  
-- #ifndef STANDARD_STARTFILE_PREFIX
-- #define STANDARD_STARTFILE_PREFIX "/usr/local/lib/"
-- #endif /* !defined STANDARD_STARTFILE_PREFIX */
-- 
-  #ifdef MD_STARTFILE_PREFIX
-  static const char *md_startfile_prefix = MD_STARTFILE_PREFIX;
-  #endif
---- 1369,1379 ----
-***************
-*** 1390,1401 ****
-  static const char *md_startfile_prefix_1 = MD_STARTFILE_PREFIX_1;
-  #endif
-  static const char *standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
-- static const char *standard_startfile_prefix_1 = "/lib/";
-- static const char *standard_startfile_prefix_2 = "/usr/lib/";
-  
-- #ifndef TOOLDIR_BASE_PREFIX
-- #define TOOLDIR_BASE_PREFIX "/usr/local/"
-- #endif
-  static const char *tooldir_base_prefix = TOOLDIR_BASE_PREFIX;
-  static const char *tooldir_prefix;
-  
---- 1381,1387 ----
-***************
-*** 2896,2908 ****
-  		  value = argv[++i];
-  		else
-  		  value = p + 1;
-  		add_prefix (&exec_prefixes, value, NULL_PTR, 1, 0, &warn_B);
-  		add_prefix (&startfile_prefixes, value, NULL_PTR,
-  			    1, 0, &warn_B);
-  		add_prefix (&include_prefixes, concat (value, "include",
-  						       NULL_PTR),
-  			    NULL_PTR, 1, 0, NULL_PTR);
-! 
-  		/* As a kludge, if the arg is "[foo/]stageN/", just add
-  		   "[foo/]include" to the include prefix.  */
-  		{
---- 2882,2897 ----
-  		  value = argv[++i];
-  		else
-  		  value = p + 1;
-+                 if (strlen(value) > 0 && value[strlen(value) - 1] != '/')
-+                     value = concat (value, "/", NULL_PTR);
-+                 add_prefix (&startfile_prefixes, value, "BINUTILS", 0, 0, NULL_PTR);
-  		add_prefix (&exec_prefixes, value, NULL_PTR, 1, 0, &warn_B);
-  		add_prefix (&startfile_prefixes, value, NULL_PTR,
-  			    1, 0, &warn_B);
-  		add_prefix (&include_prefixes, concat (value, "include",
-  						       NULL_PTR),
-  			    NULL_PTR, 1, 0, NULL_PTR);
-!                 
-  		/* As a kludge, if the arg is "[foo/]stageN/", just add
-  		   "[foo/]include" to the include prefix.  */
-  		{
-***************
-*** 3060,3073 ****
-  #ifndef OS2
-    add_prefix (&exec_prefixes, standard_exec_prefix, "BINUTILS",
-  	      0, 2, warn_std_ptr);
--   add_prefix (&exec_prefixes, standard_exec_prefix_1, "BINUTILS",
-- 	      0, 2, warn_std_ptr);
-  #endif
-  
-    add_prefix (&startfile_prefixes, standard_exec_prefix, "BINUTILS",
-  	      0, 1, warn_std_ptr);
--   add_prefix (&startfile_prefixes, standard_exec_prefix_1, "BINUTILS",
-- 	      0, 1, warn_std_ptr);
-  
-    tooldir_prefix = concat (tooldir_base_prefix, spec_machine, 
-  			   dir_separator_str, NULL_PTR);
---- 3049,3058 ----
-***************
-*** 4865,4874 ****
-  		      NULL_PTR, 0, 0, NULL_PTR);
-  	}		       
-  
--       add_prefix (&startfile_prefixes, standard_startfile_prefix_1,
-- 		  "BINUTILS", 0, 0, NULL_PTR);
--       add_prefix (&startfile_prefixes, standard_startfile_prefix_2,
-- 		  "BINUTILS", 0, 0, NULL_PTR);
-  #if 0 /* Can cause surprises, and one can use -B./ instead.  */
-        add_prefix (&startfile_prefixes, "./", NULL_PTR, 0, 1, NULL_PTR);
-  #endif
---- 4850,4855 ----
-diff -rc gcc-orig/gcc/Makefile.in gcc-2.95.3/gcc/Makefile.in
-*** gcc-orig/gcc/Makefile.in	2001-01-25 15:02:58.000000000 +0100
---- gcc-2.95.3/gcc/Makefile.in	2004-08-03 12:24:39.000000000 +0200
-***************
-*** 74,80 ****
-  BOOT_CFLAGS = -O2 $(CFLAGS)
-  #WARN_CFLAGS = -W -Wall
-  # These exists to be overridden by the x-* and t-* files, respectively.
-! X_CFLAGS =
-  T_CFLAGS =
-  
-  X_CPPFLAGS =
---- 74,80 ----
-  BOOT_CFLAGS = -O2 $(CFLAGS)
-  #WARN_CFLAGS = -W -Wall
-  # These exists to be overridden by the x-* and t-* files, respectively.
-! X_CFLAGS = $(NIX_EXTRA_CFLAGS) $(NIX_EXTRA_LDFLAGS)
-  T_CFLAGS =
-  
-  X_CPPFLAGS =
-***************
-*** 218,224 ****
-         && [ -f /usr/bin/ranlib -o -f /bin/ranlib ] )
-  
-  # Dir to search for system headers.  Overridden by cross-make.
-! SYSTEM_HEADER_DIR = /usr/include
-  
-  # Control whether to run fixproto.
-  STMP_FIXPROTO = stmp-fixproto
---- 218,228 ----
-         && [ -f /usr/bin/ranlib -o -f /bin/ranlib ] )
-  
-  # Dir to search for system headers.  Overridden by cross-make.
-! # Nix: we override NATIVE_SYSTEM_HEADER_DIR in order to prevent
-! # `fixinc' from fixing header files in /usr/include.  However,
-! # NATIVE_SYSTEM_HEADER_DIR must point to an existing directory, so set
-! # it to some dummy directory.
-! SYSTEM_HEADER_DIR = $(NIX_FIXINC_DUMMY)
-  
-  # Control whether to run fixproto.
-  STMP_FIXPROTO = stmp-fixproto
-diff -rc gcc-orig/Makefile.in gcc-2.95.3/Makefile.in
-*** gcc-orig/Makefile.in	1999-06-23 00:44:42.000000000 +0200
---- gcc-2.95.3/Makefile.in	2004-08-03 10:46:42.000000000 +0200
-***************
-*** 87,94 ****
-  CXXFLAGS = -g -O2
-  
-  LIBCFLAGS = $(CFLAGS)
-! CFLAGS_FOR_TARGET = $(CFLAGS)
-! LDFLAGS_FOR_TARGET = 
-  LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
-  PICFLAG = 
-  PICFLAG_FOR_TARGET = 
---- 87,94 ----
-  CXXFLAGS = -g -O2
-  
-  LIBCFLAGS = $(CFLAGS)
-! CFLAGS_FOR_TARGET = $(CFLAGS) $(NIX_EXTRA_CFLAGS)
-! LDFLAGS_FOR_TARGET = $(NIX_EXTRA_LDFLAGS)
-  LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
-  PICFLAG = 
-  PICFLAG_FOR_TARGET = 
-***************
-*** 99,105 ****
-  
-  # Use -O2 to stress test the compiler.
-  LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
-! CXXFLAGS_FOR_TARGET = $(CXXFLAGS)
-  LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
-  
-  RANLIB = ranlib
---- 99,105 ----
-  
-  # Use -O2 to stress test the compiler.
-  LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
-! CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(NIX_EXTRA_CFLAGS)
-  LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
-  
-  RANLIB = ranlib
diff --git a/pkgs/development/compilers/gcc/4.0/builder.sh b/pkgs/development/compilers/gcc/4.0/builder.sh
deleted file mode 100644
index 08622c1899ed..000000000000
--- a/pkgs/development/compilers/gcc/4.0/builder.sh
+++ /dev/null
@@ -1,85 +0,0 @@
-source $stdenv/setup
-
-
-export NIX_FIXINC_DUMMY=$NIX_BUILD_TOP/dummy
-mkdir $NIX_FIXINC_DUMMY
-
-
-# libstdc++ needs this; otherwise it will use /lib/cpp, which is a Bad
-# Thing.
-export CPP="gcc -E"
-export CXXCPP="gcc -E"
-
-
-if test "$noSysDirs" = "1"; then
-
-    if test -e $NIX_GCC/nix-support/orig-libc; then
-
-        # Figure out what extra flags to pass to the gcc compilers
-        # being generated to make sure that they use our glibc.
-        extraCFlags="$(cat $NIX_GCC/nix-support/libc-cflags)"
-        extraLDFlags="$(cat $NIX_GCC/nix-support/libc-ldflags) $(cat $NIX_GCC/nix-support/libc-ldflags-before)"
-
-        # Use *real* header files, otherwise a limits.h is generated
-        # that does not include Glibc's limits.h (notably missing
-        # SSIZE_MAX, which breaks the build).
-        export NIX_FIXINC_DUMMY=$(cat $NIX_GCC/nix-support/orig-libc)/include
-        
-    else
-        # Hack: support impure environments.
-        extraCFlags="-isystem /usr/include"
-        extraLDFlags="-L/usr/lib64 -L/usr/lib"
-        export NIX_FIXINC_DUMMY=/usr/include
-    fi
-
-    extraCFlags="-g0 $extraCFlags"
-    extraLDFlags="--strip-debug $extraLDFlags"
-
-    export NIX_EXTRA_CFLAGS=$extraCFlags
-    for i in $extraLDFlags; do
-        export NIX_EXTRA_LDFLAGS="$NIX_EXTRA_LDFLAGS -Wl,$i"
-    done
-
-    export CFLAGS=$extraCFlags
-    export CXXFLAGS=$extraCFlags
-    
-    makeFlagsArray=( \
-        NATIVE_SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \
-        SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \
-        LIMITS_H_TEST=true \
-        X_CFLAGS="$NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS" \
-        LDFLAGS="$NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS" \
-        LDFLAGS_FOR_TARGET="$NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS" \
-        )
-fi
-
-
-preConfigure() {
-    # Perform the build in a different directory.
-    mkdir ../build
-    cd ../build
-    configureScript=../$sourceRoot/configure
-}
-
-
-postInstall() {
-    # Remove precompiled headers for now.  They are very big and
-    # probably not very useful yet.
-    find $out/include -name "*.gch" -exec rm -rf {} \; -prune
-
-    # Remove `fixincl' to prevent a retained dependency on the
-    # previous gcc.
-    rm -rf $out/libexec/gcc/*/*/install-tools
-
-    # Get rid of some "fixed" header files
-    rm -rf $out/lib/gcc/*/*/include/root
-}
-
-
-if test -z "$profiledCompiler"; then
-    buildFlags="bootstrap"
-else    
-    buildFlags="profiledbootstrap"
-fi
-
-genericBuild
diff --git a/pkgs/development/compilers/gcc/4.0/default.nix b/pkgs/development/compilers/gcc/4.0/default.nix
deleted file mode 100644
index 4e51681a533a..000000000000
--- a/pkgs/development/compilers/gcc/4.0/default.nix
+++ /dev/null
@@ -1,51 +0,0 @@
-{ stdenv, fetchurl, noSysDirs
-, langC ? true, langCC ? true, langFortran ? false
-, profiledCompiler ? false
-, gmp ? null , mpfr ? null
-, texinfo ? null
-, name ? "gcc"
-}:
-
-assert langC;
-
-with stdenv.lib;
-
-stdenv.mkDerivation {
-  name = "${name}-4.0.4";
-  
-  builder = ./builder.sh;
-  
-  src = fetchurl {
-    url = ftp://ftp.nluug.nl/mirror/languages/gcc/releases/gcc-4.0.4/gcc-4.0.4.tar.bz2;
-    sha256 = "0izwr8d69ld3a1yr8z94s7y7k861wi613mplys2c0bvdr58y1zgk";
-  };
-  
-  patches =
-    optional noSysDirs [./no-sys-dirs.patch];
-    
-  inherit noSysDirs langC langCC langFortran profiledCompiler;
-
-  buildInputs = [gmp mpfr texinfo];
-
-  configureFlags = "
-    --disable-multilib
-    --disable-libstdcxx-pch
-    --disable-libmudflap
-    --with-system-zlib
-    --enable-languages=${
-      concatStrings (intersperse ","
-        (  optional langC       "c"
-        ++ optional langCC      "c++"
-        ++ optional langFortran "f95"
-        )
-      )
-    }
-    ${if stdenv.isi686 then "--with-arch=i686" else ""}
-  ";
-
-  meta = {
-    homepage = "http://gcc.gnu.org/";
-    license = "GPL/LGPL";
-    description = "GNU Compiler Collection, 4.0.x";
-  };
-}
diff --git a/pkgs/development/compilers/gcc/4.0/no-sys-dirs.patch b/pkgs/development/compilers/gcc/4.0/no-sys-dirs.patch
deleted file mode 100644
index 74ef6056b1fd..000000000000
--- a/pkgs/development/compilers/gcc/4.0/no-sys-dirs.patch
+++ /dev/null
@@ -1,228 +0,0 @@
-diff -rc gcc-4.0.0-orig/gcc/cppdefault.c gcc-4.0.0/gcc/cppdefault.c
-*** gcc-4.0.0-orig/gcc/cppdefault.c	2004-11-03 04:23:49.000000000 +0100
---- gcc-4.0.0/gcc/cppdefault.c	2005-04-22 09:53:28.000000000 +0200
-***************
-*** 41,46 ****
---- 41,50 ----
-  # undef CROSS_INCLUDE_DIR
-  #endif
-  
-+ #undef LOCAL_INCLUDE_DIR
-+ #undef SYSTEM_INCLUDE_DIR
-+ #undef STANDARD_INCLUDE_DIR
-+ 
-  const struct default_include cpp_include_defaults[]
-  #ifdef INCLUDE_DEFAULTS
-  = INCLUDE_DEFAULTS;
-diff -rc gcc-4.0.0-orig/gcc/Makefile.in gcc-4.0.0/gcc/Makefile.in
-*** gcc-4.0.0-orig/gcc/Makefile.in	2005-04-04 21:45:13.000000000 +0200
---- gcc-4.0.0/gcc/Makefile.in	2005-04-22 10:38:50.000000000 +0200
-***************
-*** 213,219 ****
-  CPPFLAGS = @CPPFLAGS@
-  
-  # These exists to be overridden by the x-* and t-* files, respectively.
-! X_CFLAGS =
-  T_CFLAGS =
-  
-  X_CPPFLAGS =
---- 213,219 ----
-  CPPFLAGS = @CPPFLAGS@
-  
-  # These exists to be overridden by the x-* and t-* files, respectively.
-! X_CFLAGS = $(NIX_EXTRA_CFLAGS) $(NIX_EXTRA_LDFLAGS)
-  T_CFLAGS =
-  
-  X_CPPFLAGS =
-***************
-*** 373,379 ****
-  MD5_H	    = $(srcdir)/../include/md5.h
-  
-  # Default native SYSTEM_HEADER_DIR, to be overridden by targets.
-! NATIVE_SYSTEM_HEADER_DIR = /usr/include
-  # Default cross SYSTEM_HEADER_DIR, to be overridden by targets.
-  CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
-  
---- 373,383 ----
-  MD5_H	    = $(srcdir)/../include/md5.h
-  
-  # Default native SYSTEM_HEADER_DIR, to be overridden by targets.
-! # Nix: we override NATIVE_SYSTEM_HEADER_DIR in order to prevent
-! # `fixinc' from fixing header files in /usr/include.  However,
-! # NATIVE_SYSTEM_HEADER_DIR must point to an existing directory, so set
-! # it to some dummy directory.
-! NATIVE_SYSTEM_HEADER_DIR = $(NIX_FIXINC_DUMMY)
-  # Default cross SYSTEM_HEADER_DIR, to be overridden by targets.
-  CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
-  
-***************
-*** 385,391 ****
-  STMP_FIXINC = @STMP_FIXINC@
-  
-  # Test to see whether <limits.h> exists in the system header files.
-! LIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR)/limits.h ]
-  
-  # Directory for prefix to system directories, for
-  # each of $(system_prefix)/usr/include, $(system_prefix)/usr/lib, etc.
---- 389,395 ----
-  STMP_FIXINC = @STMP_FIXINC@
-  
-  # Test to see whether <limits.h> exists in the system header files.
-! LIMITS_H_TEST = true
-  
-  # Directory for prefix to system directories, for
-  # each of $(system_prefix)/usr/include, $(system_prefix)/usr/lib, etc.
-***************
-*** 2677,2683 ****
-    -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
-    -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \
-    -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
-!   -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \
-    -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \
-    -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
-    @TARGET_SYSTEM_ROOT_DEFINE@
---- 2681,2687 ----
-    -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
-    -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \
-    -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
-!   -DLOCAL_INCLUDE_DIR=\"/no-such-dir\" \
-    -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \
-    -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
-    @TARGET_SYSTEM_ROOT_DEFINE@
-Only in gcc-4.0.0/gcc: Makefile.in~
-diff -rc gcc-4.0.0-orig/libstdc++-v3/include/Makefile.in gcc-4.0.0/libstdc++-v3/include/Makefile.in
-*** gcc-4.0.0-orig/libstdc++-v3/include/Makefile.in	2005-04-01 06:24:31.000000000 +0200
---- gcc-4.0.0/libstdc++-v3/include/Makefile.in	2005-04-22 09:54:27.000000000 +0200
-***************
-*** 959,966 ****
-  	if [ ! -d "${pch_output_builddir}" ]; then \
-  	  mkdir -p ${pch_output_builddir}; \
-  	fi; \
-! 	$(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O0 -g -o ${pch_output_builddir}/O0g.gch; \
-! 	$(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O2 -g -o ${pch_output_builddir}/O2g.gch;
-  
-  # For robustness sake (in light of junk files or in-source
-  # configuration), copy from the build or source tree to the install
---- 959,966 ----
-  	if [ ! -d "${pch_output_builddir}" ]; then \
-  	  mkdir -p ${pch_output_builddir}; \
-  	fi; \
-! 	$(CXX) $(CFLAGS) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O0 -g -o ${pch_output_builddir}/O0g.gch; \
-! 	$(CXX) $(CFLAGS) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O2 -g -o ${pch_output_builddir}/O2g.gch;
-  
-  # For robustness sake (in light of junk files or in-source
-  # configuration), copy from the build or source tree to the install
-Only in gcc-4.0.0/libstdc++-v3/include: Makefile.in~
-Only in gcc-4.0.0/libstdc++-v3/include: Makefile.in.orig
-Only in gcc-4.0.0/libstdc++-v3/include: Makefile.in.rej
-diff -rc gcc-4.0.0-orig/ltcf-cxx.sh gcc-4.0.0/ltcf-cxx.sh
-*** gcc-4.0.0-orig/ltcf-cxx.sh	2004-10-02 18:33:06.000000000 +0200
---- gcc-4.0.0/ltcf-cxx.sh	2005-04-22 09:53:28.000000000 +0200
-***************
-*** 988,994 ****
-    # the conftest object file.
-    pre_test_object_deps_done=no
-  
-!   for p in `eval $output_verbose_link_cmd`; do
-  
-      case $p in
-  
---- 988,994 ----
-    # the conftest object file.
-    pre_test_object_deps_done=no
-  
-!   for p in `true`; do
-  
-      case $p in
-  
-Only in gcc-4.0.0: ltcf-cxx.sh.orig
-diff -rc gcc-4.0.0-orig/ltconfig gcc-4.0.0/ltconfig
-*** gcc-4.0.0-orig/ltconfig	2004-10-02 18:33:06.000000000 +0200
---- gcc-4.0.0/ltconfig	2005-04-22 13:33:33.000000000 +0200
-***************
-*** 2321,2326 ****
---- 2321,2331 ----
-  # A language-specific compiler.
-  CC=$CC
-  
-+ # Ugly hack to get libmudflap (and possibly other libraries) to build.
-+ # Libtool filters out \`-B' flags when linking (why?), so the \`-B' flag
-+ # to Glibc gets lost.  Here we forcibly add it to any invocation.
-+ CC="\$CC $NIX_EXTRA_LDFLAGS"
-+ 
-  # Is the compiler the GNU C compiler?
-  with_gcc=$with_gcc
-  
-Only in gcc-4.0.0: ltconfig~
-diff -rc gcc-4.0.0-orig/Makefile.in gcc-4.0.0/Makefile.in
-*** gcc-4.0.0-orig/Makefile.in	2005-04-21 09:04:10.000000000 +0200
---- gcc-4.0.0/Makefile.in	2005-04-22 09:53:28.000000000 +0200
-***************
-*** 336,342 ****
-  NM = @NM@
-  
-  LD = @LD@
-! LDFLAGS = 
-  
-  RANLIB = @RANLIB@
-  
---- 336,342 ----
-  NM = @NM@
-  
-  LD = @LD@
-! LDFLAGS = $(NIX_EXTRA_LDFLAGS)
-  
-  RANLIB = @RANLIB@
-  
-***************
-*** 387,393 ****
-  # CFLAGS will be just -g.  We want to ensure that TARGET libraries
-  # (which we know are built with gcc) are built with optimizations so
-  # prepend -O2 when setting CFLAGS_FOR_TARGET.
-! CFLAGS_FOR_TARGET = -O2 $(CFLAGS)
-  # If GCC_FOR_TARGET is not overriden on the command line, then this
-  # variable is passed down to the gcc Makefile, where it is used to
-  # build libgcc2.a.  We define it here so that it can itself be
---- 387,393 ----
-  # CFLAGS will be just -g.  We want to ensure that TARGET libraries
-  # (which we know are built with gcc) are built with optimizations so
-  # prepend -O2 when setting CFLAGS_FOR_TARGET.
-! CFLAGS_FOR_TARGET = -O2 $(CFLAGS) $(NIX_EXTRA_CFLAGS)
-  # If GCC_FOR_TARGET is not overriden on the command line, then this
-  # variable is passed down to the gcc Makefile, where it is used to
-  # build libgcc2.a.  We define it here so that it can itself be
-***************
-*** 400,406 ****
-  RAW_CXX_FOR_TARGET = @RAW_CXX_FOR_TARGET@
-  CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
-  RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
-! CXXFLAGS_FOR_TARGET = $(CXXFLAGS)
-  LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
-  
-  DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@
---- 400,406 ----
-  RAW_CXX_FOR_TARGET = @RAW_CXX_FOR_TARGET@
-  CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
-  RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
-! CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(NIX_EXTRA_CFLAGS)
-  LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
-  
-  DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@
-***************
-*** 434,440 ****
-      fi; \
-    fi`
-  
-! LDFLAGS_FOR_TARGET = 
-  
-  NM_FOR_TARGET=@NM_FOR_TARGET@
-  CONFIGURED_NM_FOR_TARGET=@CONFIGURED_NM_FOR_TARGET@
---- 434,440 ----
-      fi; \
-    fi`
-  
-! LDFLAGS_FOR_TARGET = $(NIX_EXTRA_LDFLAGS)
-  
-  NM_FOR_TARGET=@NM_FOR_TARGET@
-  CONFIGURED_NM_FOR_TARGET=@CONFIGURED_NM_FOR_TARGET@
-Only in gcc-4.0.0: Makefile.in.orig
diff --git a/pkgs/development/compilers/gcc/4.1/builder.sh b/pkgs/development/compilers/gcc/4.1/builder.sh
deleted file mode 100644
index f8abca122570..000000000000
--- a/pkgs/development/compilers/gcc/4.1/builder.sh
+++ /dev/null
@@ -1,83 +0,0 @@
-source $stdenv/setup
-
-
-export NIX_FIXINC_DUMMY=$NIX_BUILD_TOP/dummy
-mkdir $NIX_FIXINC_DUMMY
-
-
-# libstdc++ needs this; otherwise it will use /lib/cpp, which is a Bad
-# Thing.
-export CPP="gcc -E"
-
-
-if test "$noSysDirs" = "1"; then
-
-    if test -e $NIX_GCC/nix-support/orig-libc; then
-
-        # Figure out what extra flags to pass to the gcc compilers
-        # being generated to make sure that they use our glibc.
-        extraCFlags="$(cat $NIX_GCC/nix-support/libc-cflags)"
-        extraLDFlags="$(cat $NIX_GCC/nix-support/libc-ldflags) $(cat $NIX_GCC/nix-support/libc-ldflags-before)"
-
-        # Use *real* header files, otherwise a limits.h is generated
-        # that does not include Glibc's limits.h (notably missing
-        # SSIZE_MAX, which breaks the build).
-        export NIX_FIXINC_DUMMY=$(cat $NIX_GCC/nix-support/orig-libc)/include
-        
-    else
-        # Hack: support impure environments.
-        extraCFlags="-isystem /usr/include"
-        extraLDFlags="-L/usr/lib64 -L/usr/lib"
-        export NIX_FIXINC_DUMMY=/usr/include
-    fi
-
-    extraCFlags="-g0 $extraCFlags"
-    extraLDFlags="--strip-debug $extraLDFlags"
-
-    export NIX_EXTRA_CFLAGS=$extraCFlags
-    for i in $extraLDFlags; do
-        export NIX_EXTRA_LDFLAGS="$NIX_EXTRA_LDFLAGS -Wl,$i"
-    done
-
-    makeFlagsArray=( \
-        NATIVE_SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \
-        SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \
-        LIMITS_H_TEST=true \
-        X_CFLAGS="$NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS" \
-        LDFLAGS="$NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS" \
-        LDFLAGS_FOR_TARGET="$NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS" \
-        )
-fi
-
-
-preConfigure() {
-    # Perform the build in a different directory.
-    mkdir ../build
-    cd ../build
-    configureScript=../$sourceRoot/configure
-}
-
-
-postInstall() {
-    # Remove precompiled headers for now.  They are very big and
-    # probably not very useful yet.
-    find $out/include -name "*.gch" -exec rm -rf {} \; -prune
-
-    # Remove `fixincl' to prevent a retained dependency on the
-    # previous gcc.
-    rm -rf $out/libexec/gcc/*/*/install-tools
-
-    # Get rid of some "fixed" header files
-    rm -rf $out/lib/gcc/*/*/include/root
-}
-
-
-if test -z "$staticCompiler"; then
-    if test -z "$profiledCompiler"; then
-        buildFlags="bootstrap $buildFlags"
-    else    
-        buildFlags="profiledbootstrap $buildFlags"
-    fi
-fi
-
-genericBuild
diff --git a/pkgs/development/compilers/gcc/4.1/default.nix b/pkgs/development/compilers/gcc/4.1/default.nix
deleted file mode 100644
index b460ad813f81..000000000000
--- a/pkgs/development/compilers/gcc/4.1/default.nix
+++ /dev/null
@@ -1,71 +0,0 @@
-{ stdenv, fetchurl, noSysDirs
-, langC ? true, langCC ? true, langFortran ? false
-, profiledCompiler ? false
-, staticCompiler ? false
-, gmp ? null
-, mpfr ? null
-, texinfo ? null
-, name ? "gcc"
-}:
-
-assert langC || langFortran;
-
-with stdenv.lib;
-
-stdenv.mkDerivation {
-  name = "${name}-4.1.2";
-  
-  builder = ./builder.sh;
-  
-  src =
-    optional /*langC*/ true (fetchurl {
-      url = mirror://gnu/gcc/gcc-4.1.2/gcc-core-4.1.2.tar.bz2;
-      sha256 = "07binc1hqlr0g387zrg5sp57i12yzd5ja2lgjb83bbh0h3gwbsbv";
-    }) ++
-    optional /*langCC*/ true (fetchurl {
-      url = mirror://gnu/gcc/gcc-4.1.2/gcc-g++-4.1.2.tar.bz2;
-      sha256 = "1qm2izcxna10jai0v4s41myki0xkw9174qpl6k1rnrqhbx0sl1hc";
-    }) ++
-    optional langFortran (fetchurl {
-      url = mirror://gnu/gcc/gcc-4.1.2/gcc-fortran-4.1.2.tar.bz2;
-      sha256 = "0772dhmm4gc10420h0d0mfkk2sirvjmjxz8j0ywm8wp5qf8vdi9z";
-    });
-    
-  patches =
-    optional noSysDirs [./no-sys-dirs.patch];
-    
-  inherit noSysDirs profiledCompiler staticCompiler;
-
-  buildInputs = [gmp mpfr texinfo];
-
-  enableParallelBuilding = true;
-  
-  configureFlags = "
-    --disable-multilib
-    --disable-libstdcxx-pch
-    --with-system-zlib
-    --enable-languages=${
-      concatStrings (intersperse ","
-        (  optional langC       "c"
-        ++ optional langCC      "c++"
-        ++ optional langFortran "fortran"
-        )
-      )
-    }
-    ${if stdenv.isi686 then "--with-arch=i686" else ""}
-  ";
-
-  makeFlags = if staticCompiler then "LDFLAGS=-static" else "";
-
-  passthru = { inherit langC langCC langFortran; };
-
-  meta = {
-    homepage = "http://gcc.gnu.org/";
-    license = "GPL/LGPL";
-    description = "GNU Compiler Collection, 4.1.x";
-
-    # Give the real GCC a lower priority than the GCC wrapper so that
-    # both can be installed at the same time.
-    priority = "7";
-  };
-}
diff --git a/pkgs/development/compilers/gcc/4.1/no-sys-dirs.patch b/pkgs/development/compilers/gcc/4.1/no-sys-dirs.patch
deleted file mode 100644
index 7872e4901ef5..000000000000
--- a/pkgs/development/compilers/gcc/4.1/no-sys-dirs.patch
+++ /dev/null
@@ -1,177 +0,0 @@
-diff -rc gcc-4.1.2-orig/Makefile.in gcc-4.1.2/Makefile.in
-*** gcc-4.1.2-orig/Makefile.in	Tue Apr  4 23:03:05 2006
---- gcc-4.1.2/Makefile.in	Wed May 23 11:35:41 2007
-***************
-*** 213,219 ****
-  RAW_CXX_TARGET_EXPORTS = \
-  	$(BASE_TARGET_EXPORTS) \
-  	CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \
-! 	CXX="$(RAW_CXX_FOR_TARGET)"; export CXX;
-  
-  NORMAL_TARGET_EXPORTS = \
-  	$(BASE_TARGET_EXPORTS) \
---- 213,220 ----
-  RAW_CXX_TARGET_EXPORTS = \
-  	$(BASE_TARGET_EXPORTS) \
-  	CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \
-! 	CXX="$(RAW_CXX_FOR_TARGET) $(CFLAGS_FOR_BUILD)"; export CXX; \
-! 	CXXCPP="$(RAW_CXX_FOR_TARGET) $(CFLAGS_FOR_BUILD) -E"; export CXXCPP;
-  
-  NORMAL_TARGET_EXPORTS = \
-  	$(BASE_TARGET_EXPORTS) \
-***************
-*** 352,357 ****
---- 353,366 ----
-  @host_makefile_frag@
-  ###
-  
-+ CFLAGS += $(NIX_EXTRA_CFLAGS)
-+ CPPFLAGS_FOR_TARGET += $(NIX_EXTRA_CFLAGS)
-+ CXXFLAGS += $(NIX_EXTRA_CFLAGS)
-+ LDFLAGS += $(NIX_EXTRA_LDFLAGS)
-+ LDFLAGS_FOR_TARGET += $(NIX_EXTRA_LDFLAGS)
-+ BOOT_CFLAGS += $(NIX_EXTRA_CFLAGS)
-+ BOOT_LDFLAGS += $(NIX_EXTRA_LDFLAGS)
-+ 
-  # This is the list of directories that may be needed in RPATH_ENVVAR
-  # so that prorgams built for the target machine work.
-  TARGET_LIB_PATH = $(TARGET_LIB_PATH_libstdc++-v3)$(TARGET_LIB_PATH_libmudflap)$(TARGET_LIB_PATH_libssp)$(HOST_LIB_PATH_gcc)
-diff -rc gcc-4.1.2-orig/gcc/Makefile.in gcc-4.1.2/gcc/Makefile.in
-*** gcc-4.1.2-orig/gcc/Makefile.in	Wed Nov  1 15:40:44 2006
---- gcc-4.1.2/gcc/Makefile.in	Wed May 23 11:35:41 2007
-***************
-*** 383,389 ****
-  MD5_H	    = $(srcdir)/../include/md5.h
-  
-  # Default native SYSTEM_HEADER_DIR, to be overridden by targets.
-! NATIVE_SYSTEM_HEADER_DIR = /usr/include
-  # Default cross SYSTEM_HEADER_DIR, to be overridden by targets.
-  CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
-  
---- 383,393 ----
-  MD5_H	    = $(srcdir)/../include/md5.h
-  
-  # Default native SYSTEM_HEADER_DIR, to be overridden by targets.
-! # Nix: we override NATIVE_SYSTEM_HEADER_DIR in order to prevent
-! # `fixinc' from fixing header files in /usr/include.  However,
-! # NATIVE_SYSTEM_HEADER_DIR must point to an existing directory, so set
-! # it to some dummy directory.
-! NATIVE_SYSTEM_HEADER_DIR = $(NIX_FIXINC_DUMMY)
-  # Default cross SYSTEM_HEADER_DIR, to be overridden by targets.
-  CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
-  
-***************
-*** 3007,3013 ****
-    -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
-    -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \
-    -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
-!   -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \
-    -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \
-    -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
-    @TARGET_SYSTEM_ROOT_DEFINE@
---- 3011,3017 ----
-    -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
-    -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \
-    -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
-!   -DLOCAL_INCLUDE_DIR=\"/no-such-dir\" \
-    -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \
-    -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
-    @TARGET_SYSTEM_ROOT_DEFINE@
-diff -rc gcc-4.1.2-orig/gcc/cppdefault.c gcc-4.1.2/gcc/cppdefault.c
-*** gcc-4.1.2-orig/gcc/cppdefault.c	Sat Jun 25 04:02:01 2005
---- gcc-4.1.2/gcc/cppdefault.c	Wed May 23 11:35:41 2007
-***************
-*** 41,46 ****
---- 41,50 ----
-  # undef CROSS_INCLUDE_DIR
-  #endif
-  
-+ #undef LOCAL_INCLUDE_DIR
-+ #undef SYSTEM_INCLUDE_DIR
-+ #undef STANDARD_INCLUDE_DIR
-+ 
-  const struct default_include cpp_include_defaults[]
-  #ifdef INCLUDE_DEFAULTS
-  = INCLUDE_DEFAULTS;
-diff -rc gcc-4.1.2-orig/gcc/gcc.c gcc-4.1.2/gcc/gcc.c
-*** gcc-4.1.2-orig/gcc/gcc.c	Tue Nov  7 15:26:21 2006
---- gcc-4.1.2/gcc/gcc.c	Wed May 23 11:35:41 2007
-***************
-*** 1435,1444 ****
-  /* Default prefixes to attach to command names.  */
-  
-  #ifndef STANDARD_STARTFILE_PREFIX_1
-! #define STANDARD_STARTFILE_PREFIX_1 "/lib/"
-  #endif
-  #ifndef STANDARD_STARTFILE_PREFIX_2
-! #define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/"
-  #endif
-  
-  #ifdef CROSS_COMPILE  /* Don't use these prefixes for a cross compiler.  */
---- 1435,1444 ----
-  /* Default prefixes to attach to command names.  */
-  
-  #ifndef STANDARD_STARTFILE_PREFIX_1
-! #define STANDARD_STARTFILE_PREFIX_1 ""
-  #endif
-  #ifndef STANDARD_STARTFILE_PREFIX_2
-! #define STANDARD_STARTFILE_PREFIX_2 ""
-  #endif
-  
-  #ifdef CROSS_COMPILE  /* Don't use these prefixes for a cross compiler.  */
-***************
-*** 1459,1466 ****
-  #endif
-  
-  static const char *const standard_exec_prefix = STANDARD_EXEC_PREFIX;
-! static const char *const standard_exec_prefix_1 = "/usr/libexec/gcc/";
-! static const char *const standard_exec_prefix_2 = "/usr/lib/gcc/";
-  static const char *md_exec_prefix = MD_EXEC_PREFIX;
-  
-  static const char *md_startfile_prefix = MD_STARTFILE_PREFIX;
---- 1459,1466 ----
-  #endif
-  
-  static const char *const standard_exec_prefix = STANDARD_EXEC_PREFIX;
-! static const char *const standard_exec_prefix_1 = "/no-such-path/";
-! static const char *const standard_exec_prefix_2 = "/no-such-path/";
-  static const char *md_exec_prefix = MD_EXEC_PREFIX;
-  
-  static const char *md_startfile_prefix = MD_STARTFILE_PREFIX;
-diff -rc gcc-4.1.2-orig/ltcf-cxx.sh gcc-4.1.2/ltcf-cxx.sh
-*** gcc-4.1.2-orig/ltcf-cxx.sh	Sat Jul 16 04:30:53 2005
---- gcc-4.1.2/ltcf-cxx.sh	Wed May 23 11:35:41 2007
-***************
-*** 989,995 ****
-    # the conftest object file.
-    pre_test_object_deps_done=no
-  
-!   for p in `eval $output_verbose_link_cmd`; do
-  
-      case $p in
-  
---- 989,995 ----
-    # the conftest object file.
-    pre_test_object_deps_done=no
-  
-!   for p in `true`; do
-  
-      case $p in
-  
-diff -rc gcc-4.1.2-orig/ltconfig gcc-4.1.2/ltconfig
-*** gcc-4.1.2-orig/ltconfig	Tue Jul  4 22:30:34 2006
---- gcc-4.1.2/ltconfig	Wed May 23 11:35:41 2007
-***************
-*** 2322,2327 ****
---- 2322,2332 ----
-  # A language-specific compiler.
-  CC=$CC
-  
-+ # Ugly hack to get libmudflap (and possibly other libraries) to build.
-+ # Libtool filters out \`-B' flags when linking (why?), so the \`-B' flag
-+ # to Glibc gets lost.  Here we forcibly add it to any invocation.
-+ CC="\$CC $NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS"
-+ 
-  # Is the compiler the GNU C compiler?
-  with_gcc=$with_gcc
-  
diff --git a/pkgs/development/compilers/gcc/4.3/default.nix b/pkgs/development/compilers/gcc/4.3/default.nix
index 4b9fd616d849..d17f9f195150 100644
--- a/pkgs/development/compilers/gcc/4.3/default.nix
+++ b/pkgs/development/compilers/gcc/4.3/default.nix
@@ -47,9 +47,9 @@ let
       " --enable-threads=posix" +
       " --enable-nls"
       );
-  stageNameAddon = if (crossStageStatic) then "-stage-static" else
+  stageNameAddon = if crossStageStatic then "-stage-static" else
     "-stage-final";
-  crossNameAddon = if (cross != null) then "-${cross.config}" + stageNameAddon else "";
+  crossNameAddon = if cross != null then "-${cross.config}" + stageNameAddon else "";
 in
 
 stdenv.mkDerivation ({
@@ -76,7 +76,7 @@ stdenv.mkDerivation ({
     });
     
   patches =
-    [./pass-cxxcpp.patch ./libmudflap-cpp.patch]
+    [ ./pass-cxxcpp.patch ./libmudflap-cpp.patch ./siginfo_t_fix.patch ]
     ++ optional noSysDirs ./no-sys-dirs.patch
     ++ optional (noSysDirs && langFortran) ./no-sys-dirs-fortran.patch
     ++ optional langJava ./java-jvgenmain-link.patch
@@ -85,7 +85,7 @@ stdenv.mkDerivation ({
     
   inherit noSysDirs profiledCompiler staticCompiler crossStageStatic
     binutilsCross libcCross;
-  targetConfig = if (cross != null) then cross.config else null;
+  targetConfig = if cross != null then cross.config else null;
 
   buildInputs = [texinfo gmp mpfr]
     ++ (optionals langTreelang [bison flex])
@@ -129,7 +129,7 @@ stdenv.mkDerivation ({
       enableMultilib; };
 
   # ghdl does not build fine with parallel building
-  enableParallelBuilding = if langVhdl then false else true;
+  enableParallelBuilding = !langVhdl;
 
   meta = {
     homepage = "http://gcc.gnu.org/";
diff --git a/pkgs/development/compilers/gcc/4.3/siginfo_t_fix.patch b/pkgs/development/compilers/gcc/4.3/siginfo_t_fix.patch
new file mode 100644
index 000000000000..8b126cd08c36
--- /dev/null
+++ b/pkgs/development/compilers/gcc/4.3/siginfo_t_fix.patch
@@ -0,0 +1,174 @@
+https://bugs.gentoo.org/424970
+
+fix from upstream for building with newer glibc versions
+
+From f0cdca2bf2230005025e13e7354fedb612933c96 Mon Sep 17 00:00:00 2001
+From: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Fri, 20 Apr 2012 08:14:00 +0000
+Subject: [PATCH] 	struct siginfo vs. siginfo_t
+
+	Backport from trunk (but apply to gcc/):
+
+	2012-04-20  Thomas Schwinge  <thomas@codesourcery.com>
+
+gcc/
+	* config/alpha/linux-unwind.h (alpha_fallback_frame_state): Use
+	siginfo_t instead of struct siginfo.
+	* config/bfin/linux-unwind.h (bfin_fallback_frame_state): Likewise.
+	* config/i386/linux-unwind.h (x86_fallback_frame_state): Likewise.
+	* config/ia64/linux-unwind.h (ia64_fallback_frame_state)
+	(ia64_handle_unwabi): Likewise.
+	* config/mips/linux-unwind.h (mips_fallback_frame_state): Likewise.
+	* config/pa/linux-unwind.h (pa32_fallback_frame_state): Likewise.
+	* config/sh/linux-unwind.h (shmedia_fallback_frame_state)
+	(sh_fallback_frame_state): Likewise.
+	* config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Likewise.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_5-branch@186613 138bc75d-0d04-0410-961f-82ee72b054a4
+---
+ gcc/ChangeLog                    |   20 ++++++++++++++++++++
+ gcc/config/alpha/linux-unwind.h  |    4 ++--
+ gcc/config/bfin/linux-unwind.h   |    6 +++---
+ gcc/config/i386/linux-unwind.h   |    6 +++---
+ gcc/config/ia64/linux-unwind.h   |    6 +++---
+ gcc/config/mips/linux-unwind.h   |    5 +++--
+ gcc/config/pa/linux-unwind.h     |    4 ++--
+ gcc/config/sh/linux-unwind.h     |    9 +++++----
+ gcc/config/xtensa/linux-unwind.h |    4 ++--
+ 9 files changed, 43 insertions(+), 21 deletions(-)
+
+diff --git a/gcc/config/alpha/linux-unwind.h b/gcc/config/alpha/linux-unwind.h
+index 4c811dc..8c04b3b 100644
+--- a/gcc/config/alpha/linux-unwind.h
++++ b/gcc/config/alpha/linux-unwind.h
+@@ -49,7 +49,7 @@ alpha_fallback_frame_state (struct _Unwind_Context *context,
+   else if (pc[1] == 0x201f015f)		/* lda $0,NR_rt_sigreturn */
+     {
+       struct rt_sigframe {
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       sc = &rt_->uc.uc_mcontext;
+diff --git a/gcc/config/bfin/linux-unwind.h b/gcc/config/bfin/linux-unwind.h
+index 88c8285..15bb2f1 100644
+--- a/gcc/config/bfin/linux-unwind.h
++++ b/gcc/config/bfin/linux-unwind.h
+@@ -48,10 +48,10 @@ bfin_fallback_frame_state (struct _Unwind_Context *context,
+     {
+       struct rt_sigframe {
+ 	int sig;
+-	struct siginfo *pinfo;
++	siginfo_t *pinfo;
+ 	void *puc;
+ 	char retcode[8];
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+ 
+diff --git a/gcc/config/i386/linux-unwind.h b/gcc/config/i386/linux-unwind.h
+index 36ee370..fe0ea3e 100644
+--- a/gcc/config/i386/linux-unwind.h
++++ b/gcc/config/i386/linux-unwind.h
+@@ -133,9 +133,9 @@ x86_fallback_frame_state (struct _Unwind_Context *context,
+     {
+       struct rt_sigframe {
+ 	int sig;
+-	struct siginfo *pinfo;
++	siginfo_t *pinfo;
+ 	void *puc;
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+diff --git a/gcc/config/ia64/linux-unwind.h b/gcc/config/ia64/linux-unwind.h
+index 93f762d..da31259 100644
+--- a/gcc/config/ia64/linux-unwind.h
++++ b/gcc/config/ia64/linux-unwind.h
+@@ -47,7 +47,7 @@ ia64_fallback_frame_state (struct _Unwind_Context *context,
+       struct sigframe {
+ 	char scratch[16];
+ 	unsigned long sig_number;
+-	struct siginfo *info;
++	siginfo_t *info;
+ 	struct sigcontext *sc;
+       } *frame_ = (struct sigframe *)context->psp;
+       struct sigcontext *sc = frame_->sc;
+@@ -137,7 +137,7 @@ ia64_handle_unwabi (struct _Unwind_Context *context, _Unwind_FrameState *fs)
+       struct sigframe {
+ 	char scratch[16];
+ 	unsigned long sig_number;
+-	struct siginfo *info;
++	siginfo_t *info;
+ 	struct sigcontext *sc;
+       } *frame = (struct sigframe *)context->psp;
+       struct sigcontext *sc = frame->sc;
+diff --git a/gcc/config/mips/linux-unwind.h b/gcc/config/mips/linux-unwind.h
+index 02f7cd5..094ff58 100644
+--- a/gcc/config/mips/linux-unwind.h
++++ b/gcc/config/mips/linux-unwind.h
+@@ -75,7 +76,7 @@ mips_fallback_frame_state (struct _Unwind_Context *context,
+       struct rt_sigframe {
+ 	u_int32_t ass[4];  /* Argument save space for o32.  */
+ 	u_int32_t trampoline[2];
+-	struct siginfo info;
++	siginfo_t info;
+ 	_sig_ucontext_t uc;
+       } *rt_ = context->cfa;
+       sc = &rt_->uc.uc_mcontext;
+diff --git a/gcc/config/pa/linux-unwind.h b/gcc/config/pa/linux-unwind.h
+index a0560e9..38b4eda 100644
+--- a/gcc/config/pa/linux-unwind.h
++++ b/gcc/config/pa/linux-unwind.h
+@@ -63,7 +63,7 @@ pa32_fallback_frame_state (struct _Unwind_Context *context,
+   int i;
+   struct sigcontext *sc;
+   struct rt_sigframe {
+-    struct siginfo info;
++    siginfo_t info;
+     struct ucontext uc;
+   } *frame;
+ 
+diff --git a/gcc/config/sh/linux-unwind.h b/gcc/config/sh/linux-unwind.h
+index 94ed95d..5a78e31 100644
+--- a/gcc/config/sh/linux-unwind.h
++++ b/gcc/config/sh/linux-unwind.h
+@@ -80,9 +81,9 @@ shmedia_fallback_frame_state (struct _Unwind_Context *context,
+ 	   && (*(unsigned long *) (pc+11)  == 0x6ff0fff0))
+     {
+       struct rt_sigframe {
+-	struct siginfo *pinfo;
++	siginfo_t *pinfo;
+ 	void *puc;
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+@@ -179,7 +180,7 @@ sh_fallback_frame_state (struct _Unwind_Context *context,
+ 		&& (*(unsigned short *) (pc+14)  == 0x00ad))))
+     {
+       struct rt_sigframe {
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+diff --git a/gcc/config/xtensa/linux-unwind.h b/gcc/config/xtensa/linux-unwind.h
+index 32e9349..2456497 100644
+--- a/gcc/config/xtensa/linux-unwind.h
++++ b/gcc/config/xtensa/linux-unwind.h
+@@ -62,7 +62,7 @@ xtensa_fallback_frame_state (struct _Unwind_Context *context,
+   struct sigcontext *sc;
+ 
+   struct rt_sigframe {
+-    struct siginfo info;
++    siginfo_t info;
+     struct ucontext uc;
+   } *rt_;
+ 
+-- 
+1.7.9.7
+
diff --git a/pkgs/development/compilers/gcc/4.4/default.nix b/pkgs/development/compilers/gcc/4.4/default.nix
index d962d4ac3471..60e7baa77812 100644
--- a/pkgs/development/compilers/gcc/4.4/default.nix
+++ b/pkgs/development/compilers/gcc/4.4/default.nix
@@ -84,9 +84,9 @@ let version = "4.4.6";
         " --enable-nls" +
         " --disable-decimal-float" # No final libdecnumber (it may work only in 386)
         );
-    stageNameAddon = if (crossStageStatic) then "-stage-static" else
+    stageNameAddon = if crossStageStatic then "-stage-static" else
       "-stage-final";
-    crossNameAddon = if (cross != null) then "-${cross.config}" + stageNameAddon else "";
+    crossNameAddon = if cross != null then "-${cross.config}" + stageNameAddon else "";
 
 in
 
@@ -104,16 +104,19 @@ stdenv.mkDerivation ({
   };
 
   patches =
-    [./pass-cxxcpp.patch
+    [ ./pass-cxxcpp.patch
 
-     # libmudflap and libstdc++ receive the build CPP,
-     # and not the target.
-     # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42279
-     ./target-cpp.patch
+      # libmudflap and libstdc++ receive the build CPP,
+      # and not the target.
+      # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42279
+      ./target-cpp.patch
 
-     # Bad mixture of build/target flags
-     ./libstdc++-target.patch
-     ]
+      # Bad mixture of build/target flags
+      ./libstdc++-target.patch
+
+      # Compatibility with newer Glibc.
+      ./siginfo_t_fix.patch
+    ]
     ++ optional noSysDirs ./no-sys-dirs.patch
     # The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its
     # target libraries and tools.
@@ -124,7 +127,7 @@ stdenv.mkDerivation ({
   inherit noSysDirs profiledCompiler staticCompiler langJava crossStageStatic
     libcCross;
 
-  buildNativeInputs = [ texinfo which ];
+  nativeBuildInputs = [ texinfo which ];
 
   buildInputs = [ gmp mpfr gettext ]
     ++ (optional (ppl != null) ppl)
@@ -163,11 +166,11 @@ stdenv.mkDerivation ({
       )
     }
     ${if langAda then " --enable-libada" else ""}
-    ${if (cross == null && stdenv.isi686) then "--with-arch=i686" else ""}
+    ${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
     ${if cross != null then crossConfigureFlags else ""}
   ";
 
-  targetConfig = if (cross != null) then cross.config else null;
+  targetConfig = if cross != null then cross.config else null;
 
   # Needed for the cross compilation to work
   AR = "ar";
@@ -189,13 +192,13 @@ stdenv.mkDerivation ({
     configureFlags = "
       ${if enableMultilib then "" else "--disable-multilib"}
       ${if enableShared then "" else "--disable-shared"}
-      ${if ppl != null then "--with-ppl=${ppl.hostDrv}" else ""}
-      ${if cloogppl != null then "--with-cloog=${cloogppl.hostDrv}" else ""}
-      ${if langJava then "--with-ecj-jar=${javaEcj.hostDrv}" else ""}
+      ${if ppl != null then "--with-ppl=${ppl.crossDrv}" else ""}
+      ${if cloogppl != null then "--with-cloog=${cloogppl.crossDrv}" else ""}
+      ${if langJava then "--with-ecj-jar=${javaEcj.crossDrv}" else ""}
       ${if javaAwtGtk then "--enable-java-awt=gtk" else ""}
-      ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr.hostDrv}" else ""}
-      --with-gmp=${gmp.hostDrv}
-      --with-mpfr=${mpfr.hostDrv}
+      ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr.crossDrv}" else ""}
+      --with-gmp=${gmp.crossDrv}
+      --with-mpfr=${mpfr.crossDrv}
       --disable-libstdcxx-pch
       --without-included-gettext
       --with-system-zlib
@@ -211,7 +214,7 @@ stdenv.mkDerivation ({
         )
       }
       ${if langAda then " --enable-libada" else ""}
-      ${if (cross == null && stdenv.isi686) then "--with-arch=i686" else ""}
+      ${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
       ${if cross != null then crossConfigureFlags else ""}
       --target=${stdenv.cross.config}
     ";
@@ -243,7 +246,7 @@ stdenv.mkDerivation ({
       enableMultilib version; };
 
   # ghdl does not build fine with parallel building
-  enableParallelBuilding = if langVhdl then false else true;
+  enableParallelBuilding = !langVhdl;
 
   meta = {
     homepage = http://gcc.gnu.org/;
diff --git a/pkgs/development/compilers/gcc/4.4/siginfo_t_fix.patch b/pkgs/development/compilers/gcc/4.4/siginfo_t_fix.patch
new file mode 100644
index 000000000000..8b126cd08c36
--- /dev/null
+++ b/pkgs/development/compilers/gcc/4.4/siginfo_t_fix.patch
@@ -0,0 +1,174 @@
+https://bugs.gentoo.org/424970
+
+fix from upstream for building with newer glibc versions
+
+From f0cdca2bf2230005025e13e7354fedb612933c96 Mon Sep 17 00:00:00 2001
+From: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Fri, 20 Apr 2012 08:14:00 +0000
+Subject: [PATCH] 	struct siginfo vs. siginfo_t
+
+	Backport from trunk (but apply to gcc/):
+
+	2012-04-20  Thomas Schwinge  <thomas@codesourcery.com>
+
+gcc/
+	* config/alpha/linux-unwind.h (alpha_fallback_frame_state): Use
+	siginfo_t instead of struct siginfo.
+	* config/bfin/linux-unwind.h (bfin_fallback_frame_state): Likewise.
+	* config/i386/linux-unwind.h (x86_fallback_frame_state): Likewise.
+	* config/ia64/linux-unwind.h (ia64_fallback_frame_state)
+	(ia64_handle_unwabi): Likewise.
+	* config/mips/linux-unwind.h (mips_fallback_frame_state): Likewise.
+	* config/pa/linux-unwind.h (pa32_fallback_frame_state): Likewise.
+	* config/sh/linux-unwind.h (shmedia_fallback_frame_state)
+	(sh_fallback_frame_state): Likewise.
+	* config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Likewise.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_5-branch@186613 138bc75d-0d04-0410-961f-82ee72b054a4
+---
+ gcc/ChangeLog                    |   20 ++++++++++++++++++++
+ gcc/config/alpha/linux-unwind.h  |    4 ++--
+ gcc/config/bfin/linux-unwind.h   |    6 +++---
+ gcc/config/i386/linux-unwind.h   |    6 +++---
+ gcc/config/ia64/linux-unwind.h   |    6 +++---
+ gcc/config/mips/linux-unwind.h   |    5 +++--
+ gcc/config/pa/linux-unwind.h     |    4 ++--
+ gcc/config/sh/linux-unwind.h     |    9 +++++----
+ gcc/config/xtensa/linux-unwind.h |    4 ++--
+ 9 files changed, 43 insertions(+), 21 deletions(-)
+
+diff --git a/gcc/config/alpha/linux-unwind.h b/gcc/config/alpha/linux-unwind.h
+index 4c811dc..8c04b3b 100644
+--- a/gcc/config/alpha/linux-unwind.h
++++ b/gcc/config/alpha/linux-unwind.h
+@@ -49,7 +49,7 @@ alpha_fallback_frame_state (struct _Unwind_Context *context,
+   else if (pc[1] == 0x201f015f)		/* lda $0,NR_rt_sigreturn */
+     {
+       struct rt_sigframe {
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       sc = &rt_->uc.uc_mcontext;
+diff --git a/gcc/config/bfin/linux-unwind.h b/gcc/config/bfin/linux-unwind.h
+index 88c8285..15bb2f1 100644
+--- a/gcc/config/bfin/linux-unwind.h
++++ b/gcc/config/bfin/linux-unwind.h
+@@ -48,10 +48,10 @@ bfin_fallback_frame_state (struct _Unwind_Context *context,
+     {
+       struct rt_sigframe {
+ 	int sig;
+-	struct siginfo *pinfo;
++	siginfo_t *pinfo;
+ 	void *puc;
+ 	char retcode[8];
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+ 
+diff --git a/gcc/config/i386/linux-unwind.h b/gcc/config/i386/linux-unwind.h
+index 36ee370..fe0ea3e 100644
+--- a/gcc/config/i386/linux-unwind.h
++++ b/gcc/config/i386/linux-unwind.h
+@@ -133,9 +133,9 @@ x86_fallback_frame_state (struct _Unwind_Context *context,
+     {
+       struct rt_sigframe {
+ 	int sig;
+-	struct siginfo *pinfo;
++	siginfo_t *pinfo;
+ 	void *puc;
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+diff --git a/gcc/config/ia64/linux-unwind.h b/gcc/config/ia64/linux-unwind.h
+index 93f762d..da31259 100644
+--- a/gcc/config/ia64/linux-unwind.h
++++ b/gcc/config/ia64/linux-unwind.h
+@@ -47,7 +47,7 @@ ia64_fallback_frame_state (struct _Unwind_Context *context,
+       struct sigframe {
+ 	char scratch[16];
+ 	unsigned long sig_number;
+-	struct siginfo *info;
++	siginfo_t *info;
+ 	struct sigcontext *sc;
+       } *frame_ = (struct sigframe *)context->psp;
+       struct sigcontext *sc = frame_->sc;
+@@ -137,7 +137,7 @@ ia64_handle_unwabi (struct _Unwind_Context *context, _Unwind_FrameState *fs)
+       struct sigframe {
+ 	char scratch[16];
+ 	unsigned long sig_number;
+-	struct siginfo *info;
++	siginfo_t *info;
+ 	struct sigcontext *sc;
+       } *frame = (struct sigframe *)context->psp;
+       struct sigcontext *sc = frame->sc;
+diff --git a/gcc/config/mips/linux-unwind.h b/gcc/config/mips/linux-unwind.h
+index 02f7cd5..094ff58 100644
+--- a/gcc/config/mips/linux-unwind.h
++++ b/gcc/config/mips/linux-unwind.h
+@@ -75,7 +76,7 @@ mips_fallback_frame_state (struct _Unwind_Context *context,
+       struct rt_sigframe {
+ 	u_int32_t ass[4];  /* Argument save space for o32.  */
+ 	u_int32_t trampoline[2];
+-	struct siginfo info;
++	siginfo_t info;
+ 	_sig_ucontext_t uc;
+       } *rt_ = context->cfa;
+       sc = &rt_->uc.uc_mcontext;
+diff --git a/gcc/config/pa/linux-unwind.h b/gcc/config/pa/linux-unwind.h
+index a0560e9..38b4eda 100644
+--- a/gcc/config/pa/linux-unwind.h
++++ b/gcc/config/pa/linux-unwind.h
+@@ -63,7 +63,7 @@ pa32_fallback_frame_state (struct _Unwind_Context *context,
+   int i;
+   struct sigcontext *sc;
+   struct rt_sigframe {
+-    struct siginfo info;
++    siginfo_t info;
+     struct ucontext uc;
+   } *frame;
+ 
+diff --git a/gcc/config/sh/linux-unwind.h b/gcc/config/sh/linux-unwind.h
+index 94ed95d..5a78e31 100644
+--- a/gcc/config/sh/linux-unwind.h
++++ b/gcc/config/sh/linux-unwind.h
+@@ -80,9 +81,9 @@ shmedia_fallback_frame_state (struct _Unwind_Context *context,
+ 	   && (*(unsigned long *) (pc+11)  == 0x6ff0fff0))
+     {
+       struct rt_sigframe {
+-	struct siginfo *pinfo;
++	siginfo_t *pinfo;
+ 	void *puc;
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+@@ -179,7 +180,7 @@ sh_fallback_frame_state (struct _Unwind_Context *context,
+ 		&& (*(unsigned short *) (pc+14)  == 0x00ad))))
+     {
+       struct rt_sigframe {
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+diff --git a/gcc/config/xtensa/linux-unwind.h b/gcc/config/xtensa/linux-unwind.h
+index 32e9349..2456497 100644
+--- a/gcc/config/xtensa/linux-unwind.h
++++ b/gcc/config/xtensa/linux-unwind.h
+@@ -62,7 +62,7 @@ xtensa_fallback_frame_state (struct _Unwind_Context *context,
+   struct sigcontext *sc;
+ 
+   struct rt_sigframe {
+-    struct siginfo info;
++    siginfo_t info;
+     struct ucontext uc;
+   } *rt_;
+ 
+-- 
+1.7.9.7
+
diff --git a/pkgs/development/compilers/gcc/4.5/default.nix b/pkgs/development/compilers/gcc/4.5/default.nix
index 9cf38718a473..cb0432b66728 100644
--- a/pkgs/development/compilers/gcc/4.5/default.nix
+++ b/pkgs/development/compilers/gcc/4.5/default.nix
@@ -78,7 +78,7 @@ let version = "4.5.4";
       withArch +
       withCpu +
       withAbi +
-      (if (crossMingw && crossStageStatic) then
+      (if crossMingw && crossStageStatic then
         " --with-headers=${libcCross}/include" +
         " --with-gcc" +
         " --with-gnu-as" +
@@ -115,9 +115,9 @@ let version = "4.5.4";
           " --enable-nls" +
           " --disable-decimal-float") # No final libdecnumber (it may work only in 386)
         );
-    stageNameAddon = if (crossStageStatic) then "-stage-static" else
+    stageNameAddon = if crossStageStatic then "-stage-static" else
       "-stage-final";
-    crossNameAddon = if (cross != null) then "-${cross.config}" + stageNameAddon else "";
+    crossNameAddon = if cross != null then "-${cross.config}" + stageNameAddon else "";
 
 in
 
@@ -146,7 +146,7 @@ stdenv.mkDerivation ({
 
   postPatch =
     if (stdenv.system == "i586-pc-gnu"
-        || (libcCross != null                  # e.g., building `gcc.hostDrv'
+        || (libcCross != null                  # e.g., building `gcc.crossDrv'
             && libcCross ? crossConfig
             && libcCross.crossConfig == "i586-pc-gnu")
         || (cross != null && cross.config == "i586-pc-gnu"
@@ -189,7 +189,7 @@ stdenv.mkDerivation ({
       # On NixOS, use the right path to the dynamic linker instead of
       # `/lib/ld*.so'.
       let
-        libc = if (libcCross != null) then libcCross else stdenv.gcc.libc;
+        libc = if libcCross != null then libcCross else stdenv.gcc.libc;
       in
         '' echo "fixing the \`GLIBC_DYNAMIC_LINKER' and \`UCLIBC_DYNAMIC_LINKER' macros..."
            for header in "gcc/config/"*-gnu.h "gcc/config/"*"/"*.h
@@ -205,7 +205,7 @@ stdenv.mkDerivation ({
   inherit noSysDirs profiledCompiler staticCompiler langJava crossStageStatic
     libcCross crossMingw;
 
-  buildNativeInputs = [ texinfo which ]
+  nativeBuildInputs = [ texinfo which ]
     ++ optional (perl != null) perl;
     
   buildInputs = [ gmp mpfr mpc libelf gettext ]
@@ -237,7 +237,7 @@ stdenv.mkDerivation ({
     --with-gmp=${gmp}
     --with-mpfr=${mpfr}
     --with-mpc=${mpc}
-    ${if (libelf != null) then "--with-libelf=${libelf}" else ""}
+    ${if libelf != null then "--with-libelf=${libelf}" else ""}
     --disable-libstdcxx-pch
     --without-included-gettext
     --with-system-zlib
@@ -255,11 +255,11 @@ stdenv.mkDerivation ({
     ${ # Trick that should be taken out once we have a mips64el-linux not loongson2f
       if cross == null && stdenv.system == "mips64el-linux" then "--with-arch=loongson2f" else ""}
     ${if langAda then " --enable-libada" else ""}
-    ${if (cross == null && stdenv.isi686) then "--with-arch=i686" else ""}
+    ${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
     ${if cross != null then crossConfigureFlags else ""}
   ";
 
-  targetConfig = if (cross != null) then cross.config else null;
+  targetConfig = if cross != null then cross.config else null;
 
   crossAttrs = {
     AR = "${stdenv.cross.config}-ar";
@@ -277,13 +277,13 @@ stdenv.mkDerivation ({
     configureFlags = ''
       ${if enableMultilib then "" else "--disable-multilib"}
       ${if enableShared then "" else "--disable-shared"}
-      ${if ppl != null then "--with-ppl=${ppl.hostDrv}" else ""}
-      ${if cloogppl != null then "--with-cloog=${cloogppl.hostDrv}" else ""}
-      ${if langJava then "--with-ecj-jar=${javaEcj.hostDrv}" else ""}
+      ${if ppl != null then "--with-ppl=${ppl.crossDrv}" else ""}
+      ${if cloogppl != null then "--with-cloog=${cloogppl.crossDrv}" else ""}
+      ${if langJava then "--with-ecj-jar=${javaEcj.crossDrv}" else ""}
       ${if javaAwtGtk then "--enable-java-awt=gtk" else ""}
-      ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr.hostDrv}" else ""}
-      --with-gmp=${gmp.hostDrv}
-      --with-mpfr=${mpfr.hostDrv}
+      ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr.crossDrv}" else ""}
+      --with-gmp=${gmp.crossDrv}
+      --with-mpfr=${mpfr.crossDrv}
       --disable-libstdcxx-pch
       --without-included-gettext
       --with-system-zlib
@@ -299,7 +299,7 @@ stdenv.mkDerivation ({
         )
       }
       ${if langAda then " --enable-libada" else ""}
-      ${if (cross == null && stdenv.isi686) then "--with-arch=i686" else ""}
+      ${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
       ${if cross != null then crossConfigureFlags else ""}
       --target=${stdenv.cross.config}
     '';
@@ -391,7 +391,7 @@ stdenv.mkDerivation ({
 
 // optionalAttrs (cross != null || libcCross != null) {
   # `builder.sh' sets $CPP, which leads configure to use "gcc -E" instead of,
-  # say, "i586-pc-gnu-gcc -E" when building `gcc.hostDrv'.
+  # say, "i586-pc-gnu-gcc -E" when building `gcc.crossDrv'.
   # FIXME: Fix `builder.sh' directly in the next stdenv-update.
   postUnpack = "unset CPP";
 }
diff --git a/pkgs/development/compilers/gcc/4.6/builder.sh b/pkgs/development/compilers/gcc/4.6/builder.sh
index 6cd64bc58f20..bdf15be5a996 100644
--- a/pkgs/development/compilers/gcc/4.6/builder.sh
+++ b/pkgs/development/compilers/gcc/4.6/builder.sh
@@ -196,6 +196,15 @@ postConfigure() {
 }
 
 
+preInstall() {
+    # Make ‘lib64’ a symlink to ‘lib’.
+    if [ -n "$is64bit" -a -z "$enableMultilib" ]; then
+        mkdir -p $out/lib
+        ln -s lib $out/lib64
+    fi
+}
+
+
 postInstall() {
     # Remove precompiled headers for now.  They are very big and
     # probably not very useful yet.
@@ -234,13 +243,4 @@ postInstall() {
     eval "$postInstallGhdl"
 }
 
-
-if test -z "$targetConfig" && test -z "$crossConfig"; then
-    if test -z "$profiledCompiler"; then
-        buildFlags="bootstrap $buildFlags"
-    else    
-        buildFlags="profiledbootstrap $buildFlags"
-    fi
-fi
-
 genericBuild
diff --git a/pkgs/development/compilers/gcc/4.6/default.nix b/pkgs/development/compilers/gcc/4.6/default.nix
index b77fd0885016..d95e161ba238 100644
--- a/pkgs/development/compilers/gcc/4.6/default.nix
+++ b/pkgs/development/compilers/gcc/4.6/default.nix
@@ -51,7 +51,10 @@ let version = "4.6.3";
     # Whether building a cross-compiler for GNU/Hurd.
     crossGNU = cross != null && cross.config == "i586-pc-gnu";
 
-    patches = [ ]
+    patches =
+      [ # Fix building on Glibc 2.16.
+        ./siginfo_t_fix.patch
+      ]
       ++ optional (cross != null) ./libstdc++-target.patch
       ++ optional noSysDirs ./no-sys-dirs.patch
       # The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its
@@ -84,71 +87,95 @@ let version = "4.6.3";
 
     javaAwtGtk = langJava && gtk != null;
 
+    /* Platform flags */
+    platformFlags = let
+        gccArch = stdenv.lib.attrByPath [ "platform" "gcc" "arch" ] null stdenv;
+        gccCpu = stdenv.lib.attrByPath [ "platform" "gcc" "cpu" ] null stdenv;
+        gccAbi = stdenv.lib.attrByPath [ "platform" "gcc" "abi" ] null stdenv;
+        gccFpu = stdenv.lib.attrByPath [ "platform" "gcc" "fpu" ] null stdenv;
+        gccFloat = stdenv.lib.attrByPath [ "platform" "gcc" "float" ] null stdenv;
+        withArch = if gccArch != null then " --with-arch=${gccArch}" else "";
+        withCpu = if gccCpu != null then " --with-cpu=${gccCpu}" else "";
+        withAbi = if gccAbi != null then " --with-abi=${gccAbi}" else "";
+        withFpu = if gccFpu != null then " --with-fpu=${gccFpu}" else "";
+        withFloat = if gccFloat != null then " --with-float=${gccFloat}" else "";
+      in 
+        (withArch +
+        withCpu +
+        withAbi +
+        withFpu +
+        withFloat);
+
     /* Cross-gcc settings */
-    gccArch = stdenv.lib.attrByPath [ "gcc" "arch" ] null cross;
-    gccCpu = stdenv.lib.attrByPath [ "gcc" "cpu" ] null cross;
-    gccAbi = stdenv.lib.attrByPath [ "gcc" "abi" ] null cross;
-    withArch = if gccArch != null then " --with-arch=${gccArch}" else "";
-    withCpu = if gccCpu != null then " --with-cpu=${gccCpu}" else "";
-    withAbi = if gccAbi != null then " --with-abi=${gccAbi}" else "";
     crossMingw = (cross != null && cross.libc == "msvcrt");
-
-    crossConfigureFlags =
-      "--target=${cross.config}" +
-      withArch +
-      withCpu +
-      withAbi +
-      (if (crossMingw && crossStageStatic) then
-        " --with-headers=${libcCross}/include" +
-        " --with-gcc" +
-        " --with-gnu-as" +
-        " --with-gnu-ld" +
-        " --with-gnu-ld" +
-        " --disable-shared" +
-        " --disable-nls" +
-        " --disable-debug" +
-        " --enable-sjlj-exceptions" +
-        " --enable-threads=win32" +
-        " --disable-win32-registry"
-        else if crossStageStatic then
-        " --disable-libssp --disable-nls" +
-        " --without-headers" +
-        " --disable-threads " +
-        " --disable-libmudflap " +
-        " --disable-libgomp " +
-        " --disable-libquadmath" +
-        " --disable-shared" +
-        " --disable-decimal-float" # libdecnumber requires libc
-        else
-        " --with-headers=${libcCross}/include" +
-        " --enable-__cxa_atexit" +
-        " --enable-long-long" +
-        (if crossMingw then
-          " --enable-threads=win32" +
-          " --enable-sjlj-exceptions" +
-          " --enable-hash-synchronization" +
-          " --disable-libssp" +
+    crossConfigureFlags = let
+        gccArch = stdenv.lib.attrByPath [ "gcc" "arch" ] null cross;
+        gccCpu = stdenv.lib.attrByPath [ "gcc" "cpu" ] null cross;
+        gccAbi = stdenv.lib.attrByPath [ "gcc" "abi" ] null cross;
+        gccFpu = stdenv.lib.attrByPath [ "gcc" "fpu" ] null cross;
+        withArch = if gccArch != null then " --with-arch=${gccArch}" else "";
+        withCpu = if gccCpu != null then " --with-cpu=${gccCpu}" else "";
+        withAbi = if gccAbi != null then " --with-abi=${gccAbi}" else "";
+        withFpu = if gccFpu != null then " --with-fpu=${gccFpu}" else "";
+      in
+        "--target=${cross.config}" +
+        withArch +
+        withCpu +
+        withAbi +
+        withFpu +
+        (if crossMingw && crossStageStatic then
+          " --with-headers=${libcCross}/include" +
+          " --with-gcc" +
+          " --with-gnu-as" +
+          " --with-gnu-ld" +
+          " --with-gnu-ld" +
+          " --disable-shared" +
           " --disable-nls" +
-          " --with-dwarf2" +
-          # I think noone uses shared gcc libs in mingw, so we better do the same.
-          # In any case, mingw32 g++ linking is broken by default with shared libs,
-          # unless adding "-lsupc++" to any linking command. I don't know why.
+          " --disable-debug" +
+          " --enable-sjlj-exceptions" +
+          " --enable-threads=win32" +
+          " --disable-win32-registry"
+          else if crossStageStatic then
+          " --disable-libssp --disable-nls" +
+          " --without-headers" +
+          " --disable-threads " +
+          " --disable-libmudflap " +
+          " --disable-libgomp " +
+          " --disable-libquadmath" +
           " --disable-shared" +
-          (if cross.config == "x86_64-w64-mingw32" then
-            # To keep ABI compatibility with upstream mingw-w64
-            " --enable-fully-dynamic-string"
-            else "")
-          else (if cross.libc == "uclibc" then
-            # In uclibc cases, libgomp needs an additional '-ldl'
-            # and as I don't know how to pass it, I disable libgomp.
-            " --disable-libgomp" else "") +
-          " --enable-threads=posix" +
-          " --enable-nls" +
-          " --disable-decimal-float") # No final libdecnumber (it may work only in 386)
-        );
-    stageNameAddon = if (crossStageStatic) then "-stage-static" else
+          " --disable-decimal-float" # libdecnumber requires libc
+          else
+          " --with-headers=${libcCross}/include" +
+          " --enable-__cxa_atexit" +
+          " --enable-long-long" +
+          (if crossMingw then
+            " --enable-threads=win32" +
+            " --enable-sjlj-exceptions" +
+            " --enable-hash-synchronization" +
+            " --disable-libssp" +
+            " --disable-nls" +
+            " --with-dwarf2" +
+            # I think noone uses shared gcc libs in mingw, so we better do the same.
+            # In any case, mingw32 g++ linking is broken by default with shared libs,
+            # unless adding "-lsupc++" to any linking command. I don't know why.
+            " --disable-shared" +
+            (if cross.config == "x86_64-w64-mingw32" then
+              # To keep ABI compatibility with upstream mingw-w64
+              " --enable-fully-dynamic-string"
+              else "")
+            else (if cross.libc == "uclibc" then
+              # In uclibc cases, libgomp needs an additional '-ldl'
+              # and as I don't know how to pass it, I disable libgomp.
+              " --disable-libgomp" else "") +
+            " --enable-threads=posix" +
+            " --enable-nls" +
+            " --disable-decimal-float") # No final libdecnumber (it may work only in 386)
+          );
+    stageNameAddon = if crossStageStatic then "-stage-static" else
       "-stage-final";
-    crossNameAddon = if (cross != null) then "-${cross.config}" + stageNameAddon else "";
+    crossNameAddon = if cross != null then "-${cross.config}" + stageNameAddon else "";
+
+  bootstrap = cross == null && !stdenv.isArm && !stdenv.isMips;
 
 in
 
@@ -165,11 +192,11 @@ stdenv.mkDerivation ({
     inherit langC langCC langFortran langJava langAda langGo;
   };
 
-  inherit patches;
+  inherit patches enableMultilib;
 
   postPatch =
     if (stdenv.isGNU
-        || (libcCross != null                  # e.g., building `gcc.hostDrv'
+        || (libcCross != null                  # e.g., building `gcc.crossDrv'
             && libcCross ? crossConfig
             && libcCross.crossConfig == "i586-pc-gnu")
         || (crossGNU && libcCross != null))
@@ -211,7 +238,7 @@ stdenv.mkDerivation ({
       # On NixOS, use the right path to the dynamic linker instead of
       # `/lib/ld*.so'.
       let
-        libc = if (libcCross != null) then libcCross else stdenv.gcc.libc;
+        libc = if libcCross != null then libcCross else stdenv.gcc.libc;
       in
         '' echo "fixing the \`GLIBC_DYNAMIC_LINKER' and \`UCLIBC_DYNAMIC_LINKER' macros..."
            for header in "gcc/config/"*-gnu.h "gcc/config/"*"/"*.h
@@ -224,10 +251,10 @@ stdenv.mkDerivation ({
         ''
     else null;
 
-  inherit noSysDirs profiledCompiler staticCompiler langJava crossStageStatic
+  inherit noSysDirs staticCompiler langJava crossStageStatic
     libcCross crossMingw;
 
-  buildNativeInputs = [ texinfo which gettext ]
+  nativeBuildInputs = [ texinfo which gettext ]
     ++ (optional (perl != null) perl)
     ++ (optional javaAwtGtk pkgconfig);
 
@@ -270,7 +297,7 @@ stdenv.mkDerivation ({
     --with-gmp=${gmp}
     --with-mpfr=${mpfr}
     --with-mpc=${mpc}
-    ${if (libelf != null) then "--with-libelf=${libelf}" else ""}
+    ${if libelf != null then "--with-libelf=${libelf}" else ""}
     --disable-libstdcxx-pch
     --without-included-gettext
     --with-system-zlib
@@ -286,14 +313,18 @@ stdenv.mkDerivation ({
         )
       )
     }
-    ${ # Trick that should be taken out once we have a mips64el-linux not loongson2f
-      if cross == null && stdenv.system == "mips64el-linux" then "--with-arch=loongson2f" else ""}
     ${if langAda then " --enable-libada" else ""}
-    ${if (cross == null && stdenv.isi686) then "--with-arch=i686" else ""}
+    ${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
     ${if cross != null then crossConfigureFlags else ""}
+    ${if !bootstrap then "--disable-bootstrap" else ""}
+    ${if cross == null then platformFlags else ""}
   ";
 
-  targetConfig = if (cross != null) then cross.config else null;
+  targetConfig = if cross != null then cross.config else null;
+
+  buildFlags = if bootstrap then
+    (if profiledCompiler then "profiledbootstrap" else "bootstrap")
+    else "";
 
   installTargets =
     if stripped
@@ -317,13 +348,13 @@ stdenv.mkDerivation ({
     configureFlags = ''
       ${if enableMultilib then "" else "--disable-multilib"}
       ${if enableShared then "" else "--disable-shared"}
-      ${if ppl != null then "--with-ppl=${ppl.hostDrv}" else ""}
-      ${if cloog != null then "--with-cloog=${cloog.hostDrv} --enable-cloog-backend=isl" else ""}
-      ${if langJava then "--with-ecj-jar=${javaEcj.hostDrv}" else ""}
+      ${if ppl != null then "--with-ppl=${ppl.crossDrv}" else ""}
+      ${if cloog != null then "--with-cloog=${cloog.crossDrv} --enable-cloog-backend=isl" else ""}
+      ${if langJava then "--with-ecj-jar=${javaEcj.crossDrv}" else ""}
       ${if javaAwtGtk then "--enable-java-awt=gtk" else ""}
-      ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr.hostDrv}" else ""}
-      --with-gmp=${gmp.hostDrv}
-      --with-mpfr=${mpfr.hostDrv}
+      ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr.crossDrv}" else ""}
+      --with-gmp=${gmp.crossDrv}
+      --with-mpfr=${mpfr.crossDrv}
       --disable-libstdcxx-pch
       --without-included-gettext
       --with-system-zlib
@@ -340,10 +371,11 @@ stdenv.mkDerivation ({
         )
       }
       ${if langAda then " --enable-libada" else ""}
-      ${if (cross == null && stdenv.isi686) then "--with-arch=i686" else ""}
+      ${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
       ${if cross != null then crossConfigureFlags else ""}
       --target=${stdenv.cross.config}
     '';
+    buildFlags = "";
   };
 
 
@@ -399,10 +431,12 @@ stdenv.mkDerivation ({
     else null;
 
   passthru = { inherit langC langCC langAda langFortran langVhdl
-      langGo enableMultilib version; };
+      langGo version; };
 
   enableParallelBuilding = true;
 
+  inherit (stdenv) is64bit;
+
   meta = {
     homepage = http://gcc.gnu.org/;
     license = "GPLv3+";  # runtime support libraries are typically LGPLv3+
diff --git a/pkgs/development/compilers/gcc/4.6/siginfo_t_fix.patch b/pkgs/development/compilers/gcc/4.6/siginfo_t_fix.patch
new file mode 100644
index 000000000000..1409c552c7d0
--- /dev/null
+++ b/pkgs/development/compilers/gcc/4.6/siginfo_t_fix.patch
@@ -0,0 +1,211 @@
+Partly taken from:
+http://gcc.gnu.org/git/?p=gcc.git;a=patch;h=5617a3db5d04630d0bfb71a3578894b4442f266d
+
+Adapted to gcc 4.6.3. Original commit text follows.
+
+From 5617a3db5d04630d0bfb71a3578894b4442f266d Mon Sep 17 00:00:00 2001
+From: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Fri, 20 Apr 2012 07:44:50 +0000
+Subject: [PATCH] 	struct siginfo vs. siginfo_t
+
+gcc/
+	* config/alpha/linux-unwind.h (alpha_fallback_frame_state): Use
+	siginfo_t instead of struct siginfo.
+	* config/bfin/linux-unwind.h (bfin_fallback_frame_state): Likewise.
+	* config/i386/linux-unwind.h (x86_fallback_frame_state): Likewise.
+	* config/ia64/linux-unwind.h (ia64_fallback_frame_state)
+	(ia64_handle_unwabi): Likewise.
+	* config/mips/linux-unwind.h (mips_fallback_frame_state): Likewise.
+	* config/pa/linux-unwind.h (pa32_fallback_frame_state): Likewise.
+	* config/sh/linux-unwind.h (shmedia_fallback_frame_state)
+	(sh_fallback_frame_state): Likewise.
+	* config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Likewise.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186610 138bc75d-0d04-0410-961f-82ee72b054a4
+
+diff --git a/gcc/config/alpha/linux-unwind.h b/gcc/config/alpha/linux-unwind.h
+index 4c811dc..8c04b3b 100644
+--- a/gcc/config/alpha/linux-unwind.h
++++ b/gcc/config/alpha/linux-unwind.h
+@@ -1,5 +1,5 @@
+ /* DWARF2 EH unwinding support for Alpha Linux.
+-   Copyright (C) 2004, 2005, 2009, 2011 Free Software Foundation, Inc.
++   Copyright (C) 2004, 2005, 2009, 2011, 2012 Free Software Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
+@@ -49,7 +49,7 @@ alpha_fallback_frame_state (struct _Unwind_Context *context,
+   else if (pc[1] == 0x201f015f)		/* lda $0,NR_rt_sigreturn */
+     {
+       struct rt_sigframe {
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       sc = &rt_->uc.uc_mcontext;
+diff --git a/gcc/config/bfin/linux-unwind.h b/gcc/config/bfin/linux-unwind.h
+index 88c8285..15bb2f1 100644
+--- a/gcc/config/bfin/linux-unwind.h
++++ b/gcc/config/bfin/linux-unwind.h
+@@ -1,5 +1,5 @@
+ /* DWARF2 EH unwinding support for Blackfin.
+-   Copyright (C) 2007, 2009 Free Software Foundation, Inc.
++   Copyright (C) 2007, 2009, 2012 Free Software Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
+@@ -48,10 +48,10 @@ bfin_fallback_frame_state (struct _Unwind_Context *context,
+     {
+       struct rt_sigframe {
+ 	int sig;
+-	struct siginfo *pinfo;
++	siginfo_t *pinfo;
+ 	void *puc;
+ 	char retcode[8];
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+ 
+diff --git a/gcc/config/i386/linux-unwind.h b/gcc/config/i386/linux-unwind.h
+index ad0ccfa..02b1897 100644
+--- a/gcc/config/i386/linux-unwind.h
++++ b/gcc/config/i386/linux-unwind.h
+@@ -136,9 +136,9 @@ x86_fallback_frame_state (struct _Unwind_Context *context,
+     {
+       struct rt_sigframe {
+ 	int sig;
+-	struct siginfo *pinfo;
++	siginfo_t *pinfo;
+ 	void *puc;
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+diff --git a/gcc/config/ia64/linux-unwind.h b/gcc/config/ia64/linux-unwind.h
+index 93f762d..da31259 100644
+--- a/gcc/config/ia64/linux-unwind.h
++++ b/gcc/config/ia64/linux-unwind.h
+@@ -1,5 +1,5 @@
+ /* DWARF2 EH unwinding support for IA64 Linux.
+-   Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc.
++   Copyright (C) 2004, 2005, 2009, 2012 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+@@ -47,7 +47,7 @@ ia64_fallback_frame_state (struct _Unwind_Context *context,
+       struct sigframe {
+ 	char scratch[16];
+ 	unsigned long sig_number;
+-	struct siginfo *info;
++	siginfo_t *info;
+ 	struct sigcontext *sc;
+       } *frame_ = (struct sigframe *)context->psp;
+       struct sigcontext *sc = frame_->sc;
+@@ -137,7 +137,7 @@ ia64_handle_unwabi (struct _Unwind_Context *context, _Unwind_FrameState *fs)
+       struct sigframe {
+ 	char scratch[16];
+ 	unsigned long sig_number;
+-	struct siginfo *info;
++	siginfo_t *info;
+ 	struct sigcontext *sc;
+       } *frame = (struct sigframe *)context->psp;
+       struct sigcontext *sc = frame->sc;
+diff --git a/gcc/config/mips/linux-unwind.h b/gcc/config/mips/linux-unwind.h
+index 02f7cd5..094ff58 100644
+--- a/gcc/config/mips/linux-unwind.h
++++ b/gcc/config/mips/linux-unwind.h
+@@ -1,5 +1,6 @@
+ /* DWARF2 EH unwinding support for MIPS Linux.
+-   Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
++   Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2012 Free Software
++   Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
+@@ -75,7 +76,7 @@ mips_fallback_frame_state (struct _Unwind_Context *context,
+       struct rt_sigframe {
+ 	u_int32_t ass[4];  /* Argument save space for o32.  */
+ 	u_int32_t trampoline[2];
+-	struct siginfo info;
++	siginfo_t info;
+ 	_sig_ucontext_t uc;
+       } *rt_ = context->cfa;
+       sc = &rt_->uc.uc_mcontext;
+diff --git a/gcc/config/pa/linux-unwind.h b/gcc/config/pa/linux-unwind.h
+index a0560e9..38b4eda 100644
+--- a/gcc/config/pa/linux-unwind.h
++++ b/gcc/config/pa/linux-unwind.h
+@@ -1,5 +1,5 @@
+ /* DWARF2 EH unwinding support for PA Linux.
+-   Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc.
++   Copyright (C) 2004, 2005, 2009, 2012 Free Software Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
+@@ -63,7 +63,7 @@ pa32_fallback_frame_state (struct _Unwind_Context *context,
+   int i;
+   struct sigcontext *sc;
+   struct rt_sigframe {
+-    struct siginfo info;
++    siginfo_t info;
+     struct ucontext uc;
+   } *frame;
+ 
+diff --git a/gcc/config/sh/linux-unwind.h b/gcc/config/sh/linux-unwind.h
+index 94ed95d..5a78e31 100644
+--- a/gcc/config/sh/linux-unwind.h
++++ b/gcc/config/sh/linux-unwind.h
+@@ -1,5 +1,6 @@
+ /* DWARF2 EH unwinding support for SH Linux.
+-   Copyright (C) 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
++   Copyright (C) 2004, 2005, 2006, 2007, 2009, 2012 Free Software Foundation,
++   Inc.
+ 
+ This file is part of GCC.
+ 
+@@ -80,9 +81,9 @@ shmedia_fallback_frame_state (struct _Unwind_Context *context,
+ 	   && (*(unsigned long *) (pc+11)  == 0x6ff0fff0))
+     {
+       struct rt_sigframe {
+-	struct siginfo *pinfo;
++	siginfo_t *pinfo;
+ 	void *puc;
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+@@ -179,7 +180,7 @@ sh_fallback_frame_state (struct _Unwind_Context *context,
+ 		&& (*(unsigned short *) (pc+14)  == 0x00ad))))
+     {
+       struct rt_sigframe {
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+diff --git a/gcc/config/xtensa/linux-unwind.h b/gcc/config/xtensa/linux-unwind.h
+index 32e9349..2456497 100644
+--- a/gcc/config/xtensa/linux-unwind.h
++++ b/gcc/config/xtensa/linux-unwind.h
+@@ -1,5 +1,5 @@
+ /* DWARF2 EH unwinding support for Xtensa.
+-   Copyright (C) 2008, 2009 Free Software Foundation, Inc.
++   Copyright (C) 2008, 2009, 2012 Free Software Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
+@@ -62,7 +62,7 @@ xtensa_fallback_frame_state (struct _Unwind_Context *context,
+   struct sigcontext *sc;
+ 
+   struct rt_sigframe {
+-    struct siginfo info;
++    siginfo_t info;
+     struct ucontext uc;
+   } *rt_;
+ 
+-- 
+1.7.3.4
+
diff --git a/pkgs/development/compilers/gcc/4.7/builder.sh b/pkgs/development/compilers/gcc/4.7/builder.sh
index 4ae7a1c193b9..37400fba5bf5 100644
--- a/pkgs/development/compilers/gcc/4.7/builder.sh
+++ b/pkgs/development/compilers/gcc/4.7/builder.sh
@@ -71,7 +71,7 @@ if test "$noSysDirs" = "1"; then
         unset CPATH
         if test -z "$crossStageStatic"; then
             EXTRA_TARGET_CFLAGS="-B${libcCross}/lib -idirafter ${libcCross}/include"
-            EXTRA_TARGET_LDFLAGS="-Wl,-L${libcCross}/lib"
+            EXTRA_TARGET_LDFLAGS="-Wl,-L${libcCross}/lib -Wl,-rpath,${libcCross}/lib -Wl,-rpath-link,${libcCross}/lib"
         fi
     else
         if test -z "$NIX_GCC_CROSS"; then
@@ -95,7 +95,9 @@ if test "$noSysDirs" = "1"; then
             NIX_FIXINC_DUMMY_CROSS=$(cat $NIX_GCC_CROSS/nix-support/orig-libc)/include
 
             # The path to the Glibc binaries such as `crti.o'.
-            glibc_libdir="$(cat $NIX_GCC_CROSS/nix-support/orig-libc)/lib"
+            glibc_dir="$(cat $NIX_GCC_CROSS/nix-support/orig-libc)"
+            glibc_libdir="$glibc_dir/lib"
+            configureFlags="$configureFlags --with-native-system-header-dir=$glibc_dir/include"
 
             extraFlags="-I$NIX_FIXINC_DUMMY_CROSS $extraFlags"
             extraLDFlags="-L$glibc_libdir -rpath $glibc_libdir $extraLDFlags"
@@ -237,13 +239,4 @@ postInstall() {
     eval "$postInstallGhdl"
 }
 
-
-if test -z "$targetConfig" && test -z "$crossConfig"; then
-    if test -z "$profiledCompiler"; then
-        buildFlags="bootstrap $buildFlags"
-    else    
-        buildFlags="profiledbootstrap $buildFlags"
-    fi
-fi
-
 genericBuild
diff --git a/pkgs/development/compilers/gcc/4.7/default.nix b/pkgs/development/compilers/gcc/4.7/default.nix
index 5ab7166204e9..62a86751a712 100644
--- a/pkgs/development/compilers/gcc/4.7/default.nix
+++ b/pkgs/development/compilers/gcc/4.7/default.nix
@@ -85,74 +85,104 @@ let version = "4.7.2";
 
     javaAwtGtk = langJava && gtk != null;
 
+    /* Platform flags */
+    platformFlags = let
+        gccArch = stdenv.lib.attrByPath [ "platform" "gcc" "arch" ] null stdenv;
+        gccCpu = stdenv.lib.attrByPath [ "platform" "gcc" "cpu" ] null stdenv;
+        gccAbi = stdenv.lib.attrByPath [ "platform" "gcc" "abi" ] null stdenv;
+        gccFpu = stdenv.lib.attrByPath [ "platform" "gcc" "fpu" ] null stdenv;
+        gccFloat = stdenv.lib.attrByPath [ "platform" "gcc" "float" ] null stdenv;
+        gccMode = stdenv.lib.attrByPath [ "platform" "gcc" "mode" ] null stdenv;
+        withArch = if gccArch != null then " --with-arch=${gccArch}" else "";
+        withCpu = if gccCpu != null then " --with-cpu=${gccCpu}" else "";
+        withAbi = if gccAbi != null then " --with-abi=${gccAbi}" else "";
+        withFpu = if gccFpu != null then " --with-fpu=${gccFpu}" else "";
+        withFloat = if gccFloat != null then " --with-float=${gccFloat}" else "";
+        withMode = if gccMode != null then " --with-mode=${gccMode}" else "";
+      in 
+        (withArch +
+        withCpu +
+        withAbi +
+        withFpu +
+        withFloat +
+        withMode);
+
     /* Cross-gcc settings */
-    gccArch = stdenv.lib.attrByPath [ "gcc" "arch" ] null cross;
-    gccCpu = stdenv.lib.attrByPath [ "gcc" "cpu" ] null cross;
-    gccAbi = stdenv.lib.attrByPath [ "gcc" "abi" ] null cross;
-    gccMode = stdenv.lib.attrByPath [ "gcc" "mode" ] null cross;
-    withArch = if gccArch != null then " --with-arch=${gccArch}" else "";
-    withCpu = if gccCpu != null then " --with-cpu=${gccCpu}" else "";
-    withAbi = if gccAbi != null then " --with-abi=${gccAbi}" else "";
-    withMode = if gccMode != null then " --with-mode=${gccMode}" else "";
     crossMingw = (cross != null && cross.libc == "msvcrt");
-
-    crossConfigureFlags =
-      "--target=${cross.config}" +
-      withArch +
-      withCpu +
-      withAbi +
-      withMode +
-      (if (crossMingw && crossStageStatic) then
-        " --with-headers=${libcCross}/include" +
-        " --with-gcc" +
-        " --with-gnu-as" +
-        " --with-gnu-ld" +
-        " --with-gnu-ld" +
-        " --disable-shared" +
-        " --disable-nls" +
-        " --disable-debug" +
-        " --enable-sjlj-exceptions" +
-        " --enable-threads=win32" +
-        " --disable-win32-registry"
-        else if crossStageStatic then
-        " --disable-libssp --disable-nls" +
-        " --without-headers" +
-        " --disable-threads " +
-        " --disable-libmudflap " +
-        " --disable-libgomp " +
-        " --disable-libquadmath" +
-        " --disable-shared" +
-        " --disable-decimal-float" # libdecnumber requires libc
-        else
-        " --with-headers=${libcCross}/include" +
-        " --enable-__cxa_atexit" +
-        " --enable-long-long" +
-        (if crossMingw then
-          " --enable-threads=win32" +
-          " --enable-sjlj-exceptions" +
-          " --enable-hash-synchronization" +
-          " --disable-libssp" +
+    crossConfigureFlags = let
+        gccArch = stdenv.lib.attrByPath [ "gcc" "arch" ] null cross;
+        gccCpu = stdenv.lib.attrByPath [ "gcc" "cpu" ] null cross;
+        gccAbi = stdenv.lib.attrByPath [ "gcc" "abi" ] null cross;
+        gccFpu = stdenv.lib.attrByPath [ "gcc" "fpu" ] null cross;
+        gccFloat = stdenv.lib.attrByPath [ "gcc" "float" ] null cross;
+        gccMode = stdenv.lib.attrByPath [ "gcc" "mode" ] null cross;
+        withArch = if gccArch != null then " --with-arch=${gccArch}" else "";
+        withCpu = if gccCpu != null then " --with-cpu=${gccCpu}" else "";
+        withAbi = if gccAbi != null then " --with-abi=${gccAbi}" else "";
+        withFpu = if gccFpu != null then " --with-fpu=${gccFpu}" else "";
+        withFloat = if gccFloat != null then " --with-float=${gccFloat}" else "";
+        withMode = if gccMode != null then " --with-mode=${gccMode}" else "";
+      in
+        "--target=${cross.config}" +
+        withArch +
+        withCpu +
+        withAbi +
+        withFpu +
+        withFloat +
+        withMode +
+        (if crossMingw && crossStageStatic then
+          " --with-headers=${libcCross}/include" +
+          " --with-gcc" +
+          " --with-gnu-as" +
+          " --with-gnu-ld" +
+          " --with-gnu-ld" +
+          " --disable-shared" +
           " --disable-nls" +
-          " --with-dwarf2" +
-          # I think noone uses shared gcc libs in mingw, so we better do the same.
-          # In any case, mingw32 g++ linking is broken by default with shared libs,
-          # unless adding "-lsupc++" to any linking command. I don't know why.
+          " --disable-debug" +
+          " --enable-sjlj-exceptions" +
+          " --enable-threads=win32" +
+          " --disable-win32-registry"
+          else if crossStageStatic then
+          " --disable-libssp --disable-nls" +
+          " --without-headers" +
+          " --disable-threads " +
+          " --disable-libmudflap " +
+          " --disable-libgomp " +
+          " --disable-libquadmath" +
           " --disable-shared" +
-          (if cross.config == "x86_64-w64-mingw32" then
-            # To keep ABI compatibility with upstream mingw-w64
-            " --enable-fully-dynamic-string"
-            else "")
-          else (if cross.libc == "uclibc" then
-            # In uclibc cases, libgomp needs an additional '-ldl'
-            # and as I don't know how to pass it, I disable libgomp.
-            " --disable-libgomp" else "") +
-          " --enable-threads=posix" +
-          " --enable-nls" +
-          " --disable-decimal-float") # No final libdecnumber (it may work only in 386)
-        );
-    stageNameAddon = if (crossStageStatic) then "-stage-static" else
+          " --disable-decimal-float" # libdecnumber requires libc
+          else
+          " --with-headers=${libcCross}/include" +
+          " --enable-__cxa_atexit" +
+          " --enable-long-long" +
+          (if crossMingw then
+            " --enable-threads=win32" +
+            " --enable-sjlj-exceptions" +
+            " --enable-hash-synchronization" +
+            " --disable-libssp" +
+            " --disable-nls" +
+            " --with-dwarf2" +
+            # I think noone uses shared gcc libs in mingw, so we better do the same.
+            # In any case, mingw32 g++ linking is broken by default with shared libs,
+            # unless adding "-lsupc++" to any linking command. I don't know why.
+            " --disable-shared" +
+            (if cross.config == "x86_64-w64-mingw32" then
+              # To keep ABI compatibility with upstream mingw-w64
+              " --enable-fully-dynamic-string"
+              else "")
+            else (if cross.libc == "uclibc" then
+              # In uclibc cases, libgomp needs an additional '-ldl'
+              # and as I don't know how to pass it, I disable libgomp.
+              " --disable-libgomp" else "") +
+            " --enable-threads=posix" +
+            " --enable-nls" +
+            " --disable-decimal-float") # No final libdecnumber (it may work only in 386)
+          );
+    stageNameAddon = if crossStageStatic then "-stage-static" else
       "-stage-final";
-    crossNameAddon = if (cross != null) then "-${cross.config}" + stageNameAddon else "";
+    crossNameAddon = if cross != null then "-${cross.config}" + stageNameAddon else "";
+
+  bootstrap = cross == null && !stdenv.isArm && !stdenv.isMips;
 
 in
 
@@ -173,7 +203,7 @@ stdenv.mkDerivation ({
 
   postPatch =
     if (stdenv.isGNU
-        || (libcCross != null                  # e.g., building `gcc.hostDrv'
+        || (libcCross != null                  # e.g., building `gcc.crossDrv'
             && libcCross ? crossConfig
             && libcCross.crossConfig == "i586-pc-gnu")
         || (crossGNU && libcCross != null))
@@ -212,7 +242,7 @@ stdenv.mkDerivation ({
       # On NixOS, use the right path to the dynamic linker instead of
       # `/lib/ld*.so'.
       let
-        libc = if (libcCross != null) then libcCross else stdenv.gcc.libc;
+        libc = if libcCross != null then libcCross else stdenv.gcc.libc;
       in
         '' echo "fixing the \`GLIBC_DYNAMIC_LINKER' and \`UCLIBC_DYNAMIC_LINKER' macros..."
            for header in "gcc/config/"*-gnu.h "gcc/config/"*"/"*.h
@@ -225,10 +255,10 @@ stdenv.mkDerivation ({
         ''
     else null;
 
-  inherit noSysDirs profiledCompiler staticCompiler langJava crossStageStatic
+  inherit noSysDirs staticCompiler langJava crossStageStatic
     libcCross crossMingw;
 
-  buildNativeInputs = [ texinfo which gettext ]
+  nativeBuildInputs = [ texinfo which gettext ]
     ++ (optional (perl != null) perl)
     ++ (optional javaAwtGtk pkgconfig);
 
@@ -275,7 +305,7 @@ stdenv.mkDerivation ({
     --with-gmp=${gmp}
     --with-mpfr=${mpfr}
     --with-mpc=${mpc}
-    ${if (libelf != null) then "--with-libelf=${libelf}" else ""}
+    ${if libelf != null then "--with-libelf=${libelf}" else ""}
     --disable-libstdcxx-pch
     --without-included-gettext
     --with-system-zlib
@@ -294,21 +324,36 @@ stdenv.mkDerivation ({
     ${if (stdenv ? glibc && cross == null)
       then " --with-native-system-header-dir=${stdenv.glibc}/include"
       else ""}
-    ${ # Trick that should be taken out once we have a mips64el-linux not loongson2f
-      if cross == null && stdenv.system == "mips64el-linux" then "--with-arch=loongson2f" else ""}
     ${if langAda then " --enable-libada" else ""}
-    ${if (cross == null && stdenv.isi686) then "--with-arch=i686" else ""}
+    ${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
     ${if cross != null then crossConfigureFlags else ""}
+    ${if !bootstrap then "--disable-bootstrap" else ""}
+    ${if cross == null then platformFlags else ""}
   ";
 
-  targetConfig = if (cross != null) then cross.config else null;
+  targetConfig = if cross != null then cross.config else null;
+
+  buildFlags = if bootstrap then
+    (if profiledCompiler then "profiledbootstrap" else "bootstrap")
+    else "";
 
   installTargets =
     if stripped
     then "install-strip"
     else "install";
 
-  crossAttrs = {
+  crossAttrs = let
+    xgccArch = stdenv.lib.attrByPath [ "gcc" "arch" ] null stdenv.cross;
+    xgccCpu = stdenv.lib.attrByPath [ "gcc" "cpu" ] null stdenv.cross;
+    xgccAbi = stdenv.lib.attrByPath [ "gcc" "abi" ] null stdenv.cross;
+    xgccFpu = stdenv.lib.attrByPath [ "gcc" "fpu" ] null stdenv.cross;
+    xgccFloat = stdenv.lib.attrByPath [ "gcc" "float" ] null stdenv.cross;
+    xwithArch = if xgccArch != null then " --with-arch=${xgccArch}" else "";
+    xwithCpu = if xgccCpu != null then " --with-cpu=${xgccCpu}" else "";
+    xwithAbi = if xgccAbi != null then " --with-abi=${xgccAbi}" else "";
+    xwithFpu = if xgccFpu != null then " --with-fpu=${xgccFpu}" else "";
+    xwithFloat = if xgccFloat != null then " --with-float=${xgccFloat}" else "";
+  in {
     AR = "${stdenv.cross.config}-ar";
     LD = "${stdenv.cross.config}-ld";
     CC = "${stdenv.cross.config}-gcc";
@@ -324,13 +369,13 @@ stdenv.mkDerivation ({
     configureFlags = ''
       ${if enableMultilib then "" else "--disable-multilib"}
       ${if enableShared then "" else "--disable-shared"}
-      ${if ppl != null then "--with-ppl=${ppl.hostDrv}" else ""}
-      ${if cloog != null then "--with-cloog=${cloog.hostDrv} --enable-cloog-backend=isl" else ""}
-      ${if langJava then "--with-ecj-jar=${javaEcj.hostDrv}" else ""}
+      ${if ppl != null then "--with-ppl=${ppl.crossDrv}" else ""}
+      ${if cloog != null then "--with-cloog=${cloog.crossDrv} --enable-cloog-backend=isl" else ""}
+      ${if langJava then "--with-ecj-jar=${javaEcj.crossDrv}" else ""}
       ${if javaAwtGtk then "--enable-java-awt=gtk" else ""}
-      ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr.hostDrv}" else ""}
-      --with-gmp=${gmp.hostDrv}
-      --with-mpfr=${mpfr.hostDrv}
+      ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr.crossDrv}" else ""}
+      --with-gmp=${gmp.crossDrv}
+      --with-mpfr=${mpfr.crossDrv}
       --disable-libstdcxx-pch
       --without-included-gettext
       --with-system-zlib
@@ -347,10 +392,14 @@ stdenv.mkDerivation ({
         )
       }
       ${if langAda then " --enable-libada" else ""}
-      ${if (cross == null && stdenv.isi686) then "--with-arch=i686" else ""}
-      ${if cross != null then crossConfigureFlags else ""}
       --target=${stdenv.cross.config}
+      ${xwithArch}
+      ${xwithCpu}
+      ${xwithAbi}
+      ${xwithFpu}
+      ${xwithFloat}
     '';
+    buildFlags = "";
   };
 
 
diff --git a/pkgs/development/compilers/gnatboot/default.nix b/pkgs/development/compilers/gnatboot/default.nix
index 79208743ae42..1de0c88a6bc7 100644
--- a/pkgs/development/compilers/gnatboot/default.nix
+++ b/pkgs/development/compilers/gnatboot/default.nix
@@ -3,12 +3,12 @@
 stdenv.mkDerivation {
   name = "gentoo-gnatboot-4.1";
 
-  src = if (stdenv.system == "i686-linux") then
+  src = if stdenv.system == "i686-linux" then
     fetchurl {
       url = "mirror://gentoo/distfiles/gnatboot-4.1-i386.tar.bz2";
       sha256 = "0665zk71598204bf521vw68i5y6ccqarq9fcxsqp7ccgycb4lysr";
     }
-    else if (stdenv.system == "x86_64-linux") then
+    else if stdenv.system == "x86_64-linux" then
     fetchurl {
       url = "mirror://gentoo/distfiles/gnatboot-4.1-amd64.tar.bz2";
       sha256 = "1li4d52lmbnfs6llcshlbqyik2q2q4bvpir0f7n38nagp0h6j0d4";
diff --git a/pkgs/development/compilers/go/default.nix b/pkgs/development/compilers/go/default.nix
index 60ea7981931d..955daa0ad9fc 100644
--- a/pkgs/development/compilers/go/default.nix
+++ b/pkgs/development/compilers/go/default.nix
@@ -54,9 +54,9 @@ stdenv.mkDerivation {
   patches = [ ./cacert.patch ];
 
   GOOS = "linux";
-  GOARCH = if (stdenv.system == "i686-linux") then "386"
-          else if (stdenv.system == "x86_64-linux") then "amd64"
-          else if (stdenv.system == "armv5tel-linux") then "arm"
+  GOARCH = if stdenv.system == "i686-linux" then "386"
+          else if stdenv.system == "x86_64-linux" then "amd64"
+          else if stdenv.system == "armv5tel-linux" then "arm"
           else throw "Unsupported system";
   GOARM = stdenv.lib.optionalString (stdenv.system == "armv5tel-linux") "5";
 
@@ -74,7 +74,7 @@ stdenv.mkDerivation {
     for a in go gofmt godoc; do
 	    wrapProgram "$out/bin/$a" \
 	      --set "GOROOT" $out/share/go \
-        ${if (stdenv.system == "armv5tel-linux") then "--set GOARM $GOARM" else ""}
+        ${if stdenv.system == "armv5tel-linux" then "--set GOARM $GOARM" else ""}
     done
 
     # Copy the emacs configuration for Go files.
diff --git a/pkgs/development/compilers/iasl/default.nix b/pkgs/development/compilers/iasl/default.nix
index 085c599b9692..09245ba6d4bd 100644
--- a/pkgs/development/compilers/iasl/default.nix
+++ b/pkgs/development/compilers/iasl/default.nix
@@ -1,27 +1,28 @@
 {stdenv, fetchurl, bison, flex}:
 
 stdenv.mkDerivation {
-  name = "iasl-20120215";
+  name = "iasl-20130117";
+
   src = fetchurl {
-    url = http://www.acpica.org/download/acpica-unix-20120215.tar.gz;
-    sha256 = "13avirbqdnp7whl6ji8ixkhzdwf1cadl5fg8ggzbxp99bx0rgd5j";
+    url = http://www.acpica.org/download/acpica-unix-20130117.tar.gz;
+    sha256 = "1zils7l7gnkbbl8916dlhvij1g625ryb7769zhzffn3flshfdivh";
   };
 
-  buildPhase = "
-    cd source/compiler
-    make
-    cd ..
-  ";
+  NIX_CFLAGS_COMPILE = "-O3";
 
-  installPhase = "
-    install -d $out/bin
-    install compiler/iasl $out/bin
-  ";
+  buildFlags = "iasl";
 
   buildInputs = [ bison flex ];
 
+  installPhase =
+    ''
+      install -d $out/bin
+      install generate/unix/bin*/iasl $out/bin
+    '';
+
   meta = {
     description = "Intel ACPI Compiler";
     homepage = http://www.acpica.org/;
+    license = "iasl"; # FIXME: is this a free software license?
   };
 }
diff --git a/pkgs/development/compilers/llvm/dragonegg.nix b/pkgs/development/compilers/llvm/dragonegg.nix
index 9fd308a7e213..42d337b8eace 100644
--- a/pkgs/development/compilers/llvm/dragonegg.nix
+++ b/pkgs/development/compilers/llvm/dragonegg.nix
@@ -1,11 +1,12 @@
 {stdenv, fetchurl, llvm, gmp, mpfr, mpc}:
 
 stdenv.mkDerivation rec {
-  name = "dragonegg-3.0";
+  version = "3.2";
+  name = "dragonegg-${version}";
 
   src = fetchurl {
-    url = "http://llvm.org/releases/3.0/${name}.tar.gz";
-    sha256 = "09v8bxx676iz93qk39dc2fk52iqhqy9pnphvinmm9ch1x791zpvj";
+    url = "http://llvm.org/releases/${version}/${name}.src.tar.gz";
+    sha256 = "0jfxhqy3177drlvzgp6m0kwnbfyzrd4vzidnxjhck8a7a69a26bg";
   };
 
   # The gcc the plugin will be built for (the same used building dragonegg)
diff --git a/pkgs/development/compilers/mit-scheme/default.nix b/pkgs/development/compilers/mit-scheme/default.nix
index 7572dda77118..29950aa9e3dd 100644
--- a/pkgs/development/compilers/mit-scheme/default.nix
+++ b/pkgs/development/compilers/mit-scheme/default.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation {
          $out/lib/mit-scheme${arch}
     '';
 
-  buildNativeInputs = [ makeWrapper gnum4 texinfo texLive automake ];
+  nativeBuildInputs = [ makeWrapper gnum4 texinfo texLive automake ];
 
   # XXX: The `check' target doesn't exist.
   doCheck = false;
diff --git a/pkgs/development/compilers/sbcl/default.nix b/pkgs/development/compilers/sbcl/default.nix
index cae98cf6f5f4..22a561d2c2da 100644
--- a/pkgs/development/compilers/sbcl/default.nix
+++ b/pkgs/development/compilers/sbcl/default.nix
@@ -21,7 +21,10 @@ rec {
   configureFlags = [];
 
   /* doConfigure should be removed if not needed */
-  phaseNames = ["setVars" "doFixNewer" "doFixTests" "setVersion" "doBuild" "doInstall" "doWrap"];
+  phaseNames = ["setVars" "doFixNewer" "doFixTests" "setVersion" "doPatch" "doBuild" "doInstall" "doWrap"];
+
+  patches = [ ./newglibc.patch ]; # https://bugs.launchpad.net/sbcl/+bug/1095036
+  patchFlags = "-p2";
 
   setVars = a.fullDepEntry (''
     export INSTALL_ROOT=$out
diff --git a/pkgs/development/compilers/sbcl/newglibc.patch b/pkgs/development/compilers/sbcl/newglibc.patch
new file mode 100644
index 000000000000..dbc94b06d4c9
--- /dev/null
+++ b/pkgs/development/compilers/sbcl/newglibc.patch
@@ -0,0 +1,43 @@
+Fixes for glibc 2.17.
+
+linux-os.c is just a missing header (for personality()).
+
+In x86-64-linux-os.c, __USE_GNU is a glibc-internal name that features.h
+defines; _GNU_SOURCE is what it should actually be using to get GNU extensions.
+
+diff -x config.log -x config.status -ru tmp/sbcl-1.1.2/src/runtime/linux-os.c work/sbcl-1.1.2/src/runtime/linux-os.c
+--- tmp/sbcl-1.1.2/src/runtime/linux-os.c	2012-12-01 11:32:38.000000000 +0000
++++ work/sbcl-1.1.2/src/runtime/linux-os.c	2012-12-31 01:20:37.619000000 +0000
+@@ -46,6 +46,7 @@
+ #include <sys/stat.h>
+ #include <unistd.h>
+ #include <linux/version.h>
++#include <sys/personality.h>
+ 
+ #include "validate.h"
+ #include "thread.h"
+diff -x config.log -x config.status -ru tmp/sbcl-1.1.2/src/runtime/x86-64-linux-os.c work/sbcl-1.1.2/src/runtime/x86-64-linux-os.c
+--- tmp/sbcl-1.1.2/src/runtime/x86-64-linux-os.c	2012-12-01 11:32:38.000000000 +0000
++++ work/sbcl-1.1.2/src/runtime/x86-64-linux-os.c	2012-12-31 01:20:25.450000000 +0000
+@@ -14,6 +14,9 @@
+  * files for more information.
+  */
+ 
++/* This is to get REG_RAX etc. from sys/ucontext.h. */
++#define _GNU_SOURCE
++
+ #include <stdio.h>
+ #include <stddef.h>
+ #include <sys/param.h>
+@@ -21,11 +24,7 @@
+ #include <sys/types.h>
+ #include <unistd.h>
+ #include <errno.h>
+-
+-#define __USE_GNU
+ #include <sys/ucontext.h>
+-#undef __USE_GNU
+-
+ 
+ #include "./signal.h"
+ #include "os.h"
diff --git a/pkgs/development/compilers/tinycc/default.nix b/pkgs/development/compilers/tinycc/default.nix
index 058d84a12de8..f607edd0f024 100644
--- a/pkgs/development/compilers/tinycc/default.nix
+++ b/pkgs/development/compilers/tinycc/default.nix
@@ -11,7 +11,7 @@ let version = "0.9.25"; in
       sha256 = "0dfycf80x73dz67c97j1ry29wrv35393ai5ry46i1x1fzfq6rv8v";
     };
 
-    buildNativeInputs = [ perl texinfo ];
+    nativeBuildInputs = [ perl texinfo ];
 
     patches =
       [ (fetchurl {
diff --git a/pkgs/development/compilers/vala/15.2.nix b/pkgs/development/compilers/vala/15.2.nix
index 822102b7bd4f..529ccea6bc80 100644
--- a/pkgs/development/compilers/vala/15.2.nix
+++ b/pkgs/development/compilers/vala/15.2.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "0g71zq6dpqrw2f40wfzdf18fdw41ymr17laqniy2kr622hkxdi8w";
   };
 
-  buildNativeInputs = [ yacc flex pkgconfig xz ];
+  nativeBuildInputs = [ yacc flex pkgconfig xz ];
 
   buildInputs = [ glib ];
 
diff --git a/pkgs/development/compilers/vala/16.1.nix b/pkgs/development/compilers/vala/16.1.nix
index 54e6af8798d5..f054c59d2e4b 100644
--- a/pkgs/development/compilers/vala/16.1.nix
+++ b/pkgs/development/compilers/vala/16.1.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "1n708n9ixyy9qrzyv1wf4ybvcclx43ib9ki028wwpvkz6kv8zqlb";
   };
 
-  buildNativeInputs = [ yacc flex pkgconfig xz ];
+  nativeBuildInputs = [ yacc flex pkgconfig xz ];
 
   buildInputs = [ glib ];
 
diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix
index a60a71e35806..bce86ac59847 100644
--- a/pkgs/development/compilers/vala/default.nix
+++ b/pkgs/development/compilers/vala/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "09i2s0dwmrk147ind2dx7nq845g12fp6fsjqrphhrr0dbi0zzgh3";
   };
 
-  buildNativeInputs = [ yacc flex pkgconfig xz ];
+  nativeBuildInputs = [ yacc flex pkgconfig xz ];
 
   buildInputs = [ glib ];
 
diff --git a/pkgs/development/interpreters/clisp/bits_ipctypes_to_sys_ipc.patch b/pkgs/development/interpreters/clisp/bits_ipctypes_to_sys_ipc.patch
new file mode 100644
index 000000000000..d6163022830d
--- /dev/null
+++ b/pkgs/development/interpreters/clisp/bits_ipctypes_to_sys_ipc.patch
@@ -0,0 +1,12 @@
+diff -ru a/modules/bindings/glibc/linux.lisp b/modules/bindings/glibc/linux.lisp
+--- a/modules/bindings/glibc/linux.lisp	2008-10-10 16:15:49.000000000 +0300
++++ b/modules/bindings/glibc/linux.lisp	2012-12-04 01:01:35.000000000 +0200
+@@ -86,7 +86,7 @@
+ 
+ (def-c-type __key_t)            ; int
+ 
+-(c-lines "#include <bits/ipctypes.h>~%")
++(c-lines "#include <sys/ipc.h>~%")
+ (def-c-type __ipc_pid_t)        ; ushort
+ 
+ ; --------------------------- <sys/types.h> -----------------------------------
diff --git a/pkgs/development/interpreters/clisp/default.nix b/pkgs/development/interpreters/clisp/default.nix
index 23b4e4e9e54d..bd19d738860a 100644
--- a/pkgs/development/interpreters/clisp/default.nix
+++ b/pkgs/development/interpreters/clisp/default.nix
@@ -18,14 +18,20 @@ stdenv.mkDerivation rec {
       libXt pcre zlib libXpm xproto libXext xextproto libffi
       libffcall
     ];
- 
+
+  patches = [ ./bits_ipctypes_to_sys_ipc.patch ]; # from Gentoo
+
   # First, replace port 9090 (rather low, can be used)
   # with 64237 (much higher, IANA private area, not
   # anything rememberable).
-  patchPhase = ''
+  # Also remove reference to a type that disappeared from recent glibc
+  # (seems the correct thing to do, found no reference to any solution)
+  postPatch = ''
     sed -e 's@9090@64237@g' -i tests/socket.tst
     sed -i 's@/bin/pwd@${coreutils}&@' src/clisp-link.in
     find . -type f | xargs sed -e 's/-lICE/-lXau &/' -i
+
+    substituteInPlace modules/bindings/glibc/linux.lisp --replace "(def-c-type __swblk_t)" ""
   '';
 
   configureFlags =
diff --git a/pkgs/development/interpreters/guile/1.8.nix b/pkgs/development/interpreters/guile/1.8.nix
index bf1efbbb1a95..f44f71020b4c 100644
--- a/pkgs/development/interpreters/guile/1.8.nix
+++ b/pkgs/development/interpreters/guile/1.8.nix
@@ -14,9 +14,9 @@ stdenv.mkDerivation rec {
   # GCC 4.6 raises a number of set-but-unused warnings.
   configureFlags = [ "--disable-error-on-warning" ];
 
-  buildNativeInputs = [ makeWrapper gawk ];
+  nativeBuildInputs = [ makeWrapper gawk ];
   propagatedBuildInputs = [ readline gmp libtool ];
-  selfBuildNativeInput = true;
+  selfNativeBuildInput = true;
 
   postInstall = ''
     wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin"
diff --git a/pkgs/development/interpreters/guile/default.nix b/pkgs/development/interpreters/guile/default.nix
index e5c8f2685480..d09e995e95c0 100644
--- a/pkgs/development/interpreters/guile/default.nix
+++ b/pkgs/development/interpreters/guile/default.nix
@@ -14,7 +14,7 @@
     sha256 = "0f53pxkia4v17n0avwqlcjpy0n89hkazm2xsa6p84lv8k6k8y9vg";
   };
 
-  buildNativeInputs = [ makeWrapper gawk pkgconfig ];
+  nativeBuildInputs = [ makeWrapper gawk pkgconfig ];
   buildInputs = [ readline libtool libunistring libffi ];
   propagatedBuildInputs = [ gmp boehmgc ]
 
@@ -25,13 +25,17 @@
     ++ [ libtool libunistring ];
 
   # A native Guile 2.0 is needed to cross-build Guile.
-  selfBuildNativeInput = true;
+  selfNativeBuildInput = true;
 
   enableParallelBuilding = true;
 
   patches = [ ./disable-gc-sensitive-tests.patch ] ++
     (stdenv.lib.optional (coverageAnalysis != null) ./gcov-file-name.patch);
 
+  # Explicitly link against libgcc_s, to work around the infamous
+  # "libgcc_s.so.1 must be installed for pthread_cancel to work".
+  LDFLAGS = "-lgcc_s";
+
   postInstall = ''
     wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin"
 
diff --git a/pkgs/development/interpreters/hiphopvm/default.nix b/pkgs/development/interpreters/hiphopvm/default.nix
index d2cdf06f1385..57e3e93c6466 100644
--- a/pkgs/development/interpreters/hiphopvm/default.nix
+++ b/pkgs/development/interpreters/hiphopvm/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, fetchgit, cmake, boost, libunwind, mysql, libmemcached, pcre
 , libevent, gd, curl, libxml2, icu, flex, bison, openssl, zlib, php, re2c
-, expat, libcap, oniguruma, libdwarf, libmcrypt, inteltbb, google_perftools
+, expat, libcap, oniguruma, libdwarf, libmcrypt, inteltbb, gperftools
 , bzip2, openldap, readline, libelf, uwimap, binutils, cyrus_sasl, pam
 }:
 assert stdenv.system == "x86_64-linux";
@@ -45,7 +45,7 @@ stdenv.mkDerivation {
   buildInputs = [ 
     cmake boost libunwind mysql libmemcached pcre libeventFB gd curlFB
     libxml2_280 icu flex bison openssl zlib php expat libcap oniguruma
-    libdwarf libmcrypt inteltbb google_perftools bzip2 openldap readline
+    libdwarf libmcrypt inteltbb gperftools bzip2 openldap readline
     libelf uwimap binutils cyrus_sasl pam
   ];
   installPhase = ''
diff --git a/pkgs/development/interpreters/octave/default.nix b/pkgs/development/interpreters/octave/default.nix
index 3ffdc415f880..b545fe8b55f2 100644
--- a/pkgs/development/interpreters/octave/default.nix
+++ b/pkgs/development/interpreters/octave/default.nix
@@ -3,10 +3,10 @@ libX11, graphicsmagick, pcre, liblapack, texLive, pkgconfig, mesa, fltk,
 fftw, fftwSinglePrec, zlib, curl, qrupdate }:
 
 stdenv.mkDerivation rec {
-  name = "octave-3.6.2";
+  name = "octave-3.6.3";
   src = fetchurl {
     url = "mirror://gnu/octave/${name}.tar.bz2";
-    sha256 = "1bn48ldhx585iyrylnz59b6mb3wlpvmz2i3ri8q75s5ys29rpdhb";
+    sha256 = "11i82vyf514rvdqcgdanw0ppvag8lcm6198rars0dd0w1xahjzg3";
   };
 
   buildInputs = [ gfortran readline ncurses perl flex texinfo qhull libX11
diff --git a/pkgs/development/interpreters/octave/hg.nix b/pkgs/development/interpreters/octave/hg.nix
index f414dd719654..f44efb943587 100644
--- a/pkgs/development/interpreters/octave/hg.nix
+++ b/pkgs/development/interpreters/octave/hg.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation ({
       license = "GPL-3";
     };
 } // (
-  if (config.octave.devVersion or false) then {
+  if config.octave.devVersion or false then {
     name = "octave-hg"; # developement version mercurial repo
     # REGION AUTO UPDATE:   { name="octave"; type = "hg"; url = "http://www.octave.org/hg/octave"; }
     src = sourceFromHead "octave-03b414516dd8.tar.gz"
diff --git a/pkgs/development/interpreters/perl/5.16/default.nix b/pkgs/development/interpreters/perl/5.16/default.nix
new file mode 100644
index 000000000000..288de63b4ae8
--- /dev/null
+++ b/pkgs/development/interpreters/perl/5.16/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchurl }:
+
+let
+
+  libc = if stdenv.gcc.libc or null != null then stdenv.gcc.libc else "/usr";
+
+in
+
+stdenv.mkDerivation rec {
+  name = "perl-5.16.2";
+
+  src = fetchurl {
+    url = "mirror://cpan/src/${name}.tar.gz";
+    sha256 = "03nh8bqnjsdd5izjv3n2yfcxw4ck0llwww36jpbjbjgixwpqpy4f";
+  };
+
+  patches =
+    [ # Do not look in /usr etc. for dependencies.
+      ./no-sys-dirs.patch
+    ]
+    ++ stdenv.lib.optional stdenv.isDarwin ./no-libutil.patch;
+
+  # Build a thread-safe Perl with a dynamic libperls.o.  We need the
+  # "installstyle" option to ensure that modules are put under
+  # $out/lib/perl5 - this is the general default, but because $out
+  # contains the string "perl", Configure would select $out/lib.
+  # Miniperl needs -lm. perl needs -lrt.
+  configureFlags =
+    [ "-de"
+      "-Dcc=gcc"
+      "-Uinstallusrbinperl"
+      "-Dinstallstyle=lib/perl5"
+      "-Duseshrplib"
+      "-Dlocincpth=${libc}/include"
+      "-Dloclibpth=${libc}/lib"
+    ]
+    ++ stdenv.lib.optional (stdenv ? glibc) "-Dusethreads";
+
+  configureScript = "${stdenv.shell} ./Configure";
+
+  dontAddPrefix = true;
+
+  enableParallelBuilding = true;
+
+  preConfigure =
+    ''
+      configureFlags="$configureFlags -Dprefix=$out -Dman1dir=$out/share/man/man1 -Dman3dir=$out/share/man/man3"
+
+      ${stdenv.lib.optionalString stdenv.isArm ''
+        configureFlagsArray=(-Dldflags="-lm -lrt")
+      ''}
+    '';
+
+  preBuild = stdenv.lib.optionalString (!(stdenv ? gcc && stdenv.gcc.nativeTools))
+    ''
+      # Make Cwd work on NixOS (where we don't have a /bin/pwd).
+      substituteInPlace dist/Cwd/Cwd.pm --replace "'/bin/pwd'" "'$(type -tP pwd)'"
+    '';
+
+  setupHook = ./setup-hook.sh;
+
+  passthru.libPrefix = "lib/perl5/site_perl";
+}
diff --git a/pkgs/development/interpreters/perl/5.16/no-libutil.patch b/pkgs/development/interpreters/perl/5.16/no-libutil.patch
new file mode 100644
index 000000000000..9b749bccf32c
--- /dev/null
+++ b/pkgs/development/interpreters/perl/5.16/no-libutil.patch
@@ -0,0 +1,12 @@
+diff -ru -x '*~' perl-5.14.2-orig/Configure perl-5.14.2/Configure
+--- perl-5.14.2-orig/Configure	2011-09-26 11:44:34.000000000 +0200
++++ perl-5.14.2/Configure	2012-02-16 17:24:50.779839039 +0100
+@@ -1368,7 +1368,7 @@
+ : List of libraries we want.
+ : If anyone needs extra -lxxx, put those in a hint file.
+ libswanted="sfio socket bind inet nsl nm ndbm gdbm dbm db malloc dl dld ld sun"
+-libswanted="$libswanted m crypt sec util c cposix posix ucb bsd BSD"
++libswanted="$libswanted m crypt sec c cposix posix ucb bsd BSD"
+ : We probably want to search /usr/shlib before most other libraries.
+ : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
+ glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
diff --git a/pkgs/development/interpreters/perl/5.16/no-sys-dirs.patch b/pkgs/development/interpreters/perl/5.16/no-sys-dirs.patch
new file mode 100644
index 000000000000..54ffb28e2065
--- /dev/null
+++ b/pkgs/development/interpreters/perl/5.16/no-sys-dirs.patch
@@ -0,0 +1,152 @@
+diff -ru -x '*~' perl-5.14.2-orig/Configure perl-5.14.2/Configure
+--- perl-5.14.2-orig/Configure	2011-09-26 11:44:34.000000000 +0200
++++ perl-5.14.2/Configure	2012-01-20 17:05:23.089223129 +0100
+@@ -106,15 +106,7 @@
+ fi
+ 
+ : Proper PATH setting
+-paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin'
+-paths="$paths /opt/bin /opt/local/bin /opt/local /opt/lbin"
+-paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin"
+-paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin"
+-paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb"
+-paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /opt/ansic/bin /usr/ccs/bin"
+-paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib"
+-paths="$paths /sbin /usr/sbin /usr/libexec"
+-paths="$paths /system/gnu_library/bin"
++paths=''
+ 
+ for p in $paths
+ do
+@@ -1311,8 +1303,7 @@
+ archname=''
+ : Possible local include directories to search.
+ : Set locincpth to "" in a hint file to defeat local include searches.
+-locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
+-locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include"
++locincpth=""
+ :
+ : no include file wanted by default
+ inclwanted=''
+@@ -1328,17 +1319,12 @@
+ archobjs=''
+ libnames=''
+ : change the next line if compiling for Xenix/286 on Xenix/386
+-xlibpth='/usr/lib/386 /lib/386'
++xlibpth=''
+ : Possible local library directories to search.
+-loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
+-loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
++loclibpth=""
+ 
+ : general looking path for locating libraries
+-glibpth="/lib /usr/lib $xlibpth"
+-glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
+-test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth"
+-test -f /shlib/libc.so     && glibpth="/shlib $glibpth"
+-test -d /usr/lib64         && glibpth="$glibpth /lib64 /usr/lib64 /usr/local/lib64"
++glibpth=""
+ 
+ : Private path used by Configure to find libraries.  Its value
+ : is prepended to libpth. This variable takes care of special
+@@ -1371,8 +1357,6 @@
+ libswanted="$libswanted m crypt sec util c cposix posix ucb bsd BSD"
+ : We probably want to search /usr/shlib before most other libraries.
+ : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
+-glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
+-glibpth="/usr/shlib $glibpth"
+ : Do not use vfork unless overridden by a hint file.
+ usevfork=false
+ 
+@@ -2380,7 +2364,6 @@
+ zip
+ "
+ pth=`echo $PATH | sed -e "s/$p_/ /g"`
+-pth="$pth /lib /usr/lib"
+ for file in $loclist; do
+ 	eval xxx=\$$file
+ 	case "$xxx" in
+@@ -4785,7 +4768,7 @@
+ : Set private lib path
+ case "$plibpth" in
+ '') if ./mips; then
+-		plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib"
++		plibpth="$incpath/usr/lib"
+ 	fi;;
+ esac
+ case "$libpth" in
+@@ -8390,13 +8373,8 @@
+ echo " "
+ case "$sysman" in
+ '') 
+-	syspath='/usr/share/man/man1 /usr/man/man1'
+-	syspath="$syspath /usr/man/mann /usr/man/manl /usr/man/local/man1"
+-	syspath="$syspath /usr/man/u_man/man1"
+-	syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1"
+-	syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
+-	syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1"
+-	sysman=`./loc . /usr/man/man1 $syspath`
++	syspath=''
++	sysman=''
+ 	;;
+ esac
+ if $test -d "$sysman"; then
+@@ -19721,9 +19699,10 @@
+ case "$full_ar" in
+ '') full_ar=$ar ;;
+ esac
++full_ar=ar
+ 
+ : Store the full pathname to the sed program for use in the C program
+-full_sed=$sed
++full_sed=sed
+ 
+ : see what type gids are declared as in the kernel
+ echo " "
+diff -ru -x '*~' perl-5.14.2-orig/ext/Errno/Errno_pm.PL perl-5.14.2/ext/Errno/Errno_pm.PL
+--- perl-5.14.2-orig/ext/Errno/Errno_pm.PL	2011-09-26 11:44:34.000000000 +0200
++++ perl-5.14.2/ext/Errno/Errno_pm.PL	2012-01-20 17:02:07.938138311 +0100
+@@ -137,11 +137,7 @@
+ 	if ($dep =~ /(\S+errno\.h)/) {
+ 	     $file{$1} = 1;
+ 	}
+-    } elsif ($^O eq 'linux' &&
+-	      $Config{gccversion} ne '' && 
+-	      $Config{gccversion} !~ /intel/i
+-	      # might be using, say, Intel's icc
+-	     ) {
++    } elsif (0) {
+ 	# Some Linuxes have weird errno.hs which generate
+ 	# no #file or #line directives
+ 	my $linux_errno_h = -e '/usr/include/errno.h' ?
+diff -ru -x '*~' perl-5.14.2-orig/hints/freebsd.sh perl-5.14.2/hints/freebsd.sh
+--- perl-5.14.2-orig/hints/freebsd.sh	2011-09-19 15:18:22.000000000 +0200
++++ perl-5.14.2/hints/freebsd.sh	2012-01-20 17:10:37.267924044 +0100
+@@ -118,21 +118,21 @@
+         objformat=`/usr/bin/objformat`
+         if [ x$objformat = xaout ]; then
+             if [ -e /usr/lib/aout ]; then
+-                libpth="/usr/lib/aout /usr/local/lib /usr/lib"
+-                glibpth="/usr/lib/aout /usr/local/lib /usr/lib"
++                libpth=""
++                glibpth=""
+             fi
+             lddlflags='-Bshareable'
+         else
+-            libpth="/usr/lib /usr/local/lib"
+-            glibpth="/usr/lib /usr/local/lib"
++            libpth=""
++            glibpth=""
+             ldflags="-Wl,-E "
+             lddlflags="-shared "
+         fi
+         cccdlflags='-DPIC -fPIC'
+         ;;
+ *)
+-       libpth="/usr/lib /usr/local/lib"
+-       glibpth="/usr/lib /usr/local/lib"
++       libpth=""
++       glibpth=""
+        ldflags="-Wl,-E "
+         lddlflags="-shared "
+         cccdlflags='-DPIC -fPIC'
diff --git a/pkgs/development/interpreters/perl/5.16/setup-hook.sh b/pkgs/development/interpreters/perl/5.16/setup-hook.sh
new file mode 100644
index 000000000000..6a144a7f7804
--- /dev/null
+++ b/pkgs/development/interpreters/perl/5.16/setup-hook.sh
@@ -0,0 +1,5 @@
+addPerlLibPath () {
+    addToSearchPath PERL5LIB $1/lib/perl5/site_perl
+}
+
+envHooks=(${envHooks[@]} addPerlLibPath)
diff --git a/pkgs/development/interpreters/plt-scheme/default.nix b/pkgs/development/interpreters/plt-scheme/default.nix
deleted file mode 100644
index f3d68c931e6f..000000000000
--- a/pkgs/development/interpreters/plt-scheme/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-args: with args; 
-let version = lib.attrByPath ["version"] "4.2.4" args; in
-rec {
-  src = fetchurl {
-    url = "ftp://infogroep.be/pub/plt/bundles/${version}/plt/plt-${version}-src-unix.tgz";
-    sha256 = "05azb9k0m1sp3qm3all4s39m97xwrbnqcys2vgc888nhxbff4d6g";
-  };
-
-  buildInputs = [cairo fontconfig freetype libjpeg libpng openssl 
-    libXaw libXft perl mesa libX11 libXrender libICE xproto renderproto 
-    pixman libSM libxcb libXext xextproto libXmu libXt zlib which];
-  configureFlags = ["--enable-shared" "--enable-pthreads" "--with-x"];
-  goSrcDir = "cd src";
-
-  /* doConfigure should be specified separately */
-  phaseNames = ["preConfigure" "doConfigure" "doMakeInstall"];
-
-  preConfigure = fullDepEntry (''
-    sed -e 's@/usr/bin/uname@'"$(which uname)"'@g' -i configure
-  '') ["minInit" "addInputs" "doUnpack"];
-      
-  name = "plt-scheme" + version;
-  meta = {
-    description = "PLT scheme environment";
-    homepage = http://plt-scheme.org/ ;
-    license = "LGPL-2.1";
-    licenses = ["LGPL-2.1"];
-  };
-}
diff --git a/pkgs/development/interpreters/racket/default.nix b/pkgs/development/interpreters/racket/default.nix
index db92e0fa55b6..4a6713580da7 100644
--- a/pkgs/development/interpreters/racket/default.nix
+++ b/pkgs/development/interpreters/racket/default.nix
@@ -4,12 +4,12 @@
 
 stdenv.mkDerivation rec {
   pname = "racket";
-  version = "5.2.1";
+  version = "5.3.3";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "http://download.racket-lang.org/installers/${version}/${pname}/${name}-src-unix.tgz";
-    sha256 = "1v5kvp7vfi4a4bn08jlaga441amlfxpjw9dm6vc1fazwzd72m539";
+    sha256 = "1qp0fmsh4dkxvlj35xnwdcf4m97jcf927cwhnckjicqx1lfa0wj7";
   };
 
   # Various racket executables do run-time searches for these.
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "Racket (formerly called PLT Scheme) is a programming language derived from Scheme.";
+    description = "A programming language derived from Scheme (formerly called PLT Scheme).";
     longDescription = ''
       Racket (formerly called PLT Scheme) is a programming language derived
       from Scheme. The Racket project has four primary components: the
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
     '';
 
     homepage = http://racket-lang.org/;
-    license = stdenv.lib.licenses.lgpl2Plus;
+    license = stdenv.lib.licenses.lgpl2Plus; # and licenses of contained libraries
     maintainers = [ stdenv.lib.maintainers.kkallio ];
     platforms = stdenv.lib.platforms.linux;
   };
diff --git a/pkgs/development/libraries/GConf/3.x.nix b/pkgs/development/libraries/GConf/3.x.nix
index 4f6d5a9a04ac..82c0c1f2c435 100644
--- a/pkgs/development/libraries/GConf/3.x.nix
+++ b/pkgs/development/libraries/GConf/3.x.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
 
   propagatedBuildInputs = [ glib dbus_glib ];
   buildInputs = [ polkit gtk3 libxml2 ];
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
 
   configureFlags = "--disable-orbit";
 
diff --git a/pkgs/development/libraries/SDL/default.nix b/pkgs/development/libraries/SDL/default.nix
index 7205e0fa7ea8..8ff643ce5b18 100644
--- a/pkgs/development/libraries/SDL/default.nix
+++ b/pkgs/development/libraries/SDL/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   configureFlags = configureFlagsFun { inherit alsaLib; };
 
   crossAttrs = {
-      configureFlags = configureFlagsFun { alsaLib = alsaLib.hostDrv; };
+      configureFlags = configureFlagsFun { alsaLib = alsaLib.crossDrv; };
   };
 
   passthru = {inherit openglSupport;};
diff --git a/pkgs/development/libraries/acl/default.nix b/pkgs/development/libraries/acl/default.nix
index 3ccb56919800..bc0821f39fdd 100644
--- a/pkgs/development/libraries/acl/default.nix
+++ b/pkgs/development/libraries/acl/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "09aj30m49ivycl3irram8c3givc0crivjm3ymw0nhfaxrwhlb186";
   };
 
-  buildNativeInputs = [ gettext ];
+  nativeBuildInputs = [ gettext ];
   buildInputs = [ attr ];
 
   # Upstream use C++-style comments in C code. Remove them.
diff --git a/pkgs/development/libraries/agg/default.nix b/pkgs/development/libraries/agg/default.nix
index 9ef13735b084..8c24ae6fdbee 100644
--- a/pkgs/development/libraries/agg/default.nix
+++ b/pkgs/development/libraries/agg/default.nix
@@ -8,7 +8,12 @@ stdenv.mkDerivation rec {
     sha256 = "07wii4i824vy9qsvjsgqxppgqmfdxq0xa87i5yk53fijriadq7mb";
   };
   buildInputs = [ autoconf automake libtool pkgconfig freetype SDL libX11 ];
-  preConfigure = "sh autogen.sh";
+
+  # fix build with new automake, from Gentoo ebuild
+  preConfigure = ''
+    sed -i '/^AM_C_PROTOTYPES/d' configure.in
+    sh autogen.sh
+  '';
 
   configureFlags = "--x-includes=${libX11}/include --x-libraries=${libX11}/lib";
 
diff --git a/pkgs/development/libraries/aqbanking/default.nix b/pkgs/development/libraries/aqbanking/default.nix
index 6c6e30137179..0ddb1aaa7492 100644
--- a/pkgs/development/libraries/aqbanking/default.nix
+++ b/pkgs/development/libraries/aqbanking/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ gwenhywfar gmp zlib ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   configureFlags = "--with-gwen-dir=${gwenhywfar}";
 
diff --git a/pkgs/development/libraries/asc-support/default.nix b/pkgs/development/libraries/asc-support/default.nix
index a078faaceb12..a2b2588d9cc3 100644
--- a/pkgs/development/libraries/asc-support/default.nix
+++ b/pkgs/development/libraries/asc-support/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   patches = if isMingw then [./mingw.patch] else [];
 
   buildInputs = [aterm toolbuslib asfSupport errorSupport ptSupport sglr tideSupport cLibrary configSupport ptableSupport rstoreSupport ];
-  buildNativeInputs = [pkgconfig];
+  nativeBuildInputs = [pkgconfig];
   
   dontStrip = isMingw;
 }  
diff --git a/pkgs/development/libraries/asf-support/default.nix b/pkgs/development/libraries/asf-support/default.nix
index e2b7a14e8191..9a712a869af7 100644
--- a/pkgs/development/libraries/asf-support/default.nix
+++ b/pkgs/development/libraries/asf-support/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [aterm errorSupport ptSupport];
-  buildNativeInputs = [pkgconfig];  
+  nativeBuildInputs = [pkgconfig];  
 
   dontStrip = isMingw;
 } 
diff --git a/pkgs/development/libraries/atk/2.6.x.nix b/pkgs/development/libraries/atk/2.6.x.nix
index eba56776bd2b..4dd0ae1eeafb 100644
--- a/pkgs/development/libraries/atk/2.6.x.nix
+++ b/pkgs/development/libraries/atk/2.6.x.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "eff663f90847620bb68c9c2cbaaf7f45e2ff44163b9ab3f10d15be763680491f";
   };
 
-  buildNativeInputs = [ pkgconfig perl ];
+  nativeBuildInputs = [ pkgconfig perl ];
 
   propagatedBuildInputs = [ glib ];
 
diff --git a/pkgs/development/libraries/atkmm/default.nix b/pkgs/development/libraries/atkmm/default.nix
index 66237c4c7b99..b25432491fbc 100644
--- a/pkgs/development/libraries/atkmm/default.nix
+++ b/pkgs/development/libraries/atkmm/default.nix
@@ -10,5 +10,5 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ atk glibmm ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 }
diff --git a/pkgs/development/libraries/attica/default.nix b/pkgs/development/libraries/attica/default.nix
index a719537dd2fb..9a5002551cb8 100644
--- a/pkgs/development/libraries/attica/default.nix
+++ b/pkgs/development/libraries/attica/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
   
   buildInputs = [ qt4 ];
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
   
   meta = with stdenv.lib; {
     description = "A library to access Open Collaboration Service providers";
diff --git a/pkgs/development/libraries/attr/default.nix b/pkgs/development/libraries/attr/default.nix
index adc530863068..3c5855ea284f 100644
--- a/pkgs/development/libraries/attr/default.nix
+++ b/pkgs/development/libraries/attr/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "07qf6kb2zk512az481bbnsk9jycn477xpva1a726n5pzlzf9pmnw";
   };
 
-  buildNativeInputs = [ gettext ];
+  nativeBuildInputs = [ gettext ];
 
   configureFlags = "MAKE=make MSGFMT=msgfmt MSGMERGE=msgmerge XGETTEXT=xgettext ECHO=echo SED=sed AWK=gawk";
 
diff --git a/pkgs/development/libraries/avahi/default.nix b/pkgs/development/libraries/avahi/default.nix
index 0789ef0ea7ca..39a03e0b0029 100644
--- a/pkgs/development/libraries/avahi/default.nix
+++ b/pkgs/development/libraries/avahi/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     ++ (stdenv.lib.optional qt4Support qt4)
     ++ libiconvOrEmpty;
 
-  buildNativeInputs = [ pkgconfig gettext intltool ];
+  nativeBuildInputs = [ pkgconfig gettext intltool ];
 
   configureFlags =
     [ "--disable-qt3" "--disable-gdbm" "--disable-mono"
diff --git a/pkgs/development/libraries/boolstuff/default.nix b/pkgs/development/libraries/boolstuff/default.nix
index c05fddc18cf0..9b5c25d4ca4e 100644
--- a/pkgs/development/libraries/boolstuff/default.nix
+++ b/pkgs/development/libraries/boolstuff/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "0akwb57lnzq1ak32k6mdxbma2gj0pqhj8y9m6hq79djb9s3mxvmn";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = { 
     description = "Library for operations on boolean expression binary trees";
diff --git a/pkgs/development/libraries/boost/1.44.nix b/pkgs/development/libraries/boost/1.44.nix
index ad09adc8606c..e0235cd8b39f 100644
--- a/pkgs/development/libraries/boost/1.44.nix
+++ b/pkgs/development/libraries/boost/1.44.nix
@@ -29,7 +29,7 @@ let
     (enableShared && enableStatic)) then
     "tagged" else "system";
 
-  cflags = if (enablePIC) then "cflags=-fPIC cxxflags=-fPIC linkflags=-fPIC" else "";
+  cflags = if enablePIC then "cflags=-fPIC cxxflags=-fPIC linkflags=-fPIC" else "";
 
 in
 
@@ -71,7 +71,7 @@ stdenv.mkDerivation {
   ];
 
   crossAttrs = rec {
-    buildInputs = [ expat.hostDrv zlib.hostDrv bzip2.hostDrv ];
+    buildInputs = [ expat.crossDrv zlib.crossDrv bzip2.crossDrv ];
     # all buildInputs set previously fell into propagatedBuildInputs, as usual, so we have to
     # override them.
     propagatedBuildInputs = buildInputs;
@@ -85,7 +85,7 @@ stdenv.mkDerivation {
       cat << EOF > user-config.jam
       using gcc : cross : $crossConfig-g++ ;
       EOF
-      ./bjam -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat.hostDrv}/include -sEXPAT_LIBPATH=${expat.hostDrv}/lib --layout=${finalLayout} --user-config=user-config.jam toolset=gcc-cross variant=${variant} threading=${threading} link=${link} ${cflags} --without-python install
+      ./bjam -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat.crossDrv}/include -sEXPAT_LIBPATH=${expat.crossDrv}/lib --layout=${finalLayout} --user-config=user-config.jam toolset=gcc-cross variant=${variant} threading=${threading} link=${link} ${cflags} --without-python install
     '';
   };
 }
diff --git a/pkgs/development/libraries/boost/1.47.nix b/pkgs/development/libraries/boost/1.47.nix
deleted file mode 100644
index b8774b70265c..000000000000
--- a/pkgs/development/libraries/boost/1.47.nix
+++ /dev/null
@@ -1,90 +0,0 @@
-{ stdenv, fetchurl, icu, expat, zlib, bzip2, python
-, enableRelease ? true
-, enableDebug ? false
-, enableSingleThreaded ? false
-, enableMultiThreaded ? true
-, enableShared ? true
-, enableStatic ? false
-, enablePIC ? false
-, enableExceptions ? false
-}:
-
-let
-
-  variant = stdenv.lib.concatStringsSep ","
-    (stdenv.lib.optional enableRelease "release" ++
-     stdenv.lib.optional enableDebug "debug");
-
-  threading = stdenv.lib.concatStringsSep ","
-    (stdenv.lib.optional enableSingleThreaded "single" ++
-     stdenv.lib.optional enableMultiThreaded "multi");
-
-  link = stdenv.lib.concatStringsSep ","
-    (stdenv.lib.optional enableShared "shared" ++
-     stdenv.lib.optional enableStatic "static");
-
-  # To avoid library name collisions
-  finalLayout = if ((enableRelease && enableDebug) ||
-    (enableSingleThreaded && enableMultiThreaded) ||
-    (enableShared && enableStatic)) then
-    "tagged" else "system";
-
-  cflags = if (enablePIC && enableExceptions) then
-             "cflags=-fPIC -fexceptions cxxflags=-fPIC linkflags=-fPIC"
-           else if (enablePIC) then
-             "cflags=-fPIC cxxflags=-fPIC linkflags=-fPIC"
-           else if (enableExceptions) then
-             "cflags=-fexceptions"
-           else
-             "";
-in
-
-stdenv.mkDerivation {
-  name = "boost-1.47.0";
-
-  meta = {
-    homepage = "http://boost.org/";
-    description = "Boost C++ Library Collection";
-    license = "boost-license";
-
-    maintainers = [ stdenv.lib.maintainers.simons ];
-  };
-
-  src = fetchurl {
-    url = "mirror://sourceforge/boost/boost_1_47_0.tar.bz2";
-    sha256 = "815a5d9faac4dbd523fbcf3fe1065e443c0bbf43427c44aa423422c6ec4c2e31";
-  };
-
-  # See <http://svn.boost.org/trac/boost/ticket/4688>.
-  patches = [ ./boost_filesystem_1_47_0.patch ];
-
-  enableParallelBuilding = true;
-
-  buildInputs = [icu expat zlib bzip2 python];
-
-  configureScript = "./bootstrap.sh";
-  configureFlags = "--with-icu=${icu} --with-python=${python}/bin/python";
-
-  buildPhase = "./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat}/include -sEXPAT_LIBPATH=${expat}/lib --layout=${finalLayout} variant=${variant} threading=${threading} link=${link} ${cflags} install";
-
-  installPhase = ":";
-
-  crossAttrs = rec {
-    buildInputs = [ expat.hostDrv zlib.hostDrv bzip2.hostDrv ];
-    # all buildInputs set previously fell into propagatedBuildInputs, as usual, so we have to
-    # override them.
-    propagatedBuildInputs = buildInputs;
-    # We want to substitute the contents of configureFlags, removing thus the
-    # usual --build and --host added on cross building.
-    preConfigure = ''
-      export configureFlags="--prefix=$out --without-icu"
-    '';
-    buildPhase = ''
-      set -x
-      cat << EOF > user-config.jam
-      using gcc : cross : $crossConfig-g++ ;
-      EOF
-      ./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat.hostDrv}/include -sEXPAT_LIBPATH=${expat.hostDrv}/lib --layout=${finalLayout} --user-config=user-config.jam toolset=gcc-cross variant=${variant} threading=${threading} link=${link} ${cflags} --without-python install
-    '';
-  };
-}
diff --git a/pkgs/development/libraries/boost/1.49.nix b/pkgs/development/libraries/boost/1.49.nix
index a86670927aad..e0ba0630cd06 100644
--- a/pkgs/development/libraries/boost/1.49.nix
+++ b/pkgs/development/libraries/boost/1.49.nix
@@ -29,11 +29,11 @@ let
     (enableShared && enableStatic)) then
     "tagged" else "system";
 
-  cflags = if (enablePIC && enableExceptions) then
+  cflags = if enablePIC && enableExceptions then
              "cflags=-fPIC -fexceptions cxxflags=-fPIC linkflags=-fPIC"
-           else if (enablePIC) then
+           else if enablePIC then
              "cflags=-fPIC cxxflags=-fPIC linkflags=-fPIC"
-           else if (enableExceptions) then
+           else if enableExceptions then
              "cflags=-fexceptions"
            else
              "";
@@ -57,7 +57,7 @@ stdenv.mkDerivation {
   };
 
   # See <http://svn.boost.org/trac/boost/ticket/4688>.
-  patches = [ ./boost_filesystem_post_1_49_0.patch ];
+  patches = [ ./boost_filesystem_post_1_49_0.patch ./time_utc.patch ];
 
   enableParallelBuilding = true;
 
@@ -71,7 +71,7 @@ stdenv.mkDerivation {
   installPhase = ":";
 
   crossAttrs = rec {
-    buildInputs = [ expat.hostDrv zlib.hostDrv bzip2.hostDrv ];
+    buildInputs = [ expat.crossDrv zlib.crossDrv bzip2.crossDrv ];
     # all buildInputs set previously fell into propagatedBuildInputs, as usual, so we have to
     # override them.
     propagatedBuildInputs = buildInputs;
@@ -85,7 +85,7 @@ stdenv.mkDerivation {
       cat << EOF > user-config.jam
       using gcc : cross : $crossConfig-g++ ;
       EOF
-      ./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat.hostDrv}/include -sEXPAT_LIBPATH=${expat.hostDrv}/lib --layout=${finalLayout} --user-config=user-config.jam toolset=gcc-cross variant=${variant} threading=${threading} link=${link} ${cflags} --without-python install
+      ./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat.crossDrv}/include -sEXPAT_LIBPATH=${expat.crossDrv}/lib --layout=${finalLayout} --user-config=user-config.jam toolset=gcc-cross variant=${variant} threading=${threading} link=${link} ${cflags} --without-python install
     '';
   };
 }
diff --git a/pkgs/development/libraries/boost/1.53.nix b/pkgs/development/libraries/boost/1.53.nix
index 7de750efd916..c3272e98a144 100644
--- a/pkgs/development/libraries/boost/1.53.nix
+++ b/pkgs/development/libraries/boost/1.53.nix
@@ -27,11 +27,11 @@ let
   # To avoid library name collisions
   layout = if taggedLayout then "tagged" else "system";
 
-  cflags = if (enablePIC && enableExceptions) then
+  cflags = if enablePIC && enableExceptions then
              "cflags=-fPIC -fexceptions cxxflags=-fPIC linkflags=-fPIC"
-           else if (enablePIC) then
+           else if enablePIC then
              "cflags=-fPIC cxxflags=-fPIC linkflags=-fPIC"
-           else if (enableExceptions) then
+           else if enableExceptions then
              "cflags=-fexceptions"
            else
              "";
@@ -71,7 +71,7 @@ stdenv.mkDerivation {
   '';
 
   crossAttrs = rec {
-    buildInputs = [ expat.hostDrv zlib.hostDrv bzip2.hostDrv ];
+    buildInputs = [ expat.crossDrv zlib.crossDrv bzip2.crossDrv ];
     # all buildInputs set previously fell into propagatedBuildInputs, as usual, so we have to
     # override them.
     propagatedBuildInputs = buildInputs;
@@ -85,7 +85,7 @@ stdenv.mkDerivation {
       cat << EOF > user-config.jam
       using gcc : cross : $crossConfig-g++ ;
       EOF
-      ./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat.hostDrv}/include -sEXPAT_LIBPATH=${expat.hostDrv}/lib --layout=${layout} --user-config=user-config.jam toolset=gcc-cross variant=${variant} threading=${threading} link=${link} ${cflags} --without-python install
+      ./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat.crossDrv}/include -sEXPAT_LIBPATH=${expat.crossDrv}/lib --layout=${layout} --user-config=user-config.jam toolset=gcc-cross variant=${variant} threading=${threading} link=${link} ${cflags} --without-python install
     '';
   };
 }
diff --git a/pkgs/development/libraries/boost/boost_filesystem_1_47_0.patch b/pkgs/development/libraries/boost/boost_filesystem_1_47_0.patch
deleted file mode 100644
index f32e9ed572d3..000000000000
--- a/pkgs/development/libraries/boost/boost_filesystem_1_47_0.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -ubr boost_1_47_0/libs/filesystem/v2/src/v2_path.cpp boost_1_47_0-patched/libs/filesystem/v2/src/v2_path.cpp
---- boost_1_47_0/libs/filesystem/v2/src/v2_path.cpp	2011-01-11 22:39:33.000000000 +0100
-+++ boost_1_47_0-patched/libs/filesystem/v2/src/v2_path.cpp	2011-07-21 01:06:26.000000000 +0200
-@@ -45,7 +45,7 @@
-   {
- #if !defined(macintosh) && !defined(__APPLE__) && !defined(__APPLE_CC__) 
-     // ISO C calls this "the locale-specific native environment":
--    static std::locale lc("");
-+    static std::locale lc;
- #else  // Mac OS
-     // "All BSD system functions expect their string parameters to be in UTF-8 encoding
-     // and nothing else."
-diff -ubr boost_1_47_0/libs/filesystem/v3/src/path.cpp boost_1_47_0-patched/libs/filesystem/v3/src/path.cpp
---- boost_1_47_0/libs/filesystem/v3/src/path.cpp	2011-07-05 16:49:42.000000000 +0200
-+++ boost_1_47_0-patched/libs/filesystem/v3/src/path.cpp	2011-07-21 01:06:26.000000000 +0200
-@@ -767,7 +767,7 @@
-     // or LANG are wrong, for example), so dynamic initialization is used to ensure
-     // that exceptions can be caught.
- 
--    return std::locale("");
-+    return std::locale();
- 
- #   endif
-   }
diff --git a/pkgs/development/libraries/boost/time_utc.patch b/pkgs/development/libraries/boost/time_utc.patch
new file mode 100644
index 000000000000..3585d0bfc6dd
--- /dev/null
+++ b/pkgs/development/libraries/boost/time_utc.patch
@@ -0,0 +1,320 @@
+From: https://build.opensuse.org/package/view_file?file=boost-time_utc.patch&package=boost&project=Application%3AGeo
+
+From: https://svn.boost.org/trac/boost/changeset/78802
+
+Message:
+    Thread: fix TIME_UTC, WINVER, constexpr for tags, and don't use local files
+
+Only the TIME_UTC_ change is taken
+ 
+Index: boost_1_49_0/boost/thread/xtime.hpp
+===================================================================
+--- boost_1_49_0.orig/boost/thread/xtime.hpp
++++ boost_1_49_0/boost/thread/xtime.hpp
+@@ -2,7 +2,7 @@
+ // William E. Kempf
+ // Copyright (C) 2007-8 Anthony Williams
+ //
+-//  Distributed under the Boost Software License, Version 1.0. (See accompanying 
++//  Distributed under the Boost Software License, Version 1.0. (See accompanying
+ //  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ 
+ #ifndef BOOST_XTIME_WEK070601_HPP
+@@ -20,7 +20,7 @@ namespace boost {
+ 
+ enum xtime_clock_types
+ {
+-    TIME_UTC=1
++    TIME_UTC_=1
+ //    TIME_TAI,
+ //    TIME_MONOTONIC,
+ //    TIME_PROCESS,
+@@ -53,14 +53,14 @@ struct xtime
+         boost::posix_time::microseconds((nsec+500)/1000);
+ #endif
+     }
+-    
++
+ };
+ 
+ inline xtime get_xtime(boost::system_time const& abs_time)
+ {
+     xtime res;
+     boost::posix_time::time_duration const time_since_epoch=abs_time-boost::posix_time::from_time_t(0);
+-            
++
+     res.sec=static_cast<xtime::xtime_sec_t>(time_since_epoch.total_seconds());
+     res.nsec=static_cast<xtime::xtime_nsec_t>(time_since_epoch.fractional_seconds()*(1000000000/time_since_epoch.ticks_per_second()));
+     return res;
+@@ -68,7 +68,7 @@ inline xtime get_xtime(boost::system_tim
+ 
+ inline int xtime_get(struct xtime* xtp, int clock_type)
+ {
+-    if (clock_type == TIME_UTC)
++    if (clock_type == TIME_UTC_)
+     {
+         *xtp=get_xtime(get_system_time());
+         return clock_type;
+@@ -81,7 +81,7 @@ inline int xtime_cmp(const xtime& xt1, c
+ {
+     if (xt1.sec == xt2.sec)
+         return (int)(xt1.nsec - xt2.nsec);
+-    else 
++    else
+         return (xt1.sec > xt2.sec) ? 1 : -1;
+ }
+ 
+Index: boost_1_49_0/libs/thread/example/starvephil.cpp
+===================================================================
+--- boost_1_49_0.orig/libs/thread/example/starvephil.cpp
++++ boost_1_49_0/libs/thread/example/starvephil.cpp
+@@ -50,7 +50,7 @@ public:
+                       << "very hot ..." << std::endl;
+         }
+         boost::xtime xt;
+-        boost::xtime_get(&xt, boost::TIME_UTC);
++        boost::xtime_get(&xt, boost::TIME_UTC_);
+         xt.sec += 3;
+         boost::thread::sleep(xt);
+         m_chickens += value;
+@@ -85,7 +85,7 @@ void chef()
+             std::cout << "(" << clock() << ") Chef: cooking ..." << std::endl;
+         }
+         boost::xtime xt;
+-        boost::xtime_get(&xt, boost::TIME_UTC);
++        boost::xtime_get(&xt, boost::TIME_UTC_);
+         xt.sec += 2;
+         boost::thread::sleep(xt);
+         {
+@@ -111,7 +111,7 @@ struct phil
+             if (m_id > 0)
+             {
+                 boost::xtime xt;
+-                boost::xtime_get(&xt, boost::TIME_UTC);
++                boost::xtime_get(&xt, boost::TIME_UTC_);
+                 xt.sec += 3;
+                 boost::thread::sleep(xt);
+             }
+Index: boost_1_49_0/libs/thread/example/tennis.cpp
+===================================================================
+--- boost_1_49_0.orig/libs/thread/example/tennis.cpp
++++ boost_1_49_0/libs/thread/example/tennis.cpp
+@@ -1,7 +1,7 @@
+ // Copyright (C) 2001-2003
+ // William E. Kempf
+ //
+-//  Distributed under the Boost Software License, Version 1.0. (See accompanying 
++//  Distributed under the Boost Software License, Version 1.0. (See accompanying
+ //  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ 
+ #include <boost/thread/mutex.hpp>
+@@ -104,7 +104,7 @@ int main(int argc, char* argv[])
+     boost::thread thrdb(thread_adapter(&player, (void*)PLAYER_B));
+ 
+     boost::xtime xt;
+-    boost::xtime_get(&xt, boost::TIME_UTC);
++    boost::xtime_get(&xt, boost::TIME_UTC_);
+     xt.sec += 1;
+     boost::thread::sleep(xt);
+     {
+Index: boost_1_49_0/libs/thread/example/thread.cpp
+===================================================================
+--- boost_1_49_0.orig/libs/thread/example/thread.cpp
++++ boost_1_49_0/libs/thread/example/thread.cpp
+@@ -14,7 +14,7 @@ struct thread_alarm
+     void operator()()
+     {
+         boost::xtime xt;
+-        boost::xtime_get(&xt, boost::TIME_UTC);
++        boost::xtime_get(&xt, boost::TIME_UTC_);
+         xt.sec += m_secs;
+ 
+         boost::thread::sleep(xt);
+Index: boost_1_49_0/libs/thread/example/xtime.cpp
+===================================================================
+--- boost_1_49_0.orig/libs/thread/example/xtime.cpp
++++ boost_1_49_0/libs/thread/example/xtime.cpp
+@@ -10,7 +10,7 @@
+ int main(int argc, char* argv[])
+ {
+     boost::xtime xt;
+-    boost::xtime_get(&xt, boost::TIME_UTC);
++    boost::xtime_get(&xt, boost::TIME_UTC_);
+     xt.sec += 1;
+     boost::thread::sleep(xt); // Sleep for 1 second
+ }
+Index: boost_1_49_0/libs/thread/src/pthread/thread.cpp
+===================================================================
+--- boost_1_49_0.orig/libs/thread/src/pthread/thread.cpp
++++ boost_1_49_0/libs/thread/src/pthread/thread.cpp
+@@ -23,7 +23,7 @@
+ #include <unistd.h>
+ #endif
+ 
+-#include "timeconv.inl"
++#include <libs/thread/src/pthread/timeconv.inl>
+ 
+ namespace boost
+ {
+@@ -354,7 +354,7 @@ namespace boost
+                     cond.timed_wait(lock, xt);
+ #   endif
+                     xtime cur;
+-                    xtime_get(&cur, TIME_UTC);
++                    xtime_get(&cur, TIME_UTC_);
+                     if (xtime_cmp(xt, cur) <= 0)
+                         return;
+                 }
+@@ -369,7 +369,7 @@ namespace boost
+             BOOST_VERIFY(!pthread_yield());
+ #   else
+             xtime xt;
+-            xtime_get(&xt, TIME_UTC);
++            xtime_get(&xt, TIME_UTC_);
+             sleep(xt);
+ #   endif
+         }
+Index: boost_1_49_0/libs/thread/src/pthread/timeconv.inl
+===================================================================
+--- boost_1_49_0.orig/libs/thread/src/pthread/timeconv.inl
++++ boost_1_49_0/libs/thread/src/pthread/timeconv.inl
+@@ -20,8 +20,8 @@ const int NANOSECONDS_PER_MICROSECOND =
+ inline void to_time(int milliseconds, boost::xtime& xt)
+ {
+     int res = 0;
+-    res = boost::xtime_get(&xt, boost::TIME_UTC);
+-    BOOST_ASSERT(res == boost::TIME_UTC); (void)res;
++    res = boost::xtime_get(&xt, boost::TIME_UTC_);
++    BOOST_ASSERT(res == boost::TIME_UTC_); (void)res;
+ 
+     xt.sec += (milliseconds / MILLISECONDS_PER_SECOND);
+     xt.nsec += ((milliseconds % MILLISECONDS_PER_SECOND) *
+@@ -56,8 +56,8 @@ inline void to_timespec_duration(const b
+ {
+     boost::xtime cur;
+     int res = 0;
+-    res = boost::xtime_get(&cur, boost::TIME_UTC);
+-    BOOST_ASSERT(res == boost::TIME_UTC); (void)res;
++    res = boost::xtime_get(&cur, boost::TIME_UTC_);
++    BOOST_ASSERT(res == boost::TIME_UTC_); (void)res;
+ 
+     if (boost::xtime_cmp(xt, cur) <= 0)
+     {
+@@ -87,8 +87,8 @@ inline void to_duration(boost::xtime xt,
+ {
+     boost::xtime cur;
+     int res = 0;
+-    res = boost::xtime_get(&cur, boost::TIME_UTC);
+-    BOOST_ASSERT(res == boost::TIME_UTC); (void)res;
++    res = boost::xtime_get(&cur, boost::TIME_UTC_);
++    BOOST_ASSERT(res == boost::TIME_UTC_); (void)res;
+ 
+     if (boost::xtime_cmp(xt, cur) <= 0)
+         milliseconds = 0;
+@@ -109,8 +109,8 @@ inline void to_microduration(boost::xtim
+ {
+     boost::xtime cur;
+     int res = 0;
+-    res = boost::xtime_get(&cur, boost::TIME_UTC);
+-    BOOST_ASSERT(res == boost::TIME_UTC); (void)res;
++    res = boost::xtime_get(&cur, boost::TIME_UTC_);
++    BOOST_ASSERT(res == boost::TIME_UTC_); (void)res;
+ 
+     if (boost::xtime_cmp(xt, cur) <= 0)
+         microseconds = 0;
+Index: boost_1_49_0/libs/thread/src/win32/timeconv.inl
+===================================================================
+--- boost_1_49_0.orig/libs/thread/src/win32/timeconv.inl
++++ boost_1_49_0/libs/thread/src/win32/timeconv.inl
+@@ -17,8 +17,8 @@ const int NANOSECONDS_PER_MICROSECOND =
+ inline void to_time(int milliseconds, boost::xtime& xt)
+ {
+     int res = 0;
+-    res = boost::xtime_get(&xt, boost::TIME_UTC);
+-    assert(res == boost::TIME_UTC);
++    res = boost::xtime_get(&xt, boost::TIME_UTC_);
++    assert(res == boost::TIME_UTC_);
+ 
+     xt.sec += (milliseconds / MILLISECONDS_PER_SECOND);
+     xt.nsec += ((milliseconds % MILLISECONDS_PER_SECOND) *
+@@ -54,8 +54,8 @@ inline void to_timespec_duration(const b
+ {
+     boost::xtime cur;
+     int res = 0;
+-    res = boost::xtime_get(&cur, boost::TIME_UTC);
+-    assert(res == boost::TIME_UTC);
++    res = boost::xtime_get(&cur, boost::TIME_UTC_);
++    assert(res == boost::TIME_UTC_);
+ 
+     if (boost::xtime_cmp(xt, cur) <= 0)
+     {
+@@ -85,8 +85,8 @@ inline void to_duration(boost::xtime xt,
+ {
+     boost::xtime cur;
+     int res = 0;
+-    res = boost::xtime_get(&cur, boost::TIME_UTC);
+-    assert(res == boost::TIME_UTC);
++    res = boost::xtime_get(&cur, boost::TIME_UTC_);
++    assert(res == boost::TIME_UTC_);
+ 
+     if (boost::xtime_cmp(xt, cur) <= 0)
+         milliseconds = 0;
+@@ -107,8 +107,8 @@ inline void to_microduration(boost::xtim
+ {
+     boost::xtime cur;
+     int res = 0;
+-    res = boost::xtime_get(&cur, boost::TIME_UTC);
+-    assert(res == boost::TIME_UTC);
++    res = boost::xtime_get(&cur, boost::TIME_UTC_);
++    assert(res == boost::TIME_UTC_);
+ 
+     if (boost::xtime_cmp(xt, cur) <= 0)
+         microseconds = 0;
+Index: boost_1_49_0/libs/thread/test/test_xtime.cpp
+===================================================================
+--- boost_1_49_0.orig/libs/thread/test/test_xtime.cpp
++++ boost_1_49_0/libs/thread/test/test_xtime.cpp
+@@ -17,8 +17,8 @@ void test_xtime_cmp()
+ {
+     boost::xtime xt1, xt2, cur;
+     BOOST_CHECK_EQUAL(
+-        boost::xtime_get(&cur, boost::TIME_UTC),
+-        static_cast<int>(boost::TIME_UTC));
++        boost::xtime_get(&cur, boost::TIME_UTC_),
++        static_cast<int>(boost::TIME_UTC_));
+ 
+     xt1 = xt2 = cur;
+     xt1.nsec -= 1;
+@@ -42,14 +42,14 @@ void test_xtime_get()
+     boost::xtime orig, cur, old;
+     BOOST_CHECK_EQUAL(
+         boost::xtime_get(&orig,
+-            boost::TIME_UTC), static_cast<int>(boost::TIME_UTC));
++            boost::TIME_UTC_), static_cast<int>(boost::TIME_UTC_));
+     old = orig;
+ 
+     for (int x=0; x < 100; ++x)
+     {
+         BOOST_CHECK_EQUAL(
+-            boost::xtime_get(&cur, boost::TIME_UTC),
+-            static_cast<int>(boost::TIME_UTC));
++            boost::xtime_get(&cur, boost::TIME_UTC_),
++            static_cast<int>(boost::TIME_UTC_));
+         BOOST_CHECK(boost::xtime_cmp(cur, orig) >= 0);
+         BOOST_CHECK(boost::xtime_cmp(cur, old) >= 0);
+         old = cur;
+Index: boost_1_49_0/libs/thread/test/util.inl
+===================================================================
+--- boost_1_49_0.orig/libs/thread/test/util.inl
++++ boost_1_49_0/libs/thread/test/util.inl
+@@ -28,8 +28,8 @@ inline boost::xtime delay(int secs, int
+     const int NANOSECONDS_PER_MILLISECOND = 1000000;
+ 
+     boost::xtime xt;
+-    if (boost::TIME_UTC != boost::xtime_get (&xt, boost::TIME_UTC))
+-        BOOST_ERROR ("boost::xtime_get != boost::TIME_UTC");
++    if (boost::TIME_UTC_ != boost::xtime_get (&xt, boost::TIME_UTC_))
++        BOOST_ERROR ("boost::xtime_get != boost::TIME_UTC_");
+ 
+     nsecs += xt.nsec;
+     msecs += nsecs / NANOSECONDS_PER_MILLISECOND;
diff --git a/pkgs/development/libraries/c-library/default.nix b/pkgs/development/libraries/c-library/default.nix
index 96bb82f54be8..714e8b66089c 100644
--- a/pkgs/development/libraries/c-library/default.nix
+++ b/pkgs/development/libraries/c-library/default.nix
@@ -17,6 +17,6 @@ stdenv.mkDerivation rec {
   patches = if isMingw then [./mingw.patch] else [];
   
   buildInputs = [aterm];
-  buildNativeInputs = [pkgconfig];
+  nativeBuildInputs = [pkgconfig];
   dontStrip = isMingw;
 }  
diff --git a/pkgs/development/libraries/caelum/default.nix b/pkgs/development/libraries/caelum/default.nix
index 75eb5109b453..e48ed5a76928 100644
--- a/pkgs/development/libraries/caelum/default.nix
+++ b/pkgs/development/libraries/caelum/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ ois ogre boost ];
-  buildNativeInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/cloog-ppl/default.nix b/pkgs/development/libraries/cloog-ppl/default.nix
index d9dae7bfd41f..aa594a8e2bc1 100644
--- a/pkgs/development/libraries/cloog-ppl/default.nix
+++ b/pkgs/development/libraries/cloog-ppl/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   configureFlags = "--with-ppl=${ppl}";
 
   crossAttrs = {
-    configureFlags = "--with-ppl=${ppl.hostDrv}";
+    configureFlags = "--with-ppl=${ppl.crossDrv}";
   };
 
   doCheck = true;
diff --git a/pkgs/development/libraries/clucene-core/2.x.nix b/pkgs/development/libraries/clucene-core/2.x.nix
index 72460184df21..97c7a4c9f53a 100644
--- a/pkgs/development/libraries/clucene-core/2.x.nix
+++ b/pkgs/development/libraries/clucene-core/2.x.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "1arffdwivig88kkx685pldr784njm0249k0rb1f1plwavlrw9zfx";
   };
 
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   buildInputs = [ boost zlib ];
 
diff --git a/pkgs/development/libraries/clutter-gtk/0.10.8.nix b/pkgs/development/libraries/clutter-gtk/0.10.8.nix
index b44801928e90..182040f5c414 100644
--- a/pkgs/development/libraries/clutter-gtk/0.10.8.nix
+++ b/pkgs/development/libraries/clutter-gtk/0.10.8.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   propagatedBuildInputs = [ clutter gtk ];
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   postBuild = "rm -rf $out/share/gtk-doc";
 
diff --git a/pkgs/development/libraries/clutter-gtk/default.nix b/pkgs/development/libraries/clutter-gtk/default.nix
index a48ff93ce228..3e13ff2da7e3 100644
--- a/pkgs/development/libraries/clutter-gtk/default.nix
+++ b/pkgs/development/libraries/clutter-gtk/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   propagatedBuildInputs = [ clutter gtk3 ];
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   postBuild = "rm -rf $out/share/gtk-doc";
 
diff --git a/pkgs/development/libraries/clutter/default.nix b/pkgs/development/libraries/clutter/default.nix
index 52a9eaa98fa1..6c6891fb279c 100644
--- a/pkgs/development/libraries/clutter/default.nix
+++ b/pkgs/development/libraries/clutter/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
     sha256 = "0bzsvnharawfg525lpavrp55mq4aih5nb01dwwqwnccg8hk9z2fw";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   propagatedBuildInputs =
     [ libX11 mesa libXext libXfixes libXdamage libXcomposite libXi cogl pango
       atk json_glib
diff --git a/pkgs/development/libraries/cogl/default.nix b/pkgs/development/libraries/cogl/default.nix
index 11a6e374e2e4..b697ed87edc4 100644
--- a/pkgs/development/libraries/cogl/default.nix
+++ b/pkgs/development/libraries/cogl/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "1ix87hz3qxqysqwx58wbc46lzchlmfs08fjzbf3l6mmsqj8gs9pc";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   propagatedBuildInputs =
     [ mesa glib gdk_pixbuf libXfixes libXcomposite libXdamage ];
diff --git a/pkgs/development/libraries/config-support/default.nix b/pkgs/development/libraries/config-support/default.nix
index 72b1bea7b203..d25accd4664e 100644
--- a/pkgs/development/libraries/config-support/default.nix
+++ b/pkgs/development/libraries/config-support/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [aterm];
-  buildNativeInputs = [pkgconfig];
+  nativeBuildInputs = [pkgconfig];
 
   dontStrip = isMingw;
 } 
diff --git a/pkgs/development/libraries/crypto++/default.nix b/pkgs/development/libraries/crypto++/default.nix
index 43d1011ec0a1..e9efcfaf7f00 100644
--- a/pkgs/development/libraries/crypto++/default.nix
+++ b/pkgs/development/libraries/crypto++/default.nix
@@ -1,20 +1,16 @@
 { fetchurl, stdenv, unzip, libtool }:
 
 stdenv.mkDerivation rec {
-  name = "crypto++-5.6.1";
+  name = "crypto++-5.6.2";
 
   src = fetchurl {
-    url = "mirror://sourceforge/cryptopp/cryptopp561.zip";
-    sha256 = "0s7jhvnfihikqp1iwpdz03fad62xkjxci6jiahrh6f3sn664vrwq";
+    url = "mirror://sourceforge/cryptopp/cryptopp562.zip";
+    sha256 = "0x1mqpz1v071cfrw4grbw7z734cxnpry1qh2b6rsmcx6nkyd5gsw";
   };
 
-  patches = [
-    ./pic.patch
-    ./salsa-gcc4.6.patch
-  ] ++ stdenv.lib.optional (stdenv.system != "i686-cygwin") ./dll.patch;
+  patches = stdenv.lib.optional (stdenv.system != "i686-cygwin") ./dll.patch;
 
-
-  buildInputs = [ unzip ];
+  buildInputs = [ unzip libtool ];
 
   # Unpack the thing in a subdirectory.
   unpackPhase = ''
@@ -37,7 +33,7 @@ stdenv.mkDerivation rec {
   # I add what 'enableParallelBuilding' would add to the make call,
   # if we were using the generic build phase.
   buildPhase = ''
-    make PREFIX="$out" all libcryptopp.so -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES
+    make PREFIX="$out" all -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES
   '';
 
   # TODO: Installing cryptotest.exe doesn't seem to be necessary. We run
@@ -53,7 +49,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Crypto++, a free C++ class library of cryptographic schemes";
     homepage = http://cryptopp.com/;
-    license = "Public Domain";
+    license = "Boost 1.0";
     maintainers = [ stdenv.lib.maintainers.ludo ];
   };
 }
diff --git a/pkgs/development/libraries/crypto++/pic.patch b/pkgs/development/libraries/crypto++/pic.patch
deleted file mode 100644
index c01550b132ac..000000000000
--- a/pkgs/development/libraries/crypto++/pic.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Build position-independent code, for shared libraries.  Fix $(DLLSRCS)
-while we're at it (it lacks `pssr.cpp', for instance).
-
---- a/GNUmakefile	2009-03-15 02:48:02.000000000 +0100
-+++ b/GNUmakefile	2009-08-11 00:13:43.000000000 +0200
-@@ -104,6 +104,7 @@ TESTOBJS = bench.o bench2.o test.o valid
- LIBOBJS = $(filter-out $(TESTOBJS),$(OBJS))
- 
- DLLSRCS = algebra.cpp algparam.cpp asn.cpp basecode.cpp cbcmac.cpp channels.cpp cryptlib.cpp des.cpp dessp.cpp dh.cpp dll.cpp dsa.cpp ec2n.cpp eccrypto.cpp ecp.cpp eprecomp.cpp files.cpp filters.cpp fips140.cpp fipstest.cpp gf2n.cpp gfpcrypt.cpp hex.cpp hmac.cpp integer.cpp iterhash.cpp misc.cpp modes.cpp modexppc.cpp mqueue.cpp nbtheory.cpp oaep.cpp osrng.cpp pch.cpp pkcspad.cpp pubkey.cpp queue.cpp randpool.cpp rdtables.cpp rijndael.cpp rng.cpp rsa.cpp sha.cpp simple.cpp skipjack.cpp strciphr.cpp trdlocal.cpp
-+DLLSRCS = $(SRCS)
- DLLOBJS = $(DLLSRCS:.cpp=.export.o)
- LIBIMPORTOBJS = $(LIBOBJS:.o=.import.o)
- TESTIMPORTOBJS = $(TESTOBJS:.o=.import.o)
-@@ -162,7 +162,7 @@ endif
- 	$(CXX) $(CXXFLAGS) -DCRYPTOPP_IMPORTS -c $< -o $@
- 
- %.export.o : %.cpp
--	$(CXX) $(CXXFLAGS) -DCRYPTOPP_EXPORTS -c $< -o $@
-+	$(CXX) $(CXXFLAGS) -fPIC -DCRYPTOPP_EXPORTS -c $< -o $@
- 
- %.o : %.cpp
- 	$(CXX) $(CXXFLAGS) -c $<
diff --git a/pkgs/development/libraries/crypto++/salsa-gcc4.6.patch b/pkgs/development/libraries/crypto++/salsa-gcc4.6.patch
deleted file mode 100644
index 609d2f55d223..000000000000
--- a/pkgs/development/libraries/crypto++/salsa-gcc4.6.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From fbccde3578feddb16f07be981da1d0f26209fd04 Mon Sep 17 00:00:00 2001
-From: weidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0>
-Date: Sun, 5 Jun 2011 21:07:11 +0000
-Subject: [PATCH 1/4] fix Salsa validation failure when compiling with GCC 4.6
- (https://sourceforge.net/apps/trac/cryptopp/ticket/12)
-
-git-svn-id: https://cryptopp.svn.sourceforge.net/svnroot/cryptopp/trunk@529 57ff6487-cd31-0410-9ec3-f628ee90f5f0
----
- c5/salsa.cpp |   21 +++++++++++----------
- 1 file changed, 11 insertions(+), 10 deletions(-)
-
-# NOTE: remove the c5 path component
-
-diff --git a/salsa.cpp b/salsa.cpp
-index bd216ee..bdc5d75 100755
---- a/salsa.cpp
-+++ b/salsa.cpp
-@@ -122,17 +122,17 @@ void Salsa20_Policy::OperateKeystream(KeystreamOperation operation, byte *output
- 	if (HasSSE2())
- 	{
- 	#if CRYPTOPP_BOOL_X64
--		#define REG_output			%4
--		#define REG_input			%1
-+		#define REG_output			%1
-+		#define REG_input			%0
- 		#define REG_iterationCount	%2
--		#define REG_state			%3
--		#define REG_rounds			%0
-+		#define REG_state			%4		/* constant */
-+		#define REG_rounds			%3		/* constant */
- 		#define REG_roundsLeft		eax
- 		#define REG_temp32			edx
- 		#define REG_temp			rdx
--		#define SSE2_WORKSPACE		%5
-+		#define SSE2_WORKSPACE		%5		/* constant */
- 
--		FixedSizeAlignedSecBlock<byte, 32*16> workspace;
-+		CRYPTOPP_ALIGN_DATA(16) byte workspace[16*32];
- 	#else
- 		#define REG_output			edi
- 		#define REG_input			eax
-@@ -457,12 +457,13 @@ void Salsa20_Policy::OperateKeystream(KeystreamOperation operation, byte *output
- #ifdef __GNUC__
- 		AS_POP_IF86(	bx)
- 		".att_syntax prefix;"
--			: 
- 	#if CRYPTOPP_BOOL_X64
--			: "r" (m_rounds), "r" (input), "r" (iterationCount), "r" (m_state.data()), "r" (output), "r" (workspace.m_ptr)
--			: "%eax", "%edx", "memory", "cc", "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7", "%xmm8", "%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15"
-+			: "+r" (input), "+r" (output), "+r" (iterationCount)
-+			: "r" (m_rounds), "r" (m_state.m_ptr), "r" (workspace)
-+			: "%eax", "%rdx", "memory", "cc", "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7", "%xmm8", "%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15"
- 	#else
--			: "d" (m_rounds), "a" (input), "c" (iterationCount), "S" (m_state.data()), "D" (output)
-+			: "+a" (input), "+D" (output), "+c" (iterationCount)
-+			: "d" (m_rounds), "S" (m_state.m_ptr)
- 			: "memory", "cc"
- 	#endif
- 		);
--- 
-1.7.9.2
-
diff --git a/pkgs/development/libraries/dbus-glib/default.nix b/pkgs/development/libraries/dbus-glib/default.nix
index 5fccc7ad66b7..47e83e7780cc 100644
--- a/pkgs/development/libraries/dbus-glib/default.nix
+++ b/pkgs/development/libraries/dbus-glib/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "04fiwld5yaxyggxlvdmbaqkngh4fn8gfkkqckcp3274bpgb82z19";
   };
 
-  buildNativeInputs = [ pkgconfig gettext ];
+  nativeBuildInputs = [ pkgconfig gettext ];
 
   buildInputs = [ expat ] ++ stdenv.lib.optional (!stdenv.isLinux) libiconv;
 
diff --git a/pkgs/development/libraries/dbus/default.nix b/pkgs/development/libraries/dbus/default.nix
index 0b8029c94dbf..5716ac6648a0 100644
--- a/pkgs/development/libraries/dbus/default.nix
+++ b/pkgs/development/libraries/dbus/default.nix
@@ -17,7 +17,7 @@ in rec {
   libs = stdenv.mkDerivation {
     name = "dbus-library-" + version;
 
-    buildNativeInputs = [ pkgconfig ];
+    nativeBuildInputs = [ pkgconfig ];
 
     buildInputs = [ expat ];
 
@@ -48,7 +48,7 @@ in rec {
 
     configureFlags = "${configureFlags} --with-dbus-daemondir=${daemon}/bin";
 
-    buildNativeInputs = [ pkgconfig ];
+    nativeBuildInputs = [ pkgconfig ];
 
     buildInputs = [ expat libs ]
       ++ stdenv.lib.optionals useX11 [ libX11 libICE libSM ];
diff --git a/pkgs/development/libraries/directfb/default.nix b/pkgs/development/libraries/directfb/default.nix
index 5c6c080a9251..cdc54ef66916 100644
--- a/pkgs/development/libraries/directfb/default.nix
+++ b/pkgs/development/libraries/directfb/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
     sha256 = s.hash;
   };
 
-  buildNativeInputs = [ perl ];
+  nativeBuildInputs = [ perl ];
 
   buildInputs = [ pkgconfig zlib libjpeg freetype giflib libpng ]
     ++ stdenv.lib.optional enableSDL SDL
diff --git a/pkgs/development/libraries/eigen/2.0.nix b/pkgs/development/libraries/eigen/2.0.nix
index 6884aca16fcb..9cf0a3c350cc 100644
--- a/pkgs/development/libraries/eigen/2.0.nix
+++ b/pkgs/development/libraries/eigen/2.0.nix
@@ -5,15 +5,15 @@ let
 in
 stdenv.mkDerivation {
   name = "eigen-${v}";
-  
+
   src = fetchurl {
     url = "http://bitbucket.org/eigen/eigen/get/${v}.tar.bz2";
     name = "eigen-${v}.tar.bz2";
     sha256 = "1akcb4g5hvc664gfc6sxb6f6jrm55fgks6017wg0smyvmm6k09v0";
   };
-  
-  buildNativeInputs = [ cmake ];
-  
+
+  nativeBuildInputs = [ cmake ];
+
   meta = with stdenv.lib; {
     description = "C++ template library for linear algebra: vectors, matrices, and related algorithms";
     license = licenses.lgpl3Plus;
diff --git a/pkgs/development/libraries/eigen/default.nix b/pkgs/development/libraries/eigen/default.nix
index 56f66aba8f8d..5653eec6d41f 100644
--- a/pkgs/development/libraries/eigen/default.nix
+++ b/pkgs/development/libraries/eigen/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
     sha256 = "1hywvbn4a8f96fjn3cvd6nxzh5jvh05s1r263d9vqlgn25dxrzay";
   };
   
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
   
   meta = with stdenv.lib; {
     description = "C++ template library for linear algebra: vectors, matrices, and related algorithms";
diff --git a/pkgs/development/libraries/error-support/default.nix b/pkgs/development/libraries/error-support/default.nix
index da59c3bb9b46..766a0dbef1d8 100644
--- a/pkgs/development/libraries/error-support/default.nix
+++ b/pkgs/development/libraries/error-support/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [aterm toolbuslib];
-  buildNativeInputs = [pkgconfig];
+  nativeBuildInputs = [pkgconfig];
 
   dontStrip = isMingw;
 } 
diff --git a/pkgs/development/libraries/farsight2/default.nix b/pkgs/development/libraries/farsight2/default.nix
index cbb21073685c..3467ac2cc3bc 100644
--- a/pkgs/development/libraries/farsight2/default.nix
+++ b/pkgs/development/libraries/farsight2/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ libnice python pygobject gst_python gupnp_igd ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   propagatedBuildInputs = [ gstreamer gst_plugins_base ];
 
diff --git a/pkgs/development/libraries/farstream/default.nix b/pkgs/development/libraries/farstream/default.nix
index 3babcb828337..7d84cf889932 100644
--- a/pkgs/development/libraries/farstream/default.nix
+++ b/pkgs/development/libraries/farstream/default.nix
@@ -10,11 +10,11 @@ stdenv.mkDerivation rec {
     sha256 = "1nbkbvq959f70zhr03fwdibhs0sbf1k7zmbz9w99vda7gdcl0nps";
   };
 
-  buildInputs = [ libnice python pygobject gupnp_igd ];
+  buildInputs = [ libnice python pygobject gupnp_igd libnice ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
-  propagatedBuildInputs = [ gstreamer gst_plugins_base gst_python 
+  propagatedBuildInputs = [ gstreamer gst_plugins_base gst_python
     gst_plugins_good gst_plugins_bad gst_ffmpeg
     ];
 
diff --git a/pkgs/development/libraries/ffmpeg/default.nix b/pkgs/development/libraries/ffmpeg/default.nix
index 3b5e28a2ee7f..b37fcdf4436c 100644
--- a/pkgs/development/libraries/ffmpeg/default.nix
+++ b/pkgs/development/libraries/ffmpeg/default.nix
@@ -74,6 +74,10 @@ stdenv.mkDerivation rec {
       ];
   };
 
+  passthru = {
+    inherit vdpauSupport;
+  };
+
   meta = {
     homepage = http://www.ffmpeg.org/;
     description = "A complete, cross-platform solution to record, convert and stream audio and video";
diff --git a/pkgs/development/libraries/fltk/fltk13.nix b/pkgs/development/libraries/fltk/fltk13.nix
index d3d89e6a9074..3ab267ad6b4a 100644
--- a/pkgs/development/libraries/fltk/fltk13.nix
+++ b/pkgs/development/libraries/fltk/fltk13.nix
@@ -14,7 +14,7 @@ composableDerivation.composableDerivation {} {
 
   propagatedBuildInputs = [ x11 inputproto libXi freeglut ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   flags =
     # this could be tidied up (?).. eg why does it require freeglut without glSupport?
diff --git a/pkgs/development/libraries/fmod/default.nix b/pkgs/development/libraries/fmod/default.nix
index f73480b3ce46..d85a24fa63ad 100644
--- a/pkgs/development/libraries/fmod/default.nix
+++ b/pkgs/development/libraries/fmod/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation {
   name = "fmod-42204";
-  src = if (stdenv.system == "i686-linux") then
+  src = if stdenv.system == "i686-linux" then
     fetchurl {
       url = http://www.fmod.org/index.php/release/version/fmodapi42204linux.tar.gz;
       sha256 = "64eedc5b37c597eb925de446106d75cab0b5a79697d5ec048d34702812c08563";
-    } else if (stdenv.system == "x86_64-linux") then
+    } else if stdenv.system == "x86_64-linux" then
     fetchurl {
       url = http://www.fmod.org/index.php/release/version/fmodapi42204linux64.tar.gz;
       sha256 = "3f2eec8265838a1005febe07c4971660e85010e4622911890642dc438746edf3";
diff --git a/pkgs/development/libraries/funambol/default.nix b/pkgs/development/libraries/funambol/default.nix
index 589ffaba3f96..98049e0ca35a 100644
--- a/pkgs/development/libraries/funambol/default.nix
+++ b/pkgs/development/libraries/funambol/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ zlib curl ];
 
-  buildNativeInputs = [ automake libtool autoconf unzip ];
+  nativeBuildInputs = [ automake libtool autoconf unzip ];
 
   meta = {
     description = "SyncML client sdk by Funambol project";
diff --git a/pkgs/development/libraries/gamin/default.nix b/pkgs/development/libraries/gamin/default.nix
index a212946c67f3..6d94eee865f3 100644
--- a/pkgs/development/libraries/gamin/default.nix
+++ b/pkgs/development/libraries/gamin/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "18cr51y5qacvs2fc2p1bqv32rs8bzgs6l67zhasyl45yx055y218";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   buildInputs = [ python glib ];
 
diff --git a/pkgs/development/libraries/gdk-pixbuf/2.26.x.nix b/pkgs/development/libraries/gdk-pixbuf/2.26.x.nix
index 07e66df33b57..2876c9b94341 100644
--- a/pkgs/development/libraries/gdk-pixbuf/2.26.x.nix
+++ b/pkgs/development/libraries/gdk-pixbuf/2.26.x.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   # !!! We might want to factor out the gdk-pixbuf-xlib subpackage.
   buildInputs = [ libX11 ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   propagatedBuildInputs = [ glib libtiff libjpeg libpng jasper ];
 
diff --git a/pkgs/development/libraries/gegl/default.nix b/pkgs/development/libraries/gegl/default.nix
index 5da6e3e40f4c..a30d5c78e7f2 100644
--- a/pkgs/development/libraries/gegl/default.nix
+++ b/pkgs/development/libraries/gegl/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ babl libpng cairo libjpeg librsvg pango gtk bzip2 intltool ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = { 
     description = "Graph-based image processing framework";
diff --git a/pkgs/development/libraries/gettext/default.nix b/pkgs/development/libraries/gettext/default.nix
index 73366b2bdc95..5468c9f2336d 100644
--- a/pkgs/development/libraries/gettext/default.nix
+++ b/pkgs/development/libraries/gettext/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation (rec {
     sha256 = "1sa3ch12qxa4h3ya6hkz119yclcccmincl9j20dhrdx5mykp3b4k";
   };
 
+  patches = [ ./no-gets.patch ];
+
   configureFlags = [ "--disable-csharp" ]
      ++ (stdenv.lib.optionals stdenv.isCygwin
           [ # We have a static libiconv, so we can only build the static lib.
@@ -34,7 +36,7 @@ stdenv.mkDerivation (rec {
       
   crossAttrs = {
     buildInputs = stdenv.lib.optional (stdenv.gccCross.libc ? libiconv)
-      stdenv.gccCross.libc.libiconv.hostDrv;
+      stdenv.gccCross.libc.libiconv.crossDrv;
     # Gettext fails to guess the cross compiler
     configureFlags = "CXX=${stdenv.cross.config}-g++";
   };
diff --git a/pkgs/development/libraries/gettext/no-gets.patch b/pkgs/development/libraries/gettext/no-gets.patch
new file mode 100644
index 000000000000..9daa48eae649
--- /dev/null
+++ b/pkgs/development/libraries/gettext/no-gets.patch
@@ -0,0 +1,42 @@
+hack until gzip pulls a newer gnulib version
+
+From 66712c23388e93e5c518ebc8515140fa0c807348 Mon Sep 17 00:00:00 2001
+From: Eric Blake <eblake@redhat.com>
+Date: Thu, 29 Mar 2012 13:30:41 -0600
+Subject: [PATCH] stdio: don't assume gets any more
+
+Gnulib intentionally does not have a gets module, and now that C11
+and glibc have dropped it, we should be more proactive about warning
+any user on a platform that still has a declaration of this dangerous
+interface.
+
+--- a/gettext-tools/libgettextpo/stdio.in.h
++++ b/gettext-tools/libgettextpo/stdio.in.h
+@@ -125,7 +125,6 @@
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
+ #undef gets
+-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+ 
+ #if @GNULIB_FOPEN@
+ # if @REPLACE_FOPEN@
+--- a/gettext-tools/gnulib-lib/stdio.in.h
++++ b/gettext-tools/gnulib-lib/stdio.in.h
+@@ -125,7 +125,6 @@
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
+ #undef gets
+-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+ 
+ #if @GNULIB_FOPEN@
+ # if @REPLACE_FOPEN@
+--- a/gettext-runtime/gnulib-lib/stdio.in.h
++++ b/gettext-runtime/gnulib-lib/stdio.in.h
+@@ -125,7 +125,6 @@
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
+ #undef gets
+-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+ 
+ #if @GNULIB_FOPEN@
+ # if @REPLACE_FOPEN@
diff --git a/pkgs/development/libraries/glib-networking/default.nix b/pkgs/development/libraries/glib-networking/default.nix
index 107a583d1020..2c651980eda8 100644
--- a/pkgs/development/libraries/glib-networking/default.nix
+++ b/pkgs/development/libraries/glib-networking/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
     sed -e "s@${glib}/lib/gio/modules@$out/lib/gio/modules@g" -i $(find . -name Makefile)
   '';
 
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
   propagatedBuildInputs =
     [ glib libtool gnutls2 libproxy libgcrypt libtasn1 gsettings_desktop_schemas ];
 }
diff --git a/pkgs/development/libraries/glib/2.34.x.nix b/pkgs/development/libraries/glib/2.34.x.nix
index 7fb61ac20e23..69ed44aeccaa 100644
--- a/pkgs/development/libraries/glib/2.34.x.nix
+++ b/pkgs/development/libraries/glib/2.34.x.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation (rec {
   # configure script looks for d-bus but it is only needed for tests
   buildInputs = [ libiconvOrNull ];
 
-  buildNativeInputs = [ perl pkgconfig gettext python ];
+  nativeBuildInputs = [ perl pkgconfig gettext python ];
 
   propagatedBuildInputs = [ pcre zlib libffi ];
 
diff --git a/pkgs/development/libraries/glibc/2.13/common.nix b/pkgs/development/libraries/glibc/2.13/common.nix
index cc8c5373ff55..8be076f335c0 100644
--- a/pkgs/development/libraries/glibc/2.13/common.nix
+++ b/pkgs/development/libraries/glibc/2.13/common.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation ({
   inherit kernelHeaders installLocales;
 
   # The host/target system.
-  crossConfig = if (cross != null) then cross.config else null;
+  crossConfig = if cross != null then cross.config else null;
 
   inherit (stdenv) is64bit;
 
@@ -102,14 +102,16 @@ stdenv.mkDerivation ({
     "-C"
     "--enable-add-ons"
     "--sysconfdir=/etc"
-    "--localedir=/var/run/current-system/sw/lib/locale" ] ++
-    (stdenv.lib.optional (stdenv.name == "stdenv") "libc_cv_ssp=no") ++ [
+    "--localedir=/var/run/current-system/sw/lib/locale"
+    "libc_cv_ssp=no"
     (if kernelHeaders != null
      then "--with-headers=${kernelHeaders}/include"
      else "--without-headers")
     (if profilingLibraries
      then "--enable-profile"
      else "--disable-profile")
+  ] ++ stdenv.lib.optionals (cross == null && kernelHeaders != null) [
+    "--enable-kernel=2.6.35"
   ] ++ stdenv.lib.optionals (cross != null) [
     (if cross.withTLS then "--with-tls" else "--without-tls")
     (if cross.float == "soft" then "--without-fp" else "--with-fp")
@@ -118,7 +120,8 @@ stdenv.mkDerivation ({
         && cross.platform.kernelMajor == "2.6") [
     "--enable-kernel=2.6.0"
     "--with-__thread"
-  ] ++ stdenv.lib.optionals stdenv.isArm [
+  ] ++ stdenv.lib.optionals (cross == null &&
+       (stdenv.system == "armv5tel-linux")) [
     "--host=arm-linux-gnueabi"
     "--build=arm-linux-gnueabi"
     "--without-fp"
@@ -126,6 +129,14 @@ stdenv.mkDerivation ({
     # To avoid linking with -lgcc_s (dynamic link)
     # so the glibc does not depend on its compiler store path
     "libc_cv_as_needed=no"
+  ] ++ stdenv.lib.optionals (cross == null && stdenv.platform.name == "raspberrypi") [
+    "--host=arm-linux-gnueabi"
+    "--build=arm-linux-gnueabi"
+    "--with-fp"
+
+    # To avoid linking with -lgcc_s (dynamic link)
+    # so the glibc does not depend on its compiler store path
+    "libc_cv_as_needed=no"
   ];
 
   installFlags = [ "sysconfdir=$(out)/etc" ];
diff --git a/pkgs/development/libraries/glibc/2.14/common.nix b/pkgs/development/libraries/glibc/2.14/common.nix
deleted file mode 100644
index ab3ef7c42f49..000000000000
--- a/pkgs/development/libraries/glibc/2.14/common.nix
+++ /dev/null
@@ -1,223 +0,0 @@
-/* Build configuration used to build glibc, Info files, and locale
-   information.  */
-
-cross :
-
-{ name, fetchurl, stdenv, installLocales ? false
-, gccCross ? null, kernelHeaders ? null
-, machHeaders ? null, hurdHeaders ? null, libpthreadHeaders ? null
-, mig ? null, fetchgit ? null
-, profilingLibraries ? false, meta
-, preConfigure ? "", ... }@args :
-
-let
-  # For GNU/Hurd, see below.
-  version = if hurdHeaders != null then "20111025" else "2.14.1";
-
-  needsPortsNative = stdenv.isMips || stdenv.isArm;
-  needsPortsCross = cross.arch == "mips" || cross.arch == "arm";
-  needsPorts = if (stdenv ? cross) && stdenv.cross != null then true
-    else if cross == null then needsPortsNative
-    else needsPortsCross;
-
-  srcPorts = fetchurl {
-    url = "mirror://gnu/glibc/glibc-ports-2.14.1.tar.bz2";
-    sha256 = "1acs4sd5mjzmssmd0md6dfqwnziph2am7v09mbnnd8aadpxhm0qw";
-  };
-
-in
-
-assert (cross != null) -> (gccCross != null);
-
-assert (mig != null) -> (machHeaders != null);
-assert (machHeaders != null) -> (hurdHeaders != null);
-assert (hurdHeaders != null) -> (libpthreadHeaders != null);
-assert (hurdHeaders != null) -> (fetchgit != null);
-
-stdenv.mkDerivation ({
-  inherit kernelHeaders installLocales;
-
-  # The host/target system.
-  crossConfig = if (cross != null) then cross.config else null;
-
-  inherit (stdenv) is64bit;
-
-  enableParallelBuilding = true;
-
-  patches =
-    stdenv.lib.optional (fetchgit == null)
-    /* Fix for NIXPKGS-79: when doing host name lookups, when
-       nsswitch.conf contains a line like
-
-         hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
-
-       don't return an error when mdns4_minimal can't be found.  This
-       is a bug in Glibc: when a service can't be found, NSS should
-       continue to the next service unless "UNAVAIL=return" is set.
-       ("NOTFOUND=return" refers to the service returning a NOTFOUND
-       error, not the service itself not being found.)  The reason is
-       that the "status" variable (while initialised to UNAVAIL) is
-       outside of the loop that iterates over the services, the
-       "files" service sets status to NOTFOUND.  So when the call to
-       find "mdns4_minimal" fails, "status" will still be NOTFOUND,
-       and it will return instead of continuing to "dns".  Thus, the
-       line
-
-         hosts: mdns4_minimal [NOTFOUND=return] dns mdns4
-
-       does work because "status" will contain UNAVAIL after the
-       failure to find mdns4_minimal. */
-    ./nss-skip-unavail.patch
-  ++ [
-    /* Have rpcgen(1) look for cpp(1) in $PATH.  */
-    ./rpcgen-path.patch
-
-    /* Allow nixos and nix handle the locale-archive. */
-    ./nix-locale-archive.patch
-
-    /* don't use /etc/ld.so.cache, for non-nixos systems */
-    ./dont_use_system_ld_so_cache.patch
-
-    /* Without this patch many KDE binaries crash. */
-    ./glibc-elf-localscope.patch
-  ];
-
-  postPatch = ''
-    # Needed for glibc to build with the gnumake 3.82
-    # http://comments.gmane.org/gmane.linux.lfs.support/31227
-    sed -i 's/ot \$/ot:\n\ttouch $@\n$/' manual/Makefile
-
-    # nscd needs libgcc, and we don't want it dynamically linked
-    # because we don't want it to depend on bootstrap-tools libs.
-    echo "LDFLAGS-nscd += -static-libgcc" >> nscd/Makefile
-  '';
-
-  configureFlags = [
-    "-C"
-    "--enable-add-ons"
-    "--sysconfdir=/etc"
-    "--localedir=/var/run/current-system/sw/lib/locale"
-    "libc_cv_ssp=no"
-    (if kernelHeaders != null
-     then "--with-headers=${kernelHeaders}/include"
-     else "--without-headers")
-    (if profilingLibraries
-     then "--enable-profile"
-     else "--disable-profile")
-  ] ++ stdenv.lib.optionals (cross != null) [
-    (if cross.withTLS then "--with-tls" else "--without-tls")
-    (if cross.float == "soft" then "--without-fp" else "--with-fp")
-    "--enable-kernel=2.6.0"
-    "--with-__thread"
-  ] ++ stdenv.lib.optionals stdenv.isArm [
-    "--host=arm-linux-gnueabi"
-    "--build=arm-linux-gnueabi"
-    "--without-fp"
-
-    # To avoid linking with -lgcc_s (dynamic link)
-    # so the glibc does not depend on its compiler store path
-    "libc_cv_as_needed=no"
-  ];
-
-  installFlags = [ "sysconfdir=$(out)/etc" ];
-  
-  buildInputs = stdenv.lib.optionals (cross != null) [ gccCross ]
-    ++ stdenv.lib.optional (mig != null) mig;
-
-  # Needed to install share/zoneinfo/zone.tab.  Set to impure /bin/sh to
-  # prevent a retained dependency on the bootstrap tools in the stdenv-linux
-  # bootstrap.
-  BASH_SHELL = "/bin/sh";
-
-  # Workaround for this bug:
-  #   http://sourceware.org/bugzilla/show_bug.cgi?id=411
-  # I.e. when gcc is compiled with --with-arch=i686, then the
-  # preprocessor symbol `__i686' will be defined to `1'.  This causes
-  # the symbol __i686.get_pc_thunk.dx to be mangled.
-  NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (stdenv.system == "i686-linux") "-U__i686";
-}
-
-# Remove the `gccCross' attribute so that the *native* glibc store path
-# doesn't depend on whether `gccCross' is null or not.
-// (removeAttrs args [ "gccCross" ]) //
-
-{
-  name = name + "-${version}" +
-    stdenv.lib.optionalString (cross != null) "-${cross.config}";
-
-  src =
-    if hurdHeaders != null
-    then fetchgit {
-      # Shamefully the "official" glibc won't build on GNU, so use the one
-      # maintained by the Hurd folks, `tschwinge/Roger_Whittaker' branch.
-      # See <http://www.gnu.org/software/hurd/source_repositories/glibc.html>.
-      url = "git://git.sv.gnu.org/hurd/glibc.git";
-      sha256 = "3fb3dd7030a4b6d3e144fa94c32a0c4f46f17f94e2dfbc6bef41cfc3198725ca";
-      rev = "d740cf9d201dc9ecb0335b0a585828dea9cce793";
-    }
-    else fetchurl {
-      url = "mirror://gnu/glibc/glibc-${version}.tar.bz2";
-      sha256 = "0fsvf5d6sib483rp7asdy8hs0dysxqkrvw316c82hsxy7vxa51bf";
-    };
-
-  # `fetchurl' is a function and thus should not be passed to the
-  # `derivation' primitive.
-  fetchurl = null;
-
-  # Remove absolute paths from `configure' & co.; build out-of-tree.
-  preConfigure = ''
-    export PWD_P=$(type -tP pwd)
-    for i in configure io/ftwtest-sh; do
-        # Can't use substituteInPlace here because replace hasn't been
-        # built yet in the bootstrap.
-        sed -i "$i" -e "s^/bin/pwd^$PWD_P^g"
-    done
-
-    ${if needsPorts then "tar xvf ${srcPorts}" else ""}
-
-    mkdir ../build
-    cd ../build
-
-    configureScript="`pwd`/../$sourceRoot/configure"
-
-    ${preConfigure}
-  '';
-
-  meta = {
-    homepage = http://www.gnu.org/software/libc/;
-    description = "The GNU C Library";
-
-    longDescription =
-      '' Any Unix-like operating system needs a C library: the library which
-         defines the "system calls" and other basic facilities such as
-         open, malloc, printf, exit...
-
-         The GNU C library is used as the C library in the GNU system and
-         most systems with the Linux kernel.
-      '';
-
-    license = "LGPLv2+";
-
-    maintainers = [ stdenv.lib.maintainers.ludo ];
-    #platforms = stdenv.lib.platforms.linux;
-  } // meta;
-}
-
-//
-
-(if hurdHeaders != null
- then {
-   # Work around the fact that the configure snippet that looks for
-   # <hurd/version.h> does not honor `--with-headers=$sysheaders' and that
-   # glibc expects Mach, Hurd, and pthread headers to be in the same place.
-   CPATH = "${hurdHeaders}/include:${machHeaders}/include:${libpthreadHeaders}/include";
-
-   # `fetchgit' is a function and thus should not be passed to the
-   # `derivation' primitive.
-   fetchgit = null;
-
-   # Install NSS stuff in the right place.
-   # XXX: This will be needed for all new glibcs and isn't Hurd-specific.
-   makeFlags = ''vardbdir="$out/var/db"'';
- }
- else { }))
diff --git a/pkgs/development/libraries/glibc/2.14/dont_use_system_ld_so_cache.patch b/pkgs/development/libraries/glibc/2.14/dont_use_system_ld_so_cache.patch
deleted file mode 100644
index 444eb8251e49..000000000000
--- a/pkgs/development/libraries/glibc/2.14/dont_use_system_ld_so_cache.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff -Naur glibc-2.13-orig/elf/ldconfig.c glibc-2.13/elf/ldconfig.c
---- glibc-2.13-orig/elf/ldconfig.c	2011-01-17 23:34:07.000000000 -0500
-+++ glibc-2.13/elf/ldconfig.c	2012-04-10 23:28:45.957492340 -0400
-@@ -51,7 +51,7 @@
- #endif
- 
- #ifndef LD_SO_CONF
--# define LD_SO_CONF SYSCONFDIR "/ld.so.conf"
-+# define LD_SO_CONF PREFIX "/etc/ld.so.conf"
- #endif
- 
- /* Get libc version number.  */
-diff -Naur glibc-2.13-orig/elf/Makefile glibc-2.13/elf/Makefile
---- glibc-2.13-orig/elf/Makefile	2011-01-17 23:34:07.000000000 -0500
-+++ glibc-2.13/elf/Makefile	2012-04-10 23:27:05.666477442 -0400
-@@ -459,11 +459,11 @@
- $(objpfx)sprof: $(libdl)
- 
- $(objpfx)ldconfig: $(ldconfig-modules:%=$(objpfx)%.o)
--SYSCONF-FLAGS := -D'SYSCONFDIR="$(sysconfdir)"'
--CFLAGS-ldconfig.c = $(SYSCONF-FLAGS) -D'LIBDIR="$(libdir)"' \
-+PREFIX-FLAGS := -D'PREFIX="$(prefix)"'
-+CFLAGS-ldconfig.c = $(PREFIX-FLAGS) -D'LIBDIR="$(libdir)"' \
- 		    -D'SLIBDIR="$(slibdir)"' -DIS_IN_ldconfig=1
--CFLAGS-dl-cache.c = $(SYSCONF-FLAGS)
--CFLAGS-cache.c = $(SYSCONF-FLAGS)
-+CFLAGS-dl-cache.c = $(PREFIX-FLAGS)
-+CFLAGS-cache.c = $(PREFIX-FLAGS)
- 
- CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),-DNOT_IN_libc=1 -DIS_IN_rtld=1)
- 
-diff -Naur glibc-2.13-orig/sysdeps/generic/dl-cache.h glibc-2.13/sysdeps/generic/dl-cache.h
---- glibc-2.13-orig/sysdeps/generic/dl-cache.h	2011-01-17 23:34:07.000000000 -0500
-+++ glibc-2.13/sysdeps/generic/dl-cache.h	2012-04-10 23:28:20.077488815 -0400
-@@ -29,7 +29,7 @@
- #endif
- 
- #ifndef LD_SO_CACHE
--# define LD_SO_CACHE SYSCONFDIR "/ld.so.cache"
-+# define LD_SO_CACHE PREFIX "/etc/ld.so.cache"
- #endif
- 
- #ifndef add_system_dir
diff --git a/pkgs/development/libraries/glibc/2.14/info.nix b/pkgs/development/libraries/glibc/2.14/info.nix
deleted file mode 100644
index 75bd996d9bc5..000000000000
--- a/pkgs/development/libraries/glibc/2.14/info.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ stdenv, fetchurl, texinfo, perl }:
-
-let build = import ./common.nix;
-in
-  /* null cross builder */
-  build null {
-    name = "glibc-info";
-
-    inherit fetchurl stdenv;
-
-    configureFlags = [ "--enable-add-ons" ];
-
-    buildInputs = [ texinfo perl ];
-
-    buildPhase = "make info";
-
-    # I don't know why the info is not generated in 'build'
-    # Somehow building the info still does not work, because the final
-    # libc.info hasn't a Top node.
-    installPhase = ''
-      mkdir -p "$out/share/info"
-      cp -v "../$sourceRoot/manual/"*.info* "$out/share/info"
-    '';
-
-    meta.description = "GNU Info manual of the GNU C Library";
-  }
diff --git a/pkgs/development/libraries/glibc/2.14/nss-skip-unavail.patch b/pkgs/development/libraries/glibc/2.14/nss-skip-unavail.patch
deleted file mode 100644
index e48dc2bc0a6e..000000000000
--- a/pkgs/development/libraries/glibc/2.14/nss-skip-unavail.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -ru glibc-2.11.2-orig/sysdeps/posix/getaddrinfo.c glibc-2.11.2/sysdeps/posix/getaddrinfo.c
---- glibc-2.11.2-orig/sysdeps/posix/getaddrinfo.c	2010-05-19 22:38:20.000000000 +0200
-+++ glibc-2.11.2/sysdeps/posix/getaddrinfo.c	2010-08-05 18:39:54.259556327 +0200
-@@ -505,8 +505,6 @@
- 	  int no_data = 0;
- 	  int no_inet6_data = 0;
- 	  service_user *nip = NULL;
--	  enum nss_status inet6_status = NSS_STATUS_UNAVAIL;
--	  enum nss_status status = NSS_STATUS_UNAVAIL;
- 	  int no_more;
- 	  int old_res_options;
- 
-@@ -702,6 +700,8 @@
- 
- 	  while (!no_more)
- 	    {
-+ 	      enum nss_status inet6_status = NSS_STATUS_UNAVAIL;
-+ 	      enum nss_status status = NSS_STATUS_UNAVAIL;
- 	      no_data = 0;
- 	      nss_gethostbyname4_r fct4
- 		= __nss_lookup_function (nip, "gethostbyname4_r");
diff --git a/pkgs/development/libraries/glibc/2.14/rpcgen-path.patch b/pkgs/development/libraries/glibc/2.14/rpcgen-path.patch
deleted file mode 100644
index fbb03dd5fade..000000000000
--- a/pkgs/development/libraries/glibc/2.14/rpcgen-path.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-By default, rpcgen(1) looks for cpp(1) from a list of fixed absolute paths
-(`/lib/cpp', etc.), which may only be overrided with the `-Y' option.  This
-patch makes it run any `cpp' command found in $PATH.
-
---- glibc-2.7/sunrpc/rpc_main.c	2006-11-10 21:54:46.000000000 +0100
-+++ glibc-2.7/sunrpc/rpc_main.c	2009-04-22 14:32:10.000000000 +0200
-@@ -79,7 +79,7 @@ static const char *cmdname;
- 
- static const char *svcclosetime = "120";
- static int cppDefined;	/* explicit path for C preprocessor */
--static const char *CPP = SUNOS_CPP;
-+static const char *CPP = "cpp";
- static const char CPPFLAGS[] = "-C";
- static char *pathbuf;
- static int cpp_pid;
-@@ -108,7 +108,6 @@ static char *extendfile (const char *fil
- static void open_output (const char *infile, const char *outfile);
- static void add_warning (void);
- static void clear_args (void);
--static void find_cpp (void);
- static void open_input (const char *infile, const char *define);
- static int check_nettype (const char *name, const char *list_to_check[]);
- static void c_output (const char *infile, const char *define,
-@@ -327,31 +326,6 @@ clear_args (void)
-   argcount = FIXEDARGS;
- }
- 
--/* make sure that a CPP exists */
--static void
--find_cpp (void)
--{
--  struct stat buf;
--
--  if (stat (CPP, &buf) < 0)
--    {				/* /lib/cpp or explicit cpp does not exist */
--      if (cppDefined)
--	{
--	  fprintf (stderr, _ ("cannot find C preprocessor: %s \n"), CPP);
--	  crash ();
--	}
--      else
--	{			/* try the other one */
--	  CPP = SVR4_CPP;
--	  if (stat (CPP, &buf) < 0)
--	    {			/* can't find any cpp */
--	      fputs (_ ("cannot find any C preprocessor (cpp)\n"), stdout);
--	      crash ();
--	    }
--	}
--    }
--}
--
- /*
-  * Open input file with given define for C-preprocessor
-  */
-@@ -370,7 +344,6 @@ open_input (const char *infile, const ch
-   switch (cpp_pid)
-     {
-     case 0:
--      find_cpp ();
-       putarg (0, CPP);
-       putarg (1, CPPFLAGS);
-       addarg (define);
-@@ -380,7 +353,7 @@ open_input (const char *infile, const ch
-       close (1);
-       dup2 (pd[1], 1);
-       close (pd[0]);
--      execv (arglist[0], (char **) arglist);
-+      execvp (arglist[0], (char **) arglist);
-       perror ("execv");
-       exit (1);
-     case -1:
diff --git a/pkgs/development/libraries/glibc/2.14/builder.sh b/pkgs/development/libraries/glibc/2.17/builder.sh
index e68e13f9beca..e68e13f9beca 100644
--- a/pkgs/development/libraries/glibc/2.14/builder.sh
+++ b/pkgs/development/libraries/glibc/2.17/builder.sh
diff --git a/pkgs/development/libraries/glibc/2.17/common.nix b/pkgs/development/libraries/glibc/2.17/common.nix
new file mode 100644
index 000000000000..ea2f3b6d1400
--- /dev/null
+++ b/pkgs/development/libraries/glibc/2.17/common.nix
@@ -0,0 +1,181 @@
+/* Build configuration used to build glibc, Info files, and locale
+   information.  */
+
+cross:
+
+{ name, fetchurl, stdenv, installLocales ? false
+, gccCross ? null, kernelHeaders ? null
+, machHeaders ? null, hurdHeaders ? null, libpthreadHeaders ? null
+, mig ? null
+, profilingLibraries ? false, meta
+, preConfigure ? "", ... }@args:
+
+let
+
+  version = "2.17";
+
+in
+
+assert cross != null -> gccCross != null;
+assert mig != null -> machHeaders != null;
+assert machHeaders != null -> hurdHeaders != null;
+assert hurdHeaders != null -> libpthreadHeaders != null;
+
+stdenv.mkDerivation ({
+  inherit kernelHeaders installLocales;
+
+  # The host/target system.
+  crossConfig = if cross != null then cross.config else null;
+
+  inherit (stdenv) is64bit;
+
+  enableParallelBuilding = true;
+
+  patches =
+    [ /* Have rpcgen(1) look for cpp(1) in $PATH.  */
+      ./rpcgen-path.patch
+
+      /* Allow NixOS and Nix to handle the locale-archive. */
+      ./nix-locale-archive.patch
+
+      /* Don't use /etc/ld.so.cache, for non-NixOS systems.  Currently
+         disabled on GNU/Hurd, which uses a more recent libc snapshot. */
+      ./dont-use-system-ld-so-cache.patch
+
+      /* Without this patch many KDE binaries crash. */
+      ./glibc-elf-localscope.patch
+
+      /* Add blowfish password hashing support.  This is needed for
+         compatibility with old NixOS installations (since NixOS used
+         to default to blowfish). */
+      ./glibc-crypt-blowfish.patch
+
+      /* Fix for random "./sysdeps/posix/getaddrinfo.c:1467:
+         rfc3484_sort: Assertion `src->results[i].native == -1 ||
+         src->results[i].native == a2_native' failed." crashes. */
+      ./glibc-rh739743.patch
+    ];
+
+  postPatch = ''
+    # Needed for glibc to build with the gnumake 3.82
+    # http://comments.gmane.org/gmane.linux.lfs.support/31227
+    sed -i 's/ot \$/ot:\n\ttouch $@\n$/' manual/Makefile
+
+    # nscd needs libgcc, and we don't want it dynamically linked
+    # because we don't want it to depend on bootstrap-tools libs.
+    echo "LDFLAGS-nscd += -static-libgcc" >> nscd/Makefile
+  '';
+
+  configureFlags =
+    [ "-C"
+      "--enable-add-ons"
+      "--enable-obsolete-rpc"
+      "--sysconfdir=/etc"
+      "--localedir=/var/run/current-system/sw/lib/locale"
+      "libc_cv_ssp=no"
+      (if kernelHeaders != null
+       then "--with-headers=${kernelHeaders}/include"
+       else "--without-headers")
+      (if profilingLibraries
+       then "--enable-profile"
+       else "--disable-profile")
+    ] ++ stdenv.lib.optionals (cross == null && kernelHeaders != null) [
+      "--enable-kernel=2.6.35"
+    ] ++ stdenv.lib.optionals (cross != null) [
+      (if cross.withTLS then "--with-tls" else "--without-tls")
+      (if cross.float == "soft" then "--without-fp" else "--with-fp")
+    ] ++ stdenv.lib.optionals (cross != null
+          && cross.platform ? kernelMajor
+          && cross.platform.kernelMajor == "2.6") [
+      "--enable-kernel=2.6.0"
+      "--with-__thread"
+    ] ++ stdenv.lib.optionals (cross == null && stdenv.isArm) [
+      "--host=arm-linux-gnueabi"
+      "--build=arm-linux-gnueabi"
+
+      # To avoid linking with -lgcc_s (dynamic link)
+      # so the glibc does not depend on its compiler store path
+      "libc_cv_as_needed=no"
+    ];
+
+  installFlags = [ "sysconfdir=$(out)/etc" ];
+
+  buildInputs = stdenv.lib.optionals (cross != null) [ gccCross ]
+    ++ stdenv.lib.optional (mig != null) mig;
+
+  # Needed to install share/zoneinfo/zone.tab.  Set to impure /bin/sh to
+  # prevent a retained dependency on the bootstrap tools in the stdenv-linux
+  # bootstrap.
+  BASH_SHELL = "/bin/sh";
+
+  # Workaround for this bug:
+  #   http://sourceware.org/bugzilla/show_bug.cgi?id=411
+  # I.e. when gcc is compiled with --with-arch=i686, then the
+  # preprocessor symbol `__i686' will be defined to `1'.  This causes
+  # the symbol __i686.get_pc_thunk.dx to be mangled.
+  NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (stdenv.system == "i686-linux") "-U__i686";
+}
+
+# Remove the `gccCross' attribute so that the *native* glibc store path
+# doesn't depend on whether `gccCross' is null or not.
+// (removeAttrs args [ "gccCross" "fetchurl" ]) //
+
+{
+  name = name + "-${version}" +
+    stdenv.lib.optionalString (cross != null) "-${cross.config}";
+
+  src = fetchurl {
+    url = "mirror://gnu/glibc/glibc-${version}.tar.gz";
+    sha256 = "0ym3zk9ii64279wgw7pw9xkbxczy2ci7ka6mnfs05rhlainhicm3";
+  };
+
+  # Remove absolute paths from `configure' & co.; build out-of-tree.
+  preConfigure = ''
+    export PWD_P=$(type -tP pwd)
+    for i in configure io/ftwtest-sh; do
+        # Can't use substituteInPlace here because replace hasn't been
+        # built yet in the bootstrap.
+        sed -i "$i" -e "s^/bin/pwd^$PWD_P^g"
+    done
+
+    mkdir ../build
+    cd ../build
+
+    configureScript="`pwd`/../$sourceRoot/configure"
+
+    makeFlags="$makeFlags BUILD_LDFLAGS=-Wl,-rpath,${stdenv.gcc.libc}/lib"
+
+    ${preConfigure}
+  '';
+
+  meta = {
+    homepage = http://www.gnu.org/software/libc/;
+    description = "The GNU C Library"
+      + stdenv.lib.optionalString (hurdHeaders != null) ", for GNU/Hurd";
+
+    longDescription =
+      '' Any Unix-like operating system needs a C library: the library which
+         defines the "system calls" and other basic facilities such as
+         open, malloc, printf, exit...
+
+         The GNU C library is used as the C library in the GNU system and
+         most systems with the Linux kernel.
+      '';
+
+    license = "LGPLv2+";
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+    #platforms = stdenv.lib.platforms.linux;
+  } // meta;
+}
+
+// stdenv.lib.optionalAttrs (hurdHeaders != null) {
+  # Work around the fact that the configure snippet that looks for
+  # <hurd/version.h> does not honor `--with-headers=$sysheaders' and that
+  # glibc expects Mach, Hurd, and pthread headers to be in the same place.
+  CPATH = "${hurdHeaders}/include:${machHeaders}/include:${libpthreadHeaders}/include";
+
+  # Install NSS stuff in the right place.
+  # XXX: This will be needed for all new glibcs and isn't Hurd-specific.
+  makeFlags = ''vardbdir="$out/var/db"'';
+})
diff --git a/pkgs/development/libraries/glibc/2.14/default.nix b/pkgs/development/libraries/glibc/2.17/default.nix
index 1b4e43b1013a..0a0752570f32 100644
--- a/pkgs/development/libraries/glibc/2.14/default.nix
+++ b/pkgs/development/libraries/glibc/2.17/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, kernelHeaders
 , machHeaders ? null, hurdHeaders ? null, libpthreadHeaders ? null
-, mig ? null, fetchgit ? null
+, mig ? null
 , installLocales ? true
 , profilingLibraries ? false
 , gccCross ? null
@@ -14,7 +14,9 @@ let
   cross = if gccCross != null then gccCross.target else null;
 in
   build cross ({
-    name = "glibc${if debugSymbols then "-debug" else ""}";
+    name = "glibc"
+      + stdenv.lib.optionalString (hurdHeaders != null) "-hurd"
+      + stdenv.lib.optionalString debugSymbols "-debug";
 
     inherit fetchurl stdenv kernelHeaders installLocales profilingLibraries
       gccCross;
@@ -54,7 +56,7 @@ in
 
   (if hurdHeaders != null
    then rec {
-     inherit machHeaders hurdHeaders libpthreadHeaders mig fetchgit;
+     inherit machHeaders hurdHeaders libpthreadHeaders mig;
 
      propagatedBuildInputs = [ machHeaders hurdHeaders libpthreadHeaders ];
 
diff --git a/pkgs/development/libraries/glibc/2.17/dont-use-system-ld-so-cache.patch b/pkgs/development/libraries/glibc/2.17/dont-use-system-ld-so-cache.patch
new file mode 100644
index 000000000000..95f537733204
--- /dev/null
+++ b/pkgs/development/libraries/glibc/2.17/dont-use-system-ld-so-cache.patch
@@ -0,0 +1,45 @@
+diff -ru glibc-2.16.0-orig/elf/ldconfig.c glibc-2.16.0/elf/ldconfig.c
+--- glibc-2.16.0-orig/elf/ldconfig.c	2012-06-30 15:12:34.000000000 -0400
++++ glibc-2.16.0/elf/ldconfig.c	2012-09-18 11:59:27.463284814 -0400
+@@ -50,7 +50,7 @@
+ #endif
+ 
+ #ifndef LD_SO_CONF
+-# define LD_SO_CONF SYSCONFDIR "/ld.so.conf"
++# define LD_SO_CONF PREFIX "/etc/ld.so.conf"
+ #endif
+ 
+ /* Get libc version number.  */
+diff -ru glibc-2.16.0-orig/elf/Makefile glibc-2.16.0/elf/Makefile
+--- glibc-2.16.0-orig/elf/Makefile	2012-06-30 15:12:34.000000000 -0400
++++ glibc-2.16.0/elf/Makefile	2012-09-18 12:03:30.031955196 -0400
+@@ -415,12 +415,12 @@
+ 
+ $(objpfx)pldd: $(pldd-modules:%=$(objpfx)%.o)
+ 
+-SYSCONF-FLAGS := -D'SYSCONFDIR="$(sysconfdir)"'
+-CFLAGS-ldconfig.c = $(SYSCONF-FLAGS) -D'LIBDIR="$(libdir)"' \
++PREFIX-FLAGS := -D'PREFIX="$(prefix)"'
++CFLAGS-ldconfig.c = $(PREFIX-FLAGS) -D'LIBDIR="$(libdir)"' \
+ 		    -D'SLIBDIR="$(slibdir)"' -DIS_IN_ldconfig=1
+-CFLAGS-dl-cache.c = $(SYSCONF-FLAGS)
+-CFLAGS-cache.c = $(SYSCONF-FLAGS)
+-CFLAGS-rtld.c = $(SYSCONF-FLAGS)
++CFLAGS-dl-cache.c = $(PREFIX-FLAGS)
++CFLAGS-cache.c = $(PREFIX-FLAGS)
++CFLAGS-rtld.c = $(PREFIX-FLAGS)
+ 
+ CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\
+ 		     -DNOT_IN_libc=1 -DIS_IN_rtld=1 -DIN_LIB=rtld)
+diff -ru glibc-2.16.0-orig/sysdeps/generic/dl-cache.h glibc-2.16.0/sysdeps/generic/dl-cache.h
+--- glibc-2.16.0-orig/sysdeps/generic/dl-cache.h	2012-06-30 15:12:34.000000000 -0400
++++ glibc-2.16.0/sysdeps/generic/dl-cache.h	2012-09-18 11:59:27.465284809 -0400
+@@ -28,7 +28,7 @@
+ #endif
+ 
+ #ifndef LD_SO_CACHE
+-# define LD_SO_CACHE SYSCONFDIR "/ld.so.cache"
++# define LD_SO_CACHE PREFIX "/etc/ld.so.cache"
+ #endif
+ 
+ #ifndef add_system_dir
diff --git a/pkgs/development/libraries/glibc/2.17/glibc-crypt-blowfish.patch b/pkgs/development/libraries/glibc/2.17/glibc-crypt-blowfish.patch
new file mode 100644
index 000000000000..a0a8acdab63d
--- /dev/null
+++ b/pkgs/development/libraries/glibc/2.17/glibc-crypt-blowfish.patch
@@ -0,0 +1,795 @@
+From http://cvs.pld-linux.org/cgi-bin/viewvc.cgi/cvs/packages/glibc/glibc-crypt-blowfish.patch?revision=1.7&view=markup
+
+diff -ru -N glibc-2.17-orig/crypt/crypt_blowfish.c glibc-2.17/crypt/crypt_blowfish.c
+--- glibc-2.17-orig/crypt/crypt_blowfish.c	1970-01-01 01:00:00.000000000 +0100
++++ glibc-2.17/crypt/crypt_blowfish.c	2013-01-22 23:30:12.340353965 +0100
+@@ -0,0 +1,743 @@
++/*
++ * This code comes from John the Ripper password cracker, with reentrant
++ * and crypt(3) interfaces added, but optimizations specific to password
++ * cracking removed.
++ *
++ * Written by Solar Designer <solar at openwall.com> in 1998-2002 and
++ * placed in the public domain.
++ *
++ * There's absolutely no warranty.
++ *
++ * It is my intent that you should be able to use this on your system,
++ * as a part of a software package, or anywhere else to improve security,
++ * ensure compatibility, or for any other purpose. I would appreciate
++ * it if you give credit where it is due and keep your modifications in
++ * the public domain as well, but I don't require that in order to let
++ * you place this code and any modifications you make under a license
++ * of your choice.
++ *
++ * This implementation is compatible with OpenBSD bcrypt.c (version 2a)
++ * by Niels Provos <provos at citi.umich.edu>, and uses some of his
++ * ideas. The password hashing algorithm was designed by David Mazieres
++ * <dm at lcs.mit.edu>.
++ *
++ * There's a paper on the algorithm that explains its design decisions:
++ *
++ *	http://www.usenix.org/events/usenix99/provos.html
++ *
++ * Some of the tricks in BF_ROUND might be inspired by Eric Young's
++ * Blowfish library (I can't be sure if I would think of something if I
++ * hadn't seen his code).
++ */
++
++#include <string.h>
++
++#include <errno.h>
++#ifndef __set_errno
++#define __set_errno(val) errno = (val)
++#endif
++
++#undef __CONST
++#ifdef __GNUC__
++#define __CONST __const
++#else
++#define __CONST
++#endif
++
++#ifdef __i386__
++#define BF_ASM				0 /* original OW patch has 1 */
++#define BF_SCALE			1
++#elif defined(__alpha__) || defined(__hppa__) || defined(__x86_64__)
++#define BF_ASM				0
++#define BF_SCALE			1
++#else
++#define BF_ASM				0
++#define BF_SCALE			0
++#endif
++
++typedef unsigned int BF_word;
++
++/* Number of Blowfish rounds, this is also hardcoded into a few places */
++#define BF_N				16
++
++typedef BF_word BF_key[BF_N + 2];
++
++typedef struct {
++	BF_word S[4][0x100];
++	BF_key P;
++} BF_ctx;
++
++/*
++ * Magic IV for 64 Blowfish encryptions that we do at the end.
++ * The string is "OrpheanBeholderScryDoubt" on big-endian.
++ */
++static BF_word BF_magic_w[6] = {
++	0x4F727068, 0x65616E42, 0x65686F6C,
++	0x64657253, 0x63727944, 0x6F756274
++};
++
++/*
++ * P-box and S-box tables initialized with digits of Pi.
++ */
++static BF_ctx BF_init_state = {
++	{
++		{
++			0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7,
++			0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99,
++			0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16,
++			0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e,
++			0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee,
++			0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013,
++			0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef,
++			0x8e79dcb0, 0x603a180e, 0x6c9e0e8b, 0xb01e8a3e,
++			0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60,
++			0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440,
++			0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce,
++			0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a,
++			0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e,
++			0xafd6ba33, 0x6c24cf5c, 0x7a325381, 0x28958677,
++			0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193,
++			0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032,
++			0xef845d5d, 0xe98575b1, 0xdc262302, 0xeb651b88,
++			0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239,
++			0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e,
++			0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0,
++			0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3,
++			0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98,
++			0xa1f1651d, 0x39af0176, 0x66ca593e, 0x82430e88,
++			0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe,
++			0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6,
++			0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d,
++			0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b,
++			0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7,
++			0xe3fe501a, 0xb6794c3b, 0x976ce0bd, 0x04c006ba,
++			0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463,
++			0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f,
++			0x6dfc511f, 0x9b30952c, 0xcc814544, 0xaf5ebd09,
++			0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3,
++			0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb,
++			0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279,
++			0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8,
++			0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab,
++			0x323db5fa, 0xfd238760, 0x53317b48, 0x3e00df82,
++			0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db,
++			0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573,
++			0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0,
++			0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b,
++			0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790,
++			0xe1ddf2da, 0xa4cb7e33, 0x62fb1341, 0xcee4c6e8,
++			0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4,
++			0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0,
++			0xd08ed1d0, 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7,
++			0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c,
++			0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad,
++			0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1,
++			0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299,
++			0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9,
++			0x165fa266, 0x80957705, 0x93cc7314, 0x211a1477,
++			0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf,
++			0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49,
++			0x00250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af,
++			0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa,
++			0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5,
++			0x83260376, 0x6295cfa9, 0x11c81968, 0x4e734a41,
++			0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915,
++			0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400,
++			0x08ba6fb5, 0x571be91f, 0xf296ec6b, 0x2a0dd915,
++			0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664,
++			0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a
++		}, {
++			0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623,
++			0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266,
++			0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1,
++			0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e,
++			0x3f54989a, 0x5b429d65, 0x6b8fe4d6, 0x99f73fd6,
++			0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1,
++			0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e,
++			0x09686b3f, 0x3ebaefc9, 0x3c971814, 0x6b6a70a1,
++			0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737,
++			0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8,
++			0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x0200b3ff,
++			0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd,
++			0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701,
++			0x3ae5e581, 0x37c2dadc, 0xc8b57634, 0x9af3dda7,
++			0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41,
++			0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331,
++			0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf,
++			0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af,
++			0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e,
++			0x5512721f, 0x2e6b7124, 0x501adde6, 0x9f84cd87,
++			0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c,
++			0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2,
++			0xef1c1847, 0x3215d908, 0xdd433b37, 0x24c2ba16,
++			0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd,
++			0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b,
++			0x043556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509,
++			0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e,
++			0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3,
++			0x771fe71c, 0x4e3d06fa, 0x2965dcb9, 0x99e71d0f,
++			0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a,
++			0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4,
++			0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960,
++			0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66,
++			0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28,
++			0xc332ddef, 0xbe6c5aa5, 0x65582185, 0x68ab9802,
++			0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84,
++			0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510,
++			0x13cca830, 0xeb61bd96, 0x0334fe1e, 0xaa0363cf,
++			0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14,
++			0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e,
++			0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50,
++			0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7,
++			0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8,
++			0xf837889a, 0x97e32d77, 0x11ed935f, 0x16681281,
++			0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99,
++			0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696,
++			0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128,
++			0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73,
++			0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0,
++			0x45eee2b6, 0xa3aaabea, 0xdb6c4f15, 0xfacb4fd0,
++			0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105,
++			0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250,
++			0xcf62a1f2, 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3,
++			0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285,
++			0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00,
++			0x58428d2a, 0x0c55f5ea, 0x1dadf43e, 0x233f7061,
++			0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb,
++			0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e,
++			0xa6078084, 0x19f8509e, 0xe8efd855, 0x61d99735,
++			0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc,
++			0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9,
++			0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340,
++			0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20,
++			0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7
++		}, {
++			0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934,
++			0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068,
++			0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af,
++			0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840,
++			0x4d95fc1d, 0x96b591af, 0x70f4ddd3, 0x66a02f45,
++			0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504,
++			0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a,
++			0x28507825, 0x530429f4, 0x0a2c86da, 0xe9b66dfb,
++			0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee,
++			0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6,
++			0xaace1e7c, 0xd3375fec, 0xce78a399, 0x406b2a42,
++			0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b,
++			0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2,
++			0x3a6efa74, 0xdd5b4332, 0x6841e7f7, 0xca7820fb,
++			0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527,
++			0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b,
++			0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33,
++			0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c,
++			0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3,
++			0x95c11548, 0xe4c66d22, 0x48c1133f, 0xc70f86dc,
++			0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17,
++			0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564,
++			0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b,
++			0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115,
++			0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922,
++			0x85b2a20e, 0xe6ba0d99, 0xde720c8c, 0x2da2f728,
++			0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0,
++			0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e,
++			0x0a476341, 0x992eff74, 0x3a6f6eab, 0xf4f8fd37,
++			0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d,
++			0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804,
++			0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b,
++			0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3,
++			0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb,
++			0x37392eb3, 0xcc115979, 0x8026e297, 0xf42e312d,
++			0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c,
++			0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350,
++			0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9,
++			0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a,
++			0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe,
++			0x9dbc8057, 0xf0f7c086, 0x60787bf8, 0x6003604d,
++			0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc,
++			0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f,
++			0x77a057be, 0xbde8ae24, 0x55464299, 0xbf582e61,
++			0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2,
++			0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9,
++			0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2,
++			0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c,
++			0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e,
++			0xb77f19b6, 0xe0a9dc09, 0x662d09a1, 0xc4324633,
++			0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10,
++			0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169,
++			0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52,
++			0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027,
++			0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5,
++			0xf0177a28, 0xc0f586e0, 0x006058aa, 0x30dc7d62,
++			0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634,
++			0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76,
++			0x6f05e409, 0x4b7c0188, 0x39720a3d, 0x7c927c24,
++			0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc,
++			0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4,
++			0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c,
++			0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837,
++			0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0
++		}, {
++			0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b,
++			0x5cb0679e, 0x4fa33742, 0xd3822740, 0x99bc9bbe,
++			0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b,
++			0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4,
++			0x5748ab2f, 0xbc946e79, 0xc6a376d2, 0x6549c2c8,
++			0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6,
++			0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304,
++			0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22,
++			0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4,
++			0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6,
++			0x2826a2f9, 0xa73a3ae1, 0x4ba99586, 0xef5562e9,
++			0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59,
++			0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593,
++			0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x022b8b51,
++			0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28,
++			0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c,
++			0xe029ac71, 0xe019a5e6, 0x47b0acfd, 0xed93fa9b,
++			0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28,
++			0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c,
++			0x15056dd4, 0x88f46dba, 0x03a16125, 0x0564f0bd,
++			0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a,
++			0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319,
++			0x7533d928, 0xb155fdf5, 0x03563482, 0x8aba3cbb,
++			0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f,
++			0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991,
++			0xea7a90c2, 0xfb3e7bce, 0x5121ce64, 0x774fbe32,
++			0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680,
++			0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166,
++			0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae,
++			0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb,
++			0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5,
++			0x72eacea8, 0xfa6484bb, 0x8d6612ae, 0xbf3c6f47,
++			0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370,
++			0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d,
++			0x4040cb08, 0x4eb4e2cc, 0x34d2466a, 0x0115af84,
++			0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048,
++			0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8,
++			0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd,
++			0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9,
++			0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7,
++			0x1a908749, 0xd44fbd9a, 0xd0dadecb, 0xd50ada38,
++			0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f,
++			0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c,
++			0xbf97222c, 0x15e6fc2a, 0x0f91fc71, 0x9b941525,
++			0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1,
++			0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442,
++			0xe0ec6e0e, 0x1698db3b, 0x4c98a0be, 0x3278e964,
++			0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e,
++			0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8,
++			0xdf359f8d, 0x9b992f2e, 0xe60b6f47, 0x0fe3f11d,
++			0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f,
++			0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299,
++			0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02,
++			0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc,
++			0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614,
++			0xe6c6c7bd, 0x327a140a, 0x45e1d006, 0xc3f27b9a,
++			0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6,
++			0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b,
++			0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0,
++			0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060,
++			0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e,
++			0x1948c25c, 0x02fb8a8c, 0x01c36ae4, 0xd6ebe1f9,
++			0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f,
++			0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6
++		}
++	}, {
++		0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344,
++		0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89,
++		0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,
++		0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917,
++		0x9216d5d9, 0x8979fb1b
++	}
++};
++
++static unsigned char BF_itoa64[64 + 1] =
++	"./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
++
++static unsigned char BF_atoi64[0x60] = {
++	64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 0, 1,
++	54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 64, 64, 64, 64, 64,
++	64, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
++	17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 64, 64, 64, 64, 64,
++	64, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
++	43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 64, 64, 64, 64, 64
++};
++
++/*
++ * This may be optimized out if built with function inlining and no BF_ASM.
++ */
++static void clean(void *data, int size)
++{
++#if BF_ASM
++	extern void _BF_clean(void *data);
++#endif
++	memset(data, 0, size);
++#if BF_ASM
++	_BF_clean(data);
++#endif
++}
++
++#define BF_safe_atoi64(dst, src) \
++{ \
++	tmp = (unsigned char)(src); \
++	if ((unsigned int)(tmp -= 0x20) >= 0x60) return -1; \
++	tmp = BF_atoi64[tmp]; \
++	if (tmp > 63) return -1; \
++	(dst) = tmp; \
++}
++
++static int BF_decode(BF_word *dst, __CONST char *src, int size)
++{
++	unsigned char *dptr = (unsigned char *)dst;
++	unsigned char *end = dptr + size;
++	unsigned char *sptr = (unsigned char *)src;
++	unsigned int tmp, c1, c2, c3, c4;
++
++	do {
++		BF_safe_atoi64(c1, *sptr++);
++		BF_safe_atoi64(c2, *sptr++);
++		*dptr++ = (c1 << 2) | ((c2 & 0x30) >> 4);
++		if (dptr >= end) break;
++
++		BF_safe_atoi64(c3, *sptr++);
++		*dptr++ = ((c2 & 0x0F) << 4) | ((c3 & 0x3C) >> 2);
++		if (dptr >= end) break;
++
++		BF_safe_atoi64(c4, *sptr++);
++		*dptr++ = ((c3 & 0x03) << 6) | c4;
++	} while (dptr < end);
++
++	return 0;
++}
++
++static void BF_encode(char *dst, __CONST BF_word *src, int size)
++{
++	unsigned char *sptr = (unsigned char *)src;
++	unsigned char *end = sptr + size;
++	unsigned char *dptr = (unsigned char *)dst;
++	unsigned int c1, c2;
++
++	do {
++		c1 = *sptr++;
++		*dptr++ = BF_itoa64[c1 >> 2];
++		c1 = (c1 & 0x03) << 4;
++		if (sptr >= end) {
++			*dptr++ = BF_itoa64[c1];
++			break;
++		}
++
++		c2 = *sptr++;
++		c1 |= c2 >> 4;
++		*dptr++ = BF_itoa64[c1];
++		c1 = (c2 & 0x0f) << 2;
++		if (sptr >= end) {
++			*dptr++ = BF_itoa64[c1];
++			break;
++		}
++
++		c2 = *sptr++;
++		c1 |= c2 >> 6;
++		*dptr++ = BF_itoa64[c1];
++		*dptr++ = BF_itoa64[c2 & 0x3f];
++	} while (sptr < end);
++}
++
++static void BF_swap(BF_word *x, int count)
++{
++	static int endianness_check = 1;
++	char *is_little_endian = (char *)&endianness_check;
++	BF_word tmp;
++
++	if (*is_little_endian)
++	do {
++		tmp = *x;
++		tmp = (tmp << 16) | (tmp >> 16);
++		*x++ = ((tmp & 0x00FF00FF) << 8) | ((tmp >> 8) & 0x00FF00FF);
++	} while (--count);
++}
++
++#if BF_SCALE
++/* Architectures which can shift addresses left by 2 bits with no extra cost */
++#define BF_ROUND(L, R, N) \
++	tmp1 = L & 0xFF; \
++	tmp2 = L >> 8; \
++	tmp2 &= 0xFF; \
++	tmp3 = L >> 16; \
++	tmp3 &= 0xFF; \
++	tmp4 = L >> 24; \
++	tmp1 = data.ctx.S[3][tmp1]; \
++	tmp2 = data.ctx.S[2][tmp2]; \
++	tmp3 = data.ctx.S[1][tmp3]; \
++	tmp3 += data.ctx.S[0][tmp4]; \
++	tmp3 ^= tmp2; \
++	R ^= data.ctx.P[N + 1]; \
++	tmp3 += tmp1; \
++	R ^= tmp3;
++#else
++/* Architectures with no complicated addressing modes supported */
++#define BF_INDEX(S, i) \
++	(*((BF_word *)(((unsigned char *)S) + (i))))
++#define BF_ROUND(L, R, N) \
++	tmp1 = L & 0xFF; \
++	tmp1 <<= 2; \
++	tmp2 = L >> 6; \
++	tmp2 &= 0x3FC; \
++	tmp3 = L >> 14; \
++	tmp3 &= 0x3FC; \
++	tmp4 = L >> 22; \
++	tmp4 &= 0x3FC; \
++	tmp1 = BF_INDEX(data.ctx.S[3], tmp1); \
++	tmp2 = BF_INDEX(data.ctx.S[2], tmp2); \
++	tmp3 = BF_INDEX(data.ctx.S[1], tmp3); \
++	tmp3 += BF_INDEX(data.ctx.S[0], tmp4); \
++	tmp3 ^= tmp2; \
++	R ^= data.ctx.P[N + 1]; \
++	tmp3 += tmp1; \
++	R ^= tmp3;
++#endif
++
++/*
++ * Encrypt one block, BF_N is hardcoded here.
++ */
++#define BF_ENCRYPT \
++	L ^= data.ctx.P[0]; \
++	BF_ROUND(L, R, 0); \
++	BF_ROUND(R, L, 1); \
++	BF_ROUND(L, R, 2); \
++	BF_ROUND(R, L, 3); \
++	BF_ROUND(L, R, 4); \
++	BF_ROUND(R, L, 5); \
++	BF_ROUND(L, R, 6); \
++	BF_ROUND(R, L, 7); \
++	BF_ROUND(L, R, 8); \
++	BF_ROUND(R, L, 9); \
++	BF_ROUND(L, R, 10); \
++	BF_ROUND(R, L, 11); \
++	BF_ROUND(L, R, 12); \
++	BF_ROUND(R, L, 13); \
++	BF_ROUND(L, R, 14); \
++	BF_ROUND(R, L, 15); \
++	tmp4 = R; \
++	R = L; \
++	L = tmp4 ^ data.ctx.P[BF_N + 1];
++
++#if BF_ASM
++#define BF_body() \
++	_BF_body_r(&data.ctx);
++#else
++#define BF_body() \
++	L = R = 0; \
++	ptr = data.ctx.P; \
++	do { \
++		ptr += 2; \
++		BF_ENCRYPT; \
++		*(ptr - 2) = L; \
++		*(ptr - 1) = R; \
++	} while (ptr < &data.ctx.P[BF_N + 2]); \
++\
++	ptr = data.ctx.S[0]; \
++	do { \
++		ptr += 2; \
++		BF_ENCRYPT; \
++		*(ptr - 2) = L; \
++		*(ptr - 1) = R; \
++	} while (ptr < &data.ctx.S[3][0xFF]);
++#endif
++
++static void BF_set_key(__CONST char *key, BF_key expanded, BF_key initial)
++{
++	__CONST char *ptr = key;
++	int i, j;
++	BF_word tmp;
++
++	for (i = 0; i < BF_N + 2; i++) {
++		tmp = 0;
++		for (j = 0; j < 4; j++) {
++			tmp <<= 8;
++			tmp |= (unsigned char)*ptr;
++
++			if (!*ptr) ptr = key; else ptr++;
++		}
++
++		expanded[i] = tmp;
++		initial[i] = BF_init_state.P[i] ^ tmp;
++	}
++}
++
++char *_crypt_blowfish_rn(__CONST char *key, __CONST char *setting,
++	char *output, int size)
++{
++#if BF_ASM
++	extern void _BF_body_r(BF_ctx *ctx);
++#endif
++	struct {
++		BF_ctx ctx;
++		BF_key expanded_key;
++		union {
++			BF_word salt[4];
++			BF_word output[6];
++		} binary;
++	} data;
++	BF_word L, R;
++	BF_word tmp1, tmp2, tmp3, tmp4;
++	BF_word *ptr;
++	BF_word count;
++	int i;
++
++	if (size < 7 + 22 + 31 + 1) {
++		__set_errno(ERANGE);
++		return NULL;
++	}
++
++	if (setting[0] != '$' ||
++	    setting[1] != '2' ||
++	    setting[2] != 'a' ||
++	    setting[3] != '$' ||
++	    setting[4] < '0' || setting[4] > '3' ||
++	    setting[5] < '0' || setting[5] > '9' ||
++	    setting[6] != '$') {
++		__set_errno(EINVAL);
++		return NULL;
++	}
++
++	count = (BF_word)1 << ((setting[4] - '0') * 10 + (setting[5] - '0'));
++	if (count < 16 || BF_decode(data.binary.salt, &setting[7], 16)) {
++		clean(data.binary.salt, sizeof(data.binary.salt));
++		__set_errno(EINVAL);
++		return NULL;
++	}
++	BF_swap(data.binary.salt, 4);
++
++	BF_set_key(key, data.expanded_key, data.ctx.P);
++
++	memcpy(data.ctx.S, BF_init_state.S, sizeof(data.ctx.S));
++
++	L = R = 0;
++	for (i = 0; i < BF_N + 2; i += 2) {
++		L ^= data.binary.salt[i & 2];
++		R ^= data.binary.salt[(i & 2) + 1];
++		BF_ENCRYPT;
++		data.ctx.P[i] = L;
++		data.ctx.P[i + 1] = R;
++	}
++
++	ptr = data.ctx.S[0];
++	do {
++		ptr += 4;
++		L ^= data.binary.salt[(BF_N + 2) & 3];
++		R ^= data.binary.salt[(BF_N + 3) & 3];
++		BF_ENCRYPT;
++		*(ptr - 4) = L;
++		*(ptr - 3) = R;
++
++		L ^= data.binary.salt[(BF_N + 4) & 3];
++		R ^= data.binary.salt[(BF_N + 5) & 3];
++		BF_ENCRYPT;
++		*(ptr - 2) = L;
++		*(ptr - 1) = R;
++	} while (ptr < &data.ctx.S[3][0xFF]);
++
++	do {
++		data.ctx.P[0] ^= data.expanded_key[0];
++		data.ctx.P[1] ^= data.expanded_key[1];
++		data.ctx.P[2] ^= data.expanded_key[2];
++		data.ctx.P[3] ^= data.expanded_key[3];
++		data.ctx.P[4] ^= data.expanded_key[4];
++		data.ctx.P[5] ^= data.expanded_key[5];
++		data.ctx.P[6] ^= data.expanded_key[6];
++		data.ctx.P[7] ^= data.expanded_key[7];
++		data.ctx.P[8] ^= data.expanded_key[8];
++		data.ctx.P[9] ^= data.expanded_key[9];
++		data.ctx.P[10] ^= data.expanded_key[10];
++		data.ctx.P[11] ^= data.expanded_key[11];
++		data.ctx.P[12] ^= data.expanded_key[12];
++		data.ctx.P[13] ^= data.expanded_key[13];
++		data.ctx.P[14] ^= data.expanded_key[14];
++		data.ctx.P[15] ^= data.expanded_key[15];
++		data.ctx.P[16] ^= data.expanded_key[16];
++		data.ctx.P[17] ^= data.expanded_key[17];
++
++		BF_body();
++
++		tmp1 = data.binary.salt[0];
++		tmp2 = data.binary.salt[1];
++		tmp3 = data.binary.salt[2];
++		tmp4 = data.binary.salt[3];
++		data.ctx.P[0] ^= tmp1;
++		data.ctx.P[1] ^= tmp2;
++		data.ctx.P[2] ^= tmp3;
++		data.ctx.P[3] ^= tmp4;
++		data.ctx.P[4] ^= tmp1;
++		data.ctx.P[5] ^= tmp2;
++		data.ctx.P[6] ^= tmp3;
++		data.ctx.P[7] ^= tmp4;
++		data.ctx.P[8] ^= tmp1;
++		data.ctx.P[9] ^= tmp2;
++		data.ctx.P[10] ^= tmp3;
++		data.ctx.P[11] ^= tmp4;
++		data.ctx.P[12] ^= tmp1;
++		data.ctx.P[13] ^= tmp2;
++		data.ctx.P[14] ^= tmp3;
++		data.ctx.P[15] ^= tmp4;
++		data.ctx.P[16] ^= tmp1;
++		data.ctx.P[17] ^= tmp2;
++
++		BF_body();
++	} while (--count);
++
++	for (i = 0; i < 6; i += 2) {
++		L = BF_magic_w[i];
++		R = BF_magic_w[i + 1];
++
++		count = 64;
++		do {
++			BF_ENCRYPT;
++		} while (--count);
++
++		data.binary.output[i] = L;
++		data.binary.output[i + 1] = R;
++	}
++
++	memcpy(output, setting, 7 + 22 - 1);
++	output[7 + 22 - 1] = BF_itoa64[(int)
++		BF_atoi64[(int)setting[7 + 22 - 1] - 0x20] & 0x30];
++
++/* This has to be bug-compatible with the original implementation, so
++ * only encode 23 of the 24 bytes. :-) */
++	BF_swap(data.binary.output, 6);
++	BF_encode(&output[7 + 22], data.binary.output, 23);
++	output[7 + 22 + 31] = '\0';
++
++/* Overwrite the most obvious sensitive data we have on the stack. Note
++ * that this does not guarantee there's no sensitive data left on the
++ * stack and/or in registers; I'm not aware of portable code that does. */
++	clean(&data, sizeof(data));
++
++	return output;
++}
++
++char *_crypt_gensalt_blowfish_rn(unsigned long count,
++	__CONST char *input, int size, char *output, int output_size)
++{
++	if (size < 16 || output_size < 7 + 22 + 1 ||
++	    (count && (count < 4 || count > 31))) {
++		if (output_size > 0) output[0] = '\0';
++		__set_errno((output_size < 7 + 22 + 1) ? ERANGE : EINVAL);
++		return NULL;
++	}
++
++	if (!count) count = 5;
++
++	output[0] = '$';
++	output[1] = '2';
++	output[2] = 'a';
++	output[3] = '$';
++	output[4] = '0' + count / 10;
++	output[5] = '0' + count % 10;
++	output[6] = '$';
++
++	BF_encode(&output[7], (BF_word *)input, 16);
++	output[7 + 22] = '\0';
++
++	return output;
++}
+diff -ru -N glibc-2.17-orig/crypt/crypt-entry.c glibc-2.17/crypt/crypt-entry.c
+--- glibc-2.17-orig/crypt/crypt-entry.c	2012-12-25 04:02:13.000000000 +0100
++++ glibc-2.17/crypt/crypt-entry.c	2013-01-22 23:30:12.342353955 +0100
+@@ -61,6 +61,8 @@
+ extern char *__sha512_crypt_r (const char *key, const char *salt,
+ 			       char *buffer, int buflen);
+ extern char *__sha512_crypt (const char *key, const char *salt);
++extern char *_crypt_blowfish_rn (const char *key, const char *setting,
++				char *output, int size);
+ 
+ /* Define our magic string to mark salt for MD5 encryption
+    replacement.  This is meant to be the same as for other MD5 based
+@@ -73,6 +75,9 @@
+ /* Magic string for SHA512 encryption.  */
+ static const char sha512_salt_prefix[] = "$6$";
+ 
++/* Magic string for Blowfish encryption.  */
++static const char blowfish_salt_prefix[] = "$2a$";
++
+ /* For use by the old, non-reentrant routines (crypt/encrypt/setkey)  */
+ extern struct crypt_data _ufc_foobar;
+ 
+@@ -113,6 +118,11 @@
+   if (strncmp (sha512_salt_prefix, salt, sizeof (sha512_salt_prefix) - 1) == 0)
+     return __sha512_crypt_r (key, salt, (char *) data,
+ 			     sizeof (struct crypt_data));
++
++  /* Try to find out whether we have to use Blowfish encryption replacement.  */
++  if (strncmp (blowfish_salt_prefix, salt, sizeof (blowfish_salt_prefix) - 1) == 0)
++    return _crypt_blowfish_rn (key, salt, (char *) data,
++			     sizeof (struct crypt_data));
+ #endif
+ 
+   /*
+diff -ru -N glibc-2.17-orig/crypt/Makefile glibc-2.17/crypt/Makefile
+--- glibc-2.17-orig/crypt/Makefile	2012-12-25 04:02:13.000000000 +0100
++++ glibc-2.17/crypt/Makefile	2013-01-22 23:30:12.341353960 +0100
+@@ -26,7 +26,7 @@
+ extra-libs-others := $(extra-libs)
+ 
+ libcrypt-routines := crypt-entry md5-crypt sha256-crypt sha512-crypt crypt \
+-		     crypt_util
++		     crypt_util crypt_blowfish
+ 
+ tests := cert md5c-test sha256c-test sha512c-test badsalttest
+ 
diff --git a/pkgs/development/libraries/glibc/2.14/glibc-elf-localscope.patch b/pkgs/development/libraries/glibc/2.17/glibc-elf-localscope.patch
index 98f7f81087bb..98f7f81087bb 100644
--- a/pkgs/development/libraries/glibc/2.14/glibc-elf-localscope.patch
+++ b/pkgs/development/libraries/glibc/2.17/glibc-elf-localscope.patch
diff --git a/pkgs/development/libraries/glibc/2.17/glibc-rh739743.patch b/pkgs/development/libraries/glibc/2.17/glibc-rh739743.patch
new file mode 100644
index 000000000000..c390b772b16d
--- /dev/null
+++ b/pkgs/development/libraries/glibc/2.17/glibc-rh739743.patch
@@ -0,0 +1,55 @@
+2009-04-26  Aurelien Jarno  <aurelien@aurel32.net>
+
+	* sysdeps/posix/getaddrinfo.c (rfc3484_sort): don't assign native
+	result if the result has no associated interface.
+
+---
+ sysdeps/posix/getaddrinfo.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/sysdeps/posix/getaddrinfo.c
++++ b/sysdeps/posix/getaddrinfo.c
+@@ -1456,13 +1456,13 @@
+ 
+ 	      /* Fill in the results in all the records.  */
+ 	      for (int i = 0; i < src->nresults; ++i)
+-		if (src->results[i].index == a1_index)
++		if (a1_index != -1 && src->results[i].index == a1_index)
+ 		  {
+ 		    assert (src->results[i].native == -1
+ 			    || src->results[i].native == a1_native);
+ 		    src->results[i].native = a1_native;
+ 		  }
+-		else if (src->results[i].index == a2_index)
++		else if (a2_index != -1 && src->results[i].index == a2_index)
+ 		  {
+ 		    assert (src->results[i].native == -1
+ 			    || src->results[i].native == a2_native);
+
+2009-03-15  Aurelien Jarno  <aurelien@aurel32.net>
+
+	* sysdeps/posix/getaddrinfo.c (getaddrinfo): correctly detect 
+	interface for all 127.X.Y.Z addresses.
+
+---
+ sysdeps/posix/getaddrinfo.c |    9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+--- a/sysdeps/posix/getaddrinfo.c
++++ b/sysdeps/posix/getaddrinfo.c
+@@ -2265,7 +2265,14 @@
+ 			  tmp.addr[0] = 0;
+ 			  tmp.addr[1] = 0;
+ 			  tmp.addr[2] = htonl (0xffff);
+-			  tmp.addr[3] = sinp->sin_addr.s_addr;
++			  /* Special case for lo interface, the source address
++			     being possibly different than the interface 
++			     address. */
++			  if ((ntohl(sinp->sin_addr.s_addr) & 0xff000000)
++			      == 0x7f000000)
++			    tmp.addr[3] = htonl(0x7f000001);
++			  else
++			    tmp.addr[3] = sinp->sin_addr.s_addr;
+ 			}
+ 		      else
+ 			{
diff --git a/pkgs/development/libraries/glibc/2.17/info.nix b/pkgs/development/libraries/glibc/2.17/info.nix
new file mode 100644
index 000000000000..322f07f02363
--- /dev/null
+++ b/pkgs/development/libraries/glibc/2.17/info.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, texinfo, perl }:
+
+let build = import ./common.nix; in
+
+/* null cross builder */
+build null {
+  name = "glibc-info";
+
+  inherit fetchurl stdenv;
+
+  configureFlags = [ "--enable-add-ons" ];
+
+  buildInputs = [ texinfo perl ];
+
+  buildPhase = "make info";
+
+  # I don't know why the info is not generated in 'build'
+  # Somehow building the info still does not work, because the final
+  # libc.info hasn't a Top node.
+  installPhase = ''
+    mkdir -p "$out/share/info"
+    cp -v "../$sourceRoot/manual/"*.info* "$out/share/info"
+  '';
+
+  meta.description = "GNU Info manual of the GNU C Library";
+}
diff --git a/pkgs/development/libraries/glibc/2.14/locales-builder.sh b/pkgs/development/libraries/glibc/2.17/locales-builder.sh
index d732e208fa22..d732e208fa22 100644
--- a/pkgs/development/libraries/glibc/2.14/locales-builder.sh
+++ b/pkgs/development/libraries/glibc/2.17/locales-builder.sh
diff --git a/pkgs/development/libraries/glibc/2.14/locales.nix b/pkgs/development/libraries/glibc/2.17/locales.nix
index b7eae50ca385..b7eae50ca385 100644
--- a/pkgs/development/libraries/glibc/2.14/locales.nix
+++ b/pkgs/development/libraries/glibc/2.17/locales.nix
diff --git a/pkgs/development/libraries/glibc/2.14/nix-locale-archive.patch b/pkgs/development/libraries/glibc/2.17/nix-locale-archive.patch
index aca904f7ff44..88c8adef9226 100644
--- a/pkgs/development/libraries/glibc/2.14/nix-locale-archive.patch
+++ b/pkgs/development/libraries/glibc/2.17/nix-locale-archive.patch
@@ -1,8 +1,7 @@
-diff --git a/locale/loadarchive.c b/locale/loadarchive.c
-index d545f17..0d8638a 100644
---- a/locale/loadarchive.c
-+++ b/locale/loadarchive.c
-@@ -124,6 +124,25 @@ calculate_head_size (const struct locarhead *h)
+diff -ru glibc-2.16.0-orig/locale/loadarchive.c glibc-2.16.0/locale/loadarchive.c
+--- glibc-2.16.0-orig/locale/loadarchive.c	2012-06-30 15:12:34.000000000 -0400
++++ glibc-2.16.0/locale/loadarchive.c	2012-09-18 11:57:57.277515212 -0400
+@@ -123,6 +123,25 @@
  }
  
  
@@ -14,13 +13,13 @@ index d545f17..0d8638a 100644
 +  char *path2 = getenv ("LOCALE_ARCHIVE");
 +  const char *usualpath = "/usr/lib/locale/locale-archive";
 +  if (path)
-+    fd = open_not_cancel_2 (path, O_RDONLY|O_LARGEFILE);
++    fd = open_not_cancel_2 (path, O_RDONLY|O_LARGEFILE|O_CLOEXEC);
 +  if (path2 && fd < 0)
-+    fd = open_not_cancel_2 (path2, O_RDONLY|O_LARGEFILE);
++    fd = open_not_cancel_2 (path2, O_RDONLY|O_LARGEFILE|O_CLOEXEC);
 +  if (fd < 0)
-+    fd = open_not_cancel_2 (archfname, O_RDONLY|O_LARGEFILE);
++    fd = open_not_cancel_2 (archfname, O_RDONLY|O_LARGEFILE|O_CLOEXEC);
 +  if (fd < 0)
-+    fd = open_not_cancel_2 (usualpath, O_RDONLY|O_LARGEFILE);
++    fd = open_not_cancel_2 (usualpath, O_RDONLY|O_LARGEFILE|O_CLOEXEC);
 +  return fd;
 +}
 +
@@ -28,29 +27,29 @@ index d545f17..0d8638a 100644
  /* Find the locale *NAMEP in the locale archive, and return the
     internalized data structure for its CATEGORY data.  If this locale has
     already been loaded from the archive, just returns the existing data
-@@ -203,7 +222,7 @@ _nl_load_locale_from_archive (int category, const char **namep)
+@@ -202,7 +221,7 @@
        archmapped = &headmap;
  
        /* The archive has never been opened.  */
--      fd = open_not_cancel_2 (archfname, O_RDONLY|O_LARGEFILE);
+-      fd = open_not_cancel_2 (archfname, O_RDONLY|O_LARGEFILE|O_CLOEXEC);
 +      fd = open_locale_archive ();
        if (fd < 0)
  	/* Cannot open the archive, for whatever reason.  */
  	return NULL;
-@@ -394,7 +413,7 @@ _nl_load_locale_from_archive (int category, const char **namep)
+@@ -393,8 +412,7 @@
  	  if (fd == -1)
  	    {
  	      struct stat64 st;
--	      fd = open_not_cancel_2 (archfname, O_RDONLY|O_LARGEFILE);
+-	      fd = open_not_cancel_2 (archfname,
+-				      O_RDONLY|O_LARGEFILE|O_CLOEXEC);
 +	      fd = open_locale_archive ();
  	      if (fd == -1)
  		/* Cannot open the archive, for whatever reason.  */
  		return NULL;
-diff --git a/locale/programs/locale.c b/locale/programs/locale.c
-index 77262b7..fddc00d 100644
---- a/locale/programs/locale.c
-+++ b/locale/programs/locale.c
-@@ -628,6 +628,20 @@ nameentcmp (const void *a, const void *b)
+diff -ru glibc-2.16.0-orig/locale/programs/locale.c glibc-2.16.0/locale/programs/locale.c
+--- glibc-2.16.0-orig/locale/programs/locale.c	2012-06-30 15:12:34.000000000 -0400
++++ glibc-2.16.0/locale/programs/locale.c	2012-09-18 11:53:03.719920947 -0400
+@@ -628,6 +628,20 @@
  		  ((const struct nameent *) b)->name);
  }
  
@@ -71,7 +70,7 @@ index 77262b7..fddc00d 100644
  
  static int
  write_archive_locales (void **all_datap, char *linebuf)
-@@ -641,7 +658,7 @@ write_archive_locales (void **all_datap, char *linebuf)
+@@ -641,7 +655,7 @@
    int fd, ret = 0;
    uint32_t cnt;
  
@@ -80,11 +79,10 @@ index 77262b7..fddc00d 100644
    if (fd < 0)
      return 0;
  
-diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c
-index 85ba77d..3ad2af8 100644
---- a/locale/programs/locarchive.c
-+++ b/locale/programs/locarchive.c
-@@ -512,6 +512,20 @@ enlarge_archive (struct locarhandle *ah, const struct locarhead *head)
+diff -ru glibc-2.16.0-orig/locale/programs/locarchive.c glibc-2.16.0/locale/programs/locarchive.c
+--- glibc-2.16.0-orig/locale/programs/locarchive.c	2012-06-30 15:12:34.000000000 -0400
++++ glibc-2.16.0/locale/programs/locarchive.c	2012-09-18 11:53:03.720920942 -0400
+@@ -509,6 +509,20 @@
    *ah = new_ah;
  }
  
@@ -105,7 +103,7 @@ index 85ba77d..3ad2af8 100644
  
  void
  open_archive (struct locarhandle *ah, bool readonly)
-@@ -531,7 +548,7 @@ open_archive (struct locarhandle *ah, bool readonly)
+@@ -528,7 +542,7 @@
    while (1)
      {
        /* Open the archive.  We must have exclusive write access.  */
diff --git a/pkgs/development/libraries/glibc/2.17/rpcgen-path.patch b/pkgs/development/libraries/glibc/2.17/rpcgen-path.patch
new file mode 100644
index 000000000000..fd81ab5324e3
--- /dev/null
+++ b/pkgs/development/libraries/glibc/2.17/rpcgen-path.patch
@@ -0,0 +1,54 @@
+diff -ru glibc-2.17-orig/sunrpc/rpc_main.c glibc-2.17/sunrpc/rpc_main.c
+--- glibc-2.17-orig/sunrpc/rpc_main.c	2012-12-25 04:02:13.000000000 +0100
++++ glibc-2.17/sunrpc/rpc_main.c	2012-12-29 00:21:04.124698455 +0100
+@@ -77,7 +77,7 @@
+ 
+ static const char *svcclosetime = "120";
+ static int cppDefined;	/* explicit path for C preprocessor */
+-static const char *CPP = "/lib/cpp";
++static const char *CPP = "cpp";
+ static const char CPPFLAGS[] = "-C";
+ static char *pathbuf;
+ static int cpp_pid;
+@@ -106,7 +106,6 @@
+ static void open_output (const char *infile, const char *outfile);
+ static void add_warning (void);
+ static void clear_args (void);
+-static void find_cpp (void);
+ static void open_input (const char *infile, const char *define);
+ static int check_nettype (const char *name, const char *list_to_check[]);
+ static void c_output (const char *infile, const char *define,
+@@ -318,25 +317,6 @@
+   argcount = FIXEDARGS;
+ }
+ 
+-/* make sure that a CPP exists */
+-static void
+-find_cpp (void)
+-{
+-  struct stat buf;
+-
+-  if (stat (CPP, &buf) == 0)
+-    return;
+-
+-  if (cppDefined) /* user specified cpp but it does not exist */
+-    {
+-      fprintf (stderr, _ ("cannot find C preprocessor: %s\n"), CPP);
+-      crash ();
+-    }
+-
+-  /* fall back to system CPP */
+-  CPP = "cpp";
+-}
+-
+ /*
+  * Open input file with given define for C-preprocessor
+  */
+@@ -355,7 +335,6 @@
+   switch (cpp_pid)
+     {
+     case 0:
+-      find_cpp ();
+       putarg (0, CPP);
+       putarg (1, CPPFLAGS);
+       addarg (define);
diff --git a/pkgs/development/libraries/glibc/2.5/binutils-ld.patch b/pkgs/development/libraries/glibc/2.5/binutils-ld.patch
deleted file mode 100644
index 4cd7ab3cec34..000000000000
--- a/pkgs/development/libraries/glibc/2.5/binutils-ld.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 7c8a67320e26b8c11108bf0a3410d3aef9cf3486 Mon Sep 17 00:00:00 2001
-From: Ulrich Drepper <drepper@redhat.com>
-Date: Sat, 31 Jan 2009 00:21:15 +0000
-Subject: [PATCH] * elf/Makefile (ld.so): Adjust the sed script to insert _begin in to
-
-	newer linker scripts.
----
- ChangeLog    |    5 +++++
- elf/Makefile |    4 ++--
- 2 files changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/elf/Makefile b/elf/Makefile
-index 8079fe9..e44ff1d 100644
---- a/elf/Makefile
-+++ b/elf/Makefile
-@@ -304,7 +304,7 @@ $(objpfx)ld.so: $(objpfx)librtld.os $(ld-map)
- 		  $(LDFLAGS-rtld) -Wl,-z,defs -Wl,--verbose 2>&1 |	\
- 		  LC_ALL=C \
- 		  sed -e '/^=========/,/^=========/!d;/^=========/d'	\
--		      -e 's/\. = 0 + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \
-+		      -e 's/\. = .* + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \
- 		  > $@.lds
- 	$(LINK.o) -nostdlib -nostartfiles -shared -o $@			\
- 		  $(LDFLAGS-rtld) -Wl,-z,defs $(z-now-$(bind-now))	\
---
-1.6.4
-
diff --git a/pkgs/development/libraries/glibc/2.5/builder.sh b/pkgs/development/libraries/glibc/2.5/builder.sh
deleted file mode 100644
index bc80af83b926..000000000000
--- a/pkgs/development/libraries/glibc/2.5/builder.sh
+++ /dev/null
@@ -1,57 +0,0 @@
-# glibc cannot have itself in its rpath.
-export NIX_NO_SELF_RPATH=1
-
-source $stdenv/setup
-
-# Explicitly tell glibc to use our pwd, not /bin/pwd.
-export PWD_P=$(type -tP pwd)
-
-
-postUnpack() {
-    cd $sourceRoot/..
-}
-
-
-preConfigure() {
-
-    for i in configure io/ftwtest-sh; do
-        substituteInPlace "$i" \
-            --replace "@PWD@" "pwd"
-    done
-
-    # Fix shell code that tries to determine whether GNU ld is recent enough.
-    substituteInPlace configure --replace '2.1[3-9]*)' '2.1[3-9]*|2.[2-9][0-9]*)'
-
-    mkdir ../build
-    cd ../build
-
-    configureScript=../$sourceRoot/configure
-}
-
-
-postConfigure() {
-    # Hack: get rid of the `-static' flag set by the bootstrap stdenv.
-    # This has to be done *after* `configure' because it builds some
-    # test binaries.
-    export NIX_CFLAGS_LINK=
-    export NIX_LDFLAGS_BEFORE=
-    export NIX_DONT_SET_RPATH=1
-}
-
-
-postInstall() {
-    if test -n "$installLocales"; then
-        make -j${NIX_BUILD_CORES:-1} -l${NIX_BUILD_CORES:-1} localedata/install-locales
-    fi
-    rm $out/etc/ld.so.cache
-    (cd $out/include && ln -s $kernelHeaders/include/* .) || exit 1
-
-    # Fix for NIXOS-54 (ldd not working on x86_64).  Make a symlink
-    # "lib64" to "lib".
-    if test -n "$is64bit"; then
-        ln -s lib $out/lib64
-    fi
-}
-
-
-genericBuild
diff --git a/pkgs/development/libraries/glibc/2.5/default.nix b/pkgs/development/libraries/glibc/2.5/default.nix
deleted file mode 100644
index 8b8c204a4803..000000000000
--- a/pkgs/development/libraries/glibc/2.5/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ stdenv, fetchurl, kernelHeaders
-, installLocales ? true
-, profilingLibraries ? false
-}:
-
-stdenv.mkDerivation {
-  name = "glibc-2.5";
-  builder = ./builder.sh;
-
-  src = fetchurl {
-    url = http://ftp.gnu.org/gnu/glibc/glibc-2.5.tar.bz2;
-    md5 = "1fb29764a6a650a4d5b409dda227ac9f";
-  };
-
-  patches = [ ./glibc-pwd.patch ./glibc-getcwd-param-MAX.patch ./glibc-inline.patch
-              ./x86-fnstsw.patch ./binutils-ld.patch ./make-3-82-fix.patch ];
-
-  inherit kernelHeaders installLocales;
-
-  inherit (stdenv) is64bit;
-
-  configureFlags="--enable-add-ons
-    --with-headers=${kernelHeaders}/include
-    --disable-sanity-checks
-    ${if profilingLibraries then "--enable-profile" else "--disable-profile"}";
-
-  # Workaround for this bug:
-  #   http://sourceware.org/bugzilla/show_bug.cgi?id=411
-  # I.e. when gcc is compiled with --with-arch=i686, then the
-  # preprocessor symbol `__i686' will be defined to `1'.  This causes
-  # the symbol __i686.get_pc_thunk.dx to be mangled.
-  NIX_CFLAGS_COMPILE = "-U__i686";
-
-  enableParallelBuilding = true;
-
-  meta = {
-    homepage = http://www.gnu.org/software/libc/;
-    description = "The GNU C Library";
-  };
-}
diff --git a/pkgs/development/libraries/glibc/2.5/glibc-getcwd-param-MAX.patch b/pkgs/development/libraries/glibc/2.5/glibc-getcwd-param-MAX.patch
deleted file mode 100644
index 8543dbbf1d76..000000000000
--- a/pkgs/development/libraries/glibc/2.5/glibc-getcwd-param-MAX.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-2006-06-18  Mike Frysinger  <vapier@gentoo.org>
-
-	* sysdeps/unix/sysv/linux/getcwd.c: Include sys/param.h.
-
---- glibc-old/sysdeps/unix/sysv/linux/getcwd.c
-+++ glibc-new/sysdeps/unix/sysv/linux/getcwd.c
-@@ -24,6 +24,7 @@
- #include <limits.h>
- #include <stdlib.h>
- #include <unistd.h>
-+#include <sys/param.h>
- 
- #include <sysdep.h>
- #include <sys/syscall.h>
diff --git a/pkgs/development/libraries/glibc/2.5/glibc-inline.patch b/pkgs/development/libraries/glibc/2.5/glibc-inline.patch
deleted file mode 100644
index 19e400e0d50f..000000000000
--- a/pkgs/development/libraries/glibc/2.5/glibc-inline.patch
+++ /dev/null
@@ -1,1822 +0,0 @@
---- libc/mach/mach/mig_support.h.jj	2001-07-06 06:55:35.000000000 +0200
-+++ libc/mach/mach/mig_support.h	2006-11-07 11:18:32.000000000 +0100
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1993,94,97,99,2001 Free Software Foundation, Inc.
-+/* Copyright (C) 1993,94,97,99,2001,2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -67,12 +67,12 @@ extern void mig_reply_setup (const mach_
- /* Idiocy support function.  */
- extern vm_size_t mig_strncpy (char *__dst, const char *__src, vm_size_t __len);
- extern vm_size_t __mig_strncpy (char *__dst, const char *__src, vm_size_t);
--extern __inline vm_size_t
-+__extern_inline vm_size_t
- __mig_strncpy (char *__dst, const char *__src, vm_size_t __len)
- {
-   return __stpncpy (__dst, __src, __len) - __dst;
- }
--extern __inline vm_size_t
-+__extern_inline vm_size_t
- mig_strncpy (char *__dst, const char *__src, vm_size_t __len)
- {
-   return __mig_strncpy (__dst, __src, __len);
---- libc/mach/lock-intern.h.jj	2001-07-06 06:55:34.000000000 +0200
-+++ libc/mach/lock-intern.h	2006-11-06 21:05:34.000000000 +0100
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1994, 1996 Free Software Foundation, Inc.
-+/* Copyright (C) 1994, 1996, 2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -22,7 +22,7 @@
- #include <machine-lock.h>
- 
- #ifndef _EXTERN_INLINE
--#define _EXTERN_INLINE extern __inline
-+#define _EXTERN_INLINE __extern_inline
- #endif
- 
- 
---- libc/include/stdlib.h.jj	2006-01-14 13:08:56.000000000 +0100
-+++ libc/include/stdlib.h	2006-11-06 21:08:02.000000000 +0100
-@@ -139,43 +139,43 @@ libc_hidden_proto (____strtoll_l_interna
- libc_hidden_proto (____strtoul_l_internal)
- libc_hidden_proto (____strtoull_l_internal)
- 
--extern __inline double
-+__extern_inline double
- __NTH (__strtod_l (__const char *__restrict __nptr, char **__restrict __endptr,
- 		   __locale_t __loc))
- {
-   return ____strtod_l_internal (__nptr, __endptr, 0, __loc);
- }
--extern __inline long int
-+__extern_inline long int
- __NTH (__strtol_l (__const char *__restrict __nptr, char **__restrict __endptr,
- 		   int __base, __locale_t __loc))
- {
-   return ____strtol_l_internal (__nptr, __endptr, __base, 0, __loc);
- }
--extern __inline unsigned long int
-+__extern_inline unsigned long int
- __NTH (__strtoul_l (__const char *__restrict __nptr,
- 		    char **__restrict __endptr, int __base, __locale_t __loc))
- {
-   return ____strtoul_l_internal (__nptr, __endptr, __base, 0, __loc);
- }
--extern __inline float
-+__extern_inline float
- __NTH (__strtof_l (__const char *__restrict __nptr, char **__restrict __endptr,
- 		   __locale_t __loc))
- {
-   return ____strtof_l_internal (__nptr, __endptr, 0, __loc);
- }
--extern __inline long double
-+__extern_inline long double
- __NTH (__strtold_l (__const char *__restrict __nptr,
- 		    char **__restrict __endptr, __locale_t __loc))
- {
-   return ____strtold_l_internal (__nptr, __endptr, 0, __loc);
- }
--__extension__ extern __inline long long int
-+__extension__ __extern_inline long long int
- __NTH (__strtoll_l (__const char *__restrict __nptr,
- 		    char **__restrict __endptr, int __base, __locale_t __loc))
- {
-   return ____strtoll_l_internal (__nptr, __endptr, __base, 0, __loc);
- }
--__extension__ extern __inline unsigned long long int
-+__extension__ __extern_inline unsigned long long int
- __NTH (__strtoull_l (__const char * __restrict __nptr,
- 		     char **__restrict __endptr, int __base, __locale_t __loc))
- {
---- libc/include/ctype.h.jj	2004-03-16 11:09:04.000000000 +0100
-+++ libc/include/ctype.h	2006-11-06 21:06:24.000000000 +0100
-@@ -15,7 +15,7 @@ extern int __isctype (int __c, int __mas
- #  include <bits/libc-tsd.h>
- 
- #  ifndef CTYPE_EXTERN_INLINE	/* Used by ctype/ctype-info.c, which see.  */
--#   define CTYPE_EXTERN_INLINE extern inline
-+#   define CTYPE_EXTERN_INLINE __extern_inline
- #  endif
- 
- __libc_tsd_define (extern, CTYPE_B)
---- libc/include/sys/stat.h.jj	2006-02-12 22:29:08.000000000 +0100
-+++ libc/include/sys/stat.h	2006-11-06 21:07:01.000000000 +0100
-@@ -19,13 +19,13 @@ hidden_proto (__lxstat64)
- hidden_proto (__xstat)
- hidden_proto (__xstat64)
- #endif
--extern __inline__ int __stat (__const char *__path, struct stat *__statbuf)
-+__extern_inline int __stat (__const char *__path, struct stat *__statbuf)
- {
-   return __xstat (_STAT_VER, __path, __statbuf);
- }
- libc_hidden_proto (__xmknod)
--extern __inline__ int __mknod (__const char *__path, __mode_t __mode,
--			       __dev_t __dev)
-+__extern_inline int __mknod (__const char *__path, __mode_t __mode,
-+			     __dev_t __dev)
- {
-   return __xmknod (_MKNOD_VER, __path, __mode, &__dev);
- }
---- libc/stdlib/stdlib.h.jj	2006-10-31 23:05:34.000000000 +0100
-+++ libc/stdlib/stdlib.h	2006-11-06 21:16:09.000000000 +0100
-@@ -324,18 +324,18 @@ extern unsigned long long int __strtoull
- /* Define inline functions which call the internal entry points.  */
- 
- __BEGIN_NAMESPACE_STD
--extern __inline double
-+__extern_inline double
- __NTH (strtod (__const char *__restrict __nptr, char **__restrict __endptr))
- {
-   return __strtod_internal (__nptr, __endptr, 0);
- }
--extern __inline long int
-+__extern_inline long int
- __NTH (strtol (__const char *__restrict __nptr, char **__restrict __endptr,
- 	       int __base))
- {
-   return __strtol_internal (__nptr, __endptr, __base, 0);
- }
--extern __inline unsigned long int
-+__extern_inline unsigned long int
- __NTH (strtoul (__const char *__restrict __nptr, char **__restrict __endptr,
- 		int __base))
- {
-@@ -345,13 +345,13 @@ __END_NAMESPACE_STD
- 
- # ifdef __USE_ISOC99
- __BEGIN_NAMESPACE_C99
--extern __inline float
-+__extern_inline float
- __NTH (strtof (__const char *__restrict __nptr, char **__restrict __endptr))
- {
-   return __strtof_internal (__nptr, __endptr, 0);
- }
- #  ifndef __LDBL_COMPAT
--extern __inline long double
-+__extern_inline long double
- __NTH (strtold (__const char *__restrict __nptr, char **__restrict __endptr))
- {
-   return __strtold_internal (__nptr, __endptr, 0);
-@@ -361,13 +361,13 @@ __END_NAMESPACE_C99
- # endif
- 
- # ifdef __USE_BSD
--__extension__ extern __inline long long int
-+__extension__ __extern_inline long long int
- __NTH (strtoq (__const char *__restrict __nptr, char **__restrict __endptr,
- 	       int __base))
- {
-   return __strtoll_internal (__nptr, __endptr, __base, 0);
- }
--__extension__ extern __inline unsigned long long int
-+__extension__ __extern_inline unsigned long long int
- __NTH (strtouq (__const char *__restrict __nptr, char **__restrict __endptr,
- 		int __base))
- {
-@@ -377,13 +377,13 @@ __NTH (strtouq (__const char *__restrict
- 
- # if defined __USE_MISC || defined __USE_ISOC99
- __BEGIN_NAMESPACE_C99
--__extension__ extern __inline long long int
-+__extension__ __extern_inline long long int
- __NTH (strtoll (__const char *__restrict __nptr, char **__restrict __endptr,
- 		int __base))
- {
-   return __strtoll_internal (__nptr, __endptr, __base, 0);
- }
--__extension__ extern __inline unsigned long long int
-+__extension__ __extern_inline unsigned long long int
- __NTH (strtoull (__const char * __restrict __nptr, char **__restrict __endptr,
- 		 int __base))
- {
-@@ -393,17 +393,17 @@ __END_NAMESPACE_C99
- # endif
- 
- __BEGIN_NAMESPACE_STD
--extern __inline double
-+__extern_inline double
- __NTH (atof (__const char *__nptr))
- {
-   return strtod (__nptr, (char **) NULL);
- }
--extern __inline int
-+__extern_inline int
- __NTH (atoi (__const char *__nptr))
- {
-   return (int) strtol (__nptr, (char **) NULL, 10);
- }
--extern __inline long int
-+__extern_inline long int
- __NTH (atol (__const char *__nptr))
- {
-   return strtol (__nptr, (char **) NULL, 10);
-@@ -412,7 +412,7 @@ __END_NAMESPACE_STD
- 
- # if defined __USE_MISC || defined __USE_ISOC99
- __BEGIN_NAMESPACE_C99
--__extension__ extern __inline long long int
-+__extension__ __extern_inline long long int
- __NTH (atoll (__const char *__nptr))
- {
-   return strtoll (__nptr, (char **) NULL, 10);
---- libc/stdlib/bits/stdlib.h.jj	2005-08-22 17:06:07.000000000 +0200
-+++ libc/stdlib/bits/stdlib.h	2006-11-07 11:18:39.000000000 +0100
-@@ -1,5 +1,5 @@
- /* Checking macros for stdlib functions.
--   Copyright (C) 2005 Free Software Foundation, Inc.
-+   Copyright (C) 2005, 2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -28,7 +28,7 @@ extern char *__REDIRECT_NTH (__realpath_
- 			     (__const char *__restrict __name,
- 			      char *__restrict __resolved), realpath) __wur;
- 
--extern __always_inline __wur char *
-+__extern_always_inline __wur char *
- __NTH (realpath (__const char *__restrict __name, char *__restrict __resolved))
- {
-   if (__bos (__resolved) != (size_t) -1)
-@@ -44,7 +44,7 @@ extern int __REDIRECT_NTH (__ptsname_r_a
- 					       size_t __buflen), ptsname_r)
-      __nonnull ((2));
- 
--extern __always_inline int
-+__extern_always_inline int
- __NTH (ptsname_r (int __fd, char *__buf, size_t __buflen))
- {
-   if (__bos (__buf) != (size_t) -1
-@@ -59,7 +59,7 @@ extern int __wctomb_chk (char *__s, wcha
- extern int __REDIRECT_NTH (__wctomb_alias, (char *__s, wchar_t __wchar),
- 			   wctomb) __wur;
- 
--extern __always_inline __wur int
-+__extern_always_inline __wur int
- __NTH (wctomb (char *__s, wchar_t __wchar))
- {
-   /* We would have to include <limits.h> to get a definition of MB_LEN_MAX.
-@@ -83,7 +83,7 @@ extern size_t __REDIRECT_NTH (__mbstowcs
- 			       __const char *__restrict __src,
- 			       size_t __len), mbstowcs);
- 
--extern __always_inline size_t
-+__extern_always_inline size_t
- __NTH (mbstowcs (wchar_t *__restrict __dst, __const char *__restrict __src,
- 		 size_t __len))
- {
-@@ -104,7 +104,7 @@ extern size_t __REDIRECT_NTH (__wcstombs
- 			       __const wchar_t *__restrict __src,
- 			       size_t __len), wcstombs);
- 
--extern __always_inline size_t
-+__extern_always_inline size_t
- __NTH (wcstombs (char *__restrict __dst, __const wchar_t *__restrict __src,
- 		 size_t __len))
- {
-     --- libc/stdlib/gmp.h.jj	2002-08-27 00:39:44.000000000 +0200
-+++ libc/stdlib/gmp.h	2006-11-07 15:02:06.000000000 +0100
-@@ -1,6 +1,6 @@
- /* gmp.h -- Definitions for GNU multiple precision functions.
- 
--Copyright (C) 1991, 1993, 1994, 1995, 1996 Free Software Foundation, Inc.
-+Copyright (C) 1991, 1993, 1994, 1995, 1996, 2006 Free Software Foundation, Inc.
- 
- This file is part of the GNU MP Library.
- 
-@@ -21,6 +21,8 @@ MA 02111-1307, USA. */
- 
- #ifndef __GMP_H__
- 
-+#include <features.h>
-+
- #ifndef __GNU_MP__
- #define __GNU_MP__ 2
- #define __need_size_t
-@@ -41,7 +43,7 @@ MA 02111-1307, USA. */
- 
- #ifndef _EXTERN_INLINE
- #ifdef __GNUC__
--#define _EXTERN_INLINE extern __inline__
-+#define _EXTERN_INLINE __extern_inline
- #else
- #define _EXTERN_INLINE static
- #endif
---- libc/ctype/ctype.h.jj	2004-09-08 00:23:45.000000000 +0200
-+++ libc/ctype/ctype.h	2006-11-07 11:18:56.000000000 +0100
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1991,92,93,95,96,97,98,99,2001,2002,2004
-+/* Copyright (C) 1991,92,93,95,96,97,98,99,2001,2002,2004,2006
-    	Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-@@ -187,13 +187,13 @@ __exctype (_tolower);
- # endif
- 
- # ifdef __USE_EXTERN_INLINES
--extern __inline int
-+__extern_inline int
- __NTH (tolower (int __c))
- {
-   return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c;
- }
- 
--extern __inline int
-+__extern_inline int
- __NTH (toupper (int __c))
- {
-   return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c;
---- libc/nptl/sysdeps/pthread/bits/libc-lock.h.jj	2006-10-24 10:14:03.000000000 +0200
-+++ libc/nptl/sysdeps/pthread/bits/libc-lock.h	2006-11-07 10:45:52.000000000 +0100
-@@ -1,5 +1,6 @@
- /* libc-internal interface for mutex locks.  NPTL version.
--   Copyright (C) 1996-2001, 2002, 2003, 2005 Free Software Foundation, Inc.
-+   Copyright (C) 1996-2001, 2002, 2003, 2005, 2006
-+   Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -408,7 +409,7 @@ extern void _pthread_cleanup_pop_restore
- 
- 
- /* Normal cleanup handling, based on C cleanup attribute.  */
--extern __inline void
-+__extern_inline void
- __libc_cleanup_routine (struct __pthread_cleanup_frame *f)
- {
-   if (f->__do_it)
---- libc/nptl/sysdeps/pthread/pthread.h.jj	2006-06-05 01:59:07.000000000 +0200
-+++ libc/nptl/sysdeps/pthread/pthread.h	2006-11-07 10:49:27.000000000 +0100
-@@ -572,7 +572,7 @@ class __pthread_cleanup_class
-    function the compiler is free to decide inlining the change when
-    needed or fall back on the copy which must exist somewhere
-    else.  */
--extern __inline void
-+__extern_inline void
- __pthread_cleanup_routine (struct __pthread_cleanup_frame *__frame)
- {
-   if (__frame->__do_it)
-@@ -1103,7 +1103,7 @@ extern int pthread_atfork (void (*__prep
- 
- #ifdef __USE_EXTERN_INLINES
- /* Optimizations.  */
--extern __inline int
-+__extern_inline int
- __NTH (pthread_equal (pthread_t __thread1, pthread_t __thread2))
- {
-   return __thread1 == __thread2;
---- libc/nptl/sysdeps/pthread/allocalim.h.jj	2006-05-02 08:16:07.000000000 +0200
-+++ libc/nptl/sysdeps/pthread/allocalim.h	2006-11-07 10:46:28.000000000 +0100
-@@ -21,8 +21,7 @@
- #include <limits.h>
- 
- 
--extern int
--__always_inline
-+__extern_always_inline int
- __libc_use_alloca (size_t size)
- {
-   return (__builtin_expect (size <= PTHREAD_STACK_MIN / 4, 1)
---- libc/nptl/sysdeps/pthread/gai_misc.h.jj	2006-09-05 17:23:12.000000000 +0200
-+++ libc/nptl/sysdeps/pthread/gai_misc.h	2006-11-06 21:17:39.000000000 +0100
-@@ -76,7 +76,7 @@
- #define gai_start_notify_thread __gai_start_notify_thread
- #define gai_create_helper_thread __gai_create_helper_thread
- 
--extern inline void
-+__extern_inline void
- __gai_start_notify_thread (void)
- {
-   sigset_t ss;
-@@ -85,7 +85,7 @@ __gai_start_notify_thread (void)
-   INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, &ss, NULL, _NSIG / 8);
- }
- 
--extern inline int
-+__extern_inline int
- __gai_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
- 			    void *arg)
- {
---- libc/nptl/sysdeps/unix/sysv/linux/aio_misc.h.jj	2006-03-02 18:32:45.000000000 +0100
-+++ libc/nptl/sysdeps/unix/sysv/linux/aio_misc.h	2006-11-06 21:18:34.000000000 +0100
-@@ -27,7 +27,7 @@
- # define aio_start_notify_thread __aio_start_notify_thread
- # define aio_create_helper_thread __aio_create_helper_thread
- 
--extern inline void
-+__extern_inline void
- __aio_start_notify_thread (void)
- {
-   sigset_t ss;
-@@ -36,7 +36,7 @@ __aio_start_notify_thread (void)
-   INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, &ss, NULL, _NSIG / 8);
- }
- 
--extern inline int
-+__extern_inline int
- __aio_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
- 			    void *arg)
- {
---- libc/resolv/gai_misc.c.jj	2006-08-03 10:01:53.000000000 +0200
-+++ libc/resolv/gai_misc.c	2006-11-07 10:49:55.000000000 +0100
-@@ -30,7 +30,7 @@
- #ifndef gai_create_helper_thread
- # define gai_create_helper_thread __gai_create_helper_thread
- 
--extern inline int
-+__extern_inline int
- __gai_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
- 			    void *arg)
- {
---- libc/bits/mathinline.h.jj	1997-10-13 05:53:18.000000000 +0200
-+++ libc/bits/mathinline.h	2006-11-07 10:51:05.000000000 +0100
-@@ -1,6 +1,6 @@
- /* This file should provide inline versions of math functions.
- 
--   Surround GCC-specific parts with #ifdef __GNUC__, and use `extern __inline'.
-+   Surround GCC-specific parts with #ifdef __GNUC__, and use `__extern_inline'.
- 
-    This file should define __MATH_INLINES if functions are actually defined as
-    inlines.  */
---- libc/bits/string.h.jj	1997-10-13 05:53:19.000000000 +0200
-+++ libc/bits/string.h	2006-11-07 10:50:54.000000000 +0100
-@@ -1,6 +1,6 @@
- /* This file should provide inline versions of string functions.
- 
--   Surround GCC-specific parts with #ifdef __GNUC__, and use `extern __inline'.
-+   Surround GCC-specific parts with #ifdef __GNUC__, and use `__extern_inline'.
- 
-    This file should define __STRING_INLINES if functions are actually defined
-    as inlines.  */
---- libc/bits/sigset.h.jj	2001-07-06 06:55:50.000000000 +0200
-+++ libc/bits/sigset.h	2006-11-07 11:19:08.000000000 +0100
-@@ -1,5 +1,6 @@
- /* __sig_atomic_t, __sigset_t, and related definitions.  Generic/BSD version.
--   Copyright (C) 1991, 1992, 1994, 1996, 1997 Free Software Foundation, Inc.
-+   Copyright (C) 1991, 1992, 1994, 1996, 1997, 2006
-+   Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -38,7 +39,7 @@ typedef unsigned long int __sigset_t;
- #define _SIGSET_H_fns 1
- 
- #ifndef _EXTERN_INLINE
--# define _EXTERN_INLINE extern __inline
-+# define _EXTERN_INLINE __extern_inline
- #endif
- 
- /* Return a mask that includes SIG only.  The cast to `sigset_t' avoids
---- libc/misc/sys/cdefs.h.jj	2006-01-14 21:14:36.000000000 +0100
-+++ libc/misc/sys/cdefs.h	2006-11-06 21:00:45.000000000 +0100
-@@ -279,6 +279,18 @@
- # define __always_inline __inline
- #endif
- 
-+/* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
-+   inline semantics.  */
-+#if __GNUC_PREREQ (4,3) && defined (__STDC_VERSION__) \
-+    && __STDC_VERSION__ >= 199901L
-+# define __extern_inline extern __inline __attribute__ ((__gnu_inline__))
-+# define __extern_always_inline \
-+  extern __always_inline __inline __attribute__ ((__gnu_inline__))
-+#else
-+# define __extern_inline extern __inline
-+# define __extern_always_inline extern __always_inline
-+#endif
-+
- /* It is possible to compile containing GCC extensions even if GCC is
-    run in pedantic mode if the uses are carefully marked using the
-    `__extension__' keyword.  But this is not generally available before
---- libc/libio/bits/stdio.h.jj	2004-09-08 00:23:44.000000000 +0200
-+++ libc/libio/bits/stdio.h	2006-11-06 21:23:07.000000000 +0100
-@@ -1,5 +1,5 @@
- /* Optimizing macros and inline functions for stdio functions.
--   Copyright (C) 1998, 2000, 2001, 2004 Free Software Foundation, Inc.
-+   Copyright (C) 1998, 2000, 2001, 2004, 2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -24,7 +24,7 @@
- #ifdef __cplusplus
- # define __STDIO_INLINE inline
- #else
--# define __STDIO_INLINE extern __inline
-+# define __STDIO_INLINE __extern_inline
- #endif
- 
- 
---- libc/libio/bits/stdio2.h.jj	2005-03-19 01:14:58.000000000 +0100
-+++ libc/libio/bits/stdio2.h	2006-11-06 21:22:33.000000000 +0100
-@@ -1,5 +1,5 @@
- /* Checking macros for stdio functions.
--   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
-+   Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -75,7 +75,7 @@ extern int __vprintf_chk (int __flag, __
- extern char *__gets_chk (char *__str, size_t) __wur;
- extern char *__REDIRECT (__gets_alias, (char *__str), gets) __wur;
- 
--extern __always_inline __wur char *
-+__extern_always_inline __wur char *
- gets (char *__str)
- {
-   if (__bos (__str) != (size_t) -1)
-@@ -89,7 +89,7 @@ extern char *__REDIRECT (__fgets_alias,
- 			 (char *__restrict __s, int __n,
- 			  FILE *__restrict __stream), fgets) __wur;
- 
--extern __always_inline __wur char *
-+__extern_always_inline __wur char *
- fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
- {
-   if (__bos (__s) != (size_t) -1
-@@ -105,7 +105,7 @@ extern char *__REDIRECT (__fgets_unlocke
- 			 (char *__restrict __s, int __n,
- 			  FILE *__restrict __stream), fgets_unlocked) __wur;
- 
--extern __always_inline __wur char *
-+__extern_always_inline __wur char *
- fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream)
- {
-   if (__bos (__s) != (size_t) -1
---- libc/argp/argp.h.jj	2006-04-22 17:08:26.000000000 +0200
-+++ libc/argp/argp.h	2006-11-06 21:24:08.000000000 +0100
-@@ -558,7 +558,7 @@ extern void *__argp_input (__const struc
- # endif
- 
- # ifndef ARGP_EI
--#  define ARGP_EI extern __inline__
-+#  define ARGP_EI __extern_inline
- # endif
- 
- ARGP_EI void
---- libc/argp/argp-fmtstream.h.jj	2005-09-27 23:45:41.000000000 +0200
-+++ libc/argp/argp-fmtstream.h	2006-11-07 11:19:12.000000000 +0100
-@@ -1,5 +1,5 @@
- /* Word-wrapping and line-truncating streams.
--   Copyright (C) 1997 Free Software Foundation, Inc.
-+   Copyright (C) 1997, 2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    Written by Miles Bader <miles@gnu.ai.mit.edu>.
- 
-@@ -203,7 +203,7 @@ extern int __argp_fmtstream_ensure (argp
- #endif
- 
- #ifndef ARGP_FS_EI
--#define ARGP_FS_EI extern inline
-+#define ARGP_FS_EI __extern_inline
- #endif
- 
- ARGP_FS_EI size_t
---- libc/locale/programs/locfile.c.jj	2006-05-10 04:12:39.000000000 +0200
-+++ libc/locale/programs/locfile.c	2006-11-07 15:13:20.000000000 +0100
-@@ -33,6 +33,11 @@
- #include "locfile.h"
- #include "simple-hash.h"
- 
-+/* This prototype is needed to export locfile_hash from this object
-+   when using ISO C99 inline semantics.  */
-+struct keyword_t;
-+const struct keyword_t *locfile_hash (const char *str, unsigned int len);
-+
- #include "locfile-kw.h"
- 
- 
---- libc/locale/programs/charmap.c.jj	2006-08-19 19:50:52.000000000 +0200
-+++ libc/locale/programs/charmap.c	2006-11-07 15:11:05.000000000 +0100
-@@ -35,6 +35,10 @@
- 
- #include <assert.h>
- 
-+/* This prototype is needed to export charmap_hash from this object
-+   when using ISO C99 inline semantics.  */
-+struct keyword_t;
-+const struct keyword_t *charmap_hash (const char *str, unsigned int len);
- 
- /* Define the lookup function.  */
- #include "charmap-kw.h"
---- libc/io/sys/stat.h.jj	2006-01-06 13:14:05.000000000 +0100
-+++ libc/io/sys/stat.h	2006-11-06 21:27:03.000000000 +0100
-@@ -430,28 +430,28 @@ extern int __xmknodat (int __ver, int __
- #if defined __GNUC__ && __GNUC__ >= 2
- /* Inlined versions of the real stat and mknod functions.  */
- 
--extern __inline__ int
-+__extern_inline int
- __NTH (stat (__const char *__path, struct stat *__statbuf))
- {
-   return __xstat (_STAT_VER, __path, __statbuf);
- }
- 
- # if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
--extern __inline__ int
-+__extern_inline int
- __NTH (lstat (__const char *__path, struct stat *__statbuf))
- {
-   return __lxstat (_STAT_VER, __path, __statbuf);
- }
- # endif
- 
--extern __inline__ int
-+__extern_inline int
- __NTH (fstat (int __fd, struct stat *__statbuf))
- {
-   return __fxstat (_STAT_VER, __fd, __statbuf);
- }
- 
- # ifdef __USE_ATFILE
--extern __inline__ int
-+__extern_inline int
- __NTH (fstatat (int __fd, __const char *__filename, struct stat *__statbuf,
- 		int __flag))
- {
-@@ -460,7 +460,7 @@ __NTH (fstatat (int __fd, __const char *
- # endif
- 
- # if defined __USE_MISC || defined __USE_BSD
--extern __inline__ int
-+__extern_inline int
- __NTH (mknod (__const char *__path, __mode_t __mode, __dev_t __dev))
- {
-   return __xmknod (_MKNOD_VER, __path, __mode, &__dev);
-@@ -468,7 +468,7 @@ __NTH (mknod (__const char *__path, __mo
- # endif
- 
- # ifdef __USE_ATFILE
--extern __inline__ int
-+__extern_inline int
- __NTH (mknodat (int __fd, __const char *__path, __mode_t __mode,
- 		__dev_t __dev))
- {
-@@ -479,28 +479,28 @@ __NTH (mknodat (int __fd, __const char *
- # if defined __USE_LARGEFILE64 \
-   && (! defined __USE_FILE_OFFSET64 \
-       || (defined __REDIRECT_NTH && defined __OPTIMIZE__))
--extern __inline__ int
-+__extern_inline int
- __NTH (stat64 (__const char *__path, struct stat64 *__statbuf))
- {
-   return __xstat64 (_STAT_VER, __path, __statbuf);
- }
- 
- #  if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
--extern __inline__ int
-+__extern_inline int
- __NTH (lstat64 (__const char *__path, struct stat64 *__statbuf))
- {
-   return __lxstat64 (_STAT_VER, __path, __statbuf);
- }
- #  endif
- 
--extern __inline__ int
-+__extern_inline int
- __NTH (fstat64 (int __fd, struct stat64 *__statbuf))
- {
-   return __fxstat64 (_STAT_VER, __fd, __statbuf);
- }
- 
- #  ifdef __USE_GNU
--extern __inline__ int
-+__extern_inline int
- __NTH (fstatat64 (int __fd, __const char *__filename, struct stat64 *__statbuf,
- 		  int __flag))
- {
---- libc/wcsmbs/wchar.h.jj	2006-09-27 17:56:30.000000000 +0200
-+++ libc/wcsmbs/wchar.h	2006-11-06 21:28:28.000000000 +0100
-@@ -326,19 +326,19 @@ __END_NAMESPACE_C99
-    locales must use ASCII encoding for the values in the ASCII range
-    and because the wchar_t encoding is always ISO 10646.  */
- extern wint_t __btowc_alias (int __c) __asm ("btowc");
--extern __inline wint_t
-+__extern_inline wint_t
- __NTH (btowc (int __c))
- { return (__builtin_constant_p (__c) && __c >= '\0' && __c <= '\x7f'
- 	  ? (wint_t) __c : __btowc_alias (__c)); }
- 
- extern int __wctob_alias (wint_t __c) __asm ("wctob");
--extern __inline int
-+__extern_inline int
- __NTH (wctob (wint_t __wc))
- { return (__builtin_constant_p (__wc) && __wc >= L'\0' && __wc <= L'\x7f'
- 	  ? (int) __wc : __wctob_alias (__wc)); }
- # endif
- 
--extern __inline size_t
-+__extern_inline size_t
- __NTH (mbrlen (__const char *__restrict __s, size_t __n,
- 	       mbstate_t *__restrict __ps))
- { return (__ps != NULL
-@@ -548,38 +548,38 @@ extern unsigned long long int __wcstoull
- /* Define inline functions which call the internal entry points.  */
- __BEGIN_NAMESPACE_C99
- 
--extern __inline double
-+__extern_inline double
- __NTH (wcstod (__const wchar_t *__restrict __nptr,
- 	       wchar_t **__restrict __endptr))
- { return __wcstod_internal (__nptr, __endptr, 0); }
--extern __inline long int
-+__extern_inline long int
- __NTH (wcstol (__const wchar_t *__restrict __nptr,
- 	       wchar_t **__restrict __endptr, int __base))
- { return __wcstol_internal (__nptr, __endptr, __base, 0); }
--extern __inline unsigned long int
-+__extern_inline unsigned long int
- __NTH (wcstoul (__const wchar_t *__restrict __nptr,
- 		wchar_t **__restrict __endptr, int __base))
- { return __wcstoul_internal (__nptr, __endptr, __base, 0); }
- __END_NAMESPACE_C99
- 
- # ifdef __USE_GNU
--extern __inline float
-+__extern_inline float
- __NTH (wcstof (__const wchar_t *__restrict __nptr,
- 	       wchar_t **__restrict __endptr))
- { return __wcstof_internal (__nptr, __endptr, 0); }
- #  ifndef __LDBL_COMPAT
--extern __inline long double
-+__extern_inline long double
- __NTH (wcstold (__const wchar_t *__restrict __nptr,
- 		wchar_t **__restrict __endptr))
- { return __wcstold_internal (__nptr, __endptr, 0); }
- #  endif
- __extension__
--extern __inline long long int
-+__extern_inline long long int
- __NTH (wcstoq (__const wchar_t *__restrict __nptr,
- 	       wchar_t **__restrict __endptr, int __base))
- { return __wcstoll_internal (__nptr, __endptr, __base, 0); }
- __extension__
--extern __inline unsigned long long int
-+__extern_inline unsigned long long int
- __NTH (wcstouq (__const wchar_t *__restrict __nptr,
- 		wchar_t **__restrict __endptr, int __base))
- { return __wcstoull_internal (__nptr, __endptr, __base, 0); }
---- libc/wcsmbs/bits/wchar2.h.jj	2006-01-14 13:09:47.000000000 +0100
-+++ libc/wcsmbs/bits/wchar2.h	2006-11-06 21:29:19.000000000 +0100
-@@ -30,7 +30,7 @@ extern wchar_t *__REDIRECT_NTH (__wmemcp
- 				 __const wchar_t *__restrict __s2, size_t __n),
- 				wmemcpy);
- 
--extern __always_inline wchar_t *
-+__extern_always_inline wchar_t *
- __NTH (wmemcpy (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2,
- 		size_t __n))
- {
-@@ -46,7 +46,7 @@ extern wchar_t *__REDIRECT_NTH (__wmemmo
- 						   __const wchar_t *__s2,
- 						   size_t __n), wmemmove);
- 
--extern __always_inline wchar_t *
-+__extern_always_inline wchar_t *
- __NTH (wmemmove (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2,
- 		 size_t __n))
- {
-@@ -65,7 +65,7 @@ extern wchar_t *__REDIRECT_NTH (__wmempc
- 				 __const wchar_t *__restrict __s2,
- 				 size_t __n), wmempcpy);
- 
--extern __always_inline wchar_t *
-+__extern_always_inline wchar_t *
- __NTH (wmempcpy (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2,
- 		 size_t __n))
- {
-@@ -81,7 +81,7 @@ extern wchar_t *__wmemset_chk (wchar_t *
- extern wchar_t *__REDIRECT_NTH (__wmemset_alias, (wchar_t *__s, wchar_t __c,
- 						  size_t __n), wmemset);
- 
--extern __always_inline wchar_t *
-+__extern_always_inline wchar_t *
- __NTH (wmemset (wchar_t *__restrict __s, wchar_t __c, size_t __n))
- {
-   if (__bos0 (__s) != (size_t) -1)
-@@ -97,7 +97,7 @@ extern wchar_t *__REDIRECT_NTH (__wcscpy
- 				(wchar_t *__restrict __dest,
- 				 __const wchar_t *__restrict __src), wcscpy);
- 
--extern __always_inline wchar_t *
-+__extern_always_inline wchar_t *
- __NTH (wcscpy (wchar_t *__dest, __const wchar_t *__src))
- {
-   if (__bos (__dest) != (size_t) -1)
-@@ -112,7 +112,7 @@ extern wchar_t *__REDIRECT_NTH (__wcpcpy
- 						 __const wchar_t *__src),
- 				wcpcpy);
- 
--extern __always_inline wchar_t *
-+__extern_always_inline wchar_t *
- __NTH (wcpcpy (wchar_t *__dest, __const wchar_t *__src))
- {
-   if (__bos (__dest) != (size_t) -1)
-@@ -129,7 +129,7 @@ extern wchar_t *__REDIRECT_NTH (__wcsncp
- 				 __const wchar_t *__restrict __src,
- 				 size_t __n), wcsncpy);
- 
--extern __always_inline wchar_t *
-+__extern_always_inline wchar_t *
- __NTH (wcsncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n))
- {
-   if (__bos (__dest) != (size_t) -1
-@@ -148,7 +148,7 @@ extern wchar_t *__REDIRECT_NTH (__wcpncp
- 				 __const wchar_t *__restrict __src,
- 				 size_t __n), wcpncpy);
- 
--extern __always_inline wchar_t *
-+__extern_always_inline wchar_t *
- __NTH (wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n))
- {
-   if (__bos (__dest) != (size_t) -1
-@@ -166,7 +166,7 @@ extern wchar_t *__REDIRECT_NTH (__wcscat
- 				(wchar_t *__restrict __dest,
- 				 __const wchar_t *__restrict __src), wcscat);
- 
--extern __always_inline wchar_t *
-+__extern_always_inline wchar_t *
- __NTH (wcscat (wchar_t *__dest, __const wchar_t *__src))
- {
-   if (__bos (__dest) != (size_t) -1)
-@@ -183,7 +183,7 @@ extern wchar_t *__REDIRECT_NTH (__wcsnca
- 				 __const wchar_t *__restrict __src,
- 				 size_t __n), wcsncat);
- 
--extern __always_inline wchar_t *
-+__extern_always_inline wchar_t *
- __NTH (wcsncat (wchar_t *__dest, __const wchar_t *__src, size_t __n))
- {
-   if (__bos (__dest) != (size_t) -1)
-@@ -246,7 +246,7 @@ extern wchar_t *__REDIRECT (__fgetws_ali
- 			    (wchar_t *__restrict __s, int __n,
- 			     __FILE *__restrict __stream), fgetws) __wur;
- 
--extern __always_inline __wur wchar_t *
-+__extern_always_inline __wur wchar_t *
- fgetws (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream)
- {
-   if (__bos (__s) != (size_t) -1
-@@ -264,7 +264,7 @@ extern wchar_t *__REDIRECT (__fgetws_unl
- 			     __FILE *__restrict __stream), fgetws_unlocked)
-   __wur;
- 
--extern __always_inline __wur wchar_t *
-+__extern_always_inline __wur wchar_t *
- fgetws_unlocked (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream)
- {
-   if (__bos (__s) != (size_t) -1
-@@ -281,7 +281,7 @@ extern size_t __REDIRECT_NTH (__wcrtomb_
- 			      (char *__restrict __s, wchar_t __wchar,
- 			       mbstate_t *__restrict __ps), wcrtomb) __wur;
- 
--extern __always_inline __wur size_t
-+__extern_always_inline __wur size_t
- __NTH (wcrtomb (char *__s, wchar_t __wchar, mbstate_t *__ps))
- {
-   /* We would have to include <limits.h> to get a definition of MB_LEN_MAX.
-@@ -307,7 +307,7 @@ extern size_t __REDIRECT_NTH (__mbsrtowc
- 			       size_t __len, mbstate_t *__restrict __ps),
- 			      mbsrtowcs);
- 
--extern __always_inline size_t
-+__extern_always_inline size_t
- __NTH (mbsrtowcs (wchar_t *__restrict __dst, __const char **__restrict __src,
- 		  size_t __len, mbstate_t *__restrict __ps))
- {
-@@ -330,7 +330,7 @@ extern size_t __REDIRECT_NTH (__wcsrtomb
- 			       size_t __len, mbstate_t *__restrict __ps),
- 			      wcsrtombs);
- 
--extern __always_inline size_t
-+__extern_always_inline size_t
- __NTH (wcsrtombs (char *__restrict __dst, __const wchar_t **__restrict __src,
- 		  size_t __len, mbstate_t *__restrict __ps))
- {
-@@ -352,7 +352,7 @@ extern size_t __REDIRECT_NTH (__mbsnrtow
- 			       size_t __len, mbstate_t *__restrict __ps),
- 			      mbsnrtowcs);
- 
--extern __always_inline size_t
-+__extern_always_inline size_t
- __NTH (mbsnrtowcs (wchar_t *__restrict __dst, __const char **__restrict __src,
- 		   size_t __nmc, size_t __len, mbstate_t *__restrict __ps))
- {
-@@ -376,7 +376,7 @@ extern size_t __REDIRECT_NTH (__wcsnrtom
- 			       size_t __nwc, size_t __len,
- 			       mbstate_t *__restrict __ps), wcsnrtombs);
- 
--extern __always_inline size_t
-+__extern_always_inline size_t
- __NTH (wcsnrtombs (char *__restrict __dst, __const wchar_t **__restrict __src,
- 		   size_t __nwc, size_t __len, mbstate_t *__restrict __ps))
- {
---- libc/socket/bits/socket2.h.jj	2005-08-08 21:00:53.000000000 +0200
-+++ libc/socket/bits/socket2.h	2006-11-06 21:29:59.000000000 +0100
-@@ -1,5 +1,5 @@
- /* Checking macros for socket functions.
--   Copyright (C) 2005 Free Software Foundation, Inc.
-+   Copyright (C) 2005, 2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -26,7 +26,7 @@ extern ssize_t __recv_chk (int __fd, voi
- extern ssize_t __REDIRECT (__recv_alias, (int __fd, void *__buf, size_t __n,
- 					  int __flags), recv);
- 
--extern __always_inline ssize_t
-+__extern_always_inline ssize_t
- recv (int __fd, void *__buf, size_t __n, int __flags)
- {
-   if (__bos0 (__buf) != (size_t) -1
-@@ -44,7 +44,7 @@ extern ssize_t __REDIRECT (__recvfrom_al
- 			    int __flags, __SOCKADDR_ARG __addr,
- 			    socklen_t *__restrict __addr_len), recvfrom);
- 
--extern __always_inline ssize_t
-+__extern_always_inline ssize_t
- recvfrom (int __fd, void *__restrict __buf, size_t __n, int __flags,
- 	  __SOCKADDR_ARG __addr, socklen_t *__restrict __addr_len)
- {
---- libc/posix/bits/unistd.h.jj	2006-08-24 08:47:31.000000000 +0200
-+++ libc/posix/bits/unistd.h	2006-11-06 21:30:39.000000000 +0100
-@@ -26,7 +26,7 @@ extern ssize_t __read_chk (int __fd, voi
- extern ssize_t __REDIRECT (__read_alias, (int __fd, void *__buf,
- 					  size_t __nbytes), read) __wur;
- 
--extern __always_inline __wur ssize_t
-+__extern_always_inline __wur ssize_t
- read (int __fd, void *__buf, size_t __nbytes)
- {
-   if (__bos0 (__buf) != (size_t) -1
-@@ -48,7 +48,7 @@ extern ssize_t __REDIRECT (__pread64_ali
- 			    __off64_t __offset), pread64) __wur;
- 
- # ifndef __USE_FILE_OFFSET64
--extern __always_inline __wur ssize_t
-+__extern_always_inline __wur ssize_t
- pread (int __fd, void *__buf, size_t __nbytes, __off_t __offset)
- {
-   if (__bos0 (__buf) != (size_t) -1
-@@ -57,7 +57,7 @@ pread (int __fd, void *__buf, size_t __n
-   return __pread_alias (__fd, __buf, __nbytes, __offset);
- }
- # else
--extern __always_inline __wur ssize_t
-+__extern_always_inline __wur ssize_t
- pread (int __fd, void *__buf, size_t __nbytes, __off64_t __offset)
- {
-   if (__bos0 (__buf) != (size_t) -1
-@@ -68,7 +68,7 @@ pread (int __fd, void *__buf, size_t __n
- # endif
- 
- # ifdef __USE_LARGEFILE64
--extern __always_inline __wur ssize_t
-+__extern_always_inline __wur ssize_t
- pread64 (int __fd, void *__buf, size_t __nbytes, __off64_t __offset)
- {
-   if (__bos0 (__buf) != (size_t) -1
-@@ -89,7 +89,7 @@ extern ssize_t __REDIRECT_NTH (__readlin
- 				char *__restrict __buf, size_t __len), readlink)
-      __nonnull ((1, 2)) __wur;
- 
--extern __always_inline __nonnull ((1, 2)) __wur ssize_t
-+__extern_always_inline __nonnull ((1, 2)) __wur ssize_t
- __NTH (readlink (__const char *__restrict __path, char *__restrict __buf,
- 		 size_t __len))
- {
-@@ -111,7 +111,7 @@ extern ssize_t __REDIRECT_NTH (__readlin
- 			       readlinkat)
-      __nonnull ((2, 3)) __wur;
- 
--extern __always_inline __nonnull ((2, 3)) __wur ssize_t
-+__extern_always_inline __nonnull ((2, 3)) __wur ssize_t
- __NTH (readlinkat (int __fd, __const char *__restrict __path,
- 		   char *__restrict __buf, size_t __len))
- {
-@@ -127,7 +127,7 @@ extern char *__getcwd_chk (char *__buf, 
- extern char *__REDIRECT_NTH (__getcwd_alias,
- 			     (char *__buf, size_t __size), getcwd) __wur;
- 
--extern __always_inline __wur char *
-+__extern_always_inline __wur char *
- __NTH (getcwd (char *__buf, size_t __size))
- {
-   if (__bos (__buf) != (size_t) -1
-@@ -142,7 +142,7 @@ extern char *__getwd_chk (char *__buf, s
- extern char *__REDIRECT_NTH (__getwd_alias, (char *__buf), getwd)
-      __nonnull ((1)) __wur;
- 
--extern __always_inline __nonnull ((1)) __attribute_deprecated__ __wur char *
-+__extern_always_inline __nonnull ((1)) __attribute_deprecated__ __wur char *
- __NTH (getwd (char *__buf))
- {
-   if (__bos (__buf) != (size_t) -1)
-@@ -156,7 +156,7 @@ extern size_t __confstr_chk (int __name,
- extern size_t __REDIRECT_NTH (__confstr_alias, (int __name, char *__buf,
- 						size_t __len), confstr);
- 
--extern __always_inline size_t
-+__extern_always_inline size_t
- __NTH (confstr (int __name, char *__buf, size_t __len))
- {
-   if (__bos (__buf) != (size_t) -1
-@@ -171,7 +171,7 @@ extern int __getgroups_chk (int __size, 
- extern int __REDIRECT_NTH (__getgroups_alias, (int __size, __gid_t __list[]),
- 			   getgroups) __wur;
- 
--extern __always_inline int
-+__extern_always_inline int
- __NTH (getgroups (int __size, __gid_t __list[]))
- {
-   if (__bos (__list) != (size_t) -1
-@@ -188,7 +188,7 @@ extern int __REDIRECT_NTH (__ttyname_r_a
- 					       size_t __buflen), ttyname_r)
-      __nonnull ((2));
- 
--extern __always_inline int
-+__extern_always_inline int
- __NTH (ttyname_r (int __fd, char *__buf, size_t __buflen))
- {
-   if (__bos (__buf) != (size_t) -1
-@@ -204,7 +204,7 @@ extern int __getlogin_r_chk (char *__buf
- extern int __REDIRECT (__getlogin_r_alias, (char *__buf, size_t __buflen),
- 		       getlogin_r) __nonnull ((1));
- 
--extern __always_inline int
-+__extern_always_inline int
- getlogin_r (char *__buf, size_t __buflen)
- {
-   if (__bos (__buf) != (size_t) -1
-@@ -221,7 +221,7 @@ extern int __gethostname_chk (char *__bu
- extern int __REDIRECT_NTH (__gethostname_alias, (char *__buf, size_t __buflen),
- 			   gethostname) __nonnull ((1));
- 
--extern __always_inline int
-+__extern_always_inline int
- __NTH (gethostname (char *__buf, size_t __buflen))
- {
-   if (__bos (__buf) != (size_t) -1
-@@ -239,7 +239,7 @@ extern int __REDIRECT_NTH (__getdomainna
- 						   size_t __buflen),
- 			   getdomainname) __nonnull ((1)) __wur;
- 
--extern __always_inline int
-+__extern_always_inline int
- __NTH (getdomainname (char *__buf, size_t __buflen))
- {
-   if (__bos (__buf) != (size_t) -1
---- libc/string/bits/string3.h.jj	2005-08-08 21:02:31.000000000 +0200
-+++ libc/string/bits/string3.h	2006-11-07 11:19:17.000000000 +0100
-@@ -1,4 +1,4 @@
--/* Copyright (C) 2004, 2005 Free Software Foundation, Inc.
-+/* Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -151,7 +151,7 @@ extern char *__REDIRECT_NTH (__stpncpy_a
- 					       __const char *__src,
- 					       size_t __n), stpncpy);
- 
--extern __always_inline char *
-+__extern_always_inline char *
- __NTH (stpncpy (char *__dest, __const char *__src, size_t __n))
- {
-   if (__bos (__dest) != (size_t) -1
---- libc/string/bits/string2.h.jj	2004-05-28 08:39:13.000000000 +0200
-+++ libc/string/bits/string2.h	2006-11-07 11:19:24.000000000 +0100
-@@ -0,0 +1,18 @@
-+/*  DO NOT EDIT THIS FILE.
-+
-+    It has been auto-edited by fixincludes from:
-+
-+	"fixinc/tests/inc/bits/string2.h"
-+
-+    This had to be done to correct non-standard usages in the
-+    original, manufacturer supplied header file.  */
-+
-+
-+
-+#if defined( GLIBC_C99_INLINE_3_CHECK )
-+# if defined(__cplusplus) || __STDC_VERSION__ >= 19901L
-+#  define __STRING_INLINE inline
-+# else
-+#  define __STRING_INLINE extern __inline
-+# endif
-+#endif  /* GLIBC_C99_INLINE_3_CHECK */
-@@ -1,5 +1,5 @@
- /* Machine-independant string function optimizations.
--   Copyright (C) 1997-2003, 2004 Free Software Foundation, Inc.
-+   Copyright (C) 1997-2003, 2004, 2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
- 
-@@ -43,7 +43,7 @@
- # ifdef __cplusplus
- #  define __STRING_INLINE inline
- # else
--#  define __STRING_INLINE extern __inline
-+#  define __STRING_INLINE __extern_inline
- # endif
- #endif
- 
---- libc/string/argz.h.jj	2004-09-08 00:23:43.000000000 +0200
-+++ libc/string/argz.h	2006-11-07 11:19:33.000000000 +0100
-@@ -1,5 +1,5 @@
- /* Routines for dealing with '\0' separated arg vectors.
--   Copyright (C) 1995,96,97,98,99,2000,2004 Free Software Foundation, Inc.
-+   Copyright (C) 1995,96,97,98,99,2000,2004,2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -160,7 +160,7 @@ extern char *argz_next (__const char *__
- 			__const char *__restrict __entry) __THROW;
- 
- #ifdef __USE_EXTERN_INLINES
--extern inline char *
-+__extern_inline char *
- __NTH (__argz_next (__const char *__argz, size_t __argz_len,
- 		    __const char *__entry))
- {
-@@ -174,7 +174,7 @@ __NTH (__argz_next (__const char *__argz
-   else
-     return __argz_len > 0 ? (char *) __argz : 0;
- }
--extern inline char *
-+__extern_inline char *
- __NTH (argz_next (__const char *__argz, size_t __argz_len,
- 		  __const char *__entry))
- {
---- libc/math/bits/cmathcalls.h.jj	2001-07-06 06:55:35.000000000 +0200
-+++ libc/math/bits/cmathcalls.h	2006-11-07 11:19:39.000000000 +0100
-@@ -1,6 +1,6 @@
- /* Prototype declarations for complex math functions;
-    helper file for <complex.h>.
--   Copyright (C) 1997, 1998, 2001 Free Software Foundation, Inc.
-+   Copyright (C) 1997, 1998, 2001, 2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -135,21 +135,21 @@ __MATHDECL (_Mdouble_,creal, (_Mdouble_c
- #if defined __GNUC__ && !__GNUC_PREREQ (2, 97) && defined __OPTIMIZE__
- 
- /* Imaginary part of Z.  */
--extern __inline _Mdouble_
-+__extern_inline _Mdouble_
- __MATH_PRECNAME(cimag) (_Mdouble_complex_ __z) __THROW
- {
-   return __imag__ __z;
- }
- 
- /* Real part of Z.  */
--extern __inline _Mdouble_
-+__extern_inline _Mdouble_
- __MATH_PRECNAME(creal) (_Mdouble_complex_ __z) __THROW
- {
-   return __real__ __z;
- }
- 
- /* Complex conjugate of Z.  */
--extern __inline _Mdouble_complex_
-+__extern_inline _Mdouble_complex_
- __MATH_PRECNAME(conj) (_Mdouble_complex_ __z) __THROW
- {
-   return __extension__ ~__z;
---- libc/math/math_private.h.jj	2005-11-21 16:43:03.000000000 +0100
-+++ libc/math/math_private.h	2006-11-06 21:33:45.000000000 +0100
-@@ -192,7 +192,7 @@ extern int    __kernel_rem_pio2 (double*
- extern double __copysign (double x, double __y);
- 
- #if __GNUC_PREREQ (4, 0)
--extern inline double __copysign (double x, double y)
-+__extern_inline double __copysign (double x, double y)
- { return __builtin_copysign (x, y); }
- #endif
- 
-@@ -239,7 +239,7 @@ extern int   __kernel_rem_pio2f (float*,
- extern float __copysignf (float x, float __y);
- 
- #if __GNUC_PREREQ (4, 0)
--extern inline float __copysignf (float x, float y)
-+__extern_inline float __copysignf (float x, float y)
- { return __builtin_copysignf (x, y); }
- #endif
- 
-@@ -307,7 +307,7 @@ extern long double __logbl (long double 
- extern long double __significandl (long double x);
- 
- #if __GNUC_PREREQ (4, 0)
--extern inline long double __copysignl (long double x, long double y)
-+__extern_inline long double __copysignl (long double x, long double y)
- { return __builtin_copysignl (x, y); }
- #endif
- 
---- libc/hurd/hurd.h.jj	2002-01-02 10:52:20.000000000 +0100
-+++ libc/hurd/hurd.h	2006-11-07 11:19:51.000000000 +0100
-@@ -1,4 +1,5 @@
--/* Copyright (C) 1993,94,95,96,97,98,99,2001,02 Free Software Foundation, Inc.
-+/* Copyright (C) 1993,94,95,96,97,98,99,2001,2002,2006
-+   Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -44,7 +45,7 @@
- #include <errno.h>
- 
- #ifndef _HURD_H_EXTERN_INLINE
--#define _HURD_H_EXTERN_INLINE extern __inline
-+#define _HURD_H_EXTERN_INLINE __extern_inline
- #endif
- 
- _HURD_H_EXTERN_INLINE int
---- libc/hurd/hurd/port.h.jj	2001-07-06 06:54:47.000000000 +0200
-+++ libc/hurd/hurd/port.h	2006-11-07 11:19:58.000000000 +0100
-@@ -1,5 +1,6 @@
- /* Lightweight user references for ports.
--   Copyright (C) 1993, 1994, 1995, 1997, 1999 Free Software Foundation, Inc.
-+   Copyright (C) 1993, 1994, 1995, 1997, 1999, 2006
-+   Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -55,7 +56,7 @@ struct hurd_port
- 
- 
- #ifndef _HURD_PORT_H_EXTERN_INLINE
--#define _HURD_PORT_H_EXTERN_INLINE extern __inline
-+#define _HURD_PORT_H_EXTERN_INLINE __extern_inline
- #endif
- 
- 
---- libc/hurd/hurd/threadvar.h.jj	2002-09-02 09:08:53.000000000 +0200
-+++ libc/hurd/hurd/threadvar.h	2006-11-07 10:54:40.000000000 +0100
-@@ -1,5 +1,5 @@
- /* Internal per-thread variables for the Hurd.
--   Copyright (C) 1994,95,97,98,99,2001,02 Free Software Foundation, Inc.
-+   Copyright (C) 1994,95,97,98,99,2001,02,06 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -74,7 +74,7 @@ enum __hurd_threadvar_index
- 
- 
- #ifndef _HURD_THREADVAR_H_EXTERN_INLINE
--#define _HURD_THREADVAR_H_EXTERN_INLINE extern __inline
-+#define _HURD_THREADVAR_H_EXTERN_INLINE __extern_inline
- #endif
- 
- /* Return the location of the value for the per-thread variable with index
---- libc/hurd/hurd/fd.h.jj	2006-03-06 08:59:07.000000000 +0100
-+++ libc/hurd/hurd/fd.h	2006-11-07 10:53:18.000000000 +0100
-@@ -52,7 +52,7 @@ extern struct mutex _hurd_dtable_lock; /
- #include <hurd/signal.h>
- 
- #ifndef _HURD_FD_H_EXTERN_INLINE
--#define _HURD_FD_H_EXTERN_INLINE extern __inline
-+#define _HURD_FD_H_EXTERN_INLINE __extern_inline
- #endif
- 
- /* Returns the descriptor cell for FD.  If FD is invalid or unused, return
---- libc/hurd/hurd/signal.h.jj	2002-02-18 21:57:11.000000000 +0100
-+++ libc/hurd/hurd/signal.h	2006-11-07 10:54:13.000000000 +0100
-@@ -1,5 +1,5 @@
- /* Implementing POSIX.1 signals under the Hurd.
--   Copyright (C) 1993,94,95,96,98,99,2002 Free Software Foundation, Inc.
-+   Copyright (C) 1993,94,95,96,98,99,2002,2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -126,7 +126,7 @@ extern struct hurd_sigstate *_hurd_self_
-      __attribute__ ((__const__));
- 
- #ifndef _HURD_SIGNAL_H_EXTERN_INLINE
--#define _HURD_SIGNAL_H_EXTERN_INLINE extern __inline
-+#define _HURD_SIGNAL_H_EXTERN_INLINE __extern_inline
- #endif
- 
- _HURD_SIGNAL_H_EXTERN_INLINE struct hurd_sigstate *
---- libc/hurd/hurd/userlink.h.jj	2001-07-06 06:54:47.000000000 +0200
-+++ libc/hurd/hurd/userlink.h	2006-11-07 10:53:37.000000000 +0100
-@@ -1,5 +1,5 @@
- /* Support for chains recording users of a resource; `struct hurd_userlink'.
--   Copyright (C) 1994, 1995, 1997, 1999 Free Software Foundation, Inc.
-+   Copyright (C) 1994, 1995, 1997, 1999, 2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -71,7 +71,7 @@ struct hurd_userlink
- 
- 
- #ifndef _HURD_USERLINK_H_EXTERN_INLINE
--#define _HURD_USERLINK_H_EXTERN_INLINE extern __inline
-+#define _HURD_USERLINK_H_EXTERN_INLINE __extern_inline
- #endif
- 
- 
---- libc/sysdeps/mach/alpha/machine-sp.h.jj	2001-07-06 06:55:56.000000000 +0200
-+++ libc/sysdeps/mach/alpha/machine-sp.h	2006-11-07 10:55:42.000000000 +0100
-@@ -1,5 +1,5 @@
- /* Machine-specific function to return the stack pointer.  Alpha version.
--   Copyright (C) 1994, 1997 Free Software Foundation, Inc.
-+   Copyright (C) 1994, 1997, 2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -23,7 +23,7 @@
- /* Return the current stack pointer.  */
- 
- #ifndef _EXTERN_INLINE
--#define _EXTERN_INLINE extern __inline
-+#define _EXTERN_INLINE __extern_inline
- #endif
- 
- _EXTERN_INLINE void *
---- libc/sysdeps/mach/alpha/machine-lock.h.jj	2003-02-26 01:01:15.000000000 +0100
-+++ libc/sysdeps/mach/alpha/machine-lock.h	2006-11-07 11:20:04.000000000 +0100
-@@ -1,5 +1,5 @@
- /* Machine-specific definition for spin locks.  Alpha version.
--   Copyright (C) 1994, 1997 Free Software Foundation, Inc.
-+   Copyright (C) 1994, 1997, 2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -30,7 +30,7 @@ typedef __volatile long int __spin_lock_
- 
- 
- #ifndef _EXTERN_INLINE
--#define _EXTERN_INLINE extern __inline
-+#define _EXTERN_INLINE __extern_inline
- #endif
- 
- /* Unlock LOCK.  */
---- libc/sysdeps/mach/i386/machine-lock.h.jj	2001-07-06 06:56:00.000000000 +0200
-+++ libc/sysdeps/mach/i386/machine-lock.h	2006-11-07 10:56:10.000000000 +0100
-@@ -1,5 +1,5 @@
- /* Machine-specific definition for spin locks.  i386 version.
--   Copyright (C) 1994, 1997 Free Software Foundation, Inc.
-+   Copyright (C) 1994, 1997, 2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -30,7 +30,7 @@ typedef __volatile int __spin_lock_t;
- 
- 
- #ifndef _EXTERN_INLINE
--#define _EXTERN_INLINE extern __inline
-+#define _EXTERN_INLINE __extern_inline
- #endif
- 
- /* Unlock LOCK.  */
---- libc/sysdeps/mach/powerpc/machine-sp.h.jj	2002-08-27 00:39:44.000000000 +0200
-+++ libc/sysdeps/mach/powerpc/machine-sp.h	2006-11-07 10:56:59.000000000 +0100
-@@ -1,5 +1,5 @@
- /* Machine-specific function to return the stack pointer.  PowerPC version.
--   Copyright (C) 2001 Free Software Foundation, Inc.
-+   Copyright (C) 2001, 2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -27,7 +27,7 @@
- # ifdef _HURD_THREADVAR_H_EXTERN_INLINE
- #  define _EXTERN_INLINE _HURD_THREADVAR_H_EXTERN_INLINE
- # else
--#  define _EXTERN_INLINE extern __inline
-+#  define _EXTERN_INLINE __extern_inline
- # endif
- #endif
- 
---- libc/sysdeps/mach/powerpc/machine-lock.h.jj	2002-02-17 08:13:25.000000000 +0100
-+++ libc/sysdeps/mach/powerpc/machine-lock.h	2006-11-07 10:56:40.000000000 +0100
-@@ -1,5 +1,5 @@
- /* Machine-specific definition for spin locks.  PowerPC version.
--   Copyright (C) 1994,97,2002 Free Software Foundation, Inc.
-+   Copyright (C) 1994,97,2002,2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -30,7 +30,7 @@ typedef __volatile long int __spin_lock_
- 
- 
- #ifndef _EXTERN_INLINE
--#define _EXTERN_INLINE extern __inline
-+#define _EXTERN_INLINE __extern_inline
- #endif
- 
- /* Unlock LOCK.  */
---- libc/sysdeps/alpha/fpu/bits/mathinline.h.jj	2005-02-08 05:37:48.000000000 +0100
-+++ libc/sysdeps/alpha/fpu/bits/mathinline.h	2006-11-07 10:59:08.000000000 +0100
-@@ -1,5 +1,6 @@
- /* Inline math functions for Alpha.
--   Copyright (C) 1996, 1997, 1999-2001, 2004 Free Software Foundation, Inc.
-+   Copyright (C) 1996, 1997, 1999-2001, 2004, 2006
-+   Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    Contributed by David Mosberger-Tang.
- 
-@@ -25,7 +26,7 @@
- #ifdef __cplusplus
- # define __MATH_INLINE __inline
- #else
--# define __MATH_INLINE extern __inline
-+# define __MATH_INLINE __extern_inline
- #endif
- 
- #if defined __USE_ISOC99 && defined __GNUC__ && !__GNUC_PREREQ(3,0)
---- libc/sysdeps/ia64/fpu/bits/mathinline.h.jj	2004-09-08 23:44:02.000000000 +0200
-+++ libc/sysdeps/ia64/fpu/bits/mathinline.h	2006-11-07 10:59:49.000000000 +0100
-@@ -1,5 +1,5 @@
- /* Inline math functions for ia64.
--   Copyright (C) 2004 Free Software Foundation, Inc.
-+   Copyright (C) 2004, 2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -24,7 +24,7 @@
- #ifdef __cplusplus
- # define __MATH_INLINE __inline
- #else
--# define __MATH_INLINE extern __inline
-+# define __MATH_INLINE __extern_inline
- #endif
- 
- #if defined __USE_ISOC99 && defined __GNUC__ && __GNUC__ >= 2
---- libc/sysdeps/i386/fpu/bits/mathinline.h.jj	2004-09-08 00:23:42.000000000 +0200
-+++ libc/sysdeps/i386/fpu/bits/mathinline.h	2006-11-07 11:00:56.000000000 +0100
-@@ -1,5 +1,5 @@
- /* Inline math functions for i387.
--   Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004
-+   Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2006
-    Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    Contributed by John C. Bowman <bowman@math.ualberta.ca>, 1995.
-@@ -26,7 +26,7 @@
- #ifdef __cplusplus
- # define __MATH_INLINE __inline
- #else
--# define __MATH_INLINE extern __inline
-+# define __MATH_INLINE __extern_inline
- #endif
- 
- 
---- libc/sysdeps/i386/i486/bits/string.h.jj	2004-12-15 21:30:16.000000000 +0100
-+++ libc/sysdeps/i386/i486/bits/string.h	2006-11-07 11:01:34.000000000 +0100
-@@ -1,5 +1,5 @@
- /* Optimized, inlined string functions.  i486 version.
--   Copyright (C) 1997,1998,1999,2000,2001,2002,2003,2004
-+   Copyright (C) 1997,1998,1999,2000,2001,2002,2003,2004,2006
-    	Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-@@ -35,7 +35,7 @@
- # ifdef __cplusplus
- #  define __STRING_INLINE inline
- # else
--#  define __STRING_INLINE extern __inline
-+#  define __STRING_INLINE __extern_inline
- # endif
- #endif
- 
---- libc/sysdeps/generic/inttypes.h.jj	2004-09-08 00:23:42.000000000 +0200
-+++ libc/sysdeps/generic/inttypes.h	2006-11-07 11:02:59.000000000 +0100
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1997-2001, 2004 Free Software Foundation, Inc.
-+/* Copyright (C) 1997-2001, 2004, 2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -330,7 +330,7 @@ extern long int __strtol_internal (__con
- 				   int __base, int __group) __THROW;
- #   define __strtol_internal_defined	1
- #  endif
--extern __inline intmax_t
-+__extern_inline intmax_t
- __NTH (strtoimax (__const char *__restrict nptr, char **__restrict endptr,
- 		  int base))
- {
-@@ -345,7 +345,7 @@ extern unsigned long int __strtoul_inter
- 					     int __base, int __group) __THROW;
- #   define __strtoul_internal_defined	1
- #  endif
--extern __inline uintmax_t
-+__extern_inline uintmax_t
- __NTH (strtoumax (__const char *__restrict nptr, char **__restrict endptr,
- 		  int base))
- {
-@@ -359,7 +359,7 @@ extern long int __wcstol_internal (__con
- 				   int __base, int __group) __THROW;
- #   define __wcstol_internal_defined	1
- #  endif
--extern __inline intmax_t
-+__extern_inline intmax_t
- __NTH (wcstoimax (__const __gwchar_t *__restrict nptr,
- 		  __gwchar_t **__restrict endptr, int base))
- {
-@@ -376,7 +376,7 @@ extern unsigned long int __wcstoul_inter
- 					     int __base, int __group) __THROW;
- #   define __wcstoul_internal_defined	1
- #  endif
--extern __inline uintmax_t
-+__extern_inline uintmax_t
- __NTH (wcstoumax (__const __gwchar_t *__restrict nptr,
- 		  __gwchar_t **__restrict endptr, int base))
- {
-@@ -393,7 +393,7 @@ extern long long int __strtoll_internal 
- 					 int __base, int __group) __THROW;
- #   define __strtoll_internal_defined	1
- #  endif
--extern __inline intmax_t
-+__extern_inline intmax_t
- __NTH (strtoimax (__const char *__restrict nptr, char **__restrict endptr,
- 		  int base))
- {
-@@ -411,7 +411,7 @@ extern unsigned long long int __strtoull
- 						   int __group) __THROW;
- #   define __strtoull_internal_defined	1
- #  endif
--extern __inline uintmax_t
-+__extern_inline uintmax_t
- __NTH (strtoumax (__const char *__restrict nptr, char **__restrict endptr,
- 		  int base))
- {
-@@ -427,7 +427,7 @@ extern long long int __wcstoll_internal 
- 					 int __base, int __group) __THROW;
- #   define __wcstoll_internal_defined	1
- #  endif
--extern __inline intmax_t
-+__extern_inline intmax_t
- __NTH (wcstoimax (__const __gwchar_t *__restrict nptr,
- 		  __gwchar_t **__restrict endptr, int base))
- {
-@@ -446,7 +446,7 @@ extern unsigned long long int __wcstoull
- 						   int __group) __THROW;
- #   define __wcstoull_internal_defined	1
- #  endif
--extern __inline uintmax_t
-+__extern_inline uintmax_t
- __NTH (wcstoumax (__const __gwchar_t *__restrict nptr,
- 		  __gwchar_t **__restrict endptr, int base))
- {
---- libc/sysdeps/generic/machine-sp.h.jj	2001-07-06 06:55:49.000000000 +0200
-+++ libc/sysdeps/generic/machine-sp.h	2006-11-07 11:06:02.000000000 +0100
-@@ -1,5 +1,5 @@
- /* Machine-specific function to return the stack pointer.  Stub version.
--   Copyright (C) 1994, 1997 Free Software Foundation, Inc.
-+   Copyright (C) 1994, 1997, 2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -23,7 +23,7 @@
- /* Return the current stack pointer.  */
- 
- #ifndef _EXTERN_INLINE
--#define _EXTERN_INLINE extern __inline
-+#define _EXTERN_INLINE __extern_inline
- #endif
- 
- _EXTERN_INLINE void *
---- libc/sysdeps/generic/machine-lock.h.jj	2001-07-06 06:55:49.000000000 +0200
-+++ libc/sysdeps/generic/machine-lock.h	2006-11-07 11:02:08.000000000 +0100
-@@ -1,5 +1,5 @@
- /* Machine-specific definition for spin locks.  Stub version.
--   Copyright (C) 1994, 1997 Free Software Foundation, Inc.
-+   Copyright (C) 1994, 1997, 2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -30,7 +30,7 @@ typedef volatile int __spin_lock_t;
- 
- 
- #ifndef _EXTERN_INLINE
--#define _EXTERN_INLINE extern __inline
-+#define _EXTERN_INLINE __extern_inline
- #endif
- 
- /* Unlock LOCK.  */
---- libc/sysdeps/generic/allocalim.h.jj	2002-10-09 11:19:59.000000000 +0200
-+++ libc/sysdeps/generic/allocalim.h	2006-11-07 11:03:22.000000000 +0100
-@@ -1,4 +1,4 @@
--extern inline int __libc_use_alloca (size_t size)
-+__extern_inline int __libc_use_alloca (size_t size)
- {
-   return size <= __MAX_ALLOCA_CUTOFF;
- }
---- libc/sysdeps/pthread/aio_misc.c.jj	2006-01-04 00:12:54.000000000 +0100
-+++ libc/sysdeps/pthread/aio_misc.c	2006-11-07 11:06:31.000000000 +0100
-@@ -33,7 +33,7 @@
- #ifndef aio_create_helper_thread
- # define aio_create_helper_thread __aio_create_helper_thread
- 
--extern inline int
-+__extern_inline int
- __aio_create_helper_thread (pthread_t *threadp, void *(*tf) (void *), void *arg)
- {
-   pthread_attr_t attr;
---- libc/sysdeps/s390/bits/string.h.jj	2005-01-28 22:44:42.000000000 +0100
-+++ libc/sysdeps/s390/bits/string.h	2006-11-07 11:07:05.000000000 +0100
-@@ -1,5 +1,5 @@
- /* Optimized, inlined string functions.  S/390 version.
--   Copyright (C) 2000, 2001 Free Software Foundation, Inc.
-+   Copyright (C) 2000, 2001, 2006 Free Software Foundation, Inc.
-    Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-    This file is part of the GNU C Library.
- 
-@@ -34,7 +34,7 @@
- # ifdef __cplusplus
- #  define __STRING_INLINE inline
- # else
--#  define __STRING_INLINE extern __inline
-+#  define __STRING_INLINE __extern_inline
- # endif
- #endif
- 
---- libc/sysdeps/s390/fpu/bits/mathinline.h.jj	2006-02-01 04:00:20.000000000 +0100
-+++ libc/sysdeps/s390/fpu/bits/mathinline.h	2006-11-07 11:07:37.000000000 +0100
-@@ -1,5 +1,5 @@
- /* Inline math functions for s390.
--   Copyright (C) 2004 Free Software Foundation, Inc.
-+   Copyright (C) 2004, 2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -24,7 +24,7 @@
- #ifdef __cplusplus
- # define __MATH_INLINE __inline
- #else
--# define __MATH_INLINE extern __inline
-+# define __MATH_INLINE __extern_inline
- #endif
- 
- #if (!defined __NO_MATH_INLINES || defined __LIBC_INTERNAL_MATH_INLINES) \
---- libc/sysdeps/powerpc/fpu/bits/mathinline.h.jj	2006-11-06 20:53:15.000000000 +0100
-+++ libc/sysdeps/powerpc/fpu/bits/mathinline.h	2006-11-07 11:08:04.000000000 +0100
-@@ -25,7 +25,7 @@
- #ifdef __cplusplus
- # define __MATH_INLINE __inline
- #else
--# define __MATH_INLINE extern __inline
-+# define __MATH_INLINE __extern_inline
- #endif  /* __cplusplus */
- 
- #if defined __GNUC__ && !defined _SOFT_FLOAT
---- libc/sysdeps/x86_64/fpu/bits/mathinline.h.jj	2004-09-08 00:18:59.000000000 +0200
-+++ libc/sysdeps/x86_64/fpu/bits/mathinline.h	2006-11-07 11:10:33.000000000 +0100
-@@ -1,5 +1,5 @@
- /* Inline math functions for x86-64.
--   Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
-+   Copyright (C) 2002, 2003, 2004, 2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    Contributed by Andreas Jaeger <aj@suse.de>, 2002.
- 
-@@ -25,7 +25,7 @@
- #ifdef __cplusplus
- # define __MATH_INLINE __inline
- #else
--# define __MATH_INLINE extern __inline
-+# define __MATH_INLINE __extern_inline
- #endif
- 
- 
---- libc/sysdeps/sparc/fpu/bits/mathinline.h.jj	2006-01-14 13:09:02.000000000 +0100
-+++ libc/sysdeps/sparc/fpu/bits/mathinline.h	2006-11-07 11:10:57.000000000 +0100
-@@ -131,7 +131,7 @@
- # ifdef __cplusplus
- #  define __MATH_INLINE __inline
- # else
--#  define __MATH_INLINE extern __inline
-+#  define __MATH_INLINE __extern_inline
- # endif  /* __cplusplus */
- 
- /* The gcc, version 2.7 or below, has problems with all this inlining
---- libc/sysdeps/unix/bsd/bsd4.4/bits/socket.h.jj	2004-09-11 18:28:10.000000000 +0200
-+++ libc/sysdeps/unix/bsd/bsd4.4/bits/socket.h	2006-11-07 11:12:07.000000000 +0100
-@@ -1,5 +1,5 @@
- /* System-specific socket constants and types.  4.4 BSD version.
--   Copyright (C) 1991,92,1994-2002,2004 Free Software Foundation, Inc.
-+   Copyright (C) 1991,92,1994-2002,2004,2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -227,7 +227,7 @@ extern struct cmsghdr *__cmsg_nxthdr (st
- 				      struct cmsghdr *__cmsg) __THROW;
- #ifdef __USE_EXTERN_INLINES
- # ifndef _EXTERN_INLINE
--#  define _EXTERN_INLINE extern __inline
-+#  define _EXTERN_INLINE __extern_inline
- # endif
- _EXTERN_INLINE struct cmsghdr *
- __NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg))
---- libc/sysdeps/unix/sysv/linux/ia64/ioperm.c.jj	2004-03-18 00:17:58.000000000 +0100
-+++ libc/sysdeps/unix/sysv/linux/ia64/ioperm.c	2006-11-07 11:13:23.000000000 +0100
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
-+/* Copyright (C) 1999, 2000, 2001, 2004, 2006 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
- 
-@@ -51,7 +51,7 @@ static struct
-   }
- io;
- 
--__inline__ unsigned long int
-+static __always_inline unsigned long int
- io_offset (unsigned long int port)
- {
- 	return ((port >> 2) << 12) | (port & 0xfff);
---- libc/sysdeps/unix/sysv/linux/bits/socket.h.jj	2006-04-02 19:25:37.000000000 +0200
-+++ libc/sysdeps/unix/sysv/linux/bits/socket.h	2006-11-07 11:15:04.000000000 +0100
-@@ -264,7 +264,7 @@ extern struct cmsghdr *__cmsg_nxthdr (st
- 				      struct cmsghdr *__cmsg) __THROW;
- #ifdef __USE_EXTERN_INLINES
- # ifndef _EXTERN_INLINE
--#  define _EXTERN_INLINE extern __inline
-+#  define _EXTERN_INLINE __extern_inline
- # endif
- _EXTERN_INLINE struct cmsghdr *
- __NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg))
---- libc/sysdeps/unix/sysv/linux/bits/sigset.h.jj	2001-07-06 06:56:14.000000000 +0200
-+++ libc/sysdeps/unix/sysv/linux/bits/sigset.h	2006-11-07 11:14:48.000000000 +0100
-@@ -1,5 +1,6 @@
- /* __sig_atomic_t, __sigset_t, and related definitions.  Linux version.
--   Copyright (C) 1991, 1992, 1994, 1996, 1997 Free Software Foundation, Inc.
-+   Copyright (C) 1991, 1992, 1994, 1996, 1997, 2006
-+   Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -43,7 +44,7 @@ typedef struct
- # define _SIGSET_H_fns 1
- 
- # ifndef _EXTERN_INLINE
--#  define _EXTERN_INLINE extern __inline
-+#  define _EXTERN_INLINE __extern_inline
- # endif
- 
- /* Return a mask that includes the bit for SIG only.  */
---- libc/sysdeps/unix/sysv/linux/sys/sysmacros.h.jj	2004-09-08 00:18:59.000000000 +0200
-+++ libc/sysdeps/unix/sysv/linux/sys/sysmacros.h	2006-11-07 11:15:53.000000000 +0100
-@@ -0,0 +1,18 @@
-+/*  DO NOT EDIT THIS FILE.
-+
-+    It has been auto-edited by fixincludes from:
-+
-+	"fixinc/tests/inc/sys/sysmacros.h"
-+
-+    This had to be done to correct non-standard usages in the
-+    original, manufacturer supplied header file.  */
-+
-+
-+
-+#if defined( GLIBC_C99_INLINE_4_CHECK )
-+__extension__ 
-+#if __STDC_VERSION__ < 19901L
-+extern
-+#endif
-+ __inline unsigned int
-+#endif  /* GLIBC_C99_INLINE_4_CHECK */
-@@ -1,5 +1,6 @@
- /* Definitions of macros to access `dev_t' values.
--   Copyright (C) 1996, 1997, 1999, 2003, 2004 Free Software Foundation, Inc.
-+   Copyright (C) 1996, 1997, 1999, 2003, 2004, 2006
-+   Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -27,30 +28,30 @@
-    they need.  */
- #ifdef __GLIBC_HAVE_LONG_LONG
- __extension__
--extern __inline unsigned int gnu_dev_major (unsigned long long int __dev)
-+__extern_inline unsigned int gnu_dev_major (unsigned long long int __dev)
-      __THROW;
- __extension__
--extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev)
-+__extern_inline unsigned int gnu_dev_minor (unsigned long long int __dev)
-      __THROW;
- __extension__
--extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major,
-+__extern_inline unsigned long long int gnu_dev_makedev (unsigned int __major,
- 							unsigned int __minor)
-      __THROW;
- 
- # if defined __GNUC__ && __GNUC__ >= 2
--__extension__ extern __inline unsigned int
-+__extension__ __extern_inline unsigned int
- __NTH (gnu_dev_major (unsigned long long int __dev))
- {
-   return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
- }
- 
--__extension__ extern __inline unsigned int
-+__extension__ __extern_inline unsigned int
- __NTH (gnu_dev_minor (unsigned long long int __dev))
- {
-   return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
- }
- 
--__extension__ extern __inline unsigned long long int
-+__extension__ __extern_inline unsigned long long int
- __NTH (gnu_dev_makedev (unsigned int __major, unsigned int __minor))
- {
-   return ((__minor & 0xff) | ((__major & 0xfff) << 8)
diff --git a/pkgs/development/libraries/glibc/2.5/glibc-pwd.patch b/pkgs/development/libraries/glibc/2.5/glibc-pwd.patch
deleted file mode 100644
index 07039718477f..000000000000
--- a/pkgs/development/libraries/glibc/2.5/glibc-pwd.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-diff -ruN glibc-20050110/configure glibc-20050110.patched/configure
---- glibc-20050110/configure	2005-01-05 10:39:53.000000000 +0100
-+++ glibc-20050110.patched/configure	2005-01-18 13:33:01.000000000 +0100
-@@ -1393,7 +1393,7 @@
- ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
- 
- 
--if test "`cd $srcdir; /bin/pwd`" = "`/bin/pwd`"; then
-+if test "`cd $srcdir; @PWD@`" = "`@PWD@`"; then
-   { { echo "$as_me:$LINENO: error: you must configure in a separate build directory" >&5
- echo "$as_me: error: you must configure in a separate build directory" >&2;}
-    { (exit 1); exit 1; }; }
-diff -ruN glibc-20050110/io/ftwtest-sh glibc-20050110.patched/io/ftwtest-sh
---- glibc-20050110/io/ftwtest-sh	2004-02-09 21:12:23.000000000 +0100
-+++ glibc-20050110.patched/io/ftwtest-sh	2005-01-18 13:33:15.000000000 +0100
-@@ -120,7 +120,7 @@
-     sort > $testout
- 
- # perhaps $tmp involves some symlinks...
--tmpreal=`cd $tmp; /bin/pwd 2>/dev/null || /usr/bin/pwd`
-+tmpreal=`cd $tmp; @PWD@ 2>/dev/null || /usr/bin/pwd`
- 
- cat <<EOF | cmp $testout - || exit 1
- base = "$tmp/", file = "ftwtest.d", flag = FTW_D, cwd = $tmpreal, level = 0
-@@ -138,7 +138,7 @@
- EOF
- rm $testout
- 
--curwd=`/bin/pwd 2>/dev/null || /usr/bin/pwd`
-+curwd=`@PWD@ 2>/dev/null || /usr/bin/pwd`
- cd "$tmp"
- LD_LIBRARY_PATH=$objpfx $ldso $testprogram --chdir ftwtest.d |
-     sort > $testout
-@@ -160,7 +160,7 @@
- EOF
- rm $testout
- 
--curwd=`/bin/pwd 2>/dev/null || /usr/bin/pwd`
-+curwd=`@PWD@ 2>/dev/null || /usr/bin/pwd`
- cd "$tmp"
- LD_LIBRARY_PATH=$objpfx $ldso $testprogram --chdir ftwtest.d/. |
-     sort > $testout
-@@ -182,7 +182,7 @@
- EOF
- rm $testout
- 
--curwd=`/bin/pwd 2>/dev/null || /usr/bin/pwd`
-+curwd=`@PWD@ 2>/dev/null || /usr/bin/pwd`
- cd "$tmp"
- LD_LIBRARY_PATH=$objpfx $ldso $testprogram --chdir ftwtest.d/foo/lvl1/link@1 |
-     sort > $testout
-diff -ruN glibc-20050110/scripts/rellns-sh glibc-20050110.patched/scripts/rellns-sh
---- glibc-20050110/scripts/rellns-sh	1999-12-19 00:40:25.000000000 +0100
-+++ glibc-20050110.patched/scripts/rellns-sh	2005-01-18 13:35:53.245937423 +0100
-@@ -22,13 +22,13 @@
-   exit 1
- fi
- 
--if test -x /bin/pwd; then
--  pwd=/bin/pwd
--elif test -x /usr/bin/pwd; then
--  pwd=/usr/bin/pwd
--else
-+#if test -x /bin/pwd; then
-+#  pwd=/bin/pwd
-+#elif test -x /usr/bin/pwd; then
-+#  pwd=/usr/bin/pwd
-+#else
-   pwd='pwd'
--fi
-+#fi
- 
- # Make both paths absolute.
- if test -d $1; then
diff --git a/pkgs/development/libraries/glibc/2.5/make-3-82-fix.patch b/pkgs/development/libraries/glibc/2.5/make-3-82-fix.patch
deleted file mode 100644
index 816e0aa528be..000000000000
--- a/pkgs/development/libraries/glibc/2.5/make-3-82-fix.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- glibc-2.5/manual/Makefile.orig	2011-01-26 17:03:14.000000000 +0100
-+++ glibc-2.5/manual/Makefile	2011-01-26 17:04:30.000000000 +0100
-@@ -232,7 +232,10 @@
- .PHONY: stubs
- stubs: $(objpfx)stubs
- endif
--$(objpfx)stubs ../po/manual.pot $(objpfx)stamp%:
-+$(objpfx)stubs ../po/manual.pot:
-+	$(make-target-directory)
-+	touch $@
-+$(objpfx)stamp%:
- 	$(make-target-directory)
- 	touch $@
- 
diff --git a/pkgs/development/libraries/glibc/2.5/x86-fnstsw.patch b/pkgs/development/libraries/glibc/2.5/x86-fnstsw.patch
deleted file mode 100644
index 45deb1d2d719..000000000000
--- a/pkgs/development/libraries/glibc/2.5/x86-fnstsw.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-# --- T2-COPYRIGHT-NOTE-BEGIN ---
-# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
-# 
-# T2 SDE: package/.../glibc/x86-fnstsw.patch
-# Copyright (C) 2008 The T2 SDE Project
-# 
-# More information can be found in the files COPYING and README.
-# 
-# This patch file is dual-licensed. It is available under the license the
-# patched project is licensed under, as long as it is an OpenSource license
-# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
-# of the GNU General Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at your option) any later
-# version.
-# --- T2-COPYRIGHT-NOTE-END ---
-
-Fix more strict checking in binutils since 2.18.50.0.3:
-  sysdeps/i386/fpu/ftestexcept.c:33: Error: suffix or operands invalid for `fnstsw'
-
-  - Rene Rebe <rene@exactcode.de>
-
---- glibc-2.6.1/sysdeps/i386/fpu/ftestexcept.c.vanilla	2008-09-02 12:45:07.000000000 +0200
-+++ glibc-2.6.1/sysdeps/i386/fpu/ftestexcept.c	2008-09-02 12:46:37.000000000 +0200
-@@ -26,7 +26,7 @@
- int
- fetestexcept (int excepts)
- {
--  int temp;
-+  short temp;
-   int xtemp = 0;
- 
-   /* Get current exceptions.  */
diff --git a/pkgs/development/libraries/glibc/2.7/builder.sh b/pkgs/development/libraries/glibc/2.7/builder.sh
deleted file mode 100644
index d5a43229bfaf..000000000000
--- a/pkgs/development/libraries/glibc/2.7/builder.sh
+++ /dev/null
@@ -1,60 +0,0 @@
-# glibc cannot have itself in its rpath.
-export NIX_NO_SELF_RPATH=1
-export NIX_DONT_SET_RPATH=1
-
-source $stdenv/setup
-
-# Explicitly tell glibc to use our pwd, not /bin/pwd.
-export PWD_P=$(type -tP pwd)
-
-# Needed to install share/zoneinfo/zone.tab.
-export BASH_SHELL=$SHELL
-
-
-preConfigure() {
-
-    for i in configure io/ftwtest-sh; do
-        # Can't use substituteInPlace here because replace hasn't been
-        # built yet in the bootstrap.
-        sed -i "$i" -e "s^/bin/pwd^$PWD_P^g"
-    done
-
-    # In the glibc 2.6/2.7 tarballs C-translit.h is a little bit older
-    # than C-translit.h.in, forcing Make to rebuild it unnecessarily.
-    # This wouldn't be problem except that it requires Perl, which we
-    # don't want as a dependency in the Nixpkgs bootstrap.  So force
-    # the output file to be newer.
-    touch locale/C-translit.h
-    
-    mkdir ../build
-    cd ../build
-    
-    configureScript=../$sourceRoot/configure
-}
-
-
-postConfigure() {
-    # Hack: get rid of the `-static' flag set by the bootstrap stdenv.
-    # This has to be done *after* `configure' because it builds some
-    # test binaries.
-    export NIX_CFLAGS_LINK=
-    export NIX_LDFLAGS_BEFORE=
-}
-
-
-postInstall() {
-    if test -n "$installLocales"; then
-        make localedata/install-locales
-    fi
-    rm $out/etc/ld.so.cache
-    (cd $out/include && ln -s $kernelHeaders/include/* .) || exit 1
-
-    # Fix for NIXOS-54 (ldd not working on x86_64).  Make a symlink
-    # "lib64" to "lib".
-    if test -n "$is64bit"; then
-        ln -s lib $out/lib64
-    fi
-}
-
-
-genericBuild
diff --git a/pkgs/development/libraries/glibc/2.7/default.nix b/pkgs/development/libraries/glibc/2.7/default.nix
deleted file mode 100644
index 7eb34e88899a..000000000000
--- a/pkgs/development/libraries/glibc/2.7/default.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-{ stdenv, fetchurl, kernelHeaders
-, installLocales ? true
-, profilingLibraries ? false
-}:
-
-stdenv.mkDerivation {
-  name = "glibc-2.7";
-  builder = ./builder.sh;
-
-  src = fetchurl {
-    url = mirror://gnu/glibc/glibc-2.7.tar.bz2;
-    sha256 = "06j5q20l11x8kcrl9bg15xgb1pw0w82pazikxf4zvq2fmhiaa922";
-  };
-
-  inherit kernelHeaders installLocales;
-
-  inherit (stdenv) is64bit;
-
-  patches = [
-    /* Fix for NIXPKGS-79: when doing host name lookups, when
-       nsswitch.conf contains a line like
-       
-         hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
-
-       don't return an error when mdns4_minimal can't be found.  This
-       is a bug in Glibc: when a service can't be found, NSS should
-       continue to the next service unless "UNAVAIL=return" is set.
-       ("NOTFOUND=return" refers to the service returning a NOTFOUND
-       error, not the service itself not being found.)  The reason is
-       that the "status" variable (while initialised to UNAVAIL) is
-       outside of the loop that iterates over the services, the
-       "files" service sets status to NOTFOUND.  So when the call to
-       find "mdns4_minimal" fails, "status" will still be NOTFOUND,
-       and it will return instead of continuing to "dns".  Thus, the
-       line
-       
-         hosts: mdns4_minimal [NOTFOUND=return] dns mdns4
-
-       does work because "status" will contain UNAVAIL after the
-       failure to find mdns4_minimal. */
-    ./nss-skip-unavail.patch
-  ];
-
-  # `--with-tls --without-__thread' enables support for TLS but causes
-  # it not to be used.  Required if we don't want to barf on 2.4
-  # kernels.  Or something.
-  configureFlags="--enable-add-ons
-    --with-headers=${kernelHeaders}/include
-    ${if profilingLibraries then "--enable-profile" else "--disable-profile"}";
-
-  # Workaround for this bug:
-  #   http://sourceware.org/bugzilla/show_bug.cgi?id=411
-  # I.e. when gcc is compiled with --with-arch=i686, then the
-  # preprocessor symbol `__i686' will be defined to `1'.  This causes
-  # the symbol __i686.get_pc_thunk.dx to be mangled.
-  NIX_CFLAGS_COMPILE = "-U__i686";
-}
diff --git a/pkgs/development/libraries/glibc/2.7/nss-skip-unavail.patch b/pkgs/development/libraries/glibc/2.7/nss-skip-unavail.patch
deleted file mode 100644
index 4d29082f9419..000000000000
--- a/pkgs/development/libraries/glibc/2.7/nss-skip-unavail.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -rc glibc-2.7-orig/sysdeps/posix/getaddrinfo.c glibc-2.7/sysdeps/posix/getaddrinfo.c
-*** glibc-2.7-orig/sysdeps/posix/getaddrinfo.c	2007-10-17 18:05:12.000000000 +0200
---- glibc-2.7/sysdeps/posix/getaddrinfo.c	2008-04-08 12:17:09.000000000 +0200
-***************
-*** 498,505 ****
-  	  int no_data = 0;
-  	  int no_inet6_data = 0;
-  	  service_user *nip = NULL;
-- 	  enum nss_status inet6_status = NSS_STATUS_UNAVAIL;
-- 	  enum nss_status status = NSS_STATUS_UNAVAIL;
-  	  int no_more;
-  	  int old_res_options;
-  
---- 498,503 ----
-***************
-*** 689,694 ****
---- 687,694 ----
-  
-  	  while (!no_more)
-  	    {
-+               enum nss_status inet6_status = NSS_STATUS_UNAVAIL;
-+               enum nss_status status = NSS_STATUS_UNAVAIL;
-  	      nss_gethostbyname3_r fct = NULL;
-  	      if (req->ai_flags & AI_CANONNAME)
-  		/* No need to use this function if we do not look for
diff --git a/pkgs/development/libraries/glibc/2.9/binutils-2.20.patch b/pkgs/development/libraries/glibc/2.9/binutils-2.20.patch
deleted file mode 100644
index ab3d6144d6ee..000000000000
--- a/pkgs/development/libraries/glibc/2.9/binutils-2.20.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-Support GNU Binutils 2.20 and beyond.  Patch from
-http://sourceware.org/ml/libc-alpha/2009-09/msg00009.html .
-
-diff --git a/configure b/configure
-index 48e6952..b1d84d7 100755
---- a/configure
-+++ b/configure
-@@ -4841,7 +4841,7 @@ $as_echo_n "checking version of $AS... " >&6; }
-   ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
-   case $ac_prog_version in
-     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
--    2.1[3-9]*)
-+    2.1[3-9]*|[2-9].[2-9]*)
-        ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-     *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
- 
-@@ -4904,7 +4904,7 @@ $as_echo_n "checking version of $LD... " >&6; }
-   ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU ld.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'`
-   case $ac_prog_version in
-     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
--    2.1[3-9]*)
-+    2.1[3-9]*|[2-9].[2-9]*)
-        ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-     *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
- 
-diff --git a/configure.in b/configure.in
-index 4584afe..7c4f71f 100644
---- a/configure.in
-+++ b/configure.in
-@@ -897,10 +897,10 @@ AC_SUBST(MIG)dnl Needed by sysdeps/mach/configure.in
- # Accept binutils 2.13 or newer.
- AC_CHECK_PROG_VER(AS, $AS, --version,
- 		  [GNU assembler.* \([0-9]*\.[0-9.]*\)],
--		  [2.1[3-9]*], AS=: critic_missing="$critic_missing as")
-+		  [2.1[3-9]*|[2-9].[2-9]*], AS=: critic_missing="$critic_missing as")
- AC_CHECK_PROG_VER(LD, $LD, --version,
- 		  [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
--		  [2.1[3-9]*], LD=: critic_missing="$critic_missing ld")
-+		  [2.1[3-9]*|[2-9].[2-9]*], LD=: critic_missing="$critic_missing ld")
- 
- # We need the physical current working directory.  We cannot use the
- # "pwd -P" shell builtin since that's not portable.  Instead we try to
diff --git a/pkgs/development/libraries/glibc/2.9/binutils-ld.patch b/pkgs/development/libraries/glibc/2.9/binutils-ld.patch
deleted file mode 100644
index ae70f145ce0d..000000000000
--- a/pkgs/development/libraries/glibc/2.9/binutils-ld.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 7c8a67320e26b8c11108bf0a3410d3aef9cf3486 Mon Sep 17 00:00:00 2001
-From: Ulrich Drepper <drepper@redhat.com>
-Date: Sat, 31 Jan 2009 00:21:15 +0000
-Subject: [PATCH] * elf/Makefile (ld.so): Adjust the sed script to insert _begin in to
-
-	newer linker scripts.
----
- ChangeLog    |    5 +++++
- elf/Makefile |    4 ++--
- 2 files changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/elf/Makefile b/elf/Makefile
-index 8079fe9..e44ff1d 100644
---- a/elf/Makefile
-+++ b/elf/Makefile
-@@ -1,4 +1,4 @@
--# Copyright (C) 1995-2007, 2008 Free Software Foundation, Inc.
-+# Copyright (C) 1995-2007, 2008, 2009 Free Software Foundation, Inc.
- # This file is part of the GNU C Library.
- 
- # The GNU C Library is free software; you can redistribute it and/or
-@@ -304,7 +304,7 @@ $(objpfx)ld.so: $(objpfx)librtld.os $(ld-map)
- 		  $(LDFLAGS-rtld) -Wl,-z,defs -Wl,--verbose 2>&1 |	\
- 		  LC_ALL=C \
- 		  sed -e '/^=========/,/^=========/!d;/^=========/d'	\
--		      -e 's/\. = 0 + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \
-+		      -e 's/\. = .* + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \
- 		  > $@.lds
- 	$(LINK.o) -nostdlib -nostartfiles -shared -o $@			\
- 		  $(LDFLAGS-rtld) -Wl,-z,defs $(z-now-$(bind-now))	\
--- 
-1.6.4
-
diff --git a/pkgs/development/libraries/glibc/2.9/builder.sh b/pkgs/development/libraries/glibc/2.9/builder.sh
deleted file mode 100644
index c81a3ac2a9e9..000000000000
--- a/pkgs/development/libraries/glibc/2.9/builder.sh
+++ /dev/null
@@ -1,85 +0,0 @@
-# Glibc cannot have itself in its RPATH.
-export NIX_NO_SELF_RPATH=1
-
-source $stdenv/setup
-
-# Explicitly tell glibc to use our pwd, not /bin/pwd.
-export PWD_P=$(type -tP pwd)
-
-# Needed to install share/zoneinfo/zone.tab.  Set to impure /bin/sh to
-# prevent a retained dependency on the bootstrap tools in the
-# stdenv-linux bootstrap.
-export BASH_SHELL=/bin/sh
-
-
-preConfigure() {
-
-    for i in configure io/ftwtest-sh; do
-        # Can't use substituteInPlace here because replace hasn't been
-        # built yet in the bootstrap.
-        sed -i "$i" -e "s^/bin/pwd^$PWD_P^g"
-    done
-
-    # In the glibc 2.6/2.7 tarballs C-translit.h is a little bit older
-    # than C-translit.h.in, forcing Make to rebuild it unnecessarily.
-    # This wouldn't be problem except that it requires Perl, which we
-    # don't want as a dependency in the Nixpkgs bootstrap.  So force
-    # the output file to be newer.
-    touch locale/C-translit.h
-
-    tar xvjf "$srcPorts"
-    
-    if test -n "$crossConfig"; then
-        sed -i s/-lgcc_eh//g Makeconfig
-    fi
-
-    mkdir build
-    cd build
-    
-    configureScript=../configure
-    if test -n "$crossConfig"; then
-        cat > config.cache << "EOF"
-libc_cv_forced_unwind=yes
-libc_cv_c_cleanup=yes
-libc_cv_gnu89_inline=yes
-EOF
-        export BUILD_CC=gcc
-        export CC="${crossConfig}-gcc"
-        export AR="${crossConfig}-ar"
-        export RANLIB="${crossConfig}-ranlib"
-        configureFlags="${configureFlags} --cache-file=config.cache"
-
-        # Disable the native stripping, because it breaks libc_nonshared.a
-        dontStrip=1
-    fi
-}
-
-
-postConfigure() {
-    # Hack: get rid of the `-static' flag set by the bootstrap stdenv.
-    # This has to be done *after* `configure' because it builds some
-    # test binaries.
-    export NIX_CFLAGS_LINK=
-    export NIX_LDFLAGS_BEFORE=
-
-    export NIX_DONT_SET_RPATH=1
-    unset CFLAGS
-}
-
-
-postInstall() {
-    if test -n "$installLocales"; then
-        make localedata/install-locales
-    fi
-    test -f $out/etc/ld.so.cache && rm $out/etc/ld.so.cache
-    (cd $out/include && ln -s $kernelHeaders/include/* .) || exit 1
-
-    # Fix for NIXOS-54 (ldd not working on x86_64).  Make a symlink
-    # "lib64" to "lib".
-    if test -n "$is64bit"; then
-        ln -s lib $out/lib64
-    fi
-}
-
-
-genericBuild
diff --git a/pkgs/development/libraries/glibc/2.9/default.nix b/pkgs/development/libraries/glibc/2.9/default.nix
deleted file mode 100644
index 7d42825206e2..000000000000
--- a/pkgs/development/libraries/glibc/2.9/default.nix
+++ /dev/null
@@ -1,103 +0,0 @@
-{ stdenv, fetchurl, kernelHeaders
-, installLocales ? true
-, profilingLibraries ? false
-, gccCross ? null
-}:
-let
-    cross = if gccCross != null then gccCross.target else null;
-in
-stdenv.mkDerivation rec {
-  name = "glibc-2.9" +
-    stdenv.lib.optionalString (cross != null) "-${cross.config}";
-
-  builder = ./builder.sh;
-
-  src = fetchurl {
-    url = http://ftp.gnu.org/gnu/glibc/glibc-2.9.tar.bz2;
-    sha256 = "0v53m7flx6qcx7cvrvvw6a4dx4x3y6k8nvpc4wfv5xaaqy2am2q9";
-  };
-
-  srcPorts = fetchurl {
-    url = http://ftp.gnu.org/gnu/glibc/glibc-ports-2.9.tar.bz2;
-    sha256 = "0r2sn527wxqifi63di7ns9wbjh1cainxn978w178khhy7yw9fk42";
-  };
-
-  inherit kernelHeaders installLocales;
-  crossConfig = if (cross != null) then cross.config else null;
-
-  inherit (stdenv) is64bit;
-
-  patches = [
-    /* Fix for NIXPKGS-79: when doing host name lookups, when
-       nsswitch.conf contains a line like
-
-         hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
-
-       don't return an error when mdns4_minimal can't be found.  This
-       is a bug in Glibc: when a service can't be found, NSS should
-       continue to the next service unless "UNAVAIL=return" is set.
-       ("NOTFOUND=return" refers to the service returning a NOTFOUND
-       error, not the service itself not being found.)  The reason is
-       that the "status" variable (while initialised to UNAVAIL) is
-       outside of the loop that iterates over the services, the
-       "files" service sets status to NOTFOUND.  So when the call to
-       find "mdns4_minimal" fails, "status" will still be NOTFOUND,
-       and it will return instead of continuing to "dns".  Thus, the
-       line
-
-         hosts: mdns4_minimal [NOTFOUND=return] dns mdns4
-
-       does work because "status" will contain UNAVAIL after the
-       failure to find mdns4_minimal. */
-    ./nss-skip-unavail.patch
-
-    /* Make it possible to override the locale-archive in NixOS. */
-    ./locale-override.patch
-
-    /* Have rpcgen(1) look for cpp(1) in $PATH.  */
-    ./rpcgen-path.patch
-
-    /* Support GNU Binutils 2.20 and above.  */
-    ./binutils-2.20.patch
-
-    ./binutils-ld.patch
-  ];
-
-  configureFlags = [
-    "--enable-add-ons"
-    "--with-headers=${kernelHeaders}/include"
-    (if profilingLibraries then "--enable-profile" else "--disable-profile")
-  ] ++ stdenv.lib.optionals (cross != null) [
-    "--with-tls"
-    "--enable-kernel=2.6.0"
-    "--without-fp"
-    "--with-__thread"
-  ] ++ (if stdenv.isArm then [
-    "--host=arm-linux-gnueabi"
-    "--build=arm-linux-gnueabi"
-    "--without-fp"
-  ] else []);
-
-  buildNativeInputs = stdenv.lib.optionals (cross != null) [ gccCross ];
-
-  preInstall = if (cross != null) then ''
-    mkdir -p $out/lib
-    ln -s ${stdenv.gcc.gcc}/lib/libgcc_s.so.1 $out/lib/libgcc_s.so.1
-  '' else "";
-
-  postInstall = if (cross != null) then ''
-    rm $out/lib/libgcc_s.so.1
-  '' else "";
-
-  # Workaround for this bug:
-  #   http://sourceware.org/bugzilla/show_bug.cgi?id=411
-  # I.e. when gcc is compiled with --with-arch=i686, then the
-  # preprocessor symbol `__i686' will be defined to `1'.  This causes
-  # the symbol __i686.get_pc_thunk.dx to be mangled.
-  NIX_CFLAGS_COMPILE = "-U__i686";
-
-  meta = {
-    homepage = http://www.gnu.org/software/libc/;
-    description = "The GNU C Library";
-  };
-}
diff --git a/pkgs/development/libraries/glibc/2.9/headers.nix b/pkgs/development/libraries/glibc/2.9/headers.nix
deleted file mode 100644
index 7adeb11c8bc1..000000000000
--- a/pkgs/development/libraries/glibc/2.9/headers.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ stdenv, fetchurl, kernelHeaders
-, profilingLibraries ? false
-}:
-
-stdenv.mkDerivation rec {
-  name = "glibc-headers-2.9";
-
-  builder = ./headersbuilder.sh;
-
-  src = fetchurl {
-    url = http://ftp.gnu.org/gnu/glibc/glibc-2.9.tar.bz2;
-    sha256 = "0v53m7flx6qcx7cvrvvw6a4dx4x3y6k8nvpc4wfv5xaaqy2am2q9";
-  };
-
-  srcPorts = fetchurl {
-    url = http://ftp.gnu.org/gnu/glibc/glibc-ports-2.9.tar.bz2;
-    sha256 = "0r2sn527wxqifi63di7ns9wbjh1cainxn978w178khhy7yw9fk42";
-  };
-
-  inherit kernelHeaders;
-
-  inherit (stdenv) is64bit;
-
-  patches = [
-    /* Support GNU Binutils 2.20 and above.  */
-    ./binutils-2.20.patch
-  ];
-
-  configureFlags = [
-    "--enable-add-ons"
-    "--with-headers=${kernelHeaders}/include"
-    "--disable-sanity-checks"
-    "--enable-hacker-mode"
-    (if profilingLibraries then "--enable-profile" else "--disable-profile")
-  ] ++ (if stdenv.isArm then [
-    "--host=arm-linux-gnueabi"
-    "--build=arm-linux-gnueabi"
-    "--without-fp"
-  ] else []);
-
-  buildPhase = "true";
-
-  # I took some tricks from crosstool-0.43
-  installPhase = ''
-    make cross-compiling=yes CFLAGS=-DBOOTSTRAP_GCC install-headers
-    mkdir -p $out/include/gnu
-    touch $out/include/gnu/stubs.h
-    cp ../include/features.h $out/include/features.h
-    (cd $out/include && ln -s $kernelHeaders/include/* .) || exit 1
-  '';
-
-  # Workaround for this bug:
-  #   http://sourceware.org/bugzilla/show_bug.cgi?id=411
-  # I.e. when gcc is compiled with --with-arch=i686, then the
-  # preprocessor symbol `__i686' will be defined to `1'.  This causes
-  # the symbol __i686.get_pc_thunk.dx to be mangled.
-  NIX_CFLAGS_COMPILE = "-U__i686";
-
-  meta = {
-    homepage = http://www.gnu.org/software/libc/;
-    description = "The GNU C Library";
-  };
-}
diff --git a/pkgs/development/libraries/glibc/2.9/headersbuilder.sh b/pkgs/development/libraries/glibc/2.9/headersbuilder.sh
deleted file mode 100644
index 23f4bd4cc619..000000000000
--- a/pkgs/development/libraries/glibc/2.9/headersbuilder.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-# Glibc cannot have itself in its RPATH.
-export NIX_NO_SELF_RPATH=1
-
-source $stdenv/setup
-
-# Explicitly tell glibc to use our pwd, not /bin/pwd.
-export PWD_P=$(type -tP pwd)
-
-# Needed to install share/zoneinfo/zone.tab.  Set to impure /bin/sh to
-# prevent a retained dependency on the bootstrap tools in the
-# stdenv-linux bootstrap.
-export BASH_SHELL=/bin/sh
-
-
-preConfigure() {
-
-    for i in configure io/ftwtest-sh; do
-        # Can't use substituteInPlace here because replace hasn't been
-        # built yet in the bootstrap.
-        sed -i "$i" -e "s^/bin/pwd^$PWD_P^g"
-    done
-
-    # In the glibc 2.6/2.7 tarballs C-translit.h is a little bit older
-    # than C-translit.h.in, forcing Make to rebuild it unnecessarily.
-    # This wouldn't be problem except that it requires Perl, which we
-    # don't want as a dependency in the Nixpkgs bootstrap.  So force
-    # the output file to be newer.
-    touch locale/C-translit.h
-
-    tar xvjf "$srcPorts"
-    
-    mkdir build
-    cd build
-    
-    configureScript=../configure
-}
-
-genericBuild
diff --git a/pkgs/development/libraries/glibc/2.9/info.nix b/pkgs/development/libraries/glibc/2.9/info.nix
deleted file mode 100644
index cc79bbece3d2..000000000000
--- a/pkgs/development/libraries/glibc/2.9/info.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-{ stdenv, fetchurl, texinfo, perl }:
-
-stdenv.mkDerivation rec {
-  name = "glibc-info-2.9";
-  
-  src = fetchurl {
-    url = http://nixos.org/tarballs/glibc-2.9-20081208.tar.bz2;
-    sha256 = "0zhxbgcsl97pf349m0lz8d5ljvvzrcqc23yf08d888xlk4ms8m3h";
-  };
-
-  patches = [
-    /* Support GNU Binutils 2.20 and above.  */
-    ./binutils-2.20.patch
-  ];
-
-  preConfigure = ''
-    export PWD_P=$(type -tP pwd)
-    for i in configure io/ftwtest-sh; do
-        # Can't use substituteInPlace here because replace hasn't been
-        # built yet in the bootstrap.
-        sed -i "$i" -e "s^/bin/pwd^$PWD_P^g"
-    done
-    mkdir ../build
-    cd ../build
-    
-    configureScript=../$sourceRoot/configure
-  '';
-
-  configureFlags = [ "--enable-add-ons" ];
-
-  buildInputs = [ texinfo perl ];
-
-  buildPhase = "make info";
-
-  # I don't know why the info is not generated in 'build'
-  # Somehow building the info still does not work, because the final
-  # libc.info hasn't a Top node.
-  installPhase = ''
-    mkdir -p $out/share/info
-    cp ../$sourceRoot/manual/*.info $out/share/info
-  '';
-
-  meta = {
-    homepage = http://www.gnu.org/software/libc/;
-    description = "Locale information for the GNU C Library";
-  };
-}
diff --git a/pkgs/development/libraries/glibc/2.9/locale-override.patch b/pkgs/development/libraries/glibc/2.9/locale-override.patch
deleted file mode 100644
index 108d0e35dacf..000000000000
--- a/pkgs/development/libraries/glibc/2.9/locale-override.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-diff -rc glibc-2.9-20081208-orig/locale/loadarchive.c glibc-2.9-20081208/locale/loadarchive.c
-*** glibc-2.9-20081208-orig/locale/loadarchive.c	2005-09-09 18:56:52.000000000 +0200
---- glibc-2.9-20081208/locale/loadarchive.c	2009-04-19 13:54:26.000000000 +0200
-***************
-*** 124,129 ****
---- 124,142 ----
-  }
-  
-  
-+ static int
-+ open_locale_archive ()
-+ {
-+   int fd = -1;
-+   char *path = getenv ("LOCALE_ARCHIVE");
-+   if (path)
-+     fd = open_not_cancel_2 (path, O_RDONLY|O_LARGEFILE);
-+   if (fd < 0)
-+     fd = open_not_cancel_2 (archfname, O_RDONLY|O_LARGEFILE);
-+   return fd;
-+ }
-+ 
-+ 
-  /* Find the locale *NAMEP in the locale archive, and return the
-     internalized data structure for its CATEGORY data.  If this locale has
-     already been loaded from the archive, just returns the existing data
-***************
-*** 203,209 ****
-        archmapped = &headmap;
-  
-        /* The archive has never been opened.  */
-!       fd = open_not_cancel_2 (archfname, O_RDONLY|O_LARGEFILE);
-        if (fd < 0)
-  	/* Cannot open the archive, for whatever reason.  */
-  	return NULL;
---- 216,222 ----
-        archmapped = &headmap;
-  
-        /* The archive has never been opened.  */
-!       fd = open_locale_archive ();
-        if (fd < 0)
-  	/* Cannot open the archive, for whatever reason.  */
-  	return NULL;
-***************
-*** 394,400 ****
-  	  if (fd == -1)
-  	    {
-  	      struct stat64 st;
-! 	      fd = open_not_cancel_2 (archfname, O_RDONLY|O_LARGEFILE);
-  	      if (fd == -1)
-  		/* Cannot open the archive, for whatever reason.  */
-  		return NULL;
---- 407,413 ----
-  	  if (fd == -1)
-  	    {
-  	      struct stat64 st;
-! 	      fd = open_locale_archive ();
-  	      if (fd == -1)
-  		/* Cannot open the archive, for whatever reason.  */
-  		return NULL;
-diff -rc glibc-2.9-20081208-orig/sysdeps/generic/unsecvars.h glibc-2.9-20081208/sysdeps/generic/unsecvars.h
-*** glibc-2.9-20081208-orig/sysdeps/generic/unsecvars.h	2006-10-11 18:24:05.000000000 +0200
---- glibc-2.9-20081208/sysdeps/generic/unsecvars.h	2009-04-19 13:55:34.000000000 +0200
-***************
-*** 16,21 ****
---- 16,22 ----
-    "LD_SHOW_AUXV\0"							      \
-    "LD_USE_LOAD_BIAS\0"							      \
-    "LOCALDOMAIN\0"							      \
-+   "LOCALE_ARCHIVE\0"							      \
-    "LOCPATH\0"								      \
-    "MALLOC_TRACE\0"							      \
-    "NIS_PATH\0"								      \
diff --git a/pkgs/development/libraries/glibc/2.9/locales.nix b/pkgs/development/libraries/glibc/2.9/locales.nix
deleted file mode 100644
index a1fe9f82f143..000000000000
--- a/pkgs/development/libraries/glibc/2.9/locales.nix
+++ /dev/null
@@ -1,67 +0,0 @@
-/* This function builds just the `lib/locale/locale-archive' file from
-   Glibc and nothing else.  If `allLocales' is true, all supported
-   locales are included; otherwise, just the locales listed in
-   `locales'.  See localedata/SUPPORTED in the Glibc source tree for
-   the list of all supported locales:
-   http://sourceware.org/cgi-bin/cvsweb.cgi/libc/localedata/SUPPORTED?cvsroot=glibc
-*/
-
-{ stdenv, fetchurl, allLocales ? true, locales ? ["en_US.UTF-8/UTF-8"] }:
-
-stdenv.mkDerivation rec {
-  name = "glibc-locales-2.9";
-
-  builder = ./localesbuilder.sh;
-
-  src = fetchurl {
-    url = http://ftp.gnu.org/gnu/glibc/glibc-2.9.tar.bz2;
-    sha256 = "0v53m7flx6qcx7cvrvvw6a4dx4x3y6k8nvpc4wfv5xaaqy2am2q9";
-  };
-
-  srcPorts = fetchurl {
-    url = http://ftp.gnu.org/gnu/glibc/glibc-ports-2.9.tar.bz2;
-    sha256 = "0r2sn527wxqifi63di7ns9wbjh1cainxn978w178khhy7yw9fk42";
-  };
-
-  inherit (stdenv) is64bit;
-
-  configureFlags = [
-    "--enable-add-ons"
-    "--without-headers"
-    "--disable-profile"
-  ] ++ (if stdenv.isArm then [
-    "--host=arm-linux-gnueabi"
-    "--build=arm-linux-gnueabi"
-    "--without-fp"
-  ] else []);
-
-  patches = [
-    /* Support GNU Binutils 2.20 and above.  */
-    ./binutils-2.20.patch
-  ];
-
-  # Awful hack: `localedef' doesn't allow the path to `locale-archive'
-  # to be overriden, but you *can* specify a prefix, i.e. it will use
-  # <prefix>/<path-to-glibc>/lib/locale/locale-archive.  So we use
-  # $TMPDIR as a prefix, meaning that the locale-archive is placed in
-  # $TMPDIR/nix/store/...-glibc-.../lib/locale/locale-archive.
-  buildPhase =
-    ''
-      mkdir -p $TMPDIR/"$(dirname $(readlink -f $(type -p localedef)))/../lib/locale"
-      make localedata/install-locales \
-          LOCALEDEF="localedef --prefix=$TMPDIR" \
-          localedir=$out/lib/locale \
-          ${if allLocales then "" else "SUPPORTED-LOCALES=\"${toString locales}\""}
-    '';
-
-  installPhase =
-    ''
-      mkdir -p $out/lib/locale
-      cp $TMPDIR/nix/store/*/lib/locale/locale-archive $out/lib/locale/
-    '';
-
-  meta = {
-    homepage = http://www.gnu.org/software/libc/;
-    description = "Locale information for the GNU C Library";
-  };
-}
diff --git a/pkgs/development/libraries/glibc/2.9/localesbuilder.sh b/pkgs/development/libraries/glibc/2.9/localesbuilder.sh
deleted file mode 100644
index a28f6bcbaeb3..000000000000
--- a/pkgs/development/libraries/glibc/2.9/localesbuilder.sh
+++ /dev/null
@@ -1,50 +0,0 @@
-# Glibc cannot have itself in its RPATH.
-export NIX_NO_SELF_RPATH=1
-
-source $stdenv/setup
-
-# Explicitly tell glibc to use our pwd, not /bin/pwd.
-export PWD_P=$(type -tP pwd)
-
-# Needed to install share/zoneinfo/zone.tab.  Set to impure /bin/sh to
-# prevent a retained dependency on the bootstrap tools in the
-# stdenv-linux bootstrap.
-export BASH_SHELL=/bin/sh
-
-
-preConfigure() {
-
-    for i in configure io/ftwtest-sh; do
-        # Can't use substituteInPlace here because replace hasn't been
-        # built yet in the bootstrap.
-        sed -i "$i" -e "s^/bin/pwd^$PWD_P^g"
-    done
-
-    # In the glibc 2.6/2.7 tarballs C-translit.h is a little bit older
-    # than C-translit.h.in, forcing Make to rebuild it unnecessarily.
-    # This wouldn't be problem except that it requires Perl, which we
-    # don't want as a dependency in the Nixpkgs bootstrap.  So force
-    # the output file to be newer.
-    touch locale/C-translit.h
-
-    tar xvjf "$srcPorts"
-    
-    mkdir build
-    cd build
-    
-    configureScript=../configure
-}
-
-
-postConfigure() {
-    # Hack: get rid of the `-static' flag set by the bootstrap stdenv.
-    # This has to be done *after* `configure' because it builds some
-    # test binaries.
-    export NIX_CFLAGS_LINK=
-    export NIX_LDFLAGS_BEFORE=
-
-    export NIX_DONT_SET_RPATH=1
-    unset CFLAGS
-}
-
-genericBuild
diff --git a/pkgs/development/libraries/glibc/2.9/nss-skip-unavail.patch b/pkgs/development/libraries/glibc/2.9/nss-skip-unavail.patch
deleted file mode 100644
index dc09b5098707..000000000000
--- a/pkgs/development/libraries/glibc/2.9/nss-skip-unavail.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -rc glibc-2.9-20081208-orig/sysdeps/posix/getaddrinfo.c glibc-2.9-20081208/sysdeps/posix/getaddrinfo.c
-*** glibc-2.9-20081208-orig/sysdeps/posix/getaddrinfo.c	2008-07-30 21:14:22.000000000 +0200
---- glibc-2.9-20081208/sysdeps/posix/getaddrinfo.c	2008-12-10 11:39:32.000000000 +0100
-***************
-*** 505,512 ****
-  	  int no_data = 0;
-  	  int no_inet6_data = 0;
-  	  service_user *nip = NULL;
-- 	  enum nss_status inet6_status = NSS_STATUS_UNAVAIL;
-- 	  enum nss_status status = NSS_STATUS_UNAVAIL;
-  	  int no_more;
-  	  int old_res_options;
-  
---- 505,510 ----
-***************
-*** 702,707 ****
---- 700,707 ----
-  
-  	  while (!no_more)
-  	    {
-+ 	      enum nss_status inet6_status = NSS_STATUS_UNAVAIL;
-+ 	      enum nss_status status = NSS_STATUS_UNAVAIL;
-  	      nss_gethostbyname4_r fct4
-  		= __nss_lookup_function (nip, "gethostbyname4_r");
-  	      if (fct4 != NULL)
diff --git a/pkgs/development/libraries/glibc/2.9/rpcgen-path.patch b/pkgs/development/libraries/glibc/2.9/rpcgen-path.patch
deleted file mode 100644
index fbb03dd5fade..000000000000
--- a/pkgs/development/libraries/glibc/2.9/rpcgen-path.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-By default, rpcgen(1) looks for cpp(1) from a list of fixed absolute paths
-(`/lib/cpp', etc.), which may only be overrided with the `-Y' option.  This
-patch makes it run any `cpp' command found in $PATH.
-
---- glibc-2.7/sunrpc/rpc_main.c	2006-11-10 21:54:46.000000000 +0100
-+++ glibc-2.7/sunrpc/rpc_main.c	2009-04-22 14:32:10.000000000 +0200
-@@ -79,7 +79,7 @@ static const char *cmdname;
- 
- static const char *svcclosetime = "120";
- static int cppDefined;	/* explicit path for C preprocessor */
--static const char *CPP = SUNOS_CPP;
-+static const char *CPP = "cpp";
- static const char CPPFLAGS[] = "-C";
- static char *pathbuf;
- static int cpp_pid;
-@@ -108,7 +108,6 @@ static char *extendfile (const char *fil
- static void open_output (const char *infile, const char *outfile);
- static void add_warning (void);
- static void clear_args (void);
--static void find_cpp (void);
- static void open_input (const char *infile, const char *define);
- static int check_nettype (const char *name, const char *list_to_check[]);
- static void c_output (const char *infile, const char *define,
-@@ -327,31 +326,6 @@ clear_args (void)
-   argcount = FIXEDARGS;
- }
- 
--/* make sure that a CPP exists */
--static void
--find_cpp (void)
--{
--  struct stat buf;
--
--  if (stat (CPP, &buf) < 0)
--    {				/* /lib/cpp or explicit cpp does not exist */
--      if (cppDefined)
--	{
--	  fprintf (stderr, _ ("cannot find C preprocessor: %s \n"), CPP);
--	  crash ();
--	}
--      else
--	{			/* try the other one */
--	  CPP = SVR4_CPP;
--	  if (stat (CPP, &buf) < 0)
--	    {			/* can't find any cpp */
--	      fputs (_ ("cannot find any C preprocessor (cpp)\n"), stdout);
--	      crash ();
--	    }
--	}
--    }
--}
--
- /*
-  * Open input file with given define for C-preprocessor
-  */
-@@ -370,7 +344,6 @@ open_input (const char *infile, const ch
-   switch (cpp_pid)
-     {
-     case 0:
--      find_cpp ();
-       putarg (0, CPP);
-       putarg (1, CPPFLAGS);
-       addarg (define);
-@@ -380,7 +353,7 @@ open_input (const char *infile, const ch
-       close (1);
-       dup2 (pd[1], 1);
-       close (pd[0]);
--      execv (arglist[0], (char **) arglist);
-+      execvp (arglist[0], (char **) arglist);
-       perror ("execv");
-       exit (1);
-     case -1:
diff --git a/pkgs/development/libraries/glibmm/default.nix b/pkgs/development/libraries/glibmm/default.nix
index 05efa2757568..962b14bc7888 100644
--- a/pkgs/development/libraries/glibmm/default.nix
+++ b/pkgs/development/libraries/glibmm/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "1i4jsvahva2q0mig7kjnpsw0r3fnpybm8b6hzymfm2hpgqnaa9dl";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   propagatedBuildInputs = [ glib gdk_pixbuf libsigcxx ];
 
   meta = {
diff --git a/pkgs/development/libraries/gmp/4.3.2.nix b/pkgs/development/libraries/gmp/4.3.2.nix
index d25b69411538..df7bd0ea3b96 100644
--- a/pkgs/development/libraries/gmp/4.3.2.nix
+++ b/pkgs/development/libraries/gmp/4.3.2.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "0x8prpqi9amfcmi7r4zrza609ai9529pjaq0h4aw51i867064qck";
   };
 
-  buildNativeInputs = [ m4 ];
+  nativeBuildInputs = [ m4 ];
 
   # Prevent the build system from using sub-architecture-specific
   # instructions (e.g., SSE2 on i686).
diff --git a/pkgs/development/libraries/gmp/5.0.5.nix b/pkgs/development/libraries/gmp/5.0.5.nix
index c1cc36105ad2..461187a509cd 100644
--- a/pkgs/development/libraries/gmp/5.0.5.nix
+++ b/pkgs/development/libraries/gmp/5.0.5.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   patches = [ ./ignore-bad-cpuid.patch ];
 
-  buildNativeInputs = [ m4 ];
+  nativeBuildInputs = [ m4 ];
 
   configureFlags =
     # Build a "fat binary", with routines for several sub-architectures
diff --git a/pkgs/development/libraries/gmp/5.1.1.nix b/pkgs/development/libraries/gmp/5.1.1.nix
new file mode 100644
index 000000000000..0261f833962e
--- /dev/null
+++ b/pkgs/development/libraries/gmp/5.1.1.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, m4, cxx ? true }:
+
+stdenv.mkDerivation rec {
+  name = "gmp-5.1.1";
+
+  src = fetchurl {
+    urls = [ "mirror://gnu/gmp/${name}.tar.bz2" "ftp://ftp.gmplib.org/pub/${name}/${name}.tar.bz2" ];
+    sha256 = "1bdgf04k2i12pfivxgjq68iarz3ngix9hpzbmkgijrdk92gpgm50";
+  };
+
+  nativeBuildInputs = [ m4 ];
+
+  configureFlags =
+    # Build a "fat binary", with routines for several sub-architectures
+    # (x86), except on Solaris where some tests crash with "Memory fault".
+    # See <http://hydra.nixos.org/build/2760931>, for instance.
+    (stdenv.lib.optional (!stdenv.isSunOS) "--enable-fat")
+    ++ (if cxx then [ "--enable-cxx" ] else [ "--disable-cxx" ]);
+
+  doCheck = true;
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = "http://gmplib.org/";
+    description = "GMP, the GNU multiple precision arithmetic library";
+    license = stdenv.lib.licenses.gpl3Plus;
+
+    longDescription =
+      '' GMP is a free library for arbitrary precision arithmetic, operating
+         on signed integers, rational numbers, and floating point numbers.
+         There is no practical limit to the precision except the ones implied
+         by the available memory in the machine GMP runs on.  GMP has a rich
+         set of functions, and the functions have a regular interface.
+
+         The main target applications for GMP are cryptography applications
+         and research, Internet security applications, algebra systems,
+         computational algebra research, etc.
+
+         GMP is carefully designed to be as fast as possible, both for small
+         operands and for huge operands.  The speed is achieved by using
+         fullwords as the basic arithmetic type, by using fast algorithms,
+         with highly optimised assembly code for the most common inner loops
+         for a lot of CPUs, and by a general emphasis on speed.
+
+         GMP is faster than any other bignum library.  The advantage for GMP
+         increases with the operand sizes for many operations, since GMP uses
+         asymptotically faster algorithms.
+      '';
+
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.ludo stdenv.lib.maintainers.simons ];
+  };
+}
diff --git a/pkgs/development/libraries/gnutls/2.12.nix b/pkgs/development/libraries/gnutls/2.12.nix
index cbb72754b1bf..85a676a05b1f 100644
--- a/pkgs/development/libraries/gnutls/2.12.nix
+++ b/pkgs/development/libraries/gnutls/2.12.nix
@@ -5,11 +5,11 @@ assert guileBindings -> guile != null;
 
 stdenv.mkDerivation rec {
 
-  name = "gnutls-2.12.11";
+  name = "gnutls-2.12.23";
 
-  src = fetchurl {
-    url = "mirror://gnu/gnutls/${name}.tar.bz2";
-    sha256 = "0q0kk69y1vpdxdz0mxqw603zi2y5kkgz3rvinc6bv6z9mwd8xd80";
+  src = fetchurl { # missing on standard mirrors
+    url = "ftp://ftp.gnutls.org/gcrypt/gnutls/v2.12/${name}.tar.bz2";
+    sha256 = "1lkys703z4yxfgzarmgas5ccvn6m254w9wvm7s8v0zkj81z7m9nz";
   };
 
   configurePhase = ''
diff --git a/pkgs/development/libraries/gnutls/default.nix b/pkgs/development/libraries/gnutls/default.nix
index a1c1f3f357f4..c1dab82e37a2 100644
--- a/pkgs/development/libraries/gnutls/default.nix
+++ b/pkgs/development/libraries/gnutls/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation (rec {
   buildInputs = [ zlib lzo ]
     ++ stdenv.lib.optional guileBindings guile;
 
-  buildNativeInputs = [ perl ];
+  nativeBuildInputs = [ perl ];
 
   propagatedBuildInputs = [ nettle libtasn1 ];
 
diff --git a/pkgs/development/libraries/goffice/default.nix b/pkgs/development/libraries/goffice/default.nix
index 1eaa1baf86d6..14da5f3468b4 100644
--- a/pkgs/development/libraries/goffice/default.nix
+++ b/pkgs/development/libraries/goffice/default.nix
@@ -10,6 +10,9 @@ stdenv.mkDerivation rec {
     sha256 = "165070beb67b84580afe80a8a100b674a81d553ab791acd72ac0c655f4fadb15";
   };
 
+  # fix linking error: undefined reference to pcre_info
+  patches = [ ./pcre_info.patch ]; # inspired by https://bugs.php.net/bug.php?id=60986
+
   buildInputs = [
     pkgconfig libglade bzip2 libart intltool gettext
     gconf libgnomeui pcre
diff --git a/pkgs/development/libraries/goffice/pcre_info.patch b/pkgs/development/libraries/goffice/pcre_info.patch
new file mode 100644
index 000000000000..cd4ef3c9fed7
--- /dev/null
+++ b/pkgs/development/libraries/goffice/pcre_info.patch
@@ -0,0 +1,13 @@
+diff --git a/goffice/utils/regutf8.c b/goffice/utils/regutf8.c
+index bc4aae4..3adb696 100644
+--- a/goffice/utils/regutf8.c
++++ b/goffice/utils/regutf8.c
+@@ -155,7 +155,7 @@ go_regcomp (GORegexp *gor, const char *pat, int cflags)
+ 		default: return GO_REG_BADPAT;
+ 		}
+ 	} else {
+-		gor->re_nsub = pcre_info (r, NULL, NULL);
++		gor->re_nsub = pcre_fullinfo (r, NULL, NULL, NULL);
+ 		gor->nosub = (cflags & GO_REG_NOSUB) != 0;
+ 		return 0;
+ 	}
diff --git a/pkgs/development/libraries/google-perftools/default.nix b/pkgs/development/libraries/google-perftools/default.nix
deleted file mode 100644
index 7935a794a2ff..000000000000
--- a/pkgs/development/libraries/google-perftools/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{stdenv, fetchurl, libunwind}:
-
-stdenv.mkDerivation rec {
-  name = "google-perftools-1.8.3";
-  src = fetchurl {
-    url = "http://google-perftools.googlecode.com/files/${name}.tar.gz";
-    sha256 = "0ncx3a8jl6n38q9bjnaz5sq96yb6yh99j3bl64k3295v9arl9mva";
-  };
-  buildInputs = [libunwind];
-  meta = {
-    description = "Fast, multi-threaded malloc() and nifty performance analysis tools.";
-    platforms = stdenv.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/development/libraries/gperftools/default.nix b/pkgs/development/libraries/gperftools/default.nix
new file mode 100644
index 000000000000..76d1d8c41f75
--- /dev/null
+++ b/pkgs/development/libraries/gperftools/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, libunwind }:
+
+stdenv.mkDerivation rec {
+  name = "gperftools-2.0";
+
+  src = fetchurl {
+    url = "https://gperftools.googlecode.com/files/${name}.tar.gz";
+    sha1 = "da7181a7ba9b5ee7302daf6c16e886c179fe8d1b";
+  };
+
+  patches = [ ./glibc-2.16.patch ];
+
+  buildInputs = [ libunwind ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = https://code.google.com/p/gperftools/;
+    description = "Fast, multi-threaded malloc() and nifty performance analysis tools";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/gperftools/glibc-2.16.patch b/pkgs/development/libraries/gperftools/glibc-2.16.patch
new file mode 100644
index 000000000000..b17e0d57f5fb
--- /dev/null
+++ b/pkgs/development/libraries/gperftools/glibc-2.16.patch
@@ -0,0 +1,13 @@
+Index: gperftools-2.0/src/base/linuxthreads.cc
+===================================================================
+--- gperftools-2.0.orig/src/base/linuxthreads.cc
++++ gperftools-2.0/src/base/linuxthreads.cc
+@@ -193,7 +193,7 @@ static volatile int *sig_pids, sig_num_t
+ /* Signal handler to help us recover from dying while we are attached to
+  * other threads.
+  */
+-static void SignalHandler(int signum, siginfo_t *si, void *data) {
++static void SignalHandler(int signum, struct siginfo *si, void *data) {
+   if (sig_pids != NULL) {
+     if (signum == SIGABRT) {
+       while (sig_num_threads-- > 0) {
diff --git a/pkgs/development/libraries/gpgme/default.nix b/pkgs/development/libraries/gpgme/default.nix
index 2f1411a0bdaa..4ba4cbb33474 100644
--- a/pkgs/development/libraries/gpgme/default.nix
+++ b/pkgs/development/libraries/gpgme/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   
   propagatedBuildInputs = [ libgpgerror glib libassuan pth ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   configureFlags = "--with-gpg=${gpgPath}";
 }
diff --git a/pkgs/development/libraries/gsasl/default.nix b/pkgs/development/libraries/gsasl/default.nix
index 9f71bc5e202a..3b52133058f1 100644
--- a/pkgs/development/libraries/gsasl/default.nix
+++ b/pkgs/development/libraries/gsasl/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, gss, libidn }:
 
 stdenv.mkDerivation rec {
-  name = "gsasl-1.6.1";
+  name = "gsasl-1.8.0";
 
   src = fetchurl {
     url = "mirror://gnu/gsasl/${name}.tar.gz";
-    sha256 = "02dmras3kqik08p14mpq0lj678w7wmmaxpcvdrx116wkcgspv2z6";
+    sha256 = "1rci64cxvcfr8xcjpqc4inpfq7aw4snnsbf5xz7d30nhvv8n40ii";
   };
 
   buildInputs = [ gss libidn ];
diff --git a/pkgs/development/libraries/gstreamer/gst-plugins-good/default.nix b/pkgs/development/libraries/gstreamer/gst-plugins-good/default.nix
index 4298a88f65e8..85468b309c55 100644
--- a/pkgs/development/libraries/gstreamer/gst-plugins-good/default.nix
+++ b/pkgs/development/libraries/gstreamer/gst-plugins-good/default.nix
@@ -5,16 +5,18 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "gst-plugins-good-0.10.30";
+  name = "gst-plugins-good-0.10.31";
 
   src = fetchurl {
     urls = [
       "${meta.homepage}/src/gst-plugins-good/${name}.tar.bz2"
       "mirror://gentoo/distfiles/${name}.tar.bz2"
       ];
-    sha256 = "1xlmw211fcn60y2m5gxrryb3knqril4kk2c01b6j713xna8blb5i";
+    sha256 = "1ijswgcrdp243mfsyza31fpzq6plz40p4b83vkr2x4x7807889vy";
   };
 
+  patches = [ ./v4l.patch ];
+
   configureFlags = "--disable-oss";
 
   buildInputs =
diff --git a/pkgs/development/libraries/gstreamer/gst-plugins-good/v4l.patch b/pkgs/development/libraries/gstreamer/gst-plugins-good/v4l.patch
new file mode 100644
index 000000000000..22cff574134f
--- /dev/null
+++ b/pkgs/development/libraries/gstreamer/gst-plugins-good/v4l.patch
@@ -0,0 +1,11 @@
+diff -ru -x '*~' gst-plugins-good-0.10.31-orig/sys/v4l2/gstv4l2bufferpool.c gst-plugins-good-0.10.31/sys/v4l2/gstv4l2bufferpool.c
+--- gst-plugins-good-0.10.31-orig/sys/v4l2/gstv4l2bufferpool.c	2011-12-30 14:59:13.000000000 +0100
++++ gst-plugins-good-0.10.31/sys/v4l2/gstv4l2bufferpool.c	2013-01-28 17:41:25.549523708 +0100
+@@ -181,7 +181,6 @@
+     GST_LOG_OBJECT (pool->v4l2elem, "  MMAP offset:  %u",
+         ret->vbuffer.m.offset);
+   GST_LOG_OBJECT (pool->v4l2elem, "  length:    %u", ret->vbuffer.length);
+-  GST_LOG_OBJECT (pool->v4l2elem, "  input:     %u", ret->vbuffer.input);
+ 
+   data = (guint8 *) v4l2_mmap (0, ret->vbuffer.length,
+       PROT_READ | PROT_WRITE, MAP_SHARED, pool->video_fd,
diff --git a/pkgs/development/libraries/gstreamer/qt-gstreamer/default.nix b/pkgs/development/libraries/gstreamer/qt-gstreamer/default.nix
index 8bfeb8a4beac..c3510a69a123 100644
--- a/pkgs/development/libraries/gstreamer/qt-gstreamer/default.nix
+++ b/pkgs/development/libraries/gstreamer/qt-gstreamer/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ gstreamer gst_plugins_base glib qt4 ];
   propagatedBuildInputs = [ boost ];
-  buildNativeInputs = [ cmake automoc4 flex bison pkgconfig ];
+  nativeBuildInputs = [ cmake automoc4 flex bison pkgconfig ];
 
   cmakeFlags = "-DUSE_QT_PLUGIN_DIR=OFF -DUSE_GST_PLUGIN_DIR=OFF";
 
diff --git a/pkgs/development/libraries/gtk+/2.24.x.nix b/pkgs/development/libraries/gtk+/2.24.x.nix
index 2bf657e04e77..c259f7005730 100644
--- a/pkgs/development/libraries/gtk+/2.24.x.nix
+++ b/pkgs/development/libraries/gtk+/2.24.x.nix
@@ -8,16 +8,16 @@ assert xineramaSupport -> xlibs.libXinerama != null;
 assert cupsSupport -> cups != null;
 
 stdenv.mkDerivation rec {
-  name = "gtk+-2.24.13";
+  name = "gtk+-2.24.14";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gtk+/2.24/${name}.tar.xz";
-    sha256 = "35e1a01e46b02970b02ee9f299390d0aa57c1215ad2667bcd584b72f4ea6513d";
+    sha256 = "8bd1b8b511a3004e8972badf467ce829e6855cdff15540b9344dc934c68008ac";
   };
 
   enableParallelBuilding = true;
 
-  buildNativeInputs = [ perl pkgconfig ];
+  nativeBuildInputs = [ perl pkgconfig ];
 
   propagatedBuildInputs =
     [ xlibs.xlibs glib atk pango gdk_pixbuf cairo
diff --git a/pkgs/development/libraries/gtk+/3.2.x.nix b/pkgs/development/libraries/gtk+/3.2.x.nix
index 9f333c03fabf..cace1b626f49 100644
--- a/pkgs/development/libraries/gtk+/3.2.x.nix
+++ b/pkgs/development/libraries/gtk+/3.2.x.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  buildNativeInputs = [ perl pkgconfig ];
+  nativeBuildInputs = [ perl pkgconfig ];
 
   propagatedBuildInputs =
     [ xlibs.xlibs glib atk pango gdk_pixbuf cairo
diff --git a/pkgs/development/libraries/gtk-sharp-2/default.nix b/pkgs/development/libraries/gtk-sharp-2/default.nix
index 7ffc918f678d..9baac518ff76 100644
--- a/pkgs/development/libraries/gtk-sharp-2/default.nix
+++ b/pkgs/development/libraries/gtk-sharp-2/default.nix
@@ -26,6 +26,13 @@ stdenv.mkDerivation {
 
   # patches = [ ./dllmap-glue.patch ];
 
+  # patch bad usage of glib, which wasn't tolerated anymore
+  prePatch = ''
+    for f in glib/glue/{thread,list,slist}.c; do
+      sed -i 's,#include <glib/.*\.h>,#include <glib.h>,g' "$f"
+    done
+  '';
+
   buildInputs = [
     pkgconfig mono glib pango gtk GConf libglade libgnomecanvas
     libgtkhtml libgnomeui libgnomeprint libgnomeprintui gtkhtml libxml2
diff --git a/pkgs/development/libraries/gtkmm/2.x.nix b/pkgs/development/libraries/gtkmm/2.x.nix
index 56d151101c5d..ec7f01a8be5e 100644
--- a/pkgs/development/libraries/gtkmm/2.x.nix
+++ b/pkgs/development/libraries/gtkmm/2.x.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "0gcm91sc1a05c56kzh74l370ggj0zz8nmmjvjaaxgmhdq8lpl369";
   };
 
-  buildNativeInputs = [pkgconfig];
+  nativeBuildInputs = [pkgconfig];
 
   propagatedBuildInputs = [ glibmm gtk atkmm cairomm pangomm ];
 
diff --git a/pkgs/development/libraries/gtkmm/3.x.nix b/pkgs/development/libraries/gtkmm/3.x.nix
index 890d4a34519d..d3681b4b3867 100644
--- a/pkgs/development/libraries/gtkmm/3.x.nix
+++ b/pkgs/development/libraries/gtkmm/3.x.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "1wkljr2vjvjg5mggi4rvk9k4j2kzh8lc106k2yp8gqjlhk2xm5b1";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   propagatedBuildInputs = [ glibmm gtk3 atkmm cairomm pangomm ];
 
diff --git a/pkgs/development/libraries/gupnp-igd/default.nix b/pkgs/development/libraries/gupnp-igd/default.nix
index a8bb065d7eb8..20a5f2d9c946 100644
--- a/pkgs/development/libraries/gupnp-igd/default.nix
+++ b/pkgs/development/libraries/gupnp-igd/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ glib python pygobject ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     homepage = http://www.gupnp.org/;
diff --git a/pkgs/development/libraries/gupnp/default.nix b/pkgs/development/libraries/gupnp/default.nix
index 5679591878a5..c70d8fcb0c26 100644
--- a/pkgs/development/libraries/gupnp/default.nix
+++ b/pkgs/development/libraries/gupnp/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
   propagatedBuildInputs = [ libxml2 libsoup gssdp ];
   buildInputs = [ glib libuuid ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     homepage = http://www.gupnp.org/;
diff --git a/pkgs/development/libraries/gwenhywfar/default.nix b/pkgs/development/libraries/gwenhywfar/default.nix
index 207b81997af5..724524e2b263 100644
--- a/pkgs/development/libraries/gwenhywfar/default.nix
+++ b/pkgs/development/libraries/gwenhywfar/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ qt4 gtk ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   QTDIR = qt4;
 }
diff --git a/pkgs/development/libraries/haskell/cuda/default.nix b/pkgs/development/libraries/haskell/cuda/default.nix
index 3baa02d26747..a90efcdf4cab 100644
--- a/pkgs/development/libraries/haskell/cuda/default.nix
+++ b/pkgs/development/libraries/haskell/cuda/default.nix
@@ -13,15 +13,15 @@ cabal.mkDerivation (self: {
   # library. GHC's linker fails if the wrong version is found first.
   # We solve this by eliminating lib64 from the path on 32-bit
   # platforms and putting lib64 first on 64-bit platforms.
-  
+
   libPaths = if self.stdenv.is64bit then "lib64 lib" else "lib";
-  
+
   configurePhase = ''
     for i in Setup.hs Setup.lhs; do
       test -f $i && ghc --make $i
     done
-  
-    for p in $extraBuildInputs $propagatedBuildNativeInputs; do
+
+    for p in $extraBuildInputs $propagatedNativeBuildInputs; do
       if [ -d "$p/include" ]; then
         extraLibDirs="$extraLibDirs --extra-include-dir=$p/include"
       fi
@@ -31,9 +31,12 @@ cabal.mkDerivation (self: {
         fi
       done
     done
-  
+
     ./Setup configure --verbose --prefix="$out" $libraryProfiling $extraLibDirs $configureFlags
   '';
+
+  doCheck = false;
+
   meta = {
     description = "FFI binding to the CUDA interface for programming NVIDIA GPUs";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/data-default/default.nix b/pkgs/development/libraries/haskell/data-default/default.nix
index 4fb21ed5f551..893f2121f0ab 100644
--- a/pkgs/development/libraries/haskell/data-default/default.nix
+++ b/pkgs/development/libraries/haskell/data-default/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "data-default";
-  version = "0.5.1";
-  sha256 = "05zp9bcxm4lcdqniwckq0zi014iqcnqbrk5wh54dyy83h97z6mpv";
+  version = "0.5.0";
+  sha256 = "1wv8wjd9j40s7h19aph5pqph7rby5ma1nlagqywn9q0634iq9n2a";
   buildDepends = [ dlist ];
   meta = {
     description = "A class for types with a default value";
diff --git a/pkgs/development/libraries/haskell/doctest/default.nix b/pkgs/development/libraries/haskell/doctest/default.nix
index ce418a8d053f..3c8988400bcb 100644
--- a/pkgs/development/libraries/haskell/doctest/default.nix
+++ b/pkgs/development/libraries/haskell/doctest/default.nix
@@ -13,7 +13,6 @@ cabal.mkDerivation (self: {
     baseCompat deepseq filepath ghcPaths hspec HUnit QuickCheck setenv
     silently stringbuilder syb transformers
   ];
-  jailbreak = true;
   doCheck = false;
   meta = {
     homepage = "https://github.com/sol/doctest-haskell#readme";
diff --git a/pkgs/development/libraries/haskell/ghc-mod/default.nix b/pkgs/development/libraries/haskell/ghc-mod/default.nix
index 1109a512a8da..7bcb94ab40c6 100644
--- a/pkgs/development/libraries/haskell/ghc-mod/default.nix
+++ b/pkgs/development/libraries/haskell/ghc-mod/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "ghc-mod";
-  version = "1.12.1";
-  sha256 = "0m876lfxi0k7v27rg4ipq3rpk7qvsrzfdflp5fayxvmi9wgdvm3r";
+  version = "1.12.0";
+  sha256 = "01jq6hk8vcy47nc6gd4379k6kgjiyxy99j4pnc7nsdm63gnmr5l1";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/hakyll/default.nix b/pkgs/development/libraries/haskell/hakyll/default.nix
index 8d4b36e979b4..2ca90094bb81 100644
--- a/pkgs/development/libraries/haskell/hakyll/default.nix
+++ b/pkgs/development/libraries/haskell/hakyll/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hakyll";
-  version = "4.2.0.0";
-  sha256 = "10yamc95pq6db353miyqakjax54abl1dkqmwfv63cblxd4llsv9x";
+  version = "4.1.4.0";
+  sha256 = "0nhr7ai03hx2qjxlqml0js43iwxhcbpdqkwdvw8pqs396yrjwxdj";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
@@ -22,6 +22,8 @@ cabal.mkDerivation (self: {
     QuickCheck random regexBase regexTdfa tagsoup testFramework
     testFrameworkHunit testFrameworkQuickcheck2 text time
   ];
+  jailbreak = true;
+  doCheck = false;
   meta = {
     homepage = "http://jaspervdj.be/hakyll";
     description = "A static website compiler library";
diff --git a/pkgs/development/libraries/haskell/hledger-web/default.nix b/pkgs/development/libraries/haskell/hledger-web/default.nix
index 67adcb0fbdd6..c33026f5fd60 100644
--- a/pkgs/development/libraries/haskell/hledger-web/default.nix
+++ b/pkgs/development/libraries/haskell/hledger-web/default.nix
@@ -4,6 +4,7 @@
 , parsec, regexpr, safe, shakespeareCss, shakespeareJs
 , shakespeareText, text, time, transformers, wai, waiExtra, warp
 , yaml, yesod, yesodCore, yesodDefault, yesodForm, yesodStatic
+, yesodTest
 }:
 
 cabal.mkDerivation (self: {
@@ -19,15 +20,16 @@ cabal.mkDerivation (self: {
     shakespeareJs shakespeareText text time transformers wai waiExtra
     warp yaml yesod yesodCore yesodDefault yesodForm yesodStatic
   ];
+  testDepends = [ yesodCore yesodDefault yesodTest ];
   patchPhase = ''
     sed -r -i -e 's|blaze-html * >= 0.5 *&& < 0.6|blaze-html >= 0.5|' hledger-web.cabal
   '';
   jailbreak = true;
+  doCheck = false;
   meta = {
     homepage = "http://hledger.org";
     description = "A web interface for the hledger accounting tool";
     license = "GPL";
     platforms = self.ghc.meta.platforms;
-    maintainers = [ self.stdenv.lib.maintainers.andres ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/http-conduit/default.nix b/pkgs/development/libraries/haskell/http-conduit/default.nix
index 683396eea818..dc5e248f4454 100644
--- a/pkgs/development/libraries/haskell/http-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/http-conduit/default.nix
@@ -9,8 +9,8 @@
 
 cabal.mkDerivation (self: {
   pname = "http-conduit";
-  version = "1.9.1";
-  sha256 = "1ypwqd5f6m459kjw2x3knig924s93b6yiviy7jlaxllpaw2lrial";
+  version = "1.9.0";
+  sha256 = "1b6f2sg96fddk5ywbfvbvj9z81695d35qymf31idpkyshcp9argk";
   buildDepends = [
     asn1Data base64Bytestring blazeBuilder blazeBuilderConduit
     caseInsensitive certificate conduit cookie cprngAes dataDefault
diff --git a/pkgs/development/libraries/haskell/pandoc/default.nix b/pkgs/development/libraries/haskell/pandoc/default.nix
index 204d13c71485..93f7e8add429 100644
--- a/pkgs/development/libraries/haskell/pandoc/default.nix
+++ b/pkgs/development/libraries/haskell/pandoc/default.nix
@@ -18,7 +18,7 @@ cabal.mkDerivation (self: {
   ];
   configureFlags = "-fblaze_html_0_5";
   patchPhase = ''
-    sed -r -i -e 's|blaze-html >= 0.5 && < 0.6,|blaze-html >= 0.5,|' -e 's|syb >= 0.1 && < 0.4,| syb,|' pandoc.cabal
+    sed -r -i -e 's|blaze-html >= 0.5 && < 0.6,|blaze-html >= 0.5,|' pandoc.cabal
   '';
   doCheck = false;
   meta = {
diff --git a/pkgs/development/libraries/haskell/uulib/default.nix b/pkgs/development/libraries/haskell/uulib/default.nix
index 2521c44bec6e..991f38080984 100644
--- a/pkgs/development/libraries/haskell/uulib/default.nix
+++ b/pkgs/development/libraries/haskell/uulib/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "uulib";
-  version = "0.9.15";
-  sha256 = "0433shh493c04qmi0sd9mfzpy198zi11gxdmcs6nz2gcnxm812zm";
+  version = "0.9.14";
+  sha256 = "0bi62l9fp1ghqq4dagdy4nsxmm08gpsrnfgy6d6k8f4239s3yr0z";
   meta = {
     homepage = "http://www.cs.uu.nl/wiki/HUT/WebHome";
     description = "Haskell Utrecht Tools Library";
diff --git a/pkgs/development/libraries/hspell/dicts.nix b/pkgs/development/libraries/hspell/dicts.nix
index a7f0d19865cf..fd456ca6209b 100644
--- a/pkgs/development/libraries/hspell/dicts.nix
+++ b/pkgs/development/libraries/hspell/dicts.nix
@@ -2,7 +2,7 @@
 
 let
   dict = a: stdenv.mkDerivation ({
-    inherit (hspell) src patchPhase buildNativeInputs;
+    inherit (hspell) src patchPhase nativeBuildInputs;
     meta = hspell.meta // {
       description = "${a.buildFlags} Hebrew dictionary";
     } // (if a ? meta then a.meta else {});
diff --git a/pkgs/development/libraries/hwloc/default.nix b/pkgs/development/libraries/hwloc/default.nix
index de4270008f37..3c5f198cea60 100644
--- a/pkgs/development/libraries/hwloc/default.nix
+++ b/pkgs/development/libraries/hwloc/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   # XXX: libX11 is not directly needed, but needed as a propagated dep of Cairo.
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   # Filter out `null' inputs.  This allows users to `.override' the
   # derivation and set optional dependencies to `null'.
diff --git a/pkgs/development/libraries/ilbc/default.nix b/pkgs/development/libraries/ilbc/default.nix
index 3ab4e7e738c9..d77b5d46a79e 100644
--- a/pkgs/development/libraries/ilbc/default.nix
+++ b/pkgs/development/libraries/ilbc/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     sha256 = "0zf4mvi3jzx6zjrfl2rbhl2m68pzbzpf1vbdmn7dqbfpcb67jpdy";
   };
 
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   unpackPhase = ''
     mkdir -v ${name}
diff --git a/pkgs/development/libraries/imlib2/default.nix b/pkgs/development/libraries/imlib2/default.nix
index 83adb16bbc8d..d77e2052f811 100644
--- a/pkgs/development/libraries/imlib2/default.nix
+++ b/pkgs/development/libraries/imlib2/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   
   buildInputs = [ x11 libjpeg libtiff libungif libpng bzip2 ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     platforms = stdenv.lib.platforms.gnu; # random choice
diff --git a/pkgs/development/libraries/itk/default.nix b/pkgs/development/libraries/itk/default.nix
index 6be998b691a5..bfe10490fc7f 100644
--- a/pkgs/development/libraries/itk/default.nix
+++ b/pkgs/development/libraries/itk/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  buildNativeInputs = [ cmake xz ];
+  nativeBuildInputs = [ cmake xz ];
   buildInputs = [ libX11 libuuid ];
 
   meta = {
diff --git a/pkgs/development/libraries/jasper/default.nix b/pkgs/development/libraries/jasper/default.nix
index 8cf4cc7991f0..4046c05f79e5 100644
--- a/pkgs/development/libraries/jasper/default.nix
+++ b/pkgs/development/libraries/jasper/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "154l7zk7yh3v8l2l6zm5s2alvd2fzkp6c9i18iajfbna5af5m43b";
   };
 
-  buildNativeInputs = [unzip];
+  nativeBuildInputs = [unzip];
   propagatedBuildInputs = [ libjpeg ];
 
   configureFlags = "--enable-shared";
diff --git a/pkgs/development/libraries/json-glib/default.nix b/pkgs/development/libraries/json-glib/default.nix
index ad3af7778ff3..8ca1445b1f6d 100644
--- a/pkgs/development/libraries/json-glib/default.nix
+++ b/pkgs/development/libraries/json-glib/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   propagatedBuildInputs = [ glib ];
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     homepage = http://live.gnome.org/JsonGlib;
diff --git a/pkgs/development/libraries/kdevplatform/default.nix b/pkgs/development/libraries/kdevplatform/default.nix
index 367987d5dee4..2ff2fac296d8 100644
--- a/pkgs/development/libraries/kdevplatform/default.nix
+++ b/pkgs/development/libraries/kdevplatform/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = [ kdelibs qt4 phonon ];
   buildInputs = [ apr aprutil subversion boost qjson ];
 
-  buildNativeInputs = [ cmake automoc4 gettext pkgconfig ];
+  nativeBuildInputs = [ cmake automoc4 gettext pkgconfig ];
 
   meta = {
     maintainers = [ stdenv.lib.maintainers.urkud ];
diff --git a/pkgs/development/libraries/libalkimia/default.nix b/pkgs/development/libraries/libalkimia/default.nix
index 7a37c61c4955..d372c5cf8fc9 100644
--- a/pkgs/development/libraries/libalkimia/default.nix
+++ b/pkgs/development/libraries/libalkimia/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, kdelibs, gmpxx }:
+{ stdenv, fetchurl, pkgconfig, kdelibs, gmpxx }:
 
 stdenv.mkDerivation rec {
   name = "libalkimia-4.3.2";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   patchPhase = "sed -e 's/KDE4_DATA_DIR/DATA_INSTALL_DIR/' -i CMakeLists.txt";
-  buildInputs = [ kdelibs gmpxx ];
+  buildInputs = [ pkgconfig kdelibs gmpxx ];
 
   meta = {
     maintainers = [ stdenv.lib.maintainers.urkud ];
diff --git a/pkgs/development/libraries/libbluray/default.nix b/pkgs/development/libraries/libbluray/default.nix
index b0252617d7d7..6c139242f3e7 100644
--- a/pkgs/development/libraries/libbluray/default.nix
+++ b/pkgs/development/libraries/libbluray/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
     sha256 = "551b623e76c2dba44b5490fb42ccdc491b28cd42841de28237b8edbed0f0711c";
   };
 
-  buildNativeInputs = [autoconf automake libtool];
+  nativeBuildInputs = [autoconf automake libtool];
   buildInputs = stdenv.lib.optionals withAACS [jdk ant libaacs];
   NIX_LDFLAGS = stdenv.lib.optionalString withAACS "-laacs";
 
diff --git a/pkgs/development/libraries/libcdr/default.nix b/pkgs/development/libraries/libcdr/default.nix
index 823a4839e80d..d2d686405604 100644
--- a/pkgs/development/libraries/libcdr/default.nix
+++ b/pkgs/development/libraries/libcdr/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ libwpg libwpd lcms2 ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   CXXFLAGS="--std=gnu++0x"; # For c++11 constants in lcms2.h
 
diff --git a/pkgs/development/libraries/libchop/default.nix b/pkgs/development/libraries/libchop/default.nix
index 56aac34a3441..9a1b4122365a 100644
--- a/pkgs/development/libraries/libchop/default.nix
+++ b/pkgs/development/libraries/libchop/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
 
   patches = [ ./gets-undeclared.patch ];
 
-  buildNativeInputs = [ pkgconfig gperf ];
+  nativeBuildInputs = [ pkgconfig gperf ];
+  
   buildInputs =
     [ zlib bzip2 lzo
       libgcrypt
diff --git a/pkgs/development/libraries/libdbusmenu-qt/default.nix b/pkgs/development/libraries/libdbusmenu-qt/default.nix
index aeb9331c8ada..6fa6ca4b6f81 100644
--- a/pkgs/development/libraries/libdbusmenu-qt/default.nix
+++ b/pkgs/development/libraries/libdbusmenu-qt/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [ qt4 ];
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   cmakeFlags = "-DWITH_DOC=OFF";
   
diff --git a/pkgs/development/libraries/libdevil/default.nix b/pkgs/development/libraries/libdevil/default.nix
index 12008bcbccb0..6efb785b6577 100644
--- a/pkgs/development/libraries/libdevil/default.nix
+++ b/pkgs/development/libraries/libdevil/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ libjpeg libpng libmng lcms1 libtiff openexr mesa libX11 ];
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   configureFlags = [ "--enable-ILU" "--enable-ILUT" ];
 
diff --git a/pkgs/development/libraries/libdiscid/default.nix b/pkgs/development/libraries/libdiscid/default.nix
index 3ee43ba3bee0..b8f79f2ae695 100644
--- a/pkgs/development/libraries/libdiscid/default.nix
+++ b/pkgs/development/libraries/libdiscid/default.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation rec {
   name = "libdiscid-0.2.2";
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ cmake ];
 
   src = fetchurl {
diff --git a/pkgs/development/libraries/libdmtx/default.nix b/pkgs/development/libraries/libdmtx/default.nix
index 97622bb7b24b..970a1cf05e92 100644
--- a/pkgs/development/libraries/libdmtx/default.nix
+++ b/pkgs/development/libraries/libdmtx/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "0iin2j3ad7ldj32dwc04g28k54iv3lrc5121rgyphm7l9hvigbvk";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   propagatedBuildInputs = [ imagemagick ];
 
diff --git a/pkgs/development/libraries/libdrm/default.nix b/pkgs/development/libraries/libdrm/default.nix
index 3a1e101aa431..a2546bf2d69a 100644
--- a/pkgs/development/libraries/libdrm/default.nix
+++ b/pkgs/development/libraries/libdrm/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "1slgi61n4dlsfli47ql354fd1ppj7n40jd94wvnsdqx0mna9syrd";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ libpthreadstubs libpciaccess udev ];
 
   patches = stdenv.lib.optional stdenv.isDarwin ./libdrm-apple.patch;
diff --git a/pkgs/development/libraries/libgnome-keyring/3.x.nix b/pkgs/development/libraries/libgnome-keyring/3.x.nix
index a8b8e98ced99..54a023a16f8b 100644
--- a/pkgs/development/libraries/libgnome-keyring/3.x.nix
+++ b/pkgs/development/libraries/libgnome-keyring/3.x.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
   };
 
   propagatedBuildInputs = [ glib dbus_libs libgcrypt ];
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
 
   meta = {
     inherit (glib.meta) platforms maintainers;
diff --git a/pkgs/development/libraries/libgnome-keyring/default.nix b/pkgs/development/libraries/libgnome-keyring/default.nix
index 05a21f3c82e2..4aadafff8441 100644
--- a/pkgs/development/libraries/libgnome-keyring/default.nix
+++ b/pkgs/development/libraries/libgnome-keyring/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
   };
 
   propagatedBuildInputs = [ glib dbus_libs libgcrypt ];
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
 
   meta = {
     inherit (glib.meta) platforms maintainers;
diff --git a/pkgs/development/libraries/libgphoto2/default.nix b/pkgs/development/libraries/libgphoto2/default.nix
index b55da62c9fb2..3edc8d0ac6ca 100644
--- a/pkgs/development/libraries/libgphoto2/default.nix
+++ b/pkgs/development/libraries/libgphoto2/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "14h20s0kwqr1nsj90dgjwzs0r3h7z1cpmnivrikd0rrg4m2jvcsr";
   };
   
-  buildNativeInputs = [ pkgconfig gettext ];
+  nativeBuildInputs = [ pkgconfig gettext ];
   buildInputs = [ libtool libjpeg ];
 
   # These are mentioned in the Requires line of libgphoto's pkg-config file.
diff --git a/pkgs/development/libraries/libgpod/default.nix b/pkgs/development/libraries/libgpod/default.nix
index e271e9661809..0ad46e2ed5f4 100644
--- a/pkgs/development/libraries/libgpod/default.nix
+++ b/pkgs/development/libraries/libgpod/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = [ glib libxml2 sqlite zlib sg3_utils
     gdk_pixbuf taglib libimobiledevice python pygobject mutagen ];
 
-  buildNativeInputs = [ gettext perlXMLParser intltool pkgconfig perl
+  nativeBuildInputs = [ gettext perlXMLParser intltool pkgconfig perl
     libimobiledevice.swig ];
 
   meta = {
diff --git a/pkgs/development/libraries/libgsf/default.nix b/pkgs/development/libraries/libgsf/default.nix
index 4264890fd956..56f6242c09e8 100644
--- a/pkgs/development/libraries/libgsf/default.nix
+++ b/pkgs/development/libraries/libgsf/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     sha256 = "127548f07e07951984fb139c3f89d65b9e471aefe6555387de03e1113944d1a2";
   };
 
-  buildNativeInputs = [ intltool pkgconfig ];
+  nativeBuildInputs = [ intltool pkgconfig ];
   buildInputs =
     [ perl perlXMLParser gettext bzip2 python ]
     ++ stdenv.lib.optionals gnomeSupport [ gnome_vfs gdk_pixbuf ];
diff --git a/pkgs/development/libraries/libgtop/default.nix b/pkgs/development/libraries/libgtop/default.nix
index f214c7acf73d..b592f458c6ce 100644
--- a/pkgs/development/libraries/libgtop/default.nix
+++ b/pkgs/development/libraries/libgtop/default.nix
@@ -8,5 +8,5 @@ stdenv.mkDerivation {
   };
 
   propagatedBuildInputs = [ glib ];
-  buildNativeInputs = [ pkgconfig perl intltool ];
+  nativeBuildInputs = [ pkgconfig perl intltool ];
 }
diff --git a/pkgs/development/libraries/libgweather/default.nix b/pkgs/development/libraries/libgweather/default.nix
index 4a4da810ae67..5e7a4cff741f 100644
--- a/pkgs/development/libraries/libgweather/default.nix
+++ b/pkgs/development/libraries/libgweather/default.nix
@@ -9,5 +9,5 @@ stdenv.mkDerivation {
   };
   configureFlags = if stdenv ? glibc then "--with-zoneinfo-dir=${stdenv.glibc}/share/zoneinfo" else "";
   propagatedBuildInputs = [ libxml2 gtk3 libsoup GConf3 ];
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
 }
diff --git a/pkgs/development/libraries/libharu/default.nix b/pkgs/development/libraries/libharu/default.nix
index 3b8c4be54e05..db1aa4a7473c 100644
--- a/pkgs/development/libraries/libharu/default.nix
+++ b/pkgs/development/libraries/libharu/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
           sha256 = "1993vskpycyr43rwdp8f688fc5zvllrqq935r7rhsgbqbipkk73h";
         };
 
-        buildNativeInputs = [ patchutils ];
+        nativeBuildInputs = [ patchutils ];
 
         buildCommand = "filterdiff -x '*/CHANGES' $src > $out";
       })
diff --git a/pkgs/development/libraries/libical/default.nix b/pkgs/development/libraries/libical/default.nix
index 80f3a1b8e71f..59d352cf730e 100644
--- a/pkgs/development/libraries/libical/default.nix
+++ b/pkgs/development/libraries/libical/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
     rev = "1130";
     sha256 = "56caf19abdf44807fda75a67ef0886319551e53c4e4ece4da4fc862e34c64e1a";
   };
-  buildNativeInputs = [ perl cmake ];
+  nativeBuildInputs = [ perl cmake ];
 
   patches = [ ./respect-env-tzdir.patch ];
 }
diff --git a/pkgs/development/libraries/libidn/default.nix b/pkgs/development/libraries/libidn/default.nix
index 6da91d98d13a..94e785ee53b9 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.24";
+  name = "libidn-1.25";
 
   src = fetchurl {
     url = "mirror://gnu/libidn/${name}.tar.gz";
-    sha256 = "1zrmbwxvgmv7d37sdnlfn4lf3pxc7vgng3lhl18pkjry0v30h5ys";
+    sha256 = "05j7qcj7gb791k6ya2pwr7cq9yxgi0bjqiiwf9yq6pbai8r2brkz";
   };
 
   doCheck = ! stdenv.isDarwin;
diff --git a/pkgs/development/libraries/libimobiledevice/default.nix b/pkgs/development/libraries/libimobiledevice/default.nix
index b4bb3b47a35e..a21d9bf7b5de 100644
--- a/pkgs/development/libraries/libimobiledevice/default.nix
+++ b/pkgs/development/libraries/libimobiledevice/default.nix
@@ -4,7 +4,7 @@
 stdenv.mkDerivation rec {
   name = "libimobiledevice-1.0.6";
 
-  buildNativeInputs = [ python libplist.swig pkgconfig ];
+  nativeBuildInputs = [ python libplist.swig pkgconfig ];
   buildInputs = [ readline ];
   propagatedBuildInputs = [ usbmuxd glib gnutls libgcrypt libtasn1 libplist ];
 
diff --git a/pkgs/development/libraries/libktorrent/default.nix b/pkgs/development/libraries/libktorrent/default.nix
index 083fbf13c817..a452cb7609e1 100644
--- a/pkgs/development/libraries/libktorrent/default.nix
+++ b/pkgs/development/libraries/libktorrent/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     sha256 = "1b4ibkba27ivvjsh5s93xwlcgzvvwsgl6mcd8g96d1al05n2ccw9";
   };
 
-  buildNativeInputs = [ cmake automoc4 gettext ];
+  nativeBuildInputs = [ cmake automoc4 gettext ];
   buildInputs = [ kdelibs phonon gmp qca2 boost libgcrypt ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/liblastfm/default.nix b/pkgs/development/libraries/liblastfm/default.nix
index 24b93221d11e..b1e8342ca91b 100644
--- a/pkgs/development/libraries/liblastfm/default.nix
+++ b/pkgs/development/libraries/liblastfm/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   prefixKey = "--prefix ";
   propagatedBuildInputs = [ qt4 libsamplerate fftwSinglePrec ];
-  buildNativeInputs = [ ruby pkgconfig which ];
+  nativeBuildInputs = [ ruby pkgconfig which ];
 
   configureFlags = "--release";
 
diff --git a/pkgs/development/libraries/libmad/default.nix b/pkgs/development/libraries/libmad/default.nix
index 178e65d2506f..6e2e2c949cca 100644
--- a/pkgs/development/libraries/libmad/default.nix
+++ b/pkgs/development/libraries/libmad/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
 
   patches = [ ./001-mips_removal_h_constraint.patch ./pkgconfig.patch ];
 
-  buildNativeInputs = [ autoconf ];
+  nativeBuildInputs = [ autoconf ];
 
   # The -fforce-mem flag has been removed in GCC 4.3.
   preConfigure = ''
diff --git a/pkgs/development/libraries/libmms/default.nix b/pkgs/development/libraries/libmms/default.nix
index 8d24ddbb6300..0f6d220861c5 100644
--- a/pkgs/development/libraries/libmms/default.nix
+++ b/pkgs/development/libraries/libmms/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ glib ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     homepage = http://libmms.sourceforge.net;
diff --git a/pkgs/development/libraries/libmng/default.nix b/pkgs/development/libraries/libmng/default.nix
index 5a73fd417f90..fcaf95672e18 100644
--- a/pkgs/development/libraries/libmng/default.nix
+++ b/pkgs/development/libraries/libmng/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   preConfigure = "unmaintained/autogen.sh";
 
-  buildNativeInputs = [ automake110x autoconf libtool ];
+  nativeBuildInputs = [ automake110x autoconf libtool ];
 
   propagatedBuildInputs = [ zlib libpng libjpeg lcms ];
 
diff --git a/pkgs/development/libraries/libnice/default.nix b/pkgs/development/libraries/libnice/default.nix
index 5a3cb9d041b5..4ccb7d4df8ba 100644
--- a/pkgs/development/libraries/libnice/default.nix
+++ b/pkgs/development/libraries/libnice/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, glib, gupnp_igd, gstreamer, gst_plugins_base }:
 
 stdenv.mkDerivation rec {
-  name = "libnice-0.1.1";
-  
+  name = "libnice-0.1.4";
+
   src = fetchurl {
     url = "http://nice.freedesktop.org/releases/${name}.tar.gz";
-    sha256 = "0jcpb953jn7c3ng2vbkljybzh63x6mg4m6rjxj1s1iccm3fi6qki";
+    sha256 = "0mxzr3y91hkjxdz1mzhxwi59la86hw2rzmd3y9c32801kkg1gra4";
   };
 
   buildInputs = [ pkgconfig glib gupnp_igd gstreamer gst_plugins_base ];
diff --git a/pkgs/development/libraries/libogg/default.nix b/pkgs/development/libraries/libogg/default.nix
index e407b75c8bbe..f3c2d3b766df 100644
--- a/pkgs/development/libraries/libogg/default.nix
+++ b/pkgs/development/libraries/libogg/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "0jy79ffkl34vycnwfsj4svqsdg1lwy2l1rr49y8r4d44kh12a5r3";
   };
 
-  buildNativeInputs = [ xz ];
+  nativeBuildInputs = [ xz ];
 
   meta = {
     homepage = http://xiph.org/ogg/;
diff --git a/pkgs/development/libraries/libopensc-dnie/default.nix b/pkgs/development/libraries/libopensc-dnie/default.nix
index ad524c21ff10..d229933111e8 100644
--- a/pkgs/development/libraries/libopensc-dnie/default.nix
+++ b/pkgs/development/libraries/libopensc-dnie/default.nix
@@ -7,11 +7,11 @@ assert opensc.name == "opensc-0.11.7";
 stdenv.mkDerivation rec {
   name = "libopensc-dnie-1.4.6-2";
   
-  src = if (stdenv.system == "i686-linux") then (fetchurl {
+  src = if stdenv.system == "i686-linux" then (fetchurl {
       url = http://www.dnielectronico.es/descargas/PKCS11_para_Sistemas_Unix/1.4.6.Ubuntu_Jaunty_32/Ubuntu_Jaunty_opensc-dnie_1.4.6-2_i386.deb.tar;
       sha256 = "1i6r9ahjr0rkcxjfzkg2rrib1rjsjd5raxswvvfiya98q8rlv39i";
     })
-    else if (stdenv.system == "x86_64-linux") then (fetchurl { url = http://www.dnielectronico.es/descargas/PKCS11_para_Sistemas_Unix/1.4.6.Ubuntu_Jaunty_64/Ubuntu_Jaunty_opensc-dnie_1.4.6-2_amd64.deb.tar;
+    else if stdenv.system == "x86_64-linux" then (fetchurl { url = http://www.dnielectronico.es/descargas/PKCS11_para_Sistemas_Unix/1.4.6.Ubuntu_Jaunty_64/Ubuntu_Jaunty_opensc-dnie_1.4.6-2_amd64.deb.tar;
       sha256 = "1py2bxavdcj0crhk1lwqzjgya5lvyhdfdbr4g04iysj56amxb7f9";
     })
     else throw "Architecture not supported";
diff --git a/pkgs/development/libraries/libpcap/default.nix b/pkgs/development/libraries/libpcap/default.nix
index 8f786469a555..73a7cd2e4bb5 100644
--- a/pkgs/development/libraries/libpcap/default.nix
+++ b/pkgs/development/libraries/libpcap/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "1gfy00zv6blplw3405q46khmjhdnp6ylblvygjjjk5skgvpscdd1";
   };
   
-  buildNativeInputs = [ flex bison ];
+  nativeBuildInputs = [ flex bison ];
   
   configureFlags = "--with-pcap=linux";
 
diff --git a/pkgs/development/libraries/libplist/default.nix b/pkgs/development/libraries/libplist/default.nix
index 816269599387..95da6dfb7499 100644
--- a/pkgs/development/libraries/libplist/default.nix
+++ b/pkgs/development/libraries/libplist/default.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation rec {
   name = "libplist-1.3";
 
-  buildNativeInputs = [ cmake swig2 ];
+  nativeBuildInputs = [ cmake swig2 ];
 
   patches = [ ./swig.patch ];
 
diff --git a/pkgs/development/libraries/libpng/12.nix b/pkgs/development/libraries/libpng/12.nix
index ebdb9e756aaa..031e2aa1a914 100644
--- a/pkgs/development/libraries/libpng/12.nix
+++ b/pkgs/development/libraries/libpng/12.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ zlib ];
 
-  buildNativeInputs = [ xz ];
+  nativeBuildInputs = [ xz ];
 
   passthru = { inherit zlib; };
 
diff --git a/pkgs/development/libraries/librdf/default.nix b/pkgs/development/libraries/librdf/default.nix
index 1f3e5b409378..21c952b7fb89 100644
--- a/pkgs/development/libraries/librdf/default.nix
+++ b/pkgs/development/libraries/librdf/default.nix
@@ -1,18 +1,30 @@
-{ stdenv, fetchurl, pkgconfig, librdf_raptor, ladspaH, openssl, zlib }:
+{ stdenv, fetchurl, pkgconfig, libtool, automake, autoconf
+, librdf_raptor, librdf_raptor2, ladspaH, openssl, zlib #, swh_lv2
+}:
 
-stdenv.mkDerivation {
-  name = "liblrdf-0.4.0";
+stdenv.mkDerivation rec {
+  version = "0.5.0";
+  name = "liblrdf-${version}";
 
   src = fetchurl {
-    url = mirror://sourceforge/lrdf/liblrdf/0.4.0/liblrdf-0.4.0.tar.gz;
-    sha256 = "015jv7pp0a0qxgljgdvf7d01nj4fx0zgzg0wayjp7v86pa38xscm";
+    url = "http://github.com/swh/LRDF/archive/${version}.tar.gz";
+    sha256 = "18p2flb2sv2hq6w2qkd29z9c7knnwqr3f12i2srshlzx6vwkm05s";
   };
 
-  buildInputs = [ pkgconfig ladspaH openssl zlib ];
+  postPatch = "sed -i -e 's:usr/local:usr:' examples/{instances,remove}_test.c";
 
-  propagatedBuildInputs = [ librdf_raptor ];
+  preConfigure = "rm m4/* && autoreconf -if";
 
-  meta = { 
+  buildInputs = [
+    pkgconfig libtool automake autoconf ladspaH openssl zlib /*swh_lv2*/
+    #librdf_raptor 
+  ];
+
+  propagatedBuildInputs = [ librdf_raptor2 ];
+
+  #doCheck = true; # would need swh_lv2 and some path patching
+
+  meta = {
     description = "A lightweight RDF library with special support for LADSPA plugins.";
     homepage = http://sourceforge.net/projects/lrdf/;
     license = "GPLv2";
diff --git a/pkgs/development/libraries/librdf/raptor2.nix b/pkgs/development/libraries/librdf/raptor2.nix
index 2f956630fa12..4658cf283353 100644
--- a/pkgs/development/libraries/librdf/raptor2.nix
+++ b/pkgs/development/libraries/librdf/raptor2.nix
@@ -1,18 +1,18 @@
 { stdenv, fetchurl, libxml2, libxslt, curl }:
 
 stdenv.mkDerivation rec {
-  name = "raptor2-2.0.4";
+  name = "raptor2-2.0.8"; # 2.0.9 misses a header and so fails liblrdf
 
   src = fetchurl {
     url = "http://download.librdf.org/source/${name}.tar.gz";
-    sha256 = "0viaam60adhsxim2vaq5xs1pfmm6wiidxpkrhwyl7x9mz8x9vx1l";
+    sha256 = "1mz7cxnfw73saf74c9if06n2mlsvn2rnn67vy7j2mq3wkhy0hcb0";
   };
 
   buildInputs = [ libxml2 libxslt ];
 
   postInstall = "rm -rvf $out/share/gtk-doc";
 
-  meta = { 
+  meta = {
     description = "The RDF Parser Toolkit";
     homepage = "http://librdf.org/raptor";
     license = "LGPL-2.1 Apache-2.0";
diff --git a/pkgs/development/libraries/librdf/rasqal.nix b/pkgs/development/libraries/librdf/rasqal.nix
index bcab7e03917f..6d6f9d058081 100644
--- a/pkgs/development/libraries/librdf/rasqal.nix
+++ b/pkgs/development/libraries/librdf/rasqal.nix
@@ -1,22 +1,22 @@
 { stdenv, fetchurl, librdf_raptor2, gmp, pkgconfig, pcre, libxml2 }:
 
 stdenv.mkDerivation rec {
-  name = "rasqal-0.9.26";
+  name = "rasqal-0.9.30";
 
   src = fetchurl {
     url = "http://download.librdf.org/source/${name}.tar.gz";
-    sha256 = "1drjcy1k9g72iis0ghllzn7n0w03bahhrd2p5hs39anbm6mr0yk9";
+    sha256 = "1z8wifq79kivcwpwzmjnjdrbr65zam190gpxhgrvsyfch0yykw5b";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   buildInputs = [ gmp pcre libxml2 ];
 
   propagatedBuildInputs = [ librdf_raptor2 ];
 
   postInstall = "rm -rvf $out/share/gtk-doc";
-  
-  meta = { 
+
+  meta = {
     description = "Library that handles Resource Description Framework (RDF)";
     homepage = "http://librdf.org/rasqal";
     license = "LGPL-2.1 Apache-2.0";
diff --git a/pkgs/development/libraries/librdf/redland.nix b/pkgs/development/libraries/librdf/redland.nix
index e825e1d852b2..26b3de70dcdc 100644
--- a/pkgs/development/libraries/librdf/redland.nix
+++ b/pkgs/development/libraries/librdf/redland.nix
@@ -7,14 +7,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "redland-1.0.14";
+  name = "redland-1.0.16";
 
   src = fetchurl {
     url = "http://download.librdf.org/source/${name}.tar.gz";
-    sha256 = "1i460q9gslb7l75hjwc6w2kp2wk7fgp8lr7phamg33c6j013y30k";
+    sha256 = "1gcx0h5dxa3c4xhhjk3gr0708zjj0n6zpslvbjfi2qbf13y798nr";
   };
 
-  buildNativeInputs = [ perl pkgconfig ];
+  nativeBuildInputs = [ perl pkgconfig ];
 
   buildInputs = [ openssl libxslt curl pcre libxml2 ]
     ++ stdenv.lib.optional withMysql mysql
diff --git a/pkgs/development/libraries/librsvg/default.nix b/pkgs/development/libraries/librsvg/default.nix
index 3f84a69e3f46..0da302038769 100644
--- a/pkgs/development/libraries/librsvg/default.nix
+++ b/pkgs/development/libraries/librsvg/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
   };
   buildInputs = [ libxml2 libgsf bzip2 libcroco ];
   propagatedBuildInputs = [ glib gtk ];
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   # It wants to add loaders and update the loaders.cache in gdk-pixbuf
   # Patching the Makefiles to it creates rsvg specific loaders and the
diff --git a/pkgs/development/libraries/libsoup/default.nix b/pkgs/development/libraries/libsoup/default.nix
index 87aaafabcc4b..08784a0f2574 100644
--- a/pkgs/development/libraries/libsoup/default.nix
+++ b/pkgs/development/libraries/libsoup/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
   };
 
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   propagatedBuildInputs = [ glib libxml2 ]
     ++ stdenv.lib.optionals gnomeSupport [ libgnome_keyring sqlite ];
   passthru.propagatedUserEnvPackages = [ glib_networking ];
diff --git a/pkgs/development/libraries/libssh/default.nix b/pkgs/development/libraries/libssh/default.nix
index f8621f3b78b2..c2b812744c9a 100644
--- a/pkgs/development/libraries/libssh/default.nix
+++ b/pkgs/development/libraries/libssh/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ zlib libgcrypt ];
 
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   cmakeFlags = "-DWITH_GCRYPT=ON";
 
diff --git a/pkgs/development/libraries/libtasn1/default.nix b/pkgs/development/libraries/libtasn1/default.nix
index f70f7d348016..f5c07f47379f 100644
--- a/pkgs/development/libraries/libtasn1/default.nix
+++ b/pkgs/development/libraries/libtasn1/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "libtasn1-2.12";
+  name = "libtasn1-2.13";
 
   src = fetchurl {
     url = "mirror://gnu/libtasn1/${name}.tar.gz";
-    sha256 = "0p8w38l04fgm82iqgl1abhb1ajp04v116bi6fd7lc3n80657l98f";
+    sha256 = "14asfhi35pwc67v7abbwim344h444237bjaqp92gwhhx7m44cvm5";
   };
 
   doCheck = true;
diff --git a/pkgs/development/libraries/libtheora/default.nix b/pkgs/development/libraries/libtheora/default.nix
index e846b213ee0f..cb9367474173 100644
--- a/pkgs/development/libraries/libtheora/default.nix
+++ b/pkgs/development/libraries/libtheora/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation ({
   propagatedBuildInputs = [libogg libvorbis];
 
   crossAttrs = {
-    propagatedBuildInputs = [libogg.hostDrv tremor.hostDrv];
+    propagatedBuildInputs = [libogg.crossDrv tremor.crossDrv];
     configureFlags = "--disable-examples";
   };
 }
diff --git a/pkgs/development/libraries/libvirt/default.nix b/pkgs/development/libraries/libvirt/default.nix
index de6ef510e16d..ce714fd59ffc 100644
--- a/pkgs/development/libraries/libvirt/default.nix
+++ b/pkgs/development/libraries/libvirt/default.nix
@@ -3,14 +3,14 @@
 , libtasn1, ebtables, libgcrypt, yajl
 }:
 
-let version = "0.9.11"; in
+let version = "1.0.2"; in
 
 stdenv.mkDerivation {
   name = "libvirt-${version}";
 
   src = fetchurl {
     url = "http://libvirt.org/sources/libvirt-${version}.tar.gz";
-    sha256 = "0qk0fsc5rxwwjp7801vdanmw61p89xqiy6q279i0kqc3bx1zx66f";
+    sha256 = "0yf104r1377pg0kmx6sshmh8v5z0bdvv6266y5gbcn46yx92g34v";
   };
 
   buildInputs =
diff --git a/pkgs/development/libraries/libvisio/default.nix b/pkgs/development/libraries/libvisio/default.nix
index 99146cd02cc4..77e7e0a56f64 100644
--- a/pkgs/development/libraries/libvisio/default.nix
+++ b/pkgs/development/libraries/libvisio/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "1iqkz280mi066bdccyxagkqm41i270nx01cacvgjq2pflgd3njd1";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ boost libwpd libwpg ];
 
   configureFlags = "--disable-werror";
diff --git a/pkgs/development/libraries/libvorbis/default.nix b/pkgs/development/libraries/libvorbis/default.nix
index efb210d65762..b1277b87e6a7 100644
--- a/pkgs/development/libraries/libvorbis/default.nix
+++ b/pkgs/development/libraries/libvorbis/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "1gby6hapz9njx4l9g0pndyk4q83z5fgrgc30mfwfgx7bllspsk43";
   };
 
-  buildNativeInputs = [ xz ];
+  nativeBuildInputs = [ xz ];
   propagatedBuildInputs = [ libogg ];
 
   meta = {
diff --git a/pkgs/development/libraries/libwpd/0.8.nix b/pkgs/development/libraries/libwpd/0.8.nix
index ceaa0d36d4b5..536db35fb4e9 100644
--- a/pkgs/development/libraries/libwpd/0.8.nix
+++ b/pkgs/development/libraries/libwpd/0.8.nix
@@ -12,5 +12,5 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ glib libgsf libxml2 ];
 
-  buildNativeInputs = [ pkgconfig bzip2 ];
+  nativeBuildInputs = [ pkgconfig bzip2 ];
 }
diff --git a/pkgs/development/libraries/libwpd/default.nix b/pkgs/development/libraries/libwpd/default.nix
index d857b6e17ea4..1c56022de580 100644
--- a/pkgs/development/libraries/libwpd/default.nix
+++ b/pkgs/development/libraries/libwpd/default.nix
@@ -10,5 +10,5 @@ stdenv.mkDerivation rec {
   
   buildInputs = [ glib libgsf libxml2 ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 }
diff --git a/pkgs/development/libraries/libwpg/default.nix b/pkgs/development/libraries/libwpg/default.nix
index d140b8b8a0cd..a97b8fc2fd85 100644
--- a/pkgs/development/libraries/libwpg/default.nix
+++ b/pkgs/development/libraries/libwpg/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ libwpd ];
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     homepage = http://libwpg.sourceforge.net;
diff --git a/pkgs/development/libraries/libxcrypt/default.nix b/pkgs/development/libraries/libxcrypt/default.nix
deleted file mode 100644
index 536d30992bbd..000000000000
--- a/pkgs/development/libraries/libxcrypt/default.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{stdenv, fetchurl}:
-
-# I could not build it in armv5tel-linux or the fuloon2f
-assert !stdenv.isArm;
-assert stdenv.system != "mips64el-linux";
-   
-stdenv.mkDerivation {
-  name = "libxcrypt-3.0.2";
-   
-  src = fetchurl {
-    url = ftp://ftp.suse.com/pub/people/kukuk/libxcrypt/libxcrypt-3.0.2.tar.bz2;
-    sha256 = "15l2xvhi3r3b40x4665c101ikylh5xsbpw03gnszypfjgn1jkcii";
-  };
-
-  patches = [ ./gcc46.patch ];
-
-}
diff --git a/pkgs/development/libraries/libxcrypt/gcc46.patch b/pkgs/development/libraries/libxcrypt/gcc46.patch
deleted file mode 100644
index 0664f96aa688..000000000000
--- a/pkgs/development/libraries/libxcrypt/gcc46.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-For gcc 4.6 to build this. Otherwise it says 's unused variable', and it's built
-with -Werror.
-
-diff --git a/src/cert.c b/src/cert.c
-index 28c7b11..34570a4 100644
---- a/src/cert.c
-+++ b/src/cert.c
-@@ -87,9 +87,7 @@ char *cp;
- 	int i,j,t;
- 
- 	for(i=0;i<8;i++){
--		int s;
--                  
--                s = scanf("%2x",&t);
-+                scanf("%2x",&t);
- 		if(feof(stdin))
- 		  good_bye();
- 		for(j=0; j<8 ; j++) {
diff --git a/pkgs/development/libraries/libxklavier/default.nix b/pkgs/development/libraries/libxklavier/default.nix
index b50399d4f108..ac5c6146cbae 100644
--- a/pkgs/development/libraries/libxklavier/default.nix
+++ b/pkgs/development/libraries/libxklavier/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   # TODO: enable xmodmap support, needs xmodmap DB
   propagatedBuildInputs = [ libX11 libXi xkeyboard_config libxml2 libICE glib libxkbfile isocodes ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   configureFlags = ''
     --with-xkb-base=${xkeyboard_config}/etc/X11/xkb
diff --git a/pkgs/development/libraries/lirc/default.nix b/pkgs/development/libraries/lirc/default.nix
index 20ef82401e65..75f175a5b2da 100644
--- a/pkgs/development/libraries/lirc/default.nix
+++ b/pkgs/development/libraries/lirc/default.nix
@@ -10,5 +10,9 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ alsaLib ];
 
-  configureFlags = "--with-driver=none --enable-sandboxed";
+  configureFlags = [
+    "--with-driver=devinput"
+    "--sysconfdir=$(out)/etc"
+    "--enable-sandboxed"
+  ];
 }
diff --git a/pkgs/development/libraries/mediastreamer/default.nix b/pkgs/development/libraries/mediastreamer/default.nix
index ebd6826bc9ed..4aa78570b2ff 100644
--- a/pkgs/development/libraries/mediastreamer/default.nix
+++ b/pkgs/development/libraries/mediastreamer/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
 # TODO: make it load plugins from *_PLUGIN_PATH
-  buildNativeInputs = [pkgconfig intltool];
+  nativeBuildInputs = [pkgconfig intltool];
 
   propagatedBuildInputs = [alsaLib ffmpeg speex ortp pulseaudio xorg.libX11
     xorg.libXv xorg.libXext libv4l libtheora libvpx gsm ];
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index f72638677d1c..d3f7afbd3084 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
   buildInputs = [ expat libdrm libXxf86vm libXfixes libXdamage glproto dri2proto
     libxml2Python libX11 libXext libxcb libXt udev ];
 
-  buildNativeInputs = [ pkgconfig python makedepend file flex bison ];
+  nativeBuildInputs = [ pkgconfig python makedepend file flex bison ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/mythes/default.nix b/pkgs/development/libraries/mythes/default.nix
index ff06f2a00506..8fc160ae11d5 100644
--- a/pkgs/development/libraries/mythes/default.nix
+++ b/pkgs/development/libraries/mythes/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ hunspell ];
-  buildNativeInputs = [ pkgconfig perl ];
+  nativeBuildInputs = [ pkgconfig perl ];
 
   meta = {
     homepage = http://hunspell.sourceforge.net/;
diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix
index a6b9a69e6e1f..569d7fe2a328 100644
--- a/pkgs/development/libraries/ncurses/default.nix
+++ b/pkgs/development/libraries/ncurses/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation (rec {
     ${if unicode then "--enable-widec" else ""}${if cxx then "" else "--without-cxx-binding"}
   '';
 
-  selfBuildNativeInput = true;
+  selfNativeBuildInput = true;
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/ntrack/default.nix b/pkgs/development/libraries/ntrack/default.nix
index 95bde495c0ef..13ab00e41be6 100644
--- a/pkgs/development/libraries/ntrack/default.nix
+++ b/pkgs/development/libraries/ntrack/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ libnl qt4 ];
 
-  buildNativeInputs = [ pkgconfig python ];
+  nativeBuildInputs = [ pkgconfig python ];
 
   configureFlags = "--without-gobject CFLAGS=--std=gnu99";
 
diff --git a/pkgs/development/libraries/ogrepaged/default.nix b/pkgs/development/libraries/ogrepaged/default.nix
index 6b2b9c9e4a65..f508637dfefb 100644
--- a/pkgs/development/libraries/ogrepaged/default.nix
+++ b/pkgs/development/libraries/ogrepaged/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ ois ogre libX11 boost ];
-  buildNativeInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig ];
 
   cmakeFlags = "-DPAGEDGEOMETRY_BUILD_SAMPLES=OFF";
 
diff --git a/pkgs/development/libraries/openbabel/default.nix b/pkgs/development/libraries/openbabel/default.nix
index 455dbceff23c..e6df13eed34e 100644
--- a/pkgs/development/libraries/openbabel/default.nix
+++ b/pkgs/development/libraries/openbabel/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   # TODO : separate lib and apps
   buildInputs = [ zlib libxml2 eigen python cairo ];
 
-  buildNativeInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig ];
 
   meta = {
     platforms = stdenv.lib.platforms.all;
diff --git a/pkgs/development/libraries/opencv/default.nix b/pkgs/development/libraries/opencv/default.nix
index 207c14bdce05..09a36247348d 100644
--- a/pkgs/development/libraries/opencv/default.nix
+++ b/pkgs/development/libraries/opencv/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ gtk glib libjpeg libpng libtiff jasper ffmpeg xineLib gstreamer ];
 
-  buildNativeInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/openscenegraph/default.nix b/pkgs/development/libraries/openscenegraph/default.nix
index 08e08b876b66..01993fa1cd87 100644
--- a/pkgs/development/libraries/openscenegraph/default.nix
+++ b/pkgs/development/libraries/openscenegraph/default.nix
@@ -2,22 +2,22 @@ x@{builderDefsPackage
   , cmake, giflib, libjpeg, libtiff, lib3ds, freetype, libpng
   , coin3d, jasper, gdal, xproto, libX11, libXmu, freeglut, mesa
   , doxygen, ffmpeg, xineLib, unzip, zlib, openal, libxml2
-  , curl
+  , curl, a52dec, faad2, gdk_pixbuf
   , ...}:
 builderDefsPackage
 (a :
-let 
-  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+let
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
     [];
 
   buildInputs = map (n: builtins.getAttr n x)
     (builtins.attrNames (builtins.removeAttrs x helperArgNames));
   sourceInfo = rec {
     baseName="OpenSceneGraph";
-    version="2.8.3";
+    version="3.0.1";
     name="${baseName}-${version}";
     url="http://www.openscenegraph.org/downloads/stable_releases/${name}/source/${name}.zip";
-    hash="0phihxs7zgir9n1z54xsrsha8wa0xll7xl6lvqvrrczf0bm80yrs";
+    hash="15l23mxv93mw6wkc90x52jhwxh7r3d7lahwdsv3jfnha9dbh648c";
   };
 in
 rec {
@@ -30,7 +30,9 @@ rec {
   inherit buildInputs;
 
   /* doConfigure should be removed if not needed */
-  phaseNames = ["setVars" "addInputs" "doUnpack" "doCmake" "doMakeInstall"];
+  phaseNames = ["setVars" "addInputs" "doUnpack" "doPatch" "doCmake" "doMakeInstall"];
+
+  patches = [ ./xine.patch ]; # http://forum.openscenegraph.org/viewtopic.php?t=9659
 
   cmakeFlags = [
     "-D MATH_LIBRARY="
@@ -39,7 +41,7 @@ rec {
   setVars = a.noDepEntry ''
     export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -D__STDC_CONSTANT_MACROS=1"
   '';
-      
+
   meta = {
     description = "A 3D graphics toolkit";
     maintainers = with a.lib.maintainers;
diff --git a/pkgs/development/libraries/openscenegraph/xine.patch b/pkgs/development/libraries/openscenegraph/xine.patch
new file mode 100644
index 000000000000..8fbc8ceec52e
--- /dev/null
+++ b/pkgs/development/libraries/openscenegraph/xine.patch
@@ -0,0 +1,18 @@
+--- OpenSceneGraph-3.0.1.orig/src/osgPlugins/xine/video_out_rgb.c
++++ OpenSceneGraph-3.0.1/src/osgPlugins/xine/video_out_rgb.c
+@@ -2769,8 +2769,14 @@ init_class(xine_t* xine, void* vo_visual
+ 	clear(rgb_class, sizeof(rgbout_class_t));
+ 
+ 	rgb_class->driver_class.open_plugin     = open_plugin;
++#if XINE_MAJOR_VERSION < 1 || (XINE_MAJOR_VERSION == 1 && XINE_MINOR_VERSION < 2)
+ 	rgb_class->driver_class.get_identifier  = get_identifier;
+ 	rgb_class->driver_class.get_description = get_description;
++#else
++	rgb_class->driver_class.identifier      = get_identifier(NULL);
++	rgb_class->driver_class.description     = get_description(NULL);
++#endif
++
+ 	rgb_class->driver_class.dispose         = dispose_class;
+ 
+ 	return(rgb_class);
+
diff --git a/pkgs/development/libraries/openssl/darwin-arch.patch b/pkgs/development/libraries/openssl/darwin-arch.patch
index 5d5a3afdd1d8..63db3efc0846 100644
--- a/pkgs/development/libraries/openssl/darwin-arch.patch
+++ b/pkgs/development/libraries/openssl/darwin-arch.patch
@@ -1,20 +1,12 @@
-diff -ru openssl-1.0.0g-orig/Configure openssl-1.0.0g/Configure
---- openssl-1.0.0g-orig/Configure	2011-12-19 18:04:38.000000000 +0100
-+++ openssl-1.0.0g/Configure	2012-01-23 13:45:23.644170171 +0100
-@@ -549,11 +549,11 @@
- 
- ##### MacOS X (a.k.a. Rhapsody or Darwin) setup
- "rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown):MACOSX_RHAPSODY::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}::",
--"darwin-ppc-cc","cc:-arch ppc -O3 -DB_ENDIAN -Wa,-force_cpusubtype_ALL::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc32_asm}:osx32:dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
--"darwin64-ppc-cc","cc:-arch ppc64 -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc64_asm}:osx64:dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
--"darwin-i386-cc","cc:-arch i386 -O3 -fomit-frame-pointer -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:${x86_asm}:macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
--"debug-darwin-i386-cc","cc:-arch i386 -g3 -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:${x86_asm}:macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
--"darwin64-x86_64-cc","cc:-arch x86_64 -O3 -DL_ENDIAN -DMD32_REG_T=int -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$x86_64_asm;$asm=~s/rc4\-[^:]+//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
-+"darwin-ppc-cc","cc:-O3 -DB_ENDIAN -Wa,-force_cpusubtype_ALL::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc32_asm}:osx32:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
-+"darwin64-ppc-cc","cc:-O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc64_asm}:osx64:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
-+"darwin-i386-cc","cc:-O3 -fomit-frame-pointer -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:${x86_asm}:macosx:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
-+"debug-darwin-i386-cc","cc:-g3 -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:${x86_asm}:macosx:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
-+"darwin64-x86_64-cc","cc:-O3 -DL_ENDIAN -DMD32_REG_T=int -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$x86_64_asm;$asm=~s/rc4\-[^:]+//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+diff -ru -x '*~' openssl-1.0.1c-orig/Configure openssl-1.0.1c/Configure
+--- openssl-1.0.1c-orig/Configure	2012-03-14 23:20:40.000000000 +0100
++++ openssl-1.0.1c/Configure	2012-12-18 17:29:30.268090633 +0100
+@@ -579,7 +579,7 @@
+ "darwin64-ppc-cc","cc:-arch ppc64 -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc64_asm}:osx64:dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+ "darwin-i386-cc","cc:-arch i386 -O3 -fomit-frame-pointer -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:".eval{my $asm=$x86_asm;$asm=~s/cast\-586\.o//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+ "debug-darwin-i386-cc","cc:-arch i386 -g3 -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:${x86_asm}:macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+-"darwin64-x86_64-cc","cc:-arch x86_64 -O3 -DL_ENDIAN -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$x86_64_asm;$asm=~s/rc4\-[^:]+//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
++"darwin64-x86_64-cc","cc:-O3 -DL_ENDIAN -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$x86_64_asm;$asm=~s/rc4\-[^:]+//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
  "debug-darwin-ppc-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DB_ENDIAN -g -Wall -O::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc32_asm}:osx32:dlfcn:darwin-shared:-fPIC:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
- 
- ##### A/UX
+ # iPhoneOS/iOS
+ "iphoneos-cross","llvm-gcc:-O3 -isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK) -fomit-frame-pointer -fno-common::-D_REENTRANT:iOS:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix
index 48574a332c8d..640b99df5473 100644
--- a/pkgs/development/libraries/openssl/default.nix
+++ b/pkgs/development/libraries/openssl/default.nix
@@ -2,7 +2,7 @@
 , withCryptodev ? false, cryptodevHeaders }:
 
 let
-  name = "openssl-1.0.0i";
+  name = "openssl-1.0.1e";
 
   opensslCrossSystem = stdenv.lib.attrByPath [ "openssl" "system" ]
     (throw "openssl needs its platform name cross building" null)
@@ -30,7 +30,7 @@ let
         ]
 
     ++ stdenv.lib.optional stdenv.isDarwin ./darwin-arch.patch;
-  
+
 in
 
 stdenv.mkDerivation {
@@ -41,30 +41,33 @@ stdenv.mkDerivation {
       "http://www.openssl.org/source/${name}.tar.gz"
       "http://openssl.linux-mirror.org/source/${name}.tar.gz"
     ];
-    sha1 = "b7aa11cbd7d264c2b1f44e3d55b334fb33f7b674";
+    sha256 = "1qqskk39jh85fvdn3ycmdqjdf67c0b97dwmmbcysl4gzr3l1akzp";
   };
 
   patches = patchesCross false;
 
   buildInputs = stdenv.lib.optional withCryptodev cryptodevHeaders;
 
-  buildNativeInputs = [ perl ];
+  nativeBuildInputs = [ perl ];
 
   # On x86_64-darwin, "./config" misdetects the system as
   # "darwin-i386-cc".  So specify the system type explicitly.
   configureScript =
     if stdenv.system == "x86_64-darwin" then "./Configure darwin64-x86_64-cc" else "./config";
 
-  configureFlags = "shared --libdir=lib" +
+  configureFlags = "shared --libdir=lib --openssldir=etc/ssl" +
     stdenv.lib.optionalString withCryptodev " -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS";
 
   makeFlags = "MANDIR=$(out)/share/man";
 
+  # Parallel building is broken in OpenSSL.
+  #enableParallelBuilding = true;
+
   postInstall =
     ''
       # If we're building dynamic libraries, then don't install static
       # libraries.
-      if [ -n "$(echo $out/lib/*.so)" ]; then
+      if [ -n "$(echo $out/lib/*.so $out/lib/*.dylib)" ]; then
           rm $out/lib/*.a
       fi
     ''; # */
diff --git a/pkgs/development/libraries/pango/1.30.x.nix b/pkgs/development/libraries/pango/1.30.x.nix
index 7168c1b6c9d6..2fd828a8737f 100644
--- a/pkgs/development/libraries/pango/1.30.x.nix
+++ b/pkgs/development/libraries/pango/1.30.x.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = stdenv.lib.optional stdenv.isDarwin gettext;
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   propagatedBuildInputs = [ x11 glib cairo libpng ];
 
diff --git a/pkgs/development/libraries/pangomm/2.28.x.nix b/pkgs/development/libraries/pangomm/2.28.x.nix
index 5cd4744fed38..7f4d14dfbacf 100644
--- a/pkgs/development/libraries/pangomm/2.28.x.nix
+++ b/pkgs/development/libraries/pangomm/2.28.x.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "10kcdpg080m393f1vz0km41kd3483fkyabprm59gvjwklxkcp3bp";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   propagatedBuildInputs = [ pango glibmm cairomm libpng ];
 
   meta = {
diff --git a/pkgs/development/libraries/pcre/8.30.nix b/pkgs/development/libraries/pcre/8.30.nix
deleted file mode 100644
index 2f636492eb61..000000000000
--- a/pkgs/development/libraries/pcre/8.30.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ stdenv, fetchurl, unicodeSupport ? true, cplusplusSupport ? true }:
-
-stdenv.mkDerivation rec {
-  name = "pcre-8.30";
-
-  src = fetchurl {
-    url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${name}.tar.bz2";
-    sha256 = "c1113fd7db934e97ad8b3917d432e5b642e9eb9afd127eb797804937c965f4ac";
-  };
-
-  # The compiler on Darwin crashes with an internal error while building the
-  # C++ interface. Disabling optimizations on that platform remedies the
-  # problem. In case we ever update the Darwin GCC version, the exception for
-  # that platform ought to be removed.
-  configureFlags = ''
-    ${if unicodeSupport then "--enable-unicode-properties" else ""}
-    ${if !cplusplusSupport then "--disable-cpp" else ""}
-  '' + stdenv.lib.optionalString stdenv.isDarwin "CXXFLAGS=-O0";
-
-  doCheck = !stdenv.isCygwin;                   # XXX: test failure on Cygwin
-
-  meta = {
-    homepage = "http://www.pcre.org/";
-    description = "A library for Perl Compatible Regular Expressions";
-    license = "BSD-3";
-
-    longDescription = ''
-      The PCRE library is a set of functions that implement regular
-      expression pattern matching using the same syntax and semantics as
-      Perl 5. PCRE has its own native API, as well as a set of wrapper
-      functions that correspond to the POSIX regular expression API. The
-      PCRE library is free, even for building proprietary software.
-    '';
-
-    platforms = stdenv.lib.platforms.all;
-    maintainers = [ stdenv.lib.maintainers.simons ];
-  };
-}
diff --git a/pkgs/development/libraries/pcre/8.31.nix b/pkgs/development/libraries/pcre/8.31.nix
deleted file mode 100644
index 41315d9bb5d8..000000000000
--- a/pkgs/development/libraries/pcre/8.31.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ stdenv, fetchurl, unicodeSupport ? true, cplusplusSupport ? true }:
-
-stdenv.mkDerivation rec {
-  name = "pcre-8.31";
-
-  src = fetchurl {
-    url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${name}.tar.bz2";
-    sha256 = "0g4c0z4h30v8g8qg02zcbv7n67j5kz0ri9cfhgkpwg276ljs0y2p";
-  };
-
-  # The compiler on Darwin crashes with an internal error while building the
-  # C++ interface. Disabling optimizations on that platform remedies the
-  # problem. In case we ever update the Darwin GCC version, the exception for
-  # that platform ought to be removed.
-  configureFlags = ''
-    ${if unicodeSupport then "--enable-unicode-properties" else ""}
-    ${if !cplusplusSupport then "--disable-cpp" else ""}
-  '' + stdenv.lib.optionalString stdenv.isDarwin "CXXFLAGS=-O0";
-
-  doCheck = !stdenv.isCygwin;                   # XXX: test failure on Cygwin
-
-  meta = {
-    homepage = "http://www.pcre.org/";
-    description = "A library for Perl Compatible Regular Expressions";
-    license = "BSD-3";
-
-    longDescription = ''
-      The PCRE library is a set of functions that implement regular
-      expression pattern matching using the same syntax and semantics as
-      Perl 5. PCRE has its own native API, as well as a set of wrapper
-      functions that correspond to the POSIX regular expression API. The
-      PCRE library is free, even for building proprietary software.
-    '';
-
-    platforms = stdenv.lib.platforms.all;
-    maintainers = [ stdenv.lib.maintainers.simons ];
-  };
-}
diff --git a/pkgs/development/libraries/pcre/default.nix b/pkgs/development/libraries/pcre/default.nix
index edfe26740def..e59c249348a8 100644
--- a/pkgs/development/libraries/pcre/default.nix
+++ b/pkgs/development/libraries/pcre/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, unicodeSupport ? true, cplusplusSupport ? true }:
 
 stdenv.mkDerivation rec {
-  name = "pcre-8.21";
+  name = "pcre-8.31";
 
   src = fetchurl {
     url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${name}.tar.bz2";
-    sha256 = "1qwrqldbwszbmr4cw4f0xmcl889cmmjbf58l9vxn89zw26fm1f54";
+    sha256 = "5778a02535473c7ee7838ea598c19f451e63cf5eec0bf0307a688301c9078c3c";
   };
 
   # The compiler on Darwin crashes with an internal error while building the
diff --git a/pkgs/development/libraries/pgen/default.nix b/pkgs/development/libraries/pgen/default.nix
index 91c9f16f5c87..53dc7a768ee3 100644
--- a/pkgs/development/libraries/pgen/default.nix
+++ b/pkgs/development/libraries/pgen/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation ( rec {
   };
 
   buildInputs = [aterm toolbuslib cLibrary configSupport ptSupport ptableSupport errorSupport tideSupport sdfSupport sglr ascSupport asfSupport];
-  buildNativeInputs = [pkgconfig];
+  nativeBuildInputs = [pkgconfig];
 
   dontStrip = isMingw;
 } // ( if isMingw then { NIX_CFLAGS_COMPILE = "-O2 -Wl,--stack=0x2300000"; } else {} ) )
diff --git a/pkgs/development/libraries/phonon-backend-gstreamer/default.nix b/pkgs/development/libraries/phonon-backend-gstreamer/default.nix
index b2677eb1e7a5..24a261065ebd 100644
--- a/pkgs/development/libraries/phonon-backend-gstreamer/default.nix
+++ b/pkgs/development/libraries/phonon-backend-gstreamer/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ phonon qt4 gstreamer gst_plugins_base ];
 
-  buildNativeInputs = [ cmake automoc4 pkgconfig ];
+  nativeBuildInputs = [ cmake automoc4 pkgconfig ];
 
   meta = {
     homepage = http://phonon.kde.org/;
diff --git a/pkgs/development/libraries/phonon-backend-vlc/default.nix b/pkgs/development/libraries/phonon-backend-vlc/default.nix
index faa88f8854f9..97e778cc1f58 100644
--- a/pkgs/development/libraries/phonon-backend-vlc/default.nix
+++ b/pkgs/development/libraries/phonon-backend-vlc/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
     sha256 = "1233szd05ahaxyk1sjis374n90m40svfks2aq9jx3g3lxygzwmi2";
   };
 
-  buildNativeInputs = [ cmake automoc4 xz ];
+  nativeBuildInputs = [ cmake automoc4 xz ];
 
   buildInputs = [ qt4 vlc_ phonon ];
 
diff --git a/pkgs/development/libraries/phonon/default.nix b/pkgs/development/libraries/phonon/default.nix
index 2c70957746d2..bd74b9372764 100644
--- a/pkgs/development/libraries/phonon/default.nix
+++ b/pkgs/development/libraries/phonon/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ qt4 pulseaudio ];
 
-  buildNativeInputs = [ cmake automoc4 ];
+  nativeBuildInputs = [ cmake automoc4 ];
 
   meta = {
     homepage = http://phonon.kde.org/;
diff --git a/pkgs/development/libraries/physfs/default.nix b/pkgs/development/libraries/physfs/default.nix
index b39d8bc4aff3..16fb46d1698a 100644
--- a/pkgs/development/libraries/physfs/default.nix
+++ b/pkgs/development/libraries/physfs/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "0sbbyqzqhyf0g68fcvvv20n3928j0x6ik1njmhn1yigvq2bj11na";
   };
 
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   patchPhase = ''
     sed s,-Werror,, -i CMakeLists.txt
diff --git a/pkgs/development/libraries/plib/default.nix b/pkgs/development/libraries/plib/default.nix
index 679db72802c6..5e15a63735ee 100644
--- a/pkgs/development/libraries/plib/default.nix
+++ b/pkgs/development/libraries/plib/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0cha71mflpa10vh2l7ipyqk67dq2y0k5xbafwdks03fwdyzj4ns8";
   };
 
-  NIX_CFLAGS_COMPILE = if (enablePIC) then "-fPIC" else "";
+  NIX_CFLAGS_COMPILE = if enablePIC then "-fPIC" else "";
 
   propagatedBuildInputs = [
     mesa freeglut SDL
diff --git a/pkgs/development/libraries/podofo/default.nix b/pkgs/development/libraries/podofo/default.nix
index 44ae11a6317b..6b79482c330e 100644
--- a/pkgs/development/libraries/podofo/default.nix
+++ b/pkgs/development/libraries/podofo/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "0icpxh1l1dpviq2zwy764dhg8y03zwyf4pgw4s7kb165nvh9v5kv";
   };
   propagatedBuildInputs = [ zlib freetype libjpeg libtiff fontconfig openssl libpng ];
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
   buildInputs = [ lua5 stdenv.gcc.libc ];
   cmakeFlags = "-DPODOFO_BUILD_SHARED=ON -DPODOFO_BUILD_STATIC=OFF";
 
diff --git a/pkgs/development/libraries/polkit-qt-1/default.nix b/pkgs/development/libraries/polkit-qt-1/default.nix
index 0c1a0a79584b..13bc992d0263 100644
--- a/pkgs/development/libraries/polkit-qt-1/default.nix
+++ b/pkgs/development/libraries/polkit-qt-1/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   patches = [ ./polkit-install.patch ];
 
-  buildNativeInputs = [ cmake automoc4 ];
+  nativeBuildInputs = [ cmake automoc4 ];
 
   propagatedBuildInputs = [ polkit glib qt4 ];
 
diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix
index d2ad40615672..2512979bfa3d 100644
--- a/pkgs/development/libraries/poppler/default.nix
+++ b/pkgs/development/libraries/poppler/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optionals gtkSupport [ glib gtk ]
     ++ stdenv.lib.optional qt4Support qt4;
 
-  buildNativeInputs = [ pkgconfig cmake ];
+  nativeBuildInputs = [ pkgconfig cmake ];
 
   cmakeFlags = "-DENABLE_XPDF_HEADERS=ON -DENABLE_LIBCURL=ON -DENABLE_ZLIB=ON";
 
diff --git a/pkgs/development/libraries/ppl/default.nix b/pkgs/development/libraries/ppl/default.nix
index 8cad9022d911..b24b4e06cb94 100644
--- a/pkgs/development/libraries/ppl/default.nix
+++ b/pkgs/development/libraries/ppl/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "1sxviip4yk6gp453pid5scy1ba66dzdpr02i1416yk7lkv0x3yz3";
   };
 
-  buildNativeInputs = [ perl gnum4 ];
+  nativeBuildInputs = [ perl gnum4 ];
   propagatedBuildInputs = [ gmpxx ];
 
   configureFlags = "--disable-watchdog";
diff --git a/pkgs/development/libraries/prison/default.nix b/pkgs/development/libraries/prison/default.nix
index ca8ba46d7dcb..7beb93eb4620 100644
--- a/pkgs/development/libraries/prison/default.nix
+++ b/pkgs/development/libraries/prison/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ qt4 qrencode libdmtx ];
 
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   meta = {
     description = "Qt4 library for QR-codes";
diff --git a/pkgs/development/libraries/pt-support/default.nix b/pkgs/development/libraries/pt-support/default.nix
index c2264eebddc7..063fdd7cc049 100644
--- a/pkgs/development/libraries/pt-support/default.nix
+++ b/pkgs/development/libraries/pt-support/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation ( rec {
   };
 
   buildInputs = [aterm toolbuslib errorSupport];
-  buildNativeInputs = [pkgconfig];
+  nativeBuildInputs = [pkgconfig];
   
   dontStrip = isMingw;
 } // ( if isMingw then { NIX_CFLAGS_COMPILE = "-O2 -Wl,--stack=0x2300000"; } else {} ) )
diff --git a/pkgs/development/libraries/ptable-support/default.nix b/pkgs/development/libraries/ptable-support/default.nix
index c95a82d42876..357d288c7320 100644
--- a/pkgs/development/libraries/ptable-support/default.nix
+++ b/pkgs/development/libraries/ptable-support/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [aterm ptSupport];
-  buildNativeInputs = [pkgconfig];
+  nativeBuildInputs = [pkgconfig];
   
   dontStrip = isMingw;
 } 
diff --git a/pkgs/development/libraries/qca2/default.nix b/pkgs/development/libraries/qca2/default.nix
index 6af622c0a15b..1da9ef193b5f 100644
--- a/pkgs/development/libraries/qca2/default.nix
+++ b/pkgs/development/libraries/qca2/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   
   buildInputs = [ qt4 ];
   
-  buildNativeInputs = [ which ];
+  nativeBuildInputs = [ which ];
 
   preBuild =
     ''
diff --git a/pkgs/development/libraries/qca2/ossl.nix b/pkgs/development/libraries/qca2/ossl.nix
index 1e0c583b7a5d..153d3ba57467 100644
--- a/pkgs/development/libraries/qca2/ossl.nix
+++ b/pkgs/development/libraries/qca2/ossl.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     sha256 =  "ef2c0307e8834e1e7cb23b6fea1cc22486328a37186301a6c11161b1c93d834b";
   };
   buildInputs = [ qt4 qca2 openssl ];
-  buildNativeInputs = [ which ];
+  nativeBuildInputs = [ which ];
   dontAddPrefix = true;
   configureFlags="--no-separate-debug-info --with-qca=${qca2}
     --with-openssl-inc=${openssl}/include --with-openssl-lib=${openssl}/lib";
diff --git a/pkgs/development/libraries/qhull/default.nix b/pkgs/development/libraries/qhull/default.nix
index 6d15ce576ff8..b81dbda15860 100644
--- a/pkgs/development/libraries/qhull/default.nix
+++ b/pkgs/development/libraries/qhull/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "127zpjp6sm8c101hz239k82lpxqcqf4ksdyfqc2py2sm22kclpm3";
   };
 
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   cmakeFlags = "-DMAN_INSTALL_DIR=share/man/man1 -DDOC_INSTALL_DIR=share/doc/qhull";
 
diff --git a/pkgs/development/libraries/qjson/default.nix b/pkgs/development/libraries/qjson/default.nix
index af960c1b9933..e69ae5f98f7b 100644
--- a/pkgs/development/libraries/qjson/default.nix
+++ b/pkgs/development/libraries/qjson/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, cmake, qt4 }:
 
 stdenv.mkDerivation rec {
-  name = "qjson-0.7.1";
+  name = "qjson-0.8.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/qjson/${name}.tar.bz2";
-    sha256 = "155r7nypgnsvjc6w3q51zmjchpqxi4c3azad9cf1fip8bws993iv";
+    sha256 = "1n8lr2ph08yhcgimf4q1pnkd4z15v895bsf3m68ljz14aswvakfd";
   };
 
   buildInputs = [ cmake qt4 ];
diff --git a/pkgs/development/libraries/qt-3/default.nix b/pkgs/development/libraries/qt-3/default.nix
index ba796259f703..91eec5fcd315 100644
--- a/pkgs/development/libraries/qt-3/default.nix
+++ b/pkgs/development/libraries/qt-3/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
     sha256 = "0jd4g3bwkgk2s4flbmgisyihm7cam964gzb3pawjlkhas01zghz8";
   };
 
-  buildNativeInputs = [ which ];
+  nativeBuildInputs = [ which ];
   propagatedBuildInputs = [x11 libXft libXrender zlib libjpeg libpng];
 
   configureFlags = "
diff --git a/pkgs/development/libraries/qt-4.x/4.8/default.nix b/pkgs/development/libraries/qt-4.x/4.8/default.nix
index 0acf5c07bbde..ee449f6471b7 100644
--- a/pkgs/development/libraries/qt-4.x/4.8/default.nix
+++ b/pkgs/development/libraries/qt-4.x/4.8/default.nix
@@ -93,7 +93,7 @@ stdenv.mkDerivation rec {
       mysql postgresql sqlite libjpeg libmng libtiff icu ]
     ++ optionals gtkStyle [ gtk gdk_pixbuf ];
 
-  buildNativeInputs = [ perl pkgconfig which ];
+  nativeBuildInputs = [ perl pkgconfig which ];
 
   prefixKey = "-prefix ";
 
diff --git a/pkgs/development/libraries/rstore-support/default.nix b/pkgs/development/libraries/rstore-support/default.nix
index 95c6d0a0b52d..c18f52e84d7c 100644
--- a/pkgs/development/libraries/rstore-support/default.nix
+++ b/pkgs/development/libraries/rstore-support/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [aterm toolbuslib];
-  buildNativeInputs = [pkgconfig];  
+  nativeBuildInputs = [pkgconfig];  
 
   dontStrip = isMingw;
 } 
diff --git a/pkgs/development/libraries/science/math/liblapack/default.nix b/pkgs/development/libraries/science/math/liblapack/default.nix
index 9f25011b76f8..029deecb93a7 100644
--- a/pkgs/development/libraries/science/math/liblapack/default.nix
+++ b/pkgs/development/libraries/science/math/liblapack/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
 
   propagatedBuildInputs = [ atlasMaybeShared ];
   buildInputs = [ gfortran cmake ];
-  buildNativeInputs = [ python ];
+  nativeBuildInputs = [ python ];
 
   cmakeFlags = [
     "-DUSE_OPTIMIZED_BLAS=ON"
diff --git a/pkgs/development/libraries/sdf-support/default.nix b/pkgs/development/libraries/sdf-support/default.nix
index 0604a099d3ce..8095650b12ff 100644
--- a/pkgs/development/libraries/sdf-support/default.nix
+++ b/pkgs/development/libraries/sdf-support/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   patches = if isMingw then [./mingw.patch] else [];
 
   buildInputs = [aterm toolbuslib errorSupport ptSupport];
-  buildNativeInputs = [pkgconfig];  
+  nativeBuildInputs = [pkgconfig];  
 
   dontStrip = isMingw;
 } 
diff --git a/pkgs/development/libraries/sglr/default.nix b/pkgs/development/libraries/sglr/default.nix
index 449667c6b527..f6c14eae464d 100644
--- a/pkgs/development/libraries/sglr/default.nix
+++ b/pkgs/development/libraries/sglr/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [aterm toolbuslib cLibrary configSupport ptSupport ptableSupport errorSupport];
-  buildNativeInputs = [pkgconfig];  
+  nativeBuildInputs = [pkgconfig];  
 
   dontStrip = isMingw;
 } 
diff --git a/pkgs/development/libraries/simgear/default.nix b/pkgs/development/libraries/simgear/default.nix
index 961d14753335..de8e1d1df1da 100644
--- a/pkgs/development/libraries/simgear/default.nix
+++ b/pkgs/development/libraries/simgear/default.nix
@@ -1,23 +1,23 @@
 x@{builderDefsPackage
   , plib, freeglut, xproto, libX11, libXext, xextproto, libXi , inputproto
   , libICE, libSM, libXt, libXmu, mesa, boost, zlib, libjpeg , freealut
-  , openscenegraph, openal
+  , openscenegraph, openal, expat, cmake
   , ...}:
 builderDefsPackage
-(a :  
-let 
-  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+(a :
+let
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
     [];
 
   buildInputs = map (n: builtins.getAttr n x)
     (builtins.attrNames (builtins.removeAttrs x helperArgNames));
   sourceInfo = rec {
-    baseName="SimGear";
-    version="2.0.0";
+    baseName="simgear";
+    version="2.10.0";
     name="${baseName}-${version}";
-    extension="tar.gz";
-    url="ftp://ftp.goflyflightgear.com/simgear/Source/${name}.${extension}";
-    hash="08fia5rjrlvw45i3v09fn90vhdhb54wjl6kn3d8vpspxmsw4fn55";
+    extension="tar.bz2";
+    url="http://mirrors.ibiblio.org/pub/mirrors/simgear/ftp/Source/${name}.${extension}";
+    hash="0pb148hb35p1c5iz0kpiclmswjl9bax9xfm087ldpxsqg9a0sb2q";
   };
 in
 rec {
@@ -30,8 +30,8 @@ rec {
   inherit buildInputs;
 
   /* doConfigure should be removed if not needed */
-  phaseNames = ["doConfigure" "doMakeInstall"];
-      
+  phaseNames = [ "doCmake" "doMakeInstall" ];
+
   meta = {
     description = "Simulation construction toolkit";
     maintainers = with a.lib.maintainers;
diff --git a/pkgs/development/libraries/sofia-sip/default.nix b/pkgs/development/libraries/sofia-sip/default.nix
index 3ce49e8ffaff..950d1302dad1 100644
--- a/pkgs/development/libraries/sofia-sip/default.nix
+++ b/pkgs/development/libraries/sofia-sip/default.nix
@@ -9,5 +9,5 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ glib openssl ];
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 }
diff --git a/pkgs/development/libraries/soprano/default.nix b/pkgs/development/libraries/soprano/default.nix
index 7705ee1893d9..7a3d6eacde57 100644
--- a/pkgs/development/libraries/soprano/default.nix
+++ b/pkgs/development/libraries/soprano/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   # We disable the Java backend, since we do not need them and they make the closure size much bigger
   buildInputs = [ qt4 clucene_core librdf_redland libiodbc ];
 
-  buildNativeInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig ];
 
   meta = {
     homepage = http://soprano.sourceforge.net/;
diff --git a/pkgs/development/libraries/soqt/default.nix b/pkgs/development/libraries/soqt/default.nix
index 60b148f870e5..80fbb53953a1 100644
--- a/pkgs/development/libraries/soqt/default.nix
+++ b/pkgs/development/libraries/soqt/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ coin3d qt4 ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     homepage = http://www.coin3d.org/;
diff --git a/pkgs/development/libraries/spice/default.nix b/pkgs/development/libraries/spice/default.nix
index fc2e5bb72c5f..2bcb9e593b86 100644
--- a/pkgs/development/libraries/spice/default.nix
+++ b/pkgs/development/libraries/spice/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
                   libXrandr libXfixes libXrender libXext libXinerama
                   python pyparsing ];
 
-  buildNativeInputs = [ pkgconfig spice_protocol ];
+  nativeBuildInputs = [ pkgconfig spice_protocol ];
 
   NIX_CFLAGS_COMPILE = "-fno-stack-protector";
 
diff --git a/pkgs/development/libraries/sqlite/full.nix b/pkgs/development/libraries/sqlite/full.nix
index ccb960643bd0..c6ef448ea122 100644
--- a/pkgs/development/libraries/sqlite/full.nix
+++ b/pkgs/development/libraries/sqlite/full.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [ readline ncurses ];
-  buildNativeInputs = [ tcl ];
+  nativeBuildInputs = [ tcl ];
 
   doCheck = true;
   checkTarget = "test";
diff --git a/pkgs/development/libraries/strigi/default.nix b/pkgs/development/libraries/strigi/default.nix
index 6d7212f5c5c6..465a5d80ae04 100644
--- a/pkgs/development/libraries/strigi/default.nix
+++ b/pkgs/development/libraries/strigi/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   buildInputs =
     [ zlib bzip2 stdenv.gcc.libc libxml2 qt4 exiv2 clucene_core fam dbus_tools ];
 
-  buildNativeInputs = [ cmake pkgconfig perl ];
+  nativeBuildInputs = [ cmake pkgconfig perl ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/taglib-extras/default.nix b/pkgs/development/libraries/taglib-extras/default.nix
index de0c7ba2b754..05fe67eb9d7b 100644
--- a/pkgs/development/libraries/taglib-extras/default.nix
+++ b/pkgs/development/libraries/taglib-extras/default.nix
@@ -7,5 +7,5 @@ stdenv.mkDerivation rec {
     sha256 = "0cln49ws9svvvals5fzxjxlzqm0fzjfymn7yfp4jfcjz655nnm7y";
   };
   buildInputs = [ taglib ];
-  buildNativeInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 }
diff --git a/pkgs/development/libraries/taglib/default.nix b/pkgs/development/libraries/taglib/default.nix
index 8157ca269aa3..cd083f0d80ad 100644
--- a/pkgs/development/libraries/taglib/default.nix
+++ b/pkgs/development/libraries/taglib/default.nix
@@ -1,17 +1,17 @@
 {stdenv, fetchurl, zlib, cmake}:
 
 stdenv.mkDerivation rec {
-  name = "taglib-1.7.1";
-  
+  name = "taglib-1.8";
+
   src = fetchurl {
     url = "https://github.com/downloads/taglib/taglib/${name}.tar.gz";
-    sha256 = "1nc7zd9jxx5gw4n6zqgvjh0wxlm89ihcyyrzk2rbf15njw4lgpjj";
+    sha256 = "16i0zjpxqqslbwi4kl6y15qwm15mh7ykh74x19m2741wf20k9lv6";
   };
-  
+
   cmakeFlags = "-DWITH_ASF=ON -DWITH_MP4=ON";
 
   buildInputs = [zlib];
-  buildNativeInputs = [cmake];
+  nativeBuildInputs = [cmake];
 
   meta = {
     homepage = http://developer.kde.org/~wheeler/taglib.html;
diff --git a/pkgs/development/libraries/telepathy/farstream/default.nix b/pkgs/development/libraries/telepathy/farstream/default.nix
index a183737dc9b2..a6a624c0a878 100644
--- a/pkgs/development/libraries/telepathy/farstream/default.nix
+++ b/pkgs/development/libraries/telepathy/farstream/default.nix
@@ -2,16 +2,16 @@
 , pkgconfig, libxslt, python, gstreamer, gst_python, pygobject }:
 
 stdenv.mkDerivation rec {
-  name = "${pname}-0.2.3";
+  name = "${pname}-0.4.0";
   pname = "telepathy-farstream";
 
   src = fetchurl {
     url = "http://telepathy.freedesktop.org/releases/${pname}/${name}.tar.gz";
-    sha256 = "1a163gk9y3ckabm4a43lxc5a7j2s42hykbwr6r7b5mlfyqq8myx1";
+    sha256 = "13mllgfx4b1hh1vpzq8lk5qfr3ivkkkmwbxgi6d47avgk746kznd";
   };
 
   buildInputs = [ gst_plugins_base gst_python pygobject ];
 
-  propagatedBuildInputs = [ dbus_glib farstream telepathy_glib gstreamer ];
-  buildNativeInputs = [ pkgconfig python libxslt];
+  propagatedBuildInputs = [ dbus_glib telepathy_glib gstreamer farstream ];
+  nativeBuildInputs = [ pkgconfig python libxslt];
 }
diff --git a/pkgs/development/libraries/telepathy/glib/default.nix b/pkgs/development/libraries/telepathy/glib/default.nix
index b31338a65951..46aba67702df 100644
--- a/pkgs/development/libraries/telepathy/glib/default.nix
+++ b/pkgs/development/libraries/telepathy/glib/default.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, dbus_glib, glib, python, pkgconfig, libxslt }:
 
 stdenv.mkDerivation rec {
-  name = "telepathy-glib-0.18.1";
+  name = "telepathy-glib-0.20.1";
 
   src = fetchurl {
     url = "${meta.homepage}/releases/telepathy-glib/${name}.tar.gz";
-    sha256 = "0vac5wk9rpaniqxwa50szcc5ql779ks37sy4z7fj4k73i5k2af1p";
+    sha256 = "1dk1s977zv8c935jsiv7ll51a52rlwd7a6f8v7z8klzvc4zk9801";
   };
 
   propagatedBuildInputs = [dbus_glib glib python];
-  
+
   buildInputs = [pkgconfig libxslt];
 
   meta = {
diff --git a/pkgs/development/libraries/telepathy/qt/default.nix b/pkgs/development/libraries/telepathy/qt/default.nix
index 64067a61e3e1..b535961357b0 100644
--- a/pkgs/development/libraries/telepathy/qt/default.nix
+++ b/pkgs/development/libraries/telepathy/qt/default.nix
@@ -1,16 +1,16 @@
 { stdenv, fetchurl, cmake, qt4, pkgconfig, python, libxslt, dbus_glib
-, telepathy_farstream, telepathy_glib }:
+, telepathy_farstream, telepathy_glib, pythonDBus }:
 
 stdenv.mkDerivation rec {
-  name = "telepathy-qt-0.9.1";
+  name = "telepathy-qt-0.9.3";
 
   src = fetchurl {
     url = "http://telepathy.freedesktop.org/releases/telepathy-qt/${name}.tar.gz";
-    sha256 = "0rwyxjk6646r43mvsg01q7rfsah0ni05fa8gxzlx1zhj76db95yh";
+    sha256 = "1yabyhsikw828ns7cf6hvzbxdxh53na1ck0q7qsav1lvlyz5gzy0";
   };
 
-  buildNativeInputs = [ cmake pkgconfig python libxslt ];
-  propagatedBuildInputs = [ qt4 dbus_glib telepathy_farstream telepathy_glib ];
+  nativeBuildInputs = [ cmake pkgconfig python libxslt ];
+  propagatedBuildInputs = [ qt4 dbus_glib telepathy_farstream telepathy_glib pythonDBus ];
   preBuild = ''
     NIX_CFLAGS_COMPILE+=" `pkg-config --cflags dbus-glib-1`"
   '';
diff --git a/pkgs/development/libraries/tide-support/default.nix b/pkgs/development/libraries/tide-support/default.nix
index a778535f362c..d30d316c0dc0 100644
--- a/pkgs/development/libraries/tide-support/default.nix
+++ b/pkgs/development/libraries/tide-support/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [aterm toolbuslib];
-  buildNativeInputs = [pkgconfig];    
+  nativeBuildInputs = [pkgconfig];    
 
   dontStrip = isMingw;
 } 
diff --git a/pkgs/development/libraries/tokyo-tyrant/default.nix b/pkgs/development/libraries/tokyo-tyrant/default.nix
index 633192133122..b623c7731423 100644
--- a/pkgs/development/libraries/tokyo-tyrant/default.nix
+++ b/pkgs/development/libraries/tokyo-tyrant/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "13xqcinhydqmh7231qlir6pymacjwcf98drybkhd9597kzxp1bs2";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ tokyocabinet ];
 
   doCheck = false;                                # FIXME
diff --git a/pkgs/development/libraries/toolbuslib/default.nix b/pkgs/development/libraries/toolbuslib/default.nix
index 4d184b11abd4..16680f0134c3 100644
--- a/pkgs/development/libraries/toolbuslib/default.nix
+++ b/pkgs/development/libraries/toolbuslib/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   patches = if isMingw then [./mingw.patch] else [];
   
   buildInputs = [aterm] ++ (if isMingw then [w32api] else []);
-  buildNativeInputs = [pkgconfig];
+  nativeBuildInputs = [pkgconfig];
   
   dontStrip = isMingw; 
 }  
diff --git a/pkgs/development/libraries/tremor/default.nix b/pkgs/development/libraries/tremor/default.nix
index 2770fadf0044..d55ea6166e8b 100644
--- a/pkgs/development/libraries/tremor/default.nix
+++ b/pkgs/development/libraries/tremor/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "161411cbefa1527da7a8fc087e78d8e21d19143d3a6eb42fb281e5026aad7568";
   };
 
-  buildNativeInputs = [ autoconf automake libtool pkgconfig ];
+  nativeBuildInputs = [ autoconf automake libtool pkgconfig ];
   propagatedBuildInputs = [ libogg ];
 
   preConfigure = ''
diff --git a/pkgs/development/libraries/v8/default.nix b/pkgs/development/libraries/v8/default.nix
index 1fd6179183fd..1634be1363ae 100644
--- a/pkgs/development/libraries/v8/default.nix
+++ b/pkgs/development/libraries/v8/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
       ln -sv ${gyp}/bin/gyp build/gyp/gyp
     '';
 
-    buildNativeInputs = stdenv.lib.optional (system == "i686-linux") which;
+    nativeBuildInputs = stdenv.lib.optional (system == "i686-linux") which;
     buildInputs = [ readline python ];
 
     buildFlags = [
diff --git a/pkgs/development/libraries/vcdimager/default.nix b/pkgs/development/libraries/vcdimager/default.nix
index 6940f88ffbea..58b9d2f25735 100644
--- a/pkgs/development/libraries/vcdimager/default.nix
+++ b/pkgs/development/libraries/vcdimager/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "1526jxynslg07i50v3c3afhc8swbd4si8y6s8m3h1wrz6mkplp87";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   buildInputs = [ libxml2 popt ];
 
diff --git a/pkgs/development/libraries/vxl/default.nix b/pkgs/development/libraries/vxl/default.nix
index 01ccb23b77cf..2f169f3f25dd 100644
--- a/pkgs/development/libraries/vxl/default.nix
+++ b/pkgs/development/libraries/vxl/default.nix
@@ -9,7 +9,10 @@ stdenv.mkDerivation {
 
   buildInputs = [ cmake unzip libtiff expat zlib libpng libjpeg ];
 
-  cmakeFlags = "-DBUILD_TESTING=OFF " + (if (stdenv.system == "x86_64-linux") then
+  # BUILD_OUL wants old linux headers for videodev.h, not available
+  # in stdenv linux headers
+  cmakeFlags = "-DBUILD_TESTING=OFF -DBUILD_OUL=OFF "
+    + (if stdenv.system == "x86_64-linux" then
       "-DCMAKE_CXX_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC"
     else
       "");
diff --git a/pkgs/development/libraries/webkit/bison26.patch b/pkgs/development/libraries/webkit/bison26.patch
new file mode 100644
index 000000000000..95898adeb8a6
--- /dev/null
+++ b/pkgs/development/libraries/webkit/bison26.patch
@@ -0,0 +1,515 @@
+Index: /trunk/Source/WebCore/ChangeLog

+===================================================================

+--- /trunk/Source/WebCore/ChangeLog	(revision 124098)

++++ /trunk/Source/WebCore/ChangeLog	(revision 124099)

+@@ -1,2 +1,27 @@

++2012-07-30  Alexis Menard  <alexis.menard@openbossa.org>

++

++        Build fix with newer bison 2.6.

++        https://bugs.webkit.org/show_bug.cgi?id=92264

++

++        Reviewed by Adam Barth.

++

++        As stated in http://www.gnu.org/software/bison/manual/html_node/Table-of-Symbols.html

++        YYLEX_PARAM and YYPARSE_PARAM are depecreated since version 1.875. So far all Mac OS

++        version I had access to as well as recent Linux runs at least version 2.3 so it's safe

++        to use the replacement of these deprecated macros in favor of %lex-param and %parse-param.

++        As announced http://lists.gnu.org/archive/html/info-gnu/2012-07/msg00011.html with the release

++        of version 2.6 YYLEX_PARAM and YYPARSE_PARAM are not supported anymore.

++

++        No new tests : build fix and the patch should not trigger any regressions

++

++        * css/CSSGrammar.y:

++        * css/CSSParser.cpp:

++        * xml/XPathGrammar.y: Refactored a bit to not use an intermediate PARSER define.

++        * xml/XPathParser.cpp: bison 2.6 declare xpathyyparse in the .h file now, i.e. XPathGrammar.h

++        therefore including this file within the namespace {} declarations leads to xpathyyparse being

++        defined part of WebCore::XPath namespaces but the actual implementation of xpathyyparse is in XPathGrammar.cpp

++        (generated) and not implemented within the WebCore::XPath so it lead to linking issues. Last, XPathGrammar.h needs 

++        to be included after the other includes as it uses some XPath types. It breaks the style but CSSParser.cpp is doing the same.

++

+ 2012-07-30  Sadrul Habib Chowdhury  <sadrul@chromium.org>

+ 

+Index: /trunk/Source/WebCore/css/CSSParser.cpp

+===================================================================

+--- /trunk/Source/WebCore/css/CSSParser.cpp	(revision 124098)

++++ /trunk/Source/WebCore/css/CSSParser.cpp	(revision 124099)

+@@ -115,5 +115,5 @@

+ #endif

+ 

+-extern int cssyyparse(void* parser);

++extern int cssyyparse(WebCore::CSSParser*);

+ 

+ using namespace std;

+Index: /trunk/Source/WebCore/css/CSSGrammar.y

+===================================================================

+--- /trunk/Source/WebCore/css/CSSGrammar.y	(revision 124098)

++++ /trunk/Source/WebCore/css/CSSGrammar.y	(revision 124099)

+@@ -54,11 +54,10 @@

+ #define YYDEBUG 0

+ 

+-// FIXME: Replace with %parse-param { CSSParser* parser } once we can depend on bison 2.x

+-#define YYPARSE_PARAM parser

+-#define YYLEX_PARAM parser

+-

+ %}

+ 

+ %pure_parser

++

++%parse-param { CSSParser* parser }

++%lex-param { CSSParser* parser }

+ 

+ %union {

+@@ -90,5 +89,5 @@

+ %{

+ 

+-static inline int cssyyerror(const char*)

++static inline int cssyyerror(void*, const char*)

+ {

+     return 1;

+Index: /trunk/Source/WebCore/xml/XPathParser.cpp

+===================================================================

+--- /trunk/Source/WebCore/xml/XPathParser.cpp	(revision 124098)

++++ /trunk/Source/WebCore/xml/XPathParser.cpp	(revision 124099)

+@@ -33,22 +33,19 @@

+ #include "XPathException.h"

+ #include "XPathNSResolver.h"

++#include "XPathPath.h"

+ #include "XPathStep.h"

+ #include <wtf/StdLibExtras.h>

+ #include <wtf/text/StringHash.h>

+ 

+-int xpathyyparse(void*);

+-

++using namespace WebCore;

+ using namespace WTF;

+ using namespace Unicode;

+-

+-namespace WebCore {

+-namespace XPath {

+-

+-class LocationPath;

+-

+-#include "XPathGrammar.h"    

++using namespace XPath;

++

++extern int xpathyyparse(WebCore::XPath::Parser*);

++#include "XPathGrammar.h"

+ 

+ Parser* Parser::currentParser = 0;

+-    

++

+ enum XMLCat { NameStart, NameCont, NotPartOfName };

+ 

+@@ -631,4 +628,2 @@

+ }

+ 

+-}

+-}

+Index: /trunk/Source/WebCore/xml/XPathGrammar.y

+===================================================================

+--- /trunk/Source/WebCore/xml/XPathGrammar.y	(revision 124098)

++++ /trunk/Source/WebCore/xml/XPathGrammar.y	(revision 124099)

+@@ -35,4 +35,5 @@

+ #include "XPathPath.h"

+ #include "XPathPredicate.h"

++#include "XPathStep.h"

+ #include "XPathVariableReference.h"

+ #include <wtf/FastMalloc.h>

+@@ -45,6 +46,4 @@

+ #define YYDEBUG 0

+ #define YYMAXDEPTH 10000

+-#define YYPARSE_PARAM parserParameter

+-#define PARSER static_cast<Parser*>(parserParameter)

+ 

+ using namespace WebCore;

+@@ -54,4 +53,5 @@

+ 

+ %pure_parser

++%parse-param { WebCore::XPath::Parser* parser }

+ 

+ %union

+@@ -72,5 +72,5 @@

+ 

+ static int xpathyylex(YYSTYPE* yylval) { return Parser::current()->lex(yylval); }

+-static void xpathyyerror(const char*) { }

++static void xpathyyerror(void*, const char*) { }

+     

+ %}

+@@ -119,5 +119,5 @@

+     OrExpr

+     {

+-        PARSER->m_topExpr = $1;

++        parser->m_topExpr = $1;

+     }

+     ;

+@@ -139,5 +139,5 @@

+     {

+         $$ = new LocationPath;

+-        PARSER->registerParseNode($$);

++        parser->registerParseNode($$);

+     }

+     |

+@@ -151,5 +151,5 @@

+         $$ = $2;

+         $$->insertFirstStep($1);

+-        PARSER->unregisterParseNode($1);

++        parser->unregisterParseNode($1);

+     }

+     ;

+@@ -160,6 +160,6 @@

+         $$ = new LocationPath;

+         $$->appendStep($1);

+-        PARSER->unregisterParseNode($1);

+-        PARSER->registerParseNode($$);

++        parser->unregisterParseNode($1);

++        parser->registerParseNode($$);

+     }

+     |

+@@ -167,5 +167,5 @@

+     {

+         $$->appendStep($3);

+-        PARSER->unregisterParseNode($3);

++        parser->unregisterParseNode($3);

+     }

+     |

+@@ -174,6 +174,6 @@

+         $$->appendStep($2);

+         $$->appendStep($3);

+-        PARSER->unregisterParseNode($2);

+-        PARSER->unregisterParseNode($3);

++        parser->unregisterParseNode($2);

++        parser->unregisterParseNode($3);

+     }

+     ;

+@@ -184,9 +184,9 @@

+         if ($2) {

+             $$ = new Step(Step::ChildAxis, *$1, *$2);

+-            PARSER->deletePredicateVector($2);

++            parser->deletePredicateVector($2);

+         } else

+             $$ = new Step(Step::ChildAxis, *$1);

+-        PARSER->deleteNodeTest($1);

+-        PARSER->registerParseNode($$);

++        parser->deleteNodeTest($1);

++        parser->registerParseNode($$);

+     }

+     |

+@@ -195,6 +195,6 @@

+         String localName;

+         String namespaceURI;

+-        if (!PARSER->expandQName(*$1, localName, namespaceURI)) {

+-            PARSER->m_gotNamespaceError = true;

++        if (!parser->expandQName(*$1, localName, namespaceURI)) {

++            parser->m_gotNamespaceError = true;

+             YYABORT;

+         }

+@@ -202,9 +202,9 @@

+         if ($2) {

+             $$ = new Step(Step::ChildAxis, Step::NodeTest(Step::NodeTest::NameTest, localName, namespaceURI), *$2);

+-            PARSER->deletePredicateVector($2);

++            parser->deletePredicateVector($2);

+         } else

+             $$ = new Step(Step::ChildAxis, Step::NodeTest(Step::NodeTest::NameTest, localName, namespaceURI));

+-        PARSER->deleteString($1);

+-        PARSER->registerParseNode($$);

++        parser->deleteString($1);

++        parser->registerParseNode($$);

+     }

+     |

+@@ -213,9 +213,9 @@

+         if ($3) {

+             $$ = new Step($1, *$2, *$3);

+-            PARSER->deletePredicateVector($3);

++            parser->deletePredicateVector($3);

+         } else

+             $$ = new Step($1, *$2);

+-        PARSER->deleteNodeTest($2);

+-        PARSER->registerParseNode($$);

++        parser->deleteNodeTest($2);

++        parser->registerParseNode($$);

+     }

+     |

+@@ -224,6 +224,6 @@

+         String localName;

+         String namespaceURI;

+-        if (!PARSER->expandQName(*$2, localName, namespaceURI)) {

+-            PARSER->m_gotNamespaceError = true;

++        if (!parser->expandQName(*$2, localName, namespaceURI)) {

++            parser->m_gotNamespaceError = true;

+             YYABORT;

+         }

+@@ -231,9 +231,9 @@

+         if ($3) {

+             $$ = new Step($1, Step::NodeTest(Step::NodeTest::NameTest, localName, namespaceURI), *$3);

+-            PARSER->deletePredicateVector($3);

++            parser->deletePredicateVector($3);

+         } else

+             $$ = new Step($1, Step::NodeTest(Step::NodeTest::NameTest, localName, namespaceURI));

+-        PARSER->deleteString($2);

+-        PARSER->registerParseNode($$);

++        parser->deleteString($2);

++        parser->registerParseNode($$);

+     }

+     |

+@@ -260,6 +260,6 @@

+             $$ = new Step::NodeTest(Step::NodeTest::CommentNodeTest);

+ 

+-        PARSER->deleteString($1);

+-        PARSER->registerNodeTest($$);

++        parser->deleteString($1);

++        parser->registerNodeTest($$);

+     }

+     |

+@@ -267,6 +267,6 @@

+     {

+         $$ = new Step::NodeTest(Step::NodeTest::ProcessingInstructionNodeTest);

+-        PARSER->deleteString($1);        

+-        PARSER->registerNodeTest($$);

++        parser->deleteString($1);

++        parser->registerNodeTest($$);

+     }

+     |

+@@ -274,7 +274,7 @@

+     {

+         $$ = new Step::NodeTest(Step::NodeTest::ProcessingInstructionNodeTest, $3->stripWhiteSpace());

+-        PARSER->deleteString($1);        

+-        PARSER->deleteString($3);

+-        PARSER->registerNodeTest($$);

++        parser->deleteString($1);

++        parser->deleteString($3);

++        parser->registerNodeTest($$);

+     }

+     ;

+@@ -294,6 +294,6 @@

+         $$ = new Vector<Predicate*>;

+         $$->append(new Predicate($1));

+-        PARSER->unregisterParseNode($1);

+-        PARSER->registerPredicateVector($$);

++        parser->unregisterParseNode($1);

++        parser->registerPredicateVector($$);

+     }

+     |

+@@ -301,5 +301,5 @@

+     {

+         $$->append(new Predicate($2));

+-        PARSER->unregisterParseNode($2);

++        parser->unregisterParseNode($2);

+     }

+     ;

+@@ -316,5 +316,5 @@

+     {

+         $$ = new Step(Step::DescendantOrSelfAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest));

+-        PARSER->registerParseNode($$);

++        parser->registerParseNode($$);

+     }

+     ;

+@@ -324,5 +324,5 @@

+     {

+         $$ = new Step(Step::SelfAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest));

+-        PARSER->registerParseNode($$);

++        parser->registerParseNode($$);

+     }

+     |

+@@ -330,5 +330,5 @@

+     {

+         $$ = new Step(Step::ParentAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest));

+-        PARSER->registerParseNode($$);

++        parser->registerParseNode($$);

+     }

+     ;

+@@ -338,6 +338,6 @@

+     {

+         $$ = new VariableReference(*$1);

+-        PARSER->deleteString($1);

+-        PARSER->registerParseNode($$);

++        parser->deleteString($1);

++        parser->registerParseNode($$);

+     }

+     |

+@@ -350,6 +350,6 @@

+     {

+         $$ = new StringExpression(*$1);

+-        PARSER->deleteString($1);

+-        PARSER->registerParseNode($$);

++        parser->deleteString($1);

++        parser->registerParseNode($$);

+     }

+     |

+@@ -357,6 +357,6 @@

+     {

+         $$ = new Number($1->toDouble());

+-        PARSER->deleteString($1);

+-        PARSER->registerParseNode($$);

++        parser->deleteString($1);

++        parser->registerParseNode($$);

+     }

+     |

+@@ -370,6 +370,6 @@

+         if (!$$)

+             YYABORT;

+-        PARSER->deleteString($1);

+-        PARSER->registerParseNode($$);

++        parser->deleteString($1);

++        parser->registerParseNode($$);

+     }

+     |

+@@ -379,7 +379,7 @@

+         if (!$$)

+             YYABORT;

+-        PARSER->deleteString($1);

+-        PARSER->deleteExpressionVector($3);

+-        PARSER->registerParseNode($$);

++        parser->deleteString($1);

++        parser->deleteExpressionVector($3);

++        parser->registerParseNode($$);

+     }

+     ;

+@@ -390,6 +390,6 @@

+         $$ = new Vector<Expression*>;

+         $$->append($1);

+-        PARSER->unregisterParseNode($1);

+-        PARSER->registerExpressionVector($$);

++        parser->unregisterParseNode($1);

++        parser->registerExpressionVector($$);

+     }

+     |

+@@ -397,5 +397,5 @@

+     {

+         $$->append($3);

+-        PARSER->unregisterParseNode($3);

++        parser->unregisterParseNode($3);

+     }

+     ;

+@@ -413,7 +413,7 @@

+         $$->addSubExpression($1);

+         $$->addSubExpression($3);

+-        PARSER->unregisterParseNode($1);

+-        PARSER->unregisterParseNode($3);

+-        PARSER->registerParseNode($$);

++        parser->unregisterParseNode($1);

++        parser->unregisterParseNode($3);

++        parser->registerParseNode($$);

+     }

+     ;

+@@ -431,7 +431,7 @@

+         $3->setAbsolute(true);

+         $$ = new Path(static_cast<Filter*>($1), $3);

+-        PARSER->unregisterParseNode($1);

+-        PARSER->unregisterParseNode($3);

+-        PARSER->registerParseNode($$);

++        parser->unregisterParseNode($1);

++        parser->unregisterParseNode($3);

++        parser->registerParseNode($$);

+     }

+     |

+@@ -441,8 +441,8 @@

+         $3->setAbsolute(true);

+         $$ = new Path(static_cast<Filter*>($1), $3);

+-        PARSER->unregisterParseNode($1);

+-        PARSER->unregisterParseNode($2);

+-        PARSER->unregisterParseNode($3);

+-        PARSER->registerParseNode($$);

++        parser->unregisterParseNode($1);

++        parser->unregisterParseNode($2);

++        parser->unregisterParseNode($3);

++        parser->registerParseNode($$);

+     }

+     ;

+@@ -454,7 +454,7 @@

+     {

+         $$ = new Filter($1, *$2);

+-        PARSER->unregisterParseNode($1);

+-        PARSER->deletePredicateVector($2);

+-        PARSER->registerParseNode($$);

++        parser->unregisterParseNode($1);

++        parser->deletePredicateVector($2);

++        parser->registerParseNode($$);

+     }

+     ;

+@@ -466,7 +466,7 @@

+     {

+         $$ = new LogicalOp(LogicalOp::OP_Or, $1, $3);

+-        PARSER->unregisterParseNode($1);

+-        PARSER->unregisterParseNode($3);

+-        PARSER->registerParseNode($$);

++        parser->unregisterParseNode($1);

++        parser->unregisterParseNode($3);

++        parser->registerParseNode($$);

+     }

+     ;

+@@ -478,7 +478,7 @@

+     {

+         $$ = new LogicalOp(LogicalOp::OP_And, $1, $3);

+-        PARSER->unregisterParseNode($1);

+-        PARSER->unregisterParseNode($3);

+-        PARSER->registerParseNode($$);

++        parser->unregisterParseNode($1);

++        parser->unregisterParseNode($3);

++        parser->registerParseNode($$);

+     }

+     ;

+@@ -490,7 +490,7 @@

+     {

+         $$ = new EqTestOp($2, $1, $3);

+-        PARSER->unregisterParseNode($1);

+-        PARSER->unregisterParseNode($3);

+-        PARSER->registerParseNode($$);

++        parser->unregisterParseNode($1);

++        parser->unregisterParseNode($3);

++        parser->registerParseNode($$);

+     }

+     ;

+@@ -502,7 +502,7 @@

+     {

+         $$ = new EqTestOp($2, $1, $3);

+-        PARSER->unregisterParseNode($1);

+-        PARSER->unregisterParseNode($3);

+-        PARSER->registerParseNode($$);

++        parser->unregisterParseNode($1);

++        parser->unregisterParseNode($3);

++        parser->registerParseNode($$);

+     }

+     ;

+@@ -514,7 +514,7 @@

+     {

+         $$ = new NumericOp(NumericOp::OP_Add, $1, $3);

+-        PARSER->unregisterParseNode($1);

+-        PARSER->unregisterParseNode($3);

+-        PARSER->registerParseNode($$);

++        parser->unregisterParseNode($1);

++        parser->unregisterParseNode($3);

++        parser->registerParseNode($$);

+     }

+     |

+@@ -522,7 +522,7 @@

+     {

+         $$ = new NumericOp(NumericOp::OP_Sub, $1, $3);

+-        PARSER->unregisterParseNode($1);

+-        PARSER->unregisterParseNode($3);

+-        PARSER->registerParseNode($$);

++        parser->unregisterParseNode($1);

++        parser->unregisterParseNode($3);

++        parser->registerParseNode($$);

+     }

+     ;

+@@ -534,7 +534,7 @@

+     {

+         $$ = new NumericOp($2, $1, $3);

+-        PARSER->unregisterParseNode($1);

+-        PARSER->unregisterParseNode($3);

+-        PARSER->registerParseNode($$);

++        parser->unregisterParseNode($1);

++        parser->unregisterParseNode($3);

++        parser->registerParseNode($$);

+     }

+     ;

+@@ -547,6 +547,6 @@

+         $$ = new Negative;

+         $$->addSubExpression($2);

+-        PARSER->unregisterParseNode($2);

+-        PARSER->registerParseNode($$);

++        parser->unregisterParseNode($2);

++        parser->registerParseNode($$);

+     }

+     ;

diff --git a/pkgs/development/libraries/webkit/default.nix b/pkgs/development/libraries/webkit/default.nix
index d229228b94f7..ef4d259cb029 100644
--- a/pkgs/development/libraries/webkit/default.nix
+++ b/pkgs/development/libraries/webkit/default.nix
@@ -1,6 +1,6 @@
 args : with args; 
 let 
-  s = import ./src-for-default.nix;
+  s = import ./src-for-default.nix; # 1.8.3 needs newer gtk3, wait for x-updates
   version = lib.attrByPath ["version"] s.version args;
 in
 rec {
@@ -9,12 +9,13 @@ rec {
     sha256 = s.hash;
   };
 
-  buildInputs = [gtk glib atk cairo curl fontconfig freetype
-    gettext libjpeg libpng libtiff libxml2 libxslt pango
-    sqlite icu gperf bison flex autoconf automake libtool 
-    perl intltool pkgconfig libsoup gtkdoc libXt libproxy
-    enchant python ruby which renderproto libXrender geoclue
-    kbproto mesa
+  buildInputs = with xlibs; [
+    pkgconfig libtool intltool autoconf automake gperf bison flex
+    gtk3 gtk2 glib atk cairo pango fontconfig freetype libsoup gtkdoc
+    libjpeg libpng libtiff libxml2 libxslt sqlite icu curl
+    which libproxy geoclue enchant python ruby perl
+    mesa libXt libXrender renderproto libXcomposite compositeproto
+    libXdamage damageproto kbproto
     ];
 
   propagatedBuildInputs = [
@@ -22,19 +23,22 @@ rec {
     ];
 
   configureFlags = [
-    "--enable-3D-transforms"
+    # "--enable-3D-transforms" # no longer recognized
     "--enable-web-sockets"
     "--enable-web-timing"
-    
+
+    # https://bugs.webkit.org/show_bug.cgi?id=55294
+    "--enable-image-resizer"
+
     "--enable-geolocation"
 
     # Not implemented?
-    #"--enable-web-audio"
+    # "--enable-web-audio"
 
     "--enable-mathml"
 
     #"--enable-wml"
-    
+
     # https://bugs.webkit.org/show_bug.cgi?id=45110
     #"--enable-indexed-database"
 
@@ -43,23 +47,29 @@ rec {
 
     # "--enable-input-speech"
 
-    "--enable-file-writer"
+    #"--enable-file-writer" # no longer recognized
     "--enable-blob"
 
     # https://bugs.webkit.org/show_bug.cgi?id=59430
-    #"--enable-directory-upload"
+    # "--enable-directory-upload"
 
     # https://bugs.webkit.org/show_bug.cgi?id=58443
-    #"--enable-file-system"
+    # "--enable-file-system"
+
+    "--enable-dependency-tracking" # to fix parallel building
     ];
 
+  # instead of enableParallelBuilding = true;
+  makeFlags = "-j$NIX_BUILD_CORES";
+
   /* doConfigure should be specified separately */
-  phaseNames = ["setVars" "fixConfigure" /* "paranoidFixComments" */ "doConfigure" (doPatchShebangs ".") 
+  phaseNames = ["doPatch" "fixConfigure" /* "paranoidFixComments" */ "doConfigure" (doPatchShebangs ".") 
     "doReplaceUsrBin" "doMakeInstall" "doAddPrograms"];
 
-  setVars = fullDepEntry (''
-    export NIX_LDFLAGS="$NIX_LDFLAGS -lXt"
-  '') ["minInit"];
+  patches = [ ./bison26.patch ]; # http://trac.webkit.org/changeset/124099
+  patchFlags = "-p2";
+
+  #doCheck = true; # tests still have problems
 
   doReplaceUsrBin = fullDepEntry (''
     for i in $(find . -name '*.pl') $(find . -name '*.pm'); do 
@@ -91,6 +101,6 @@ rec {
     maintainers = [stdenv.lib.maintainers.raskin];
   };
   passthru = {
-    inherit gstreamer gst_plugins_base gst_plugins_good gst_ffmpeg;
+    inherit gstreamer gst_plugins_base gst_plugins_good gst_ffmpeg libsoup;
   };
 }
diff --git a/pkgs/development/libraries/webkit/gtk2.nix b/pkgs/development/libraries/webkit/gtk2.nix
index 0b836cd08f00..c2e3b9b06dd6 100644
--- a/pkgs/development/libraries/webkit/gtk2.nix
+++ b/pkgs/development/libraries/webkit/gtk2.nix
@@ -10,11 +10,13 @@ rec {
     sha256 = s.hash;
   };
 
-  buildInputs = [gtk glib atk cairo curl fontconfig freetype
-    gettext libjpeg libpng libtiff libxml2 libxslt pango
-    sqlite icu gperf bison flex autoconf automake libtool 
-    intltool pkgconfig libsoup gtkdoc libXt libproxy
-    enchant python ruby which renderproto libXrender geoclue perl
+  buildInputs = with xlibs; [
+    pkgconfig libtool intltool autoconf automake gperf bison flex
+    gtk2 glib atk cairo pango fontconfig freetype libsoup gtkdoc
+    libjpeg libpng libtiff libxml2 libxslt sqlite icu curl
+    which libproxy geoclue enchant python ruby perl
+    mesa libXt libXrender renderproto libXcomposite compositeproto
+    libXdamage damageproto kbproto
     ];
 
   propagatedBuildInputs = [
@@ -22,12 +24,14 @@ rec {
     ];
 
   configureFlags = [
-    "--enable-3D-transforms"
+    "--with-gtk=2.0"
+
+    # "--enable-3D-transforms" # no longer recognized
     "--enable-web-sockets"
     "--enable-web-timing"
-    
+
     # https://bugs.webkit.org/show_bug.cgi?id=55294
-    # "--enable-image-resizer"
+    "--enable-image-resizer"
 
     "--enable-geolocation"
 
@@ -37,15 +41,16 @@ rec {
     "--enable-mathml"
 
     #"--enable-wml"
-    
+
     # https://bugs.webkit.org/show_bug.cgi?id=45110
-    # "--enable-indexed-database"
+    #"--enable-indexed-database"
 
-    "--enable-xhtmlmp"
+    # Doesn't work in release...
+    #"--enable-xhtmlmp"
 
     # "--enable-input-speech"
 
-    "--enable-file-writer"
+    #"--enable-file-writer" # no longer recognized
     "--enable-blob"
 
     # https://bugs.webkit.org/show_bug.cgi?id=59430
@@ -53,16 +58,21 @@ rec {
 
     # https://bugs.webkit.org/show_bug.cgi?id=58443
     # "--enable-file-system"
+
+    "--enable-dependency-tracking" # to fix parallel building
     ];
 
+  # instead of enableParallelBuilding = true;
+  makeFlags = "-j$NIX_BUILD_CORES";
+
   /* doConfigure should be specified separately */
-  phaseNames = ["setVars" /* "paranoidFixComments" */ "doConfigure" (doPatchShebangs ".") 
+  phaseNames = ["doPatch" "fixConfigure" /* "paranoidFixComments" */ "doConfigure" (doPatchShebangs ".") 
     "doReplaceUsrBin" "doMakeInstall" "doAddPrograms"];
 
-  setVars = fullDepEntry (''
-    export NIX_LDFLAGS="$NIX_LDFLAGS -lXt"
-    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -fpermissive"
-  '') ["minInit"];
+  patches = [ ./bison26.patch ]; # http://trac.webkit.org/changeset/124099
+  patchFlags = "-p2";
+
+  #doCheck = true; # tests still have problems
 
   doReplaceUsrBin = fullDepEntry (''
     for i in $(find . -name '*.pl') $(find . -name '*.pm'); do 
@@ -81,12 +91,19 @@ rec {
     sed -re 's@( |^)//.*@/* & */@' -i $(find . -name '*.c' -o -name '*.h')
   '') ["minInit" "doUnpack"];
 
+  # See http://archive.linuxfromscratch.org/mail-archives/blfs-dev/2012-April/022893.html
+  fixConfigure = fullDepEntry (''
+    sed   -i -e 's/=GSTREAMER_0_10_REQUIRED_VERSION/=\$GSTREAMER_0_10_REQUIRED_VERSION/' \
+      -e 's/=GSTREAMER_0_10_PLUGINS_BASE_REQUIRED_VERSION/=\$GSTREAMER_0_10_PLUGINS_BASE_REQUIRED_VERSION/' \
+      configure{,.ac}
+  '') ["minInit" "doUnpack"];
+
   name = s.name;
   meta = {
     description = "WebKit - a fast and correct HTML renderer";
     maintainers = [stdenv.lib.maintainers.raskin];
   };
   passthru = {
-    inherit gstreamer gst_plugins_base gst_plugins_good gst_ffmpeg;
+    inherit gstreamer gst_plugins_base gst_plugins_good gst_ffmpeg libsoup;
   };
 }
diff --git a/pkgs/development/libraries/webkit/src-for-gtk2.nix b/pkgs/development/libraries/webkit/src-for-gtk2.nix
index 5f5149fedfe6..65bcd4350960 100644
--- a/pkgs/development/libraries/webkit/src-for-gtk2.nix
+++ b/pkgs/development/libraries/webkit/src-for-gtk2.nix
@@ -1,9 +1,10 @@
 rec {
-   version="1.4.0";
-   name="webkit-1.4.0";
-   hash="123zllzlnkjgw4d2ag73dvrjmkikbapxlz5730ps6y4qm43gxc1y";
-   url="http://webkitgtk.org/webkit-1.4.0.tar.gz";
-   advertisedUrl="http://webkitgtk.org/webkit-1.4.0.tar.gz";
+   version="1.8.1";
+   name="webkit-1.8.1";
+   hash="0a1v3v8dp2cl332qr51j4fpl0rwpgxbf29hn3zdim9hcniv6l4ls";
+   url="http://webkitgtk.org/releases/webkit-1.8.1.tar.xz";
+   advertisedUrl="http://webkitgtk.org/releases/webkit-1.8.1.tar.xz";
   
   
 }
+
diff --git a/pkgs/development/libraries/wxGTK-2.8/default.nix b/pkgs/development/libraries/wxGTK-2.8/default.nix
index 43bcfea4f2e3..109077269544 100644
--- a/pkgs/development/libraries/wxGTK-2.8/default.nix
+++ b/pkgs/development/libraries/wxGTK-2.8/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
   buildInputs = [ gtk libXinerama libSM libXxf86vm xf86vidmodeproto gstreamer gst_plugins_base GConf ]
     ++ optional withMesa mesa;
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   configureFlags = [
     "--enable-gtk2"
diff --git a/pkgs/development/libraries/wxGTK-2.9/default.nix b/pkgs/development/libraries/wxGTK-2.9/default.nix
index 21a80d8951fb..fca5a4a278e0 100644
--- a/pkgs/development/libraries/wxGTK-2.9/default.nix
+++ b/pkgs/development/libraries/wxGTK-2.9/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
   buildInputs = [ gtk libXinerama libSM libXxf86vm xf86vidmodeproto gstreamer gst_plugins_base GConf ]
     ++ optional withMesa mesa;
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   configureFlags = [
     "--enable-gtk2"
diff --git a/pkgs/development/libraries/xine-lib/default.nix b/pkgs/development/libraries/xine-lib/default.nix
index 4ae48a4c04e1..45c60acfa898 100644
--- a/pkgs/development/libraries/xine-lib/default.nix
+++ b/pkgs/development/libraries/xine-lib/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "1mjk686h1qzqj51h4xs4xvagfgnnhm8czbzzjvr5w034pr8n8rg1";
   };
 
-  buildNativeInputs = [ pkgconfig perl ];
+  nativeBuildInputs = [ pkgconfig perl ];
 
   buildInputs = [
     xorg.libX11 xorg.libXv xorg.libXinerama xorg.libxcb xorg.libXext
diff --git a/pkgs/development/libraries/zlib/default.nix b/pkgs/development/libraries/zlib/default.nix
index 5e1ddf839516..ec47c35c1530 100644
--- a/pkgs/development/libraries/zlib/default.nix
+++ b/pkgs/development/libraries/zlib/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   NIX_CFLAGS_COMPILE = "-static-libgcc";
 
   crossAttrs = {
-    dontStrip = if static then true else false;
+    dontStrip = static;
   } // stdenv.lib.optionalAttrs (stdenv.cross.libc == "msvcrt") {
     configurePhase=''
       installFlags="BINARY_PATH=$out/bin INCLUDE_PATH=$out/include LIBRARY_PATH=$out/lib"
diff --git a/pkgs/development/mobile/androidenv/build-app.nix b/pkgs/development/mobile/androidenv/build-app.nix
index 6acc0bc4758a..07f3797f0cd8 100644
--- a/pkgs/development/mobile/androidenv/build-app.nix
+++ b/pkgs/development/mobile/androidenv/build-app.nix
@@ -6,7 +6,7 @@
 assert release -> keyStore != null && keyAlias != null && keyStorePassword != null && keyAliasPassword != null;
 
 let
-  platformName = if (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") then "linux"
+  platformName = if stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux" then "linux"
     else if stdenv.system == "x86_64-darwin" then "macosx"
     else throw "Platform: ${stdenv.system} is not supported!";
 
diff --git a/pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix b/pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix
index 9385981e2c37..70c2a294d6f2 100644
--- a/pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix
+++ b/pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix
@@ -21,7 +21,6 @@ buildPerlPackage rec {
   doCheck = !stdenv.isDarwin;
 
   meta = {
-    homepage = http://search.cpan.org/perldoc?CPAN::Meta::Spec;
     license = "perl5";
   };
 }
diff --git a/pkgs/development/perl-modules/generic/builder.sh b/pkgs/development/perl-modules/generic/builder.sh
index df2fe853b4af..7c51bf1b5917 100644
--- a/pkgs/development/perl-modules/generic/builder.sh
+++ b/pkgs/development/perl-modules/generic/builder.sh
@@ -33,8 +33,8 @@ postFixup() {
     # dependencies in the user environment (since Perl modules don't
     # have something like an RPATH, so the only way to find the
     # dependencies is to have them in the PERL5LIB variable).
-    if test -e $out/nix-support/propagated-build-native-inputs; then
-        ln -s $out/nix-support/propagated-build-native-inputs $out/nix-support/propagated-user-env-packages
+    if test -e $out/nix-support/propagated-native-build-inputs; then
+        ln -s $out/nix-support/propagated-native-build-inputs $out/nix-support/propagated-user-env-packages
     fi
 }
 
diff --git a/pkgs/development/python-modules/generic/default.nix b/pkgs/development/python-modules/generic/default.nix
index 70bf92f0ae90..f72fbff1806a 100644
--- a/pkgs/development/python-modules/generic/default.nix
+++ b/pkgs/development/python-modules/generic/default.nix
@@ -23,7 +23,7 @@
     ''
       easy_install --always-unzip --prefix="$out" .
     ''
-    
+
 , preConfigure ? "true"
 
 , buildPhase ? "true"
@@ -100,7 +100,16 @@ python.stdenv.mkDerivation (attrs // {
     ''
       wrapPythonPrograms
 
-      for inputsfile in propagated-build-inputs propagated-build-native-inputs; do
+      # If a user installs a Python package, she probably also wants its
+      # dependencies in the user environment (since Python modules don't
+      # have something like an RPATH, so the only way to find the
+      # dependencies is to have them in the PYTHONPATH variable).
+      if test -e $out/nix-support/propagated-build-inputs; then
+          ln -s $out/nix-support/propagated-build-inputs $out/nix-support/propagated-user-env-packages
+      fi
+
+      createBuildInputsPth build-inputs "$buildInputStrings"
+      for inputsfile in propagated-build-inputs propagated-native-build-inputs; do
         if test -e $out/nix-support/$inputsfile; then
             createBuildInputsPth $inputsfile "$(cat $out/nix-support/$inputsfile)"
         fi
diff --git a/pkgs/development/python-modules/generic/wrap.sh b/pkgs/development/python-modules/generic/wrap.sh
index d42be1469552..6b02369927b7 100644
--- a/pkgs/development/python-modules/generic/wrap.sh
+++ b/pkgs/development/python-modules/generic/wrap.sh
@@ -37,7 +37,7 @@ _addToPythonPath() {
     pythonPathsSeen[$dir]=1
     addToSearchPath program_PYTHONPATH $dir/lib/@libPrefix@/site-packages
     addToSearchPath program_PATH $dir/bin
-    local prop="$dir/nix-support/propagated-build-native-inputs"
+    local prop="$dir/nix-support/propagated-native-build-inputs"
     if [ -e $prop ]; then
         local i
         for i in $(cat $prop); do
diff --git a/pkgs/development/python-modules/python-sip/default.nix b/pkgs/development/python-modules/python-sip/default.nix
index 34daf294358d..7c1eca027459 100644
--- a/pkgs/development/python-modules/python-sip/default.nix
+++ b/pkgs/development/python-modules/python-sip/default.nix
@@ -4,7 +4,10 @@ stdenv.mkDerivation rec {
   name = "sip-4.13.2";
   
   src = fetchurl {
-    url = "http://www.riverbankcomputing.co.uk/static/Downloads/sip4/${name}.tar.gz";
+    urls = [
+      "http://www.riverbankcomputing.co.uk/static/Downloads/sip4/${name}.tar.gz"
+      "http://pkgs.fedoraproject.org/repo/pkgs/sip/${name}.tar.gz/5a12ea8e8a09b879ed2b3817e30fbc84/${name}.tar.gz"
+    ];
     sha256 = "1gzff61bi22g6fkdg9iya4q2qfdkwxs19v4rhhf8x4bm7hszbhsb";
   };
   
diff --git a/pkgs/development/tools/analysis/valgrind/default.nix b/pkgs/development/tools/analysis/valgrind/default.nix
index c437d171aa91..e4f04623ebbd 100644
--- a/pkgs/development/tools/analysis/valgrind/default.nix
+++ b/pkgs/development/tools/analysis/valgrind/default.nix
@@ -8,9 +8,11 @@ stdenv.mkDerivation (rec {
     sha256 = "1nsqk70ry3221sd62s4f0njcrncppszs4xxjcak13lxyfq2y0fs7";
   };
 
+  patches = [ ./glibc-2.17.patch ];
+
   # Perl is needed for `cg_annotate'.
   # GDB is needed to provide a sane default for `--db-command'.
-  buildNativeInputs = [ perl ];
+  nativeBuildInputs = [ perl ];
   buildInputs = stdenv.lib.optional (!stdenv.isDarwin) gdb;
 
   configureFlags =
diff --git a/pkgs/development/tools/analysis/valgrind/glibc-2.17.patch b/pkgs/development/tools/analysis/valgrind/glibc-2.17.patch
new file mode 100644
index 000000000000..bee1abe71f1c
--- /dev/null
+++ b/pkgs/development/tools/analysis/valgrind/glibc-2.17.patch
@@ -0,0 +1,78 @@
+commit 3781ac11ff374b3517011c1710ec517d52f25cd2
+Author: tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9>
+Date:   Mon Jan 14 09:48:49 2013 +0000
+
+    Accept glibc 2.17 as valid.
+    
+    
+    git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13228 a5019735-40e9-0310-863c-91ae7b9d1cf9
+
+diff --git a/configure.in b/configure.in
+index e0fb12d..0f3b3df 100644
+--- a/configure.in
++++ b/configure.in
+@@ -906,6 +906,13 @@ case "${GLIBC_VERSION}" in
+ 	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ 	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ 	;;
++     2.17)
++	AC_MSG_RESULT(2.17 family)
++	AC_DEFINE([GLIBC_2_17], 1, [Define to 1 if you're using glibc 2.17.x])
++	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	;;
+      darwin)
+ 	AC_MSG_RESULT(Darwin)
+ 	AC_DEFINE([DARWIN_LIBC], 1, [Define to 1 if you're using Darwin])
+@@ -919,7 +926,7 @@ case "${GLIBC_VERSION}" in
+ 
+      *)
+ 	AC_MSG_RESULT([unsupported version ${GLIBC_VERSION}])
+-	AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.16])
++	AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.17])
+ 	AC_MSG_ERROR([or Darwin libc])
+ 	;;
+ esac
+diff -ur valgrind-3.8.1/config.h.in valgrind-3.8.1/config.h.in
+--- valgrind-3.8.1/config.h.in	2013-01-16 17:15:33.531018561 +0100
++++ valgrind-3.8.1/config.h.in	2013-01-16 17:19:21.000000000 +0100
+@@ -48,6 +48,9 @@
+ /* Define to 1 if you're using glibc 2.16.x */
+ #undef GLIBC_2_16
+ 
++/* Define to 1 if you're using glibc 2.17.x */
++#undef GLIBC_2_17
++
+ /* Define to 1 if you're using glibc 2.2.x */
+ #undef GLIBC_2_2
+ 
+diff -ur valgrind-3.8.1/configure valgrind-3.8.1/configure
+--- valgrind-3.8.1/configure	2013-01-16 17:15:33.563018480 +0100
++++ valgrind-3.8.1/configure	2013-01-16 17:19:21.373643238 +0100
+@@ -6610,6 +6610,16 @@
+ 	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ 	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ 	;;
++     2.17)
++	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.17 family" >&5
++$as_echo "2.17 family" >&6; }
++
++$as_echo "#define GLIBC_2_17 1" >>confdefs.h
++
++	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	;;
+      darwin)
+ 	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Darwin" >&5
+ $as_echo "Darwin" >&6; }
+@@ -6630,7 +6640,7 @@
+      *)
+ 	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported version ${GLIBC_VERSION}" >&5
+ $as_echo "unsupported version ${GLIBC_VERSION}" >&6; }
+-	as_fn_error "Valgrind requires glibc version 2.2 - 2.16" "$LINENO" 5
++	as_fn_error "Valgrind requires glibc version 2.2 - 2.17" "$LINENO" 5
+ 	as_fn_error "or Darwin libc" "$LINENO" 5
+ 	;;
+ esac
diff --git a/pkgs/development/tools/build-managers/cmake/setup-hook.sh b/pkgs/development/tools/build-managers/cmake/setup-hook.sh
index 32e0b76f608a..0a47ee6aa990 100755
--- a/pkgs/development/tools/build-managers/cmake/setup-hook.sh
+++ b/pkgs/development/tools/build-managers/cmake/setup-hook.sh
@@ -47,7 +47,7 @@ cmakeConfigurePhase() {
     eval "$postConfigure"
 }
 
-if [ -z "$dontUseCmakeConfigure" ]; then
+if [ -z "$dontUseCmakeConfigure" -a ! -v configurePhase ]; then
     configurePhase=cmakeConfigurePhase
 fi
 
diff --git a/pkgs/development/tools/build-managers/gnumake/3.81.nix b/pkgs/development/tools/build-managers/gnumake/3.81.nix
index d28198821e3b..56d2326c916b 100644
--- a/pkgs/development/tools/build-managers/gnumake/3.81.nix
+++ b/pkgs/development/tools/build-managers/gnumake/3.81.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation {
       # /usr/include and friends.
       ./impure-dirs.patch
     ];
+  patchFlags = "-p0";
 
   meta = {
     description = "GNU Make, a program controlling the generation of non-source files from sources";
diff --git a/pkgs/development/tools/build-managers/gnumake/MAKEFLAGS-reexec.patch b/pkgs/development/tools/build-managers/gnumake/MAKEFLAGS-reexec.patch
new file mode 100644
index 000000000000..a2f59657d4ca
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gnumake/MAKEFLAGS-reexec.patch
@@ -0,0 +1,14 @@
+http://bugs.gentoo.org/331975
+https://savannah.gnu.org/bugs/?30723
+
+--- main.c	2010/07/19 07:10:53	1.243
++++ main.c	2010/08/10 07:35:34	1.244
+@@ -2093,7 +2093,7 @@
+             const char *pv = define_makeflags (1, 1);
+             char *p = alloca (sizeof ("MAKEFLAGS=") + strlen (pv) + 1);
+             sprintf (p, "MAKEFLAGS=%s", pv);
+-            putenv (p);
++            putenv (allocated_variable_expand (p));
+           }
+ 
+ 	  if (ISDB (DB_BASIC))
diff --git a/pkgs/development/tools/build-managers/gnumake/archives-many-objs.patch b/pkgs/development/tools/build-managers/gnumake/archives-many-objs.patch
new file mode 100644
index 000000000000..73c0381ced45
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gnumake/archives-many-objs.patch
@@ -0,0 +1,48 @@
+diff -u -p -r1.193 -r1.194
+--- read.c	13 Jul 2010 01:20:42 -0000	1.193
++++ read.c	14 Aug 2010 02:50:14 -0000	1.194
+@@ -3028,7 +3028,7 @@ parse_file_seq (char **stringp, unsigned
+             {
+               /* This looks like the first element in an open archive group.
+                  A valid group MUST have ')' as the last character.  */
+-              const char *e = p + nlen;
++              const char *e = p;
+               do
+                 {
+                   e = next_token (e);
+@@ -3084,19 +3084,19 @@ parse_file_seq (char **stringp, unsigned
+          Go to the next item in the string.  */
+       if (flags & PARSEFS_NOGLOB)
+         {
+-          NEWELT (concat (2, prefix, tp));
++          NEWELT (concat (2, prefix, tmpbuf));
+           continue;
+         }
+ 
+       /* If we get here we know we're doing glob expansion.
+          TP is a string in tmpbuf.  NLEN is no longer used.
+          We may need to do more work: after this NAME will be set.  */
+-      name = tp;
++      name = tmpbuf;
+ 
+       /* Expand tilde if applicable.  */
+-      if (tp[0] == '~')
++      if (tmpbuf[0] == '~')
+ 	{
+-	  tildep = tilde_expand (tp);
++	  tildep = tilde_expand (tmpbuf);
+ 	  if (tildep != 0)
+             name = tildep;
+ 	}
+@@ -3152,7 +3152,10 @@ parse_file_seq (char **stringp, unsigned
+             else
+               {
+                 /* We got a chain of items.  Attach them.  */
+-                (*newp)->next = found;
++                if (*newp)
++                  (*newp)->next = found;
++                else
++                  *newp = found;
+ 
+                 /* Find and set the new end.  Massage names if necessary.  */
+                 while (1)
diff --git a/pkgs/development/tools/build-managers/gnumake/construct-command-line.patch b/pkgs/development/tools/build-managers/gnumake/construct-command-line.patch
new file mode 100644
index 000000000000..aa4a1afe3fd0
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gnumake/construct-command-line.patch
@@ -0,0 +1,71 @@
+https://savannah.gnu.org/bugs/?23922
+
+From 6f3684710a0f832533191f8657a57bc2fbba90ba Mon Sep 17 00:00:00 2001
+From: eliz <eliz>
+Date: Sat, 7 May 2011 08:29:13 +0000
+Subject: [PATCH]  job.c (construct_command_argv_internal): Don't assume
+ shellflags  is always non-NULL.  Escape-protect characters
+ special to the  shell when copying the value of SHELL into
+ new_line.  Fixes  Savannah bug #23922.
+
+---
+ ChangeLog |  7 +++++++
+ job.c     | 23 ++++++++++++++++-------
+ 2 files changed, 23 insertions(+), 7 deletions(-)
+
+diff --git job.c job.c
+index 67b402d..c2ce84d 100644
+--- job.c
++++ job.c
+@@ -2844,12 +2844,12 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
+ 
+     unsigned int shell_len = strlen (shell);
+     unsigned int line_len = strlen (line);
+-    unsigned int sflags_len = strlen (shellflags);
++    unsigned int sflags_len = shellflags ? strlen (shellflags) : 0;
+     char *command_ptr = NULL; /* used for batch_mode_shell mode */
+     char *new_line;
+ 
+ # ifdef __EMX__ /* is this necessary? */
+-    if (!unixy_shell)
++    if (!unixy_shell && shellflags)
+       shellflags[0] = '/'; /* "/c" */
+ # endif
+ 
+@@ -2911,19 +2911,28 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
+ 
+ 	new_argv = xmalloc (4 * sizeof (char *));
+ 	new_argv[0] = xstrdup(shell);
+-	new_argv[1] = xstrdup(shellflags);
++	new_argv[1] = xstrdup(shellflags ? shellflags : "");
+ 	new_argv[2] = line;
+ 	new_argv[3] = NULL;
+ 	return new_argv;
+       }
+ 
+-    new_line = alloca (shell_len + 1 + sflags_len + 1
++    new_line = alloca ((shell_len*2) + 1 + sflags_len + 1
+                              + (line_len*2) + 1);
+     ap = new_line;
+-    memcpy (ap, shell, shell_len);
+-    ap += shell_len;
++    /* Copy SHELL, escaping any characters special to the shell.  If
++       we don't escape them, construct_command_argv_internal will
++       recursively call itself ad nauseam, or until stack overflow,
++       whichever happens first.  */
++    for (p = shell; *p != '\0'; ++p)
++      {
++	if (strchr (sh_chars, *p) != 0)
++	  *(ap++) = '\\';
++	*(ap++) = *p;
++      }
+     *(ap++) = ' ';
+-    memcpy (ap, shellflags, sflags_len);
++    if (shellflags)
++      memcpy (ap, shellflags, sflags_len);
+     ap += sflags_len;
+     *(ap++) = ' ';
+     command_ptr = ap;
+-- 
+1.7.12
+
diff --git a/pkgs/development/tools/build-managers/gnumake/copy-on-expand.patch b/pkgs/development/tools/build-managers/gnumake/copy-on-expand.patch
new file mode 100644
index 000000000000..3f202b4db96b
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gnumake/copy-on-expand.patch
@@ -0,0 +1,58 @@
+fix from upstream cvs
+
+----------------------------
+revision 1.58
+date: 2011-08-29 12:20:19 -0400;  author: psmith;  state: Exp;  lines: +7 -13;  commitid: MdH0jSxpuIy7mqxv;
+Save strings we're expanding in case an embedded eval causes them
+to be freed (if they're the value of a variable that's reset for example).
+See Savannah patch #7534
+
+Index: expand.c
+===================================================================
+RCS file: /sources/make/make/expand.c,v
+retrieving revision 1.57
+retrieving revision 1.58
+diff -u -p -r1.57 -r1.58
+--- expand.c	7 May 2011 20:03:49 -0000	1.57
++++ expand.c	29 Aug 2011 16:20:19 -0000	1.58
+@@ -197,7 +197,7 @@ variable_expand_string (char *line, cons
+ {
+   struct variable *v;
+   const char *p, *p1;
+-  char *abuf = NULL;
++  char *save;
+   char *o;
+   unsigned int line_offset;
+ 
+@@ -212,16 +212,11 @@ variable_expand_string (char *line, cons
+       return (variable_buffer);
+     }
+ 
+-  /* If we want a subset of the string, allocate a temporary buffer for it.
+-     Most of the functions we use here don't work with length limits.  */
+-  if (length > 0 && string[length] != '\0')
+-    {
+-      abuf = xmalloc(length+1);
+-      memcpy(abuf, string, length);
+-      abuf[length] = '\0';
+-      string = abuf;
+-    }
+-  p = string;
++  /* We need a copy of STRING: due to eval, it's possible that it will get
++     freed as we process it (it might be the value of a variable that's reset
++     for example).  Also having a nil-terminated string is handy.  */
++  save = length < 0 ? xstrdup (string) : xstrndup (string, length);
++  p = save;
+ 
+   while (1)
+     {
+@@ -411,8 +406,7 @@ variable_expand_string (char *line, cons
+       ++p;
+     }
+ 
+-  if (abuf)
+-    free (abuf);
++  free (save);
+ 
+   variable_buffer_output (o, "", 1);
+   return (variable_buffer + line_offset);
diff --git a/pkgs/development/tools/build-managers/gnumake/darwin-library_search-dylib.patch b/pkgs/development/tools/build-managers/gnumake/darwin-library_search-dylib.patch
new file mode 100644
index 000000000000..de7e4f615212
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gnumake/darwin-library_search-dylib.patch
@@ -0,0 +1,17 @@
+Fixed default libpatttern on Darwin, imported from prefix overlay.
+Got merged upstream:
+https://savannah.gnu.org/bugs/?37197
+--- default.c.orig	2009-05-02 12:25:24 +0200
++++ default.c	2009-05-02 12:25:58 +0200
+@@ -509,7 +509,11 @@
+ #ifdef __MSDOS__
+     ".LIBPATTERNS", "lib%.a $(DJDIR)/lib/lib%.a",
+ #else
++#ifdef __APPLE__
++    ".LIBPATTERNS", "lib%.dylib lib%.a",
++#else
+     ".LIBPATTERNS", "lib%.so lib%.a",
++#endif
+ #endif
+ #endif
+ 
diff --git a/pkgs/development/tools/build-managers/gnumake/default.nix b/pkgs/development/tools/build-managers/gnumake/default.nix
index cf33e7a5bbc3..731664f99132 100644
--- a/pkgs/development/tools/build-managers/gnumake/default.nix
+++ b/pkgs/development/tools/build-managers/gnumake/default.nix
@@ -24,7 +24,21 @@ stdenv.mkDerivation {
       # Likewise, when searching for included Makefiles, don't look in
       # /usr/include and friends.
       ./impure-dirs.patch
+
+      # a bunch of patches from Gentoo, mostly should be from upstream (unreleased)
+      ./archives-many-objs.patch
+      ./MAKEFLAGS-reexec.patch
+      ./memory-corruption.patch
+      ./glob-speedup.patch
+      ./copy-on-expand.patch
+      ./oneshell.patch
+      ./parallel-remake.patch
+      ./intermediate-parallel.patch
+      ./construct-command-line.patch
+      ./long-command-line.patch
+      ./darwin-library_search-dylib.patch
     ];
+  patchFlags = "-p0";
 
   meta = {
     description = "GNU Make, a program controlling the generation of non-source files from sources";
diff --git a/pkgs/development/tools/build-managers/gnumake/glob-speedup.patch b/pkgs/development/tools/build-managers/gnumake/glob-speedup.patch
new file mode 100644
index 000000000000..45971f33590b
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gnumake/glob-speedup.patch
@@ -0,0 +1,104 @@
+change from upstream to speed up by skipping unused globs
+https://bugs.gentoo.org/382845
+
+http://cvs.savannah.gnu.org/viewvc/make/read.c?root=make&r1=1.198&r2=1.200
+
+Revision 1.200
+Sat May 7 14:36:12 2011 UTC (4 months, 1 week ago) by psmith 
+Branch: MAIN 
+Changes since 1.199: +1 -1 lines 
+Inverted the boolean test from what I wanted it to be.  Added a
+regression test to make sure this continues to work.
+
+Revision 1.199
+Mon May 2 00:18:06 2011 UTC (4 months, 2 weeks ago) by psmith 
+Branch: MAIN 
+Changes since 1.198: +35 -25 lines 
+Avoid invoking glob() unless the filename has potential globbing
+characters in it, for performance improvements.
+
+--- read.c	2011/04/29 15:27:39	1.198
++++ read.c	2011/05/07 14:36:12	1.200
+@@ -2901,6 +2901,7 @@
+       const char *name;
+       const char **nlist = 0;
+       char *tildep = 0;
++      int globme = 1;
+ #ifndef NO_ARCHIVES
+       char *arname = 0;
+       char *memname = 0;
+@@ -3109,32 +3110,40 @@
+ 	}
+ #endif /* !NO_ARCHIVES */
+ 
+-      switch (glob (name, GLOB_NOSORT|GLOB_ALTDIRFUNC, NULL, &gl))
+-	{
+-	case GLOB_NOSPACE:
+-	  fatal (NILF, _("virtual memory exhausted"));
+-
+-	case 0:
+-          /* Success.  */
+-          i = gl.gl_pathc;
+-          nlist = (const char **)gl.gl_pathv;
+-          break;
+-
+-        case GLOB_NOMATCH:
+-          /* If we want only existing items, skip this one.  */
+-          if (flags & PARSEFS_EXISTS)
+-            {
+-              i = 0;
+-              break;
+-            }
+-          /* FALLTHROUGH */
+-
+-	default:
+-          /* By default keep this name.  */
++      /* glob() is expensive: don't call it unless we need to.  */
++      if (!(flags & PARSEFS_EXISTS) && strpbrk (name, "?*[") == NULL)
++        {
++          globme = 0;
+           i = 1;
+           nlist = &name;
+-          break;
+-	}
++        }
++      else
++        switch (glob (name, GLOB_NOSORT|GLOB_ALTDIRFUNC, NULL, &gl))
++          {
++          case GLOB_NOSPACE:
++            fatal (NILF, _("virtual memory exhausted"));
++
++          case 0:
++            /* Success.  */
++            i = gl.gl_pathc;
++            nlist = (const char **)gl.gl_pathv;
++            break;
++
++          case GLOB_NOMATCH:
++            /* If we want only existing items, skip this one.  */
++            if (flags & PARSEFS_EXISTS)
++              {
++                i = 0;
++                break;
++              }
++            /* FALLTHROUGH */
++
++          default:
++            /* By default keep this name.  */
++            i = 1;
++            nlist = &name;
++            break;
++          }
+ 
+       /* For each matched element, add it to the list.  */
+       while (i-- > 0)
+@@ -3174,7 +3183,8 @@
+ #endif /* !NO_ARCHIVES */
+           NEWELT (concat (2, prefix, nlist[i]));
+ 
+-      globfree (&gl);
++      if (globme)
++        globfree (&gl);
+ 
+ #ifndef NO_ARCHIVES
+       if (arname)
diff --git a/pkgs/development/tools/build-managers/gnumake/impure-dirs.patch b/pkgs/development/tools/build-managers/gnumake/impure-dirs.patch
index 433f61108dbc..f6646f1d0126 100644
--- a/pkgs/development/tools/build-managers/gnumake/impure-dirs.patch
+++ b/pkgs/development/tools/build-managers/gnumake/impure-dirs.patch
@@ -1,6 +1,6 @@
-diff -rc make-3.81-orig/read.c make-3.81/read.c
-*** make-3.81-orig/read.c	2006-03-17 15:24:20.000000000 +0100
---- make-3.81/read.c	2007-05-24 17:16:31.000000000 +0200
+diff -rc read.c read.c
+*** read.c	2006-03-17 15:24:20.000000000 +0100
+--- read.c	2007-05-24 17:16:31.000000000 +0200
 ***************
 *** 99,107 ****
 --- 99,109 ----
@@ -15,9 +15,9 @@ diff -rc make-3.81-orig/read.c make-3.81/read.c
   #endif
       0
     };
-diff -rc make-3.81-orig/remake.c make-3.81/remake.c
-*** make-3.81-orig/remake.c	2006-03-20 03:36:37.000000000 +0100
---- make-3.81/remake.c	2007-05-24 17:06:54.000000000 +0200
+diff -rc reremake.c
+*** remake.c	2006-03-20 03:36:37.000000000 +0100
+--- remake.c	2007-05-24 17:06:54.000000000 +0200
 ***************
 *** 1452,1460 ****
 --- 1452,1462 ----
diff --git a/pkgs/development/tools/build-managers/gnumake/intermediate-parallel.patch b/pkgs/development/tools/build-managers/gnumake/intermediate-parallel.patch
new file mode 100644
index 000000000000..9bb7add0bde2
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gnumake/intermediate-parallel.patch
@@ -0,0 +1,46 @@
+diff --git remake.c remake.c
+index c0bf709..b1ddd23 100644
+--- remake.c
++++ remake.c
+@@ -612,6 +612,10 @@ update_file_1 (struct file *file, unsigned int depth)
+                 d->file->dontcare = file->dontcare;
+               }
+ 
++            /* We may have already considered this file, when we didn't know
++               we'd need to update it.  Force update_file() to consider it and
++               not prune it.  */
++            d->file->considered = !considered;
+ 
+ 	    dep_status |= update_file (d->file, depth);
+ 
+diff --git tests/scripts/features/parallelism tests/scripts/features/parallelism
+index d4250f0..76d24a7 100644
+--- tests/scripts/features/parallelism
++++ tests/scripts/features/parallelism
+@@ -214,6 +214,23 @@ rm main.x");
+     rmfiles(qw(foo.y foo.y.in main.bar));
+ }
+ 
++# Ensure intermediate/secondary files are not pruned incorrectly.
++# See Savannah bug #30653
++
++utouch(-15, 'file2');
++utouch(-10, 'file4');
++utouch(-5,  'file1');
++
++run_make_test(q!
++.INTERMEDIATE: file3
++file4: file3 ; @mv -f $< $@
++file3: file2 ; touch $@
++file2: file1 ; @touch $@
++!,
++              '--no-print-directory -j2', "touch file3");
++
++#rmfiles('file1', 'file2', 'file3', 'file4');
++
+ if ($all_tests) {
+     # Jobserver FD handling is messed up in some way.
+     # Savannah bug #28189
+-- 
+1.7.12
+
diff --git a/pkgs/development/tools/build-managers/gnumake/log-3.81.patch b/pkgs/development/tools/build-managers/gnumake/log-3.81.patch
index 0f3ed6d7299b..b98d85a08265 100644
--- a/pkgs/development/tools/build-managers/gnumake/log-3.81.patch
+++ b/pkgs/development/tools/build-managers/gnumake/log-3.81.patch
@@ -1,6 +1,6 @@
-diff -rc make-3.81-orig/job.c make-3.81/job.c
-*** make-3.81-orig/job.c	2006-03-20 04:03:04.000000000 +0100
---- make-3.81/job.c	2009-01-19 19:37:28.000000000 +0100
+diff -rc job.c job.c
+*** job.c	2006-03-20 04:03:04.000000000 +0100
+--- job.c	2009-01-19 19:37:28.000000000 +0100
 ***************
 *** 1083,1089 ****
        appear.  */
@@ -18,9 +18,9 @@ diff -rc make-3.81-orig/job.c make-3.81/job.c
   
     /* Tell update_goal_chain that a command has been started on behalf of
        this target.  It is important that this happens here and not in
-diff -rc make-3.81-orig/main.c make-3.81/main.c
-*** make-3.81-orig/main.c	2006-03-20 03:36:37.000000000 +0100
---- make-3.81/main.c	2009-01-19 19:41:41.000000000 +0100
+diff -rc main.c main.c
+*** main.c	2006-03-20 03:36:37.000000000 +0100
+--- main.c	2009-01-19 19:41:41.000000000 +0100
 ***************
 *** 886,891 ****
 --- 886,900 ----
@@ -87,9 +87,9 @@ diff -rc make-3.81-orig/main.c make-3.81/main.c
 + int enable_nested_output = 0;
 + int stdout_nesting_level = 0;
 + int stderr_nesting_level = 0;
-diff -rc make-3.81-orig/make.h make-3.81/make.h
-*** make-3.81-orig/make.h	2006-02-16 00:54:43.000000000 +0100
---- make-3.81/make.h	2009-01-19 19:32:03.000000000 +0100
+diff -rc make.h
+*** make.h	2006-02-16 00:54:43.000000000 +0100
+--- make.h	2009-01-19 19:32:03.000000000 +0100
 ***************
 *** 609,611 ****
 --- 609,614 ----
@@ -99,9 +99,9 @@ diff -rc make-3.81-orig/make.h make-3.81/make.h
 + extern int enable_nested_output;
 + extern int stdout_nesting_level;
 + extern int stderr_nesting_level;
-diff -rc make-3.81-orig/remake.c make-3.81/remake.c
-*** make-3.81-orig/remake.c	2006-03-20 03:36:37.000000000 +0100
---- make-3.81/remake.c	2009-01-19 19:39:40.000000000 +0100
+diff -rc reremake.c
+*** remake.c	2006-03-20 03:36:37.000000000 +0100
+--- remake.c	2009-01-19 19:39:40.000000000 +0100
 ***************
 *** 1120,1126 ****
 --- 1120,1137 ----
diff --git a/pkgs/development/tools/build-managers/gnumake/log.patch b/pkgs/development/tools/build-managers/gnumake/log.patch
index ca0d6340790b..e6197fd8e78f 100644
--- a/pkgs/development/tools/build-managers/gnumake/log.patch
+++ b/pkgs/development/tools/build-managers/gnumake/log.patch
@@ -1,6 +1,6 @@
-diff -rc make-3.81-orig/job.c make-3.81/job.c
-*** make-3.81-orig/job.c	2006-03-20 04:03:04.000000000 +0100
---- make-3.81/job.c	2009-01-19 19:37:28.000000000 +0100
+diff -rc job.c job.c
+*** job.c	2006-03-20 04:03:04.000000000 +0100
+--- job.c	2009-01-19 19:37:28.000000000 +0100
 ***************
 *** 1083,1089 ****
        appear.  */
@@ -18,9 +18,9 @@ diff -rc make-3.81-orig/job.c make-3.81/job.c
   
     /* Tell update_goal_chain that a command has been started on behalf of
        this target.  It is important that this happens here and not in
-diff -rc make-3.81-orig/main.c make-3.81/main.c
-*** make-3.81-orig/main.c	2006-03-20 03:36:37.000000000 +0100
---- make-3.81/main.c	2009-01-19 19:41:41.000000000 +0100
+diff -rc main.c main.c
+*** main.c	2006-03-20 03:36:37.000000000 +0100
+--- main.c	2009-01-19 19:41:41.000000000 +0100
 ***************
 *** 886,891 ****
 --- 886,900 ----
@@ -87,9 +87,9 @@ diff -rc make-3.81-orig/main.c make-3.81/main.c
 + int enable_nested_output = 0;
 + int stdout_nesting_level = 0;
 + int stderr_nesting_level = 0;
-diff -rc make-3.81-orig/make.h make-3.81/make.h
-*** make-3.81-orig/make.h	2006-02-16 00:54:43.000000000 +0100
---- make-3.81/make.h	2009-01-19 19:32:03.000000000 +0100
+diff -rc make.h
+*** make.h	2006-02-16 00:54:43.000000000 +0100
+--- make.h	2009-01-19 19:32:03.000000000 +0100
 ***************
 *** 609,611 ****
 --- 609,614 ----
@@ -99,9 +99,9 @@ diff -rc make-3.81-orig/make.h make-3.81/make.h
 + extern int enable_nested_output;
 + extern int stdout_nesting_level;
 + extern int stderr_nesting_level;
-diff -rc make-3.81-orig/remake.c make-3.81/remake.c
-*** make-3.81-orig/remake.c	2006-03-20 03:36:37.000000000 +0100
---- make-3.81/remake.c	2009-01-19 19:39:40.000000000 +0100
+diff -rc reremake.c
+*** remake.c	2006-03-20 03:36:37.000000000 +0100
+--- remake.c	2009-01-19 19:39:40.000000000 +0100
 ***************
 *** 1120,1126 ****
 --- 1120,1137 ----
diff --git a/pkgs/development/tools/build-managers/gnumake/long-command-line.patch b/pkgs/development/tools/build-managers/gnumake/long-command-line.patch
new file mode 100644
index 000000000000..39ea05843bfd
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gnumake/long-command-line.patch
@@ -0,0 +1,54 @@
+https://savannah.gnu.org/bugs/?36451
+
+From a95796de3a491d8acfc8ea94c217b90531161786 Mon Sep 17 00:00:00 2001
+From: psmith <psmith>
+Date: Sun, 9 Sep 2012 23:25:07 +0000
+Subject: [PATCH] Keep the command line on the heap to avoid stack overflow.
+ Fixes Savannah bug #36451.
+
+---
+ ChangeLog |  3 +++
+ job.c     | 13 +++++++++----
+ 2 files changed, 12 insertions(+), 4 deletions(-)
+
+diff --git job.c job.c
+index 754576b..f7b7d51 100644
+--- job.c
++++ job.c
+@@ -2984,8 +2984,8 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
+ 	return new_argv;
+       }
+ 
+-    new_line = alloca ((shell_len*2) + 1 + sflags_len + 1
+-                             + (line_len*2) + 1);
++    new_line = xmalloc ((shell_len*2) + 1 + sflags_len + 1
++                        + (line_len*2) + 1);
+     ap = new_line;
+     /* Copy SHELL, escaping any characters special to the shell.  If
+        we don't escape them, construct_command_argv_internal will
+@@ -3052,8 +3052,11 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
+ 	*ap++ = *p;
+       }
+     if (ap == new_line + shell_len + sflags_len + 2)
+-      /* Line was empty.  */
+-      return 0;
++      {
++        /* Line was empty.  */
++        free (new_line);
++        return 0;
++      }
+     *ap = '\0';
+ 
+ #ifdef WINDOWS32
+@@ -3194,6 +3197,8 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
+       fatal (NILF, _("%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"),
+             __FILE__, __LINE__);
+ #endif
++
++    free (new_line);
+   }
+ #endif	/* ! AMIGA */
+ 
+-- 
+1.7.12
+
diff --git a/pkgs/development/tools/build-managers/gnumake/memory-corruption.patch b/pkgs/development/tools/build-managers/gnumake/memory-corruption.patch
new file mode 100644
index 000000000000..b28c07353ec2
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gnumake/memory-corruption.patch
@@ -0,0 +1,37 @@
+--- function.c	2011/04/18 01:25:20	1.121
++++ function.c	2011/05/02 12:35:01	1.122
+@@ -706,7 +706,7 @@
+   const char *word_iterator = argv[0];
+   char buf[20];
+ 
+-  while (find_next_token (&word_iterator, (unsigned int *) 0) != 0)
++  while (find_next_token (&word_iterator, NULL) != 0)
+     ++i;
+ 
+   sprintf (buf, "%d", i);
+@@ -1133,21 +1133,14 @@
+ 
+   /* Find the maximum number of words we'll have.  */
+   t = argv[0];
+-  wordi = 1;
+-  while (*t != '\0')
++  wordi = 0;
++  while ((p = find_next_token (&t, NULL)) != 0)
+     {
+-      char c = *(t++);
+-
+-      if (! isspace ((unsigned char)c))
+-        continue;
+-
++      ++t;
+       ++wordi;
+-
+-      while (isspace ((unsigned char)*t))
+-        ++t;
+     }
+ 
+-  words = xmalloc (wordi * sizeof (char *));
++  words = xmalloc ((wordi == 0 ? 1 : wordi) * sizeof (char *));
+ 
+   /* Now assign pointers to each string in the array.  */
+   t = argv[0];
diff --git a/pkgs/development/tools/build-managers/gnumake/oneshell.patch b/pkgs/development/tools/build-managers/gnumake/oneshell.patch
new file mode 100644
index 000000000000..fbade127ce61
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gnumake/oneshell.patch
@@ -0,0 +1,24 @@
+fix from upstream cvs
+
+----------------------------
+revision 1.245
+date: 2010-08-13 22:50:14 -0400;  author: psmith;  state: Exp;  lines: +1 -1;  commitid: 4UaslPqQHZTs5wKu;
+- Add oneshell to $(.FEATURES) (forgot that!)
+
+Index: main.c
+===================================================================
+RCS file: /sources/make/make/main.c,v
+retrieving revision 1.244
+retrieving revision 1.245
+diff -u -p -r1.244 -r1.245
+--- main.c	10 Aug 2010 07:35:34 -0000	1.244
++++ main.c	14 Aug 2010 02:50:14 -0000	1.245
+@@ -1138,7 +1138,7 @@ main (int argc, char **argv, char **envp
+      a macro and some compilers (MSVC) don't like conditionals in macros.  */
+   {
+     const char *features = "target-specific order-only second-expansion"
+-                           " else-if shortest-stem undefine"
++                           " else-if shortest-stem undefine oneshell"
+ #ifndef NO_ARCHIVES
+                            " archives"
+ #endif
diff --git a/pkgs/development/tools/build-managers/gnumake/parallel-remake.patch b/pkgs/development/tools/build-managers/gnumake/parallel-remake.patch
new file mode 100644
index 000000000000..a19fe7b7d629
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gnumake/parallel-remake.patch
@@ -0,0 +1,39 @@
+fix from upstream cvs
+
+----------------------------
+revision 1.247
+date: 2011-09-18 19:39:26 -0400;  author: psmith;  state: Exp;  lines: +5 -3;  commitid: 07NxO4T5PiWC82Av;
+When we re-exec the master makefile in a jobserver environment, ensure
+that MAKEFLAGS is set properly so the re-exec'd make runs in parallel.
+See Savannah bug #33873.
+
+Index: main.c
+===================================================================
+RCS file: /sources/make/make/main.c,v
+retrieving revision 1.246
+retrieving revision 1.247
+diff -u -p -r1.246 -r1.247
+--- main.c	29 Aug 2010 23:05:27 -0000	1.246
++++ main.c	18 Sep 2011 23:39:26 -0000	1.247
+@@ -2089,6 +2089,11 @@ main (int argc, char **argv, char **envp
+ 
+           ++restarts;
+ 
++          /* If we're re-exec'ing the first make, put back the number of
++             job slots so define_makefiles() will get it right.  */
++          if (master_job_slots)
++            job_slots = master_job_slots;
++
+           /* Reset makeflags in case they were changed.  */
+           {
+             const char *pv = define_makeflags (1, 1);
+@@ -2825,9 +2830,6 @@ define_makeflags (int all, int makefile)
+ 		       && (*(unsigned int *) cs->value_ptr ==
+ 			   *(unsigned int *) cs->noarg_value))
+ 		ADD_FLAG ("", 0); /* Optional value omitted; see below.  */
+-	      else if (cs->c == 'j')
+-		/* Special case for `-j'.  */
+-		ADD_FLAG ("1", 1);
+ 	      else
+ 		{
+ 		  char *buf = alloca (30);
diff --git a/pkgs/development/tools/documentation/doxygen/1.7.nix b/pkgs/development/tools/documentation/doxygen/1.7.nix
index 86f2e8cf2b2e..f530ed70e37f 100644
--- a/pkgs/development/tools/documentation/doxygen/1.7.nix
+++ b/pkgs/development/tools/documentation/doxygen/1.7.nix
@@ -47,6 +47,6 @@ stdenv.mkDerivation {
     '';
 
     maintainers = [stdenv.lib.maintainers.simons];
-    platforms = if (qt4 != null) then stdenv.lib.platforms.linux else stdenv.lib.platforms.unix;
+    platforms = if qt4 != null then stdenv.lib.platforms.linux else stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/documentation/doxygen/default.nix b/pkgs/development/tools/documentation/doxygen/default.nix
index 07893987bbf8..047da44a7937 100644
--- a/pkgs/development/tools/documentation/doxygen/default.nix
+++ b/pkgs/development/tools/documentation/doxygen/default.nix
@@ -47,6 +47,6 @@ stdenv.mkDerivation {
     '';
 
     maintainers = [stdenv.lib.maintainers.simons];
-    platforms = if (qt4 != null) then stdenv.lib.platforms.linux else stdenv.lib.platforms.unix;
+    platforms = if qt4 != null then stdenv.lib.platforms.linux else stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/documentation/gnome-doc-utils/default.nix b/pkgs/development/tools/documentation/gnome-doc-utils/default.nix
index ad1be7265782..374002e8d6ca 100644
--- a/pkgs/development/tools/documentation/gnome-doc-utils/default.nix
+++ b/pkgs/development/tools/documentation/gnome-doc-utils/default.nix
@@ -14,5 +14,5 @@ stdenv.mkDerivation {
   pythonPath = [ libxml2Python ];
   postInstall = "wrapPythonPrograms";
 
-  buildNativeInputs = [ pkgconfig intltool pythonPackages.wrapPython ];
+  nativeBuildInputs = [ pkgconfig intltool pythonPackages.wrapPython ];
 }
diff --git a/pkgs/development/tools/misc/autogen/default.nix b/pkgs/development/tools/misc/autogen/default.nix
index b11aba8ade76..4284e20dd50f 100644
--- a/pkgs/development/tools/misc/autogen/default.nix
+++ b/pkgs/development/tools/misc/autogen/default.nix
@@ -1,13 +1,13 @@
 { fetchurl, stdenv, guile, which }:
 
-let version = "5.15"; in
+let version = "5.17"; in
 
   stdenv.mkDerivation {
     name = "autogen-${version}";
 
     src = fetchurl {
       url = "mirror://gnu/autogen/rel${version}/autogen-${version}.tar.gz";
-      sha256 = "8a37effa66d285471851e445d3bdeb60c0940f9efd7852828ebb8116e1c5cc1f";
+      sha256 = "065mg9gfb605wxbsk3inf93528ygcjgg6j8ml51691f6ghj363ff";
     };
 
     buildInputs = [ guile which ];
@@ -22,7 +22,7 @@ let version = "5.15"; in
     # The tests rely on being able to find `libopts.a'.
     configureFlags = "--enable-static";
 
-    doCheck = true;
+    #doCheck = true; # 2 tests fail because of missing /dev/tty
 
     meta = {
       description = "GNU AutoGen, an automated text and program generation tool";
@@ -46,7 +46,7 @@ let version = "5.15"; in
         documentation of program options.
       '';
 
-      license = "GPLv3+";
+      licenses = ["GPLv3+" "LGPLv3+" ];
 
       homepage = http://www.gnu.org/software/autogen/;
 
diff --git a/pkgs/development/tools/misc/automake/automake-1.11.x.nix b/pkgs/development/tools/misc/automake/automake-1.11.x.nix
index 7c9d06baa543..91c27deb8b82 100644
--- a/pkgs/development/tools/misc/automake/automake-1.11.x.nix
+++ b/pkgs/development/tools/misc/automake/automake-1.11.x.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, perl, autoconf, makeWrapper, doCheck ? true}:
+{ stdenv, fetchurl, perl, autoconf, makeWrapper }:
 
 stdenv.mkDerivation rec {
   name = "automake-1.11.6";
@@ -19,8 +19,6 @@ stdenv.mkDerivation rec {
 
   buildInputs = [perl autoconf makeWrapper];
 
-  inherit doCheck;
-
   # Disable indented log output from Make, otherwise "make.test" will
   # fail.
   preCheck = "unset NIX_INDENT_MAKE";
diff --git a/pkgs/development/tools/misc/automake/automake-1.12.x.nix b/pkgs/development/tools/misc/automake/automake-1.12.x.nix
index e2db84d2fc34..bd609c4a40d3 100644
--- a/pkgs/development/tools/misc/automake/automake-1.12.x.nix
+++ b/pkgs/development/tools/misc/automake/automake-1.12.x.nix
@@ -1,7 +1,7 @@
-{stdenv, fetchurl, perl, autoconf, makeWrapper, doCheck ? true}:
+{ stdenv, fetchurl, perl, autoconf, makeWrapper, doCheck ? false }:
 
 stdenv.mkDerivation rec {
-  name = "automake-1.12.2";
+  name = "automake-1.12.4";
 
   # TODO: Remove the `aclocal' wrapper when $ACLOCAL_PATH support is
   # available upstream; see
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnu/automake/${name}.tar.xz";
-    sha256 = "5fb56e918189b377a22368e19baaf70252bd85a9969ed5f8a8373f49e8faf07f";
+    sha256 = "0wppdm0wfizs6nmiwlkigcmh2pn33dywdkl7b407j3pvwn622vsi";
   };
 
   buildInputs = [perl autoconf makeWrapper];
diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix
index 353cd9f40bce..c3f9de4bc898 100644
--- a/pkgs/development/tools/misc/binutils/default.nix
+++ b/pkgs/development/tools/misc/binutils/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, noSysDirs, zlib, cross ? null, gold ? false, bison ? null, flex2535 ? null, bc ? null, dejagnu ? null }:
 
-let basename = "binutils-2.21.1a"; in
+let basename = "binutils-2.23.1"; in
 stdenv.mkDerivation rec {
   name = basename + stdenv.lib.optionalString (cross != null) "-${cross.config}";
 
   src = fetchurl {
     url = "mirror://gnu/binutils/${basename}.tar.bz2";
-    sha256 = "0m7nmd7gc9d9md43wbrv65hz6lbi2crqwryzpigv19ray1lzmv6d";
+    sha256 = "06bs5v5ndb4g5qx96d52lc818gkbskd1m0sz57314v887sqfbcia";
   };
 
   patches = [
@@ -14,6 +14,11 @@ stdenv.mkDerivation rec {
     # RUNPATH instead of RPATH on binaries.  This is important because
     # RUNPATH can be overriden using LD_LIBRARY_PATH at runtime.
     ./new-dtags.patch
+
+    # Since binutils 2.22, DT_NEEDED flags aren't copied for dynamic outputs.
+    # That requires upstream changes for things to work. So we can patch it to
+    # get the old behaviour by now.
+    ./dtneeded.patch
   ];
 
   buildInputs =
diff --git a/pkgs/development/tools/misc/binutils/dtneeded.patch b/pkgs/development/tools/misc/binutils/dtneeded.patch
new file mode 100644
index 000000000000..3754ec569eec
--- /dev/null
+++ b/pkgs/development/tools/misc/binutils/dtneeded.patch
@@ -0,0 +1,12 @@
+diff --git a/ld/ldmain.c b/ld/ldmain.c
+index 15f8ebf..f71241e 100644
+--- a/ld/ldmain.c
++++ b/ld/ldmain.c
+@@ -298,6 +298,7 @@ main (int argc, char **argv)
+   lang_init ();
+   ldemul_before_parse ();
+   lang_has_input_file = FALSE;
++  input_flags.add_DT_NEEDED_for_dynamic = TRUE;
+   parse_args (argc, argv);
+ 
+   if (config.hash_table_size != 0)
diff --git a/pkgs/development/tools/misc/cscope/default.nix b/pkgs/development/tools/misc/cscope/default.nix
index b9d2c10f5371..3a83b1ba3251 100644
--- a/pkgs/development/tools/misc/cscope/default.nix
+++ b/pkgs/development/tools/misc/cscope/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   configureFlags = "--with-ncurses=${ncurses}";
 
   buildInputs = [ ncurses ];
-  buildNativeInputs = [ pkgconfig emacs ];
+  nativeBuildInputs = [ pkgconfig emacs ];
 
   postInstall = ''
     # Install Emacs mode.
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
 
   crossAttrs = {
     postInstall = "";
-    propagatedBuildInputs = [ ncurses.hostDrv ];
+    propagatedBuildInputs = [ ncurses.crossDrv ];
   };
 
   meta = {
diff --git a/pkgs/development/tools/misc/elfutils/default.nix b/pkgs/development/tools/misc/elfutils/default.nix
index 61b4647552d5..5a1a19068a7e 100644
--- a/pkgs/development/tools/misc/elfutils/default.nix
+++ b/pkgs/development/tools/misc/elfutils/default.nix
@@ -21,14 +21,14 @@ stdenv.mkDerivation rec {
 
   # We need bzip2 in NativeInputs because otherwise we can't unpack the src,
   # as the host-bzip2 will be in the path.
-  buildNativeInputs = [m4 bison flex gettext bzip2];
+  nativeBuildInputs = [m4 bison flex gettext bzip2];
   buildInputs = [zlib bzip2];
 
   crossAttrs = {
 
     /* Having bzip2 will harm, because anything using elfutils 
        as buildInput cross-building, will not be able to run 'bzip2' */
-    propagatedBuildInputs = [ zlib.hostDrv ];
+    propagatedBuildInputs = [ zlib.crossDrv ];
 
     # This program does not cross-build fine. So I only cross-build some parts
     # I need for the linux perf tool.
diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix
index 43ec8dec9f58..a9b3dec50923 100644
--- a/pkgs/development/tools/misc/gdb/default.nix
+++ b/pkgs/development/tools/misc/gdb/default.nix
@@ -11,8 +11,8 @@ let
   basename = "gdb-7.5.1";
 
   # Whether (cross-)building for GNU/Hurd.  This is an approximation since
-  # having `stdenv ? cross' doesn't tell us if we're building `hostDrv' and
-  # `buildDrv'.
+  # having `stdenv ? cross' doesn't tell us if we're building `crossDrv' and
+  # `nativeDrv'.
   isGNU =
       stdenv.system == "i686-gnu"
       || (stdenv ? cross && stdenv.cross.config == "i586-pc-gnu");
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   # I think python is not a native input, but I leave it
   # here while I will not need it cross building
-  buildNativeInputs = [ texinfo python ]
+  nativeBuildInputs = [ texinfo python ]
     ++ stdenv.lib.optional isGNU mig;
 
   buildInputs = [ ncurses readline gmp mpfr expat ]
@@ -51,8 +51,8 @@ stdenv.mkDerivation rec {
   crossAttrs = {
     # Do not add --with-python here to avoid cross building it.
     configureFlags =
-      '' --with-gmp=${gmp.hostDrv} --with-mpfr=${mpfr.hostDrv} --with-system-readline
-         --with-expat --with-libexpat-prefix=${expat.hostDrv} --without-python
+      '' --with-gmp=${gmp.crossDrv} --with-mpfr=${mpfr.crossDrv} --with-system-readline
+         --with-expat --with-libexpat-prefix=${expat.crossDrv} --without-python
       '' + stdenv.lib.optionalString (target != null)
          " --target=${target.config}";
   };
diff --git a/pkgs/development/tools/misc/gnum4/default.nix b/pkgs/development/tools/misc/gnum4/default.nix
index 1f026f12f523..d1b0d0e376ed 100644
--- a/pkgs/development/tools/misc/gnum4/default.nix
+++ b/pkgs/development/tools/misc/gnum4/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
     && !stdenv.isSunOS;                    # XXX: `test-setlocale2.sh' fails
 
   # Upstream is aware of it; it may be in the next release.
-  patches = [ ./s_isdir.patch ./readlink-EINVAL.patch ];
+  patches = [ ./s_isdir.patch ./readlink-EINVAL.patch ./no-gets.patch ];
 
   meta = {
     homepage = http://www.gnu.org/software/m4/;
diff --git a/pkgs/development/tools/misc/gnum4/no-gets.patch b/pkgs/development/tools/misc/gnum4/no-gets.patch
new file mode 100644
index 000000000000..456c08b56c34
--- /dev/null
+++ b/pkgs/development/tools/misc/gnum4/no-gets.patch
@@ -0,0 +1,26 @@
+http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/sys-devel/m4/files/m4-1.4.16-no-gets.patch?revision=1.1
+
+https://bugs.gentoo.org/424978
+
+hack until m4 pulls a newer gnulib version
+
+From 66712c23388e93e5c518ebc8515140fa0c807348 Mon Sep 17 00:00:00 2001
+From: Eric Blake <eblake@redhat.com>
+Date: Thu, 29 Mar 2012 13:30:41 -0600
+Subject: [PATCH] stdio: don't assume gets any more
+
+Gnulib intentionally does not have a gets module, and now that C11
+and glibc have dropped it, we should be more proactive about warning
+any user on a platform that still has a declaration of this dangerous
+interface.
+
+--- a/lib/stdio.in.h
++++ b/lib/stdio.in.h
+@@ -125,7 +125,6 @@
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
+ #undef gets
+-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+ 
+ #if @GNULIB_FOPEN@
+ # if @REPLACE_FOPEN@
diff --git a/pkgs/development/tools/misc/libtool/libtool2.nix b/pkgs/development/tools/misc/libtool/libtool2.nix
index 403381af4851..4c3500c65a24 100644
--- a/pkgs/development/tools/misc/libtool/libtool2.nix
+++ b/pkgs/development/tools/misc/libtool/libtool2.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation (rec {
     sha256 = "0649qfpzkswgcj9vqkkr9rn4nlcx80faxpyqscy2k1x9c94f93dk";
   };
 
-  buildNativeInputs = [ lzma m4 perl ];
+  nativeBuildInputs = [ lzma m4 perl ];
 
   # Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the
   # "fixed" path in generated files!
diff --git a/pkgs/development/tools/misc/strace/default.nix b/pkgs/development/tools/misc/strace/default.nix
index 3589ffb5a070..d5bb2b06e12c 100644
--- a/pkgs/development/tools/misc/strace/default.nix
+++ b/pkgs/development/tools/misc/strace/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "158iwk0pl2mfw93m1843xb7a2zb8p6lh0qim07rca6f1ff4dk764";
   };
 
-  buildNativeInputs = [ perl ];
+  nativeBuildInputs = [ perl ];
 
   meta = {
     homepage = http://strace.sourceforge.net/;
diff --git a/pkgs/development/tools/misc/texinfo/4.13a.nix b/pkgs/development/tools/misc/texinfo/4.13a.nix
index 111f2d142008..9a41d2963424 100644
--- a/pkgs/development/tools/misc/texinfo/4.13a.nix
+++ b/pkgs/development/tools/misc/texinfo/4.13a.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ ncurses ];
-  buildNativeInputs = [ lzma ];
+  nativeBuildInputs = [ lzma ];
 
   # Disabled because we don't have zdiff in the stdenv bootstrap.
   #doCheck = true;
diff --git a/pkgs/development/tools/misc/xxdiff/default.nix b/pkgs/development/tools/misc/xxdiff/default.nix
index 1a44cd4bcbf7..461c602a8866 100644
--- a/pkgs/development/tools/misc/xxdiff/default.nix
+++ b/pkgs/development/tools/misc/xxdiff/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
     sha256 = "7ae7d81becc25b1adabc9383bb5b9005dddb31510cdc404ce8a0d6ff6c3dc47e";
   };
 
-  buildNativeInputs = [ flex bison qt4 ];
+  nativeBuildInputs = [ flex bison qt4 ];
 
   buildInputs = [ qt4 ];
 
diff --git a/pkgs/development/tools/parsing/bison/bison-1.875.nix b/pkgs/development/tools/parsing/bison/bison-1.875.nix
deleted file mode 100644
index 3ee12a252cec..000000000000
--- a/pkgs/development/tools/parsing/bison/bison-1.875.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{stdenv, fetchurl, m4}:
-
-assert m4 != null;
-
-stdenv.mkDerivation {
-  name = "bison-1.875";
-  src = fetchurl {
-    url = mirror://gnu/bison/bison-1.875.tar.bz2;
-    md5 = "b7f8027b249ebd4dd0cc948943a71af0";
-  };
-  buildInputs = [m4];
-  passthru = { glrSupport = true; };
-}
diff --git a/pkgs/development/tools/parsing/bison/bison-2.3.nix b/pkgs/development/tools/parsing/bison/bison-2.3.nix
deleted file mode 100644
index fcf4ed107959..000000000000
--- a/pkgs/development/tools/parsing/bison/bison-2.3.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{stdenv, fetchurl, m4}:
-
-assert m4 != null;
-
-stdenv.mkDerivation {
-  name = "bison-2.3";
-  src = fetchurl {
-    url = mirror://gnu/bison/bison-2.3.tar.bz2;
-    md5 = "c18640c6ec31a169d351e3117ecce3ec";
-  };
-
-  buildNativeInputs = [m4];
-  propagatedBuildInputs = [m4];
-
-  meta = {
-    description = "GNU Bison, a Yacc-compatible parser generator";
-
-    longDescription = ''
-      Bison is a general-purpose parser generator that converts an
-      annotated context-free grammar into an LALR(1) or GLR parser for
-      that grammar.  Once you are proficient with Bison, you can use
-      it to develop a wide range of language parsers, from those used
-      in simple desk calculators to complex programming languages.
-
-      Bison is upward compatible with Yacc: all properly-written Yacc
-      grammars ought to work with Bison with no change.  Anyone
-      familiar with Yacc should be able to use Bison with little
-      trouble.  You need to be fluent in C or C++ programming in order
-      to use Bison.
-    '';
-
-    homepage = http://www.gnu.org/software/bison/;
-
-    license = "GPLv2+";
-  };
- 
-  passthru = { glrSupport = true; };
-}
diff --git a/pkgs/development/tools/parsing/bison/bison-2.4.nix b/pkgs/development/tools/parsing/bison/bison-2.4.nix
deleted file mode 100644
index a79a5e96381e..000000000000
--- a/pkgs/development/tools/parsing/bison/bison-2.4.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{stdenv, fetchurl, m4}:
-
-stdenv.mkDerivation rec {
-  name = "bison-2.4.3";
-
-  src = fetchurl {
-    url = "mirror://gnu/bison/${name}.tar.bz2";
-    sha256 = "019s3pdzggb71g7p7dgajhh53gh0h6nfl4yrzrs0jzsc37ph4lwk";
-  };
-
-  buildNativeInputs = [m4];
-
-  doCheck = true;
-
-  meta = {
-    description = "GNU Bison, a Yacc-compatible parser generator";
-
-    longDescription = ''
-      Bison is a general-purpose parser generator that converts an
-      annotated context-free grammar into an LALR(1) or GLR parser for
-      that grammar.  Once you are proficient with Bison, you can use
-      it to develop a wide range of language parsers, from those used
-      in simple desk calculators to complex programming languages.
-
-      Bison is upward compatible with Yacc: all properly-written Yacc
-      grammars ought to work with Bison with no change.  Anyone
-      familiar with Yacc should be able to use Bison with little
-      trouble.  You need to be fluent in C or C++ programming in order
-      to use Bison.
-    '';
-
-    homepage = http://www.gnu.org/software/bison/;
-
-    license = "GPLv3+";
-
-    maintainers = [ stdenv.lib.maintainers.ludo ];
-  };
-
-  passthru = { glrSupport = true; };
-}
diff --git a/pkgs/development/tools/parsing/bison/bison-2.5.nix b/pkgs/development/tools/parsing/bison/bison-2.5.nix
deleted file mode 100644
index ea50b8590204..000000000000
--- a/pkgs/development/tools/parsing/bison/bison-2.5.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ stdenv, fetchurl, m4, perl }:
-
-stdenv.mkDerivation rec {
-  name = "bison-2.5";
-
-  src = fetchurl {
-    url = "mirror://gnu/bison/${name}.tar.bz2";
-    sha256 = "1f1rai3v6k6xjii94964iq0alhc2hxwapqa363nfj8rbxvv0sdqa";
-  };
-
-  buildNativeInputs = [ m4 ]
-    ++ stdenv.lib.optional doCheck perl;
-  propagatedBuildInputs = [ m4 ];
-
-  M4 = "${m4}/bin/m4";
-
-  doCheck = true;
-
-  meta = {
-    description = "GNU Bison, a Yacc-compatible parser generator";
-
-    longDescription = ''
-      Bison is a general-purpose parser generator that converts an
-      annotated context-free grammar into an LALR(1) or GLR parser for
-      that grammar.  Once you are proficient with Bison, you can use
-      it to develop a wide range of language parsers, from those used
-      in simple desk calculators to complex programming languages.
-
-      Bison is upward compatible with Yacc: all properly-written Yacc
-      grammars ought to work with Bison with no change.  Anyone
-      familiar with Yacc should be able to use Bison with little
-      trouble.  You need to be fluent in C or C++ programming in order
-      to use Bison.
-    '';
-
-    homepage = http://www.gnu.org/software/bison/;
-
-    license = "GPLv3+";
-
-    maintainers = [ stdenv.lib.maintainers.ludo ];
-  };
-
-  passthru = { glrSupport = true; };
-}
diff --git a/pkgs/development/tools/parsing/bison/bison-2.6.nix b/pkgs/development/tools/parsing/bison/default.nix
index ea43d30410e3..b397a22443a7 100644
--- a/pkgs/development/tools/parsing/bison/bison-2.6.nix
+++ b/pkgs/development/tools/parsing/bison/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, m4, perl }:
 
 stdenv.mkDerivation rec {
-  name = "bison-2.6.2";
+  name = "bison-2.6.5";
 
   src = fetchurl {
     url = "mirror://gnu/bison/${name}.tar.xz";
-    sha256 = "79503f80397c30ac81b62eca5ffeaccaed72fdfeddb76257efcf8c3ca24be03d";
+    sha256 = "8640d5b51aad462db6863711f333a9159836853e0b1e79fdef708c6efb5cd52b";
   };
 
-  buildNativeInputs = [ m4 ] ++ stdenv.lib.optional doCheck perl;
+  nativeBuildInputs = [ m4 ] ++ stdenv.lib.optional doCheck perl;
   propagatedBuildInputs = [ m4 ];
 
   doCheck = true;
diff --git a/pkgs/development/tools/parsing/flex/flex-2.5.35.nix b/pkgs/development/tools/parsing/flex/flex-2.5.35.nix
index 66ece227c924..21180e7d185e 100644
--- a/pkgs/development/tools/parsing/flex/flex-2.5.35.nix
+++ b/pkgs/development/tools/parsing/flex/flex-2.5.35.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
     sha256 = "0ysff249mwhq0053bw3hxh58djc0gy7vjan2z1krrf9n5d5vvv0b";
   };
   buildInputs = [yacc];
-  propagatedBuildNativeInputs = [m4];
+  propagatedNativeBuildInputs = [m4];
 
   crossAttrs = {
     preConfigure = ''
diff --git a/pkgs/development/tools/phantomjs/default.nix b/pkgs/development/tools/phantomjs/default.nix
index 33b99e12de55..5d9433cc5ca6 100644
--- a/pkgs/development/tools/phantomjs/default.nix
+++ b/pkgs/development/tools/phantomjs/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
             sha256 = "1m14czhi3b388didn0a881glsx8bnsg9gnxgj5lghr4l5mgqyrd7";
           };
 
-  buildNativeInputs = stdenv.lib.optional (stdenv.system == "x86_64-linux") upx;
+  nativeBuildInputs = stdenv.lib.optional (stdenv.system == "x86_64-linux") upx;
 
   buildPhase = stdenv.lib.optionalString (stdenv.system == "x86_64-linux") ''
     upx -d bin/phantomjs
diff --git a/pkgs/development/tools/profiling/oprofile/default.nix b/pkgs/development/tools/profiling/oprofile/default.nix
index 4e4bcd3f9b62..af83765c7a21 100644
--- a/pkgs/development/tools/profiling/oprofile/default.nix
+++ b/pkgs/development/tools/profiling/oprofile/default.nix
@@ -6,11 +6,11 @@
 assert withGUI -> qt4 != null;
 
 stdenv.mkDerivation rec {
-  name = "oprofile-0.9.7";
+  name = "oprofile-0.9.8";
 
   src = fetchurl {
     url = "mirror://sourceforge/oprofile/${name}.tar.gz";
-    sha256 = "09ymfgcvp6372xnxdbq664ba8f4nzz4cxlya7wi8s1gabmym0nyb";
+    sha256 = "1g31lwgpacql6w5z1z2f31pgwzn14rgsbh7kmmdmsgm2l47r0idb";
   };
 
   patchPhase = ''
@@ -23,8 +23,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ binutils zlib popt makeWrapper gawk which gnugrep pkgconfig ]
     ++ stdenv.lib.optionals withGUI [ qt4 ];
 
-  configureFlags =
-    [ "--with-kernel-support"
+  configureFlags = [
       "--disable-shared"   # needed because only the static libbfd is available
     ]
     ++ stdenv.lib.optional withGUI "--with-qt-dir=${qt4} --enable-gui=qt4";
diff --git a/pkgs/development/web/nodejs/build-node-package.nix b/pkgs/development/web/nodejs/build-node-package.nix
index 95d10db167f1..e90e9446846c 100644
--- a/pkgs/development/web/nodejs/build-node-package.nix
+++ b/pkgs/development/web/nodejs/build-node-package.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation ({
     runHook postBuild
   '';
 
-  buildNativeInputs = neededNatives;
+  nativeBuildInputs = neededNatives;
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/games/andyetitmoves/default.nix b/pkgs/games/andyetitmoves/default.nix
index 6234d3702f7c..cf3f6e1563b8 100644
--- a/pkgs/games/andyetitmoves/default.nix
+++ b/pkgs/games/andyetitmoves/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
     cp -r * $out/opt/andyetitmoves/
 
     fullPath=${stdenv.gcc.gcc}/lib64
-    for i in $buildNativeInputs; do
+    for i in $nativeBuildInputs; do
       fullPath=$fullPath''${fullPath:+:}$i/lib
     done
 
diff --git a/pkgs/games/flightgear/default.nix b/pkgs/games/flightgear/default.nix
index fe90156d84cf..fa0bb9bb4f7c 100644
--- a/pkgs/games/flightgear/default.nix
+++ b/pkgs/games/flightgear/default.nix
@@ -1,23 +1,23 @@
 x@{builderDefsPackage
   , freeglut, freealut, mesa, libICE, libjpeg, openal, openscenegraph, plib
   , libSM, libunwind, libX11, xproto, libXext, xextproto, libXi, inputproto
-  , libXmu, libXt, simgear, zlib, boost
+  , libXmu, libXt, simgear, zlib, boost, cmake, libpng
   , ...}:
 builderDefsPackage
-(a :  
-let 
-  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+(a :
+let
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
     [];
 
   buildInputs = map (n: builtins.getAttr n x)
     (builtins.attrNames (builtins.removeAttrs x helperArgNames));
   sourceInfo = rec {
-    baseName="FlightGear";
-    version="2.0.0";
+    baseName="flightgear";
+    version="2.10.0";
     name="${baseName}-${version}";
-    extension="tar.gz";
+    extension="tar.bz2";
     url="http://ftp.linux.kiev.ua/pub/fgfs/Source/${name}.${extension}";
-    hash="17h7ns955xkd0cakfk22aym0id65rd8kylcamkmycbgnnhs4b1wg";
+    hash="0pq5nwyxwp8ar5rr0jh8p04bv0i9i841m374jwd748csnsn28zh6";
   };
 in
 rec {
@@ -35,14 +35,14 @@ rec {
   inherit buildInputs;
 
   /* doConfigure should be removed if not needed */
-  phaseNames = ["doConfigure" "doMakeInstall" "deployData"];
+  phaseNames = ["doCmake" "doMakeInstall" "deployData"];
 
   deployData = a.fullDepEntry ''
     mkdir -p "$out/share/FlightGear"
     cd "$out/share/FlightGear"
     tar xvf ${datasrc}
   '' ["minInit" "defEnsureDir"];
-      
+
   meta = {
     description = "A flight simulator";
     maintainers = with a.lib.maintainers;
diff --git a/pkgs/games/freeciv/default.nix b/pkgs/games/freeciv/default.nix
index 7aaf32383081..049f10ad15b2 100644
--- a/pkgs/games/freeciv/default.nix
+++ b/pkgs/games/freeciv/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     sha256 = "1n3ak0y9hj9kha0r3cdbi8zb47vrgal1jsbblamqgwwwgzy8cri3";
   };
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   buildInputs = [ zlib bzip2 ]
     ++ optionals sdlClient [ SDL SDL_mixer SDL_image SDL_ttf SDL_gfx freetype ]
diff --git a/pkgs/games/freedink/default.nix b/pkgs/games/freedink/default.nix
index f41063272ce1..a30ff7e2f871 100644
--- a/pkgs/games/freedink/default.nix
+++ b/pkgs/games/freedink/default.nix
@@ -1,24 +1,46 @@
 { stdenv, fetchurl, SDL, SDL_mixer, SDL_image, SDL_ttf, SDL_gfx
-, pkgconfig, fontconfig, libzip, zip, zlib }:
+, pkgconfig, intltool, fontconfig, libzip, zip, zlib }:
 
-stdenv.mkDerivation rec {
-  name = "freedink-1.08.20101114";
+let
+  version = "1.08.20121209";
+
+  freedink_data = stdenv.mkDerivation rec {
+    name = "freedink-data-${version}";
+
+    src = fetchurl {
+      url = "mirror://gnu/freedink/${name}.tar.gz";
+      sha256 = "1mhns09l1s898x18ahbcy9gabrmgsr8dv7pm0a2ivid8mhxahn1j";
+    };
+
+    prePatch = "substituteInPlace Makefile --replace /usr/local $out";
+  };
+
+in stdenv.mkDerivation rec {
+  name = "freedink-${version}";
 
   src = fetchurl {
     url = "mirror://gnu/freedink/${name}.tar.gz";
-    sha256 = "0h3i7p7awk5flymh22xaazm2r56hv86z2il2gmbzrr6xh434zffa";
+    sha256 = "19xximbcm6506kvpf3s0q96697kmzca3yrjdr6dgphklp33zqsqr";
   };
 
-  buildInputs = [ SDL SDL_mixer SDL_image SDL_ttf SDL_gfx pkgconfig fontconfig libzip zip zlib] ;
+  buildInputs = [
+    SDL SDL_mixer SDL_image SDL_ttf SDL_gfx
+    pkgconfig intltool fontconfig libzip zip zlib
+  ];
+
+  postInstall = ''
+    mkdir -p "$out/share/"
+    ln -s ${freedink_data}/share/dink "$out/share/"
+  '';
 
   meta = {
-    description = "GNU FreeDink, a free, portable and enhanced version of the Dink Smallwood game engine. ";
+    description = "A free, portable and enhanced version of the Dink Smallwood game engine";
 
-    longDescription =
-      '' GNU FreeDink is a new and portable version of the Dink Smallwood
-	 game engine, which runs the original game as well as its D-Mods,
-	 with close compatibility, under multiple platforms.
-       '';
+    longDescription = ''
+      GNU FreeDink is a new and portable version of the Dink Smallwood
+      game engine, which runs the original game as well as its D-Mods,
+      with close compatibility, under multiple platforms.
+    '';
 
     homepage = http://www.freedink.org/;
     license = "GPLv3+";
diff --git a/pkgs/games/naev/default.nix b/pkgs/games/naev/default.nix
index 2e25cf4afb6b..4516afaef6dc 100644
--- a/pkgs/games/naev/default.nix
+++ b/pkgs/games/naev/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
 
   buildInputs = [ SDL SDL_mixer openal libxml2 libvorbis libpng mesa zlib ];
 
-  buildNativeInputs = [ pkgconfig makeWrapper ];
+  nativeBuildInputs = [ pkgconfig makeWrapper ];
 
   NIX_CFLAGS_COMPILE="-include ${zlib}/include/zlib.h";
 
diff --git a/pkgs/games/prboom/default.nix b/pkgs/games/prboom/default.nix
index f66e2295a22c..95ad53cb1ae3 100644
--- a/pkgs/games/prboom/default.nix
+++ b/pkgs/games/prboom/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
 
   buildInputs = [ SDL SDL_mixer SDL_net mesa ];
   crossAttrs = {
-    propagatedBuildInputs = [ SDL.hostDrv SDL_mixer.hostDrv SDL_net.hostDrv ];
+    propagatedBuildInputs = [ SDL.crossDrv SDL_mixer.crossDrv SDL_net.crossDrv ];
     configureFlags = "--disable-gl --disable-cpu-opt --without-x --disable-sdltest
       ac_cv_type_uid_t=yes ac_cv_type_gid_t=yes";
 
diff --git a/pkgs/games/scorched3d/default.nix b/pkgs/games/scorched3d/default.nix
index 63fae5df0fcd..3848f22ed204 100644
--- a/pkgs/games/scorched3d/default.nix
+++ b/pkgs/games/scorched3d/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
     [ mesa openal freealut wxGTK freetype fftwSinglePrec SDL_net zlib libpng libjpeg
     libogg libvorbis ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   patches = [ ./file-existence.patch ];
 
diff --git a/pkgs/games/torcs/default.nix b/pkgs/games/torcs/default.nix
index da4fd01d3a97..f5b713ae3373 100644
--- a/pkgs/games/torcs/default.nix
+++ b/pkgs/games/torcs/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ mesa freeglut libX11 plib openal freealut libXrandr xproto
     libXext libSM libICE libXi libXt libXrender libXxf86vm libpng zlib libvorbis ];
 
-  buildNativeInputs = [ bash ];
+  nativeBuildInputs = [ bash ];
 
   installTargets = "install datainstall";
 
diff --git a/pkgs/games/wesnoth/default.nix b/pkgs/games/wesnoth/default.nix
index 2bac3cba198b..b8e53b0cefb7 100644
--- a/pkgs/games/wesnoth/default.nix
+++ b/pkgs/games/wesnoth/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wesnoth";
-  version = "1.10.2";
+  version = "1.10.5";
 
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/sourceforge/${pname}/${name}.tar.bz2";
-    sha256 = "0hawzq85sq0kdddj0s7y6kpx043g1hsl7cvyw1xcxqh45hkgw2ix";
+    sha256 = "1rvlr8c3vzhgd33vzc1hfhiil6d7hc3px8r8p79vmp3kwi3d49zn";
   };
 
   buildInputs = [ SDL SDL_image SDL_mixer SDL_net SDL_ttf pango gettext zlib boost fribidi
diff --git a/pkgs/lib/customisation.nix b/pkgs/lib/customisation.nix
index 54965ffb5804..18cec3209f97 100644
--- a/pkgs/lib/customisation.nix
+++ b/pkgs/lib/customisation.nix
@@ -34,7 +34,7 @@ rec {
   overrideDerivation = drv: f:
     let
       # Filter out special attributes.
-      drop = [ "meta" "passthru" "outPath" "drvPath" "hostDrv" "buildDrv" "type" "override" "deepOverride" "origArgs" "drvAttrs" "outputName" "all" "out" ]
+      drop = [ "meta" "passthru" "outPath" "drvPath" "crossDrv" "nativeDrv" "type" "override" "deepOverride" "origArgs" "drvAttrs" "outputName" "all" "out" ]
               # also drop functions such as .merge .override etc
              ++ lib.filter (n: isFunction (getAttr n drv)) (attrNames drv);
       attrs = removeAttrs drv drop;
@@ -44,10 +44,10 @@ rec {
         passthru = if drv ? passthru then drv.passthru else {};
       }
       //
-      (if (drv ? hostDrv && drv ? buildDrv)
+      (if (drv ? crossDrv && drv ? nativeDrv)
        then {
-         hostDrv = overrideDerivation drv.hostDrv f;
-         buildDrv = overrideDerivation drv.buildDrv f;
+         crossDrv = overrideDerivation drv.crossDrv f;
+         nativeDrv = overrideDerivation drv.nativeDrv f;
        }
        else { });
 
diff --git a/pkgs/lib/debug.nix b/pkgs/lib/debug.nix
index b78f946c5d44..d627bc861abb 100644
--- a/pkgs/lib/debug.nix
+++ b/pkgs/lib/debug.nix
@@ -95,7 +95,7 @@ rec {
           else if isInt x then true
           else if x == null then true
           else true; # a (store) path?
-    in if (traverse x) then x else throw "else never reached";
+    in if traverse x then x else throw "else never reached";
 
   # example: (traceCallXml "myfun" id 3) will output something like
   # calling myfun arg 1: 3 result: 3
diff --git a/pkgs/lib/misc.nix b/pkgs/lib/misc.nix
index 39a3ad258b04..79504f7d8860 100644
--- a/pkgs/lib/misc.nix
+++ b/pkgs/lib/misc.nix
@@ -53,7 +53,7 @@ rec {
           f :        # the function applied to the arguments
           initial :  # you pass attrs, the functions below are passing a function taking the fix argument
     let
-        takeFixed = if (isFunction initial) then initial else (fixed : initial); # transform initial to an expression always taking the fixed argument
+        takeFixed = if isFunction initial then initial else (fixed : initial); # transform initial to an expression always taking the fixed argument
         tidy = args : 
             let # apply all functions given in "applyPreTidy" in sequence
                 applyPreTidyFun = fold ( n : a : x : n ( a x ) ) lib.id (maybeAttr "applyPreTidy" [] args);
@@ -106,11 +106,11 @@ rec {
   # shortcut for attrByPath ["name"] default attrs
   maybeAttrNullable = name: default: attrs:
     if attrs == null then default else 
-    if (__hasAttr name attrs) then (__getAttr name attrs) else default;
+    if __hasAttr name attrs then (__getAttr name attrs) else default;
 
   # shortcut for attrByPath ["name"] default attrs
   maybeAttr = name: default: attrs:
-    if (__hasAttr name attrs) then (__getAttr name attrs) else default;
+    if __hasAttr name attrs then (__getAttr name attrs) else default;
 
 
   # Return the second argument if the first one is true or the empty version
@@ -120,14 +120,14 @@ rec {
     else if builtins.isList val then []
     else if builtins.isAttrs val then {}
     # else if builtins.isString val then ""
-    else if (val == true || val == false) then false
+    else if val == true || val == false then false
     else null;
 
     
   # Return true only if there is an attribute and it is true.
   checkFlag = attrSet: name:
-        if (name == "true") then true else
-        if (name == "false") then false else
+        if name == "true" then true else
+        if name == "false" then false else
         if (elem name (attrByPath ["flags"] [] attrSet)) then true else
         attrByPath [name] false attrSet ;
 
@@ -170,7 +170,7 @@ rec {
 
   uniqListExt = {inputList, outputList ? [],
     getter ? (x : x), compare ? (x: y: x==y)}:
-        if (inputList == []) then outputList else
+        if inputList == [] then outputList else
         let x=head inputList; 
         isX = y: (compare (getter y) (getter x));
         newOutputList = outputList ++
@@ -226,7 +226,7 @@ rec {
                  in innerClosePropagation
                       acc'
                       (uniqList { inputList = (maybeAttrNullable "propagatedBuildInputs" [] y)
-                                           ++ (maybeAttrNullable "propagatedBuildNativeInputs" [] y)
+                                           ++ (maybeAttrNullable "propagatedNativeBuildInputs" [] y)
                                            ++ ys;
                                   acc = acc';
                                 }
@@ -317,7 +317,7 @@ rec {
   mergeAttrsByFuncDefaults = foldl mergeAttrByFunc { inherit mergeAttrBy; };
   # sane defaults (same name as attr name so that inherit can be used)
   mergeAttrBy = # { buildInputs = concatList; [...]; passthru = mergeAttr; [..]; }
-    listToAttrs (map (n : nameValuePair n lib.concat) [ "buildNativeInputs" "buildInputs" "propagatedBuildInputs" "configureFlags" "prePhases" "postAll" ])
+    listToAttrs (map (n : nameValuePair n lib.concat) [ "nativeBuildInputs" "buildInputs" "propagatedBuildInputs" "configureFlags" "prePhases" "postAll" ])
     // listToAttrs (map (n : nameValuePair n lib.mergeAttrs) [ "passthru" "meta" "cfg" "flags" ])
     // listToAttrs (map (n : nameValuePair n (a: b: "${a}\n${b}") ) [ "preConfigure" "postInstall" ])
   ;
@@ -362,7 +362,7 @@ rec {
         cfgWithDefaults = (listToAttrs (map (n : nameValuePair (flagName n) false) (attrNames args2.flags)))
                           // args2.cfg;
         opts = attrValues (mapAttrs (a : v :
-                let v2 = if (v ? set || v ? unset) then v else { set = v; };
+                let v2 = if v ? set || v ? unset then v else { set = v; };
                     n = if (getAttr (flagName a) cfgWithDefaults) then "set" else "unset";
                     attr = maybeAttr n {} v2; in
                 if (maybeAttr "assertion" true attr)
diff --git a/pkgs/lib/platforms.nix b/pkgs/lib/platforms.nix
index 9a0fb8e17ff7..8be37d7ed1e7 100644
--- a/pkgs/lib/platforms.nix
+++ b/pkgs/lib/platforms.nix
@@ -12,5 +12,5 @@ rec {
   all = linux ++ darwin ++ cygwin ++ freebsd ++ openbsd;
   none = [];
   allBut = platform: lists.filter (x: platform != x) all;
-  mesaPlatforms = ["i686-linux" "x86_64-linux" "x86_64-darwin"];
+  mesaPlatforms = ["i686-linux" "x86_64-linux" "x86_64-darwin" "armv5tel-linux" "armv6l-linux"];
 }
diff --git a/pkgs/lib/strings.nix b/pkgs/lib/strings.nix
index 19d1738182f4..6c4adfaa1a71 100644
--- a/pkgs/lib/strings.nix
+++ b/pkgs/lib/strings.nix
@@ -161,7 +161,7 @@ rec {
   getVersion = drv: (builtins.parseDrvName drv.name).version;
 
 
-  # Extract name with version from URL. Ask for separator which is 
+  # Extract name with version from URL. Ask for separator which is
   # supposed to start extension
   nameFromURL = url: sep: let
     components = splitString "/" url;
@@ -171,4 +171,9 @@ rec {
   assert ! eqStrings name filename;
   name;
 
+
+  # Create an --{enable,disable}-<feat> string that can be passed to
+  # standard GNU Autoconf scripts.
+  enableFeature = enable: feat: "--${if enable then "enable" else "disable"}-${feat}";
+
 }
diff --git a/pkgs/misc/my-env/default.nix b/pkgs/misc/my-env/default.nix
index 39fd99792667..e68e4cab3492 100644
--- a/pkgs/misc/my-env/default.nix
+++ b/pkgs/misc/my-env/default.nix
@@ -63,8 +63,8 @@
 
 mkDerivation {
   # The setup.sh script from stdenv will expect the native build inputs in
-  # the buildNativeInputs environment variable.
-  buildNativeInputs = [ ] ++ buildInputs;
+  # the nativeBuildInputs environment variable.
+  nativeBuildInputs = [ ] ++ buildInputs;
   # Trick to bypass the stdenv usual change of propagatedBuildInputs => propagatedNativeBuildInputs
   propagatedBuildInputs2 = propagatedBuildInputs;
 
@@ -87,7 +87,7 @@ mkDerivation {
         -e 's@trap.*@@' \
         -i "$s"
     cat >> "$out/dev-envs/''${name/env-/}" << EOF
-      buildNativeInputs="$buildNativeInputs"
+      nativeBuildInputs="$nativeBuildInputs"
       propagatedBuildInputs="$propagatedBuildInputs2"
       # the setup-new script wants to write some data to a temp file.. so just let it do that and tidy up afterwards
       tmp="\$("${pkgs.coreutils}/bin/mktemp" -d)"
diff --git a/pkgs/misc/source-and-tags/default.nix b/pkgs/misc/source-and-tags/default.nix
index e3993d0daeac..ece31bbaa74f 100644
--- a/pkgs/misc/source-and-tags/default.nix
+++ b/pkgs/misc/source-and-tags/default.nix
@@ -4,8 +4,8 @@ args: with args; {
                                       || x ? meta && x.meta ? sourceWithTags );
   # hack because passthru doesn't work the way I'd expect. Don't have time to spend on this right now
   # that's why I'm abusing meta for the same purpose in ghcsAndLibs
-  sourceWithTagsFromDerivation = x : if (x ? passthru && x.passthru ? sourceWithTags ) then x.passthru.sourceWithTags
-                                     else if (x ? meta && x.meta ? sourceWithTags ) then x.meta.sourceWithTags
+  sourceWithTagsFromDerivation = x : if x ? passthru && x.passthru ? sourceWithTags  then x.passthru.sourceWithTags
+                                     else if x ? meta && x.meta ? sourceWithTags  then x.meta.sourceWithTags
                                        else null;
 
   # createTagFiles =  [ { name  = "my_tag_name_without_suffix", tagCmd = "ctags -R . -o \$TAG_FILE"; } ]
diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix
index 629537212bd4..5928406eb548 100644
--- a/pkgs/misc/uboot/default.nix
+++ b/pkgs/misc/uboot/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation {
     sha256 = "15nli6h9a127ldizsck3g4ysy5j4m910wawspgpadz4vjyk213p0";
   };
 
-  buildNativeInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   dontStrip = true;
 
diff --git a/pkgs/misc/uboot/guruplug.nix b/pkgs/misc/uboot/guruplug.nix
index 0e63a56073b6..b1f4cab7b735 100644
--- a/pkgs/misc/uboot/guruplug.nix
+++ b/pkgs/misc/uboot/guruplug.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation {
     fi
   '';
 
-  buildNativeInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   dontStrip = true;
 
diff --git a/pkgs/misc/uboot/sheevaplug.nix b/pkgs/misc/uboot/sheevaplug.nix
index ad8029d90203..4d4f61c40a70 100644
--- a/pkgs/misc/uboot/sheevaplug.nix
+++ b/pkgs/misc/uboot/sheevaplug.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation {
     fi
   '';
 
-  buildNativeInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   dontStrip = true;
 
diff --git a/pkgs/os-specific/gnu/default.nix b/pkgs/os-specific/gnu/default.nix
index 0a42b83a46f2..27b1cdd3e8a8 100644
--- a/pkgs/os-specific/gnu/default.nix
+++ b/pkgs/os-specific/gnu/default.nix
@@ -3,7 +3,7 @@
 args@{ fetchgit, stdenv, autoconf, automake, automake111x, libtool
 , texinfo, glibcCross, hurdPartedCross, libuuid, samba_light
 , gccCrossStageStatic, gccCrossStageFinal
-, forceBuildDrv, forceSystem, newScope, platform, config, crossSystem
+, forceNativeDrv, forceSystem, newScope, platform, config, crossSystem
 , overrides ? {} }:
 
 with args;
@@ -12,18 +12,18 @@ let
   callPackage = newScope gnu;
 
   gnu = {
-    hurdCross = forceBuildDrv(callPackage ./hurd {
+    hurdCross = forceNativeDrv (callPackage ./hurd {
       inherit fetchgit stdenv autoconf libtool texinfo
         glibcCross hurdPartedCross;
       inherit (gnu) machHeaders mig;
-      libuuid = libuuid.hostDrv;
+      libuuid = libuuid.crossDrv;
       automake = automake111x;
       headersOnly = false;
       cross = assert crossSystem != null; crossSystem;
       gccCross = gccCrossStageFinal;
     });
 
-    hurdCrossIntermediate = forceBuildDrv(callPackage ./hurd {
+    hurdCrossIntermediate = forceNativeDrv (callPackage ./hurd {
       inherit fetchgit stdenv autoconf libtool texinfo glibcCross;
       inherit (gnu) machHeaders mig;
       hurdPartedCross = null;
@@ -58,7 +58,7 @@ let
       hurd = null;
     };
 
-    libpthreadCross = forceBuildDrv(callPackage ./libpthread {
+    libpthreadCross = forceNativeDrv (callPackage ./libpthread {
       inherit fetchgit stdenv autoconf automake libtool glibcCross;
       inherit (gnu) machHeaders hurdHeaders;
       hurd = gnu.hurdCrossIntermediate;
@@ -85,7 +85,7 @@ let
       stdenv = (forceSystem "i686-linux").stdenv;
     };
 
-    # XXX: Use this one for its `.hostDrv'.  Using the one above from
+    # XXX: Use this one for its `.crossDrv'.  Using the one above from
     # `x86_64-linux' leads to building a different cross-toolchain because of
     # the `forceSystem'.
     mig_raw = callPackage ./mig {};
diff --git a/pkgs/os-specific/gnu/libpthread/default.nix b/pkgs/os-specific/gnu/libpthread/default.nix
index 08838f17affc..3eaa6336ec27 100644
--- a/pkgs/os-specific/gnu/libpthread/default.nix
+++ b/pkgs/os-specific/gnu/libpthread/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation ({
     inherit rev;
   };
 
-  buildNativeInputs = [ autoconf automake libtool ];
+  nativeBuildInputs = [ autoconf automake libtool ];
   buildInputs = [ machHeaders hurdHeaders ]
    ++ stdenv.lib.optional (!headersOnly) hurd
    ++ stdenv.lib.optional (gccCross != null) gccCross;
diff --git a/pkgs/os-specific/gnu/mach/default.nix b/pkgs/os-specific/gnu/mach/default.nix
index f5120fca478a..54c6429955bb 100644
--- a/pkgs/os-specific/gnu/mach/default.nix
+++ b/pkgs/os-specific/gnu/mach/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation ({
     # <http://lists.gnu.org/archive/html/bug-hurd/2010-05/msg00137.html>.
     ++ [ "--enable-dependency-tracking" ];
 
-  buildNativeInputs = [ autoconf automake texinfo ]
+  nativeBuildInputs = [ autoconf automake texinfo ]
     ++ stdenv.lib.optional (mig != null) mig;
 
   preConfigure = "autoreconf -vfi";
diff --git a/pkgs/os-specific/gnu/mig/default.nix b/pkgs/os-specific/gnu/mig/default.nix
index f7b798a76240..9ee188b0c8c6 100644
--- a/pkgs/os-specific/gnu/mig/default.nix
+++ b/pkgs/os-specific/gnu/mig/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
 
   patches = [ ./noyywrap.patch ];
 
-  buildNativeInputs = [ autoconf automake flex bison machHeaders ];
+  nativeBuildInputs = [ autoconf automake flex bison machHeaders ];
 
   preConfigure = "autoreconf -vfi";
 
@@ -25,7 +25,7 @@ stdenv.mkDerivation {
     postInstall =
       # Fix the shebang to point to the cross-built shell.
       '' sed -i "$out/bin/mig" \
-             -e 's|^#!/.*|#!${bash.hostDrv}/bin/sh|g'
+             -e 's|^#!/.*|#!${bash.crossDrv}/bin/sh|g'
       '';
   };
 
diff --git a/pkgs/os-specific/gnu/unionfs/default.nix b/pkgs/os-specific/gnu/unionfs/default.nix
index f35fed282b68..946e4c0c109c 100644
--- a/pkgs/os-specific/gnu/unionfs/default.nix
+++ b/pkgs/os-specific/gnu/unionfs/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   makeFlags = [ "CC=i586-pc-gnu-gcc" ];
   buildInputs = [ hurd machHeaders ];
-  buildNativeInputs = [ mig ];
+  nativeBuildInputs = [ mig ];
 
   installPhase =
     '' mkdir -p "$out/hurd"
diff --git a/pkgs/os-specific/linux/alsa-lib/default.nix b/pkgs/os-specific/linux/alsa-lib/default.nix
index 3be6d0c3c333..26d32594fba2 100644
--- a/pkgs/os-specific/linux/alsa-lib/default.nix
+++ b/pkgs/os-specific/linux/alsa-lib/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   name = "alsa-lib-1.0.26";
-  
+
   src = fetchurl {
     urls = [
      "ftp://ftp.alsa-project.org/pub/lib/${name}.tar.bz2"
@@ -10,12 +10,17 @@ stdenv.mkDerivation rec {
     ];
     sha256 = "0zbfkwqn7ixa71lsna9llq6i2gic540h8r8r0rjdphrwc1hq37wc";
   };
-  
+
   configureFlags = "--disable-xmlto";
-  
+
   # Fix pcm.h file in order to prevent some compilation bugs
+  # 2: see http://stackoverflow.com/questions/3103400/how-to-overcome-u-int8-t-vs-uint8-t-issue-efficiently
   postPatch = ''
     sed -i -e 's|//int snd_pcm_mixer_element(snd_pcm_t \*pcm, snd_mixer_t \*mixer, snd_mixer_elem_t \*\*elem);|/\*int snd_pcm_mixer_element(snd_pcm_t \*pcm, snd_mixer_t \*mixer, snd_mixer_elem_t \*\*elem);\*/|' include/pcm.h
+
+
+    sed -i -e '1i#include <stdint.h>' include/pcm.h
+    sed -i -e 's/u_int\([0-9]*\)_t/uint\1_t/g' include/pcm.h
   '';
 
   crossAttrs = {
@@ -23,7 +28,7 @@ stdenv.mkDerivation rec {
       sed -i s/extern/static/g include/iatomic.h
     '';
   };
-  
+
   meta = {
     description = "ALSA, the Advanced Linux Sound Architecture libraries";
 
diff --git a/pkgs/os-specific/linux/alsa-oss/default.nix b/pkgs/os-specific/linux/alsa-oss/default.nix
index c76ee8d9298c..98bf4374b4fc 100644
--- a/pkgs/os-specific/linux/alsa-oss/default.nix
+++ b/pkgs/os-specific/linux/alsa-oss/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ alsaLib ncurses libsamplerate ];
-  buildNativeInputs = [ gettext ];
+  nativeBuildInputs = [ gettext ];
 
   configureFlags = "--disable-xmlto";
 
diff --git a/pkgs/os-specific/linux/alsa-utils/default.nix b/pkgs/os-specific/linux/alsa-utils/default.nix
index 4f848e5a87de..c121b227eee9 100644
--- a/pkgs/os-specific/linux/alsa-utils/default.nix
+++ b/pkgs/os-specific/linux/alsa-utils/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ alsaLib ncurses libsamplerate ];
-  buildNativeInputs = [ gettext ];
+  nativeBuildInputs = [ gettext ];
 
   configureFlags = "--disable-xmlto --with-udev-rules-dir=$(out)/lib/udev/rules.d";
 
diff --git a/pkgs/os-specific/linux/busybox/default.nix b/pkgs/os-specific/linux/busybox/default.nix
index 0848cb332534..a24e0fd2307b 100644
--- a/pkgs/os-specific/linux/busybox/default.nix
+++ b/pkgs/os-specific/linux/busybox/default.nix
@@ -44,6 +44,9 @@ stdenv.mkDerivation rec {
     sha256 = "10k8kgrprll9hxfm9gc3jl7kkq79g6l2pygn5snqwqg5v80zy4zb";
   };
 
+  # Remove this patch after the next busybox update.
+  patches = [ ./include-missing-sys-resource-header.patch ];
+
   configurePhase = ''
     make defconfig
     ${configParser}
@@ -60,7 +63,7 @@ stdenv.mkDerivation rec {
     extraCrossConfig = ''
       CONFIG_CROSS_COMPILER_PREFIX "${stdenv.cross.config}-"
     '' +
-      (if (stdenv.cross.platform.kernelMajor == "2.4") then ''
+      (if stdenv.cross.platform.kernelMajor == "2.4" then ''
         CONFIG_IONICE n
       '' else "");
   };
diff --git a/pkgs/os-specific/linux/busybox/include-missing-sys-resource-header.patch b/pkgs/os-specific/linux/busybox/include-missing-sys-resource-header.patch
new file mode 100644
index 000000000000..8163a86e3cdb
--- /dev/null
+++ b/pkgs/os-specific/linux/busybox/include-missing-sys-resource-header.patch
@@ -0,0 +1,12 @@
+diff --git a/include/libbb.h b/include/libbb.h
+index f12800f..e7806c2 100644
+--- a/include/libbb.h
++++ b/include/libbb.h
+@@ -40,6 +40,7 @@
+ #include <sys/poll.h>
+ #include <sys/ioctl.h>
+ #include <sys/mman.h>
++#include <sys/resource.h>
+ #include <sys/socket.h>
+ #include <sys/stat.h>
+ #include <sys/time.h>
diff --git a/pkgs/os-specific/linux/cryptodev/default.nix b/pkgs/os-specific/linux/cryptodev/default.nix
index cb797f07aa33..b9e5690e80e9 100644
--- a/pkgs/os-specific/linux/cryptodev/default.nix
+++ b/pkgs/os-specific/linux/cryptodev/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "13hybl5p0ck0vgi2gxmiwa2810gcfk78kdy17ai8nczj8il15mn0";
   };
 
-  buildPhase = if (!onlyHeaders) then ''
+  buildPhase = if !onlyHeaders then ''
     make -C ${kernel}/lib/modules/${kernel.modDirVersion}/build \
       SUBDIRS=`pwd` INSTALL_PATH=$out
   '' else ":";
diff --git a/pkgs/os-specific/linux/ebtables/default.nix b/pkgs/os-specific/linux/ebtables/default.nix
index 1f0539add939..eec456ff5ad2 100644
--- a/pkgs/os-specific/linux/ebtables/default.nix
+++ b/pkgs/os-specific/linux/ebtables/default.nix
@@ -1,22 +1,27 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "ebtables-2.0.9-2";
+  name = "ebtables-${version}";
+  version = "2.0.10-4";
 
   src = fetchurl {
-    url = mirror://sourceforge/ebtables/ebtables-v2.0.9-2.tar.gz;
-    sha256 = "18yni9zzhfi1ygkgifzj8qpn95cwwiw7j6b3wsl1bij39mj5z1cq";
+    url = "mirror://sourceforge/ebtables/ebtables-v${version}.tar.gz";
+    sha256 = "0pa5ljlk970yfyhpf3iqwfpbc30j8mgn90fapw9cfz909x47nvyw";
   };
 
   makeFlags =
-    "LIBDIR=$(out)/lib BINDIR=$(out)/sbin MANDIR=$(out)/share/man " +
-    "ETCDIR=$(out)/etc INITDIR=$(TMPDIR) SYSCONFIGDIR=$(out)/etc/sysconfig";
+    [ "LIBDIR=$(out)/lib" "BINDIR=$(out)/sbin" "MANDIR=$(out)/share/man"
+      "ETCDIR=$(out)/etc" "INITDIR=$(TMPDIR)" "SYSCONFIGDIR=$(out)/etc/sysconfig"
+      "LOCALSTATEDIR=/var"
+    ];
 
   preBuild =
     ''
       substituteInPlace Makefile --replace '-o root -g root' ""
     '';
 
+  NIX_CFLAGS_COMPILE = "-Wno-error";
+
   preInstall = "mkdir -p $out/etc/sysconfig";
 
   meta = {
diff --git a/pkgs/os-specific/linux/eject/default.nix b/pkgs/os-specific/linux/eject/default.nix
deleted file mode 100644
index eec1ec5342c0..000000000000
--- a/pkgs/os-specific/linux/eject/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{stdenv, fetchurl, gettext}:
-
-stdenv.mkDerivation {
-  name = "eject-2.1.5";
-  #builder = ./builder.sh;
-  src = fetchurl {
-    url = http://ca.geocities.com/jefftranter@rogers.com/eject-2.1.5.tar.gz;
-    sha256 = "0mgy5wp40rsalfkxs6mvsg3s7yaqf2iq49iv4axf9zac9037k7zg";
-  };
-  buildInputs = [gettext];
-  preBuild = "
-    makeFlagsArray=(PREFIX=$out)
-  ";
-}
diff --git a/pkgs/os-specific/linux/firmware/raspberrypi/default.nix b/pkgs/os-specific/linux/firmware/raspberrypi/default.nix
new file mode 100644
index 000000000000..02d7194b5007
--- /dev/null
+++ b/pkgs/os-specific/linux/firmware/raspberrypi/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+  name = "raspberrypi-firmware-20160106";
+
+  src = fetchurl {
+    url = "https://github.com/raspberrypi/firmware/archive/4ade27942e.tar.gz";
+    sha256 = "0f4p920vr7dcj4hprgil8baqqbnsjx1jykz0pkdx29mqy0n0xanl";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/raspberrypi/boot
+    cp -R boot/* $out/share/raspberrypi/boot
+    cp -R hardfp/opt/vc/* $out
+    cp opt/vc/LICENCE $out/share/raspberrypi
+  '';
+  
+  meta = {
+    description = "Firmware for the Raspberry Pi board";
+    homepage = https://github.com/raspberrypi;
+    license = "non-free";
+  };
+}
diff --git a/pkgs/os-specific/linux/iproute/default.nix b/pkgs/os-specific/linux/iproute/default.nix
index c97c7416de1e..2b22f4a2881b 100644
--- a/pkgs/os-specific/linux/iproute/default.nix
+++ b/pkgs/os-specific/linux/iproute/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     + " MANDIR=$(out)/share/man";
 
   buildInputs = [ db4 iptables ];
-  buildNativeInputs = [ bison flex pkgconfig ];
+  nativeBuildInputs = [ bison flex pkgconfig ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/os-specific/linux/jujuutils/default.nix b/pkgs/os-specific/linux/jujuutils/default.nix
index c52aae291ebe..7c688943ea82 100644
--- a/pkgs/os-specific/linux/jujuutils/default.nix
+++ b/pkgs/os-specific/linux/jujuutils/default.nix
@@ -1,18 +1,18 @@
-{stdenv, fetchurl, linuxHeaders}:
+{ stdenv, fetchurl, linuxHeaders }:
 
 stdenv.mkDerivation {
   name = "jujuutils-0.2";
 
   src = fetchurl {
-    url = http://jujuutils.googlecode.com/files/jujuutils-0.2.tar.gz;
+    url = "http://jujuutils.googlecode.com/files/jujuutils-0.2.tar.gz";
     sha256 = "1r74m7s7rs9d6y7cffi7mdap3jf96qwm1v6jcw53x5cikgmfxn4x";
   };
 
   buildInputs = [ linuxHeaders ];
 
   meta = {
+    homepage = "http://code.google.com/p/jujuutils/";
     description = "Utilities around FireWire devices connected to a Linux computer";
     license = "GPLv2";
-    homepage = http://code.google.com/p/jujuutils/;
   };
 }
diff --git a/pkgs/os-specific/linux/kernel-headers/2.4.nix b/pkgs/os-specific/linux/kernel-headers/2.4.nix
index c5926ff2e477..9457769f5efb 100644
--- a/pkgs/os-specific/linux/kernel-headers/2.4.nix
+++ b/pkgs/os-specific/linux/kernel-headers/2.4.nix
@@ -4,7 +4,7 @@ assert cross == null -> stdenv.isLinux;
 
 let
   version = "2.4.37.9";
-  kernelHeadersBaseConfig = if (cross == null) then
+  kernelHeadersBaseConfig = if cross == null then
       stdenv.platform.kernelHeadersBaseConfig
     else
       cross.platform.kernelHeadersBaseConfig;
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
     sha256 = "08rca9lcb5l5w483hgaqk8pi2njd7cmwpkifjqxwlb3g8liz4r5g";
   };
 
-  targetConfig = if (cross != null) then cross.config else null;
+  targetConfig = if cross != null then cross.config else null;
 
   platform =
     if cross != null then cross.platform.kernelArch else
diff --git a/pkgs/os-specific/linux/kernel-headers/2.6.28.nix b/pkgs/os-specific/linux/kernel-headers/2.6.28.nix
index b576b68773c8..1ba03010f8ab 100644
--- a/pkgs/os-specific/linux/kernel-headers/2.6.28.nix
+++ b/pkgs/os-specific/linux/kernel-headers/2.6.28.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
     sha256 = "0hifjh75sinifr5138v22zwbpqln6lhn65k8b57a1dyzlqca7cl9";
   };
 
-  targetConfig = if (cross != null) then cross.config else null;
+  targetConfig = if cross != null then cross.config else null;
 
   platform =
     if cross != null then cross.arch else
diff --git a/pkgs/os-specific/linux/kernel-headers/2.6.32.nix b/pkgs/os-specific/linux/kernel-headers/2.6.32.nix
index a2fc597eaac7..100dd0c611b3 100644
--- a/pkgs/os-specific/linux/kernel-headers/2.6.32.nix
+++ b/pkgs/os-specific/linux/kernel-headers/2.6.32.nix
@@ -4,7 +4,7 @@ assert cross == null -> stdenv.isLinux;
 
 let
   version = "2.6.32.16";
-  kernelHeadersBaseConfig = if (cross == null) then
+  kernelHeadersBaseConfig = if cross == null then
       stdenv.platform.kernelHeadersBaseConfig
     else
       cross.platform.kernelHeadersBaseConfig;
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
     sha256 = "1ndvqvfaxachsklzzr5db1bzvfhnzz8diddrm1zlv7171fzmn13j";
   };
 
-  targetConfig = if (cross != null) then cross.config else null;
+  targetConfig = if cross != null then cross.config else null;
 
   platform =
     if cross != null then cross.platform.kernelArch else
diff --git a/pkgs/os-specific/linux/kernel-headers/3.3.5.nix b/pkgs/os-specific/linux/kernel-headers/3.7.nix
index f4dd28dab031..4371bf7df9c5 100644
--- a/pkgs/os-specific/linux/kernel-headers/3.3.5.nix
+++ b/pkgs/os-specific/linux/kernel-headers/3.7.nix
@@ -3,22 +3,25 @@
 assert cross == null -> stdenv.isLinux;
 
 let
-  version = "3.3.5";
-  kernelHeadersBaseConfig = if cross == null then
-      stdenv.platform.kernelHeadersBaseConfig
-    else
-      cross.platform.kernelHeadersBaseConfig;
+
+  version = "3.7.1";
+
+  kernelHeadersBaseConfig =
+    if cross == null
+    then stdenv.platform.kernelHeadersBaseConfig
+    else cross.platform.kernelHeadersBaseConfig;
+
 in
 
 stdenv.mkDerivation {
   name = "linux-headers-${version}";
 
   src = fetchurl {
-    url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "0i74jn47f6vs5kcvk8abvz3k08z32c9bbqw0sdjkdxwvr4jbczpv";
+    url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.bz2";
+    sha256 = "1bb1dxj1i6j7pj926kfy6pz58kw03swyyikl9f3fq3jnswispaj2";
   };
 
-  targetConfig = if (cross != null) then cross.config else null;
+  targetConfig = if cross != null then cross.config else null;
 
   platform =
     if cross != null then cross.platform.kernelArch else
@@ -33,15 +36,15 @@ stdenv.mkDerivation {
 
   extraIncludeDirs =
     if cross != null then
-	(if cross.arch == "powerpc" then ["ppc"] else [])
+        (if cross.arch == "powerpc" then ["ppc"] else [])
     else if stdenv.system == "powerpc-linux" then ["ppc"] else [];
 
   buildPhase = ''
     if test -n "$targetConfig"; then
        export ARCH=$platform
     fi
-    make ${kernelHeadersBaseConfig}
-    make mrproper headers_check
+    make ${kernelHeadersBaseConfig} SHELL=bash
+    make mrproper headers_check SHELL=bash
   '';
 
   installPhase = ''
diff --git a/pkgs/os-specific/linux/kernel-headers/default.nix b/pkgs/os-specific/linux/kernel-headers/default.nix
deleted file mode 100644
index 3fb5ef8ef2df..000000000000
--- a/pkgs/os-specific/linux/kernel-headers/default.nix
+++ /dev/null
@@ -1,62 +0,0 @@
-{ stdenv, fetchurl, perl, cross ? null }:
-
-assert cross == null -> stdenv.isLinux;
-
-let
-  version = "2.6.35.14";
-  kernelHeadersBaseConfig = if cross == null then
-      stdenv.platform.kernelHeadersBaseConfig
-    else
-      cross.platform.kernelHeadersBaseConfig;
-in
-
-stdenv.mkDerivation {
-  name = "linux-headers-${version}";
-
-  src = fetchurl {
-    url = "mirror://kernel/linux/kernel/v2.6/longterm/v2.6.35/linux-${version}.tar.bz2";
-    sha256 = "1wzml7s9karfbk2yi36g1r8fyaq4d4f16yizc68zgchv0xzj39zl";
-  };
-
-  targetConfig = if (cross != null) then cross.config else null;
-
-  platform =
-    if cross != null then cross.platform.kernelArch else
-    if stdenv.system == "i686-linux" then "i386" else
-    if stdenv.system == "x86_64-linux" then "x86_64" else
-    if stdenv.system == "powerpc-linux" then "powerpc" else
-    if stdenv.isArm then "arm" else
-    if stdenv.platform ? kernelArch then stdenv.platform.kernelArch else
-    abort "don't know what the kernel include directory is called for this platform";
-
-  buildInputs = [perl];
-
-  extraIncludeDirs =
-    if cross != null then
-	(if cross.arch == "powerpc" then ["ppc"] else [])
-    else if stdenv.system == "powerpc-linux" then ["ppc"] else [];
-
-  buildPhase = ''
-    if test -n "$targetConfig"; then
-       export ARCH=$platform
-    fi
-    make ${kernelHeadersBaseConfig}
-    make mrproper headers_check
-  '';
-
-  installPhase = ''
-    make INSTALL_HDR_PATH=$out headers_install
-
-    # Some builds (e.g. KVM) want a kernel.release.
-    mkdir -p $out/include/config
-    echo "${version}-default" > $out/include/config/kernel.release
-  '';
-
-  # !!! hacky
-  fixupPhase = ''
-    ln -s asm $out/include/asm-$platform
-    if test "$platform" = "i386" -o "$platform" = "x86_64"; then
-      ln -s asm $out/include/asm-x86
-    fi
-  '';
-}
diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix
index 48feb6ec421e..50469eb53839 100644
--- a/pkgs/os-specific/linux/kernel/generic.nix
+++ b/pkgs/os-specific/linux/kernel/generic.nix
@@ -40,7 +40,7 @@
   # we force building the target asked: bzImage/zImage/uImage/...
   postBuild ? "make $makeFlags $kernelTarget; make $makeFlags -C scripts unifdef"
 
-, extraBuildNativeInputs ? []
+, extraNativeBuildInputs ? []
 , ...
 }:
 
@@ -85,7 +85,8 @@ stdenv.mkDerivation {
   # For UML and non-PC, just ignore all options that don't apply (We are lazy).
   ignoreConfigErrors = stdenv.platform.name != "pc";
 
-  buildNativeInputs = [ perl mktemp ] ++ extraBuildNativeInputs;
+  nativeBuildInputs = [ perl mktemp ] ++ extraNativeBuildInputs;
+
   buildInputs = lib.optional (stdenv.platform.uboot != null)
     (ubootChooser stdenv.platform.uboot);
 
@@ -121,8 +122,8 @@ stdenv.mkDerivation {
 
       # The substitution of crossAttrs happens *after* the stdenv cross adapter sets
       # the parameters for the usual stdenv. Thus, we need to specify
-      # the ".hostDrv" in the buildInputs here.
-      buildInputs = lib.optional (cp.uboot != null) (ubootChooser cp.uboot).hostDrv;
+      # the ".crossDrv" in the buildInputs here.
+      buildInputs = lib.optional (cp.uboot != null) (ubootChooser cp.uboot).crossDrv;
     };
 
   meta = {
diff --git a/pkgs/os-specific/linux/kernel/linux-rpi-3.6.nix b/pkgs/os-specific/linux/kernel/linux-rpi-3.6.nix
new file mode 100644
index 000000000000..b425f2792b4b
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/linux-rpi-3.6.nix
@@ -0,0 +1,42 @@
+args @ {
+  stdenv, fetchurl, extraConfig ? "" , perl, mktemp, module_init_tools, ...
+}:
+
+let
+  configWithPlatform = kernelPlatform :
+    ''
+      ${if kernelPlatform ? kernelExtraConfig then kernelPlatform.kernelExtraConfig else ""}
+      ${extraConfig}
+    '';
+
+  rev = "91a3be5b2b";
+in
+
+import ./generic.nix (
+
+  rec {
+    version = "3.6.y-${rev}";
+    testing = false;
+
+    preConfigure = ''
+      substituteInPlace scripts/depmod.sh --replace '-b "$INSTALL_MOD_PATH"' ""
+    '';
+
+    src = fetchurl {
+      url = "https://api.github.com/repos/raspberrypi/linux/tarball/${rev}";
+      name = "linux-raspberrypi-${version}.tar.gz";
+      sha256 = "04370b1da7610622372940decdc13ddbba2a58c9da3c3bd3e7df930a399f140d";
+    };
+
+    config = configWithPlatform stdenv.platform;
+    configCross = configWithPlatform stdenv.cross.platform;
+
+    features.iwlwifi = true;
+    #features.efiBootStub = true;
+    #features.needsCifsUtils = true;
+    #features.canDisableNetfilterConntrackHelpers = true;
+    #features.netfilterRPFilter = true;
+  }
+
+  // removeAttrs args ["extraConfig"]
+)
diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix
index 2191cc046e47..34e8f10dceee 100644
--- a/pkgs/os-specific/linux/kernel/manual-config.nix
+++ b/pkgs/os-specific/linux/kernel/manual-config.nix
@@ -126,7 +126,7 @@ stdenv.mkDerivation {
     runHook postConfigure
   '';
 
-  buildNativeInputs = [ perl bc nettools ];
+  nativeBuildInputs = [ perl bc nettools ];
 
   makeFlags = commonMakeFlags ++ [
    "INSTALLKERNEL=${installkernel stdenv.platform.kernelTarget}"
diff --git a/pkgs/os-specific/linux/kernel/perf.nix b/pkgs/os-specific/linux/kernel/perf.nix
index 01d989e75b10..8f2db1b15bd2 100644
--- a/pkgs/os-specific/linux/kernel/perf.nix
+++ b/pkgs/os-specific/linux/kernel/perf.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
   '';
 
   # perf refers both to newt and slang
-  buildNativeInputs = [ asciidoc xmlto docbook_xsl docbook_xml_dtd_45 libxslt flex bison ];
+  nativeBuildInputs = [ asciidoc xmlto docbook_xsl docbook_xml_dtd_45 libxslt flex bison ];
   buildInputs = [ elfutils python perl newt slang pkgconfig] ++
     stdenv.lib.optional withGtk gtk;
 
@@ -27,9 +27,9 @@ stdenv.mkDerivation {
   crossAttrs = {
     /* I don't want cross-python or cross-perl -
        I don't know if cross-python even works */
-    propagatedBuildInputs = [ elfutils.hostDrv newt.hostDrv ];
+    propagatedBuildInputs = [ elfutils.crossDrv newt.crossDrv ];
     makeFlags = "CROSS_COMPILE=${stdenv.cross.config}-";
-    elfutils = elfutils.hostDrv;
+    elfutils = elfutils.crossDrv;
   };
 
   meta = {
diff --git a/pkgs/os-specific/linux/klibc/default.nix b/pkgs/os-specific/linux/klibc/default.nix
index 781bb67edca5..42fd6097da0b 100644
--- a/pkgs/os-specific/linux/klibc/default.nix
+++ b/pkgs/os-specific/linux/klibc/default.nix
@@ -70,5 +70,5 @@ stdenv.mkDerivation {
     cp usr/dash/sh $dir/
   '';
   
-  buildNativeInputs = [ perl bison mktemp ];
+  nativeBuildInputs = [ perl bison mktemp ];
 }
diff --git a/pkgs/os-specific/linux/libcap/default.nix b/pkgs/os-specific/linux/libcap/default.nix
index 667fe63bba78..92f15c1ade3d 100644
--- a/pkgs/os-specific/linux/libcap/default.nix
+++ b/pkgs/os-specific/linux/libcap/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "03q50j6bg65cc501q87qh328ncav1i8qw2bjig99vxmmfx4bvsvk";
   };
   
-  buildNativeInputs = [ perl ];
+  nativeBuildInputs = [ perl ];
   propagatedBuildInputs = [ attr ];
 
   preConfigure = "cd libcap";
diff --git a/pkgs/os-specific/linux/libcgroup/default.nix b/pkgs/os-specific/linux/libcgroup/default.nix
index 0246f6729b10..6323d8c4f23a 100644
--- a/pkgs/os-specific/linux/libcgroup/default.nix
+++ b/pkgs/os-specific/linux/libcgroup/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ pam ];
 
-  buildNativeInputs = [ yacc flex ];
+  nativeBuildInputs = [ yacc flex ];
 
   meta = {
     description = "Library and tools to manage Linux's cgroup resource management system";
diff --git a/pkgs/os-specific/linux/mdadm/default.nix b/pkgs/os-specific/linux/mdadm/default.nix
index a88107ae73d6..1653c018ce14 100644
--- a/pkgs/os-specific/linux/mdadm/default.nix
+++ b/pkgs/os-specific/linux/mdadm/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   # Enable incremental activation of swraid arrays from udev.
   patches = [ ./udev.patch ];
 
-  buildNativeInputs = [ groff ];
+  nativeBuildInputs = [ groff ];
 
   preConfigure = "sed -e 's@/lib/udev@\${out}/lib/udev@' -e 's@ -Werror @ @' -i Makefile";
 
diff --git a/pkgs/os-specific/linux/net-tools/config.h b/pkgs/os-specific/linux/net-tools/config.h
index b060bea12c2c..dedaac6247d0 100644
--- a/pkgs/os-specific/linux/net-tools/config.h
+++ b/pkgs/os-specific/linux/net-tools/config.h
@@ -38,6 +38,7 @@
 #define HAVE_AFECONET 0
 #define HAVE_AFDECnet 0
 #define HAVE_AFASH 0
+#define HAVE_AFBLUETOOTH 0
 
 /* 
  * 
@@ -49,20 +50,23 @@
 #define HAVE_HWSLIP 1
 #define HAVE_HWPPP 1
 #define HAVE_HWTUNNEL 1
-#define HAVE_HWSTRIP 1
-#define HAVE_HWTR 1
+#define HAVE_HWSTRIP 0
+#define HAVE_HWTR 0
 #define HAVE_HWAX25 0
 #define HAVE_HWROSE 0
 #define HAVE_HWNETROM 1
 #define HAVE_HWX25 0
 #define HAVE_HWFR 1
-#define HAVE_HWSIT 0
+#define HAVE_HWSIT 1
 #define HAVE_HWFDDI 0
 #define HAVE_HWHIPPI 0
 #define HAVE_HWASH 0
 #define HAVE_HWHDLCLAPB 0
 #define HAVE_HWIRDA 1
 #define HAVE_HWEC 0
+#define HAVE_HWEC 0
+#define HAVE_HWEUI64 1
+#define HAVE_HWIB 1
 
 /* 
  * 
@@ -72,3 +76,4 @@
 #define HAVE_FW_MASQUERADE 0
 #define HAVE_IP_TOOLS 0
 #define HAVE_MII 0
+#define HAVE_SELINUX 0
diff --git a/pkgs/os-specific/linux/net-tools/default.nix b/pkgs/os-specific/linux/net-tools/default.nix
index 59af976a71b4..9386b50969fd 100644
--- a/pkgs/os-specific/linux/net-tools/default.nix
+++ b/pkgs/os-specific/linux/net-tools/default.nix
@@ -1,15 +1,13 @@
 { stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "net-tools-1.60";
-  
+stdenv.mkDerivation rec {
+  name = "net-tools-1.60_p20120127084908";
+
   src = fetchurl {
-    url = http://www.tazenda.demon.co.uk/phil/net-tools/net-tools-1.60.tar.bz2;
-    md5 = "888774accab40217dde927e21979c165";
+    url = "mirror://gentoo/distfiles/${name}.tar.xz";
+    sha256 = "408a51964aa142a4f45c4cffede2478abbd5630a7c7346ba0d3611059a2a3c94";
   };
 
-  patches = [ ./net-tools-labels.patch ];
-  
   preBuild =
     ''
       cp ${./config.h} config.h
diff --git a/pkgs/os-specific/linux/net-tools/net-tools-labels.patch b/pkgs/os-specific/linux/net-tools/net-tools-labels.patch
deleted file mode 100644
index 82c3a27d9c67..000000000000
--- a/pkgs/os-specific/linux/net-tools/net-tools-labels.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff -ruN net-tools-1.60/hostname.c net-tools-1.60-new/hostname.c
---- net-tools-1.60/hostname.c	2001-04-08 19:04:23.000000000 +0200
-+++ net-tools-1.60-new/hostname.c	2004-12-17 14:48:15.624174382 +0100
-@@ -98,6 +98,7 @@
- 	    fprintf(stderr, _("%s: name too long\n"), program_name);
- 	    break;
- 	default:
-+	    break;
- 	}
- 	exit(1);
-     };
-@@ -117,6 +118,7 @@
- 	    fprintf(stderr, _("%s: name too long\n"), program_name);
- 	    break;
- 	default:
-+	    break;
- 	}
- 	exit(1);
-     };
-@@ -174,6 +176,7 @@
- 	printf("%s\n", hp->h_name);
- 	break;
-     default:
-+	break;
-     }
- }
- 
-diff -ruN net-tools-1.60/lib/inet_sr.c net-tools-1.60-new/lib/inet_sr.c
---- net-tools-1.60/lib/inet_sr.c	2000-02-20 22:46:45.000000000 +0100
-+++ net-tools-1.60-new/lib/inet_sr.c	2004-12-17 14:37:15.416349441 +0100
-@@ -105,6 +105,7 @@
-     case 2:
-        isnet = 0; break;
-     default:
-+	break;
-     }
- 
-     /* Fill in the other fields. */
diff --git a/pkgs/os-specific/linux/pam/default.nix b/pkgs/os-specific/linux/pam/default.nix
index 7da03cf9cad9..43300425c004 100644
--- a/pkgs/os-specific/linux/pam/default.nix
+++ b/pkgs/os-specific/linux/pam/default.nix
@@ -1,24 +1,21 @@
-{ stdenv, fetchurl, flex, cracklib, libxcrypt }:
+{ stdenv, fetchurl, flex, cracklib }:
 
 stdenv.mkDerivation rec {
-  name = "linux-pam-1.1.1";
+  name = "linux-pam-1.1.6";
 
   src = fetchurl {
-    url = http://www.linux-pam.org/library/Linux-PAM-1.1.1.tar.bz2;
-    sha256 = "015r3xdkjpqwcv4lvxavq0nybdpxhfjycqpzbx8agqd5sywkx3b0";
+    url = https://fedorahosted.org/releases/l/i/linux-pam/Linux-PAM-1.1.6.tar.bz2;
+    sha256 = "1hlz2kqvbjisvwyicdincq7nz897b9rrafyzccwzqiqg53b8gf5s";
   };
 
-  buildNativeInputs = [ flex ];
-  buildInputs = [ cracklib ]
-    ++ stdenv.lib.optional
-      (!stdenv.isArm && stdenv.system != "mips64el-linux")
-      libxcrypt;
+  nativeBuildInputs = [ flex ];
+
+  buildInputs = [ cracklib ];
 
   crossAttrs = {
-    # Skip libxcrypt cross-building, as it fails for mips and arm
-    propagatedBuildInputs = [ flex.hostDrv cracklib.hostDrv ];
+    propagatedBuildInputs = [ flex.crossDrv cracklib.crossDrv ];
     preConfigure = preConfigure + ''
-      ar x ${flex.hostDrv}/lib/libfl.a
+      ar x ${flex.crossDrv}/lib/libfl.a
       mv libyywrap.o libyywrap-target.o
       ar x ${flex}/lib/libfl.a
       mv libyywrap.o libyywrap-host.o
@@ -27,13 +24,13 @@ stdenv.mkDerivation rec {
     '';
     postConfigure = ''
       sed -e "s@ $PWD/libyywrap-target.o@ $PWD/libyywrap-host.o@" -i doc/specs/Makefile
-    ''; 
+    '';
   };
 
   postInstall = ''
     mv -v $out/sbin/unix_chkpwd{,.orig}
     ln -sv /var/setuid-wrappers/unix_chkpwd $out/sbin/unix_chkpwd
-    '';
+  '';
 
   preConfigure = ''
     configureFlags="$configureFlags --includedir=$out/include/security"
diff --git a/pkgs/os-specific/linux/pam_unix2/default.nix b/pkgs/os-specific/linux/pam_unix2/default.nix
deleted file mode 100644
index c2eec4a2e4b6..000000000000
--- a/pkgs/os-specific/linux/pam_unix2/default.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ stdenv, fetchurl, pam, libxcrypt }:
-   
-stdenv.mkDerivation {
-  name = "pam_unix2-2.6";
-   
-  src = fetchurl {
-    url = ftp://ftp.suse.com/pub/people/kukuk/pam/pam_unix2/pam_unix2-2.6.tar.bz2;
-    sha256 = "067xnyd3q8ik73glxwyx1lydk4bgl78lzq44mnqqp4jrpnpd04ml";
-  };
-
-  buildInputs = [ pam ] ++ stdenv.lib.optional (!stdenv.isArm) libxcrypt;
-
-  meta = {
-    homepage = ftp://ftp.suse.com/pub/people/kukuk/pam/pam_unix2;
-  };
-}
diff --git a/pkgs/os-specific/linux/pwdutils/default.nix b/pkgs/os-specific/linux/pwdutils/default.nix
deleted file mode 100644
index 98b9ab707353..000000000000
--- a/pkgs/os-specific/linux/pwdutils/default.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{ stdenv, fetchurl, pam, gnutls, libnscd }:
-
-stdenv.mkDerivation rec {
-  name = "pwdutils-3.2.6";
-
-  src = fetchurl {
-    url = "mirror://kernel/linux/utils/net/NIS/${name}.tar.bz2";
-    sha256 = "1pyawvv9x0hiachn1mb257s6hm92dh1ykczgp7ik8z6jl020z3n7";
-  };
-
-  buildInputs = [ pam gnutls libnscd ];
-
-  patches = [ ./sys-stat-h.patch ];
-
-  postPatch =
-    '' for i in src/tst-*
-       do
-         sed -i "$i" -e's|/bin/bash|/bin/sh|g'
-       done
-    '';
-
-  configureFlags = "--disable-ldap --enable-gnutls --exec-prefix=$(out)";
-
-  # FIXME: The test suite seems to make assumptions that don't hold in Nix
-  # chroots.
-  doCheck = false;
-
-  meta = {
-    description = "Linux pwdutils, utilities to manage passwd information";
-
-    longDescription =
-      '' Pwdutils is a collection of utilities to manage the passwd
-         information stored in local files, NIS, NIS+ or LDAP and can replace
-         the shadow suite complete.
-      '';
-
-    license = "GPLv2";
-
-    maintainers = [ stdenv.lib.maintainers.ludo ];
-    platforms = stdenv.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/os-specific/linux/pwdutils/sys-stat-h.patch b/pkgs/os-specific/linux/pwdutils/sys-stat-h.patch
deleted file mode 100644
index 5b5bc8440d55..000000000000
--- a/pkgs/os-specific/linux/pwdutils/sys-stat-h.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-Fix builds with current glibc git, which appears to be stricter
-about <sys/stat.h>.
-
---- pwdutils-3.2.6/src/useradd.c~	2008-10-16 13:46:07.000000000 +0200
-+++ pwdutils-3.2.6/src/useradd.c	2010-04-26 11:24:43.000000000 +0200
-@@ -18,6 +18,7 @@
- #include "config.h"
- #endif
- 
-+#include <sys/stat.h>
- #include <time.h>
- #include <utmp.h>
- #include <fcntl.h>
-
---- pwdutils-3.2.6/src/userdel.c~	2006-11-29 14:20:39.000000000 +0100
-+++ pwdutils-3.2.6/src/userdel.c	2010-04-26 11:26:08.000000000 +0200
-@@ -18,6 +18,7 @@
- #include "config.h"
- #endif
- 
-+#include <sys/stat.h>
- #include <time.h>
- #include <utmp.h>
- #include <fcntl.h>
-
-diff -ubB --show-c-function pwdutils-3.2.6/src/usermod.c\~ pwdutils-3.2.6/src/usermod.c
---- pwdutils-3.2.6/src/usermod.c~	2006-11-29 14:20:41.000000000 +0100
-+++ pwdutils-3.2.6/src/usermod.c	2010-04-26 11:27:41.000000000 +0200
-@@ -18,6 +18,7 @@
- #include "config.h"
- #endif
- 
-+#include <sys/stat.h>
- #include <time.h>
- #include <utmp.h>
- #include <fcntl.h>
-
diff --git a/pkgs/os-specific/linux/qemu-kvm/default.nix b/pkgs/os-specific/linux/qemu-kvm/default.nix
index 14cedc0b5db9..6c2c8d57fc50 100644
--- a/pkgs/os-specific/linux/qemu-kvm/default.nix
+++ b/pkgs/os-specific/linux/qemu-kvm/default.nix
@@ -19,7 +19,10 @@ stdenv.mkDerivation rec {
       ncurses python glib libaio mesa texinfo perl
     ] ++ stdenv.lib.optionals spiceSupport [ spice_protocol spice ];
 
-  patchPhase = "patchShebangs .;" + stdenv.lib.optionalString spiceSupport ''
+  patches = [ ./fix-librt-check.patch ];
+
+  postPatch = "patchShebangs .;"
+    + stdenv.lib.optionalString spiceSupport ''
        for i in configure spice-qemu-char.c ui/spice-input.c ui/spice-core.c ui/qemu-spice.h; do
          substituteInPlace $i --replace '#include <spice.h>' '#include <spice/spice.h>'
        done
diff --git a/pkgs/os-specific/linux/qemu-kvm/fix-librt-check.patch b/pkgs/os-specific/linux/qemu-kvm/fix-librt-check.patch
new file mode 100644
index 000000000000..57de288723e8
--- /dev/null
+++ b/pkgs/os-specific/linux/qemu-kvm/fix-librt-check.patch
@@ -0,0 +1,72 @@
+commit 8bacde8d86a09699207d85d4bab06162aed18dc4
+Author: Natanael Copa <natanael.copa@gmail.com>
+Date:   Wed Sep 12 09:06:51 2012 +0000
+
+    configure: properly check if -lrt and -lm is needed
+    
+    Fixes build against uClibc.
+    
+    uClibc provides 2 versions of clock_gettime(), one with realtime
+    support and one without (this is so you can avoid linking in -lrt
+    unless actually needed). This means that the clock_gettime() don't
+    need -lrt. We still need it for timer_create() so we check for this
+    function in addition.
+    
+    We also need check if -lm is needed for isnan().
+    
+    Both -lm and -lrt are needed for libs_qga.
+    
+    Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+    Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
+
+diff --git a/configure b/configure
+index 7656c32..9ab13db 100755
+--- a/configure
++++ b/configure
+@@ -2671,17 +2671,44 @@ fi
+ 
+ 
+ ##########################################
++# Do we need libm
++cat > $TMPC << EOF
++#include <math.h>
++int main(void) { return isnan(sin(0.0)); }
++EOF
++if compile_prog "" "" ; then
++  :
++elif compile_prog "" "-lm" ; then
++  LIBS="-lm $LIBS"
++  libs_qga="-lm $libs_qga"
++else
++  echo
++  echo "Error: libm check failed"
++  echo
++  exit 1
++fi
++
++##########################################
+ # Do we need librt
++# uClibc provides 2 versions of clock_gettime(), one with realtime
++# support and one without. This means that the clock_gettime() don't
++# need -lrt. We still need it for timer_create() so we check for this
++# function in addition.
+ cat > $TMPC <<EOF
+ #include <signal.h>
+ #include <time.h>
+-int main(void) { return clock_gettime(CLOCK_REALTIME, NULL); }
++int main(void) {
++  timer_create(CLOCK_REALTIME, NULL, NULL);
++  return clock_gettime(CLOCK_REALTIME, NULL);
++}
+ EOF
+ 
+ if compile_prog "" "" ; then
+   :
+-elif compile_prog "" "-lrt" ; then
++# we need pthread for static linking. use previous pthread test result
++elif compile_prog "" "-lrt $pthread_lib" ; then
+   LIBS="-lrt $LIBS"
++  libs_qga="-lrt $libs_qga"
+ fi
+ 
+ if test "$darwin" != "yes" -a "$mingw32" != "yes" -a "$solaris" != yes -a \
diff --git a/pkgs/os-specific/linux/syslinux/default.nix b/pkgs/os-specific/linux/syslinux/default.nix
index 1287da097ca7..98917f943f51 100644
--- a/pkgs/os-specific/linux/syslinux/default.nix
+++ b/pkgs/os-specific/linux/syslinux/default.nix
@@ -1,16 +1,18 @@
-{ stdenv, fetchurl, nasm, perl }:
+{ stdenv, fetchurl, nasm, perl, libuuid }:
 
 stdenv.mkDerivation rec {
-  name = "syslinux-4.03";
-  
+  name = "syslinux-4.06";
+
   src = fetchurl {
     url = "mirror://kernel/linux/utils/boot/syslinux/4.xx/${name}.tar.bz2";
-    sha256 = "0f6s1cnibw6j0jh9bn5qsx3vsar9l1w9b3xfjkvzglgr4kinfmf6";
+    sha256 = "09md61npd5z64rv5s3knl4qsn2bqsn57irm5izk6snf46r77gdyv";
   };
 
   patches = [ ./perl-deps.patch ];
-  
-  buildInputs = [ nasm perl ];
+
+  buildInputs = [ nasm perl libuuid ];
+
+  enableParallelBuilding = true;
 
   preBuild =
     ''
@@ -18,4 +20,9 @@ stdenv.mkDerivation rec {
       substituteInPlace gpxe/src/Makefile --replace /usr/bin/perl $(type -P perl)
       makeFlagsArray=(BINDIR=$out/bin SBINDIR=$out/sbin LIBDIR=$out/lib INCDIR=$out/include DATADIR=$out/share MANDIR=$out/share/man PERL=perl)
     '';
+
+  meta = {
+    homepage = http://www.syslinux.org/;
+    description = "A lightweight bootloader";
+  };
 }
diff --git a/pkgs/os-specific/linux/uclibc/default.nix b/pkgs/os-specific/linux/uclibc/default.nix
index 1ad392ad6fab..e7cce315e8c6 100644
--- a/pkgs/os-specific/linux/uclibc/default.nix
+++ b/pkgs/os-specific/linux/uclibc/default.nix
@@ -33,8 +33,8 @@ let
     }
   '';
 
-  archMakeFlag = if (cross != null) then "ARCH=${cross.arch}" else "";
-  crossMakeFlag = if (cross != null) then "CROSS=${cross.config}-" else "";
+  archMakeFlag = if cross != null then "ARCH=${cross.arch}" else "";
+  crossMakeFlag = if cross != null then "CROSS=${cross.config}-" else "";
 
   # UCLIBC_SUSV4_LEGACY defines 'tmpnam', needed for gcc libstdc++ builds.
   nixConfig = ''
@@ -74,7 +74,7 @@ stdenv.mkDerivation {
   '';
 
   # Cross stripping hurts.
-  dontStrip = if (cross != null) then true else false;
+  dontStrip = cross != null;
 
   makeFlags = [ crossMakeFlag "VERBOSE=1" ];
 
diff --git a/pkgs/os-specific/linux/udisks/default.nix b/pkgs/os-specific/linux/udisks/default.nix
index b46efd468745..b53af52755fa 100644
--- a/pkgs/os-specific/linux/udisks/default.nix
+++ b/pkgs/os-specific/linux/udisks/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
       lvm2 libatasmart intltool libuuid libxslt docbook_xsl
     ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   configureFlags = "--localstatedir=/var --enable-lvm2";
 
diff --git a/pkgs/os-specific/linux/upower/default.nix b/pkgs/os-specific/linux/upower/default.nix
index e406681060f6..8f244c3d6454 100644
--- a/pkgs/os-specific/linux/upower/default.nix
+++ b/pkgs/os-specific/linux/upower/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     [ dbus_glib polkit intltool libxslt docbook_xsl udev libusb1 ]
     ++ stdenv.lib.optional useSystemd systemd;
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   configureFlags =
     [ "--with-backend=linux" "--localstatedir=/var" ]
diff --git a/pkgs/os-specific/linux/util-linux/default.nix b/pkgs/os-specific/linux/util-linux/default.nix
index 35d01739a2a4..d42424e6fc86 100644
--- a/pkgs/os-specific/linux/util-linux/default.nix
+++ b/pkgs/os-specific/linux/util-linux/default.nix
@@ -1,17 +1,13 @@
-{ stdenv, fetchurl, zlib, ncurses ? null, perl ? null }:
+{ stdenv, fetchurl, zlib, ncurses ? null, perl ? null, pam }:
 
 stdenv.mkDerivation rec {
-  name = "util-linux-2.20.1";
+  name = "util-linux-2.22.2";
 
   src = fetchurl {
-    # This used to be mirror://kernel/linux/utils/util-linux, but it
-    # disappeared in the kernel.org meltdown.
-    url = "mirror://gentoo/distfiles/${name}.tar.bz2";
-    sha256 = "1q5vjcvw4f067c63vj2n3xggvk5prm11571x6vnqiav47vdbqvni";
+    url = "http://www.kernel.org/pub/linux/utils/util-linux/v2.22/${name}.tar.bz2";
+    sha256 = "0vf3ifb45gr4cd27pmmxk8y5b3r0920mv16fv0vfwz5705xa2qvl";
   };
 
-  patches = [ ./linux-specific-header.patch ];
-
   crossAttrs = {
     # Work around use of `AC_RUN_IFELSE'.
     preConfigure = "export scanf_cv_type_modifier=ms";
@@ -24,13 +20,24 @@ stdenv.mkDerivation rec {
   # --enable-libmount-mount  fixes the behaviour being /etc/mtab a symlink to /proc/monunts
   #     http://pl.digipedia.org/usenet/thread/19513/1924/
   configureFlags = ''
-    --disable-use-tty-group
     --enable-write
+    --enable-last
+    --enable-mesg
+    --enable-ddate
+    --disable-use-tty-group
     --enable-fs-paths-default=/var/setuid-wrappers:/var/run/current-system/sw/sbin:/sbin
-    --enable-libmount-mount
     ${if ncurses == null then "--without-ncurses" else ""}
   '';
 
-  buildInputs = [ zlib ] ++ stdenv.lib.optional (ncurses != null) ncurses
-             ++ stdenv.lib.optional (perl != null) perl;
+  buildInputs =
+    [ zlib pam ]
+    ++ stdenv.lib.optional (ncurses != null) ncurses
+    ++ stdenv.lib.optional (perl != null) perl;
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = http://www.kernel.org/pub/linux/utils/util-linux/;
+    description = "A set of system utilities for Linux";
+  };
 }
diff --git a/pkgs/os-specific/linux/util-linux/linux-specific-header.patch b/pkgs/os-specific/linux/util-linux/linux-specific-header.patch
deleted file mode 100644
index 8d0b57dea3fb..000000000000
--- a/pkgs/os-specific/linux/util-linux/linux-specific-header.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-The <asm/param.h> header is Linux-only and breaks GNU/Hurd builds.
-
---- util-linux-2.20.1/term-utils/write.c	2012-03-07 23:06:14.000000000 +0100
-+++ util-linux-2.20.1/term-utils/write.c	2012-03-07 23:06:19.000000000 +0100
-@@ -57,7 +57,9 @@
- #include <sys/param.h>
- #include <sys/stat.h>
- #include <paths.h>
--#include <asm/param.h>
-+#ifdef __linux__
-+# include <asm/param.h>
-+#endif
- #include <getopt.h>
- #include "c.h"
- #include "carefulputc.h"
-
diff --git a/pkgs/os-specific/linux/wpa_supplicant/default.nix b/pkgs/os-specific/linux/wpa_supplicant/default.nix
index 3b77c7104ff9..b3d94e26396e 100644
--- a/pkgs/os-specific/linux/wpa_supplicant/default.nix
+++ b/pkgs/os-specific/linux/wpa_supplicant/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ openssl dbus_libs libnl ]
     ++ lib.optional readlineSupport readline;
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   patches =
     [ (fetchurl {
diff --git a/pkgs/os-specific/linux/wpa_supplicant/gui.nix b/pkgs/os-specific/linux/wpa_supplicant/gui.nix
index 12ec08361a67..29591bf0335c 100644
--- a/pkgs/os-specific/linux/wpa_supplicant/gui.nix
+++ b/pkgs/os-specific/linux/wpa_supplicant/gui.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation {
 
   buildInputs = [ qt4 ];
 
-  buildNativeInputs = [ inkscape ];
+  nativeBuildInputs = [ inkscape ];
 
   prePatch = "cd wpa_supplicant/wpa_gui-qt4";
 
diff --git a/pkgs/os-specific/windows/jom/default.nix b/pkgs/os-specific/windows/jom/default.nix
index 2cdd63cc0ebb..8f8477d1864a 100644
--- a/pkgs/os-specific/windows/jom/default.nix
+++ b/pkgs/os-specific/windows/jom/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [ qt48 ];
-  buildNativeInputs = [ flex /*cmake*/ ];
+  nativeBuildInputs = [ flex /*cmake*/ ];
 
   QTDIR = qt48;
   configurePhase = ''
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
   
   crossAttrs = {
     # cmakeFlags = "-DWIN32=1 -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_RC_COMPILER=${stdenv.cross.config}-windres";
-    QTDIR = qt48.hostDrv;
+    QTDIR = qt48.crossDrv;
     preBuild = ''
       export NIX_CROSS_CFLAGS_COMPILE=-fpermissive
     '';
diff --git a/pkgs/os-specific/windows/w32api/default.nix b/pkgs/os-specific/windows/w32api/default.nix
index a4f4245125d9..2a5af71b5eca 100644
--- a/pkgs/os-specific/windows/w32api/default.nix
+++ b/pkgs/os-specific/windows/w32api/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation ({
     sha256 = "09rhnl6zikmdyb960im55jck0rdy5z9nlg3akx68ixn7khf3j8wb";
   };
 
-  buildNativeInputs = [ xz ];
+  nativeBuildInputs = [ xz ];
 
 } //
 (if onlyHeaders then {
diff --git a/pkgs/servers/dico/default.nix b/pkgs/servers/dico/default.nix
index ac897554ce20..d711d8a75ca5 100644
--- a/pkgs/servers/dico/default.nix
+++ b/pkgs/servers/dico/default.nix
@@ -1,16 +1,16 @@
 { fetchurl, stdenv, libtool, gettext, zlib, readline, gsasl
-, guile, python }:
+, guile, python, pcre }:
 
 stdenv.mkDerivation rec {
-  name = "dico-2.1";
+  name = "dico-2.2";
 
   src = fetchurl {
-    url = "mirror://gnu/dico/${name}.tar.gz";
-    sha256 = "0cs4jxnz6g5xqrhkbnycn7jl9fs8jfjh33vza7i68m8qmjwx2vza";
+    url = "mirror://gnu/dico/${name}.tar.xz";
+    sha256 = "04pjks075x20d19l623mj50bw64g8i41s63z4kzzqcbg9qg96x64";
   };
 
   # XXX: Add support for GNU SASL.
-  buildInputs = [ libtool gettext zlib readline gsasl guile python ];
+  buildInputs = [ libtool gettext zlib readline gsasl guile python pcre ];
 
   doCheck = true;
 
diff --git a/pkgs/servers/firebird/default.nix b/pkgs/servers/firebird/default.nix
index ebacc84e8c6e..12dfc20e7360 100644
--- a/pkgs/servers/firebird/default.nix
+++ b/pkgs/servers/firebird/default.nix
@@ -21,9 +21,9 @@
 
 */
 
-stdenv.mkDerivation {
-
-  name = "firebird-2.3.1";
+stdenv.mkDerivation rec {
+  version = "2.5.2";
+  name = "firebird-${version}";
 
   configureFlags =
     [ "--with-serivec-port=${builtins.toString port}"
@@ -34,8 +34,8 @@ stdenv.mkDerivation {
     ++ (stdenv.lib.optional superServer "--enable-superserver=true");
 
   src = fetchurl {
-    url = mirror://sourceforge/firebird/files/2.1.3-Release/Firebird-2.1.3.18185-0.tar.bz2;
-    sha256 = "0a7xy016r0j1f97cf2lww8fkz1vlvvghrgv9ffz2i6f7ppacniw0";
+    url = "mirror://sourceforge/firebird/Firebird-${version}.26539-0.tar.bz2";
+    sha256 = "1j5bcfl35hr6i4lcd08zls19bal2js3ar16gnwkzbhwxkxbyb43b";
   };
 
   buildInputs = [libedit icu];
diff --git a/pkgs/servers/gpm/default.nix b/pkgs/servers/gpm/default.nix
index cb664eac253c..7c16153e9b53 100644
--- a/pkgs/servers/gpm/default.nix
+++ b/pkgs/servers/gpm/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "1990i19ddzn8gg5xwm53yn7d0mya885f48sd2hyvr7dvzyaw7ch8";
   };
 
-  buildNativeInputs = [ flex bison ];
+  nativeBuildInputs = [ flex bison ];
   buildInputs = [ ncurses ];
 
   preConfigure =
diff --git a/pkgs/servers/gpsd/default.nix b/pkgs/servers/gpsd/default.nix
index 31c9deaf3af0..25051167ca51 100644
--- a/pkgs/servers/gpsd/default.nix
+++ b/pkgs/servers/gpsd/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "1bjhyjg561kwp6zc2wg58njdvpnsj5yaa2slz8g3ga1176jl68w3";
   };
 
-  buildNativeInputs = [ makeWrapper pkgconfig docbook_xml_dtd_412 docbook_xsl
+  nativeBuildInputs = [ makeWrapper pkgconfig docbook_xml_dtd_412 docbook_xsl
     xmlto bc pythonPackages.wrapPython ];
 
   pythonPath = [ pythonPackages.curses ];
diff --git a/pkgs/servers/monitoring/net-snmp/default.nix b/pkgs/servers/monitoring/net-snmp/default.nix
index 190c48ba56ed..a9d1578495ab 100644
--- a/pkgs/servers/monitoring/net-snmp/default.nix
+++ b/pkgs/servers/monitoring/net-snmp/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, file, openssl, perl }:
 
 stdenv.mkDerivation rec {
-  name = "net-snmp-5.7.1";
+  name = "net-snmp-5.7.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/net-snmp/${name}.tar.gz";
-    sha256 = "07qqdgs3flraqccwry4a4x23jcg6vfi0rqj7clsibdv51ijwjwbw";
+    sha256 = "05mqrv22c65405d6v91cqf4hvczkkvvyy5lsxw8h8g0zrjs33v89";
   };
 
   preConfigure =
@@ -13,6 +13,9 @@ stdenv.mkDerivation rec {
       perlversion=$(perl -e 'use Config; print $Config{version};')
       perlarchname=$(perl -e 'use Config; print $Config{archname};')
       installFlags="INSTALLSITEARCH=$out/lib/perl5/site_perl/$perlversion/$perlarchname INSTALLSITEMAN3DIR=$out/share/man/man3"
+
+      # http://comments.gmane.org/gmane.network.net-snmp.user/32434
+      substituteInPlace "man/Makefile.in" --replace 'grep -vE' '@EGREP@ -v'
     '';
 
   configureFlags =
diff --git a/pkgs/servers/nosql/mongodb/default.nix b/pkgs/servers/nosql/mongodb/default.nix
index ce664972037e..345234ba25e8 100644
--- a/pkgs/servers/nosql/mongodb/default.nix
+++ b/pkgs/servers/nosql/mongodb/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     sha256 = "12v0cpq9j2gmagr9pbw08karqwqgl4j9r223w7x7sx5cfvj2cih8";
   };
 
-  buildNativeInputs = [ scons which ];
+  nativeBuildInputs = [ scons which ];
 
   patches = [ installerPatch ];
 
diff --git a/pkgs/servers/prayer/default.nix b/pkgs/servers/prayer/default.nix
index c67d2c8a010a..f105920ab81e 100644
--- a/pkgs/servers/prayer/default.nix
+++ b/pkgs/servers/prayer/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ openssl db4 zlib uwimap htmlTidy pam ];
-  buildNativeInputs = [ perl ];
+  nativeBuildInputs = [ perl ];
 
   NIX_LDFLAGS = "-lpam";
 
diff --git a/pkgs/servers/shishi/default.nix b/pkgs/servers/shishi/default.nix
index 6779ac9e0c3a..db6f94d38266 100644
--- a/pkgs/servers/shishi/default.nix
+++ b/pkgs/servers/shishi/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "13c6w9rpaqb3am65nrn86byvmll5r78pld2vb0i68491vww4fzlx";
   };
 
+  patches = [ ./no-gets.patch ];
+
   buildInputs = [ libtasn1 libgcrypt gnutls ] ;
 
   doCheck = true;
@@ -17,14 +19,14 @@ stdenv.mkDerivation rec {
 
     longDescription =
       '' GNU Shishi is an implementation of the Kerberos 5 network
-	 authentication system, as specified in RFC 4120.  Shishi can be
-	 used to authenticate users in distributed systems.
-
-	 Shishi contains a library (`libshishi') that can be used by
-	 application developers to add support for Kerberos 5.  Shishi
-	 contains a command line utility (1shishi') that is used by
-	 users to acquire and manage tickets (and more).  The server
-	 side, a Key Distribution Center, is implemented by `shishid'.
+         authentication system, as specified in RFC 4120.  Shishi can be
+         used to authenticate users in distributed systems.
+
+         Shishi contains a library (`libshishi') that can be used by
+         application developers to add support for Kerberos 5.  Shishi
+         contains a command line utility (1shishi') that is used by
+         users to acquire and manage tickets (and more).  The server
+         side, a Key Distribution Center, is implemented by `shishid'.
       '';
 
     homepage = http://www.gnu.org/software/shishi/;
diff --git a/pkgs/servers/shishi/no-gets.patch b/pkgs/servers/shishi/no-gets.patch
new file mode 100644
index 000000000000..12137204f455
--- /dev/null
+++ b/pkgs/servers/shishi/no-gets.patch
@@ -0,0 +1,20 @@
+diff --git a/gl/stdio.in.h b/gl/stdio.in.h
+index 06d9780..fa04a10 100644
+--- a/gl/stdio.in.h
++++ b/gl/stdio.in.h
+@@ -713,10 +713,13 @@ _GL_CXXALIAS_SYS (gets, char *, (char *s));
+ # endif
+ _GL_CXXALIASWARN (gets);
+ /* It is very rare that the developer ever has full control of stdin,
+-   so any use of gets warrants an unconditional warning.  Assume it is
+-   always declared, since it is required by C89.  */
++   so any use of gets warrants an unconditional warning; besides C11
++   removed it.  */
++#ifdef gets
++#undef gets
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+ #endif
++#endif
+ 
+ 
+ #if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@
diff --git a/pkgs/servers/unfs3/default.nix b/pkgs/servers/unfs3/default.nix
index e59023c905e9..96073645cc1c 100644
--- a/pkgs/servers/unfs3/default.nix
+++ b/pkgs/servers/unfs3/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "076zkyqkn56q0a8n3h65n1a68fknk4hrrp6mbhajq5s1wp5248j8";
   };
 
-  buildNativeInputs = [ flex bison ];
+  nativeBuildInputs = [ flex bison ];
 
   configureFlags = [ "--disable-shared" ];
 
diff --git a/pkgs/servers/x11/xorg/builder.sh b/pkgs/servers/x11/xorg/builder.sh
index bb776a5051bd..6ba50d245075 100644
--- a/pkgs/servers/x11/xorg/builder.sh
+++ b/pkgs/servers/x11/xorg/builder.sh
@@ -26,7 +26,7 @@ postInstall() {
             for p in $nativePkgs; do
                 if test -e $p/lib/pkgconfig/$r.pc; then
                     echo "  found requisite $r in $p"
-                    propagatedBuildNativeInputs="$propagatedBuildNativeInputs $p"
+                    propagatedNativeBuildInputs="$propagatedNativeBuildInputs $p"
                 fi
             done
         fi
@@ -34,7 +34,7 @@ postInstall() {
 
     mkdir -p "$out/nix-support"
     echo "$propagatedBuildInputs" > "$out/nix-support/propagated-build-inputs"
-    echo "$propagatedBuildNativeInputs" > "$out/nix-support/propagated-build-native-inputs"
+    echo "$propagatedNativeBuildInputs" > "$out/nix-support/propagated-native-build-inputs"
 }
 
 
diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix
index 6d231e2083e2..cf8c47374710 100644
--- a/pkgs/servers/x11/xorg/overrides.nix
+++ b/pkgs/servers/x11/xorg/overrides.nix
@@ -37,18 +37,18 @@ in
     # I should use: builtins.unsafeDiscardStringContext
     buildInputs = [args.pkgconfig args.libxslt xorg.libpthreadstubs /*xorg.python*/
         xorg.libXau xorg.xcbproto xorg.libXdmcp ] ++ [ xorg.xproto ];
-    buildNativeInputs = [ args.python ];
+    nativeBuildInputs = [ args.python ];
   };
 
   xcbproto = attrs : attrs // {
     # I only remove python from the original.
     buildInputs = [args.pkgconfig  /*xorg.python*/ ];
-    buildNativeInputs = [ args.python ];
+    nativeBuildInputs = [ args.python ];
   };
 
   pixman = attrs : attrs // {
     buildInputs = [ args.pkgconfig ];
-    buildNativeInputs = [ args.perl ];
+    nativeBuildInputs = [ args.perl ];
   };
 
   libpciaccess = attrs : attrs // {
@@ -261,7 +261,7 @@ in
   };
 
   twm = attrs: attrs // {
-    buildNativeInputs = [args.bison args.flex];
+    nativeBuildInputs = [args.bison args.flex];
   };
 
   xbacklight = attrs: attrs // {
diff --git a/pkgs/shells/bash/bash-4.2-patches.nix b/pkgs/shells/bash/bash-4.2-patches.nix
index 8d2a74e95b0b..52392f4b32c6 100644
--- a/pkgs/shells/bash/bash-4.2-patches.nix
+++ b/pkgs/shells/bash/bash-4.2-patches.nix
@@ -25,4 +25,22 @@ patch: [
 (patch "022" "0sswp2c63pclvdwi2hbkwbqf9ysmiw6mmi0qinl2pkgqyyfzdkcx")
 (patch "023" "1gzhcmwj0741libjqwln4r4h9k7lskprc4q87hvqgj56y6a17hax")
 (patch "024" "1rlrdfk67g8as6pr076ldhjhnkd2c86mb4ci18fjivivsfyjdj4r")
+(patch "025" "05am4w789v630x0a6a9wrxhvrjvs73fjn68i55qdand5sxpn9c0d")
+(patch "026" "1li3sd3hpdxhh257hdwzzn2g18m4ksflx6crqswv9qxwmgx0rsg7")
+(patch "027" "0hpdywvny6vihls2qqlwwxkvps7q710vp6szq117zhgwarr6n7qc")
+(patch "028" "0ypdn590h5f8y7kvk2sk93vcjbh5vrcwsaasvprsm0ds77g2chi0")
+(patch "029" "10gm73rvfhr42v7i70qqc56wl8l459i2frs6ifrcsnmw2w48rc6h")
+(patch "030" "1bmg8iz95jijxp89czwaw9msppgj220233nbrn66s4qsb5k46n8j")
+(patch "031" "1yfrz093hghhlrj8na48dzc8v6ax34mj5i0h6l3bnpvp6i6qrwsm")
+(patch "032" "1vci8xh1r8f59j6d95iljw9i555jm1fm2lssm1ycprdivdivba73")
+(patch "033" "0js38r5gmlyz70zjfw0m2j08h26c3vma2vy8gbsb5pwzss82glgm")
+(patch "034" "1f213qpvqnv2bm79a01r44xjlwk65483cxvw6kgwx28k20rg7h81")
+(patch "035" "1pvqxpm7m1y7ab5srq3s7r095z34nbcr62gz6nb89d1qn1iy9kff")
+(patch "036" "1yma0m9wrk6a15x36libb8a0cz7gmzihv6lvmrrd5i1ar4dklagy")
+(patch "037" "0x0niqv7zwqvz4l8n9nivhk0g0036jh5h3vlkil3095vsgfqqmy7")
+(patch "038" "0mvdpsxxs4bn5zvsm04yfsplhcrv6y0avpwilj5yasr0vwdsijdq")
+(patch "039" "148pkj5s73ym0jhpr8d3z5vfily4chm0am4yms4506ijc0531ygl")
+(patch "040" "0v5a98ybibwsd4iyh18gy0kc51mx8qn9w2wfpjaiycn7yg5gjrdj")
+(patch "041" "1szmm8xv41hvbzgxfwrj6dg85wa7zy3781nnil428rlzpm8ikk05")
+(patch "042" "017kpdqy6v9sgi2a931wyzpix86n9mkalpm6n9cb45v58lgmraps")
 ]
diff --git a/pkgs/shells/bash/default.nix b/pkgs/shells/bash/default.nix
index 98fe43b0122a..0bad70e9eefa 100644
--- a/pkgs/shells/bash/default.nix
+++ b/pkgs/shells/bash/default.nix
@@ -44,10 +44,14 @@ stdenv.mkDerivation rec {
   configureFlags = baseConfigureFlags;
 
   # Note: Bison is needed because the patches above modify parse.y.
-  buildNativeInputs = [bison]
+  nativeBuildInputs = [bison]
     ++ stdenv.lib.optional (texinfo != null) texinfo
     ++ stdenv.lib.optional interactive readline;
 
+  # Bash randomly fails to build because of a recursive invocation to
+  # build `version.h'.
+  enableParallelBuilding = false;
+
   postInstall = ''
     # Add an `sh' -> `bash' symlink.
     ln -s bash "$out/bin/sh"
diff --git a/pkgs/stdenv/adapters.nix b/pkgs/stdenv/adapters.nix
index fb0eed51d56d..662f3307b463 100644
--- a/pkgs/stdenv/adapters.nix
+++ b/pkgs/stdenv/adapters.nix
@@ -20,7 +20,7 @@ rec {
   # for other dependencies.
   overrideInStdenv = stdenv: pkgs: stdenv //
     { mkDerivation = args: stdenv.mkDerivation (args //
-        { buildInputs = (if args ? buildInputs then args.buildInputs else []) ++ pkgs; }
+        { buildInputs = args.buildInputs or [] ++ pkgs; }
       );
     };
 
@@ -48,11 +48,11 @@ rec {
         # These are added *after* the command-line flags, so we'll
         # always optimise for size.
         NIX_CFLAGS_COMPILE =
-          (if args ? NIX_CFLAGS_COMPILE then args.NIX_CFLAGS_COMPILE else "")
+          args.NIX_CFLAGS_COMPILE or ""
           + " -Os -s -D_BSD_SOURCE=1";
 
         configureFlags =
-          (if args ? configureFlags then args.configureFlags else "")
+          args.configureFlags or ""
           + " --disable-shared"; # brrr...
 
         NIX_GCC = import ../build-support/gcc-wrapper {
@@ -75,12 +75,10 @@ rec {
         # These are added *after* the command-line flags, so we'll
         # always optimise for size.
         NIX_CFLAGS_COMPILE =
-          (if args ? NIX_CFLAGS_COMPILE then args.NIX_CFLAGS_COMPILE else "")
-          + " -Os -s";
+          args.NIX_CFLAGS_COMPILE or "" + " -Os -s";
 
         configureFlags =
-          (if args ? configureFlags then args.configureFlags else "")
-          + " --disable-shared"; # brrr...
+          args.configureFlags or "" + " --disable-shared"; # brrr...
 
         NIX_GCC = runCommand "klibc-wrapper" {} ''
           mkdir -p $out/bin
@@ -100,9 +98,8 @@ rec {
   makeStaticBinaries = stdenv: stdenv //
     { mkDerivation = args: stdenv.mkDerivation (args // {
         NIX_CFLAGS_LINK = "-static";
-
         configureFlags =
-          (if args ? configureFlags then toString args.configureFlags else "")
+          toString args.configureFlags or ""
           + " --disable-shared"; # brrr...
       });
       isStatic = true;
@@ -115,7 +112,7 @@ rec {
     { mkDerivation = args: stdenv.mkDerivation (args // {
         dontDisableStatic = true;
         configureFlags =
-          (if args ? configureFlags then toString args.configureFlags else "")
+          toString args.configureFlags or ""
           + " --enable-static --disable-shared";
       });
     } // {inherit fetchurl;};
@@ -124,62 +121,60 @@ rec {
   # Return a modified stdenv that adds a cross compiler to the
   # builds.
   makeStdenvCross = stdenv: cross: binutilsCross: gccCross: stdenv //
-    { mkDerivation = {name ? "", buildInputs ? [], buildNativeInputs ? [],
-            propagatedBuildInputs ? [], propagatedBuildNativeInputs ? [],
-            selfBuildNativeInput ? false, ...}@args: let
+    { mkDerivation = {name ? "", buildInputs ? [], nativeBuildInputs ? [],
+            propagatedBuildInputs ? [], propagatedNativeBuildInputs ? [],
+            selfNativeBuildInput ? false, ...}@args: let
 
             # *BuildInputs exists temporarily as another name for
             # *HostInputs.
 
             # In nixpkgs, sometimes 'null' gets in as a buildInputs element,
             # and we handle that through isAttrs.
-            getBuildDrv = drv : if (builtins.isAttrs drv && drv ? buildDrv) then drv.buildDrv else drv;
-            getHostDrv = drv : if (builtins.isAttrs drv && drv ? hostDrv) then drv.hostDrv else drv;
-            buildNativeInputsDrvs = map (getBuildDrv) buildNativeInputs;
-            buildInputsDrvs = map (getHostDrv) buildInputs;
-            buildInputsDrvsAsBuildInputs = map (getBuildDrv) buildInputs;
-            propagatedBuildInputsDrvs = map (getHostDrv) (propagatedBuildInputs);
-            propagatedBuildNativeInputsDrvs = map (getBuildDrv)
-                (propagatedBuildNativeInputs);
-
-            # The base stdenv already knows that buildNativeInputs and
+            getNativeDrv = drv: drv.nativeDrv or drv;
+            getCrossDrv = drv: drv.crossDrv or drv;
+            nativeBuildInputsDrvs = map getNativeDrv nativeBuildInputs;
+            buildInputsDrvs = map getCrossDrv buildInputs;
+            buildInputsDrvsAsBuildInputs = map getNativeDrv buildInputs;
+            propagatedBuildInputsDrvs = map getCrossDrv propagatedBuildInputs;
+            propagatedNativeBuildInputsDrvs = map getNativeDrv propagatedNativeBuildInputs;
+
+            # The base stdenv already knows that nativeBuildInputs and
             # buildInputs should be built with the usual gcc-wrapper
             # And the same for propagatedBuildInputs.
-            buildDrv = stdenv.mkDerivation args;
+            nativeDrv = stdenv.mkDerivation args;
 
             # Temporary expression until the cross_renaming, to handle the
             # case of pkgconfig given as buildInput, but to be used as
-            # buildNativeInput.
-            hostAsBuildDrv = drv: builtins.unsafeDiscardStringContext
-                drv.buildDrv.drvPath == builtins.unsafeDiscardStringContext
-                drv.hostDrv.drvPath;
+            # nativeBuildInput.
+            hostAsNativeDrv = drv:
+                builtins.unsafeDiscardStringContext drv.nativeDrv.drvPath
+                == builtins.unsafeDiscardStringContext drv.crossDrv.drvPath;
             buildInputsNotNull = stdenv.lib.filter
-                (drv: builtins.isAttrs drv && drv ? buildDrv) buildInputs;
-            nativeInputsFromBuildInputs = stdenv.lib.filter (hostAsBuildDrv) buildInputsNotNull;
+                (drv: builtins.isAttrs drv && drv ? nativeDrv) buildInputs;
+            nativeInputsFromBuildInputs = stdenv.lib.filter hostAsNativeDrv buildInputsNotNull;
 
-            # We should overwrite the input attributes in hostDrv, to overwrite
+            # We should overwrite the input attributes in crossDrv, to overwrite
             # the defaults for only-native builds in the base stdenv
-            hostDrv = if (cross == null) then buildDrv else
+            crossDrv = if cross == null then nativeDrv else
                 stdenv.mkDerivation (args // {
                     name = name + "-" + cross.config;
-                    buildNativeInputs = buildNativeInputsDrvs
+                    nativeBuildInputs = nativeBuildInputsDrvs
                       ++ nativeInputsFromBuildInputs
                       ++ [ gccCross binutilsCross ] ++
-                      stdenv.lib.optional selfBuildNativeInput buildDrv;
+                      stdenv.lib.optional selfNativeBuildInput nativeDrv;
 
                     # Cross-linking dynamic libraries, every buildInput should
                     # be propagated because ld needs the -rpath-link to find
                     # any library needed to link the program dynamically at
                     # loader time. ld(1) explains it.
                     buildInputs = [];
-                    propagatedBuildInputs = propagatedBuildInputsDrvs ++
-                      buildInputsDrvs;
-                    propagatedBuildNativeInputs = propagatedBuildNativeInputsDrvs;
+                    propagatedBuildInputs = propagatedBuildInputsDrvs ++ buildInputsDrvs;
+                    propagatedNativeBuildInputs = propagatedNativeBuildInputsDrvs;
 
                     crossConfig = cross.config;
-                } // (if args ? crossAttrs then args.crossAttrs else {}));
-        in buildDrv // {
-            inherit hostDrv buildDrv;
+                } // args.crossAttrs or {});
+        in nativeDrv // {
+          inherit crossDrv nativeDrv;
         };
     } // {
       inherit cross gccCross binutilsCross;
@@ -297,14 +292,9 @@ rec {
           pkg = stdenv.mkDerivation args;
           printDrvPath = val: let
             drvPath = builtins.unsafeDiscardStringContext pkg.drvPath;
-            license =
-              if pkg ? meta && pkg.meta ? license then
-                pkg.meta.license
-              else
-                null;
+            license = pkg.meta.license or null;
           in
-            builtins.trace "@:drv:${toString drvPath}:${builtins.toString license}:@"
-              val;
+            builtins.trace "@:drv:${toString drvPath}:${builtins.toString license}:@" val;
         in pkg // {
           outPath = printDrvPath pkg.outPath;
           drvPath = printDrvPath pkg.drvPath;
@@ -333,15 +323,12 @@ rec {
           pkg = stdenv.mkDerivation args;
           drv = builtins.unsafeDiscardStringContext pkg.drvPath;
           license =
-            if pkg ? meta && pkg.meta ? license then
-              pkg.meta.license
-            else if pkg ? outputHash then
+            pkg.meta.license or
               # Fixed-output derivations such as source tarballs usually
               # don't have licensing information, but that's OK.
-              null
-            else
-              builtins.trace
-                "warning: ${drv} lacks licensing information" null;
+              (pkg.outputHash or
+                (builtins.trace
+                  "warning: ${drv} lacks licensing information" null));
 
           validate = arg:
             if licensePred license then arg
diff --git a/pkgs/stdenv/default.nix b/pkgs/stdenv/default.nix
index 67000670cd1b..ca90b46192e3 100644
--- a/pkgs/stdenv/default.nix
+++ b/pkgs/stdenv/default.nix
@@ -56,6 +56,7 @@ rec {
     if stdenvType == "i686-linux" then stdenvLinux else
     if stdenvType == "x86_64-linux" then stdenvLinux else
     if stdenvType == "armv5tel-linux" then stdenvLinux else
+    if stdenvType == "armv6l-linux" then stdenvLinux else
     if stdenvType == "armv7l-linux" then stdenvLinux else
     if stdenvType == "mips64el-linux" then stdenvLinux else
     if stdenvType == "powerpc-linux" then /* stdenvLinux */ stdenvNative else
diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix
index facea368c051..26f410cee117 100644
--- a/pkgs/stdenv/generic/default.nix
+++ b/pkgs/stdenv/generic/default.nix
@@ -49,9 +49,9 @@ let
                 (removeAttrs attrs ["meta" "passthru" "crossAttrs"])
                 // (let
                   buildInputs = attrs.buildInputs or [];
-                  buildNativeInputs = attrs.buildNativeInputs or [];
+                  nativeBuildInputs = attrs.nativeBuildInputs or [];
                   propagatedBuildInputs = attrs.propagatedBuildInputs or [];
-                  propagatedBuildNativeInputs = attrs.propagatedBuildNativeInputs or [];
+                  propagatedNativeBuildInputs = attrs.propagatedNativeBuildInputs or [];
                   crossConfig = attrs.crossConfig or null;
                 in
                 {
@@ -59,15 +59,16 @@ let
                   args = attrs.args or ["-e" (attrs.builder or ./default-builder.sh)];
                   stdenv = result;
                   system = result.system;
+                  userHook = config.stdenv.userHook or null;
 
                   # Inputs built by the cross compiler.
                   buildInputs = lib.optionals (crossConfig != null) buildInputs;
                   propagatedBuildInputs = lib.optionals (crossConfig != null)
                       propagatedBuildInputs;
                   # Inputs built by the usual native compiler.
-                  buildNativeInputs = buildNativeInputs ++ lib.optionals
+                  nativeBuildInputs = nativeBuildInputs ++ lib.optionals
                     (crossConfig == null) buildInputs;
-                  propagatedBuildNativeInputs = propagatedBuildNativeInputs ++
+                  propagatedNativeBuildInputs = propagatedNativeBuildInputs ++
                     lib.optionals (crossConfig == null) propagatedBuildInputs;
               }));
 
@@ -103,6 +104,7 @@ let
                || result.system == "x86_64-linux"
                || result.system == "powerpc-linux"
                || result.system == "armv5tel-linux"
+               || result.system == "armv6l-linux"
                || result.system == "armv7l-linux"
                || result.system == "mips64el-linux";
         isGNU = result.system == "i686-gnu";      # GNU/Hurd
@@ -130,10 +132,13 @@ let
                || result.system == "x86_64-freebsd"
                || result.system == "x86_64-openbsd";
         is64bit = result.system == "x86_64-linux"
-                || result.system == "x86_64-darwin";
+                || result.system == "x86_64-darwin"
+                || result.system == "x86_64-freebsd"
+                || result.system == "x86_64-openbsd";
         isMips = result.system == "mips-linux"
                 || result.system == "mips64el-linux";
         isArm = result.system == "armv5tel-linux"
+             || result.system == "armv6l-linux"
              || result.system == "armv7l-linux";
 
         # Utility function: allow stdenv to be easily regenerated with
diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh
index 703ea53db8e0..a474b6a8eaf1 100644
--- a/pkgs/stdenv/generic/setup.sh
+++ b/pkgs/stdenv/generic/setup.sh
@@ -1,7 +1,7 @@
 # Run the named hook, either by calling the function with that name or
 # by evaluating the variable with that name.  This allows convenient
 # setting of hooks both from Nix expressions (as attributes /
-# environment variables) and from shell scripts (as functions). 
+# environment variables) and from shell scripts (as functions).
 runHook() {
     local hookName="$1"
     case "$(type -t $hookName)" in
@@ -29,10 +29,10 @@ exitHandler() {
         # - system time for all child processes
         echo "build time elapsed: " ${times[*]}
     fi
-    
+
     if [ $exitCode != 0 ]; then
         runHook failureHook
-    
+
         # If the builder had a non-zero exit code and
         # $succeedOnFailure is set, create the file
         # `$out/nix-support/failed' to signal failure, and exit
@@ -43,11 +43,11 @@ exitHandler() {
             echo -n $exitCode > "$out/nix-support/failed"
             exit 0
         fi
-        
+
     else
         runHook exitHook
     fi
-    
+
     exit $exitCode
 }
 
@@ -169,8 +169,8 @@ for i in $buildInputs $propagatedBuildInputs; do
 done
 
 nativePkgs=""
-for i in $buildNativeInputs $propagatedBuildNativeInputs; do
-    findInputs $i nativePkgs propagated-build-native-inputs
+for i in $nativeBuildInputs $propagatedNativeBuildInputs; do
+    findInputs $i nativePkgs propagated-native-build-inputs
 done
 
 
@@ -197,7 +197,7 @@ addToCrossEnv() {
     local pkg=$1
 
     # Some programs put important build scripts (freetype-config and similar)
-    # into their hostDrv bin path. Intentionally these should go after
+    # into their crossDrv bin path. Intentionally these should go after
     # the nativePkgs in PATH.
     if [ -d $1/bin ]; then
         addToSearchPath _PATH $1/bin
@@ -445,7 +445,7 @@ unpackFile() {
         *)
             if [ -d "$curSrc" ]; then
                 stripHash $curSrc
-                cp -prvd $curSrc $strippedName
+                cp -prd --no-preserve=timestamps $curSrc $strippedName
             else
                 if [ -z "$unpackCmd" ]; then
                     echo "source archive $curSrc has unknown type"
@@ -462,7 +462,7 @@ unpackFile() {
 
 unpackPhase() {
     runHook preUnpack
-    
+
     if [ -z "$srcs" ]; then
         if [ -z "$src" ]; then
             echo 'variable $src or $srcs should point to the source'
@@ -529,9 +529,7 @@ unpackPhase() {
 
 patchPhase() {
     runHook prePatch
-    
-    if [ -z "$patchPhase" -a -z "$patches" ]; then return; fi
-    
+
     for i in $patches; do
         header "applying patch $i" 3
         local uncompress=cat
@@ -627,7 +625,7 @@ checkPhase() {
     make ${makefile:+-f $makefile} \
         ${enableParallelBuilding:+-j${NIX_BUILD_CORES} -l${NIX_BUILD_CORES}} \
         $makeFlags "${makeFlagsArray[@]}" \
-        $checkFlags "${checkFlagsArray[@]}" ${checkTarget:-check}
+        ${checkFlags:-VERBOSE=y} "${checkFlagsArray[@]}" ${checkTarget:-check}
 
     runHook postCheck
 }
@@ -724,11 +722,11 @@ fixupPhase() {
 
     # TODO: strip _only_ ELF executables, and return || fail here...
     if [ -z "$dontStrip" ]; then
-        stripDebugList=${stripDebugList:-lib lib64 libexec bin sbin}
+        stripDebugList=${stripDebugList:-lib lib32 lib64 libexec bin sbin}
         if [ -n "$stripDebugList" ]; then
             stripDirs "$stripDebugList" "${stripDebugFlags:--S}"
         fi
-        
+
         stripAllList=${stripAllList:-}
         if [ -n "$stripAllList" ]; then
             stripDirs "$stripAllList" "${stripAllFlags:--s}"
@@ -748,9 +746,9 @@ fixupPhase() {
         echo "$propagatedBuildInputs" > "$out/nix-support/propagated-build-inputs"
     fi
 
-    if [ -n "$propagatedBuildNativeInputs" ]; then
+    if [ -n "$propagatedNativeBuildInputs" ]; then
         mkdir -p "$out/nix-support"
-        echo "$propagatedBuildNativeInputs" > "$out/nix-support/propagated-build-native-inputs"
+        echo "$propagatedNativeBuildInputs" > "$out/nix-support/propagated-native-build-inputs"
     fi
 
     if [ -n "$propagatedUserEnvPkgs" ]; then
@@ -844,7 +842,7 @@ genericBuild() {
 
         showPhaseHeader "$curPhase"
         dumpVars
-        
+
         # Evaluate the variable named $curPhase if it exists, otherwise the
         # function named $curPhase.
         eval "${!curPhase:-$curPhase}"
@@ -852,7 +850,7 @@ genericBuild() {
         if [ "$curPhase" = unpackPhase ]; then
             cd "${sourceRoot:-.}"
         fi
-        
+
         if [ -n "$tracePhases" ]; then
             echo
             echo "@ phase-succeeded $out $curPhase"
@@ -869,4 +867,10 @@ genericBuild() {
 runHook postHook
 
 
+# Execute the global user hook (defined through the Nixpkgs
+# configuration option ‘stdenv.userHook’).  This can be used to set
+# global compiler optimisation flags, for instance.
+runHook userHook
+
+
 dumpVars
diff --git a/pkgs/stdenv/linux/bootstrap/armv6l/default.nix b/pkgs/stdenv/linux/bootstrap/armv6l/default.nix
new file mode 100644
index 000000000000..ecda6be8bd32
--- /dev/null
+++ b/pkgs/stdenv/linux/bootstrap/armv6l/default.nix
@@ -0,0 +1,15 @@
+{
+  sh = ../armv5tel/sh;
+  bzip2 = ../armv5tel/bzip2;
+  mkdir = ../armv5tel/mkdir;
+  cpio = ../armv5tel/cpio;
+  ln = ../armv5tel/ln;
+  curl = ../armv5tel/curl.bz2;
+
+  bootstrapTools = {
+    # Built from make-bootstrap-tools-crosspi.nix
+    # nixpkgs rev eb0422e4c1263a65a9b2b954fe10a1e03d67db3e
+    url = http://viric.name/tmp/nix/pi/bootstrap-tools.cpio.bz2;
+    sha256 = "1zb27x5h54k51yrvn3sy4wb1qprx8iv2kfbgklxwc0mcxp9b7ccd";
+  };
+}
diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix
index 777b2cf6a328..84af23a263cd 100644
--- a/pkgs/stdenv/linux/default.nix
+++ b/pkgs/stdenv/linux/default.nix
@@ -16,6 +16,7 @@ rec {
     else if system == "x86_64-linux" then import ./bootstrap/x86_64
     else if system == "powerpc-linux" then import ./bootstrap/powerpc
     else if system == "armv5tel-linux" then import ./bootstrap/armv5tel
+    else if system == "armv6l-linux" then import ./bootstrap/armv6l
     else if system == "armv7l-linux" then import ./bootstrap/armv5tel
     else if system == "mips64el-linux" then import ./bootstrap/loongson2f
     else abort "unsupported platform for the pure Linux stdenv";
@@ -32,11 +33,11 @@ rec {
 
   # The bootstrap process proceeds in several steps.
 
-  
+
   # 1) Create a standard environment by downloading pre-built binaries
   # of coreutils, GCC, etc.
 
-  
+
   # This function downloads a file.
   download = {url, sha256}: derivation {
     name = baseNameOf (toString url);
@@ -49,31 +50,31 @@ rec {
     impureEnvVars = [ "http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy" ];
   };
 
-  
+
   # Download and unpack the bootstrap tools (coreutils, GCC, Glibc, ...).
   bootstrapTools = derivation {
     name = "bootstrap-tools";
-    
+
     builder = bootstrapFiles.sh;
-    
+
     args =
-      if system == "armv5tel-linux"
+      if (system == "armv5tel-linux" || system == "armv6l-linux")
       then [ ./scripts/unpack-bootstrap-tools-arm.sh ]
       else [ ./scripts/unpack-bootstrap-tools.sh ];
-    
+
     inherit (bootstrapFiles) bzip2 mkdir curl cpio;
-    
+
     tarball = download {
       inherit (bootstrapFiles.bootstrapTools) url sha256;
     };
-    
+
     inherit system;
-    
+
     # Needed by the GCC wrapper.
     langC = true;
     langCC = true;
   };
-  
+
 
   # This function builds the various standard environments used during
   # the bootstrap.
@@ -109,7 +110,7 @@ rec {
     fetchurl = null;
   };
 
-  
+
   fetchurl = import ../../build-support/fetchurl {
     stdenv = stdenvLinuxBoot0;
     curl = bootstrapTools;
@@ -133,7 +134,7 @@ rec {
   # A helper function to call gcc-wrapper.
   wrapGCC =
     {gcc ? bootstrapTools, libc, binutils, coreutils, shell ? "", name ? "bootstrap-gcc-wrapper"}:
-    
+
     import ../../build-support/gcc-wrapper {
       nativeTools = false;
       nativeLibc = false;
@@ -153,7 +154,7 @@ rec {
     };
     inherit fetchurl;
   };
-  
+
 
   # 2) These are the packages that we can build with the first
   #    stdenv.  We only need binutils, because recent Glibcs
@@ -164,7 +165,7 @@ rec {
     bootStdenv = stdenvLinuxBoot1;
   };
 
-  
+
   # 3) 2nd stdenv that we will use to build only the glibc.
   stdenvLinuxBoot2 = stdenvBootFun {
     gcc = wrapGCC {
@@ -186,12 +187,12 @@ rec {
     bootStdenv = stdenvLinuxBoot2;
   };
 
-  
+
   # 5) Build Glibc with the bootstrap tools.  The result is the full,
   #    dynamically linked, final Glibc.
   stdenvLinuxGlibc = stdenvLinuxBoot2Pkgs.glibc;
 
-  
+
   # 6) Construct a third stdenv identical to the 2nd, except that
   #    this one uses the Glibc built in step 3.  It still uses
   #    the recent binutils and rest of the bootstrap tools, including GCC.
@@ -217,14 +218,14 @@ rec {
     inherit fetchurl;
   };
 
-  
+
   # 7) The packages that can be built using the third stdenv.
   stdenvLinuxBoot3Pkgs = allPackages {
     inherit system platform;
     bootStdenv = stdenvLinuxBoot3;
   };
 
-  
+
   # 8) Construct a fourth stdenv identical to the second, except that
   #    this one uses the dynamically linked GCC and Binutils from step
   #    5.  The other tools (e.g. coreutils) are still from the
@@ -240,19 +241,19 @@ rec {
     extraPath = [ stdenvLinuxBoot3Pkgs.xz ];
     overrides = pkgs: {
       inherit (stdenvLinuxBoot1Pkgs) perl;
-      inherit (stdenvLinuxBoot3Pkgs) gettext gnum4 xz gmp;
+      inherit (stdenvLinuxBoot3Pkgs) gettext gnum4 gmp;
     };
     inherit fetchurl;
   };
 
-  
+
   # 9) The packages that can be built using the fourth stdenv.
   stdenvLinuxBoot4Pkgs = allPackages {
     inherit system platform;
     bootStdenv = stdenvLinuxBoot4;
   };
 
-  
+
   # 10) Construct the final stdenv.  It uses the Glibc, GCC and
   #     Binutils built above, and adds in dynamically linked versions
   #     of all other tools.
@@ -262,10 +263,10 @@ rec {
   #     first binutils built.
   stdenvLinux = import ../generic rec {
     inherit system config;
-    
+
     preHook = commonPreHook;
-    
-    initialPath = 
+
+    initialPath =
       ((import ../common-path.nix) {pkgs = stdenvLinuxBoot4Pkgs;})
       ++ [stdenvLinuxBoot4Pkgs.patchelf];
 
@@ -273,18 +274,19 @@ rec {
       inherit (stdenvLinuxBoot3Pkgs) binutils;
       inherit (stdenvLinuxBoot4Pkgs) coreutils;
       libc = stdenvLinuxGlibc;
-      gcc = stdenvLinuxBoot3Pkgs.gcc.gcc;
+      gcc = stdenvLinuxBoot4.gcc.gcc;
       shell = stdenvLinuxBoot4Pkgs.bash + "/bin/bash";
       name = "";
     };
 
     shell = stdenvLinuxBoot4Pkgs.bash + "/bin/bash";
-    
+
     fetchurlBoot = fetchurl;
-    
+
     extraAttrs = {
       inherit (stdenvLinuxBoot3Pkgs) glibc;
-      inherit platform;
+      inherit platform bootstrapTools;
+      shellPackage = stdenvLinuxBoot4Pkgs.bash; 
     };
 
     overrides = pkgs: {
diff --git a/pkgs/stdenv/linux/make-bootstrap-tools-crosspi.nix b/pkgs/stdenv/linux/make-bootstrap-tools-crosspi.nix
new file mode 100644
index 000000000000..9b2949e3e368
--- /dev/null
+++ b/pkgs/stdenv/linux/make-bootstrap-tools-crosspi.nix
@@ -0,0 +1,269 @@
+{system ? builtins.currentSystem}:
+
+let
+  pkgsFun = import ../../top-level/all-packages.nix;
+  pkgsNoParams = pkgsFun {};
+  raspberrypiCrossSystem = {
+    crossSystem = {
+      config = "armv6l-unknown-linux-gnueabi";  
+      bigEndian = false;
+      arch = "arm";
+      float = "hard";
+      fpu = "vfp";
+      withTLS = true;
+      libc = "glibc";
+      platform = pkgsNoParams.platforms.raspberrypi;
+      openssl.system = "linux-generic32";
+      gcc = {
+        arch = "armv6";
+        fpu = "vfp";
+        float = "hard";
+      };
+    };
+  };
+
+  raspberrypiCrossSystemUclibc = {
+    crossSystem = {
+      config = "armv6l-unknown-linux-gnueabi";  
+      bigEndian = false;
+      arch = "arm";
+      float = "hard";
+      fpu = "vfp";
+      withTLS = true;
+      libc = "uclibc";
+      platform = pkgsNoParams.platforms.raspberrypi;
+      openssl.system = "linux-generic32";
+      gcc = {
+        arch = "armv6";
+        fpu = "vfp";
+        float = "hard";
+      };
+      uclibc.extraConfig = ''
+        ARCH_WANTS_BIG_ENDIAN n
+        ARCH_BIG_ENDIAN n
+        ARCH_WANTS_LITTLE_ENDIAN y
+        ARCH_LITTLE_ENDIAN y
+      '';
+    };
+  };
+
+  pkgsuclibc = pkgsFun ({inherit system;} // raspberrypiCrossSystemUclibc);
+  pkgs = pkgsFun ({inherit system;} // raspberrypiCrossSystem);
+
+  inherit (pkgs) stdenv nukeReferences cpio binutilsCross;
+
+  # We want coreutils without ACL support.
+  coreutils_base = pkgs.coreutils.override (args: {
+    aclSupport = false;
+  });
+
+  coreutils_ = coreutils_base.crossDrv;
+
+  glibc = pkgs.libcCross;
+  bash = pkgs.bash.crossDrv;
+  findutils = pkgs.findutils.crossDrv;
+  diffutils = pkgs.diffutils.crossDrv;
+  gnused = pkgs.gnused.crossDrv;
+  gnugrep = pkgs.gnugrep.crossDrv;
+  gawk = pkgs.gawk.crossDrv;
+  gnutar = pkgs.gnutar.crossDrv;
+  gzip = pkgs.gzip.crossDrv;
+  bzip2 = pkgs.bzip2.crossDrv;
+  gnumake = pkgs.gnumake.crossDrv;
+  patch = pkgs.patch.crossDrv;
+  patchelf = pkgs.patchelf.crossDrv;
+  replace = pkgs.replace.crossDrv;
+  gcc = pkgs.gcc47;
+  gmp = pkgs.gmp.crossDrv;
+  mpfr = pkgs.mpfr.crossDrv;
+  ppl = pkgs.ppl.crossDrv;
+  cloogppl = pkgs.cloogppl.crossDrv;
+  cloog = pkgs.cloog.crossDrv;
+  zlib = pkgs.zlib.crossDrv;
+  isl = pkgs.isl.crossDrv;
+  mpc = pkgs.mpc.crossDrv;
+  binutils = pkgs.binutils.crossDrv;
+  klibc = pkgs.klibc.crossDrv;
+
+in
+
+rec {
+
+  curlStatic = import <nixpkgs/pkgs/tools/networking/curl> {
+    stdenv = pkgsuclibc.stdenv;
+    inherit (pkgsuclibc) fetchurl;
+    zlibSupport = false;
+    sslSupport = false;
+    linkStatic = true;
+  };
+
+  bzip2Static = import <nixpkgs/pkgs/tools/compression/bzip2> {
+    stdenv = pkgsuclibc.stdenv;
+    inherit (pkgsuclibc) fetchurl;
+    linkStatic = true;
+  };
+
+  inherit pkgs;
+
+  build = 
+
+    stdenv.mkDerivation {
+      name = "build";
+
+      buildInputs = [nukeReferences cpio binutilsCross];
+
+      crossConfig = stdenv.cross.config;
+
+      buildCommand = ''
+	set -x
+        ensureDir $out/bin $out/lib $out/libexec
+
+        # Copy what we need of Glibc.
+        cp -d ${glibc}/lib/ld-*.so* $out/lib
+        cp -d ${glibc}/lib/libc*.so* $out/lib
+        cp -d ${glibc}/lib/libc_nonshared.a $out/lib
+        cp -d ${glibc}/lib/libm*.so* $out/lib
+        cp -d ${glibc}/lib/libdl*.so* $out/lib
+        cp -d ${glibc}/lib/librt*.so*  $out/lib
+        cp -d ${glibc}/lib/libpthread*.so* $out/lib
+        cp -d ${glibc}/lib/libnsl*.so* $out/lib
+        cp -d ${glibc}/lib/libutil*.so* $out/lib
+        cp -d ${glibc}/lib/crt?.o $out/lib
+        
+        cp -rL ${glibc}/include $out
+        chmod -R u+w $out/include
+        
+        # Hopefully we won't need these.
+        rm -rf $out/include/mtd $out/include/rdma $out/include/sound $out/include/video
+        find $out/include -name .install -exec rm {} \;
+        find $out/include -name ..install.cmd -exec rm {} \;
+        mv $out/include $out/include-glibc
+        
+        # Copy coreutils, bash, etc.
+        cp ${coreutils_}/bin/* $out/bin
+        (cd $out/bin && rm vdir dir sha*sum pinky factor pathchk runcon shuf who whoami shred users)
+        
+        cp ${bash}/bin/bash $out/bin
+        cp ${findutils}/bin/find $out/bin
+        cp ${findutils}/bin/xargs $out/bin
+        cp -d ${diffutils}/bin/* $out/bin
+        cp -d ${gnused}/bin/* $out/bin
+        cp -d ${gnugrep}/bin/* $out/bin
+        cp ${gawk}/bin/gawk $out/bin
+        cp -d ${gawk}/bin/awk $out/bin
+        cp ${gnutar}/bin/tar $out/bin
+        cp ${gzip}/bin/gzip $out/bin
+        cp ${bzip2}/bin/bzip2 $out/bin
+        cp -d ${gnumake}/bin/* $out/bin
+        cp -d ${patch}/bin/* $out/bin
+        cp ${patchelf}/bin/* $out/bin
+        cp ${replace}/bin/* $out/bin
+
+        cp -d ${gnugrep.pcre.crossDrv}/lib/libpcre*.so* $out/lib # needed by grep
+        
+        # Copy what we need of GCC.
+        cp -d ${gcc.gcc.crossDrv}/bin/gcc $out/bin
+        cp -d ${gcc.gcc.crossDrv}/bin/cpp $out/bin
+        cp -d ${gcc.gcc.crossDrv}/bin/g++ $out/bin
+        cp -d ${gcc.gcc.crossDrv}/lib*/libgcc_s.so* $out/lib
+        cp -d ${gcc.gcc.crossDrv}/lib*/libstdc++.so* $out/lib
+        cp -rd ${gcc.gcc.crossDrv}/lib/gcc $out/lib
+        chmod -R u+w $out/lib
+        rm -f $out/lib/gcc/*/*/include*/linux
+        rm -f $out/lib/gcc/*/*/include*/sound
+        rm -rf $out/lib/gcc/*/*/include*/root
+        rm -f $out/lib/gcc/*/*/include-fixed/asm
+        rm -rf $out/lib/gcc/*/*/plugin
+        #rm -f $out/lib/gcc/*/*/*.a
+        cp -rd ${gcc.gcc.crossDrv}/libexec/* $out/libexec
+        mkdir $out/include
+        cp -rd ${gcc.gcc.crossDrv}/include/c++ $out/include
+        chmod -R u+w $out/include
+        rm -rf $out/include/c++/*/ext/pb_ds
+        rm -rf $out/include/c++/*/ext/parallel
+
+        cp -d ${gmp}/lib/libgmp*.so* $out/lib
+        cp -d ${mpfr}/lib/libmpfr*.so* $out/lib
+        cp -d ${cloogppl}/lib/libcloog*.so* $out/lib
+        cp -d ${cloog}/lib/libcloog*.so* $out/lib
+        cp -d ${ppl}/lib/libppl*.so* $out/lib
+        cp -d ${isl}/lib/libisl*.so* $out/lib
+        cp -d ${mpc}/lib/libmpc*.so* $out/lib
+        cp -d ${zlib}/lib/libz.so* $out/lib
+        
+        # Copy binutils.
+        for i in as ld ar ranlib nm strip readelf objdump; do
+          cp ${binutils}/bin/$i $out/bin
+        done
+
+        chmod -R u+w $out
+        
+        # Strip executables even further.
+        for i in $out/bin/* $out/libexec/gcc/*/*/*; do
+            if test -x $i -a ! -L $i; then
+                chmod +w $i
+                $crossConfig-strip -s $i || true
+            fi
+        done
+
+        nuke-refs $out/bin/*
+        nuke-refs $out/lib/*
+        nuke-refs $out/libexec/gcc/*/*/*
+        nuke-refs $out/libexec/gcc/*/*/*/*
+
+        mkdir $out/.pack
+        mv $out/* $out/.pack
+        mv $out/.pack $out/pack
+
+        mkdir $out/on-server
+        (cd $out/pack && (find | cpio -o -H newc)) | bzip2 > $out/on-server/bootstrap-tools.cpio.bz2
+
+        mkdir $out/in-nixpkgs
+        cp ${klibc}/lib/klibc/bin.static/sh $out/in-nixpkgs
+        cp ${klibc}/lib/klibc/bin.static/cpio $out/in-nixpkgs
+        cp ${klibc}/lib/klibc/bin.static/mkdir $out/in-nixpkgs
+        cp ${klibc}/lib/klibc/bin.static/ln $out/in-nixpkgs
+        cp ${curlStatic.crossDrv}/bin/curl $out/in-nixpkgs
+        cp ${bzip2Static.crossDrv}/bin/bzip2 $out/in-nixpkgs
+        chmod u+w $out/in-nixpkgs/*
+        $crossConfig-strip $out/in-nixpkgs/*
+        nuke-refs $out/in-nixpkgs/*
+        bzip2 $out/in-nixpkgs/curl
+      ''; # */
+
+      # The result should not contain any references (store paths) so
+      # that we can safely copy them out of the store and to other
+      # locations in the store.
+      allowedReferences = [];
+    };
+
+  
+  unpack =
+    
+    stdenv.mkDerivation {
+      name = "unpack";
+
+      buildCommand = ''
+        ${build}/in-nixpkgs/mkdir $out
+        ${build}/in-nixpkgs/bzip2 -d < ${build}/on-server/bootstrap-tools.cpio.bz2 | (cd $out && ${build}/in-nixpkgs/cpio -V -i)
+
+        for i in $out/bin/* $out/libexec/gcc/*/*/*; do
+            echo patching $i
+            if ! test -L $i; then
+                LD_LIBRARY_PATH=$out/lib $out/lib/ld-linux*.so.2 \
+                    $out/bin/patchelf --set-interpreter $out/lib/ld-linux*.so.2 --set-rpath $out/lib --force-rpath $i
+            fi
+        done
+
+        # Fix the libc linker script.
+        for i in $out/lib/libc.so; do
+            cat $i | sed "s|/nix/store/e*-[^/]*/|$out/|g" > $i.tmp
+            mv $i.tmp $i
+        done
+      ''; # " */
+
+      allowedReferences = ["out"];
+    };
+
+    
+}
diff --git a/pkgs/stdenv/linux/scripts/unpack-bootstrap-tools-arm.sh b/pkgs/stdenv/linux/scripts/unpack-bootstrap-tools-arm.sh
index 3709ac05041b..dcf819ad6f75 100644
--- a/pkgs/stdenv/linux/scripts/unpack-bootstrap-tools-arm.sh
+++ b/pkgs/stdenv/linux/scripts/unpack-bootstrap-tools-arm.sh
@@ -13,22 +13,24 @@ echo Patching the bootstrap tools...
 LD_LIBRARY_PATH=$out/lib $out/lib/ld-linux*.so.? $out/bin/cp $out/bin/patchelf .
 
 for i in $out/bin/* $out/libexec/gcc/*/*/* $out/lib/librt*; do
+    if test ${i%.la} != $i; then continue; fi
+    if test ${i%*.so*} != $i; then continue; fi
+    if ! test -f $i; then continue; fi
+    if test -L $i; then continue; fi
     echo patching $i
-    if ! test -L $i; then
-         LD_LIBRARY_PATH=$out/lib $out/lib/ld-linux*.so.? \
-             $out/bin/patchelf --set-interpreter $out/lib/ld-linux*.so.? --set-rpath $out/lib --force-rpath $i
-         LD_LIBRARY_PATH=$out/lib $out/lib/ld-linux*.so.? \
-             $out/bin/patchelf --set-interpreter $out/lib/ld-linux*.so.? --set-rpath $out/lib --force-rpath $i
-    fi
+    LD_LIBRARY_PATH=$out/lib $out/lib/ld-linux*.so.? \
+        $out/bin/patchelf --set-interpreter $out/lib/ld-linux*.so.? --set-rpath $out/lib --force-rpath $i
+    LD_LIBRARY_PATH=$out/lib $out/lib/ld-linux*.so.? \
+        $out/bin/patchelf --set-interpreter $out/lib/ld-linux*.so.? --set-rpath $out/lib --force-rpath $i
 done
-for i in $out/lib/libppl* $out/lib/libgmp*; do
+for i in $out/lib/librt* $out/lib/libcloog* $out/lib/libppl* $out/lib/libgmp*; do
+    if ! test -f $i; then continue; fi
+    if test -L $i; then continue; fi
     echo patching $i
-    if ! test -L $i; then
-         LD_LIBRARY_PATH=$out/lib $out/lib/ld-linux*.so.? \
-             $out/bin/patchelf --set-rpath $out/lib --force-rpath $i
-         LD_LIBRARY_PATH=$out/lib $out/lib/ld-linux*.so.? \
-             $out/bin/patchelf --set-rpath $out/lib --force-rpath $i
-    fi
+    LD_LIBRARY_PATH=$out/lib $out/lib/ld-linux*.so.? \
+        $out/bin/patchelf --set-rpath $out/lib --force-rpath $i
+    LD_LIBRARY_PATH=$out/lib $out/lib/ld-linux*.so.? \
+        $out/bin/patchelf --set-rpath $out/lib --force-rpath $i
 done
 
 # Fix the libc linker script.
diff --git a/pkgs/stdenv/mingw/setup.sh b/pkgs/stdenv/mingw/setup.sh
index 4de3c0ddc9b4..592580a829e3 100755
--- a/pkgs/stdenv/mingw/setup.sh
+++ b/pkgs/stdenv/mingw/setup.sh
@@ -486,9 +486,7 @@ unpackPhase() {
 
 patchPhase() {
     runHook prePatch
-    
-    if test -z "$patchPhase" -a -z "$patches"; then return; fi
-    
+
     for i in $patches; do
         header "applying patch $i" 3
         local uncompress=cat
diff --git a/pkgs/stdenv/nix/default.nix b/pkgs/stdenv/nix/default.nix
index 668bac5f0ae8..d0f7d60f101c 100644
--- a/pkgs/stdenv/nix/default.nix
+++ b/pkgs/stdenv/nix/default.nix
@@ -12,7 +12,7 @@ import ../generic rec {
         export NIX_DONT_SET_RPATH=1
         export NIX_NO_SELF_RPATH=1
         dontFixLibtool=1
-        stripAllFlags=" " # the Darwin "strip" command doesn't know "-s" 
+        stripAllFlags=" " # the Darwin "strip" command doesn't know "-s"
         xargsFlags=" "
       fi
     '';
@@ -25,7 +25,7 @@ import ../generic rec {
     nativeTools = false;
     nativeLibc = true;
     inherit stdenv;
-    binutils = 
+    binutils =
       if stdenv.isDarwin then
         import ../../build-support/native-darwin-cctools-wrapper {inherit stdenv;}
       else
@@ -42,7 +42,7 @@ import ../generic rec {
   overrides = pkgs_: {
     inherit gcc;
     inherit (gcc) binutils;
-    inherit (pkgs) 
+    inherit (pkgs)
       gzip bzip2 xz bash coreutils diffutils findutils gawk
       gnumake gnused gnutar gnugrep gnupatch perl;
   };
diff --git a/pkgs/tools/X11/xpra/default.nix b/pkgs/tools/X11/xpra/default.nix
index 3fbb350e0ab0..929332275fc1 100644
--- a/pkgs/tools/X11/xpra/default.nix
+++ b/pkgs/tools/X11/xpra/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "1s1z6r0r78qvf59ci3vxammjz7lj5m64jyk0bfn7yxd5jl3sy41y";
   };
 
-  buildNativeInputs = [ cython ];
+  nativeBuildInputs = [ cython ];
 
   buildInputs = [
     pkgconfig python pygtk gtk ffmpeg x264 libvpx makeWrapper
diff --git a/pkgs/tools/admin/tigervnc/default.nix b/pkgs/tools/admin/tigervnc/default.nix
index f74463b10635..be42fb4d2a56 100644
--- a/pkgs/tools/admin/tigervnc/default.nix
+++ b/pkgs/tools/admin/tigervnc/default.nix
@@ -4,7 +4,7 @@
 , fixesproto, damageproto, xcmiscproto, bigreqsproto, randrproto, renderproto
 , fontsproto, videoproto, compositeproto, scrnsaverproto, resourceproto
 , libxkbfile, libXfont, libpciaccess, cmake, libjpeg_turbo, libXft, fltk, libXinerama
-, xineramaproto, libXcursor, fetchsvn, libxcrypt
+, xineramaproto, libXcursor, fetchsvn
 }:
 
 with stdenv.lib;
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   revision = 5005;
   version = "r${toString revision}";
   name = "tigervnc-${version}";
-  
+
   src = fetchsvn {
     # Release url = "mirror://sourceforge/tigervnc/${version}/${name}.tar.gz";
     url = "https://tigervnc.svn.sourceforge.net/svnroot/tigervnc/trunk";
@@ -25,9 +25,9 @@ stdenv.mkDerivation rec {
   inherit fontDirectories;
 
   patchPhase = ''
-    sed -i -e 's,$(includedir)/pixman-1,${if stdenv ? cross then pixman.hostDrv else pixman}/include/pixman-1,' unix/xserver/hw/vnc/Makefile.am
-    sed -i -e '/^$pidFile/a$ENV{XKB_BINDIR}="${if stdenv ? cross then xkbcomp.hostDrv else xkbcomp}/bin";' unix/vncserver 
-    sed -i -e '/^\$cmd \.= " -pn";/a$cmd .= " -xkbdir ${if stdenv ? cross then xkeyboard_config.hostDrv else xkeyboard_config}/etc/X11/xkb";' unix/vncserver 
+    sed -i -e 's,$(includedir)/pixman-1,${if stdenv ? cross then pixman.crossDrv else pixman}/include/pixman-1,' unix/xserver/hw/vnc/Makefile.am
+    sed -i -e '/^$pidFile/a$ENV{XKB_BINDIR}="${if stdenv ? cross then xkbcomp.crossDrv else xkbcomp}/bin";' unix/vncserver
+    sed -i -e '/^\$cmd \.= " -pn";/a$cmd .= " -xkbdir ${if stdenv ? cross then xkeyboard_config.crossDrv else xkeyboard_config}/etc/X11/xkb";' unix/vncserver
 
     fontPath=
     for i in $fontDirectories; do
@@ -35,8 +35,8 @@ stdenv.mkDerivation rec {
         addToSearchPathWithCustomDelimiter "," fontPath $(dirname $j)
       done
     done
-    
-    sed -i -e '/^\$cmd \.= " -pn";/a$cmd .= " -fp '"$fontPath"'";' unix/vncserver 
+
+    sed -i -e '/^\$cmd \.= " -pn";/a$cmd .= " -fp '"$fontPath"'";' unix/vncserver
   '';
 
   # I don't know why I can't use in the script
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
   '';
 
   crossAttrs = {
-    buildInputs = (map (x : x.hostDrv) (buildInputs ++ [
+    buildInputs = (map (x : x.crossDrv) (buildInputs ++ [
       fixesproto damageproto xcmiscproto bigreqsproto randrproto renderproto
       fontsproto videoproto compositeproto scrnsaverproto resourceproto
       libxkbfile libXfont libpciaccess xineramaproto
@@ -79,16 +79,16 @@ stdenv.mkDerivation rec {
   buildInputs =
     [ libX11 libXext gettext libICE libXtst libXi libSM libXft
       nasm libgcrypt gnutls pam pixman libjpeg_turbo fltk xineramaproto
-      libXinerama libXcursor libxcrypt
+      libXinerama libXcursor
     ];
-  
-  buildNativeInputs = 
-    [ autoconf automake cvs utilmacros fontutil libtool flex bison 
+
+  nativeBuildInputs =
+    [ autoconf automake cvs utilmacros fontutil libtool flex bison
       cmake
-    ] 
-      ++ xorgserver.buildNativeInputs;
+    ]
+      ++ xorgserver.nativeBuildInputs;
 
-  propagatedBuildNativeInputs = xorgserver.propagatedBuildNativeInputs;
+  propagatedNativeBuildInputs = xorgserver.propagatedNativeBuildInputs;
 
   meta = {
     homepage = http://www.tigervnc.org/;
@@ -97,5 +97,4 @@ stdenv.mkDerivation rec {
     maintainers = with stdenv.lib.maintainers; [viric];
     platforms = with stdenv.lib.platforms; linux;
   };
-
 }
diff --git a/pkgs/tools/archivers/gnutar/default.nix b/pkgs/tools/archivers/gnutar/default.nix
index 4ef973bd56a0..51d5d35fe800 100644
--- a/pkgs/tools/archivers/gnutar/default.nix
+++ b/pkgs/tools/archivers/gnutar/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl }:
 
-stdenv.mkDerivation (rec {
+stdenv.mkDerivation rec {
   name = "gnutar-1.26";
 
   src = fetchurl {
@@ -8,6 +8,12 @@ stdenv.mkDerivation (rec {
     sha256 = "0hbdkzmchq9ycr2x1pxqdcgdbaxksh8c6ac0jf75jajhcks6jlss";
   };
 
+  patches = [ ./gets-undeclared.patch ];
+
+  # May have some issues with root compilation because the bootstrap tool
+  # cannot be used as a login shell for now.
+  FORCE_UNSAFE_CONFIGURE = stdenv.lib.optionalString (stdenv.system == "armv7l-linux") "1";
+
   meta = {
     homepage = http://www.gnu.org/software/tar/;
     description = "GNU implementation of the `tar' archiver";
@@ -33,18 +39,3 @@ stdenv.mkDerivation (rec {
     platforms = stdenv.lib.platforms.all;
   };
 }
-  # May have some issues with root compilation because the bootstrap tool
-  # cannot be used as a login shell for now.
-// stdenv.lib.optionalAttrs (stdenv.system == "armv7l-linux") {
-  FORCE_UNSAFE_CONFIGURE = 1;
-}
-
-//
-
-{
-  crossAttrs =
-    # XXX: Temporary workaround to allow GNU/Hurd builds with newer libcs.
-    (stdenv.lib.optionalAttrs (stdenv.cross.config == "i586-pc-gnu") {
-      patches = [ ./gets-undeclared.patch ];
-    });
-})
diff --git a/pkgs/tools/archivers/sharutils/default.nix b/pkgs/tools/archivers/sharutils/default.nix
index 2773e112a49b..7346b8e4e058 100644
--- a/pkgs/tools/archivers/sharutils/default.nix
+++ b/pkgs/tools/archivers/sharutils/default.nix
@@ -8,6 +8,13 @@ stdenv.mkDerivation rec {
     sha256 = "1mallg1gprimlggdisfzdmh1xi676jsfdlfyvanlcw72ny8fsj3g";
   };
 
+  preConfigure =
+    ''
+       # Fix for building on Glibc 2.16.  Won't be needed once the
+       # gnulib in sharutils is updated.
+       sed -i '/gets is a security hole/d' lib/stdio.in.h
+    '';
+
   # GNU Gettext is needed on non-GNU platforms.
   buildInputs = [ gettext ];
 
diff --git a/pkgs/tools/backup/bup/default.nix b/pkgs/tools/backup/bup/default.nix
index 7ba5175d550b..7062053703e8 100644
--- a/pkgs/tools/backup/bup/default.nix
+++ b/pkgs/tools/backup/bup/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
     rev = "458e92da32ddd3c18fc1c3e52a76e9f0b48b832f";
   };
 
-  buildNativeInputs = [ pandoc perl makeWrapper ];
+  nativeBuildInputs = [ pandoc perl makeWrapper ];
 
   buildInputs = [ python git ];
 
diff --git a/pkgs/tools/bluetooth/kbluetooth/default.nix b/pkgs/tools/bluetooth/kbluetooth/default.nix
index 047b4f822ae7..81916cb3982f 100644
--- a/pkgs/tools/bluetooth/kbluetooth/default.nix
+++ b/pkgs/tools/bluetooth/kbluetooth/default.nix
@@ -24,7 +24,7 @@ mkDerivation rec {
   meta = with stdenv.lib; {
     description = "Bluetooth manager for KDE";
     license = "GPLv2";
-    inherit (kdelibs.meta) platforms;
+    #inherit (kdelibs.meta) platforms; # doesn't build and seems to be dead
     maintainers = [ maintainers.phreedom ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/bluetooth/obexd/default.nix b/pkgs/tools/bluetooth/obexd/default.nix
index 1cf3918c21fc..47db0877dd20 100644
--- a/pkgs/tools/bluetooth/obexd/default.nix
+++ b/pkgs/tools/bluetooth/obexd/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ glib dbus.libs openobex bluez libical ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     homepage = http://www.bluez.org/;
diff --git a/pkgs/tools/compression/bzip2/builder.sh b/pkgs/tools/compression/bzip2/builder.sh
index 4610bdd40850..a598dfcf808c 100644
--- a/pkgs/tools/compression/bzip2/builder.sh
+++ b/pkgs/tools/compression/bzip2/builder.sh
@@ -10,7 +10,7 @@ if test -n "$sharedLibrary"; then
     preInstall() {
         mkdir -p $out/lib
         mv libbz2.so* $out/lib
-        ln -s libbz2.so.1.0 $out/lib/libbz2.so
+        (cd $out/lib && ln -s libbz2.so.1.0.? libbz2.so && ln -s libbz2.so.1.0.? libbz2.so.1);
     }
     
 fi
diff --git a/pkgs/tools/compression/gzip/default.nix b/pkgs/tools/compression/gzip/default.nix
index e1d6d75da51a..d15b26f48b65 100644
--- a/pkgs/tools/compression/gzip/default.nix
+++ b/pkgs/tools/compression/gzip/default.nix
@@ -1,15 +1,13 @@
-{stdenv, fetchurl}:
+{ stdenv, fetchurl }:
 
-stdenv.mkDerivation (rec {
-  name = "gzip-1.4";
+stdenv.mkDerivation rec {
+  name = "gzip-1.5";
 
   src = fetchurl {
-    url = "mirror://gnu/gzip/${name}.tar.gz";
-    sha256 = "1vhiyzls60fws48scw48wvwn8mpv1f4yhcsnafys239qvb9wyrni";
+    url = "mirror://gnu/gzip/${name}.tar.xz";
+    sha256 = "0wx1nqk709kx75cwp2axachnbxryp4gyl06qxn5nl95184w0mhls";
   };
 
-  doCheck = true;
-
   meta = {
     homepage = http://www.gnu.org/software/gzip/;
     description = "Gzip, the GNU zip compression program";
@@ -31,13 +29,3 @@ stdenv.mkDerivation (rec {
     maintainers = [ stdenv.lib.maintainers.ludo ];
   };
 }
-
-//
-
-{
-  crossAttrs =
-    # XXX: Temporary workaround to allow GNU/Hurd builds with newer libcs.
-    (stdenv.lib.optionalAttrs (stdenv.cross.config == "i586-pc-gnu") {
-      patches = [ ./gets-undeclared.patch ];
-    });
-})
diff --git a/pkgs/tools/compression/gzip/gets-undeclared.patch b/pkgs/tools/compression/gzip/gets-undeclared.patch
deleted file mode 100644
index a09f59b122a2..000000000000
--- a/pkgs/tools/compression/gzip/gets-undeclared.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-This patch is needed to allow builds with newer versions of
-the GNU libc (2.16+).
-
-This is a backport of this patch:
-
-commit 66712c23388e93e5c518ebc8515140fa0c807348
-Author: Eric Blake <eblake@redhat.com>
-Date:   Thu Mar 29 13:30:41 2012 -0600
-
-    stdio: don't assume gets any more
-    
---- gzip/lib/stdio.in.h	2012-07-02 14:28:45.000000000 +0200
-+++ gzip/lib/stdio.in.h	2012-07-02 14:28:50.000000000 +0200
-@@ -160,12 +160,6 @@ _GL_WARN_ON_USE (fflush, "fflush is not
-                  "use gnulib module fflush for portable POSIX compliance");
- #endif
- 
--/* It is very rare that the developer ever has full control of stdin,
--   so any use of gets warrants an unconditional warning.  Assume it is
--   always declared, since it is required by C89.  */
--#undef gets
--_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
--
- #if @GNULIB_FOPEN@
- # if @REPLACE_FOPEN@
- #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
diff --git a/pkgs/tools/compression/xz/default.nix b/pkgs/tools/compression/xz/default.nix
index 78a8ed95a4e9..6b74ba41ecab 100644
--- a/pkgs/tools/compression/xz/default.nix
+++ b/pkgs/tools/compression/xz/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "xz-5.0.3";
+  name = "xz-5.0.4";
 
   src = fetchurl {
     url = "http://tukaani.org/xz/${name}.tar.bz2";
-    sha256 = "1sgaq4gdh8llz3gnlgvd65x610fwc8h4m32skhqn5npwgghvj4as";
+    sha256 = "14nf55b47335aakswqk0kqv1qsh4269rnb757dmkkbd1sdhb1naw";
   };
 
   doCheck = true;
diff --git a/pkgs/tools/filesystems/fuse-zip/default.nix b/pkgs/tools/filesystems/fuse-zip/default.nix
index 346b11015f46..a5ac74fe47a5 100644
--- a/pkgs/tools/filesystems/fuse-zip/default.nix
+++ b/pkgs/tools/filesystems/fuse-zip/default.nix
@@ -2,16 +2,18 @@
 
 stdenv.mkDerivation rec {
   name = "fuse-zip-0.2.13";
-  
+
   src = fetchurl {
     url = "http://fuse-zip.googlecode.com/files/${name}.tar.gz";
     sha1 = "9cfa00e38a59d4e06fd47bfaca75ad5e299ecc6b";
   };
 
+  patches = [ ./libzip.patch ]; # problems with new libzip; from Gentoo
+
   buildInputs = [ pkgconfig fuse libzip zlib ];
 
   makeFlags = "INSTALLPREFIX=$(out)";
-  
+
   meta = {
     homepage = http://code.google.com/p/fuse-zip/;
     description = "A FUSE-based filesystem that allows read and write access to ZIP files";
diff --git a/pkgs/tools/filesystems/fuse-zip/libzip.patch b/pkgs/tools/filesystems/fuse-zip/libzip.patch
new file mode 100644
index 000000000000..f2348e5f1bab
--- /dev/null
+++ b/pkgs/tools/filesystems/fuse-zip/libzip.patch
@@ -0,0 +1,24 @@
+diff -ru fuse-zip-0.2.13/lib/bigBuffer.cpp fuse-zip-0.2.13.new//lib/bigBuffer.cpp
+--- fuse-zip-0.2.13/lib/bigBuffer.cpp	2010-12-06 12:34:32.000000000 -0500
++++ fuse-zip-0.2.13.new//lib/bigBuffer.cpp	2011-09-28 21:40:01.294946957 -0400
+@@ -236,7 +236,7 @@
+     len = offset;
+ }
+ 
+-ssize_t BigBuffer::zipUserFunctionCallback(void *state, void *data, size_t len, enum zip_source_cmd cmd) {
++zip_int64_t BigBuffer::zipUserFunctionCallback(void *state, void *data, zip_uint64_t len, enum zip_source_cmd cmd) {
+     CallBackStruct *b = (CallBackStruct*)state;
+     switch (cmd) {
+         case ZIP_SOURCE_OPEN: {
+diff -ru fuse-zip-0.2.13/lib/bigBuffer.h fuse-zip-0.2.13.new//lib/bigBuffer.h
+--- fuse-zip-0.2.13/lib/bigBuffer.h	2010-12-06 12:34:32.000000000 -0500
++++ fuse-zip-0.2.13.new//lib/bigBuffer.h	2011-09-28 21:40:23.203719133 -0400
+@@ -52,7 +52,7 @@
+      * never called because read() always successfull.
+      * See zip_source_function(3) for details.
+      */
+-    static ssize_t zipUserFunctionCallback(void *state, void *data, size_t len, enum zip_source_cmd cmd);
++    static zip_int64_t zipUserFunctionCallback(void *state, void *data, zip_uint64_t len, enum zip_source_cmd cmd);
+ 
+     /**
+      * Return number of chunks needed to keep 'offset' bytes.
diff --git a/pkgs/tools/filesystems/jfsutils/default.nix b/pkgs/tools/filesystems/jfsutils/default.nix
index dc07734b9603..9712721021ea 100644
--- a/pkgs/tools/filesystems/jfsutils/default.nix
+++ b/pkgs/tools/filesystems/jfsutils/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
     sha1 = "291e8bd9d615cf3d27e4000117c81a3602484a50";
   };
 
+  patches = [ ./types.patch ];
+
   buildInputs = [ libuuid ];
 
   meta = {
diff --git a/pkgs/tools/filesystems/jfsutils/types.patch b/pkgs/tools/filesystems/jfsutils/types.patch
new file mode 100644
index 000000000000..a682f2695f9e
--- /dev/null
+++ b/pkgs/tools/filesystems/jfsutils/types.patch
@@ -0,0 +1,12 @@
+diff -ru -x '*~' jfsutils-1.1.15-orig/libfs/devices.h jfsutils-1.1.15/libfs/devices.h
+--- jfsutils-1.1.15-orig/libfs/devices.h	2005-11-22 21:43:55.000000000 +0100
++++ jfsutils-1.1.15/libfs/devices.h	2013-01-28 13:58:56.888630278 +0100
+@@ -18,6 +18,8 @@
+ #ifndef H_DEVICES
+ #define H_DEVICES
+ 
++#include <inttypes.h>
++
+ #define GET	0
+ #define PUT	1
+ #define VRFY	2
diff --git a/pkgs/tools/filesystems/ntfs-3g/default.nix b/pkgs/tools/filesystems/ntfs-3g/default.nix
index cedb8df39d14..a306a424ee1e 100644
--- a/pkgs/tools/filesystems/ntfs-3g/default.nix
+++ b/pkgs/tools/filesystems/ntfs-3g/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   buildInputs = [libuuid] ++ stdenv.lib.optionals crypto [gnutls libgcrypt];
-  buildNativeInputs = stdenv.lib.optional crypto pkgconfig;
+  nativeBuildInputs = stdenv.lib.optional crypto pkgconfig;
 
   src = fetchurl {
     url = "http://tuxera.com/opensource/${name}.tgz";
diff --git a/pkgs/tools/graphics/argyllcms/default.nix b/pkgs/tools/graphics/argyllcms/default.nix
index 08cd012e0797..934a27ef25b7 100644
--- a/pkgs/tools/graphics/argyllcms/default.nix
+++ b/pkgs/tools/graphics/argyllcms/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
       -ljpeg -ltiff ;
   '';
 
-  buildNativeInputs = [ jam unzip ];
+  nativeBuildInputs = [ jam unzip ];
 
   preConfigure = ''
     cp ${jamTop} Jamtop
diff --git a/pkgs/tools/graphics/enblend-enfuse/default.nix b/pkgs/tools/graphics/enblend-enfuse/default.nix
index f1759d7a7820..b77d63d510df 100644
--- a/pkgs/tools/graphics/enblend-enfuse/default.nix
+++ b/pkgs/tools/graphics/enblend-enfuse/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ libtiff libpng lcms libxmi boost mesa freeglut glew ];
 
-  buildNativeInputs = [ perl pkgconfig ];
+  nativeBuildInputs = [ perl pkgconfig ];
 
   patches =
     let
diff --git a/pkgs/tools/graphics/pfstools/default.nix b/pkgs/tools/graphics/pfstools/default.nix
index 0c829eab1309..9b0a83725eaa 100644
--- a/pkgs/tools/graphics/pfstools/default.nix
+++ b/pkgs/tools/graphics/pfstools/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libtiff openexr imagemagick libjpeg qt4 mesa freeglut
     bzip2 libX11 libpng expat ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     homepage = http://pfstools.sourceforge.net/;
diff --git a/pkgs/tools/graphics/qrencode/default.nix b/pkgs/tools/graphics/qrencode/default.nix
index 866b121f76ba..3b83a18fd36e 100644
--- a/pkgs/tools/graphics/qrencode/default.nix
+++ b/pkgs/tools/graphics/qrencode/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ libpng ];
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     homepage = http://fukuchi.org/works/qrencode/;
diff --git a/pkgs/tools/misc/coreutils/8.19.nix b/pkgs/tools/misc/coreutils/8.19.nix
new file mode 100644
index 000000000000..f3bee5519600
--- /dev/null
+++ b/pkgs/tools/misc/coreutils/8.19.nix
@@ -0,0 +1,70 @@
+{ stdenv, fetchurl, perl, gmp ? null
+, aclSupport ? false, acl ? null
+, selinuxSupport? false, libselinux ? null, libsepol ? null
+}:
+
+assert aclSupport -> acl != null;
+assert selinuxSupport -> libselinux != null && libsepol != null;
+
+stdenv.mkDerivation rec {
+  name = "coreutils-8.19";
+
+  src = fetchurl {
+    url = "mirror://gnu/coreutils/${name}.tar.xz";
+    sha256 = "1rx9x3fp848w4nny7irdkcpkan9fcx24d99v5dkwgkyq7wc76f5d";
+  };
+
+  nativeBuildInputs = [ perl ];
+  buildInputs = [ gmp ]
+    ++ stdenv.lib.optional aclSupport acl
+    ++ stdenv.lib.optional selinuxSupport libselinux
+    ++ stdenv.lib.optional selinuxSupport libsepol;
+
+  crossAttrs = ({
+    buildInputs = [ gmp ]
+      ++ stdenv.lib.optional aclSupport acl.crossDrv
+      ++ stdenv.lib.optional selinuxSupport libselinux.crossDrv
+      ++ stdenv.lib.optional selinuxSupport libsepol.crossDrv
+      ++ stdenv.lib.optional (stdenv.gccCross.libc ? libiconv)
+        stdenv.gccCross.libc.libiconv.crossDrv;
+
+    # Needed for fstatfs()
+    # I don't know why it is not properly detected cross building with glibc.
+    configureFlags = [ "fu_cv_sys_stat_statfs2_bsize=yes" ];
+    doCheck = false;
+  }
+
+  //
+
+  # XXX: Temporary workaround to allow GNU/Hurd builds with newer libcs.
+  (stdenv.lib.optionalAttrs (stdenv.cross.config == "i586-pc-gnu") {
+    patches = [ ./gets-undeclared.patch ];
+  }));
+
+  # The tests are known broken on Cygwin
+  # (http://thread.gmane.org/gmane.comp.gnu.core-utils.bugs/19025),
+  # Darwin (http://thread.gmane.org/gmane.comp.gnu.core-utils.bugs/19351),
+  # and {Open,Free}BSD.
+  doCheck = stdenv ? glibc;
+
+  enableParallelBuilding = true;
+
+  NIX_LDFLAGS = stdenv.lib.optionalString selinuxSupport "-lsepol";
+
+  meta = {
+    homepage = http://www.gnu.org/software/coreutils/;
+    description = "The basic file, shell and text manipulation utilities of the GNU operating system";
+
+    longDescription = ''
+      The GNU Core Utilities are the basic file, shell and text
+      manipulation utilities of the GNU operating system.  These are
+      the core utilities which are expected to exist on every
+      operating system.
+    '';
+
+    license = "GPLv3+";
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+  };
+}
+
diff --git a/pkgs/tools/misc/coreutils/default.nix b/pkgs/tools/misc/coreutils/default.nix
index 9d9ea52f3f58..065d237a0731 100644
--- a/pkgs/tools/misc/coreutils/default.nix
+++ b/pkgs/tools/misc/coreutils/default.nix
@@ -4,48 +4,41 @@
 }:
 
 assert aclSupport -> acl != null;
-assert selinuxSupport -> ( (libselinux != null) && (libsepol != null) );
+assert selinuxSupport -> libselinux != null && libsepol != null;
 
 stdenv.mkDerivation rec {
-  name = "coreutils-8.15";
+  name = "coreutils-8.21";
 
   src = fetchurl {
     url = "mirror://gnu/coreutils/${name}.tar.xz";
-    sha256 = "176lgw810xw84c6fz5xwhydxggkndmzggl0pxqzldbjf85vv6zl3";
+    sha256 = "064f512185iysqqcvhnhaf3bfmzrvcgs7n405qsyp99zmfyl9amd";
   };
 
-  buildNativeInputs = [ perl ];
+  nativeBuildInputs = [ perl ];
   buildInputs = [ gmp ]
     ++ stdenv.lib.optional aclSupport acl
     ++ stdenv.lib.optional selinuxSupport libselinux
     ++ stdenv.lib.optional selinuxSupport libsepol;
 
-  crossAttrs = ({
+  crossAttrs = {
     buildInputs = [ gmp ]
-      ++ stdenv.lib.optional aclSupport acl.hostDrv
-      ++ stdenv.lib.optional selinuxSupport libselinux.hostDrv
-      ++ stdenv.lib.optional selinuxSupport libsepol.hostDrv
+      ++ stdenv.lib.optional aclSupport acl.crossDrv
+      ++ stdenv.lib.optional selinuxSupport libselinux.crossDrv
+      ++ stdenv.lib.optional selinuxSupport libsepol.crossDrv
       ++ stdenv.lib.optional (stdenv.gccCross.libc ? libiconv)
-        stdenv.gccCross.libc.libiconv.hostDrv;
+        stdenv.gccCross.libc.libiconv.crossDrv;
 
     # Needed for fstatfs()
     # I don't know why it is not properly detected cross building with glibc.
     configureFlags = [ "fu_cv_sys_stat_statfs2_bsize=yes" ];
     doCheck = false;
-  }
-
-  //
-
-  # XXX: Temporary workaround to allow GNU/Hurd builds with newer libcs.
-  (stdenv.lib.optionalAttrs (stdenv.cross.config == "i586-pc-gnu") {
-    patches = [ ./gets-undeclared.patch ];
-  }));
+  };
 
   # The tests are known broken on Cygwin
   # (http://thread.gmane.org/gmane.comp.gnu.core-utils.bugs/19025),
   # Darwin (http://thread.gmane.org/gmane.comp.gnu.core-utils.bugs/19351),
   # and {Open,Free}BSD.
-  doCheck = (stdenv ? glibc);
+  doCheck = stdenv ? glibc;
 
   enableParallelBuilding = true;
 
@@ -67,4 +60,3 @@ stdenv.mkDerivation rec {
     maintainers = [ stdenv.lib.maintainers.ludo ];
   };
 }
-
diff --git a/pkgs/tools/misc/file/511.nix b/pkgs/tools/misc/file/511.nix
deleted file mode 100644
index 4e62462b8b35..000000000000
--- a/pkgs/tools/misc/file/511.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{stdenv, fetchurl, zlib}:
- 
-stdenv.mkDerivation rec {
-  name = "file-5.11";
-
-  buildInputs = [ zlib ];
-
-  src = fetchurl {
-    url = "ftp://ftp.astron.com/pub/file/${name}.tar.gz";
-    sha256 = "c70ae29a28c0585f541d5916fc3248c3e91baa481f63d7ccec53d1534cbcc9b7";
-  };
-
-  meta = {
-    description = "A program that shows the type of files";
-    homepage = "http://darwinsys.com/file";
-  };
-}
diff --git a/pkgs/tools/misc/file/default.nix b/pkgs/tools/misc/file/default.nix
index 38fb0b78cb13..8b141fea8262 100644
--- a/pkgs/tools/misc/file/default.nix
+++ b/pkgs/tools/misc/file/default.nix
@@ -1,18 +1,17 @@
-{stdenv, fetchurl}:
- 
-stdenv.mkDerivation {
-  name = "file-5.04";
+{ stdenv, fetchurl, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "file-5.12";
+
+  buildInputs = [ zlib ];
 
   src = fetchurl {
-    urls = [
-      ftp://ftp.astron.com/pub/file/file-5.04.tar.gz
-      http://pkgs.fedoraproject.org/repo/pkgs/file/file-5.04.tar.gz/accade81ff1cc774904b47c72c8aeea0/file-5.04.tar.gz
-    ];
-    sha256 = "0316lj3jxmp2g8azv0iykmmwjsnjanq93bklccwb6k77jiwnx7jc";
+    url = "ftp://ftp.astron.com/pub/file/${name}.tar.gz";
+    sha256 = "08ix4xrvan0k80n0l5lqfmc4azjv5lyhvhwdxny4r09j5smhv78r";
   };
 
   meta = {
+    homepage = "http://darwinsys.com/file";
     description = "A program that shows the type of files";
-    homepage = ftp://ftp.astron.com/pub/file;
   };
 }
diff --git a/pkgs/tools/misc/findutils/default.nix b/pkgs/tools/misc/findutils/default.nix
index eeb6b852e61f..88cb2c313c0a 100644
--- a/pkgs/tools/misc/findutils/default.nix
+++ b/pkgs/tools/misc/findutils/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "0amn0bbwqvsvvsh6drfwz20ydc2czk374lzw5kksbh6bf78k4ks3";
   };
 
-  buildNativeInputs = [coreutils];
+  nativeBuildInputs = [coreutils];
 
   patches = [ ./findutils-path.patch ./change_echo_path.patch ];
 
diff --git a/pkgs/tools/misc/grub/2.0x.nix b/pkgs/tools/misc/grub/2.0x.nix
index d37ce9f5aac4..d824d76a8649 100644
--- a/pkgs/tools/misc/grub/2.0x.nix
+++ b/pkgs/tools/misc/grub/2.0x.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     sha256 = "0n64hpmsccvicagvr0c6v0kgp2yw0kgnd3jvsyd26cnwgs7c6kkq";
   };
 
-  buildNativeInputs = [ flex bison ];
+  nativeBuildInputs = [ flex bison ];
   buildInputs = [ ncurses libusb freetype gettext devicemapper ]
     ++ stdenv.lib.optional doCheck qemu;
 
@@ -43,6 +43,10 @@ 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 =
diff --git a/pkgs/tools/misc/hddtemp/byteswap.patch b/pkgs/tools/misc/hddtemp/byteswap.patch
new file mode 100644
index 000000000000..7b0dddc2ae47
--- /dev/null
+++ b/pkgs/tools/misc/hddtemp/byteswap.patch
@@ -0,0 +1,28 @@
+diff -Nuar --exclude '*~' hddtemp-0.3-beta15.orig/src/sata.c hddtemp-0.3-beta15/src/sata.c
+--- hddtemp-0.3-beta15.orig/src/sata.c	2006-05-14 02:09:55.579437498 -0700
++++ hddtemp-0.3-beta15/src/sata.c	2006-05-14 02:06:08.495948437 -0700
+@@ -88,7 +88,9 @@
+     return strdup(_("unknown"));
+   else
+   {
++		//fprintf(stderr,"sata_model1=%s\n",identify + 54);
+     sata_fixstring(identify + 54, 24);
++		//fprintf(stderr,"sata_model2=%s\n",identify + 54);
+     return strdup(identify + 54);
+   }
+ }
+diff -Nuar --exclude '*~' hddtemp-0.3-beta15.orig/src/satacmds.c hddtemp-0.3-beta15/src/satacmds.c
+--- hddtemp-0.3-beta15.orig/src/satacmds.c	2006-05-14 02:09:40.983470339 -0700
++++ hddtemp-0.3-beta15/src/satacmds.c	2006-05-14 02:09:02.319557333 -0700
+@@ -98,7 +98,10 @@
+   /* convert from big-endian to host byte order */
+   for (p = end ; p != s;) {
+     unsigned short *pp = (unsigned short *) (p -= 2);
+-    *pp = ntohs(*pp);
++		char tmp = p[0];
++		p[0] = p[1];
++		p[1] = tmp;
++    //*pp = ntohs(*pp);
+   }
+ 
+   /* strip leading blanks */
diff --git a/pkgs/tools/misc/hddtemp/default.nix b/pkgs/tools/misc/hddtemp/default.nix
index 7db9324c2813..df75e7b33896 100644
--- a/pkgs/tools/misc/hddtemp/default.nix
+++ b/pkgs/tools/misc/hddtemp/default.nix
@@ -7,20 +7,23 @@ stdenv.mkDerivation {
     url = http://download.savannah.nongnu.org/releases/hddtemp/hddtemp.db;
     sha256 = "1fr6qgns6qv7cr40lic5yqwkkc7yjmmgx8j0z6d93csg3smzhhya";
   };
-  
+
   src = fetchurl {
     url = http://download.savannah.nongnu.org/releases/hddtemp/hddtemp-0.3-beta15.tar.bz2;
     sha256 = "0nzgg4nl8zm9023wp4dg007z6x3ir60rwbcapr9ks2al81c431b1";
   };
 
+  # from Gentoo
+  patches = [ ./byteswap.patch ./dontwake.patch ./execinfo.patch ./satacmds.patch ];
+
   configurePhase =
     ''
       mkdir -p $out/nix-support
       cp $db $out/nix-support/hddtemp.db
       ./configure --prefix=$out --with-db-path=$out/nix-support/hddtemp.db
-    ''; 
+    '';
 
-  meta = { 
+  meta = {
     description = "Tool for displaying hard disk temperature";
     homepage = https://savannah.nongnu.org/projects/hddtemp/;
     license = "GPL2";
diff --git a/pkgs/tools/misc/hddtemp/dontwake.patch b/pkgs/tools/misc/hddtemp/dontwake.patch
new file mode 100644
index 000000000000..969da7a70e40
--- /dev/null
+++ b/pkgs/tools/misc/hddtemp/dontwake.patch
@@ -0,0 +1,20 @@
+--- hddtemp-0.3-beta15/src/sata.c	2012-07-01 16:35:01.681708074 +0200
++++ hddtemp-0.3-beta15/src/sata.c	2012-07-01 16:33:58.172109699 +0200
+@@ -125,6 +125,17 @@
+     dsk->fd = -1;
+     return GETTEMP_NOSENSOR;
+   }
++
++  switch(ata_get_powermode(dsk->fd)) {
++  case PWM_STANDBY:
++  case PWM_SLEEPING:
++    if (!wakeup)
++      return GETTEMP_DRIVE_SLEEP;
++  case PWM_UNKNOWN:
++  case PWM_ACTIVE: /* active or idle */
++  default:
++    break;
++  }
+   
+   /* get SMART values */
+   if(sata_enable_smart(dsk->fd) != 0) {
diff --git a/pkgs/tools/misc/hddtemp/execinfo.patch b/pkgs/tools/misc/hddtemp/execinfo.patch
new file mode 100644
index 000000000000..1e7239535d4d
--- /dev/null
+++ b/pkgs/tools/misc/hddtemp/execinfo.patch
@@ -0,0 +1,21 @@
+--- hddtemp-0.3-beta15/configure.in~	2005-10-17 19:14:19 +0000
++++ hddtemp-0.3-beta15/configure.in	2006-12-11 18:23:22 +0000
+@@ -18,6 +18,7 @@
+ AC_HEADER_STDC
+ AC_CHECK_HEADERS(fcntl.h)
+ AC_CHECK_HEADERS(netinet/in.h)
++AC_CHECK_HEADERS(execinfo.h)
+ AC_CHECK_TYPE(in_addr_t, ,[AC_DEFINE_UNQUOTED([in_addr_t], [uint32_t], [Define to 'uint32_t' if <netinet/in.h> does not define.])], [#include <netinet/in.h>])
+ 
+ # Checks for typedefs, structures, and compiler characteristics.
+--- hddtemp-0.3-beta15/src/backtrace.c-orig	2006-12-11 18:20:41 +0000
++++ hddtemp-0.3-beta15/src/backtrace.c	2006-12-11 18:23:28 +0000
+@@ -18,7 +18,7 @@
+ 
+ #include <features.h>
+ 
+-#if defined(__i386__) && defined(__GLIBC__)
++#ifdef HAS_EXECINFO_H
+ 
+ #include <execinfo.h>
+ 
diff --git a/pkgs/tools/misc/hddtemp/satacmds.patch b/pkgs/tools/misc/hddtemp/satacmds.patch
new file mode 100644
index 000000000000..d67e0681f33f
--- /dev/null
+++ b/pkgs/tools/misc/hddtemp/satacmds.patch
@@ -0,0 +1,26 @@
+diff -Naurp hddtemp-0.3-beta15-orig/src/satacmds.c hddtemp-0.3-beta15/src/satacmds.c
+--- hddtemp-0.3-beta15-orig/src/satacmds.c	2007-02-10 14:25:15.000000000 +0100
++++ hddtemp-0.3-beta15/src/satacmds.c	2007-02-10 14:26:53.000000000 +0100
+@@ -54,7 +54,6 @@ int sata_pass_thru(int device, unsigned 
+   unsigned char cdb[16];
+   unsigned char sense[32];
+   int dxfer_direction;
+-  int ret;
+   
+   memset(cdb, 0, sizeof(cdb));
+   cdb[0] = ATA_16;
+@@ -78,13 +77,7 @@ int sata_pass_thru(int device, unsigned 
+     cdb[6] = cmd[1];
+   cdb[14] = cmd[0];
+ 
+-  ret = scsi_SG_IO(device, cdb, sizeof(cdb), buffer, cmd[3] * 512, sense, sizeof(sense), dxfer_direction);
+- 
+-  /* Verify SATA magics */
+-  if (sense[0] != 0x72 || sense[7] != 0x0e || sense[9] != 0x0e || sense[10] != 0x00)
+-    return 1;		  
+-  else 
+-    return ret;
++  return scsi_SG_IO(device, cdb, sizeof(cdb), buffer, cmd[3] * 512, sense, sizeof(sense), dxfer_direction);
+ }
+ 
+ void sata_fixstring(unsigned char *s, int bytecount)
diff --git a/pkgs/tools/misc/idutils/default.nix b/pkgs/tools/misc/idutils/default.nix
index 4b81d48b0278..b76b9a187151 100644
--- a/pkgs/tools/misc/idutils/default.nix
+++ b/pkgs/tools/misc/idutils/default.nix
@@ -8,6 +8,13 @@ stdenv.mkDerivation rec {
     sha256 = "1hmai3422iaqnp34kkzxdnywl7n7pvlxp11vrw66ybxn9wxg90c1";
   };
 
+  preConfigure =
+    ''
+       # Fix for building on Glibc 2.16.  Won't be needed once the
+       # gnulib in idutils is updated.
+       sed -i '/gets is a security hole/d' lib/stdio.in.h
+    '';
+
   buildInputs = stdenv.lib.optional stdenv.isLinux emacs;
 
   doCheck = true;
diff --git a/pkgs/tools/misc/partition-manager/default.nix b/pkgs/tools/misc/partition-manager/default.nix
index 46be78965fbd..19a0df261695 100644
--- a/pkgs/tools/misc/partition-manager/default.nix
+++ b/pkgs/tools/misc/partition-manager/default.nix
@@ -1,16 +1,21 @@
-{ stdenv, fetchurl, cmake, gettext, parted, libuuid, qt4, kdelibs, kde_baseapps,
-  automoc4, phonon, perl }:
+{ stdenv, fetchurl, pkgconfig, cmake, gettext, automoc4, perl
+, parted, libuuid, qt4, kdelibs, kde_baseapps, phonon, libatasmart
+}:
 
-stdenv.mkDerivation {
-  name = "partitionmanager-1.0.0";
+stdenv.mkDerivation rec {
+  name = "partitionmanager-1.0.3_p20120804";
 
   src = fetchurl {
-    url = http://www.kde-apps.org/CONTENT/content-files/89595-partitionmanager-1.0.0.tar.bz2;
-    sha256 = "03ibn4vns7pa0ygkp2jh6zcdy106as5cc7p6rv1f5c15wxx0zsk1";
+    #url = "mirror://sourceforge/partitionman/${name}.tar.bz2";
+    # the upstream version is old and doesn't build
+    url = "http://dev.gentoo.org/~kensington/distfiles/${name}.tar.bz2";
+    sha256 = "1j6zpgj8xs98alzxvcibwch9yj8jsx0s7y864gbdx280jmj8c1np";
   };
 
-  buildInputs =
-    [ cmake gettext parted libuuid qt4 kdelibs kde_baseapps automoc4 perl phonon ];
+  buildInputs = [
+    pkgconfig cmake gettext automoc4 perl
+    parted libuuid qt4 kdelibs kde_baseapps phonon libatasmart
+  ];
 
   preConfigure = ''
     export VERBOSE=1
@@ -19,13 +24,13 @@ stdenv.mkDerivation {
 
   postInstall = ''
     set -x
-    rpath=`patchelf --print-rpath $out/bin/partitionmanager-bin`:${qt4}/lib 
+    rpath=`patchelf --print-rpath $out/bin/partitionmanager-bin`:${qt4}/lib
     for p in $out/bin/partitionmanager-bin; do
       patchelf --set-rpath $rpath $p
     done
   '';
 
-  meta = { 
+  meta = {
     description = "Utility program to help you manage the disk devices";
     homepage = http://www.kde-apps.org/content/show.php/KDE+Partition+Manager?content=89595; # ?
     license = "GPL";
diff --git a/pkgs/tools/misc/ttf2pt1/default.nix b/pkgs/tools/misc/ttf2pt1/default.nix
index 379db7d533f0..659b04a62386 100644
--- a/pkgs/tools/misc/ttf2pt1/default.nix
+++ b/pkgs/tools/misc/ttf2pt1/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   '';
 
   buildInputs = [ freetype ];
-  buildNativeInputs = [ perl ];
+  nativeBuildInputs = [ perl ];
   
   patches = ./gentoo-makefile.patch; # also contains the freetype patch
 
diff --git a/pkgs/tools/misc/usbmuxd/default.nix b/pkgs/tools/misc/usbmuxd/default.nix
index c4b412493558..b95dfde98500 100644
--- a/pkgs/tools/misc/usbmuxd/default.nix
+++ b/pkgs/tools/misc/usbmuxd/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "09swwr6x46qxmwylrylnyqh4pznr0swla9gijggwxxw8dw82r840";
   };
 
-  buildNativeInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig ];
   propagatedBuildInputs = [ libusb1 libplist ];
 
   patchPhase =
diff --git a/pkgs/tools/misc/wv2/default.nix b/pkgs/tools/misc/wv2/default.nix
index 7a30d011be26..a3938c1af4c4 100644
--- a/pkgs/tools/misc/wv2/default.nix
+++ b/pkgs/tools/misc/wv2/default.nix
@@ -1,10 +1,19 @@
-{stdenv, fetchurl, pkgconfig, libgsf, glib, libxml2}:
+{ stdenv, fetchurl, pkgconfig, cmake, libgsf, glib, libxml2 }:
 
-stdenv.mkDerivation {
-  name = "wv2-0.3.1";
+stdenv.mkDerivation rec {
+  name = "wv2-0.4.2";
   src = fetchurl {
-    url = mirror://sourceforge/wvware/wv2-0.3.1.tar.bz2;
-    sha256 = "896ff8ec59e280e8cb1ef9a953b364845dd65de1cdf8e4ed8a7e045a3f81c546";
+    url = "mirror://sourceforge/wvware/${name}.tar.bz2";
+    sha256 = "1p1qxr8z5bsiq8pvlina3c8c1vjcb5d96bs3zz4jj3nb20wnsawz";
+  };
+
+  patches = [ ./fix-include.patch ];
+
+  buildInputs = [ pkgconfig cmake libgsf glib libxml2 ];
+
+  meta = {
+    description = "Excellent MS Word filter lib, used in most Office suites";
+    license = "LGPLv2";
+    homepage = http://wvware.sourceforge.net;
   };
-  buildInputs = [ pkgconfig libgsf glib libxml2 ];
 }
diff --git a/pkgs/tools/misc/wv2/fix-include.patch b/pkgs/tools/misc/wv2/fix-include.patch
new file mode 100644
index 000000000000..df34d24af942
--- /dev/null
+++ b/pkgs/tools/misc/wv2/fix-include.patch
@@ -0,0 +1,12 @@
+From: http://sourceforge.net/tracker/?func=detail&aid=3544851&group_id=10501&atid=110501
+--- a/src/olestream.h
++++ b/src/olestream.h
+@@ -23,7 +23,7 @@
+ #include "global.h"  // U8,... typedefs
+ #include <stack>
+ 
+-#include <glib/giochannel.h> // GSeekType
++#include <glib.h> // GSeekType
+ 
+ namespace wvWare {
+ 
diff --git a/pkgs/tools/misc/xburst-tools/default.nix b/pkgs/tools/misc/xburst-tools/default.nix
index 563406e430b8..cc9f98a94f60 100644
--- a/pkgs/tools/misc/xburst-tools/default.nix
+++ b/pkgs/tools/misc/xburst-tools/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
   # Not to strip cross build binaries (this is for the gcc-cross-wrapper)
   dontCrossStrip = true;
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ libusb libusb1 autoconf automake confuse ] ++
     stdenv.lib.optional (gccCross != null) gccCross;
 
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index 16d844d10d5d..09752ec71ce9 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [ python ];
-  buildNativeInputs = [ pandoc zip ];
+  nativeBuildInputs = [ pandoc zip ];
 
   patchPhase = ''
     rm youtube-dl
diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix
index 88cdab38aafd..0f44c67e01cd 100644
--- a/pkgs/tools/networking/curl/default.nix
+++ b/pkgs/tools/networking/curl/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     ${if linkStatic then "--enable-static --disable-shared" else ""}
   '';
 
-  dontDisableStatic = if linkStatic then true else false;
+  dontDisableStatic = linkStatic;
 
   CFLAGS = if stdenv ? isDietLibC then "-DHAVE_INET_NTOA_R_2_ARGS=1" else "";
   LDFLAGS = if linkStatic then "-static" else "";
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
     # We should refer to the cross built openssl
     # For the 'urandom', maybe it should be a cross-system option
     configureFlags = ''
-      ${if sslSupport then "--with-ssl=${openssl.hostDrv}" else "--without-ssl"}
+      ${if sslSupport then "--with-ssl=${openssl.crossDrv}" else "--without-ssl"}
       ${if linkStatic then "--enable-static --disable-shared" else ""}
       --with-random /dev/urandom
     '';
diff --git a/pkgs/tools/networking/inetutils/default.nix b/pkgs/tools/networking/inetutils/default.nix
index 6734465dbba5..24d73ff4d6fe 100644
--- a/pkgs/tools/networking/inetutils/default.nix
+++ b/pkgs/tools/networking/inetutils/default.nix
@@ -1,18 +1,26 @@
 { stdenv, fetchurl, ncurses }:
 
 stdenv.mkDerivation rec {
-  name = "inetutils-1.8";
+  name = "inetutils-1.9.1";
 
   src = fetchurl {
     url = "mirror://gnu/inetutils/${name}.tar.gz";
-    sha256 = "1iqihfv54nzjmclivys2dpcyfhavgynj8pp6r44a97jbw2p0nl68";
+    sha256 = "0azzg6njgq79byl6960kb0wihfhhzf49snslhxgvi30ribgfpa82";
   };
 
   buildInputs = [ ncurses /* for `talk' */ ];
 
   configureFlags = "--with-ncurses-include-dir=${ncurses}/include";
 
-  doCheck = true;
+  preConfigure = ''
+     # Fix for building on Glibc 2.16.  Won't be needed once the
+     # gnulib in inetutils is updated.
+     sed -i '/gets is a security hole/d' lib/stdio.in.h
+  '';
+
+  # Test fails with "UNIX socket name too long", probably because our
+  # $TMPDIR is too long.
+  #doCheck = true;
 
   postInstall = ''
     # XXX: These programs are normally installed setuid but since it
diff --git a/pkgs/tools/networking/lftp/default.nix b/pkgs/tools/networking/lftp/default.nix
index 64e7ac50bc0f..e2d1d8ed62a3 100644
--- a/pkgs/tools/networking/lftp/default.nix
+++ b/pkgs/tools/networking/lftp/default.nix
@@ -1,12 +1,20 @@
-{stdenv, fetchurl, gnutls, libtasn1, pkgconfig, readline, zlib, xz}:
+{ stdenv, fetchurl, gnutls, pkgconfig, readline, zlib, xz }:
 
 stdenv.mkDerivation rec {
-  name = "lftp-4.3.1";
+  name = "lftp-4.4.0";
 
   src = fetchurl {
     url = "ftp://ftp.cs.tu-berlin.de/pub/net/ftp/lftp/${name}.tar.xz";
-    sha256 = "0v3591fknmimarzk5icm0qxdcfzfckwi2drh165vsiggmj590iyx";
+    sha256 = "0cg4gabya2sygbwh2b0cdr8v719q9gv929hdb5g1mxgj8npjd4y7";
   };
 
-  buildInputs = [gnutls libtasn1 pkgconfig readline zlib];
+  patches = [ ./no-gets.patch ];
+
+  buildInputs = [ gnutls pkgconfig readline zlib ];
+
+  meta = {
+    homepage = http://lftp.yar.ru/;
+    description = "A file transfer program supporting a number of network protocols";
+    license = "GPL";
+  };
 }
diff --git a/pkgs/tools/networking/lftp/no-gets.patch b/pkgs/tools/networking/lftp/no-gets.patch
new file mode 100644
index 000000000000..0c2cb7c8ae6c
--- /dev/null
+++ b/pkgs/tools/networking/lftp/no-gets.patch
@@ -0,0 +1,15 @@
+--- a/lib/stdio.in.h
++++ b/lib/stdio.in.h
+@@ -702,10 +702,12 @@
+ /* It is very rare that the developer ever has full control of stdin,
+    so any use of gets warrants an unconditional warning; besides, C11
+    removed it.  */
++#ifdef gets
+ #undef gets
+ #if HAVE_RAW_DECL_GETS
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+ #endif
++#endif
+ 
+ 
+ #if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@
diff --git a/pkgs/tools/networking/mailutils/default.nix b/pkgs/tools/networking/mailutils/default.nix
index 43293b795782..3a84516cd370 100644
--- a/pkgs/tools/networking/mailutils/default.nix
+++ b/pkgs/tools/networking/mailutils/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0szbqa12zqzldqyw97lxqax3ja2adis83i7brdfsxmrfw68iaf65";
   };
 
-  patches = [ ./path-to-cat.patch ];
+  patches = [ ./path-to-cat.patch ./no-gets.patch ];
 
   buildInputs =
    [ gettext gdbm libtool pam readline ncurses
diff --git a/pkgs/tools/networking/mailutils/no-gets.patch b/pkgs/tools/networking/mailutils/no-gets.patch
new file mode 100644
index 000000000000..d72fa3f056cc
--- /dev/null
+++ b/pkgs/tools/networking/mailutils/no-gets.patch
@@ -0,0 +1,14 @@
+--- a/lib/stdio.in.h
++++ b/lib/stdio.in.h
+@@ -138,8 +138,10 @@
+ /* It is very rare that the developer ever has full control of stdin,
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
+-#undef gets
++#ifdef gets
++# undef gets
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
++#endif
+ 
+ #if @GNULIB_FOPEN@
+ # if @REPLACE_FOPEN@
diff --git a/pkgs/tools/networking/modemmanager/default.nix b/pkgs/tools/networking/modemmanager/default.nix
index d3198cee32c7..bfa673eff09f 100644
--- a/pkgs/tools/networking/modemmanager/default.nix
+++ b/pkgs/tools/networking/modemmanager/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1fdf5d5cc494825afe9f551248e00a2d91e220e88435b47f109ca2a707a40f1f";
   };
 
-  buildNativeInputs = [ intltool pkgconfig ];
+  nativeBuildInputs = [ intltool pkgconfig ];
 
   buildInputs = [ udev polkit dbus_glib ppp ];
 
diff --git a/pkgs/tools/networking/netboot/default.nix b/pkgs/tools/networking/netboot/default.nix
index 684507a1d2e0..ec49770d269b 100644
--- a/pkgs/tools/networking/netboot/default.nix
+++ b/pkgs/tools/networking/netboot/default.nix
@@ -1,46 +1,33 @@
 x@{builderDefsPackage
-  , fetchgit, ...}:
+  , fetchurl, yacc, bison, ...}:
 builderDefsPackage
-(a :  
-let 
-  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
-    ["fetchgit"];
+(a :
+let
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
+    [];
 
   buildInputs = map (n: builtins.getAttr n x)
     (builtins.attrNames (builtins.removeAttrs x helperArgNames));
   sourceInfo = rec {
-    version="git-head-${rev}";
+    version="0.10.2";
     baseName="netboot";
-    rev="19a955cd87b399a5b56";
-    name="${baseName}-git-head";
-    url="git://github.com/ITikhonov/netboot.git";
-    hash="7610c734dc46183439c161d327e7ef6a3d5bc07b5173850b92f71ec047b109d6";
+    name="${baseName}-${version}";
+    url="mirror://sourceforge/netboot/${name}.tar.gz";
+    hash="09w09bvwgb0xzn8hjz5rhi3aibysdadbg693ahn8rylnqfq4hwg0";
   };
 in
 rec {
-  srcDrv = a.fetchgit {
+  src = a.fetchurl {
     url = sourceInfo.url;
     sha256 = sourceInfo.hash;
-    rev = sourceInfo.rev;
   };
 
-  src=srcDrv + "/";
-
   inherit (sourceInfo) name version;
   inherit buildInputs;
 
   /* doConfigure should be removed if not needed */
-  phaseNames = ["doBuild" "doDeploy"];
-
-  doBuild = a.fullDepEntry ''
-    gcc netboot.c -o netboot
-  '' ["doUnpack" "addInputs"];
+  phaseNames = ["doUnpack" "doConfigure" "doMakeInstall"];
 
-  doDeploy = a.fullDepEntry ''
-    mkdir -p "$out/bin"
-    cp netboot "$out/bin"
-  '' ["defEnsureDir" "minInit"];
-      
   meta = {
     description = "Mini PXE server";
     maintainers = with a.lib.maintainers;
diff --git a/pkgs/tools/networking/network-manager-applet/default.nix b/pkgs/tools/networking/network-manager-applet/default.nix
index 042fd58c8f10..d38bbcae014d 100644
--- a/pkgs/tools/networking/network-manager-applet/default.nix
+++ b/pkgs/tools/networking/network-manager-applet/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     polkit isocodes 
   ];
 
-  buildNativeInputs = [ intltool pkgconfig ];
+  nativeBuildInputs = [ intltool pkgconfig ];
 
   makeFlags = [
     ''CFLAGS=-DMOBILE_BROADBAND_PROVIDER_INFO=\"${mobile_broadband_provider_info}/share/mobile-broadband-provider-info/serviceproviders.xml\"''
diff --git a/pkgs/tools/networking/network-manager/default.nix b/pkgs/tools/networking/network-manager/default.nix
index 0e3eaecf4cb0..d9e73a706dbe 100644
--- a/pkgs/tools/networking/network-manager/default.nix
+++ b/pkgs/tools/networking/network-manager/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ dbus_glib gnutls libgcrypt ];
 
-  buildNativeInputs = [ intltool pkgconfig ];
+  nativeBuildInputs = [ intltool pkgconfig ];
 
   patches =
     [ ( substituteAll {
diff --git a/pkgs/tools/networking/network-manager/pptp.nix b/pkgs/tools/networking/network-manager/pptp.nix
index 8d2acfe9b316..b71e41c8b56a 100644
--- a/pkgs/tools/networking/network-manager/pptp.nix
+++ b/pkgs/tools/networking/network-manager/pptp.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ networkmanager pptp ppp ]
     ++ stdenv.lib.optionals withGnome [ gtk libgnome_keyring ];
 
-  buildNativeInputs = [ intltool pkgconfig ];
+  nativeBuildInputs = [ intltool pkgconfig ];
 
   configureFlags =
     if withGnome then "--with-gnome --with-gtkver=2" else "--without-gnome";
diff --git a/pkgs/tools/networking/networkmanagement/default.nix b/pkgs/tools/networking/networkmanagement/default.nix
index 1919186586a6..474a46387588 100644
--- a/pkgs/tools/networking/networkmanagement/default.nix
+++ b/pkgs/tools/networking/networkmanagement/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [ kdelibs kde_workspace networkmanager ];
-  buildNativeInputs = [ gettext pkgconfig ];
+  nativeBuildInputs = [ gettext pkgconfig ];
 
   NIX_CFLAGS_COMPILE="-I${kde_workspace}/include/solid/control";
 
diff --git a/pkgs/tools/networking/ntop/default.nix b/pkgs/tools/networking/ntop/default.nix
index 945effabcfbd..48f2c9f08938 100644
--- a/pkgs/tools/networking/ntop/default.nix
+++ b/pkgs/tools/networking/ntop/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     cp ${libtool}/share/aclocal/libtool.m4 libtool.m4.in
   '';
 
-  buildNativeInputs = [ autoconf automake libtool wget libpcap gdbm zlib openssl rrdtool
+  nativeBuildInputs = [ autoconf automake libtool wget libpcap gdbm zlib openssl rrdtool
     python geoip ];
 
   meta = {
diff --git a/pkgs/tools/networking/openssh/default.nix b/pkgs/tools/networking/openssh/default.nix
index 2d60b0f0e304..1c0ed3c6e778 100644
--- a/pkgs/tools/networking/openssh/default.nix
+++ b/pkgs/tools/networking/openssh/default.nix
@@ -28,7 +28,6 @@ stdenv.mkDerivation rec {
 
   patches = [ ./locale_archive.patch ];
 
-  buildNativeInptus = [ perl ];
   buildInputs = [ zlib openssl libedit pkgconfig pam ];
 
   # I set --disable-strip because later we strip anyway. And it fails to strip
diff --git a/pkgs/tools/networking/pptp/default.nix b/pkgs/tools/networking/pptp/default.nix
index 88f1a86a2edc..5bfb6f58bea2 100644
--- a/pkgs/tools/networking/pptp/default.nix
+++ b/pkgs/tools/networking/pptp/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
           MANDIR=$out/share/man/man8 PPPDIR=$out/etc/ppp )
     '';
 
-  buildNativeInputs = [ perl ];
+  nativeBuildInputs = [ perl ];
 
   meta = {
     description = "PPTP client for Linux";
diff --git a/pkgs/tools/networking/surfraw/default.nix b/pkgs/tools/networking/surfraw/default.nix
index 6fcc031aab4b..bd3a1135a845 100644
--- a/pkgs/tools/networking/surfraw/default.nix
+++ b/pkgs/tools/networking/surfraw/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     "--disable-opensearch"
   ];
 
-  buildNativeInputs = [ perl ];
+  nativeBuildInputs = [ perl ];
 
   meta = {
     description = "Provides a fast unix command line interface to a variety of popular WWW search engines and other artifacts of power";
diff --git a/pkgs/tools/networking/wget/default.nix b/pkgs/tools/networking/wget/default.nix
index 3199c1cadb84..3b6c28d2ac11 100644
--- a/pkgs/tools/networking/wget/default.nix
+++ b/pkgs/tools/networking/wget/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
        done
     '';
 
-  buildNativeInputs = [ gettext ];
+  nativeBuildInputs = [ gettext ];
   buildInputs =
     stdenv.lib.optionals doCheck [ perl LWP ]
     ++ stdenv.lib.optional (gnutls != null) gnutls;
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index b4af004e2b0a..e8255ccb2966 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "c53ec8a5518445bea658e1edb4e3be8c315b583aefc55d6969f2bf6f6c805239";
   };
 
-  buildNativeInputs = [ perl pkgconfig ];
+  nativeBuildInputs = [ perl pkgconfig ];
 
   buildInputs = [ curl openssl boehmgc sqlite ];
 
@@ -43,8 +43,8 @@ stdenv.mkDerivation rec {
 
   crossAttrs = {
     postUnpack =
-      '' export CPATH="${bzip2.hostDrv}/include"
-         export NIX_CROSS_LDFLAGS="-L${bzip2.hostDrv}/lib -rpath-link ${bzip2.hostDrv}/lib $NIX_CROSS_LDFLAGS"
+      '' export CPATH="${bzip2.crossDrv}/include"
+         export NIX_CROSS_LDFLAGS="-L${bzip2.crossDrv}/lib -rpath-link ${bzip2.crossDrv}/lib $NIX_CROSS_LDFLAGS"
       '';
 
     configureFlags =
diff --git a/pkgs/tools/package-management/nix/unstable.nix b/pkgs/tools/package-management/nix/unstable.nix
index 38dd3fa809bc..ff36e0cc3cc5 100644
--- a/pkgs/tools/package-management/nix/unstable.nix
+++ b/pkgs/tools/package-management/nix/unstable.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "7478fd6fea91ec094645e8487b9ef001abd300703d79e04743f4d212469cf13d";
   };
 
-  buildNativeInputs = [ perl pkgconfig ];
+  nativeBuildInputs = [ perl pkgconfig ];
 
   buildInputs = [ curl openssl boehmgc sqlite ];
 
@@ -43,8 +43,8 @@ stdenv.mkDerivation rec {
 
   crossAttrs = {
     postUnpack =
-      '' export CPATH="${bzip2.hostDrv}/include"
-         export NIX_CROSS_LDFLAGS="-L${bzip2.hostDrv}/lib -rpath-link ${bzip2.hostDrv}/lib $NIX_CROSS_LDFLAGS"
+      '' export CPATH="${bzip2.crossDrv}/include"
+         export NIX_CROSS_LDFLAGS="-L${bzip2.crossDrv}/lib -rpath-link ${bzip2.crossDrv}/lib $NIX_CROSS_LDFLAGS"
       '';
 
     configureFlags =
diff --git a/pkgs/tools/security/ccid/default.nix b/pkgs/tools/security/ccid/default.nix
index 896e034ee76b..0e607092412b 100644
--- a/pkgs/tools/security/ccid/default.nix
+++ b/pkgs/tools/security/ccid/default.nix
@@ -1,20 +1,21 @@
-{stdenv, fetchurl, pcsclite, pkgconfig, libusb, perl}:
-stdenv.mkDerivation {
-  name = "ccid-1.3.11";
+{ stdenv, fetchurl, pcsclite, pkgconfig, libusb1, perl }:
+stdenv.mkDerivation rec {
+  name = "ccid-1.4.9";
 
   src = fetchurl {
-    url = https://alioth.debian.org/frs/download.php/3080/ccid-1.3.11.tar.bz2;
-    sha256 = "01l9956wids087d38bprr8jqcl05j48cdp25k9q7vzran215mgzp";
+    url = "https://alioth.debian.org/frs/download.php/3866/${name}.tar.bz2";
+    sha256 = "1dj0cw4js4ab678l94rf9p8a8gppkf1hm66qhmq5ajra6r5nv3m9";
   };
 
   patchPhase = ''
     sed -i 's,/usr/bin/env perl,${perl}/bin/perl,' src/*.pl
+    substituteInPlace src/Makefile.in --replace /bin/echo echo
   '';
   preConfigure = ''
     configureFlags="$configureFlags --enable-usbdropdir=$out/pcsc/drivers"
   '';
 
-  buildInputs = [ pcsclite pkgconfig libusb ];
+  buildInputs = [ pcsclite pkgconfig libusb1 ];
 
   meta = {
     description = "ccid drivers for pcsclite";
diff --git a/pkgs/tools/security/ccrypt/default.nix b/pkgs/tools/security/ccrypt/default.nix
index a134f45c988e..5653af424d1e 100644
--- a/pkgs/tools/security/ccrypt/default.nix
+++ b/pkgs/tools/security/ccrypt/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "1bzbfq19jnnlp221kilzxpy0l6w3hk9b1iqjz4haypzlyxswnf35";
   };
 
-  buildNativeInputs = [ perl ];
+  nativeBuildInputs = [ perl ];
 
   meta = {
     homepage = http://ccrypt.sourceforge.net/;
diff --git a/pkgs/tools/security/pcsclite/default.nix b/pkgs/tools/security/pcsclite/default.nix
index 28a673d03eff..de0fef9b73f3 100644
--- a/pkgs/tools/security/pcsclite/default.nix
+++ b/pkgs/tools/security/pcsclite/default.nix
@@ -1,23 +1,26 @@
-{ stdenv, fetchurl, udev, pkgconfig, dbus_libs }:
+{ stdenv, fetchurl, pkgconfig, udev, dbus_libs, perl }:
 
 stdenv.mkDerivation rec {
-  name = "pcsclite-1.7.4";
+  name = "pcsclite-1.8.8";
 
   src = fetchurl {
-    url = "http://alioth.debian.org/frs/download.php/3598/${name}.tar.bz2";
-    sha256 = "1lc3amxisv2ya51v0gysygldj25kv7zj81famv69s205mvmagr6q";
+    url = "http://alioth.debian.org/frs/download.php/3862/${name}.tar.bz2";
+    sha256 = "1rw5530vr2jf02ziyf32jbd98n5q8zjcfwp5nkw3x3bkgr53arpy";
   };
 
   # The OS should care on preparing the drivers into this location
-  configureFlags = [ "--enable-usbdropdir=/var/lib/pcsc/drivers" ];
+  configureFlags = [
+    "--enable-usbdropdir=/var/lib/pcsc/drivers"
+    "--with-systemdsystemunitdir=$out/lib/systemd/system" # probably
+  ];
 
   preConfigure = ''
     configureFlags="$configureFlags --enable-confdir=$out/etc"
   '';
 
-  buildInputs = [ udev dbus_libs ];
+  buildInputs = [ udev dbus_libs perl ];
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     description = "Middleware to access a smart card using SCard API (PC/SC)";
diff --git a/pkgs/tools/security/pinentry/default.nix b/pkgs/tools/security/pinentry/default.nix
index ba4ce8a3e220..543c5d81ba1a 100644
--- a/pkgs/tools/security/pinentry/default.nix
+++ b/pkgs/tools/security/pinentry/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     ++ (if useGtk then ["--enable-pinentry-gtk2"] else ["--disable-pinentry-gtk"])
     ++ (if useQt4 then ["--enable-pinentry-qt4"] else ["--disable-pinentry-qt4"]);
 
-  buildNativeInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   meta = {
     homepage = "http://gnupg.org/aegypten2/";
diff --git a/pkgs/tools/security/polkit-gnome/default.nix b/pkgs/tools/security/polkit-gnome/default.nix
index b70aa427031e..c06aac204a1c 100644
--- a/pkgs/tools/security/polkit-gnome/default.nix
+++ b/pkgs/tools/security/polkit-gnome/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [ polkit gtk3 ];
-  buildNativeInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
 
   configureFlags = "--disable-introspection";
 
diff --git a/pkgs/tools/security/polkit-kde-agent/default.nix b/pkgs/tools/security/polkit-kde-agent/default.nix
index 10836366b187..7696ee93bce0 100644
--- a/pkgs/tools/security/polkit-kde-agent/default.nix
+++ b/pkgs/tools/security/polkit-kde-agent/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ kdelibs polkit_qt_1 ];
 
-  buildNativeInputs = [ gettext ];
+  nativeBuildInputs = [ gettext ];
 
   patchPhase = "sed -e s/KDE4_AUTOSTART/AUTOSTART/ -i CMakeLists.txt";
 
diff --git a/pkgs/tools/system/acct/default.nix b/pkgs/tools/system/acct/default.nix
index 003dbb45a2a4..a2ea6176c746 100644
--- a/pkgs/tools/system/acct/default.nix
+++ b/pkgs/tools/system/acct/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "1mbg18acrva5m7kxc9pzhaknsqm4r90nrp7ax9jkm9wjkrxwhqs1";
   };
 
+  patches = [ ./no-gets.patch ];
+
   doCheck = true;
 
   meta = {
diff --git a/pkgs/tools/system/acct/no-gets.patch b/pkgs/tools/system/acct/no-gets.patch
new file mode 100644
index 000000000000..3478b66de9db
--- /dev/null
+++ b/pkgs/tools/system/acct/no-gets.patch
@@ -0,0 +1,22 @@
+hack until acct pulls a newer gnulib version
+
+From 66712c23388e93e5c518ebc8515140fa0c807348 Mon Sep 17 00:00:00 2001
+From: Eric Blake <eblake@redhat.com>
+Date: Thu, 29 Mar 2012 13:30:41 -0600
+Subject: [PATCH] stdio: don't assume gets any more
+
+Gnulib intentionally does not have a gets module, and now that C11
+and glibc have dropped it, we should be more proactive about warning
+any user on a platform that still has a declaration of this dangerous
+interface.
+
+--- a/lib/stdio.in.h
++++ b/lib/stdio.in.h
+@@ -125,7 +125,6 @@
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
+ #undef gets
+-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+ 
+ #if @GNULIB_FOPEN@
+ # if @REPLACE_FOPEN@
diff --git a/pkgs/tools/text/diffutils/default.nix b/pkgs/tools/text/diffutils/default.nix
index 086a44675a9a..fc4293ad7cff 100644
--- a/pkgs/tools/text/diffutils/default.nix
+++ b/pkgs/tools/text/diffutils/default.nix
@@ -1,28 +1,20 @@
-{stdenv, fetchurl, coreutils ? null}:
+{ stdenv, fetchurl, coreutils ? null }:
 
-stdenv.mkDerivation ({
+stdenv.mkDerivation {
   name = "diffutils-3.2";
-  
+
   src = fetchurl {
     url = mirror://gnu/diffutils/diffutils-3.2.tar.gz;
     sha256 = "1lsf0ln0h3mnm2y0mwgrfk0lyfi7bnm4r886acvdrrsvc7pypaia";
   };
-  
+
+  patches = [ ./gets-undeclared.patch ];
+
   /* If no explicit coreutils is given, use the one from stdenv. */
-  buildNativeInputs = [coreutils];
+  nativeBuildInputs = [ coreutils ];
 
   meta = {
     homepage = http://www.gnu.org/software/diffutils/diffutils.html;
     description = "Commands for showing the differences between files (diff, cmp, etc.)";
   };
 }
-
-//
-
-{
-  crossAttrs =
-    # XXX: Temporary workaround to allow GNU/Hurd builds with newer libcs.
-    (stdenv.lib.optionalAttrs (stdenv.cross.config == "i586-pc-gnu") {
-      patches = [ ../../misc/coreutils/gets-undeclared.patch ];
-    });
-})
diff --git a/pkgs/tools/text/diffutils/gets-undeclared.patch b/pkgs/tools/text/diffutils/gets-undeclared.patch
new file mode 100644
index 000000000000..b6cdc77caa84
--- /dev/null
+++ b/pkgs/tools/text/diffutils/gets-undeclared.patch
@@ -0,0 +1,71 @@
+This patch is needed to allow builds with newer versions of
+the GNU libc (2.16+).
+
+
+commit 66712c23388e93e5c518ebc8515140fa0c807348
+Author: Eric Blake <eblake@redhat.com>
+Date:   Thu Mar 29 13:30:41 2012 -0600
+
+    stdio: don't assume gets any more
+    
+    Gnulib intentionally does not have a gets module, and now that C11
+    and glibc have dropped it, we should be more proactive about warning
+    any user on a platform that still has a declaration of this dangerous
+    interface.
+    
+    * m4/stdio_h.m4 (gl_STDIO_H, gl_STDIO_H_DEFAULTS): Drop gets
+    support.
+    * modules/stdio (Makefile.am): Likewise.
+    * lib/stdio-read.c (gets): Likewise.
+    * tests/test-stdio-c++.cc: Likewise.
+    * m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Fix comment.
+    * lib/stdio.in.h (gets): Make warning occur in more places.
+    * doc/posix-functions/gets.texi (gets): Update documentation.
+    Reported by Christer Solskogen.
+    
+    Signed-off-by: Eric Blake <eblake@redhat.com>
+
+diff --git a/lib/stdio.in.h b/lib/stdio.in.h
+index aa7b599..c377b6e 100644
+--- a/lib/stdio.in.h
++++ b/lib/stdio.in.h
+@@ -698,22 +698,11 @@ _GL_WARN_ON_USE (getline, "getline is unportable - "
+ # endif
+ #endif
+ 
+-#if @GNULIB_GETS@
+-# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+-#   undef gets
+-#   define gets rpl_gets
+-#  endif
+-_GL_FUNCDECL_RPL (gets, char *, (char *s) _GL_ARG_NONNULL ((1)));
+-_GL_CXXALIAS_RPL (gets, char *, (char *s));
+-# else
+-_GL_CXXALIAS_SYS (gets, char *, (char *s));
+-#  undef gets
+-# endif
+-_GL_CXXALIASWARN (gets);
+ /* It is very rare that the developer ever has full control of stdin,
+-   so any use of gets warrants an unconditional warning.  Assume it is
+-   always declared, since it is required by C89.  */
++   so any use of gets warrants an unconditional warning; besides, C11
++   removed it.  */
++#undef gets
++#if HAVE_RAW_DECL_GETS
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+ #endif
+ 
+@@ -1053,9 +1042,9 @@ _GL_WARN_ON_USE (snprintf, "snprintf is unportable - "
+ # endif
+ #endif
+ 
+-/* Some people would argue that sprintf should be handled like gets
+-   (for example, OpenBSD issues a link warning for both functions),
+-   since both can cause security holes due to buffer overruns.
++/* Some people would argue that all sprintf uses should be warned about
++   (for example, OpenBSD issues a link warning for it),
++   since it can cause security holes due to buffer overruns.
+    However, we believe that sprintf can be used safely, and is more
+    efficient than snprintf in those safe cases; and as proof of our
+    belief, we use sprintf in several gnulib modules.  So this header
diff --git a/pkgs/tools/text/gawk/default.nix b/pkgs/tools/text/gawk/default.nix
index bb6e4e20d244..29b3936a0ba9 100644
--- a/pkgs/tools/text/gawk/default.nix
+++ b/pkgs/tools/text/gawk/default.nix
@@ -1,14 +1,16 @@
 { stdenv, fetchurl, libsigsegv }:
 
-stdenv.mkDerivation (rec {
-  name = "gawk-4.0.0";
+stdenv.mkDerivation rec {
+  name = "gawk-4.0.2";
 
   src = fetchurl {
-    url = "mirror://gnu/gawk/${name}.tar.bz2";
-    sha256 = "0sss7rhpvizi2a88h6giv0i7w5h07s2fxkw3s6n1hqvcnhrfgbb0";
+    url = "mirror://gnu/gawk/${name}.tar.xz";
+    sha256 = "04vd0axif762mf781pj3days6ilv2333b9zi9c50y5mma66g5q91";
   };
 
-  doCheck = !stdenv.isCygwin;      # XXX: `test-dup2' segfaults on Cygwin 6.1
+  patches = stdenv.lib.optional stdenv.isCygwin [ ./cygwin-identifiers.patch ];
+
+  doCheck = !stdenv.isCygwin; # XXX: `test-dup2' segfaults on Cygwin 6.1
 
   buildInputs = [ libsigsegv ];
 
@@ -37,9 +39,3 @@ stdenv.mkDerivation (rec {
     maintainers = [ stdenv.lib.maintainers.ludo ];
   };
 }
-
-//
-
-stdenv.lib.optionalAttrs stdenv.isCygwin {
-  patches = [ ./cygwin-identifiers.patch ];
-})
diff --git a/pkgs/tools/text/gnugrep/default.nix b/pkgs/tools/text/gnugrep/default.nix
index 8368edef6563..98a737339d27 100644
--- a/pkgs/tools/text/gnugrep/default.nix
+++ b/pkgs/tools/text/gnugrep/default.nix
@@ -1,19 +1,21 @@
 { stdenv, fetchurl, pcre, libiconv ? null }:
 
-let version = "2.10"; in
+let version = "2.14"; in
 
-stdenv.mkDerivation ({
+stdenv.mkDerivation {
   name = "gnugrep-${version}";
 
   src = fetchurl {
     url = "mirror://gnu/grep/grep-${version}.tar.xz";
-    sha256 = "1cvsqyfzk1p38fcaav22dn76fkd02g7bjnqna6vrpk9vy9rnfybc";
+    sha256 = "1qbjb1l7f9blckc5pqy8jlf6482hpx4awn2acmhyf5mv9wfq03p7";
   };
 
   buildInputs = [ pcre ]
-    ++ (stdenv.lib.optional (libiconv != null) libiconv);
+    ++ stdenv.lib.optional (libiconv != null) libiconv;
 
-  doCheck = if stdenv.isDarwin then false else true;
+  NIX_LDFLAGS = stdenv.lib.optionalString (libiconv != null) "-L${libiconv}/lib -liconv";
+
+  doCheck = !stdenv.isDarwin;
 
   # On Mac OS X, force use of mkdir -p, since Grep's fallback
   # (./install-sh) is broken.
@@ -38,4 +40,4 @@ stdenv.mkDerivation ({
   };
 
   passthru = {inherit pcre;};
-} // (if libiconv != null then { NIX_LDFLAGS="-L${libiconv}/lib -liconv"; } else {}) )
+}
diff --git a/pkgs/tools/text/gnupatch/darwin-fix.patch b/pkgs/tools/text/gnupatch/darwin-fix.patch
deleted file mode 100644
index 50d085348148..000000000000
--- a/pkgs/tools/text/gnupatch/darwin-fix.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-Fix builds on Darwin:
-http://lists.gnu.org/archive/html/bug-patch/2010-01/msg00004.html .
-
-
-commit 2c4e3ecddec8a686bd50d238f4cefebb950298b7
-Author: Andreas Gruenbacher <agruen@suse.de>
-Date:   Fri Jan 1 15:58:15 2010 +0100
-
-    * Makefile.in (LIBSRCS, LIBM4FILES): Add the missing files strnlen.c,
-    strnlen.m4, and safe-read.m4.
-
-diff --git a/Makefile.in b/Makefile.in
-index 3b3d78a..26dc281 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -91,6 +91,7 @@ LIBSRCS = \
- 	gl/lib/stripslash.c \
- 	gl/lib/strncasecmp.c \
- 	gl/lib/strndup.c \
-+	gl/lib/strnlen.c \
- 	gl/lib/xmalloc.c \
- 	gl/lib/xstrndup.c
-
-
-Add the missing bits from Gnulib.
-
---- /dev/null	2012-04-23 08:54:35.747205543 +0200
-+++ b/gl/lib/strnlen.c	2012-01-16 22:35:02.000000000 +0100
-@@ -0,0 +1,31 @@
-+/* Find the length of STRING, but scan at most MAXLEN characters.
-+   Copyright (C) 2005-2007, 2009-2012 Free Software Foundation, Inc.
-+   Written by Simon Josefsson.
-+
-+   This program is free software; you can redistribute it and/or modify
-+   it under the terms of the GNU General Public License as published by
-+   the Free Software Foundation; either version 2, 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, write to the Free Software Foundation,
-+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-+
-+#include <config.h>
-+
-+#include <string.h>
-+
-+/* Find the length of STRING, but scan at most MAXLEN characters.
-+   If no '\0' terminator is found in that many characters, return MAXLEN.  */
-+
-+size_t
-+strnlen (const char *string, size_t maxlen)
-+{
-+  const char *end = memchr (string, '\0', maxlen);
-+  return end ? (size_t) (end - string) : maxlen;
-+}
diff --git a/pkgs/tools/text/gnupatch/default.nix b/pkgs/tools/text/gnupatch/default.nix
index a7a166c95c3b..c8c336ad202c 100644
--- a/pkgs/tools/text/gnupatch/default.nix
+++ b/pkgs/tools/text/gnupatch/default.nix
@@ -1,20 +1,21 @@
 { stdenv, fetchurl, ed }:
 
-stdenv.mkDerivation (rec {
-  name = "patch-2.6.1";
+stdenv.mkDerivation rec {
+  name = "patch-2.7.1";
 
   src = fetchurl {
     url = "mirror://gnu/patch/${name}.tar.gz";
-    sha256 = "1fc1jyq80nswkf492fiqdbl2bhvlw2wb44ghqlfd3zngx4qkfmni";
+    sha256 = "1m9r83b5c154xnxbvgjg4lfff58xjapanj6dmmivqx1liik2hpy0";
   };
 
-  buildInputs = (stdenv.lib.optional doCheck ed);
+  buildInputs = stdenv.lib.optional doCheck ed;
 
   crossAttrs = {
     configureFlags = [ "ac_cv_func_strnlen_working=yes" ];
   };
 
-  doCheck = true;
+  # Tests fail on FreeBSD due to a Bashism in the tests.
+  doCheck = !stdenv.isFreeBSD;
 
   meta = {
     description = "GNU Patch, a program to apply differences to files";
@@ -33,9 +34,3 @@ stdenv.mkDerivation (rec {
     platforms = stdenv.lib.platforms.all;
   };
 }
-
-//
-
-(stdenv.lib.optionalAttrs stdenv.isDarwin {
-  patches = [ ./darwin-fix.patch ];
-}))
diff --git a/pkgs/tools/text/groff/default.nix b/pkgs/tools/text/groff/default.nix
index 243fe8dcab81..90c5ef0ba819 100644
--- a/pkgs/tools/text/groff/default.nix
+++ b/pkgs/tools/text/groff/default.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, ghostscript, perl, groff }:
 
 stdenv.mkDerivation rec {
-  name = "groff-1.20.1";
+  name = "groff-1.22.2";
 
   src = fetchurl {
     url = "mirror://gnu/groff/${name}.tar.gz";
-    sha256 = "01fq5i68p4s4fc6m8i90y5d28wk1x6zh2mkw85n0qqnb6n0qfidn";
+    sha256 = "0xi07nhj5vdgax37rj25mwxzdmsz1ifx50hjgc6hqbkpqkd6821q";
   };
 
   buildInputs = [ ghostscript ];
-  buildNativeInputs = [ perl ];
+  nativeBuildInputs = [ perl ];
 
   doCheck = true;
 
@@ -22,7 +22,9 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
+    homepage = "http://www.gnu.org/software/groff/";
     description = "GNU Troff, a typesetting package that reads plain text and produces formatted output";
+    license = "GPLv3+";
 
     longDescription = ''
       groff is the GNU implementation of troff, a document formatting
@@ -35,9 +37,5 @@ stdenv.mkDerivation rec {
       version gxditview of the X11 xditview previewer, and an
       implementation of the -mm macros.
     '';
-
-    homepage = http://www.gnu.org/software/groff/;
-
-    license = "GPLv3+";
   };
 }
diff --git a/pkgs/tools/text/kdiff3/default.nix b/pkgs/tools/text/kdiff3/default.nix
index d8807bda08bc..fc8813e7cec7 100644
--- a/pkgs/tools/text/kdiff3/default.nix
+++ b/pkgs/tools/text/kdiff3/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ kdelibs ];
-  buildNativeInputs = [ cmake gettext ];
+  nativeBuildInputs = [ cmake gettext ];
 
   meta = {
     homepage = http://kdiff3.sourceforge.net/;
diff --git a/pkgs/tools/text/wdiff/default.nix b/pkgs/tools/text/wdiff/default.nix
index 0d0576ee4a76..b64d05e19e16 100644
--- a/pkgs/tools/text/wdiff/default.nix
+++ b/pkgs/tools/text/wdiff/default.nix
@@ -1,14 +1,11 @@
 { stdenv, fetchurl, which, screen }:
 
-let
-  name = "wdiff-1.1.0";
-in
-stdenv.mkDerivation {
-  inherit name;
+stdenv.mkDerivation rec {
+  name = "wdiff-1.1.2";
 
   src = fetchurl {
     url = "mirror://gnu/wdiff/${name}.tar.gz";
-    sha256 = "1lg5lz78xij4jjifv8fj68ixr9mha1c5vp8xzyg6rdx6ynkvnm5i";
+    sha256 = "0q78y5awvjjmsvizqilbpwany62shlmlq2ayxkjbygmdafpk1k8j";
   };
 
   # Required for the compile-time for the test suite.
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 2c8ea5659f32..9511c1287345 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -77,9 +77,17 @@ let
         else configExpr;
 
   # Allow setting the platform in the config file. Otherwise, let's use a reasonable default (pc)
-  platform = if platform_ != null then platform_
-    else config.platform or (import ./platforms.nix).pc;
 
+  platformAuto = let
+      platforms = (import ./platforms.nix);
+    in
+      if system == "armv6l-linux" then platforms.raspberrypi
+      else if system == "armv5tel-linux" then platforms.sheevaplug
+      else if system == "mips64el-linux" then platforms.fuloong2f_n32
+      else platforms.pc;
+
+  platform = if platform_ != null then platform_
+    else config.platform or platformAuto;
 
   # Helper functions that are exported through `pkgs'.
   helperFunctions =
@@ -221,8 +229,8 @@ let
       else
         defaultStdenv;
 
-  forceBuildDrv = drv : if (crossSystem == null) then drv else
-    (drv // { hostDrv = drv.buildDrv; });
+  forceNativeDrv = drv : if crossSystem == null then drv else
+    (drv // { crossDrv = drv.nativeDrv; });
 
   # A stdenv capable of building 32-bit binaries.  On x86_64-linux,
   # it uses GCC compiled with multilib support; on i686-linux, it's
@@ -441,9 +449,7 @@ let
 
   atftp = callPackage ../tools/networking/atftp {};
 
-  autogen = callPackage ../development/tools/misc/autogen {
-    guile = guile_1_8;
-  };
+  autogen = callPackage ../development/tools/misc/autogen { };
 
   autojump = callPackage ../tools/misc/autojump { };
 
@@ -586,10 +592,15 @@ let
 
   convmv = callPackage ../tools/misc/convmv { };
 
-  coreutils = callPackage ../tools/misc/coreutils {
-    # TODO: Add ACL support for cross-Linux.
-    aclSupport = crossSystem == null && stdenv.isLinux;
-  };
+  coreutils = (if stdenv.isDarwin then
+      # 8.20 doesn't build on Darwin
+      callPackage ../tools/misc/coreutils/8.19.nix
+    else
+      callPackage ../tools/misc/coreutils)
+    {
+      # TODO: Add ACL support for cross-Linux.
+      aclSupport = crossSystem == null && stdenv.isLinux;
+    };
 
   cpio = callPackage ../tools/archivers/cpio { };
 
@@ -739,7 +750,6 @@ let
   figlet = callPackage ../tools/misc/figlet { };
 
   file = callPackage ../tools/misc/file { };
-  file511 = callPackage ../tools/misc/file/511.nix { };
 
   fileschanged = callPackage ../tools/misc/fileschanged { };
 
@@ -1314,7 +1324,7 @@ let
                 gettext = null;
                 readline = null;
                 devicemapper = null;
-              }).hostDrv)
+              }).crossDrv)
            { hurd = gnu.hurdCrossIntermediate; })
     else null;
 
@@ -1934,10 +1944,6 @@ let
 
   gcc = gcc46;
 
-  gcc295 = wrapGCC (import ../development/compilers/gcc/2.95 {
-    inherit fetchurl stdenv noSysDirs;
-  });
-
   gcc33 = wrapGCC (import ../development/compilers/gcc/3.3 {
     inherit fetchurl stdenv noSysDirs;
   });
@@ -1951,19 +1957,6 @@ let
   # expects a single digit after the dot.  As a workaround, we feed
   # GCC with Texinfo 4.9.  Stupid bug, hackish workaround.
 
-  gcc40 = wrapGCC (makeOverridable (import ../development/compilers/gcc/4.0) {
-    inherit fetchurl stdenv noSysDirs;
-    texinfo = texinfo49;
-    profiledCompiler = true;
-  });
-
-  gcc41 = wrapGCC (makeOverridable (import ../development/compilers/gcc/4.1) {
-    inherit fetchurl noSysDirs gmp mpfr;
-    stdenv = overrideGCC stdenv gcc42;
-    texinfo = texinfo49;
-    profiledCompiler = false;
-  });
-
   gcc42 = wrapGCC (makeOverridable (import ../development/compilers/gcc/4.2) {
     inherit fetchurl stdenv noSysDirs;
     profiledCompiler = false;
@@ -2047,7 +2040,7 @@ let
                    if isMingw then windows.mingw_headers1 else null;
     in
       wrapGCCCross {
-      gcc = forceBuildDrv (lib.addMetaAttrs { platforms = []; } (
+      gcc = forceNativeDrv (lib.addMetaAttrs { platforms = []; } (
         gcc_realCross.override {
           crossStageStatic = true;
           langCC = false;
@@ -2068,7 +2061,7 @@ let
   };
 
   gccCrossStageFinal = wrapGCCCross {
-    gcc = forceBuildDrv (gcc_realCross.override {
+    gcc = forceNativeDrv (gcc_realCross.override {
       libpthreadCross =
         # FIXME: Don't explicitly refer to `i586-pc-gnu'.
         if crossSystem != null && crossSystem.config == "i586-pc-gnu"
@@ -2103,9 +2096,9 @@ let
       gettext which noSysDirs;
     # bootstrapping a profiled compiler does not work in the sheevaplug:
     # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43944
-    profiledCompiler = if stdenv.isArm then false else true;
+    profiledCompiler = !stdenv.isArm;
 
-    # When building `gcc.hostDrv' (a "Canadian cross", with host == target
+    # When building `gcc.crossDrv' (a "Canadian cross", with host == target
     # and host != build), `cross' must be null but the cross-libc must still
     # be passed.
     cross = null;
@@ -2124,7 +2117,7 @@ let
 
     # bootstrapping a profiled compiler does not work in the sheevaplug:
     # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43944
-    profiledCompiler = if stdenv.system == "armv5tel-linux" then false else true;
+    profiledCompiler = !stdenv.system == "armv5tel-linux";
   }));
 
   gcc46_real = lowPrio (wrapGCC (callPackage ../development/compilers/gcc/4.6 {
@@ -2132,9 +2125,9 @@ let
 
     # bootstrapping a profiled compiler does not work in the sheevaplug:
     # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43944
-    profiledCompiler = if stdenv.isArm then false else true;
+    profiledCompiler = !stdenv.isArm;
 
-    # When building `gcc.hostDrv' (a "Canadian cross", with host == target
+    # When building `gcc.crossDrv' (a "Canadian cross", with host == target
     # and host != build), `cross' must be null but the cross-libc must still
     # be passed.
     cross = null;
@@ -2157,7 +2150,7 @@ let
 
   gcc46_multi = if system == "x86_64-linux" then lowPrio (
       wrapGCCWith (import ../build-support/gcc-wrapper) glibc_multi (gcc46.gcc.override {
-      stdenv = overrideGCC stdenv (wrapGCCWith (import ../build-support/gcc-wrapper) glibc_multi gcc);
+      stdenv = overrideGCC stdenv (wrapGCCWith (import ../build-support/gcc-wrapper) glibc_multi gcc.gcc);
       profiledCompiler = false;
       enableMultilib = true;
     })) else throw "Multilib gcc not supported on this system";
@@ -2168,7 +2161,7 @@ let
     # We can enable it back some day. This makes the *gcc* builds faster now.
     profiledCompiler = false;
 
-    # When building `gcc.hostDrv' (a "Canadian cross", with host == target
+    # When building `gcc.crossDrv' (a "Canadian cross", with host == target
     # and host != build), `cross' must be null but the cross-libc must still
     # be passed.
     cross = null;
@@ -2198,27 +2191,8 @@ let
       stdenv = allStdenvs.stdenvNative;
     });
 
-  gccupc40 = wrapGCCUPC (import ../development/compilers/gcc-upc-4.0 {
-    inherit fetchurl stdenv bison autoconf gnum4 noSysDirs;
-    texinfo = texinfo49;
-  });
-
   gfortran = gfortran46;
 
-  gfortran40 = wrapGCC (gcc40.gcc.override {
-    langFortran = true;
-    langCC = false;
-    inherit gmp mpfr;
-  });
-
-  gfortran41 = wrapGCC (gcc41.gcc.override {
-    name = "gfortran";
-    langFortran = true;
-    langCC = false;
-    langC = false;
-    inherit gmp mpfr;
-  });
-
   gfortran42 = wrapGCC (gcc42.gcc.override {
     name = "gfortran";
     langFortran = true;
@@ -2487,10 +2461,10 @@ let
     jreOnly = true;
   };
 
-  jdk = if (stdenv.isDarwin || stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux")
+  jdk = if stdenv.isDarwin || stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux"
     then pkgs.openjdk
     else pkgs.oraclejdk;
-  jre = if (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux")
+  jre = if stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux"
     then pkgs.openjre
     else pkgs.oraclejre;
 
@@ -2512,7 +2486,6 @@ let
   jikes = callPackage ../development/compilers/jikes { };
 
   julia = callPackage ../development/compilers/julia {
-    pcre = pcre_8_31;
     liblapack = liblapack.override {shared = true;};
     fftw = fftw.override {pthreads = true;};
     fftwSinglePrec = fftwSinglePrec.override {pthreads = true;};
@@ -2753,23 +2726,13 @@ let
   wrapGCCCross =
     {gcc, libc, binutils, cross, shell ? "", name ? "gcc-cross-wrapper"}:
 
-    forceBuildDrv (import ../build-support/gcc-cross-wrapper {
+    forceNativeDrv (import ../build-support/gcc-cross-wrapper {
       nativeTools = false;
       nativeLibc = false;
       noLibc = (libc == null);
       inherit stdenv gcc binutils libc shell name cross;
     });
 
-  # FIXME: This is a specific hack for GCC-UPC.  Eventually, we may
-  # want to merge `gcc-upc-wrapper' and `gcc-wrapper'.
-  wrapGCCUPC = baseGCC: import ../build-support/gcc-upc-wrapper {
-    nativeTools = stdenv ? gcc && stdenv.gcc.nativeTools;
-    nativeLibc = stdenv ? gcc && stdenv.gcc.nativeLibc;
-    gcc = baseGCC;
-    libc = glibc;
-    inherit stdenv binutils;
-  };
-
   # prolog
   yap = callPackage ../development/compilers/yap { };
 
@@ -2851,11 +2814,13 @@ let
 
   perl510 = callPackage ../development/interpreters/perl/5.10 { };
 
-  perl514 = callPackage ../development/interpreters/perl/5.14 {
+  perl514 = callPackage ../development/interpreters/perl/5.14 { };
+
+  perl516 = callPackage ../development/interpreters/perl/5.16 {
     fetchurl = fetchurlBoot;
   };
 
-  perl = if system != "i686-cygwin" then perl514 else sysPerl;
+  perl = if system != "i686-cygwin" then perl516 else sysPerl;
 
   php = callPackage ../development/interpreters/php/5.3.nix { };
 
@@ -2867,13 +2832,7 @@ let
 
   picolisp = callPackage ../development/interpreters/picolisp {};
 
-  pltScheme = builderDefsPackage (import ../development/interpreters/plt-scheme) {
-    inherit cairo fontconfig freetype libjpeg libpng openssl
-      perl mesa zlib which;
-    inherit (xorg) libX11 libXaw libXft libXrender libICE xproto
-      renderproto pixman libSM libxcb libXext xextproto libXmu
-      libXt;
-  };
+  pltScheme = racket; # just to be sure
 
   polyml = callPackage ../development/compilers/polyml { };
 
@@ -3021,20 +2980,9 @@ let
 
   automake110x = callPackage ../development/tools/misc/automake/automake-1.10.x.nix { };
 
-  automake111x = callPackage ../development/tools/misc/automake/automake-1.11.x.nix {
-    doCheck = !stdenv.isArm && !stdenv.isCygwin && !stdenv.isMips
-      # Some of the parallel tests seem to hang on `i386-pc-solaris2.11'.
-      && stdenv.system != "i686-solaris"
-
-      # One test fails to terminate on FreeBSD: <http://bugs.gnu.org/8788>.
-      && !stdenv.isFreeBSD;
-  };
+  automake111x = callPackage ../development/tools/misc/automake/automake-1.11.x.nix { };
 
-  automake112x = callPackage ../development/tools/misc/automake/automake-1.12.x.nix {
-    doCheck = !stdenv.isArm && !stdenv.isCygwin && !stdenv.isMips
-      # Some of the parallel tests seem to hang on `i386-pc-solaris2.11'.
-      && stdenv.system != "i686-solaris";
-  };
+  automake112x = callPackage ../development/tools/misc/automake/automake-1.12.x.nix { };
 
   automake113x = callPackage ../development/tools/misc/automake/automake-1.13.x.nix { };
 
@@ -3053,23 +3001,13 @@ let
     gold = true;
   });
 
-  binutilsCross = lowPrio (forceBuildDrv (import ../development/tools/misc/binutils {
+  binutilsCross = lowPrio (forceNativeDrv (import ../development/tools/misc/binutils {
     inherit stdenv fetchurl zlib;
     noSysDirs = true;
     cross = assert crossSystem != null; crossSystem;
   }));
 
-  bison = bison25;
-
-  bison1875 = callPackage ../development/tools/parsing/bison/bison-1.875.nix { };
-
-  bison23 = callPackage ../development/tools/parsing/bison/bison-2.3.nix { };
-
-  bison24 = callPackage ../development/tools/parsing/bison/bison-2.4.nix { };
-
-  bison25 = callPackage ../development/tools/parsing/bison/bison-2.5.nix { };
-
-  bison26 = callPackage ../development/tools/parsing/bison/bison-2.6.nix { };
+  bison = callPackage ../development/tools/parsing/bison { };
 
   buildbot = callPackage ../development/tools/build-managers/buildbot {
     inherit (pythonPackages) twisted;
@@ -3302,13 +3240,13 @@ let
 
   pmccabe = callPackage ../development/tools/misc/pmccabe { };
 
-  /* Make pkgconfig always return a buildDrv, never a proper hostDrv,
+  /* Make pkgconfig always return a nativeDrv, never a proper crossDrv,
      because most usage of pkgconfig as buildInput (inheritance of
-     pre-cross nixpkgs) means using it using as buildNativeInput
+     pre-cross nixpkgs) means using it using as nativeBuildInput
      cross_renaming: we should make all programs use pkgconfig as
-     buildNativeInput after the renaming.
+     nativeBuildInput after the renaming.
      */
-  pkgconfig = forceBuildDrv (callPackage ../development/tools/misc/pkgconfig { });
+  pkgconfig = forceNativeDrv (callPackage ../development/tools/misc/pkgconfig { });
   pkgconfigUpstream = lowPrio (pkgconfig.override { vanilla = true; });
 
   premake = callPackage ../development/tools/misc/premake { };
@@ -3469,7 +3407,6 @@ let
   boolstuff = callPackage ../development/libraries/boolstuff { };
 
   boost144 = callPackage ../development/libraries/boost/1.44.nix { };
-  boost147 = callPackage ../development/libraries/boost/1.47.nix { };
   boost149 = callPackage ../development/libraries/boost/1.49.nix { };
   boost153 = callPackage ../development/libraries/boost/1.53.nix { };
   boost = boost153;
@@ -3722,6 +3659,7 @@ let
   gegl_0_0_22 = callPackage ../development/libraries/gegl/0_0_22.nix {
     #  avocodec avformat librsvg
   };
+
   geoclue = callPackage ../development/libraries/geoclue {};
 
   geoip = builderDefsPackage ../development/libraries/geoip {
@@ -3749,31 +3687,9 @@ let
 
   glfw = callPackage ../development/libraries/glfw { };
 
-  glibc = glibc213;
-
-  glibcCross = glibc213Cross;
-
-  glibc25 = callPackage ../development/libraries/glibc/2.5 {
-    kernelHeaders = linuxHeaders_2_6_28;
-    installLocales = false;
-  };
-
-  glibc27 = callPackage ../development/libraries/glibc/2.7 {
-    kernelHeaders = linuxHeaders;
-    #installLocales = false;
-  };
-
-  glibc29 = callPackage ../development/libraries/glibc/2.9 {
-    kernelHeaders = linuxHeaders;
-    installLocales = config.glibc.locales or false;
-  };
+  glibc = glibc217;
 
-  glibc29Cross = forceBuildDrv (makeOverridable (import ../development/libraries/glibc/2.9) {
-    inherit stdenv fetchurl;
-    gccCross = gccCrossStageStatic;
-    kernelHeaders = linuxHeadersCross;
-    installLocales = config.glibc.locales or false;
-  });
+  glibcCross = glibc217Cross;
 
   glibc213 = (callPackage ../development/libraries/glibc/2.13 {
     kernelHeaders = linuxHeaders;
@@ -3781,31 +3697,18 @@ let
     machHeaders = null;
     hurdHeaders = null;
     gccCross = null;
-  }) // (if crossSystem != null then { hostDrv = glibc213Cross; } else {});
-
-  glibc213Cross = forceBuildDrv (makeOverridable (import ../development/libraries/glibc/2.13)
-    (let crossGNU = crossSystem != null && crossSystem.config == "i586-pc-gnu";
-     in {
-       inherit stdenv fetchurl;
-       gccCross = gccCrossStageStatic;
-       kernelHeaders = if crossGNU then gnu.hurdHeaders else linuxHeadersCross;
-       installLocales = config.glibc.locales or false;
-     }
-     // lib.optionalAttrs crossGNU {
-        inherit (gnu) machHeaders hurdHeaders libpthreadHeaders mig;
-        inherit fetchgit;
-      }));
+  }) // (if crossSystem != null then { crossDrv = glibc213Cross; } else {});
 
-  glibc214 = (callPackage ../development/libraries/glibc/2.14 {
+  glibc217 = callPackage ../development/libraries/glibc/2.17 {
     kernelHeaders = linuxHeaders;
     installLocales = config.glibc.locales or false;
     machHeaders = null;
     hurdHeaders = null;
     gccCross = null;
-  }) // (lib.optionalAttrs (crossSystem != null) { hostDrv = glibc214Cross; });
+  };
 
-  glibc214Cross = forceBuildDrv (makeOverridable (import ../development/libraries/glibc/2.14)
-    (let crossGNU = (crossSystem != null && crossSystem.config == "i586-pc-gnu");
+  glibc217Cross = forceNativeDrv (makeOverridable (import ../development/libraries/glibc/2.17)
+    (let crossGNU = crossSystem != null && crossSystem.config == "i586-pc-gnu";
      in {
        inherit stdenv fetchurl;
        gccCross = gccCrossStageStatic;
@@ -3817,12 +3720,13 @@ let
         inherit fetchgit;
       }));
 
+
   # We can choose:
-  libcCrossChooser = name : if (name == "glibc") then glibcCross
-    else if (name == "uclibc") then uclibcCross
-    else if (name == "msvcrt" && stdenv.cross.config == "x86_64-w64-mingw32") then
+  libcCrossChooser = name : if name == "glibc" then glibcCross
+    else if name == "uclibc" then uclibcCross
+    else if name == "msvcrt" && stdenv.cross.config == "x86_64-w64-mingw32" then
       windows.mingw_w64
-    else if (name == "msvcrt") then windows.mingw_headers3
+    else if name == "msvcrt" then windows.mingw_headers3
     else throw "Unknown libc";
 
   libcCross = assert crossSystem != null; libcCrossChooser crossSystem.libc;
@@ -3873,6 +3777,8 @@ let
 
   gmp5 = callPackage ../development/libraries/gmp/5.0.5.nix { };
 
+  gmp51 = callPackage ../development/libraries/gmp/5.1.1.nix { };
+
   gobjectIntrospection = callPackage ../development/libraries/gobject-introspection { };
 
   goffice = callPackage ../development/libraries/goffice {
@@ -3890,7 +3796,7 @@ let
 
   goocanvas = callPackage ../development/libraries/goocanvas { };
 
-  google_perftools = callPackage ../development/libraries/google-perftools { };
+  gperftools = callPackage ../development/libraries/gperftools { };
 
   #GMP ex-satellite, so better keep it near gmp
   mpfr = callPackage ../development/libraries/mpfr { };
@@ -4342,14 +4248,14 @@ let
 
   libiconv = callPackage ../development/libraries/libiconv { };
 
-  libiconvOrEmpty = if (libiconvOrNull == null) then [] else [libiconv];
+  libiconvOrEmpty = if libiconvOrNull == null then [] else [libiconv];
 
   libiconvOrNull =
-    if ((gcc ? libc && (gcc.libc != null)) || stdenv.isGlibc)
+    if gcc.libc or null != null || stdenv.isGlibc
     then null
     else libiconv;
 
-  libiconvOrLibc = if (libiconvOrNull == null) then gcc.libc else libiconv;
+  libiconvOrLibc = if libiconvOrNull == null then gcc.libc else libiconv;
 
   libid3tag = callPackage ../development/libraries/libid3tag { };
 
@@ -4558,8 +4464,6 @@ let
 
   libx86 = builderDefsPackage ../development/libraries/libx86 {};
 
-  libxcrypt = callPackage ../development/libraries/libxcrypt { };
-
   libxdg_basedir = callPackage ../development/libraries/libxdg-basedir { };
 
   libxklavier = callPackage ../development/libraries/libxklavier { };
@@ -4790,14 +4694,6 @@ let
     unicodeSupport = config.pcre.unicode or true;
   };
 
-  pcre_8_30 = callPackage ../development/libraries/pcre/8.30.nix {
-    unicodeSupport = config.pcre.unicode or true;
-  };
-
-  pcre_8_31 = callPackage ../development/libraries/pcre/8.31.nix {
-    unicodeSupport = config.pcre.unicode or true;
-  };
-
   pdf2xml = callPackage ../development/libraries/pdf2xml {} ;
 
   phonon = callPackage ../development/libraries/phonon { };
@@ -4953,7 +4849,7 @@ let
 
   silgraphite = callPackage ../development/libraries/silgraphite {};
 
-  simgear = callPackage ../development/libraries/simgear {};
+  simgear = callPackage ../development/libraries/simgear { };
 
   sfml_git = callPackage ../development/libraries/sfml { };
 
@@ -5119,35 +5015,25 @@ let
 
   webkit =
     builderDefsPackage ../development/libraries/webkit {
+      inherit gtk2; # for plugins etc. even with gtk3, see Gentoo ebuild
+      inherit gtk3 glib atk cairo pango fontconfig freetype;
       inherit (gnome) gtkdoc libsoup;
-      inherit atk pango glib;
-      gtk = gtk3;
-      inherit freetype fontconfig gettext gperf curl
-        libjpeg libtiff libxml2 libxslt sqlite
-        icu cairo intltool automake libtool
-        pkgconfig autoconf bison libproxy enchant
-        python ruby which flex geoclue mesa;
-      inherit gstreamer gst_plugins_base gst_ffmpeg
-        gst_plugins_good;
-      inherit (xlibs) libXt renderproto libXrender kbproto;
-      libpng = libpng12;
-      perl = perl510;
+      inherit pkgconfig libtool intltool autoconf automake gperf bison flex
+        libjpeg libpng libtiff libxml2 libxslt sqlite icu curl
+        which libproxy geoclue enchant python ruby perl
+        mesa xlibs;
+      inherit gstreamer gst_plugins_base gst_ffmpeg gst_plugins_good;
     };
 
   webkit_gtk2 =
     builderDefsPackage ../development/libraries/webkit/gtk2.nix {
+      inherit gtk2 glib atk cairo pango fontconfig freetype;
       inherit (gnome) gtkdoc libsoup;
-      inherit gtk atk pango glib;
-      inherit freetype fontconfig gettext gperf curl
-        libjpeg libtiff libxml2 libxslt sqlite
-        icu cairo intltool automake libtool
-        pkgconfig autoconf bison libproxy enchant
-        python ruby which flex geoclue;
-      inherit gstreamer gst_plugins_base gst_ffmpeg
-        gst_plugins_good;
-      inherit (xlibs) libXt renderproto libXrender;
-      libpng = libpng12;
-      perl = perl510;
+      inherit pkgconfig libtool intltool autoconf automake gperf bison flex
+        libjpeg libpng libtiff libxml2 libxslt sqlite icu curl
+        which libproxy geoclue enchant python ruby perl
+        mesa xlibs;
+      inherit gstreamer gst_plugins_base gst_ffmpeg gst_plugins_good;
     };
 
   webkitSVN =
@@ -5162,7 +5048,7 @@ let
       inherit gstreamer gst_plugins_base gst_ffmpeg
         gst_plugins_good;
       inherit (xlibs) libXt renderproto libXrender;
-      libpng = libpng12;
+      inherit libpng;
     };
 
   wvstreams = callPackage ../development/libraries/wvstreams { };
@@ -5776,7 +5662,7 @@ let
   libuuid =
     if crossSystem != null && crossSystem.config == "i586-pc-gnu"
     then (utillinux // {
-      hostDrv = lib.overrideDerivation utillinux.hostDrv (args: {
+      crossDrv = lib.overrideDerivation utillinux.crossDrv (args: {
         # `libblkid' fails to build on GNU/Hurd.
         configureFlags = args.configureFlags
           + " --disable-libblkid --disable-mount --disable-libmount"
@@ -5796,7 +5682,7 @@ let
 
   ebtables = callPackage ../os-specific/linux/ebtables { };
 
-  eject = callPackage ../os-specific/linux/eject { };
+  eject = utillinux;
 
   ffado = callPackage ../os-specific/linux/ffado { };
 
@@ -5861,9 +5747,7 @@ let
 
   iwlwifi6000g2bucode = callPackage ../os-specific/linux/firmware/iwlwifi-6000g2b-ucode { };
 
-  jujuutils = callPackage ../os-specific/linux/jujuutils {
-    linuxHeaders = linuxHeaders33;
-  };
+  jujuutils = callPackage ../os-specific/linux/jujuutils { };
 
   kbd = callPackage ../os-specific/linux/kbd { };
 
@@ -5877,25 +5761,25 @@ let
 
   libnl = callPackage ../os-specific/linux/libnl { };
 
-  linuxConsoleTools = callPackage ../os-specific/linux/consoletools { };
+  linuxHeaders = linuxHeaders37;
 
-  linuxHeaders = callPackage ../os-specific/linux/kernel-headers { };
+  linuxConsoleTools = callPackage ../os-specific/linux/consoletools { };
 
-  linuxHeaders33 = callPackage ../os-specific/linux/kernel-headers/3.3.5.nix { };
+  linuxHeaders37 = callPackage ../os-specific/linux/kernel-headers/3.7.nix { };
 
-  linuxHeaders26Cross = forceBuildDrv (import ../os-specific/linux/kernel-headers/2.6.32.nix {
+  linuxHeaders26Cross = forceNativeDrv (import ../os-specific/linux/kernel-headers/2.6.32.nix {
     inherit stdenv fetchurl perl;
     cross = assert crossSystem != null; crossSystem;
   });
 
-  linuxHeaders24Cross = forceBuildDrv (import ../os-specific/linux/kernel-headers/2.4.nix {
+  linuxHeaders24Cross = forceNativeDrv (import ../os-specific/linux/kernel-headers/2.4.nix {
     inherit stdenv fetchurl perl;
     cross = assert crossSystem != null; crossSystem;
   });
 
   # We can choose:
-  linuxHeadersCrossChooser = ver : if (ver == "2.4") then linuxHeaders24Cross
-    else if (ver == "2.6") then linuxHeaders26Cross
+  linuxHeadersCrossChooser = ver : if ver == "2.4" then linuxHeaders24Cross
+    else if ver == "2.6" then linuxHeaders26Cross
     else throw "Unknown linux kernel version";
 
   linuxHeadersCross = assert crossSystem != null;
@@ -5997,6 +5881,10 @@ let
       ];
   };
 
+  linux_3_6_rpi = makeOverridable (import ../os-specific/linux/kernel/linux-rpi-3.6.nix) {
+    inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
+  };
+
   linux_3_8 = makeOverridable (import ../os-specific/linux/kernel/linux-3.8.nix) {
     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
     kernelPatches =
@@ -6070,17 +5958,15 @@ let
         iwlwifi = callPackage ../os-specific/linux/iwlwifi { };
 
         iwlwifi4965ucode =
-          (if (builtins.compareVersions self.kernel.version "2.6.27" == 0)
-              || (builtins.compareVersions self.kernel.version "2.6.27" == 1)
-           then iwlwifi4965ucodeV2
-           else iwlwifi4965ucodeV1);
+          if builtins.compareVersions self.kernel.version "2.6.27" == 0
+             || builtins.compareVersions self.kernel.version "2.6.27" == 1
+          then iwlwifi4965ucodeV2
+          else iwlwifi4965ucodeV1;
 
         atheros = callPackage ../os-specific/linux/atheros/0.9.4.nix { };
 
         broadcom_sta = callPackage ../os-specific/linux/broadcom-sta/default.nix { };
 
-        kernelHeaders = callPackage ../os-specific/linux/kernel-headers { };
-
         nvidia_x11 = callPackage ../os-specific/linux/nvidia-x11 { };
 
         nvidia_x11_legacy96 = callPackage ../os-specific/linux/nvidia-x11/legacy96.nix { };
@@ -6144,6 +6030,7 @@ let
   linuxPackages_3_2 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_2);
   linuxPackages_3_2_xen = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_2_xen);
   linuxPackages_3_4 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_4);
+  linuxPackages_3_6_rpi = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_6_rpi);
   linuxPackages_3_7 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_7);
   linuxPackages_3_8 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_8);
 
@@ -6249,8 +6136,6 @@ let
 
   pam_ssh_agent_auth = callPackage ../os-specific/linux/pam_ssh_agent_auth { };
 
-  pam_unix2 = callPackage ../os-specific/linux/pam_unix2 { };
-
   pam_usb = callPackage ../os-specific/linux/pam_usb { };
 
   pcmciaUtils = callPackage ../os-specific/linux/pcmciautils {
@@ -6274,8 +6159,6 @@ let
 
   "procps-ng" = callPackage ../os-specific/linux/procps-ng { };
 
-  pwdutils = callPackage ../os-specific/linux/pwdutils { };
-
   qemu_kvm = callPackage ../os-specific/linux/qemu-kvm { };
 
   firmwareLinuxNonfree = callPackage ../os-specific/linux/firmware/firmware-linux-nonfree { };
@@ -6286,6 +6169,8 @@ let
   radeonR600 = callPackage ../os-specific/linux/firmware/radeon-r600 { };
   radeonJuniper = callPackage ../os-specific/linux/firmware/radeon-juniper { };
 
+  raspberrypifw = callPackage ../os-specific/linux/firmware/raspberrypi {};
+
   regionset = callPackage ../os-specific/linux/regionset { };
 
   rfkill = callPackage ../os-specific/linux/rfkill { };
@@ -6342,10 +6227,10 @@ let
 
   tunctl = callPackage ../os-specific/linux/tunctl { };
 
-  ubootChooser = name : if (name == "upstream") then ubootUpstream
-    else if (name == "sheevaplug") then ubootSheevaplug
-    else if (name == "guruplug") then ubootGuruplug
-    else if (name == "nanonote") then ubootNanonote
+  ubootChooser = name : if name == "upstream" then ubootUpstream
+    else if name == "sheevaplug" then ubootSheevaplug
+    else if name == "guruplug" then ubootGuruplug
+    else if name == "nanonote" then ubootNanonote
     else throw "Unknown uboot";
 
   ubootUpstream = callPackage ../misc/uboot { };
@@ -6445,7 +6330,6 @@ let
 
   wesnoth = callPackage ../games/wesnoth {
     lua = lua5;
-    boost = boost147;
   };
 
   wirelesstools = callPackage ../os-specific/linux/wireless-tools { };
@@ -6655,7 +6539,7 @@ let
   antiword = callPackage ../applications/office/antiword {};
 
   ardour = callPackage ../applications/audio/ardour {
-    inherit (gnome) libgnomecanvas;
+    inherit (gnome) libgnomecanvas libgnomecanvasmm;
   };
 
   ardour3 =  lowPrio (callPackage ../applications/audio/ardour/ardour3.nix {
@@ -6772,7 +6656,8 @@ let
   cmus = callPackage ../applications/audio/cmus { };
 
   compiz = callPackage ../applications/window-managers/compiz {
-    inherit (gnome) GConf ORBit2;
+    inherit (gnome) GConf ORBit2 metacity;
+    boost = boost149; # https://bugs.launchpad.net/compiz/+bug/1131864
     intltool = intltool_standalone;
   };
 
@@ -6868,28 +6753,6 @@ let
 
   emacs = emacs24;
 
-  emacs22 = callPackage ../applications/editors/emacs-22 {
-    stdenv =
-      if stdenv.isDarwin
-
-      /* On Darwin, use Apple-GCC, otherwise:
-           configure: error: C preprocessor "cc -E -no-cpp-precomp" fails sanity check */
-      then overrideGCC stdenv gccApple
-
-      /* Using cpp 4.5, we get:
-
-           make[1]: Entering directory `/tmp/nix-build-dhbj8qqmqxwp3iw6sjcgafsrwlwrix1f-emacs-22.3.drv-0/emacs-22.3/lib-src'
-           Makefile:148: *** recipe commences before first target.  Stop.
-
-         Apparently, this is because `lib-src/Makefile' is generated by
-         processing `lib-src/Makefile.in' with cpp, and the escaping rules for
-         literal backslashes have changed.  */
-      else overrideGCC stdenv gcc44;
-
-    xaw3dSupport = config.emacs.xaw3dSupport or false;
-    gtkGUI = config.emacs.gtkSupport or true;
-  };
-
   emacs23 = callPackage ../applications/editors/emacs-23 {
     stdenv =
       if stdenv.isDarwin
@@ -7016,7 +6879,6 @@ let
     xmlRpc = callPackage ../applications/editors/emacs-modes/xml-rpc { };
   };
 
-  emacs22Packages = emacsPackages emacs22 pkgs.emacs22Packages;
   emacs23Packages = emacsPackages emacs23 pkgs.emacs23Packages;
   emacs24Packages = recurseIntoAttrs (emacsPackages emacs24 pkgs.emacs24Packages);
 
@@ -7168,6 +7030,7 @@ let
 
   gimp_2_8 = callPackage ../applications/graphics/gimp/2.8.nix {
     inherit (gnome) libart_lgpl;
+    webkit = null;
   };
 
   gimp = gimp_2_6;
@@ -7246,7 +7109,9 @@ let
 
   graphicsmagick = callPackage ../applications/graphics/graphicsmagick { };
 
-  graphicsmagick137 = callPackage ../applications/graphics/graphicsmagick/1.3.7.nix { };
+  graphicsmagick137 = callPackage ../applications/graphics/graphicsmagick/1.3.7.nix {
+    libpng = libpng12;
+  };
 
   gtkpod = callPackage ../applications/audio/gtkpod {
     inherit (gnome) libglade;
@@ -7700,9 +7565,9 @@ let
   picocom = callPackage ../tools/misc/picocom { };
 
   pidgin = callPackage ../applications/networking/instant-messengers/pidgin {
-    openssl = if (config.pidgin.openssl or true) then openssl else null;
-    gnutls = if (config.pidgin.gnutls or false) then gnutls else null;
-    libgcrypt = if (config.pidgin.gnutls or false) then libgcrypt else null;
+    openssl = if config.pidgin.openssl or true then openssl else null;
+    gnutls = if config.pidgin.gnutls or false then gnutls else null;
+    libgcrypt = if config.pidgin.gnutls or false then libgcrypt else null;
     inherit (gnome) startupnotification;
   };
 
@@ -8123,6 +7988,8 @@ let
 
   xbindkeys = callPackage ../tools/X11/xbindkeys { };
 
+  xbmc = callPackage ../applications/video/xbmc { };
+
   xcalib = callPackage ../tools/X11/xcalib { };
 
   xchat = callPackage ../applications/networking/irc/xchat { };
@@ -8286,7 +8153,7 @@ let
     libpng = libpng12;
   };
 
-  flightgear = callPackage ../games/flightgear {};
+  flightgear = callPackage ../games/flightgear { };
 
   freeciv = callPackage ../games/freeciv { };
 
@@ -8432,14 +8299,14 @@ let
   speed_dreams = callPackage ../games/speed-dreams {
     # Torcs wants to make shared libraries linked with plib libraries (it provides static).
     # i686 is the only platform I know than can do that linking without plib built with -fPIC
-    plib = plib.override { enablePIC = if stdenv.isi686 then false else true; };
+    plib = plib.override { enablePIC = !stdenv.isi686; };
     libpng = libpng12;
   };
 
   torcs = callPackage ../games/torcs {
     # Torcs wants to make shared libraries linked with plib libraries (it provides static).
     # i686 is the only platform I know than can do that linking without plib built with -fPIC
-    plib = plib.override { enablePIC = if stdenv.isi686 then false else true; };
+    plib = plib.override { enablePIC = !stdenv.isi686; };
   };
 
   trigger = callPackage ../games/trigger { };
@@ -8562,9 +8429,7 @@ let
 
       calligra = callPackage ../applications/office/calligra { };
 
-      digikam = callPackage ../applications/graphics/digikam {
-        boost = boost147;
-      };
+      digikam = callPackage ../applications/graphics/digikam { };
 
       k3b = callPackage ../applications/misc/k3b { };
 
@@ -8595,7 +8460,7 @@ let
       kipi_plugins = callPackage ../applications/graphics/kipi-plugins { };
 
       koffice = callPackage ../applications/office/koffice {
-        boost = boost147;
+        boost = boost149;
       };
 
       konq_plugins = callPackage ../applications/networking/browsers/konq-plugins { };
@@ -8934,9 +8799,7 @@ let
 
   foomatic_filters = callPackage ../misc/drivers/foomatic-filters {};
 
-  freestyle = callPackage ../misc/freestyle {
-    #stdenv = overrideGCC stdenv gcc41;
-  };
+  freestyle = callPackage ../misc/freestyle { };
 
   gajim = builderDefsPackage (import ../applications/networking/instant-messengers/gajim) {
     inherit perl intltool pyGtkGlade gettext pkgconfig makeWrapper pygobject
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index ee62aa0a0efb..c360214e2c6f 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -133,14 +133,14 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
     OpenGL       = self.OpenGL_2_6_0_1;         # 7.6 ok
     parallel     = self.parallel_3_2_0_3;       # 7.6 ok
     parsec       = self.parsec_3_1_3;           # 7.6 ok
-    QuickCheck   = self.QuickCheck_2_6;         # 7.6 ok
+    QuickCheck   = self.QuickCheck_2_5_1_1;     # 7.6 ok
     random       = self.random_1_0_1_1;         # 7.6 ok
     regexBase    = self.regexBase_0_93_2;       # 7.6 ok
     regexCompat  = self.regexCompat_0_95_1;     # 7.6 ok
     regexPosix   = self.regexPosix_0_95_2;      # 7.6 ok
     split        = self.split_0_2_1_2;          # 7.6 ok
     stm          = self.stm_2_4_2;              # 7.6 ok
-    syb          = self.syb_0_4_0;              # 7.6 ok
+    syb          = self.syb_0_3_7;              # 7.6 ok
     text         = self.text_0_11_2_3;          # 7.6 ok
     transformers = self.transformers_0_3_0_0;   # 7.6 ok
     vector       = self.vector_0_10_0_1;        # 7.6 ok
@@ -1468,9 +1468,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   QuickCheck_2_4_1_1 = callPackage ../development/libraries/haskell/QuickCheck/2.4.1.1.nix {};
   QuickCheck_2_4_2 = callPackage ../development/libraries/haskell/QuickCheck/2.4.2.nix {};
   QuickCheck_2_5_1_1 = callPackage ../development/libraries/haskell/QuickCheck/2.5.1.1.nix {};
-  QuickCheck_2_6     = callPackage ../development/libraries/haskell/QuickCheck/2.6.nix {};
   QuickCheck1 = self.QuickCheck_1_2_0_1;
-  QuickCheck2 = self.QuickCheck_2_6;
+  QuickCheck2 = self.QuickCheck_2_5_1_1;
   QuickCheck  = self.QuickCheck2;
 
   RangedSets = callPackage ../development/libraries/haskell/Ranged-sets {};
@@ -1621,7 +1620,6 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   syb_0_3_6_1 = callPackage ../development/libraries/haskell/syb/0.3.6.1.nix {};
   syb_0_3_6_2 = callPackage ../development/libraries/haskell/syb/0.3.6.2.nix {};
   syb_0_3_7 = callPackage ../development/libraries/haskell/syb/0.3.7.nix {};
-  syb_0_4_0 = callPackage ../development/libraries/haskell/syb/0.4.0.nix {};
   syb = null;  # by default, we assume that syb ships with GHC, which is
                # true for the older GHC versions
 
diff --git a/pkgs/top-level/platforms.nix b/pkgs/top-level/platforms.nix
index 4ff31414722b..b1406c615bd9 100644
--- a/pkgs/top-level/platforms.nix
+++ b/pkgs/top-level/platforms.nix
@@ -131,6 +131,89 @@ rec {
     ubootConfig = "sheevaplug_config";
   };
 
+  raspberrypi = {
+    name = "raspberrypi";
+    kernelMajor = "2.6";
+    kernelHeadersBaseConfig = "kirkwood_defconfig";
+    kernelBaseConfig = "bcmrpi_defconfig";
+    kernelArch = "arm";
+    kernelAutoModules = false;
+    kernelExtraConfig =
+      ''
+        BLK_DEV_RAM y
+        BLK_DEV_INITRD y
+        BLK_DEV_CRYPTOLOOP m
+        BLK_DEV_DM m
+        DM_CRYPT m
+        MD y
+        REISERFS_FS m
+        BTRFS_FS y
+        XFS_FS m
+        JFS_FS y
+        EXT4_FS y
+
+        IP_PNP y
+        IP_PNP_DHCP y
+        NFS_FS y
+        ROOT_NFS y
+        TUN m
+        NFS_V4 y
+        NFS_V4_1 y
+        NFS_FSCACHE y
+        NFSD m
+        NFSD_V2_ACL y
+        NFSD_V3 y
+        NFSD_V3_ACL y
+        NFSD_V4 y
+        NETFILTER y
+        IP_NF_IPTABLES y
+        IP_NF_FILTER y
+        IP_NF_MATCH_ADDRTYPE y
+        IP_NF_TARGET_LOG y
+        IP_NF_MANGLE y
+        IPV6 m
+        VLAN_8021Q m
+
+        CIFS y
+        CIFS_XATTR y
+        CIFS_POSIX y
+        CIFS_FSCACHE y
+        CIFS_ACL y
+
+        ZRAM m
+
+        # Fail to build
+        DRM n
+        SCSI_ADVANSYS n
+        USB_ISP1362_HCD n
+        SND_SOC n
+        SND_ALI5451 n
+        FB_SAVAGE n
+        SCSI_NSP32 n
+        ATA_SFF n
+        SUNGEM n
+        IRDA n
+        ATM_HE n
+        SCSI_ACARD n
+        BLK_DEV_CMD640_ENHANCED n
+
+        FUSE_FS m
+
+        # nixos mounts some cgroup
+        CGROUPS y
+
+        # Latencytop 
+        LATENCYTOP y
+      '';
+    kernelTarget = "zImage";
+    uboot = null;
+    gcc = {
+      arch = "armv6";
+      fpu = "vfp";
+      float = "hard";
+    };
+  };
+
   guruplug = sheevaplug // {
     # Define `CONFIG_MACH_GURUPLUG' (see
     # <http://kerneltrap.org/mailarchive/git-commits-head/2010/5/19/33618>)
@@ -280,5 +363,6 @@ rec {
       '';
     kernelTarget = "vmlinux";
     uboot = null;
+    gcc.arch = "loongson2f";
   };
 }
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index e4e3d22c5688..0baf3457966f 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -135,7 +135,7 @@ pythonPackages = python.modules // rec {
 
     postInstall = ''
       wrapProgram $out/bin/alot \
-        --prefix LD_LIBRARY_PATH : ${pkgs.notmuch}/lib:${pkgs.file511}/lib:${pkgs.gpgme}/lib
+        --prefix LD_LIBRARY_PATH : ${pkgs.notmuch}/lib:${pkgs.file}/lib:${pkgs.gpgme}/lib
     '';
 
     meta = {
@@ -1486,12 +1486,12 @@ pythonPackages = python.modules // rec {
 
 
   magic = pkgs.stdenv.mkDerivation rec {
-    name = "python-${pkgs.file511.name}";
+    name = "python-${pkgs.file.name}";
 
-    src = pkgs.file511.src;
+    src = pkgs.file.src;
 
     patches = [ ../tools/misc/file/python.patch ];
-    buildInputs = [ python pkgs.file511 ];
+    buildInputs = [ python pkgs.file ];
 
     configurePhase = "cd python";
 
diff --git a/pkgs/top-level/release-cross.nix b/pkgs/top-level/release-cross.nix
index b80ab43b9311..8af1ca90267a 100644
--- a/pkgs/top-level/release-cross.nix
+++ b/pkgs/top-level/release-cross.nix
@@ -3,29 +3,29 @@ let
   nativePlatforms = linux;
 
   /* Basic list of packages to cross-build */
-  basicHostDrv = {
+  basicCrossDrv = {
     gccCrossStageFinal = nativePlatforms;
-    bison.hostDrv = nativePlatforms;
-    busybox.hostDrv = nativePlatforms;
-    coreutils.hostDrv = nativePlatforms;
-    dropbear.hostDrv = nativePlatforms;
-    tigervnc.hostDrv = nativePlatforms;
-    wxGTK.hostDrv = nativePlatforms;
+    bison.crossDrv = nativePlatforms;
+    busybox.crossDrv = nativePlatforms;
+    coreutils.crossDrv = nativePlatforms;
+    dropbear.crossDrv = nativePlatforms;
+    tigervnc.crossDrv = nativePlatforms;
+    wxGTK.crossDrv = nativePlatforms;
     #firefox = nativePlatforms;
     xorg = {
-      #xorgserver.hostDrv = nativePlatforms;
+      #xorgserver.crossDrv = nativePlatforms;
     };
-    nixUnstable.hostDrv = nativePlatforms;
-    linuxPackages_3_4.kernel.hostDrv = linux;
+    nixUnstable.crossDrv = nativePlatforms;
+    linuxPackages_3_4.kernel.crossDrv = linux;
   };
 
   /* Basic list of packages to be natively built,
      but need a crossSystem defined to get meaning */
-  basicBuildDrv = {
+  basicNativeDrv = {
     gdbCross = nativePlatforms;
   };
 
-  basic = basicHostDrv // basicBuildDrv;
+  basic = basicCrossDrv // basicNativeDrv;
 
 in
 (
@@ -33,7 +33,7 @@ in
 /* Test some cross builds to the Sheevaplug */
 let
   crossSystem = {
-    config = "armv5tel-unknown-linux-gnueabi";  
+    config = "armv5tel-unknown-linux-gnueabi";
     bigEndian = false;
     arch = "arm";
     float = "soft";
@@ -47,14 +47,14 @@ in {
   crossSheevaplugLinux = mapTestOnCross crossSystem (
     basic //
     {
-      ubootSheevaplug.hostDrv = nativePlatforms;
+      ubootSheevaplug.crossDrv = nativePlatforms;
     });
 }) // (
 
 /* Test some cross builds to the Sheevaplug - uclibc*/
 let
   crossSystem = {
-    config = "armv5tel-unknown-linux-gnueabi";  
+    config = "armv5tel-unknown-linux-gnueabi";
     bigEndian = false;
     arch = "arm";
     float = "soft";
@@ -76,14 +76,14 @@ in {
   crossSheevaplugLinuxUclibc = mapTestOnCross crossSystem (
     basic //
     {
-      ubootSheevaplug.hostDrv = nativePlatforms;
+      ubootSheevaplug.crossDrv = nativePlatforms;
     });
 }) // (
 
 /* Test some cross builds to the mipsel */
 let
   crossSystem = {
-    config = "mipsel-unknown-linux";  
+    config = "mipsel-unknown-linux";
     bigEndian = false;
     arch = "mips";
     float = "soft";
@@ -117,7 +117,7 @@ in {
 /* Test some cross builds to the ultrasparc */
 let
   crossSystem = {
-    config = "sparc64-unknown-linux";  
+    config = "sparc64-unknown-linux";
     bigEndian = true;
     arch = "sparc64";
     float = "hard";
@@ -150,14 +150,14 @@ let
   };
 in {
   crossMingw32 = mapTestOnCross crossSystem {
-    coreutils.hostDrv = nativePlatforms;
-    boehmgc.hostDrv = nativePlatforms;
-    gmp.hostDrv = nativePlatforms;
-    guile_1_8.hostDrv = nativePlatforms;
-    libffi.hostDrv = nativePlatforms;
-    libtool.hostDrv = nativePlatforms;
-    libunistring.hostDrv = nativePlatforms;
-    windows.wxMSW.hostDrv = nativePlatforms;
+    coreutils.crossDrv = nativePlatforms;
+    boehmgc.crossDrv = nativePlatforms;
+    gmp.crossDrv = nativePlatforms;
+    guile_1_8.crossDrv = nativePlatforms;
+    libffi.crossDrv = nativePlatforms;
+    libtool.crossDrv = nativePlatforms;
+    libunistring.crossDrv = nativePlatforms;
+    windows.wxMSW.crossDrv = nativePlatforms;
   };
 }) // (
 
@@ -173,14 +173,14 @@ let
   };
 in {
   crossMingwW64 = mapTestOnCross crossSystem {
-    coreutils.hostDrv = nativePlatforms;
-    boehmgc.hostDrv = nativePlatforms;
-    gmp.hostDrv = nativePlatforms;
-    guile_1_8.hostDrv = nativePlatforms;
-    libffi.hostDrv = nativePlatforms;
-    libtool.hostDrv = nativePlatforms;
-    libunistring.hostDrv = nativePlatforms;
-    windows.wxMSW.hostDrv = nativePlatforms;
+    coreutils.crossDrv = nativePlatforms;
+    boehmgc.crossDrv = nativePlatforms;
+    gmp.crossDrv = nativePlatforms;
+    guile_1_8.crossDrv = nativePlatforms;
+    libffi.crossDrv = nativePlatforms;
+    libtool.crossDrv = nativePlatforms;
+    libunistring.crossDrv = nativePlatforms;
+    windows.wxMSW.crossDrv = nativePlatforms;
   };
 }) // (
 
@@ -199,41 +199,41 @@ let
 in {
   crossGNU = mapTestOnCross crossSystem {
     gnu.hurdCross = nativePlatforms;
-    gnu.mach.hostDrv = nativePlatforms;
+    gnu.mach.crossDrv = nativePlatforms;
     gnu.mig = nativePlatforms;
-    gnu.smbfs.hostDrv = nativePlatforms;
+    gnu.smbfs.crossDrv = nativePlatforms;
 
-    coreutils.hostDrv = nativePlatforms;
-    ed.hostDrv = nativePlatforms;
-    grub2.hostDrv = nativePlatforms;
-    inetutils.hostDrv = nativePlatforms;
-    boehmgc.hostDrv = nativePlatforms;
-    findutils.hostDrv = nativePlatforms;
-    gcc.hostDrv = nativePlatforms;
-    gcc46.hostDrv = nativePlatforms;
-    gdb.hostDrv = nativePlatforms;
-    gmp.hostDrv = nativePlatforms;
-    gnugrep.hostDrv = nativePlatforms;
-    gnumake.hostDrv = nativePlatforms;
-    gnused.hostDrv = nativePlatforms;
-    guile_1_8.hostDrv = nativePlatforms;
-    guile.hostDrv = nativePlatforms;
-    libffi.hostDrv = nativePlatforms;
-    libtool.hostDrv = nativePlatforms;
-    libunistring.hostDrv = nativePlatforms;
-    lsh.hostDrv = nativePlatforms;
-    nixUnstable.hostDrv = nativePlatforms;
-    openssl.hostDrv = nativePlatforms;            # dependency of Nix
-    patch.hostDrv = nativePlatforms;
-    samba_light.hostDrv = nativePlatforms;      # needed for `runInGenericVM'
-    zile.hostDrv = nativePlatforms;
+    coreutils.crossDrv = nativePlatforms;
+    ed.crossDrv = nativePlatforms;
+    grub2.crossDrv = nativePlatforms;
+    inetutils.crossDrv = nativePlatforms;
+    boehmgc.crossDrv = nativePlatforms;
+    findutils.crossDrv = nativePlatforms;
+    gcc.crossDrv = nativePlatforms;
+    gcc46.crossDrv = nativePlatforms;
+    gdb.crossDrv = nativePlatforms;
+    gmp.crossDrv = nativePlatforms;
+    gnugrep.crossDrv = nativePlatforms;
+    gnumake.crossDrv = nativePlatforms;
+    gnused.crossDrv = nativePlatforms;
+    guile_1_8.crossDrv = nativePlatforms;
+    guile.crossDrv = nativePlatforms;
+    libffi.crossDrv = nativePlatforms;
+    libtool.crossDrv = nativePlatforms;
+    libunistring.crossDrv = nativePlatforms;
+    lsh.crossDrv = nativePlatforms;
+    nixUnstable.crossDrv = nativePlatforms;
+    openssl.crossDrv = nativePlatforms;            # dependency of Nix
+    patch.crossDrv = nativePlatforms;
+    samba_light.crossDrv = nativePlatforms;      # needed for `runInGenericVM'
+    zile.crossDrv = nativePlatforms;
   };
 }) // (
 
 /* Linux on the fuloong */
 let
   crossSystem = {
-    config = "mips64el-unknown-linux";  
+    config = "mips64el-unknown-linux";
     bigEndian = false;
     arch = "mips";
     float = "hard";
@@ -258,20 +258,20 @@ let
 in {
   fuloongminipc = mapTestOnCross crossSystem {
 
-    coreutils.hostDrv = nativePlatforms;
-    ed.hostDrv = nativePlatforms;
-    grub2.hostDrv = nativePlatforms;
-    inetutils.hostDrv = nativePlatforms;
-    nixUnstable.hostDrv = nativePlatforms;
-    patch.hostDrv = nativePlatforms;
-    zile.hostDrv = nativePlatforms;
+    coreutils.crossDrv = nativePlatforms;
+    ed.crossDrv = nativePlatforms;
+    grub2.crossDrv = nativePlatforms;
+    inetutils.crossDrv = nativePlatforms;
+    nixUnstable.crossDrv = nativePlatforms;
+    patch.crossDrv = nativePlatforms;
+    zile.crossDrv = nativePlatforms;
   };
 }) // (
 
 /* Linux on the Ben Nanonote */
 let
   crossSystem = {
-    config = "mipsel-unknown-linux";  
+    config = "mipsel-unknown-linux";
     bigEndian = false;
     arch = "mips";
     float = "soft";
@@ -318,20 +318,20 @@ let
 in {
   nanonote = mapTestOnCross crossSystem {
 
-    coreutils.hostDrv = nativePlatforms;
-    ed.hostDrv = nativePlatforms;
-    inetutils.hostDrv = nativePlatforms;
-    nixUnstable.hostDrv = nativePlatforms;
-    patch.hostDrv = nativePlatforms;
-    zile.hostDrv = nativePlatforms;
-    prboom.hostDrv = nativePlatforms;
-    vim.hostDrv = nativePlatforms;
-    lynx.hostDrv = nativePlatforms;
-    patchelf.hostDrv = nativePlatforms;
-    nix.hostDrv = nativePlatforms;
-    fossil.hostDrv = nativePlatforms;
-    binutils.hostDrv = nativePlatforms;
-    mpg123.hostDrv = nativePlatforms;
-    yacas.hostDrv = nativePlatforms;
+    coreutils.crossDrv = nativePlatforms;
+    ed.crossDrv = nativePlatforms;
+    inetutils.crossDrv = nativePlatforms;
+    nixUnstable.crossDrv = nativePlatforms;
+    patch.crossDrv = nativePlatforms;
+    zile.crossDrv = nativePlatforms;
+    prboom.crossDrv = nativePlatforms;
+    vim.crossDrv = nativePlatforms;
+    lynx.crossDrv = nativePlatforms;
+    patchelf.crossDrv = nativePlatforms;
+    nix.crossDrv = nativePlatforms;
+    fossil.crossDrv = nativePlatforms;
+    binutils.crossDrv = nativePlatforms;
+    mpg123.crossDrv = nativePlatforms;
+    yacas.crossDrv = nativePlatforms;
   };
 })
diff --git a/pkgs/top-level/release-lib.nix b/pkgs/top-level/release-lib.nix
index d03f2724e1f0..fed9a1d673ba 100644
--- a/pkgs/top-level/release-lib.nix
+++ b/pkgs/top-level/release-lib.nix
@@ -69,7 +69,7 @@ rec {
 
   /* Similar to the testOn function, but with an additional 'crossSystem'
    * parameter for allPackages, defining the target platform for cross builds,
-   * and triggering the build of the host derivation (cross built - hostDrv). */
+   * and triggering the build of the host derivation (cross built - crossDrv). */
   mapTestOnCross = crossSystem: pkgs.lib.mapAttrsRecursiveCond
     (as: !(as ? type && as.type == "job"))
     (path: value:
diff --git a/pkgs/top-level/release-python.nix b/pkgs/top-level/release-python.nix
index 24bb64cb8f8a..d82056d4297b 100644
--- a/pkgs/top-level/release-python.nix
+++ b/pkgs/top-level/release-python.nix
@@ -116,9 +116,7 @@ in
   boost = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   boost144 = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   boost146 = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
-  boost147 = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   boost149 = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
-  boost151 = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   botan = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   box2d = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   box2d_2_0_1 = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
diff --git a/pkgs/top-level/release-small.nix b/pkgs/top-level/release-small.nix
index 4098086c2f77..97a158430ca6 100644
--- a/pkgs/top-level/release-small.nix
+++ b/pkgs/top-level/release-small.nix
@@ -30,8 +30,6 @@ with (import ./release-lib.nix);
   bc = all;
   binutils = linux;
   bind = linux;
-  bison24 = all;
-  boostFull = all;
   bsdiff = all;
   bzip2 = all;
   classpath = linux;
@@ -52,7 +50,6 @@ with (import ./release-lib.nix);
   gcc = all;
   gcc33 = linux;
   gcc34 = linux;
-  gcc41 = linux;
   gcc42 = linux;
   gcc43_multi = ["x86_64-linux"];
   gcc44 = linux;
@@ -76,8 +73,6 @@ with (import ./release-lib.nix);
   gsl = linux;
   guile = linux;  # tests fail on Cygwin
   gzip = all;
-  hal = linux;
-  hal_info = linux;
   hddtemp = linux;
   hdparm = linux;
   hello = all;
@@ -151,7 +146,6 @@ with (import ./release-lib.nix);
   policykit = linux;
   portmap = linux;
   procps = linux;
-  pwdutils = linux;
   python = allBut "i686-cygwin";
   pythonFull = linux;
   readline = all;
@@ -186,7 +180,6 @@ with (import ./release-lib.nix);
   time = linux;
   tinycc = ["i686-linux"];
   udev = linux;
-  uml = ["i686-linux"];
   unrar = linux;
   unzip = all;
   upstart = linux;
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index 9772c3531020..ccf7d4585361 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -33,9 +33,7 @@ with (import ./release-lib.nix);
   bc = all;
   binutils = linux;
   bind = linux;
-  bison23 = all;
-  bison24 = all;
-  bison25 = all;
+  bison26 = all;
   bitlbee = linux;
   bittorrent = linux;
   blender = linux;
@@ -95,7 +93,6 @@ with (import ./release-lib.nix);
   gcc = linux;
   gcc33 = linux;
   gcc34 = linux;
-  gcc41 = linux;
   gcc42 = linux;
   gcc43_multi = ["x86_64-linux"];
   gcc44 = linux;
@@ -231,7 +228,6 @@ with (import ./release-lib.nix);
   postfix = linux;
   ppl = all;
   procps = linux;
-  pwdutils = linux;
   pthreadmanpages = linux;
   pygtk = linux;
   pyqt4 = linux;