For instance, if time.timeZone is defined multiple times, you now get
the error message:
error: user-thrown exception: The unique option `time.timeZone' is defined multiple times, in `/etc/nixos/configurations/misc/eelco/x11vnc.nix' and `/etc/nixos/configuration.nix'.
while previously you got:
error: user-thrown exception: Multiple definitions of string. Only one is allowed for this option.
and only an inspection of the stack trace gave a clue as to what
option caused the problem.
Also, when an option definition fails to type-check, print the file
name of the module in which the offending definition occurs, e.g.
error: user-thrown exception: The option value `boot.loader.grub.version' in `/etc/nixos/configuration.nix' is not a integer.
The major changes are:
* The evaluation is now driven by the declared options. In
particular, this fixes the long-standing problem with lack of
laziness of disabled option definitions. Thus, a configuration like
config = mkIf false {
environment.systemPackages = throw "bla";
};
will now evaluate without throwing an error. This also improves
performance since we're not evaluating unused option definitions.
* The implementation of properties is greatly simplified.
* There is a new type constructor "submodule" that replaces
"optionSet". Unlike "optionSet", "submodule" gets its option
declarations as an argument, making it more like "listOf" and other
type constructors. A typical use is:
foo = mkOption {
type = type.attrsOf (type.submodule (
{ config, ... }:
{ bar = mkOption { ... };
xyzzy = mkOption { ... };
}));
};
Existing uses of "optionSet" are automatically mapped to
"submodule".
* Modules are now checked for unsupported attributes: you get an error
if a module contains an attribute other than "config", "options" or
"imports".
* The new implementation is faster and uses much less memory.
I actually had this breeding in my nixpkgs overrides for a year and only
recently took the time to fix it and thus revive my video feeds :-)
The package uses a patch which is removing the dependency on gconf and
switches to storage within a shelve in ~/.miro/config instead.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Compiles fine on linux i686 and amd64. Adding myself as maintainer, even
though I'm not using the package by myself, but a friend is using it for
DJing from a NixOS live system I'm maintaining.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
This uses a patch from Gentoo to disable Java support for now, as it is
not needed for supporting Mixxx (which is the package I'm preparing).
Hopefully, the patch will be applied upstream so we can safely drop it
here.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>