summary refs log tree commit diff
path: root/doc/overlays.xml
diff options
context:
space:
mode:
authorGraham Christensen <graham@grahamc.com>2018-05-01 19:54:21 -0400
committerGraham Christensen <graham@grahamc.com>2018-05-01 19:54:21 -0400
commit77161de4546697f9bf2da6d081eeba4c399b3313 (patch)
tree8f77aeeb5a17cbc0c76b4401a090f55addabf975 /doc/overlays.xml
parentfd2dce9708ff68e8a5474d9bf691a23c52c7273e (diff)
downloadnixlib-77161de4546697f9bf2da6d081eeba4c399b3313.tar
nixlib-77161de4546697f9bf2da6d081eeba4c399b3313.tar.gz
nixlib-77161de4546697f9bf2da6d081eeba4c399b3313.tar.bz2
nixlib-77161de4546697f9bf2da6d081eeba4c399b3313.tar.lz
nixlib-77161de4546697f9bf2da6d081eeba4c399b3313.tar.xz
nixlib-77161de4546697f9bf2da6d081eeba4c399b3313.tar.zst
nixlib-77161de4546697f9bf2da6d081eeba4c399b3313.zip
nixpkgs docs: format =)
Diffstat (limited to 'doc/overlays.xml')
-rw-r--r--doc/overlays.xml256
1 files changed, 143 insertions, 113 deletions
diff --git a/doc/overlays.xml b/doc/overlays.xml
index cc0aef447d2d..2decf9febe80 100644
--- a/doc/overlays.xml
+++ b/doc/overlays.xml
@@ -1,95 +1,117 @@
 <chapter xmlns="http://docbook.org/ns/docbook"
          xmlns:xlink="http://www.w3.org/1999/xlink"
          xml:id="chap-overlays">
-
-<title>Overlays</title>
-
-<para>This chapter describes how to extend and change Nixpkgs packages using
-overlays. Overlays are used to add layers in the fix-point used by Nixpkgs
-to compose the set of all packages.</para>
-
-<para>Nixpkgs can be configured with a list of overlays, which are
-applied in order. This means that the order of the overlays can be significant
-if multiple layers override the same package.</para>
-
+ <title>Overlays</title>
+ <para>
+  This chapter describes how to extend and change Nixpkgs packages using
+  overlays. Overlays are used to add layers in the fix-point used by Nixpkgs to
+  compose the set of all packages.
+ </para>
+ <para>
+  Nixpkgs can be configured with a list of overlays, which are applied in
+  order. This means that the order of the overlays can be significant if
+  multiple layers override the same package.
+ </para>
 <!--============================================================-->
-
-<section xml:id="sec-overlays-install">
-<title>Installing overlays</title>
-
-<para>The list of overlays is determined as follows.</para>
-
-<para>If the <varname>overlays</varname> argument is not provided explicitly, we look for overlays in a path. The path
-is determined as follows:
-
-<orderedlist>
-
-  <listitem>
-    <para>First, if an <varname>overlays</varname> argument to the nixpkgs function itself is given,
-    then that is used.</para>
-
-    <para>This can be passed explicitly when importing nipxkgs, for example 
-    <literal>import &lt;nixpkgs> { overlays = [ overlay1 overlay2 ]; }</literal>.</para>
-  </listitem>
-
-  <listitem>
-    <para>Otherwise, if the Nix path entry <literal>&lt;nixpkgs-overlays></literal> exists, we look for overlays
-    at that path, as described below.</para>
-
-    <para>See the section on <literal>NIX_PATH</literal> in the Nix manual for more details on how to 
-    set a value for <literal>&lt;nixpkgs-overlays>.</literal></para>
-  </listitem>
-
-  <listitem>
-    <para>If one of <filename>~/.config/nixpkgs/overlays.nix</filename> and
-    <filename>~/.config/nixpkgs/overlays/</filename> exists, then we look for overlays at that path, as
-    described below. It is an error if both exist.</para>
-  </listitem>
-
-</orderedlist>
-</para>
-
-<para>If we are looking for overlays at a path, then there are two cases:
-<itemizedlist>
-  <listitem>
-    <para>If the path is a file, then the file is imported as a Nix expression and used as the list of
-    overlays.</para>
-  </listitem>
-
-  <listitem>
-    <para>If the path is a directory, then we take the content of the directory, order it
-    lexicographically, and attempt to interpret each as an overlay by:
-    <itemizedlist>
-      <listitem>
-        <para>Importing the file, if it is a <literal>.nix</literal> file.</para>
-      </listitem>
-      <listitem>
-        <para>Importing a top-level <filename>default.nix</filename> file, if it is a directory.</para>
-      </listitem>
-    </itemizedlist>
-    </para>
-  </listitem>
-</itemizedlist>
-</para>
-
-<para>On a NixOS system the value of the <literal>nixpkgs.overlays</literal> option, if present, 
-is passed to the system Nixpkgs directly as an argument. Note that this does not affect the overlays for
-non-NixOS operations (e.g. <literal>nix-env</literal>), which are looked up independently.</para>
-
-<para>The <filename>overlays.nix</filename> option therefore provides a convenient way to use the same
-overlays for a NixOS system configuration and user configuration: the same file can be used
-as <filename>overlays.nix</filename> and imported as the value of <literal>nixpkgs.overlays</literal>.</para>
-
-</section>
-
+ <section xml:id="sec-overlays-install">
+  <title>Installing overlays</title>
+
+  <para>
+   The list of overlays is determined as follows.
+  </para>
+
+  <para>
+   If the <varname>overlays</varname> argument is not provided explicitly, we
+   look for overlays in a path. The path is determined as follows:
+   <orderedlist>
+    <listitem>
+     <para>
+      First, if an <varname>overlays</varname> argument to the nixpkgs function
+      itself is given, then that is used.
+     </para>
+     <para>
+      This can be passed explicitly when importing nipxkgs, for example
+      <literal>import &lt;nixpkgs> { overlays = [ overlay1 overlay2 ];
+      }</literal>.
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      Otherwise, if the Nix path entry <literal>&lt;nixpkgs-overlays></literal>
+      exists, we look for overlays at that path, as described below.
+     </para>
+     <para>
+      See the section on <literal>NIX_PATH</literal> in the Nix manual for more
+      details on how to set a value for
+      <literal>&lt;nixpkgs-overlays>.</literal>
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      If one of <filename>~/.config/nixpkgs/overlays.nix</filename> and
+      <filename>~/.config/nixpkgs/overlays/</filename> exists, then we look for
+      overlays at that path, as described below. It is an error if both exist.
+     </para>
+    </listitem>
+   </orderedlist>
+  </para>
+
+  <para>
+   If we are looking for overlays at a path, then there are two cases:
+   <itemizedlist>
+    <listitem>
+     <para>
+      If the path is a file, then the file is imported as a Nix expression and
+      used as the list of overlays.
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      If the path is a directory, then we take the content of the directory,
+      order it lexicographically, and attempt to interpret each as an overlay
+      by:
+      <itemizedlist>
+       <listitem>
+        <para>
+         Importing the file, if it is a <literal>.nix</literal> file.
+        </para>
+       </listitem>
+       <listitem>
+        <para>
+         Importing a top-level <filename>default.nix</filename> file, if it is
+         a directory.
+        </para>
+       </listitem>
+      </itemizedlist>
+     </para>
+    </listitem>
+   </itemizedlist>
+  </para>
+
+  <para>
+   On a NixOS system the value of the <literal>nixpkgs.overlays</literal>
+   option, if present, is passed to the system Nixpkgs directly as an argument.
+   Note that this does not affect the overlays for non-NixOS operations (e.g.
+   <literal>nix-env</literal>), which are looked up independently.
+  </para>
+
+  <para>
+   The <filename>overlays.nix</filename> option therefore provides a convenient
+   way to use the same overlays for a NixOS system configuration and user
+   configuration: the same file can be used as
+   <filename>overlays.nix</filename> and imported as the value of
+   <literal>nixpkgs.overlays</literal>.
+  </para>
+ </section>
 <!--============================================================-->
+ <section xml:id="sec-overlays-definition">
+  <title>Defining overlays</title>
 
-<section xml:id="sec-overlays-definition">
-<title>Defining overlays</title>
-
-<para>Overlays are Nix functions which accept two arguments, 
-conventionally called <varname>self</varname> and <varname>super</varname>, 
-and return a set of packages. For example, the following is a valid overlay.</para>
+  <para>
+   Overlays are Nix functions which accept two arguments, conventionally called
+   <varname>self</varname> and <varname>super</varname>, and return a set of
+   packages. For example, the following is a valid overlay.
+  </para>
 
 <programlisting>
 self: super:
@@ -104,31 +126,39 @@ self: super:
 }
 </programlisting>
 
-<para>The first argument (<varname>self</varname>) corresponds to the final package
-set. You should use this set for the dependencies of all packages specified in your
-overlay. For example, all the dependencies of <varname>rr</varname> in the example above come
-from <varname>self</varname>, as well as the overridden dependencies used in the
-<varname>boost</varname> override.</para>
-
-<para>The second argument (<varname>super</varname>)
-corresponds to the result of the evaluation of the previous stages of
-Nixpkgs. It does not contain any of the packages added by the current
-overlay, nor any of the following overlays. This set should be used either
-to refer to packages you wish to override, or to access functions defined
-in Nixpkgs. For example, the original recipe of <varname>boost</varname>
-in the above example, comes from <varname>super</varname>, as well as the
-<varname>callPackage</varname> function.</para>
-
-<para>The value returned by this function should be a set similar to
-<filename>pkgs/top-level/all-packages.nix</filename>, containing
-overridden and/or new packages.</para>
-
-<para>Overlays are similar to other methods for customizing Nixpkgs, in particular
-the <literal>packageOverrides</literal> attribute described in <xref linkend="sec-modify-via-packageOverrides"/>.
-Indeed, <literal>packageOverrides</literal> acts as an overlay with only the 
-<varname>super</varname> argument. It is therefore appropriate for basic use, 
-but overlays are more powerful and easier to distribute.</para>
-
-</section>
-
+  <para>
+   The first argument (<varname>self</varname>) corresponds to the final
+   package set. You should use this set for the dependencies of all packages
+   specified in your overlay. For example, all the dependencies of
+   <varname>rr</varname> in the example above come from
+   <varname>self</varname>, as well as the overridden dependencies used in the
+   <varname>boost</varname> override.
+  </para>
+
+  <para>
+   The second argument (<varname>super</varname>) corresponds to the result of
+   the evaluation of the previous stages of Nixpkgs. It does not contain any of
+   the packages added by the current overlay, nor any of the following
+   overlays. This set should be used either to refer to packages you wish to
+   override, or to access functions defined in Nixpkgs. For example, the
+   original recipe of <varname>boost</varname> in the above example, comes from
+   <varname>super</varname>, as well as the <varname>callPackage</varname>
+   function.
+  </para>
+
+  <para>
+   The value returned by this function should be a set similar to
+   <filename>pkgs/top-level/all-packages.nix</filename>, containing overridden
+   and/or new packages.
+  </para>
+
+  <para>
+   Overlays are similar to other methods for customizing Nixpkgs, in particular
+   the <literal>packageOverrides</literal> attribute described in
+   <xref linkend="sec-modify-via-packageOverrides"/>. Indeed,
+   <literal>packageOverrides</literal> acts as an overlay with only the
+   <varname>super</varname> argument. It is therefore appropriate for basic
+   use, but overlays are more powerful and easier to distribute.
+  </para>
+ </section>
 </chapter>