Go to file
aszlig 98faa0c8f3
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>
2016-02-17 21:12:24 +01:00
doc Merge branch 'staging' 2016-02-17 10:54:26 +01:00
lib lib/types: Set name of types.package to "package" 2016-02-17 21:12:24 +01:00
maintainers copy-tarballs.pl: Create redirects before uploading file 2015-12-16 15:39:08 +01:00
nixos nixos: Provide a defaultText for type = package 2016-02-17 21:12:24 +01:00
pkgs jenkins: 1.643 -> 1.647 2016-02-17 20:45:01 +01:00
.gitignore gitignore: pkgs/development/libraries/qt-5/*/tmp/ 2015-02-21 11:39:20 -06:00
.mention-bot .mention-bot: remove illegal comment (close #11488) 2015-12-15 14:46:39 +01:00
.travis.yml travis-ci: use trusty (has 7.5G ram compared to previous 3) 2015-11-02 13:04:03 +01:00
.version .version: remove trailing newline 2015-08-27 00:30:42 +02:00
CONTRIBUTING.md CONTRIBUTING.md: add a notice about licensing 2015-12-19 14:38:00 +01:00
COPYING COPYING: Update year range to 2016 (close #12621) 2016-01-26 10:10:45 +01:00
README.md Set issuestats badges to flat style 2016-01-02 16:31:47 +00:00
default.nix Expose minimum required Nix version. 2015-11-26 23:11:11 +08:00

README.md

logo

Build Status Issue Stats Issue Stats

Nixpkgs is a collection of packages for the Nix package manager. It is periodically built and tested by the hydra build daemon as so-called channels. To get channel information via git, add nixpkgs-channels as a remote:

% git remote add channels git://github.com/NixOS/nixpkgs-channels.git

For stability and maximum binary package support, it is recommended to maintain custom changes on top of one of the channels, e.g. nixos-15.09 for the latest release and nixos-unstable for the latest successful build of master:

% git remote update channels
% git rebase channels/nixos-15.09

For pull-requests, please rebase onto nixpkgs master.

NixOS linux distribution source code is located inside nixos/ folder.

Communication: