diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2018-02-22 17:28:51 +0100 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2018-02-22 17:28:51 +0100 |
commit | d12c9911dfcb336243c9d13b8bc7042be3f3d4b2 (patch) | |
tree | b689c775feef38ad8c315999e0a761dfa694eb1e /nixos/doc/manual | |
parent | fab12188b855d9ac1f64f486ee38f1cf7d53c8f4 (diff) | |
parent | 186c76539855a8d1a3e76af0ff95b5de50aa48f8 (diff) | |
download | nixlib-d12c9911dfcb336243c9d13b8bc7042be3f3d4b2.tar nixlib-d12c9911dfcb336243c9d13b8bc7042be3f3d4b2.tar.gz nixlib-d12c9911dfcb336243c9d13b8bc7042be3f3d4b2.tar.bz2 nixlib-d12c9911dfcb336243c9d13b8bc7042be3f3d4b2.tar.lz nixlib-d12c9911dfcb336243c9d13b8bc7042be3f3d4b2.tar.xz nixlib-d12c9911dfcb336243c9d13b8bc7042be3f3d4b2.tar.zst nixlib-d12c9911dfcb336243c9d13b8bc7042be3f3d4b2.zip |
Merge remote-tracking branch 'origin/master' into nix-2.0
Diffstat (limited to 'nixos/doc/manual')
-rw-r--r-- | nixos/doc/manual/configuration/ipv4-config.xml | 2 | ||||
-rw-r--r-- | nixos/doc/manual/configuration/ipv6-config.xml | 2 | ||||
-rw-r--r-- | nixos/doc/manual/configuration/xfce.xml | 13 | ||||
-rw-r--r-- | nixos/doc/manual/default.nix | 55 | ||||
-rw-r--r-- | nixos/doc/manual/installation/changing-config.xml | 18 | ||||
-rw-r--r-- | nixos/doc/manual/installation/installing.xml | 11 | ||||
-rw-r--r-- | nixos/doc/manual/options-to-docbook.xsl | 9 | ||||
-rw-r--r-- | nixos/doc/manual/release-notes/rl-1803.xml | 83 |
8 files changed, 165 insertions, 28 deletions
diff --git a/nixos/doc/manual/configuration/ipv4-config.xml b/nixos/doc/manual/configuration/ipv4-config.xml index 053501b1736d..68238b547d60 100644 --- a/nixos/doc/manual/configuration/ipv4-config.xml +++ b/nixos/doc/manual/configuration/ipv4-config.xml @@ -12,7 +12,7 @@ interfaces. However, you can configure an interface manually as follows: <programlisting> -networking.interfaces.eth0.ip4 = [ { address = "192.168.1.2"; prefixLength = 24; } ]; +networking.interfaces.eth0.ipv4.addresses = [ { address = "192.168.1.2"; prefixLength = 24; } ]; </programlisting> Typically you’ll also want to set a default gateway and set of name diff --git a/nixos/doc/manual/configuration/ipv6-config.xml b/nixos/doc/manual/configuration/ipv6-config.xml index 6d9e0a164e9e..74a21e18ec3f 100644 --- a/nixos/doc/manual/configuration/ipv6-config.xml +++ b/nixos/doc/manual/configuration/ipv6-config.xml @@ -26,7 +26,7 @@ boot.kernel.sysctl."net.ipv6.conf.eth0.disable_ipv6" = true; DHCPv6. You can configure an interface manually: <programlisting> -networking.interfaces.eth0.ip6 = [ { address = "fe00:aa:bb:cc::2"; prefixLength = 64; } ]; +networking.interfaces.eth0.ipv6.addresses = [ { address = "fe00:aa:bb:cc::2"; prefixLength = 64; } ]; </programlisting> </para> diff --git a/nixos/doc/manual/configuration/xfce.xml b/nixos/doc/manual/configuration/xfce.xml index 21c7a85e19cc..18804d2c08be 100644 --- a/nixos/doc/manual/configuration/xfce.xml +++ b/nixos/doc/manual/configuration/xfce.xml @@ -35,18 +35,7 @@ services.compton = { To install them manually (system wide), put them into your <literal>environment.systemPackages</literal>. </para> - - <para> - NixOS’s default <emphasis>display manager</emphasis> is SLiM. - (DM is the program that provides a graphical login prompt - and manages the X server.) - You can, for example, select KDE’s - <command>sddm</command> instead: - <programlisting> -services.xserver.displayManager.sddm.enable = true; - </programlisting> - </para> - + <simplesect> <title>Thunar Volume Support</title> diff --git a/nixos/doc/manual/default.nix b/nixos/doc/manual/default.nix index 8079a2feb29f..6098b057a370 100644 --- a/nixos/doc/manual/default.nix +++ b/nixos/doc/manual/default.nix @@ -6,7 +6,7 @@ let lib = pkgs.lib; # Remove invisible and internal options. - optionsList = lib.filter (opt: opt.visible && !opt.internal) (lib.optionAttrSetToDocList options); + optionsListVisible = lib.filter (opt: opt.visible && !opt.internal) (lib.optionAttrSetToDocList options); # Replace functions by the string <function> substFunction = x: @@ -15,13 +15,43 @@ let else if lib.isFunction x then "<function>" else x; - # Clean up declaration sites to not refer to the NixOS source tree. - optionsList' = lib.flip map optionsList (opt: opt // { + # Generate DocBook documentation for a list of packages. This is + # what `relatedPackages` option of `mkOption` from + # ../../../lib/options.nix influences. + # + # Each element of `relatedPackages` can be either + # - a string: that will be interpreted as an attribute name from `pkgs`, + # - a list: that will be interpreted as an attribute path from `pkgs`, + # - an attrset: that can specify `name`, `path`, `package`, `comment` + # (either of `name`, `path` is required, the rest are optional). + genRelatedPackages = packages: + let + unpack = p: if lib.isString p then { name = p; } + else if lib.isList p then { path = p; } + else p; + describe = args: + let + name = args.name or (lib.concatStringsSep "." args.path); + path = args.path or [ args.name ]; + package = args.package or (lib.attrByPath path (throw "Invalid package attribute path `${toString path}'") pkgs); + in "<listitem>" + + "<para><literal>pkgs.${name} (${package.meta.name})</literal>" + + lib.optionalString (!package.meta.available) " <emphasis>[UNAVAILABLE]</emphasis>" + + ": ${package.meta.description or "???"}.</para>" + + lib.optionalString (args ? comment) "\n<para>${args.comment}</para>" + # Lots of `longDescription's break DocBook, so we just wrap them into <programlisting> + + lib.optionalString (package.meta ? longDescription) "\n<programlisting>${package.meta.longDescription}</programlisting>" + + "</listitem>"; + in "<itemizedlist>${lib.concatStringsSep "\n" (map (p: describe (unpack p)) packages)}</itemizedlist>"; + + optionsListDesc = lib.flip map optionsListVisible (opt: opt // { + # Clean up declaration sites to not refer to the NixOS source tree. declarations = map stripAnyPrefixes opt.declarations; } // lib.optionalAttrs (opt ? example) { example = substFunction opt.example; } // lib.optionalAttrs (opt ? default) { default = substFunction opt.default; } - // lib.optionalAttrs (opt ? type) { type = substFunction opt.type; }); + // lib.optionalAttrs (opt ? type) { type = substFunction opt.type; } + // lib.optionalAttrs (opt ? relatedPackages) { relatedPackages = genRelatedPackages opt.relatedPackages; }); # We need to strip references to /nix/store/* from options, # including any `extraSources` if some modules came from elsewhere, @@ -32,8 +62,21 @@ let prefixesToStrip = map (p: "${toString p}/") ([ ../../.. ] ++ extraSources); stripAnyPrefixes = lib.flip (lib.fold lib.removePrefix) prefixesToStrip; + # Custom "less" that pushes up all the things ending in ".enable*" + # and ".package*" + optionLess = a: b: + let + ise = lib.hasPrefix "enable"; + isp = lib.hasPrefix "package"; + cmp = lib.splitByAndCompare ise lib.compare + (lib.splitByAndCompare isp lib.compare lib.compare); + in lib.compareLists cmp a.loc b.loc < 0; + + # Customly sort option list for the man page. + optionsList = lib.sort optionLess optionsListDesc; + # Convert the list of options into an XML file. - optionsXML = builtins.toFile "options.xml" (builtins.toXML optionsList'); + optionsXML = builtins.toFile "options.xml" (builtins.toXML optionsList); optionsDocBook = runCommand "options-db.xml" {} '' optionsXML=${optionsXML} @@ -191,7 +234,7 @@ in rec { mkdir -p $dst cp ${builtins.toFile "options.json" (builtins.unsafeDiscardStringContext (builtins.toJSON - (builtins.listToAttrs (map (o: { name = o.name; value = removeAttrs o ["name" "visible" "internal"]; }) optionsList')))) + (builtins.listToAttrs (map (o: { name = o.name; value = removeAttrs o ["name" "visible" "internal"]; }) optionsList)))) } $dst/options.json mkdir -p $out/nix-support diff --git a/nixos/doc/manual/installation/changing-config.xml b/nixos/doc/manual/installation/changing-config.xml index 75df307a1b7c..4db9020b9606 100644 --- a/nixos/doc/manual/installation/changing-config.xml +++ b/nixos/doc/manual/installation/changing-config.xml @@ -70,9 +70,21 @@ $ ./result/bin/run-*-vm </screen> The VM does not have any data from your host system, so your existing -user accounts and home directories will not be available. You can -forward ports on the host to the guest. For instance, the following -will forward host port 2222 to guest port 22 (SSH): +user accounts and home directories will not be available unless you +have set <literal>mutableUsers = false</literal>. Another way is to +temporarily add the following to your configuration: + +<screen> +users.extraUsers.your-user.initialPassword = "test" +</screen> + +<emphasis>Important:</emphasis> delete the $hostname.qcow2 file if you +have started the virtual machine at least once without the right +users, otherwise the changes will not get picked up. + +You can forward ports on the host to the guest. For +instance, the following will forward host port 2222 to guest port 22 +(SSH): <screen> $ QEMU_NET_OPTS="hostfwd=tcp::2222-:22" ./result/bin/run-*-vm diff --git a/nixos/doc/manual/installation/installing.xml b/nixos/doc/manual/installation/installing.xml index d4746f2eb3a8..2a5d1fc3ce8d 100644 --- a/nixos/doc/manual/installation/installing.xml +++ b/nixos/doc/manual/installation/installing.xml @@ -275,11 +275,20 @@ Enter new UNIX password: *** Retype new UNIX password: *** </screen> + <note> + <para> + To prevent the password prompt, set <code>users.mutableUsers = false;</code> in + <filename>configuration.nix</filename>, which allows unattended installation + necessary in automation. + </para> + </note> + </para> </listitem> - <listitem><para>If everything went well: + <listitem> + <para>If everything went well: <screen> # reboot</screen> diff --git a/nixos/doc/manual/options-to-docbook.xsl b/nixos/doc/manual/options-to-docbook.xsl index 5387546b5982..7b45b233ab2a 100644 --- a/nixos/doc/manual/options-to-docbook.xsl +++ b/nixos/doc/manual/options-to-docbook.xsl @@ -70,6 +70,15 @@ </para> </xsl:if> + <xsl:if test="attr[@name = 'relatedPackages']"> + <para> + <emphasis>Related packages:</emphasis> + <xsl:text> </xsl:text> + <xsl:value-of disable-output-escaping="yes" + select="attr[@name = 'relatedPackages']/string/@value" /> + </para> + </xsl:if> + <xsl:if test="count(attr[@name = 'declarations']/list/*) != 0"> <para> <emphasis>Declared by:</emphasis> diff --git a/nixos/doc/manual/release-notes/rl-1803.xml b/nixos/doc/manual/release-notes/rl-1803.xml index 8391c550afab..ce58c4dc95b0 100644 --- a/nixos/doc/manual/release-notes/rl-1803.xml +++ b/nixos/doc/manual/release-notes/rl-1803.xml @@ -38,6 +38,16 @@ has the following highlights: </para> </itemizedlist> </para> </listitem> + + <listitem> + <para> + The GNOME version is now 3.26. + </para> + </listitem> + + <listitem> + <para>PHP now defaults to PHP 7.2</para> + </listitem> </itemizedlist> </section> @@ -135,6 +145,17 @@ following incompatible changes:</para> </listitem> <listitem> <para> + The <literal>openssh</literal> package + now includes Kerberos support by default; + the <literal>openssh_with_kerberos</literal> package + is now a deprecated alias. + If you do not want Kerberos support, + you can do <literal>openssh.override { withKerboros = false; }</literal>. + Note, this also applies to the <literal>openssh_hpn</literal> package. + </para> + </listitem> + <listitem> + <para> <literal>cc-wrapper</literal> has been split in two; there is now also a <literal>bintools-wrapper</literal>. The most commonly used files in <filename>nix-support</filename> are now split between the two wrappers. Some commonly used ones, like <filename>nix-support/dynamic-linker</filename>, are duplicated for backwards compatability, even though they rightly belong only in <literal>bintools-wrapper</literal>. @@ -196,6 +217,28 @@ following incompatible changes:</para> </listitem> </itemizedlist> </listitem> + <listitem> + <para> + The <literal>jid</literal> package has been removed, due to maintenance + overhead of a go package having non-versioned dependencies. + </para> + </listitem> + <listitem> + <para> + When using <option>services.xserver.libinput</option> (enabled by default in GNOME), + it now handles all input devices, not just touchpads. As a result, you might need to + re-evaluate any custom Xorg configuration. In particular, + <literal>Option "XkbRules" "base"</literal> may result in broken keyboard layout. + </para> + </listitem> + <listitem> + <para> + The <literal>attic</literal> package was removed. A maintained fork called + <link xlink:href="https://www.borgbackup.org/">Borg</link> should be used instead. + Migration instructions can be found + <link xlink:href="http://borgbackup.readthedocs.io/en/stable/usage/upgrade.html#attic-and-borg-0-xx-to-borg-1-x">here</link>. + </para> + </listitem> </itemizedlist> </section> @@ -226,10 +269,42 @@ following incompatible changes:</para> </listitem> <listitem> <para> - The option <option>services.xserver.desktopManager.default</option> is now <literal>none</literal> by default. - An assertion failure is thrown if WM's and DM's default are <literal>none</literal>. - To explicitly run a plain X session without and DM or WM, the newly introduced option <option>services.xserver.plainX</option> - must be set to true. + In the module <option>networking.interfaces.<name></option> the + following options have been removed: + <itemizedlist> + <listitem> + <para><option>ipAddress</option></para> + </listitem> + <listitem> + <para><option>ipv6Address</option></para> + </listitem> + <listitem> + <para><option>prefixLength</option></para> + </listitem> + <listitem> + <para><option>ipv6PrefixLength</option></para> + </listitem> + <listitem> + <para><option>subnetMask</option></para> + </listitem> + </itemizedlist> + To assign static addresses to an interface the options + <option>ipv4.addresses</option> and <option>ipv6.addresses</option> + should be used instead. + The options <option>ip4</option> and <option>ip6</option> have been + renamed to <option>ipv4.addresses</option> <option>ipv6.addresses</option> + respectively. + The new options <option>ipv4.routes</option> and <option>ipv6.routes</option> + have been added to set up static routing. + </para> + </listitem> + <listitem> + <para> + The option <option>services.xserver.desktopManager.default</option> is now + <literal>none</literal> by default. An assertion failure is thrown if WM's + and DM's default are <literal>none</literal>. + To explicitly run a plain X session without and DM or WM, the newly + introduced option <option>services.xserver.plainX</option> must be set to true. </para> </listitem> <listitem> |