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
This commit is contained in:
Marc Weber
2009-03-06 23:21:28 +00:00
parent 51289a41b0
commit b56ed35851
15 changed files with 564 additions and 593 deletions

View File

@@ -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;
};
}

View File

@@ -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";
};
}

View File

@@ -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 = [];
};
}