summary refs log tree commit diff
diff options
context:
space:
mode:
authorRobert Hensing <robert@roberthensing.nl>2021-03-04 17:54:35 +0100
committerRobert Hensing <robert@roberthensing.nl>2021-03-04 18:10:57 +0100
commit7d551ead60f90b8c879bea7ce421f54482406dbb (patch)
treef2f2eef1cdd0f71dfc1e953e24271eae98a4c90c
parent0a4a486096bc2a6efb1bc0d11543f208eda23dc3 (diff)
downloadnixpkgs-7d551ead60f90b8c879bea7ce421f54482406dbb.tar
nixpkgs-7d551ead60f90b8c879bea7ce421f54482406dbb.tar.gz
nixpkgs-7d551ead60f90b8c879bea7ce421f54482406dbb.tar.bz2
nixpkgs-7d551ead60f90b8c879bea7ce421f54482406dbb.tar.lz
nixpkgs-7d551ead60f90b8c879bea7ce421f54482406dbb.tar.xz
nixpkgs-7d551ead60f90b8c879bea7ce421f54482406dbb.tar.zst
nixpkgs-7d551ead60f90b8c879bea7ce421f54482406dbb.zip
doc: Format
-rw-r--r--doc/builders/packages/citrix.xml2
-rw-r--r--doc/contributing/coding-conventions.xml12
-rw-r--r--doc/functions/library/attrsets.xml6
-rw-r--r--doc/stdenv/multiple-output.xml1
-rw-r--r--doc/stdenv/stdenv.xml12
-rw-r--r--doc/using/configuration.xml2
-rw-r--r--doc/using/overlays.xml256
7 files changed, 114 insertions, 177 deletions
diff --git a/doc/builders/packages/citrix.xml b/doc/builders/packages/citrix.xml
index 803eb2e4fc4..7a16b79f232 100644
--- a/doc/builders/packages/citrix.xml
+++ b/doc/builders/packages/citrix.xml
@@ -17,9 +17,11 @@
 
  <section xml:id="sec-citrix-selfservice">
   <title>Citrix Selfservice</title>
+
   <para>
    The <link xlink:href="https://support.citrix.com/article/CTX200337">selfservice</link> is an application managing Citrix desktops and applications. Please note that this feature only works with at least <package>citrix_workspace_20_06_0</package> and later versions.
   </para>
+
   <para>
    In order to set this up, you first have to <link xlink:href="https://its.uiowa.edu/support/article/102186">download the <literal>.cr</literal> file from the Netscaler Gateway</link>. After that you can configure the <command>selfservice</command> like this:
 <screen>
diff --git a/doc/contributing/coding-conventions.xml b/doc/contributing/coding-conventions.xml
index 9005a9ebafd..9f00942918c 100644
--- a/doc/contributing/coding-conventions.xml
+++ b/doc/contributing/coding-conventions.xml
@@ -180,17 +180,12 @@ args.stdenv.mkDerivation (args // {
    </listitem>
    <listitem>
     <para>
-     Arguments should be listed in the order they are used, with the
-     exception of <varname>lib</varname>, which always goes first.
+     Arguments should be listed in the order they are used, with the exception of <varname>lib</varname>, which always goes first.
     </para>
    </listitem>
    <listitem>
     <para>
-     Prefer using the top-level <varname>lib</varname> over its alias
-     <literal>stdenv.lib</literal>.  <varname>lib</varname> is unrelated to
-     <varname>stdenv</varname>, and so <literal>stdenv.lib</literal> should only
-     be used as a convenience alias when developing to avoid having to modify
-     the function inputs just to test something out.
+     Prefer using the top-level <varname>lib</varname> over its alias <literal>stdenv.lib</literal>. <varname>lib</varname> is unrelated to <varname>stdenv</varname>, and so <literal>stdenv.lib</literal> should only be used as a convenience alias when developing to avoid having to modify the function inputs just to test something out.
     </para>
    </listitem>
   </itemizedlist>
@@ -689,8 +684,7 @@ args.stdenv.mkDerivation (args // {
        </varlistentry>
        <varlistentry>
         <term>
-         If it’s a <emphasis>theme</emphasis> for a <emphasis>desktop environment</emphasis>,
-         a <emphasis>window manager</emphasis> or a <emphasis>display manager</emphasis>:
+         If it’s a <emphasis>theme</emphasis> for a <emphasis>desktop environment</emphasis>, a <emphasis>window manager</emphasis> or a <emphasis>display manager</emphasis>:
         </term>
         <listitem>
          <para>
diff --git a/doc/functions/library/attrsets.xml b/doc/functions/library/attrsets.xml
index 7ef0d16624c..9a4e640935f 100644
--- a/doc/functions/library/attrsets.xml
+++ b/doc/functions/library/attrsets.xml
@@ -1677,8 +1677,7 @@ recursiveUpdate
   <xi:include href="./locations.xml" xpointer="lib.attrsets.recurseIntoAttrs" />
 
   <para>
-   Make various Nix tools consider the contents of the resulting
-   attribute set when looking for what to build, find, etc.
+   Make various Nix tools consider the contents of the resulting attribute set when looking for what to build, find, etc.
   </para>
 
   <para>
@@ -1720,7 +1719,7 @@ recursiveUpdate
   <xi:include href="./locations.xml" xpointer="lib.attrsets.cartesianProductOfSets" />
 
   <para>
-    Return the cartesian product of attribute set value combinations.
+   Return the cartesian product of attribute set value combinations.
   </para>
 
   <variablelist>
@@ -1749,5 +1748,4 @@ cartesianProductOfSets { a = [ 1 2 ]; b = [ 10 20 ]; }
 ]]></programlisting>
   </example>
  </section>
-
 </section>
diff --git a/doc/stdenv/multiple-output.xml b/doc/stdenv/multiple-output.xml
index f710a9959ad..5f2d2b8cfb9 100644
--- a/doc/stdenv/multiple-output.xml
+++ b/doc/stdenv/multiple-output.xml
@@ -26,7 +26,6 @@
   <para>
    A number of attributes can be used to work with a derivation with multiple outputs. The attribute <varname>outputs</varname> is a list of strings, which are the names of the outputs. For each of these names, an identically named attribute is created, corresponding to that output. The attribute <varname>meta.outputsToInstall</varname> is used to determine the default set of outputs to install when using the derivation name unqualified.
   </para>
-
  </section>
  <section xml:id="sec-multiple-outputs-installing">
   <title>Installing a split package</title>
diff --git a/doc/stdenv/stdenv.xml b/doc/stdenv/stdenv.xml
index 21485425f26..b2004270e9b 100644
--- a/doc/stdenv/stdenv.xml
+++ b/doc/stdenv/stdenv.xml
@@ -1136,9 +1136,9 @@ preBuild = ''
 
    <variablelist>
     <title>Variables controlling the install phase</title>
-     <varlistentry xml:id="var-stdenv-dontInstall">
+    <varlistentry xml:id="var-stdenv-dontInstall">
      <term>
-       <varname>dontInstall</varname>
+      <varname>dontInstall</varname>
      </term>
      <listitem>
       <para>
@@ -1839,10 +1839,7 @@ addEnvHooks "$hostOffset" myBashFunction
      </term>
      <listitem>
       <para>
-       This setup hook moves any systemd user units installed in the lib
-       subdirectory into share. In addition, a link is provided from share to
-       lib for compatibility. This is needed for systemd to find user services
-       when installed into the user profile.
+       This setup hook moves any systemd user units installed in the lib subdirectory into share. In addition, a link is provided from share to lib for compatibility. This is needed for systemd to find user services when installed into the user profile.
       </para>
      </listitem>
     </varlistentry>
@@ -2022,8 +2019,7 @@ addEnvHooks "$hostOffset" myBashFunction
        This is a special setup hook which helps in packaging proprietary software in that it automatically tries to find missing shared library dependencies of ELF files based on the given <varname>buildInputs</varname> and <varname>nativeBuildInputs</varname>.
       </para>
       <para>
-       You can also specify a <varname>runtimeDependencies</varname> variable which lists dependencies to be unconditionally added to <glossterm>rpath</glossterm> of all executables.
-       This is useful for programs that use <citerefentry>
+       You can also specify a <varname>runtimeDependencies</varname> variable which lists dependencies to be unconditionally added to <glossterm>rpath</glossterm> of all executables. This is useful for programs that use <citerefentry>
        <refentrytitle>dlopen</refentrytitle>
        <manvolnum>3</manvolnum> </citerefentry> to load libraries at runtime.
       </para>
diff --git a/doc/using/configuration.xml b/doc/using/configuration.xml
index 8e63e0072c8..3ef39733458 100644
--- a/doc/using/configuration.xml
+++ b/doc/using/configuration.xml
@@ -170,7 +170,7 @@
 </programlisting>
     </para>
     <para>
-      Note that <literal>allowlistedLicenses</literal> only applies to unfree licenses unless <literal>allowUnfree</literal> is enabled. It is not a generic allowlist for all types of licenses. <literal>blocklistedLicenses</literal> applies to all licenses.
+     Note that <literal>allowlistedLicenses</literal> only applies to unfree licenses unless <literal>allowUnfree</literal> is enabled. It is not a generic allowlist for all types of licenses. <literal>blocklistedLicenses</literal> applies to all licenses.
     </para>
    </listitem>
   </itemizedlist>
diff --git a/doc/using/overlays.xml b/doc/using/overlays.xml
index 8bda235d43d..1def8b06955 100644
--- a/doc/using/overlays.xml
+++ b/doc/using/overlays.xml
@@ -28,8 +28,7 @@
    </para>
 
    <para>
-    NOTE: DO NOT USE THIS in nixpkgs.
-    Further overlays can be added by calling the <literal>pkgs.extend</literal> or <literal>pkgs.appendOverlays</literal>, although it is often preferable to avoid these functions, because they recompute the Nixpkgs fixpoint, which is somewhat expensive to do.
+    NOTE: DO NOT USE THIS in nixpkgs. Further overlays can be added by calling the <literal>pkgs.extend</literal> or <literal>pkgs.appendOverlays</literal>, although it is often preferable to avoid these functions, because they recompute the Nixpkgs fixpoint, which is somewhat expensive to do.
    </para>
   </section>
 
@@ -139,98 +138,72 @@ self: super:
   </para>
  </section>
  <section xml:id="sec-overlays-alternatives">
-   <title>Using overlays to configure alternatives</title>
+  <title>Using overlays to configure alternatives</title>
+
+  <para>
+   Certain software packages have different implementations of the same interface. Other distributions have functionality to switch between these. For example, Debian provides <link
+     xlink:href="https://wiki.debian.org/DebianAlternatives">DebianAlternatives</link>. Nixpkgs has what we call <literal>alternatives</literal>, which are configured through overlays.
+  </para>
+
+  <section xml:id="sec-overlays-alternatives-blas-lapack">
+   <title>BLAS/LAPACK</title>
+
    <para>
-     Certain software packages have different implementations of the
-     same interface. Other distributions have functionality to switch
-     between these. For example, Debian provides <link
-     xlink:href="https://wiki.debian.org/DebianAlternatives">DebianAlternatives</link>.
-     Nixpkgs has what we call <literal>alternatives</literal>, which
-     are configured through overlays.
+    In Nixpkgs, we have multiple implementations of the BLAS/LAPACK numerical linear algebra interfaces. They are:
    </para>
-   <section xml:id="sec-overlays-alternatives-blas-lapack">
-     <title>BLAS/LAPACK</title>
+
+   <itemizedlist>
+    <listitem>
      <para>
-       In Nixpkgs, we have multiple implementations of the BLAS/LAPACK
-       numerical linear algebra interfaces. They are:
+      <link xlink:href="https://www.openblas.net/">OpenBLAS</link>
      </para>
-     <itemizedlist>
-       <listitem>
-         <para>
-           <link xlink:href="https://www.openblas.net/">OpenBLAS</link>
-         </para>
-         <para>
-           The Nixpkgs attribute is <literal>openblas</literal> for
-           ILP64 (integer width = 64 bits) and
-           <literal>openblasCompat</literal> for LP64 (integer width =
-           32 bits). <literal>openblasCompat</literal> is the default.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           <link xlink:href="http://www.netlib.org/lapack/">LAPACK
-           reference</link> (also provides BLAS)
-         </para>
-         <para>
-           The Nixpkgs attribute is <literal>lapack-reference</literal>.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           <link
-           xlink:href="https://software.intel.com/en-us/mkl">Intel
-           MKL</link> (only works on the x86_64 architecture, unfree)
-         </para>
-         <para>
-           The Nixpkgs attribute is <literal>mkl</literal>.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-           <link
+     <para>
+      The Nixpkgs attribute is <literal>openblas</literal> for ILP64 (integer width = 64 bits) and <literal>openblasCompat</literal> for LP64 (integer width = 32 bits). <literal>openblasCompat</literal> is the default.
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      <link xlink:href="http://www.netlib.org/lapack/">LAPACK reference</link> (also provides BLAS)
+     </para>
+     <para>
+      The Nixpkgs attribute is <literal>lapack-reference</literal>.
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      <link
+           xlink:href="https://software.intel.com/en-us/mkl">Intel MKL</link> (only works on the x86_64 architecture, unfree)
+     </para>
+     <para>
+      The Nixpkgs attribute is <literal>mkl</literal>.
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      <link
            xlink:href="https://github.com/flame/blis">BLIS</link>
-         </para>
-         <para>
-          BLIS, available through the attribute
-          <literal>blis</literal>, is a framework for linear algebra kernels. In
-          addition, it implements the BLAS interface.
-         </para>
-       </listitem>
-       <listitem>
-         <para>
-          <link
-           xlink:href="https://developer.amd.com/amd-aocl/blas-library/">AMD
-          BLIS/LIBFLAME</link> (optimized for modern AMD x86_64 CPUs)
-         </para>
-         <para>
-          The AMD fork of the BLIS library, with attribute
-          <literal>amd-blis</literal>, extends BLIS with optimizations for
-          modern AMD CPUs. The changes are usually submitted to
-          the upstream BLIS project after some time. However, AMD BLIS
-          typically provides some performance improvements on AMD Zen CPUs.
-          The complementary AMD LIBFLAME library, with attribute
-          <literal>amd-libflame</literal>, provides a LAPACK implementation.
-         </para>
-       </listitem>
-     </itemizedlist>
+     </para>
      <para>
-       Introduced in <link
-       xlink:href="https://github.com/NixOS/nixpkgs/pull/83888">PR
-       #83888</link>, we are able to override the <literal>blas</literal>
-       and <literal>lapack</literal> packages to use different implementations,
-       through the <literal>blasProvider</literal> and
-       <literal>lapackProvider</literal> argument. This can be used
-       to select a different provider. BLAS providers will have
-       symlinks in <literal>$out/lib/libblas.so.3</literal> and
-       <literal>$out/lib/libcblas.so.3</literal> to their respective
-       BLAS libraries. Likewise, LAPACK providers will have symlinks
-       in <literal>$out/lib/liblapack.so.3</literal> and
-       <literal>$out/lib/liblapacke.so.3</literal> to their respective
-       LAPACK libraries. For example, Intel MKL is both a BLAS and
-       LAPACK provider. An overlay can be created to use Intel MKL
-       that looks like:
+      BLIS, available through the attribute <literal>blis</literal>, is a framework for linear algebra kernels. In addition, it implements the BLAS interface.
      </para>
-     <programlisting>
+    </listitem>
+    <listitem>
+     <para>
+      <link
+           xlink:href="https://developer.amd.com/amd-aocl/blas-library/">AMD BLIS/LIBFLAME</link> (optimized for modern AMD x86_64 CPUs)
+     </para>
+     <para>
+      The AMD fork of the BLIS library, with attribute <literal>amd-blis</literal>, extends BLIS with optimizations for modern AMD CPUs. The changes are usually submitted to the upstream BLIS project after some time. However, AMD BLIS typically provides some performance improvements on AMD Zen CPUs. The complementary AMD LIBFLAME library, with attribute <literal>amd-libflame</literal>, provides a LAPACK implementation.
+     </para>
+    </listitem>
+   </itemizedlist>
+
+   <para>
+    Introduced in <link
+       xlink:href="https://github.com/NixOS/nixpkgs/pull/83888">PR #83888</link>, we are able to override the <literal>blas</literal> and <literal>lapack</literal> packages to use different implementations, through the <literal>blasProvider</literal> and <literal>lapackProvider</literal> argument. This can be used to select a different provider. BLAS providers will have symlinks in <literal>$out/lib/libblas.so.3</literal> and <literal>$out/lib/libcblas.so.3</literal> to their respective BLAS libraries. Likewise, LAPACK providers will have symlinks in <literal>$out/lib/liblapack.so.3</literal> and <literal>$out/lib/liblapacke.so.3</literal> to their respective LAPACK libraries. For example, Intel MKL is both a BLAS and LAPACK provider. An overlay can be created to use Intel MKL that looks like:
+   </para>
+
+<programlisting>
 self: super:
 
 {
@@ -243,46 +216,24 @@ self: super:
   };
 }
 </programlisting>
-     <para>
-       This overlay uses Intel’s MKL library for both BLAS and LAPACK
-       interfaces. Note that the same can be accomplished at runtime
-       using <literal>LD_LIBRARY_PATH</literal> of
-       <literal>libblas.so.3</literal> and
-       <literal>liblapack.so.3</literal>. For instance:
-     </para>
+
+   <para>
+    This overlay uses Intel’s MKL library for both BLAS and LAPACK interfaces. Note that the same can be accomplished at runtime using <literal>LD_LIBRARY_PATH</literal> of <literal>libblas.so.3</literal> and <literal>liblapack.so.3</literal>. For instance:
+   </para>
+
 <screen>
 <prompt>$ </prompt>LD_LIBRARY_PATH=$(nix-build -A mkl)/lib:$LD_LIBRARY_PATH nix-shell -p octave --run octave
 </screen>
-     <para>
-       Intel MKL requires an <literal>openmp</literal> implementation
-       when running with multiple processors. By default,
-       <literal>mkl</literal> will use Intel’s <literal>iomp</literal>
-       implementation if no other is specified, but this is a
-       runtime-only dependency and binary compatible with the LLVM
-       implementation. To use that one instead, Intel recommends users
-       set it with <literal>LD_PRELOAD</literal>. Note that
-       <literal>mkl</literal> is only available on
-       <literal>x86_64-linux</literal> and
-       <literal>x86_64-darwin</literal>. Moreover, Hydra is not
-       building and distributing pre-compiled binaries using it.
-     </para>
-     <para>
-       For BLAS/LAPACK switching to work correctly, all packages must
-       depend on <literal>blas</literal> or <literal>lapack</literal>.
-       This ensures that only one BLAS/LAPACK library is used at one
-       time. There are two versions versions of BLAS/LAPACK currently
-       in the wild, <literal>LP64</literal> (integer size = 32 bits)
-       and <literal>ILP64</literal> (integer size = 64 bits). Some
-       software needs special flags or patches to work with
-       <literal>ILP64</literal>. You can check if
-       <literal>ILP64</literal> is used in Nixpkgs with
-       <varname>blas.isILP64</varname> and
-       <varname>lapack.isILP64</varname>. Some software does NOT work
-       with <literal>ILP64</literal>, and derivations need to specify
-       an assertion to prevent this. You can prevent
-       <literal>ILP64</literal> from being used with the following:
-     </para>
-     <programlisting>
+
+   <para>
+    Intel MKL requires an <literal>openmp</literal> implementation when running with multiple processors. By default, <literal>mkl</literal> will use Intel’s <literal>iomp</literal> implementation if no other is specified, but this is a runtime-only dependency and binary compatible with the LLVM implementation. To use that one instead, Intel recommends users set it with <literal>LD_PRELOAD</literal>. Note that <literal>mkl</literal> is only available on <literal>x86_64-linux</literal> and <literal>x86_64-darwin</literal>. Moreover, Hydra is not building and distributing pre-compiled binaries using it.
+   </para>
+
+   <para>
+    For BLAS/LAPACK switching to work correctly, all packages must depend on <literal>blas</literal> or <literal>lapack</literal>. This ensures that only one BLAS/LAPACK library is used at one time. There are two versions versions of BLAS/LAPACK currently in the wild, <literal>LP64</literal> (integer size = 32 bits) and <literal>ILP64</literal> (integer size = 64 bits). Some software needs special flags or patches to work with <literal>ILP64</literal>. You can check if <literal>ILP64</literal> is used in Nixpkgs with <varname>blas.isILP64</varname> and <varname>lapack.isILP64</varname>. Some software does NOT work with <literal>ILP64</literal>, and derivations need to specify an assertion to prevent this. You can prevent <literal>ILP64</literal> from being used with the following:
+   </para>
+
+<programlisting>
 { stdenv, blas, lapack, ... }:
 
 assert (!blas.isILP64) &amp;&amp; (!lapack.isILP64);
@@ -291,41 +242,38 @@ stdenv.mkDerivation {
   ...
 }
 </programlisting>
-   </section>
-   <section xml:id="sec-overlays-alternatives-mpi">
-     <title>Switching the MPI implementation</title>
-     <para>
-       All programs that are built with
-       <link xlink:href="https://en.wikipedia.org/wiki/Message_Passing_Interface">MPI</link>
-       support use the generic attribute <varname>mpi</varname>
-       as an input. At the moment Nixpkgs natively provides two different
-       MPI implementations:
-       <itemizedlist>
-         <listitem>
-           <para>
-             <link xlink:href="https://www.open-mpi.org/">Open MPI</link>
-             (default), attribute name <varname>openmpi</varname>
-           </para>
-         </listitem>
-         <listitem>
-           <para>
-             <link xlink:href="https://www.mpich.org/">MPICH</link>,
-             attribute name <varname>mpich</varname>
-           </para>
-         </listitem>
-       </itemizedlist>
-     </para>
-     <para>
-       To provide MPI enabled applications that use <literal>MPICH</literal>, instead
-       of the default <literal>Open MPI</literal>, simply use the following overlay:
-     </para>
-     <programlisting>
+  </section>
+
+  <section xml:id="sec-overlays-alternatives-mpi">
+   <title>Switching the MPI implementation</title>
+
+   <para>
+    All programs that are built with <link xlink:href="https://en.wikipedia.org/wiki/Message_Passing_Interface">MPI</link> support use the generic attribute <varname>mpi</varname> as an input. At the moment Nixpkgs natively provides two different MPI implementations:
+    <itemizedlist>
+     <listitem>
+      <para>
+       <link xlink:href="https://www.open-mpi.org/">Open MPI</link> (default), attribute name <varname>openmpi</varname>
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <link xlink:href="https://www.mpich.org/">MPICH</link>, attribute name <varname>mpich</varname>
+      </para>
+     </listitem>
+    </itemizedlist>
+   </para>
+
+   <para>
+    To provide MPI enabled applications that use <literal>MPICH</literal>, instead of the default <literal>Open MPI</literal>, simply use the following overlay:
+   </para>
+
+<programlisting>
 self: super:
 
 {
   mpi = self.mpich;
 }
      </programlisting>
-   </section>
+  </section>
  </section>
 </chapter>