···210 };
211}
212```
213+214+When packaging a new .NET application in nixpkgs, you can tag the [`@NixOS/dotnet`](https://github.com/orgs/nixos/teams/dotnet) team for help and code review.
+2
lib/systems/parse.nix
···221 vendors = setTypes types.openVendor {
222 apple = {};
223 pc = {};
00224 # Actually matters, unlocking some MinGW-w64-specific options in GCC. See
225 # bottom of https://sourceforge.net/p/mingw-w64/wiki2/Unicode%20apps/
226 w64 = {};
···221 vendors = setTypes types.openVendor {
222 apple = {};
223 pc = {};
224+ knuth = {};
225+226 # Actually matters, unlocking some MinGW-w64-specific options in GCC. See
227 # bottom of https://sourceforge.net/p/mingw-w64/wiki2/Unicode%20apps/
228 w64 = {};
···78```ShellSession
9$ cd /path/to/nixpkgs
010$ nix-build nixos/release.nix -A manual.x86_64-linux
11```
12···1415There's also [a convenient development daemon](https://nixos.org/manual/nixpkgs/unstable/#sec-contributing-devmode).
1617-**Contributing to the man pages**
00000000001819-The man pages are written in [DocBook] which is XML.
2021-To see what your edits look like:
2223```ShellSession
24$ cd /path/to/nixpkgs
25-$ nix-build nixos/release.nix -A manpages.x86_64-linux
26```
2728-You can then read the man page you edited by running
2930```ShellSession
31-$ man --manpath=result/share/man nixos-rebuild # Replace nixos-rebuild with the command whose manual you edited
000000000000000000000000000000000000000000000000000000032```
3334-If you're on a different architecture that's supported by NixOS (check nixos/release.nix) then replace `x86_64-linux` with the architecture.
35-`nix-build` will complain otherwise, but should also tell you which architecture you have + the supported ones.
3637-[DocBook]: https://en.wikipedia.org/wiki/DocBook
00000000
···78```ShellSession
9$ cd /path/to/nixpkgs
10+$ $EDITOR doc/nixos/manual/... # edit the manual
11$ nix-build nixos/release.nix -A manual.x86_64-linux
12```
13···1516There's also [a convenient development daemon](https://nixos.org/manual/nixpkgs/unstable/#sec-contributing-devmode).
1718+The above instructions don't deal with the appendix of available `configuration.nix` options, and the manual pages related to NixOS. These are built, and written in a different location and in a different format, as explained in the next sections.
19+20+## Contributing to the `configuration.nix` options documentation {#sec-contributing-options}
21+22+The documentation for all the different `configuration.nix` options is automatically generated by reading the `description`s of all the NixOS options defined at `nixos/modules/`. If you want to improve such `description`, find it in the `nixos/modules/` directory, and edit it and open a pull request.
23+24+To see how your changes render on the web, run again:
25+26+```ShellSession
27+$ nix-build nixos/release.nix -A manual.x86_64-linux
28+```
2930+And you'll see the changes to the appendix in the path `result/share/doc/nixos/options.html`.
3132+You can also build only the `configuration.nix(5)` manual page, via:
3334```ShellSession
35$ cd /path/to/nixpkgs
36+$ nix-build nixos/release.nix -A nixos-configuration-reference-manpage.x86_64-linux
37```
3839+And observe the result via:
4041```ShellSession
42+$ man --local-file result/share/man/man5/configuration.nix.5
43+```
44+45+If you're on a different architecture that's supported by NixOS (check file `nixos/release.nix` on Nixpkgs' repository) then replace `x86_64-linux` with the architecture. `nix-build` will complain otherwise, but should also tell you which architecture you have + the supported ones.
46+47+## Contributing to `nixos-*` tools' manpages {#sec-contributing-nixos-tools}
48+49+The manual pages for the tools available in the installation image can be found in Nixpkgs by running (e.g for `nixos-rebuild`):
50+51+```ShellSession
52+$ git ls | grep nixos-rebuild.8
53+```
54+55+Man pages are written in [`mdoc(7)` format](https://mandoc.bsd.lv/man/mdoc.7.html) and should be portable between mandoc and groff for rendering (except for minor differences, notably different spacing rules.)
56+57+For a preview, run `man --local-file path/to/file.8`.
58+59+Being written in `mdoc`, these manpages use semantic markup. This following subsections provides a guideline on where to apply which semantic elements.
60+61+### Command lines and arguments {#ssec-contributing-nixos-tools-cli-and-args}
62+63+In any manpage, commands, flags and arguments to the *current* executable should be marked according to their semantics. Commands, flags and arguments passed to *other* executables should not be marked like this and should instead be considered as code examples and marked with `Ql`.
64+65+- Use `Fl` to mark flag arguments, `Ar` for their arguments.
66+- Repeating arguments should be marked by adding an ellipsis (spelled with periods, `...`).
67+- Use `Cm` to mark literal string arguments, e.g. the `boot` command argument passed to `nixos-rebuild`.
68+- Optional flags or arguments should be marked with `Op`. This includes optional repeating arguments.
69+- Required flags or arguments should not be marked.
70+- Mutually exclusive groups of arguments should be enclosed in curly brackets, preferably created with `Bro`/`Brc` blocks.
71+72+When an argument is used in an example it should be marked up with `Ar` again to differentiate it from a constant. For example, a command with a `--host name` option that calls ssh to retrieve the host's local time would signify this thusly:
73+```
74+This will run
75+.Ic ssh Ar name Ic time
76+to retrieve the remote time.
77+```
78+79+### Paths, NixOS options, environment variables {#ssec-contributing-nixos-tools-options-and-environment}
80+81+Constant paths should be marked with `Pa`, NixOS options with `Va`, and environment variables with `Ev`.
82+83+Generated paths, e.g. `result/bin/run-hostname-vm` (where `hostname` is a variable or arguments) should be marked as `Ql` inline literals with their variable components marked appropriately.
84+85+ - When `hostname` refers to an argument, it becomes `.Ql result/bin/run- Ns Ar hostname Ns -vm`
86+ - When `hostname` refers to a variable, it becomes `.Ql result/bin/run- Ns Va hostname Ns -vm`
87+88+### Code examples and other commands {#ssec-contributing-nixos-tools-code-examples}
89+90+In free text names and complete invocations of other commands (e.g. `ssh` or `tar -xvf src.tar`) should be marked with `Ic`, fragments of command lines should be marked with `Ql`.
91+92+Larger code blocks or those that cannot be shown inline should use indented literal display block markup for their contents, i.e.
93+94+```
95+.Bd -literal -offset indent
96+...
97+.Ed
98```
99100+Contents of code blocks may be marked up further, e.g. if they refer to arguments that will be substituted into them:
0101102+```
103+.Bd -literal -offset indent
104+{
105+ config.networking.hostname = "\c
106+.Ar hostname Ns \c
107+";
108+}
109+.Ed
110+```
···1-# NixOS manpages
2-3-This is the collection of NixOS manpages, excluding `configuration.nix(5)`.
4-5-Man pages are written in [`mdoc(7)` format](https://mandoc.bsd.lv/man/mdoc.7.html) and should be portable between mandoc and groff for rendering (though minor differences may occur, mandoc and groff seem to have slightly different spacing rules.)
6-7-For previewing edited files, you can just run `man -l path/to/file.8` and you will see it rendered.
8-9-Being written in `mdoc` these manpages use semantic markup. This file provides a guideline on where to apply which of the semantic elements of `mdoc`.
10-11-### Command lines and arguments
12-13-In any manpage, commands, flags and arguments to the *current* executable should be marked according to their semantics. Commands, flags and arguments passed to *other* executables should not be marked like this and should instead be considered as code examples and marked with `Ql`.
14-15- - Use `Fl` to mark flag arguments, `Ar` for their arguments.
16- - Repeating arguments should be marked by adding ellipses (`...`).
17- - Use `Cm` to mark literal string arguments, e.g. the `boot` command argument passed to `nixos-rebuild`.
18- - Optional flags or arguments should be marked with `Op`. This includes optional repeating arguments.
19- - Required flags or arguments should not be marked.
20- - Mutually exclusive groups of arguments should be enclosed in curly brackets, preferably created with `Bro`/`Brc` blocks.
21-22-When an argument is used in an example it should be marked up with `Ar` again to differentiate it from a constant. For example, a command with a `--host name` flag that calls ssh to retrieve the host's local time would signify this thusly:
23-```
24-This will run
25-.Ic ssh Ar name Ic time
26-to retrieve the remote time.
27-```
28-29-### Paths, NixOS options, environment variables
30-31-Constant paths should be marked with `Pa`, NixOS options with `Va`, and environment variables with `Ev`.
32-33-Generated paths, e.g. `result/bin/run-hostname-vm` (where `hostname` is a variable or arguments) should be marked as `Ql` inline literals with their variable components marked appropriately.
34-35- - Taking `hostname` from an argument become `.Ql result/bin/run- Ns Ar hostname Ns -vm`
36- - Taking `hostname` from a variable otherwise defined becomes `.Ql result/bin/run- Ns Va hostname Ns -vm`
37-38-### Code examples and other commands
39-40-In free text names and complete invocations of other commands (e.g. `ssh` or `tar -xvf src.tar`) should be marked with `Ic`, fragments of command lines should be marked with `Ql`.
41-42-Larger code blocks or those that cannot be shown inline should use indented literal display block markup for their contents, i.e.
43-```
44-.Bd -literal -offset indent
45-...
46-.Ed
47-```
48-Contents of code blocks may be marked up further, e.g. if they refer to arguments that will be substituted into them:
49-```
50-.Bd -literal -offset indent
51-{
52- options.hostname = "\c
53-.Ar hostname Ns \c
54-";
55-}
56-.Ed
57-```
···135 # environment variable, since NixOS relies on it working.
136 # See https://github.com/NixOS/nixpkgs/issues/226484 for more context.
137 ../patches/qtwebengine-xkb-includes.patch
0138 ];
139140 postPatch = ''
···135 # environment variable, since NixOS relies on it working.
136 # See https://github.com/NixOS/nixpkgs/issues/226484 for more context.
137 ../patches/qtwebengine-xkb-includes.patch
138+ ../patches/qtwebengine-link-pulseaudio.patch
139 ];
140141 postPatch = ''
···6970buildPythonPackage rec {
71 pname = "jupyterhub";
72- version = "4.0.1";
73 format = "setuptools";
7475 disabled = pythonOlder "3.7";
7677 src = fetchPypi {
78 inherit pname version;
79- hash = "sha256-jig/9Z5cQBZxIHfSVJ7XSs2RWjKDb+ACGGeKh4G9ft4=";
80 };
8182 # Most of this only applies when building from source (e.g. js/css assets are
···6970buildPythonPackage rec {
71 pname = "jupyterhub";
72+ version = "4.0.2";
73 format = "setuptools";
7475 disabled = pythonOlder "3.7";
7677 src = fetchPypi {
78 inherit pname version;
79+ hash = "sha256-1ORQ7tjZDfvPDsoI8A8gk6C8503FH3z8C3BX9gI0Gh0=";
80 };
8182 # Most of this only applies when building from source (e.g. js/css assets are