summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2009-07-03 11:55:17 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2009-07-03 11:55:17 +0000
commit222ab9d494f6ea42721118568c6107a1ec6e3383 (patch)
treee5a9d543e99353cc90277b1a9cb0800588bcd847 /pkgs
parentae03990f6affa1168c27bdfaa93d862a05248c56 (diff)
parentc713cfa0be981635fcfac32330540fa7f2a5b66a (diff)
downloadnixlib-222ab9d494f6ea42721118568c6107a1ec6e3383.tar
nixlib-222ab9d494f6ea42721118568c6107a1ec6e3383.tar.gz
nixlib-222ab9d494f6ea42721118568c6107a1ec6e3383.tar.bz2
nixlib-222ab9d494f6ea42721118568c6107a1ec6e3383.tar.lz
nixlib-222ab9d494f6ea42721118568c6107a1ec6e3383.tar.xz
nixlib-222ab9d494f6ea42721118568c6107a1ec6e3383.tar.zst
nixlib-222ab9d494f6ea42721118568c6107a1ec6e3383.zip
* Sync with the trunk.
svn path=/nixpkgs/branches/stdenv-updates/; revision=16160
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/editors/vim-diet/default.nix19
-rw-r--r--pkgs/applications/graphics/gimp/plugins/default.nix36
-rw-r--r--pkgs/applications/misc/audio/sox/default.nix9
-rw-r--r--pkgs/applications/misc/rxvt_unicode/default.nix16
-rw-r--r--pkgs/applications/networking/browsers/firefox/2.0-builder.sh (renamed from pkgs/applications/networking/browsers/firefox-2/builder.sh)0
-rw-r--r--pkgs/applications/networking/browsers/firefox/2.0.nix (renamed from pkgs/applications/networking/browsers/firefox-2/default.nix)3
-rw-r--r--pkgs/applications/networking/browsers/firefox/3.0.nix69
-rw-r--r--pkgs/applications/networking/browsers/firefox/3.5.nix83
-rw-r--r--pkgs/applications/networking/browsers/firefox/binary.nix55
-rw-r--r--pkgs/applications/networking/browsers/firefox/wrapper.nix (renamed from pkgs/applications/networking/browsers/firefox-wrapper/default.nix)0
-rw-r--r--pkgs/applications/networking/browsers/firefox/writable-copies.patch (renamed from pkgs/applications/networking/browsers/firefox-2/writable-copies.patch)0
-rw-r--r--pkgs/applications/networking/browsers/firefox/xlibs.patch (renamed from pkgs/applications/networking/browsers/firefox-2/xlibs.patch)0
-rw-r--r--pkgs/applications/networking/browsers/firefox/xulrunner-3.5.nix102
-rw-r--r--pkgs/applications/networking/browsers/firefox/xulrunner.nix87
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix24
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix7
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/docbook2texi.patch20
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/fill-paragraph.patch11
-rw-r--r--pkgs/applications/version-management/subversion/1.6.nix4
-rw-r--r--pkgs/build-support/release/debian-build.nix1
-rw-r--r--pkgs/build-support/vm/default.nix29
-rw-r--r--pkgs/development/compilers/strategoxt/0.17.nix10
-rw-r--r--pkgs/development/interpreters/maude/default.nix4
-rw-r--r--pkgs/development/interpreters/ruby/default.nix3
-rw-r--r--pkgs/development/interpreters/ruby/gem_nix_command.patch223
-rw-r--r--pkgs/development/interpreters/ruby/gems.nix19
-rw-r--r--pkgs/development/interpreters/ruby/libs.nix519
-rw-r--r--pkgs/development/interpreters/ruby/ruby-19.nix10
-rw-r--r--pkgs/development/libraries/buddy/default.nix21
-rw-r--r--pkgs/development/libraries/buddy/gcc-4.3.3-fixes.patch22
-rw-r--r--pkgs/development/libraries/libsamplerate/default.nix9
-rw-r--r--pkgs/development/libraries/libunistring/default.nix6
-rw-r--r--pkgs/development/libraries/ncurses-diet/builder.sh5
-rw-r--r--pkgs/development/libraries/ncurses-diet/default.nix10
-rw-r--r--pkgs/development/libraries/nettle/default.nix46
-rw-r--r--pkgs/development/libraries/openssl/darwin-arch.patch20
-rw-r--r--pkgs/development/libraries/openssl/default.nix2
-rw-r--r--pkgs/development/libraries/sqlite/default.nix8
-rw-r--r--pkgs/development/perl-modules/DBD-SQLite/default.nix14
-rw-r--r--pkgs/development/perl-modules/DBD-SQLite/external-sqlite.patch39
-rw-r--r--pkgs/development/perl-modules/DBD-SQLite/reset.patch40
-rw-r--r--pkgs/development/perl-modules/generic/default.nix9
-rw-r--r--pkgs/development/tools/build-managers/scons/default.nix25
-rw-r--r--pkgs/lib/default.nix5
-rw-r--r--pkgs/lib/maintainers.nix9
-rw-r--r--pkgs/lib/trivial.nix2
-rw-r--r--pkgs/misc/tex/texlive/default.nix1
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.27.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.29.nix4
-rw-r--r--pkgs/tools/security/gnupg2/default.nix16
-rw-r--r--pkgs/top-level/all-packages.nix82
-rw-r--r--pkgs/top-level/perl-packages.nix391
-rw-r--r--pkgs/top-level/release.nix1
53 files changed, 1794 insertions, 360 deletions
diff --git a/pkgs/applications/editors/vim-diet/default.nix b/pkgs/applications/editors/vim-diet/default.nix
deleted file mode 100644
index 7e56d902282c..000000000000
--- a/pkgs/applications/editors/vim-diet/default.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{stdenv, fetchurl, ncurses}:
- 
-stdenv.mkDerivation {
-  name = "vim-7.0";
- 
-  src = fetchurl {
-    url = ftp://ftp.vim.org/pub/vim/unix/vim-7.0.tar.bz2;
-    md5 = "4ca69757678272f718b1041c810d82d8";
-  };
- 
-  inherit ncurses;
-  buildInputs = [ncurses];
-
-  NIX_CFLAGS_COMPILE="-D_BSD_SOURCE=1";
-
-  meta = {
-    homepage = http://www.vim.org;
-  };
-}
diff --git a/pkgs/applications/graphics/gimp/plugins/default.nix b/pkgs/applications/graphics/gimp/plugins/default.nix
index afbab962cf9b..396b1b78e6d6 100644
--- a/pkgs/applications/graphics/gimp/plugins/default.nix
+++ b/pkgs/applications/graphics/gimp/plugins/default.nix
@@ -145,8 +145,44 @@ rec {
       };
   };
 
+  # this is more than a gimp plugin !
+  # either load the raw image with gimp (and the import dialog will popup)
+  # or use the binary
+  ufraw = pluginDerivation {
+    name = "ufraw-0.15";
+    buildInputs = [pkgs.lcms gimp] ++ gimp.buildInputs;
+      # --enable-mime - install mime files, see README for more information
+      # --enable-extras - build extra (dcraw, nikon-curve) executables
+      # --enable-dst-correction - enable DST correction for file timestamps.
+      # --enable-contrast - enable the contrast setting option.
+      # --enable-interp-none: enable 'None' interpolation (mostly for debugging).
+      # --with-lensfun: use the lensfun library - experimental feature, read this before using it. 
+      # --with-prefix=PREFIX - use also PREFIX as an input prefix for the build
+      # --with-dosprefix=PREFIX - PREFIX in the the prefix in dos format (needed only for ms-window
+    configureFlags = "--enable-extras --enable-dst-correction --enable-contrast";
+
+    src = fetchurl {
+      url = mirror://sourceforge/ufraw/ufraw-0.15.tar.gz;
+      sha256 = "0cf3csksjkyl91zxhjnn74vc31l14nm6n1i02s76xdvvkk9ics8k";
+    };
+    installPhase = "
+      installPlugins ufraw-gimp
+      ensureDir $out/bin
+      cp ufraw $out/bin
+    ";
+  };
+
   /* =============== simple script files ==================== */
 
+  # also have a look at enblendenfuse in all-packages.nix
+  exposureBlend = scriptDerivation {
+    name = "exposure-blend";
+    src = fetchurl {
+      url = http://tir.astro.utoledo.edu/jdsmith/code/eb/exposure-blend.scm;
+      sha256 = "1b6c9wzpklqras4wwsyw3y3jp6fjmhnnskqiwm5sabs8djknfxla";
+    };
+  };
+
   lightning = scriptDerivation {
     name = "Lightning";
     src = fetchurl {
diff --git a/pkgs/applications/misc/audio/sox/default.nix b/pkgs/applications/misc/audio/sox/default.nix
index 9e72bedfb5a2..e3dcf3ec80c8 100644
--- a/pkgs/applications/misc/audio/sox/default.nix
+++ b/pkgs/applications/misc/audio/sox/default.nix
@@ -50,9 +50,10 @@ composableDerivation {} {
     description = "Sample Rate Converter for audio";
     homepage = http://www.mega-nerd.com/SRC/index.html;
     # you can choose one of the following licenses:
-    license = [ "GPL"
-                { url=http://www.mega-nerd.com/SRC/libsamplerate-cul.pdf;
-                  name="libsamplerate Commercial Use License";
-                } ];
+    license = [
+      "GPL"
+      # http://www.mega-nerd.com/SRC/libsamplerate-cul.pdf
+      "libsamplerate Commercial Use License"
+    ];
   };
 }
diff --git a/pkgs/applications/misc/rxvt_unicode/default.nix b/pkgs/applications/misc/rxvt_unicode/default.nix
index 6dc6e30b8159..471f6cbcd55d 100644
--- a/pkgs/applications/misc/rxvt_unicode/default.nix
+++ b/pkgs/applications/misc/rxvt_unicode/default.nix
@@ -1,20 +1,28 @@
 args: with args;
 stdenv.mkDerivation (rec {
   pname = "rxvt-unicode";
-  version = "9.02";
+  version = "9.06";
 
   name = "${pname}-${version}";
 
  src = fetchurl {
     url = "http://dist.schmorp.de/rxvt-unicode/Attic/${name}.tar.bz2";
-    sha256 = "234b9a3e3f88c4984b1e909f8028638fc3b61d801d8afaa9cd08154b1a480a31";
+    sha256 = "8ef9359c01059efd330626c6cd7b082be9bf10587f2b9fe84caa43a84aa576d1";
   };
 
-  buildInputs = [ libX11 libXt libXft ];
-  configureFlags = "--disable-perl";
+  buildInputs = [ libX11 libXt libXft ncurses /* required to build the terminfo file */ ];
+
+  preConfigure=''
+    configureFlags="--disable-perl";
+    export TERMINFO=$out/share/terminfo # without this the terminfo won't be compiled by tic, see man tic
+  '';
 
   meta = {
     description = "rxvt-unicode is a clone of the well known terminal emulator rxvt.";
+    longDescription = "
+      you should put this into your .bashrc
+      export TERMINFO=~/.nix-profile/share/terminfo
+    ";
     homepage = "http://software.schmorp.de/pkg/rxvt-unicode.html";
   };
 })
diff --git a/pkgs/applications/networking/browsers/firefox-2/builder.sh b/pkgs/applications/networking/browsers/firefox/2.0-builder.sh
index e77bd2211de2..e77bd2211de2 100644
--- a/pkgs/applications/networking/browsers/firefox-2/builder.sh
+++ b/pkgs/applications/networking/browsers/firefox/2.0-builder.sh
diff --git a/pkgs/applications/networking/browsers/firefox-2/default.nix b/pkgs/applications/networking/browsers/firefox/2.0.nix
index e557743aacad..1d3fccefc06c 100644
--- a/pkgs/applications/networking/browsers/firefox-2/default.nix
+++ b/pkgs/applications/networking/browsers/firefox/2.0.nix
@@ -12,7 +12,8 @@
 stdenv.mkDerivation {
   name = "firefox-2.0.0.20";
 
-  builder = ./builder.sh;
+  builder = ./2.0-builder.sh;
+
   src = fetchurl {
     url = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.20/source/firefox-2.0.0.20-source.tar.bz2;
     sha1 = "16601fdbbb0a83b85fd053e76350f7da397f525e";
diff --git a/pkgs/applications/networking/browsers/firefox/3.0.nix b/pkgs/applications/networking/browsers/firefox/3.0.nix
new file mode 100644
index 000000000000..1251707f16d7
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox/3.0.nix
@@ -0,0 +1,69 @@
+{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL
+, libjpeg, zlib, cairo, dbus, dbus_glib, bzip2
+, freetype, fontconfig, xulrunner
+
+, # If you want the resulting program to call itself "Firefox" instead
+  # of "Deer Park", enable this option.  However, those binaries may
+  # not be distributed without permission from the Mozilla Foundation,
+  # see http://www.mozilla.org/foundation/trademarks/.
+  enableOfficialBranding ? false
+    
+}:
+
+stdenv.mkDerivation rec {
+  name = "firefox-${version}";
+  
+  version = "3.0.11";
+
+  src = fetchurl {
+    # Don't forget to update xulrunner.nix as well!
+    url = "http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${version}/source/firefox-${version}-source.tar.bz2";
+    sha1 = "ca792dcdb67af40c91a4fcece25d6adfb6fef2c3";
+  };
+
+  buildInputs = [
+    pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2
+    python dbus dbus_glib pango freetype fontconfig
+  ];
+
+  propagatedBuildInputs = [xulrunner];
+
+  configureFlags = [
+    "--enable-application=browser"
+    "--enable-optimize"
+    "--disable-debug"
+    "--enable-strip"
+    "--with-system-jpeg"
+    "--with-system-zlib"
+    "--with-system-bz2"
+    # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
+    "--enable-system-cairo"
+    #"--enable-system-sqlite" # <-- this seems to be discouraged
+    "--disable-crashreporter"
+    "--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}"
+  ];
+
+  postInstall = ''
+    # Strip some more stuff.
+    strip -S $out/lib/*/* || true
+
+    libDir=$(cd $out/lib && ls -d firefox-[0-9]*)
+    test -n "$libDir"
+    
+    ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $out/lib/$libDir/xulrunner
+
+    # Register extensions etc. !!! is this needed anymore?
+    echo "running firefox -register..."
+    $out/bin/firefox -register
+  ''; # */
+
+  meta = {
+    description = "Mozilla Firefox - the browser, reloaded";
+    homepage = http://www.mozilla.com/en-US/firefox/;
+  };
+
+  passthru = {
+    inherit gtk;
+    isFirefox3Like = true;
+  };
+}
diff --git a/pkgs/applications/networking/browsers/firefox/3.5.nix b/pkgs/applications/networking/browsers/firefox/3.5.nix
new file mode 100644
index 000000000000..09f2eabe5413
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox/3.5.nix
@@ -0,0 +1,83 @@
+{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL
+, libjpeg, zlib, cairo, dbus, dbus_glib, bzip2
+, freetype, fontconfig, xulrunner, alsaLib, autoconf
+
+, # If you want the resulting program to call itself "Firefox" instead
+  # of "Deer Park", enable this option.  However, those binaries may
+  # not be distributed without permission from the Mozilla Foundation,
+  # see http://www.mozilla.org/foundation/trademarks/.
+  enableOfficialBranding ? false
+    
+}:
+
+let version = xulrunner.ffversion; in
+
+stdenv.mkDerivation {
+  name = "firefox-${version}";
+
+  src = xulrunner.src;
+
+  buildInputs = [
+    pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2
+    python dbus dbus_glib pango freetype fontconfig alsaLib
+    autoconf
+  ];
+
+  propagatedBuildInputs = [xulrunner];
+
+  preConfigure = ''
+    export PREFIX=$out
+    export LIBXUL_DIST=$out
+    autoconf
+    cd js/src
+    autoconf
+    cd ../..
+  '';
+
+  preBuild = ''
+    cd nsprpub
+    autoconf 
+    ./configure
+    make
+    cd ..
+  '';
+
+  configureFlags = [
+    "--enable-application=browser"
+    "--enable-optimize"
+    "--disable-debug"
+    "--enable-strip"
+    "--with-system-jpeg"
+    "--with-system-zlib"
+    "--with-system-bz2"
+    # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
+    "--enable-system-cairo"
+    #"--enable-system-sqlite" # <-- this seems to be discouraged
+    "--disable-crashreporter"
+    "--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}"
+  ];
+
+  postInstall = ''
+    # Strip some more stuff.
+    strip -S $out/lib/*/* || true
+
+    libDir=$(cd $out/lib && ls -d firefox-[0-9]*)
+    test -n "$libDir"
+    
+    ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $out/lib/$libDir/xulrunner
+
+    # Register extensions etc. !!! is this needed anymore?
+    echo "running firefox -register..."
+    $out/bin/firefox -register
+  ''; # */
+
+  meta = {
+    description = "Mozilla Firefox - the browser, reloaded";
+    homepage = http://www.mozilla.com/en-US/firefox/;
+  };
+
+  passthru = {
+    inherit gtk;
+    isFirefox3Like = true;
+  };
+}
diff --git a/pkgs/applications/networking/browsers/firefox/binary.nix b/pkgs/applications/networking/browsers/firefox/binary.nix
new file mode 100644
index 000000000000..73e002435b88
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox/binary.nix
@@ -0,0 +1,55 @@
+args: with args;
+
+assert stdenv.system == "i686-linux";
+
+stdenv.mkDerivation {
+  name = "firefox-3b1";
+
+  src = 
+	fetchurl {
+		url = ftp://ftp.mozilla.org/pub/firefox/releases/3.0b1/linux-i686/en-US/firefox-3.0b1.tar.bz2;
+		sha256 = "1cpcc5b07zdqyd5kiwhb4dqhy2mzbf97plsglcp6bc9054cmsylk";
+	};
+  buildInputs = [
+    pkgconfig gtk perl zip libIDL libXi libjpeg libpng zlib cairo
+    python curl coreutils atk pango glib libX11 libXrender 
+    freetype fontconfig libXft libXt
+  ];
+
+  buildPhase = "
+    additionalRpath='';
+    for i in \$buildInputs ${stdenv.glibc} ${stdenv.gcc.gcc}; do 
+      additionalRpath=\$additionalRpath:\$i/lib;  
+    done
+    for i in firefox-bin ; do
+      oldrpath=$(patchelf --print-rpath \$i)
+      patchelf --set-rpath \$oldrpath\$additionalRpath \$i
+      patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2 \$i
+    done
+  ";
+
+  installPhase = "
+    export dontPatchELF=1;
+    mkdir -p \$out
+    cp -r . \$out/firefox
+    mkdir -p \$out/bin
+    ln -s \$out/firefox/firefox \$out/bin/firefox
+
+    sed -e 's@moz_libdir=.*@moz_libdir='\$out'/firefox/@' -i \$out/bin/firefox 
+    sed -e 's@moz_libdir=.*@&\\nexport PATH=\$PATH:${coreutils}/bin@' -i \$out/bin/firefox 
+    sed -e 's@`/bin/pwd@`${coreutils}/bin/pwd@' -i \$out/bin/firefox 
+    sed -e 's@`/bin/ls@`${coreutils}/bin/ls@' -i \$out/bin/firefox 
+
+    strip -S \$out/firefox/*.so || true
+
+    echo \"running firefox -register...\"
+    \$out/firefox/firefox-bin -register || false
+  ";
+
+  meta = {
+    description = "Mozilla Firefox - the browser, reloaded";
+  };
+
+  passthru = {inherit gtk;};
+}
+
diff --git a/pkgs/applications/networking/browsers/firefox-wrapper/default.nix b/pkgs/applications/networking/browsers/firefox/wrapper.nix
index f68f0f92e287..f68f0f92e287 100644
--- a/pkgs/applications/networking/browsers/firefox-wrapper/default.nix
+++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix
diff --git a/pkgs/applications/networking/browsers/firefox-2/writable-copies.patch b/pkgs/applications/networking/browsers/firefox/writable-copies.patch
index e3c7752c0310..e3c7752c0310 100644
--- a/pkgs/applications/networking/browsers/firefox-2/writable-copies.patch
+++ b/pkgs/applications/networking/browsers/firefox/writable-copies.patch
diff --git a/pkgs/applications/networking/browsers/firefox-2/xlibs.patch b/pkgs/applications/networking/browsers/firefox/xlibs.patch
index a656fbf9beb4..a656fbf9beb4 100644
--- a/pkgs/applications/networking/browsers/firefox-2/xlibs.patch
+++ b/pkgs/applications/networking/browsers/firefox/xlibs.patch
diff --git a/pkgs/applications/networking/browsers/firefox/xulrunner-3.5.nix b/pkgs/applications/networking/browsers/firefox/xulrunner-3.5.nix
new file mode 100644
index 000000000000..d21451a66ea5
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox/xulrunner-3.5.nix
@@ -0,0 +1,102 @@
+{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL
+, libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs
+, freetype, fontconfig, file, alsaLib, autoconf
+
+, # If you want the resulting program to call itself "Firefox" instead
+  # of "Deer Park", enable this option.  However, those binaries may
+  # not be distributed without permission from the Mozilla Foundation,
+  # see http://www.mozilla.org/foundation/trademarks/.
+  enableOfficialBranding ? false
+}:
+
+let
+
+  version = "1.9.1rc1"; 
+  shownVersion = "1.9.1"; # this attribute is used by other packages
+                          # _usually_ it is the same as version
+  ffversion = "3.5rc1";
+
+in  
+
+stdenv.mkDerivation rec {
+  name = "xulrunner-${version}";
+
+  src = fetchurl {
+    url = "ftp://ftp.mozilla.org/pub/firefox/releases/${ffversion}/source/firefox-${ffversion}-source.tar.bz2";
+    sha256 = "14yrkvk0kibfpkcvbb44ww89plhm8iikbqmnc0jbkjr4k70a7gcl";
+  };
+
+  buildInputs = [
+    pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
+    python dbus dbus_glib pango freetype fontconfig
+    xlibs.libXi xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt
+    file alsaLib autoconf
+  ];
+
+  preConfigure = ''
+    export PREFIX=$out
+    export LIBXUL_DIST=$out
+    autoconf
+    cd js/src
+    autoconf
+    cd ../..
+  '';
+
+  configureFlags = [
+    "--enable-application=xulrunner"
+    "--disable-javaxpcom"
+    "--enable-optimize"
+    "--disable-debug"
+    "--enable-strip"
+    "--with-system-jpeg"
+    "--with-system-zlib"
+    "--with-system-bz2"
+    # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
+    "--enable-system-cairo"
+    #"--enable-system-sqlite" # <-- this seems to be discouraged
+    "--disable-crashreporter"
+  ];
+
+  installFlags = [
+    "SKIP_GRE_REGISTRATION=1"
+  ];
+
+  postInstall = ''
+    export dontPatchELF=1;
+
+    # Strip some more stuff
+    strip -S $out/lib/*/* || true
+
+    # Fix some references to /bin paths in the Firefox shell script.
+    substituteInPlace $out/bin/xulrunner \
+        --replace /bin/pwd "$(type -tP pwd)" \
+        --replace /bin/ls "$(type -tP ls)"
+    
+    # Fix run-mozilla.sh search
+    libDir=$(cd $out/lib && ls -d xulrunner-[0-9]*)
+    echo libDir: $libDir
+    test -n "$libDir"
+    cd $out/bin
+    mv xulrunner ../lib/$libDir/
+
+    for i in $out/lib/$libDir/*; do 
+        file $i;
+        if file $i | grep executable &>/dev/null; then 
+	    ln -s $i $out/bin
+        fi;
+    done;
+    rm $out/bin/run-mozilla.sh || true
+  ''; # */
+
+  meta = {
+    description = "Mozilla Firefox XUL runner";
+    homepage = http://www.mozilla.com/en-US/firefox/;
+  };
+
+  passthru = { 
+    inherit gtk ffversion src;
+    version = shownVersion;
+  };
+}
+
+
diff --git a/pkgs/applications/networking/browsers/firefox/xulrunner.nix b/pkgs/applications/networking/browsers/firefox/xulrunner.nix
new file mode 100644
index 000000000000..3b345fe84df1
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox/xulrunner.nix
@@ -0,0 +1,87 @@
+{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL
+, libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs
+, freetype, fontconfig, file
+
+, # If you want the resulting program to call itself "Firefox" instead
+  # of "Deer Park", enable this option.  However, those binaries may
+  # not be distributed without permission from the Mozilla Foundation,
+  # see http://www.mozilla.org/foundation/trademarks/.
+  enableOfficialBranding ? false
+}:
+
+let
+
+  version = "1.9.0.11"; # this attribute is used by other packages
+
+in  
+
+stdenv.mkDerivation {
+  name = "xulrunner-${version}";
+
+  src = fetchurl {
+    url = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.0.11/source/firefox-3.0.11-source.tar.bz2;
+    sha1 = "ca792dcdb67af40c91a4fcece25d6adfb6fef2c3";
+  };
+
+  buildInputs = [
+    pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
+    python dbus dbus_glib pango freetype fontconfig
+    xlibs.libXi xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt
+    file
+  ];
+
+  configureFlags = [
+    "--enable-application=xulrunner"
+    "--disable-javaxpcom"
+    "--enable-optimize"
+    "--disable-debug"
+    "--enable-strip"
+    "--with-system-jpeg"
+    "--with-system-zlib"
+    "--with-system-bz2"
+    # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
+    "--enable-system-cairo"
+    #"--enable-system-sqlite" # <-- this seems to be discouraged
+    "--disable-crashreporter"
+  ];
+
+  installFlags = [
+    "SKIP_GRE_REGISTRATION=1"
+  ];
+
+  postInstall = ''
+    export dontPatchELF=1;
+
+    # Strip some more stuff
+    strip -S $out/lib/*/* || true
+
+    # Fix some references to /bin paths in the Firefox shell script.
+    substituteInPlace $out/bin/xulrunner \
+        --replace /bin/pwd "$(type -tP pwd)" \
+        --replace /bin/ls "$(type -tP ls)"
+    
+    # Fix run-mozilla.sh search
+    libDir=$(cd $out/lib && ls -d xulrunner-[0-9]*)
+    echo libDir: $libDir
+    test -n "$libDir"
+    cd $out/bin
+    mv xulrunner ../lib/$libDir/
+
+    for i in $out/lib/$libDir/*; do 
+        file $i;
+        if file $i | grep executable &>/dev/null; then 
+	    ln -s $i $out/bin
+        fi;
+    done;
+    rm $out/bin/run-mozilla.sh || true
+  ''; # */
+
+  meta = {
+    description = "Mozilla Firefox XUL runner";
+    homepage = http://www.mozilla.com/en-US/firefox/;
+  };
+
+  passthru = { inherit gtk version; };
+}
+
+
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix
index c5c8414f8532..732c45a19e48 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix
@@ -1,21 +1,21 @@
 {stdenv, fetchurl, zlib, alsaLib, curl}:
 
 stdenv.mkDerivation {
-  name = if (stdenv.system == "x86_64-linux") then
-      "flashplayer-10.0.22.87"
-    else
-      "flashplayer-10.0.22";
+  name = "flashplayer-10.0.22.87";
 
   builder = ./builder.sh;
   
-  src = if (stdenv.system == "x86_64-linux") then fetchurl {
-    url = http://download.macromedia.com/pub/labs/flashplayer10/libflashplayer-10.0.22.87.linux-x86_64.so.tar.gz;
-    sha256 = "eac1d05aa96036819fe8f14f293a2ccc9601e1e32e08ec33e6ed9ed698e76145";
-  }
-  else fetchurl {
-    url = http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_10_linux.tar.gz;
-    sha256 = "cd29f166c87fecc943e88fe951bb61c56728fab12b4bf343badafa73ea95394e";
-  };
+  src =
+    if stdenv.system == "x86_64-linux" then
+      fetchurl {
+        url = http://download.macromedia.com/pub/labs/flashplayer10/libflashplayer-10.0.22.87.linux-x86_64.so.tar.gz;
+        sha256 = "eac1d05aa96036819fe8f14f293a2ccc9601e1e32e08ec33e6ed9ed698e76145";
+      }
+    else
+      fetchurl {
+        url = http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_10_linux.tar.gz;
+        sha256 = "0kirjpm77ynsp91z6jrbn7x2hry5c6xm3scgx11wkv3zr1kg2afd";
+      };
 
   inherit zlib alsaLib;
 
diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index d752dd36557e..7c10308497b3 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -8,16 +8,15 @@
 # `git-svn' support requires Subversion and various Perl libraries.
 assert svnSupport -> (subversion != null && perlLibs != [] && subversion.perlBindings);
 
-
 stdenv.mkDerivation rec {
-  name = "git-1.6.1.3";
+  name = "git-1.6.3.3";
 
   src = fetchurl {
     url = "mirror://kernel/software/scm/git/${name}.tar.bz2";
-    sha256 = "aef4814634ac9ce8119fabc4bd1c363bb946f73ed34475a4baaad09a3fb23682";
+    sha256 = "f94bc0d1fc861a12c7fb821b27a4e6a80901e84432cdb7894cb7a437d4c939ad";
   };
 
-  patches = [ ./docbook2texi.patch ./fill-paragraph.patch ];
+  patches = [ ./docbook2texi.patch ];
 
   buildInputs = [curl openssl zlib expat gettext cpio makeWrapper]
     ++ # documentation tools
diff --git a/pkgs/applications/version-management/git-and-tools/git/docbook2texi.patch b/pkgs/applications/version-management/git-and-tools/git/docbook2texi.patch
index b2a6fbcaec5f..c89842c180e6 100644
--- a/pkgs/applications/version-management/git-and-tools/git/docbook2texi.patch
+++ b/pkgs/applications/version-management/git-and-tools/git/docbook2texi.patch
@@ -2,28 +2,28 @@ This patch does two things: (1) use the right name for `docbook2texi',
 and (2) make sure `gitman.info' isn't produced since it's broken (duplicate
 node names).
 
-diff --git a/Documentation/Makefile b/Documentation/Makefile
---- a/Documentation/Makefile
-+++ b/Documentation/Makefile
-@@ -48,7 +48,7 @@ DOC_REF = origin/man
+diff -u -r -w git-1.6.3.3.orig/Documentation/Makefile git-1.6.3.3/Documentation/Makefile
+--- git-1.6.3.3.orig/Documentation/Makefile	2009-07-02 17:07:17.000000000 +0200
++++ git-1.6.3.3/Documentation/Makefile	2009-07-02 17:08:49.000000000 +0200
+@@ -51,7 +51,7 @@
  infodir?=$(prefix)/share/info
  MAKEINFO=makeinfo
  INSTALL_INFO=install-info
 -DOCBOOK2X_TEXI=docbook2x-texi
 +DOCBOOK2X_TEXI=docbook2texi
+ DBLATEX=dblatex
  ifndef PERL_PATH
  	PERL_PATH = /usr/bin/perl
- endif
-@@ -84,7 +84,7 @@ man1: $(DOC_MAN1)
+@@ -153,7 +153,7 @@
  man5: $(DOC_MAN5)
  man7: $(DOC_MAN7)
  
 -info: git.info gitman.info
 +info: git.info
  
- install: man
- 	$(INSTALL) -d -m 755 $(DESTDIR)$(man1dir)
-@@ -96,10 +96,9 @@ install: man
+ pdf: user-manual.pdf
+ 
+@@ -169,10 +169,9 @@
  
  install-info: info
  	$(INSTALL) -d -m 755 $(DESTDIR)$(infodir)
@@ -35,3 +35,5 @@ diff --git a/Documentation/Makefile b/Documentation/Makefile
  	else \
  	  echo "No directory found in $(DESTDIR)$(infodir)" >&2 ; \
  	fi
+Only in git-1.6.3.3/Documentation: Makefile.orig
+Only in git-1.6.3.3/Documentation: Makefile.rej
diff --git a/pkgs/applications/version-management/git-and-tools/git/fill-paragraph.patch b/pkgs/applications/version-management/git-and-tools/git/fill-paragraph.patch
deleted file mode 100644
index 59d6d6b3d332..000000000000
--- a/pkgs/applications/version-management/git-and-tools/git/fill-paragraph.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/contrib/emacs/git.el b/contrib/emacs/git.el
-index 3c37d0d..e314c44 100644
---- a/contrib/emacs/git.el
-+++ b/contrib/emacs/git.el
-@@ -1331,6 +1331,7 @@ Return the list of files that haven't been handled."
- 					 (log-edit-diff-function . git-log-edit-diff)) buffer)
- 	(log-edit 'git-do-commit nil 'git-log-edit-files buffer))
-       (setq font-lock-keywords (font-lock-compile-keywords git-log-edit-font-lock-keywords))
-+      (setq paragraph-separate (concat (regexp-quote git-log-msg-separator) "$\\|Author: \\|Date: \\|Merge: \\|Signed-off-by: \\|\f\\|[ 	]*$"))
-       (setq buffer-file-coding-system coding-system)
-       (re-search-forward (regexp-quote (concat git-log-msg-separator "\n")) nil t))))
diff --git a/pkgs/applications/version-management/subversion/1.6.nix b/pkgs/applications/version-management/subversion/1.6.nix
index e4e425c35baa..9fd210a68c52 100644
--- a/pkgs/applications/version-management/subversion/1.6.nix
+++ b/pkgs/applications/version-management/subversion/1.6.nix
@@ -20,13 +20,13 @@ assert compressionSupport -> neon.compressionSupport;
 
 stdenv.mkDerivation rec {
 
-  version = "1.6.2";
+  version = "1.6.3";
 
   name = "subversion-${version}";
 
   src = fetchurl {
     url = "http://subversion.tigris.org/downloads/${name}.tar.bz2";
-    sha256 = "0xa07jrbg5jdk6v5scv900ccdq1fnx02yijgnl8pfaq3knhsb24p";
+    sha256 = "1dfd4550ae87687c5031665d3b1624082130b4dc235b1084eb0c6279f8e2ee6c";
   };
 
   buildInputs = [zlib apr aprutil sqlite]
diff --git a/pkgs/build-support/release/debian-build.nix b/pkgs/build-support/release/debian-build.nix
index 8ff906488fa4..8950c1d5db25 100644
--- a/pkgs/build-support/release/debian-build.nix
+++ b/pkgs/build-support/release/debian-build.nix
@@ -63,7 +63,6 @@ vmTools.runInLinuxImage (stdenv.mkDerivation (
         dpkg-deb --info "$i"
         pkgName=$(dpkg-deb -W "$i" | awk '{print $1}')
         dpkg -i "$i"
-        dpkg -r "$pkgName"
         echo "file deb $i" >> $out/nix-support/hydra-build-products
         stopNest
       done
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index 7946a16006bc..15fede7aea94 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -364,7 +364,7 @@ rec {
      a set of RPM packages. */
     
   fillDiskWithRPMs =
-    {size ? 2048, rpms, name, fullName, preInstall ? "", postInstall ? "", runScripts ? true}:
+    {size ? 4096, rpms, name, fullName, preInstall ? "", postInstall ? "", runScripts ? true}:
     
     runInLinuxVM (stdenv.mkDerivation {
       inherit name preInstall postInstall rpms;
@@ -503,7 +503,7 @@ rec {
      strongly connected components.  See deb/deb-closure.nix. */
 
   fillDiskWithDebs =
-    {size ? 2048, debs, name, fullName, postInstall ? null}:
+    {size ? 4096, debs, name, fullName, postInstall ? null}:
     
     runInLinuxVM (stdenv.mkDerivation {
       inherit name postInstall;
@@ -596,11 +596,11 @@ rec {
      names. */
      
   makeImageFromRPMDist =
-    { name, fullName, size ? 2048, urlPrefix, packagesList, packages
-    , postInstall ? "", archs ? ["noarch" "i386"], runScripts ? true}:
+    { name, fullName, size ? 4096, urlPrefix, packagesList, packages
+    , preInstall ? "", postInstall ? "", archs ? ["noarch" "i386"], runScripts ? true}:
 
     fillDiskWithRPMs {
-      inherit name fullName size postInstall runScripts;
+      inherit name fullName size preInstall postInstall runScripts;
       rpms = import (rpmClosureGenerator {
         inherit name packagesList urlPrefix packages archs;
       }) {inherit fetchurl;};
@@ -629,7 +629,7 @@ rec {
      names. */
      
   makeImageFromDebDist =
-    {name, fullName, size ? 2048, urlPrefix, packagesList, packages, postInstall ? ""}:
+    {name, fullName, size ? 4096, urlPrefix, packagesList, packages, postInstall ? ""}:
 
     let
       expr = debClosureGenerator {
@@ -938,7 +938,6 @@ rec {
     "unzip"
   ];
 
-
   /* Common packages for openSUSE images. */
   commonOpenSUSEPackages = [
     "aaa_base"
@@ -959,6 +958,7 @@ rec {
     "tar"
     "unzip"
     "util-linux"
+    "gnu-getopt"
   ];
 
 
@@ -985,6 +985,7 @@ rec {
     "util-linux" 
     "file"
     "dpkg-dev"
+    "pkg-config"
     # Needed because it provides /etc/login.defs, whose absence causes
     # the "passwd" post-installs script to fail.
     "login"
@@ -1026,15 +1027,15 @@ rec {
     
     fedora2i386 = diskImageFuns.fedora2i386 { packages = commonFedoraPackages; };
     fedora3i386 = diskImageFuns.fedora3i386 { packages = commonFedoraPackages; };
-    fedora5i386 = diskImageFuns.fedora5i386 { packages = commonFedoraPackages; };
+    fedora5i386 = diskImageFuns.fedora5i386 { packages = commonFedoraPackages ++ ["util-linux"]; };
     fedora7i386 = diskImageFuns.fedora7i386 { packages = commonFedoraPackages; };
     fedora8i386 = diskImageFuns.fedora8i386 { packages = commonFedoraPackages; };
-    fedora9i386 = diskImageFuns.fedora9i386 { packages = commonFedoraPackages; };
-    fedora9x86_64 = diskImageFuns.fedora9x86_64 { packages = commonFedoraPackages; };
-    fedora10i386 = diskImageFuns.fedora10i386 { packages = commonFedoraPackages; };
-    fedora10x86_64 = diskImageFuns.fedora10x86_64 { packages = commonFedoraPackages; };
-    fedora11i386 = diskImageFuns.fedora11i386 { packages = commonFedoraPackages; };
-    fedora11x86_64 = diskImageFuns.fedora11x86_64 { packages = commonFedoraPackages; };
+    fedora9i386 = diskImageFuns.fedora9i386 { packages = commonFedoraPackages       ++ [ "cronie" "util-linux-ng" ]; };
+    fedora9x86_64 = diskImageFuns.fedora9x86_64 { packages = commonFedoraPackages   ++ [ "cronie" "util-linux-ng" ]; };
+    fedora10i386 = diskImageFuns.fedora10i386 { packages = commonFedoraPackages     ++ [ "cronie" "util-linux-ng" ]; };
+    fedora10x86_64 = diskImageFuns.fedora10x86_64 { packages = commonFedoraPackages ++ [ "cronie" "util-linux-ng" ]; };
+    fedora11i386 = diskImageFuns.fedora11i386 { packages = commonFedoraPackages     ++ [ "cronie" "util-linux-ng" ]; };
+    fedora11x86_64 = diskImageFuns.fedora11x86_64 { packages = commonFedoraPackages ++ [ "cronie" "util-linux-ng" ]; };
     opensuse103i386 = diskImageFuns.opensuse103i386 { packages = commonOpenSUSEPackages ++ ["devs"]; };
     opensuse110i386 = diskImageFuns.opensuse110i386 { packages = commonOpenSUSEPackages; };
     opensuse110x86_64 = diskImageFuns.opensuse110x86_64 { packages = commonOpenSUSEPackages; };
diff --git a/pkgs/development/compilers/strategoxt/0.17.nix b/pkgs/development/compilers/strategoxt/0.17.nix
index b10b1aca2251..3bce7b8ae76c 100644
--- a/pkgs/development/compilers/strategoxt/0.17.nix
+++ b/pkgs/development/compilers/strategoxt/0.17.nix
@@ -6,10 +6,10 @@ rec {
 
   
   sdf = stdenv.mkDerivation rec {
-    name = "sdf2-bundle-2.4pre212034";
+    name = "sdf2-bundle-2.4";
 
     src = fetchurl {
-      url = "http://releases.strategoxt.org/strategoxt-0.17/sdf2-bundle/${name}-37nm9z7p/sdf2-bundle-2.4.tar.gz";
+      url = "ftp://ftp.strategoxt.org/pub/stratego/StrategoXT/strategoxt-0.17/sdf2-bundle-2.4.tar.gz";
       sha256 = "2ec83151173378f48a3326e905d11049d094bf9f0c7cff781bc2fce0f3afbc11";
     };
 
@@ -28,11 +28,11 @@ rec {
 
   
   strategoxt = stdenv.mkDerivation rec {
-    name = "strategoxt-0.17pre18583";
+    name = "strategoxt-0.17";
 
     src = fetchurl {
-      url = "http://releases.strategoxt.org/strategoxt/strategoxt-0.17pre18583-i573smdl/strategoxt-0.17pre18583.tar.gz";
-      sha256 = "4769d82a62d1c53fc3f4631ddef489e638ff2361a2eceb1226f2b56ab45b7784";
+      url = "ftp://ftp.strategoxt.org/pub/stratego/StrategoXT/strategoxt-0.17/strategoxt-0.17.tar.gz";
+      sha256 = "70355576c3ce3c5a8a26435705a49cf7d13e91eada974a654534d63e0d34acdb";
     };
 
     buildInputs = [pkgconfig aterm sdf getopt];
diff --git a/pkgs/development/interpreters/maude/default.nix b/pkgs/development/interpreters/maude/default.nix
index d53c02b31f69..acd82e2b2e5d 100644
--- a/pkgs/development/interpreters/maude/default.nix
+++ b/pkgs/development/interpreters/maude/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, flex, bison, ncurses, buddy, tecla, libsigsegv, gmp, makeWrapper }:
+{ stdenv, fetchurl, flex, bison, ncurses, buddy, tecla, libsigsegv, gmpxx, makeWrapper }:
 
 stdenv.mkDerivation rec {
   name = "maude-2.4";
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     url = "http://mirror.switch.ch/mirror/gentoo/distfiles/maude-2.3.0-extras.tar.bz2";
     sha256 = "0kd5623k1wwj1rk4b6halrm3sdvd9kbiwg1hi2c3qim1nlfdgl0d";
   };
-  buildInputs = [flex bison ncurses buddy tecla gmp libsigsegv makeWrapper];
+  buildInputs = [flex bison ncurses buddy tecla gmpxx libsigsegv makeWrapper];
   configurePhase = ''./configure --disable-dependency-tracking --prefix=$out --datadir=$out/share/maude TECLA_LIBS="-ltecla -lncursesw" CFLAGS="-O3" CXXFLAGS="-O3"'';
   doCheck = true;
   postInstall =
diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix
index d1304af2724b..cb965b594a4f 100644
--- a/pkgs/development/interpreters/ruby/default.nix
+++ b/pkgs/development/interpreters/ruby/default.nix
@@ -2,9 +2,10 @@
   , lib
   , zlib ? null
   , openssl ? null
+  , makeOverridable
 }:
 
-stdenv.mkDerivation rec {
+makeOverridable (stdenv.mkDerivation) rec {
   version = "1.8.7-p72";
   name = "ruby-${version}";
   src = fetchurl {
diff --git a/pkgs/development/interpreters/ruby/gem_nix_command.patch b/pkgs/development/interpreters/ruby/gem_nix_command.patch
new file mode 100644
index 000000000000..95a2218ece37
--- /dev/null
+++ b/pkgs/development/interpreters/ruby/gem_nix_command.patch
@@ -0,0 +1,223 @@
+diff --git a/lib/rubygems/command_manager.rb b/lib/rubygems/command_manager.rb
+index 0a19016..ef66d30 100644
+--- a/lib/rubygems/command_manager.rb
++++ b/lib/rubygems/command_manager.rb
+@@ -70,6 +70,7 @@ class Gem::CommandManager
+     register_command :unpack
+     register_command :update
+     register_command :which
++    register_command :nix
+   end
+ 
+   ##
+diff --git a/lib/rubygems/commands/nix_command.rb b/lib/rubygems/commands/nix_command.rb
+new file mode 100644
+index 0000000..1d4ec58
+--- /dev/null
++++ b/lib/rubygems/commands/nix_command.rb
+@@ -0,0 +1,205 @@
++require 'net/http'
++require 'rubygems/command'
++require 'rubygems/doc_manager'
++require 'rubygems/install_update_options'
++require 'rubygems/dependency_installer'
++require 'rubygems/local_remote_options'
++require 'rubygems/validator'
++require 'rubygems/exceptions'
++require 'rubygems/version_option'
++require 'rubygems/version'
++require 'open3'
++
++
++def nixname(gem)
++  s = gem.kind_of? String ? gem : gem.full_name
++  s.gsub(/[.-]/,'_')
++end
++
++##
++# tool creating nix expression to install gems (from ruby forge etc)
++#
++# this is work in progress
++
++class Gem::Commands::NixCommand < Gem::Command
++
++  include Gem::VersionOption
++  include Gem::LocalRemoteOptions
++  include Gem::InstallUpdateOptions
++
++  def initialize
++    defaults = Gem::DependencyInstaller::DEFAULT_OPTIONS.merge({
++    })
++    super 'nix', 'create a nix file containing expressions of the gems', defaults
++  end
++
++  def description # :nodoc:
++    <<-EOF
++      create a nix file containing expressions of the gems
++      There are many gems. So it's best to only specify some target gems and
++      take them into acocunt with their deps
++      TODO more details
++    EOF
++  end
++
++  def usage # :nodoc:
++    "#{program_name} GEMNAME [GEMNAME ...] [options] -- --build-flags"
++  end
++
++  def arguments # :nodoc:
++    "GEMNAME       name of gem to be added to the expressions file"
++  end
++
++  def defaults_str # :nodoc:
++    # what to put in here ? TODO (probably nothing is ok)
++    ""
++  end
++
++  def execute
++
++    begin
++      @prerelease = false;
++
++      args = options[:args];
++
++      @gems_with_deps = {}
++      @seen = {}
++
++      # args to dep informations
++      args.map { |arg|
++        if arg =~ /(.+)-?(.*)?/ then
++          gem_name = $1
++          version =  $2.empty? ?  Gem::Requirement.default : Gem::Version.new($2)
++        else
++          raise Gem::CommandLineError, "could'nt parse arg. expected: name or name-version"
++        end
++
++        print "adding gem_name\n"
++
++        adddep(Gem::Dependency.new gem_name, version)
++      }
++
++      print " total: #{@gems_with_deps.length}\n"
++
++
++      out = "
++         # WARNING: automatically generated CODE
++         # This section has been generated by gem nix #{args.join(" ")}
++         # the gem nix command has been added by a nix patch to ruby gems
++      "
++      # define aliases
++      aliases = {}
++      @gems_with_deps.each{ |key, (spec, src, deps)|
++        aliases[spec.name] = spec \
++          if aliases[spec.name].nil? || aliases[spec.name].version < spec.version
++
++        # get true mirror url reading redirect contents
++         h = Net::HTTP.new('gems.rubyforge.org', 80)
++         resp, data = h.get("/gems/#{spec.full_name}.gem", nil)
++         src_url = resp['location']
++         print "redirection: http://gems.rubyforge.org/gems/#{spec.full_name}.gem -> #{src_url}\n"
++
++         out = "
++         #{out}
++  #{nixname spec} = rubyDerivation {
++     name = \"ruby-#{spec.full_name}\"; # full_name
++     nameNoVersion = \"#{spec.name}\";
++     propagatedBuildInputs = [ #{deps.map {|n| n.nil? ? "" : (nixname n) }.join(" ")} ];
++     src = fetchurl {
++       url = \"#{src_url}\";
++       sha256 = \"#{nixhashof src_url}\";
++     };
++     meta = {
++       homepage = \"#{spec.homepage}\";
++       license = [#{spec.licenses.map{|l| "\"#{l}\""}.join(" ") }]; # one of ?
++       description = \"#{ spec.description[0..120] }\"; # cut to 120 chars
++       longDescription = \"#{ spec.description }\";
++     };
++  };\n"
++      }
++
++      out = "#{out}\n# aliases\n"
++      aliases.each { |key, spec |
++        out = "#{out}#{nixname key}=#{nixname spec};\n"
++      }
++
++      print out
++      exit_code = 0
++
++    rescue => e
++      puts e.inspect
++      puts e.backtrace
++    end
++
++
++  end
++
++  # helper funtions ================
++  
++  def adddep(dep)
++    gem = find_gem_with_source(dep)
++    raise Gem::CommandLineError, "couldn't find #{dep}" if gem.nil?
++    full_name = gem[0].full_name
++
++    return if @seen[full_name]
++    @seen[full_name] = true # there maybe circular dependencies. thus mark this gem seen as early as possible
++
++    # distinguish runtime / buildtime deps? (TODO)
++    deps = gem[0].dependencies
++
++    print " total deps of #{full_name}: #{deps.length}\n"
++
++    dep_specs = []
++    # recurse while collecting deps
++    deps.each {|dep_var| dep_specs.push(adddep(dep_var)) }
++    
++
++    @gems_with_deps[full_name] = [
++      gem[0], # spec
++      gem[1], # src
++      dep_specs # deps
++    ]
++    gem[0] # only return spec, no source for dep list
++  end
++
++
++  # copied from dependency_installer, stripped
++  def find_gem_with_source(dep)
++    gems_and_sources = []
++
++    # no local 
++
++      requirements = dep.version_requirements.requirements.map do |req, ver|
++        req
++      end
++
++      all = true
++      found = Gem::SpecFetcher.fetcher.fetch dep, all, true, @prerelease
++      found.reverse[0]
++  end
++
++
++  def nixhashof(src)
++    cashfile="#{ENV['HOME']}/.nix-ruby-gems-cache"
++    cash = {}
++    if FileTest.exists?(cashfile)
++      File.open(cashfile,'r') do |f| Marshal.load(f) end
++    end
++
++    if cash[src].nil? then
++      tmp="/tmp/ruby-gems-nix-tmp-file"
++      raise Gem::DependencyError("could'nt nix-prefetch  #{src}") \
++	if (not system("nix-prefetch-url #{src.gsub(/([:= `$;])/,'\\\\\1')} > #{tmp} 2>/dev/null")) || $? != 0
++      file = File.new(tmp)
++      hash = file.readlines().first().split("\n")[0] # remove trailing \n
++      file.close()
++      File.delete(tmp)
++      cash[src] = hash
++
++      File.open(cashfile, "w+") do |f| Marshal.dump(cash, f) end
++    end
++
++    return cash[src]
++  end
++
++end
diff --git a/pkgs/development/interpreters/ruby/gems.nix b/pkgs/development/interpreters/ruby/gems.nix
index d971ee22d65d..b2a2eb3062aa 100644
--- a/pkgs/development/interpreters/ruby/gems.nix
+++ b/pkgs/development/interpreters/ruby/gems.nix
@@ -1,9 +1,13 @@
 args : with args; 
 rec {
-  version = "1.2.0";
+
+  # some packages (eg ruby-debug) still require 1.8. So let's stick to that for
+  # now if nobody has different requirements
+
+  version = "1.3.4";
   src = fetchurl {
-    url = "http://rubyforge.org/frs/download.php/38646/rubygems-${version}.tgz";
-    sha256 = "0b9ppgs9av4z344s13wp40ki72prxyz3q0hmsf5swx7xhl54bbr8";
+    url = "http://rubyforge.org/frs/download.php/57643/rubygems-1.3.4.tgz";
+    sha256 = "1z5vvwdf7cwiq669amfxzqd88bn576yq6d9c5c6c92fm9sib1d0y";
   };
 
   buildInputs = [ruby makeWrapper];
@@ -21,10 +25,11 @@ rec {
   meta = {
     description = "Ruby gems package collection";
     longDescription = ''
-      Example usage:
-      gem install -i .ruby-gems json
-      ruby -I ~/.ruby-gems/gems/json-1.1.3/lib your-script.rb
-      Probably there are better ways to handle this all. Go on and fix it.
+      see comment in rubyLibs to get to know how to use ruby gems in nix
     '';
   };
+
+  # TODO don't resolve 302 redirects but make nix resolve in fetchurl and
+  # nix-prefetch-url. This should be done on stdenv-updates.
+  patches = [ ./gem_nix_command.patch /* see longDescription above */ ];
 }
diff --git a/pkgs/development/interpreters/ruby/libs.nix b/pkgs/development/interpreters/ruby/libs.nix
new file mode 100644
index 000000000000..42390b4ed28d
--- /dev/null
+++ b/pkgs/development/interpreters/ruby/libs.nix
@@ -0,0 +1,519 @@
+/* libraries and applications from rubyforge
+
+  run
+    $gem nix $EXSTING_TARGETS new-target-package
+
+  EXSTING_TARGETS can be looked up below after "has been generated by "
+
+  Don't forget add
+  export GEM_PATH=~/.nix/profile
+  export RUBYLIB=~/.nix-profile/gems/rubygems-update-1.3.4/lib/
+  export RUBYOPT=rubygems
+  to your .bashrc
+*/
+
+{pkgs, stdenv}:
+let libs =
+  let 
+    inherit (pkgs) fetchurl;
+    ruby = pkgs.ruby; # select ruby version here
+    rubygems = pkgs.rubygemsFun ruby; # for bootstrapping
+    inherit (pkgs.lib) mergeAttrsByFuncDefaults optional;
+    inherit (builtins) hasAttr getAttr;
+
+    # these settings are merged into the automatically generated settings
+    # either the nameNoVersion or name must match
+    patches = {
+      sup = {
+        buildInputs = [ pkgs.ncurses libs.rubygems_update ];
+      };
+      ncurses = { buildInputs = [ pkgs.ncurses ]; };
+      nokogiri = {
+      
+        buildFlags=["--with-xml2-dir=${pkgs.libxml2} --with-xml2-include=${pkgs.libxml2}/include/libxml2"
+                    "--with-xslt-dir=${pkgs.libxslt}" ]; };
+    };
+
+    rubyDerivation = args :
+      let completeArgs = (mergeAttrsByFuncDefaults 
+          ([{
+            buildInputs = [rubygems pkgs.makeWrapper];
+            unpackPhase = ":";
+            configurePhase=":";
+            bulidPhase=":";
+            # TODO add some abstraction for this kind of env path concatenation. It's used multiple times
+            installPhase = ''
+              ensureDir "$out/nix-support"
+
+              gem install -E -i "$out" "$src" -- $buildFlags
+              rm -fr $out/cache # don't keep the .gem file here
+
+              THIS_RUBY_LIB=$out/gems/$name/lib
+              THIS_GEM_PATH=$out
+
+              cat >> $out/nix-support/setup-hook << EOF 
+                declare -A RUBYLIB_HASH # using bash4 hashs
+                declare -A GEM_PATH_HASH # using bash4 hashs
+
+                RUBYLIB_HASH["$THIS_RUBY_LIB"]=
+                for path in \''${!RUBYLIB_HASH[@]}; do
+                  export RUBYLIB=\''${RUBYLIB}\''${RUBYLIB:+:}\$path
+                done
+                GEM_PATH_HASH["$THIS_GEM_PATH"]=
+                for path in \''${!GEM_PATH_HASH[@]}; do
+                  export GEM_PATH=\''${GEM_PATH_HASH}\''${GEM_PATH:+:}\$path
+                done
+              EOF
+              . $out/nix-support/setup-hook
+              for prog in $out/bin/*; do
+                wrapProgram $prog \
+                  --suffix RUBYLIB ":" "$RUBYLIB" \
+                  --suffix GEM_PATH ":" "$GEM_PATH"
+              done
+            '';
+          } args ]
+            ++ optional (hasAttr args.name patches) (getAttr args.name patches)
+            ++ optional (hasAttr args.nameNoVersion patches) (getAttr args.nameNoVersion patches)
+          )); in stdenv.mkDerivation (removeAttrs completeArgs ["mergeAttrBy"]);
+  in
+  rec {
+
+  # ================ START automatically generated code ================
+
+           # WARNING: automatically generated CODE
+           # This section has been generated by gem nix sup rubygems-update
+           # the gem nix command has been added by a nix patch to ruby gems
+        
+    rubygems_update_1_3_4 = rubyDerivation {
+       name = "ruby-rubygems-update-1.3.4"; # full_name
+       nameNoVersion = "rubygems-update";
+       propagatedBuildInputs = [  ];
+       src = fetchurl {
+         url = "http://gems.rubyforge.vm.bytemark.co.uk/gems/rubygems-update-1.3.4.gem";
+         sha256 = "1y7svhxpr1bfzdpwlaqymm71sbvbhyf3yyifnxadkwd0zqp3chqp";
+       };
+       meta = {
+         homepage = "http://rubygems.rubyforge.org";
+         license = []; # one of ?
+         description = "RubyGems is a package management framework for Ruby.
+
+  This gem is an update for the RubyGems software.  You must have an
+  "; # cut to 120 chars
+         longDescription = "RubyGems is a package management framework for Ruby.
+
+  This gem is an update for the RubyGems software.  You must have an
+  installation of RubyGems before this update can be applied.
+  ";
+       };
+    };
+
+    ferret_0_11_6 = rubyDerivation {
+       name = "ruby-ferret-0.11.6"; # full_name
+       nameNoVersion = "ferret";
+       propagatedBuildInputs = [ rake_0_8_7 ];
+       src = fetchurl {
+         url = "http://gems.rubyforge.mmmultiworks.com/gems/ferret-0.11.6.gem";
+         sha256 = "0q0zdrmfm41ijf1n19s85vg34b1a558x5cnwmbb8fc8kzxklzbih";
+       };
+       meta = {
+         homepage = "http://ferret.davebalmain.com/trac";
+         license = []; # one of ?
+         description = "Ferret is a port of the Java Lucene project. It is a powerful indexing and search library."; # cut to 120 chars
+         longDescription = "Ferret is a port of the Java Lucene project. It is a powerful indexing and search library.";
+       };
+    };
+
+    rake_0_8_7 = rubyDerivation {
+       name = "ruby-rake-0.8.7"; # full_name
+       nameNoVersion = "rake";
+       propagatedBuildInputs = [  ];
+       src = fetchurl {
+         url = "http://rubyforge-gems.ruby-forum.com/gems/rake-0.8.7.gem";
+         sha256 = "03z1zm7xwl2r9v945ambwbd9sn2smbi34xldmac7qjcmsvd7pcqh";
+       };
+       meta = {
+         homepage = "http://rake.rubyforge.org";
+         license = []; # one of ?
+         description = "Rake is a Make-like program implemented in Ruby. Tasks and dependencies are specified in standard Ruby syntax."; # cut to 120 chars
+         longDescription = "Rake is a Make-like program implemented in Ruby. Tasks and dependencies are specified in standard Ruby syntax.";
+       };
+    };
+
+    racc_1_4_6 = rubyDerivation {
+       name = "ruby-racc-1.4.6"; # full_name
+       nameNoVersion = "racc";
+       propagatedBuildInputs = [  ];
+       src = fetchurl {
+         url = "http://gems.rubyforge.vm.bytemark.co.uk/gems/racc-1.4.6.gem";
+         sha256 = "0y43s36bbn96pksf7dbpgjyyd9qsyyn77cl7hnfjwldhfvbfcxsq";
+       };
+       meta = {
+         homepage = "http://racc.rubyforge.org/";
+         license = []; # one of ?
+         description = "Racc is a LALR(1) parser generator. It is written in Ruby itself, and generates Ruby program."; # cut to 120 chars
+         longDescription = "Racc is a LALR(1) parser generator. It is written in Ruby itself, and generates Ruby program.";
+       };
+    };
+
+    nokogiri_1_3_2 = rubyDerivation {
+       name = "ruby-nokogiri-1.3.2"; # full_name
+       nameNoVersion = "nokogiri";
+       propagatedBuildInputs = [ racc_1_4_6 rexical_1_0_3 rake_compiler_0_5_0  ];
+       src = fetchurl {
+         url = "http://gems.rubyforge.mmmultiworks.com/gems/nokogiri-1.3.2.gem";
+         sha256 = "1j5w39nriyw8ly1pzn7giw6wd9r5wclj4r1933z5ximss7l7ih15";
+       };
+       meta = {
+         homepage = "http://nokogiri.org/";
+         license = []; # one of ?
+         description = "Nokogiri (&#37624;) is an HTML, XML, SAX, and Reader parser.  Among Nokogiri's
+  many features is the ability to search doc"; # cut to 120 chars
+         longDescription = "Nokogiri (&#37624;) is an HTML, XML, SAX, and Reader parser.  Among Nokogiri's
+  many features is the ability to search documents via XPath or CSS3 selectors.
+
+  XML is like violence - if it doesn&#8217;t solve your problems, you are not using
+  enough of it.";
+       };
+    };
+
+    hoe_2_3_1 = rubyDerivation {
+       name = "ruby-hoe-2.3.1"; # full_name
+       nameNoVersion = "hoe";
+       propagatedBuildInputs = [   ];
+       src = fetchurl {
+         url = "http://rubyforge-gems.ruby-forum.com/gems/hoe-2.3.1.gem";
+         sha256 = "13mx2fzc9y6as54mlzpavp4ggpil0y001cfw2w3dbpi2g796x9vv";
+       };
+       meta = {
+         homepage = "http://rubyforge.org/projects/seattlerb/";
+         license = []; # one of ?
+         description = "Hoe is a rake/rubygems helper for project Rakefiles. It helps generate
+  rubygems and includes a dynamic plug-in system all"; # cut to 120 chars
+         longDescription = "Hoe is a rake/rubygems helper for project Rakefiles. It helps generate
+  rubygems and includes a dynamic plug-in system allowing for easy
+  extensibility. Hoe ships with plug-ins for all your usual project
+  tasks including rdoc generation, testing, packaging, and deployment.
+
+  Plug-ins Provided:
+
+  * Hoe::Clean
+  * Hoe::Debug
+  * Hoe::Deps
+  * Hoe::Flay
+  * Hoe::Flog
+  * Hoe::Inline
+  * Hoe::Package
+  * Hoe::Publish
+  * Hoe::RCov
+  * Hoe::Signing
+  * Hoe::Test
+
+  See class rdoc for help. Hint: ri Hoe";
+       };
+    };
+
+    archive_tar_minitar_0_5_2 = rubyDerivation {
+       name = "ruby-archive-tar-minitar-0.5.2"; # full_name
+       nameNoVersion = "archive-tar-minitar";
+       propagatedBuildInputs = [  ];
+       src = fetchurl {
+         url = "http://gems.rubyforge.mmmultiworks.com/gems/archive-tar-minitar-0.5.2.gem";
+         sha256 = "1j666713r3cc3wb0042x0wcmq2v11vwwy5pcaayy5f0lnd26iqig";
+       };
+       meta = {
+         homepage = "http://rubyforge.org/projects/ruwiki/";
+         license = []; # one of ?
+         description = "Archive::Tar::Minitar is a pure-Ruby library and command-line utility that provides the ability to deal with POSIX tar(1)"; # cut to 120 chars
+         longDescription = "Archive::Tar::Minitar is a pure-Ruby library and command-line utility that provides the ability to deal with POSIX tar(1) archive files. The implementation is based heavily on Mauricio Ferna'ndez's implementation in rpa-base, but has been reorganised to promote reuse in other projects.";
+       };
+    };
+
+    rubyforge_1_0_3 = rubyDerivation {
+       name = "ruby-rubyforge-1.0.3"; # full_name
+       nameNoVersion = "rubyforge";
+       propagatedBuildInputs = [  ];
+       src = fetchurl {
+         url = "http://gems.rubyforge.mmmultiworks.com/gems/rubyforge-1.0.3.gem";
+         sha256 = "0pwhb8mrnmcr5yybh13csfn658s1r1y978wj5m3mn85cbvwrrkyz";
+       };
+       meta = {
+         homepage = "http://codeforpeople.rubyforge.org/rubyforge/";
+         license = []; # one of ?
+         description = "A script which automates a limited set of rubyforge operations.  * Run 'rubyforge help' for complete usage. * Setup: For "; # cut to 120 chars
+         longDescription = "A script which automates a limited set of rubyforge operations.  * Run 'rubyforge help' for complete usage. * Setup: For first time users AND upgrades to 0.4.0: * rubyforge setup (deletes your username and password, so run sparingly!) * edit ~/.rubyforge/user-config.yml * rubyforge config * For all rubyforge upgrades, run 'rubyforge config' to ensure you have latest. * Don't forget to login!  logging in will store a cookie in your .rubyforge directory which expires after a time.  always run the login command before any operation that requires authentication, such as uploading a package.";
+       };
+    };
+
+    ncurses_0_9_1 = rubyDerivation {
+       name = "ruby-ncurses-0.9.1"; # full_name
+       nameNoVersion = "ncurses";
+       propagatedBuildInputs = [  ];
+       src = fetchurl {
+         url = "http://rubyforge-gems.ruby-forum.com/gems/ncurses-0.9.1.gem";
+         sha256 = "18qxp33imgrp337p7zrk0c008ydw08g73x1gxiqclhgvyqxa42v3";
+       };
+       meta = {
+         homepage = "http://ncurses-ruby.berlios.de/";
+         license = []; # one of ?
+         description = ""; # cut to 120 chars
+         longDescription = "";
+       };
+    };
+
+    fastthread_1_0_7 = rubyDerivation {
+       name = "ruby-fastthread-1.0.7"; # full_name
+       nameNoVersion = "fastthread";
+       propagatedBuildInputs = [  ];
+       src = fetchurl {
+         url = "http://rubyforge-gems.ruby-forum.com/gems/fastthread-1.0.7.gem";
+         sha256 = "003ngap8rmwsl4bvf44hz8q4ajm9d0sbn38pm28dajng3pm8q6mx";
+       };
+       meta = {
+         homepage = "";
+         license = []; # one of ?
+         description = "Optimized replacement for thread.rb primitives"; # cut to 120 chars
+         longDescription = "Optimized replacement for thread.rb primitives";
+       };
+    };
+
+    rake_compiler_0_5_0 = rubyDerivation {
+       name = "ruby-rake-compiler-0.5.0"; # full_name
+       nameNoVersion = "rake-compiler";
+       propagatedBuildInputs = [  ];
+       src = fetchurl {
+         url = "http://gems.rubyforge.mmmultiworks.com/gems/rake-compiler-0.5.0.gem";
+         sha256 = "03l6hgyv9z2bc1p16c2mai5n1ylhzcnw053x0x0nc94p4297m2jv";
+       };
+       meta = {
+         homepage = "http://github.com/luislavena/rake-compiler";
+         license = []; # one of ?
+         description = "Provide a standard and simplified way to build and package
+  Ruby C extensions using Rake as glue."; # cut to 120 chars
+         longDescription = "Provide a standard and simplified way to build and package
+  Ruby C extensions using Rake as glue.";
+       };
+    };
+
+    lockfile_1_4_3 = rubyDerivation {
+       name = "ruby-lockfile-1.4.3"; # full_name
+       nameNoVersion = "lockfile";
+       propagatedBuildInputs = [  ];
+       src = fetchurl {
+         url = "http://gems.rubyforge.mmmultiworks.com/gems/lockfile-1.4.3.gem";
+         sha256 = "0cxbyvxr3s5xsx85yghcs69d4lwwj0pg5la5cz2fp12hkk2szab3";
+       };
+       meta = {
+         homepage = "http://codeforpeople.com/lib/ruby/lockfile/";
+         license = []; # one of ?
+         description = ""; # cut to 120 chars
+         longDescription = "";
+       };
+    };
+
+    locale_2_0_4 = rubyDerivation {
+       name = "ruby-locale-2.0.4"; # full_name
+       nameNoVersion = "locale";
+       propagatedBuildInputs = [  ];
+       src = fetchurl {
+         url = "http://gems.rubyforge.vm.bytemark.co.uk/gems/locale-2.0.4.gem";
+         sha256 = "1fy0bsrxmskmsw3wrl2dis57rgs1jr1dmlp3xm9z8w1phaqh3c8v";
+       };
+       meta = {
+         homepage = "http://locale.rubyforge.org/";
+         license = []; # one of ?
+         description = "Ruby-Locale is the pure ruby library which provides basic APIs for localization."; # cut to 120 chars
+         longDescription = "Ruby-Locale is the pure ruby library which provides basic APIs for localization.";
+       };
+    };
+
+    rcov_0_8_1_2_0 = rubyDerivation {
+       name = "ruby-rcov-0.8.1.2.0"; # full_name
+       nameNoVersion = "rcov";
+       propagatedBuildInputs = [  ];
+       src = fetchurl {
+         url = "http://gems.rubyforge.mmmultiworks.com/gems/rcov-0.8.1.2.0.gem";
+         sha256 = "0mbm0n48yvgiibyvdc3gn4h70c82pn7z3hns9jinak7hyfmb5q5p";
+       };
+       meta = {
+         homepage = "http://eigenclass.org/hiki.rb?rcov";
+         license = []; # one of ?
+         description = "rcov is a code coverage tool for Ruby. It is commonly used for viewing overall test unit coverage of target code.  It fea"; # cut to 120 chars
+         longDescription = "rcov is a code coverage tool for Ruby. It is commonly used for viewing overall test unit coverage of target code.  It features fast execution (20-300 times faster than previous tools), multiple analysis modes, XHTML and several kinds of text reports, easy automation with Rake via a RcovTask, fairly accurate coverage information through code linkage inference using simple heuristics, colorblind-friendliness...";
+       };
+    };
+
+    echoe_3_1_1 = rubyDerivation {
+       name = "ruby-echoe-3.1.1"; # full_name
+       nameNoVersion = "echoe";
+       propagatedBuildInputs = [ rubyforge_1_0_3  ];
+       src = fetchurl {
+         url = "http://rubyforge-gems.ruby-forum.com/gems/echoe-3.1.1.gem";
+         sha256 = "1vy4jc8j8fq89r7fg2x37ybagghpw82qbqivc9pjk5fwyrxcvqha";
+       };
+       meta = {
+         homepage = "http://blog.evanweaver.com/files/doc/fauna/echoe/";
+         license = []; # one of ?
+         description = "A Rubygems packaging tool that provides Rake tasks for documentation, extension compiling, testing, and deployment."; # cut to 120 chars
+         longDescription = "A Rubygems packaging tool that provides Rake tasks for documentation, extension compiling, testing, and deployment.";
+       };
+    };
+
+    mime_types_1_16 = rubyDerivation {
+       name = "ruby-mime-types-1.16"; # full_name
+       nameNoVersion = "mime-types";
+       propagatedBuildInputs = [ archive_tar_minitar_0_5_2 nokogiri_1_3_2 rcov_0_8_1_2_0  ];
+       src = fetchurl {
+         url = "http://gems.rubyforge.vm.bytemark.co.uk/gems/mime-types-1.16.gem";
+         sha256 = "1slp7g2xv9ygcapqv13qgh3g6ipx5k5c3imb5sdyh0b9ip5s34y3";
+       };
+       meta = {
+         homepage = "http://mime-types.rubyforge.org/";
+         license = []; # one of ?
+         description = "MIME::Types for Ruby originally based on and synchronized with MIME::Types for Perl by Mark Overmeer, copyright 2001 - 20"; # cut to 120 chars
+         longDescription = "MIME::Types for Ruby originally based on and synchronized with MIME::Types for Perl by Mark Overmeer, copyright 2001 - 2009. As of version 1.15, the data format for the MIME::Type list has changed and the synchronization will no longer happen.";
+       };
+    };
+
+    net_ssh_2_0_11 = rubyDerivation {
+       name = "ruby-net-ssh-2.0.11"; # full_name
+       nameNoVersion = "net-ssh";
+       propagatedBuildInputs = [ echoe_3_1_1 ];
+       src = fetchurl {
+         url = "http://gems.rubyforge.vm.bytemark.co.uk/gems/net-ssh-2.0.11.gem";
+         sha256 = "1j1mpnhpnb0d9l3jfk7g02syqjanc51lm076llzmjydy30x2n2f7";
+       };
+       meta = {
+         homepage = "http://net-ssh.rubyforge.org/ssh";
+         license = []; # one of ?
+         description = "a pure-Ruby implementation of the SSH2 client protocol"; # cut to 120 chars
+         longDescription = "a pure-Ruby implementation of the SSH2 client protocol";
+       };
+    };
+
+    highline_1_5_1 = rubyDerivation {
+       name = "ruby-highline-1.5.1"; # full_name
+       nameNoVersion = "highline";
+       propagatedBuildInputs = [  ];
+       src = fetchurl {
+         url = "http://gems.rubyforge.vm.bytemark.co.uk/gems/highline-1.5.1.gem";
+         sha256 = "0sawb011sc1i5glr80a4iflr0vvn3s5c97a4jmrhj3palv4df19i";
+       };
+       meta = {
+         homepage = "http://highline.rubyforge.org";
+         license = []; # one of ?
+         description = "A high-level IO library that provides validation, type conversion, and more for command-line interfaces. HighLine also in"; # cut to 120 chars
+         longDescription = "A high-level IO library that provides validation, type conversion, and more for command-line interfaces. HighLine also includes a complete menu system that can crank out anything from simple list selection to complete shells with just minutes of work.";
+       };
+    };
+
+    gettext_2_0_4 = rubyDerivation {
+       name = "ruby-gettext-2.0.4"; # full_name
+       nameNoVersion = "ruby-gettext";
+       propagatedBuildInputs = [ locale_2_0_4 ];
+       src = fetchurl {
+         url = "http://rubyforge-gems.ruby-forum.com/gems/gettext-2.0.4.gem";
+         sha256 = "1hdj91qg5858ss3wsdjbi4yxmwixqin5vv550fkvf4514yyc9gk0";
+       };
+       meta = {
+         homepage = "http://gettext.rubyforge.org/";
+         license = []; # one of ?
+         description = "Ruby-GetText-Package is a GNU GetText-like program for Ruby. The catalog file(po-file) is same format with GNU GetText. S"; # cut to 120 chars
+         longDescription = "Ruby-GetText-Package is a GNU GetText-like program for Ruby. The catalog file(po-file) is same format with GNU GetText. So you can use GNU GetText tools for maintaining.";
+       };
+    };
+
+    sup_0_8_1 = rubyDerivation {
+       name = "ruby-sup-0.8.1"; # full_name
+       nameNoVersion = "sup";
+       propagatedBuildInputs = [ ferret_0_11_6 ncurses_0_9_1 rmail_1_0_0 highline_1_5_1 net_ssh_2_0_11 trollop_1_14 lockfile_1_4_3 mime_types_1_16 gettext_2_0_4 fastthread_1_0_7 ];
+       src = fetchurl {
+         url = "http://gems.rubyforge.vm.bytemark.co.uk/gems/sup-0.8.1.gem";
+         sha256 = "0q7s63s43mf35j0372g3qpfhsnsys4fbsb8xkshpwrjsd4lb90l2";
+       };
+       meta = {
+         homepage = "http://sup.rubyforge.org/";
+         license = []; # one of ?
+         description = "Sup is a console-based email client for people with a lot of email. It supports tagging, very fast full-text search, auto"; # cut to 120 chars
+         longDescription = "Sup is a console-based email client for people with a lot of email. It supports tagging, very fast full-text search, automatic contact-list management, and more. If you're the type of person who treats email as an extension of your long-term memory, Sup is for you.  Sup makes it easy to: - Handle massive amounts of email.  - Mix email from different sources: mbox files (even across different machines), Maildir directories, IMAP folders, POP accounts, and GMail accounts.  - Instantaneously search over your entire email collection. Search over body text, or use a query language to combine search predicates in any way.  - Handle multiple accounts. Replying to email sent to a particular account will use the correct SMTP server, signature, and from address.  - Add custom code to handle certain types of messages or to handle certain types of text within messages.  - Organize email with user-defined labels, automatically track recent contacts, and much more!  The goal of Sup is to become the email client of choice for nerds everywhere.";
+       };
+    };
+
+    trollop_1_14 = rubyDerivation {
+       name = "ruby-trollop-1.14"; # full_name
+       nameNoVersion = "trollop";
+       propagatedBuildInputs = [  ];
+       src = fetchurl {
+         url = "http://gems.rubyforge.mmmultiworks.com/gems/trollop-1.14.gem";
+         sha256 = "15jsdlnq6fj3q3g47qswi73gx91rw1yvssi8zkwf6svkd55ri3f7";
+       };
+       meta = {
+         homepage = "http://trollop.rubyforge.org";
+         license = []; # one of ?
+         description = "Documentation quickstart: See Trollop::options (for some reason rdoc isn't linking that; it's in the top right of the scr"; # cut to 120 chars
+         longDescription = "Documentation quickstart: See Trollop::options (for some reason rdoc isn't linking that; it's in the top right of the screen if you're browsing online) and then Trollop::Parser#opt. Also see the examples at http://trollop.rubyforge.org/.  == DESCRIPTION  == REQUIREMENTS  * A burning desire to write less code.  == INSTALL  * gem install trollop  == LICENSE  Copyright (c) 2008 William Morgan. Trollop is distributed under the same terms as Ruby.";
+       };
+    };
+
+    rexical_1_0_3 = rubyDerivation {
+       name = "ruby-rexical-1.0.3"; # full_name
+       nameNoVersion = "rexical";
+       propagatedBuildInputs = [ hoe_2_3_1 ];
+       src = fetchurl {
+         url = "http://gems.rubyforge.mmmultiworks.com/gems/rexical-1.0.3.gem";
+         sha256 = "0dp5jgjjqv5f050xfa9wr89rd89v85kb02fabvx88wn5dwgb08lk";
+       };
+       meta = {
+         homepage = "http://github.com/tenderlove/rexical/tree/master";
+         license = []; # one of ?
+         description = "Rexical is a lexical scanner generator.
+  It is written in Ruby itself, and generates Ruby program.
+  It is designed for use "; # cut to 120 chars
+         longDescription = "Rexical is a lexical scanner generator.
+  It is written in Ruby itself, and generates Ruby program.
+  It is designed for use with Racc.";
+       };
+    };
+
+    rmail_1_0_0 = rubyDerivation {
+       name = "ruby-rmail-1.0.0"; # full_name
+       nameNoVersion = "rmail";
+       propagatedBuildInputs = [  ];
+       src = fetchurl {
+         url = "http://gems.rubyforge.vm.bytemark.co.uk/gems/rmail-1.0.0.gem";
+         sha256 = "0nsg7yda1gdwa96j4hlrp2s0m06vrhcc4zy5mbq7gxmlmwf9yixp";
+       };
+       meta = {
+         homepage = "http://www.rfc20.org/rubymail";
+         license = []; # one of ?
+         description = "RMail is a lightweight mail library containing various utility classes and modules that allow ruby scripts to parse, modi"; # cut to 120 chars
+         longDescription = "RMail is a lightweight mail library containing various utility classes and modules that allow ruby scripts to parse, modify, and generate MIME mail messages.";
+       };
+    };
+
+# aliases
+  rmail=rmail_1_0_0;
+  fastthread=fastthread_1_0_7;
+  highline=highline_1_5_1;
+  rake=rake_0_8_7;
+  rubygems_update=rubygems_update_1_3_4;
+  sup=sup_0_8_1;
+  mime_types=mime_types_1_16;
+  echoe=echoe_3_1_1;
+  rubyforge=rubyforge_1_0_3;
+  rake_compiler=rake_compiler_0_5_0;
+  ferret=ferret_0_11_6;
+  net_ssh=net_ssh_2_0_11;
+  rcov=rcov_0_8_1_2_0;
+  ncurses=ncurses_0_9_1;
+  trollop=trollop_1_14;
+  gettext=gettext_2_0_4;
+  archive_tar_minitar=archive_tar_minitar_0_5_2;
+  locale=locale_2_0_4;
+  hoe=hoe_2_3_1;
+  racc=racc_1_4_6;
+  lockfile=lockfile_1_4_3;
+  rexical=rexical_1_0_3;
+  nokogiri=nokogiri_1_3_2;
+
+  # ================ END automatically generated code ================
+  }; in libs
diff --git a/pkgs/development/interpreters/ruby/ruby-19.nix b/pkgs/development/interpreters/ruby/ruby-19.nix
new file mode 100644
index 000000000000..4ebfd552ca45
--- /dev/null
+++ b/pkgs/development/interpreters/ruby/ruby-19.nix
@@ -0,0 +1,10 @@
+{ ruby18, fetchurl }:
+
+ruby18.override rec {
+  version = "1.9.1-p129";
+  name = "ruby-${version}";
+  src = fetchurl {
+    url = "ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p129.tar.gz";
+    sha256 = "0fr52j6xbrq3x4nr93azhz1zhlqb4dar7bi0f0iyqz6iw6naidr7";
+  };
+}
diff --git a/pkgs/development/libraries/buddy/default.nix b/pkgs/development/libraries/buddy/default.nix
index 16db4290ec0d..0b0a937bc182 100644
--- a/pkgs/development/libraries/buddy/default.nix
+++ b/pkgs/development/libraries/buddy/default.nix
@@ -1,20 +1,21 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, bison }:
 
 stdenv.mkDerivation rec {
   name = "buddy-2.4";
-  
-  meta = {
-    homepage = "http://sourceforge.net/projects/buddy/";
-    description = "binary decision diagram package";
-    license = "as-is";
-  };
-  
+
   src = fetchurl {
     url = "mirror://sourceforge/buddy/${name}.tar.gz";
     sha256 = "0dl86l9xkl33wnkz684xa9axhcxx2zzi4q5lii0axnb9lsk81pyk";
   };
-  
+
+  buildInputs = [ bison ];
+  patches = [ ./gcc-4.3.3-fixes.patch ];
   configureFlags = "CFLAGS=-O3 CXXFLAGS=-O3";
-  
   doCheck = true;
+
+  meta = {
+    homepage = "http://sourceforge.net/projects/buddy/";
+    description = "binary decision diagram package";
+    license = "as-is";
+  };
 }
diff --git a/pkgs/development/libraries/buddy/gcc-4.3.3-fixes.patch b/pkgs/development/libraries/buddy/gcc-4.3.3-fixes.patch
new file mode 100644
index 000000000000..2e7efd1c4666
--- /dev/null
+++ b/pkgs/development/libraries/buddy/gcc-4.3.3-fixes.patch
@@ -0,0 +1,22 @@
+diff -uwr buddy-2.4.orig/examples/bddcalc/parser.yxx buddy-2.4/examples/bddcalc/parser.yxx
+--- buddy-2.4.orig/examples/bddcalc/parser.yxx	2009-07-02 17:12:48.000000000 +0200
++++ buddy-2.4/examples/bddcalc/parser.yxx	2009-07-02 17:18:36.000000000 +0200
+@@ -7,6 +7,7 @@
+
+ %{
+ #include <string>
++#include <cstdlib>
+ #include <stdarg.h>
+ #include <fstream>
+ #include <getopt.h>
+diff -uwr buddy-2.4.orig/src/bddtest.cxx buddy-2.4/src/bddtest.cxx
+--- buddy-2.4.orig/src/bddtest.cxx	2009-07-02 17:12:48.000000000 +0200
++++ buddy-2.4/src/bddtest.cxx	2009-07-02 17:14:05.000000000 +0200
+@@ -28,6 +28,7 @@
+ ========================================================================*/
+
+ #include <string>
++#include <cstdlib>
+ #include "bdd.h"
+ #include "bvec.h"
+
diff --git a/pkgs/development/libraries/libsamplerate/default.nix b/pkgs/development/libraries/libsamplerate/default.nix
index aa218f102cdc..a30a2884c6a3 100644
--- a/pkgs/development/libraries/libsamplerate/default.nix
+++ b/pkgs/development/libraries/libsamplerate/default.nix
@@ -23,9 +23,10 @@ stdenv.mkDerivation {
     description = "Sample Rate Converter for audio";
     homepage = http://www.mega-nerd.com/SRC/index.html;
     # you can choose one of the following licenses:
-    license = [ "GPL"
-                { url=http://www.mega-nerd.com/SRC/libsamplerate-cul.pdf;
-                  name="libsamplerate Commercial Use License";
-                } ];
+    license = [
+      "GPL"
+      # http://www.mega-nerd.com/SRC/libsamplerate-cul.pdf
+      "libsamplerate Commercial Use License"
+    ];
   };
 }
diff --git a/pkgs/development/libraries/libunistring/default.nix b/pkgs/development/libraries/libunistring/default.nix
index 3f1f7ba158d3..05dd2cdaaf5e 100644
--- a/pkgs/development/libraries/libunistring/default.nix
+++ b/pkgs/development/libraries/libunistring/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv }:
 
 stdenv.mkDerivation rec {
-  name = "libunistring-0.9";
+  name = "libunistring-0.9.1";
 
   src = fetchurl {
     url = "mirror://gnu/libunistring/${name}.tar.gz";
-    sha256 = "0j5f9nd6i5irvc9gk4ffgx3kgii3izhbm9adzv6svvkzwfiqsyrx";
+    sha256 = "0cisnd4psxhgwlb8ak4hn74zdayp9s48i5rzrl6xmni1dqz6j6y5";
   };
 
   doCheck = true;
@@ -37,5 +37,7 @@ stdenv.mkDerivation rec {
     '';
 
     license = "LGPLv3+";
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
   };
 }
diff --git a/pkgs/development/libraries/ncurses-diet/builder.sh b/pkgs/development/libraries/ncurses-diet/builder.sh
deleted file mode 100644
index 999f3a84e568..000000000000
--- a/pkgs/development/libraries/ncurses-diet/builder.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-source $stdenv/setup
-
-configureFlags="--includedir=$out/include --without-cxx-binding"
-
-genericBuild
diff --git a/pkgs/development/libraries/ncurses-diet/default.nix b/pkgs/development/libraries/ncurses-diet/default.nix
deleted file mode 100644
index 2d7803693514..000000000000
--- a/pkgs/development/libraries/ncurses-diet/default.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{stdenv, fetchurl}:
-
-stdenv.mkDerivation {
-  name = "ncurses-5.5";
-  builder = ./builder.sh;
-  src = fetchurl {
-    url = mirror://gnu/ncurses/ncurses-5.5.tar.gz;
-    md5 = "e73c1ac10b4bfc46db43b2ddfd6244ef";
-  };
-}
diff --git a/pkgs/development/libraries/nettle/default.nix b/pkgs/development/libraries/nettle/default.nix
new file mode 100644
index 000000000000..65e4ac4da5e1
--- /dev/null
+++ b/pkgs/development/libraries/nettle/default.nix
@@ -0,0 +1,46 @@
+{ fetchurl, stdenv }:
+
+stdenv.mkDerivation rec {
+  name = "nettle-2.0";
+
+  src = fetchurl {
+    # Eventually use `mirror://gnu/'.
+    url = "ftp://ftp.lysator.liu.se/pub/security/lsh/${name}.tar.gz";
+    sha256 = "1mnb2zx6yxfzkkv8hnrjzhjviybd45z92wq4y5sv1gskp4qf5fb5";
+  };
+
+  doCheck = true;
+
+  meta = {
+    description = "GNU Nettle, a cryptographic library";
+
+    longDescription = ''
+        Nettle is a cryptographic library that is designed to fit
+        easily in more or less any context: In crypto toolkits for
+        object-oriented languages (C++, Python, Pike, ...), in
+        applications like LSH or GNUPG, or even in kernel space.  In
+        most contexts, you need more than the basic cryptographic
+        algorithms, you also need some way to keep track of available
+        algorithms, their properties and variants.  You often have
+        some algorithm selection process, often dictated by a protocol
+        you want to implement.
+
+        And as the requirements of applications differ in subtle and
+        not so subtle ways, an API that fits one application well can
+        be a pain to use in a different context.  And that is why
+        there are so many different cryptographic libraries around.
+
+        Nettle tries to avoid this problem by doing one thing, the
+        low-level crypto stuff, and providing a simple but general
+        interface to it.  In particular, Nettle doesn't do algorithm
+        selection.  It doesn't do memory allocation. It doesn't do any
+        I/O.
+     '';
+
+     license = "GPLv2+";
+
+     homepage = http://www.lysator.liu.se/~nisse/nettle/;
+
+     maintainers = [ stdenv.lib.maintainers.ludo ];
+  };
+}
diff --git a/pkgs/development/libraries/openssl/darwin-arch.patch b/pkgs/development/libraries/openssl/darwin-arch.patch
new file mode 100644
index 000000000000..a104d2e61596
--- /dev/null
+++ b/pkgs/development/libraries/openssl/darwin-arch.patch
@@ -0,0 +1,20 @@
+diff -rc openssl-0.9.8k-orig/Configure openssl-0.9.8k/Configure
+*** openssl-0.9.8k-orig/Configure	Tue Jun 30 15:45:36 2009
+--- openssl-0.9.8k/Configure	Tue Jun 30 15:46:15 2009
+***************
+*** 518,524 ****
+  "rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown):MACOSX_RHAPSODY::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}::",
+  "darwin-ppc-cc","cc:-arch ppc -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::osx_ppc32.o::::::::::dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+  "darwin64-ppc-cc","cc:-arch ppc64 -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::osx_ppc64.o::::::::::dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+! "darwin-i386-cc","cc:-arch i386 -O3 -fomit-frame-pointer -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+  "debug-darwin-i386-cc","cc:-arch i386 -g3 -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+  "darwin64-x86_64-cc","cc:-arch x86_64 -O3 -fomit-frame-pointer -DL_ENDIAN -DMD32_REG_T=int -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+  "debug-darwin-ppc-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DB_ENDIAN -g -Wall -O::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::osx_ppc32.o::::::::::dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+--- 518,524 ----
+  "rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown):MACOSX_RHAPSODY::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}::",
+  "darwin-ppc-cc","cc:-arch ppc -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::osx_ppc32.o::::::::::dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+  "darwin64-ppc-cc","cc:-arch ppc64 -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::osx_ppc64.o::::::::::dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+! "darwin-i386-cc","cc:-O3 -fomit-frame-pointer -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+  "debug-darwin-i386-cc","cc:-arch i386 -g3 -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+  "darwin64-x86_64-cc","cc:-arch x86_64 -O3 -fomit-frame-pointer -DL_ENDIAN -DMD32_REG_T=int -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+  "debug-darwin-ppc-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DB_ENDIAN -g -Wall -O::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::osx_ppc32.o::::::::::dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix
index 3e593f5c0493..7b1212efacfc 100644
--- a/pkgs/development/libraries/openssl/default.nix
+++ b/pkgs/development/libraries/openssl/default.nix
@@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
   configureScript = "./config";
   
   configureFlags = "shared";
+  
+  #patches = if stdenv.system == "i686-darwin" then [ ./darwin-arch.patch ] else [];
 
   meta = {
     homepage = http://www.openssl.org/;
diff --git a/pkgs/development/libraries/sqlite/default.nix b/pkgs/development/libraries/sqlite/default.nix
index 86d2a627212a..b24525ecf3e1 100644
--- a/pkgs/development/libraries/sqlite/default.nix
+++ b/pkgs/development/libraries/sqlite/default.nix
@@ -1,22 +1,26 @@
 {stdenv, fetchurl, readline, static ? false}:
 
 stdenv.mkDerivation rec {
-  name = "sqlite-3.6.12";
+  name = "sqlite-3.6.16";
 
   # Note: don't use the "amalgamation" source release, since it
   # doesn't install sqlite3.pc.
   src = fetchurl {
     url = "http://www.sqlite.org/${name}.tar.gz";
-    sha256 = "00cj6bda0kqqn6m3g8k4n4w1rnj76mgk47hf03j0d3w0j0g3rhln";
+    sha256 = "1kadzd5c82x3i7vd0cfqxc3r8a2smc04fhsxpl07jxjlva4khvqc";
   };
 
   buildInputs = [readline];
 
   configureFlags = ''
+    --enable-load-extension
     ${if static then "--disable-shared --enable-static" else ""}
     --with-readline-inc=-I${readline}/include
   '';
 
+  NIX_CFLAGS_COMPILE = "-DSQLITE_ENABLE_COLUMN_METADATA=1";
+  NIX_CFLAGS_LINK = "-ldl"; # needed for --enable-load-extension
+
   meta = {
     homepage = http://www.sqlite.org/;
     description = "A self-contained, serverless, zero-configuration, transactional SQL database engine";
diff --git a/pkgs/development/perl-modules/DBD-SQLite/default.nix b/pkgs/development/perl-modules/DBD-SQLite/default.nix
index 5631ec673e59..c2da549b0ac4 100644
--- a/pkgs/development/perl-modules/DBD-SQLite/default.nix
+++ b/pkgs/development/perl-modules/DBD-SQLite/default.nix
@@ -1,11 +1,11 @@
 {fetchurl, buildPerlPackage, DBI, sqlite}:
 
-buildPerlPackage {
-  name = "DBD-SQLite-1.14";
+buildPerlPackage rec {
+  name = "DBD-SQLite-1.25";
   
   src = fetchurl {
-    url = mirror://cpan/authors/id/M/MS/MSERGEANT/DBD-SQLite-1.14.tar.gz;
-    sha256 = "01qd5xfx702chg3bv2k727kfdp84zy5xh31y6njvivkp78vrs624";
+    url = "mirror://cpan/authors/id/A/AD/ADAMK/${name}.tar.gz";
+    sha256 = "17dd09jhf2kk33rqlsg74c1sb049qabmyh857alqc9fhffd1yb43";
   };
   
   propagatedBuildInputs = [DBI];
@@ -13,11 +13,11 @@ buildPerlPackage {
   makeMakerFlags = "SQLITE_LOCATION=${sqlite}";
 
   patches = [
-    # Prevent segfaults in case of timeouts.
-    ./reset.patch
+    # Support building against our own sqlite.
+    ./external-sqlite.patch
   ];
 
   # Disabled because the tests can randomly fail due to timeouts
   # (e.g. "database is locked(5) at dbdimp.c line 402 at t/07busy.t").
-  doCheck = false;
+  #doCheck = false;
 }
diff --git a/pkgs/development/perl-modules/DBD-SQLite/external-sqlite.patch b/pkgs/development/perl-modules/DBD-SQLite/external-sqlite.patch
new file mode 100644
index 000000000000..61e2e0af912c
--- /dev/null
+++ b/pkgs/development/perl-modules/DBD-SQLite/external-sqlite.patch
@@ -0,0 +1,39 @@
+diff -rc DBD-SQLite-1.25-orig/Makefile.PL DBD-SQLite-1.25/Makefile.PL
+*** DBD-SQLite-1.25-orig/Makefile.PL	2009-04-23 12:12:04.000000000 +0200
+--- DBD-SQLite-1.25/Makefile.PL	2009-07-02 14:07:25.000000000 +0200
+***************
+*** 79,85 ****
+  # Let's find out the full story first, so we can make an informed
+  # decision to whether to do this. -- ADAMK
+  my ($force_local, $sqlite_base, $sqlite_lib, $sqlite_inc);
+! if ( 0 ) {
+  	require File::Spec;
+  	if ( $sqlite_base = (grep(/SQLITE_LOCATION=.*/, @ARGV))[0] ) {
+  		$sqlite_base =~ /=(.*)/;
+--- 79,85 ----
+  # Let's find out the full story first, so we can make an informed
+  # decision to whether to do this. -- ADAMK
+  my ($force_local, $sqlite_base, $sqlite_lib, $sqlite_inc);
+! if ( 1 ) {
+  	require File::Spec;
+  	if ( $sqlite_base = (grep(/SQLITE_LOCATION=.*/, @ARGV))[0] ) {
+  		$sqlite_base =~ /=(.*)/;
+***************
+*** 141,148 ****
+  
+  # Use always the bundled one.
+  # XXX: ... and this message should be more informative.
+! $force_local = 1;
+! print "We're using the bundled sqlite library.\n" if $ENV{AUTOMATED_TESTING};
+  
+  @ARGV = grep( ! /SQLITE_LOCATION|USE_LOCAL_SQLITE/, @ARGV );
+  
+--- 141,148 ----
+  
+  # Use always the bundled one.
+  # XXX: ... and this message should be more informative.
+! #$force_local = 1;
+! #print "We're using the bundled sqlite library.\n" if $ENV{AUTOMATED_TESTING};
+  
+  @ARGV = grep( ! /SQLITE_LOCATION|USE_LOCAL_SQLITE/, @ARGV );
+  
diff --git a/pkgs/development/perl-modules/DBD-SQLite/reset.patch b/pkgs/development/perl-modules/DBD-SQLite/reset.patch
deleted file mode 100644
index af6a0b73796e..000000000000
--- a/pkgs/development/perl-modules/DBD-SQLite/reset.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-diff -rc DBD-SQLite-1.14-orig/dbdimp.c DBD-SQLite-1.14/dbdimp.c
-*** DBD-SQLite-1.14-orig/dbdimp.c	2007-08-24 04:51:25.000000000 +0200
---- DBD-SQLite-1.14/dbdimp.c	2008-11-10 18:31:53.000000000 +0100
-***************
-*** 398,405 ****
-              if (imp_sth->retval == SQLITE_ROW) {
-                  continue;
-              }
-!             /* There are bug reports that say this should be sqlite3_reset() */
-!             sqlite3_finalize(imp_sth->stmt);
-              sqlite_error(sth, (imp_xxh_t*)imp_sth, imp_sth->retval, (char*)sqlite3_errmsg(imp_dbh->db));
-              return -5;
-          }
---- 398,404 ----
-              if (imp_sth->retval == SQLITE_ROW) {
-                  continue;
-              }
-!             sqlite3_reset(imp_sth->stmt);
-              sqlite_error(sth, (imp_xxh_t*)imp_sth, imp_sth->retval, (char*)sqlite3_errmsg(imp_dbh->db));
-              return -5;
-          }
-***************
-*** 418,425 ****
-          case SQLITE_DONE: DBIc_ACTIVE_on(imp_sth);
-                            sqlite_trace(5, "exec ok - %d rows, %d cols\n", imp_sth->nrow, DBIc_NUM_FIELDS(imp_sth));
-                            return 0;
-!                           /* There are bug reports that say this should be sqlite3_reset() */
-!         default:          sqlite3_finalize(imp_sth->stmt);
-                            sqlite_error(sth, (imp_xxh_t*)imp_sth, imp_sth->retval, (char*)sqlite3_errmsg(imp_dbh->db));
-                            return -6;
-      }
---- 417,423 ----
-          case SQLITE_DONE: DBIc_ACTIVE_on(imp_sth);
-                            sqlite_trace(5, "exec ok - %d rows, %d cols\n", imp_sth->nrow, DBIc_NUM_FIELDS(imp_sth));
-                            return 0;
-!         default:          sqlite3_reset(imp_sth->stmt);
-                            sqlite_error(sth, (imp_xxh_t*)imp_sth, imp_sth->retval, (char*)sqlite3_errmsg(imp_dbh->db));
-                            return -6;
-      }
-Only in DBD-SQLite-1.14/: dbdimp.c~
diff --git a/pkgs/development/perl-modules/generic/default.nix b/pkgs/development/perl-modules/generic/default.nix
index 77d881b2eb0e..91b0500eeaaa 100644
--- a/pkgs/development/perl-modules/generic/default.nix
+++ b/pkgs/development/perl-modules/generic/default.nix
@@ -5,7 +5,16 @@ attrs:
 perl.stdenv.mkDerivation (
   {
     doCheck = true;
+    
     checkTarget = "test";
+    
+    # Prevent CPAN downloads.
+    PERL_AUTOINSTALL = "--skipdeps";
+
+    # From http://wiki.cpantesters.org/wiki/CPANAuthorNotes: "allows
+    # authors to skip certain tests (or include certain tests) when
+    # the results are not being monitored by a human being."
+    AUTOMATED_TESTING = true;
   }
   //
   attrs
diff --git a/pkgs/development/tools/build-managers/scons/default.nix b/pkgs/development/tools/build-managers/scons/default.nix
index 82d675acb327..bc941ef102aa 100644
--- a/pkgs/development/tools/build-managers/scons/default.nix
+++ b/pkgs/development/tools/build-managers/scons/default.nix
@@ -1,8 +1,18 @@
 {stdenv, fetchurl, python, makeWrapper}:
 
 stdenv.mkDerivation rec {
-  name = "scons-${version}";
-  version = "1.0.0";
+  version = "1.2.0";
+  name = "scons-" + version;
+
+  src = fetchurl {
+    url = "mirror://sourceforge/scons/${name}.tar.gz";
+    sha256 = "2806451e02a42789decb6d08098b798b6b81a0a39d8d3b2fbdd3fe84ebd8a246";
+  };
+
+  propagatedBuildInputs = [python makeWrapper];
+  buildPhase = "python setup.py install --prefix=$out --install-lib=$(toPythonPath $out) --hardlink-scons -O1";
+  installPhase = "for n in $out/bin/*; do wrapProgram $n --set PYTHONPATH \"$(toPythonPath $out):$PYTHONPATH:\$PYTHONPATH\"; done";
+
   meta = {
     homepage = "http://scons.org/";
     description = "An improved, cross-platform substitute for Make";
@@ -15,15 +25,4 @@ stdenv.mkDerivation rec {
        software.
     '';
   };
-  src = fetchurl {
-    url = "mirror://sourceforge/scons/scons-${version}.tar.gz";
-    sha256 = "13nyy7n0iddr91r136fj15brni8r5f3j6cx57w5aqfvmnb0lv51x";
-  };
-  propagatedBuildInputs = [python makeWrapper];
-  buildPhase = "true";
-  installPhase =
-  ''
-     python setup.py install --prefix=$out --install-lib=$(toPythonPath $out) --hardlink-scons -O1
-     for n in $out/bin/*; do wrapProgram $n --set PYTHONPATH "$(toPythonPath $out):$PYTHONPATH:\$PYTHONPATH"; done
-  '';
 }
diff --git a/pkgs/lib/default.nix b/pkgs/lib/default.nix
index de5c04811c08..f3682f9f365e 100644
--- a/pkgs/lib/default.nix
+++ b/pkgs/lib/default.nix
@@ -11,9 +11,12 @@ let
   meta = import ./meta.nix;
   debug = import ./debug.nix;
   misc = import ./misc.nix;
+  maintainers = import ./maintainers.nix;
 
 in
-  { inherit trivial lists strings stringsWithDeps attrsets sources options types meta debug; }
+  { inherit trivial lists strings stringsWithDeps attrsets sources options
+      types meta debug maintainers;
+  }
   # !!! don't include everything at top-level; perhaps only the most
   # commonly used functions.
   // trivial // lists // strings // stringsWithDeps // attrsets // sources
diff --git a/pkgs/lib/maintainers.nix b/pkgs/lib/maintainers.nix
new file mode 100644
index 000000000000..037097268ed7
--- /dev/null
+++ b/pkgs/lib/maintainers.nix
@@ -0,0 +1,9 @@
+/* -*- coding: utf-8; -*- */
+
+{
+
+  /* Add your name and email address here.  Keep the list
+     alphabetically sorted.  */
+
+  ludo = "Ludovic Courtès <ludo@gnu.org>";
+}
diff --git a/pkgs/lib/trivial.nix b/pkgs/lib/trivial.nix
index a4fbd164fe57..4b99ad8c72c8 100644
--- a/pkgs/lib/trivial.nix
+++ b/pkgs/lib/trivial.nix
@@ -10,7 +10,7 @@ rec {
   concat = x: y: x ++ y;
   or = x: y: x || y;
   and = x: y: x && y;
-  mergeAttrs = x : y : x // y;
+  mergeAttrs = x: y: x // y;
   
   # Take a function and evaluate it with its own returned value.
   fix = f: let result = f result; in result;
diff --git a/pkgs/misc/tex/texlive/default.nix b/pkgs/misc/tex/texlive/default.nix
index 38934facf45c..5c7a5df166fd 100644
--- a/pkgs/misc/tex/texlive/default.nix
+++ b/pkgs/misc/tex/texlive/default.nix
@@ -76,7 +76,6 @@ rec {
   name = "texlive-core-2007";
   meta = {
     description = "A TeX distribution";
-    srcs = [texmfSrc langTexmfSrc];
   };
 }
 
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.27.nix b/pkgs/os-specific/linux/kernel/linux-2.6.27.nix
index ffd065782935..58c8ad1b7a58 100644
--- a/pkgs/os-specific/linux/kernel/linux-2.6.27.nix
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.27.nix
@@ -5,11 +5,11 @@ assert !userModeLinux;
 import ./generic.nix (
 
   rec {
-    version = "2.6.27.25";
+    version = "2.6.27.26";
   
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "1a23513dkv127ql8f14i28p404cyyyfh581m4lvnj6biy38m2k8a";
+      sha256 = "0gmj5219yha41kb02yrllc313x21gjir50lw9dlsc174hsj56vpc";
     };
 
     features = {
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.29.nix b/pkgs/os-specific/linux/kernel/linux-2.6.29.nix
index b77761ab5561..f9a55dd1f2c5 100644
--- a/pkgs/os-specific/linux/kernel/linux-2.6.29.nix
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.29.nix
@@ -5,11 +5,11 @@ assert !userModeLinux;
 import ./generic.nix (
 
   rec {
-    version = "2.6.29.5";
+    version = "2.6.29.6";
   
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "1i8q37hg1iak15mryzzcb39pqgyxzhmgw368j28apd01qry21ag1";
+      sha256 = "1yf5xhdnpcyhw4y78v35wyidlsyzxvbbnzw6jd31zni7ira6jvjk";
     };
 
     features = {
diff --git a/pkgs/tools/security/gnupg2/default.nix b/pkgs/tools/security/gnupg2/default.nix
index 9bab4b5c7877..b52d8bcf56ab 100644
--- a/pkgs/tools/security/gnupg2/default.nix
+++ b/pkgs/tools/security/gnupg2/default.nix
@@ -5,16 +5,26 @@
 , pth, libgcrypt, libassuan, libksba, libusb, curl }:
 
 stdenv.mkDerivation rec {
-  name = "gnupg-2.0.11";
+  name = "gnupg-2.0.12";
 
   src = fetchurl {
     url = "mirror://gnupg/gnupg/${name}.tar.bz2";
-    sha256 = "0z5lm0zz8l8yn61jbbyy0frrbhsjyvmq8pxwhgjsgx3isj518h4c";
+    sha256 = "1klw3m32s6d81qkslin4pibb2f84yz8l6n6fkwfdxyhrql2f2cwn";
   };
 
   buildInputs = [ readline openldap bzip2 zlib libgpgerror pth libgcrypt
     libassuan libksba libusb curl ];
 
+  patchPhase = ''
+    for file in tests/pkits/*
+    do
+      if [ -f "$file" ]
+      then
+          sed -i "$file" -es'|/bin/pwd|pwd|g'
+      fi
+    done
+  '';
+
   doCheck = true;
 
   meta = {
@@ -35,5 +45,7 @@ stdenv.mkDerivation rec {
     homepage = http://gnupg.org/;
 
     license = "GPLv3+";
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 04447b997f01..9801a94ddb91 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2196,7 +2196,7 @@ let
   };
 
   maude = import ../development/interpreters/maude {
-    inherit fetchurl stdenv flex bison ncurses buddy tecla gmp libsigsegv makeWrapper;
+    inherit fetchurl stdenv flex bison ncurses buddy tecla gmpxx libsigsegv makeWrapper;
   };
 
   octave = import ../development/interpreters/octave {
@@ -2296,9 +2296,15 @@ let
     inherit clisp stdenv fetchurl builderDefs unzip;
   };
 
-  ruby = import ../development/interpreters/ruby {
-    inherit fetchurl stdenv readline ncurses zlib lib openssl;
+  ruby18 = import ../development/interpreters/ruby {
+    inherit fetchurl stdenv readline ncurses zlib lib openssl makeOverridable;
   };
+  ruby19 = import ../development/interpreters/ruby/ruby-19.nix { inherit ruby18 fetchurl; };
+  ruby = ruby18;
+
+  rubyLibs = recurseIntoAttrs (import ../development/interpreters/ruby/libs.nix {
+    inherit pkgs stdenv;
+  });
 
   rake = import ../development/ruby-modules/rake {
     inherit fetchurl stdenv ruby ;
@@ -2314,9 +2320,10 @@ let
     withBioconductor = getConfig ["rLang" "withBioconductor"] false;
   };
 
-  rubygems = builderDefsPackage (import ../development/interpreters/ruby/gems.nix) {
+  rubygemsFun = ruby: builderDefsPackage (import ../development/interpreters/ruby/gems.nix) {
     inherit ruby makeWrapper;
   };
+  rubygems = rubygemsFun ruby;
 
   rq = import ../applications/networking/cluster/rq {
     inherit fetchurl stdenv sqlite ruby ;
@@ -2885,7 +2892,7 @@ let
   };
 
   buddy = import ../development/libraries/buddy {
-    inherit fetchurl stdenv;
+    inherit fetchurl stdenv bison;
   };
 
   cairo = import ../development/libraries/cairo {
@@ -3211,6 +3218,11 @@ let
     cxx = false;
   };
 
+  gmpxx = import ../development/libraries/gmp {
+    inherit fetchurl stdenv m4;
+    cxx = true;
+  };
+
   goocanvas = import ../development/libraries/goocanvas {
     inherit fetchurl stdenv pkgconfig cairo;
     inherit (gnome) gtk glib;
@@ -3833,11 +3845,6 @@ let
     unicode = (system != "i686-cygwin");
   };
 
-  ncursesDiet = import ../development/libraries/ncurses-diet {
-    inherit fetchurl;
-    stdenv = useDietLibC stdenv;
-  };
-
   neon = neon026;
 
   neon026 = import ../development/libraries/neon/0.26.nix {
@@ -3856,6 +3863,10 @@ let
     inherit ncurses flex bison;
   };
 
+  nettle = import ../development/libraries/nettle {
+    inherit fetchurl stdenv;
+  };
+
   nss = import ../development/libraries/nss {
     inherit fetchurl stdenv perl zip;
   };
@@ -6239,7 +6250,7 @@ let
 
   firefoxWrapper = firefox3Wrapper;
 
-  firefox2 = lowPrio (import ../applications/networking/browsers/firefox-2 {
+  firefox2 = lowPrio (import ../applications/networking/browsers/firefox/2.0.nix {
     inherit fetchurl stdenv pkgconfig perl zip libjpeg libpng zlib cairo;
     inherit (gtkLibs) gtk;
     inherit (gnome) libIDL;
@@ -6249,7 +6260,7 @@ let
 
   firefox2Wrapper = wrapFirefox firefox2 "firefox" "";
 
-  firefox3 = lowPrio (import ../applications/networking/browsers/firefox-3 {
+  firefox3 = lowPrio (import ../applications/networking/browsers/firefox/3.0.nix {
     inherit fetchurl stdenv pkgconfig perl zip libjpeg zlib cairo
       python dbus dbus_glib freetype fontconfig bzip2;
     inherit (gtkLibs) gtk pango;
@@ -6258,36 +6269,15 @@ let
     xulrunner = xulrunner3;
   });
 
-  xulrunner3 = lowPrio (import ../applications/networking/browsers/firefox-3/xulrunner.nix {
-    inherit fetchurl stdenv pkgconfig perl zip libjpeg libpng zlib cairo
-      python dbus dbus_glib freetype fontconfig bzip2 xlibs file;
-    inherit (gtkLibs) gtk pango;
-    inherit (gnome) libIDL;
-    #enableOfficialBranding = true;
-  });
-
-  firefox3_1 = lowPrio (import ../applications/networking/browsers/firefox-3/3.1.nix {
-    inherit fetchurl stdenv pkgconfig perl zip libjpeg zlib cairo
-      python dbus dbus_glib freetype fontconfig bzip2;
-    inherit (gtkLibs) gtk pango;
-    inherit (gnome) libIDL;
-    inherit alsaLib;
-    #enableOfficialBranding = true;
-    xulrunner = xulrunner3_1;
-    autoconf = autoconf213;
-  });
-
-  xulrunner3_1 = lowPrio (import ../applications/networking/browsers/firefox-3/xulrunner-3.1.nix {
+  xulrunner3 = lowPrio (import ../applications/networking/browsers/firefox/xulrunner.nix {
     inherit fetchurl stdenv pkgconfig perl zip libjpeg libpng zlib cairo
       python dbus dbus_glib freetype fontconfig bzip2 xlibs file;
     inherit (gtkLibs) gtk pango;
     inherit (gnome) libIDL;
-    inherit alsaLib;
-    autoconf = autoconf213;
     #enableOfficialBranding = true;
   });
 
-  firefox3_5 = lowPrio (import ../applications/networking/browsers/firefox-3/3.5.nix {
+  firefox3_5 = lowPrio (import ../applications/networking/browsers/firefox/3.5.nix {
     inherit fetchurl stdenv pkgconfig perl zip libjpeg zlib cairo
       python dbus dbus_glib freetype fontconfig bzip2;
     inherit (gtkLibs) gtk pango;
@@ -6298,7 +6288,7 @@ let
     autoconf = autoconf213;
   });
 
-  xulrunner3_5 = lowPrio (import ../applications/networking/browsers/firefox-3/xulrunner-3.5.nix {
+  xulrunner3_5 = lowPrio (import ../applications/networking/browsers/firefox/xulrunner-3.5.nix {
     inherit fetchurl stdenv pkgconfig perl zip libjpeg libpng zlib cairo
       python dbus dbus_glib freetype fontconfig bzip2 xlibs file;
     inherit (gtkLibs) gtk pango;
@@ -6308,7 +6298,7 @@ let
     #enableOfficialBranding = true;
   });
 
-  firefox3b1Bin = lowPrio (import ../applications/networking/browsers/firefox-3/binary.nix {
+  firefox3b1Bin = lowPrio (import ../applications/networking/browsers/firefox/binary.nix {
     inherit fetchurl stdenv pkgconfig perl zip libjpeg libpng zlib cairo
       python curl coreutils freetype fontconfig;
     inherit (gtkLibs) gtk atk pango glib;
@@ -6361,7 +6351,7 @@ let
       python pygtk gettext xlibs intltool babl gegl;
     inherit (gnome) gtk libgtkhtml libart_lgpl;
   };
-  # gimpPlugins = import ../applications/graphics/gimp/plugins { inherit pkgs gimp; };
+  gimpPlugins = import ../applications/graphics/gimp/plugins { inherit pkgs gimp; };
 
   gitAndTools = recurseIntoAttrs (import ../applications/version-management/git-and-tools {
     inherit pkgs;
@@ -6730,12 +6720,6 @@ let
     inherit fetchurl stdenv ncurses gettext;
   };
 
-  nanoDiet = lowPrio (appendToName "diet" (import ../applications/editors/nano {
-    inherit fetchurl gettext;
-    ncurses = ncursesDiet;
-    stdenv = useDietLibC stdenv;
-  }));
-
   nedit = import ../applications/editors/nedit {
     inherit fetchurl stdenv x11;
     inherit (xlibs) libXpm;
@@ -6901,7 +6885,7 @@ let
 
   # = urxvt
   rxvt_unicode = import ../applications/misc/rxvt_unicode {
-    inherit lib fetchurl stdenv perl;
+    inherit lib fetchurl stdenv perl ncurses;
     inherit (xlibs) libXt libX11 libXft;
   };
 
@@ -7119,12 +7103,6 @@ let
     inherit fetchurl stdenv ncurses lib;
   };
 
-  vimDiet = lowPrio (appendToName "diet" (import ../applications/editors/vim-diet {
-    inherit fetchurl;
-    ncurses = ncursesDiet;
-    stdenv = useDietLibC stdenv;
-  }));
-
   vimHugeX = import ../applications/editors/vim {
     inherit fetchurl stdenv lib ncurses pkgconfig
       perl python tcl;
@@ -7193,7 +7171,7 @@ let
     inherit stdenv fetchurl tcl tk x11 makeWrapper;
   };
 
-  wrapFirefox = browser: browserName: nameSuffix: import ../applications/networking/browsers/firefox-wrapper {
+  wrapFirefox = browser: browserName: nameSuffix: import ../applications/networking/browsers/firefox/wrapper.nix {
     inherit stdenv nameSuffix makeWrapper makeDesktopItem browser browserName;
     plugins =
       let enableAdobeFlash = getConfig [ browserName "enableAdobeFlash" ] true;
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index a8e56436e443..be2955617f8b 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -29,6 +29,15 @@ rec {
     buildInputs = [pkgs.unzip];
   };
 
+  AnyMoose = buildPerlPackage rec {
+    name = "Any-Moose-0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SA/SARTAK/${name}.tar.gz";
+      sha256 = "1kgksln1vykh0xynawv3pc3nw1yp7kjwbxbb5lh2hm21a4l4h61x";
+    };
+    propagatedBuildInputs = [Mouse];
+  };
+
   AppCLI = buildPerlPackage {
     name = "App-CLI-0.07";
     src = fetchurl {
@@ -62,11 +71,29 @@ rec {
     };
   };
 
+  Autobox = buildPerlPackage rec {
+    name = "autobox-2.55";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHOCOLATE/${name}.tar.gz";
+      sha256 = "1kfn8zqbv9rjri39hh0xvqx74h35iwhix7w6ncajw06br8m9pizh";
+    };
+    propagatedBuildInputs = [ScopeGuard];
+  };
+
   BerkeleyDB = import ../development/perl-modules/BerkeleyDB {
     inherit buildPerlPackage fetchurl;
     inherit (pkgs) db4;
   };
 
+  BHooksEndOfScope = buildPerlPackage rec {
+    name = "B-Hooks-EndOfScope-0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
+      sha256 = "07gbfc36qr8pfwrcskq3bbpwscmi7nkvvw54vz5d9ym1fyn3zf0g";
+    };
+    propagatedBuildInputs = [SubExporter VariableMagic];
+  };
+
   BitVector = buildPerlPackage {
     name = "Bit-Vector-6.4";
     src = fetchurl {
@@ -130,10 +157,10 @@ rec {
   };
 
   CatalystActionRenderView = buildPerlPackage rec {
-    name = "Catalyst-Action-RenderView-0.09";
+    name = "Catalyst-Action-RenderView-0.11";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MR/MRAMBERG/${name}.tar.gz";
-      sha256 = "06bxbdfjgnwp8zz4mqq2x7n5ng02h94m27l610icsps7r9iwi8f9";
+      url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
+      sha256 = "1qmjygjb5rzfanvw75czambfk4xmp1bc225mshzc6sddn7fc226s";
     };
     propagatedBuildInputs = [CatalystRuntime HTTPRequestAsCGI DataVisitor];
   };
@@ -174,24 +201,25 @@ rec {
   };
 
   CatalystDevel = buildPerlPackage rec {
-    name = "Catalyst-Devel-1.10";
+    name = "Catalyst-Devel-1.19";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MR/MRAMBERG/${name}.tar.gz";
-      sha256 = "19ylkx55gaq9xxxcl4a55284in7hdrr2sb6lqz64daq3xp29n73h";
+      url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
+      sha256 = "1m6wrdlzdns0mg9hk8dnrz4lk2b382cp9ngss1ya562fg92yvpkv";
     };
     propagatedBuildInputs = [
       CatalystRuntime CatalystActionRenderView
-      CatalystPluginStaticSimple CatalystPluginConfigLoader
-      PathClass TemplateToolkit ClassAccessor
-      ConfigGeneral FileCopyRecursive Parent
+      CatalystPluginStaticSimple CatalystPluginConfigLoader PathClass
+      TemplateToolkit ClassAccessor ConfigGeneral FileCopyRecursive
+      Parent FileChangeNotify
     ];
+    CATALYST_DEVEL_NO_510_CHECK = 1; # bug in Perl 5.10.0
   };
 
   CatalystEngineHTTPPrefork = buildPerlPackage rec {
-    name = "Catalyst-Engine-HTTP-Prefork-0.50";
+    name = "Catalyst-Engine-HTTP-Prefork-0.51";
     src = fetchurl {
       url = "mirror://cpan/authors/id/A/AG/AGRUNDMA/${name}.tar.gz";
-      sha256 = "1p8mnxqaxd6sxyy9q4f0h5gy4mcnvb3y93y49ziq6kmcvy6yw2p7";
+      sha256 = "1ygmrzc9akjaqfxid8br11ajj9qgfvhkimakcv4ffk4s5v7q2sii";
     };
     propagatedBuildInputs = [
       CatalystRuntime HTTPBody NetServer
@@ -206,32 +234,32 @@ rec {
   };
 
   CatalystManual = buildPerlPackage rec {
-    name = "Catalyst-Manual-5.7016";
+    name = "Catalyst-Manual-5.8000";
     src = fetchurl {
       url = "mirror://cpan/authors/id/H/HK/HKCLARK/${name}.tar.gz";
-      sha256 = "0axin80dca3xb0n7frn9w8lj43l7dykpwrf7jj44n1v1kyzw813f";
+      sha256 = "0ay4gcprwqw4h5vsk8g0n9ir51sq7n5i2rdahgqdlb8caj4fshz5";
     };
     buildInputs = [TestPod TestPodCoverage];
   };
 
-  CatalystModelDBICSchema = buildPerlPackage {
-    name = "Catalyst-Model-DBIC-Schema-0.23";
+  CatalystModelDBICSchema = buildPerlPackage rec {
+    name = "Catalyst-Model-DBIC-Schema-0.25";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/MS/MSTROUT/Catalyst-Model-DBIC-Schema-0.23.tar.gz;
-      sha256 = "1rzs4czrwr8pnrj0mvfpzc8i2cbw95rx2xirw9bhqs77z2722ym4";
+      url = "mirror://cpan/authors/id/M/MS/MSTROUT/${name}.tar.gz";
+      sha256 = "1y10zxc3wqyj7xavylbrnbixqg3h1p5i43qsrin2la7har5k20lg";
     };
     propagatedBuildInputs = [
-      CatalystRuntime CatalystDevel DBIxClass
-      UNIVERSALrequire ClassDataAccessor
-      DBIxClassSchemaLoader
+      CatalystRuntime CatalystDevel DBIxClass UNIVERSALrequire
+      ClassDataAccessor DBIxClassSchemaLoader CatalystXComponentTraits
+      TieIxhash
     ];
   };
 
   CatalystRuntime = buildPerlPackage rec{
-    name = "Catalyst-Runtime-5.71001";
+    name = "Catalyst-Runtime-5.80007";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MR/MRAMBERG/${name}.tar.gz";
-      sha256 = "1j3xsh7zi5xd8zdc63r83mwzhjfj30vhd39kgir53mq47v0y07jr";
+      url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
+      sha256 = "166rj6i7h28gmkw95qgbsb2g7qvavvs2mqymxpinhx24af7w4gdx";
     };
     propagatedBuildInputs = [
       LWP ClassAccessor ClassDataInheritable ClassInspector
@@ -239,24 +267,25 @@ rec {
       PathClass TextSimpleTable TreeSimple TreeSimpleVisitorFactory
       SubExporter MROCompat TestMockObject ClassMOP Moose
       NamespaceClean ScopeUpper MooseXEmulateClassAccessorFast
-      ClassC3 ClassC3AdoptNEXT
+      ClassC3 ClassC3AdoptNEXT NamespaceAutoclean MooseXMethodAttributes
+      StringRewritePrefix
     ];
   };
 
   CatalystPluginAuthentication = buildPerlPackage rec {
-    name = "Catalyst-Plugin-Authentication-0.10010";
+    name = "Catalyst-Plugin-Authentication-0.10013";
     src = fetchurl {
       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/${name}.tar.gz";
-      sha256 = "1jjdmyccsq0k8ysl9ppm7rddf6w4l2yhwjr60c0x4lp5iafzmf4z";
+      sha256 = "1hbk8vi3v8jkrpg9w9dy2142j7qlvdk0b2mahwinahs9g56ajdqk";
     };
     propagatedBuildInputs = [CatalystRuntime CatalystPluginSession];
   };
 
-  CatalystPluginAuthorizationACL = buildPerlPackage {
-    name = "Catalyst-Plugin-Authorization-ACL-0.10";
+  CatalystPluginAuthorizationACL = buildPerlPackage rec {
+    name = "Catalyst-Plugin-Authorization-ACL-0.11";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RK/RKITOVER/Catalyst-Plugin-Authorization-ACL-0.10.tar.gz;
-      sha256 = "1y9pj0scpc4nd7m1xqy7yvjsffhfadzl0z5r4jjv2srndcv4xj1p";
+      url = "mirror://cpan/authors/id/R/RK/RKITOVER/${name}.tar.gz";
+      sha256 = "1glil82irw9179dgc6j41p765d7shp915f7bdg89x7b5wacz27v5";
     };
     propagatedBuildInputs = [CatalystRuntime ClassThrowable];
   };
@@ -274,10 +303,10 @@ rec {
   };
 
   CatalystPluginConfigLoader = buildPerlPackage rec {
-    name = "Catalyst-Plugin-ConfigLoader-0.22";
+    name = "Catalyst-Plugin-ConfigLoader-0.24";
     src = fetchurl {
       url = "mirror://cpan/authors/id/B/BR/BRICAS/${name}.tar.gz";
-      sha256 = "13ir2l0pvjn4myp7wfh2bxcdd4hp0b3ln28mz1kvlshhxl032lqn";
+      sha256 = "08h72b9hndvfp9m8mpn21m5yiw77wzxvwf2vx6d0i9zbb83k3fk8";
     };
     propagatedBuildInputs = [CatalystRuntime DataVisitor ConfigAny MROCompat];
   };
@@ -292,10 +321,10 @@ rec {
   };
 
   CatalystPluginSession = buildPerlPackage rec {
-    name = "Catalyst-Plugin-Session-0.20";
+    name = "Catalyst-Plugin-Session-0.24";
     src = fetchurl {
       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/${name}.tar.gz";
-      sha256 = "1p72hf68qi038gayhsxbbx3l3hg7b1njjii510alxqyw3a10y9sj";
+      sha256 = "1n3qx5p6yycgg59drjicmjnclggj72jjbyqv6xy3q9y8ywq9sif9";
     };
     propagatedBuildInputs = [
       CatalystRuntime TestMockObject ObjectSignature
@@ -304,10 +333,10 @@ rec {
   };
 
   CatalystPluginSessionStateCookie = buildPerlPackage rec {
-    name = "Catalyst-Plugin-Session-State-Cookie-0.10";
+    name = "Catalyst-Plugin-Session-State-Cookie-0.11";
     src = fetchurl {
       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/${name}.tar.gz";
-      sha256 = "1630shg23cpk6v26fwf7xr53ml1s6l2mgirxw524nmciliczgldj";
+      sha256 = "1gfx1chann2m12yg0rn981aksaj0gsjwasjcrhqajn7yplyb06bn";
     };
     propagatedBuildInputs = [
       CatalystRuntime CatalystPluginSession TestMockObject
@@ -325,19 +354,19 @@ rec {
     ];
   };
 
-  CatalystPluginStackTrace = buildPerlPackage {
-    name = "Catalyst-Plugin-StackTrace-0.09";
+  CatalystPluginStackTrace = buildPerlPackage rec {
+    name = "Catalyst-Plugin-StackTrace-0.10";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/MS/MSTROUT/Catalyst-Plugin-StackTrace-0.09.tar.gz;
+      url = "mirror://cpan/authors/id/M/MS/MSTROUT/${name}.tar.gz";
       sha256 = "1pywxjhvn5zmcpnxj9ba77pz1jxq4d037yd43y0ks9sc31p01ydh";
     };
     propagatedBuildInputs = [CatalystRuntime DevelStackTrace];
   };
 
-  CatalystPluginStaticSimple = buildPerlPackage {
-    name = "Catalyst-Plugin-Static-Simple-0.20";
+  CatalystPluginStaticSimple = buildPerlPackage rec {
+    name = "Catalyst-Plugin-Static-Simple-0.21";
     src = fetchurl {
-      url = mirror://cpan/authors/id/A/AG/AGRUNDMA/Catalyst-Plugin-Static-Simple-0.20.tar.gz;
+      url = "mirror://cpan/authors/id/A/AG/AGRUNDMA/${name}.tar.gz";
       sha256 = "1qpicgfha81ykxzg4kjll2qw8b1rwzdgvj4s3q9s20zl86gmfr3p";
     };
     propagatedBuildInputs = [CatalystRuntime MIMETypes];
@@ -356,10 +385,10 @@ rec {
   };
 
   CatalystViewTT = buildPerlPackage rec {
-    name = "Catalyst-View-TT-0.28";
+    name = "Catalyst-View-TT-0.29";
     src = fetchurl {
       url = "mirror://cpan/authors/id/M/MR/MRAMBERG/${name}.tar.gz";
-      sha256 = "18chdzgv0fvq65kfp8am2f5cayxpzg355q7jin4xlzygbgh2a5vg";
+      sha256 = "11j78szkdnlx43ph94rmpyphvmwvxv5w75c9dkvpmsvc7l3xby84";
     };
     propagatedBuildInputs = [
       CatalystRuntime TemplateToolkit ClassAccessor
@@ -367,6 +396,17 @@ rec {
     ];
   };
 
+  CatalystXComponentTraits = buildPerlPackage rec {
+    name = "CatalystX-Component-Traits-0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RK/RKITOVER/${name}.tar.gz";
+      sha256 = "1xsy3i2019rl0mdpzs375al8ckb07s5pzg2h3nv3s4xn4qnn4vnk";
+    };
+    propagatedBuildInputs = [
+      CatalystRuntime NamespaceAutoclean ListMoreUtils MooseXTraitsPluggable
+    ];
+  };
+
   CGICookieXS = buildPerlPackage rec {
     name = "CGI-Cookie-XS-0.16";
     src = fetchurl {
@@ -443,10 +483,10 @@ rec {
   };
 
   ClassC3Componentised = buildPerlPackage rec {
-    name = "Class-C3-Componentised-1.0004";
+    name = "Class-C3-Componentised-1.0005";
     src = fetchurl {
       url = "mirror://cpan/authors/id/A/AS/ASH/${name}.tar.gz";
-      sha256 = "0xql73jkcdbq4q9m0b0rnca6nrlvf5hyzy8is0crdk65bynvs8q1";
+      sha256 = "1ka8af8wxypgfkys6dkcp0rh87kx5rsgfm9k582smrjjs0b8zmvv";
     };
     propagatedBuildInputs = [
       ClassC3 ClassInspector TestException MROCompat
@@ -477,19 +517,19 @@ rec {
     };
   };
 
-  ClassInspector = buildPerlPackage {
-    name = "Class-Inspector-1.23";
+  ClassInspector = buildPerlPackage rec {
+    name = "Class-Inspector-1.24";
     src = fetchurl {
-      url = mirror://cpan/authors/id/A/AD/ADAMK/Class-Inspector-1.23.tar.gz;
-      sha256 = "0d15b5wls14gqcd6v2k4kbc0v0a1qfb794h49wfc4vwjk5gnpbw1";
+      url = "mirror://cpan/authors/id/A/AD/ADAMK/${name}.tar.gz";
+      sha256 = "0rhsn73g516knx5djqzlgygjk8ij6xxjkm1sim0facvd4z0wlw0a";
     };
   };
 
   ClassMOP = buildPerlPackage rec {
-    name = "Class-MOP-0.80";
+    name = "Class-MOP-0.88";
     src = fetchurl {
       url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "1fmimzzbfkw7vrr57p8xa3y9v55i72bknix2qk3cdrn0jmg6h648";
+      sha256 = "00y5hl2sx1w0i1gl0cxj8x6k6xi8wagr0gwn388n1d0pv10mw12z";
     };
     propagatedBuildInputs = [
       MROCompat TaskWeaken TestException SubName SubIdentify
@@ -522,6 +562,14 @@ rec {
     propagatedBuildInputs = [ClassInspector];
   };
 
+  Clone = buildPerlPackage rec {
+    name = "Clone-0.31";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RD/RDF/${name}.tar.gz";
+      sha256 = "0fazl71hrc0r56gnc7vzwz9283p7h62gc8wsna7zgyfvrajjnhwl";
+    };
+  };
+  
   CompressRawBzip2 = import ../development/perl-modules/Compress-Raw-Bzip2 {
     inherit fetchurl buildPerlPackage;
     inherit (pkgs) bzip2;
@@ -551,11 +599,11 @@ rec {
     };
   };
 
-  ConfigGeneral = buildPerlPackage {
-    name = "Config-General-2.40";
+  ConfigGeneral = buildPerlPackage rec {
+    name = "Config-General-2.42";
     src = fetchurl {
-      url = mirror://cpan/authors/id/T/TL/TLINDEN/Config-General-2.40.tar.gz;
-      sha256 = "0wf6dpaanaiy0490dlgs3pi3xvvijs237x9izb00cnzggxcfmsnz";
+      url = "mirror://cpan/authors/id/T/TL/TLINDEN/${name}.tar.gz";
+      sha256 = "0r7qj4nhmflcda2r72yysl93ziwzc1qjnjfzi7ifd4fxh53zjy59";
     };
   };
 
@@ -647,15 +695,15 @@ rec {
     propagatedBuildInputs = [TestException ClassAccessorChained];
   };
 
-  DataVisitor = buildPerlPackage {
-    name = "Data-Visitor-0.21";
+  DataVisitor = buildPerlPackage rec {
+    name = "Data-Visitor-0.25";
     src = fetchurl {
-      url = mirror://cpan/authors/id/N/NU/NUFFIN/Data-Visitor-0.21.tar.gz;
-      sha256 = "10cjh3rrqi4gwrmkpzilzmaqdrh71wr59035s6b4p2dzd117p931";
+      url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
+      sha256 = "11i1svvj57m31w8gh6qp7mvkiff9036qwfljm4hpbyh7f83clzq9";
     };
     propagatedBuildInputs = [
-      TestMockObject Mouse TaskWeaken TestUseOk TieToObject
-      NamespaceClean
+      TestMockObject TaskWeaken TestUseOk TieToObject
+      NamespaceClean AnyMoose
     ];
   };
 
@@ -754,19 +802,19 @@ rec {
     inherit (pkgs) db4;
   };
 
-  DBI = buildPerlPackage {
-    name = "DBI-1.607";
+  DBI = buildPerlPackage rec {
+    name = "DBI-1.609";
     src = fetchurl {
-      url = mirror://cpan/authors/id/T/TI/TIMB/DBI-1.607.tar.gz;
-      sha256 = "053ysk2a4njhzq5p59v5s6jzyi0yqr8l6wkswbvy4fyil3ka343h";
+      url = "mirror://cpan/authors/id/T/TI/TIMB/${name}.tar.gz";
+      sha256 = "0hfnd8i696x01a52v6vx97bdwaymai7m0gyr2w64lrsyws7ni6wv";
     };
   };
 
   DBIxClass = buildPerlPackage rec {
-    name = "DBIx-Class-0.08099_08";
+    name = "DBIx-Class-0.08107";
     src = fetchurl {
       url = "mirror://cpan/authors/id/R/RI/RIBASUSHI/${name}.tar.gz";
-      sha256 = "12kn3jylxi7n2c6ccqyrjaxxmk3lajvjv19j6rlifp4crn24cbpy";
+      sha256 = "08lnxd09ak9pmcj0ivyk3ric2z6hr2q5vlnlbabihdx3nnrafv4z";
     };
     propagatedBuildInputs = [
       TestNoWarnings TestException DBI ScopeGuard
@@ -915,6 +963,17 @@ rec {
     };
   };
 
+  FileChangeNotify = buildPerlPackage rec {
+    name = "File-ChangeNotify-0.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
+      sha256 = "0qklyrxii0i651gn42csdc0lhcvrwh0m9d316zc7kl75anwl6hly";
+    };
+    propagatedBuildInputs = [
+      ClassMOP Moose MooseXParamsValidate MooseXSemiAffordanceAccessor
+    ];
+  };
+
   Filechdir = buildPerlPackage {
     name = "File-chdir-0.1002";
     src = fetchurl {
@@ -1065,11 +1124,11 @@ rec {
     };
   };
 
-  HTTPRequestAsCGI = buildPerlPackage {
-    name = "HTTP-Request-AsCGI-0.5";
+  HTTPRequestAsCGI = buildPerlPackage rec {
+    name = "HTTP-Request-AsCGI-0.9";
     src = fetchurl {
-      url = mirror://cpan/authors/id/C/CH/CHANSEN/HTTP-Request-AsCGI-0.5.tar.gz;
-      sha256 = "164159iiyk0waqayplchkisxg2ldamx8iifrccx32p344714qcrh";
+      url = "mirror://cpan/authors/id/H/HD/HDP/${name}.tar.gz";
+      sha256 = "1k17bgvscjvr4v96l9vm14mpk4r4b5g9w1gpmwl8qfga3czp6sd4";
     };
     propagatedBuildInputs = [ClassAccessor LWP];
   };
@@ -1153,29 +1212,29 @@ rec {
     doCheck = false; /* attempts a network connection to localhost */
   };
 
-  JSON = buildPerlPackage {
-    name = "JSON-2.12";
+  JSON = buildPerlPackage rec {
+    name = "JSON-2.15";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/MA/MAKAMAKA/JSON-2.12.tar.gz;
-      sha256 = "0qbxfwvfsx8s50h2dzpb0z7qi22k9ghygfzbfk8v08kkpmrkls47";
+      url = "mirror://cpan/authors/id/M/MA/MAKAMAKA/${name}.tar.gz";
+      sha256 = "0dijqv5b6gnkmdnysx23229kvfg6mwvrxyjrvzn2j9r4m2hmsgvn";
     };
     propagatedBuildInputs = [JSONXS];
   };
 
-  JSONAny = buildPerlPackage {
-    name = "JSON-Any-1.17";
+  JSONAny = buildPerlPackage rec {
+    name = "JSON-Any-1.19";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RB/RBERJON/JSON-Any-1.17.tar.gz;
-      sha256 = "07y6zb0vzb4c87k2lflxafb69zc4a29bxhzh6xdcpjhplf4vbifb";
+      url = "mirror://cpan/authors/id/P/PE/PERIGRIN/${name}.tar.gz";
+      sha256 = "16h2p2qcbh0a6wfr5lfspilmjmpdnkn1rrkqw34v8xq1a77fl870";
     };
     propagatedBuildInputs = [JSON];
   };
 
-  JSONXS = buildPerlPackage {
-    name = "JSON-XS-2.23";
+  JSONXS = buildPerlPackage rec {
+    name = "JSON-XS-2.24";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/ML/MLEHMANN/JSON-XS-2.23.tar.gz;
-      sha256 = "0yd1j5d9b0ymfzfaxyi9zgca3vqwjb3dl8pg14m1qwsx3pidd5j7";
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/${name}.tar.gz";
+      sha256 = "0ir0v87w2fwalcwi2fd49mqzjna7cixn3ri0ai6ysdwnsdvbhyny";
     };
   };
 
@@ -1274,11 +1333,11 @@ rec {
     propagatedBuildInputs = [TimeDate TestPod];
   };
 
-  MIMETypes = buildPerlPackage {
-    name = "MIME-Types-1.24";
+  MIMETypes = buildPerlPackage rec {
+    name = "MIME-Types-1.27";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/MA/MARKOV/MIME-Types-1.24.tar.gz;
-      sha256 = "1j89kjv9lipv6r3bq6dp0k9b8y1f8z9vrmhi7b8h7cs1yc8g7qz9";
+      url = "mirror://cpan/authors/id/M/MA/MARKOV/${name}.tar.gz";
+      sha256 = "1zhzyb85zbil2jwrh74rg3bnm9wl74fcg2s64y8b57bk04fdfb7l";
     };
     propagatedBuildInputs = [TestPod];
   };
@@ -1301,10 +1360,10 @@ rec {
   };
 
   Moose = buildPerlPackage rec {
-    name = "Moose-0.73";
+    name = "Moose-0.85";
     src = fetchurl {
       url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "1h1d551fbrsbr0knvcah4jyg999667ykhgbldl5rv4h7kdzsqsvz";
+      sha256 = "1fim2kg6hcawbhn26sm1dq0q8ikmq0qwngd3wys7h0n9vs5hqdkb";
     };
     propagatedBuildInputs = [
       TestMore TestException TaskWeaken ListMoreUtils
@@ -1312,21 +1371,91 @@ rec {
     ];
   };
 
+  MooseAutobox = buildPerlPackage rec {
+    name = "Moose-Autobox-0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/${name}.tar.gz";
+      sha256 = "12wsm576mc5sdqc1bhim9iazdx4fy336gz10zwwalygri3arlvgh";
+    };
+    propagatedBuildInputs = [Moose TestException Autobox Perl6Junction];
+  };
+
   MooseXEmulateClassAccessorFast = buildPerlPackage rec {
-    name = "MooseX-Emulate-Class-Accessor-Fast-0.00800";
+    name = "MooseX-Emulate-Class-Accessor-Fast-0.00900";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/G/GR/GRODITI/${name}.tar.gz";
-      sha256 = "1z2sld2sw1mlwxwzxxanik3086cw14rdsx2wwnzrfy7prsnigcl2";
+      url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
+      sha256 = "1sxkhyi44h30ba5ca7fmjpwc2pjwqm2n7ll67dn02dzgh68zaha7";
     };
     propagatedBuildInputs = [Moose NamespaceClean];
   };
 
-  Mouse = buildPerlPackage {
-    name = "Mouse-0.09";
+  MooseXMethodAttributes = buildPerlPackage rec {
+    name = "MooseX-MethodAttributes-0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/${name}.tar.gz";
+      sha256 = "0ddlvx6g3s1aniixwwcn2f4czd4s14prb8dmdmqd58wis0mv2c4g";
+    };
+    propagatedBuildInputs = [Moose MooseXTypes TestException];
+  };
+  
+  MooseXParamsValidate = buildPerlPackage rec {
+    name = "MooseX-Params-Validate-0.10";
     src = fetchurl {
-      url = mirror://cpan/authors/id/S/SA/SARTAK/Mouse-0.09.tar.gz;
-      sha256 = "1akymbjim6w6i1q8h97izah26ndmcbnl1lwdsw9fa22hnhm0axg0";
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
+      sha256 = "16mjxa72gn41pvrk0fgyi98iw6yc7qafnbzr6v2xfiabp9wf5j5m";
+    };
+    propagatedBuildInputs = [Moose ParamsValidate SubExporter TestException];
+  };
+  
+  MooseXSemiAffordanceAccessor = buildPerlPackage rec {
+    name = "MooseX-SemiAffordanceAccessor-0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
+      sha256 = "073lq5dlwqxbrdzsn5ragjvwgpsfwcdls83n513kscgcq56y7014";
+    };
+    propagatedBuildInputs = [Moose];
+  };
+  
+  MooseXTraits = buildPerlPackage rec {
+    name = "MooseX-Traits-0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
+      sha256 = "1iqp4xyyz8v8668v3v1nqf35pi30xvysyjq1d2hz9i7nh2zbvlwf";
     };
+    propagatedBuildInputs = [
+      ClassMOP Moose TestException TestUseOk
+    ];
+  };
+  
+  MooseXTraitsPluggable = buildPerlPackage rec {
+    name = "MooseX-Traits-Pluggable-0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RK/RKITOVER/${name}.tar.gz";
+      sha256 = "1cgkjcfx87kkrfg814fgfwl19cjqwx8wn40308z5p135vlbcbins";
+    };
+    propagatedBuildInputs = [
+      Moose TestException NamespaceAutoclean ClassMOP TestUseOk
+      MooseXTraits MooseAutobox
+    ];
+  };
+  
+  MooseXTypes = buildPerlPackage rec {
+    name = "MooseX-Types-0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RK/RKITOVER/${name}.tar.gz";
+      sha256 = "0b7w9wyh44qqjipw0gy5xsvdb5hwaqjk3vbqiwq07aliwnlfgi9a";
+    };
+    propagatedBuildInputs = [Moose CarpClan NamespaceClean];
+  };
+  
+  Mouse = buildPerlPackage rec {
+    name = "Mouse-0.26";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/${name}.tar.gz";
+      sha256 = "0dpf5qmf1vc8dq5nj6yiriz8v4wl8s9g519v1hnz4yf11n2lnr4x";
+    };
+    propagatedBuildInputs = [TestException];
+    doCheck = false; # check can't find its own Mouse::Tiny module
   };
 
   MROCompat = buildPerlPackage {
@@ -1337,13 +1466,22 @@ rec {
     };
   };
 
-  NamespaceClean = buildPerlPackage {
-    name = "namespace-clean-0.08";
+  NamespaceAutoclean = buildPerlPackage rec {
+    name = "namespace-autoclean-0.08";
     src = fetchurl {
-      url = mirror://cpan/authors/id/P/PH/PHAYLON/namespace-clean-0.08.tar.gz;
-      sha256 = "1jwc15zz1j6indqgz64l09ayg0db4gfaasq74x0vyi1yx3d9x2yx";
+      url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
+      sha256 = "1276incn27dpz955yx44l7rqs27bp1nc4gzqvw1x4aif8kw91185";
     };
-    propagatedBuildInputs = [ScopeGuard];
+    propagatedBuildInputs = [BHooksEndOfScope ClassMOP NamespaceClean];
+  };
+
+  NamespaceClean = buildPerlPackage rec {
+    name = "namespace-clean-0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
+      sha256 = "00fpj8a5p9z577cha3cgb95r042v7kbz7pwls5p0rl7jqvpax4lb";
+    };
+    propagatedBuildInputs = [BHooksEndOfScope];
   };
 
   NetDNS = buildPerlPackage {
@@ -1474,6 +1612,14 @@ rec {
     propagatedBuildInputs = [UNIVERSALrequire];
   };
 
+  Perl6Junction = buildPerlPackage rec {
+    name = "Perl6-Junction-1.40000";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CF/CFRANKS/${name}.tar.gz";
+      sha256 = "0sgv8hqrkhx73bcb5jyi8a0b3v5bxqr3aziram1zndx43i1knzp4";
+    };
+  };
+
   PodCoverage = buildPerlPackage rec {
     name = "Pod-Coverage-0.19";
     src = fetchurl {
@@ -1565,13 +1711,13 @@ rec {
   };
 
   SQLAbstract = buildPerlPackage rec {
-    name = "SQL-Abstract-1.51";
+    name = "SQL-Abstract-1.56";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MS/MSTROUT/${name}.tar.gz";
-      sha256 = "1q77yfdrkadf738zvdgarkv0136zs2shz3fdmwaaf03bhvhcbap2";
+      url = "mirror://cpan/authors/id/R/RI/RIBASUSHI/${name}.tar.gz";
+      sha256 = "14fr0433lqhlp2cv651pajm80d56zyk967fzascbr18jmd0611qf";
     };
     propagatedBuildInputs = [
-      TestDeep TestException TestWarn
+      TestDeep TestException TestWarn Clone
     ];
   };
 
@@ -1595,6 +1741,14 @@ rec {
     };
   };
 
+  StringRewritePrefix = buildPerlPackage rec {
+    name = "String-RewritePrefix-0.004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/${name}.tar.gz";
+      sha256 = "17v0pwiprsz9ibxlhpi789jxg691nz9prpabvb4dn4nb0qbi0yd0";
+    };
+  };
+
   SubExporter = buildPerlPackage rec {
     name = "Sub-Exporter-0.982";
     src = fetchurl {
@@ -1722,15 +1876,16 @@ rec {
     propagatedBuildInputs = [TemplateToolkit];
   };
 
-  TemplateToolkit = buildPerlPackage {
-    name = "Template-Toolkit-2.20";
+  TemplateToolkit = buildPerlPackage rec {
+    name = "Template-Toolkit-2.21";
     src = fetchurl {
-      url = mirror://cpan/authors/id/A/AB/ABW/Template-Toolkit-2.20.tar.gz;
-      sha256 = "13wbh06a76k4ag14lhszmpwv4hb8hlj1d9glizhp8izazl3xf1zg";
+      url = "mirror://cpan/authors/id/A/AB/ABW/${name}.tar.gz";
+      sha256 = "1az1c7gs6f3wrhmblaqkymhscv52p9g7xhcadlr9as5r3nrwcmwh";
     };
     propagatedBuildInputs = [AppConfig];
     patches = [
       # Needed to make TT works proy on templates in the Nix store.
+      # !!! unnecessary with Nix >= 0.13.
       ../development/perl-modules/template-toolkit-nix-store.patch
     ];
   };
@@ -1899,6 +2054,14 @@ rec {
     };
   };
 
+  TieIxhash = buildPerlPackage rec {
+    name = "Tie-IxHash-1.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GS/GSAR/${name}.tar.gz";
+      sha256 = "1xpj2c1dzcp14hfnxahy4r5f19c8afh8k6sfryq9gi76aadvjyk8";
+    };
+  };
+
   TieToObject = buildPerlPackage {
     name = "Tie-ToObject-0.03";
     src = fetchurl {
@@ -1998,6 +2161,14 @@ rec {
     };
   };
 
+  VariableMagic = buildPerlPackage rec {
+    name = "Variable-Magic-0.35";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VP/VPIT/${name}.tar.gz";
+      sha256 = "0p6f593bh8zyg4qlxpa3hmdp56saghcgx7r0p46gxscxyf3k0bdc";
+    };
+  };
+
   W3CLinkChecker = buildPerlPackage rec {
     name = "W3C-LinkChecker-4.5";
     src = fetchurl {
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index f2bf643d79d0..a688cb716abd 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -142,6 +142,7 @@ in {
   gcc34 = linux;
   gcc42 = linux;
   gcc43_multi = ["x86_64-linux"];
+  gcj43 = linux;
   gdb = all;
   ghostscript = linux;
   ghostscriptX = linux;