aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/nixos/doc
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/nixos/doc')
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/declarative-packages.xml6
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/luks-file-systems.xml34
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/x-windows.xml9
-rw-r--r--nixpkgs/nixos/doc/manual/development/option-types.xml36
-rwxr-xr-xnixpkgs/nixos/doc/manual/development/releases.xml6
-rw-r--r--nixpkgs/nixos/doc/manual/man-nixos-install.xml2
-rw-r--r--nixpkgs/nixos/doc/manual/man-pages.xml2
-rw-r--r--nixpkgs/nixos/doc/manual/release-notes/rl-2003.xml156
8 files changed, 241 insertions, 10 deletions
diff --git a/nixpkgs/nixos/doc/manual/configuration/declarative-packages.xml b/nixpkgs/nixos/doc/manual/configuration/declarative-packages.xml
index 5fb3bcb9f8f..cd84d1951d2 100644
--- a/nixpkgs/nixos/doc/manual/configuration/declarative-packages.xml
+++ b/nixpkgs/nixos/doc/manual/configuration/declarative-packages.xml
@@ -19,6 +19,12 @@
<command>nixos-rebuild switch</command>.
</para>
+ <note>
+ <para>
+ Some packages require additional global configuration such as D-Bus or systemd service registration so adding them to <xref linkend="opt-environment.systemPackages"/> might not be sufficient. You are advised to check the <link xlink:href="#ch-options">list of options</link> whether a NixOS module for the package does not exist.
+ </para>
+ </note>
+
<para>
You can get a list of the available packages as follows:
<screen>
diff --git a/nixpkgs/nixos/doc/manual/configuration/luks-file-systems.xml b/nixpkgs/nixos/doc/manual/configuration/luks-file-systems.xml
index 8a2b107e0ee..d3007843d68 100644
--- a/nixpkgs/nixos/doc/manual/configuration/luks-file-systems.xml
+++ b/nixpkgs/nixos/doc/manual/configuration/luks-file-systems.xml
@@ -37,4 +37,38 @@ Enter passphrase for /dev/disk/by-uuid/3f6b0024-3a44-4fde-a43a-767b872abe5d: ***
on an encrypted partition, it is necessary to add the following grub option:
<programlisting><xref linkend="opt-boot.loader.grub.enableCryptodisk"/> = true;</programlisting>
</para>
+ <section xml:id="sec-luks-file-systems-fido2">
+ <title>FIDO2</title>
+
+ <para>
+ NixOS also supports unlocking your LUKS-Encrypted file system using a FIDO2 compatible token. In the following example, we will create a new FIDO2 credential
+ and add it as a new key to our existing device <filename>/dev/sda2</filename>:
+
+ <screen>
+# export FIDO2_LABEL="/dev/sda2 @ $HOSTNAME"
+# fido2luks credential "$FIDO2_LABEL"
+f1d00200108b9d6e849a8b388da457688e3dd653b4e53770012d8f28e5d3b269865038c346802f36f3da7278b13ad6a3bb6a1452e24ebeeaa24ba40eef559b1b287d2a2f80b7
+
+# fido2luks -i add-key /dev/sda2 f1d00200108b9d6e849a8b388da457688e3dd653b4e53770012d8f28e5d3b269865038c346802f36f3da7278b13ad6a3bb6a1452e24ebeeaa24ba40eef559b1b287d2a2f80b7
+Password:
+Password (again):
+Old password:
+Old password (again):
+Added to key to device /dev/sda2, slot: 2
+</screen>
+
+ To ensure that this file system is decrypted using the FIDO2 compatible key, add the following to <filename>configuration.nix</filename>:
+<programlisting>
+<link linkend="opt-boot.initrd.luks.fido2Support">boot.initrd.luks.fido2Support</link> = true;
+<link linkend="opt-boot.initrd.luks.devices._name__.fido2.credential">boot.initrd.luks.devices."/dev/sda2".fido2.credential</link> = "f1d00200108b9d6e849a8b388da457688e3dd653b4e53770012d8f28e5d3b269865038c346802f36f3da7278b13ad6a3bb6a1452e24ebeeaa24ba40eef559b1b287d2a2f80b7";
+</programlisting>
+
+ You can also use the FIDO2 passwordless setup, but for security reasons, you might want to enable it only when your device is PIN protected, such as <link xlink:href="https://trezor.io/">Trezor</link>.
+
+<programlisting>
+<link linkend="opt-boot.initrd.luks.devices._name__.fido2.passwordLess">boot.initrd.luks.devices."/dev/sda2".fido2.passwordLess</link> = true;
+</programlisting>
+ </para>
+ </section>
+
</section>
diff --git a/nixpkgs/nixos/doc/manual/configuration/x-windows.xml b/nixpkgs/nixos/doc/manual/configuration/x-windows.xml
index 55ad9fe6e65..06dd7c8bfb9 100644
--- a/nixpkgs/nixos/doc/manual/configuration/x-windows.xml
+++ b/nixpkgs/nixos/doc/manual/configuration/x-windows.xml
@@ -85,11 +85,14 @@
<programlisting>
<xref linkend="opt-services.xserver.displayManager.defaultSession"/> = "none+i3";
</programlisting>
- And, finally, to enable auto-login for a user <literal>johndoe</literal>:
+ Every display manager in NixOS supports auto-login, here is an example
+ using lightdm for a user <literal>alice</literal>:
<programlisting>
-<xref linkend="opt-services.xserver.displayManager.auto.enable"/> = true;
-<xref linkend="opt-services.xserver.displayManager.auto.user"/> = "johndoe";
+<xref linkend="opt-services.xserver.displayManager.lightdm.enable"/> = true;
+<xref linkend="opt-services.xserver.displayManager.lightdm.autoLogin.enable"/> = true;
+<xref linkend="opt-services.xserver.displayManager.lightdm.autoLogin.user"/> = "alice";
</programlisting>
+ The options are named identically for all other display managers.
</para>
</simplesect>
<simplesect xml:id="sec-x11-graphics-cards-nvidia">
diff --git a/nixpkgs/nixos/doc/manual/development/option-types.xml b/nixpkgs/nixos/doc/manual/development/option-types.xml
index 1ec7e3efad7..957349ad181 100644
--- a/nixpkgs/nixos/doc/manual/development/option-types.xml
+++ b/nixpkgs/nixos/doc/manual/development/option-types.xml
@@ -257,9 +257,9 @@
<listitem>
<para>
A set of sub options <replaceable>o</replaceable>.
- <replaceable>o</replaceable> can be an attribute set or a function
- returning an attribute set. Submodules are used in composed types to
- create modular options. This is equivalent to
+ <replaceable>o</replaceable> can be an attribute set, a function
+ returning an attribute set, or a path to a file containing such a value. Submodules are used in
+ composed types to create modular options. This is equivalent to
<literal>types.submoduleWith { modules = toList o; shorthandOnlyDefinesConfig = true; }</literal>.
Submodules are detailed in
<xref
@@ -352,6 +352,36 @@
An attribute set of where all the values are of
<replaceable>t</replaceable> type. Multiple definitions result in the
joined attribute set.
+ <note><para>
+ This type is <emphasis>strict</emphasis> in its values, which in turn
+ means attributes cannot depend on other attributes. See <varname>
+ types.lazyAttrsOf</varname> for a lazy version.
+ </para></note>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <varname>types.lazyAttrsOf</varname> <replaceable>t</replaceable>
+ </term>
+ <listitem>
+ <para>
+ An attribute set of where all the values are of
+ <replaceable>t</replaceable> type. Multiple definitions result in the
+ joined attribute set. This is the lazy version of <varname>types.attrsOf
+ </varname>, allowing attributes to depend on each other.
+ <warning><para>
+ This version does not fully support conditional definitions! With an
+ option <varname>foo</varname> of this type and a definition
+ <literal>foo.attr = lib.mkIf false 10</literal>, evaluating
+ <literal>foo ? attr</literal> will return <literal>true</literal>
+ even though it should be false. Accessing the value will then throw
+ an error. For types <replaceable>t</replaceable> that have an
+ <literal>emptyValue</literal> defined, that value will be returned
+ instead of throwing an error. So if the type of <literal>foo.attr</literal>
+ was <literal>lazyAttrsOf (nullOr int)</literal>, <literal>null</literal>
+ would be returned instead for the same <literal>mkIf false</literal> definition.
+ </para></warning>
</para>
</listitem>
</varlistentry>
diff --git a/nixpkgs/nixos/doc/manual/development/releases.xml b/nixpkgs/nixos/doc/manual/development/releases.xml
index 9371af9984d..a22a0a3707b 100755
--- a/nixpkgs/nixos/doc/manual/development/releases.xml
+++ b/nixpkgs/nixos/doc/manual/development/releases.xml
@@ -187,7 +187,7 @@
</listitem>
<listitem>
<para>
- Update "Chapter 4. Upgrading NixOS" section of the manual to match
+ Update "Chapter 4. Upgrading NixOS" section of the manual to match
new stable release version.
</para>
</listitem>
@@ -237,6 +237,10 @@
experience.
</para>
<para>
+ Release managers for the current NixOS release are tracked by GitHub team
+ <link xlink:href="https://github.com/orgs/NixOS/teams/nixos-release-managers/members"><literal>@NixOS/nixos-release-managers</literal></link>.
+ </para>
+ <para>
A release manager's role and responsibilities are:
</para>
<itemizedlist>
diff --git a/nixpkgs/nixos/doc/manual/man-nixos-install.xml b/nixpkgs/nixos/doc/manual/man-nixos-install.xml
index 0752c397182..9255ce763ef 100644
--- a/nixpkgs/nixos/doc/manual/man-nixos-install.xml
+++ b/nixpkgs/nixos/doc/manual/man-nixos-install.xml
@@ -210,7 +210,7 @@
The closure must be an appropriately configured NixOS system, with boot
loader and partition configuration that fits the target host. Such a
closure is typically obtained with a command such as <command>nix-build
- -I nixos-config=./configuration.nix '&lt;nixos&gt;' -A system
+ -I nixos-config=./configuration.nix '&lt;nixpkgs/nixos&gt;' -A system
--no-out-link</command>
</para>
</listitem>
diff --git a/nixpkgs/nixos/doc/manual/man-pages.xml b/nixpkgs/nixos/doc/manual/man-pages.xml
index f5a1dd2d69f..49acfe7330b 100644
--- a/nixpkgs/nixos/doc/manual/man-pages.xml
+++ b/nixpkgs/nixos/doc/manual/man-pages.xml
@@ -6,7 +6,7 @@
<author><personname><firstname>Eelco</firstname><surname>Dolstra</surname></personname>
<contrib>Author</contrib>
</author>
- <copyright><year>2007-2019</year><holder>Eelco Dolstra</holder>
+ <copyright><year>2007-2020</year><holder>Eelco Dolstra</holder>
</copyright>
</info>
<xi:include href="man-configuration.xml" />
diff --git a/nixpkgs/nixos/doc/manual/release-notes/rl-2003.xml b/nixpkgs/nixos/doc/manual/release-notes/rl-2003.xml
index ca319dfea41..13981c0853d 100644
--- a/nixpkgs/nixos/doc/manual/release-notes/rl-2003.xml
+++ b/nixpkgs/nixos/doc/manual/release-notes/rl-2003.xml
@@ -126,7 +126,7 @@ services.xserver.displayManager.defaultSession = "xfce+icewm";
<listitem>
<para>
The <literal>dynamicHosts</literal> option has been removed from the
- <link linkend="opt-networking.networkmanager.enable">networkd</link>
+ <link linkend="opt-networking.networkmanager.enable">NetworkManager</link>
module. Allowing (multiple) regular users to override host entries
affecting the whole system opens up a huge attack vector.
There seem to be very rare cases where this might be useful.
@@ -170,6 +170,12 @@ services.xserver.displayManager.defaultSession = "xfce+icewm";
</listitem>
<listitem>
<para>
+ The Way Cooler wayland compositor has been removed, as the project has been officially canceled.
+ There are no more <literal>way-cooler</literal> attribute and <literal>programs.way-cooler</literal> options.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
The BEAM package set has been deleted. You will only find there the different interpreters.
You should now use the different build tools coming with the languages with sandbox mode disabled.
</para>
@@ -391,6 +397,148 @@ users.users.me =
<link xlink:href="https://github.com/NixOS/nixpkgs/pull/63103">PR #63103</link>.
</para>
</listitem>
+ <listitem>
+ <para>
+ For NixOS modules, the types <literal>types.submodule</literal> and <literal>types.submoduleWith</literal> now support
+ paths as allowed values, similar to how <literal>imports</literal> supports paths.
+ Because of this, if you have a module that defines an option of type
+ <literal>either (submodule ...) path</literal>, it will break since a path
+ is now treated as the first type instead of the second. To fix this, change
+ the type to <literal>either path (submodule ...)</literal>.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The <link linkend="opt-services.buildkite-agent.enable">Buildkite Agent</link>
+ module and corresponding packages have been updated to 3.x.
+ While doing so, the following options have been changed:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>services.buildkite-agent.meta-data</literal> has been renamed to
+ <link linkend="opt-services.buildkite-agent.tags">services.buildkite-agent.tags</link>,
+ to match upstreams naming for 3.x.
+ Its type has also changed - it now accepts an attrset of strings.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The<literal>services.buildkite-agent.openssh.publicKeyPath</literal> option
+ has been removed, as it's not necessary to deploy public keys to clone private
+ repositories.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>services.buildkite-agent.openssh.privateKeyPath</literal>
+ has been renamed to
+ <link linkend="opt-services.buildkite-agent.privateSshKeyPath">buildkite-agent.privateSshKeyPath</link>,
+ as the whole <literal>openssh</literal> now only contained that single option.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="opt-services.buildkite-agent.shell">services.buildkite-agent.shell</link>
+ has been introduced, allowing to specify a custom shell to be used.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ The <literal>citrix_workspace_19_3_0</literal> package has been removed as
+ it will be EOLed within the lifespan of 20.03. For further information,
+ please refer to the <link xlink:href="https://www.citrix.com/de-de/support/product-lifecycle/milestones/receiver.html">support and maintenance information</link> from upstream.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The <literal>gcc5</literal> and <literal>gfortran5</literal> packages have been removed.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The <option>services.xserver.displayManager.auto</option> module has been removed.
+ It was only intended for use in internal NixOS tests, and gave the false impression
+ of it being a special display manager when it's actually LightDM.
+ Please use the <xref linkend="opt-services.xserver.displayManager.lightdm.autoLogin"/> options instead,
+ or any other display manager in NixOS as they all support auto-login. If you used this module specifically
+ because it permitted root auto-login you can override the lightdm-autologin pam module like:
+<programlisting>
+<link xlink:href="#opt-security.pam.services._name__.text">security.pam.services.lightdm-autologin.text</link> = lib.mkForce ''
+ auth requisite pam_nologin.so
+ auth required pam_succeed_if.so quiet
+ auth required pam_permit.so
+
+ account include lightdm
+
+ password include lightdm
+
+ session include lightdm
+'';
+</programlisting>
+ The difference is the:
+<programlisting>
+auth required pam_succeed_if.so quiet
+</programlisting>
+ line, where default it's:
+<programlisting>
+auth required pam_succeed_if.so uid >= 1000 quiet
+</programlisting>
+ not permitting users with uid's below 1000 (like root).
+ All other display managers in NixOS are configured like this.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ There have been lots of improvements to the Mailman module. As
+ a result,
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The <option>services.mailman.hyperkittyBaseUrl</option>
+ option has been renamed to <xref
+ linkend="opt-services.mailman.hyperkitty.baseUrl"/>.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The <option>services.mailman.hyperkittyApiKey</option>
+ option has been removed. This is because having an option
+ for the Hyperkitty API key meant that the API key would be
+ stored in the world-readable Nix store, which was a
+ security vulnerability. A new Hyperkitty API key will be
+ generated the first time the new Hyperkitty service is run,
+ and it will then be persisted outside of the Nix store. To
+ continue using Hyperkitty, you must set <xref
+ linkend="opt-services.mailman.hyperkitty.enable"/> to
+ <literal>true</literal>.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Additionally, some Postfix configuration must now be set
+ manually instead of automatically by the Mailman module:
+<programlisting>
+<xref linkend="opt-services.postfix.relayDomains"/> = [ "hash:/var/lib/mailman/data/postfix_domains" ];
+<xref linkend="opt-services.postfix.config"/>.transport_maps = [ "hash:/var/lib/mailman/data/postfix_lmtp" ];
+<xref linkend="opt-services.postfix.config"/>.local_recipient_maps = [ "hash:/var/lib/mailman/data/postfix_lmtp" ];
+</programlisting>
+ This is because some users may want to include other values
+ in these lists as well, and this was not possible if they
+ were set automatically by the Mailman module. It would not
+ have been possible to just concatenate values from multiple
+ modules each setting the values they needed, because the
+ order of elements in the list is significant.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>The LLVM versions 3.5, 3.9 and 4 (including the corresponding CLang versions) have been dropped.</para>
+ </listitem>
</itemizedlist>
</section>
@@ -431,6 +579,12 @@ users.users.me =
now uses the short rather than full version string.
</para>
</listitem>
+ <listitem>
+ <para>
+ It is now possible to unlock LUKS-Encrypted file systems using a FIDO2 token
+ via <option>boot.initrd.luks.fido2Support</option>.
+ </para>
+ </listitem>
</itemizedlist>
</section>
</section>