summary refs log tree commit diff
diff options
context:
space:
mode:
authorMarc Weber <marco-oweber@gmx.de>2009-03-06 23:21:28 +0000
committerMarc Weber <marco-oweber@gmx.de>2009-03-06 23:21:28 +0000
commitb56ed358510c2c2f44af2dd5bd278c24a0b77bcd (patch)
tree3209e32b4745e13d189faeb3b5f3b61c3f9b30ca
parent51289a41b011209fdf5955f3a9e1d3e69d70c5be (diff)
downloadnixpkgs-b56ed358510c2c2f44af2dd5bd278c24a0b77bcd.tar
nixpkgs-b56ed358510c2c2f44af2dd5bd278c24a0b77bcd.tar.gz
nixpkgs-b56ed358510c2c2f44af2dd5bd278c24a0b77bcd.tar.bz2
nixpkgs-b56ed358510c2c2f44af2dd5bd278c24a0b77bcd.tar.lz
nixpkgs-b56ed358510c2c2f44af2dd5bd278c24a0b77bcd.tar.xz
nixpkgs-b56ed358510c2c2f44af2dd5bd278c24a0b77bcd.tar.zst
nixpkgs-b56ed358510c2c2f44af2dd5bd278c24a0b77bcd.zip
replacing applyAndFun by lib.defaultOverridableDelayableArgs
applyAndFun has a bug resulting in the same arg beeing added more than
once when using a concatenating merge function for the attr set.

I've tried giving the function a name "overridableDelayableArgs" which
resembles its usage much more.

important refactoring:
  applyAndFun had .fun and .funMerge only when passing the merge
  function lib.mergeOrApply

  composableDerivation {
    initial = {
      ...
    };
  }

to

  overridableDelayableArgs has always .replace and .merge
  composableDerivation {} {
    ...
  }

svn path=/nixpkgs/trunk/; revision=14428
-rw-r--r--pkgs/applications/editors/vim/configurable.nix121
-rw-r--r--pkgs/applications/misc/audio/sox/default.nix101
-rw-r--r--pkgs/applications/misc/qgis/0.11.0.nix72
-rw-r--r--pkgs/development/compilers/hugs/default.nix92
-rw-r--r--pkgs/development/compilers/roadsend/default.nix58
-rw-r--r--pkgs/development/interpreters/php_configurable/default.nix295
-rw-r--r--pkgs/development/interpreters/python-new/2.5/default.nix6
-rw-r--r--pkgs/development/libraries/fltk/default.nix72
-rw-r--r--pkgs/development/libraries/geos/default.nix53
-rw-r--r--pkgs/development/libraries/libdv/default.nix43
-rw-r--r--pkgs/development/tools/parsing/ragel/default.nix60
-rw-r--r--pkgs/lib/composable-derivation.nix6
-rw-r--r--pkgs/misc/gxemul/default.nix50
-rw-r--r--pkgs/misc/jackaudio/default.nix88
-rw-r--r--pkgs/top-level/all-packages.nix2
15 files changed, 545 insertions, 574 deletions
diff --git a/pkgs/applications/editors/vim/configurable.nix b/pkgs/applications/editors/vim/configurable.nix
index b958eb6b812..a528d8f7b35 100644
--- a/pkgs/applications/editors/vim/configurable.nix
+++ b/pkgs/applications/editors/vim/configurable.nix
@@ -2,77 +2,74 @@
 # but I have gvim with python support now :) - Marc
 args: with args;
 let inherit (args.composableDerivation) composableDerivation edf; in
-composableDerivation {
-  initial = {
+composableDerivation {} {
 
-      name = "vim_configurable-7.1";
+    name = "vim_configurable-7.1";
 
-      src = args.fetchurl {
-        url = ftp://ftp.vim.org/pub/vim/unix/vim-7.2.tar.bz2;
-        sha256 = "11hxkb6r2550c4n13nwr0d8afvh30qjyr5c2hw16zgay43rb0kci";
-      };
-
-      configureFlags = ["--enable-gui=auto" "--with-features=${args.features}"];
+    src = args.fetchurl {
+      url = ftp://ftp.vim.org/pub/vim/unix/vim-7.2.tar.bz2;
+      sha256 = "11hxkb6r2550c4n13nwr0d8afvh30qjyr5c2hw16zgay43rb0kci";
+    };
 
-      buildInputs = [ncurses pkgconfig]
-        ++ [ gtk libX11 libXext libSM libXpm libXt libXaw libXau libXmu ];
+    configureFlags = ["--enable-gui=auto" "--with-features=${args.features}"];
 
-      # most interpreters aren't tested yet.. (see python for example how to do it)
-      flags = {}
-        // edf { name = "darwin"; } #Disable Darwin (Mac OS X) support.
-        // edf { name = "xsmp"; } #Disable XSMP session management
-        // edf { name = "xsmp_interact"; } #Disable XSMP interaction
-        // edf { name = "mzscheme"; } #Include MzScheme interpreter.
-        // edf { name = "perl"; feat = "perlinterp"; enable = { buildInputs = [perl]; };} #Include Perl interpreter.
-        // edf { name = "python"; feat = "pythoninterp"; enable = { buildInputs = [python]; }; } #Include Python interpreter.
-        // edf { name = "tcl"; enable = { buildInputs = [tcl]; }; } #Include Tcl interpreter.
-        // edf { name = "ruby"; feat = "rubyinterp"; enable = { buildInputs = [ruby]; };} #Include Ruby interpreter.
-        // edf { name = "cscope"; } #Include cscope interface.
-        // edf { name = "workshop"; } #Include Sun Visual Workshop support.
-        // edf { name = "netbeans"; } #Disable NetBeans integration support.
-        // edf { name = "sniff"; } #Include Sniff interface.
-        // edf { name = "multibyte"; } #Include multibyte editing support.
-        // edf { name = "hangulinput"; } #Include Hangul input support.
-        # // edf { name = "xim"; enable = { buildInputs = [xim]; }; } #Include XIM input support.
-        // edf { name = "fontset"; } #Include X fontset output support.
-        // edf { name = "acl"; } #Don't check for ACL support.
-        // edf { name = "gpm"; } #Don't use gpm (Linux mouse daemon).
-        // edf { name = "nls"; } #Don't support NLS (gettext()).
-        ;
+    buildInputs = [ncurses pkgconfig]
+      ++ [ gtk libX11 libXext libSM libXpm libXt libXaw libXau libXmu ];
 
-    cfg = {
-      pythonSupport = true;
-    };
+    # most interpreters aren't tested yet.. (see python for example how to do it)
+    flags = {}
+      // edf { name = "darwin"; } #Disable Darwin (Mac OS X) support.
+      // edf { name = "xsmp"; } #Disable XSMP session management
+      // edf { name = "xsmp_interact"; } #Disable XSMP interaction
+      // edf { name = "mzscheme"; } #Include MzScheme interpreter.
+      // edf { name = "perl"; feat = "perlinterp"; enable = { buildInputs = [perl]; };} #Include Perl interpreter.
+      // edf { name = "python"; feat = "pythoninterp"; enable = { buildInputs = [python]; }; } #Include Python interpreter.
+      // edf { name = "tcl"; enable = { buildInputs = [tcl]; }; } #Include Tcl interpreter.
+      // edf { name = "ruby"; feat = "rubyinterp"; enable = { buildInputs = [ruby]; };} #Include Ruby interpreter.
+      // edf { name = "cscope"; } #Include cscope interface.
+      // edf { name = "workshop"; } #Include Sun Visual Workshop support.
+      // edf { name = "netbeans"; } #Disable NetBeans integration support.
+      // edf { name = "sniff"; } #Include Sniff interface.
+      // edf { name = "multibyte"; } #Include multibyte editing support.
+      // edf { name = "hangulinput"; } #Include Hangul input support.
+      # // edf { name = "xim"; enable = { buildInputs = [xim]; }; } #Include XIM input support.
+      // edf { name = "fontset"; } #Include X fontset output support.
+      // edf { name = "acl"; } #Don't check for ACL support.
+      // edf { name = "gpm"; } #Don't use gpm (Linux mouse daemon).
+      // edf { name = "nls"; } #Don't support NLS (gettext()).
+      ;
 
-    #--enable-gui=OPTS     X11 GUI default=auto OPTS=auto/no/gtk/gtk2/gnome/gnome2/motif/athena/neXtaw/photon/carbon
-      /*
-        // edf "gtk_check" "gtk_check" { } #If auto-select GUI, check for GTK default=yes
-        // edf "gtk2_check" "gtk2_check" { } #If GTK GUI, check for GTK+ 2 default=yes
-        // edf "gnome_check" "gnome_check" { } #If GTK GUI, check for GNOME default=no
-        // edf "motif_check" "motif_check" { } #If auto-select GUI, check for Motif default=yes
-        // edf "athena_check" "athena_check" { } #If auto-select GUI, check for Athena default=yes
-        // edf "nextaw_check" "nextaw_check" { } #If auto-select GUI, check for neXtaw default=yes
-        // edf "carbon_check" "carbon_check" { } #If auto-select GUI, check for Carbon default=yes
-        // edf "gtktest" "gtktest" { } #Do not try to compile and run a test GTK program
-      */
+  cfg = {
+    pythonSupport = true;
+  };
 
-    postInstall = "
-      rpath=`patchelf --print-rpath \$out/bin/vim`;
-      for i in $\buildInputs; do
-        echo adding \$i/lib
-        rpath=\$rpath:\$i/lib
-      done
-      echo \$buildInputs
-      echo \$rpath
-      patchelf --set-rpath \$rpath \$out/bin/{vim,gvim}
-    ";
-    dontStrip =1;
+  #--enable-gui=OPTS     X11 GUI default=auto OPTS=auto/no/gtk/gtk2/gnome/gnome2/motif/athena/neXtaw/photon/carbon
+    /*
+      // edf "gtk_check" "gtk_check" { } #If auto-select GUI, check for GTK default=yes
+      // edf "gtk2_check" "gtk2_check" { } #If GTK GUI, check for GTK+ 2 default=yes
+      // edf "gnome_check" "gnome_check" { } #If GTK GUI, check for GNOME default=no
+      // edf "motif_check" "motif_check" { } #If auto-select GUI, check for Motif default=yes
+      // edf "athena_check" "athena_check" { } #If auto-select GUI, check for Athena default=yes
+      // edf "nextaw_check" "nextaw_check" { } #If auto-select GUI, check for neXtaw default=yes
+      // edf "carbon_check" "carbon_check" { } #If auto-select GUI, check for Carbon default=yes
+      // edf "gtktest" "gtktest" { } #Do not try to compile and run a test GTK program
+    */
 
-    meta = {
-      description = "The most popular clone of the VI editor";
-      homepage = "www.vim.org";
-    };
+  postInstall = "
+    rpath=`patchelf --print-rpath \$out/bin/vim`;
+    for i in $\buildInputs; do
+      echo adding \$i/lib
+      rpath=\$rpath:\$i/lib
+    done
+    echo \$buildInputs
+    echo \$rpath
+    patchelf --set-rpath \$rpath \$out/bin/{vim,gvim}
+  ";
+  dontStrip =1;
 
+  meta = {
+    description = "The most popular clone of the VI editor";
+    homepage = "www.vim.org";
   };
 
 }
diff --git a/pkgs/applications/misc/audio/sox/default.nix b/pkgs/applications/misc/audio/sox/default.nix
index 1655457b404..9e72bedfb5a 100644
--- a/pkgs/applications/misc/audio/sox/default.nix
+++ b/pkgs/applications/misc/audio/sox/default.nix
@@ -1,61 +1,58 @@
 args: with args;
 let inherit (args.composableDerivation) composableDerivation edf; in
-composableDerivation {
-
-  initial = {
-
-      name = "sox-14.0.0";
-
-      src = args.fetchurl {
-        url = mirror://sourceforge/sox/sox-14.0.0.tar.gz;
-        sha256 = "1l7v04nlvb96y0w9crvm6nq8g50yxp3bkv6nb1c205s982inlalc";
-      };
-
-      flags =
-      # are these options of interest? We'll see
-      #--disable-fftw          disable usage of FFTW
-      #--enable-debug          enable debugging
-      #--disable-cpu-clip      disable tricky cpu specific clipper
-      edf { name = "alsa"; enable = { buildInputs = [alsaLib]; }; }
-      // edf { name = "libao"; enable = { buildInputs = [libao]; }; }
-      // edf { name = "oss"; }
-      // edf { name = "sun_audio"; };
-      # These options should be autodetected by the configure script
-      /*
-      --without-sndfile       Don't try to use libsndfile
-      --without-ogg           Don't try to use Ogg Vorbis
-      --without-flac          Don't try to use FLAC
-      --without-ffmpeg        Don't try to use ffmpeg
-      --without-mad           Don't try to use MAD (MP3 Audio Decoder)
-      --without-lame          Don't try to use LAME (LAME Ain't an MP3 Encoder)
-      --without-amr-wb        Don't try to use amr-wb
-      --without-amr-nb        Don't try to use amr-nb
-      --without-samplerate    Don't try to use libsamplerate (aka Secret Rabbit
-                              Code)
-      --without-ladspa        Don't try to use LADSPA
-      --with-ladspa-path      Default search path for LADSPA plugins
-      */
-
-
-    cfg = {
-      ossSupport = false;
-      sun_audioSupport = false;
+composableDerivation {} {
+
+    name = "sox-14.0.0";
+
+    src = args.fetchurl {
+      url = mirror://sourceforge/sox/sox-14.0.0.tar.gz;
+      sha256 = "1l7v04nlvb96y0w9crvm6nq8g50yxp3bkv6nb1c205s982inlalc";
     };
 
+    flags =
+    # are these options of interest? We'll see
+    #--disable-fftw          disable usage of FFTW
+    #--enable-debug          enable debugging
+    #--disable-cpu-clip      disable tricky cpu specific clipper
+    edf { name = "alsa"; enable = { buildInputs = [alsaLib]; }; }
+    // edf { name = "libao"; enable = { buildInputs = [libao]; }; }
+    // edf { name = "oss"; }
+    // edf { name = "sun_audio"; };
+    # These options should be autodetected by the configure script
+    /*
+    --without-sndfile       Don't try to use libsndfile
+    --without-ogg           Don't try to use Ogg Vorbis
+    --without-flac          Don't try to use FLAC
+    --without-ffmpeg        Don't try to use ffmpeg
+    --without-mad           Don't try to use MAD (MP3 Audio Decoder)
+    --without-lame          Don't try to use LAME (LAME Ain't an MP3 Encoder)
+    --without-amr-wb        Don't try to use amr-wb
+    --without-amr-nb        Don't try to use amr-nb
+    --without-samplerate    Don't try to use libsamplerate (aka Secret Rabbit
+                            Code)
+    --without-ladspa        Don't try to use LADSPA
+    --with-ladspa-path      Default search path for LADSPA plugins
+    */
+
+
+  cfg = {
+    ossSupport = false;
+    sun_audioSupport = false;
+  };
 
-    optionals = [ "libsndfile" "libogg" "flac" "ffmpeg" "libmad" "lame"
-                   /* "amr-wb" "amr-nb" */
-                  "libsamplerate" /* "ladspa" */ ];
 
+  optionals = [ "libsndfile" "libogg" "flac" "ffmpeg" "libmad" "lame"
+                 /* "amr-wb" "amr-nb" */
+                "libsamplerate" /* "ladspa" */ ];
 
-    meta = {
-      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";
-                  } ];
-    };
+
+  meta = {
+    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";
+                } ];
   };
 }
diff --git a/pkgs/applications/misc/qgis/0.11.0.nix b/pkgs/applications/misc/qgis/0.11.0.nix
index 127675b358d..ed8bb6063c3 100644
--- a/pkgs/applications/misc/qgis/0.11.0.nix
+++ b/pkgs/applications/misc/qgis/0.11.0.nix
@@ -3,43 +3,41 @@ let edf = composableDerivation.edf;
     optionIncLib = name : attr : " -D${name}_INCLUDE_DIR=${__getAttr attr args}/incclude"
                                + " -D${name}_LIBRARY=${__getAttr attr args}/lib "; # lib 64?
 in
-composableDerivation.composableDerivation {
-  initial = {
-
-    buildInputs = [ gdal cmake qt flex bison proj geos x11 sqlite gsl];
-      cfgOption = [
-                    # without this option it can't find sqlite libs yet (missing symbols..) (TODO)
-                    "-DWITH_INTERNAL_SQLITE3=TRUE"
-                  ];
-
-    name = "qgis-${version}";
-
-    # src = args.fetchsvn { url=https://svn.qgis.org/repos/qgis/trunk/qgis;
-    #                md5="ac0560e0a2d4e6258c8639f1e9b56df3"; rev="7704"; };
-    src = fetchurl {
-      url = "http://download.osgeo.org/qgis/src/qgis_${version}.tar.gz";
-      sha256 = "17vqbld4wr9jyn1s5n0bkpaminsgc2dzcgdfk8ic168xydnwa7b3";
-    };
-
-    meta = {
-      description = "user friendly Open Source Geographic Information System";
-      homepage = http://www.qgis.org;
-      # you can choose one of the following licenses:
-      license = [ "GPL" ];
-    };
-
-    phases = "unpackPhase buildPhase installPhase";
-    buildPhase = ''pwd;echo XXXXXXXXX; VERBOSE=1 cmake -DCMAKE_INSTALL_PREFIX=$out ''${cfgOption} ..'';
-
-    postUnpack = ''
-      export CMAKE_SYSTEM_LIBRARY_PATH=
-      for i in $buildInputs $propagatedBuildInputs; do
-        CMAKE_SYSTEM_LIBRARY_PATH=$i/lib:$CMAKE_SYSTEM_LIBRARY_PATH
-      done
-    '';
-
-    #configurePhase="./autogen.sh --prefix=\$out --with-gdal=\$gdal/bin/gdal-config --with-qtdir=\$qt";
-    # buildPhases="unpackPhase buildPhase";
+composableDerivation.composableDerivation {} {
 
+  buildInputs = [ gdal cmake qt flex bison proj geos x11 sqlite gsl];
+    cfgOption = [
+                  # without this option it can't find sqlite libs yet (missing symbols..) (TODO)
+                  "-DWITH_INTERNAL_SQLITE3=TRUE"
+                ];
+
+  name = "qgis-${version}";
+
+  # src = args.fetchsvn { url=https://svn.qgis.org/repos/qgis/trunk/qgis;
+  #                md5="ac0560e0a2d4e6258c8639f1e9b56df3"; rev="7704"; };
+  src = fetchurl {
+    url = "http://download.osgeo.org/qgis/src/qgis_${version}.tar.gz";
+    sha256 = "17vqbld4wr9jyn1s5n0bkpaminsgc2dzcgdfk8ic168xydnwa7b3";
+  };
+
+  meta = {
+    description = "user friendly Open Source Geographic Information System";
+    homepage = http://www.qgis.org;
+    # you can choose one of the following licenses:
+    license = [ "GPL" ];
   };
+
+  phases = "unpackPhase buildPhase installPhase";
+  buildPhase = ''pwd;echo XXXXXXXXX; VERBOSE=1 cmake -DCMAKE_INSTALL_PREFIX=$out ''${cfgOption} ..'';
+
+  postUnpack = ''
+    export CMAKE_SYSTEM_LIBRARY_PATH=
+    for i in $buildInputs $propagatedBuildInputs; do
+      CMAKE_SYSTEM_LIBRARY_PATH=$i/lib:$CMAKE_SYSTEM_LIBRARY_PATH
+    done
+  '';
+
+  #configurePhase="./autogen.sh --prefix=\$out --with-gdal=\$gdal/bin/gdal-config --with-qtdir=\$qt";
+  # buildPhases="unpackPhase buildPhase";
+
 }
diff --git a/pkgs/development/compilers/hugs/default.nix b/pkgs/development/compilers/hugs/default.nix
index c910d88ccb1..4f3bbc6294b 100644
--- a/pkgs/development/compilers/hugs/default.nix
+++ b/pkgs/development/compilers/hugs/default.nix
@@ -1,56 +1,54 @@
 args: with args;
 let edf = composableDerivation.edf;
     wwf = composableDerivation.wwf; in
-composableDerivation.composableDerivation {
-  initial = {
+composableDerivation.composableDerivation {} {
 
-    name="hugs98";
+  name="hugs98";
 
-    src = fetchurl {
-        url = http://cvs.haskell.org/Hugs/downloads/2006-09/hugs98-Sep2006.tar.gz;
-        sha256 = "3cf4d27673564cffe691bd14032369f646233f14daf2bc37c6c6df9f062b46b6";
-    };
+  src = fetchurl {
+      url = http://cvs.haskell.org/Hugs/downloads/2006-09/hugs98-Sep2006.tar.gz;
+      sha256 = "3cf4d27673564cffe691bd14032369f646233f14daf2bc37c6c6df9f062b46b6";
+  };
+
+      #encode all character I/O using the byte encoding
+      #determined by the locale in effect at that time. To
+      #require that the UTF-8 encoding is always used, give
+      #the --enable-char-encoding=utf8 option.
+      #[default=autodetect]
+  postUnpack = ''
+    find -type f | xargs sed -i 's@/bin/cp@cp@';
+  '';
+  configurePhase="./configure --prefix=\$out --enable-char-encoding=utf8 $configureFlags";
+
+  flags =
+       edf { name = "pathCanonicalization"; feat="path-canonicalization"; }
+    // edf { name="timer"; }   # enable evaluation timing (for benchmarking Hugs)
+    // edf { name="profiling"; }# enable heap profiler
+    // edf { name="stackDumps"; feat="stack-dummps"; } # enable stack dump on stack overflow
+    // edf { name="largeBanner"; feat="large-banner"; } # disable multiline startup banner
+    // edf { name="internal-prims"; } # experimental primitives to access Hugs's innards
+    // edf { name="debug"; } # include C debugging information (for debugging Hugs)
+    // edf { name="tag"; } # runtime tag checking (for debugging Hugs)
+    // edf { name="lint"; } # enable "lint" flags (for debugging Hugs)
+    // edf { name="only98"; } # build Hugs to understand Haskell 98 only
+    // edf { name="ffi"; }
+      #--with-nmake            produce a Makefile compatible with nmake
+      #--with-gui              build Hugs for Windows GUI (Borland C++ only)
+    // wwf { name="pthreads"; } #   build Hugs using POSIX threads C library
+    ;
+
+  cfg = {
+    largeBannerSupport = true; # seems to be default
+
+
+      char = { cfgOption = "--enable-char-encoding"; blocks = "utf8"; };
+      utf8 = { cfgOption = "--enable-char-encoding=utf8"; blocks="char"; };
 
-        #encode all character I/O using the byte encoding
-        #determined by the locale in effect at that time. To
-        #require that the UTF-8 encoding is always used, give
-        #the --enable-char-encoding=utf8 option.
-        #[default=autodetect]
-    postUnpack = ''
-      find -type f | xargs sed -i 's@/bin/cp@cp@';
-    '';
-    configurePhase="./configure --prefix=\$out --enable-char-encoding=utf8 $configureFlags";
-
-    flags =
-         edf { name = "pathCanonicalization"; feat="path-canonicalization"; }
-      // edf { name="timer"; }   # enable evaluation timing (for benchmarking Hugs)
-      // edf { name="profiling"; }# enable heap profiler
-      // edf { name="stackDumps"; feat="stack-dummps"; } # enable stack dump on stack overflow
-      // edf { name="largeBanner"; feat="large-banner"; } # disable multiline startup banner
-      // edf { name="internal-prims"; } # experimental primitives to access Hugs's innards
-      // edf { name="debug"; } # include C debugging information (for debugging Hugs)
-      // edf { name="tag"; } # runtime tag checking (for debugging Hugs)
-      // edf { name="lint"; } # enable "lint" flags (for debugging Hugs)
-      // edf { name="only98"; } # build Hugs to understand Haskell 98 only
-      // edf { name="ffi"; }
-        #--with-nmake            produce a Makefile compatible with nmake
-        #--with-gui              build Hugs for Windows GUI (Borland C++ only)
-      // wwf { name="pthreads"; } #   build Hugs using POSIX threads C library
-      ;
-
-    cfg = {
-      largeBannerSupport = true; # seems to be default
-
-
-        char = { cfgOption = "--enable-char-encoding"; blocks = "utf8"; };
-        utf8 = { cfgOption = "--enable-char-encoding=utf8"; blocks="char"; };
-
-      };
-
-    meta = {
-      license = "as-is"; # gentoo is calling it this way..
-      description = "The HUGS98 Haskell <interpreter";
-      homepage = http://www.haskell.org/hugs;
     };
+
+  meta = {
+    license = "as-is"; # gentoo is calling it this way..
+    description = "The HUGS98 Haskell <interpreter";
+    homepage = http://www.haskell.org/hugs;
   };
 }
diff --git a/pkgs/development/compilers/roadsend/default.nix b/pkgs/development/compilers/roadsend/default.nix
index c6d2249c894..e23179c1288 100644
--- a/pkgs/development/compilers/roadsend/default.nix
+++ b/pkgs/development/compilers/roadsend/default.nix
@@ -1,38 +1,36 @@
 args: with args;
 let edf = composableDerivation.edf; in
-composableDerivation.composableDerivation {
-  initial = {
-    name = "roadsend-2.9.3";
-    buildInputs = [bigloo curl];
-    flags = edf { name = "pcre"; }
-         // edf { name = "fcgi"; enable = { inherit fcgi; }; }
-         // edf { name = "xml"; enable = { buildInputs = [ libxml2 ]; }; }
-         // edf { name = "mysql"; enable = { buildInputs = [ mysql ]; }; }
-         // edf { name = "odbc"; };
-         # // edf { name = "gtk"} }
-         # // edf { name = "gtk2", enable = { buildInputs = [ mysql ]; } }
-    cfg = {
-      pcreSupport = true;
-      fcgiSupport = true;
-      xmlSupport = true;
-      mysqlSupport = true;
-    };
-    src = args.fetchurl {
-      url = "http://code.roadsend.com/snaps/roadsend-php-20081210.tar.bz2";
-      sha256 = "0yhpiik0dyayd964wvn2k0cq7b1gihx1k3qx343r2l7lla4mapsx";
-    };
+composableDerivation.composableDerivation {} {
+  name = "roadsend-2.9.3";
+  buildInputs = [bigloo curl];
+  flags = edf { name = "pcre"; }
+       // edf { name = "fcgi"; enable = { inherit fcgi; }; }
+       // edf { name = "xml"; enable = { buildInputs = [ libxml2 ]; }; }
+       // edf { name = "mysql"; enable = { buildInputs = [ mysql ]; }; }
+       // edf { name = "odbc"; };
+       # // edf { name = "gtk"} }
+       # // edf { name = "gtk2", enable = { buildInputs = [ mysql ]; } }
+  cfg = {
+    pcreSupport = true;
+    fcgiSupport = true;
+    xmlSupport = true;
+    mysqlSupport = true;
+  };
+  src = args.fetchurl {
+    url = "http://code.roadsend.com/snaps/roadsend-php-20081210.tar.bz2";
+    sha256 = "0yhpiik0dyayd964wvn2k0cq7b1gihx1k3qx343r2l7lla4mapsx";
+  };
 
 #    http://code.roadsend.com/snaps/roadsend-php-testsuite-2.9.7.tar.bz2";
 #   sha256 = "0rf0g9r0prla7daq3aif24d7dx0j01i35hcm8h5bbg3gvpfim463";
 
-    # tell pcc where to find the fastcgi library 
-    postInstall = " sed -e \"s=(ldflags fastcgi.*=(ldflags -l fastcgi -L \$fcgi)=\" -i \$out/etc/pcc.conf ";
-    meta = {
-      description = "roadsend PHP -> C compiler";
-      homepage = http://www.roadsend.com;
-      # you can choose one of the following licenses: 
-      # Runtime license is LPGL 2.1
-      license = ["GPL2"];
-    };
+  # tell pcc where to find the fastcgi library 
+  postInstall = " sed -e \"s=(ldflags fastcgi.*=(ldflags -l fastcgi -L \$fcgi)=\" -i \$out/etc/pcc.conf ";
+  meta = {
+    description = "roadsend PHP -> C compiler";
+    homepage = http://www.roadsend.com;
+    # you can choose one of the following licenses: 
+    # Runtime license is LPGL 2.1
+    license = ["GPL2"];
   };
 }
diff --git a/pkgs/development/interpreters/php_configurable/default.nix b/pkgs/development/interpreters/php_configurable/default.nix
index 025e48a0a7b..954cea1a4d4 100644
--- a/pkgs/development/interpreters/php_configurable/default.nix
+++ b/pkgs/development/interpreters/php_configurable/default.nix
@@ -4,177 +4,174 @@ args: with args;
 
 let inherit (args.composableDerivation) composableDerivation edf wwf; in
 
-composableDerivation {
-  initial = fixed : {
+composableDerivation {} ( fixed : {
 
-    name = "php_configurable-${version}";
+  name = "php_configurable-${version}";
 
-    buildInputs = ["flex" "bison" "pkgconfig"];
+  buildInputs = ["flex" "bison" "pkgconfig"];
 
-    flags = {
+  flags = {
 
 # much left to do here...
 
-      # SAPI modules:
-      
-        apxs2 = {
-          configureFlags = ["--with-apxs2=${apacheHttpd}/bin/apxs"];
-          buildInputs = [apacheHttpd];
-        };
-
-        # Extensions
+    # SAPI modules:
+    
+      apxs2 = {
+        configureFlags = ["--with-apxs2=${apacheHttpd}/bin/apxs"];
+        buildInputs = [apacheHttpd];
+      };
 
-        curl = {
-          configureFlags = ["--with-curl=${args.curl}" "--with-curlwrappers"];
-          buildInputs = [curl];
-        };
-        
-        zlib = {
-          configureFlags = ["--with-zlib=${args.zlib}"];
-          buildInputs = [zlib];
-        };
+      # Extensions
 
-        libxml2 = {
-          configureFlags = ["--with-libxml-dir=${libxml2}"];
-          buildInputs = [ libxml2 ];
-        };
-      
-        postgresql = {
-          configureFlags = ["--with-pgsql=${postgresql}"];
-          buildInputs = [ postgresql ];
-        };
+      curl = {
+        configureFlags = ["--with-curl=${args.curl}" "--with-curlwrappers"];
+        buildInputs = [curl];
+      };
       
-        mysql = {
-          configureFlags = ["--with-mysql=${mysql}"];
-          buildInputs = [ mysql ];
-        };
-
-        mysqli = {
-          configureFlags = ["--with-mysqli=${mysql}/bin/mysql_config"];
-          buildInputs = [ mysql];
-        };
+      zlib = {
+        configureFlags = ["--with-zlib=${args.zlib}"];
+        buildInputs = [zlib];
+      };
 
-        mysqli_embedded = {
-          configureFlags = ["--enable-embedded-mysqli"];
-          depends = "mysqli";
-          assertion = fixed.mysqliSupport;
-        };
+      libxml2 = {
+        configureFlags = ["--with-libxml-dir=${libxml2}"];
+        buildInputs = [ libxml2 ];
+      };
+    
+      postgresql = {
+        configureFlags = ["--with-pgsql=${postgresql}"];
+        buildInputs = [ postgresql ];
+      };
+    
+      mysql = {
+        configureFlags = ["--with-mysql=${mysql}"];
+        buildInputs = [ mysql ];
+      };
 
-        pdo_mysql = {
-          configureFlags = ["--with-pdo-mysql=${mysql}"];
-          buildInputs = [ mysql ];
-        };
-      
-        bcmath = {
-          configureFlags = ["--enable-bcmath"];
-        };
+      mysqli = {
+        configureFlags = ["--with-mysqli=${mysql}/bin/mysql_config"];
+        buildInputs = [ mysql];
+      };
 
-        gd = {
-          configureFlags = ["--with-gd=${args.gd}"];
-          buildInputs = [gd];
-        };
+      mysqli_embedded = {
+        configureFlags = ["--enable-embedded-mysqli"];
+        depends = "mysqli";
+        assertion = fixed.mysqliSupport;
+      };
 
-        sockets = {
-          configureFlags = ["--enable-sockets"];
-        };
+      pdo_mysql = {
+        configureFlags = ["--with-pdo-mysql=${mysql}"];
+        buildInputs = [ mysql ];
+      };
+    
+      bcmath = {
+        configureFlags = ["--enable-bcmath"];
+      };
 
-        openssl = {
-          configureFlags = ["--with-openssl=${args.openssl}"];
-          buildInputs = ["openssl"];
-        };
+      gd = {
+        configureFlags = ["--with-gd=${args.gd}"];
+        buildInputs = [gd];
+      };
 
-        mbstring = {
-          configureFlags = ["--enable-mbstring"];
-        };
+      sockets = {
+        configureFlags = ["--enable-sockets"];
+      };
 
-        /*
-           Building xdebug withing php to be able to add the parameters to the ini file.. Ther should be a better way
-          meta = {
-                  description = "debugging support for PHP";
-                  homepage = http://xdebug.org;
-                  license = "based on the PHP license - as is";
-                  };
-        */
-        xdebug = {
-          buildInputs = [ automake autoconf ];
-          xdebug_src = args.fetchurl {
-            name = "xdebug-2.0.2.tar.gz";
-            url = "http://xdebug.org/link.php?url=xdebug202";
-            sha256 = "1h0bxvf8krr203fmk1k7izrrr81gz537xmd3pqh4vslwdlbhrvic";
-          };
-        };
+      openssl = {
+        configureFlags = ["--with-openssl=${args.openssl}"];
+        buildInputs = ["openssl"];
       };
 
-    cfg = {
-      mysqlSupport = true;
-      mysqliSupport = true;
-      pdo_mysqlSupport = true;
-      libxml2Support = true;
-      apxs2Support = true;
-      bcmathSupport = true;
-      socketsSupport = true;
-      curlSupport = true;
-      gettextSupport = true;
-      postgresqlSupport = true;
-      zlibSupport = true;
-      opnesslSupport = true;
-      xdebugSupport = true;
-      mbstringSupport = true;
-      gdSupport = true;
-    };
+      mbstring = {
+        configureFlags = ["--enable-mbstring"];
+      };
 
-    configurePhase = ''
-      iniFile=$out/etc/$name.ini
-      [[ -z "$libxml2" ]] || export PATH=$PATH:$libxml2/bin
-      ./configure --with-config-file-scan-dir=/etc --with-config-file-path=$out/etc --prefix=$out  $configureFlags
-      echo configurePhase end
-    '';
-
-    installPhase = ''
-      unset installPhase; installPhase;
-      cp php.ini-recommended $iniFile
-
-      # Now Let's build xdebug if flag has been given
-      # TODO I think there are better paths than the given below
-      if [ -n $flag_set_xdebug ]; then
-        PATH=$PATH:$out/bin
-        tar xfz $xdebug_src;
-        cd xdebug*
-        phpize
-        ./configure --prefix=$out
-        make
-        ensureDir $out/lib; cp modules/xdebug.so $out/lib
-        cat >> $out/etc/php.ini << EOF
-          zend_extension="$out/lib/xdebug.so"
-          zend_extension_ts="$out/lib/xdebug.so"
-          zend_extension_debug="$out/lib/xdebug.so"
-          xdebug.remote_enable=true
-          xdebug.remote_host=127.0.0.1
-          xdebug.remote_port=9000
-          xdebug.remote_handler=dbgp
-          xdebug.profiler_enable=0
-          xdebug.profiler_output_dir="/tmp/xdebug"
-          xdebug.remote_mode=req
-          max_execution_time = 300
-          date.timezone = UTC
-    EOF
-      fi
-    '';
-
-    src = args.fetchurl {
-      url = "http://nl.php.net/get/php-${version}.tar.bz2/from/this/mirror";
-      md5 = "7380ffecebd95c6edb317ef861229ebd";
-      name = "php-${version}.tar.bz2";
+      /*
+         Building xdebug withing php to be able to add the parameters to the ini file.. Ther should be a better way
+        meta = {
+                description = "debugging support for PHP";
+                homepage = http://xdebug.org;
+                license = "based on the PHP license - as is";
+                };
+      */
+      xdebug = {
+        buildInputs = [ automake autoconf ];
+        xdebug_src = args.fetchurl {
+          name = "xdebug-2.0.2.tar.gz";
+          url = "http://xdebug.org/link.php?url=xdebug202";
+          sha256 = "1h0bxvf8krr203fmk1k7izrrr81gz537xmd3pqh4vslwdlbhrvic";
+        };
+      };
     };
 
-    meta = {
-      description = "The PHP language runtime engine";
-      homepage = http://www.php.net/;
-      license = "PHP-3";
-    };
+  cfg = {
+    mysqlSupport = true;
+    mysqliSupport = true;
+    pdo_mysqlSupport = true;
+    libxml2Support = true;
+    apxs2Support = true;
+    bcmathSupport = true;
+    socketsSupport = true;
+    curlSupport = true;
+    gettextSupport = true;
+    postgresqlSupport = true;
+    zlibSupport = true;
+    opnesslSupport = true;
+    xdebugSupport = true;
+    mbstringSupport = true;
+    gdSupport = true;
+  };
 
-    patches = [./fix.patch];
+  configurePhase = ''
+    iniFile=$out/etc/$name.ini
+    [[ -z "$libxml2" ]] || export PATH=$PATH:$libxml2/bin
+    ./configure --with-config-file-scan-dir=/etc --with-config-file-path=$out/etc --prefix=$out  $configureFlags
+    echo configurePhase end
+  '';
+
+  installPhase = ''
+    unset installPhase; installPhase;
+    cp php.ini-recommended $iniFile
+
+    # Now Let's build xdebug if flag has been given
+    # TODO I think there are better paths than the given below
+    if [ -n $flag_set_xdebug ]; then
+      PATH=$PATH:$out/bin
+      tar xfz $xdebug_src;
+      cd xdebug*
+      phpize
+      ./configure --prefix=$out
+      make
+      ensureDir $out/lib; cp modules/xdebug.so $out/lib
+      cat >> $out/etc/php.ini << EOF
+        zend_extension="$out/lib/xdebug.so"
+        zend_extension_ts="$out/lib/xdebug.so"
+        zend_extension_debug="$out/lib/xdebug.so"
+        xdebug.remote_enable=true
+        xdebug.remote_host=127.0.0.1
+        xdebug.remote_port=9000
+        xdebug.remote_handler=dbgp
+        xdebug.profiler_enable=0
+        xdebug.profiler_output_dir="/tmp/xdebug"
+        xdebug.remote_mode=req
+        max_execution_time = 300
+        date.timezone = UTC
+  EOF
+    fi
+  '';
+
+  src = args.fetchurl {
+    url = "http://nl.php.net/get/php-${version}.tar.bz2/from/this/mirror";
+    md5 = "7380ffecebd95c6edb317ef861229ebd";
+    name = "php-${version}.tar.bz2";
+  };
 
+  meta = {
+    description = "The PHP language runtime engine";
+    homepage = http://www.php.net/;
+    license = "PHP-3";
   };
 
-}
+  patches = [./fix.patch];
+
+})
diff --git a/pkgs/development/interpreters/python-new/2.5/default.nix b/pkgs/development/interpreters/python-new/2.5/default.nix
index 10943c9842d..1287c1e5946 100644
--- a/pkgs/development/interpreters/python-new/2.5/default.nix
+++ b/pkgs/development/interpreters/python-new/2.5/default.nix
@@ -129,7 +129,7 @@ in
     ### python libraries:
 
     wxPythonBaseFun = (t.pythonLibSetup.merge (a :
-      let inherit (a.fixed) wxGTK version; in
+      let inherit (a.fixed.passthru) wxGTK;  inherit (a.fixed) version; in
         {
           buildInputs = [p.pkgconfig wxGTK (wxGTK.gtk)];
           setupFlags=["WXPORT=gtk2 NO_HEADERS=1 BUILD_GLCANVAS=0 BUILD_OGL=0 UNICODE=1"];
@@ -196,7 +196,7 @@ in
   # If you install dozens of python packages this might be bloat.
   # So  I think the overhead of installing these packages into the same store path should be prefered.
   pygtkBaseFun = (t.pythonLibStub.merge (a :
-    let inherit (a.fixed) glib gtk; in lib.mergeAttrsByFuncDefaults [
+    let inherit (a.fixed.passthru) glib gtk; in lib.mergeAttrsByFuncDefaults [
     {
       unpackPhase = "true";
       configurePhase = "true";
@@ -312,7 +312,7 @@ in
 
   pygtk212 = t.pygtkBaseFun.merge (a : {
     version = "2.12.1";
-    name = "pygobject-${a.fixed.pygobjectVersion}-and-pygtk-${a.fixed.version}";
+    name = "pygobject-${a.fixed.passthru.pygobjectVersion}-and-pygtk-${a.fixed.version}";
     pygtkSrc = fetchurl { 
       url = http://ftp.acc.umu.se/pub/GNOME/sources/pygtk/2.12/pygtk-2.12.1.tar.bz2;
       sha256 = "0gg13xgr7y9sppw8bdys042928nc66czn74g60333c4my95ys021";
diff --git a/pkgs/development/libraries/fltk/default.nix b/pkgs/development/libraries/fltk/default.nix
index 6632088ade7..d3a9f9ea3e8 100644
--- a/pkgs/development/libraries/fltk/default.nix
+++ b/pkgs/development/libraries/fltk/default.nix
@@ -1,47 +1,45 @@
 args: with args;
 let inherit (args.composableDerivation) composableDerivation edf; in
-composableDerivation {
-  initial = {
+composableDerivation {} {
 
-    name = "fltk-2.0.x-r6483";
+  name = "fltk-2.0.x-r6483";
 
-    src = args.fetchurl {
-      url = ftp://ftp.easysw.com/pub/fltk/snapshots/fltk-2.0.x-r6483.tar.bz2;
-      sha256 = "1n8b53r5p0zb4sbvr6pj8aasls4zjwksv1sdc3r3pzb20fikp5jb";
-    };
+  src = args.fetchurl {
+    url = ftp://ftp.easysw.com/pub/fltk/snapshots/fltk-2.0.x-r6483.tar.bz2;
+    sha256 = "1n8b53r5p0zb4sbvr6pj8aasls4zjwksv1sdc3r3pzb20fikp5jb";
+  };
 
-    propagatedBuildInputs=[x11 inputproto libXi freeglut];
+  propagatedBuildInputs=[x11 inputproto libXi freeglut];
 
-    buildInputs = [ args.pkgconfig ];
+  buildInputs = [ args.pkgconfig ];
 
-    flags =
-      # this could be tidied up (?).. eg why does it require freeglut without glSupport?
-      edf { name = "cygwin"; }  #         use the CygWin libraries default=no
-      // edf { name = "debug"; }  #          turn on debugging default=no
-      // edf { name = "gl"; enable = { buildInputs = [ mesa ]; }; }  #             turn on OpenGL support default=yes
-      // edf { name = "shared"; }  #         turn on shared libraries default=no
-      // edf { name = "threads"; }  #        enable multi-threading support
-      // edf { name = "quartz"; enable = { buildInputs = "quartz"; }; }  # don't konw yet what quartz is #         use Quartz instead of Quickdraw (default=no)
-      // edf { name = "largefile"; } #     omit support for large files
-      // edf { name = "localjpeg"; disable = { buildInputs = [libjpeg]; }; } #       use local JPEG library, default=auto
-      // edf { name = "localzlib"; disable = { buildInputs = [zlib]; }; } #       use local ZLIB library, default=auto
-      // edf { name = "localpng"; disable = { buildInputs = [libpng]; }; } #       use local PNG library, default=auto
-      // edf { name = "xinerama"; enable = { buildInputs = [libXinerama]; }; } #       turn on Xinerama support default=no
-      // edf { name = "xft"; enable = { buildInputs=[libXft]; }; } #            turn on Xft support default=no
-      // edf { name = "xdbe"; };  #           turn on Xdbe support default=no
-    cfg = {
-        largefileSupport = true; # is default
-        glSupport = true; # doesn't build without it. Why?
-        localjpegSupport = false;
-        localzlibSupport = false;
-        localpngSupport = false;
-        sharedSupport = true;
-        threadsSupport = true;
-    };
+  flags =
+    # this could be tidied up (?).. eg why does it require freeglut without glSupport?
+    edf { name = "cygwin"; }  #         use the CygWin libraries default=no
+    // edf { name = "debug"; }  #          turn on debugging default=no
+    // edf { name = "gl"; enable = { buildInputs = [ mesa ]; }; }  #             turn on OpenGL support default=yes
+    // edf { name = "shared"; }  #         turn on shared libraries default=no
+    // edf { name = "threads"; }  #        enable multi-threading support
+    // edf { name = "quartz"; enable = { buildInputs = "quartz"; }; }  # don't konw yet what quartz is #         use Quartz instead of Quickdraw (default=no)
+    // edf { name = "largefile"; } #     omit support for large files
+    // edf { name = "localjpeg"; disable = { buildInputs = [libjpeg]; }; } #       use local JPEG library, default=auto
+    // edf { name = "localzlib"; disable = { buildInputs = [zlib]; }; } #       use local ZLIB library, default=auto
+    // edf { name = "localpng"; disable = { buildInputs = [libpng]; }; } #       use local PNG library, default=auto
+    // edf { name = "xinerama"; enable = { buildInputs = [libXinerama]; }; } #       turn on Xinerama support default=no
+    // edf { name = "xft"; enable = { buildInputs=[libXft]; }; } #            turn on Xft support default=no
+    // edf { name = "xdbe"; };  #           turn on Xdbe support default=no
+  cfg = {
+      largefileSupport = true; # is default
+      glSupport = true; # doesn't build without it. Why?
+      localjpegSupport = false;
+      localzlibSupport = false;
+      localpngSupport = false;
+      sharedSupport = true;
+      threadsSupport = true;
+  };
 
-    meta = {
-        description = "a C++ cross platform lightweight gui library binding";
-        homepage = http://www.fltk.org;
-    };
+  meta = {
+      description = "a C++ cross platform lightweight gui library binding";
+      homepage = http://www.fltk.org;
   };
 }
diff --git a/pkgs/development/libraries/geos/default.nix b/pkgs/development/libraries/geos/default.nix
index 10cc4d94d40..d30f55b95c6 100644
--- a/pkgs/development/libraries/geos/default.nix
+++ b/pkgs/development/libraries/geos/default.nix
@@ -1,38 +1,35 @@
 args: with args;
 let inherit (args.composableDerivation) composableDerivation edf; in
-composableDerivation {
+composableDerivation {} {
 
-  initial = {
+  buildInputs = [ "which" ]; # which is needed for the autogen.sh
 
-    buildInputs = [ "which" ]; # which is needed for the autogen.sh
+  flags =
+  # python and ruby untested 
+    edf { name = "python"; enable = { buildInputs = [ python ]; }; };
+    # (if args.use_svn then ["libtool" "autoconf" "automake" "swig"] else [])
+    # // edf { name = "ruby"; enable = { buildInputs = [ ruby ]; };}
 
-    flags =
-    # python and ruby untested 
-      edf { name = "python"; enable = { buildInputs = [ python ]; }; };
-      # (if args.use_svn then ["libtool" "autoconf" "automake" "swig"] else [])
-      # // edf { name = "ruby"; enable = { buildInputs = [ ruby ]; };}
+  name = "geos-3.0.3";
 
-    name = "geos-3.0.3";
-
-    src = fetchurl {
-        url = http://download.osgeo.org/geos/geos-3.0.3.tar.bz2;
-        sha256 = "1pxk20jcbyidp3bvip1vdf8wfw2wvh8pcn810qkf1y3zfnki0c7k";
-    };
+  src = fetchurl {
+      url = http://download.osgeo.org/geos/geos-3.0.3.tar.bz2;
+      sha256 = "1pxk20jcbyidp3bvip1vdf8wfw2wvh8pcn810qkf1y3zfnki0c7k";
+  };
 
-    # for development version. can be removed ?
-    #configurePhase = "
-    #  [ -f configure ] || \\
-    #  LIBTOOLIZE=libtoolize ./autogen.sh
-    #  [>{ automake --add-missing; autoconf; }
-    #  unset configurePhase; configurePhase
-    #";
+  # for development version. can be removed ?
+  #configurePhase = "
+  #  [ -f configure ] || \\
+  #  LIBTOOLIZE=libtoolize ./autogen.sh
+  #  [>{ automake --add-missing; autoconf; }
+  #  unset configurePhase; configurePhase
+  #";
 
-    meta = {
-        description = "C++ port of the Java Topology Suite (JTS)"
-          + "- all the OpenGIS \"Simple Features for SQL\" spatial predicate functions and spatial operators,"
-          + " as well as specific JTS topology functions such as IsValid";
-        homepage = http://geos.refractions.net/;
-        license = "GPL";
-    };
+  meta = {
+      description = "C++ port of the Java Topology Suite (JTS)"
+        + "- all the OpenGIS \"Simple Features for SQL\" spatial predicate functions and spatial operators,"
+        + " as well as specific JTS topology functions such as IsValid";
+      homepage = http://geos.refractions.net/;
+      license = "GPL";
   };
 }
diff --git a/pkgs/development/libraries/libdv/default.nix b/pkgs/development/libraries/libdv/default.nix
index 70211e928ee..69011a6ef97 100644
--- a/pkgs/development/libraries/libdv/default.nix
+++ b/pkgs/development/libraries/libdv/default.nix
@@ -1,29 +1,28 @@
 args: with args;
 let inherit (args.composableDerivation) composableDerivation edf; in
-composableDerivation {
-  initial = {
-    flags = { }
-      # TODO! implement flags
-      # I want to get kino and cinelerra working. That's why I don't spend more time on this now
-      // edf { name = "libtool_lock"; } #avoid locking (might break parallel builds)
-      // edf { name ="asm"; } #disable use of architecture specific assembly code
-      // edf { name ="sdl"; } #enable use of SDL for display
-      // edf { name ="gtk"; } #disable use of gtk for display
-      // edf { name ="xv"; } #disable use of XVideo extension for display
-      // edf { name ="gprof"; }; #enable compiler options for gprof profiling
+composableDerivation {} {
 
-    name = "libdv-1.0.0";
+  flags = { }
+    # TODO! implement flags
+    # I want to get kino and cinelerra working. That's why I don't spend more time on this now
+    // edf { name = "libtool_lock"; } #avoid locking (might break parallel builds)
+    // edf { name ="asm"; } #disable use of architecture specific assembly code
+    // edf { name ="sdl"; } #enable use of SDL for display
+    // edf { name ="gtk"; } #disable use of gtk for display
+    // edf { name ="xv"; } #disable use of XVideo extension for display
+    // edf { name ="gprof"; }; #enable compiler options for gprof profiling
 
-    src = args.fetchurl {
-      url = mirror://sourceforge/libdv/libdv-1.0.0.tar.gz;
-      sha256 = "1fl96f2xh2slkv1i1ix7kqk576a0ak1d33cylm0mbhm96d0761d3";
-    };
+  name = "libdv-1.0.0";
 
-    meta = {
-      description = "software decoder for DV format video, as defined by the IEC 61834 and SMPTE 314M standards";
-      homepage = http://sourceforge.net/projects/libdv/;
-      # you can choose one of the following licenses: 
-      license = [];
-    };
+  src = args.fetchurl {
+    url = mirror://sourceforge/libdv/libdv-1.0.0.tar.gz;
+    sha256 = "1fl96f2xh2slkv1i1ix7kqk576a0ak1d33cylm0mbhm96d0761d3";
+  };
+
+  meta = {
+    description = "software decoder for DV format video, as defined by the IEC 61834 and SMPTE 314M standards";
+    homepage = http://sourceforge.net/projects/libdv/;
+    # you can choose one of the following licenses: 
+    license = [];
   };
 }
diff --git a/pkgs/development/tools/parsing/ragel/default.nix b/pkgs/development/tools/parsing/ragel/default.nix
index f60d32f09ea..2dec606254b 100644
--- a/pkgs/development/tools/parsing/ragel/default.nix
+++ b/pkgs/development/tools/parsing/ragel/default.nix
@@ -5,40 +5,38 @@ let
   name = "ragel-${version}";
 in
 
-composableDerivation.composableDerivation {
-  initial = rec {
-    inherit name;
-    src = fetchurl {
-      url = "http://www.complang.org/ragel/${name}.tar.gz";
-      sha256 = "018cedc8a68be85cda330fc53d0bb8a1ca6ad39b1cf790eed0311e7baa5a2520";
-    };
+composableDerivation.composableDerivation {} {
+  inherit name;
+  src = fetchurl {
+    url = "http://www.complang.org/ragel/${name}.tar.gz";
+    sha256 = "018cedc8a68be85cda330fc53d0bb8a1ca6ad39b1cf790eed0311e7baa5a2520";
+  };
 
-    flags = {
-      doc = {
-        # require fig2dev & pdflatex (see README)
-        buildInputs = [transfig texLive];
-        # use post* because default values of buildPhase is empty.
-        postBuild = ''
-          pushd doc
-          make
-          popd
-        '';
-        postInstall = ''
-          pushd doc
-          make install
-          popd
-        '';
-      };
+  flags = {
+    doc = {
+      # require fig2dev & pdflatex (see README)
+      buildInputs = [transfig texLive];
+      # use post* because default values of buildPhase is empty.
+      postBuild = ''
+        pushd doc
+        make
+        popd
+      '';
+      postInstall = ''
+        pushd doc
+        make install
+        popd
+      '';
     };
+  };
 
-    cfg = {
-      docSupport = false;
-    };
+  cfg = {
+    docSupport = false;
+  };
 
-    meta = {
-      homepage = http://www.complang.org/ragel;
-      description = "State machine compiler";
-      license = "GPL-2";
-    };
+  meta = {
+    homepage = http://www.complang.org/ragel;
+    description = "State machine compiler";
+    license = "GPL-2";
   };
 }
diff --git a/pkgs/lib/composable-derivation.nix b/pkgs/lib/composable-derivation.nix
index cc789866e2d..03f1f48ec72 100644
--- a/pkgs/lib/composable-derivation.nix
+++ b/pkgs/lib/composable-derivation.nix
@@ -12,14 +12,12 @@ let inherit (lib) nv nvs; in
   # TODO add newer example using new syntax (kernel derivation proposal -> mailinglist)
   composableDerivation = {
         mkDerivation ? pkgs.stdenv.mkDerivation,
-        # initial set of arguments to be passed to stdenv.mkDerivation passing prepareDerivationArgs by default
-        initial ? {},
 
         # list of functions to be applied before defaultOverridableDelayableArgs removes removeAttrs names
         # prepareDerivationArgs handles derivation configurations
-        # applyPreTidy ? [ lib.prepareDerivationArgs ],
-        applyPreTidy ? [],
+        applyPreTidy ? [ lib.prepareDerivationArgs ],
 
+        # consider adding addtional elements by derivation.merge { removeAttrs = ["elem"]; };
         removeAttrs ? ["cfg" "flags"]
 
       }: (lib.defaultOverridableDelayableArgs ( a: mkDerivation a) 
diff --git a/pkgs/misc/gxemul/default.nix b/pkgs/misc/gxemul/default.nix
index 548aad3bc27..54418c1bc1e 100644
--- a/pkgs/misc/gxemul/default.nix
+++ b/pkgs/misc/gxemul/default.nix
@@ -1,37 +1,35 @@
 args: with args;
 let edf = composableDerivation.edf;
     name = "gxemul-0.4.6"; in
-composableDerivation.composableDerivation {
+composableDerivation.composableDerivation {} {
 
-  initial = {
-    inherit name;
-    flags = {
-        doc   = { installPhase = "ensureDir \$out/share/${name}; cp -r doc \$out/share/${name};"; implies = "man"; };
-        demos = { installPhase = "ensureDir \$out/share/${name}; cp -r demos \$out/share/${name};"; };
-        man   = { installPhase = "cp -r ./man \$out/;";};
-    };
-
-    cfg = {
-      docSupport = true;
-      demosSupport = true;
-      manSupport = true;
-    };
+  inherit name;
+  flags = {
+      doc   = { installPhase = "ensureDir \$out/share/${name}; cp -r doc \$out/share/${name};"; implies = "man"; };
+      demos = { installPhase = "ensureDir \$out/share/${name}; cp -r demos \$out/share/${name};"; };
+      man   = { installPhase = "cp -r ./man \$out/;";};
+  };
 
-    installPhase = "ensureDir \$out/bin; cp gxemul \$out/bin;";
+  cfg = {
+    docSupport = true;
+    demosSupport = true;
+    manSupport = true;
+  };
 
-    src = fetchurl {
-      url = http://gavare.se/gxemul/src/gxemul-0.4.6.tar.gz;
-      sha256 = "0hf3gi6hfd2qr5090zimfiddcjgank2q6m7dfsr81wwpxfbhb2z3";
-    };
+  installPhase = "ensureDir \$out/bin; cp gxemul \$out/bin;";
 
-    configurePhase="./configure";
+  src = fetchurl {
+    url = http://gavare.se/gxemul/src/gxemul-0.4.6.tar.gz;
+    sha256 = "0hf3gi6hfd2qr5090zimfiddcjgank2q6m7dfsr81wwpxfbhb2z3";
+  };
 
-    meta = {
-      license = "BSD";
-      description = "A Machine Emulator, Mainly emulates MIPS, but supports other CPU type";
-      homepage = http://gavare.se/gxemul/;
-    };
+  configurePhase="./configure";
 
-    mergeAttrBy = { installPhase = a : b : "${a}\n${b}"; };
+  meta = {
+    license = "BSD";
+    description = "A Machine Emulator, Mainly emulates MIPS, but supports other CPU type";
+    homepage = http://gavare.se/gxemul/;
   };
+
+  mergeAttrBy = { installPhase = a : b : "${a}\n${b}"; };
 }
diff --git a/pkgs/misc/jackaudio/default.nix b/pkgs/misc/jackaudio/default.nix
index c7c010963c5..d8ef2863b1f 100644
--- a/pkgs/misc/jackaudio/default.nix
+++ b/pkgs/misc/jackaudio/default.nix
@@ -2,52 +2,50 @@
 # still much to test but it compiles now
 args:
 let inherit (args.composableDerivation) composableDerivation edf; in
-composableDerivation {
-  initial = {
-    buildInputs = [ args.pkgconfig ];
-    flags =
-        # FIXME: tidy up
-         edf { name = "posix-shm"; } #use POSIX shm API
-      // edf { name = "timestamps"; }                      # allow clients to use the JACK timestamp API
-      // edf { name = "capabilities"; }                   #use libcap to gain realtime scheduling priviledges
-      // edf { name = "oldtrans"; }                      #remove old transport interfaces
-      // edf { name = "stripped-jackd"; }                 #strip jack before computing its md5 sum
-      // edf { name = "portaudio"; }                     #ignore PortAudio driver
-      // edf { name = "coreaudio"; }                     #ignore CoreAudio driver
-      // edf { name = "oss"; }                           #ignore OSS driver
-      // edf { name = "freebob"; }                       #ignore FreeBob driver
-      // edf { name = "alsa"; enable = { buildInputs=[args.alsaLib]; }; };
+composableDerivation {} {
+  buildInputs = [ args.pkgconfig ];
+  flags =
+      # FIXME: tidy up
+       edf { name = "posix-shm"; } #use POSIX shm API
+    // edf { name = "timestamps"; }                      # allow clients to use the JACK timestamp API
+    // edf { name = "capabilities"; }                   #use libcap to gain realtime scheduling priviledges
+    // edf { name = "oldtrans"; }                      #remove old transport interfaces
+    // edf { name = "stripped-jackd"; }                 #strip jack before computing its md5 sum
+    // edf { name = "portaudio"; }                     #ignore PortAudio driver
+    // edf { name = "coreaudio"; }                     #ignore CoreAudio driver
+    // edf { name = "oss"; }                           #ignore OSS driver
+    // edf { name = "freebob"; }                       #ignore FreeBob driver
+    // edf { name = "alsa"; enable = { buildInputs=[args.alsaLib]; }; };
 
-      # altivec seems to be for mac only ?
-      #  altivec =           { configureFlags = ["--enable-altivec"]; };                        #enable Altivec support (default=auto)
+    # altivec seems to be for mac only ?
+    #  altivec =           { configureFlags = ["--enable-altivec"]; };                        #enable Altivec support (default=auto)
 
-      # keeping default values by now:
-      # optimization_by_compiler = { configureFlags = ["--enable-optimization-by-compiler"]; }; [>use compiler (NOT processor) capabilities to determine optimization flags
-      # optimization_by_cpu = { configureFlags = ["--enable-optimization-by-cpu"]; };          [>use processor capabilities to determine optimization flags
+    # keeping default values by now:
+    # optimization_by_compiler = { configureFlags = ["--enable-optimization-by-compiler"]; }; [>use compiler (NOT processor) capabilities to determine optimization flags
+    # optimization_by_cpu = { configureFlags = ["--enable-optimization-by-cpu"]; };          [>use processor capabilities to determine optimization flags
 
-      # I think the default is ok
-      # mmx =              edf { name = "mmx"; };                           #enable MMX support (default=auto)
-      #sse =               edf { name = "sse"; };                            #enable SSE support (default=auto)
-      #dynsimd =           edf { name = "dynsimd"; };                        #enable dynamic SIMD selection (default=no)
-      #optimize =          edf { name = "optimize"; };                       #ask the compiler for its best optimizations
-      #resize =            edf { name = "resize"; };                         #enable buffer resizing feature
-      #ensure_mlock =      edf { name = "ensure-mlock"; };                   #fail if unable to lock memory
-      #debug =             edf { name = "debug"; };                          #enable debugging messages in jackd and libjack
-      #preemption_check =  edf { name = "preemption-check"; };               #
-    cfg = {
-      posix_shmSupport = true;
-      timestampsSupport = true;
-      alsaSupport = true;
-    };
-    name = "jack-0.103.0";
-    src = args.fetchurl {
-      url = "mirror://sourceforge/jackit/jack-audio-connection-kit-0.109.2.tar.gz";
-      sha256 = "1m5z8dzalqspsa63pkcgyns0cvh0kqwhb9g1ivcwvnz0bc7ag9r7";
-    };
-    meta = {
-      description = "jack audio connection kit";
-      homepage = "http://jackaudio.org";
-      license = "GPL";
-    };
-    };
+    # I think the default is ok
+    # mmx =              edf { name = "mmx"; };                           #enable MMX support (default=auto)
+    #sse =               edf { name = "sse"; };                            #enable SSE support (default=auto)
+    #dynsimd =           edf { name = "dynsimd"; };                        #enable dynamic SIMD selection (default=no)
+    #optimize =          edf { name = "optimize"; };                       #ask the compiler for its best optimizations
+    #resize =            edf { name = "resize"; };                         #enable buffer resizing feature
+    #ensure_mlock =      edf { name = "ensure-mlock"; };                   #fail if unable to lock memory
+    #debug =             edf { name = "debug"; };                          #enable debugging messages in jackd and libjack
+    #preemption_check =  edf { name = "preemption-check"; };               #
+  cfg = {
+    posix_shmSupport = true;
+    timestampsSupport = true;
+    alsaSupport = true;
+  };
+  name = "jack-0.103.0";
+  src = args.fetchurl {
+    url = "mirror://sourceforge/jackit/jack-audio-connection-kit-0.109.2.tar.gz";
+    sha256 = "1m5z8dzalqspsa63pkcgyns0cvh0kqwhb9g1ivcwvnz0bc7ag9r7";
+  };
+  meta = {
+    description = "jack audio connection kit";
+    homepage = "http://jackaudio.org";
+    license = "GPL";
+  };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 91f14e1cd9f..a8025096f07 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -8946,7 +8946,7 @@ let
   };
 
   # doesn't compile yet - in case someone else want's to continue ..
-  qgis =  composedArgsAndFun (selectVersion ../applications/misc/qgis "0.11.0") {
+  qgis =  (selectVersion ../applications/misc/qgis "0.11.0") {
     inherit composableDerivation fetchsvn stdenv flex lib
             ncurses fetchurl perl cmake gdal geos proj x11
             gsl libpng zlib bison