diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 5385e4a1e0a7..be881b7f5548 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -48,6 +48,10 @@
# Nixpkgs build-support
/pkgs/build-support/writers @lassulus @Profpatsch
+# Nixpkgs make-disk-image
+/doc/builders/images/makediskimage.section.md @raitobezarius
+/nixos/lib/make-disk-image.nix @raitobezarius
+
# Nixpkgs documentation
/maintainers/scripts/db-to-md.sh @jtojnar @ryantm
/maintainers/scripts/doc @jtojnar @ryantm
diff --git a/doc/builders/images.xml b/doc/builders/images.xml
index f86ebd86bee4..7d06130e3eca 100644
--- a/doc/builders/images.xml
+++ b/doc/builders/images.xml
@@ -10,4 +10,5 @@
+
diff --git a/doc/builders/images/makediskimage.section.md b/doc/builders/images/makediskimage.section.md
new file mode 100644
index 000000000000..9798a0be4d46
--- /dev/null
+++ b/doc/builders/images/makediskimage.section.md
@@ -0,0 +1,107 @@
+# `` {#sec-make-disk-image}
+
+`` is a function to create _disk images_ in multiple formats: raw, QCOW2 (QEMU), QCOW2-Compressed (compressed version), VDI (VirtualBox), VPC (VirtualPC).
+
+This function can create images in two ways:
+
+- using `cptofs` without any virtual machine to create a Nix store disk image,
+- using a virtual machine to create a full NixOS installation.
+
+When testing early-boot or lifecycle parts of NixOS such as a bootloader or multiple generations, it is necessary to opt for a full NixOS system installation.
+Whereas for many web servers, applications, it is possible to work with a Nix store only disk image and is faster to build.
+
+NixOS tests also use this function when preparing the VM. The `cptofs` method is used when `virtualisation.useBootLoader` is false (the default). Otherwise the second method is used.
+
+## Features
+
+For reference, read the function signature source code for documentation on arguments: .
+Features are separated in various sections depending on if you opt for a Nix-store only image or a full NixOS image.
+
+### Common
+
+- arbitrary NixOS configuration
+- automatic or bound disk size: `diskSize` parameter, `additionalSpace` can be set when `diskSize` is `auto` to add a constant of disk space
+- multiple partition table layouts: EFI, legacy, legacy + GPT, hybrid, none through `partitionTableType` parameter
+- OVMF or EFI firmwares and variables templates can be customized
+- root filesystem `fsType` can be customized to whatever `mkfs.${fsType}` exist during operations
+- root filesystem label can be customized, defaults to `nix-store` if it's a Nix store image, otherwise `nixpkgs/nixos`
+- arbitrary code can be executed after disk image was produced with `postVM`
+- the current nixpkgs can be realized as a channel in the disk image, which will change the hash of the image when the sources are updated
+- additional store paths can be provided through `additionalPaths`
+
+### Full NixOS image
+
+- arbitrary contents with permissions can be placed in the target filesystem using `contents`
+- a `/etc/nixpkgs/nixos/configuration.nix` can be provided through `configFile`
+- bootloaders are supported
+- EFI variables can be mutated during image production and the result is exposed in `$out`
+- boot partition size when partition table is `efi` or `hybrid`
+
+### On bit-to-bit reproducibility
+
+Images are **NOT** deterministic, please do not hesitate to try to fix this, source of determinisms are (not exhaustive) :
+
+- bootloader installation have timestamps
+- SQLite Nix store database contain registration times
+- `/etc/shadow` is in a non-deterministic order
+
+A `deterministic` flag is available for best efforts determinism.
+
+## Usage
+
+To produce a Nix-store only image:
+```nix
+let
+ pkgs = import {};
+ lib = pkgs.lib;
+ make-disk-image = import ;
+in
+ make-disk-image {
+ inherit pkgs lib;
+ config = {};
+ additionalPaths = [ ];
+ format = "qcow2";
+ onlyNixStore = true;
+ partitionTableType = "none";
+ installBootLoader = false;
+ touchEFIVars = false;
+ diskSize = "auto";
+ additionalSpace = "0M"; # Defaults to 512M.
+ copyChannel = false;
+ }
+```
+
+Some arguments can be left out, they are shown explicitly for the sake of the example.
+
+Building this derivation will provide a QCOW2 disk image containing only the Nix store and its registration information.
+
+To produce a NixOS installation image disk with UEFI and bootloader installed:
+```nix
+let
+ pkgs = import {};
+ lib = pkgs.lib;
+ make-disk-image = import ;
+ evalConfig = import ;
+in
+ make-disk-image {
+ inherit pkgs lib;
+ config = evalConfig {
+ modules = [
+ {
+ fileSystems."/" = { device = "/dev/vda"; fsType = "ext4"; autoFormat = true; };
+ boot.grub.device = "/dev/vda";
+ }
+ ];
+ };
+ format = "qcow2";
+ onlyNixStore = false;
+ partitionTableType = "legacy+gpt";
+ installBootLoader = true;
+ touchEFIVars = true;
+ diskSize = "auto";
+ additionalSpace = "0M"; # Defaults to 512M.
+ copyChannel = false;
+ }
+```
+
+
diff --git a/doc/builders/images/ocitools.section.md b/doc/builders/images/ocitools.section.md
index d3ab8776786b..c35f65bce007 100644
--- a/doc/builders/images/ocitools.section.md
+++ b/doc/builders/images/ocitools.section.md
@@ -34,4 +34,4 @@ buildContainer {
- `mounts` specifies additional mount points chosen by the user. By default only a minimal set of necessary filesystems are mounted into the container (e.g procfs, cgroupfs)
-- `readonly` makes the container\'s rootfs read-only if it is set to true. The default value is false `false`.
+- `readonly` makes the container's rootfs read-only if it is set to true. The default value is false `false`.
diff --git a/doc/builders/packages/dlib.section.md b/doc/builders/packages/dlib.section.md
index 8f0aa8610180..022195310a71 100644
--- a/doc/builders/packages/dlib.section.md
+++ b/doc/builders/packages/dlib.section.md
@@ -4,7 +4,7 @@
## Compiling without AVX support {#compiling-without-avx-support}
-Especially older CPUs don\'t support [AVX](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions) (Advanced Vector Extensions) instructions that are used by DLib to optimize their algorithms.
+Especially older CPUs don't support [AVX](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions) (Advanced Vector Extensions) instructions that are used by DLib to optimize their algorithms.
On the affected hardware errors like `Illegal instruction` will occur. In those cases AVX support needs to be disabled:
diff --git a/doc/contributing/coding-conventions.chapter.md b/doc/contributing/coding-conventions.chapter.md
index 275a3c7af5d2..f6a0970165f5 100644
--- a/doc/contributing/coding-conventions.chapter.md
+++ b/doc/contributing/coding-conventions.chapter.md
@@ -260,6 +260,10 @@ When in doubt, consider refactoring the `pkgs/` tree, e.g. creating new categori
- `development/tools/build-managers` (e.g. `gnumake`)
+ - **If it’s a _language server_:**
+
+ - `development/tools/language-servers` (e.g. `ccls` or `rnix-lsp`)
+
- **Else:**
- `development/tools/misc` (e.g. `binutils`)
diff --git a/doc/contributing/submitting-changes.chapter.md b/doc/contributing/submitting-changes.chapter.md
index e3b2990f84a5..96e2ecf970cb 100644
--- a/doc/contributing/submitting-changes.chapter.md
+++ b/doc/contributing/submitting-changes.chapter.md
@@ -199,7 +199,7 @@ It’s important to test any executables generated by a build when you change or
### Meets Nixpkgs contribution standards {#submitting-changes-contribution-standards}
-The last checkbox is fits [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md). The contributing document has detailed information on standards the Nix community has for commit messages, reviews, licensing of contributions you make to the project, etc\... Everyone should read and understand the standards the community has for contributing before submitting a pull request.
+The last checkbox is fits [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md). The contributing document has detailed information on standards the Nix community has for commit messages, reviews, licensing of contributions you make to the project, etc... Everyone should read and understand the standards the community has for contributing before submitting a pull request.
## Hotfixing pull requests {#submitting-changes-hotfixing-pull-requests}
diff --git a/doc/functions/nix-gitignore.section.md b/doc/functions/nix-gitignore.section.md
index 2fb833b23000..8eb4081d2878 100644
--- a/doc/functions/nix-gitignore.section.md
+++ b/doc/functions/nix-gitignore.section.md
@@ -4,7 +4,7 @@
## Usage {#sec-pkgs-nix-gitignore-usage}
-`pkgs.nix-gitignore` exports a number of functions, but you\'ll most likely need either `gitignoreSource` or `gitignoreSourcePure`. As their first argument, they both accept either 1. a file with gitignore lines or 2. a string with gitignore lines, or 3. a list of either of the two. They will be concatenated into a single big string.
+`pkgs.nix-gitignore` exports a number of functions, but you'll most likely need either `gitignoreSource` or `gitignoreSourcePure`. As their first argument, they both accept either 1. a file with gitignore lines or 2. a string with gitignore lines, or 3. a list of either of the two. They will be concatenated into a single big string.
```nix
{ pkgs ? import {} }:
@@ -30,7 +30,7 @@ gitignoreSourcePure = gitignoreFilterSourcePure (_: _: true);
gitignoreSource = gitignoreFilterSource (_: _: true);
```
-Those filter functions accept the same arguments the `builtins.filterSource` function would pass to its filters, thus `fn: gitignoreFilterSourcePure fn ""` should be extensionally equivalent to `filterSource`. The file is blacklisted if it\'s blacklisted by either your filter or the gitignoreFilter.
+Those filter functions accept the same arguments the `builtins.filterSource` function would pass to its filters, thus `fn: gitignoreFilterSourcePure fn ""` should be extensionally equivalent to `filterSource`. The file is blacklisted if it's blacklisted by either your filter or the gitignoreFilter.
If you want to make your own filter from scratch, you may use
diff --git a/doc/languages-frameworks/rust.section.md b/doc/languages-frameworks/rust.section.md
index a9d8e54cafd8..ec703105e15a 100644
--- a/doc/languages-frameworks/rust.section.md
+++ b/doc/languages-frameworks/rust.section.md
@@ -186,6 +186,23 @@ added. To find the correct hash, you can first use `lib.fakeSha256` or
`lib.fakeHash` as a stub hash. Building the package (and thus the
vendored dependencies) will then inform you of the correct hash.
+For usage outside nixpkgs, `allowBuiltinFetchGit` could be used to
+avoid having to specify `outputHashes`. For example:
+
+```nix
+rustPlatform.buildRustPackage rec {
+ pname = "myproject";
+ version = "1.0.0";
+
+ cargoLock = {
+ lockFile = ./Cargo.lock;
+ allowBuiltinFetchGit = true;
+ };
+
+ # ...
+}
+```
+
### Cargo features {#cargo-features}
You can disable default features using `buildNoDefaultFeatures`, and
diff --git a/doc/using/configuration.chapter.md b/doc/using/configuration.chapter.md
index 0391af0f1760..e657cb21c295 100644
--- a/doc/using/configuration.chapter.md
+++ b/doc/using/configuration.chapter.md
@@ -73,7 +73,7 @@ There are also two ways to try compiling a package which has been marked as unsu
}
```
-The difference between a package being unsupported on some system and being broken is admittedly a bit fuzzy. If a program *ought* to work on a certain platform, but doesn't, the platform should be included in `meta.platforms`, but marked as broken with e.g. `meta.broken = !hostPlatform.isWindows`. Of course, this begs the question of what \"ought\" means exactly. That is left to the package maintainer.
+The difference between a package being unsupported on some system and being broken is admittedly a bit fuzzy. If a program *ought* to work on a certain platform, but doesn't, the platform should be included in `meta.platforms`, but marked as broken with e.g. `meta.broken = !hostPlatform.isWindows`. Of course, this begs the question of what "ought" means exactly. That is left to the package maintainer.
## Installing unfree packages {#sec-allow-unfree}
diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix
index c719fcf5d4fa..faf2b96530c1 100644
--- a/lib/tests/misc.nix
+++ b/lib/tests/misc.nix
@@ -212,6 +212,21 @@ runTests {
expected = [ "1" "2" "3" ];
};
+ testPadVersionLess = {
+ expr = versions.pad 3 "1.2";
+ expected = "1.2.0";
+ };
+
+ testPadVersionLessExtra = {
+ expr = versions.pad 3 "1.3-rc1";
+ expected = "1.3.0-rc1";
+ };
+
+ testPadVersionMore = {
+ expr = versions.pad 3 "1.2.3.4";
+ expected = "1.2.3";
+ };
+
testIsStorePath = {
expr =
let goodPath =
diff --git a/lib/types.nix b/lib/types.nix
index 270ac1748c79..e7e8a99e5743 100644
--- a/lib/types.nix
+++ b/lib/types.nix
@@ -558,15 +558,6 @@ rec {
nestedTypes.elemType = elemType;
};
- # TODO: drop this in the future:
- loaOf = elemType: types.attrsOf elemType // {
- name = "loaOf";
- deprecationMessage = "Mixing lists with attribute values is no longer"
- + " possible; please use `types.attrsOf` instead. See"
- + " https://github.com/NixOS/nixpkgs/issues/1800 for the motivation.";
- nestedTypes.elemType = elemType;
- };
-
# Value of given type but with no merging (i.e. `uniq list`s are not concatenated).
uniq = elemType: mkOptionType rec {
name = "uniq";
diff --git a/lib/versions.nix b/lib/versions.nix
index 0e9d81ac78b1..986e7e5f9b37 100644
--- a/lib/versions.nix
+++ b/lib/versions.nix
@@ -46,4 +46,19 @@ rec {
builtins.concatStringsSep "."
(lib.take 2 (splitVersion v));
+ /* Pad a version string with zeros to match the given number of components.
+
+ Example:
+ pad 3 "1.2"
+ => "1.2.0"
+ pad 3 "1.3-rc1"
+ => "1.3.0-rc1"
+ pad 3 "1.2.3.4"
+ => "1.2.3"
+ */
+ pad = n: version: let
+ numericVersion = lib.head (lib.splitString "-" version);
+ versionSuffix = lib.removePrefix numericVersion version;
+ in lib.concatStringsSep "." (lib.take n (lib.splitVersion numericVersion ++ lib.genList (_: "0") n)) + versionSuffix;
+
}
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index c59180210434..8891e9861f82 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -558,6 +558,12 @@
githubId = 43479487;
name = "Titouan Biteau";
};
+ alekseysidorov = {
+ email = "sauron1987@gmail.com";
+ github = "alekseysidorov";
+ githubId = 83360;
+ name = "Aleksey Sidorov";
+ };
alerque = {
email = "caleb@alerque.com";
github = "alerque";
@@ -4151,6 +4157,12 @@
githubId = 1365692;
name = "Will Fancher";
};
+ emattiza = {
+ email = "nix@mattiza.dev";
+ github = "emattiza";
+ githubId = 11719476;
+ name = "Evan Mattiza";
+ };
emmabastas = {
email = "emma.bastas@protonmail.com";
matrix = "@emmabastas:matrix.org";
@@ -6087,6 +6099,12 @@
githubId = 37965;
name = "Léo Stefanesco";
};
+ indeednotjames = {
+ email = "nix@indeednotjames.com";
+ github = "IndeedNotJames";
+ githubId = 55066419;
+ name = "Emily Lange";
+ };
infinidoge = {
name = "Infinidoge";
email = "infinidoge@inx.moe";
diff --git a/maintainers/scripts/haskell/hydra-report.hs b/maintainers/scripts/haskell/hydra-report.hs
index f7e5f573982d..f5e8da1b3f4d 100755
--- a/maintainers/scripts/haskell/hydra-report.hs
+++ b/maintainers/scripts/haskell/hydra-report.hs
@@ -415,7 +415,7 @@ printBuildSummary
<> ["","*:arrow_heading_up:: The number of packages that depend (directly or indirectly) on this package (if any). If two numbers are shown the first (lower) number considers only packages which currently have enabled hydra jobs, i.e. are not marked broken. The second (higher) number considers all packages.*",""]
<> footer
where
- footer = ["*Report generated with [maintainers/scripts/haskell/hydra-report.hs](https://github.com/NixOS/nixpkgs/blob/haskell-updates/maintainers/scripts/haskell/hydra-report.sh)*"]
+ footer = ["*Report generated with [maintainers/scripts/haskell/hydra-report.hs](https://github.com/NixOS/nixpkgs/blob/haskell-updates/maintainers/scripts/haskell/hydra-report.hs)*"]
totals =
[ "#### Build summary"
, ""
diff --git a/nixos/doc/manual/administration/service-mgmt.chapter.md b/nixos/doc/manual/administration/service-mgmt.chapter.md
index bb0f9b62e913..674c73741680 100644
--- a/nixos/doc/manual/administration/service-mgmt.chapter.md
+++ b/nixos/doc/manual/administration/service-mgmt.chapter.md
@@ -75,7 +75,7 @@ necessary).
Packages in Nixpkgs sometimes provide systemd units with them, usually
in e.g `#pkg-out#/lib/systemd/`. Putting such a package in
-`environment.systemPackages` doesn\'t make the service available to
+`environment.systemPackages` doesn't make the service available to
users or the system.
In order to enable a systemd *system* service with provided upstream
@@ -87,9 +87,9 @@ systemd.packages = [ pkgs.packagekit ];
Usually NixOS modules written by the community do the above, plus take
care of other details. If a module was written for a service you are
-interested in, you\'d probably need only to use
+interested in, you'd probably need only to use
`services.#name#.enable = true;`. These services are defined in
-Nixpkgs\' [ `nixos/modules/` directory
+Nixpkgs' [ `nixos/modules/` directory
](https://github.com/NixOS/nixpkgs/tree/master/nixos/modules). In case
the service is simple enough, the above method should work, and start
the service on boot.
@@ -98,8 +98,8 @@ the service on boot.
differently. Given a package that has a systemd unit file at
`#pkg-out#/lib/systemd/user/`, using [](#opt-systemd.packages) will
make you able to start the service via `systemctl --user start`, but it
-won\'t start automatically on login. However, You can imperatively
-enable it by adding the package\'s attribute to
+won't start automatically on login. However, You can imperatively
+enable it by adding the package's attribute to
[](#opt-systemd.packages) and then do this (e.g):
```ShellSession
@@ -113,7 +113,7 @@ If you are interested in a timer file, use `timers.target.wants` instead
of `default.target.wants` in the 1st and 2nd command.
Using `systemctl --user enable syncthing.service` instead of the above,
-will work, but it\'ll use the absolute path of `syncthing.service` for
+will work, but it'll use the absolute path of `syncthing.service` for
the symlink, and this path is in `/nix/store/.../lib/systemd/user/`.
Hence [garbage collection](#sec-nix-gc) will remove that file and you
will wind up with a broken symlink in your systemd configuration, which
diff --git a/nixos/doc/manual/configuration/kubernetes.chapter.md b/nixos/doc/manual/configuration/kubernetes.chapter.md
index 5d7b083289d9..f39726090e43 100644
--- a/nixos/doc/manual/configuration/kubernetes.chapter.md
+++ b/nixos/doc/manual/configuration/kubernetes.chapter.md
@@ -17,7 +17,7 @@ services.kubernetes = {
};
```
-Another way is to assign cluster roles (\"master\" and/or \"node\") to
+Another way is to assign cluster roles ("master" and/or "node") to
the host. This enables apiserver, controllerManager, scheduler,
addonManager, kube-proxy and etcd:
diff --git a/nixos/doc/manual/configuration/linux-kernel.chapter.md b/nixos/doc/manual/configuration/linux-kernel.chapter.md
index 7b84416a8646..f5bce99dd1bb 100644
--- a/nixos/doc/manual/configuration/linux-kernel.chapter.md
+++ b/nixos/doc/manual/configuration/linux-kernel.chapter.md
@@ -82,61 +82,68 @@ boot.kernel.sysctl."net.ipv4.tcp_keepalive_time" = 120;
sets the kernel's TCP keepalive time to 120 seconds. To see the
available parameters, run `sysctl -a`.
-## Customize your kernel {#sec-linux-config-customizing}
+## Building a custom kernel {#sec-linux-config-customizing}
-The first step before compiling the kernel is to generate an appropriate
-`.config` configuration. Either you pass your own config via the
-`configfile` setting of `linuxKernel.manualConfig`:
+You can customize the default kernel configuration by overriding the arguments for your kernel package:
```nix
-custom-kernel = let base_kernel = linuxKernel.kernels.linux_4_9;
- in super.linuxKernel.manualConfig {
- inherit (super) stdenv hostPlatform;
- inherit (base_kernel) src;
- version = "${base_kernel.version}-custom";
-
- configfile = /home/me/my_kernel_config;
- allowImportFromDerivation = true;
-};
-```
-
-You can edit the config with this snippet (by default `make
- menuconfig` won\'t work out of the box on nixos):
-
-```ShellSession
-nix-shell -E 'with import {}; kernelToOverride.overrideAttrs (o: {nativeBuildInputs=o.nativeBuildInputs ++ [ pkg-config ncurses ];})'
-```
-
-or you can let nixpkgs generate the configuration. Nixpkgs generates it
-via answering the interactive kernel utility `make config`. The answers
-depend on parameters passed to
-`pkgs/os-specific/linux/kernel/generic.nix` (which you can influence by
-overriding `extraConfig, autoModules,
- modDirVersion, preferBuiltin, extraConfig`).
-
-```nix
-mptcp93.override ({
- name="mptcp-local";
-
+pkgs.linux_latest.override {
ignoreConfigErrors = true;
autoModules = false;
kernelPreferBuiltin = true;
+ extraStructuredConfig = with lib.kernel; {
+ DEBUG_KERNEL = yes;
+ FRAME_POINTER = yes;
+ KGDB = yes;
+ KGDB_SERIAL_CONSOLE = yes;
+ DEBUG_INFO = yes;
+ };
+}
+```
- enableParallelBuilding = true;
+See `pkgs/os-specific/linux/kernel/generic.nix` for details on how these arguments
+affect the generated configuration. You can also build a custom version of Linux by calling
+`pkgs.buildLinux` directly, which requires the `src` and `version` arguments to be specified.
- extraConfig = ''
- DEBUG_KERNEL y
- FRAME_POINTER y
- KGDB y
- KGDB_SERIAL_CONSOLE y
- DEBUG_INFO y
- '';
-});
+To use your custom kernel package in your NixOS configuration, set
+
+```nix
+boot.kernelPackages = pkgs.linuxPackagesFor yourCustomKernel;
+```
+
+Note that this method will use the common configuration defined in `pkgs/os-specific/linux/kernel/common-config.nix`,
+which is suitable for a NixOS system.
+
+If you already have a generated configuration file, you can build a kernel that uses it with `pkgs.linuxManualConfig`:
+
+```nix
+let
+ baseKernel = pkgs.linux_latest;
+in pkgs.linuxManualConfig {
+ inherit (baseKernel) src modDirVersion;
+ version = "${baseKernel.version}-custom";
+ configfile = ./my_kernel_config;
+ allowImportFromDerivation = true;
+}
+```
+
+::: {.note}
+The build will fail if `modDirVersion` does not match the source's `kernel.release` file,
+so `modDirVersion` should remain tied to `src`.
+:::
+
+To edit the `.config` file for Linux X.Y, proceed as follows:
+
+```ShellSession
+$ nix-shell '' -A linuxKernel.kernels.linux_X_Y.configEnv
+$ unpackPhase
+$ cd linux-*
+$ make nconfig
```
## Developing kernel modules {#sec-linux-config-developing-modules}
-When developing kernel modules it\'s often convenient to run
+When developing kernel modules it's often convenient to run
edit-compile-run loop as quickly as possible. See below snippet as an
example of developing `mellanox` drivers.
diff --git a/nixos/doc/manual/configuration/profiles.chapter.md b/nixos/doc/manual/configuration/profiles.chapter.md
index b4ae1b7d3faa..2c3dea27c181 100644
--- a/nixos/doc/manual/configuration/profiles.chapter.md
+++ b/nixos/doc/manual/configuration/profiles.chapter.md
@@ -2,7 +2,7 @@
In some cases, it may be desirable to take advantage of commonly-used,
predefined configurations provided by nixpkgs, but different from those
-that come as default. This is a role fulfilled by NixOS\'s Profiles,
+that come as default. This is a role fulfilled by NixOS's Profiles,
which come as files living in ``. That
is to say, expected usage is to add them to the imports list of your
`/etc/configuration.nix` as such:
diff --git a/nixos/doc/manual/configuration/user-mgmt.chapter.md b/nixos/doc/manual/configuration/user-mgmt.chapter.md
index 5c3aca3ef9e9..b35b38f6e964 100644
--- a/nixos/doc/manual/configuration/user-mgmt.chapter.md
+++ b/nixos/doc/manual/configuration/user-mgmt.chapter.md
@@ -30,7 +30,7 @@ to your NixOS configuration. For instance, if you remove a user from
[](#opt-users.users) and run nixos-rebuild, the user
account will cease to exist. Also, imperative commands for managing users and
groups, such as useradd, are no longer available. Passwords may still be
-assigned by setting the user\'s
+assigned by setting the user's
[hashedPassword](#opt-users.users._name_.hashedPassword) option. A
hashed password can be generated using `mkpasswd`.
diff --git a/nixos/doc/manual/configuration/wayland.chapter.md b/nixos/doc/manual/configuration/wayland.chapter.md
index a3a46aa3da6f..0f195bd66567 100644
--- a/nixos/doc/manual/configuration/wayland.chapter.md
+++ b/nixos/doc/manual/configuration/wayland.chapter.md
@@ -4,7 +4,7 @@ While X11 (see [](#sec-x11)) is still the primary display technology
on NixOS, Wayland support is steadily improving. Where X11 separates the
X Server and the window manager, on Wayland those are combined: a
Wayland Compositor is like an X11 window manager, but also embeds the
-Wayland \'Server\' functionality. This means it is sufficient to install
+Wayland 'Server' functionality. This means it is sufficient to install
a Wayland Compositor such as sway without separately enabling a Wayland
server:
diff --git a/nixos/doc/manual/configuration/x-windows.chapter.md b/nixos/doc/manual/configuration/x-windows.chapter.md
index 27d117238807..f92403ed1c4c 100644
--- a/nixos/doc/manual/configuration/x-windows.chapter.md
+++ b/nixos/doc/manual/configuration/x-windows.chapter.md
@@ -81,7 +81,7 @@ second password to login can be redundant.
To enable auto-login, you need to define your default window manager and
desktop environment. If you wanted no desktop environment and i3 as your
-your window manager, you\'d define:
+your window manager, you'd define:
```nix
services.xserver.displayManager.defaultSession = "none+i3";
@@ -110,7 +110,7 @@ maintained but may perform worse in some cases (like in old chipsets).
The second driver, `intel`, is specific to Intel GPUs, but not
recommended by most distributions: it lacks several modern features (for
-example, it doesn\'t support Glamor) and the package hasn\'t been
+example, it doesn't support Glamor) and the package hasn't been
officially updated since 2015.
The results vary depending on the hardware, so you may have to try both
@@ -162,7 +162,7 @@ with other kernel modules.
AMD provides a proprietary driver for its graphics cards that is not
enabled by default because it's not Free Software, is often broken in
-nixpkgs and as of this writing doesn\'t offer more features or
+nixpkgs and as of this writing doesn't offer more features or
performance. If you still want to use it anyway, you need to explicitly
set:
@@ -215,7 +215,7 @@ US layout, with an additional layer to type some greek symbols by
pressing the right-alt key.
Create a file called `us-greek` with the following content (under a
-directory called `symbols`; it\'s an XKB peculiarity that will help with
+directory called `symbols`; it's an XKB peculiarity that will help with
testing):
```nix
@@ -249,7 +249,7 @@ The name (after `extraLayouts.`) should match the one given to the
Applying this customization requires rebuilding several packages, and a
broken XKB file can lead to the X session crashing at login. Therefore,
-you\'re strongly advised to **test your layout before applying it**:
+you're strongly advised to **test your layout before applying it**:
```ShellSession
$ nix-shell -p xorg.xkbcomp
@@ -313,8 +313,8 @@ prefer to keep the layout definitions inside the NixOS configuration.
Unfortunately, the Xorg server does not (currently) support setting a
keymap directly but relies instead on XKB rules to select the matching
-components (keycodes, types, \...) of a layout. This means that
-components other than symbols won\'t be loaded by default. As a
+components (keycodes, types, ...) of a layout. This means that
+components other than symbols won't be loaded by default. As a
workaround, you can set the keymap using `setxkbmap` at the start of the
session with:
@@ -323,7 +323,7 @@ services.xserver.displayManager.sessionCommands = "setxkbmap -keycodes media";
```
If you are manually starting the X server, you should set the argument
-`-xkbdir /etc/X11/xkb`, otherwise X won\'t find your layout files. For
+`-xkbdir /etc/X11/xkb`, otherwise X won't find your layout files. For
example with `xinit` run
```ShellSession
diff --git a/nixos/doc/manual/configuration/xfce.chapter.md b/nixos/doc/manual/configuration/xfce.chapter.md
index ee60d465e3b3..c331e63cfe54 100644
--- a/nixos/doc/manual/configuration/xfce.chapter.md
+++ b/nixos/doc/manual/configuration/xfce.chapter.md
@@ -31,8 +31,8 @@ enabled. To enable Thunar without enabling Xfce, use the configuration
option [](#opt-programs.thunar.enable) instead of simply adding
`pkgs.xfce.thunar` to [](#opt-environment.systemPackages).
-If you\'d like to add extra plugins to Thunar, add them to
-[](#opt-programs.thunar.plugins). You shouldn\'t just add them to
+If you'd like to add extra plugins to Thunar, add them to
+[](#opt-programs.thunar.plugins). You shouldn't just add them to
[](#opt-environment.systemPackages).
## Troubleshooting {#sec-xfce-troubleshooting .unnumbered}
@@ -46,7 +46,7 @@ Thunar:2410): GVFS-RemoteVolumeMonitor-WARNING **: remote volume monitor with db
```
This is caused by some needed GNOME services not running. This is all
-fixed by enabling \"Launch GNOME services on startup\" in the Advanced
+fixed by enabling "Launch GNOME services on startup" in the Advanced
tab of the Session and Startup settings panel. Alternatively, you can
run this command to do the same thing.
diff --git a/nixos/doc/manual/development/option-declarations.section.md b/nixos/doc/manual/development/option-declarations.section.md
index 88617ab1920a..f89aae573068 100644
--- a/nixos/doc/manual/development/option-declarations.section.md
+++ b/nixos/doc/manual/development/option-declarations.section.md
@@ -149,7 +149,7 @@ multiple modules, or as an alternative to related `enable` options.
As an example, we will take the case of display managers. There is a
central display manager module for generic display manager options and a
-module file per display manager backend (sddm, gdm \...).
+module file per display manager backend (sddm, gdm ...).
There are two approaches we could take with this module structure:
diff --git a/nixos/doc/manual/development/option-types.section.md b/nixos/doc/manual/development/option-types.section.md
index e398d6c30cce..0e9c4a4d16be 100644
--- a/nixos/doc/manual/development/option-types.section.md
+++ b/nixos/doc/manual/development/option-types.section.md
@@ -92,11 +92,11 @@ merging is handled.
: A free-form attribute set.
::: {.warning}
- This type will be deprecated in the future because it doesn\'t
+ This type will be deprecated in the future because it doesn't
recurse into attribute sets, silently drops earlier attribute
- definitions, and doesn\'t discharge `lib.mkDefault`, `lib.mkIf`
+ definitions, and doesn't discharge `lib.mkDefault`, `lib.mkIf`
and co. For allowing arbitrary attribute sets, prefer
- `types.attrsOf types.anything` instead which doesn\'t have these
+ `types.attrsOf types.anything` instead which doesn't have these
problems.
:::
@@ -222,7 +222,7 @@ Submodules are detailed in [Submodule](#section-option-types-submodule).
- *`specialArgs`* An attribute set of extra arguments to be passed
to the module functions. The option `_module.args` should be
used instead for most arguments since it allows overriding.
- *`specialArgs`* should only be used for arguments that can\'t go
+ *`specialArgs`* should only be used for arguments that can't go
through the module fixed-point, because of infinite recursion or
other problems. An example is overriding the `lib` argument,
because `lib` itself is used to define `_module.args`, which
@@ -236,7 +236,7 @@ Submodules are detailed in [Submodule](#section-option-types-submodule).
In such a case it would allow the option to be set with
`the-submodule.config = "value"` instead of requiring
`the-submodule.config.config = "value"`. This is because
- only when modules *don\'t* set the `config` or `options`
+ only when modules *don't* set the `config` or `options`
keys, all keys are interpreted as option definitions in the
`config` section. Enabling this option implicitly puts all
attributes in the `config` section.
@@ -324,7 +324,7 @@ Composed types are types that take a type as parameter. `listOf
: Type *`t1`* or type *`t2`*, e.g. `with types; either int str`.
Multiple definitions cannot be merged.
-`types.oneOf` \[ *`t1 t2`* \... \]
+`types.oneOf` \[ *`t1 t2`* ... \]
: Type *`t1`* or type *`t2`* and so forth, e.g.
`with types; oneOf [ int str bool ]`. Multiple definitions cannot be
diff --git a/nixos/doc/manual/development/replace-modules.section.md b/nixos/doc/manual/development/replace-modules.section.md
index 0700a82004c1..0c0d6a7ac2f1 100644
--- a/nixos/doc/manual/development/replace-modules.section.md
+++ b/nixos/doc/manual/development/replace-modules.section.md
@@ -2,7 +2,7 @@
Modules that are imported can also be disabled. The option declarations,
config implementation and the imports of a disabled module will be
-ignored, allowing another to take it\'s place. This can be used to
+ignored, allowing another to take its place. This can be used to
import a set of modules from another channel while keeping the rest of
the system on a stable release.
@@ -14,7 +14,7 @@ relative to the modules path (eg. \ for nixos).
This example will replace the existing postgresql module with the
version defined in the nixos-unstable channel while keeping the rest of
the modules and packages from the original nixos channel. This only
-overrides the module definition, this won\'t use postgresql from
+overrides the module definition, this won't use postgresql from
nixos-unstable unless explicitly configured to do so.
```nix
@@ -35,7 +35,7 @@ nixos-unstable unless explicitly configured to do so.
This example shows how to define a custom module as a replacement for an
existing module. Importing this module will disable the original module
-without having to know it\'s implementation details.
+without having to know its implementation details.
```nix
{ config, lib, pkgs, ... }:
diff --git a/nixos/doc/manual/development/settings-options.section.md b/nixos/doc/manual/development/settings-options.section.md
index d569e23adbdc..334149d021cb 100644
--- a/nixos/doc/manual/development/settings-options.section.md
+++ b/nixos/doc/manual/development/settings-options.section.md
@@ -9,10 +9,10 @@ can be declared. File formats can be separated into two categories:
`{ foo = { bar = 10; }; }`. Other examples are INI, YAML and TOML.
The following section explains the convention for these settings.
-- Non-nix-representable ones: These can\'t be trivially mapped to a
+- Non-nix-representable ones: These can't be trivially mapped to a
subset of Nix syntax. Most generic programming languages are in this
group, e.g. bash, since the statement `if true; then echo hi; fi`
- doesn\'t have a trivial representation in Nix.
+ doesn't have a trivial representation in Nix.
Currently there are no fixed conventions for these, but it is common
to have a `configFile` option for setting the configuration file
@@ -24,7 +24,7 @@ can be declared. File formats can be separated into two categories:
an `extraConfig` option of type `lines` to allow arbitrary text
after the autogenerated part of the file.
-## Nix-representable Formats (JSON, YAML, TOML, INI, \...) {#sec-settings-nix-representable}
+## Nix-representable Formats (JSON, YAML, TOML, INI, ...) {#sec-settings-nix-representable}
By convention, formats like this are handled with a generic `settings`
option, representing the full program configuration as a Nix value. The
diff --git a/nixos/doc/manual/development/writing-documentation.chapter.md b/nixos/doc/manual/development/writing-documentation.chapter.md
index 7c29f600d701..4986c9f0a81b 100644
--- a/nixos/doc/manual/development/writing-documentation.chapter.md
+++ b/nixos/doc/manual/development/writing-documentation.chapter.md
@@ -19,7 +19,7 @@ $ nix-shell
nix-shell$ make
```
-Once you are done making modifications to the manual, it\'s important to
+Once you are done making modifications to the manual, it's important to
build it before committing. You can do that as follows:
```ShellSession
diff --git a/nixos/doc/manual/development/writing-modules.chapter.md b/nixos/doc/manual/development/writing-modules.chapter.md
index 0c41cbd3cb75..fa24679b7fc8 100644
--- a/nixos/doc/manual/development/writing-modules.chapter.md
+++ b/nixos/doc/manual/development/writing-modules.chapter.md
@@ -71,7 +71,7 @@ The meaning of each part is as follows.
- This `imports` list enumerates the paths to other NixOS modules that
should be included in the evaluation of the system configuration. A
default set of modules is defined in the file `modules/module-list.nix`.
- These don\'t need to be added in the import list.
+ These don't need to be added in the import list.
- The attribute `options` is a nested set of *option declarations*
(described below).
diff --git a/nixos/doc/manual/development/writing-nixos-tests.section.md b/nixos/doc/manual/development/writing-nixos-tests.section.md
index f3edea3e7047..0d5bc76a2aa5 100644
--- a/nixos/doc/manual/development/writing-nixos-tests.section.md
+++ b/nixos/doc/manual/development/writing-nixos-tests.section.md
@@ -165,7 +165,7 @@ The following methods are available on machine objects:
`get_screen_text_variants`
: Return a list of different interpretations of what is currently
- visible on the machine\'s screen using optical character
+ visible on the machine's screen using optical character
recognition. The number and order of the interpretations is not
specified and is subject to change, but if no exception is raised at
least one will be returned.
@@ -177,7 +177,7 @@ The following methods are available on machine objects:
`get_screen_text`
: Return a textual representation of what is currently visible on the
- machine\'s screen using optical character recognition.
+ machine's screen using optical character recognition.
::: {.note}
This requires [`enableOCR`](#test-opt-enableOCR) to be set to `true`.
@@ -350,8 +350,8 @@ machine.wait_for_unit("xautolock.service", "x-session-user")
This applies to `systemctl`, `get_unit_info`, `wait_for_unit`,
`start_job` and `stop_job`.
-For faster dev cycles it\'s also possible to disable the code-linters
-(this shouldn\'t be committed though):
+For faster dev cycles it's also possible to disable the code-linters
+(this shouldn't be committed though):
```nix
{
@@ -370,7 +370,7 @@ For faster dev cycles it\'s also possible to disable the code-linters
This will produce a Nix warning at evaluation time. To fully disable the
linter, wrap the test script in comment directives to disable the Black
-linter directly (again, don\'t commit this within the Nixpkgs
+linter directly (again, don't commit this within the Nixpkgs
repository):
```nix
diff --git a/nixos/doc/manual/from_md/administration/cleaning-store.chapter.xml b/nixos/doc/manual/from_md/administration/cleaning-store.chapter.xml
index 4243d2bf53f9..35dfaf30f457 100644
--- a/nixos/doc/manual/from_md/administration/cleaning-store.chapter.xml
+++ b/nixos/doc/manual/from_md/administration/cleaning-store.chapter.xml
@@ -23,7 +23,7 @@ $ nix-collect-garbage
this unit automatically at certain points in time, for instance,
every night at 03:15:
-
+
nix.gc.automatic = true;
nix.gc.dates = "03:15";
diff --git a/nixos/doc/manual/from_md/administration/container-networking.section.xml b/nixos/doc/manual/from_md/administration/container-networking.section.xml
index 788a2b7b0acb..a64053cdfa5e 100644
--- a/nixos/doc/manual/from_md/administration/container-networking.section.xml
+++ b/nixos/doc/manual/from_md/administration/container-networking.section.xml
@@ -31,7 +31,7 @@ $ ping -c1 10.233.4.2
address. This can be accomplished using the following configuration
on the host:
-
+
networking.nat.enable = true;
networking.nat.internalInterfaces = ["ve-+"];
networking.nat.externalInterface = "eth0";
@@ -45,7 +45,7 @@ networking.nat.externalInterface = "eth0";
If you are using Network Manager, you need to explicitly prevent it
from managing container interfaces:
-
+
networking.networkmanager.unmanaged = [ "interface-name:ve-*" ];
diff --git a/nixos/doc/manual/from_md/administration/control-groups.chapter.xml b/nixos/doc/manual/from_md/administration/control-groups.chapter.xml
index 8dab2c9d44b4..f78c05878031 100644
--- a/nixos/doc/manual/from_md/administration/control-groups.chapter.xml
+++ b/nixos/doc/manual/from_md/administration/control-groups.chapter.xml
@@ -42,7 +42,7 @@ $ systemd-cgls
process would get 1/1001 of the cgroup’s CPU time.) You can limit a
service’s CPU share in configuration.nix:
-
+
systemd.services.httpd.serviceConfig.CPUShares = 512;
@@ -57,7 +57,7 @@ systemd.services.httpd.serviceConfig.CPUShares = 512;
configuration.nix; for instance, to limit
httpd.service to 512 MiB of RAM (excluding swap):
-
+
systemd.services.httpd.serviceConfig.MemoryLimit = "512M";
diff --git a/nixos/doc/manual/from_md/administration/declarative-containers.section.xml b/nixos/doc/manual/from_md/administration/declarative-containers.section.xml
index 4831c9c74e84..efc3432ba1a1 100644
--- a/nixos/doc/manual/from_md/administration/declarative-containers.section.xml
+++ b/nixos/doc/manual/from_md/administration/declarative-containers.section.xml
@@ -6,7 +6,7 @@
following specifies that there shall be a container named
database running PostgreSQL:
-
+
containers.database =
{ config =
{ config, pkgs, ... }:
@@ -29,7 +29,7 @@ containers.database =
However, they cannot change the network configuration. You can give
a container its own network as follows:
-
+
containers.database = {
privateNetwork = true;
hostAddress = "192.168.100.10";
diff --git a/nixos/doc/manual/from_md/administration/service-mgmt.chapter.xml b/nixos/doc/manual/from_md/administration/service-mgmt.chapter.xml
index 8b01b8f896a4..3b7bd6cd30cf 100644
--- a/nixos/doc/manual/from_md/administration/service-mgmt.chapter.xml
+++ b/nixos/doc/manual/from_md/administration/service-mgmt.chapter.xml
@@ -85,21 +85,21 @@ Jan 07 15:55:57 hagbard systemd[1]: Started PostgreSQL Server.
Packages in Nixpkgs sometimes provide systemd units with them,
usually in e.g #pkg-out#/lib/systemd/. Putting
such a package in environment.systemPackages
- doesn't make the service available to users or the system.
+ doesn’t make the service available to users or the system.
In order to enable a systemd system service
with provided upstream package, use (e.g):
-
+
systemd.packages = [ pkgs.packagekit ];
Usually NixOS modules written by the community do the above, plus
take care of other details. If a module was written for a service
- you are interested in, you'd probably need only to use
+ you are interested in, you’d probably need only to use
services.#name#.enable = true;. These services
- are defined in Nixpkgs'
+ are defined in Nixpkgs’
nixos/modules/ directory . In case the
service is simple enough, the above method should work, and start
@@ -111,8 +111,8 @@ systemd.packages = [ pkgs.packagekit ];
unit file at #pkg-out#/lib/systemd/user/, using
will make you able to
start the service via systemctl --user start,
- but it won't start automatically on login. However, You can
- imperatively enable it by adding the package's attribute to
+ but it won’t start automatically on login. However, You can
+ imperatively enable it by adding the package’s attribute to
and then do this (e.g):
@@ -129,7 +129,7 @@ $ systemctl --user enable syncthing.service
Using systemctl --user enable syncthing.service
- instead of the above, will work, but it'll use the absolute path
+ instead of the above, will work, but it’ll use the absolute path
of syncthing.service for the symlink, and this
path is in /nix/store/.../lib/systemd/user/.
Hence garbage collection will
diff --git a/nixos/doc/manual/from_md/configuration/abstractions.section.xml b/nixos/doc/manual/from_md/configuration/abstractions.section.xml
index c71e23e34adf..469e85979e0f 100644
--- a/nixos/doc/manual/from_md/configuration/abstractions.section.xml
+++ b/nixos/doc/manual/from_md/configuration/abstractions.section.xml
@@ -4,7 +4,7 @@
If you find yourself repeating yourself over and over, it’s time to
abstract. Take, for instance, this Apache HTTP Server configuration:
-
+
{
services.httpd.virtualHosts =
{ "blog.example.org" = {
@@ -29,7 +29,7 @@
the only difference is the document root directories. To prevent
this duplication, we can use a let:
-
+
let
commonConfig =
{ adminAddr = "alice@example.org";
@@ -55,7 +55,7 @@ in
You can write a let wherever an expression is
allowed. Thus, you also could have written:
-
+
{
services.httpd.virtualHosts =
let commonConfig = ...; in
@@ -74,7 +74,7 @@ in
of different virtual hosts, all with identical configuration except
for the document root. This can be done as follows:
-
+
{
services.httpd.virtualHosts =
let
diff --git a/nixos/doc/manual/from_md/configuration/ad-hoc-network-config.section.xml b/nixos/doc/manual/from_md/configuration/ad-hoc-network-config.section.xml
index 035ee3122e15..516022dc16d2 100644
--- a/nixos/doc/manual/from_md/configuration/ad-hoc-network-config.section.xml
+++ b/nixos/doc/manual/from_md/configuration/ad-hoc-network-config.section.xml
@@ -7,7 +7,7 @@
network configuration not covered by the existing NixOS modules. For
instance, to statically configure an IPv6 address:
-
+
networking.localCommands =
''
ip -6 addr add 2001:610:685:1::1/64 dev eth0
diff --git a/nixos/doc/manual/from_md/configuration/adding-custom-packages.section.xml b/nixos/doc/manual/from_md/configuration/adding-custom-packages.section.xml
index 07f541666cbe..b1a1a8df3247 100644
--- a/nixos/doc/manual/from_md/configuration/adding-custom-packages.section.xml
+++ b/nixos/doc/manual/from_md/configuration/adding-custom-packages.section.xml
@@ -28,7 +28,7 @@ $ cd nixpkgs
manual. Finally, you add it to
, e.g.
-
+
environment.systemPackages = [ pkgs.my-package ];
@@ -45,7 +45,7 @@ environment.systemPackages = [ pkgs.my-package ];
Hello package directly in
configuration.nix:
-
+
environment.systemPackages =
let
my-hello = with pkgs; stdenv.mkDerivation rec {
@@ -62,13 +62,13 @@ environment.systemPackages =
Of course, you can also move the definition of
my-hello into a separate Nix expression, e.g.
-
+
environment.systemPackages = [ (import ./my-hello.nix) ];
where my-hello.nix contains:
-
+
with import <nixpkgs> {}; # bring all of Nixpkgs into scope
stdenv.mkDerivation rec {
@@ -98,7 +98,7 @@ Hello, world!
need to install appimage-run: add to
/etc/nixos/configuration.nix
-
+
environment.systemPackages = [ pkgs.appimage-run ];
diff --git a/nixos/doc/manual/from_md/configuration/config-file.section.xml b/nixos/doc/manual/from_md/configuration/config-file.section.xml
index 9792116eb08d..f6c8f70cffc5 100644
--- a/nixos/doc/manual/from_md/configuration/config-file.section.xml
+++ b/nixos/doc/manual/from_md/configuration/config-file.section.xml
@@ -3,7 +3,7 @@
The NixOS configuration file generally looks like this:
-
+
{ config, pkgs, ... }:
{ option definitions
@@ -21,7 +21,7 @@
the name of an option and value is its value. For
example,
-
+
{ config, pkgs, ... }:
{ services.httpd.enable = true;
@@ -44,7 +44,7 @@
true. This means that the example above can also
be written as:
-
+
{ config, pkgs, ... }:
{ services = {
@@ -96,7 +96,7 @@ The option value `services.httpd.enable' in `/etc/nixos/configuration.nix' is no
Strings are enclosed in double quotes, e.g.
-
+
networking.hostName = "dexter";
@@ -107,7 +107,7 @@ networking.hostName = "dexter";
Multi-line strings can be enclosed in double single
quotes, e.g.
-
+
networking.extraHosts =
''
127.0.0.2 other-localhost
@@ -135,7 +135,7 @@ networking.extraHosts =
These can be true or
false, e.g.
-
+
networking.firewall.enable = true;
networking.firewall.allowPing = false;
@@ -149,7 +149,7 @@ networking.firewall.allowPing = false;
For example,
-
+
boot.kernel.sysctl."net.ipv4.tcp_keepalive_time" = 60;
@@ -171,7 +171,7 @@ boot.kernel.sysctl."net.ipv4.tcp_keepalive_time" = 60;
Sets were introduced above. They are name/value pairs enclosed
in braces, as in the option definition
-
+
fileSystems."/boot" =
{ device = "/dev/sda1";
fsType = "ext4";
@@ -189,13 +189,13 @@ fileSystems."/boot" =
The important thing to note about lists is that list elements
are separated by whitespace, like this:
-
+
boot.kernelModules = [ "fuse" "kvm-intel" "coretemp" ];
List elements can be any other type, e.g. sets:
-
+
swapDevices = [ { device = "/dev/disk/by-label/swap"; } ];
@@ -211,7 +211,7 @@ swapDevices = [ { device = "/dev/disk/by-label/swap"; } ];
through the function argument pkgs. Typical
uses:
-
+
environment.systemPackages =
[ pkgs.thunderbird
pkgs.emacs
diff --git a/nixos/doc/manual/from_md/configuration/customizing-packages.section.xml b/nixos/doc/manual/from_md/configuration/customizing-packages.section.xml
index f78b5dc5460c..8026c4102b48 100644
--- a/nixos/doc/manual/from_md/configuration/customizing-packages.section.xml
+++ b/nixos/doc/manual/from_md/configuration/customizing-packages.section.xml
@@ -22,7 +22,7 @@
a dependency on GTK 2. If you want to build it against GTK 3, you
can specify that as follows:
-
+
environment.systemPackages = [ (pkgs.emacs.override { gtk = pkgs.gtk3; }) ];
@@ -46,7 +46,7 @@ environment.systemPackages = [ (pkgs.emacs.override { gtk = pkgs.gtk3; }) ];
the package, such as the source code. For instance, if you want to
override the source code of Emacs, you can say:
-
+
environment.systemPackages = [
(pkgs.emacs.overrideAttrs (oldAttrs: {
name = "emacs-25.0-pre";
@@ -72,7 +72,7 @@ environment.systemPackages = [
everything depend on your customised instance, you can apply a
global override as follows:
-
+
nixpkgs.config.packageOverrides = pkgs:
{ emacs = pkgs.emacs.override { gtk = pkgs.gtk3; };
};
diff --git a/nixos/doc/manual/from_md/configuration/declarative-packages.section.xml b/nixos/doc/manual/from_md/configuration/declarative-packages.section.xml
index da31f18d9233..bee310c2e34b 100644
--- a/nixos/doc/manual/from_md/configuration/declarative-packages.section.xml
+++ b/nixos/doc/manual/from_md/configuration/declarative-packages.section.xml
@@ -7,7 +7,7 @@
adding the following line to configuration.nix
enables the Mozilla Thunderbird email application:
-
+
environment.systemPackages = [ pkgs.thunderbird ];
diff --git a/nixos/doc/manual/from_md/configuration/file-systems.chapter.xml b/nixos/doc/manual/from_md/configuration/file-systems.chapter.xml
index 71441d8b4a5b..e5285c797555 100644
--- a/nixos/doc/manual/from_md/configuration/file-systems.chapter.xml
+++ b/nixos/doc/manual/from_md/configuration/file-systems.chapter.xml
@@ -7,7 +7,7 @@
/dev/disk/by-label/data onto the mount point
/data:
-
+
fileSystems."/data" =
{ device = "/dev/disk/by-label/data";
fsType = "ext4";
diff --git a/nixos/doc/manual/from_md/configuration/firewall.section.xml b/nixos/doc/manual/from_md/configuration/firewall.section.xml
index 24c19bb1c66d..6e1ffab72c54 100644
--- a/nixos/doc/manual/from_md/configuration/firewall.section.xml
+++ b/nixos/doc/manual/from_md/configuration/firewall.section.xml
@@ -6,14 +6,14 @@
both IPv4 and IPv6 traffic. It is enabled by default. It can be
disabled as follows:
-
+
networking.firewall.enable = false;
If the firewall is enabled, you can open specific TCP ports to the
outside world:
-
+
networking.firewall.allowedTCPPorts = [ 80 443 ];
@@ -26,7 +26,7 @@ networking.firewall.allowedTCPPorts = [ 80 443 ];
To open ranges of TCP ports:
-
+
networking.firewall.allowedTCPPortRanges = [
{ from = 4000; to = 4007; }
{ from = 8000; to = 8010; }
diff --git a/nixos/doc/manual/from_md/configuration/gpu-accel.chapter.xml b/nixos/doc/manual/from_md/configuration/gpu-accel.chapter.xml
index 90d2c17e12ef..c95d3dc86525 100644
--- a/nixos/doc/manual/from_md/configuration/gpu-accel.chapter.xml
+++ b/nixos/doc/manual/from_md/configuration/gpu-accel.chapter.xml
@@ -62,7 +62,7 @@ Platform Vendor Advanced Micro Devices, Inc.
enables
OpenCL support:
-
+
hardware.opengl.extraPackages = [
rocm-opencl-icd
];
@@ -85,7 +85,7 @@ hardware.opengl.extraPackages = [
enable OpenCL support. For example, for Gen8 and later GPUs, the
following configuration can be used:
-
+
hardware.opengl.extraPackages = [
intel-compute-runtime
];
@@ -162,7 +162,7 @@ GPU1:
makes amdvlk the default driver and hides radv and lavapipe from
the device list. A specific driver can be forced as follows:
-
+
hardware.opengl.extraPackages = [
pkgs.amdvlk
];
@@ -206,7 +206,7 @@ $ nix-shell -p libva-utils --run vainfo
Modern Intel GPUs use the iHD driver, which can be installed
with:
-
+
hardware.opengl.extraPackages = [
intel-media-driver
];
@@ -215,7 +215,7 @@ hardware.opengl.extraPackages = [
Older Intel GPUs use the i965 driver, which can be installed
with:
-
+
hardware.opengl.extraPackages = [
vaapiIntel
];
diff --git a/nixos/doc/manual/from_md/configuration/ipv4-config.section.xml b/nixos/doc/manual/from_md/configuration/ipv4-config.section.xml
index 047ba2165f07..49ec6f5952ec 100644
--- a/nixos/doc/manual/from_md/configuration/ipv4-config.section.xml
+++ b/nixos/doc/manual/from_md/configuration/ipv4-config.section.xml
@@ -6,7 +6,7 @@
interfaces. However, you can configure an interface manually as
follows:
-
+
networking.interfaces.eth0.ipv4.addresses = [ {
address = "192.168.1.2";
prefixLength = 24;
@@ -16,7 +16,7 @@ networking.interfaces.eth0.ipv4.addresses = [ {
Typically you’ll also want to set a default gateway and set of name
servers:
-
+
networking.defaultGateway = "192.168.1.1";
networking.nameservers = [ "8.8.8.8" ];
@@ -32,7 +32,7 @@ networking.nameservers = [ "8.8.8.8" ];
The host name is set using
:
-
+
networking.hostName = "cartman";
diff --git a/nixos/doc/manual/from_md/configuration/ipv6-config.section.xml b/nixos/doc/manual/from_md/configuration/ipv6-config.section.xml
index 137c3d772a86..2adb10622624 100644
--- a/nixos/doc/manual/from_md/configuration/ipv6-config.section.xml
+++ b/nixos/doc/manual/from_md/configuration/ipv6-config.section.xml
@@ -10,21 +10,21 @@
. You
can disable IPv6 support globally by setting:
-
+
networking.enableIPv6 = false;
You can disable IPv6 on a single interface using a normal sysctl (in
this example, we use interface eth0):
-
+
boot.kernel.sysctl."net.ipv6.conf.eth0.disable_ipv6" = true;
As with IPv4 networking interfaces are automatically configured via
DHCPv6. You can configure an interface manually:
-
+
networking.interfaces.eth0.ipv6.addresses = [ {
address = "fe00:aa:bb:cc::2";
prefixLength = 64;
@@ -34,7 +34,7 @@ networking.interfaces.eth0.ipv6.addresses = [ {
For configuring a gateway, optionally with explicitly specified
interface:
-
+
networking.defaultGateway6 = {
address = "fe00::1";
interface = "enp0s3";
diff --git a/nixos/doc/manual/from_md/configuration/kubernetes.chapter.xml b/nixos/doc/manual/from_md/configuration/kubernetes.chapter.xml
index 1de19f64bdad..da9ba323f18c 100644
--- a/nixos/doc/manual/from_md/configuration/kubernetes.chapter.xml
+++ b/nixos/doc/manual/from_md/configuration/kubernetes.chapter.xml
@@ -10,7 +10,7 @@
way is to enable and configure cluster components appropriately by
hand:
-
+
services.kubernetes = {
apiserver.enable = true;
controllerManager.enable = true;
@@ -21,24 +21,24 @@ services.kubernetes = {
};
- Another way is to assign cluster roles ("master" and/or
- "node") to the host. This enables apiserver,
+ Another way is to assign cluster roles (master and/or
+ node) to the host. This enables apiserver,
controllerManager, scheduler, addonManager, kube-proxy and etcd:
-
+
services.kubernetes.roles = [ "master" ];
While this will enable the kubelet and kube-proxy only:
-
+
services.kubernetes.roles = [ "node" ];
Assigning both the master and node roles is usable if you want a
single node Kubernetes cluster for dev or testing purposes:
-
+
services.kubernetes.roles = [ "master" "node" ];
diff --git a/nixos/doc/manual/from_md/configuration/linux-kernel.chapter.xml b/nixos/doc/manual/from_md/configuration/linux-kernel.chapter.xml
index dd570e1d66c2..f889306d51c0 100644
--- a/nixos/doc/manual/from_md/configuration/linux-kernel.chapter.xml
+++ b/nixos/doc/manual/from_md/configuration/linux-kernel.chapter.xml
@@ -5,7 +5,7 @@
option boot.kernelPackages. For instance, this
selects the Linux 3.10 kernel:
-
+
boot.kernelPackages = pkgs.linuxKernel.packages.linux_3_10;
@@ -48,7 +48,7 @@ zcat /proc/config.gz
). For instance, to
enable support for the kernel debugger KGDB:
-
+
nixpkgs.config.packageOverrides = pkgs: pkgs.lib.recursiveUpdate pkgs {
linuxKernel.kernels.linux_5_10 = pkgs.linuxKernel.kernels.linux_5_10.override {
extraConfig = ''
@@ -69,7 +69,7 @@ nixpkgs.config.packageOverrides = pkgs: pkgs.lib.recursiveUpdate pkgs {
automatically by udev. You can force a module to
be loaded via , e.g.
-
+
boot.kernelModules = [ "fuse" "kvm-intel" "coretemp" ];
@@ -77,7 +77,7 @@ boot.kernelModules = [ "fuse" "kvm-intel" "coretemp&quo
root file system), you can use
:
-
+
boot.initrd.kernelModules = [ "cifs" ];
@@ -88,7 +88,7 @@ boot.initrd.kernelModules = [ "cifs" ];
Kernel runtime parameters can be set through
, e.g.
-
+
boot.kernel.sysctl."net.ipv4.tcp_keepalive_time" = 120;
@@ -96,65 +96,82 @@ boot.kernel.sysctl."net.ipv4.tcp_keepalive_time" = 120;
available parameters, run sysctl -a.
- Customize your kernel
+ Building a custom kernel
- The first step before compiling the kernel is to generate an
- appropriate .config configuration. Either you
- pass your own config via the configfile setting
- of linuxKernel.manualConfig:
+ You can customize the default kernel configuration by overriding
+ the arguments for your kernel package:
-
-custom-kernel = let base_kernel = linuxKernel.kernels.linux_4_9;
- in super.linuxKernel.manualConfig {
- inherit (super) stdenv hostPlatform;
- inherit (base_kernel) src;
- version = "${base_kernel.version}-custom";
-
- configfile = /home/me/my_kernel_config;
- allowImportFromDerivation = true;
-};
-
-
- You can edit the config with this snippet (by default
- make menuconfig won't work out of the box on
- nixos):
-
-
-nix-shell -E 'with import <nixpkgs> {}; kernelToOverride.overrideAttrs (o: {nativeBuildInputs=o.nativeBuildInputs ++ [ pkg-config ncurses ];})'
-
-
- or you can let nixpkgs generate the configuration. Nixpkgs
- generates it via answering the interactive kernel utility
- make config. The answers depend on parameters
- passed to
- pkgs/os-specific/linux/kernel/generic.nix
- (which you can influence by overriding
- extraConfig, autoModules, modDirVersion, preferBuiltin, extraConfig).
-
-
-mptcp93.override ({
- name="mptcp-local";
-
+
+pkgs.linux_latest.override {
ignoreConfigErrors = true;
autoModules = false;
kernelPreferBuiltin = true;
-
- enableParallelBuilding = true;
-
- extraConfig = ''
- DEBUG_KERNEL y
- FRAME_POINTER y
- KGDB y
- KGDB_SERIAL_CONSOLE y
- DEBUG_INFO y
- '';
-});
+ extraStructuredConfig = with lib.kernel; {
+ DEBUG_KERNEL = yes;
+ FRAME_POINTER = yes;
+ KGDB = yes;
+ KGDB_SERIAL_CONSOLE = yes;
+ DEBUG_INFO = yes;
+ };
+}
+
+
+ See pkgs/os-specific/linux/kernel/generic.nix
+ for details on how these arguments affect the generated
+ configuration. You can also build a custom version of Linux by
+ calling pkgs.buildLinux directly, which
+ requires the src and version
+ arguments to be specified.
+
+
+ To use your custom kernel package in your NixOS configuration, set
+
+
+boot.kernelPackages = pkgs.linuxPackagesFor yourCustomKernel;
+
+
+ Note that this method will use the common configuration defined in
+ pkgs/os-specific/linux/kernel/common-config.nix,
+ which is suitable for a NixOS system.
+
+
+ If you already have a generated configuration file, you can build
+ a kernel that uses it with
+ pkgs.linuxManualConfig:
+
+
+let
+ baseKernel = pkgs.linux_latest;
+in pkgs.linuxManualConfig {
+ inherit (baseKernel) src modDirVersion;
+ version = "${baseKernel.version}-custom";
+ configfile = ./my_kernel_config;
+ allowImportFromDerivation = true;
+}
+
+
+
+ The build will fail if modDirVersion does not
+ match the source’s kernel.release file, so
+ modDirVersion should remain tied to
+ src.
+
+
+
+ To edit the .config file for Linux X.Y, proceed
+ as follows:
+
+
+$ nix-shell '<nixpkgs>' -A linuxKernel.kernels.linux_X_Y.configEnv
+$ unpackPhase
+$ cd linux-*
+$ make nconfig
Developing kernel modules
- When developing kernel modules it's often convenient to run
+ When developing kernel modules it’s often convenient to run
edit-compile-run loop as quickly as possible. See below snippet as
an example of developing mellanox drivers.
@@ -181,7 +198,7 @@ $ make -C $dev/lib/modules/*/build M=$(pwd)/drivers/net/ethernet/mellanox module
available kernel version that is supported by
ZFS like this:
-
+
{
boot.kernelPackages = pkgs.zfs.latestCompatibleLinuxPackages;
}
diff --git a/nixos/doc/manual/from_md/configuration/luks-file-systems.section.xml b/nixos/doc/manual/from_md/configuration/luks-file-systems.section.xml
index 42b766eba98b..144a5acecae3 100644
--- a/nixos/doc/manual/from_md/configuration/luks-file-systems.section.xml
+++ b/nixos/doc/manual/from_md/configuration/luks-file-systems.section.xml
@@ -30,7 +30,7 @@ Enter passphrase for /dev/disk/by-uuid/3f6b0024-3a44-4fde-a43a-767b872abe5d: ***
at boot time as /, add the following to
configuration.nix:
-
+
boot.initrd.luks.devices.crypted.device = "/dev/disk/by-uuid/3f6b0024-3a44-4fde-a43a-767b872abe5d";
fileSystems."/".device = "/dev/mapper/crypted";
@@ -39,7 +39,7 @@ fileSystems."/".device = "/dev/mapper/crypted";
located on an encrypted partition, it is necessary to add the
following grub option:
-
+
boot.loader.grub.enableCryptodisk = true;
@@ -67,7 +67,7 @@ Added to key to device /dev/sda2, slot: 2
compatible key, add the following to
configuration.nix:
-
+
boot.initrd.luks.fido2Support = true;
boot.initrd.luks.devices."/dev/sda2".fido2.credential = "f1d00200108b9d6e849a8b388da457688e3dd653b4e53770012d8f28e5d3b269865038c346802f36f3da7278b13ad6a3bb6a1452e24ebeeaa24ba40eef559b1b287d2a2f80b7";
@@ -77,7 +77,7 @@ boot.initrd.luks.devices."/dev/sda2".fido2.credential = "f1d00200
protected, such as
Trezor.
-
+
boot.initrd.luks.devices."/dev/sda2".fido2.passwordLess = true;
diff --git a/nixos/doc/manual/from_md/configuration/modularity.section.xml b/nixos/doc/manual/from_md/configuration/modularity.section.xml
index a7688090fcc5..987b2fc43c01 100644
--- a/nixos/doc/manual/from_md/configuration/modularity.section.xml
+++ b/nixos/doc/manual/from_md/configuration/modularity.section.xml
@@ -14,7 +14,7 @@
other modules by including them from
configuration.nix, e.g.:
-
+
{ config, pkgs, ... }:
{ imports = [ ./vpn.nix ./kde.nix ];
@@ -28,7 +28,7 @@
vpn.nix and kde.nix. The
latter might look like this:
-
+
{ config, pkgs, ... }:
{ services.xserver.enable = true;
@@ -50,7 +50,7 @@
you want it to appear first, you can use
mkBefore:
-
+
boot.kernelModules = mkBefore [ "kvm-intel" ];
@@ -70,7 +70,7 @@ The unique option `services.httpd.adminAddr' is defined multiple times, in `/etc
When that happens, it’s possible to force one definition take
precedence over the others:
-
+
services.httpd.adminAddr = pkgs.lib.mkForce "bob@example.org";
@@ -93,7 +93,7 @@ services.httpd.adminAddr = pkgs.lib.mkForce "bob@example.org";
is set to
true somewhere else:
-
+
{ config, pkgs, ... }:
{ environment.systemPackages =
@@ -137,7 +137,7 @@ nix-repl> map (x: x.hostName) config.services.httpd.virtualHosts
below would have the same effect as importing a file which sets
those options.
-
+
{ config, pkgs, ... }:
let netConfig = hostName: {
diff --git a/nixos/doc/manual/from_md/configuration/network-manager.section.xml b/nixos/doc/manual/from_md/configuration/network-manager.section.xml
index 8f0d6d680ae0..c49618b4b942 100644
--- a/nixos/doc/manual/from_md/configuration/network-manager.section.xml
+++ b/nixos/doc/manual/from_md/configuration/network-manager.section.xml
@@ -4,7 +4,7 @@
To facilitate network configuration, some desktop environments use
NetworkManager. You can enable NetworkManager by setting:
-
+
networking.networkmanager.enable = true;
@@ -15,7 +15,7 @@ networking.networkmanager.enable = true;
All users that should have permission to change network settings
must belong to the networkmanager group:
-
+
users.users.alice.extraGroups = [ "networkmanager" ];
@@ -36,7 +36,7 @@ users.users.alice.extraGroups = [ "networkmanager" ];
used together if desired. To do this you need to instruct
NetworkManager to ignore those interfaces like:
-
+
networking.networkmanager.unmanaged = [
"*" "except:type:wwan" "except:type:gsm"
];
diff --git a/nixos/doc/manual/from_md/configuration/profiles.chapter.xml b/nixos/doc/manual/from_md/configuration/profiles.chapter.xml
index 6f5fc130c6a0..f3aacfc0a245 100644
--- a/nixos/doc/manual/from_md/configuration/profiles.chapter.xml
+++ b/nixos/doc/manual/from_md/configuration/profiles.chapter.xml
@@ -4,12 +4,12 @@
In some cases, it may be desirable to take advantage of
commonly-used, predefined configurations provided by nixpkgs, but
different from those that come as default. This is a role fulfilled
- by NixOS's Profiles, which come as files living in
+ by NixOS’s Profiles, which come as files living in
<nixpkgs/nixos/modules/profiles>. That is
to say, expected usage is to add them to the imports list of your
/etc/configuration.nix as such:
-
+
imports = [
<nixpkgs/nixos/modules/profiles/profile-name.nix>
];
diff --git a/nixos/doc/manual/from_md/configuration/renaming-interfaces.section.xml b/nixos/doc/manual/from_md/configuration/renaming-interfaces.section.xml
index 88c9e624c82f..fca99edcbaea 100644
--- a/nixos/doc/manual/from_md/configuration/renaming-interfaces.section.xml
+++ b/nixos/doc/manual/from_md/configuration/renaming-interfaces.section.xml
@@ -30,7 +30,7 @@
the interface with MAC address
52:54:00:12:01:01 using a netword link unit:
-
+
systemd.network.links."10-wan" = {
matchConfig.PermanentMACAddress = "52:54:00:12:01:01";
linkConfig.Name = "wan";
@@ -43,7 +43,7 @@ systemd.network.links."10-wan" = {
Alternatively, we can use a plain old udev rule:
-
+
services.udev.initrdRules = ''
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \
ATTR{address}=="52:54:00:12:01:01", KERNEL=="eth*", NAME="wan"
diff --git a/nixos/doc/manual/from_md/configuration/ssh.section.xml b/nixos/doc/manual/from_md/configuration/ssh.section.xml
index 037418d8ea4d..a330457f51d6 100644
--- a/nixos/doc/manual/from_md/configuration/ssh.section.xml
+++ b/nixos/doc/manual/from_md/configuration/ssh.section.xml
@@ -3,7 +3,7 @@
Secure shell (SSH) access to your machine can be enabled by setting:
-
+
services.openssh.enable = true;
@@ -16,7 +16,7 @@ services.openssh.enable = true;
You can declaratively specify authorised RSA/DSA public keys for a
user as follows:
-
+
users.users.alice.openssh.authorizedKeys.keys =
[ "ssh-dss AAAAB3NzaC1kc3MAAACBAPIkGWVEt4..." ];
diff --git a/nixos/doc/manual/from_md/configuration/sshfs-file-systems.section.xml b/nixos/doc/manual/from_md/configuration/sshfs-file-systems.section.xml
index 5d74712f35dc..26984dd411a1 100644
--- a/nixos/doc/manual/from_md/configuration/sshfs-file-systems.section.xml
+++ b/nixos/doc/manual/from_md/configuration/sshfs-file-systems.section.xml
@@ -54,7 +54,7 @@ SHA256:yjxl3UbTn31fLWeyLYTAKYJPRmzknjQZoyG8gSNEoIE my-user@workstation
fileSystems option. Here’s
a typical setup:
-
+
{
system.fsPackages = [ pkgs.sshfs ];
@@ -80,7 +80,7 @@ SHA256:yjxl3UbTn31fLWeyLYTAKYJPRmzknjQZoyG8gSNEoIE my-user@workstation
well, for example you can change the default SSH port or specify a
jump proxy:
-
+
{
options =
[ "ProxyJump=bastion@example.com"
@@ -92,7 +92,7 @@ SHA256:yjxl3UbTn31fLWeyLYTAKYJPRmzknjQZoyG8gSNEoIE my-user@workstation
It’s also possible to change the ssh command
used by SSHFS to connect to the server. For example:
-
+
{
options =
[ (builtins.replaceStrings [" "] ["\\040"]
diff --git a/nixos/doc/manual/from_md/configuration/subversion.chapter.xml b/nixos/doc/manual/from_md/configuration/subversion.chapter.xml
index 794c2c34e399..4390fc54ab53 100644
--- a/nixos/doc/manual/from_md/configuration/subversion.chapter.xml
+++ b/nixos/doc/manual/from_md/configuration/subversion.chapter.xml
@@ -25,7 +25,7 @@
Apache HTTP, setting
appropriately:
-
+
services.httpd.enable = true;
services.httpd.adminAddr = ...;
networking.firewall.allowedTCPPorts = [ 80 443 ];
@@ -40,7 +40,7 @@ networking.firewall.allowedTCPPorts = [ 80 443 ];
.authz file describing access permission, and
AuthUserFile to the password file.
-
+
services.httpd.extraModules = [
# note that order is *super* important here
{ name = "dav_svn"; path = "${pkgs.apacheHttpdPackages.subversion}/modules/mod_dav_svn.so"; }
@@ -106,7 +106,7 @@ $ htpasswd -s PASSWORD_FILE USER_NAME
ACCESS_FILE will look something like the
following:
-
+
[/]
* = r
diff --git a/nixos/doc/manual/from_md/configuration/user-mgmt.chapter.xml b/nixos/doc/manual/from_md/configuration/user-mgmt.chapter.xml
index a2d7d2a9f115..d61b248d5eef 100644
--- a/nixos/doc/manual/from_md/configuration/user-mgmt.chapter.xml
+++ b/nixos/doc/manual/from_md/configuration/user-mgmt.chapter.xml
@@ -7,7 +7,7 @@
states that a user account named alice shall
exist:
-
+
users.users.alice = {
isNormalUser = true;
home = "/home/alice";
@@ -36,7 +36,7 @@ users.users.alice = {
and run nixos-rebuild, the user
account will cease to exist. Also, imperative commands for managing
users and groups, such as useradd, are no longer available.
- Passwords may still be assigned by setting the user's
+ Passwords may still be assigned by setting the user’s
hashedPassword
option. A hashed password can be generated using
mkpasswd.
@@ -45,7 +45,7 @@ users.users.alice = {
A user ID (uid) is assigned automatically. You can also specify a
uid manually by adding
-
+
uid = 1000;
@@ -55,7 +55,7 @@ uid = 1000;
Groups can be specified similarly. The following states that a group
named students shall exist:
-
+
users.groups.students.gid = 1000;
diff --git a/nixos/doc/manual/from_md/configuration/wayland.chapter.xml b/nixos/doc/manual/from_md/configuration/wayland.chapter.xml
index 1e90d4f31177..07892c875bb2 100644
--- a/nixos/doc/manual/from_md/configuration/wayland.chapter.xml
+++ b/nixos/doc/manual/from_md/configuration/wayland.chapter.xml
@@ -5,11 +5,12 @@
display technology on NixOS, Wayland support is steadily improving.
Where X11 separates the X Server and the window manager, on Wayland
those are combined: a Wayland Compositor is like an X11 window
- manager, but also embeds the Wayland 'Server' functionality. This
- means it is sufficient to install a Wayland Compositor such as sway
- without separately enabling a Wayland server:
+ manager, but also embeds the Wayland Server
+ functionality. This means it is sufficient to install a Wayland
+ Compositor such as sway without separately enabling a Wayland
+ server:
-
+
programs.sway.enable = true;
@@ -21,7 +22,7 @@ programs.sway.enable = true;
be able to share your screen, you might want to activate this
option:
-
+
xdg.portal.wlr.enable = true;
diff --git a/nixos/doc/manual/from_md/configuration/wireless.section.xml b/nixos/doc/manual/from_md/configuration/wireless.section.xml
index d39ec4fac493..79feab47203a 100644
--- a/nixos/doc/manual/from_md/configuration/wireless.section.xml
+++ b/nixos/doc/manual/from_md/configuration/wireless.section.xml
@@ -9,13 +9,13 @@
NixOS will start wpa_supplicant for you if you enable this setting:
-
+
networking.wireless.enable = true;
NixOS lets you specify networks for wpa_supplicant declaratively:
-
+
networking.wireless.networks = {
echelon = { # SSID with no spaces or special characters
psk = "abcdefgh";
@@ -49,7 +49,7 @@ network={
psk=dca6d6ed41f4ab5a984c9f55f6f66d4efdc720ebf66959810f4329bb391c5435
}
-
+
networking.wireless.networks = {
echelon = {
pskRaw = "dca6d6ed41f4ab5a984c9f55f6f66d4efdc720ebf66959810f4329bb391c5435";
diff --git a/nixos/doc/manual/from_md/configuration/x-windows.chapter.xml b/nixos/doc/manual/from_md/configuration/x-windows.chapter.xml
index c17e98983b27..c5a8b9bae84d 100644
--- a/nixos/doc/manual/from_md/configuration/x-windows.chapter.xml
+++ b/nixos/doc/manual/from_md/configuration/x-windows.chapter.xml
@@ -4,7 +4,7 @@
The X Window System (X11) provides the basis of NixOS’ graphical
user interface. It can be enabled as follows:
-
+
services.xserver.enable = true;
@@ -13,7 +13,7 @@ services.xserver.enable = true;
and intel). You can also specify a driver
manually, e.g.
-
+
services.xserver.videoDrivers = [ "r128" ];
@@ -25,7 +25,7 @@ services.xserver.videoDrivers = [ "r128" ];
xterm window. Thus you should pick one or more of
the following lines:
-
+
services.xserver.desktopManager.plasma5.enable = true;
services.xserver.desktopManager.xfce.enable = true;
services.xserver.desktopManager.gnome.enable = true;
@@ -42,14 +42,14 @@ services.xserver.windowManager.herbstluftwm.enable = true;
LightDM. You can select an alternative one by picking one of the
following lines:
-
+
services.xserver.displayManager.sddm.enable = true;
services.xserver.displayManager.gdm.enable = true;
You can set the keyboard layout (and optionally the layout variant):
-
+
services.xserver.layout = "de";
services.xserver.xkbVariant = "neo";
@@ -57,7 +57,7 @@ services.xserver.xkbVariant = "neo";
The X server is started automatically at boot time. If you don’t
want this to happen, you can set:
-
+
services.xserver.autorun = false;
@@ -70,7 +70,7 @@ services.xserver.autorun = false;
On 64-bit systems, if you want OpenGL for 32-bit programs such as in
Wine, you should also set the following:
-
+
hardware.opengl.driSupport32Bit = true;
@@ -88,16 +88,16 @@ hardware.opengl.driSupport32Bit = true;
To enable auto-login, you need to define your default window
manager and desktop environment. If you wanted no desktop
- environment and i3 as your your window manager, you'd define:
+ environment and i3 as your your window manager, you’d define:
-
+
services.xserver.displayManager.defaultSession = "none+i3";
Every display manager in NixOS supports auto-login, here is an
example using lightdm for a user alice:
-
+
services.xserver.displayManager.lightdm.enable = true;
services.xserver.displayManager.autoLogin.enable = true;
services.xserver.displayManager.autoLogin.user = "alice";
@@ -122,8 +122,8 @@ services.xserver.displayManager.autoLogin.user = "alice";
The second driver, intel, is specific to Intel
GPUs, but not recommended by most distributions: it lacks several
- modern features (for example, it doesn't support Glamor) and the
- package hasn't been officially updated since 2015.
+ modern features (for example, it doesn’t support Glamor) and the
+ package hasn’t been officially updated since 2015.
The results vary depending on the hardware, so you may have to try
@@ -131,14 +131,14 @@ services.xserver.displayManager.autoLogin.user = "alice";
to set one.
The recommended configuration for modern systems is:
-
+
services.xserver.videoDrivers = [ "modesetting" ];
If you experience screen tearing no matter what, this
configuration was reported to resolve the issue:
-
+
services.xserver.videoDrivers = [ "intel" ];
services.xserver.deviceSection = ''
Option "DRI" "2"
@@ -159,14 +159,14 @@ services.xserver.deviceSection = ''
enabled by default because it’s not free software. You can enable
it as follows:
-
+
services.xserver.videoDrivers = [ "nvidia" ];
Or if you have an older card, you may have to use one of the
legacy drivers:
-
+
services.xserver.videoDrivers = [ "nvidiaLegacy390" ];
services.xserver.videoDrivers = [ "nvidiaLegacy340" ];
services.xserver.videoDrivers = [ "nvidiaLegacy304" ];
@@ -181,11 +181,11 @@ services.xserver.videoDrivers = [ "nvidiaLegacy304" ];
AMD provides a proprietary driver for its graphics cards that is
not enabled by default because it’s not Free Software, is often
- broken in nixpkgs and as of this writing doesn't offer more
+ broken in nixpkgs and as of this writing doesn’t offer more
features or performance. If you still want to use it anyway, you
need to explicitly set:
-
+
services.xserver.videoDrivers = [ "amdgpu-pro" ];
@@ -199,14 +199,14 @@ services.xserver.videoDrivers = [ "amdgpu-pro" ];
Support for Synaptics touchpads (found in many laptops such as the
Dell Latitude series) can be enabled as follows:
-
+
services.xserver.libinput.enable = true;
The driver has many options (see ).
For instance, the following disables tap-to-click behavior:
-
+
services.xserver.libinput.touchpad.tapping = false;
@@ -222,7 +222,7 @@ services.xserver.libinput.touchpad.tapping = false;
applications look similar to GTK ones, you can use the following
configuration:
-
+
qt5.enable = true;
qt5.platformTheme = "gtk2";
qt5.style = "gtk2";
@@ -244,10 +244,10 @@ qt5.style = "gtk2";
Create a file called us-greek with the
following content (under a directory called
- symbols; it's an XKB peculiarity that will help
+ symbols; it’s an XKB peculiarity that will help
with testing):
-
+
xkb_symbols "us-greek"
{
include "us(basic)" // includes the base US keys
@@ -263,7 +263,7 @@ xkb_symbols "us-greek"
A minimal layout specification must include the following:
-
+
services.xserver.extraLayouts.us-greek = {
description = "US layout with alt-gr greek";
languages = [ "eng" ];
@@ -279,7 +279,7 @@ services.xserver.extraLayouts.us-greek = {
Applying this customization requires rebuilding several packages,
and a broken XKB file can lead to the X session crashing at login.
- Therefore, you're strongly advised to test
+ Therefore, you’re strongly advised to test
your layout before applying it:
@@ -312,7 +312,7 @@ $ echo "$(nix-build --no-out-link '<nixpkgs>' -A xorg.xkeyboardconfig
interest, then create a media-key file to hold
the keycodes definitions
-
+
xkb_keycodes "media"
{
<volUp> = 123;
@@ -322,7 +322,7 @@ xkb_keycodes "media"
Now use the newly define keycodes in media-sym:
-
+
xkb_symbols "media"
{
key.type = "ONE_LEVEL";
@@ -333,7 +333,7 @@ xkb_symbols "media"
As before, to install the layout do
-
+
services.xserver.extraLayouts.media = {
description = "Multimedia keys remapping";
languages = [ "eng" ];
@@ -352,18 +352,18 @@ services.xserver.extraLayouts.media = {
Unfortunately, the Xorg server does not (currently) support
setting a keymap directly but relies instead on XKB rules to
- select the matching components (keycodes, types, ...) of a layout.
- This means that components other than symbols won't be loaded by
+ select the matching components (keycodes, types, …) of a layout.
+ This means that components other than symbols won’t be loaded by
default. As a workaround, you can set the keymap using
setxkbmap at the start of the session with:
-
+
services.xserver.displayManager.sessionCommands = "setxkbmap -keycodes media";
If you are manually starting the X server, you should set the
argument -xkbdir /etc/X11/xkb, otherwise X
- won't find your layout files. For example with
+ won’t find your layout files. For example with
xinit run
diff --git a/nixos/doc/manual/from_md/configuration/xfce.chapter.xml b/nixos/doc/manual/from_md/configuration/xfce.chapter.xml
index 42e70d1d81d3..7ec69b5e9b8f 100644
--- a/nixos/doc/manual/from_md/configuration/xfce.chapter.xml
+++ b/nixos/doc/manual/from_md/configuration/xfce.chapter.xml
@@ -3,7 +3,7 @@
To enable the Xfce Desktop Environment, set
-
+
services.xserver.desktopManager.xfce.enable = true;
services.xserver.displayManager.defaultSession = "xfce";
@@ -11,7 +11,7 @@ services.xserver.displayManager.defaultSession = "xfce";
Optionally, picom can be enabled for nice
graphical effects, some example settings:
-
+
services.picom = {
enable = true;
fade = true;
@@ -36,8 +36,8 @@ services.picom = {
.
- If you'd like to add extra plugins to Thunar, add them to
- . You shouldn't just
+ If you’d like to add extra plugins to Thunar, add them to
+ . You shouldn’t just
add them to .
@@ -54,9 +54,10 @@ Thunar:2410): GVFS-RemoteVolumeMonitor-WARNING **: remote volume monitor with db
This is caused by some needed GNOME services not running. This is
- all fixed by enabling "Launch GNOME services on startup"
- in the Advanced tab of the Session and Startup settings panel.
- Alternatively, you can run this command to do the same thing.
+ all fixed by enabling Launch GNOME services on
+ startup in the Advanced tab of the Session and Startup
+ settings panel. Alternatively, you can run this command to do the
+ same thing.
$ xfconf-query -c xfce4-session -p /compat/LaunchGNOME -s true
diff --git a/nixos/doc/manual/from_md/development/activation-script.section.xml b/nixos/doc/manual/from_md/development/activation-script.section.xml
index 8672ab8afe54..429b45c93def 100644
--- a/nixos/doc/manual/from_md/development/activation-script.section.xml
+++ b/nixos/doc/manual/from_md/development/activation-script.section.xml
@@ -22,7 +22,7 @@
these dependencies into account and order the snippets accordingly.
As a simple example:
-
+
system.activationScripts.my-activation-script = {
deps = [ "etc" ];
# supportsDryActivation = true;
diff --git a/nixos/doc/manual/from_md/development/assertions.section.xml b/nixos/doc/manual/from_md/development/assertions.section.xml
index 0844d484d60f..13f04d5d1883 100644
--- a/nixos/doc/manual/from_md/development/assertions.section.xml
+++ b/nixos/doc/manual/from_md/development/assertions.section.xml
@@ -18,7 +18,7 @@
This is an example of using warnings.
-
+
{ config, lib, ... }:
{
config = lib.mkIf config.services.foo.enable {
@@ -42,7 +42,7 @@
assertion is useful to prevent such a broken system from being
built.
-
+
{ config, lib, ... }:
{
config = lib.mkIf config.services.syslogd.enable {
diff --git a/nixos/doc/manual/from_md/development/bootspec.chapter.xml b/nixos/doc/manual/from_md/development/bootspec.chapter.xml
index acf8ca76bf5c..9ecbe1d1beed 100644
--- a/nixos/doc/manual/from_md/development/bootspec.chapter.xml
+++ b/nixos/doc/manual/from_md/development/bootspec.chapter.xml
@@ -43,7 +43,7 @@
/etc/os-release in order to bake it into a
unified kernel image:
-
+
{ config, lib, ... }: {
boot.bootspec.extensions = {
"org.secureboot.osRelease" = config.environment.etc."os-release".source;
diff --git a/nixos/doc/manual/from_md/development/freeform-modules.section.xml b/nixos/doc/manual/from_md/development/freeform-modules.section.xml
index 86a9cf3140d8..c51bc76ff966 100644
--- a/nixos/doc/manual/from_md/development/freeform-modules.section.xml
+++ b/nixos/doc/manual/from_md/development/freeform-modules.section.xml
@@ -30,7 +30,7 @@
type-checked settings attribute for a more
complete example.
-
+
{ lib, config, ... }: {
options.settings = lib.mkOption {
@@ -52,7 +52,7 @@
And the following shows what such a module then allows
-
+
{
# Not a declared option, but the freeform type allows this
settings.logLevel = "debug";
@@ -72,7 +72,7 @@
Freeform attributes cannot depend on other attributes of the same
set without infinite recursion:
-
+
{
# This throws infinite recursion encountered
settings.logLevel = lib.mkIf (config.settings.port == 80) "debug";
diff --git a/nixos/doc/manual/from_md/development/importing-modules.section.xml b/nixos/doc/manual/from_md/development/importing-modules.section.xml
index cb04dde67c83..96e5e1bb16b8 100644
--- a/nixos/doc/manual/from_md/development/importing-modules.section.xml
+++ b/nixos/doc/manual/from_md/development/importing-modules.section.xml
@@ -4,7 +4,7 @@
Sometimes NixOS modules need to be used in configuration but exist
outside of Nixpkgs. These modules can be imported:
-
+
{ config, lib, pkgs, ... }:
{
@@ -23,18 +23,18 @@
Nixpkgs NixOS modules. Like any NixOS module, this module can import
additional modules:
-
+
# ./module-list/default.nix
[
./example-module1
./example-module2
]
-
+
# ./extra-module/default.nix
{ imports = import ./module-list.nix; }
-
+
# NIXOS_EXTRA_MODULE_PATH=/absolute/path/to/extra-module
{ config, lib, pkgs, ... }:
diff --git a/nixos/doc/manual/from_md/development/meta-attributes.section.xml b/nixos/doc/manual/from_md/development/meta-attributes.section.xml
index 1eb6e0f30368..9cc58afa1fdd 100644
--- a/nixos/doc/manual/from_md/development/meta-attributes.section.xml
+++ b/nixos/doc/manual/from_md/development/meta-attributes.section.xml
@@ -15,7 +15,7 @@
Each of the meta-attributes must be defined at most once per module
file.
-
+
{ config, lib, pkgs, ... }:
{
options = {
diff --git a/nixos/doc/manual/from_md/development/option-declarations.section.xml b/nixos/doc/manual/from_md/development/option-declarations.section.xml
index 0932a51a18cd..2e6a12d53095 100644
--- a/nixos/doc/manual/from_md/development/option-declarations.section.xml
+++ b/nixos/doc/manual/from_md/development/option-declarations.section.xml
@@ -6,7 +6,7 @@
hasn’t been declared in any module. An option declaration generally
looks like this:
-
+
options = {
name = mkOption {
type = type specification;
@@ -127,7 +127,7 @@ options = {
For example:
-
+
lib.mkEnableOption "magic"
# is like
lib.mkOption {
@@ -142,7 +142,7 @@ lib.mkOption {
Usage:
-
+
mkPackageOption pkgs "name" { default = [ "path" "in" "pkgs" ]; example = "literal example"; }
@@ -177,7 +177,7 @@ mkPackageOption pkgs "name" { default = [ "path" "in&qu
Examples:
-
+
lib.mkPackageOption pkgs "hello" { }
# is like
lib.mkOption {
@@ -188,7 +188,7 @@ lib.mkOption {
}
-
+
lib.mkPackageOption pkgs "GHC" {
default = [ "ghc" ];
example = "pkgs.haskell.packages.ghc92.ghc.withPackages (hkgs: [ hkgs.primes ])";
@@ -222,7 +222,7 @@ lib.mkOption {
As an example, we will take the case of display managers.
There is a central display manager module for generic
display manager options and a module file per display
- manager backend (sddm, gdm ...).
+ manager backend (sddm, gdm …).
There are two approaches we could take with this module
@@ -287,7 +287,7 @@ lib.mkOption {
Example: Extensible type placeholder
in the service module
-
+
services.xserver.displayManager.enable = mkOption {
description = "Display manager to use";
type = with types; nullOr (enum [ ]);
@@ -299,7 +299,7 @@ services.xserver.displayManager.enable = mkOption {
services.xserver.displayManager.enable in
the gdm module
-
+
services.xserver.displayManager.enable = mkOption {
type = with types; nullOr (enum [ "gdm" ]);
};
@@ -310,7 +310,7 @@ services.xserver.displayManager.enable = mkOption {
services.xserver.displayManager.enable in
the sddm module
-
+
services.xserver.displayManager.enable = mkOption {
type = with types; nullOr (enum [ "sddm" ]);
};
diff --git a/nixos/doc/manual/from_md/development/option-def.section.xml b/nixos/doc/manual/from_md/development/option-def.section.xml
index 3c1a979e70f3..87b290ec39c6 100644
--- a/nixos/doc/manual/from_md/development/option-def.section.xml
+++ b/nixos/doc/manual/from_md/development/option-def.section.xml
@@ -4,7 +4,7 @@
Option definitions are generally straight-forward bindings of values
to option names, like
-
+
config = {
services.httpd.enable = true;
};
@@ -21,7 +21,7 @@ config = {
another option, you may need to use mkIf.
Consider, for instance:
-
+
config = if config.services.httpd.enable then {
environment.systemPackages = [ ... ];
...
@@ -34,7 +34,7 @@ config = if config.services.httpd.enable then {
value being constructed here. After all, you could also write the
clearly circular and contradictory:
-
+
config = if config.services.httpd.enable then {
services.httpd.enable = false;
} else {
@@ -44,7 +44,7 @@ config = if config.services.httpd.enable then {
The solution is to write:
-
+
config = mkIf config.services.httpd.enable {
environment.systemPackages = [ ... ];
...
@@ -55,7 +55,7 @@ config = mkIf config.services.httpd.enable {
of the conditional to be pushed down into the
individual definitions, as if you had written:
-
+
config = {
environment.systemPackages = if config.services.httpd.enable then [ ... ] else [];
...
@@ -72,7 +72,7 @@ config = {
option defaults have priority 1500. You can specify an explicit
priority by using mkOverride, e.g.
-
+
services.openssh.enable = mkOverride 10 false;
@@ -94,7 +94,7 @@ services.openssh.enable = mkOverride 10 false;
mkOrder 500 and
mkOrder 1500, respectively. As an example,
-
+
hardware.firmware = mkBefore [ myFirmware ];
@@ -117,7 +117,7 @@ hardware.firmware = mkBefore [ myFirmware ];
to be merged together as if they were declared in separate
modules. This can be done using mkMerge:
-
+
config = mkMerge
[ # Unconditional stuff.
{ environment.systemPackages = [ ... ];
diff --git a/nixos/doc/manual/from_md/development/option-types.section.xml b/nixos/doc/manual/from_md/development/option-types.section.xml
index c0f40cb34232..363399b08661 100644
--- a/nixos/doc/manual/from_md/development/option-types.section.xml
+++ b/nixos/doc/manual/from_md/development/option-types.section.xml
@@ -81,14 +81,14 @@
Two definitions of this type like
-
+
{
str = lib.mkDefault "foo";
pkg.hello = pkgs.hello;
fun.fun = x: x + 1;
}
-
+
{
str = lib.mkIf true "bar";
pkg.gcc = pkgs.gcc;
@@ -98,7 +98,7 @@
will get merged to
-
+
{
str = "bar";
pkg.gcc = pkgs.gcc;
@@ -152,13 +152,13 @@
This type will be deprecated in the future because it
- doesn't recurse into attribute sets, silently drops
- earlier attribute definitions, and doesn't discharge
+ doesn’t recurse into attribute sets, silently drops
+ earlier attribute definitions, and doesn’t discharge
lib.mkDefault,
lib.mkIf and co. For allowing arbitrary
attribute sets, prefer
types.attrsOf types.anything instead
- which doesn't have these problems.
+ which doesn’t have these problems.
@@ -453,7 +453,7 @@
_module.args should be used instead
for most arguments since it allows overriding.
specialArgs
- should only be used for arguments that can't go through
+ should only be used for arguments that can’t go through
the module fixed-point, because of infinite recursion or
other problems. An example is overriding the
lib argument, because
@@ -477,7 +477,7 @@
instead of requiring
the-submodule.config.config = "value".
This is because only when modules
- don't set the
+ don’t set the
config or options
keys, all keys are interpreted as option definitions in
the config section. Enabling this
@@ -668,7 +668,7 @@
types.oneOf [
- t1 t2 ... ]
+ t1 t2 … ]
@@ -732,7 +732,7 @@
Example: Directly defined
submodule
-
+
options.mod = mkOption {
description = "submodule example";
type = with types; submodule {
@@ -752,7 +752,7 @@ options.mod = mkOption {
Example: Submodule defined as a
reference
-
+
let
modOptions = {
options = {
@@ -787,7 +787,7 @@ options.mod = mkOption {
Example: Declaration of a list of
submodules
-
+
options.mod = mkOption {
description = "submodule example";
type = with types; listOf (submodule {
@@ -807,7 +807,7 @@ options.mod = mkOption {
Example: Definition of a list of
submodules
-
+
config.mod = [
{ foo = 1; bar = "one"; }
{ foo = 2; bar = "two"; }
@@ -827,7 +827,7 @@ config.mod = [
Example: Declaration of attribute sets of
submodules
-
+
options.mod = mkOption {
description = "submodule example";
type = with types; attrsOf (submodule {
@@ -847,7 +847,7 @@ options.mod = mkOption {
Example: Definition of attribute sets of
submodules
-
+
config.mod.one = { foo = 1; bar = "one"; };
config.mod.two = { foo = 2; bar = "two"; };
@@ -878,7 +878,7 @@ config.mod.two = { foo = 2; bar = "two"; };
Example: Adding a type
check
-
+
byte = mkOption {
description = "An integer between 0 and 255.";
type = types.addCheck types.int (x: x >= 0 && x <= 255);
@@ -889,7 +889,7 @@ byte = mkOption {
Example: Overriding a type
check
-
+
nixThings = mkOption {
description = "words that start with 'nix'";
type = types.str // {
diff --git a/nixos/doc/manual/from_md/development/replace-modules.section.xml b/nixos/doc/manual/from_md/development/replace-modules.section.xml
index cf8a39ba844f..d8aaf59df366 100644
--- a/nixos/doc/manual/from_md/development/replace-modules.section.xml
+++ b/nixos/doc/manual/from_md/development/replace-modules.section.xml
@@ -3,8 +3,8 @@
Modules that are imported can also be disabled. The option
declarations, config implementation and the imports of a disabled
- module will be ignored, allowing another to take it's place. This
- can be used to import a set of modules from another channel while
+ module will be ignored, allowing another to take its place. This can
+ be used to import a set of modules from another channel while
keeping the rest of the system on a stable release.
@@ -19,10 +19,10 @@
This example will replace the existing postgresql module with the
version defined in the nixos-unstable channel while keeping the rest
of the modules and packages from the original nixos channel. This
- only overrides the module definition, this won't use postgresql from
+ only overrides the module definition, this won’t use postgresql from
nixos-unstable unless explicitly configured to do so.
-
+
{ config, lib, pkgs, ... }:
{
@@ -40,9 +40,9 @@
This example shows how to define a custom module as a replacement
for an existing module. Importing this module will disable the
- original module without having to know it's implementation details.
+ original module without having to know its implementation details.
-
+
{ config, lib, pkgs, ... }:
with lib;
diff --git a/nixos/doc/manual/from_md/development/settings-options.section.xml b/nixos/doc/manual/from_md/development/settings-options.section.xml
index d26dd96243db..898cd3b2b6e9 100644
--- a/nixos/doc/manual/from_md/development/settings-options.section.xml
+++ b/nixos/doc/manual/from_md/development/settings-options.section.xml
@@ -19,10 +19,10 @@
- Non-nix-representable ones: These can't be trivially mapped to a
+ Non-nix-representable ones: These can’t be trivially mapped to a
subset of Nix syntax. Most generic programming languages are in
this group, e.g. bash, since the statement
- if true; then echo hi; fi doesn't have a
+ if true; then echo hi; fi doesn’t have a
trivial representation in Nix.
@@ -42,8 +42,7 @@
- Nix-representable Formats (JSON, YAML, TOML, INI,
- ...)
+ Nix-representable Formats (JSON, YAML, TOML, INI, …)
By convention, formats like this are handled with a generic
settings option, representing the full program
@@ -318,7 +317,7 @@
used, along with some other related best practices. See the
comments for explanations.
-
+
{ options, config, lib, pkgs, ... }:
let
cfg = config.services.foo;
@@ -391,7 +390,7 @@ in {
Example: Declaring a type-checked
settings attribute
-
+
settings = lib.mkOption {
type = lib.types.submodule {
diff --git a/nixos/doc/manual/from_md/development/writing-documentation.chapter.xml b/nixos/doc/manual/from_md/development/writing-documentation.chapter.xml
index 079c80060576..0d8a33df2069 100644
--- a/nixos/doc/manual/from_md/development/writing-documentation.chapter.xml
+++ b/nixos/doc/manual/from_md/development/writing-documentation.chapter.xml
@@ -23,7 +23,7 @@ $ nix-shell
nix-shell$ make
- Once you are done making modifications to the manual, it's
+ Once you are done making modifications to the manual, it’s
important to build it before committing. You can do that as
follows:
diff --git a/nixos/doc/manual/from_md/development/writing-modules.chapter.xml b/nixos/doc/manual/from_md/development/writing-modules.chapter.xml
index 367731eda090..35e94845c97e 100644
--- a/nixos/doc/manual/from_md/development/writing-modules.chapter.xml
+++ b/nixos/doc/manual/from_md/development/writing-modules.chapter.xml
@@ -32,7 +32,7 @@
In , we saw the following
structure of NixOS modules:
-
+
{ config, pkgs, ... }:
{ option definitions
@@ -50,7 +50,7 @@
Example: Structure of NixOS
Modules
-
+
{ config, pkgs, ... }:
{
@@ -90,7 +90,7 @@
This imports list enumerates the paths to
other NixOS modules that should be included in the evaluation of
the system configuration. A default set of modules is defined in
- the file modules/module-list.nix. These don't
+ the file modules/module-list.nix. These don’t
need to be added in the import list.
@@ -146,7 +146,7 @@
Example: NixOS Module for the
locate Service
-
+
{ config, lib, pkgs, ... }:
with lib;
@@ -208,7 +208,7 @@ in {
Example: Escaping in Exec
directives
-
+
{ config, lib, pkgs, utils, ... }:
with lib;
diff --git a/nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml b/nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml
index 99bd37808c20..dc921dad9749 100644
--- a/nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml
+++ b/nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml
@@ -3,7 +3,7 @@
A NixOS test is a module that has the following structure:
-
+
{
# One or more machines:
@@ -58,14 +58,14 @@
Tests that are part of NixOS are added to
nixos/tests/all-tests.nix.
-
+
hostname = runTest ./hostname.nix;
Overrides can be added by defining an anonymous module in
all-tests.nix.
-
+
hostname = runTest {
imports = [ ./hostname.nix ];
defaults.networking.firewall.enable = false;
@@ -87,7 +87,7 @@ nix-build -A nixosTests.hostname
Outside the nixpkgs repository, you can
instantiate the test by first importing the NixOS library,
-
+
let nixos-lib = import (nixpkgs + "/nixos/lib") { };
in
@@ -255,7 +255,7 @@ start_all()
Return a list of different interpretations of what is
- currently visible on the machine's screen using optical
+ currently visible on the machine’s screen using optical
character recognition. The number and order of the
interpretations is not specified and is subject to change,
but if no exception is raised at least one will be returned.
@@ -276,7 +276,7 @@ start_all()
Return a textual representation of what is currently visible
- on the machine's screen using optical character recognition.
+ on the machine’s screen using optical character recognition.
@@ -630,10 +630,10 @@ machine.wait_for_unit("xautolock.service", "x-session-user")
stop_job.
- For faster dev cycles it's also possible to disable the
- code-linters (this shouldn't be committed though):
+ For faster dev cycles it’s also possible to disable the
+ code-linters (this shouldn’t be committed though):
-
+
{
skipLint = true;
nodes.machine =
@@ -650,10 +650,10 @@ machine.wait_for_unit("xautolock.service", "x-session-user")
This will produce a Nix warning at evaluation time. To fully
disable the linter, wrap the test script in comment directives to
- disable the Black linter directly (again, don't commit this within
+ disable the Black linter directly (again, don’t commit this within
the Nixpkgs repository):
-
+
testScript =
''
# fmt: off
@@ -665,7 +665,7 @@ machine.wait_for_unit("xautolock.service", "x-session-user")
Similarly, the type checking of test scripts can be disabled in
the following way:
-
+
{
skipTypeCheck = true;
nodes.machine =
@@ -700,25 +700,37 @@ with foo_running:
polling_condition takes the following
(optional) arguments:
-
- seconds_interval
-
-
- : specifies how often the condition should be polled:
-
+
+
+
+ seconds_interval
+
+
+
+ specifies how often the condition should be polled:
+
+
+
+
@polling_condition(seconds_interval=10)
def foo_running():
machine.succeed("pgrep -x foo")
-
- description
-
-
- : is used in the log when the condition is checked. If this is not
- provided, the description is pulled from the docstring of the
- function. These two are therefore equivalent:
-
+
+
+
+ description
+
+
+
+ is used in the log when the condition is checked. If this is
+ not provided, the description is pulled from the docstring
+ of the function. These two are therefore equivalent:
+
+
+
+
@polling_condition
def foo_running():
@@ -739,7 +751,7 @@ def foo_running():
extraPythonPackages. For example, you could add
numpy like this:
-
+
{
extraPythonPackages = p: [ p.numpy ];
diff --git a/nixos/doc/manual/from_md/installation/building-nixos.chapter.xml b/nixos/doc/manual/from_md/installation/building-nixos.chapter.xml
index 080f1535e410..0e46c1d48ca6 100644
--- a/nixos/doc/manual/from_md/installation/building-nixos.chapter.xml
+++ b/nixos/doc/manual/from_md/installation/building-nixos.chapter.xml
@@ -62,7 +62,7 @@ $ nix-build -A config.system.build.isoImage -I nixos-config=modules/installer/cd
can create the following file at
modules/installer/cd-dvd/installation-cd-graphical-gnome-macbook.nix:
-
+
{ config, ... }:
{
diff --git a/nixos/doc/manual/from_md/installation/changing-config.chapter.xml b/nixos/doc/manual/from_md/installation/changing-config.chapter.xml
index 86f0b15b41c5..727c61c45d27 100644
--- a/nixos/doc/manual/from_md/installation/changing-config.chapter.xml
+++ b/nixos/doc/manual/from_md/installation/changing-config.chapter.xml
@@ -16,7 +16,7 @@
- This command doesn't start/stop
+ This command doesn’t start/stop
user services
automatically. nixos-rebuild only runs a
daemon-reload for each user with running user
@@ -64,8 +64,8 @@
which causes the new configuration (and previous ones created using
-p test) to show up in the GRUB submenu
- NixOS - Profile 'test'. This can be useful to
- separate test configurations from stable
+ NixOS - Profile test. This can be
+ useful to separate test configurations from stable
configurations.
@@ -94,7 +94,7 @@ $ ./result/bin/run-*-vm
unless you have set mutableUsers = false. Another
way is to temporarily add the following to your configuration:
-
+
users.users.your-user.initialHashedPassword = "test";
diff --git a/nixos/doc/manual/from_md/installation/installing-behind-a-proxy.section.xml b/nixos/doc/manual/from_md/installation/installing-behind-a-proxy.section.xml
index a551807cd47c..00b4e8766718 100644
--- a/nixos/doc/manual/from_md/installation/installing-behind-a-proxy.section.xml
+++ b/nixos/doc/manual/from_md/installation/installing-behind-a-proxy.section.xml
@@ -11,7 +11,7 @@
/mnt/etc/nixos/configuration.nix to keep the
internet accessible after reboot.
-
+
networking.proxy.default = "http://user:password@proxy:port/";
networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
diff --git a/nixos/doc/manual/from_md/installation/installing-from-other-distro.section.xml b/nixos/doc/manual/from_md/installation/installing-from-other-distro.section.xml
index f29200952ac5..5f18d528d32d 100644
--- a/nixos/doc/manual/from_md/installation/installing-from-other-distro.section.xml
+++ b/nixos/doc/manual/from_md/installation/installing-from-other-distro.section.xml
@@ -53,7 +53,7 @@ $ . $HOME/.nix-profile/etc/profile.d/nix.sh # …or open a fresh shell
Switch to the NixOS channel:
- If you've just installed Nix on a non-NixOS distribution, you
+ If you’ve just installed Nix on a non-NixOS distribution, you
will be on the nixpkgs channel by default.
@@ -78,11 +78,11 @@ $ nix-channel --add https://nixos.org/channels/nixos-version nixpkgs
Install the NixOS installation tools:
- You'll need nixos-generate-config and
+ You’ll need nixos-generate-config and
nixos-install, but this also makes some man
pages and nixos-enter available, just in case
you want to chroot into your NixOS partition. NixOS installs
- these by default, but you don't have NixOS yet..
+ these by default, but you don’t have NixOS yet..
$ nix-env -f '<nixpkgs>' -iA nixos-install-tools
@@ -105,7 +105,7 @@ $ nix-env -f '<nixpkgs>' -iA nixos-install-tools
mounting steps of
- If you're about to install NixOS in place using
+ If you’re about to install NixOS in place using
NIXOS_LUSTRATE there is nothing to do for
this step.
@@ -118,18 +118,18 @@ $ nix-env -f '<nixpkgs>' -iA nixos-install-tools
$ sudo `which nixos-generate-config` --root /mnt
- You'll probably want to edit the configuration files. Refer to
+ You’ll probably want to edit the configuration files. Refer to
the nixos-generate-config step in
for more information.
Consider setting up the NixOS bootloader to give you the ability
to boot on your existing Linux partition. For instance, if
- you're using GRUB and your existing distribution is running
+ you’re using GRUB and your existing distribution is running
Ubuntu, you may want to add something like this to your
configuration.nix:
-
+
boot.loader.grub.extraEntries = ''
menuentry "Ubuntu" {
search --set=ubuntu --fs-uuid 3cc3e652-0c1f-4800-8451-033754f68e6e
@@ -215,21 +215,21 @@ $ sudo `which nixos-generate-config`
Note that this will place the generated configuration files in
- /etc/nixos. You'll probably want to edit the
+ /etc/nixos. You’ll probably want to edit the
configuration files. Refer to the
nixos-generate-config step in
for more information.
- You'll likely want to set a root password for your first boot
- using the configuration files because you won't have a chance to
+ You’ll likely want to set a root password for your first boot
+ using the configuration files because you won’t have a chance to
enter a password until after you reboot. You can initialize the
root password to an empty one with this line: (and of course
- don't forget to set one once you've rebooted or to lock the
+ don’t forget to set one once you’ve rebooted or to lock the
account with sudo passwd -l root if you use
sudo)
-
+
users.users.root.initialHashedPassword = "";
@@ -262,7 +262,7 @@ $ sudo chown -R 0:0 /nix
/etc/NIXOS_LUSTRATE tells the NixOS bootup
- scripts to move everything that's in the
+ scripts to move everything that’s in the
root partition to /old-root. This will move
your existing distribution out of the way in the very early
stages of the NixOS bootup. There are exceptions (we do need to
@@ -290,12 +290,12 @@ $ sudo chown -R 0:0 /nix
Support for NIXOS_LUSTRATE was added in
- NixOS 16.09. The act of "lustrating" refers to the
- wiping of the existing distribution. Creating
+ NixOS 16.09. The act of lustrating refers to
+ the wiping of the existing distribution. Creating
/etc/NIXOS_LUSTRATE can also be used on
NixOS to remove all mutable files from your root partition
- (anything that's not in /nix or
- /boot gets "lustrated" on the
+ (anything that’s not in /nix or
+ /boot gets lustrated on the
next boot.
@@ -307,14 +307,14 @@ $ sudo chown -R 0:0 /nix
- Let's create the files:
+ Let’s create the files:
$ sudo touch /etc/NIXOS
$ sudo touch /etc/NIXOS_LUSTRATE
- Let's also make sure the NixOS configuration files are kept once
+ Let’s also make sure the NixOS configuration files are kept once
we reboot on NixOS:
@@ -331,7 +331,7 @@ $ echo etc/nixos | sudo tee -a /etc/NIXOS_LUSTRATE
Once you complete this step, your current distribution will no
- longer be bootable! If you didn't get all the NixOS
+ longer be bootable! If you didn’t get all the NixOS
configuration right, especially those settings pertaining to
boot loading and root partition, NixOS may not be bootable
either. Have a USB rescue device ready in case this happens.
@@ -349,7 +349,7 @@ sudo /nix/var/nix/profiles/system/bin/switch-to-configuration boot
If for some reason you want to revert to the old distribution,
- you'll need to boot on a USB rescue disk and do something along
+ you’ll need to boot on a USB rescue disk and do something along
these lines:
@@ -367,7 +367,7 @@ sudo /nix/var/nix/profiles/system/bin/switch-to-configuration boot
loader.
- And of course, if you're happy with NixOS and no longer need the
+ And of course, if you’re happy with NixOS and no longer need the
old distribution:
@@ -376,7 +376,7 @@ sudo rm -rf /old-root
- It's also worth noting that this whole process can be automated.
+ It’s also worth noting that this whole process can be automated.
This is especially useful for Cloud VMs, where provider do not
provide NixOS. For instance,
nixos-infect
diff --git a/nixos/doc/manual/from_md/installation/installing-kexec.section.xml b/nixos/doc/manual/from_md/installation/installing-kexec.section.xml
index 46ea0d59b6c3..40a697c74096 100644
--- a/nixos/doc/manual/from_md/installation/installing-kexec.section.xml
+++ b/nixos/doc/manual/from_md/installation/installing-kexec.section.xml
@@ -54,7 +54,7 @@ nix-build -A kexec.x86_64-linux '<nixpkgs/nixos/release.nix>'
running Linux Distribution.
- Note it’s symlinks pointing elsewhere, so cd in,
+ Note its symlinks pointing elsewhere, so cd in,
and use scp * root@$destination to copy it over,
rather than rsync.
@@ -69,7 +69,7 @@ nix-build -A kexec.x86_64-linux '<nixpkgs/nixos/release.nix>'
instead of the default installer image, you can build your own
configuration.nix:
-
+
{ modulesPath, ... }: {
imports = [
(modulesPath + "/installer/netboot/netboot-minimal.nix")
diff --git a/nixos/doc/manual/from_md/installation/installing-usb.section.xml b/nixos/doc/manual/from_md/installation/installing-usb.section.xml
index 9d12ac45aac2..cb0fd95bc7c5 100644
--- a/nixos/doc/manual/from_md/installation/installing-usb.section.xml
+++ b/nixos/doc/manual/from_md/installation/installing-usb.section.xml
@@ -110,15 +110,15 @@ diskutil unmountDisk diskX
sudo dd if=<path-to-image> of=/dev/rdiskX bs=4m
- After dd completes, a GUI dialog "The disk
- you inserted was not readable by this computer" will pop up,
- which can be ignored.
+ After dd completes, a GUI dialog The
+ disk you inserted was not readable by this computer will
+ pop up, which can be ignored.
- Using the 'raw' rdiskX device instead of
- diskX with dd completes in minutes instead of
- hours.
+ Using the rawrdiskX device
+ instead of diskX with dd completes in minutes
+ instead of hours.
diff --git a/nixos/doc/manual/from_md/installation/installing-virtualbox-guest.section.xml b/nixos/doc/manual/from_md/installation/installing-virtualbox-guest.section.xml
index 8b82a617e7f5..e43508185299 100644
--- a/nixos/doc/manual/from_md/installation/installing-virtualbox-guest.section.xml
+++ b/nixos/doc/manual/from_md/installation/installing-virtualbox-guest.section.xml
@@ -11,8 +11,8 @@
- Add a New Machine in VirtualBox with OS Type "Linux / Other
- Linux"
+ Add a New Machine in VirtualBox with OS Type Linux /
+ Other Linux
@@ -38,7 +38,7 @@
Click on Settings / System / Acceleration and enable
- "VT-x/AMD-V" acceleration
+ VT-x/AMD-V acceleration
@@ -58,25 +58,25 @@
There are a few modifications you should make in configuration.nix.
Enable booting:
-
+
boot.loader.grub.device = "/dev/sda";
Also remove the fsck that runs at startup. It will always fail to
run, stopping your boot until you press *.
-
+
boot.initrd.checkJournalingFS = false;
Shared folders can be given a name and a path in the host system in
the VirtualBox settings (Machine / Settings / Shared Folders, then
- click on the "Add" icon). Add the following to the
+ click on the Add icon). Add the following to the
/etc/nixos/configuration.nix to auto-mount them.
If you do not add "nofail", the system
will not boot properly.
-
+
{ config, pkgs, ...} :
{
fileSystems."/virtualboxshare" = {
diff --git a/nixos/doc/manual/from_md/installation/installing.chapter.xml b/nixos/doc/manual/from_md/installation/installing.chapter.xml
index c8d1e26b5e77..5654eb424fc3 100644
--- a/nixos/doc/manual/from_md/installation/installing.chapter.xml
+++ b/nixos/doc/manual/from_md/installation/installing.chapter.xml
@@ -345,12 +345,12 @@ OK
- Here's an example partition scheme for UEFI, using
+ Here’s an example partition scheme for UEFI, using
/dev/sda as the device.
- You can safely ignore parted's
+ You can safely ignore parted’s
informational message about needing to update /etc/fstab.
@@ -415,12 +415,12 @@ OK
- Here's an example partition scheme for Legacy Boot, using
+ Here’s an example partition scheme for Legacy Boot, using
/dev/sda as the device.
- You can safely ignore parted's
+ You can safely ignore parted’s
informational message about needing to update /etc/fstab.
diff --git a/nixos/doc/manual/from_md/installation/upgrading.chapter.xml b/nixos/doc/manual/from_md/installation/upgrading.chapter.xml
index f6aedc800aca..9f4cfaf36b62 100644
--- a/nixos/doc/manual/from_md/installation/upgrading.chapter.xml
+++ b/nixos/doc/manual/from_md/installation/upgrading.chapter.xml
@@ -128,7 +128,7 @@ nixos https://nixos.org/channels/nixos-unstable
You can keep a NixOS system up-to-date automatically by adding the
following to configuration.nix:
-
+
system.autoUpgrade.enable = true;
system.autoUpgrade.allowReboot = true;
@@ -145,7 +145,7 @@ system.autoUpgrade.allowReboot = true;
contains a different kernel, initrd or kernel modules. You can
also specify a channel explicitly, e.g.
-
+
system.autoUpgrade.channel = https://nixos.org/channels/nixos-22.11;
diff --git a/nixos/doc/manual/from_md/release-notes/rl-1404.section.xml b/nixos/doc/manual/from_md/release-notes/rl-1404.section.xml
index 8771623b468a..5686545c1afb 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-1404.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-1404.section.xml
@@ -79,7 +79,7 @@
the NixOS configuration. For instance, if a package
foo provides systemd units, you can say:
-
+
{
systemd.packages = [ pkgs.foo ];
}
@@ -88,7 +88,7 @@
to enable those units. You can then set or override unit options
in the usual way, e.g.
-
+
{
systemd.services.foo.wantedBy = [ "multi-user.target" ];
systemd.services.foo.serviceConfig.MemoryLimit = "512M";
@@ -105,7 +105,7 @@
NixOS configuration requires unfree packages from Nixpkgs, you
need to enable support for them explicitly by setting:
-
+
{
nixpkgs.config.allowUnfree = true;
}
@@ -123,7 +123,7 @@
The Adobe Flash player is no longer enabled by default in the
Firefox and Chromium wrappers. To enable it, you must set:
-
+
{
nixpkgs.config.allowUnfree = true;
nixpkgs.config.firefox.enableAdobeFlash = true; # for Firefox
@@ -136,7 +136,7 @@
The firewall is now enabled by default. If you don’t want this,
you need to disable it explicitly:
-
+
{
networking.firewall.enable = false;
}
diff --git a/nixos/doc/manual/from_md/release-notes/rl-1412.section.xml b/nixos/doc/manual/from_md/release-notes/rl-1412.section.xml
index 3b6af73359d6..ccaa4f6bd081 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-1412.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-1412.section.xml
@@ -370,7 +370,7 @@
documentation for details. If you wish to continue to use
httpd 2.2, add the following line to your NixOS configuration:
-
+
{
services.httpd.package = pkgs.apacheHttpd_2_2;
}
diff --git a/nixos/doc/manual/from_md/release-notes/rl-1509.section.xml b/nixos/doc/manual/from_md/release-notes/rl-1509.section.xml
index 68d2ab389e8f..96b51a051066 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-1509.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-1509.section.xml
@@ -9,12 +9,12 @@
The Haskell
packages infrastructure has been re-designed from the ground up
- ("Haskell NG"). NixOS now distributes the latest
+ (Haskell NG). NixOS now distributes the latest
version of every single package registered on
Hackage --
well in excess of 8,000 Haskell packages. Detailed instructions
on how to use that infrastructure can be found in the
- User's
+ User’s
Guide to the Haskell Infrastructure. Users migrating from
an earlier release may find helpful information below, in the
list of backwards-incompatible changes. Furthermore, we
@@ -23,8 +23,8 @@
Haskell release since version 0.0 as well as the most
recent Stackage
Nightly snapshot. The announcement
- "Full
- Stackage Support in Nixpkgs" gives additional
+ Full
+ Stackage Support in Nixpkgs gives additional
details.
@@ -42,7 +42,7 @@
-
+
{
system.autoUpgrade.enable = true;
}
@@ -432,7 +432,7 @@
-
+
{
system.stateVersion = "14.12";
}
@@ -464,7 +464,7 @@
- Steam now doesn't need root rights to work. Instead of using
+ Steam now doesn’t need root rights to work. Instead of using
*-steam-chrootenv, you should now just run
steam. steamChrootEnv
package was renamed to steam, and old
@@ -523,7 +523,7 @@
-
+
{
fileSystems."/shiny" = {
device = "myshinysharedfolder";
@@ -534,15 +534,15 @@
- "nix-env -qa" no longer discovers
- Haskell packages by name. The only packages visible in the
- global scope are ghc,
+ nix-env -qa no longer
+ discovers Haskell packages by name. The only packages visible in
+ the global scope are ghc,
cabal-install, and stack,
but all other packages are hidden. The reason for this
inconvenience is the sheer size of the Haskell package set.
Name-based lookups are expensive, and most
nix-env -qa operations would become much
- slower if we'd add the entire Hackage database into the top
+ slower if we’d add the entire Hackage database into the top
level attribute set. Instead, the list of Haskell packages can
be displayed by running:
@@ -566,13 +566,13 @@ nix-env -f "<nixpkgs>" -iA haskellPackages.pandoc
Previous versions of NixOS came with a feature called
ghc-wrapper, a small script that allowed GHC
- to transparently pick up on libraries installed in the user's
+ to transparently pick up on libraries installed in the user’s
profile. This feature has been deprecated;
ghc-wrapper was removed from the
distribution. The proper way to register Haskell libraries with
the compiler now is the
haskellPackages.ghcWithPackages function. The
- User's
+ User’s
Guide to the Haskell Infrastructure provides more
information about this subject.
@@ -593,7 +593,7 @@ nix-env -f "<nixpkgs>" -iA haskellPackages.pandoc
have a function attribute called extension
that users could override in their
~/.nixpkgs/config.nix files to configure
- additional attributes, etc. That function still exists, but it's
+ additional attributes, etc. That function still exists, but it’s
now called overrides.
@@ -662,7 +662,7 @@ infinite recursion encountered
lib, after adding it as argument of the
module. The following module
-
+
{ config, pkgs, ... }:
with pkgs.lib;
@@ -677,7 +677,7 @@ with pkgs.lib;
should be modified to look like:
-
+
{ config, pkgs, lib, ... }:
with lib;
@@ -695,7 +695,7 @@ with lib;
replaced by (import <nixpkgs> {}). The
following module
-
+
{ config, pkgs, ... }:
let
@@ -712,7 +712,7 @@ in
should be modified to look like:
-
+
{ config, pkgs, ... }:
let
@@ -748,7 +748,7 @@ in
/etc/ssh/moduli file with respect to the
vulnerabilities
discovered in the Diffie-Hellman key exchange can now
- replace OpenSSH's default version with one they generated
+ replace OpenSSH’s default version with one they generated
themselves using the new
services.openssh.moduliFile option.
diff --git a/nixos/doc/manual/from_md/release-notes/rl-1603.section.xml b/nixos/doc/manual/from_md/release-notes/rl-1603.section.xml
index afbd2fd2c797..25b356e0aa6a 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-1603.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-1603.section.xml
@@ -378,7 +378,7 @@
You will need to add an import statement to your NixOS
configuration in order to use it, e.g.
-
+
{
imports = [ <nixpkgs/nixos/modules/services/misc/gitit.nix> ];
}
@@ -395,7 +395,7 @@
to be built in. All modules now reside in
nginxModules set. Example configuration:
-
+
nginx.override {
modules = [ nginxModules.rtmp nginxModules.dav nginxModules.moreheaders ];
}
@@ -403,7 +403,7 @@ nginx.override {
- s3sync is removed, as it hasn't been
+ s3sync is removed, as it hasn’t been
developed by upstream for 4 years and only runs with ruby 1.8.
For an actively-developer alternative look at
tarsnap and others.
@@ -411,7 +411,7 @@ nginx.override {
- ruby_1_8 has been removed as it's not
+ ruby_1_8 has been removed as it’s not
supported from upstream anymore and probably contains security
issues.
@@ -439,7 +439,7 @@ nginx.override {
The Ctrl+Alt+Backspace key combination no
- longer kills the X server by default. There's a new option
+ longer kills the X server by default. There’s a new option
services.xserver.enableCtrlAltBackspace
allowing to enable the combination again.
@@ -457,7 +457,7 @@ nginx.override {
/var/lib/postfix. Old configurations are
migrated automatically. service.postfix
module has also received many improvements, such as correct
- directories' access rights, new aliasFiles
+ directories’ access rights, new aliasFiles
and mapFiles options and more.
@@ -468,7 +468,7 @@ nginx.override {
continue to work, but print a warning, until the 16.09 release.
An example of the new style:
-
+
{
fileSystems."/example" = {
device = "/dev/sdc";
@@ -497,7 +497,7 @@ nginx.override {
There are also Gutenprint improvements; in particular, a new
option services.printing.gutenprint is added
- to enable automatic updating of Gutenprint PPMs; it's greatly
+ to enable automatic updating of Gutenprint PPMs; it’s greatly
recommended to enable it instead of adding
gutenprint to the drivers
list.
@@ -524,7 +524,7 @@ nginx.override {
used input method name, "ibus" for
ibus. An example of the new style:
-
+
{
i18n.inputMethod.enabled = "ibus";
i18n.inputMethod.ibus.engines = with pkgs.ibus-engines; [ anthy mozc ];
@@ -533,7 +533,7 @@ nginx.override {
That is equivalent to the old version:
-
+
{
programs.ibus.enable = true;
programs.ibus.plugins = with pkgs; [ ibus-anthy mozc ];
@@ -545,7 +545,7 @@ nginx.override {
services.udev.extraRules option now writes
rules to 99-local.rules instead of
10-local.rules. This makes all the user rules
- apply after others, so their results wouldn't be overridden by
+ apply after others, so their results wouldn’t be overridden by
anything else.
@@ -587,7 +587,7 @@ $TTL 1800
point to exact folder where syncthing is writing to. Example
configuration should look something like:
-
+
{
services.syncthing = {
enable = true;
@@ -632,8 +632,8 @@ error: path ‘/nix/store/*-broadcom-sta-*’ does not exist and cannot be creat
The services.xserver.startGnuPGAgent option
has been removed. GnuPG 2.1.x changed the way the gpg-agent
works, and that new approach no longer requires (or even
- supports) the "start everything as a child of the
- agent" scheme we've implemented in NixOS for older
+ supports) the start everything as a child of the
+ agent scheme we’ve implemented in NixOS for older
versions. To configure the gpg-agent for your X session, add the
following code to ~/.bashrc or some file
that’s sourced when your shell is started:
@@ -670,7 +670,7 @@ export GPG_TTY
The gpg-agent(1) man page has more details
- about this subject, i.e. in the "EXAMPLES" section.
+ about this subject, i.e. in the EXAMPLES section.
diff --git a/nixos/doc/manual/from_md/release-notes/rl-1609.section.xml b/nixos/doc/manual/from_md/release-notes/rl-1609.section.xml
index 0fba40a0e78d..c2adbc88f5ca 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-1609.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-1609.section.xml
@@ -78,7 +78,7 @@
LTS Haskell package set. That support has been dropped. The
previously provided haskell.packages.lts-x_y
package sets still exist in name to aviod breaking user code,
- but these package sets don't actually contain the versions
+ but these package sets don’t actually contain the versions
mandated by the corresponding LTS release. Instead, our package
set it loosely based on the latest available LTS release, i.e.
LTS 7.x at the time of this writing. New releases of NixOS and
@@ -119,7 +119,7 @@
- Gitlab's maintainance script gitlab-runner
+ Gitlab’s maintainance script gitlab-runner
was removed and split up into the more clearer
gitlab-run and gitlab-rake
scripts, because gitlab-runner is a component
@@ -164,7 +164,7 @@
goPackages was replaced with separated Go
applications in appropriate nixpkgs
- categories. Each Go package uses its own dependency set. There's
+ categories. Each Go package uses its own dependency set. There’s
also a new go2nix tool introduced to generate
a Go package definition from its Go source automatically.
@@ -192,7 +192,7 @@
interface has been streamlined. Desktop users should be able to
simply set
-
+
{
security.grsecurity.enable = true;
}
diff --git a/nixos/doc/manual/from_md/release-notes/rl-1703.section.xml b/nixos/doc/manual/from_md/release-notes/rl-1703.section.xml
index 1119ec53dfc9..8667063f37e0 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-1703.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-1703.section.xml
@@ -22,7 +22,7 @@
- The default desktop environment now is KDE's Plasma 5. KDE 4
+ The default desktop environment now is KDE’s Plasma 5. KDE 4
has been removed
@@ -560,7 +560,7 @@
Parsoid service now uses YAML configuration format.
service.parsoid.interwikis is now called
service.parsoid.wikis and is a list of
- either API URLs or attribute sets as specified in parsoid's
+ either API URLs or attribute sets as specified in parsoid’s
documentation.
@@ -581,7 +581,7 @@
service.nylon is now declared using named
instances. As an example:
-
+
{
services.nylon = {
enable = true;
@@ -594,7 +594,7 @@
should be replaced with:
-
+
{
services.nylon.myvpn = {
enable = true;
@@ -615,7 +615,7 @@
overlays. For example, the following code:
-
+
let
pkgs = import <nixpkgs> {};
in
@@ -624,7 +624,7 @@ in
should be replaced by:
-
+
let
pkgs = import <nixpkgs> {};
in
@@ -647,7 +647,7 @@ in
local_recipient_maps is not set to empty
- value by Postfix service. It's an insecure default as stated
+ value by Postfix service. It’s an insecure default as stated
by Postfix documentation. Those who want to retain this
setting need to set it via
services.postfix.extraConfig.
@@ -669,7 +669,7 @@ in
The socket handling of the services.rmilter
- module has been fixed and refactored. As rmilter doesn't
+ module has been fixed and refactored. As rmilter doesn’t
support binding to more than one socket, the options
bindUnixSockets and
bindInetSockets have been replaced by
@@ -729,7 +729,7 @@ in
improves visual consistency and makes Java follow system font
style, improving the situation on HighDPI displays. This has a
cost of increased closure size; for server and other headless
- workloads it's recommended to use
+ workloads it’s recommended to use
jre_headless.
diff --git a/nixos/doc/manual/from_md/release-notes/rl-1709.section.xml b/nixos/doc/manual/from_md/release-notes/rl-1709.section.xml
index fc5d11f07c8d..849ec868c783 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-1709.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-1709.section.xml
@@ -26,10 +26,10 @@
The module option
services.xserver.xrandrHeads now causes the
first head specified in this list to be set as the primary
- head. Apart from that, it's now possible to also set
+ head. Apart from that, it’s now possible to also set
additional options by using an attribute set, for example:
-
+
{ services.xserver.xrandrHeads = [
"HDMI-0"
{
@@ -543,7 +543,7 @@
- Radicale's default package has changed from 1.x to 2.x.
+ Radicale’s default package has changed from 1.x to 2.x.
Instructions to migrate can be found
here
. It is also possible to use the newer version by
@@ -582,7 +582,7 @@
- flexget's state database cannot be upgraded
+ flexget’s state database cannot be upgraded
to its new internal format, requiring removal of any existing
db-config.sqlite which will be
automatically recreated.
@@ -590,9 +590,9 @@
- The ipfs service now doesn't ignore the
- dataDir option anymore. If you've ever set
- this option to anything other than the default you'll have to
+ The ipfs service now doesn’t ignore the
+ dataDir option anymore. If you’ve ever set
+ this option to anything other than the default you’ll have to
either unset it (so the default gets used) or migrate the old
data manually with
@@ -651,16 +651,16 @@ rmdir /var/lib/ipfs/.ipfs
- cc-wrapper's setup-hook now exports a
+ cc-wrappers setup-hook now exports a
number of environment variables corresponding to binutils
binaries, (e.g. LD,
STRIP, RANLIB, etc).
- This is done to prevent packages' build systems guessing,
- which is harder to predict, especially when cross-compiling.
- However, some packages have broken due to this—their build
- systems either not supporting, or claiming to support without
- adequate testing, taking such environment variables as
- parameters.
+ This is done to prevent packages build systems
+ guessing, which is harder to predict, especially when
+ cross-compiling. However, some packages have broken due to
+ this—their build systems either not supporting, or claiming to
+ support without adequate testing, taking such environment
+ variables as parameters.
@@ -688,10 +688,10 @@ rmdir /var/lib/ipfs/.ipfs
- grsecurity/PaX support has been dropped, following upstream's
+ grsecurity/PaX support has been dropped, following upstream’s
decision to cease free support. See
- upstream's announcement for more information. No
+ upstream’s announcement for more information. No
complete replacement for grsecurity/PaX is available
presently.
@@ -794,7 +794,7 @@ FLUSH PRIVILEGES;
Modules can now be disabled by using
- disabledModules, allowing another to take it's place.
+ disabledModules, allowing another to take it’s place.
This can be used to import a set of modules from another
channel while keeping the rest of the system on a stable
release.
@@ -808,7 +808,7 @@ FLUSH PRIVILEGES;
provided by fontconfig-penultimate, replacing
fontconfig-ultimate; the new defaults are less invasive and
provide rendering that is more consistent with other systems
- and hopefully with each font designer's intent. Some
+ and hopefully with each font designer’s intent. Some
system-wide configuration has been removed from the Fontconfig
NixOS module where user Fontconfig settings are available.
diff --git a/nixos/doc/manual/from_md/release-notes/rl-1803.section.xml b/nixos/doc/manual/from_md/release-notes/rl-1803.section.xml
index 910cad467e9d..f197c52906b0 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-1803.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-1803.section.xml
@@ -16,9 +16,9 @@
Platform support: x86_64-linux and x86_64-darwin since release
- time (the latter isn't NixOS, really). Binaries for
+ time (the latter isn’t NixOS, really). Binaries for
aarch64-linux are available, but no channel exists yet, as
- it's waiting for some test fixes, etc.
+ it’s waiting for some test fixes, etc.
@@ -495,11 +495,11 @@
The propagation logic has been changed. The new logic, along
with new types of dependencies that go with, is thoroughly
- documented in the "Specifying dependencies" section
- of the "Standard Environment" chapter of the nixpkgs
- manual. The old logic isn't but is easy to describe:
- dependencies were propagated as the same type of dependency no
- matter what. In practice, that means that many
+ documented in the Specifying dependencies
+ section of the Standard Environment chapter of
+ the nixpkgs manual. The old logic isn’t but is easy to
+ describe: dependencies were propagated as the same type of
+ dependency no matter what. In practice, that means that many
propagatedNativeBuildInputs should instead
be propagatedBuildInputs. Thankfully, that
was and is the least used type of dependency. Also, it means
@@ -541,7 +541,7 @@
Previously, if other options in the Postfix module like
services.postfix.useSrs were set and the
user set config options that were also set by such options,
- the resulting config wouldn't include all options that were
+ the resulting config wouldn’t include all options that were
needed. They are now merged correctly. If config options need
to be overridden, lib.mkForce or
lib.mkOverride can be used.
@@ -626,7 +626,7 @@
if config.networking.domain is set,
matomo.${config.networking.hostName} if
it is not set. If you change your
- serverName, remember you'll need to
+ serverName, remember you’ll need to
update the trustedHosts[] array in
/var/lib/matomo/config/config.ini.php
as well.
@@ -793,7 +793,7 @@
services.btrfs.autoScrub has been added, to
periodically check btrfs filesystems for data corruption. If
- there's a correct copy available, it will automatically repair
+ there’s a correct copy available, it will automatically repair
corrupted blocks.
@@ -830,7 +830,7 @@
In order to have the previous default configuration add
-
+
{
services.xserver.displayManager.lightdm.greeters.gtk.indicators = [
"~host" "~spacer"
diff --git a/nixos/doc/manual/from_md/release-notes/rl-1809.section.xml b/nixos/doc/manual/from_md/release-notes/rl-1809.section.xml
index aa4637a99b60..4bbfa7be398e 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-1809.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-1809.section.xml
@@ -54,7 +54,7 @@
For example
-
+
{
programs.firejail = {
enable = true;
@@ -523,8 +523,8 @@ $ nix-instantiate -E '(import <nixpkgsunstable> {}).gitFull'
The netcat package is now taken directly
- from OpenBSD's libressl, instead of relying
- on Debian's fork. The new version should be very close to the
+ from OpenBSD’s libressl, instead of relying
+ on Debian’s fork. The new version should be very close to the
old version, but there are some minor differences.
Importantly, flags like -b, -q, -C, and -Z are no longer
accepted by the nc command.
@@ -533,7 +533,7 @@ $ nix-instantiate -E '(import <nixpkgsunstable> {}).gitFull'
The services.docker-registry.extraConfig
- object doesn't contain environment variables anymore. Instead
+ object doesn’t contain environment variables anymore. Instead
it needs to provide an object structure that can be mapped
onto the YAML configuration defined in
the
@@ -543,7 +543,7 @@ $ nix-instantiate -E '(import <nixpkgsunstable> {}).gitFull'
gnucash has changed from version 2.4 to
- 3.x. If you've been using gnucash (version
+ 3.x. If you’ve been using gnucash (version
2.4) instead of gnucash26 (version 2.6) you
must open your Gnucash data file(s) with
gnucash26 and then save them to upgrade the
@@ -695,7 +695,7 @@ $ nix-instantiate -E '(import <nixpkgsunstable> {}).gitFull'
A NixOS system can now be constructed more easily based on a
preexisting invocation of Nixpkgs. For example:
-
+
{
inherit (pkgs.nixos {
boot.loader.grub.enable = false;
@@ -791,7 +791,7 @@ $ nix-instantiate -E '(import <nixpkgsunstable> {}).gitFull'
An example usage of this would be:
-
+
{ config, ... }:
{
@@ -874,7 +874,7 @@ $ nix-instantiate -E '(import <nixpkgsunstable> {}).gitFull'
The programs.screen module provides allows
to configure /etc/screenrc, however the
module behaved fairly counterintuitive as the config exists,
- but the package wasn't available. Since 18.09
+ but the package wasn’t available. Since 18.09
pkgs.screen will be added to
environment.systemPackages.
@@ -920,7 +920,7 @@ $ nix-instantiate -E '(import <nixpkgsunstable> {}).gitFull'
NixOS option descriptions are now automatically broken up into
individual paragraphs if the text contains two consecutive
- newlines, so it's no longer necessary to use
+ newlines, so it’s no longer necessary to use
</para><para> to start a new
paragraph.
diff --git a/nixos/doc/manual/from_md/release-notes/rl-1903.section.xml b/nixos/doc/manual/from_md/release-notes/rl-1903.section.xml
index 31c5c1fc7f49..ed26f2ba45d0 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-1903.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-1903.section.xml
@@ -29,9 +29,9 @@
By default,
services.xserver.desktopManager.pantheon
- enables LightDM as a display manager, as pantheon's screen
+ enables LightDM as a display manager, as pantheon’s screen
locking implementation relies on it. Because of that it is
- recommended to leave LightDM enabled. If you'd like to
+ recommended to leave LightDM enabled. If you’d like to
disable it anyway, set
services.xserver.displayManager.lightdm.enable
to false and enable your preferred
@@ -39,8 +39,8 @@
- Also note that Pantheon's LightDM greeter is not enabled by
- default, because it has numerous issues in NixOS and isn't
+ Also note that Pantheon’s LightDM greeter is not enabled by
+ default, because it has numerous issues in NixOS and isn’t
optimal for use here yet.
@@ -200,7 +200,7 @@
The ntp module now has sane default
- restrictions. If you're relying on the previous defaults,
+ restrictions. If you’re relying on the previous defaults,
which permitted all queries and commands from all
firewall-permitted sources, you can set
services.ntp.restrictDefault and
@@ -342,7 +342,7 @@
preserved when also setting interface specific rules such as
networking.firewall.interfaces.en0.allow*.
These rules continue to use the pseudo device
- "default"
+ default
(networking.firewall.interfaces.default.*),
and assigning to this pseudo device will override the
(networking.firewall.allow*) options.
@@ -360,9 +360,9 @@
presence of services.sssd.enable = true
because nscd caching would interfere with
sssd in unpredictable ways as well. Because
- we're using nscd not for caching, but for convincing glibc to
+ we’re using nscd not for caching, but for convincing glibc to
find NSS modules in the nix store instead of an absolute path,
- we have decided to disable caching globally now, as it's
+ we have decided to disable caching globally now, as it’s
usually not the behaviour the user wants and can lead to
surprising behaviour. Furthermore, negative caching of host
lookups is also disabled now by default. This should fix the
@@ -374,7 +374,7 @@
setting the services.nscd.config option
with the desired caching parameters.
-
+
{
services.nscd.config =
''
@@ -453,7 +453,7 @@
with its control field set to sufficient
instead of required, so that password
managed only by later PAM password modules are being executed.
- Previously, for example, changing an LDAP account's password
+ Previously, for example, changing an LDAP account’s password
through PAM was not possible: the whole password module
verification was exited prematurely by
pam_unix, preventing
@@ -497,11 +497,11 @@
the
last version to accept self-signed certificates. As
such, it is now recommended to use a proper certificate
- verified by a root CA (for example Let's Encrypt). The new
+ verified by a root CA (for example Let’s Encrypt). The new
manual chapter on
Matrix contains a working example of using nginx as a
reverse proxy in front of matrix-synapse,
- using Let's Encrypt certificates.
+ using Let’s Encrypt certificates.
@@ -682,7 +682,7 @@
all
config options provided by the current upstream version
as service options. Additionally the ndppd
- package doesn't contain the systemd unit configuration from
+ package doesn’t contain the systemd unit configuration from
upstream anymore, the unit is completely configured by the
NixOS module now.
diff --git a/nixos/doc/manual/from_md/release-notes/rl-1909.section.xml b/nixos/doc/manual/from_md/release-notes/rl-1909.section.xml
index f9b99961d277..3bf83e1eccbd 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-1909.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-1909.section.xml
@@ -82,13 +82,13 @@
- We've updated to Xfce 4.14, which brings a new module
+ We’ve updated to Xfce 4.14, which brings a new module
services.xserver.desktopManager.xfce4-14.
- If you'd like to upgrade, please switch from the
+ If you’d like to upgrade, please switch from the
services.xserver.desktopManager.xfce module
- as it will be deprecated in a future release. They're
- incompatibilities with the current Xfce module; it doesn't
- support thunarPlugins and it isn't
+ as it will be deprecated in a future release. They’re
+ incompatibilities with the current Xfce module; it doesn’t
+ support thunarPlugins and it isn’t
recommended to use
services.xserver.desktopManager.xfce and
services.xserver.desktopManager.xfce4-14
@@ -125,7 +125,7 @@
With these options we hope to give users finer grained control
- over their systems. Prior to this change you'd either have to
+ over their systems. Prior to this change you’d either have to
manually disable options or use
environment.gnome3.excludePackages which
only excluded the optional applications.
@@ -138,7 +138,7 @@
Orthogonal to the previous changes to the GNOME 3 desktop
- manager module, we've updated all default services and
+ manager module, we’ve updated all default services and
applications to match as close as possible to a default
reference GNOME 3 experience.
@@ -295,7 +295,7 @@
services.xserver.desktopManager.mate
Note Mate uses
programs.system-config-printer as it
- doesn't use it as a service, but its graphical interface
+ doesn’t use it as a service, but its graphical interface
directly.
@@ -347,7 +347,7 @@
services.prometheus.alertmanager.user and
services.prometheus.alertmanager.group have
been removed because the alertmanager service is now using
- systemd's
+ systemd’s
DynamicUser mechanism which obviates these options.
@@ -366,7 +366,7 @@
The services.nzbget.configFile and
services.nzbget.openFirewall options were
removed as they are managed internally by the nzbget. The
- services.nzbget.dataDir option hadn't
+ services.nzbget.dataDir option hadn’t
actually been used by the module for some time and so was
removed as cleanup.
@@ -475,7 +475,7 @@
Make sure you set the _netdev option for
each of the file systems referring to block devices provided
by the autoLuks module. Not doing this might render the system
- in a state where it doesn't boot anymore.
+ in a state where it doesn’t boot anymore.
If you are actively using the autoLuks
@@ -667,7 +667,7 @@
instead of depending on the catch-all
acme-certificates.target. This target unit
was also removed from the codebase. This will mean nginx will
- no longer depend on certificates it isn't explicitly managing
+ no longer depend on certificates it isn’t explicitly managing
and fixes a bug with certificate renewal ordering racing with
nginx restarting which could lead to nginx getting in a broken
state as described at
@@ -687,8 +687,8 @@
services.xserver.desktopManager.xterm is
now disabled by default if stateVersion is
19.09 or higher. Previously the xterm desktopManager was
- enabled when xserver was enabled, but it isn't useful for all
- people so it didn't make sense to have any desktopManager
+ enabled when xserver was enabled, but it isn’t useful for all
+ people so it didn’t make sense to have any desktopManager
enabled default.
@@ -696,7 +696,7 @@
The WeeChat plugin
pkgs.weechatScripts.weechat-xmpp has been
- removed as it doesn't receive any updates from upstream and
+ removed as it doesn’t receive any updates from upstream and
depends on outdated Python2-based modules.
@@ -744,11 +744,11 @@
services.gitlab.secrets.dbFile,
services.gitlab.secrets.otpFile and
services.gitlab.secrets.jwsFile). This was
- done so that secrets aren't stored in the world-readable nix
- store, but means that for each option you'll have to create a
- file with the same exact string, add "File" to the
- end of the option name, and change the definition to a string
- pointing to the corresponding file; e.g.
+ done so that secrets aren’t stored in the world-readable nix
+ store, but means that for each option you’ll have to create a
+ file with the same exact string, add File to
+ the end of the option name, and change the definition to a
+ string pointing to the corresponding file; e.g.
services.gitlab.databasePassword = "supersecurepassword"
becomes
services.gitlab.databasePasswordFile = "/path/to/secret_file"
@@ -791,7 +791,7 @@
The nodejs-11_x package has been removed as
- it's EOLed by upstream.
+ it’s EOLed by upstream.
@@ -961,7 +961,7 @@
from the upstream default speex-float-1 to
speex-float-5. Be aware that low-powered
ARM-based and MIPS-based boards will struggle with this so
- you'll need to set
+ you’ll need to set
hardware.pulseaudio.daemon.config.resample-method
back to speex-float-1.
@@ -1004,7 +1004,7 @@
- It's now possible to change configuration in
+ It’s now possible to change configuration in
services.nextcloud
after the initial deploy since all config parameters are
persisted in an additional config file generated by the
@@ -1178,7 +1178,7 @@
release
notes for details. The mgr dashboard as well as osds
backed by loop-devices is no longer explicitly supported by
- the package and module. Note: There's been some issues with
+ the package and module. Note: There’s been some issues with
python-cherrypy, which is used by the dashboard and prometheus
mgr modules (and possibly others), hence
0000-dont-check-cherrypy-version.patch.
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2003.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2003.section.xml
index 53e6e1329a94..35fbb7447c70 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2003.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2003.section.xml
@@ -73,7 +73,7 @@
The graphical installer image starts the graphical session
- automatically. Before you'd be greeted by a tty and asked to
+ automatically. Before you’d be greeted by a tty and asked to
enter systemctl start display-manager. It
is now possible to disable the display-manager from running by
selecting the Disable display-manager quirk
@@ -93,7 +93,7 @@
services.xserver.desktopManager.pantheon.enable,
we now default to also use
- Pantheon's newly designed greeter . Contrary to NixOS's
+ Pantheon’s newly designed greeter . Contrary to NixOS’s
usual update policy, Pantheon will receive updates during the
cycle of NixOS 20.03 when backwards compatible.
@@ -133,7 +133,7 @@
option to improve support for upstream session files. If you
used something like:
-
+
{
services.xserver.desktopManager.default = "xfce";
services.xserver.windowManager.default = "icewm";
@@ -142,7 +142,7 @@
you should change it to:
-
+
{
services.xserver.displayManager.defaultSession = "xfce+icewm";
}
@@ -196,7 +196,7 @@ See https://github.com/NixOS/nixpkgs/pull/71684 for details.
- UPower's configuration is now managed by NixOS and can be
+ UPower’s configuration is now managed by NixOS and can be
customized via services.upower.
@@ -505,7 +505,7 @@ See https://github.com/NixOS/nixpkgs/pull/71684 for details.
#71106.
- We already don't support the global
+ We already don’t support the global
networking.useDHCP,
networking.defaultGateway
and
@@ -522,7 +522,7 @@ See https://github.com/NixOS/nixpkgs/pull/71684 for details.
The stdenv now runs all bash with set -u,
to catch the use of undefined variables. Before, it itself
used set -u but was careful to unset it so
- other packages' code ran as before. Now, all bash code is held
+ other packages’ code ran as before. Now, all bash code is held
to the same high standard, and the rather complex stateful
manipulation of the options can be discarded.
@@ -558,7 +558,7 @@ See https://github.com/NixOS/nixpkgs/pull/71684 for details.
xfceUnstable all now point to the latest
Xfce 4.14 packages. And in the future NixOS releases will be
the latest released version of Xfce available at the time of
- the release's development (if viable).
+ the release’s development (if viable).
@@ -662,7 +662,7 @@ See https://github.com/NixOS/nixpkgs/pull/71684 for details.
The dump1090 derivation has been changed to
- use FlightAware's dump1090 as its upstream. However, this
+ use FlightAware’s dump1090 as its upstream. However, this
version does not have an internal webserver anymore. The
assets in the share/dump1090 directory of
the derivation can be used in conjunction with an external
@@ -821,7 +821,7 @@ See https://github.com/NixOS/nixpkgs/pull/71684 for details.
is a loaOf option that is commonly used as
follows:
-
+
{
users.users =
[ { name = "me";
@@ -836,7 +836,7 @@ See https://github.com/NixOS/nixpkgs/pull/71684 for details.
value of name as the name of the attribute
set:
-
+
{
users.users.me =
{ description = "My personal user.";
@@ -890,7 +890,7 @@ See https://github.com/NixOS/nixpkgs/pull/71684 for details.
Theservices.buildkite-agent.openssh.publicKeyPath
- option has been removed, as it's not necessary to deploy
+ option has been removed, as it’s not necessary to deploy
public keys to clone private repositories.
@@ -932,7 +932,7 @@ See https://github.com/NixOS/nixpkgs/pull/71684 for details.
The services.xserver.displayManager.auto
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.
+ being a special display manager when it’s actually LightDM.
Please use the
services.xserver.displayManager.lightdm.autoLogin
options instead, or any other display manager in NixOS as they
@@ -940,7 +940,7 @@ See https://github.com/NixOS/nixpkgs/pull/71684 for details.
because it permitted root auto-login you can override the
lightdm-autologin pam module like:
-
+
{
security.pam.services.lightdm-autologin.text = lib.mkForce ''
auth requisite pam_nologin.so
@@ -962,13 +962,13 @@ See https://github.com/NixOS/nixpkgs/pull/71684 for details.
auth required pam_succeed_if.so quiet
- line, where default it's:
+ line, where default it’s:
auth required pam_succeed_if.so uid >= 1000 quiet
- not permitting users with uid's below 1000 (like root). All
+ not permitting users with uid’s below 1000 (like root). All
other display managers in NixOS are configured like this.
@@ -1004,7 +1004,7 @@ auth required pam_succeed_if.so quiet
Additionally, some Postfix configuration must now be set
manually instead of automatically by the Mailman module:
-
+
{
services.postfix.relayDomains = [ "hash:/var/lib/mailman/data/postfix_domains" ];
services.postfix.config.transport_maps = [ "hash:/var/lib/mailman/data/postfix_lmtp" ];
@@ -1051,14 +1051,14 @@ auth required pam_succeed_if.so quiet
The *psu versions of oraclejdk8 have been
- removed as they aren't provided by upstream anymore.
+ removed as they aren’t provided by upstream anymore.
The services.dnscrypt-proxy module has been
removed as it used the deprecated version of dnscrypt-proxy.
- We've added
+ We’ve added
services.dnscrypt-proxy2.enable
to use the supported version. This module supports
configuration via the Nix attribute set
@@ -1066,7 +1066,7 @@ auth required pam_succeed_if.so quiet
or by passing a TOML configuration file via
services.dnscrypt-proxy2.configFile.
-
+
{
# Example configuration:
services.dnscrypt-proxy2.enable = true;
@@ -1093,7 +1093,7 @@ auth required pam_succeed_if.so quiet
- sqldeveloper_18 has been removed as it's not maintained
+ sqldeveloper_18 has been removed as it’s not maintained
anymore, sqldeveloper has been updated to version
19.4. Please note that this means that this
means that the oraclejdk is now required. For further
@@ -1110,7 +1110,7 @@ auth required pam_succeed_if.so quiet
the different lists of dependencies mashed together as one big
list, and then partitioning into Haskell and non-Hakell
dependencies, they work from the original many different
- dependency parameters and don't need to algorithmically
+ dependency parameters and don’t need to algorithmically
partition anything.
@@ -1123,7 +1123,7 @@ auth required pam_succeed_if.so quiet
- The gcc-snapshot-package has been removed. It's marked as
+ The gcc-snapshot-package has been removed. It’s marked as
broken for >2 years and used to point to a fairly old
snapshot from the gcc7-branch.
@@ -1158,7 +1158,7 @@ auth required pam_succeed_if.so quiet
nextcloud has been updated to v18.0.2. This
- means that users from NixOS 19.09 can't upgrade directly since
+ means that users from NixOS 19.09 can’t upgrade directly since
you can only move one version forward and 19.09 uses
v16.0.8.
@@ -1181,7 +1181,7 @@ auth required pam_succeed_if.so quiet
Existing setups will be detected using
system.stateVersion:
by default, nextcloud17 will be used, but will raise a
- warning which notes that after that deploy it's
+ warning which notes that after that deploy it’s
recommended to update to the latest stable version
(nextcloud18) by declaring the newly introduced setting
services.nextcloud.package.
@@ -1194,7 +1194,7 @@ auth required pam_succeed_if.so quiet
get an evaluation error by default. This is done to ensure
that our
package-option
- doesn't select an older version by accident. It's
+ doesn’t select an older version by accident. It’s
recommended to use pkgs.nextcloud18 or to set
package
to pkgs.nextcloud explicitly.
@@ -1203,7 +1203,7 @@ auth required pam_succeed_if.so quiet
- Please note that if you're coming from
+ Please note that if you’re coming from
19.03 or older, you have to manually
upgrade to 19.09 first to upgrade your
server to Nextcloud v16.
@@ -1215,7 +1215,7 @@ auth required pam_succeed_if.so quiet
Hydra has gained a massive performance improvement due to
some
database schema changes by adding several IDs and
- better indexing. However, it's necessary to upgrade Hydra in
+ better indexing. However, it’s necessary to upgrade Hydra in
multiple steps:
@@ -1229,7 +1229,7 @@ auth required pam_succeed_if.so quiet
when upgrading. Otherwise, the package can be deployed
using the following config:
-
+
{ pkgs, ... }: {
services.hydra.package = pkgs.hydra-migration;
}
@@ -1266,12 +1266,12 @@ $ hydra-backfill-ids
stateVersion
is set to 20.03 or greater,
hydra-unstable will be used automatically! This will break
- your setup if you didn't run the migration.
+ your setup if you didn’t run the migration.
Please note that Hydra is currently not available with
- nixStable as this doesn't compile anymore.
+ nixStable as this doesn’t compile anymore.
@@ -1281,7 +1281,7 @@ $ hydra-backfill-ids
assertion error will be thrown. To circumvent this, you need
to set
services.hydra.package
- to pkgs.hydra explicitly and make sure you know what you're
+ to pkgs.hydra explicitly and make sure you know what you’re
doing!
@@ -1319,7 +1319,7 @@ $ hydra-backfill-ids
To continue to use the old approach, you can configure:
-
+
{
services.nginx.appendConfig = let cfg = config.services.nginx; in ''user ${cfg.user} ${cfg.group};'';
systemd.services.nginx.serviceConfig.User = lib.mkForce "root";
@@ -1413,14 +1413,14 @@ $ hydra-backfill-ids
- If you use sqlite3 you don't need to do
+ If you use sqlite3 you don’t need to do
anything.
If you use postgresql on a different
- server, you don't need to change anything as well since
+ server, you don’t need to change anything as well since
this module was never designed to configure remote
databases.
@@ -1432,7 +1432,7 @@ $ hydra-backfill-ids
older, you simply need to enable postgresql-support
explicitly:
-
+
{ ... }: {
services.matrix-synapse = {
enable = true;
@@ -1460,7 +1460,7 @@ $ hydra-backfill-ids
nixos-unstableafter
the 19.09-release, your database is
misconfigured due to a regression in NixOS. For now,
- matrix-synapse will startup with a warning, but it's
+ matrix-synapse will startup with a warning, but it’s
recommended to reconfigure the database to set the values
LC_COLLATE and LC_CTYPE
to
@@ -1473,7 +1473,7 @@ $ hydra-backfill-ids
systemd.network.links
option is now respected even when
systemd-networkd
- is disabled. This mirrors the behaviour of systemd - It's udev
+ is disabled. This mirrors the behaviour of systemd - It’s udev
that parses .link files, not
systemd-networkd.
@@ -1486,8 +1486,8 @@ $ hydra-backfill-ids
Please note that mongodb has been relicensed under their own
sspl-license.
- Since it's not entirely free and not OSI-approved, it's
- listed as non-free. This means that Hydra doesn't provide
+ Since it’s not entirely free and not OSI-approved, it’s
+ listed as non-free. This means that Hydra doesn’t provide
prebuilt mongodb-packages and needs to be built locally.
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2009.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2009.section.xml
index edebd92b327a..a1b007e711d7 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2009.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2009.section.xml
@@ -722,7 +722,7 @@
See
Authentication
from MariaDB 10.4. unix_socket auth plugin does not use
- a password, and uses the connecting user's UID instead. When a
+ a password, and uses the connecting user’s UID instead. When a
new MariaDB data directory is initialized, two MariaDB users
are created and can be used with new unix_socket auth plugin,
as well as traditional mysql_native_password plugin:
@@ -730,7 +730,7 @@
traditional mysql_native_password plugin method, one must run
the following:
-
+
{
services.mysql.initialScript = pkgs.writeText "mariadb-init.sql" ''
ALTER USER root@localhost IDENTIFIED VIA mysql_native_password USING PASSWORD("verysecret");
@@ -755,7 +755,7 @@ services.mysql.initialScript = pkgs.writeText "mariadb-init.sql" ''
allow MySQL to read from /home and /tmp directories when using
LOAD DATA INFILE
-
+
{
systemd.services.mysql.serviceConfig.ProtectHome = lib.mkForce "read-only";
}
@@ -766,7 +766,7 @@ services.mysql.initialScript = pkgs.writeText "mariadb-init.sql" ''
SELECT * INTO OUTFILE, assuming the mysql
user has write access to /var/data
-
+
{
systemd.services.mysql.serviceConfig.ReadWritePaths = [ "/var/data" ];
}
@@ -864,7 +864,7 @@ WHERE table_schema = "zabbix" AND COLLATION_NAME = "utf8_general_
buildGoModule now internally creates a
vendor directory in the source tree for downloaded modules
- instead of using go's
+ instead of using go’s
module
proxy protocol. This storage format is simpler and
therefore less likely to break with future versions of go. As
@@ -885,7 +885,7 @@ WHERE table_schema = "zabbix" AND COLLATION_NAME = "utf8_general_
phantomJsSupport = true to the package
instantiation:
-
+
{
services.grafana.package = pkgs.grafana.overrideAttrs (oldAttrs: rec {
phantomJsSupport = true;
@@ -941,24 +941,24 @@ WHERE table_schema = "zabbix" AND COLLATION_NAME = "utf8_general_
If you used the
boot.initrd.network.ssh.host*Key options,
- you'll get an error explaining how to convert your host keys
+ you’ll get an error explaining how to convert your host keys
and migrate to the new
boot.initrd.network.ssh.hostKeys option.
- Otherwise, if you don't have any host keys set, you'll need to
+ Otherwise, if you don’t have any host keys set, you’ll need to
generate some; see the hostKeys option
documentation for instructions.
- Since this release there's an easy way to customize your PHP
+ Since this release there’s an easy way to customize your PHP
install to get a much smaller base PHP with only wanted
extensions enabled. See the following snippet installing a
smaller PHP with the extensions imagick,
opcache, pdo and
pdo_mysql loaded:
-
+
{
environment.systemPackages = [
(pkgs.php.withExtensions
@@ -973,7 +973,7 @@ WHERE table_schema = "zabbix" AND COLLATION_NAME = "utf8_general_
}
- The default php attribute hasn't lost any
+ The default php attribute hasn’t lost any
extensions. The opcache extension has been
added. All upstream PHP extensions are available under
php.extensions.<name?>.
@@ -997,7 +997,7 @@ WHERE table_schema = "zabbix" AND COLLATION_NAME = "utf8_general_
The remaining configuration flags can now be set directly on
the php attribute. For example, instead of
-
+
{
php.override {
config.php.embed = true;
@@ -1008,7 +1008,7 @@ WHERE table_schema = "zabbix" AND COLLATION_NAME = "utf8_general_
you should now write
-
+
{
php.override {
embedSupport = true;
@@ -1062,7 +1062,7 @@ WHERE table_schema = "zabbix" AND COLLATION_NAME = "utf8_general_
writing to other folders, use
systemd.services.nginx.serviceConfig.ReadWritePaths
-
+
{
systemd.services.nginx.serviceConfig.ReadWritePaths = [ "/var/www" ];
}
@@ -1076,7 +1076,7 @@ WHERE table_schema = "zabbix" AND COLLATION_NAME = "utf8_general_
docs for details). If you require serving files from
home directories, you may choose to set e.g.
-
+
{
systemd.services.nginx.serviceConfig.ProtectHome = "read-only";
}
@@ -1093,7 +1093,7 @@ WHERE table_schema = "zabbix" AND COLLATION_NAME = "utf8_general_
Replace a nesting.clone entry with:
-
+
{
specialisation.example-sub-configuration = {
configuration = {
@@ -1104,7 +1104,7 @@ WHERE table_schema = "zabbix" AND COLLATION_NAME = "utf8_general_
Replace a nesting.children entry with:
-
+
{
specialisation.example-sub-configuration = {
inheritParentConfig = false;
@@ -1162,7 +1162,7 @@ $ sudo /run/current-system/fine-tune/child-1/bin/switch-to-configuration test