diff options
author | aszlig <aszlig@redmoonstudios.org> | 2016-02-17 20:24:22 +0100 |
---|---|---|
committer | aszlig <aszlig@redmoonstudios.org> | 2016-02-17 21:12:24 +0100 |
commit | 98faa0c8f3d22ad168b979edb7f92212ab710369 (patch) | |
tree | ad5d7dc95bd4b20fd8f8a467d7f8f4150f7e3658 /lib/types.nix | |
parent | 7bdcfb33f4cb21021833d5a0adbf02b3099bc37c (diff) |
lib/types: Set name of types.package to "package"
Nobody seems to have noticed this (except @Profpatsch) that options with
a "package" type do not get included in the manual.
So debugging this was a bit more involving because while generating the
manual there is an optionList' attribute built from the collected
attributes of all the option declarations.
Up to that point everything is fine except if it comes to
builtins.toXML, where attributes with { type = "derivation" } won't get
included, for example see here:
nix-repl> builtins.toXML { type = "derivation"; foo = "bar"; }
"<?xml version='1.0' encoding='utf-8'?>\n<expr>\n <derivation>
<repeated />\n </derivation>\n</expr>\n"
nix-repl> builtins.toXML { type = "somethingelse"; foo = "bar"; }
"<?xml version='1.0' encoding='utf-8'?>\n<expr>\n <attrs>
<attr name=\"foo\">\n <string value=\"bar\" />\n </attr>
<attr name=\"type\">\n <string value=\"somethingelse\" />
</attr>\n </attrs>\n</expr>\n"
The following function in libexpr/eval.cc (Nix) is responsible for toXML
dropping the attributes:
bool EvalState::isDerivation(Value & v)
{
if (v.type != tAttrs) return false;
Bindings::iterator i = v.attrs->find(sType);
if (i == v.attrs->end()) return false;
forceValue(*i->value);
if (i->value->type != tString) return false;
return strcmp(i->value->string.s, "derivation") == 0;
}
So I've renamed this now to "package" which is not only more consistent
with the option type but also shouldn't cause similar issues anymore.
Tested this on base of b60ceea, because building the dependencies on
recent libc/staging changes on master took too long.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Reported-by: Profpatsch <mail@profpatsch.de>
Diffstat (limited to 'lib/types.nix')
-rw-r--r-- | lib/types.nix | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/types.nix b/lib/types.nix index b833417e73d4..b4d29ac84d28 100644 --- a/lib/types.nix +++ b/lib/types.nix @@ -93,7 +93,7 @@ rec { # derivation is a reserved keyword. package = mkOptionType { - name = "derivation"; + name = "package"; check = x: isDerivation x || isStorePath x; merge = loc: defs: let res = mergeOneOption loc defs; |