about summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/compilers/gcc-4.0/default.nix6
-rw-r--r--pkgs/development/compilers/gcc-4.1/default.nix23
-rw-r--r--pkgs/development/compilers/gcc-4.2/builder.sh25
-rw-r--r--pkgs/development/compilers/gcc-4.2/default.nix23
-rw-r--r--pkgs/development/compilers/gcc-4.2/no-sys-dirs.patch20
-rw-r--r--pkgs/development/compilers/ghc-6.8/default.nix8
-rw-r--r--pkgs/development/compilers/ghc-6.8/setup-hook.sh4
-rw-r--r--pkgs/development/compilers/ghc/boot.nix4
-rw-r--r--pkgs/development/compilers/ocaml/default.nix4
-rw-r--r--pkgs/development/interpreters/erlang/R11B-5.nix12
-rw-r--r--pkgs/development/interpreters/erlang/R12B-1.nix12
-rw-r--r--pkgs/development/interpreters/erlang/builder.sh14
-rw-r--r--pkgs/development/interpreters/erlang/default.nix11
-rw-r--r--pkgs/development/interpreters/perl-5.10/builder.sh24
-rw-r--r--pkgs/development/interpreters/perl-5.10/default.nix23
-rw-r--r--pkgs/development/interpreters/perl-5.10/no-sys-dirs.patch169
-rw-r--r--pkgs/development/interpreters/perl-5.10/setup-hook.sh5
-rw-r--r--pkgs/development/interpreters/perl-5.8/builder.sh (renamed from pkgs/development/interpreters/perl/builder.sh)0
-rw-r--r--pkgs/development/interpreters/perl-5.8/default.nix27
-rw-r--r--pkgs/development/interpreters/perl-5.8/gcc-4.2.patch10
-rw-r--r--pkgs/development/interpreters/perl-5.8/no-sys-dirs.patch (renamed from pkgs/development/interpreters/perl/no-sys-dirs.patch)0
-rw-r--r--pkgs/development/interpreters/perl-5.8/setup-hook.sh5
-rw-r--r--pkgs/development/interpreters/perl/default.nix21
-rw-r--r--pkgs/development/interpreters/perl/perl-5.10.nix21
-rw-r--r--pkgs/development/interpreters/perl/setup-hook.sh7
-rw-r--r--pkgs/development/interpreters/python/2.5/default.nix2
-rw-r--r--pkgs/development/interpreters/python/2.5/setup-hook.sh5
-rw-r--r--pkgs/development/interpreters/python/setup-hook.sh5
-rw-r--r--pkgs/development/libraries/a52dec/default.nix14
-rw-r--r--pkgs/development/libraries/aterm/2.4.2-fixes.nix1
-rw-r--r--pkgs/development/libraries/avahi/0.6.21.nix2
-rw-r--r--pkgs/development/libraries/avahi/0.6.22.nix2
-rw-r--r--pkgs/development/libraries/avahi/common.nix18
-rw-r--r--pkgs/development/libraries/avahi/default.nix14
-rw-r--r--pkgs/development/libraries/boost/default.nix1
-rw-r--r--pkgs/development/libraries/boost/gcc-4.2.patch11
-rw-r--r--pkgs/development/libraries/cairomm/default.nix15
-rw-r--r--pkgs/development/libraries/dbus-glib/default.nix7
-rw-r--r--pkgs/development/libraries/dbus/default.nix52
-rw-r--r--pkgs/development/libraries/dbus_x/default.nix13
-rw-r--r--pkgs/development/libraries/enchant/1.3.0.nix14
-rw-r--r--pkgs/development/libraries/enchant/default.nix10
-rw-r--r--pkgs/development/libraries/freeglut/default.nix1
-rw-r--r--pkgs/development/libraries/freeglut/freeglut-gcc-4.2.patch13
-rw-r--r--pkgs/development/libraries/gettext/0.17.nix9
-rw-r--r--pkgs/development/libraries/gettext/default.nix8
-rw-r--r--pkgs/development/libraries/glibc-2.5/builder.sh (renamed from pkgs/development/libraries/glibc/builder.sh)0
-rw-r--r--pkgs/development/libraries/glibc-2.5/default.nix (renamed from pkgs/development/libraries/glibc/default.nix)0
-rw-r--r--pkgs/development/libraries/glibc-2.5/glibc-getcwd-param-MAX.patch (renamed from pkgs/development/libraries/glibc-nptl/glibc-getcwd-param-MAX.patch)0
-rw-r--r--pkgs/development/libraries/glibc-2.5/glibc-pwd.patch (renamed from pkgs/development/libraries/glibc-nptl/glibc-pwd.patch)0
-rw-r--r--pkgs/development/libraries/glibc-2.7/builder.sh (renamed from pkgs/development/libraries/glibc-nptl/builder.sh)12
-rw-r--r--pkgs/development/libraries/glibc-2.7/default.nix (renamed from pkgs/development/libraries/glibc-nptl/default.nix)25
-rw-r--r--pkgs/development/libraries/glibc-2.7/glibc-getcwd-param-MAX.patch (renamed from pkgs/development/libraries/glibc/glibc-getcwd-param-MAX.patch)0
-rw-r--r--pkgs/development/libraries/glibc-2.7/glibc-pwd.patch (renamed from pkgs/development/libraries/glibc/glibc-pwd.patch)0
-rw-r--r--pkgs/development/libraries/gstreamer/default.nix13
-rw-r--r--pkgs/development/libraries/gstreamer/gst-plugins-base/0.10.17.nix24
-rw-r--r--pkgs/development/libraries/gstreamer/gst-plugins-good/0.10.6.nix23
-rw-r--r--pkgs/development/libraries/gstreamer/gst-plugins-good/tag_defines.patch22
-rw-r--r--pkgs/development/libraries/gstreamer/gstreamer/0.10.17.nix20
-rw-r--r--pkgs/development/libraries/gtk-libs-2.10/default.nix26
-rw-r--r--pkgs/development/libraries/gtk-libs-2.10/gtk+/default.nix22
-rw-r--r--pkgs/development/libraries/gtk-libs-2.2/atk/default.nix13
-rw-r--r--pkgs/development/libraries/gtk-libs-2.2/glib/default.nix12
-rw-r--r--pkgs/development/libraries/gtk-libs-2.2/gtk+/default.nix21
-rw-r--r--pkgs/development/libraries/gtk-libs-2.2/pango/default.nix14
-rw-r--r--pkgs/development/libraries/gtk-libs-2.4/atk/default.nix13
-rw-r--r--pkgs/development/libraries/gtk-libs-2.4/default.nix23
-rw-r--r--pkgs/development/libraries/gtk-libs-2.4/glib/default.nix12
-rw-r--r--pkgs/development/libraries/gtk-libs-2.4/gtk+/default.nix21
-rw-r--r--pkgs/development/libraries/gtk-libs-2.4/pango/default.nix14
-rw-r--r--pkgs/development/libraries/gtk-libs-2.6/default.nix23
-rw-r--r--pkgs/development/libraries/gtk-libs/1.x/default.nix (renamed from pkgs/development/libraries/gtk-libs-1.x/default.nix)0
-rw-r--r--pkgs/development/libraries/gtk-libs/1.x/gdk-pixbuf/default.nix (renamed from pkgs/development/libraries/gtk-libs-1.x/gdk-pixbuf/default.nix)0
-rw-r--r--pkgs/development/libraries/gtk-libs/1.x/glib/default.nix (renamed from pkgs/development/libraries/gtk-libs-1.x/glib/default.nix)0
-rw-r--r--pkgs/development/libraries/gtk-libs/1.x/glib/gcc34.patch (renamed from pkgs/development/libraries/gtk-libs-1.x/glib/gcc34.patch)0
-rw-r--r--pkgs/development/libraries/gtk-libs/1.x/gtk+/builder.sh (renamed from pkgs/development/libraries/gtk-libs-1.x/gtk+/builder.sh)0
-rw-r--r--pkgs/development/libraries/gtk-libs/1.x/gtk+/default.nix (renamed from pkgs/development/libraries/gtk-libs-1.x/gtk+/default.nix)0
-rw-r--r--pkgs/development/libraries/gtk-libs/2.10/atk/default.nix (renamed from pkgs/development/libraries/gtk-libs-2.10/atk/default.nix)4
-rw-r--r--pkgs/development/libraries/gtk-libs/2.10/default.nix16
-rw-r--r--pkgs/development/libraries/gtk-libs/2.10/glib/default.nix (renamed from pkgs/development/libraries/gtk-libs-2.10/glib/default.nix)4
-rw-r--r--pkgs/development/libraries/gtk-libs/2.10/glibmm/default.nix (renamed from pkgs/development/libraries/gtk-libs-2.10/glibmm/default.nix)5
-rw-r--r--pkgs/development/libraries/gtk-libs/2.10/gtk+/default.nix13
-rw-r--r--pkgs/development/libraries/gtk-libs/2.10/gtkmm/default.nix (renamed from pkgs/development/libraries/gtk-libs-2.10/gtkmm/default.nix)5
-rw-r--r--pkgs/development/libraries/gtk-libs/2.10/pango/default.nix (renamed from pkgs/development/libraries/gtk-libs-2.10/pango/default.nix)8
-rw-r--r--pkgs/development/libraries/gtk-libs/2.6/atk/default.nix (renamed from pkgs/development/libraries/gtk-libs-2.6/atk/default.nix)0
-rw-r--r--pkgs/development/libraries/gtk-libs/2.6/default.nix (renamed from pkgs/development/libraries/gtk-libs-2.2/default.nix)0
-rw-r--r--pkgs/development/libraries/gtk-libs/2.6/glib/default.nix (renamed from pkgs/development/libraries/gtk-libs-2.6/glib/default.nix)0
-rw-r--r--pkgs/development/libraries/gtk-libs/2.6/glibmm/default.nix (renamed from pkgs/development/libraries/gtk-libs-2.6/glibmm/default.nix)0
-rw-r--r--pkgs/development/libraries/gtk-libs/2.6/gtk+/default.nix (renamed from pkgs/development/libraries/gtk-libs-2.6/gtk+/default.nix)0
-rw-r--r--pkgs/development/libraries/gtk-libs/2.6/gtkmm/default.nix (renamed from pkgs/development/libraries/gtk-libs-2.6/gtkmm/default.nix)0
-rw-r--r--pkgs/development/libraries/gtk-libs/2.6/pango/default.nix (renamed from pkgs/development/libraries/gtk-libs-2.6/pango/default.nix)0
-rw-r--r--pkgs/development/libraries/gtk-libs/2.8/atk/default.nix (renamed from pkgs/development/libraries/gtk-libs-2.8/atk/default.nix)0
-rw-r--r--pkgs/development/libraries/gtk-libs/2.8/default.nix (renamed from pkgs/development/libraries/gtk-libs-2.8/default.nix)0
-rw-r--r--pkgs/development/libraries/gtk-libs/2.8/glib/default.nix (renamed from pkgs/development/libraries/gtk-libs-2.8/glib/default.nix)0
-rw-r--r--pkgs/development/libraries/gtk-libs/2.8/glibmm/default.nix (renamed from pkgs/development/libraries/gtk-libs-2.8/glibmm/default.nix)0
-rw-r--r--pkgs/development/libraries/gtk-libs/2.8/gtk+/default.nix (renamed from pkgs/development/libraries/gtk-libs-2.8/gtk+/default.nix)0
-rw-r--r--pkgs/development/libraries/gtk-libs/2.8/gtkmm/default.nix (renamed from pkgs/development/libraries/gtk-libs-2.8/gtkmm/default.nix)0
-rw-r--r--pkgs/development/libraries/gtk-libs/2.8/pango/default.nix (renamed from pkgs/development/libraries/gtk-libs-2.8/pango/default.nix)0
-rw-r--r--pkgs/development/libraries/ilbc/default.nix17
-rw-r--r--pkgs/development/libraries/libarchive/2.4.11.nix2
-rw-r--r--pkgs/development/libraries/libarchive/2.4.12.nix2
-rw-r--r--pkgs/development/libraries/libarchive/common.nix18
-rw-r--r--pkgs/development/libraries/libarchive/default.nix15
-rw-r--r--pkgs/development/libraries/libavc1394/default.nix3
-rw-r--r--pkgs/development/libraries/libiec61883/default.nix9
-rw-r--r--pkgs/development/libraries/libjingle/0.3.11.nix10
-rw-r--r--pkgs/development/libraries/libjingle/0.4.0.nix10
-rw-r--r--pkgs/development/libraries/libnotify/default.nix7
-rw-r--r--pkgs/development/libraries/liboil/0.3.12.nix20
-rw-r--r--pkgs/development/libraries/libraw1394/default.nix10
-rw-r--r--pkgs/development/libraries/libsigsegv/2.5.nix14
-rw-r--r--pkgs/development/libraries/libsigsegv/default.nix9
-rw-r--r--pkgs/development/libraries/libxklavier/3.4.nix21
-rw-r--r--pkgs/development/libraries/log4cxx/default.nix2
-rw-r--r--pkgs/development/libraries/mediastreamer/2.2.0-cvs20080207.nix22
-rw-r--r--pkgs/development/libraries/mediastreamer/h264.patch12
-rw-r--r--pkgs/development/libraries/mediastreamer/plugins.patch49
-rw-r--r--pkgs/development/libraries/msilbc/2.0.0.nix24
-rw-r--r--pkgs/development/libraries/ncurses/default.nix1
-rw-r--r--pkgs/development/libraries/ortp/0.13.1.nix (renamed from pkgs/development/libraries/ortp/default.nix)8
-rw-r--r--pkgs/development/libraries/ortp/0.7.1.nix16
-rw-r--r--pkgs/development/libraries/pcre/default.nix20
-rwxr-xr-xpkgs/development/libraries/qt-4/builder.sh9
-rw-r--r--pkgs/development/libraries/qt-4/default.nix14
-rw-r--r--pkgs/development/libraries/readline/readline5.nix5
-rw-r--r--pkgs/development/libraries/redland/default.nix8
-rw-r--r--pkgs/development/libraries/tapioca-qt/default.nix2
-rw-r--r--pkgs/development/libraries/telepathy-qt/default.nix2
-rw-r--r--pkgs/development/perl-modules/DB_File/default.nix2
-rw-r--r--pkgs/development/perl-modules/XML-Parser/default.nix2
-rwxr-xr-xpkgs/development/tools/build-managers/cmake/setup-hook.sh57
-rw-r--r--pkgs/development/tools/build-managers/gnumake/log.patch27
-rw-r--r--pkgs/development/tools/misc/automake/setup-hook.sh4
-rw-r--r--pkgs/development/tools/misc/binutils/default.nix6
-rw-r--r--pkgs/development/tools/misc/elfutils/0.127.nix2
-rw-r--r--pkgs/development/tools/misc/elfutils/0.131.nix2
-rw-r--r--pkgs/development/tools/misc/intltool/0.36.2.nix4
-rw-r--r--pkgs/development/tools/misc/lsof/default.nix2
-rw-r--r--pkgs/development/tools/misc/ltrace/0.5-3deb.nix (renamed from pkgs/development/tools/misc/ltrace/default.nix)15
-rw-r--r--pkgs/development/tools/misc/pkgconfig/builder.sh10
-rw-r--r--pkgs/development/tools/misc/pkgconfig/default.nix8
-rw-r--r--pkgs/development/tools/misc/pkgconfig/setup-hook.sh4
142 files changed, 998 insertions, 611 deletions
diff --git a/pkgs/development/compilers/gcc-4.0/default.nix b/pkgs/development/compilers/gcc-4.0/default.nix
index 8e7724865599f..e25145cb623d9 100644
--- a/pkgs/development/compilers/gcc-4.0/default.nix
+++ b/pkgs/development/compilers/gcc-4.0/default.nix
@@ -22,11 +22,7 @@ stdenv.mkDerivation {
     
   inherit noSysDirs langC langCC langF77 profiledCompiler;
 
-  buildInputs = [] 
-	++ (if gmp != null then [gmp] else [])
-	++ (if mpfr != null then [mpfr] else [])
-	++ (if texinfo != null then [texinfo] else [])
-	;
+  buildInputs = [gmp mpfr texinfo];
 
   configureFlags = "
     --disable-multilib
diff --git a/pkgs/development/compilers/gcc-4.1/default.nix b/pkgs/development/compilers/gcc-4.1/default.nix
index f01696b366480..3034bd5da8f2d 100644
--- a/pkgs/development/compilers/gcc-4.1/default.nix
+++ b/pkgs/development/compilers/gcc-4.1/default.nix
@@ -11,29 +11,31 @@ assert langC || langF77;
 
 with import ../../../lib;
 
-stdenv.mkDerivation ({
+stdenv.mkDerivation {
   name = "gcc-4.1.2";
   builder = if langF77 then ./fortran.sh else  ./builder.sh;
   
   src =
-    [(fetchurl {
+    optional /*langC*/ true (fetchurl {
       url = mirror://gnu/gcc/gcc-4.1.2/gcc-core-4.1.2.tar.bz2;
       sha256 = "07binc1hqlr0g387zrg5sp57i12yzd5ja2lgjb83bbh0h3gwbsbv";
-    })] ++
-    (if /*langCC*/ true then [(fetchurl {
+    }) ++
+    optional /*langCC*/ true (fetchurl {
       url = mirror://gnu/gcc/gcc-4.1.2/gcc-g++-4.1.2.tar.bz2;
       sha256 = "1qm2izcxna10jai0v4s41myki0xkw9174qpl6k1rnrqhbx0sl1hc";
-    })] else []) ++
-    (if langF77 then [(fetchurl {
+    }) ++
+    optional langF77 (fetchurl {
       url = mirror://gnu/gcc/gcc-4.1.2/gcc-fortran-4.1.2.tar.bz2;
       sha256 = "0772dhmm4gc10420h0d0mfkk2sirvjmjxz8j0ywm8wp5qf8vdi9z";
-    })] else []);
+    });
     
   patches =
     optional noSysDirs [./no-sys-dirs.patch];
     
   inherit noSysDirs profiledCompiler staticCompiler;
 
+  buildInputs = [gmp mpfr texinfo];
+  
   configureFlags = "
     --disable-multilib
     --disable-libstdcxx-pch
@@ -63,10 +65,3 @@ stdenv.mkDerivation ({
     priority = "7";
   };
 }
-
-// (if gmp != null || mpfr != null then {
-  buildInputs = []
-    ++ (if gmp != null then [gmp] else [])
-    ++ (if mpfr != null then [mpfr] else [])
-    ++ (if texinfo != null then [texinfo] else []);
-} else {}))
diff --git a/pkgs/development/compilers/gcc-4.2/builder.sh b/pkgs/development/compilers/gcc-4.2/builder.sh
index c17d040370273..ee11e974a4046 100644
--- a/pkgs/development/compilers/gcc-4.2/builder.sh
+++ b/pkgs/development/compilers/gcc-4.2/builder.sh
@@ -40,6 +40,7 @@ if test "$noSysDirs" = "1"; then
     done
 
     makeFlagsArray=( \
+        "${makeFlagsArray[@]}" \
         NATIVE_SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \
         SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \
         LIMITS_H_TEST=true \
@@ -68,18 +69,30 @@ postInstall() {
     # Remove `fixincl' to prevent a retained dependency on the
     # previous gcc.
     rm -rf $out/libexec/gcc/*/*/install-tools
+    rm -rf $out/lib/gcc/*/*/install-tools
 
     # Get rid of some "fixed" header files
     rm -rf $out/lib/gcc/*/*/include/root
+
+    # Replace hard links for i686-pc-linux-gnu-gcc etc. with symlinks.
+    for i in $out/bin/*-gcc*; do
+        if cmp -s $out/bin/gcc $i; then
+            ln -sfn gcc $i
+        fi
+    done
+
+    for i in $out/bin/*-c++* $out/bin/*-g++*; do
+        if cmp -s $out/bin/g++ $i; then
+            ln -sfn g++ $i
+        fi
+    done
 }
 
 
-if test -z "$staticCompiler"; then
-    if test -z "$profiledCompiler"; then
-        buildFlags="bootstrap $buildFlags"
-    else    
-        buildFlags="profiledbootstrap $buildFlags"
-    fi
+if test -z "$profiledCompiler"; then
+    buildFlags="bootstrap $buildFlags"
+else    
+    buildFlags="profiledbootstrap $buildFlags"
 fi
 
 genericBuild
diff --git a/pkgs/development/compilers/gcc-4.2/default.nix b/pkgs/development/compilers/gcc-4.2/default.nix
index a027512f50830..8c442ddca0cee 100644
--- a/pkgs/development/compilers/gcc-4.2/default.nix
+++ b/pkgs/development/compilers/gcc-4.2/default.nix
@@ -9,22 +9,24 @@ assert langC;
 
 with import ../../../lib;
 
+let version = "4.2.3"; in
+
 stdenv.mkDerivation {
-  name = "gcc-4.2.0";
+  name = "gcc-${version}";
   builder = ./builder.sh;
   
   src =
     optional /*langC*/ true (fetchurl {
-      url = mirror://gnu/gcc/gcc-4.2.0/gcc-core-4.2.0.tar.bz2;
-      sha256 = "0ykhzxhr8857dr97z0j9wyybfz1kjr71xk457cfapfw5fjas4ny1";
+      url = "mirror://gnu/gcc/gcc-${version}/gcc-core-${version}.tar.bz2";
+      sha256 = "04y84s46wzy4h44hpacf7vyla7b5zfc1qvdq3myvrhp82cp0bv4r";
     }) ++
-    optional /*langCC*/ true (fetchurl {
-      url = mirror://gnu/gcc/gcc-4.2.0/gcc-g++-4.2.0.tar.bz2;
-      sha256 = "0k5ribrfdp9vmljxrglcgx2j2r7xnycd1rvd8sny2y5cj0l8ps12";
+    optional langCC (fetchurl {
+      url = "mirror://gnu/gcc/gcc-${version}/gcc-g++-${version}.tar.bz2";
+      sha256 = "0spzz549fifwv02ym33azzwizl0zkq5m1fgy88ccmcyzmwpgyzfq";
     }) ++
     optional langF77 (fetchurl {
-      url = mirror://gnu/gcc/gcc-4.2.0/gcc-fortran-4.2.0.tar.bz2;
-      sha256 = "0vw07qv6qpa5cgxc0qxraq6li2ibh8zrp65jrg92v4j63ivvi3hh";
+      url = "mirror://gnu/gcc/gcc-${version}/gcc-fortran-${version}.tar.bz2";
+      sha256 = "1l3ww6qymrkcfqlssb41a5fdnh6w2hqk0v2ijx56jgjbdnzawyp0";
     });
     
   patches =
@@ -33,8 +35,7 @@ stdenv.mkDerivation {
     
   inherit noSysDirs profiledCompiler staticCompiler;
 
-  buildInputs = []
-    ++ optional (texinfo != null) [texinfo];
+  buildInputs = [texinfo];
 
   configureFlags = "
     --disable-multilib
@@ -51,7 +52,7 @@ stdenv.mkDerivation {
     ${if stdenv.isi686 then "--with-arch=i686" else ""}
   ";
 
-  makeFlags = if staticCompiler then "LDFLAGS=-static" else "";
+  NIX_EXTRA_LDFLAGS = if staticCompiler then "-static" else "";
 
   passthru = { inherit langC langCC langF77; };
 
diff --git a/pkgs/development/compilers/gcc-4.2/no-sys-dirs.patch b/pkgs/development/compilers/gcc-4.2/no-sys-dirs.patch
index d87f54669b7b4..f1d429e274a0b 100644
--- a/pkgs/development/compilers/gcc-4.2/no-sys-dirs.patch
+++ b/pkgs/development/compilers/gcc-4.2/no-sys-dirs.patch
@@ -120,26 +120,6 @@ diff -rc gcc-4.2.0-orig/gcc/gcc.c gcc-4.2.0/gcc/gcc.c
   static const char *md_exec_prefix = MD_EXEC_PREFIX;
   
   static const char *md_startfile_prefix = MD_STARTFILE_PREFIX;
-diff -rc gcc-4.2.0-orig/ltcf-cxx.sh gcc-4.2.0/ltcf-cxx.sh
-*** gcc-4.2.0-orig/ltcf-cxx.sh	2005-07-16 04:30:53.000000000 +0200
---- gcc-4.2.0/ltcf-cxx.sh	2007-05-20 17:16:44.000000000 +0200
-***************
-*** 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.2.0-orig/ltconfig gcc-4.2.0/ltconfig
 *** gcc-4.2.0-orig/ltconfig	2007-02-14 18:08:35.000000000 +0100
 --- gcc-4.2.0/ltconfig	2007-05-20 22:16:24.000000000 +0200
diff --git a/pkgs/development/compilers/ghc-6.8/default.nix b/pkgs/development/compilers/ghc-6.8/default.nix
index 518b5f391a351..e12778f690be7 100644
--- a/pkgs/development/compilers/ghc-6.8/default.nix
+++ b/pkgs/development/compilers/ghc-6.8/default.nix
@@ -21,14 +21,6 @@ stdenv.mkDerivation (rec {
     description = "The Glasgow Haskell Compiler";
   };
 
-  postInstall = ''
-    ensureDir "$out/nix-support"
-    echo "# Path to the GHC compiler directory in the store" > $out/nix-support/setup-hook
-    echo "ghc=$out" >> $out/nix-support/setup-hook
-    echo ""         >> $out/nix-support/setup-hook
-    cat $setupHook  >> $out/nix-support/setup-hook
-  '';
-
   configureFlags=[
     "--with-gmp-libraries=${gmp}/lib"
     "--with-readline-libraries=${readline}/lib"
diff --git a/pkgs/development/compilers/ghc-6.8/setup-hook.sh b/pkgs/development/compilers/ghc-6.8/setup-hook.sh
index 489c8d532b860..de4bf2192ff4c 100644
--- a/pkgs/development/compilers/ghc-6.8/setup-hook.sh
+++ b/pkgs/development/compilers/ghc-6.8/setup-hook.sh
@@ -4,7 +4,7 @@ mkdir -p $ghc_support
 
 # Create isolated package config
 packages_db=$ghc_support/package.conf
-cp $ghc/lib/ghc-*/package.conf $packages_db
+cp @out@/lib/ghc-*/package.conf $packages_db
 chmod +w $packages_db
 
 # Generate wrappers for GHC that use the isolated package config
@@ -13,7 +13,7 @@ makeWrapper() {
   wrapper="$ghc_support/$wrapperName"
   shift #the other arguments are passed to the source app
   echo '#!'"$SHELL" > "$wrapper"
-  echo "exec \"$ghc/bin/$wrapperName\" $@" '"$@"' > "$wrapper"
+  echo "exec \"@out@/bin/$wrapperName\" $@" '"$@"' > "$wrapper"
   chmod +x "$wrapper"
 }
 
diff --git a/pkgs/development/compilers/ghc/boot.nix b/pkgs/development/compilers/ghc/boot.nix
index ab606d4c2baa6..254a9fb855a07 100644
--- a/pkgs/development/compilers/ghc/boot.nix
+++ b/pkgs/development/compilers/ghc/boot.nix
@@ -31,6 +31,10 @@ stdenv.mkDerivation {
         --set-rpath \"${readline}/lib:${ncurses}/lib:${gmp}/lib\" {} \\;
   " else "";
 
+  # Stripping combined with patchelf breaks the executables (they die
+  # with a segfault or the kernel even refuses the execve). (NIXPKGS-85)
+  dontStrip = true;
+
   # The binaries for Darwin use frameworks, so fake those frameworks,
   # and create some wrapper scripts that set DYLD_FRAMEWORK_PATH so
   # that the executables work with no special setup.
diff --git a/pkgs/development/compilers/ocaml/default.nix b/pkgs/development/compilers/ocaml/default.nix
index f058db31364a7..837a685198bd5 100644
--- a/pkgs/development/compilers/ocaml/default.nix
+++ b/pkgs/development/compilers/ocaml/default.nix
@@ -1,7 +1,7 @@
 args:
 args.stdenv.lib.listOfListsToAttrs [
-	[ "3.08.0" (import ./3.08.0.nix (args // {stdenv = args.stdenv34;})) ]
+	[ "3.08.0" (import ./3.08.0.nix args) ]
 	[ "3.09.1" (import ./3.09.1.nix args) ]
-	[ "3.10.0" (import ./3.10.0.nix (args // {stdenv = args.stdenvUsingSetupNew2;})) ]
+	[ "3.10.0" (import ./3.10.0.nix args) ]
 	[ "default" (import ./3.09.1.nix args) ]
 ]
diff --git a/pkgs/development/interpreters/erlang/R11B-5.nix b/pkgs/development/interpreters/erlang/R11B-5.nix
new file mode 100644
index 0000000000000..68cc3b5f2b5d9
--- /dev/null
+++ b/pkgs/development/interpreters/erlang/R11B-5.nix
@@ -0,0 +1,12 @@
+args: with args;
+
+stdenv.mkDerivation {
+  name = "erlang-" + version;
+  src = fetchurl {
+    url = http://www.erlang.org/download/otp_src_R11B-5.tar.gz;
+    md5 = "96acec41da87d6ee0ef18e1aab36ffdd";
+  };
+  buildInputs = [perl gnum4 ncurses openssl];
+  patchPhase = '' sed -i "s@/bin/rm@rm@" lib/odbc/configure erts/configure '';
+  configureFlags = "--with-ssl=${openssl}";
+}
diff --git a/pkgs/development/interpreters/erlang/R12B-1.nix b/pkgs/development/interpreters/erlang/R12B-1.nix
new file mode 100644
index 0000000000000..37ebdbf6ab8a4
--- /dev/null
+++ b/pkgs/development/interpreters/erlang/R12B-1.nix
@@ -0,0 +1,12 @@
+args: with args;
+
+stdenv.mkDerivation {
+  name = "erlang-" + version;
+  src = fetchurl {
+    url = "http://www.erlang.org/download/otp_src_" + version + ".tar.gz";
+    sha256 = "16w7snhbjzwiywppsp04yiy2bkncff8pf4i643kqzkqx578jhaqz";
+  };
+  buildInputs = [perl gnum4 ncurses openssl];
+  patchPhase = '' sed -i "s@/bin/rm@rm@" lib/odbc/configure erts/configure '';
+  configureFlags = "--with-ssl=${openssl}";
+}
diff --git a/pkgs/development/interpreters/erlang/builder.sh b/pkgs/development/interpreters/erlang/builder.sh
deleted file mode 100644
index 43c964d88b80c..0000000000000
--- a/pkgs/development/interpreters/erlang/builder.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-buildInputs="$perl $gnum4 $ncurses $openssl"
-
-source $stdenv/setup
-
-tar xfvz $src
-cd otp_src_*
-
-# Fix some hard coded paths to /bin/rm
-sed -i -e "s|/bin/rm|rm|" lib/odbc/configure
-sed -i -e "s|/bin/rm|rm|" erts/configure
-
-./configure --prefix=$out --with-ssl=$openssl
-make
-make install
diff --git a/pkgs/development/interpreters/erlang/default.nix b/pkgs/development/interpreters/erlang/default.nix
deleted file mode 100644
index f8caed7f329b8..0000000000000
--- a/pkgs/development/interpreters/erlang/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{stdenv, fetchurl, perl, ncurses, gnum4, openssl}:
-
-stdenv.mkDerivation {
-  name = "erlang-R11B-5";
-  builder = ./builder.sh;
-  src = fetchurl {
-    url = http://www.erlang.org/download/otp_src_R11B-5.tar.gz;
-    md5 = "96acec41da87d6ee0ef18e1aab36ffdd";
-  };
-  inherit perl ncurses gnum4 openssl;
-}
diff --git a/pkgs/development/interpreters/perl-5.10/builder.sh b/pkgs/development/interpreters/perl-5.10/builder.sh
new file mode 100644
index 0000000000000..8e008cb4c637d
--- /dev/null
+++ b/pkgs/development/interpreters/perl-5.10/builder.sh
@@ -0,0 +1,24 @@
+source $stdenv/setup
+
+if test "$NIX_ENFORCE_PURITY" = "1"; then
+    GLIBC=$(cat $NIX_GCC/nix-support/orig-libc)
+    extraflags="-Dlocincpth=$GLIBC/include -Dloclibpth=$GLIBC/lib"
+fi
+
+configureScript=./Configure
+configureFlags="-de -Dcc=gcc -Dprefix=$out -Dman1dir=$out/share/man/man1 -Dman3dir=$out/share/man/man3 -Uinstallusrbinperl $extraflags"
+dontAddPrefix=1
+
+preBuild=preBuild
+preBuild() {
+    # Make Cwd work on NixOS (where we don't have a /bin/pwd).
+    substituteInPlace lib/Cwd.pm --replace "'/bin/pwd'" "'$(type -tP pwd)'"
+}
+
+postInstall=postInstall
+postInstall() {
+    ensureDir "$out/nix-support"
+    cp $setupHook $out/nix-support/setup-hook
+}
+
+genericBuild
diff --git a/pkgs/development/interpreters/perl-5.10/default.nix b/pkgs/development/interpreters/perl-5.10/default.nix
new file mode 100644
index 0000000000000..cb479c97be206
--- /dev/null
+++ b/pkgs/development/interpreters/perl-5.10/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "perl-5.10.0";
+
+  builder = ./builder.sh;
+  src = fetchurl {
+    url = mirror://cpan/src/perl-5.10.0.tar.gz;
+    sha256 = "0bivbz15x02m02gqs6hs77cgjr2msfrhnvp5xqk359jg6w6llill";
+  };
+
+  patches = [
+    # This patch does the following:
+    # 1) Do use the PATH environment variable to find the `pwd' command.
+    #    By default, Perl will only look for it in /lib and /usr/lib.
+    #    !!! what are the security implications of this?
+    # 2) Force the use of <errno.h>, not /usr/include/errno.h, on Linux
+    #    systems.  (This actually appears to be due to a bug in Perl.)
+    ./no-sys-dirs.patch
+  ];
+
+  setupHook = ./setup-hook.sh;
+}
diff --git a/pkgs/development/interpreters/perl-5.10/no-sys-dirs.patch b/pkgs/development/interpreters/perl-5.10/no-sys-dirs.patch
new file mode 100644
index 0000000000000..0b1164a325092
--- /dev/null
+++ b/pkgs/development/interpreters/perl-5.10/no-sys-dirs.patch
@@ -0,0 +1,169 @@
+diff -rc perl-5.10.0-orig/Configure perl-5.10.0/Configure
+*** perl-5.10.0-orig/Configure	2007-12-18 11:47:07.000000000 +0100
+--- perl-5.10.0/Configure	2008-02-21 17:00:40.000000000 +0100
+***************
+*** 104,118 ****
+  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"
+  
+  for p in $paths
+  do
+--- 104,110 ----
+  fi
+  
+  : Proper PATH setting
+! paths=''
+  
+  for p in $paths
+  do
+***************
+*** 1271,1287 ****
+  groupstype=''
+  libnames=''
+  : change the next line if compiling for Xenix/286 on Xenix/386
+! xlibpth='/usr/lib/386 /lib/386'
+  : 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"
+  
+  : 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"
+  
+  : Private path used by Configure to find libraries.  Its value
+  : is prepended to libpth. This variable takes care of special
+--- 1263,1274 ----
+  groupstype=''
+  libnames=''
+  : change the next line if compiling for Xenix/286 on Xenix/386
+! xlibpth=''
+  : Possible local library directories to search.
+! loclibpth=""
+  
+  : general looking path for locating libraries
+! glibpth=""
+  
+  : Private path used by Configure to find libraries.  Its value
+  : is prepended to libpth. This variable takes care of special
+***************
+*** 1302,1309 ****
+  
+  : 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"
+  :
+  : no include file wanted by default
+  inclwanted=''
+--- 1289,1295 ----
+  
+  : Possible local include directories to search.
+  : Set locincpth to "" in a hint file to defeat local include searches.
+! locincpth=""
+  :
+  : no include file wanted by default
+  inclwanted=''
+***************
+*** 1331,1338 ****
+  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
+  
+--- 1317,1322 ----
+***************
+*** 2340,2346 ****
+  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
+--- 2324,2329 ----
+***************
+*** 8155,8167 ****
+  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`
+  	;;
+  esac
+  if $test -d "$sysman"; then
+--- 8138,8145 ----
+  echo " "
+  case "$sysman" in
+  '') 
+! 	syspath=''
+! 	sysman=''
+  	;;
+  esac
+  if $test -d "$sysman"; then
+***************
+*** 19005,19013 ****
+  case "$full_ar" in
+  '') full_ar=$ar ;;
+  esac
+  
+  : Store the full pathname to the sed program for use in the C program
+! full_sed=$sed
+  
+  : see what type gids are declared as in the kernel
+  echo " "
+--- 18983,18992 ----
+  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
+  
+  : see what type gids are declared as in the kernel
+  echo " "
+diff -rc perl-5.10.0-orig/ext/Errno/Errno_pm.PL perl-5.10.0/ext/Errno/Errno_pm.PL
+*** perl-5.10.0-orig/ext/Errno/Errno_pm.PL	2007-12-18 11:47:07.000000000 +0100
+--- perl-5.10.0/ext/Errno/Errno_pm.PL	2008-02-21 17:00:02.000000000 +0100
+***************
+*** 140,150 ****
+  	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
+! 	     ) {
+  	# Some Linuxes have weird errno.hs which generate
+  	# no #file or #line directives
+  	my $linux_errno_h = -e '/usr/include/errno.h' ?
+--- 140,146 ----
+  	if ($dep =~ /(\S+errno\.h)/) {
+  	     $file{$1} = 1;
+  	}
+!     } 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 --git a/pkgs/development/interpreters/perl-5.10/setup-hook.sh b/pkgs/development/interpreters/perl-5.10/setup-hook.sh
new file mode 100644
index 0000000000000..70ce2cf8b4631
--- /dev/null
+++ b/pkgs/development/interpreters/perl-5.10/setup-hook.sh
@@ -0,0 +1,5 @@
+addPerlLibPath () {
+    addToSearchPath PERL5LIB /lib/site_perl "" $1
+}
+
+envHooks=(${envHooks[@]} addPerlLibPath)
diff --git a/pkgs/development/interpreters/perl/builder.sh b/pkgs/development/interpreters/perl-5.8/builder.sh
index c393cb0560b14..c393cb0560b14 100644
--- a/pkgs/development/interpreters/perl/builder.sh
+++ b/pkgs/development/interpreters/perl-5.8/builder.sh
diff --git a/pkgs/development/interpreters/perl-5.8/default.nix b/pkgs/development/interpreters/perl-5.8/default.nix
new file mode 100644
index 0000000000000..7f37fbad19f69
--- /dev/null
+++ b/pkgs/development/interpreters/perl-5.8/default.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "perl-5.8.8";
+
+  builder = ./builder.sh;
+  src = fetchurl {
+    url = mirror://cpan/src/perl-5.8.8.tar.bz2;
+    sha256 = "1j8vzc6lva49mwdxkzhvm78dkxyprqs4n4057amqvsh4kh6i92l1";
+  };
+
+  patches = [
+    # This patch does the following:
+    # 1) Do use the PATH environment variable to find the `pwd' command.
+    #    By default, Perl will only look for it in /lib and /usr/lib.
+    #    !!! what are the security implications of this?
+    # 2) Force the use of <errno.h>, not /usr/include/errno.h, on Linux
+    #    systems.  (This actually appears to be due to a bug in Perl.)
+    ./no-sys-dirs.patch
+
+    # Patch to make Perl 5.8.8 build with GCC 4.2.  Taken from
+    # http://www.nntp.perl.org/group/perl.perl5.porters/2006/11/msg117738.html
+    ./gcc-4.2.patch
+  ];
+
+  setupHook = ./setup-hook.sh;
+}
diff --git a/pkgs/development/interpreters/perl-5.8/gcc-4.2.patch b/pkgs/development/interpreters/perl-5.8/gcc-4.2.patch
new file mode 100644
index 0000000000000..679a7abde3b62
--- /dev/null
+++ b/pkgs/development/interpreters/perl-5.8/gcc-4.2.patch
@@ -0,0 +1,10 @@
+--- perl-5.8.x/makedepend.SH	2006-06-13 15:31:22.000000000 -0400
++++ perl-5.8.x-andy/makedepend.SH	2006-07-25 14:45:11.000000000 -0400
+@@ -167,6 +167,7 @@
+             -e '/^#.*<builtin>/d' \
+             -e '/^#.*<built-in>/d' \
+             -e '/^#.*<command line>/d' \
++            -e '/^#.*<command-line>/d' \
+ 	    -e '/^#.*"-"/d' \
+ 	    -e '/: file path prefix .* never used$/d' \
+ 	    -e 's#\.[0-9][0-9]*\.c#'"$file.c#" \
diff --git a/pkgs/development/interpreters/perl/no-sys-dirs.patch b/pkgs/development/interpreters/perl-5.8/no-sys-dirs.patch
index 48588d5a4291d..48588d5a4291d 100644
--- a/pkgs/development/interpreters/perl/no-sys-dirs.patch
+++ b/pkgs/development/interpreters/perl-5.8/no-sys-dirs.patch
diff --git a/pkgs/development/interpreters/perl-5.8/setup-hook.sh b/pkgs/development/interpreters/perl-5.8/setup-hook.sh
new file mode 100644
index 0000000000000..70ce2cf8b4631
--- /dev/null
+++ b/pkgs/development/interpreters/perl-5.8/setup-hook.sh
@@ -0,0 +1,5 @@
+addPerlLibPath () {
+    addToSearchPath PERL5LIB /lib/site_perl "" $1
+}
+
+envHooks=(${envHooks[@]} addPerlLibPath)
diff --git a/pkgs/development/interpreters/perl/default.nix b/pkgs/development/interpreters/perl/default.nix
deleted file mode 100644
index b9416bcc41f0a..0000000000000
--- a/pkgs/development/interpreters/perl/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{stdenv, fetchurl}:
-
-stdenv.mkDerivation {
-  name = "perl-5.8.8";
-
-  builder = ./builder.sh;
-  src = fetchurl {
-    url = http://ftp.funet.fi/pub/CPAN/src/perl-5.8.8.tar.bz2;
-    sha256 = "1j8vzc6lva49mwdxkzhvm78dkxyprqs4n4057amqvsh4kh6i92l1";
-  };
-
-  # This patch does the following:
-  # 1) Do use the PATH environment variable to find the `pwd' command.
-  #    By default, Perl will only look for it in /lib and /usr/lib.
-  #    !!! what are the security implications of this?
-  # 2) Force the use of <errno.h>, not /usr/include/errno.h, on Linux
-  #    systems.  (This actually appears to be due to a bug in Perl.)
-  patches = [./no-sys-dirs.patch];
-
-  setupHook = ./setup-hook.sh;
-}
diff --git a/pkgs/development/interpreters/perl/perl-5.10.nix b/pkgs/development/interpreters/perl/perl-5.10.nix
deleted file mode 100644
index 01f314c19a4d9..0000000000000
--- a/pkgs/development/interpreters/perl/perl-5.10.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{stdenv, fetchurl}:
-
-stdenv.mkDerivation {
-  name = "perl-5.10.0";
-
-  builder = ./builder.sh;
-  src = fetchurl {
-    url = http://www.cpan.org/src/perl-5.10.0.tar.gz;
-    sha256 = "0bivbz15x02m02gqs6hs77cgjr2msfrhnvp5xqk359jg6w6llill";
-  };
-
-  # This patch does the following:
-  # 1) Do use the PATH environment variable to find the `pwd' command.
-  #    By default, Perl will only look for it in /lib and /usr/lib.
-  #    !!! what are the security implications of this?
-  # 2) Force the use of <errno.h>, not /usr/include/errno.h, on Linux
-  #    systems.  (This actually appears to be due to a bug in Perl.)
-  patches = [./no-sys-dirs.patch];
-
-  setupHook = ./setup-hook.sh;
-}
diff --git a/pkgs/development/interpreters/perl/setup-hook.sh b/pkgs/development/interpreters/perl/setup-hook.sh
deleted file mode 100644
index 1f05581df97a1..0000000000000
--- a/pkgs/development/interpreters/perl/setup-hook.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-addPerlLibPath () {
-    if test -d $1/lib/site_perl; then
-        export PERL5LIB="${PERL5LIB}${PERL5LIB:+:}$1/lib/site_perl"
-    fi
-}
-
-envHooks=(${envHooks[@]} addPerlLibPath)
diff --git a/pkgs/development/interpreters/python/2.5/default.nix b/pkgs/development/interpreters/python/2.5/default.nix
index 9a84bfa7ff87d..161584ee707b1 100644
--- a/pkgs/development/interpreters/python/2.5/default.nix
+++ b/pkgs/development/interpreters/python/2.5/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
   C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
   LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
   
-  configureFlags = "--enable-shared";
+  configureFlags = "--enable-shared --with-wctype-functions";
   
   preConfigure = "
     # Purity.
diff --git a/pkgs/development/interpreters/python/2.5/setup-hook.sh b/pkgs/development/interpreters/python/2.5/setup-hook.sh
index 11551235c1f8e..a11f8cbb484e8 100644
--- a/pkgs/development/interpreters/python/2.5/setup-hook.sh
+++ b/pkgs/development/interpreters/python/2.5/setup-hook.sh
@@ -1,8 +1,5 @@
 addPythonPath() {
-    local p=$1/lib/python2.5/site-packages
-    if test -d $p; then
-        export PYTHONPATH="${PYTHONPATH}${PYTHONPATH:+:}$p"
-    fi
+    addToSearchPathWithCustomDelimiter : PYTHONPATH /lib/python2.5/site-packages "" $1
 }
 
 toPythonPath() {
diff --git a/pkgs/development/interpreters/python/setup-hook.sh b/pkgs/development/interpreters/python/setup-hook.sh
index 3bc86c5822983..58b8d1cab760c 100644
--- a/pkgs/development/interpreters/python/setup-hook.sh
+++ b/pkgs/development/interpreters/python/setup-hook.sh
@@ -1,8 +1,5 @@
 addPythonPath() {
-    local p=$1/lib/python2.4/site-packages
-    if test -d $p; then
-        export PYTHONPATH="${PYTHONPATH}${PYTHONPATH:+:}$p"
-    fi
+	addToSearchPathWithCustomDelimiter : PYTHONPATH /lib/python2.4/site-packages "" $1
 }
 
 toPythonPath() {
diff --git a/pkgs/development/libraries/a52dec/default.nix b/pkgs/development/libraries/a52dec/default.nix
index 4a75e11ec304f..46dfe38c45564 100644
--- a/pkgs/development/libraries/a52dec/default.nix
+++ b/pkgs/development/libraries/a52dec/default.nix
@@ -1,9 +1,15 @@
-{stdenv, fetchurl}:
+args: with args;
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "a52dec-0.7.4";
   src = fetchurl {
-    url = http://liba52.sourceforge.net/files/a52dec-0.7.4.tar.gz;
-    md5 = "caa9f5bc44232dc8aeea773fea56be80";
+    url = "${meta.homepage}/files/a52dec-0.7.4.tar.gz";
+    sha256 = "0czccp4fcpf2ykp16xcrzdfmnircz1ynhls334q374xknd5747d2";
+  };
+
+  configureFlags = "--enable-shared --disable-static";
+
+  meta = {
+    homepage = http://liba52.sourceforge.net;
   };
 }
diff --git a/pkgs/development/libraries/aterm/2.4.2-fixes.nix b/pkgs/development/libraries/aterm/2.4.2-fixes.nix
index 3144154c9e6f7..7c70afc621b7c 100644
--- a/pkgs/development/libraries/aterm/2.4.2-fixes.nix
+++ b/pkgs/development/libraries/aterm/2.4.2-fixes.nix
@@ -6,6 +6,7 @@ stdenv.mkDerivation {
     url = http://losser.st-lab.cs.uu.nl/~eelco/dist/aterm-2.4.2-fixes-r2.tar.bz2;
     sha256 = "1w3bxdpc2hz29li5ssmdcz3x0fn47r7g62ns0v8nazxwf40vff4j";
   };
+  doCheck = true;
   meta = {
     homepage = http://www.cwi.nl/htbin/sen1/twiki/bin/view/SEN1/ATerm;
     license = "LGPL";
diff --git a/pkgs/development/libraries/avahi/0.6.21.nix b/pkgs/development/libraries/avahi/0.6.21.nix
new file mode 100644
index 0000000000000..26f03ca58bfe7
--- /dev/null
+++ b/pkgs/development/libraries/avahi/0.6.21.nix
@@ -0,0 +1,2 @@
+args:
+import ./common.nix "0q954lwhr6xnv7chhi4bqlmkn4nx9shyw0mbdr3n26018dgw65yq" args
diff --git a/pkgs/development/libraries/avahi/0.6.22.nix b/pkgs/development/libraries/avahi/0.6.22.nix
new file mode 100644
index 0000000000000..93b7184cdae20
--- /dev/null
+++ b/pkgs/development/libraries/avahi/0.6.22.nix
@@ -0,0 +1,2 @@
+args:
+import ./common.nix "0lnxzsdhihb3kjwd3vcrl9pq6ykfbp0vy9ja0mch01ffnrqgiilx" args
diff --git a/pkgs/development/libraries/avahi/common.nix b/pkgs/development/libraries/avahi/common.nix
new file mode 100644
index 0000000000000..1ebadc26e2684
--- /dev/null
+++ b/pkgs/development/libraries/avahi/common.nix
@@ -0,0 +1,18 @@
+sha256: args: with args;
+
+stdenv.mkDerivation rec {
+  name = "avahi-" + version;
+  src = fetchurl {
+    url = "${meta.homepage}/download/${name}.tar.gz";
+    inherit sha256;
+  };
+
+  buildInputs = [pkgconfig libdaemon dbus perl perlXMLParser glib qt4];
+
+  configureFlags = "--disable-qt3 --disable-gdbm --disable-gtk --disable-mono
+    --with-distro=none --enable-shared --disable-static --disable-python";
+
+  meta = {
+    homepage = http://avahi.org;
+  };
+}
diff --git a/pkgs/development/libraries/avahi/default.nix b/pkgs/development/libraries/avahi/default.nix
deleted file mode 100644
index c8a94c0dbb157..0000000000000
--- a/pkgs/development/libraries/avahi/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{stdenv, fetchurl, pkgconfig, libdaemon, dbus}:
-
-stdenv.mkDerivation {
-  name = "avahi-0.6.21";
-  src = fetchurl {
-    url = http://avahi.org/download/avahi-0.6.21.tar.gz;
-    sha256 = "d817c35f43011861476eab02eea14edd123b2bc58b4408d9d9b69b0c39252561";
-  };
-
-  #buildInputs = [pkgconfig glib gtk libpng libglade];
-  buildInputs = [pkgconfig libdaemon dbus];
-
-  configureFlags = "--disable-glib --disable-qt3 --disable-qt4 --disable-gtk --disable-expat --disable-gdbm --disable-python --disable-mono --with-distro=none CPPFLAGS=-Ddbus_watch_get_unix_fd=dbus_watch_get_fd";
-}
diff --git a/pkgs/development/libraries/boost/default.nix b/pkgs/development/libraries/boost/default.nix
index 5040a763ab81c..fe4cdcf033707 100644
--- a/pkgs/development/libraries/boost/default.nix
+++ b/pkgs/development/libraries/boost/default.nix
@@ -10,5 +10,6 @@ stdenv.mkDerivation {
   preConfigure="
     sed -e 's@^BJAM_CONFIG=\"\"@BJAM_CONFIG=\"--layout=system release threading=multi link=shared\"@g' -i configure
   ";
+  patches = [./gcc-4.2.patch];
   configureFlags="--with-icu=${icu}";
 }
diff --git a/pkgs/development/libraries/boost/gcc-4.2.patch b/pkgs/development/libraries/boost/gcc-4.2.patch
new file mode 100644
index 0000000000000..6c2210d831de5
--- /dev/null
+++ b/pkgs/development/libraries/boost/gcc-4.2.patch
@@ -0,0 +1,11 @@
+Index: trunk/tools/jam/src/build.jam

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

+--- trunk/tools/jam/src/build.jam (revision 40095)

++++ trunk/tools/jam/src/build.jam (revision 41036)

+@@ -176,5 +176,5 @@

+ ## GCC 2.x, 3.x, 4.x

+ toolset gcc gcc : "-o " : -D

+-    : -pedantic

++    : -pedantic -fno-strict-aliasing

+     [ opt --release : [ opt --symbols : -g : -s ] -O3 ]

+     [ opt --debug : -g -O0 -fno-inline ]

diff --git a/pkgs/development/libraries/cairomm/default.nix b/pkgs/development/libraries/cairomm/default.nix
new file mode 100644
index 0000000000000..a22788c288ecd
--- /dev/null
+++ b/pkgs/development/libraries/cairomm/default.nix
@@ -0,0 +1,15 @@
+args: with args;
+
+stdenv.mkDerivation rec {
+  name = "cairomm-1.4.6";
+
+  src = fetchurl {
+    url = "http://cairographics.org/releases/${name}.tar.gz";
+    sha256 = "1zd5pq5jd507w1v994awpsl7m26g4dfl0rwgrxig2823hl3rqmrp";
+  };
+
+  buildInputs = [pkgconfig];
+  propagatedBuildInputs = [cairo x11 fontconfig freetype];
+
+  configureFlags = "--enable-shared --disable-static";
+}
diff --git a/pkgs/development/libraries/dbus-glib/default.nix b/pkgs/development/libraries/dbus-glib/default.nix
index 8324980126caa..9a9851521b474 100644
--- a/pkgs/development/libraries/dbus-glib/default.nix
+++ b/pkgs/development/libraries/dbus-glib/default.nix
@@ -6,9 +6,10 @@ stdenv.mkDerivation rec {
     url = "${meta.homepage}/releases/dbus-glib/${name}.tar.gz";
     sha256 = "1qmbnd9xgg7vahlfywd8sfd9yqhx8jdyczz3cshfsd4qc76xhw78";
   };
-  inherit dbus glib;
-  buildInputs = [pkgconfig gettext glib expat];
-  propagatedBuildInputs = [dbus];
+  buildInputs = [pkgconfig expat gettext];
+  propagatedBuildInputs = [dbus.libs glib];
+  configureFlags = "--enable-shared --disable-static";
+  passthru = { inherit dbus glib; };
 
   meta = {
 	  homepage = http://dbus.freedesktop.org;
diff --git a/pkgs/development/libraries/dbus/default.nix b/pkgs/development/libraries/dbus/default.nix
index cd4b8f49e05f9..b60705f21f68b 100644
--- a/pkgs/development/libraries/dbus/default.nix
+++ b/pkgs/development/libraries/dbus/default.nix
@@ -1,22 +1,42 @@
-{stdenv, fetchurl, pkgconfig, expat}:
-
-stdenv.mkDerivation {
-  name = "dbus-1.0.2";
+args: with args;
+let
+  version = "1.0.2";
   src = fetchurl {
-    url = http://dbus.freedesktop.org/releases/dbus/dbus-1.0.2.tar.gz;
+    url = "http://dbus.freedesktop.org/releases/dbus/dbus-${version}.tar.gz";
     sha256 = "1jn652zb81mczsx4rdcwrrzj3lfhx9d107zjfnasc4l5yljl204a";
   };
-  buildInputs = [pkgconfig expat];
-  configureFlags = "--without-x --localstatedir=/var";
+  configureFlags = "--disable-static --localstatedir=/var --with-session-socket-dir=/tmp";
+in rec {
+  libs = stdenv.mkDerivation {
+    name = "dbus-library-" + version;
+    buildInputs = [pkgconfig expat];
+    inherit src configureFlags;
+    patchPhase = ''
+      sed -i /mkinstalldirs.*localstatedir/d bus/Makefile.in
+      sed -i '/SUBDIRS/s/ tools//' Makefile.in
+    '';
+  };
+
+  tools = stdenv.mkDerivation {
+    name = "dbus-tools-" + version;
+    inherit src configureFlags;
+    buildInputs = [pkgconfig expat libs]
+      ++ (if useX11 then [libX11 libICE libSM] else []);
+    postConfigure = "cd tools";
 
-  # Awful hack: `make install' wants to write in /var, but it
-  # can't.  So redirect it with a DESTDIR.
-  preInstall = "
-    installFlagsArray=(DESTDIR=$out/destdir)
-  ";
+    NIX_LDFLAGS = "-ldbus-1";
+    makeFlags = "DBUS_DAEMONDIR=${daemon}/bin";
+
+    patchPhase = ''
+      sed -i 's@ $(top_builddir)/dbus/libdbus-1.la@@' tools/Makefile.in
+      sed -i '/mkdir.*localstate/d' tools/Makefile.in
+    '';
+  };
 
-  postInstall = "
-    mv $out/destdir/$out/* $out
-    rm -rf $out/destdir
-  ";
+# I'm too lazy to separate daemon and libs now.
+  daemon = libs;
+  
+  # FIXME TODO
+  # After merger it will be better to correct upstart-job instead.
+  outPath = daemon.outPath;
 }
diff --git a/pkgs/development/libraries/dbus_x/default.nix b/pkgs/development/libraries/dbus_x/default.nix
deleted file mode 100644
index dfe3ea0ee7e95..0000000000000
--- a/pkgs/development/libraries/dbus_x/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-args: with args;
-
-stdenv.mkDerivation {
-  name = "dbus-1.0.2";
-  src = fetchurl {
-    url = http://dbus.freedesktop.org/releases/dbus/dbus-1.0.2.tar.gz;
-    sha256 = "1jn652zb81mczsx4rdcwrrzj3lfhx9d107zjfnasc4l5yljl204a";
-  };
-  buildInputs = [pkgconfig expat libX11 libICE libSM];
-
-  configureFlags = "--with-x --disable-static --localstatedir=/var --with-session-socket-dir=/tmp";
-  patchPhase = "sed -e /mkinstalldirs.*localstatedir/d -i bus/Makefile.in";
-}
diff --git a/pkgs/development/libraries/enchant/1.3.0.nix b/pkgs/development/libraries/enchant/1.3.0.nix
new file mode 100644
index 0000000000000..e503366087eb5
--- /dev/null
+++ b/pkgs/development/libraries/enchant/1.3.0.nix
@@ -0,0 +1,14 @@
+args: with args;
+stdenv.mkDerivation rec {
+  name = "enchant-" + version;
+  src = fetchurl {
+    url = "http://www.abisource.com/downloads/enchant/${version}/${name}.tar.gz";
+    sha256 = "1vwqwsadnp4rf8wj7d4rglvszjzlcli0jyxh06h8inka1sm1al76";
+  };
+  buildInputs = [aspell pkgconfig glib];
+  configureFlags = "--enable-shared --disable-static";
+
+  meta = {
+    homepage = http://www.abisource.com/enchant;
+  };
+}
diff --git a/pkgs/development/libraries/enchant/default.nix b/pkgs/development/libraries/enchant/default.nix
deleted file mode 100644
index 74fe33cba8cc2..0000000000000
--- a/pkgs/development/libraries/enchant/default.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-args: with args;
-stdenv.mkDerivation {
-	name = "enchant-1.3.0";
-	src = fetchurl {
-		url = http://FIXME/enchant-1.3.0.tar.gz;
-		sha256 = "1vwqwsadnp4rf8wj7d4rglvszjzlcli0jyxh06h8inka1sm1al76";
-	};
-	buildInputs = [aspell pkgconfig glib];
-	configureFlags = "--enable-shared --disable-static";
-}
diff --git a/pkgs/development/libraries/freeglut/default.nix b/pkgs/development/libraries/freeglut/default.nix
index 704dc0005fb70..19720b9d67793 100644
--- a/pkgs/development/libraries/freeglut/default.nix
+++ b/pkgs/development/libraries/freeglut/default.nix
@@ -9,4 +9,5 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [x11 mesa];
+  patches = ./freeglut-gcc-4.2.patch;
 }
diff --git a/pkgs/development/libraries/freeglut/freeglut-gcc-4.2.patch b/pkgs/development/libraries/freeglut/freeglut-gcc-4.2.patch
new file mode 100644
index 0000000000000..1642affba9129
--- /dev/null
+++ b/pkgs/development/libraries/freeglut/freeglut-gcc-4.2.patch
@@ -0,0 +1,13 @@
+diff -urN freeglut-2.4.0.old/src/freeglut_joystick.c freeglut-2.4.0/src/freeglut_joystick.c
+--- freeglut-2.4.0.old/src/freeglut_joystick.c	2007-06-16 03:51:41.000000000 +0000
++++ freeglut-2.4.0/src/freeglut_joystick.c	2007-06-16 03:54:27.000000000 +0000
+@@ -1682,9 +1682,6 @@
+ 
+   fgInitialiseJoysticks ();
+ 
+-  if ( !fgJoystick )
+-    return 0;
+-
+   if ( !fgState.JoysticksInitialised )
+     return 0;
+ 
diff --git a/pkgs/development/libraries/gettext/0.17.nix b/pkgs/development/libraries/gettext/0.17.nix
new file mode 100644
index 0000000000000..5fc60d9b8a6f2
--- /dev/null
+++ b/pkgs/development/libraries/gettext/0.17.nix
@@ -0,0 +1,9 @@
+args: with args;
+stdenv.mkDerivation rec {
+  name = "gettext-" + version;
+  src = fetchurl {
+    url = "mirror://gnu/gettext/${name}.tar.gz";
+    sha256 = "1fipjpaxxwifdw6cbr7mkxp1yvy643i38nhlh7124bqnisxki5i0";
+  };
+  configureFlags = "--disable-csharp --enable-shared --disable-static";
+}
diff --git a/pkgs/development/libraries/gettext/default.nix b/pkgs/development/libraries/gettext/default.nix
deleted file mode 100644
index b3f7f46a0ff75..0000000000000
--- a/pkgs/development/libraries/gettext/default.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-args:
-args.stdenv.lib.listOfListsToAttrs [
-	[ "recurseForDerivations" true ]
-	[ "0.14.6" (import ./0.14.6.nix args) ]
-	[ "0.15" (import ./0.15.nix args) ]
-	[ "0.16.x" (import ./0.16.x.nix args) ]
-	[ "default" (import ./0.14.6.nix args) ]
-]
diff --git a/pkgs/development/libraries/glibc/builder.sh b/pkgs/development/libraries/glibc-2.5/builder.sh
index 8d5d6908f045c..8d5d6908f045c 100644
--- a/pkgs/development/libraries/glibc/builder.sh
+++ b/pkgs/development/libraries/glibc-2.5/builder.sh
diff --git a/pkgs/development/libraries/glibc/default.nix b/pkgs/development/libraries/glibc-2.5/default.nix
index e4720cf56d52d..e4720cf56d52d 100644
--- a/pkgs/development/libraries/glibc/default.nix
+++ b/pkgs/development/libraries/glibc-2.5/default.nix
diff --git a/pkgs/development/libraries/glibc-nptl/glibc-getcwd-param-MAX.patch b/pkgs/development/libraries/glibc-2.5/glibc-getcwd-param-MAX.patch
index 8543dbbf1d76d..8543dbbf1d76d 100644
--- a/pkgs/development/libraries/glibc-nptl/glibc-getcwd-param-MAX.patch
+++ b/pkgs/development/libraries/glibc-2.5/glibc-getcwd-param-MAX.patch
diff --git a/pkgs/development/libraries/glibc-nptl/glibc-pwd.patch b/pkgs/development/libraries/glibc-2.5/glibc-pwd.patch
index 07039718477fe..07039718477fe 100644
--- a/pkgs/development/libraries/glibc-nptl/glibc-pwd.patch
+++ b/pkgs/development/libraries/glibc-2.5/glibc-pwd.patch
diff --git a/pkgs/development/libraries/glibc-nptl/builder.sh b/pkgs/development/libraries/glibc-2.7/builder.sh
index e4f6dec135454..f9b9c6b87aa19 100644
--- a/pkgs/development/libraries/glibc-nptl/builder.sh
+++ b/pkgs/development/libraries/glibc-2.7/builder.sh
@@ -12,10 +12,18 @@ preConfigure=preConfigure
 preConfigure() {
 
     for i in configure io/ftwtest-sh; do
-        substituteInPlace "$i" \
-            --replace "@PWD@" "pwd"
+        # 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
     
diff --git a/pkgs/development/libraries/glibc-nptl/default.nix b/pkgs/development/libraries/glibc-2.7/default.nix
index 86cc9ecf56579..f33f95fda9fe8 100644
--- a/pkgs/development/libraries/glibc-nptl/default.nix
+++ b/pkgs/development/libraries/glibc-2.7/default.nix
@@ -1,31 +1,32 @@
-{ stdenv, fetchurl, kernelHeaders 
-,perl
+{ stdenv, fetchurl, kernelHeaders
 , installLocales ? true
 , profilingLibraries ? false
 }:
 
 stdenv.mkDerivation {
-  name = "glibc-2.6.1-nptl";
+  name = "glibc-2.7";
   builder = ./builder.sh;
 
-  src = 
-	fetchurl {
-		url = http://ftp.gnu.org/gnu/glibc/glibc-2.6.1.tar.bz2;
-		sha256 = "08pcfsi9zpikjakljklks2ln3hn7544cr9br4kbh5kx27cy3mv9x";
-	};
-
-  patches = [ ./glibc-pwd.patch ./glibc-getcwd-param-MAX.patch ];
+  src = fetchurl {
+    url = mirror://gnu/glibc/glibc-2.7.tar.bz2;
+    sha256 = "06j5q20l11x8kcrl9bg15xgb1pw0w82pazikxf4zvq2fmhiaa922";
+  };
 
   inherit kernelHeaders installLocales;
 
   inherit (stdenv) is64bit;
 
-  buildInputs=[perl];
-
   # `--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/glibc-getcwd-param-MAX.patch b/pkgs/development/libraries/glibc-2.7/glibc-getcwd-param-MAX.patch
index 8543dbbf1d76d..8543dbbf1d76d 100644
--- a/pkgs/development/libraries/glibc/glibc-getcwd-param-MAX.patch
+++ b/pkgs/development/libraries/glibc-2.7/glibc-getcwd-param-MAX.patch
diff --git a/pkgs/development/libraries/glibc/glibc-pwd.patch b/pkgs/development/libraries/glibc-2.7/glibc-pwd.patch
index 07039718477fe..07039718477fe 100644
--- a/pkgs/development/libraries/glibc/glibc-pwd.patch
+++ b/pkgs/development/libraries/glibc-2.7/glibc-pwd.patch
diff --git a/pkgs/development/libraries/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/default.nix
new file mode 100644
index 0000000000000..678fbdb137a00
--- /dev/null
+++ b/pkgs/development/libraries/gstreamer/default.nix
@@ -0,0 +1,13 @@
+args: with args;
+rec {
+  gstreamerFun = lib.sumArgs (selectVersion ./gstreamer "0.10.17") args;
+  gstreamer = gstreamerFun null;
+
+  gstPluginsBaseFun = lib.sumArgs (selectVersion ./gst-plugins-base "0.10.17")
+    args { inherit gstreamer; };
+  gstPluginsBase = gstPluginsBaseFun null;
+
+  gstPluginsGoodFun = lib.sumArgs (selectVersion ./gst-plugins-good "0.10.6")
+    args { inherit gstPluginsBase; };
+  gstPluginsGood = gstPluginsGoodFun null;
+}
diff --git a/pkgs/development/libraries/gstreamer/gst-plugins-base/0.10.17.nix b/pkgs/development/libraries/gstreamer/gst-plugins-base/0.10.17.nix
new file mode 100644
index 0000000000000..036134c82c140
--- /dev/null
+++ b/pkgs/development/libraries/gstreamer/gst-plugins-base/0.10.17.nix
@@ -0,0 +1,24 @@
+args: with args;
+
+stdenv.mkDerivation rec {
+  name = "gst-plugins-base-" + version;
+
+  src = fetchurl {
+    url = "${meta.homepage}/src/gst-plugins-base/${name}.tar.bz2";
+    sha256 = "03gpfhdaw7yz83y0wpq966b9dqpvw8v5kpixa1pp4mn7d5bgsb7q";
+  };
+
+  patchPhase = "sed -i 's@/bin/echo@echo@g' configure";
+
+  configureFlags = "--enable-shared --disable-static";
+
+# TODO : v4l, libvisual
+  propagatedBuildInputs = [gstreamer libX11 libXv libXext alsaLib cdparanoia
+    gnomevfs libogg libtheora libvorbis freetype pango liboil gtk];
+
+  buildInputs = [pkgconfig python];
+
+  meta = {
+    homepage = http://gstreamer.freedesktop.org;
+  };
+}
diff --git a/pkgs/development/libraries/gstreamer/gst-plugins-good/0.10.6.nix b/pkgs/development/libraries/gstreamer/gst-plugins-good/0.10.6.nix
new file mode 100644
index 0000000000000..1048533077251
--- /dev/null
+++ b/pkgs/development/libraries/gstreamer/gst-plugins-good/0.10.6.nix
@@ -0,0 +1,23 @@
+args: with args;
+
+stdenv.mkDerivation rec {
+  name = "gst-plugins-good-" + version;
+
+  src = fetchurl {
+    url = "${meta.homepage}/src/gst-plugins-good/${name}.tar.bz2";
+    sha256 = "0rid0gjj8nsk0r5yn4bz1xfsbp446r92wc6wp4099hilw6jxd74y";
+  };
+
+  propagatedBuildInputs = [gstPluginsBase aalib cairo flac hal libjpeg
+    zlib speex libpng libdv libcaca dbus.libs libiec61883 libavc1394 ladspaH
+    taglib ];
+  buildInputs = [pkgconfig];
+
+  configureFlags = "--enable-shared --disable-static --enable-ladspa";
+
+  patches = [ ./tag_defines.patch ];
+
+  meta = {
+    homepage = http://gstreamer.freedesktop.org;
+  };
+}
diff --git a/pkgs/development/libraries/gstreamer/gst-plugins-good/tag_defines.patch b/pkgs/development/libraries/gstreamer/gst-plugins-good/tag_defines.patch
new file mode 100644
index 0000000000000..0ece094229b9a
--- /dev/null
+++ b/pkgs/development/libraries/gstreamer/gst-plugins-good/tag_defines.patch
@@ -0,0 +1,22 @@
+diff -Nur gst-plugins-good0.10-0.10.6/ext/taglib/gstid3v2mux.cc gst-plugins-good0.10-0.10.6.new/ext/taglib/gstid3v2mux.cc
+--- gst-plugins-good0.10-0.10.6/ext/taglib/gstid3v2mux.cc	2007-06-13 11:21:10.000000000 +0200
++++ gst-plugins-good0.10-0.10.6.new/ext/taglib/gstid3v2mux.cc	2007-11-24 21:56:04.000000000 +0100
+@@ -532,6 +532,7 @@
+   GST_TAG_TITLE, add_text_tag, "TIT2"}, {
+   GST_TAG_ALBUM, add_text_tag, "TALB"}, {
+   GST_TAG_COPYRIGHT, add_text_tag, "TCOP"}, {
++  GST_TAG_COMPOSER, add_text_tag, "TCOM"}, {
+   GST_TAG_GENRE, add_text_tag, "TCON"}, {
+   GST_TAG_COMMENT, add_comment_tag, ""}, {
+   GST_TAG_EXTENDED_COMMENT, add_comment_tag, ""}, {
+@@ -544,7 +545,9 @@
+   GST_TAG_MUSICBRAINZ_ALBUMARTISTID, add_musicbrainz_tag, "\002"}, {
+   GST_TAG_MUSICBRAINZ_TRMID, add_musicbrainz_tag, "\003"}, {
+   GST_TAG_MUSICBRAINZ_TRACKID, add_unique_file_id_tag, ""}, {
+-  GST_TAG_MUSICBRAINZ_SORTNAME, add_text_tag, "TSOP"}, {
++  GST_TAG_ARTIST_SORTNAME, add_text_tag, "TSOP"}, {
++  GST_TAG_ALBUM_SORTNAME, add_text_tag, "TSOA"}, {
++  GST_TAG_TITLE_SORTNAME, add_text_tag, "TSOT"}, {
+   GST_TAG_TRACK_NUMBER, add_count_or_num_tag, "TRCK"}, {
+   GST_TAG_TRACK_COUNT, add_count_or_num_tag, "TRCK"}, {
+   GST_TAG_ALBUM_VOLUME_NUMBER, add_count_or_num_tag, "TPOS"}, {
diff --git a/pkgs/development/libraries/gstreamer/gstreamer/0.10.17.nix b/pkgs/development/libraries/gstreamer/gstreamer/0.10.17.nix
new file mode 100644
index 0000000000000..3508145c22c87
--- /dev/null
+++ b/pkgs/development/libraries/gstreamer/gstreamer/0.10.17.nix
@@ -0,0 +1,20 @@
+args: with args;
+
+stdenv.mkDerivation rec {
+  name = "gstreamer-" + version;
+
+  src = fetchurl {
+    url = "${meta.homepage}/src/gstreamer/${name}.tar.bz2";
+    sha256 = "172nqf6l6mq4r1923bph53xd6h3svha3kkrvy5cald77jgf64a24";
+  };
+
+  buildInputs = [perl bison flex pkgconfig python];
+  propagatedBuildInputs = [glib libxml2];
+
+  configureFlags = "--enable-shared --disable-static --enable-failing-tests
+    --localstatedir=/var";
+
+  meta = {
+    homepage = http://gstreamer.freedesktop.org;
+  };
+}
diff --git a/pkgs/development/libraries/gtk-libs-2.10/default.nix b/pkgs/development/libraries/gtk-libs-2.10/default.nix
deleted file mode 100644
index ed5ae35f05d53..0000000000000
--- a/pkgs/development/libraries/gtk-libs-2.10/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ xineramaSupport ? false
-, stdenv, fetchurl, pkgconfig, gettext, perl, x11
-, libtiff, libjpeg, libpng, cairo, libXinerama ? null, libXrandr
-}:
-
-rec {
-
-  glib = (import ./glib) {
-    inherit fetchurl stdenv pkgconfig gettext perl;
-  };
-
-  atk = (import ./atk) {
-    inherit fetchurl stdenv pkgconfig glib perl;
-  };
-
-  pango = (import ./pango) {
-    inherit fetchurl stdenv pkgconfig glib x11 cairo libpng;
-  };
-
-  gtk = (import ./gtk+) {
-    inherit fetchurl stdenv pkgconfig glib atk pango perl
-            libtiff libjpeg libpng x11 cairo libXinerama
-            xineramaSupport libXrandr;
-  };
-
-}
diff --git a/pkgs/development/libraries/gtk-libs-2.10/gtk+/default.nix b/pkgs/development/libraries/gtk-libs-2.10/gtk+/default.nix
deleted file mode 100644
index 474c6499380e2..0000000000000
--- a/pkgs/development/libraries/gtk-libs-2.10/gtk+/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ xineramaSupport ? false
-, stdenv, fetchurl, pkgconfig, x11, glib, atk
-, pango, perl, libtiff, libjpeg, libpng, cairo, libXinerama ? null, libXrandr
-}:
-
-assert x11.buildClientLibs;
-assert xineramaSupport -> libXinerama != null;
-
-
-stdenv.mkDerivation {
-  name = "gtk+-2.10.14";
-  src = fetchurl {
-    url = ftp://ftp.gtk.org/pub/gtk/v2.10/gtk+-2.10.14.tar.bz2;
-    sha256 = "1qjdx9kdc533dajdy1kv3ssxzh7gz7j7vzgw0ax910q4klil88yh";
-  };
-  buildInputs = [
-    pkgconfig perl libtiff libjpeg libpng cairo libXrandr
-    (if xineramaSupport then libXinerama else null)
-  ];
-  propagatedBuildInputs = [x11 glib atk pango];
-  inherit libtiff libjpeg libpng;
-}
diff --git a/pkgs/development/libraries/gtk-libs-2.2/atk/default.nix b/pkgs/development/libraries/gtk-libs-2.2/atk/default.nix
deleted file mode 100644
index 1089f571099e5..0000000000000
--- a/pkgs/development/libraries/gtk-libs-2.2/atk/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{stdenv, fetchurl, pkgconfig, glib, perl}:
-
-assert pkgconfig != null && glib != null && perl != null;
-
-stdenv.mkDerivation {
-  name = "atk-1.2.4";
-  src = fetchurl {
-    url = ftp://ftp.gtk.org/pub/gtk/v2.2/atk-1.2.4.tar.bz2;
-    md5 = "2d6d50df31abe0e8892b5d3e7676a02d";
-  };
-  buildInputs = [pkgconfig perl];
-  propagatedBuildInputs = [glib];
-}
diff --git a/pkgs/development/libraries/gtk-libs-2.2/glib/default.nix b/pkgs/development/libraries/gtk-libs-2.2/glib/default.nix
deleted file mode 100644
index 22d01d0d86f6f..0000000000000
--- a/pkgs/development/libraries/gtk-libs-2.2/glib/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{stdenv, fetchurl, pkgconfig, gettext, perl}:
-
-assert pkgconfig != null && gettext != null && perl != null;
-
-stdenv.mkDerivation {
-  name = "glib-2.2.3";
-  src = fetchurl {
-    url = ftp://ftp.gtk.org/pub/gtk/v2.2/glib-2.2.3.tar.bz2;
-    md5 = "aa214a10d873b68ddd67cd9de2ccae55";
-  };
-  buildInputs = [pkgconfig gettext perl];
-}
diff --git a/pkgs/development/libraries/gtk-libs-2.2/gtk+/default.nix b/pkgs/development/libraries/gtk-libs-2.2/gtk+/default.nix
deleted file mode 100644
index e1eef80580355..0000000000000
--- a/pkgs/development/libraries/gtk-libs-2.2/gtk+/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, x11, glib, atk
-, pango, perl, libtiff, libjpeg, libpng}:
-
-assert pkgconfig != null && x11 != null && glib != null && atk != null
-  && pango != null && perl != null && perl != null && libtiff != null
-  && libjpeg != null && libpng != null;
-assert x11.buildClientLibs;
-#assert glib == atk.glib;
-#assert glib == pango.glib;
-#assert x11 == pango.x11;
-
-stdenv.mkDerivation {
-  name = "gtk+-2.2.4";
-  src = fetchurl {
-    url = ftp://ftp.gtk.org/pub/gtk/v2.2/gtk+-2.2.4.tar.bz2;
-    md5 = "605332199533e73bc6eec481fb4f1671";
-  };
-  buildInputs = [pkgconfig perl libtiff libjpeg libpng];
-  propagatedBuildInputs = [x11 glib atk pango];
-  inherit libtiff libjpeg libpng;
-}
diff --git a/pkgs/development/libraries/gtk-libs-2.2/pango/default.nix b/pkgs/development/libraries/gtk-libs-2.2/pango/default.nix
deleted file mode 100644
index 5d5e5184dda7e..0000000000000
--- a/pkgs/development/libraries/gtk-libs-2.2/pango/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{stdenv, fetchurl, pkgconfig, x11, glib}:
-
-assert pkgconfig != null && x11 != null && glib != null;
-assert x11.buildClientLibs;
-
-stdenv.mkDerivation {
-  name = "pango-1.2.5";
-  src = fetchurl {
-    url = ftp://ftp.gtk.org/pub/gtk/v2.2/pango-1.2.5.tar.bz2;
-    md5 = "df00fe3e71cd297010f24f439b6c8ee6";
-  };
-  buildInputs = [pkgconfig];
-  propagatedBuildInputs = [x11 glib];
-}
diff --git a/pkgs/development/libraries/gtk-libs-2.4/atk/default.nix b/pkgs/development/libraries/gtk-libs-2.4/atk/default.nix
deleted file mode 100644
index 095ff32b2aa1c..0000000000000
--- a/pkgs/development/libraries/gtk-libs-2.4/atk/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{stdenv, fetchurl, pkgconfig, glib, perl}:
-
-assert pkgconfig != null && glib != null && perl != null;
-
-stdenv.mkDerivation {
-  name = "atk-1.6.1";
-  src = fetchurl {
-    url = ftp://ftp.gtk.org/pub/gtk/v2.4/atk-1.6.1.tar.bz2;
-    md5 = "f77be7e128c957bd3056c2e270b5f283";
-  };
-  buildInputs = [pkgconfig perl];
-  propagatedBuildInputs = [glib];
-}
diff --git a/pkgs/development/libraries/gtk-libs-2.4/default.nix b/pkgs/development/libraries/gtk-libs-2.4/default.nix
deleted file mode 100644
index dc01a534d814f..0000000000000
--- a/pkgs/development/libraries/gtk-libs-2.4/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, gettext, perl, x11
-, libtiff, libjpeg, libpng}:
-
-rec {
-
-  glib = (import ./glib) {
-    inherit fetchurl stdenv pkgconfig gettext perl;
-  };
-
-  atk = (import ./atk) {
-    inherit fetchurl stdenv pkgconfig glib perl;
-  };
-
-  pango = (import ./pango) {
-    inherit fetchurl stdenv pkgconfig glib x11;
-  };
-
-  gtk = (import ./gtk+) {
-    inherit fetchurl stdenv pkgconfig glib atk pango perl
-            libtiff libjpeg libpng x11;
-  };
-
-}
diff --git a/pkgs/development/libraries/gtk-libs-2.4/glib/default.nix b/pkgs/development/libraries/gtk-libs-2.4/glib/default.nix
deleted file mode 100644
index 58f91b3f83c5f..0000000000000
--- a/pkgs/development/libraries/gtk-libs-2.4/glib/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{stdenv, fetchurl, pkgconfig, gettext, perl}:
-
-assert pkgconfig != null && gettext != null && perl != null;
-
-stdenv.mkDerivation {
-  name = "glib-2.4.7";
-  src = fetchurl {
-    url = ftp://ftp.gtk.org/pub/gtk/v2.4/glib-2.4.7.tar.bz2;
-    md5 = "eff6fec89455addf8b0dee5a19e343be";
-  };
-  buildInputs = [pkgconfig gettext perl];
-}
diff --git a/pkgs/development/libraries/gtk-libs-2.4/gtk+/default.nix b/pkgs/development/libraries/gtk-libs-2.4/gtk+/default.nix
deleted file mode 100644
index 56a6e41e7311b..0000000000000
--- a/pkgs/development/libraries/gtk-libs-2.4/gtk+/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, x11, glib, atk
-, pango, perl, libtiff, libjpeg, libpng}:
-
-assert pkgconfig != null && x11 != null && glib != null && atk != null
-  && pango != null && perl != null && perl != null && libtiff != null
-  && libjpeg != null && libpng != null;
-assert x11.buildClientLibs;
-#assert glib == atk.glib;
-#assert glib == pango.glib;
-#assert x11 == pango.x11;
-
-stdenv.mkDerivation {
-  name = "gtk+-2.4.13";
-  src = fetchurl {
-    url = ftp://ftp.gtk.org/pub/gtk/v2.4/gtk+-2.4.13.tar.bz2;
-    md5 = "3a438e1010704b11acaf060c9ba0fd7b";
-  };
-  buildInputs = [pkgconfig perl libtiff libjpeg libpng];
-  propagatedBuildInputs = [x11 glib atk pango];
-  inherit libtiff libjpeg libpng;
-}
diff --git a/pkgs/development/libraries/gtk-libs-2.4/pango/default.nix b/pkgs/development/libraries/gtk-libs-2.4/pango/default.nix
deleted file mode 100644
index 986891b98b978..0000000000000
--- a/pkgs/development/libraries/gtk-libs-2.4/pango/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{stdenv, fetchurl, pkgconfig, x11, glib}:
-
-assert pkgconfig != null && x11 != null && glib != null;
-assert x11.buildClientLibs;
-
-stdenv.mkDerivation {
-  name = "pango-1.4.1";
-  src = fetchurl {
-    url = ftp://ftp.gtk.org/pub/gtk/v2.4/pango-1.4.1.tar.bz2;
-    md5 = "39868e0da250fd4c00b2970e4eb84389";
-  };
-  buildInputs = [pkgconfig];
-  propagatedBuildInputs = [x11 glib];
-}
diff --git a/pkgs/development/libraries/gtk-libs-2.6/default.nix b/pkgs/development/libraries/gtk-libs-2.6/default.nix
deleted file mode 100644
index dc01a534d814f..0000000000000
--- a/pkgs/development/libraries/gtk-libs-2.6/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, gettext, perl, x11
-, libtiff, libjpeg, libpng}:
-
-rec {
-
-  glib = (import ./glib) {
-    inherit fetchurl stdenv pkgconfig gettext perl;
-  };
-
-  atk = (import ./atk) {
-    inherit fetchurl stdenv pkgconfig glib perl;
-  };
-
-  pango = (import ./pango) {
-    inherit fetchurl stdenv pkgconfig glib x11;
-  };
-
-  gtk = (import ./gtk+) {
-    inherit fetchurl stdenv pkgconfig glib atk pango perl
-            libtiff libjpeg libpng x11;
-  };
-
-}
diff --git a/pkgs/development/libraries/gtk-libs-1.x/default.nix b/pkgs/development/libraries/gtk-libs/1.x/default.nix
index 0e86abd788b59..0e86abd788b59 100644
--- a/pkgs/development/libraries/gtk-libs-1.x/default.nix
+++ b/pkgs/development/libraries/gtk-libs/1.x/default.nix
diff --git a/pkgs/development/libraries/gtk-libs-1.x/gdk-pixbuf/default.nix b/pkgs/development/libraries/gtk-libs/1.x/gdk-pixbuf/default.nix
index 4e28a78930fc2..4e28a78930fc2 100644
--- a/pkgs/development/libraries/gtk-libs-1.x/gdk-pixbuf/default.nix
+++ b/pkgs/development/libraries/gtk-libs/1.x/gdk-pixbuf/default.nix
diff --git a/pkgs/development/libraries/gtk-libs-1.x/glib/default.nix b/pkgs/development/libraries/gtk-libs/1.x/glib/default.nix
index 8aa5005b61719..8aa5005b61719 100644
--- a/pkgs/development/libraries/gtk-libs-1.x/glib/default.nix
+++ b/pkgs/development/libraries/gtk-libs/1.x/glib/default.nix
diff --git a/pkgs/development/libraries/gtk-libs-1.x/glib/gcc34.patch b/pkgs/development/libraries/gtk-libs/1.x/glib/gcc34.patch
index 13d35c822099c..13d35c822099c 100644
--- a/pkgs/development/libraries/gtk-libs-1.x/glib/gcc34.patch
+++ b/pkgs/development/libraries/gtk-libs/1.x/glib/gcc34.patch
diff --git a/pkgs/development/libraries/gtk-libs-1.x/gtk+/builder.sh b/pkgs/development/libraries/gtk-libs/1.x/gtk+/builder.sh
index da9b8dc6128f9..da9b8dc6128f9 100644
--- a/pkgs/development/libraries/gtk-libs-1.x/gtk+/builder.sh
+++ b/pkgs/development/libraries/gtk-libs/1.x/gtk+/builder.sh
diff --git a/pkgs/development/libraries/gtk-libs-1.x/gtk+/default.nix b/pkgs/development/libraries/gtk-libs/1.x/gtk+/default.nix
index 7762ee57b77e4..7762ee57b77e4 100644
--- a/pkgs/development/libraries/gtk-libs-1.x/gtk+/default.nix
+++ b/pkgs/development/libraries/gtk-libs/1.x/gtk+/default.nix
diff --git a/pkgs/development/libraries/gtk-libs-2.10/atk/default.nix b/pkgs/development/libraries/gtk-libs/2.10/atk/default.nix
index 34d23bc6daaa9..1dae480423f85 100644
--- a/pkgs/development/libraries/gtk-libs-2.10/atk/default.nix
+++ b/pkgs/development/libraries/gtk-libs/2.10/atk/default.nix
@@ -1,6 +1,4 @@
-{stdenv, fetchurl, pkgconfig, glib, perl}:
-
-assert pkgconfig != null && glib != null && perl != null;
+args: with args;
 
 stdenv.mkDerivation {
   name = "atk-1.12.4";
diff --git a/pkgs/development/libraries/gtk-libs/2.10/default.nix b/pkgs/development/libraries/gtk-libs/2.10/default.nix
new file mode 100644
index 0000000000000..0fc77dde6274c
--- /dev/null
+++ b/pkgs/development/libraries/gtk-libs/2.10/default.nix
@@ -0,0 +1,16 @@
+args: with args;
+
+rec {
+
+  glib = (import ./glib) args;
+
+  atk = (import ./atk) (args // { inherit glib; });
+
+  pango = (import ./pango) (args // { inherit glib; });
+
+  gtk = (import ./gtk+) (args // { inherit glib atk pango; } );
+
+  glibmm = (import ./glibmm) (args // { inherit glib; });
+
+  gtkmm = (import ./gtkmm) (args // { inherit gtk atk glibmm; });
+}
diff --git a/pkgs/development/libraries/gtk-libs-2.10/glib/default.nix b/pkgs/development/libraries/gtk-libs/2.10/glib/default.nix
index b29f6b62f9375..9af2ab959b125 100644
--- a/pkgs/development/libraries/gtk-libs-2.10/glib/default.nix
+++ b/pkgs/development/libraries/gtk-libs/2.10/glib/default.nix
@@ -1,6 +1,4 @@
-{stdenv, fetchurl, pkgconfig, gettext, perl}:
-
-assert pkgconfig != null && gettext != null && perl != null;
+args: with args;
 
 stdenv.mkDerivation {
   name = "glib-2.12.13"; # <- sic! gtk 2.10 needs glib 2.12
diff --git a/pkgs/development/libraries/gtk-libs-2.10/glibmm/default.nix b/pkgs/development/libraries/gtk-libs/2.10/glibmm/default.nix
index e1d275b99747e..bbdde49b75d0b 100644
--- a/pkgs/development/libraries/gtk-libs-2.10/glibmm/default.nix
+++ b/pkgs/development/libraries/gtk-libs/2.10/glibmm/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, pkgconfig, glib, libsigcxx}:
+args: with args;
 
 stdenv.mkDerivation {
   name = "glibmm-2.12.10";
@@ -7,6 +7,7 @@ stdenv.mkDerivation {
     sha256 = "02rjjdh0f6kafa1sn4y5ykvm4f2qn3yh4kr4lngcv7vzasqn1dr1";
   };
 
-  buildInputs = [pkgconfig glib libsigcxx];
+  buildInputs = [pkgconfig];
+  propagatedBuildInputs = [glib libsigcxx];
 }
 
diff --git a/pkgs/development/libraries/gtk-libs/2.10/gtk+/default.nix b/pkgs/development/libraries/gtk-libs/2.10/gtk+/default.nix
new file mode 100644
index 0000000000000..a819c1fc2755a
--- /dev/null
+++ b/pkgs/development/libraries/gtk-libs/2.10/gtk+/default.nix
@@ -0,0 +1,13 @@
+args: with args;
+
+stdenv.mkDerivation {
+  name = "gtk+-2.10.14";
+  src = fetchurl {
+    url = ftp://ftp.gtk.org/pub/gtk/v2.10/gtk+-2.10.14.tar.bz2;
+    sha256 = "1qjdx9kdc533dajdy1kv3ssxzh7gz7j7vzgw0ax910q4klil88yh";
+  };
+  buildInputs = [ pkgconfig perl ];
+  propagatedBuildInputs = [x11 glib atk pango libtiff libjpeg libpng cairo
+    libXrandr (if xineramaSupport then libXinerama else null)];
+  passthru = { inherit libtiff libjpeg libpng; };
+}
diff --git a/pkgs/development/libraries/gtk-libs-2.10/gtkmm/default.nix b/pkgs/development/libraries/gtk-libs/2.10/gtkmm/default.nix
index 4f476f73d50e1..9a44e9a6ba228 100644
--- a/pkgs/development/libraries/gtk-libs-2.10/gtkmm/default.nix
+++ b/pkgs/development/libraries/gtk-libs/2.10/gtkmm/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, gtk, atk, glibmm, libsigcxx}:
+args: with args;
 
 stdenv.mkDerivation {
   name = "gtkmm-2.10.11";
@@ -7,6 +7,7 @@ stdenv.mkDerivation {
     sha256 = "1bri9r0k69dmi5xgzrlfllp3adfzhz8dh9zkcvi6sjkgfwi594vx";
   };
 
-  buildInputs = [pkgconfig gtk atk glibmm libsigcxx];
+  buildInputs = [pkgconfig];
+  propagatedBuildInputs = [glibmm gtk atk cairomm];
 }
 
diff --git a/pkgs/development/libraries/gtk-libs-2.10/pango/default.nix b/pkgs/development/libraries/gtk-libs/2.10/pango/default.nix
index 25d4aa17e9148..faf5ffb47240e 100644
--- a/pkgs/development/libraries/gtk-libs-2.10/pango/default.nix
+++ b/pkgs/development/libraries/gtk-libs/2.10/pango/default.nix
@@ -1,6 +1,4 @@
-{stdenv, fetchurl, pkgconfig, x11, glib, cairo, libpng}:
-
-assert x11.buildClientLibs;
+args: with args;
 
 stdenv.mkDerivation {
   name = "pango-1.14.10";
@@ -8,6 +6,6 @@ stdenv.mkDerivation {
     url = ftp://ftp.gtk.org/pub/pango/1.14/pango-1.14.10.tar.bz2;
     md5 = "e9fc2f8168e74e2fa0aa8238ee0e9c06";
   };
-  buildInputs = [pkgconfig libpng];
-  propagatedBuildInputs = [x11 glib cairo];
+  buildInputs = [pkgconfig];
+  propagatedBuildInputs = [x11 glib cairo libpng];
 }
diff --git a/pkgs/development/libraries/gtk-libs-2.6/atk/default.nix b/pkgs/development/libraries/gtk-libs/2.6/atk/default.nix
index 66720d4dbebef..66720d4dbebef 100644
--- a/pkgs/development/libraries/gtk-libs-2.6/atk/default.nix
+++ b/pkgs/development/libraries/gtk-libs/2.6/atk/default.nix
diff --git a/pkgs/development/libraries/gtk-libs-2.2/default.nix b/pkgs/development/libraries/gtk-libs/2.6/default.nix
index dc01a534d814f..dc01a534d814f 100644
--- a/pkgs/development/libraries/gtk-libs-2.2/default.nix
+++ b/pkgs/development/libraries/gtk-libs/2.6/default.nix
diff --git a/pkgs/development/libraries/gtk-libs-2.6/glib/default.nix b/pkgs/development/libraries/gtk-libs/2.6/glib/default.nix
index 1dc3407a76e81..1dc3407a76e81 100644
--- a/pkgs/development/libraries/gtk-libs-2.6/glib/default.nix
+++ b/pkgs/development/libraries/gtk-libs/2.6/glib/default.nix
diff --git a/pkgs/development/libraries/gtk-libs-2.6/glibmm/default.nix b/pkgs/development/libraries/gtk-libs/2.6/glibmm/default.nix
index 957c596fc7b11..957c596fc7b11 100644
--- a/pkgs/development/libraries/gtk-libs-2.6/glibmm/default.nix
+++ b/pkgs/development/libraries/gtk-libs/2.6/glibmm/default.nix
diff --git a/pkgs/development/libraries/gtk-libs-2.6/gtk+/default.nix b/pkgs/development/libraries/gtk-libs/2.6/gtk+/default.nix
index 06e37f070da2a..06e37f070da2a 100644
--- a/pkgs/development/libraries/gtk-libs-2.6/gtk+/default.nix
+++ b/pkgs/development/libraries/gtk-libs/2.6/gtk+/default.nix
diff --git a/pkgs/development/libraries/gtk-libs-2.6/gtkmm/default.nix b/pkgs/development/libraries/gtk-libs/2.6/gtkmm/default.nix
index ebc1e881c471f..ebc1e881c471f 100644
--- a/pkgs/development/libraries/gtk-libs-2.6/gtkmm/default.nix
+++ b/pkgs/development/libraries/gtk-libs/2.6/gtkmm/default.nix
diff --git a/pkgs/development/libraries/gtk-libs-2.6/pango/default.nix b/pkgs/development/libraries/gtk-libs/2.6/pango/default.nix
index 6b9391e0a0b15..6b9391e0a0b15 100644
--- a/pkgs/development/libraries/gtk-libs-2.6/pango/default.nix
+++ b/pkgs/development/libraries/gtk-libs/2.6/pango/default.nix
diff --git a/pkgs/development/libraries/gtk-libs-2.8/atk/default.nix b/pkgs/development/libraries/gtk-libs/2.8/atk/default.nix
index 075375675203e..075375675203e 100644
--- a/pkgs/development/libraries/gtk-libs-2.8/atk/default.nix
+++ b/pkgs/development/libraries/gtk-libs/2.8/atk/default.nix
diff --git a/pkgs/development/libraries/gtk-libs-2.8/default.nix b/pkgs/development/libraries/gtk-libs/2.8/default.nix
index ee5abd562b1e8..ee5abd562b1e8 100644
--- a/pkgs/development/libraries/gtk-libs-2.8/default.nix
+++ b/pkgs/development/libraries/gtk-libs/2.8/default.nix
diff --git a/pkgs/development/libraries/gtk-libs-2.8/glib/default.nix b/pkgs/development/libraries/gtk-libs/2.8/glib/default.nix
index f73a1f388f4e0..f73a1f388f4e0 100644
--- a/pkgs/development/libraries/gtk-libs-2.8/glib/default.nix
+++ b/pkgs/development/libraries/gtk-libs/2.8/glib/default.nix
diff --git a/pkgs/development/libraries/gtk-libs-2.8/glibmm/default.nix b/pkgs/development/libraries/gtk-libs/2.8/glibmm/default.nix
index 957c596fc7b11..957c596fc7b11 100644
--- a/pkgs/development/libraries/gtk-libs-2.8/glibmm/default.nix
+++ b/pkgs/development/libraries/gtk-libs/2.8/glibmm/default.nix
diff --git a/pkgs/development/libraries/gtk-libs-2.8/gtk+/default.nix b/pkgs/development/libraries/gtk-libs/2.8/gtk+/default.nix
index c5a012d9baaa7..c5a012d9baaa7 100644
--- a/pkgs/development/libraries/gtk-libs-2.8/gtk+/default.nix
+++ b/pkgs/development/libraries/gtk-libs/2.8/gtk+/default.nix
diff --git a/pkgs/development/libraries/gtk-libs-2.8/gtkmm/default.nix b/pkgs/development/libraries/gtk-libs/2.8/gtkmm/default.nix
index ebc1e881c471f..ebc1e881c471f 100644
--- a/pkgs/development/libraries/gtk-libs-2.8/gtkmm/default.nix
+++ b/pkgs/development/libraries/gtk-libs/2.8/gtkmm/default.nix
diff --git a/pkgs/development/libraries/gtk-libs-2.8/pango/default.nix b/pkgs/development/libraries/gtk-libs/2.8/pango/default.nix
index 9e3296e00a1c1..9e3296e00a1c1 100644
--- a/pkgs/development/libraries/gtk-libs-2.8/pango/default.nix
+++ b/pkgs/development/libraries/gtk-libs/2.8/pango/default.nix
diff --git a/pkgs/development/libraries/ilbc/default.nix b/pkgs/development/libraries/ilbc/default.nix
new file mode 100644
index 0000000000000..360644cf91162
--- /dev/null
+++ b/pkgs/development/libraries/ilbc/default.nix
@@ -0,0 +1,17 @@
+args: with args;
+stdenv.mkDerivation {
+  name = "ilbc-rfc3951";
+
+# I'm too lazy to extract .c source from rfc3951. So, I'm using autotools stuff
+# from linphone project
+  src = stdenv.mkDerivation {
+    name = "ilbc-rfc3951.tar.gz";
+    src = msilbc.src;
+	outputHashAlgo = "sha256";
+    outputHash = "0f6scsp72bz2ifscd8c0x57ipcxi2i4a9b4nwlnwx7a7a0hrazhj";
+    phases = "unpackPhase installPhase";
+    installPhase = "cp ilbc-rfc3951.tar.gz \${out}";
+  };
+
+  configureFlags = "--enable-shared --disable-static";
+}
diff --git a/pkgs/development/libraries/libarchive/2.4.11.nix b/pkgs/development/libraries/libarchive/2.4.11.nix
new file mode 100644
index 0000000000000..e75d59ec18afc
--- /dev/null
+++ b/pkgs/development/libraries/libarchive/2.4.11.nix
@@ -0,0 +1,2 @@
+args:
+import ./common.nix "1iq5hs4hbqyl6sqiqlaj3j89vpfqx6zv974c965nxjvmwy816dbz" args
diff --git a/pkgs/development/libraries/libarchive/2.4.12.nix b/pkgs/development/libraries/libarchive/2.4.12.nix
new file mode 100644
index 0000000000000..9765ec61cd76d
--- /dev/null
+++ b/pkgs/development/libraries/libarchive/2.4.12.nix
@@ -0,0 +1,2 @@
+args:
+import ./common.nix "133kxx1wfangrhy6rcpqlqib7i45qxj8pcp3i9n574cwfx41swy4" args
diff --git a/pkgs/development/libraries/libarchive/common.nix b/pkgs/development/libraries/libarchive/common.nix
new file mode 100644
index 0000000000000..9f031e4f2c210
--- /dev/null
+++ b/pkgs/development/libraries/libarchive/common.nix
@@ -0,0 +1,18 @@
+sha256: args: with args;
+stdenv.mkDerivation rec {
+	name = "libarchive-" + version;
+
+	src = fetchurl {
+		url = "${meta.homepage}/src/${name}.tar.gz";
+    inherit sha256;
+	};
+
+	propagatedBuildInputs = [zlib bzip2 e2fsprogs];
+  buildInputs = [sharutils];
+  configureFlags = "--enable-shared --disable-static";
+
+	meta = {
+		description = "A library for reading and writing streaming archives";
+    homepage = http://people.freebsd.org/~kientzle/libarchive;
+	};
+}
diff --git a/pkgs/development/libraries/libarchive/default.nix b/pkgs/development/libraries/libarchive/default.nix
deleted file mode 100644
index c7dc2b39389e6..0000000000000
--- a/pkgs/development/libraries/libarchive/default.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-args: with args;
-stdenv.mkDerivation rec {
-	name = "libarchive-2.4.11";
-
-	src = fetchurl {
-		url = "http://FIXME_dont_remember/${name}.tar.gz";
-		sha256 = "1iq5hs4hbqyl6sqiqlaj3j89vpfqx6zv974c965nxjvmwy816dbz";
-	};
-
-	buildInputs = [zlib];
-
-	meta = {
-		description = "A library for reading and writing streaming archives";
-	};
-}
diff --git a/pkgs/development/libraries/libavc1394/default.nix b/pkgs/development/libraries/libavc1394/default.nix
index 0834c212fe97f..672ca202354fe 100644
--- a/pkgs/development/libraries/libavc1394/default.nix
+++ b/pkgs/development/libraries/libavc1394/default.nix
@@ -7,7 +7,8 @@ stdenv.mkDerivation {
     sha256 = "19i40i3722ilhziknfds3a6w5xzv66fvc68gvbir1p2fvwi6ij93";
   };
 
-  buildInputs = [pkgconfig libraw1394];
+  buildInputs = [pkgconfig];
+  propagatedBuildInputs = [libraw1394];
 
   meta = { 
       description = "programming interface for the 1394 Trade Association AV/C (Audio/Video Control) Digital Interface Command Set";
diff --git a/pkgs/development/libraries/libiec61883/default.nix b/pkgs/development/libraries/libiec61883/default.nix
index c4062403d3813..6fe199f5b91b9 100644
--- a/pkgs/development/libraries/libiec61883/default.nix
+++ b/pkgs/development/libraries/libiec61883/default.nix
@@ -1,17 +1,18 @@
 args: with args;
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "libiec61883-1.1.0";
 
   src = fetchurl {
-    url = http://www.linux1394.org/dl/libiec61883-1.1.0.tar.gz;
+    url = "${meta.homepage}/dl/${name}.tar.gz";
     sha256 = "09f0ca7bp6lqlz6601gnyl04mfabv0azg49n1cmjyqpzh35cgxkq";
   };
 
-  buildInputs = [pkgconfig libraw1394];
+  buildInputs = [pkgconfig];
+  propagatedBuildInputs = [libraw1394];
 
   meta = { 
       description = "TODO";
-      homepage = http://www.linux1394.org/;
+      homepage = http://www.linux1394.org;
       license = "LGPL";
     };
 }
diff --git a/pkgs/development/libraries/libjingle/0.3.11.nix b/pkgs/development/libraries/libjingle/0.3.11.nix
new file mode 100644
index 0000000000000..b9d0b82df5eb8
--- /dev/null
+++ b/pkgs/development/libraries/libjingle/0.3.11.nix
@@ -0,0 +1,10 @@
+args: with args;
+stdenv.mkDerivation rec {
+	name = "libjingle-" + version;
+	src = fetchurl {
+		url = "mirror://sf/tapioca-voip/${name}.tar.gz";
+		sha256 = "1x5l2jwxpkyxvnq0cagq40p6x61v23vxngnnsxr15lyh1zwzk1yj";
+	};
+
+  propagatedBuildInputs = [ mediastreamer ];
+}
diff --git a/pkgs/development/libraries/libjingle/0.4.0.nix b/pkgs/development/libraries/libjingle/0.4.0.nix
new file mode 100644
index 0000000000000..93bacd00929e3
--- /dev/null
+++ b/pkgs/development/libraries/libjingle/0.4.0.nix
@@ -0,0 +1,10 @@
+args: with args;
+
+stdenv.mkDerivation rec {
+  name = "libjingle-" + version;
+
+  src = fetchurl {
+    url = "mirror://sf/libjingle/${name}.tar.gz";
+    sha256 = "0izg1i4nmhysvkqmsl2xqp0x6lwz2jjyavvhv196hsdsr2w0iwvi";
+  };
+}
diff --git a/pkgs/development/libraries/libnotify/default.nix b/pkgs/development/libraries/libnotify/default.nix
index 42747db95a1b4..8b58fe857e9d7 100644
--- a/pkgs/development/libraries/libnotify/default.nix
+++ b/pkgs/development/libraries/libnotify/default.nix
@@ -1,7 +1,4 @@
-{ stdenv, fetchurl
-, pkgconfig, dbus, dbus_glib
-, gtk, glib
-}:
+args: with args;
  
 stdenv.mkDerivation {
   name = "libnotify-0.4.4";
@@ -13,7 +10,7 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [
-    pkgconfig dbus dbus_glib gtk glib
+    pkgconfig dbus.libs dbus_glib gtk glib
   ];
 
   configureFlags="";
diff --git a/pkgs/development/libraries/liboil/0.3.12.nix b/pkgs/development/libraries/liboil/0.3.12.nix
new file mode 100644
index 0000000000000..5a04892d5bebb
--- /dev/null
+++ b/pkgs/development/libraries/liboil/0.3.12.nix
@@ -0,0 +1,20 @@
+args: with args;
+
+stdenv.mkDerivation rec {
+  name = "liboil-" + version;
+
+  src = fetchurl {
+    url = "${meta.homepage}/download/${name}.tar.gz";
+    sha256 = "0gdmly9sli1918pnb4ds1g38ipxikn651hdss86mp4qlfb8wvqlv";
+  };
+
+  configureFlags = "--enable-shared --disable-static";
+
+  buildInputs = [pkgconfig];
+
+  meta = {
+    homepage = http://liboil.freedesktop.org;
+    description = "Liboil is a library of simple functions that are optimized
+    for various CPUs.";
+  };
+}
diff --git a/pkgs/development/libraries/libraw1394/default.nix b/pkgs/development/libraries/libraw1394/default.nix
index 8463749fcb3f1..2ca8c543fa958 100644
--- a/pkgs/development/libraries/libraw1394/default.nix
+++ b/pkgs/development/libraries/libraw1394/default.nix
@@ -1,15 +1,15 @@
 args: with args;
-stdenv.mkDerivation {
-  name = "libraw1394-1.2.0";
+stdenv.mkDerivation rec {
+  name = "libraw1394-1.3.0";
 
   src = fetchurl {
-    url = "mirror://sourceforge/libraw1394/libraw1394-1.2.0.tar.gz";
-    sha256 = "1b9zqqzyz0ihyfvhn135y3wc6vmym5yz21jxj9dp0f09b96gmp0z";
+    url = "${meta.homepage}/dl/${name}.tar.gz";
+    sha256 = "035mrca9fhg4kq8r1s5yjgzg3vrn1nc3ndy13yg3chhqgx4dzzr0";
   };
 
   meta = { 
       description = "library providing direct access to the IEEE 1394 bus through the Linux 1394 subsystem's raw1394 user space interface";
-      homepage = "http://wiki.linux1394.org/";
+      homepage = "http://www.linux1394.org";
       license = ["GPL" "LGPL"];
   };
 }
diff --git a/pkgs/development/libraries/libsigsegv/2.5.nix b/pkgs/development/libraries/libsigsegv/2.5.nix
new file mode 100644
index 0000000000000..11f69753dc80d
--- /dev/null
+++ b/pkgs/development/libraries/libsigsegv/2.5.nix
@@ -0,0 +1,14 @@
+args: with args;
+
+stdenv.mkDerivation rec {
+  name = "libsigsegv-" + version;
+  src = fetchurl {
+    url = "mirror://gnu/libsigsegv/${name}.tar.gz";
+    sha256 = "0fvcsq9msi63vrbpvks6mqkrnls5cfy6bzww063sqhk2h49vsyyg";
+  };
+
+  meta = {
+    homepage = http://libsigsegv.sf.net;
+    description = "A library for handling page faults in user mode";
+  };
+}
diff --git a/pkgs/development/libraries/libsigsegv/default.nix b/pkgs/development/libraries/libsigsegv/default.nix
deleted file mode 100644
index 07d4bdaacc807..0000000000000
--- a/pkgs/development/libraries/libsigsegv/default.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{stdenv, fetchurl}:
-
-stdenv.mkDerivation {
-  name = "libsigsegv-2.1";
-  src = fetchurl {
-    url = mirror://gnu/libsigsegv/libsigsegv-2.1.tar.gz;
-    md5 = "6d75ca3fede5fbfd72a78bc918d9e174";
-  };
-}
diff --git a/pkgs/development/libraries/libxklavier/3.4.nix b/pkgs/development/libraries/libxklavier/3.4.nix
new file mode 100644
index 0000000000000..38fa91cfeb080
--- /dev/null
+++ b/pkgs/development/libraries/libxklavier/3.4.nix
@@ -0,0 +1,21 @@
+args: with args;
+
+stdenv.mkDerivation rec {
+  name = "libxklavier-" + version;
+
+  src = fetchurl {
+    url = "mirror://sf/gswitchit/${name}.tar.gz";
+    sha256 = "07pq74ygmnr3vgfp86dbjnqsp3v67fww6d3a1vqbif9wzbk70195";
+  };
+
+# TODO: enable xmodmap support, needs xmodmap DB
+  propagatedBuildInputs = [libX11 xkeyboard_config libxml2 libICE glib libxkbfile];
+  buildInputs = [pkgconfig];
+  configureFlags = "--enable-shared --disable-static
+    --with-xkb-base=${xkeyboard_config}/etc/X11/xkb
+    --disable-xmodmap-support";
+
+  meta = {
+    homepage = http://freedesktop.org/wiki/Software/LibXklavier;
+  };
+}
diff --git a/pkgs/development/libraries/log4cxx/default.nix b/pkgs/development/libraries/log4cxx/default.nix
index 49544796612fe..63f32c05bc774 100644
--- a/pkgs/development/libraries/log4cxx/default.nix
+++ b/pkgs/development/libraries/log4cxx/default.nix
@@ -6,6 +6,6 @@ stdenv.mkDerivation {
 		url = http://archive.apache.org/dist/logging/log4cxx/log4cxx-0.9.7.tar.gz;
 		sha256 = "1ikyxd8jgf7b2cqjk5lidl7cffs114iiblaczaqbv5bm4vyb4hav";
 	};
-	buildInputs = [ autoconf automake libtool libxml2 cppunit ];
+	buildInputs = [ autoconf automake libtool libxml2 cppunit boost ];
 	patchPhase = "sh autogen.sh; sed -e 's/DOMConfigurator::subst/subst/' -i include/log4cxx/xml/domconfigurator.h";
 }
diff --git a/pkgs/development/libraries/mediastreamer/2.2.0-cvs20080207.nix b/pkgs/development/libraries/mediastreamer/2.2.0-cvs20080207.nix
new file mode 100644
index 0000000000000..6391ce4dd6cac
--- /dev/null
+++ b/pkgs/development/libraries/mediastreamer/2.2.0-cvs20080207.nix
@@ -0,0 +1,22 @@
+args: with args;
+
+stdenv.mkDerivation rec {
+  name = "mediastreamer2-" + version;
+
+# This url is not related to mediastreamer. fetchcvs doesn't work on my laptop,
+# so I've created cvs snapshot and put it to my server.
+  src = fetchurl {
+    url = "http://www.loegria.net/misc/" + name + ".tar.bz2";
+    sha256 = "1nmvyqh4x3nsw4qbj754jwagj9ia183kvp8valdr7m44my0sw5p1";
+  };
+
+  buildInputs = [automake libtool autoconf pkgconfig];
+
+  propagatedBuildInputs = [alsaLib ffmpeg speex ortp];
+
+  preConfigure = "./autogen.sh";
+
+  patches = [ ./h264.patch ./plugins.patch ];
+
+  configureFlags = "--enable-external-ortp --enable-shared --disable-static";
+}
diff --git a/pkgs/development/libraries/mediastreamer/h264.patch b/pkgs/development/libraries/mediastreamer/h264.patch
new file mode 100644
index 0000000000000..0c6dc9e910922
--- /dev/null
+++ b/pkgs/development/libraries/mediastreamer/h264.patch
@@ -0,0 +1,12 @@
+diff --git a/tests/mediastream.c b/tests/mediastream.c
+index 12e1605..cdc8cd1 100644
+--- a/tests/mediastream.c
++++ b/tests/mediastream.c
+@@ -144,7 +144,6 @@ int main(int argc, char * argv[])
+ 	rtp_profile_set_payload(&av_profile,97,&payload_type_theora);
+ 	rtp_profile_set_payload(&av_profile,99,&payload_type_mp4v);
+ 	rtp_profile_set_payload(&av_profile,100,&payload_type_x_snow);
+-	rtp_profile_set_payload(&av_profile,102,&payload_type_h264);
+ #endif
+ 	if (argc<4) {
+ 		printf(usage);
diff --git a/pkgs/development/libraries/mediastreamer/plugins.patch b/pkgs/development/libraries/mediastreamer/plugins.patch
new file mode 100644
index 0000000000000..e82b85035f085
--- /dev/null
+++ b/pkgs/development/libraries/mediastreamer/plugins.patch
@@ -0,0 +1,49 @@
+diff --git a/src/mscommon.c b/src/mscommon.c
+index 1a12b2f..2399444 100644
+--- a/src/mscommon.c
++++ b/src/mscommon.c
+@@ -428,6 +428,7 @@ static MSSndCardDesc * ms_snd_card_descs[]={
+ void ms_init(){
+ 	int i;
+ 	MSSndCardManager *cm;
++	char *ms_plugin_path;
+ 
+ #ifdef __APPLE__
+ 	NSApplicationLoad();
+@@ -451,7 +452,35 @@ void ms_init(){
+ 	}
+ 
+ 	ms_message("Loading plugins");
+-	ms_load_plugins(PACKAGE_PLUGINS_DIR);
++	ms_plugin_path = getenv("MS_PLUGIN_PATH");
++	do
++		{
++			if (!ms_plugin_path)
++				{
++					ms_load_plugins(PACKAGE_PLUGINS_DIR);
++					break;
++				}
++			char *dup_plugins_path = strdup (ms_plugin_path);
++			char *cur_plugins_dir = dup_plugins_path;
++			if (!dup_plugins_path)
++				{
++					ms_message("Failed to duplicate plugins path, not loading plugins");
++					break;
++				}
++			while (1)
++				{
++					char *next_delimiter = strchr(cur_plugins_dir, ":");
++					if (next_delimiter)
++						next_delimiter[0] = '\0';
++					ms_load_plugins(cur_plugins_dir);
++					if (!next_delimiter)
++						break;
++					cur_plugins_dir = next_delimiter + 1;
++				}
++			free(dup_plugins_path);
++		}
++	while (0);
++
+ 	ms_message("ms_init() done");
+ }
+ 
diff --git a/pkgs/development/libraries/msilbc/2.0.0.nix b/pkgs/development/libraries/msilbc/2.0.0.nix
new file mode 100644
index 0000000000000..8bc8f2a6c1dbd
--- /dev/null
+++ b/pkgs/development/libraries/msilbc/2.0.0.nix
@@ -0,0 +1,24 @@
+args: with args;
+stdenv.mkDerivation rec {
+  name = "msilbc-" + version;
+  src = fetchurl {
+    url = "http://download.savannah.gnu.org/releases/linphone/plugins/sources/${name}.tar.gz";
+    sha256 = "0ifydb7qmpync56l4hbrp36n5wrb7gadb76isp643s6wsg7l743j";
+  };
+
+  patchPhase = "sed -i /MS_FILTER_SET_FMTP/d ilbc.c";
+
+  propagatedBuildInputs = [ilbc mediastreamer];
+  buildInputs = [pkgconfig];
+
+  buildPhase = ''
+    cc -fPIC -c -pthread -o ilbc.o ilbc.c `pkg-config --cflags mediastreamer`
+    echo "next"
+    cc `pkg-config --libs mediastreamer` -shared -pthread -o libilbc.so
+  '';
+
+  installPhase = "
+    ensureDir \${out}/lib/mediastreamer/plugins
+    cp libilbc.so \${out}/lib/mediastreamer/plugins
+  ";
+}
diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix
index 49045546975f4..013094ef64bea 100644
--- a/pkgs/development/libraries/ncurses/default.nix
+++ b/pkgs/development/libraries/ncurses/default.nix
@@ -7,6 +7,7 @@ stdenv.mkDerivation {
     md5 = "b6593abe1089d6aab1551c105c9300e3";
   };
   configureFlags="--with-shared --includedir=\${out}/include"+(if unicode then  " --enable-widec " else " ") +" --without-debug";
+  preBuild = ''sed -e "s@\([[:space:]]\)sh @\1''${SHELL} @" -i */Makefile Makefile'';
   postInstall= if unicode then "
     chmod -v 644 $out/lib/libncurses++w.a
     for lib in curses ncurses form panel menu; do
diff --git a/pkgs/development/libraries/ortp/default.nix b/pkgs/development/libraries/ortp/0.13.1.nix
index 4fc51a3ce85b5..ea1cd64b3d271 100644
--- a/pkgs/development/libraries/ortp/default.nix
+++ b/pkgs/development/libraries/ortp/0.13.1.nix
@@ -1,11 +1,9 @@
-
 args: with args;
 stdenv.mkDerivation rec {
-  name = "ortp-0.13.1";
+  name = "ortp-" + version;
 
   src = fetchurl {
-    url =
-	"http://download.savannah.nongnu.org/releases/linphone/ortp/sources/${name}.tar.gz";
+    url = "mirror://savannah/linphone/ortp/sources/${name}.tar.gz";
     sha256 = "0k2963v4b15xnf4cpkpgjhsb8ckxpf6vdr8dnw7z3mzilji7391b";
   };
 
@@ -13,6 +11,6 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "a Real-Time Transport Protocol (RFC3550) stack under LGPL";
-	homepage = http://www.linphone.org/index.php/eng/code_review/ortp;
+    homepage = http://www.linphone.org/index.php/eng/code_review/ortp;
   };
 }
diff --git a/pkgs/development/libraries/ortp/0.7.1.nix b/pkgs/development/libraries/ortp/0.7.1.nix
new file mode 100644
index 0000000000000..7bedf39f8be1d
--- /dev/null
+++ b/pkgs/development/libraries/ortp/0.7.1.nix
@@ -0,0 +1,16 @@
+args: with args;
+stdenv.mkDerivation rec {
+  name = "ortp-" + version;
+
+  src = fetchurl {
+    url = "mirror://savannah/linphone/ortp/sources/${name}.tar.gz";
+    sha256 = "0gyl0yzfg78sjhbwnwc2g8yn4riwd1wcv183qihgan6z2d5cfbrg";
+  };
+
+  configureFlags = "--enable-shared --disable-static";
+
+  meta = {
+    description = "a Real-Time Transport Protocol (RFC3550) stack under LGPL";
+    homepage = http://www.linphone.org/index.php/eng/code_review/ortp;
+  };
+}
diff --git a/pkgs/development/libraries/pcre/default.nix b/pkgs/development/libraries/pcre/default.nix
index 1b4d7fc90933e..cba26fae76c05 100644
--- a/pkgs/development/libraries/pcre/default.nix
+++ b/pkgs/development/libraries/pcre/default.nix
@@ -1,14 +1,14 @@
-args: with args;
+{stdenv, fetchurl, unicodeSupport ? false, cplusplusSupport ? true}:
 
-stdenv.mkDerivation ({
-  name = "pcre-7.1";
+stdenv.mkDerivation {
+  name = "pcre-7.4";
   src = fetchurl {
-    url = ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.1.tar.bz2;
-    sha256 = "0rpkcw07jas3fw6ava3ni5zcrmbncwa8xlsa0lzq6z2iph5510li";
+    url = ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.4.tar.bz2;
+    sha256 = "1rdks2h5f3p2d71c4jnxaic1c9gmgsfky80djnafcdbdrhzkiyx5";
   };
+  configureFlags =
+    (if unicodeSupport then
+      "--enable-unicode-properties --enable-shared --disable-static"
+    else "") +
+    (if !cplusplusSupport then "--disable-cpp" else "");
 }
-// (if unicodeSupport then
-{
-  configureFlags = "--enable-unicode-properties --enable-shared --disable-static";
-}
-else {}))
diff --git a/pkgs/development/libraries/qt-4/builder.sh b/pkgs/development/libraries/qt-4/builder.sh
deleted file mode 100755
index 5cd4164a7c224..0000000000000
--- a/pkgs/development/libraries/qt-4/builder.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-source $stdenv/setup
-
-ensureDir $out/nix-support
-substitute "$hook" "$out/nix-support/setup-hook" --subst-var out
-
-# !!! TODO: -system-libmng
-configureFlags="-prefix $out $configureFlags"
-
-genericBuild
diff --git a/pkgs/development/libraries/qt-4/default.nix b/pkgs/development/libraries/qt-4/default.nix
index 20893e8d8d9ba..046ebde99a137 100644
--- a/pkgs/development/libraries/qt-4/default.nix
+++ b/pkgs/development/libraries/qt-4/default.nix
@@ -4,11 +4,11 @@ rec {
   setupHook = ./setup-hook.sh;  
   propagatedBuildInputs = [libXft libXrender libXrandr randrproto xextproto
   libXinerama xineramaproto libXcursor zlib libjpeg mysql libpng which mesa
-  libXmu openssl dbus cups pkgconfig libXext freetype fontconfig inputproto
+  libXmu openssl dbus.libs cups pkgconfig libXext freetype fontconfig inputproto
   fixesproto libXfixes glib libtiff];
   prefixKey = "-prefix ";
   configureFlags = "
-    -v -no-separate-debug-info -release -nomake examples -nomake demos
+    -v -no-separate-debug-info -release
     -system-zlib -system-libpng -system-libjpeg -fast
     -qt-gif -confirm-license
     -opengl -xrender -xrandr -xinerama -xcursor -qt-sql-mysql
@@ -18,10 +18,10 @@ rec {
 }; in
 rec {
 	trolltech = stdenv.mkDerivation (common // {
-	  name = "qt-4.3.1";
+	  name = "qt-4.3.3";
 	  src = fetchurl {
-		url = ftp://ftp.trolltech.com/qt/source/qt-x11-opensource-src-4.3.1.tar.gz;
-		sha256 = "0qg6apy2r7jbbfinxh0v1jm08yv890r40hhmy5cysn239v3x0nad";
+		url = ftp://ftp.trolltech.com/qt/source/qt-x11-opensource-src-4.3.3.tar.gz;
+		sha256 = "0w0mfm0wwmbj1vnjn27rza1r9wj8k47mn9ril8swprffqnn4p4w9";
 	  };
 	  patchPhase = common.patchPhase;
 	});
@@ -29,8 +29,8 @@ rec {
 	  name = "qt-kde-4.3svn";
 	  src = fetchsvn {
 		  url = svn://anonsvn.kde.org/home/kde/trunk/qt-copy;
-		  rev = "732646";
-		  md5 = "9757de3dce16b483f2f358d287c848ee";
+		  rev = "761061";
+		  sha256 = "0i98kh435dj29ln1lnidxwivcha1m553s4l8c1h2b3yd4950w8x4";
 	  };
 	  patchPhase = "mkdir .svn; bash apply_patches;" + common.patchPhase;
 	});
diff --git a/pkgs/development/libraries/readline/readline5.nix b/pkgs/development/libraries/readline/readline5.nix
index a0e7ffd72d250..96ec1ffea7989 100644
--- a/pkgs/development/libraries/readline/readline5.nix
+++ b/pkgs/development/libraries/readline/readline5.nix
@@ -1,11 +1,12 @@
-{ stdenv, fetchurl, ncurses }:
+args: with args;
 
 stdenv.mkDerivation {
   name = "readline-5.2";
   src = fetchurl {
     url = mirror://gnu/readline/readline-5.2.tar.gz;
-    md5 = "e39331f32ad14009b9ff49cc10c5e751";
+    sha256 = "0icz4hqqq8mlkwrpczyaha94kns0am9z0mh3a2913kg2msb8vs0j";
   };
   propagatedBuildInputs = [ncurses];
+  configureFlags = "--enable-shared --disable-static";
   patches = stdenv.lib.optional stdenv.isDarwin ./shobj-darwin.patch;
 }
diff --git a/pkgs/development/libraries/redland/default.nix b/pkgs/development/libraries/redland/default.nix
index 37d899feb70b6..d344fbc0ac30c 100644
--- a/pkgs/development/libraries/redland/default.nix
+++ b/pkgs/development/libraries/redland/default.nix
@@ -4,10 +4,12 @@ stdenv.mkDerivation rec {
   name = "redland-1.0.7";
 
   src = fetchurl {
-    url = "sf://librdf/${name}.tar.gz";
+    url = "mirror://sf/librdf/${name}.tar.gz";
     sha256 = "1z160hhrnlyy5c8vh2hjza6kdfmzml8mg9dk8yffifkhnxjq5r2z";
   };
-  buildInputs = [ bdb openssl libxml2 pkgconfig perl];
-  configureFlags="--without-static --with-threads --with-bdb=${bdb}";
+  buildInputs = [pkgconfig];
+  propagatedBuildInputs = [ bdb openssl libxslt perl mysql postgresql sqlite
+    curl pcre];
+  configureFlags = "--disable-static --with-threads --with-bdb=${bdb}";
   patchPhase="sed -e 1s@/usr@${perl}@ -i utils/touch-mtime.pl";
 }
diff --git a/pkgs/development/libraries/tapioca-qt/default.nix b/pkgs/development/libraries/tapioca-qt/default.nix
index 956d4c0987352..962a82a8a1a80 100644
--- a/pkgs/development/libraries/tapioca-qt/default.nix
+++ b/pkgs/development/libraries/tapioca-qt/default.nix
@@ -1,5 +1,5 @@
 args: with args;
-let rev = "2031"; in
+let rev = "2066"; in
 stdenv.mkDerivation {
 	name = "tapioca-qt-r${rev}";
 	src = fetchsvn {
diff --git a/pkgs/development/libraries/telepathy-qt/default.nix b/pkgs/development/libraries/telepathy-qt/default.nix
index 9c0ea152f4eda..6e8e84399d1fa 100644
--- a/pkgs/development/libraries/telepathy-qt/default.nix
+++ b/pkgs/development/libraries/telepathy-qt/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
 	};
 
 	buildInputs = [cmake];
-	propagatedBuildInputs = [qt];
+	propagatedBuildInputs = [qt stdenv.gcc.libc];
 	meta = {
 		description = "Qt bindings for telepathy";
 	};
diff --git a/pkgs/development/perl-modules/DB_File/default.nix b/pkgs/development/perl-modules/DB_File/default.nix
index 6931d5d424c48..339093625f66c 100644
--- a/pkgs/development/perl-modules/DB_File/default.nix
+++ b/pkgs/development/perl-modules/DB_File/default.nix
@@ -3,7 +3,7 @@
 import ../generic perl {
   name = "DB_File-1.816";
   src = fetchurl {
-    url = http://search.cpan.org/CPAN/authors/id/P/PM/PMQS/DB_File-1.816.tar.gz;
+    url = mirror://cpan/authors/id/P/PM/PMQS/DB_File-1.816.tar.gz;
     sha256 = "1a668hk5v0l180kbqss2hq9khl756cmrykn8fz1rl4qzsp6lq284";
   };
   perlPreHook = "source ${./hook.sh}";
diff --git a/pkgs/development/perl-modules/XML-Parser/default.nix b/pkgs/development/perl-modules/XML-Parser/default.nix
index e0a18e68a4a3c..c3a52462971e4 100644
--- a/pkgs/development/perl-modules/XML-Parser/default.nix
+++ b/pkgs/development/perl-modules/XML-Parser/default.nix
@@ -3,7 +3,7 @@
 import ../generic perl {
   name = "XML-Parser-2.34";
   src = fetchurl {
-    url = http://search.cpan.org/CPAN/authors/id/M/MS/MSERGEANT/XML-Parser-2.34.tar.gz;
+    url = mirror://cpan/authors/id/M/MS/MSERGEANT/XML-Parser-2.34.tar.gz;
     md5 = "84d9e0001fe01c14867256c3fe115899";
   };
   perlPreHook = "makeMakerFlags=\"EXPATLIBPATH=$expat/lib EXPATINCPATH=$expat/include\"";
diff --git a/pkgs/development/tools/build-managers/cmake/setup-hook.sh b/pkgs/development/tools/build-managers/cmake/setup-hook.sh
index f65b09f88d4a9..2ec77d8223e38 100755
--- a/pkgs/development/tools/build-managers/cmake/setup-hook.sh
+++ b/pkgs/development/tools/build-managers/cmake/setup-hook.sh
@@ -1,48 +1,49 @@
 addCMakeParamsInclude()
 {
-	if [ -d $1/include ]; then
-		export CMAKE_INCLUDE_PATH="${CMAKE_INCLUDE_PATH}${CMAKE_INCLUDE_PATH:+:}$1/include"
-	fi
+    addToSearchPath CMAKE_INCLUDE_PATH /include "" $1
 }
 
 addCMakeParamsLibs()
 {
-	if [ -d $1/lib ]; then
-		export CMAKE_LIBRARY_PATH="${CMAKE_LIBRARY_PATH}${CMAKE_LIBRARY_PATH:+:}$1/lib"
-	fi
+    addToSearchPath CMAKE_LIBRARY_PATH /lib "" $1
+}
+
+addCMakeModulePath()
+{
+    addToSearchPath CMAKE_MODULE_PATH /share/cmake-2.4/Modules "" $1
 }
 
 fixCmakeFiles()
 {
-	local replaceArgs;
-	echo "Fixing cmake files"
-	replaceArgs="-e -f -L -T /usr /FOO"
-   	replaceArgs="${replaceArgs}	-a NO_DEFAULT_PATH \"\" -a NO_SYSTEM_PATH \"\""
-	find $1 -type f -name "*.cmake" | xargs replace-literal ${replaceArgs}
+    local replaceArgs;
+    echo "Fixing cmake files"
+    replaceArgs="-e -f -L -T /usr /FOO"
+    replaceArgs="${replaceArgs}     -a NO_DEFAULT_PATH \"\" -a NO_SYSTEM_PATH \"\""
+    find $1 -type f -name "*.cmake" | xargs replace-literal ${replaceArgs}
 }
 
 cmakePostUnpack()
 {
-	sourceRoot=$sourceRoot/build
-	mkdir -v $sourceRoot
-	echo source root reset to $sourceRoot
-
-	if [ -z "$dontFixCmake" ]; then
-		fixCmakeFiles .
-	fi
-
-	if [ -z "$configureScript" ]; then
-		configureScript="cmake .."
-	fi
-	if [ -z "$dontAddPrefix" ]; then
-		dontAddPrefix=1
-		configureFlags="-DCMAKE_INSTALL_PREFIX=$out $configureFlags"
-	fi
+    sourceRoot=$sourceRoot/build
+    mkdir -v $sourceRoot
+    echo source root reset to $sourceRoot
+
+    if [ -z "$dontFixCmake" ]; then
+        fixCmakeFiles .
+    fi
+
+    if [ -z "$configureScript" ]; then
+        configureScript="cmake .."
+    fi
+    if [ -z "$dontAddPrefix" ]; then
+        dontAddPrefix=1
+        configureFlags="-DCMAKE_INSTALL_PREFIX=$out $configureFlags"
+    fi
 }
 
 
 if [ -z "$noCmakeTewaks" ]; then
-	postUnpack="cmakePostUnpack${postUnpack:+; }${postUnpack}"
+    postUnpack="cmakePostUnpack${postUnpack:+; }${postUnpack}"
 fi;
 
-envHooks=(${envHooks[@]} addCMakeParamsInclude addCMakeParamsLibs)
+envHooks=(${envHooks[@]} addCMakeParamsInclude addCMakeParamsLibs addCMakeModulePath)
diff --git a/pkgs/development/tools/build-managers/gnumake/log.patch b/pkgs/development/tools/build-managers/gnumake/log.patch
index 99111ca34952e..3104e1f2bde9e 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-orig/job.c make-3.81/job.c
-*** make-orig/job.c	2006-03-20 04:03:04.000000000 +0100
---- make-3.81/job.c	2006-06-21 17:31:52.000000000 +0200
+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	2008-02-20 17:41:25.000000000 +0100
 ***************
 *** 1083,1089 ****
        appear.  */
@@ -18,9 +18,9 @@ diff -rc make-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-orig/main.c make-3.81/main.c
-*** make-orig/main.c	2006-03-20 03:36:37.000000000 +0100
---- make-3.81/main.c	2006-06-21 17:48:43.000000000 +0200
+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	2008-02-20 17:41:25.000000000 +0100
 ***************
 *** 886,891 ****
 --- 886,900 ----
@@ -83,9 +83,9 @@ diff -rc make-orig/main.c make-3.81/main.c
 + 
 + int logNestingStdout = 0;
 + int logNestingStderr = 0;
-diff -rc make-orig/make.h make-3.81/make.h
-*** make-orig/make.h	2006-02-16 00:54:43.000000000 +0100
---- make-3.81/make.h	2006-06-21 17:39:35.000000000 +0200
+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	2008-02-20 17:41:25.000000000 +0100
 ***************
 *** 609,611 ****
 --- 609,613 ----
@@ -94,15 +94,16 @@ diff -rc make-orig/make.h make-3.81/make.h
   
 + extern int logNestingStdout;
 + extern int logNestingStderr;
-diff -rc make-orig/remake.c make-3.81/remake.c
-*** make-orig/remake.c	2006-03-20 03:36:37.000000000 +0100
---- make-3.81/remake.c	2006-06-21 17:31:52.000000000 +0200
+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	2008-02-20 17:44:01.000000000 +0100
 ***************
 *** 1120,1126 ****
---- 1120,1130 ----
+--- 1120,1131 ----
         /* The normal case: start some commands.  */
         if (!touch_flag || file->cmds->any_recurse)
   	{
++           log_working_directory (1);
 +           fprintf(stderr, "\e[pbuilding %s\n", file->name);
 +           logNestingStderr++;
   	  execute_file_commands (file);
diff --git a/pkgs/development/tools/misc/automake/setup-hook.sh b/pkgs/development/tools/misc/automake/setup-hook.sh
index 097b7b6cbe57d..2b12ae3aee08b 100644
--- a/pkgs/development/tools/misc/automake/setup-hook.sh
+++ b/pkgs/development/tools/misc/automake/setup-hook.sh
@@ -1,7 +1,5 @@
 addAclocals () {
-    if test -d $1/share/aclocal; then
-        export ACLOCAL_PATH="$ACLOCAL_PATH${ACLOCAL_PATH:+:}$1/share/aclocal"
-    fi
+    addToSearchPathWithCustomDelimiter : ACLOCAL_PATH /share/aclocal "" $1
 }
 
 envHooks=(${envHooks[@]} addAclocals)
diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix
index 9817abd612b89..52112c17b6c21 100644
--- a/pkgs/development/tools/misc/binutils/default.nix
+++ b/pkgs/development/tools/misc/binutils/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, noSysDirs}:
 
 stdenv.mkDerivation {
-  name = "binutils-2.17";
+  name = "binutils-2.18";
   builder = ./builder.sh;
   src = fetchurl {
-    url = http://nix.cs.uu.nl/dist/tarballs/binutils-2.17.tar.bz2;
-    md5 = "e26e2e06b6e4bf3acf1dc8688a94c0d1";
+    url = mirror://gnu/binutils/binutils-2.18.tar.bz2;
+    sha256 = "16zfc7llbjdn69bbdy7kqgg2xa67ypgj7z5qicgwzvghaaj36yj8";
   };
   inherit noSysDirs;
   configureFlags = "--disable-werror"; # needed for dietlibc build
diff --git a/pkgs/development/tools/misc/elfutils/0.127.nix b/pkgs/development/tools/misc/elfutils/0.127.nix
index 2337ebbdbd082..198242e27087a 100644
--- a/pkgs/development/tools/misc/elfutils/0.127.nix
+++ b/pkgs/development/tools/misc/elfutils/0.127.nix
@@ -6,4 +6,6 @@ stdenv.mkDerivation {
     url = http://nix.cs.uu.nl/dist/tarballs/elfutils-0.127.tar.gz;
     sha256 = "12n3h5r3c24a6l2wxz0w2dqq072bvgms0dzckivrwp5vdn22lpdv";
   };
+  preBuild = "sed -e 's/-Werror//' -i */Makefile ";
+  dontAddDisableDepTrack = "true";
 }
diff --git a/pkgs/development/tools/misc/elfutils/0.131.nix b/pkgs/development/tools/misc/elfutils/0.131.nix
index 5efe046493dbc..f2ba07ba00775 100644
--- a/pkgs/development/tools/misc/elfutils/0.131.nix
+++ b/pkgs/development/tools/misc/elfutils/0.131.nix
@@ -6,4 +6,6 @@ stdenv.mkDerivation {
     url = http://ftp.de.debian.org/debian/pool/main/e/elfutils/elfutils_0.131.orig.tar.gz;
     sha256 = "0vqfjpcv81m3q0gsk78qykakhz9rbfwd65i4zsi03xr2lrk9ayll";
   };
+  dontAddDisableDepTrack = "true";
+  preBuild = "sed -e 's/-Werror//' -i */Makefile ";
 }
diff --git a/pkgs/development/tools/misc/intltool/0.36.2.nix b/pkgs/development/tools/misc/intltool/0.36.2.nix
index 884c76a800c79..9147b10c3f17b 100644
--- a/pkgs/development/tools/misc/intltool/0.36.2.nix
+++ b/pkgs/development/tools/misc/intltool/0.36.2.nix
@@ -13,7 +13,9 @@ args : with args;
 stdenv.mkDerivation rec {
 	name = "intltool-0.36.2";
 	builder = writeScript (name + "-builder")
-		(textClosure localDefs [doConfigure doMakeInstall doPropagate doForceShare]);
+		(textClosure localDefs [minInit addInputs doUnpack 
+			(doDump "1") doConfigure doMakeInstall 
+			doPropagate doForceShare]);
 	inherit propagatedBuildInputs;
 	meta = {
 		description = "
diff --git a/pkgs/development/tools/misc/lsof/default.nix b/pkgs/development/tools/misc/lsof/default.nix
index 4aa5011783744..f53e5e284c379 100644
--- a/pkgs/development/tools/misc/lsof/default.nix
+++ b/pkgs/development/tools/misc/lsof/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "0azvl43niqkq94drx52p6dvp70r38f25fqw181ywmvqn80dbb3c9";
   };
 
-  unpackPhase = "tar xvjf $src; cd lsof_*; tar xvf lsof_*.tar; sourceRoot=lsof_*; ";
+  unpackPhase = "tar xvjf $src; cd lsof_*; tar xvf lsof_*.tar; sourceRoot=$( echo lsof_*/); ";
   preBuild = "sed -i Makefile -e 's/^CFGF=/&	-DHASIPv6=1/;';";
   configurePhase = "./Configure -n linux;";
   installPhase = " mkdir -p $out/bin $out/man/man8; cp lsof.8 $out/man/man8/; cp lsof $out/bin";
diff --git a/pkgs/development/tools/misc/ltrace/default.nix b/pkgs/development/tools/misc/ltrace/0.5-3deb.nix
index cd77984ded6cf..bff3e6a8fbc49 100644
--- a/pkgs/development/tools/misc/ltrace/default.nix
+++ b/pkgs/development/tools/misc/ltrace/0.5-3deb.nix
@@ -1,5 +1,10 @@
-args : with args;
-	let localDefs = builderDefs {
+args : with args;	let 
+        patch = fetchurl {
+          url = ftp://ftp.debian.org/debian/pool/main/l/ltrace/ltrace_0.5-3.diff.gz;
+          sha256 = "0rin25si7117wld5bc7vf3d73c5k9ph3zach7cbg9h9vvz376c26";
+        };
+	localDefs = with (builderDefs {src="";} null);
+	 builderDefs {
 		src = /* put a fetchurl here */
 	fetchurl {
 		url = ftp://ftp.debian.org/debian/pool/main/l/ltrace/ltrace_0.5.orig.tar.gz;
@@ -11,6 +16,10 @@ args : with args;
 		goSrcDir = "
 			cd ltrace-*;
 		";
+		preBuild = FullDepEntry (''
+		  gunzip < ${patch} | patch -Np1
+		  sed -e s@-Werror@@ -i Makefile.in
+		'')["minInit" "doUnpack"];
 	} null; /* null is a terminator for sumArgs */
 	in with localDefs;
 let
@@ -21,7 +30,7 @@ in
 stdenv.mkDerivation rec {
 	name = "ltrace-0.5";
 	builder = writeScript (name + "-builder")
-		(textClosure localDefs [preConfigure doConfigure doMakeInstall doForceShare]);
+		(textClosure localDefs [preBuild preConfigure doConfigure doMakeInstall doForceShare]);
 	meta = {
 		description = "
 	Library call tracer.
diff --git a/pkgs/development/tools/misc/pkgconfig/builder.sh b/pkgs/development/tools/misc/pkgconfig/builder.sh
deleted file mode 100644
index 6d281da71e4d9..0000000000000
--- a/pkgs/development/tools/misc/pkgconfig/builder.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-source $stdenv/setup
-
-postInstall() {
-    test -x $out/nix-support || mkdir $out/nix-support
-    cp $setupHook $out/nix-support/setup-hook
-}
-postInstall=postInstall
-
-genericBuild
-
diff --git a/pkgs/development/tools/misc/pkgconfig/default.nix b/pkgs/development/tools/misc/pkgconfig/default.nix
index be8c4febe03aa..41a61f600e04c 100644
--- a/pkgs/development/tools/misc/pkgconfig/default.nix
+++ b/pkgs/development/tools/misc/pkgconfig/default.nix
@@ -1,12 +1,11 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation {
-  name = "pkgconfig-0.21";
-  builder = ./builder.sh;
+  name = "pkgconfig-0.22";
   setupHook = ./setup-hook.sh;
   src = fetchurl {
-    url = http://nix.cs.uu.nl/dist/tarballs/pkg-config-0.21.tar.gz;
-    md5 = "476f45fab1504aac6697aa7785f0ab91";
+    url = http://pkgconfig.freedesktop.org/releases/pkg-config-0.22.tar.gz;
+    sha256 = "1rpb5wygmp0f8nal7y3ga4556i7hkjdslv3wdq04fj30gns621vy";
   };
 
   patches = [
@@ -19,3 +18,4 @@ stdenv.mkDerivation {
     })
   ];
 }
+
diff --git a/pkgs/development/tools/misc/pkgconfig/setup-hook.sh b/pkgs/development/tools/misc/pkgconfig/setup-hook.sh
index f9e7805ccbf76..c137fb0e96c5e 100644
--- a/pkgs/development/tools/misc/pkgconfig/setup-hook.sh
+++ b/pkgs/development/tools/misc/pkgconfig/setup-hook.sh
@@ -1,7 +1,5 @@
 addPkgConfigPath () {
-    if test -d $1/lib/pkgconfig; then
-        export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}${PKG_CONFIG_PATH:+:}$1/lib/pkgconfig"
-    fi
+    addToSearchPath PKG_CONFIG_PATH /lib/pkgconfig "" $1
 }
 
 envHooks=(${envHooks[@]} addPkgConfigPath)