summary refs log tree commit diff
path: root/doc/packageconfig.xml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/packageconfig.xml')
-rw-r--r--doc/packageconfig.xml70
1 files changed, 70 insertions, 0 deletions
diff --git a/doc/packageconfig.xml b/doc/packageconfig.xml
new file mode 100644
index 00000000000..b5e57df71ff
--- /dev/null
+++ b/doc/packageconfig.xml
@@ -0,0 +1,70 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xml:id="chap-packageconfig">
+
+<title><filename>~/.nixpkgs/config.nix</filename>: global configuration</title>
+
+    <para>
+      Nix packages can be configured to allow or deny certain options.
+    </para>
+
+    <para>
+        To apply the configuration edit <filename>~/.nixpkgs/config.nix</filename>
+        and set it like
+<programlisting>{
+  allowUnfree = true;
+}</programlisting>
+        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.
+    </para>
+
+    <itemizedlist>
+        <listitem>
+            <para>
+                Allow installing of packages that are distributed under unfree license by setting
+                <programlisting>allowUnfree = true;</programlisting>
+                or deny them by setting it to <literal>false</literal>.
+            </para>
+            <para>
+                Same can be achieved by setting the environment variable:
+                <programlisting>$ export NIXPKGS_ALLOW_UNFREE=1</programlisting>
+            </para>
+        </listitem>
+
+        <listitem>
+            <para>
+                Whenever unfree packages are not allowed, single packages can
+                still be allowed by a predicate function that accepts package
+                as an argument and should return a boolean:
+                <programlisting>allowUnfreePredicate = (pkg: ...);</programlisting>
+
+                Example to allow flash player only:
+                <programlisting>allowUnfreePredicate = (pkg: pkgs.lib.hasPrefix "flashplayer-" pkg.name);</programlisting>
+            </para>
+        </listitem>
+
+        <listitem>
+            <para>
+                Whenever unfree packages are not allowed, packages can still be
+                whitelisted by their license:
+                <programlisting>whitelistedLicenses = with stdenv.lib.licenses; [ amd wtfpl ];</programlisting>
+            </para>
+        </listitem>
+
+        <listitem>
+            <para>
+                In addition to whitelisting licenses which are denied by the
+                <literal>allowUnfree</literal> setting, you can also explicitely
+                deny installation of packages which have a certain license:
+                <programlisting>blacklistedLicenses = with stdenv.lib.licenses; [ agpl3 gpl3 ];</programlisting>
+            </para>
+        </listitem>
+    </itemizedlist>
+
+    <para>
+        A complete list of licenses can be found in the file
+        <filename>lib/licenses.nix</filename> of the nix package tree.
+    </para>
+
+</chapter>
\ No newline at end of file