Merge pull request #7484 from seppeljordan/re#4505
Document about packageOverrides (re issue #4505)
This commit is contained in:
commit
69777a7cb4
@ -1,6 +1,6 @@
|
|||||||
<chapter xmlns="http://docbook.org/ns/docbook"
|
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
xml:id="chap-packageconfig">
|
xml:id="chap-packageconfig">
|
||||||
|
|
||||||
<title><filename>~/.nixpkgs/config.nix</filename>: global configuration</title>
|
<title><filename>~/.nixpkgs/config.nix</filename>: global configuration</title>
|
||||||
|
|
||||||
@ -9,62 +9,79 @@
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
To apply the configuration edit <filename>~/.nixpkgs/config.nix</filename>
|
To apply the configuration edit <filename>~/.nixpkgs/config.nix</filename>
|
||||||
and set it like
|
and set it like
|
||||||
<programlisting>{
|
<programlisting>{
|
||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
}</programlisting>
|
}</programlisting>
|
||||||
and will allow the Nix package manager to install unfree licensed packages.
|
and will allow the Nix package manager to install unfree licensed packages.
|
||||||
|
|
||||||
The configuration as listed also applies to NixOS under <option>nixpkgs.config</option> set.
|
The configuration as listed also applies to NixOS under <option>nixpkgs.config</option> set.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Allow installing of packages that are distributed under unfree license by setting
|
Allow installing of packages that are distributed under unfree license by setting
|
||||||
<programlisting>allowUnfree = true;</programlisting>
|
<programlisting>allowUnfree = true;</programlisting>
|
||||||
or deny them by setting it to <literal>false</literal>.
|
or deny them by setting it to <literal>false</literal>.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Same can be achieved by setting the environment variable:
|
Same can be achieved by setting the environment variable:
|
||||||
<programlisting>$ export NIXPKGS_ALLOW_UNFREE=1</programlisting>
|
<programlisting>$ export NIXPKGS_ALLOW_UNFREE=1</programlisting>
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Whenever unfree packages are not allowed, single packages can
|
Whenever unfree packages are not allowed, single packages can
|
||||||
still be allowed by a predicate function that accepts package
|
still be allowed by a predicate function that accepts package
|
||||||
as an argument and should return a boolean:
|
as an argument and should return a boolean:
|
||||||
<programlisting>allowUnfreePredicate = (pkg: ...);</programlisting>
|
<programlisting>allowUnfreePredicate = (pkg: ...);</programlisting>
|
||||||
|
|
||||||
Example to allow flash player only:
|
Example to allow flash player only:
|
||||||
<programlisting>allowUnfreePredicate = (pkg: pkgs.lib.hasPrefix "flashplayer-" pkg.name);</programlisting>
|
<programlisting>allowUnfreePredicate = (pkg: pkgs.lib.hasPrefix "flashplayer-" pkg.name);</programlisting>
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Whenever unfree packages are not allowed, packages can still be
|
Whenever unfree packages are not allowed, packages can still be
|
||||||
whitelisted by their license:
|
whitelisted by their license:
|
||||||
<programlisting>whitelistedLicenses = with stdenv.lib.licenses; [ amd wtfpl ];</programlisting>
|
<programlisting>whitelistedLicenses = with stdenv.lib.licenses; [ amd wtfpl ];</programlisting>
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
In addition to whitelisting licenses which are denied by the
|
In addition to whitelisting licenses which are denied by the
|
||||||
<literal>allowUnfree</literal> setting, you can also explicitely
|
<literal>allowUnfree</literal> setting, you can also explicitely
|
||||||
deny installation of packages which have a certain license:
|
deny installation of packages which have a certain license:
|
||||||
<programlisting>blacklistedLicenses = with stdenv.lib.licenses; [ agpl3 gpl3 ];</programlisting>
|
<programlisting>blacklistedLicenses = with stdenv.lib.licenses; [ agpl3 gpl3 ];</programlisting>
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
A complete list of licenses can be found in the file
|
A complete list of licenses can be found in the file
|
||||||
<filename>lib/licenses.nix</filename> of the nix package tree.
|
<filename>lib/licenses.nix</filename> of the nix package tree.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
</chapter>
|
<section><title>Modify packages via <literal>packageOverrides</literal></title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
|
||||||
|
You can define a function called <varname>packageOverrides</varname>
|
||||||
|
in your local <filename>~/.nixpkgs/config</filename> to overide nix
|
||||||
|
packages. It must be a function that takes pkgs as an argument and
|
||||||
|
return modified set of packages.
|
||||||
|
|
||||||
|
<programlisting>{
|
||||||
|
packageOverrides = pkgs: rec {
|
||||||
|
foo = pkgs.foo.override { ... };
|
||||||
|
};
|
||||||
|
}</programlisting>
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
Loading…
Reference in New Issue
Block a user