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:
@@ -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;
|
||||
};
|
||||
|
||||
installPhase = "ensureDir \$out/bin; cp gxemul \$out/bin;";
|
||||
|
||||
src = fetchurl {
|
||||
url = http://gavare.se/gxemul/src/gxemul-0.4.6.tar.gz;
|
||||
sha256 = "0hf3gi6hfd2qr5090zimfiddcjgank2q6m7dfsr81wwpxfbhb2z3";
|
||||
};
|
||||
|
||||
configurePhase="./configure";
|
||||
|
||||
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}"; };
|
||||
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;
|
||||
};
|
||||
|
||||
installPhase = "ensureDir \$out/bin; cp gxemul \$out/bin;";
|
||||
|
||||
src = fetchurl {
|
||||
url = http://gavare.se/gxemul/src/gxemul-0.4.6.tar.gz;
|
||||
sha256 = "0hf3gi6hfd2qr5090zimfiddcjgank2q6m7dfsr81wwpxfbhb2z3";
|
||||
};
|
||||
|
||||
configurePhase="./configure";
|
||||
|
||||
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}"; };
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user