Project import generated by Copybara.
GitOrigin-RevId: 74a1793c659d09d7cf738005308b1f86c90cb59b
This commit is contained in:
parent
e7a2da9f60
commit
b450903751
3580 changed files with 96618 additions and 36929 deletions
7
third_party/nixpkgs/.editorconfig
vendored
7
third_party/nixpkgs/.editorconfig
vendored
|
@ -60,6 +60,13 @@ indent_size = unset
|
||||||
[*.md]
|
[*.md]
|
||||||
trim_trailing_whitespace = unset
|
trim_trailing_whitespace = unset
|
||||||
|
|
||||||
|
# binaries
|
||||||
|
[*.nib]
|
||||||
|
end_of_line = unset
|
||||||
|
insert_final_newline = unset
|
||||||
|
trim_trailing_whitespace = unset
|
||||||
|
charset = unset
|
||||||
|
|
||||||
[eggs.nix]
|
[eggs.nix]
|
||||||
trim_trailing_whitespace = unset
|
trim_trailing_whitespace = unset
|
||||||
|
|
||||||
|
|
2
third_party/nixpkgs/.git-blame-ignore-revs
vendored
2
third_party/nixpkgs/.git-blame-ignore-revs
vendored
|
@ -38,4 +38,4 @@ d08ede042b74b8199dc748323768227b88efcf7c
|
||||||
d1c1a0c656ccd8bd3b25d3c4287f2d075faf3cf3
|
d1c1a0c656ccd8bd3b25d3c4287f2d075faf3cf3
|
||||||
|
|
||||||
# fix indentation in meteor default.nix
|
# fix indentation in meteor default.nix
|
||||||
f76b359e4a55267ddd4e9e149e7cc13ae5cad98a
|
a37a6de881ec4c6708e6b88fd16256bbc7f26bbd
|
||||||
|
|
2
third_party/nixpkgs/.github/CODEOWNERS
vendored
2
third_party/nixpkgs/.github/CODEOWNERS
vendored
|
@ -122,8 +122,6 @@
|
||||||
|
|
||||||
# Rust
|
# Rust
|
||||||
/pkgs/development/compilers/rust @Mic92 @LnL7 @zowoq
|
/pkgs/development/compilers/rust @Mic92 @LnL7 @zowoq
|
||||||
/pkgs/build-support/rust @zowoq
|
|
||||||
/doc/languages-frameworks/rust.section.md @zowoq
|
|
||||||
|
|
||||||
# C compilers
|
# C compilers
|
||||||
/pkgs/development/compilers/gcc @matthewbauer
|
/pkgs/development/compilers/gcc @matthewbauer
|
||||||
|
|
2
third_party/nixpkgs/.github/labeler.yml
vendored
2
third_party/nixpkgs/.github/labeler.yml
vendored
|
@ -7,6 +7,8 @@
|
||||||
|
|
||||||
"6.topic: cinnamon":
|
"6.topic: cinnamon":
|
||||||
- pkgs/desktops/cinnamon/**/*
|
- pkgs/desktops/cinnamon/**/*
|
||||||
|
- nixos/modules/services/x11/desktop-managers/cinnamon.nix
|
||||||
|
- nixos/tests/cinnamon.nix
|
||||||
|
|
||||||
"6.topic: emacs":
|
"6.topic: emacs":
|
||||||
- nixos/modules/services/editors/emacs.nix
|
- nixos/modules/services/editors/emacs.nix
|
||||||
|
|
|
@ -31,6 +31,10 @@ function Code(elem)
|
||||||
tag = 'command'
|
tag = 'command'
|
||||||
elseif elem.attributes['role'] == 'option' then
|
elseif elem.attributes['role'] == 'option' then
|
||||||
tag = 'option'
|
tag = 'option'
|
||||||
|
elseif elem.attributes['role'] == 'var' then
|
||||||
|
tag = 'varname'
|
||||||
|
elseif elem.attributes['role'] == 'env' then
|
||||||
|
tag = 'envar'
|
||||||
end
|
end
|
||||||
|
|
||||||
if tag ~= nil then
|
if tag ~= nil then
|
||||||
|
|
|
@ -308,7 +308,44 @@ The parameters relative to the base image have the same synopsis as described in
|
||||||
|
|
||||||
The `name` argument is the name of the derivation output, which defaults to `fromImage.name`.
|
The `name` argument is the name of the derivation output, which defaults to `fromImage.name`.
|
||||||
|
|
||||||
## shadowSetup {#ssec-pkgs-dockerTools-shadowSetup}
|
## Environment Helpers {#ssec-pkgs-dockerTools-helpers}
|
||||||
|
|
||||||
|
Some packages expect certain files to be available globally.
|
||||||
|
When building an image from scratch (i.e. without `fromImage`), these files are missing.
|
||||||
|
`pkgs.dockerTools` provides some helpers to set up an environment with the necessary files.
|
||||||
|
You can include them in `copyToRoot` like this:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
buildImage {
|
||||||
|
name = "environment-example";
|
||||||
|
copyToRoot = with pkgs.dockerTools; [
|
||||||
|
usrBinEnv
|
||||||
|
binSh
|
||||||
|
caCertificates
|
||||||
|
fakeNss
|
||||||
|
];
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### usrBinEnv {#sssec-pkgs-dockerTools-helpers-usrBinEnv}
|
||||||
|
|
||||||
|
This provides the `env` utility at `/usr/bin/env`.
|
||||||
|
|
||||||
|
### binSh {#sssec-pkgs-dockerTools-helpers-binSh}
|
||||||
|
|
||||||
|
This provides `bashInteractive` at `/bin/sh`.
|
||||||
|
|
||||||
|
### caCertificates {#sssec-pkgs-dockerTools-helpers-caCertificates}
|
||||||
|
|
||||||
|
This sets up `/etc/ssl/certs/ca-certificates.crt`.
|
||||||
|
|
||||||
|
### fakeNss {#sssec-pkgs-dockerTools-helpers-fakeNss}
|
||||||
|
|
||||||
|
Provides `/etc/passwd` and `/etc/group` that contain root and nobody.
|
||||||
|
Useful when packaging binaries that insist on using nss to look up
|
||||||
|
username/groups (like nginx).
|
||||||
|
|
||||||
|
### shadowSetup {#ssec-pkgs-dockerTools-shadowSetup}
|
||||||
|
|
||||||
This constant string is a helper for setting up the base files for managing users and groups, only if such files don't exist already. It is suitable for being used in a [`buildImage` `runAsRoot`](#ex-dockerTools-buildImage-runAsRoot) script for cases like in the example below:
|
This constant string is a helper for setting up the base files for managing users and groups, only if such files don't exist already. It is suitable for being used in a [`buildImage` `runAsRoot`](#ex-dockerTools-buildImage-runAsRoot) script for cases like in the example below:
|
||||||
|
|
||||||
|
|
|
@ -453,6 +453,9 @@ In the file `pkgs/top-level/all-packages.nix` you can find fetch helpers, these
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
When fetching from GitHub, commits must always be referenced by their full commit hash. This is because GitHub shares commit hashes among all forks and returns `404 Not Found` when a short commit hash is ambiguous. It already happens for some short, 6-character commit hashes in `nixpkgs`.
|
||||||
|
It is a practical vector for a denial-of-service attack by pushing large amounts of auto generated commits into forks and was already [demonstrated against GitHub Actions Beta](https://blog.teddykatz.com/2019/11/12/github-actions-dos.html).
|
||||||
|
|
||||||
Find the value to put as `sha256` by running `nix-shell -p nix-prefetch-github --run "nix-prefetch-github --rev 1f795f9f44607cc5bec70d1300150bfefcef2aae NixOS nix"`.
|
Find the value to put as `sha256` by running `nix-shell -p nix-prefetch-github --run "nix-prefetch-github --rev 1f795f9f44607cc5bec70d1300150bfefcef2aae NixOS nix"`.
|
||||||
|
|
||||||
## Obtaining source hash {#sec-source-hashes}
|
## Obtaining source hash {#sec-source-hashes}
|
||||||
|
|
|
@ -58,8 +58,10 @@ Additional syntax extensions are available, though not all extensions can be use
|
||||||
A few markups for other kinds of literals are also available:
|
A few markups for other kinds of literals are also available:
|
||||||
|
|
||||||
- `` {command}`rm -rfi` `` turns into {command}`rm -rfi`
|
- `` {command}`rm -rfi` `` turns into {command}`rm -rfi`
|
||||||
- `` {option}`networking.useDHCP` `` turns into {option}`networking.useDHCP`
|
- `` {env}`XDG_DATA_DIRS` `` turns into {env}`XDG_DATA_DIRS`
|
||||||
- `` {file}`/etc/passwd` `` turns into {file}`/etc/passwd`
|
- `` {file}`/etc/passwd` `` turns into {file}`/etc/passwd`
|
||||||
|
- `` {option}`networking.useDHCP` `` turns into {option}`networking.useDHCP`
|
||||||
|
- `` {var}`/etc/passwd` `` turns into {var}`/etc/passwd`
|
||||||
|
|
||||||
These literal kinds are used mostly in NixOS option documentation.
|
These literal kinds are used mostly in NixOS option documentation.
|
||||||
|
|
||||||
|
|
|
@ -246,7 +246,7 @@ The `staging` branch is a development branch where mass-rebuilds go. Mass rebuil
|
||||||
|
|
||||||
### Staging-next branch {#submitting-changes-staging-next-branch}
|
### Staging-next branch {#submitting-changes-staging-next-branch}
|
||||||
|
|
||||||
The `staging-next` branch is for stabilizing mass-rebuilds submitted to the `staging` branch prior to merging them into `master`. Mass-rebuilds must go via the `staging` branch. It must only see non-breaking commits that are fixing issues blocking it from being merged into the `master ` branch.
|
The `staging-next` branch is for stabilizing mass-rebuilds submitted to the `staging` branch prior to merging them into `master`. Mass-rebuilds must go via the `staging` branch. It must only see non-breaking commits that are fixing issues blocking it from being merged into the `master` branch.
|
||||||
|
|
||||||
If the branch is already in a broken state, please refrain from adding extra new breakages. Stabilize it for a few days and then merge into master.
|
If the branch is already in a broken state, please refrain from adding extra new breakages. Stabilize it for a few days and then merge into master.
|
||||||
|
|
||||||
|
|
|
@ -734,6 +734,63 @@ work in any of the formats supported by `buildPythonPackage` currently,
|
||||||
with the exception of `other` (see `format` in
|
with the exception of `other` (see `format` in
|
||||||
[`buildPythonPackage` parameters](#buildpythonpackage-parameters) for more details).
|
[`buildPythonPackage` parameters](#buildpythonpackage-parameters) for more details).
|
||||||
|
|
||||||
|
### Using unittestCheckHook {#using-unittestcheckhook}
|
||||||
|
|
||||||
|
`unittestCheckHook` is a hook which will substitute the setuptools `test` command for a `checkPhase` which runs `python -m unittest discover`:
|
||||||
|
|
||||||
|
```
|
||||||
|
checkInputs = [ unittestCheckHook ];
|
||||||
|
|
||||||
|
unittestFlags = [ "-s" "tests" "-v" ];
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Using sphinxHook {#using-sphinxhook}
|
||||||
|
|
||||||
|
The `sphinxHook` is a helpful tool to build documentation and manpages
|
||||||
|
using the popular Sphinx documentation generator.
|
||||||
|
It is setup to automatically find common documentation source paths and
|
||||||
|
render them using the default `html` style.
|
||||||
|
|
||||||
|
```
|
||||||
|
outputs = [
|
||||||
|
"out"
|
||||||
|
"doc"
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
sphinxHook
|
||||||
|
];
|
||||||
|
```
|
||||||
|
|
||||||
|
The hook will automatically build and install the artifact into the
|
||||||
|
`doc` output, if it exists. It also provides an automatic diversion
|
||||||
|
for the artifacts of the `man` builder into the `man` target.
|
||||||
|
|
||||||
|
```
|
||||||
|
outputs = [
|
||||||
|
"out"
|
||||||
|
"doc"
|
||||||
|
"man"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Use multiple builders
|
||||||
|
sphinxBuilders = [
|
||||||
|
"singlehtml"
|
||||||
|
"man"
|
||||||
|
];
|
||||||
|
```
|
||||||
|
|
||||||
|
Overwrite `sphinxRoot` when the hook is unable to find your
|
||||||
|
documentation source root.
|
||||||
|
|
||||||
|
```
|
||||||
|
# Configure sphinxRoot for uncommon paths
|
||||||
|
sphinxRoot = "weird/docs/path";
|
||||||
|
```
|
||||||
|
|
||||||
|
The hook is also available to packages outside the python ecosystem by
|
||||||
|
referencing it using `python3.pkgs.sphinxHook`.
|
||||||
|
|
||||||
### Develop local package {#develop-local-package}
|
### Develop local package {#develop-local-package}
|
||||||
|
|
||||||
As a Python developer you're likely aware of [development mode](http://setuptools.readthedocs.io/en/latest/setuptools.html#development-mode)
|
As a Python developer you're likely aware of [development mode](http://setuptools.readthedocs.io/en/latest/setuptools.html#development-mode)
|
||||||
|
@ -1260,16 +1317,18 @@ are used in `buildPythonPackage`.
|
||||||
- `pytestCheckHook` to run tests with `pytest`. See [example usage](#using-pytestcheckhook).
|
- `pytestCheckHook` to run tests with `pytest`. See [example usage](#using-pytestcheckhook).
|
||||||
- `pythonCatchConflictsHook` to check whether a Python package is not already existing.
|
- `pythonCatchConflictsHook` to check whether a Python package is not already existing.
|
||||||
- `pythonImportsCheckHook` to check whether importing the listed modules works.
|
- `pythonImportsCheckHook` to check whether importing the listed modules works.
|
||||||
|
- `pythonRelaxDepsHook` will relax Python dependencies restrictions for the package.
|
||||||
|
See [example usage](#using-pythonrelaxdepshook).
|
||||||
- `pythonRemoveBinBytecode` to remove bytecode from the `/bin` folder.
|
- `pythonRemoveBinBytecode` to remove bytecode from the `/bin` folder.
|
||||||
- `setuptoolsBuildHook` to build a wheel using `setuptools`.
|
- `setuptoolsBuildHook` to build a wheel using `setuptools`.
|
||||||
- `setuptoolsCheckHook` to run tests with `python setup.py test`.
|
- `setuptoolsCheckHook` to run tests with `python setup.py test`.
|
||||||
|
- `sphinxHook` to build documentation and manpages using Sphinx.
|
||||||
- `venvShellHook` to source a Python 3 `venv` at the `venvDir` location. A
|
- `venvShellHook` to source a Python 3 `venv` at the `venvDir` location. A
|
||||||
`venv` is created if it does not yet exist. `postVenvCreation` can be used to
|
`venv` is created if it does not yet exist. `postVenvCreation` can be used to
|
||||||
to run commands only after venv is first created.
|
to run commands only after venv is first created.
|
||||||
- `wheelUnpackHook` to move a wheel to the correct folder so it can be installed
|
- `wheelUnpackHook` to move a wheel to the correct folder so it can be installed
|
||||||
with the `pipInstallHook`.
|
with the `pipInstallHook`.
|
||||||
- `pythonRelaxDepsHook` will relax Python dependencies restrictions for the package.
|
- `unittestCheckHook` will run tests with `python -m unittest discover`. See [example usage](#using-unittestcheckhook).
|
||||||
See [example usage](#using-pythonrelaxdepshook).
|
|
||||||
|
|
||||||
### Development mode {#development-mode}
|
### Development mode {#development-mode}
|
||||||
|
|
||||||
|
|
|
@ -458,7 +458,7 @@ you of the correct hash.
|
||||||
`maturinBuildFlags`.
|
`maturinBuildFlags`.
|
||||||
* `cargoCheckHook`: run tests using Cargo. The build type for checks
|
* `cargoCheckHook`: run tests using Cargo. The build type for checks
|
||||||
can be set using `cargoCheckType`. Features can be specified with
|
can be set using `cargoCheckType`. Features can be specified with
|
||||||
`cargoCheckNoDefaultFeaatures` and `cargoCheckFeatures`. Additional
|
`cargoCheckNoDefaultFeatures` and `cargoCheckFeatures`. Additional
|
||||||
flags can be passed to the tests using `checkFlags` and
|
flags can be passed to the tests using `checkFlags` and
|
||||||
`checkFlagsArray`. By default, tests are run in parallel. This can
|
`checkFlagsArray`. By default, tests are run in parallel. This can
|
||||||
be disabled by setting `dontUseCargoParallelTests`.
|
be disabled by setting `dontUseCargoParallelTests`.
|
||||||
|
|
|
@ -80,7 +80,7 @@ Right: `"A library for decoding PNG images"`
|
||||||
|
|
||||||
### `longDescription` {#var-meta-longDescription}
|
### `longDescription` {#var-meta-longDescription}
|
||||||
|
|
||||||
An arbitrarily long description of the package.
|
An arbitrarily long description of the package in [CommonMark](https://commonmark.org) Markdown.
|
||||||
|
|
||||||
### `branch` {#var-meta-branch}
|
### `branch` {#var-meta-branch}
|
||||||
|
|
||||||
|
|
|
@ -452,6 +452,8 @@ The list of source files or directories to be unpacked or copied. One of these m
|
||||||
|
|
||||||
After running `unpackPhase`, the generic builder changes the current directory to the directory created by unpacking the sources. If there are multiple source directories, you should set `sourceRoot` to the name of the intended directory. Set `sourceRoot = ".";` if you use `srcs` and control the unpack phase yourself.
|
After running `unpackPhase`, the generic builder changes the current directory to the directory created by unpacking the sources. If there are multiple source directories, you should set `sourceRoot` to the name of the intended directory. Set `sourceRoot = ".";` if you use `srcs` and control the unpack phase yourself.
|
||||||
|
|
||||||
|
By default the `sourceRoot` is set to `"source"`. If you want to point to a sub-directory inside your project, you therefore need to set `sourceRoot = "source/my-sub-directory"`.
|
||||||
|
|
||||||
##### `setSourceRoot` {#var-stdenv-setSourceRoot}
|
##### `setSourceRoot` {#var-stdenv-setSourceRoot}
|
||||||
|
|
||||||
Alternatively to setting `sourceRoot`, you can set `setSourceRoot` to a shell command to be evaluated by the unpack phase after the sources have been unpacked. This command must set `sourceRoot`.
|
Alternatively to setting `sourceRoot`, you can set `setSourceRoot` to a shell command to be evaluated by the unpack phase after the sources have been unpacked. This command must set `sourceRoot`.
|
||||||
|
|
20
third_party/nixpkgs/lib/licenses.nix
vendored
20
third_party/nixpkgs/lib/licenses.nix
vendored
|
@ -148,6 +148,11 @@ in mkLicense lset) ({
|
||||||
fullName = ''BSD 4-clause "Original" or "Old" License'';
|
fullName = ''BSD 4-clause "Original" or "Old" License'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bsdOriginalShortened = {
|
||||||
|
spdxId = "BSD-4-Clause-Shortened";
|
||||||
|
fullName = "BSD 4 Clause Shortened";
|
||||||
|
};
|
||||||
|
|
||||||
bsdOriginalUC = {
|
bsdOriginalUC = {
|
||||||
spdxId = "BSD-4-Clause-UC";
|
spdxId = "BSD-4-Clause-UC";
|
||||||
fullName = "BSD 4-Clause University of California-Specific";
|
fullName = "BSD 4-Clause University of California-Specific";
|
||||||
|
@ -693,6 +698,11 @@ in mkLicense lset) ({
|
||||||
fullName = "SIL Open Font License 1.1";
|
fullName = "SIL Open Font License 1.1";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
oml = {
|
||||||
|
spdxId = "OML";
|
||||||
|
fullName = "Open Market License";
|
||||||
|
};
|
||||||
|
|
||||||
openldap = {
|
openldap = {
|
||||||
spdxId = "OLDAP-2.8";
|
spdxId = "OLDAP-2.8";
|
||||||
fullName = "Open LDAP Public License v2.8";
|
fullName = "Open LDAP Public License v2.8";
|
||||||
|
@ -824,6 +834,11 @@ in mkLicense lset) ({
|
||||||
fullName = "TCL/TK License";
|
fullName = "TCL/TK License";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ucd = {
|
||||||
|
fullName = "Unicode Character Database License";
|
||||||
|
url = "https://fedoraproject.org/wiki/Licensing:UCD";
|
||||||
|
};
|
||||||
|
|
||||||
ufl = {
|
ufl = {
|
||||||
fullName = "Ubuntu Font License 1.0";
|
fullName = "Ubuntu Font License 1.0";
|
||||||
url = "https://ubuntu.com/legal/font-licence";
|
url = "https://ubuntu.com/legal/font-licence";
|
||||||
|
@ -878,6 +893,11 @@ in mkLicense lset) ({
|
||||||
free = false;
|
free = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
vol-sl = {
|
||||||
|
fullName = "Volatility Software License, Version 1.0";
|
||||||
|
url = "https://www.volatilityfoundation.org/license/vsl-v1.0";
|
||||||
|
};
|
||||||
|
|
||||||
vsl10 = {
|
vsl10 = {
|
||||||
spdxId = "VSL-1.0";
|
spdxId = "VSL-1.0";
|
||||||
fullName = "Vovida Software License v1.0";
|
fullName = "Vovida Software License v1.0";
|
||||||
|
|
2
third_party/nixpkgs/lib/minver.nix
vendored
2
third_party/nixpkgs/lib/minver.nix
vendored
|
@ -1,2 +1,2 @@
|
||||||
# Expose the minimum required version for evaluating Nixpkgs
|
# Expose the minimum required version for evaluating Nixpkgs
|
||||||
"2.2"
|
"2.3"
|
||||||
|
|
124
third_party/nixpkgs/lib/modules.nix
vendored
124
third_party/nixpkgs/lib/modules.nix
vendored
|
@ -163,84 +163,50 @@ rec {
|
||||||
# TODO: Change the type of this option to a submodule with a
|
# TODO: Change the type of this option to a submodule with a
|
||||||
# freeformType, so that individual arguments can be documented
|
# freeformType, so that individual arguments can be documented
|
||||||
# separately
|
# separately
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Additional arguments passed to each module in addition to ones
|
Additional arguments passed to each module in addition to ones
|
||||||
like <literal>lib</literal>, <literal>config</literal>,
|
like `lib`, `config`,
|
||||||
and <literal>pkgs</literal>, <literal>modulesPath</literal>.
|
and `pkgs`, `modulesPath`.
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
This option is also available to all submodules. Submodules do not
|
This option is also available to all submodules. Submodules do not
|
||||||
inherit args from their parent module, nor do they provide args to
|
inherit args from their parent module, nor do they provide args to
|
||||||
their parent module or sibling submodules. The sole exception to
|
their parent module or sibling submodules. The sole exception to
|
||||||
this is the argument <literal>name</literal> which is provided by
|
this is the argument `name` which is provided by
|
||||||
parent modules to a submodule and contains the attribute name
|
parent modules to a submodule and contains the attribute name
|
||||||
the submodule is bound to, or a unique generated name if it is
|
the submodule is bound to, or a unique generated name if it is
|
||||||
not bound to an attribute.
|
not bound to an attribute.
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
Some arguments are already passed by default, of which the
|
Some arguments are already passed by default, of which the
|
||||||
following <emphasis>cannot</emphasis> be changed with this option:
|
following *cannot* be changed with this option:
|
||||||
<itemizedlist>
|
- {var}`lib`: The nixpkgs library.
|
||||||
<listitem>
|
- {var}`config`: The results of all options after merging the values from all modules together.
|
||||||
<para>
|
- {var}`options`: The options declared in all modules.
|
||||||
<varname>lib</varname>: The nixpkgs library.
|
- {var}`specialArgs`: The `specialArgs` argument passed to `evalModules`.
|
||||||
</para>
|
- All attributes of {var}`specialArgs`
|
||||||
</listitem>
|
|
||||||
<listitem>
|
Whereas option values can generally depend on other option values
|
||||||
<para>
|
thanks to laziness, this does not apply to `imports`, which
|
||||||
<varname>config</varname>: The results of all options after merging the values from all modules together.
|
must be computed statically before anything else.
|
||||||
</para>
|
|
||||||
</listitem>
|
For this reason, callers of the module system can provide `specialArgs`
|
||||||
<listitem>
|
which are available during import resolution.
|
||||||
<para>
|
|
||||||
<varname>options</varname>: The options declared in all modules.
|
For NixOS, `specialArgs` includes
|
||||||
</para>
|
{var}`modulesPath`, which allows you to import
|
||||||
</listitem>
|
extra modules from the nixpkgs package tree without having to
|
||||||
<listitem>
|
somehow make the module aware of the location of the
|
||||||
<para>
|
`nixpkgs` or NixOS directories.
|
||||||
<varname>specialArgs</varname>: The <literal>specialArgs</literal> argument passed to <literal>evalModules</literal>.
|
```
|
||||||
</para>
|
{ modulesPath, ... }: {
|
||||||
</listitem>
|
imports = [
|
||||||
<listitem>
|
(modulesPath + "/profiles/minimal.nix")
|
||||||
<para>
|
];
|
||||||
All attributes of <varname>specialArgs</varname>
|
}
|
||||||
</para>
|
```
|
||||||
<para>
|
|
||||||
Whereas option values can generally depend on other option values
|
|
||||||
thanks to laziness, this does not apply to <literal>imports</literal>, which
|
|
||||||
must be computed statically before anything else.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
For this reason, callers of the module system can provide <literal>specialArgs</literal>
|
|
||||||
which are available during import resolution.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
For NixOS, <literal>specialArgs</literal> includes
|
|
||||||
<varname>modulesPath</varname>, which allows you to import
|
|
||||||
extra modules from the nixpkgs package tree without having to
|
|
||||||
somehow make the module aware of the location of the
|
|
||||||
<literal>nixpkgs</literal> or NixOS directories.
|
|
||||||
<programlisting>
|
|
||||||
{ modulesPath, ... }: {
|
|
||||||
imports = [
|
|
||||||
(modulesPath + "/profiles/minimal.nix")
|
|
||||||
];
|
|
||||||
}
|
|
||||||
</programlisting>
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
For NixOS, the default value for this option includes at least this argument:
|
For NixOS, the default value for this option includes at least this argument:
|
||||||
<itemizedlist>
|
- {var}`pkgs`: The nixpkgs package set according to
|
||||||
<listitem>
|
the {option}`nixpkgs.pkgs` option.
|
||||||
<para>
|
|
||||||
<varname>pkgs</varname>: The nixpkgs package set according to
|
|
||||||
the <option>nixpkgs.pkgs</option> option.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -248,21 +214,21 @@ rec {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
internal = true;
|
internal = true;
|
||||||
default = true;
|
default = true;
|
||||||
description = "Whether to check whether all option definitions have matching declarations.";
|
description = lib.mdDoc "Whether to check whether all option definitions have matching declarations.";
|
||||||
};
|
};
|
||||||
|
|
||||||
_module.freeformType = mkOption {
|
_module.freeformType = mkOption {
|
||||||
type = types.nullOr types.optionType;
|
type = types.nullOr types.optionType;
|
||||||
internal = true;
|
internal = true;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
If set, merge all definitions that don't have an associated option
|
If set, merge all definitions that don't have an associated option
|
||||||
together using this type. The result then gets combined with the
|
together using this type. The result then gets combined with the
|
||||||
values of all declared options to produce the final <literal>
|
values of all declared options to produce the final `
|
||||||
config</literal> value.
|
config` value.
|
||||||
|
|
||||||
If this is <literal>null</literal>, definitions without an option
|
If this is `null`, definitions without an option
|
||||||
will throw an error unless <option>_module.check</option> is
|
will throw an error unless {option}`_module.check` is
|
||||||
turned off.
|
turned off.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -270,7 +236,7 @@ rec {
|
||||||
_module.specialArgs = mkOption {
|
_module.specialArgs = mkOption {
|
||||||
readOnly = true;
|
readOnly = true;
|
||||||
internal = true;
|
internal = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Externally provided module arguments that can't be modified from
|
Externally provided module arguments that can't be modified from
|
||||||
within a configuration, but can be used in module imports.
|
within a configuration, but can be used in module imports.
|
||||||
'';
|
'';
|
||||||
|
@ -433,7 +399,9 @@ rec {
|
||||||
# modules recursively. It returns the final list of unique-by-key modules
|
# modules recursively. It returns the final list of unique-by-key modules
|
||||||
filterModules = modulesPath: { disabled, modules }:
|
filterModules = modulesPath: { disabled, modules }:
|
||||||
let
|
let
|
||||||
moduleKey = m: if isString m then toString modulesPath + "/" + m else toString m;
|
moduleKey = m: if isString m && (builtins.substring 0 1 m != "/")
|
||||||
|
then toString modulesPath + "/" + m
|
||||||
|
else toString m;
|
||||||
disabledKeys = map moduleKey disabled;
|
disabledKeys = map moduleKey disabled;
|
||||||
keyFilter = filter (attrs: ! elem attrs.key disabledKeys);
|
keyFilter = filter (attrs: ! elem attrs.key disabledKeys);
|
||||||
in map (attrs: attrs.module) (builtins.genericClosure {
|
in map (attrs: attrs.module) (builtins.genericClosure {
|
||||||
|
@ -1167,7 +1135,7 @@ rec {
|
||||||
{
|
{
|
||||||
options = setAttrByPath from (mkOption {
|
options = setAttrByPath from (mkOption {
|
||||||
inherit visible;
|
inherit visible;
|
||||||
description = "Alias of <option>${showOption to}</option>.";
|
description = lib.mdDoc "Alias of {option}`${showOption to}`.";
|
||||||
apply = x: use (toOf config);
|
apply = x: use (toOf config);
|
||||||
} // optionalAttrs (toType != null) {
|
} // optionalAttrs (toType != null) {
|
||||||
type = toType;
|
type = toType;
|
||||||
|
|
7
third_party/nixpkgs/lib/options.nix
vendored
7
third_party/nixpkgs/lib/options.nix
vendored
|
@ -95,7 +95,10 @@ rec {
|
||||||
name: mkOption {
|
name: mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
example = true;
|
example = true;
|
||||||
description = "Whether to enable ${name}.";
|
description =
|
||||||
|
if name ? _type && name._type == "mdDoc"
|
||||||
|
then lib.mdDoc "Whether to enable ${name.text}."
|
||||||
|
else "Whether to enable ${name}.";
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -134,7 +137,7 @@ rec {
|
||||||
let default' = if !isList default then [ default ] else default;
|
let default' = if !isList default then [ default ] else default;
|
||||||
in mkOption {
|
in mkOption {
|
||||||
type = lib.types.package;
|
type = lib.types.package;
|
||||||
description = "The ${name} package to use.";
|
description = lib.mdDoc "The ${name} package to use.";
|
||||||
default = attrByPath default'
|
default = attrByPath default'
|
||||||
(throw "${concatStringsSep "." default'} cannot be found in pkgs") pkgs;
|
(throw "${concatStringsSep "." default'} cannot be found in pkgs") pkgs;
|
||||||
defaultText = literalExpression ("pkgs." + concatStringsSep "." default');
|
defaultText = literalExpression ("pkgs." + concatStringsSep "." default');
|
||||||
|
|
12
third_party/nixpkgs/lib/systems/default.nix
vendored
12
third_party/nixpkgs/lib/systems/default.nix
vendored
|
@ -65,11 +65,17 @@ rec {
|
||||||
# is why we use the more obscure "bfd" and not "binutils" for this
|
# is why we use the more obscure "bfd" and not "binutils" for this
|
||||||
# choice.
|
# choice.
|
||||||
else "bfd";
|
else "bfd";
|
||||||
extensions = {
|
extensions = rec {
|
||||||
sharedLibrary =
|
sharedLibrary =
|
||||||
/**/ if final.isDarwin then ".dylib"
|
/**/ if final.isDarwin then ".dylib"
|
||||||
else if final.isWindows then ".dll"
|
else if final.isWindows then ".dll"
|
||||||
else ".so";
|
else ".so";
|
||||||
|
staticLibrary =
|
||||||
|
/**/ if final.isWindows then ".lib"
|
||||||
|
else ".a";
|
||||||
|
library =
|
||||||
|
/**/ if final.isStatic then staticLibrary
|
||||||
|
else sharedLibrary;
|
||||||
executable =
|
executable =
|
||||||
/**/ if final.isWindows then ".exe"
|
/**/ if final.isWindows then ".exe"
|
||||||
else "";
|
else "";
|
||||||
|
@ -93,7 +99,7 @@ rec {
|
||||||
genode = "Genode";
|
genode = "Genode";
|
||||||
}.${final.parsed.kernel.name} or null;
|
}.${final.parsed.kernel.name} or null;
|
||||||
|
|
||||||
# uname -p
|
# uname -m
|
||||||
processor = final.parsed.cpu.name;
|
processor = final.parsed.cpu.name;
|
||||||
|
|
||||||
# uname -r
|
# uname -r
|
||||||
|
@ -115,6 +121,8 @@ rec {
|
||||||
else if final.isAarch64 then "arm64"
|
else if final.isAarch64 then "arm64"
|
||||||
else if final.isx86_32 then "i386"
|
else if final.isx86_32 then "i386"
|
||||||
else if final.isx86_64 then "x86_64"
|
else if final.isx86_64 then "x86_64"
|
||||||
|
# linux kernel does not distinguish microblaze/microblazeel
|
||||||
|
else if final.isMicroBlaze then "microblaze"
|
||||||
else if final.isMips32 then "mips"
|
else if final.isMips32 then "mips"
|
||||||
else if final.isMips64 then "mips" # linux kernel does not distinguish mips32/mips64
|
else if final.isMips64 then "mips" # linux kernel does not distinguish mips32/mips64
|
||||||
else if final.isPower then "powerpc"
|
else if final.isPower then "powerpc"
|
||||||
|
|
18
third_party/nixpkgs/lib/systems/doubles.nix
vendored
18
third_party/nixpkgs/lib/systems/doubles.nix
vendored
|
@ -26,9 +26,10 @@ let
|
||||||
|
|
||||||
# Linux
|
# Linux
|
||||||
"aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux"
|
"aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux"
|
||||||
"armv7l-linux" "i686-linux" "m68k-linux" "mipsel-linux" "mips64el-linux"
|
"armv7l-linux" "i686-linux" "m68k-linux" "microblaze-linux"
|
||||||
"powerpc64-linux" "powerpc64le-linux" "riscv32-linux"
|
"microblazeel-linux" "mipsel-linux" "mips64el-linux" "powerpc64-linux"
|
||||||
"riscv64-linux" "s390-linux" "s390x-linux" "x86_64-linux"
|
"powerpc64le-linux" "riscv32-linux" "riscv64-linux" "s390-linux"
|
||||||
|
"s390x-linux" "x86_64-linux"
|
||||||
|
|
||||||
# MMIXware
|
# MMIXware
|
||||||
"mmix-mmixware"
|
"mmix-mmixware"
|
||||||
|
@ -40,9 +41,9 @@ let
|
||||||
|
|
||||||
# none
|
# none
|
||||||
"aarch64_be-none" "aarch64-none" "arm-none" "armv6l-none" "avr-none" "i686-none"
|
"aarch64_be-none" "aarch64-none" "arm-none" "armv6l-none" "avr-none" "i686-none"
|
||||||
"msp430-none" "or1k-none" "m68k-none" "powerpc-none" "powerpcle-none"
|
"microblaze-none" "microblazeel-none" "msp430-none" "or1k-none" "m68k-none"
|
||||||
"riscv32-none" "riscv64-none" "rx-none" "s390-none" "s390x-none" "vc4-none"
|
"powerpc-none" "powerpcle-none" "riscv32-none" "riscv64-none" "rx-none"
|
||||||
"x86_64-none"
|
"s390-none" "s390x-none" "vc4-none" "x86_64-none"
|
||||||
|
|
||||||
# OpenBSD
|
# OpenBSD
|
||||||
"i686-openbsd" "x86_64-openbsd"
|
"i686-openbsd" "x86_64-openbsd"
|
||||||
|
@ -71,6 +72,7 @@ in {
|
||||||
x86 = filterDoubles predicates.isx86;
|
x86 = filterDoubles predicates.isx86;
|
||||||
i686 = filterDoubles predicates.isi686;
|
i686 = filterDoubles predicates.isi686;
|
||||||
x86_64 = filterDoubles predicates.isx86_64;
|
x86_64 = filterDoubles predicates.isx86_64;
|
||||||
|
microblaze = filterDoubles predicates.isMicroBlaze;
|
||||||
mips = filterDoubles predicates.isMips;
|
mips = filterDoubles predicates.isMips;
|
||||||
mmix = filterDoubles predicates.isMmix;
|
mmix = filterDoubles predicates.isMmix;
|
||||||
riscv = filterDoubles predicates.isRiscV;
|
riscv = filterDoubles predicates.isRiscV;
|
||||||
|
@ -94,7 +96,9 @@ in {
|
||||||
++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnueabi; })
|
++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnueabi; })
|
||||||
++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnueabihf; })
|
++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnueabihf; })
|
||||||
++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnuabin32; })
|
++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnuabin32; })
|
||||||
++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnuabi64; });
|
++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnuabi64; })
|
||||||
|
++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnuabielfv1; })
|
||||||
|
++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnuabielfv2; });
|
||||||
illumos = filterDoubles predicates.isSunOS;
|
illumos = filterDoubles predicates.isSunOS;
|
||||||
linux = filterDoubles predicates.isLinux;
|
linux = filterDoubles predicates.isLinux;
|
||||||
netbsd = filterDoubles predicates.isNetBSD;
|
netbsd = filterDoubles predicates.isNetBSD;
|
||||||
|
|
5
third_party/nixpkgs/lib/systems/examples.nix
vendored
5
third_party/nixpkgs/lib/systems/examples.nix
vendored
|
@ -22,12 +22,11 @@ rec {
|
||||||
};
|
};
|
||||||
|
|
||||||
ppc64 = {
|
ppc64 = {
|
||||||
config = "powerpc64-unknown-linux-gnu";
|
config = "powerpc64-unknown-linux-gnuabielfv2";
|
||||||
gcc = { abi = "elfv2"; }; # for gcc configuration
|
|
||||||
};
|
};
|
||||||
ppc64-musl = {
|
ppc64-musl = {
|
||||||
config = "powerpc64-unknown-linux-musl";
|
config = "powerpc64-unknown-linux-musl";
|
||||||
gcc = { abi = "elfv2"; }; # for gcc configuration
|
gcc = { abi = "elfv2"; };
|
||||||
};
|
};
|
||||||
|
|
||||||
sheevaplug = {
|
sheevaplug = {
|
||||||
|
|
10
third_party/nixpkgs/lib/systems/inspect.nix
vendored
10
third_party/nixpkgs/lib/systems/inspect.nix
vendored
|
@ -13,10 +13,18 @@ rec {
|
||||||
isx86_64 = { cpu = { family = "x86"; bits = 64; }; };
|
isx86_64 = { cpu = { family = "x86"; bits = 64; }; };
|
||||||
isPower = { cpu = { family = "power"; }; };
|
isPower = { cpu = { family = "power"; }; };
|
||||||
isPower64 = { cpu = { family = "power"; bits = 64; }; };
|
isPower64 = { cpu = { family = "power"; bits = 64; }; };
|
||||||
|
# This ABI is the default in NixOS PowerPC64 BE, but not on mainline GCC,
|
||||||
|
# so it sometimes causes issues in certain packages that makes the wrong
|
||||||
|
# assumption on the used ABI.
|
||||||
|
isAbiElfv2 = [
|
||||||
|
{ abi = { abi = "elfv2"; }; }
|
||||||
|
{ abi = { name = "musl"; }; cpu = { family = "power"; bits = 64; }; }
|
||||||
|
];
|
||||||
isx86 = { cpu = { family = "x86"; }; };
|
isx86 = { cpu = { family = "x86"; }; };
|
||||||
isAarch32 = { cpu = { family = "arm"; bits = 32; }; };
|
isAarch32 = { cpu = { family = "arm"; bits = 32; }; };
|
||||||
isAarch64 = { cpu = { family = "arm"; bits = 64; }; };
|
isAarch64 = { cpu = { family = "arm"; bits = 64; }; };
|
||||||
isAarch = { cpu = { family = "arm"; }; };
|
isAarch = { cpu = { family = "arm"; }; };
|
||||||
|
isMicroBlaze = { cpu = { family = "microblaze"; }; };
|
||||||
isMips = { cpu = { family = "mips"; }; };
|
isMips = { cpu = { family = "mips"; }; };
|
||||||
isMips32 = { cpu = { family = "mips"; bits = 32; }; };
|
isMips32 = { cpu = { family = "mips"; bits = 32; }; };
|
||||||
isMips64 = { cpu = { family = "mips"; bits = 64; }; };
|
isMips64 = { cpu = { family = "mips"; bits = 64; }; };
|
||||||
|
@ -64,7 +72,7 @@ rec {
|
||||||
isNone = { kernel = kernels.none; };
|
isNone = { kernel = kernels.none; };
|
||||||
|
|
||||||
isAndroid = [ { abi = abis.android; } { abi = abis.androideabi; } ];
|
isAndroid = [ { abi = abis.android; } { abi = abis.androideabi; } ];
|
||||||
isGnu = with abis; map (a: { abi = a; }) [ gnuabi64 gnu gnueabi gnueabihf ];
|
isGnu = with abis; map (a: { abi = a; }) [ gnuabi64 gnu gnueabi gnueabihf gnuabielfv1 gnuabielfv2 ];
|
||||||
isMusl = with abis; map (a: { abi = a; }) [ musl musleabi musleabihf muslabin32 muslabi64 ];
|
isMusl = with abis; map (a: { abi = a; }) [ musl musleabi musleabihf muslabin32 muslabi64 ];
|
||||||
isUClibc = with abis; map (a: { abi = a; }) [ uclibc uclibceabi uclibceabihf ];
|
isUClibc = with abis; map (a: { abi = a; }) [ uclibc uclibceabi uclibceabihf ];
|
||||||
|
|
||||||
|
|
13
third_party/nixpkgs/lib/systems/parse.nix
vendored
13
third_party/nixpkgs/lib/systems/parse.nix
vendored
|
@ -88,6 +88,9 @@ rec {
|
||||||
i686 = { bits = 32; significantByte = littleEndian; family = "x86"; arch = "i686"; };
|
i686 = { bits = 32; significantByte = littleEndian; family = "x86"; arch = "i686"; };
|
||||||
x86_64 = { bits = 64; significantByte = littleEndian; family = "x86"; arch = "x86-64"; };
|
x86_64 = { bits = 64; significantByte = littleEndian; family = "x86"; arch = "x86-64"; };
|
||||||
|
|
||||||
|
microblaze = { bits = 32; significantByte = bigEndian; family = "microblaze"; };
|
||||||
|
microblazeel = { bits = 32; significantByte = littleEndian; family = "microblaze"; };
|
||||||
|
|
||||||
mips = { bits = 32; significantByte = bigEndian; family = "mips"; };
|
mips = { bits = 32; significantByte = bigEndian; family = "mips"; };
|
||||||
mipsel = { bits = 32; significantByte = littleEndian; family = "mips"; };
|
mipsel = { bits = 32; significantByte = littleEndian; family = "mips"; };
|
||||||
mips64 = { bits = 64; significantByte = bigEndian; family = "mips"; };
|
mips64 = { bits = 64; significantByte = bigEndian; family = "mips"; };
|
||||||
|
@ -350,6 +353,11 @@ rec {
|
||||||
The "gnu" ABI is ambiguous on 32-bit ARM. Use "gnueabi" or "gnueabihf" instead.
|
The "gnu" ABI is ambiguous on 32-bit ARM. Use "gnueabi" or "gnueabihf" instead.
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
{ assertion = platform: with platform; !(isPower64 && isBigEndian);
|
||||||
|
message = ''
|
||||||
|
The "gnu" ABI is ambiguous on big-endian 64-bit PowerPC. Use "gnuabielfv2" or "gnuabielfv1" instead.
|
||||||
|
'';
|
||||||
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
gnuabi64 = { abi = "64"; };
|
gnuabi64 = { abi = "64"; };
|
||||||
|
@ -361,6 +369,9 @@ rec {
|
||||||
gnuabin32 = { abi = "n32"; };
|
gnuabin32 = { abi = "n32"; };
|
||||||
muslabin32 = { abi = "n32"; };
|
muslabin32 = { abi = "n32"; };
|
||||||
|
|
||||||
|
gnuabielfv2 = { abi = "elfv2"; };
|
||||||
|
gnuabielfv1 = { abi = "elfv1"; };
|
||||||
|
|
||||||
musleabi = { float = "soft"; };
|
musleabi = { float = "soft"; };
|
||||||
musleabihf = { float = "hard"; };
|
musleabihf = { float = "hard"; };
|
||||||
musl = {};
|
musl = {};
|
||||||
|
@ -464,6 +475,8 @@ rec {
|
||||||
if lib.versionAtLeast (parsed.cpu.version or "0") "6"
|
if lib.versionAtLeast (parsed.cpu.version or "0") "6"
|
||||||
then abis.gnueabihf
|
then abis.gnueabihf
|
||||||
else abis.gnueabi
|
else abis.gnueabi
|
||||||
|
# Default ppc64 BE to ELFv2
|
||||||
|
else if isPower64 parsed && isBigEndian parsed then abis.gnuabielfv2
|
||||||
else abis.gnu
|
else abis.gnu
|
||||||
else abis.unknown;
|
else abis.unknown;
|
||||||
};
|
};
|
||||||
|
|
1
third_party/nixpkgs/lib/tests/modules.sh
vendored
1
third_party/nixpkgs/lib/tests/modules.sh
vendored
|
@ -130,6 +130,7 @@ checkConfigOutput '^true$' "$@" ./define-enable.nix ./define-attrsOfSub-foo-enab
|
||||||
set -- config.enable ./define-enable.nix ./declare-enable.nix
|
set -- config.enable ./define-enable.nix ./declare-enable.nix
|
||||||
checkConfigOutput '^true$' "$@"
|
checkConfigOutput '^true$' "$@"
|
||||||
checkConfigOutput '^false$' "$@" ./disable-define-enable.nix
|
checkConfigOutput '^false$' "$@" ./disable-define-enable.nix
|
||||||
|
checkConfigOutput '^false$' "$@" ./disable-define-enable-string-path.nix
|
||||||
checkConfigError "The option .*enable.* does not exist. Definition values:\n\s*- In .*: true" "$@" ./disable-declare-enable.nix
|
checkConfigError "The option .*enable.* does not exist. Definition values:\n\s*- In .*: true" "$@" ./disable-declare-enable.nix
|
||||||
checkConfigError "attribute .*enable.* in selection path .*config.enable.* not found" "$@" ./disable-define-enable.nix ./disable-declare-enable.nix
|
checkConfigError "attribute .*enable.* in selection path .*config.enable.* not found" "$@" ./disable-define-enable.nix ./disable-declare-enable.nix
|
||||||
checkConfigError "attribute .*enable.* in selection path .*config.enable.* not found" "$@" ./disable-enable-modules.nix
|
checkConfigError "attribute .*enable.* in selection path .*config.enable.* not found" "$@" ./disable-enable-modules.nix
|
||||||
|
|
5
third_party/nixpkgs/lib/tests/modules/disable-define-enable-string-path.nix
vendored
Normal file
5
third_party/nixpkgs/lib/tests/modules/disable-define-enable-string-path.nix
vendored
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
disabledModules = [ (toString ./define-enable.nix) ];
|
||||||
|
}
|
2
third_party/nixpkgs/lib/tests/systems.nix
vendored
2
third_party/nixpkgs/lib/tests/systems.nix
vendored
|
@ -31,7 +31,7 @@ with lib.systems.doubles; lib.runTests {
|
||||||
testredox = mseteq redox [ "x86_64-redox" ];
|
testredox = mseteq redox [ "x86_64-redox" ];
|
||||||
testgnu = mseteq gnu (linux /* ++ kfreebsd ++ ... */);
|
testgnu = mseteq gnu (linux /* ++ kfreebsd ++ ... */);
|
||||||
testillumos = mseteq illumos [ "x86_64-solaris" ];
|
testillumos = mseteq illumos [ "x86_64-solaris" ];
|
||||||
testlinux = mseteq linux [ "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "i686-linux" "mips64el-linux" "mipsel-linux" "riscv32-linux" "riscv64-linux" "x86_64-linux" "powerpc64-linux" "powerpc64le-linux" "m68k-linux" "s390-linux" "s390x-linux" ];
|
testlinux = mseteq linux [ "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "i686-linux" "mips64el-linux" "mipsel-linux" "riscv32-linux" "riscv64-linux" "x86_64-linux" "powerpc64-linux" "powerpc64le-linux" "m68k-linux" "s390-linux" "s390x-linux" "microblaze-linux" "microblazeel-linux" ];
|
||||||
testnetbsd = mseteq netbsd [ "aarch64-netbsd" "armv6l-netbsd" "armv7a-netbsd" "armv7l-netbsd" "i686-netbsd" "m68k-netbsd" "mipsel-netbsd" "powerpc-netbsd" "riscv32-netbsd" "riscv64-netbsd" "x86_64-netbsd" ];
|
testnetbsd = mseteq netbsd [ "aarch64-netbsd" "armv6l-netbsd" "armv7a-netbsd" "armv7l-netbsd" "i686-netbsd" "m68k-netbsd" "mipsel-netbsd" "powerpc-netbsd" "riscv32-netbsd" "riscv64-netbsd" "x86_64-netbsd" ];
|
||||||
testopenbsd = mseteq openbsd [ "i686-openbsd" "x86_64-openbsd" ];
|
testopenbsd = mseteq openbsd [ "i686-openbsd" "x86_64-openbsd" ];
|
||||||
testwindows = mseteq windows [ "i686-cygwin" "x86_64-cygwin" "i686-windows" "x86_64-windows" ];
|
testwindows = mseteq windows [ "i686-cygwin" "x86_64-cygwin" "i686-windows" "x86_64-windows" ];
|
||||||
|
|
253
third_party/nixpkgs/maintainers/maintainer-list.nix
vendored
253
third_party/nixpkgs/maintainers/maintainer-list.nix
vendored
|
@ -115,6 +115,12 @@
|
||||||
githubId = 7414843;
|
githubId = 7414843;
|
||||||
name = "Nicholas von Klitzing";
|
name = "Nicholas von Klitzing";
|
||||||
};
|
};
|
||||||
|
_360ied = {
|
||||||
|
name = "Brian Zhu";
|
||||||
|
email = "therealbarryplayer@gmail.com";
|
||||||
|
github = "360ied";
|
||||||
|
githubId = 19516527;
|
||||||
|
};
|
||||||
_13r0ck = {
|
_13r0ck = {
|
||||||
name = "Brock Szuszczewicz";
|
name = "Brock Szuszczewicz";
|
||||||
email = "bnr@tuta.io";
|
email = "bnr@tuta.io";
|
||||||
|
@ -133,6 +139,16 @@
|
||||||
githubId = 1714287;
|
githubId = 1714287;
|
||||||
name = "Owen Shepherd";
|
name = "Owen Shepherd";
|
||||||
};
|
};
|
||||||
|
_4825764518 = {
|
||||||
|
email = "4825764518@purelymail.com";
|
||||||
|
matrix = "@kenzie:matrix.kenzi.dev";
|
||||||
|
github = "4825764518";
|
||||||
|
githubId = 100122841;
|
||||||
|
name = "Kenzie";
|
||||||
|
keys = [{
|
||||||
|
fingerprint = "D292 365E 3C46 A5AA 75EE B30B 78DB 7EDE 3540 794B";
|
||||||
|
}];
|
||||||
|
};
|
||||||
_6AA4FD = {
|
_6AA4FD = {
|
||||||
email = "f6442954@gmail.com";
|
email = "f6442954@gmail.com";
|
||||||
github = "6AA4FD";
|
github = "6AA4FD";
|
||||||
|
@ -309,6 +325,12 @@
|
||||||
githubId = 1174858;
|
githubId = 1174858;
|
||||||
name = "Maxwell Huang-Hobbs";
|
name = "Maxwell Huang-Hobbs";
|
||||||
};
|
};
|
||||||
|
adjacentresearch = {
|
||||||
|
email = "nate@adjacentresearch.xyz";
|
||||||
|
github = "0xperp";
|
||||||
|
githubId = 96147421;
|
||||||
|
name = "0xperp";
|
||||||
|
};
|
||||||
adnelson = {
|
adnelson = {
|
||||||
email = "ithinkican@gmail.com";
|
email = "ithinkican@gmail.com";
|
||||||
github = "adnelson";
|
github = "adnelson";
|
||||||
|
@ -478,6 +500,15 @@
|
||||||
github = "akho";
|
github = "akho";
|
||||||
githubId = 104951;
|
githubId = 104951;
|
||||||
};
|
};
|
||||||
|
akkesm = {
|
||||||
|
name = "Alessandro Barenghi";
|
||||||
|
email = "alessandro.barenghi@tuta.io";
|
||||||
|
github = "akkesm";
|
||||||
|
githubId = 56970006;
|
||||||
|
keys = [{
|
||||||
|
fingerprint = "50E2 669C AB38 2F4A 5F72 1667 0D6B FC01 D45E DADD";
|
||||||
|
}];
|
||||||
|
};
|
||||||
akru = {
|
akru = {
|
||||||
email = "mail@akru.me";
|
email = "mail@akru.me";
|
||||||
github = "akru";
|
github = "akru";
|
||||||
|
@ -810,6 +841,12 @@
|
||||||
githubId = 7112447;
|
githubId = 7112447;
|
||||||
name = "Andre S. Ramos";
|
name = "Andre S. Ramos";
|
||||||
};
|
};
|
||||||
|
andrevmatos = {
|
||||||
|
email = "andrevmatos@gmail.com";
|
||||||
|
github = "andrevmatos";
|
||||||
|
githubId = 587021;
|
||||||
|
name = "André V L Matos";
|
||||||
|
};
|
||||||
andrew-d = {
|
andrew-d = {
|
||||||
email = "andrew@du.nham.ca";
|
email = "andrew@du.nham.ca";
|
||||||
github = "andrew-d";
|
github = "andrew-d";
|
||||||
|
@ -1411,6 +1448,12 @@
|
||||||
githubId = 35324;
|
githubId = 35324;
|
||||||
name = "Badi' Abdul-Wahid";
|
name = "Badi' Abdul-Wahid";
|
||||||
};
|
};
|
||||||
|
baitinq = {
|
||||||
|
email = "manuelpalenzuelamerino@gmail.com";
|
||||||
|
name = "Baitinq";
|
||||||
|
github = "Baitinq";
|
||||||
|
githubId = 30861839;
|
||||||
|
};
|
||||||
balodja = {
|
balodja = {
|
||||||
email = "balodja@gmail.com";
|
email = "balodja@gmail.com";
|
||||||
github = "balodja";
|
github = "balodja";
|
||||||
|
@ -2028,6 +2071,12 @@
|
||||||
githubId = 1516457;
|
githubId = 1516457;
|
||||||
name = "Christian Albrecht";
|
name = "Christian Albrecht";
|
||||||
};
|
};
|
||||||
|
CactiChameleon9 = {
|
||||||
|
email = "h19xjkkp@duck.com";
|
||||||
|
github = "CactiChameleon9";
|
||||||
|
githubId = 51231053;
|
||||||
|
name = "Daniel";
|
||||||
|
};
|
||||||
callahad = {
|
callahad = {
|
||||||
email = "dan.callahan@gmail.com";
|
email = "dan.callahan@gmail.com";
|
||||||
github = "callahad";
|
github = "callahad";
|
||||||
|
@ -2598,6 +2647,12 @@
|
||||||
githubId = 244239;
|
githubId = 244239;
|
||||||
name = "Mauricio Collares";
|
name = "Mauricio Collares";
|
||||||
};
|
};
|
||||||
|
CompEng0001 = {
|
||||||
|
email = "sb1501@canterbury.ac.uk";
|
||||||
|
github = "CompEng0001";
|
||||||
|
githubId = 40290417;
|
||||||
|
name = "Seb Blair";
|
||||||
|
};
|
||||||
copumpkin = {
|
copumpkin = {
|
||||||
email = "pumpkingod@gmail.com";
|
email = "pumpkingod@gmail.com";
|
||||||
github = "copumpkin";
|
github = "copumpkin";
|
||||||
|
@ -2913,7 +2968,7 @@
|
||||||
danth = {
|
danth = {
|
||||||
name = "Daniel Thwaites";
|
name = "Daniel Thwaites";
|
||||||
email = "danthwaites30@btinternet.com";
|
email = "danthwaites30@btinternet.com";
|
||||||
matrix = "@danth:pwak.org";
|
matrix = "@danth:danth.me";
|
||||||
github = "danth";
|
github = "danth";
|
||||||
githubId = 28959268;
|
githubId = 28959268;
|
||||||
keys = [{
|
keys = [{
|
||||||
|
@ -3091,6 +3146,12 @@
|
||||||
github = "delan";
|
github = "delan";
|
||||||
githubId = 465303;
|
githubId = 465303;
|
||||||
};
|
};
|
||||||
|
delehef = {
|
||||||
|
name = "Franklin Delehelle";
|
||||||
|
email = "nix@odena.eu";
|
||||||
|
github = "delehef";
|
||||||
|
githubId = 1153808;
|
||||||
|
};
|
||||||
deliciouslytyped = {
|
deliciouslytyped = {
|
||||||
email = "47436522+deliciouslytyped@users.noreply.github.com";
|
email = "47436522+deliciouslytyped@users.noreply.github.com";
|
||||||
github = "deliciouslytyped";
|
github = "deliciouslytyped";
|
||||||
|
@ -4322,6 +4383,12 @@
|
||||||
githubId = 415760;
|
githubId = 415760;
|
||||||
name = "Jonas Höglund";
|
name = "Jonas Höglund";
|
||||||
};
|
};
|
||||||
|
firefly-cpp = {
|
||||||
|
email = "iztok@iztok-jr-fister.eu";
|
||||||
|
github = "firefly-cpp";
|
||||||
|
githubId = 1633361;
|
||||||
|
name = "Iztok Fister Jr.";
|
||||||
|
};
|
||||||
fishi0x01 = {
|
fishi0x01 = {
|
||||||
email = "fishi0x01@gmail.com";
|
email = "fishi0x01@gmail.com";
|
||||||
github = "fishi0x01";
|
github = "fishi0x01";
|
||||||
|
@ -4416,6 +4483,12 @@
|
||||||
githubId = 74379;
|
githubId = 74379;
|
||||||
name = "Florian Pester";
|
name = "Florian Pester";
|
||||||
};
|
};
|
||||||
|
fmoda3 = {
|
||||||
|
email = "fmoda3@mac.com";
|
||||||
|
github = "fmoda3";
|
||||||
|
githubId = 1746471;
|
||||||
|
name = "Frank Moda III";
|
||||||
|
};
|
||||||
fmthoma = {
|
fmthoma = {
|
||||||
email = "f.m.thoma@googlemail.com";
|
email = "f.m.thoma@googlemail.com";
|
||||||
github = "fmthoma";
|
github = "fmthoma";
|
||||||
|
@ -4851,6 +4924,15 @@
|
||||||
fingerprint = "5214 2D39 A7CE F8FA 872B CA7F DE62 E1E2 A614 5556";
|
fingerprint = "5214 2D39 A7CE F8FA 872B CA7F DE62 E1E2 A614 5556";
|
||||||
}];
|
}];
|
||||||
};
|
};
|
||||||
|
gp2112 = {
|
||||||
|
email = "me@guip.dev";
|
||||||
|
github = "gp2112";
|
||||||
|
githubId = 26512375;
|
||||||
|
name = "Guilherme Paixão";
|
||||||
|
keys = [{
|
||||||
|
fingerprint = "4382 7E28 86E5 C34F 38D5 7753 8C81 4D62 5FBD 99D1";
|
||||||
|
}];
|
||||||
|
};
|
||||||
gpanders = {
|
gpanders = {
|
||||||
name = "Gregory Anders";
|
name = "Gregory Anders";
|
||||||
email = "greg@gpanders.com";
|
email = "greg@gpanders.com";
|
||||||
|
@ -4860,6 +4942,12 @@
|
||||||
fingerprint = "B9D5 0EDF E95E ECD0 C135 00A9 56E9 3C2F B6B0 8BDB";
|
fingerprint = "B9D5 0EDF E95E ECD0 C135 00A9 56E9 3C2F B6B0 8BDB";
|
||||||
}];
|
}];
|
||||||
};
|
};
|
||||||
|
gpl = {
|
||||||
|
email = "nixos-6c64ce18-bbbc-414f-8dcb-f9b6b47fe2bc@isopleth.org";
|
||||||
|
github = "gpl";
|
||||||
|
githubId = 39648069;
|
||||||
|
name = "isogram";
|
||||||
|
};
|
||||||
gpyh = {
|
gpyh = {
|
||||||
email = "yacine.hmito@gmail.com";
|
email = "yacine.hmito@gmail.com";
|
||||||
github = "yacinehmito";
|
github = "yacinehmito";
|
||||||
|
@ -5490,6 +5578,12 @@
|
||||||
githubId = 1550265;
|
githubId = 1550265;
|
||||||
name = "Dominic Steinitz";
|
name = "Dominic Steinitz";
|
||||||
};
|
};
|
||||||
|
ifurther = {
|
||||||
|
email = "55025025+ifurther@users.noreply.github.com";
|
||||||
|
github = "ifurther";
|
||||||
|
githubId = 55025025;
|
||||||
|
name = "Feather Lin";
|
||||||
|
};
|
||||||
igsha = {
|
igsha = {
|
||||||
email = "igor.sharonov@gmail.com";
|
email = "igor.sharonov@gmail.com";
|
||||||
github = "igsha";
|
github = "igsha";
|
||||||
|
@ -5601,6 +5695,16 @@
|
||||||
githubId = 510202;
|
githubId = 510202;
|
||||||
name = "Ismaël Bouya";
|
name = "Ismaël Bouya";
|
||||||
};
|
};
|
||||||
|
impl = {
|
||||||
|
email = "noah@noahfontes.com";
|
||||||
|
matrix = "@impl:matrix.org";
|
||||||
|
github = "impl";
|
||||||
|
githubId = 41129;
|
||||||
|
name = "Noah Fontes";
|
||||||
|
keys = [{
|
||||||
|
fingerprint = "F5B2 BE1B 9AAD 98FE 2916 5597 3665 FFF7 9D38 7BAA";
|
||||||
|
}];
|
||||||
|
};
|
||||||
imsofi = {
|
imsofi = {
|
||||||
email = "sofi+git@mailbox.org";
|
email = "sofi+git@mailbox.org";
|
||||||
github = "imsofi";
|
github = "imsofi";
|
||||||
|
@ -5769,6 +5873,16 @@
|
||||||
github = "jacg";
|
github = "jacg";
|
||||||
githubId = 2570854;
|
githubId = 2570854;
|
||||||
};
|
};
|
||||||
|
jakehamilton = {
|
||||||
|
name = "Jake Hamilton";
|
||||||
|
email = "jake.hamilton@hey.com";
|
||||||
|
matrix = "@jakehamilton:matrix.org";
|
||||||
|
github = "jakehamilton";
|
||||||
|
githubId = 7005773;
|
||||||
|
keys = [{
|
||||||
|
fingerprint = "B982 0250 1720 D540 6A18 2DA8 188E 4945 E85B 2D21";
|
||||||
|
}];
|
||||||
|
};
|
||||||
jasoncarr = {
|
jasoncarr = {
|
||||||
email = "jcarr250@gmail.com";
|
email = "jcarr250@gmail.com";
|
||||||
github = "jasoncarr0";
|
github = "jasoncarr0";
|
||||||
|
@ -6456,6 +6570,12 @@
|
||||||
githubId = 752510;
|
githubId = 752510;
|
||||||
name = "Martin Potier";
|
name = "Martin Potier";
|
||||||
};
|
};
|
||||||
|
jqqqqqqqqqq = {
|
||||||
|
email = "jqqqqqqqqqq@gmail.com";
|
||||||
|
github = "jqqqqqqqqqq";
|
||||||
|
githubId = 12872927;
|
||||||
|
name = "Curtis Jiang";
|
||||||
|
};
|
||||||
jqueiroz = {
|
jqueiroz = {
|
||||||
email = "nixos@johnjq.com";
|
email = "nixos@johnjq.com";
|
||||||
github = "jqueiroz";
|
github = "jqueiroz";
|
||||||
|
@ -6528,6 +6648,12 @@
|
||||||
githubId = 705123;
|
githubId = 705123;
|
||||||
name = "Jan Tojnar";
|
name = "Jan Tojnar";
|
||||||
};
|
};
|
||||||
|
jtrees = {
|
||||||
|
email = "me@jtrees.io";
|
||||||
|
github = "jtrees";
|
||||||
|
githubId = 5802758;
|
||||||
|
name = "Joshua Trees";
|
||||||
|
};
|
||||||
juaningan = {
|
juaningan = {
|
||||||
email = "juaningan@gmail.com";
|
email = "juaningan@gmail.com";
|
||||||
github = "uningan";
|
github = "uningan";
|
||||||
|
@ -6979,12 +7105,6 @@
|
||||||
fingerprint = "8992 44FC D291 5CA2 0A97 802C 156C 88A5 B0A0 4B2A";
|
fingerprint = "8992 44FC D291 5CA2 0A97 802C 156C 88A5 B0A0 4B2A";
|
||||||
}];
|
}];
|
||||||
};
|
};
|
||||||
kiyengar = {
|
|
||||||
email = "hello@kiyengar.net";
|
|
||||||
github = "karthikiyengar";
|
|
||||||
githubId = 8260207;
|
|
||||||
name = "Karthik Iyengar";
|
|
||||||
};
|
|
||||||
kjeremy = {
|
kjeremy = {
|
||||||
email = "kjeremy@gmail.com";
|
email = "kjeremy@gmail.com";
|
||||||
name = "Jeremy Kolb";
|
name = "Jeremy Kolb";
|
||||||
|
@ -8034,11 +8154,11 @@
|
||||||
name = "Michael Fellinger";
|
name = "Michael Fellinger";
|
||||||
};
|
};
|
||||||
maralorn = {
|
maralorn = {
|
||||||
email = "malte.brandy@maralorn.de";
|
email = "mail@maralorn.de";
|
||||||
matrix = "@maralorn:maralorn.de";
|
matrix = "@maralorn:maralorn.de";
|
||||||
github = "maralorn";
|
github = "maralorn";
|
||||||
githubId = 1651325;
|
githubId = 1651325;
|
||||||
name = "Malte Brandy";
|
name = "maralorn";
|
||||||
};
|
};
|
||||||
marcweber = {
|
marcweber = {
|
||||||
email = "marco-oweber@gmx.de";
|
email = "marco-oweber@gmx.de";
|
||||||
|
@ -8587,6 +8707,12 @@
|
||||||
fingerprint = "FEF0 AE2D 5449 3482 5F06 40AA 186A 1EDA C5C6 3F83";
|
fingerprint = "FEF0 AE2D 5449 3482 5F06 40AA 186A 1EDA C5C6 3F83";
|
||||||
}];
|
}];
|
||||||
};
|
};
|
||||||
|
mightyiam = {
|
||||||
|
email = "mightyiampresence@gmail.com";
|
||||||
|
github = "mightyiam";
|
||||||
|
githubId = 635591;
|
||||||
|
name = "Shahar Dawn Or";
|
||||||
|
};
|
||||||
mihnea-s = {
|
mihnea-s = {
|
||||||
email = "mihn.stn@gmail.com";
|
email = "mihn.stn@gmail.com";
|
||||||
github = "mihnea-s";
|
github = "mihnea-s";
|
||||||
|
@ -8935,7 +9061,7 @@
|
||||||
name = "Millian Poquet";
|
name = "Millian Poquet";
|
||||||
};
|
};
|
||||||
mpscholten = {
|
mpscholten = {
|
||||||
email = "marc@mpscholten.de";
|
email = "marc@digitallyinduced.com";
|
||||||
github = "mpscholten";
|
github = "mpscholten";
|
||||||
githubId = 2072185;
|
githubId = 2072185;
|
||||||
name = "Marc Scholten";
|
name = "Marc Scholten";
|
||||||
|
@ -9646,6 +9772,12 @@
|
||||||
github = "numkem";
|
github = "numkem";
|
||||||
githubId = 332423;
|
githubId = 332423;
|
||||||
};
|
};
|
||||||
|
nviets = {
|
||||||
|
email = "nathan.g.viets@gmail.com";
|
||||||
|
github = "nviets";
|
||||||
|
githubId = 16027994;
|
||||||
|
name = "Nathan Viets";
|
||||||
|
};
|
||||||
nyanloutre = {
|
nyanloutre = {
|
||||||
email = "paul@nyanlout.re";
|
email = "paul@nyanlout.re";
|
||||||
github = "nyanloutre";
|
github = "nyanloutre";
|
||||||
|
@ -9686,6 +9818,12 @@
|
||||||
githubId = 3359345;
|
githubId = 3359345;
|
||||||
name = "obadz";
|
name = "obadz";
|
||||||
};
|
};
|
||||||
|
oberblastmeister = {
|
||||||
|
email = "littlebubu.shu@gmail.com";
|
||||||
|
github = "oberblastmeister";
|
||||||
|
githubId = 61095988;
|
||||||
|
name = "Brian Shu";
|
||||||
|
};
|
||||||
obsidian-systems-maintenance = {
|
obsidian-systems-maintenance = {
|
||||||
name = "Obsidian Systems Maintenance";
|
name = "Obsidian Systems Maintenance";
|
||||||
email = "maintainer@obsidian.systems";
|
email = "maintainer@obsidian.systems";
|
||||||
|
@ -10171,6 +10309,15 @@
|
||||||
githubId = 29493551;
|
githubId = 29493551;
|
||||||
name = "Josh Peters";
|
name = "Josh Peters";
|
||||||
};
|
};
|
||||||
|
peterwilli = {
|
||||||
|
email = "peter@codebuffet.co";
|
||||||
|
github = "peterwilli";
|
||||||
|
githubId = 1212814;
|
||||||
|
name = "Peter Willemsen";
|
||||||
|
keys = [{
|
||||||
|
fingerprint = "A37F D403 88E2 D026 B9F6 9617 5C9D D4BF B96A 28F0";
|
||||||
|
}];
|
||||||
|
};
|
||||||
peti = {
|
peti = {
|
||||||
email = "simons@cryp.to";
|
email = "simons@cryp.to";
|
||||||
github = "peti";
|
github = "peti";
|
||||||
|
@ -10942,6 +11089,12 @@
|
||||||
githubId = 7226587;
|
githubId = 7226587;
|
||||||
name = "Théophane Hufschmitt";
|
name = "Théophane Hufschmitt";
|
||||||
};
|
};
|
||||||
|
rehno-lindeque = {
|
||||||
|
email = "rehno.lindeque+code@gmail.com";
|
||||||
|
github = "rehno-lindeque";
|
||||||
|
githubId = 337811;
|
||||||
|
name = "Rehno Lindeque";
|
||||||
|
};
|
||||||
relrod = {
|
relrod = {
|
||||||
email = "ricky@elrod.me";
|
email = "ricky@elrod.me";
|
||||||
github = "relrod";
|
github = "relrod";
|
||||||
|
@ -11518,6 +11671,12 @@
|
||||||
fingerprint = "AE8C 0836 FDF6 3FFC 9580 C588 B156 8953 B193 9F1C";
|
fingerprint = "AE8C 0836 FDF6 3FFC 9580 C588 B156 8953 B193 9F1C";
|
||||||
}];
|
}];
|
||||||
};
|
};
|
||||||
|
samlukeyes123 = {
|
||||||
|
email = "samlukeyes123@gmail.com";
|
||||||
|
github = "SamLukeYes";
|
||||||
|
githubId = 12882091;
|
||||||
|
name = "Sam L. Yes";
|
||||||
|
};
|
||||||
samrose = {
|
samrose = {
|
||||||
email = "samuel.rose@gmail.com";
|
email = "samuel.rose@gmail.com";
|
||||||
github = "samrose";
|
github = "samrose";
|
||||||
|
@ -11636,6 +11795,12 @@
|
||||||
githubId = 3958212;
|
githubId = 3958212;
|
||||||
name = "Tom Sorlie";
|
name = "Tom Sorlie";
|
||||||
};
|
};
|
||||||
|
sioodmy = {
|
||||||
|
name = "Antoni Sokołowski";
|
||||||
|
email = "81568712+sioodmy@users.noreply.github.com";
|
||||||
|
github = "sioodmy";
|
||||||
|
githubId = 81568712;
|
||||||
|
};
|
||||||
schmitthenner = {
|
schmitthenner = {
|
||||||
email = "development@schmitthenner.eu";
|
email = "development@schmitthenner.eu";
|
||||||
github = "fkz";
|
github = "fkz";
|
||||||
|
@ -13049,6 +13214,12 @@
|
||||||
githubId = 3268082;
|
githubId = 3268082;
|
||||||
name = "Thibaut Marty";
|
name = "Thibaut Marty";
|
||||||
};
|
};
|
||||||
|
thyol = {
|
||||||
|
name = "thyol";
|
||||||
|
email = "thyol@pm.me";
|
||||||
|
github = "thyol";
|
||||||
|
githubId = 81481634;
|
||||||
|
};
|
||||||
thmzlt = {
|
thmzlt = {
|
||||||
email = "git@thomazleite.com";
|
email = "git@thomazleite.com";
|
||||||
github = "thmzlt";
|
github = "thmzlt";
|
||||||
|
@ -13500,6 +13671,15 @@
|
||||||
fingerprint = "EE59 5E29 BB5B F2B3 5ED2 3F1C D276 FF74 6700 7335";
|
fingerprint = "EE59 5E29 BB5B F2B3 5ED2 3F1C D276 FF74 6700 7335";
|
||||||
}];
|
}];
|
||||||
};
|
};
|
||||||
|
unhammer = {
|
||||||
|
email = "unhammer@fsfe.org";
|
||||||
|
github = "unhammer";
|
||||||
|
githubId = 56868;
|
||||||
|
name = "Kevin Brubeck Unhammer";
|
||||||
|
keys = [{
|
||||||
|
fingerprint = "50D4 8796 0B86 3F05 4B6A 12F9 7426 06DE 766A C60C";
|
||||||
|
}];
|
||||||
|
};
|
||||||
uniquepointer = {
|
uniquepointer = {
|
||||||
email = "uniquepointer@mailbox.org";
|
email = "uniquepointer@mailbox.org";
|
||||||
matrix = "@uniquepointer:matrix.org";
|
matrix = "@uniquepointer:matrix.org";
|
||||||
|
@ -13704,6 +13884,15 @@
|
||||||
githubId = 245573;
|
githubId = 245573;
|
||||||
name = "Dmitry Kalinkin";
|
name = "Dmitry Kalinkin";
|
||||||
};
|
};
|
||||||
|
victormignot = {
|
||||||
|
email = "victor.mignot@protonmail.com";
|
||||||
|
github = "victormignot";
|
||||||
|
githubId = 58660971;
|
||||||
|
name = "Victor Mignot";
|
||||||
|
keys = [{
|
||||||
|
fingerprint = "CA5D F91A D672 683A 1F65 BBC9 0317 096D 20E0 067B";
|
||||||
|
}];
|
||||||
|
};
|
||||||
vidbina = {
|
vidbina = {
|
||||||
email = "vid@bina.me";
|
email = "vid@bina.me";
|
||||||
github = "vidbina";
|
github = "vidbina";
|
||||||
|
@ -13964,6 +14153,15 @@
|
||||||
github = "wentasah";
|
github = "wentasah";
|
||||||
githubId = 140542;
|
githubId = 140542;
|
||||||
};
|
};
|
||||||
|
wesnel = {
|
||||||
|
name = "Wesley Nelson";
|
||||||
|
email = "wgn@wesnel.dev";
|
||||||
|
github = "wesnel";
|
||||||
|
githubId = 43357387;
|
||||||
|
keys = [{
|
||||||
|
fingerprint = "F844 80B2 0CA9 D6CC C7F5 2479 A776 D2AD 099E 8BC0";
|
||||||
|
}];
|
||||||
|
};
|
||||||
wheelsandmetal = {
|
wheelsandmetal = {
|
||||||
email = "jakob@schmutz.co.uk";
|
email = "jakob@schmutz.co.uk";
|
||||||
github = "wheelsandmetal";
|
github = "wheelsandmetal";
|
||||||
|
@ -15051,4 +15249,39 @@
|
||||||
github = "yisuidenghua";
|
github = "yisuidenghua";
|
||||||
githubId = 102890144;
|
githubId = 102890144;
|
||||||
};
|
};
|
||||||
|
macalinao = {
|
||||||
|
email = "me@ianm.com";
|
||||||
|
name = "Ian Macalinao";
|
||||||
|
github = "macalinao";
|
||||||
|
githubId = 401263;
|
||||||
|
keys = [{
|
||||||
|
fingerprint = "1147 43F1 E707 6F3E 6F4B 2C96 B9A8 B592 F126 F8E8";
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
tjni = {
|
||||||
|
email = "43ngvg@masqt.com";
|
||||||
|
matrix = "@tni:matrix.org";
|
||||||
|
name = "Theodore Ni";
|
||||||
|
github = "tjni";
|
||||||
|
githubId = 3806110;
|
||||||
|
keys = [{
|
||||||
|
fingerprint = "4384 B8E1 299F C028 1641 7B8F EC30 EFBE FA7E 84A4";
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
cafkafk = {
|
||||||
|
email = "cafkafk@cafkafk.com";
|
||||||
|
matrix = "@cafkafk:matrix.cafkafk.com";
|
||||||
|
name = "Christina Sørensen";
|
||||||
|
github = "cafkafk";
|
||||||
|
githubId = 89321978;
|
||||||
|
keys = [{
|
||||||
|
fingerprint = "7B9E E848 D074 AE03 7A0C 651A 8ED4 DEF7 375A 30C8";
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
rb = {
|
||||||
|
email = "maintainers@cloudposse.com";
|
||||||
|
github = "nitrocode";
|
||||||
|
githubId = 7775707;
|
||||||
|
name = "RB";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
10
third_party/nixpkgs/maintainers/team-list.nix
vendored
10
third_party/nixpkgs/maintainers/team-list.nix
vendored
|
@ -74,6 +74,15 @@ with lib.maintainers; {
|
||||||
enableFeatureFreezePing = true;
|
enableFeatureFreezePing = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bitnomial = {
|
||||||
|
# Verify additions to this team with at least one already existing member of the team.
|
||||||
|
members = [
|
||||||
|
cdepillabout
|
||||||
|
];
|
||||||
|
scope = "Group registration for packages maintained by Bitnomial.";
|
||||||
|
shortName = "Bitnomial employees";
|
||||||
|
};
|
||||||
|
|
||||||
blockchains = {
|
blockchains = {
|
||||||
members = [
|
members = [
|
||||||
mmahut
|
mmahut
|
||||||
|
@ -107,6 +116,7 @@ with lib.maintainers; {
|
||||||
|
|
||||||
cinnamon = {
|
cinnamon = {
|
||||||
members = [
|
members = [
|
||||||
|
bobby285271
|
||||||
mkg20001
|
mkg20001
|
||||||
];
|
];
|
||||||
scope = "Maintain Cinnamon desktop environment and applications made by the LinuxMint team.";
|
scope = "Maintain Cinnamon desktop environment and applications made by the LinuxMint team.";
|
||||||
|
|
|
@ -120,7 +120,6 @@ to set one. The recommended configuration for modern systems is:
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
services.xserver.videoDrivers = [ "modesetting" ];
|
services.xserver.videoDrivers = [ "modesetting" ];
|
||||||
services.xserver.useGlamor = true;
|
|
||||||
```
|
```
|
||||||
|
|
||||||
If you experience screen tearing no matter what, this configuration was
|
If you experience screen tearing no matter what, this configuration was
|
||||||
|
|
|
@ -133,7 +133,6 @@ services.xserver.displayManager.autoLogin.user = "alice";
|
||||||
</para>
|
</para>
|
||||||
<programlisting language="bash">
|
<programlisting language="bash">
|
||||||
services.xserver.videoDrivers = [ "modesetting" ];
|
services.xserver.videoDrivers = [ "modesetting" ];
|
||||||
services.xserver.useGlamor = true;
|
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
If you experience screen tearing no matter what, this
|
If you experience screen tearing no matter what, this
|
||||||
|
|
|
@ -183,6 +183,14 @@
|
||||||
<link xlink:href="options.html#opt-services.hadoop.hbase.enable">services.hadoop.hbase</link>.
|
<link xlink:href="options.html#opt-services.hadoop.hbase.enable">services.hadoop.hbase</link>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<link xlink:href="https://github.com/messagebird/sachet/">Sachet</link>,
|
||||||
|
an SMS alerting tool for the Prometheus Alertmanager.
|
||||||
|
Available as
|
||||||
|
<link linkend="opt-services.prometheus.sachet.enable">services.prometheus.sachet</link>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<link xlink:href="https://github.com/leetronics/infnoise">infnoise</link>,
|
<link xlink:href="https://github.com/leetronics/infnoise">infnoise</link>,
|
||||||
|
@ -198,6 +206,27 @@
|
||||||
<link xlink:href="options.html#opt-services.kanata.enable">services.kanata</link>.
|
<link xlink:href="options.html#opt-services.kanata.enable">services.kanata</link>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<link xlink:href="https://languagetool.org/">languagetool</link>,
|
||||||
|
a multilingual grammar, style, and spell checker. Available as
|
||||||
|
<link xlink:href="options.html#opt-services.languagetool.enable">services.languagetool</link>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<link xlink:href="https://www.getoutline.com/">Outline</link>,
|
||||||
|
a wiki and knowledge base similar to Notion. Available as
|
||||||
|
<link linkend="opt-services.outline.enable">services.outline</link>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<link xlink:href="https://netbird.io">netbird</link>, a zero
|
||||||
|
configuration VPN. Available as
|
||||||
|
<link xlink:href="options.html#opt-services.netbird.enable">services.netbird</link>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<link xlink:href="https://github.com/aiberia/persistent-evdev">persistent-evdev</link>,
|
<link xlink:href="https://github.com/aiberia/persistent-evdev">persistent-evdev</link>,
|
||||||
|
@ -214,6 +243,14 @@
|
||||||
<link linkend="opt-services.schleuder.enable">services.schleuder</link>.
|
<link linkend="opt-services.schleuder.enable">services.schleuder</link>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<link xlink:href="https://www.dolibarr.org/">Dolibarr</link>,
|
||||||
|
an enterprise resource planning and customer relationship
|
||||||
|
manager. Enable using
|
||||||
|
<link linkend="opt-services.dolibarr.enable">services.dolibarr</link>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<link xlink:href="https://www.expressvpn.com">expressvpn</link>,
|
<link xlink:href="https://www.expressvpn.com">expressvpn</link>,
|
||||||
|
@ -236,11 +273,32 @@
|
||||||
<link xlink:href="options.html#opt-services.patroni.enable">services.patroni</link>.
|
<link xlink:href="options.html#opt-services.patroni.enable">services.patroni</link>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<link xlink:href="https://github.com/prometheus-community/ipmi_exporter">Prometheus
|
||||||
|
IPMI exporter</link>, an IPMI exporter for Prometheus.
|
||||||
|
Available as
|
||||||
|
<link linkend="opt-services.prometheus.exporters.ipmi.enable">services.prometheus.exporters.ipmi</link>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<link xlink:href="https://writefreely.org">WriteFreely</link>,
|
||||||
|
a simple blogging platform with ActivityPub support. Available
|
||||||
|
as
|
||||||
|
<link xlink:href="options.html#opt-services.writefreely.enable">services.writefreely</link>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="sec-release-22.11-incompatibilities">
|
<section xml:id="sec-release-22.11-incompatibilities">
|
||||||
<title>Backward Incompatibilities</title>
|
<title>Backward Incompatibilities</title>
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Nixpkgs now requires Nix 2.3 or newer.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
The <literal>isCompatible</literal> predicate checking CPU
|
The <literal>isCompatible</literal> predicate checking CPU
|
||||||
|
@ -337,6 +395,17 @@
|
||||||
instead.
|
instead.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
The <literal>coq</literal> package and versioned variants
|
||||||
|
starting at <literal>coq_8_14</literal> no longer include
|
||||||
|
CoqIDE, which is now available through
|
||||||
|
<literal>coqPackages.coqide</literal>. It is still possible to
|
||||||
|
get CoqIDE as part of the <literal>coq</literal> package by
|
||||||
|
overriding the <literal>buildIde</literal> argument of the
|
||||||
|
derivation.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
PHP 7.4 is no longer supported due to upstream not supporting
|
PHP 7.4 is no longer supported due to upstream not supporting
|
||||||
|
@ -349,6 +418,14 @@
|
||||||
<literal>cosigned</literal> binary anymore.
|
<literal>cosigned</literal> binary anymore.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Emacs now uses the Lucid toolkit by default instead of GTK
|
||||||
|
because of stability and compatibility issues. Users who still
|
||||||
|
wish to remain using GTK can do so by using
|
||||||
|
<literal>emacs-gtk</literal>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
riak package removed along with
|
riak package removed along with
|
||||||
|
@ -387,6 +464,13 @@
|
||||||
<literal>"wine64"</literal>.
|
<literal>"wine64"</literal>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
The <literal>paperless</literal> module now defaults
|
||||||
|
<literal>PAPERLESS_TIME_ZONE</literal> to your configured
|
||||||
|
system timezone.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
(Neo)Vim can not be configured with
|
(Neo)Vim can not be configured with
|
||||||
|
@ -401,6 +485,12 @@
|
||||||
due to upstream dropping support.
|
due to upstream dropping support.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<literal>k3s</literal> supports <literal>clusterInit</literal>
|
||||||
|
option, and it is enabled by default, for servers.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="sec-release-22.11-notable-changes">
|
<section xml:id="sec-release-22.11-notable-changes">
|
||||||
|
@ -446,6 +536,12 @@
|
||||||
guide</link> on how to migrate your Neo4j instance.
|
guide</link> on how to migrate your Neo4j instance.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
The <literal>services.matrix-synapse</literal> systemd unit
|
||||||
|
has been hardened.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Matrix Synapse now requires entries in the
|
Matrix Synapse now requires entries in the
|
||||||
|
@ -457,6 +553,14 @@
|
||||||
and require manual remediation.
|
and require manual remediation.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
The <literal>diamond</literal> package has been update from
|
||||||
|
0.8.36 to 2.0.15. See the
|
||||||
|
<link xlink:href="https://github.com/bbuchfink/diamond/releases">upstream
|
||||||
|
release notes</link> for more details.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<literal>dockerTools.buildImage</literal> deprecates the
|
<literal>dockerTools.buildImage</literal> deprecates the
|
||||||
|
|
|
@ -68,16 +68,28 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||||
|
|
||||||
- [HBase cluster](https://hbase.apache.org/), a distributed, scalable, big data store. Available as [services.hadoop.hbase](options.html#opt-services.hadoop.hbase.enable).
|
- [HBase cluster](https://hbase.apache.org/), a distributed, scalable, big data store. Available as [services.hadoop.hbase](options.html#opt-services.hadoop.hbase.enable).
|
||||||
|
|
||||||
|
- [Sachet](https://github.com/messagebird/sachet/), an SMS alerting tool for the Prometheus Alertmanager. Available as [services.prometheus.sachet](#opt-services.prometheus.sachet.enable).
|
||||||
|
|
||||||
- [infnoise](https://github.com/leetronics/infnoise), a hardware True Random Number Generator dongle.
|
- [infnoise](https://github.com/leetronics/infnoise), a hardware True Random Number Generator dongle.
|
||||||
Available as [services.infnoise](options.html#opt-services.infnoise.enable).
|
Available as [services.infnoise](options.html#opt-services.infnoise.enable).
|
||||||
|
|
||||||
- [kanata](https://github.com/jtroo/kanata), a tool to improve keyboard comfort and usability with advanced customization.
|
- [kanata](https://github.com/jtroo/kanata), a tool to improve keyboard comfort and usability with advanced customization.
|
||||||
Available as [services.kanata](options.html#opt-services.kanata.enable).
|
Available as [services.kanata](options.html#opt-services.kanata.enable).
|
||||||
|
|
||||||
|
- [languagetool](https://languagetool.org/), a multilingual grammar, style, and spell checker.
|
||||||
|
Available as [services.languagetool](options.html#opt-services.languagetool.enable).
|
||||||
|
|
||||||
|
- [Outline](https://www.getoutline.com/), a wiki and knowledge base similar to Notion. Available as [services.outline](#opt-services.outline.enable).
|
||||||
|
|
||||||
|
- [netbird](https://netbird.io), a zero configuration VPN.
|
||||||
|
Available as [services.netbird](options.html#opt-services.netbird.enable).
|
||||||
|
|
||||||
- [persistent-evdev](https://github.com/aiberia/persistent-evdev), a daemon to add virtual proxy devices that mirror a physical input device but persist even if the underlying hardware is hot-plugged. Available as [services.persistent-evdev](#opt-services.persistent-evdev.enable).
|
- [persistent-evdev](https://github.com/aiberia/persistent-evdev), a daemon to add virtual proxy devices that mirror a physical input device but persist even if the underlying hardware is hot-plugged. Available as [services.persistent-evdev](#opt-services.persistent-evdev.enable).
|
||||||
|
|
||||||
- [schleuder](https://schleuder.org/), a mailing list manager with PGP support. Enable using [services.schleuder](#opt-services.schleuder.enable).
|
- [schleuder](https://schleuder.org/), a mailing list manager with PGP support. Enable using [services.schleuder](#opt-services.schleuder.enable).
|
||||||
|
|
||||||
|
- [Dolibarr](https://www.dolibarr.org/), an enterprise resource planning and customer relationship manager. Enable using [services.dolibarr](#opt-services.dolibarr.enable).
|
||||||
|
|
||||||
- [expressvpn](https://www.expressvpn.com), the CLI client for ExpressVPN. Available as [services.expressvpn](#opt-services.expressvpn.enable).
|
- [expressvpn](https://www.expressvpn.com), the CLI client for ExpressVPN. Available as [services.expressvpn](#opt-services.expressvpn.enable).
|
||||||
|
|
||||||
- [Grafana Tempo](https://www.grafana.com/oss/tempo/), a distributed tracing store. Available as [services.tempo](#opt-services.tempo.enable).
|
- [Grafana Tempo](https://www.grafana.com/oss/tempo/), a distributed tracing store. Available as [services.tempo](#opt-services.tempo.enable).
|
||||||
|
@ -85,10 +97,16 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||||
- [Patroni](https://github.com/zalando/patroni), a template for PostgreSQL HA with ZooKeeper, etcd or Consul.
|
- [Patroni](https://github.com/zalando/patroni), a template for PostgreSQL HA with ZooKeeper, etcd or Consul.
|
||||||
Available as [services.patroni](options.html#opt-services.patroni.enable).
|
Available as [services.patroni](options.html#opt-services.patroni.enable).
|
||||||
|
|
||||||
|
- [Prometheus IPMI exporter](https://github.com/prometheus-community/ipmi_exporter), an IPMI exporter for Prometheus. Available as [services.prometheus.exporters.ipmi](#opt-services.prometheus.exporters.ipmi.enable).
|
||||||
|
|
||||||
|
- [WriteFreely](https://writefreely.org), a simple blogging platform with ActivityPub support. Available as [services.writefreely](options.html#opt-services.writefreely.enable).
|
||||||
|
|
||||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||||
|
|
||||||
## Backward Incompatibilities {#sec-release-22.11-incompatibilities}
|
## Backward Incompatibilities {#sec-release-22.11-incompatibilities}
|
||||||
|
|
||||||
|
- Nixpkgs now requires Nix 2.3 or newer.
|
||||||
|
|
||||||
- The `isCompatible` predicate checking CPU compatibility is no longer exposed
|
- The `isCompatible` predicate checking CPU compatibility is no longer exposed
|
||||||
by the platform sets generated using `lib.systems.elaborate`. In most cases
|
by the platform sets generated using `lib.systems.elaborate`. In most cases
|
||||||
you will want to use the new `canExecute` predicate instead which also
|
you will want to use the new `canExecute` predicate instead which also
|
||||||
|
@ -118,11 +136,20 @@ Available as [services.patroni](options.html#opt-services.patroni.enable).
|
||||||
- `services.hbase` has been renamed to `services.hbase-standalone`.
|
- `services.hbase` has been renamed to `services.hbase-standalone`.
|
||||||
For production HBase clusters, use `services.hadoop.hbase` instead.
|
For production HBase clusters, use `services.hadoop.hbase` instead.
|
||||||
|
|
||||||
|
- The `coq` package and versioned variants starting at `coq_8_14` no
|
||||||
|
longer include CoqIDE, which is now available through
|
||||||
|
`coqPackages.coqide`. It is still possible to get CoqIDE as part of
|
||||||
|
the `coq` package by overriding the `buildIde` argument of the
|
||||||
|
derivation.
|
||||||
|
|
||||||
- PHP 7.4 is no longer supported due to upstream not supporting this
|
- PHP 7.4 is no longer supported due to upstream not supporting this
|
||||||
version for the entire lifecycle of the 22.11 release.
|
version for the entire lifecycle of the 22.11 release.
|
||||||
|
|
||||||
- `pkgs.cosign` does not provide the `cosigned` binary anymore.
|
- `pkgs.cosign` does not provide the `cosigned` binary anymore.
|
||||||
|
|
||||||
|
- Emacs now uses the Lucid toolkit by default instead of GTK because of stability and compatibility issues.
|
||||||
|
Users who still wish to remain using GTK can do so by using `emacs-gtk`.
|
||||||
|
|
||||||
- riak package removed along with `services.riak` module, due to lack of maintainer to update the package.
|
- riak package removed along with `services.riak` module, due to lack of maintainer to update the package.
|
||||||
|
|
||||||
- xow package removed along with the `hardware.xow` module, due to the project being deprecated in favor of `xone`, which is available via the `hardware.xone` module.
|
- xow package removed along with the `hardware.xow` module, due to the project being deprecated in favor of `xone`, which is available via the `hardware.xone` module.
|
||||||
|
@ -136,11 +163,15 @@ Available as [services.patroni](options.html#opt-services.patroni.enable).
|
||||||
|
|
||||||
- The `meta.mainProgram` attribute of packages in `wineWowPackages` now defaults to `"wine64"`.
|
- The `meta.mainProgram` attribute of packages in `wineWowPackages` now defaults to `"wine64"`.
|
||||||
|
|
||||||
|
- The `paperless` module now defaults `PAPERLESS_TIME_ZONE` to your configured system timezone.
|
||||||
|
|
||||||
- (Neo)Vim can not be configured with `configure.pathogen` anymore to reduce maintainance burden.
|
- (Neo)Vim can not be configured with `configure.pathogen` anymore to reduce maintainance burden.
|
||||||
Use `configure.packages` instead.
|
Use `configure.packages` instead.
|
||||||
|
|
||||||
- `k3s` no longer supports docker as runtime due to upstream dropping support.
|
- `k3s` no longer supports docker as runtime due to upstream dropping support.
|
||||||
|
|
||||||
|
- `k3s` supports `clusterInit` option, and it is enabled by default, for servers.
|
||||||
|
|
||||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||||
|
|
||||||
## Other Notable Changes {#sec-release-22.11-notable-changes}
|
## Other Notable Changes {#sec-release-22.11-notable-changes}
|
||||||
|
@ -155,8 +186,12 @@ Use `configure.packages` instead.
|
||||||
|
|
||||||
- Neo4j was updated from version 3 to version 4. See this [migration guide](https://neo4j.com/docs/upgrade-migration-guide/current/) on how to migrate your Neo4j instance.
|
- Neo4j was updated from version 3 to version 4. See this [migration guide](https://neo4j.com/docs/upgrade-migration-guide/current/) on how to migrate your Neo4j instance.
|
||||||
|
|
||||||
|
- The `services.matrix-synapse` systemd unit has been hardened.
|
||||||
|
|
||||||
- Matrix Synapse now requires entries in the `state_group_edges` table to be unique, in order to prevent accidentally introducing duplicate information (for example, because a database backup was restored multiple times). If your Synapse database already has duplicate rows in this table, this could fail with an error and require manual remediation.
|
- Matrix Synapse now requires entries in the `state_group_edges` table to be unique, in order to prevent accidentally introducing duplicate information (for example, because a database backup was restored multiple times). If your Synapse database already has duplicate rows in this table, this could fail with an error and require manual remediation.
|
||||||
|
|
||||||
|
- The `diamond` package has been update from 0.8.36 to 2.0.15. See the [upstream release notes](https://github.com/bbuchfink/diamond/releases) for more details.
|
||||||
|
|
||||||
- `dockerTools.buildImage` deprecates the misunderstood `contents` parameter, in favor of `copyToRoot`.
|
- `dockerTools.buildImage` deprecates the misunderstood `contents` parameter, in favor of `copyToRoot`.
|
||||||
Use `copyToRoot = buildEnv { ... };` or similar if you intend to add packages to `/bin`.
|
Use `copyToRoot = buildEnv { ... };` or similar if you intend to add packages to `/bin`.
|
||||||
|
|
||||||
|
|
|
@ -114,6 +114,10 @@ class Renderer(mistune.renderers.BaseRenderer):
|
||||||
return f"<option>{escape(text)}</option>"
|
return f"<option>{escape(text)}</option>"
|
||||||
def file(self, text):
|
def file(self, text):
|
||||||
return f"<filename>{escape(text)}</filename>"
|
return f"<filename>{escape(text)}</filename>"
|
||||||
|
def var(self, text):
|
||||||
|
return f"<varname>{escape(text)}</varname>"
|
||||||
|
def env(self, text):
|
||||||
|
return f"<envar>{escape(text)}</envar>"
|
||||||
def manpage(self, page, section):
|
def manpage(self, page, section):
|
||||||
title = f"<refentrytitle>{escape(page)}</refentrytitle>"
|
title = f"<refentrytitle>{escape(page)}</refentrytitle>"
|
||||||
vol = f"<manvolnum>{escape(section)}</manvolnum>"
|
vol = f"<manvolnum>{escape(section)}</manvolnum>"
|
||||||
|
@ -136,6 +140,20 @@ def p_file(md):
|
||||||
md.inline.register_rule('file', FILE_PATTERN, parse)
|
md.inline.register_rule('file', FILE_PATTERN, parse)
|
||||||
md.inline.rules.append('file')
|
md.inline.rules.append('file')
|
||||||
|
|
||||||
|
def p_var(md):
|
||||||
|
VAR_PATTERN = r'\{var\}`(.*?)`'
|
||||||
|
def parse(self, m, state):
|
||||||
|
return ('var', m.group(1))
|
||||||
|
md.inline.register_rule('var', VAR_PATTERN, parse)
|
||||||
|
md.inline.rules.append('var')
|
||||||
|
|
||||||
|
def p_env(md):
|
||||||
|
ENV_PATTERN = r'\{env\}`(.*?)`'
|
||||||
|
def parse(self, m, state):
|
||||||
|
return ('env', m.group(1))
|
||||||
|
md.inline.register_rule('env', ENV_PATTERN, parse)
|
||||||
|
md.inline.rules.append('env')
|
||||||
|
|
||||||
def p_option(md):
|
def p_option(md):
|
||||||
OPTION_PATTERN = r'\{option\}`(.*?)`'
|
OPTION_PATTERN = r'\{option\}`(.*?)`'
|
||||||
def parse(self, m, state):
|
def parse(self, m, state):
|
||||||
|
@ -151,7 +169,7 @@ def p_manpage(md):
|
||||||
md.inline.rules.append('manpage')
|
md.inline.rules.append('manpage')
|
||||||
|
|
||||||
def p_admonition(md):
|
def p_admonition(md):
|
||||||
ADMONITION_PATTERN = re.compile(r'^::: \{([^\n]*?)\}\n(.*?)^:::\n', flags=re.MULTILINE|re.DOTALL)
|
ADMONITION_PATTERN = re.compile(r'^::: \{([^\n]*?)\}\n(.*?)^:::$\n*', flags=re.MULTILINE|re.DOTALL)
|
||||||
def parse(self, m, state):
|
def parse(self, m, state):
|
||||||
return {
|
return {
|
||||||
'type': 'admonition',
|
'type': 'admonition',
|
||||||
|
@ -162,7 +180,7 @@ def p_admonition(md):
|
||||||
md.block.rules.append('admonition')
|
md.block.rules.append('admonition')
|
||||||
|
|
||||||
md = mistune.create_markdown(renderer=Renderer(), plugins=[
|
md = mistune.create_markdown(renderer=Renderer(), plugins=[
|
||||||
p_command, p_file, p_option, p_manpage, p_admonition
|
p_command, p_file, p_var, p_env, p_option, p_manpage, p_admonition
|
||||||
])
|
])
|
||||||
|
|
||||||
# converts in-place!
|
# converts in-place!
|
||||||
|
|
62
third_party/nixpkgs/nixos/lib/qemu-common.nix
vendored
62
third_party/nixpkgs/nixos/lib/qemu-common.nix
vendored
|
@ -4,29 +4,61 @@
|
||||||
let
|
let
|
||||||
zeroPad = n:
|
zeroPad = n:
|
||||||
lib.optionalString (n < 16) "0" +
|
lib.optionalString (n < 16) "0" +
|
||||||
(if n > 255
|
(if n > 255
|
||||||
then throw "Can't have more than 255 nets or nodes!"
|
then throw "Can't have more than 255 nets or nodes!"
|
||||||
else lib.toHexString n);
|
else lib.toHexString n);
|
||||||
in
|
in
|
||||||
|
|
||||||
rec {
|
rec {
|
||||||
qemuNicMac = net: machine: "52:54:00:12:${zeroPad net}:${zeroPad machine}";
|
qemuNicMac = net: machine: "52:54:00:12:${zeroPad net}:${zeroPad machine}";
|
||||||
|
|
||||||
qemuNICFlags = nic: net: machine:
|
qemuNICFlags = nic: net: machine:
|
||||||
[ "-device virtio-net-pci,netdev=vlan${toString nic},mac=${qemuNicMac net machine}"
|
[
|
||||||
|
"-device virtio-net-pci,netdev=vlan${toString nic},mac=${qemuNicMac net machine}"
|
||||||
''-netdev vde,id=vlan${toString nic},sock="$QEMU_VDE_SOCKET_${toString net}"''
|
''-netdev vde,id=vlan${toString nic},sock="$QEMU_VDE_SOCKET_${toString net}"''
|
||||||
];
|
];
|
||||||
|
|
||||||
qemuSerialDevice = if pkgs.stdenv.hostPlatform.isx86 || pkgs.stdenv.hostPlatform.isRiscV then "ttyS0"
|
qemuSerialDevice =
|
||||||
else if (with pkgs.stdenv.hostPlatform; isAarch || isPower) then "ttyAMA0"
|
if pkgs.stdenv.hostPlatform.isx86 || pkgs.stdenv.hostPlatform.isRiscV then "ttyS0"
|
||||||
else throw "Unknown QEMU serial device for system '${pkgs.stdenv.hostPlatform.system}'";
|
else if (with pkgs.stdenv.hostPlatform; isAarch || isPower) then "ttyAMA0"
|
||||||
|
else throw "Unknown QEMU serial device for system '${pkgs.stdenv.hostPlatform.system}'";
|
||||||
|
|
||||||
qemuBinary = qemuPkg: {
|
qemuBinary = qemuPkg:
|
||||||
x86_64-linux = "${qemuPkg}/bin/qemu-kvm -cpu max";
|
let
|
||||||
armv7l-linux = "${qemuPkg}/bin/qemu-system-arm -machine virt,accel=kvm:tcg -cpu max";
|
hostStdenv = qemuPkg.stdenv;
|
||||||
aarch64-linux = "${qemuPkg}/bin/qemu-system-aarch64 -machine virt,gic-version=max,accel=kvm:tcg -cpu max";
|
hostSystem = hostStdenv.system;
|
||||||
powerpc64le-linux = "${qemuPkg}/bin/qemu-system-ppc64 -machine powernv";
|
guestSystem = pkgs.stdenv.hostPlatform.system;
|
||||||
powerpc64-linux = "${qemuPkg}/bin/qemu-system-ppc64 -machine powernv";
|
|
||||||
x86_64-darwin = "${qemuPkg}/bin/qemu-kvm -cpu max";
|
linuxHostGuestMatrix = {
|
||||||
}.${pkgs.stdenv.hostPlatform.system} or "${qemuPkg}/bin/qemu-kvm";
|
x86_64-linux = "${qemuPkg}/bin/qemu-kvm -cpu max";
|
||||||
|
armv7l-linux = "${qemuPkg}/bin/qemu-system-arm -machine virt,accel=kvm:tcg -cpu max";
|
||||||
|
aarch64-linux = "${qemuPkg}/bin/qemu-system-aarch64 -machine virt,gic-version=max,accel=kvm:tcg -cpu max";
|
||||||
|
powerpc64le-linux = "${qemuPkg}/bin/qemu-system-ppc64 -machine powernv";
|
||||||
|
powerpc64-linux = "${qemuPkg}/bin/qemu-system-ppc64 -machine powernv";
|
||||||
|
x86_64-darwin = "${qemuPkg}/bin/qemu-kvm -cpu max";
|
||||||
|
};
|
||||||
|
otherHostGuestMatrix = {
|
||||||
|
aarch64-darwin = {
|
||||||
|
aarch64-linux = "${qemuPkg}/bin/qemu-system-aarch64 -machine virt,gic-version=2,accel=hvf:tcg -cpu max";
|
||||||
|
};
|
||||||
|
x86_64-darwin = {
|
||||||
|
x86_64-linux = "${qemuPkg}/bin/qemu-system-x86_64 -machine type=q35,accel=hvf:tcg -cpu max";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
throwUnsupportedHostSystem =
|
||||||
|
let
|
||||||
|
supportedSystems = [ "linux" ] ++ (lib.attrNames otherHostGuestMatrix);
|
||||||
|
in
|
||||||
|
throw "Unsupported host system ${hostSystem}, supported: ${lib.concatStringsSep ", " supportedSystems}";
|
||||||
|
throwUnsupportedGuestSystem = guestMap:
|
||||||
|
throw "Unsupported guest system ${guestSystem} for host ${hostSystem}, supported: ${lib.concatStringsSep ", " (lib.attrNames guestMap)}";
|
||||||
|
in
|
||||||
|
if hostStdenv.isLinux then
|
||||||
|
linuxHostGuestMatrix.${guestSystem} or "${qemuPkg}/bin/qemu-kvm"
|
||||||
|
else
|
||||||
|
let
|
||||||
|
guestMap = (otherHostGuestMatrix.${hostSystem} or throwUnsupportedHostSystem);
|
||||||
|
in
|
||||||
|
(guestMap.${guestSystem} or (throwUnsupportedGuestSystem guestMap));
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,11 +37,11 @@ rec {
|
||||||
|
|
||||||
initrdContents = types.attrsOf (types.submodule ({ config, options, name, ... }: {
|
initrdContents = types.attrsOf (types.submodule ({ config, options, name, ... }: {
|
||||||
options = {
|
options = {
|
||||||
enable = mkEnableOption "copying of this file and symlinking it" // { default = true; };
|
enable = mkEnableOption (lib.mdDoc "copying of this file and symlinking it") // { default = true; };
|
||||||
|
|
||||||
target = mkOption {
|
target = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Path of the symlink.
|
Path of the symlink.
|
||||||
'';
|
'';
|
||||||
default = name;
|
default = name;
|
||||||
|
@ -50,12 +50,12 @@ rec {
|
||||||
text = mkOption {
|
text = mkOption {
|
||||||
default = null;
|
default = null;
|
||||||
type = types.nullOr types.lines;
|
type = types.nullOr types.lines;
|
||||||
description = "Text of the file.";
|
description = lib.mdDoc "Text of the file.";
|
||||||
};
|
};
|
||||||
|
|
||||||
source = mkOption {
|
source = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
description = "Path of the source file.";
|
description = lib.mdDoc "Path of the source file.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -37,24 +37,24 @@ in rec {
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
default = true;
|
default = true;
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
If set to false, this unit will be a symlink to
|
If set to false, this unit will be a symlink to
|
||||||
/dev/null. This is primarily useful to prevent specific
|
/dev/null. This is primarily useful to prevent specific
|
||||||
template instances
|
template instances
|
||||||
(e.g. <literal>serial-getty@ttyS0</literal>) from being
|
(e.g. `serial-getty@ttyS0`) from being
|
||||||
started. Note that <literal>enable=true</literal> does not
|
started. Note that `enable=true` does not
|
||||||
make a unit start by default at boot; if you want that, see
|
make a unit start by default at boot; if you want that, see
|
||||||
<literal>wantedBy</literal>.
|
`wantedBy`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
requiredBy = mkOption {
|
requiredBy = mkOption {
|
||||||
default = [];
|
default = [];
|
||||||
type = types.listOf unitNameType;
|
type = types.listOf unitNameType;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Units that require (i.e. depend on and need to go down with)
|
Units that require (i.e. depend on and need to go down with)
|
||||||
this unit. The discussion under <literal>wantedBy</literal>
|
this unit. The discussion under `wantedBy`
|
||||||
applies here as well: inverse <literal>.requires</literal>
|
applies here as well: inverse `.requires`
|
||||||
symlinks are established.
|
symlinks are established.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -62,16 +62,16 @@ in rec {
|
||||||
wantedBy = mkOption {
|
wantedBy = mkOption {
|
||||||
default = [];
|
default = [];
|
||||||
type = types.listOf unitNameType;
|
type = types.listOf unitNameType;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Units that want (i.e. depend on) this unit. The standard way
|
Units that want (i.e. depend on) this unit. The standard way
|
||||||
to make a unit start by default at boot is to set this option
|
to make a unit start by default at boot is to set this option
|
||||||
to <literal>[ "multi-user.target" ]</literal>. That's despite
|
to `[ "multi-user.target" ]`. That's despite
|
||||||
the fact that the systemd.unit(5) manpage says this option
|
the fact that the systemd.unit(5) manpage says this option
|
||||||
goes in the <literal>[Install]</literal> section that controls
|
goes in the `[Install]` section that controls
|
||||||
the behaviour of <literal>systemctl enable</literal>. Since
|
the behaviour of `systemctl enable`. Since
|
||||||
such a process is stateful and thus contrary to the design of
|
such a process is stateful and thus contrary to the design of
|
||||||
NixOS, setting this option instead causes the equivalent
|
NixOS, setting this option instead causes the equivalent
|
||||||
inverse <literal>.wants</literal> symlink to be present,
|
inverse `.wants` symlink to be present,
|
||||||
establishing the same desired relationship in a stateless way.
|
establishing the same desired relationship in a stateless way.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -79,7 +79,7 @@ in rec {
|
||||||
aliases = mkOption {
|
aliases = mkOption {
|
||||||
default = [];
|
default = [];
|
||||||
type = types.listOf unitNameType;
|
type = types.listOf unitNameType;
|
||||||
description = "Aliases of that unit.";
|
description = lib.mdDoc "Aliases of that unit.";
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -89,12 +89,12 @@ in rec {
|
||||||
text = mkOption {
|
text = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
description = "Text of this systemd unit.";
|
description = lib.mdDoc "Text of this systemd unit.";
|
||||||
};
|
};
|
||||||
|
|
||||||
unit = mkOption {
|
unit = mkOption {
|
||||||
internal = true;
|
internal = true;
|
||||||
description = "The generated unit.";
|
description = lib.mdDoc "The generated unit.";
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -105,19 +105,19 @@ in rec {
|
||||||
description = mkOption {
|
description = mkOption {
|
||||||
default = "";
|
default = "";
|
||||||
type = types.singleLineStr;
|
type = types.singleLineStr;
|
||||||
description = "Description of this unit used in systemd messages and progress indicators.";
|
description = lib.mdDoc "Description of this unit used in systemd messages and progress indicators.";
|
||||||
};
|
};
|
||||||
|
|
||||||
documentation = mkOption {
|
documentation = mkOption {
|
||||||
default = [];
|
default = [];
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
description = "A list of URIs referencing documentation for this unit or its configuration.";
|
description = lib.mdDoc "A list of URIs referencing documentation for this unit or its configuration.";
|
||||||
};
|
};
|
||||||
|
|
||||||
requires = mkOption {
|
requires = mkOption {
|
||||||
default = [];
|
default = [];
|
||||||
type = types.listOf unitNameType;
|
type = types.listOf unitNameType;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Start the specified units when this unit is started, and stop
|
Start the specified units when this unit is started, and stop
|
||||||
this unit when the specified units are stopped or fail.
|
this unit when the specified units are stopped or fail.
|
||||||
'';
|
'';
|
||||||
|
@ -126,7 +126,7 @@ in rec {
|
||||||
wants = mkOption {
|
wants = mkOption {
|
||||||
default = [];
|
default = [];
|
||||||
type = types.listOf unitNameType;
|
type = types.listOf unitNameType;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Start the specified units when this unit is started.
|
Start the specified units when this unit is started.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -134,7 +134,7 @@ in rec {
|
||||||
after = mkOption {
|
after = mkOption {
|
||||||
default = [];
|
default = [];
|
||||||
type = types.listOf unitNameType;
|
type = types.listOf unitNameType;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
If the specified units are started at the same time as
|
If the specified units are started at the same time as
|
||||||
this unit, delay this unit until they have started.
|
this unit, delay this unit until they have started.
|
||||||
'';
|
'';
|
||||||
|
@ -143,7 +143,7 @@ in rec {
|
||||||
before = mkOption {
|
before = mkOption {
|
||||||
default = [];
|
default = [];
|
||||||
type = types.listOf unitNameType;
|
type = types.listOf unitNameType;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
If the specified units are started at the same time as
|
If the specified units are started at the same time as
|
||||||
this unit, delay them until this unit has started.
|
this unit, delay them until this unit has started.
|
||||||
'';
|
'';
|
||||||
|
@ -152,7 +152,7 @@ in rec {
|
||||||
bindsTo = mkOption {
|
bindsTo = mkOption {
|
||||||
default = [];
|
default = [];
|
||||||
type = types.listOf unitNameType;
|
type = types.listOf unitNameType;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Like ‘requires’, but in addition, if the specified units
|
Like ‘requires’, but in addition, if the specified units
|
||||||
unexpectedly disappear, this unit will be stopped as well.
|
unexpectedly disappear, this unit will be stopped as well.
|
||||||
'';
|
'';
|
||||||
|
@ -161,7 +161,7 @@ in rec {
|
||||||
partOf = mkOption {
|
partOf = mkOption {
|
||||||
default = [];
|
default = [];
|
||||||
type = types.listOf unitNameType;
|
type = types.listOf unitNameType;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
If the specified units are stopped or restarted, then this
|
If the specified units are stopped or restarted, then this
|
||||||
unit is stopped or restarted as well.
|
unit is stopped or restarted as well.
|
||||||
'';
|
'';
|
||||||
|
@ -170,7 +170,7 @@ in rec {
|
||||||
conflicts = mkOption {
|
conflicts = mkOption {
|
||||||
default = [];
|
default = [];
|
||||||
type = types.listOf unitNameType;
|
type = types.listOf unitNameType;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
If the specified units are started, then this unit is stopped
|
If the specified units are started, then this unit is stopped
|
||||||
and vice versa.
|
and vice versa.
|
||||||
'';
|
'';
|
||||||
|
@ -179,7 +179,7 @@ in rec {
|
||||||
requisite = mkOption {
|
requisite = mkOption {
|
||||||
default = [];
|
default = [];
|
||||||
type = types.listOf unitNameType;
|
type = types.listOf unitNameType;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Similar to requires. However if the units listed are not started,
|
Similar to requires. However if the units listed are not started,
|
||||||
they will not be started and the transaction will fail.
|
they will not be started and the transaction will fail.
|
||||||
'';
|
'';
|
||||||
|
@ -189,18 +189,17 @@ in rec {
|
||||||
default = {};
|
default = {};
|
||||||
example = { RequiresMountsFor = "/data"; };
|
example = { RequiresMountsFor = "/data"; };
|
||||||
type = types.attrsOf unitOption;
|
type = types.attrsOf unitOption;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Each attribute in this set specifies an option in the
|
Each attribute in this set specifies an option in the
|
||||||
<literal>[Unit]</literal> section of the unit. See
|
`[Unit]` section of the unit. See
|
||||||
<citerefentry><refentrytitle>systemd.unit</refentrytitle>
|
{manpage}`systemd.unit(5)` for details.
|
||||||
<manvolnum>5</manvolnum></citerefentry> for details.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
onFailure = mkOption {
|
onFailure = mkOption {
|
||||||
default = [];
|
default = [];
|
||||||
type = types.listOf unitNameType;
|
type = types.listOf unitNameType;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
A list of one or more units that are activated when
|
A list of one or more units that are activated when
|
||||||
this unit enters the "failed" state.
|
this unit enters the "failed" state.
|
||||||
'';
|
'';
|
||||||
|
@ -209,7 +208,7 @@ in rec {
|
||||||
onSuccess = mkOption {
|
onSuccess = mkOption {
|
||||||
default = [];
|
default = [];
|
||||||
type = types.listOf unitNameType;
|
type = types.listOf unitNameType;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
A list of one or more units that are activated when
|
A list of one or more units that are activated when
|
||||||
this unit enters the "inactive" state.
|
this unit enters the "inactive" state.
|
||||||
'';
|
'';
|
||||||
|
@ -217,7 +216,7 @@ in rec {
|
||||||
|
|
||||||
startLimitBurst = mkOption {
|
startLimitBurst = mkOption {
|
||||||
type = types.int;
|
type = types.int;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Configure unit start rate limiting. Units which are started
|
Configure unit start rate limiting. Units which are started
|
||||||
more than startLimitBurst times within an interval time
|
more than startLimitBurst times within an interval time
|
||||||
interval are not permitted to start any more.
|
interval are not permitted to start any more.
|
||||||
|
@ -226,7 +225,7 @@ in rec {
|
||||||
|
|
||||||
startLimitIntervalSec = mkOption {
|
startLimitIntervalSec = mkOption {
|
||||||
type = types.int;
|
type = types.int;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Configure unit start rate limiting. Units which are started
|
Configure unit start rate limiting. Units which are started
|
||||||
more than startLimitBurst times within an interval time
|
more than startLimitBurst times within an interval time
|
||||||
interval are not permitted to start any more.
|
interval are not permitted to start any more.
|
||||||
|
@ -245,7 +244,7 @@ in rec {
|
||||||
restartTriggers = mkOption {
|
restartTriggers = mkOption {
|
||||||
default = [];
|
default = [];
|
||||||
type = types.listOf types.unspecified;
|
type = types.listOf types.unspecified;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
An arbitrary list of items such as derivations. If any item
|
An arbitrary list of items such as derivations. If any item
|
||||||
in the list changes between reconfigurations, the service will
|
in the list changes between reconfigurations, the service will
|
||||||
be restarted.
|
be restarted.
|
||||||
|
@ -255,7 +254,7 @@ in rec {
|
||||||
reloadTriggers = mkOption {
|
reloadTriggers = mkOption {
|
||||||
default = [];
|
default = [];
|
||||||
type = types.listOf unitOption;
|
type = types.listOf unitOption;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
An arbitrary list of items such as derivations. If any item
|
An arbitrary list of items such as derivations. If any item
|
||||||
in the list changes between reconfigurations, the service will
|
in the list changes between reconfigurations, the service will
|
||||||
be reloaded. If anything but a reload trigger changes in the
|
be reloaded. If anything but a reload trigger changes in the
|
||||||
|
@ -273,16 +272,16 @@ in rec {
|
||||||
default = {};
|
default = {};
|
||||||
type = with types; attrsOf (nullOr (oneOf [ str path package ]));
|
type = with types; attrsOf (nullOr (oneOf [ str path package ]));
|
||||||
example = { PATH = "/foo/bar/bin"; LANG = "nl_NL.UTF-8"; };
|
example = { PATH = "/foo/bar/bin"; LANG = "nl_NL.UTF-8"; };
|
||||||
description = "Environment variables passed to the service's processes.";
|
description = lib.mdDoc "Environment variables passed to the service's processes.";
|
||||||
};
|
};
|
||||||
|
|
||||||
path = mkOption {
|
path = mkOption {
|
||||||
default = [];
|
default = [];
|
||||||
type = with types; listOf (oneOf [ package str ]);
|
type = with types; listOf (oneOf [ package str ]);
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Packages added to the service's <envar>PATH</envar>
|
Packages added to the service's {env}`PATH`
|
||||||
environment variable. Both the <filename>bin</filename>
|
environment variable. Both the {file}`bin`
|
||||||
and <filename>sbin</filename> subdirectories of each
|
and {file}`sbin` subdirectories of each
|
||||||
package are added.
|
package are added.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -293,30 +292,29 @@ in rec {
|
||||||
{ RestartSec = 5;
|
{ RestartSec = 5;
|
||||||
};
|
};
|
||||||
type = types.addCheck (types.attrsOf unitOption) checkService;
|
type = types.addCheck (types.attrsOf unitOption) checkService;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Each attribute in this set specifies an option in the
|
Each attribute in this set specifies an option in the
|
||||||
<literal>[Service]</literal> section of the unit. See
|
`[Service]` section of the unit. See
|
||||||
<citerefentry><refentrytitle>systemd.service</refentrytitle>
|
{manpage}`systemd.service(5)` for details.
|
||||||
<manvolnum>5</manvolnum></citerefentry> for details.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
script = mkOption {
|
script = mkOption {
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
default = "";
|
default = "";
|
||||||
description = "Shell commands executed as the service's main process.";
|
description = lib.mdDoc "Shell commands executed as the service's main process.";
|
||||||
};
|
};
|
||||||
|
|
||||||
scriptArgs = mkOption {
|
scriptArgs = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "";
|
default = "";
|
||||||
description = "Arguments passed to the main process script.";
|
description = lib.mdDoc "Arguments passed to the main process script.";
|
||||||
};
|
};
|
||||||
|
|
||||||
preStart = mkOption {
|
preStart = mkOption {
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
default = "";
|
default = "";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Shell commands executed before the service's main process
|
Shell commands executed before the service's main process
|
||||||
is started.
|
is started.
|
||||||
'';
|
'';
|
||||||
|
@ -325,7 +323,7 @@ in rec {
|
||||||
postStart = mkOption {
|
postStart = mkOption {
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
default = "";
|
default = "";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Shell commands executed after the service's main process
|
Shell commands executed after the service's main process
|
||||||
is started.
|
is started.
|
||||||
'';
|
'';
|
||||||
|
@ -334,7 +332,7 @@ in rec {
|
||||||
reload = mkOption {
|
reload = mkOption {
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
default = "";
|
default = "";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Shell commands executed when the service's main process
|
Shell commands executed when the service's main process
|
||||||
is reloaded.
|
is reloaded.
|
||||||
'';
|
'';
|
||||||
|
@ -343,7 +341,7 @@ in rec {
|
||||||
preStop = mkOption {
|
preStop = mkOption {
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
default = "";
|
default = "";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Shell commands executed to stop the service.
|
Shell commands executed to stop the service.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -351,7 +349,7 @@ in rec {
|
||||||
postStop = mkOption {
|
postStop = mkOption {
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
default = "";
|
default = "";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Shell commands executed after the service's main process
|
Shell commands executed after the service's main process
|
||||||
has exited.
|
has exited.
|
||||||
'';
|
'';
|
||||||
|
@ -360,7 +358,7 @@ in rec {
|
||||||
jobScripts = mkOption {
|
jobScripts = mkOption {
|
||||||
type = with types; coercedTo path singleton (listOf path);
|
type = with types; coercedTo path singleton (listOf path);
|
||||||
internal = true;
|
internal = true;
|
||||||
description = "A list of all job script derivations of this unit.";
|
description = lib.mdDoc "A list of all job script derivations of this unit.";
|
||||||
default = [];
|
default = [];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -405,7 +403,7 @@ in rec {
|
||||||
restartIfChanged = mkOption {
|
restartIfChanged = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether the service should be restarted during a NixOS
|
Whether the service should be restarted during a NixOS
|
||||||
configuration switch if its definition has changed.
|
configuration switch if its definition has changed.
|
||||||
'';
|
'';
|
||||||
|
@ -414,14 +412,14 @@ in rec {
|
||||||
reloadIfChanged = mkOption {
|
reloadIfChanged = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether the service should be reloaded during a NixOS
|
Whether the service should be reloaded during a NixOS
|
||||||
configuration switch if its definition has changed. If
|
configuration switch if its definition has changed. If
|
||||||
enabled, the value of <option>restartIfChanged</option> is
|
enabled, the value of {option}`restartIfChanged` is
|
||||||
ignored.
|
ignored.
|
||||||
|
|
||||||
This option should not be used anymore in favor of
|
This option should not be used anymore in favor of
|
||||||
<option>reloadTriggers</option> which allows more granular
|
{option}`reloadTriggers` which allows more granular
|
||||||
control of when a service is reloaded and when a service
|
control of when a service is reloaded and when a service
|
||||||
is restarted.
|
is restarted.
|
||||||
'';
|
'';
|
||||||
|
@ -430,14 +428,14 @@ in rec {
|
||||||
stopIfChanged = mkOption {
|
stopIfChanged = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
If set, a changed unit is restarted by calling
|
If set, a changed unit is restarted by calling
|
||||||
<command>systemctl stop</command> in the old configuration,
|
{command}`systemctl stop` in the old configuration,
|
||||||
then <command>systemctl start</command> in the new one.
|
then {command}`systemctl start` in the new one.
|
||||||
Otherwise, it is restarted in a single step using
|
Otherwise, it is restarted in a single step using
|
||||||
<command>systemctl restart</command> in the new configuration.
|
{command}`systemctl restart` in the new configuration.
|
||||||
The latter is less correct because it runs the
|
The latter is less correct because it runs the
|
||||||
<literal>ExecStop</literal> commands from the new
|
`ExecStop` commands from the new
|
||||||
configuration.
|
configuration.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -446,13 +444,12 @@ in rec {
|
||||||
type = with types; either str (listOf str);
|
type = with types; either str (listOf str);
|
||||||
default = [];
|
default = [];
|
||||||
example = "Sun 14:00:00";
|
example = "Sun 14:00:00";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Automatically start this unit at the given date/time, which
|
Automatically start this unit at the given date/time, which
|
||||||
must be in the format described in
|
must be in the format described in
|
||||||
<citerefentry><refentrytitle>systemd.time</refentrytitle>
|
{manpage}`systemd.time(7)`. This is equivalent
|
||||||
<manvolnum>7</manvolnum></citerefentry>. This is equivalent
|
|
||||||
to adding a corresponding timer unit with
|
to adding a corresponding timer unit with
|
||||||
<option>OnCalendar</option> set to the value given here.
|
{option}`OnCalendar` set to the value given here.
|
||||||
'';
|
'';
|
||||||
apply = v: if isList v then v else [ v ];
|
apply = v: if isList v then v else [ v ];
|
||||||
};
|
};
|
||||||
|
@ -474,9 +471,9 @@ in rec {
|
||||||
default = [];
|
default = [];
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
example = [ "0.0.0.0:993" "/run/my-socket" ];
|
example = [ "0.0.0.0:993" "/run/my-socket" ];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
For each item in this list, a <literal>ListenStream</literal>
|
For each item in this list, a `ListenStream`
|
||||||
option in the <literal>[Socket]</literal> section will be created.
|
option in the `[Socket]` section will be created.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -484,9 +481,9 @@ in rec {
|
||||||
default = [];
|
default = [];
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
example = [ "0.0.0.0:993" "/run/my-socket" ];
|
example = [ "0.0.0.0:993" "/run/my-socket" ];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
For each item in this list, a <literal>ListenDatagram</literal>
|
For each item in this list, a `ListenDatagram`
|
||||||
option in the <literal>[Socket]</literal> section will be created.
|
option in the `[Socket]` section will be created.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -494,11 +491,10 @@ in rec {
|
||||||
default = {};
|
default = {};
|
||||||
example = { ListenStream = "/run/my-socket"; };
|
example = { ListenStream = "/run/my-socket"; };
|
||||||
type = types.attrsOf unitOption;
|
type = types.attrsOf unitOption;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Each attribute in this set specifies an option in the
|
Each attribute in this set specifies an option in the
|
||||||
<literal>[Socket]</literal> section of the unit. See
|
`[Socket]` section of the unit. See
|
||||||
<citerefentry><refentrytitle>systemd.socket</refentrytitle>
|
{manpage}`systemd.socket(5)` for details.
|
||||||
<manvolnum>5</manvolnum></citerefentry> for details.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -527,13 +523,11 @@ in rec {
|
||||||
default = {};
|
default = {};
|
||||||
example = { OnCalendar = "Sun 14:00:00"; Unit = "foo.service"; };
|
example = { OnCalendar = "Sun 14:00:00"; Unit = "foo.service"; };
|
||||||
type = types.attrsOf unitOption;
|
type = types.attrsOf unitOption;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Each attribute in this set specifies an option in the
|
Each attribute in this set specifies an option in the
|
||||||
<literal>[Timer]</literal> section of the unit. See
|
`[Timer]` section of the unit. See
|
||||||
<citerefentry><refentrytitle>systemd.timer</refentrytitle>
|
{manpage}`systemd.timer(5)` and
|
||||||
<manvolnum>5</manvolnum></citerefentry> and
|
{manpage}`systemd.time(7)` for details.
|
||||||
<citerefentry><refentrytitle>systemd.time</refentrytitle>
|
|
||||||
<manvolnum>7</manvolnum></citerefentry> for details.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -562,11 +556,10 @@ in rec {
|
||||||
default = {};
|
default = {};
|
||||||
example = { PathChanged = "/some/path"; Unit = "changedpath.service"; };
|
example = { PathChanged = "/some/path"; Unit = "changedpath.service"; };
|
||||||
type = types.attrsOf unitOption;
|
type = types.attrsOf unitOption;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Each attribute in this set specifies an option in the
|
Each attribute in this set specifies an option in the
|
||||||
<literal>[Path]</literal> section of the unit. See
|
`[Path]` section of the unit. See
|
||||||
<citerefentry><refentrytitle>systemd.path</refentrytitle>
|
{manpage}`systemd.path(5)` for details.
|
||||||
<manvolnum>5</manvolnum></citerefentry> for details.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -594,13 +587,13 @@ in rec {
|
||||||
what = mkOption {
|
what = mkOption {
|
||||||
example = "/dev/sda1";
|
example = "/dev/sda1";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = "Absolute path of device node, file or other resource. (Mandatory)";
|
description = lib.mdDoc "Absolute path of device node, file or other resource. (Mandatory)";
|
||||||
};
|
};
|
||||||
|
|
||||||
where = mkOption {
|
where = mkOption {
|
||||||
example = "/mnt";
|
example = "/mnt";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Absolute path of a directory of the mount point.
|
Absolute path of a directory of the mount point.
|
||||||
Will be created if it doesn't exist. (Mandatory)
|
Will be created if it doesn't exist. (Mandatory)
|
||||||
'';
|
'';
|
||||||
|
@ -610,25 +603,24 @@ in rec {
|
||||||
default = "";
|
default = "";
|
||||||
example = "ext4";
|
example = "ext4";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = "File system type.";
|
description = lib.mdDoc "File system type.";
|
||||||
};
|
};
|
||||||
|
|
||||||
options = mkOption {
|
options = mkOption {
|
||||||
default = "";
|
default = "";
|
||||||
example = "noatime";
|
example = "noatime";
|
||||||
type = types.commas;
|
type = types.commas;
|
||||||
description = "Options used to mount the file system.";
|
description = lib.mdDoc "Options used to mount the file system.";
|
||||||
};
|
};
|
||||||
|
|
||||||
mountConfig = mkOption {
|
mountConfig = mkOption {
|
||||||
default = {};
|
default = {};
|
||||||
example = { DirectoryMode = "0775"; };
|
example = { DirectoryMode = "0775"; };
|
||||||
type = types.attrsOf unitOption;
|
type = types.attrsOf unitOption;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Each attribute in this set specifies an option in the
|
Each attribute in this set specifies an option in the
|
||||||
<literal>[Mount]</literal> section of the unit. See
|
`[Mount]` section of the unit. See
|
||||||
<citerefentry><refentrytitle>systemd.mount</refentrytitle>
|
{manpage}`systemd.mount(5)` for details.
|
||||||
<manvolnum>5</manvolnum></citerefentry> for details.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -655,7 +647,7 @@ in rec {
|
||||||
where = mkOption {
|
where = mkOption {
|
||||||
example = "/mnt";
|
example = "/mnt";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Absolute path of a directory of the mount point.
|
Absolute path of a directory of the mount point.
|
||||||
Will be created if it doesn't exist. (Mandatory)
|
Will be created if it doesn't exist. (Mandatory)
|
||||||
'';
|
'';
|
||||||
|
@ -665,11 +657,10 @@ in rec {
|
||||||
default = {};
|
default = {};
|
||||||
example = { DirectoryMode = "0775"; };
|
example = { DirectoryMode = "0775"; };
|
||||||
type = types.attrsOf unitOption;
|
type = types.attrsOf unitOption;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Each attribute in this set specifies an option in the
|
Each attribute in this set specifies an option in the
|
||||||
<literal>[Automount]</literal> section of the unit. See
|
`[Automount]` section of the unit. See
|
||||||
<citerefentry><refentrytitle>systemd.automount</refentrytitle>
|
{manpage}`systemd.automount(5)` for details.
|
||||||
<manvolnum>5</manvolnum></citerefentry> for details.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -697,11 +688,10 @@ in rec {
|
||||||
default = {};
|
default = {};
|
||||||
example = { MemoryMax = "2G"; };
|
example = { MemoryMax = "2G"; };
|
||||||
type = types.attrsOf unitOption;
|
type = types.attrsOf unitOption;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Each attribute in this set specifies an option in the
|
Each attribute in this set specifies an option in the
|
||||||
<literal>[Slice]</literal> section of the unit. See
|
`[Slice]` section of the unit. See
|
||||||
<citerefentry><refentrytitle>systemd.slice</refentrytitle>
|
{manpage}`systemd.slice(5)` for details.
|
||||||
<manvolnum>5</manvolnum></citerefentry> for details.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -426,7 +426,9 @@ class Machine:
|
||||||
self.monitor.send(message)
|
self.monitor.send(message)
|
||||||
return self.wait_for_monitor_prompt()
|
return self.wait_for_monitor_prompt()
|
||||||
|
|
||||||
def wait_for_unit(self, unit: str, user: Optional[str] = None) -> None:
|
def wait_for_unit(
|
||||||
|
self, unit: str, user: Optional[str] = None, timeout: int = 900
|
||||||
|
) -> None:
|
||||||
"""Wait for a systemd unit to get into "active" state.
|
"""Wait for a systemd unit to get into "active" state.
|
||||||
Throws exceptions on "failed" and "inactive" states as well as
|
Throws exceptions on "failed" and "inactive" states as well as
|
||||||
after timing out.
|
after timing out.
|
||||||
|
@ -456,7 +458,7 @@ class Machine:
|
||||||
unit, f" with user {user}" if user is not None else ""
|
unit, f" with user {user}" if user is not None else ""
|
||||||
)
|
)
|
||||||
):
|
):
|
||||||
retry(check_active)
|
retry(check_active, timeout)
|
||||||
|
|
||||||
def get_unit_info(self, unit: str, user: Optional[str] = None) -> Dict[str, str]:
|
def get_unit_info(self, unit: str, user: Optional[str] = None) -> Dict[str, str]:
|
||||||
status, lines = self.systemctl('--no-pager show "{}"'.format(unit), user)
|
status, lines = self.systemctl('--no-pager show "{}"'.format(unit), user)
|
||||||
|
@ -710,7 +712,7 @@ class Machine:
|
||||||
status, _ = self.execute("nc -z localhost {}".format(port))
|
status, _ = self.execute("nc -z localhost {}".format(port))
|
||||||
return status != 0
|
return status != 0
|
||||||
|
|
||||||
with self.nested("waiting for TCP port {} to be closed"):
|
with self.nested("waiting for TCP port {} to be closed".format(port)):
|
||||||
retry(port_is_closed)
|
retry(port_is_closed)
|
||||||
|
|
||||||
def start_job(self, jobname: str, user: Optional[str] = None) -> Tuple[int, str]:
|
def start_job(self, jobname: str, user: Optional[str] = None) -> Tuple[int, str]:
|
||||||
|
|
|
@ -23,7 +23,7 @@ in {
|
||||||
options.amazonImage = {
|
options.amazonImage = {
|
||||||
name = mkOption {
|
name = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = "The name of the generated derivation";
|
description = lib.mdDoc "The name of the generated derivation";
|
||||||
default = "nixos-amazon-image-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}";
|
default = "nixos-amazon-image-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ in {
|
||||||
]
|
]
|
||||||
'';
|
'';
|
||||||
default = [];
|
default = [];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
This option lists files to be copied to fixed locations in the
|
This option lists files to be copied to fixed locations in the
|
||||||
generated image. Glob patterns work.
|
generated image. Glob patterns work.
|
||||||
'';
|
'';
|
||||||
|
@ -45,13 +45,13 @@ in {
|
||||||
type = with types; either (enum [ "auto" ]) int;
|
type = with types; either (enum [ "auto" ]) int;
|
||||||
default = if config.ec2.hvm then 2048 else 8192;
|
default = if config.ec2.hvm then 2048 else 8192;
|
||||||
example = 8192;
|
example = 8192;
|
||||||
description = "The size in MB of the image";
|
description = lib.mdDoc "The size in MB of the image";
|
||||||
};
|
};
|
||||||
|
|
||||||
format = mkOption {
|
format = mkOption {
|
||||||
type = types.enum [ "raw" "qcow2" "vpc" ];
|
type = types.enum [ "raw" "qcow2" "vpc" ];
|
||||||
default = "vpc";
|
default = "vpc";
|
||||||
description = "The image format to output";
|
description = lib.mdDoc "The image format to output";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -16,20 +16,20 @@ in
|
||||||
options.openstackImage = {
|
options.openstackImage = {
|
||||||
name = mkOption {
|
name = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = "The name of the generated derivation";
|
description = lib.mdDoc "The name of the generated derivation";
|
||||||
default = "nixos-openstack-image-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}";
|
default = "nixos-openstack-image-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}";
|
||||||
};
|
};
|
||||||
|
|
||||||
sizeMB = mkOption {
|
sizeMB = mkOption {
|
||||||
type = types.int;
|
type = types.int;
|
||||||
default = 8192;
|
default = 8192;
|
||||||
description = "The size in MB of the image";
|
description = lib.mdDoc "The size in MB of the image";
|
||||||
};
|
};
|
||||||
|
|
||||||
format = mkOption {
|
format = mkOption {
|
||||||
type = types.enum [ "raw" "qcow2" ];
|
type = types.enum [ "raw" "qcow2" ];
|
||||||
default = "qcow2";
|
default = "qcow2";
|
||||||
description = "The image format to output";
|
description = lib.mdDoc "The image format to output";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -64,8 +64,8 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
colors = mkOption {
|
colors = mkOption {
|
||||||
type = types.listOf types.str;
|
type = with types; listOf (strMatching "[[:xdigit:]]{6}");
|
||||||
default = [];
|
default = [ ];
|
||||||
example = [
|
example = [
|
||||||
"002b36" "dc322f" "859900" "b58900"
|
"002b36" "dc322f" "859900" "b58900"
|
||||||
"268bd2" "d33682" "2aa198" "eee8d5"
|
"268bd2" "d33682" "2aa198" "eee8d5"
|
||||||
|
|
|
@ -259,7 +259,7 @@ in
|
||||||
internal = true;
|
internal = true;
|
||||||
type = with types; listOf path;
|
type = with types; listOf path;
|
||||||
default = [ ];
|
default = [ ];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Fontconfig configuration packages.
|
Fontconfig configuration packages.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -7,7 +7,7 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.networking.iproute2 = {
|
options.networking.iproute2 = {
|
||||||
enable = mkEnableOption "copy IP route configuration files";
|
enable = mkEnableOption (lib.mdDoc "copy IP route configuration files");
|
||||||
rttablesExtraConfig = mkOption {
|
rttablesExtraConfig = mkOption {
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
default = "";
|
default = "";
|
||||||
|
|
|
@ -78,7 +78,7 @@ in {
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
krb5 = {
|
krb5 = {
|
||||||
enable = mkEnableOption "building krb5.conf, configuration file for Kerberos V";
|
enable = mkEnableOption (lib.mdDoc "building krb5.conf, configuration file for Kerberos V");
|
||||||
|
|
||||||
kerberos = mkOption {
|
kerberos = mkOption {
|
||||||
type = types.package;
|
type = types.package;
|
||||||
|
|
|
@ -59,7 +59,7 @@ in
|
||||||
|
|
||||||
users.ldap = {
|
users.ldap = {
|
||||||
|
|
||||||
enable = mkEnableOption "authentication against an LDAP server";
|
enable = mkEnableOption (lib.mdDoc "authentication against an LDAP server");
|
||||||
|
|
||||||
loginPam = mkOption {
|
loginPam = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
|
|
|
@ -77,24 +77,21 @@ in
|
||||||
environment.memoryAllocator.provider = mkOption {
|
environment.memoryAllocator.provider = mkOption {
|
||||||
type = types.enum ([ "libc" ] ++ attrNames providers);
|
type = types.enum ([ "libc" ] ++ attrNames providers);
|
||||||
default = "libc";
|
default = "libc";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The system-wide memory allocator.
|
The system-wide memory allocator.
|
||||||
|
|
||||||
Briefly, the system-wide memory allocator providers are:
|
Briefly, the system-wide memory allocator providers are:
|
||||||
<itemizedlist>
|
|
||||||
<listitem><para><literal>libc</literal>: the standard allocator provided by libc</para></listitem>
|
|
||||||
${toString (mapAttrsToList
|
|
||||||
(name: value: "<listitem><para><literal>${name}</literal>: ${value.description}</para></listitem>")
|
|
||||||
providers)}
|
|
||||||
</itemizedlist>
|
|
||||||
|
|
||||||
<warning>
|
- `libc`: the standard allocator provided by libc
|
||||||
<para>
|
${concatStringsSep "\n" (mapAttrsToList
|
||||||
|
(name: value: "- `${name}`: ${replaceStrings [ "\n" ] [ " " ] value.description}")
|
||||||
|
providers)}
|
||||||
|
|
||||||
|
::: {.warning}
|
||||||
Selecting an alternative allocator (i.e., anything other than
|
Selecting an alternative allocator (i.e., anything other than
|
||||||
<literal>libc</literal>) may result in instability, data loss,
|
`libc`) may result in instability, data loss,
|
||||||
and/or service failure.
|
and/or service failure.
|
||||||
</para>
|
:::
|
||||||
</warning>
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
233
third_party/nixpkgs/nixos/modules/config/mysql.nix
vendored
233
third_party/nixpkgs/nixos/modules/config/mysql.nix
vendored
|
@ -8,83 +8,73 @@ in
|
||||||
{
|
{
|
||||||
options = {
|
options = {
|
||||||
users.mysql = {
|
users.mysql = {
|
||||||
enable = mkEnableOption "Authentication against a MySQL/MariaDB database";
|
enable = mkEnableOption (lib.mdDoc "Authentication against a MySQL/MariaDB database");
|
||||||
host = mkOption {
|
host = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "localhost";
|
example = "localhost";
|
||||||
description = "The hostname of the MySQL/MariaDB server";
|
description = lib.mdDoc "The hostname of the MySQL/MariaDB server";
|
||||||
};
|
};
|
||||||
database = mkOption {
|
database = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "auth";
|
example = "auth";
|
||||||
description = "The name of the database containing the users";
|
description = lib.mdDoc "The name of the database containing the users";
|
||||||
};
|
};
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "nss-user";
|
example = "nss-user";
|
||||||
description = "The username to use when connecting to the database";
|
description = lib.mdDoc "The username to use when connecting to the database";
|
||||||
};
|
};
|
||||||
passwordFile = mkOption {
|
passwordFile = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
example = "/run/secrets/mysql-auth-db-passwd";
|
example = "/run/secrets/mysql-auth-db-passwd";
|
||||||
description = "The path to the file containing the password for the user";
|
description = lib.mdDoc "The path to the file containing the password for the user";
|
||||||
};
|
};
|
||||||
pam = mkOption {
|
pam = mkOption {
|
||||||
description = "Settings for <literal>pam_mysql</literal>";
|
description = lib.mdDoc "Settings for `pam_mysql`";
|
||||||
type = types.submodule {
|
type = types.submodule {
|
||||||
options = {
|
options = {
|
||||||
table = mkOption {
|
table = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "users";
|
example = "users";
|
||||||
description = "The name of table that maps unique login names to the passwords.";
|
description = lib.mdDoc "The name of table that maps unique login names to the passwords.";
|
||||||
};
|
};
|
||||||
updateTable = mkOption {
|
updateTable = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
example = "users_updates";
|
example = "users_updates";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The name of the table used for password alteration. If not defined, the value
|
The name of the table used for password alteration. If not defined, the value
|
||||||
of the <literal>table</literal> option will be used instead.
|
of the `table` option will be used instead.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
userColumn = mkOption {
|
userColumn = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "username";
|
example = "username";
|
||||||
description = "The name of the column that contains a unix login name.";
|
description = lib.mdDoc "The name of the column that contains a unix login name.";
|
||||||
};
|
};
|
||||||
passwordColumn = mkOption {
|
passwordColumn = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "password";
|
example = "password";
|
||||||
description = "The name of the column that contains a (encrypted) password string.";
|
description = lib.mdDoc "The name of the column that contains a (encrypted) password string.";
|
||||||
};
|
};
|
||||||
statusColumn = mkOption {
|
statusColumn = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
example = "status";
|
example = "status";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The name of the column or an SQL expression that indicates the status of
|
The name of the column or an SQL expression that indicates the status of
|
||||||
the user. The status is expressed by the combination of two bitfields
|
the user. The status is expressed by the combination of two bitfields
|
||||||
shown below:
|
shown below:
|
||||||
|
|
||||||
<itemizedlist>
|
- `bit 0 (0x01)`:
|
||||||
<listitem>
|
if flagged, `pam_mysql` deems the account to be expired and
|
||||||
<para>
|
returns `PAM_ACCT_EXPIRED`. That is, the account is supposed
|
||||||
<literal>bit 0 (0x01)</literal>:
|
to no longer be available. Note this doesn't mean that `pam_mysql`
|
||||||
if flagged, <literal>pam_mysql</literal> deems the account to be expired and
|
rejects further authentication operations.
|
||||||
returns <literal>PAM_ACCT_EXPIRED</literal>. That is, the account is supposed
|
- `bit 1 (0x02)`:
|
||||||
to no longer be available. Note this doesn't mean that <literal>pam_mysql</literal>
|
if flagged, `pam_mysql` deems the authentication token
|
||||||
rejects further authentication operations.
|
(password) to be expired and returns `PAM_NEW_AUTHTOK_REQD`.
|
||||||
</para>
|
This ends up requiring that the user enter a new password.
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<literal>bit 1 (0x02)</literal>:
|
|
||||||
if flagged, <literal>pam_mysql</literal> deems the authentication token
|
|
||||||
(password) to be expired and returns <literal>PAM_NEW_AUTHTOK_REQD</literal>.
|
|
||||||
This ends up requiring that the user enter a new password.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
passwordCrypt = mkOption {
|
passwordCrypt = mkOption {
|
||||||
|
@ -101,101 +91,59 @@ in
|
||||||
"8" "sha512"
|
"8" "sha512"
|
||||||
"9" "sha256"
|
"9" "sha256"
|
||||||
];
|
];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The method to encrypt the user's password:
|
The method to encrypt the user's password:
|
||||||
|
|
||||||
<itemizedlist>
|
- `0` (or `"plain"`):
|
||||||
<listitem>
|
No encryption. Passwords are stored in plaintext. HIGHLY DISCOURAGED.
|
||||||
<para>
|
- `1` (or `"Y"`):
|
||||||
<literal>0</literal> (or <literal>"plain"</literal>):
|
Use crypt(3) function.
|
||||||
No encryption. Passwords are stored in plaintext. HIGHLY DISCOURAGED.
|
- `2` (or `"mysql"`):
|
||||||
</para>
|
Use the MySQL PASSWORD() function. It is possible that the encryption function used
|
||||||
</listitem>
|
by `pam_mysql` is different from that of the MySQL server, as
|
||||||
<listitem>
|
`pam_mysql` uses the function defined in MySQL's C-client API
|
||||||
<para>
|
instead of using PASSWORD() SQL function in the query.
|
||||||
<literal>1</literal> (or <literal>"Y"</literal>):
|
- `3` (or `"md5"`):
|
||||||
Use crypt(3) function.
|
Use plain hex MD5.
|
||||||
</para>
|
- `4` (or `"sha1"`):
|
||||||
</listitem>
|
Use plain hex SHA1.
|
||||||
<listitem>
|
- `5` (or `"drupal7"`):
|
||||||
<para>
|
Use Drupal7 salted passwords.
|
||||||
<literal>2</literal> (or <literal>"mysql"</literal>):
|
- `6` (or `"joomla15"`):
|
||||||
Use the MySQL PASSWORD() function. It is possible that the encryption function used
|
Use Joomla15 salted passwords.
|
||||||
by <literal>pam_mysql</literal> is different from that of the MySQL server, as
|
- `7` (or `"ssha"`):
|
||||||
<literal>pam_mysql</literal> uses the function defined in MySQL's C-client API
|
Use ssha hashed passwords.
|
||||||
instead of using PASSWORD() SQL function in the query.
|
- `8` (or `"sha512"`):
|
||||||
</para>
|
Use sha512 hashed passwords.
|
||||||
</listitem>
|
- `9` (or `"sha256"`):
|
||||||
<listitem>
|
Use sha256 hashed passwords.
|
||||||
<para>
|
|
||||||
<literal>3</literal> (or <literal>"md5"</literal>):
|
|
||||||
Use plain hex MD5.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<literal>4</literal> (or <literal>"sha1"</literal>):
|
|
||||||
Use plain hex SHA1.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<literal>5</literal> (or <literal>"drupal7"</literal>):
|
|
||||||
Use Drupal7 salted passwords.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<literal>6</literal> (or <literal>"joomla15"</literal>):
|
|
||||||
Use Joomla15 salted passwords.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<literal>7</literal> (or <literal>"ssha"</literal>):
|
|
||||||
Use ssha hashed passwords.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<literal>8</literal> (or <literal>"sha512"</literal>):
|
|
||||||
Use sha512 hashed passwords.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<literal>9</literal> (or <literal>"sha256"</literal>):
|
|
||||||
Use sha256 hashed passwords.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
cryptDefault = mkOption {
|
cryptDefault = mkOption {
|
||||||
type = types.nullOr (types.enum [ "md5" "sha256" "sha512" "blowfish" ]);
|
type = types.nullOr (types.enum [ "md5" "sha256" "sha512" "blowfish" ]);
|
||||||
default = null;
|
default = null;
|
||||||
example = "blowfish";
|
example = "blowfish";
|
||||||
description = "The default encryption method to use for <literal>passwordCrypt = 1</literal>.";
|
description = lib.mdDoc "The default encryption method to use for `passwordCrypt = 1`.";
|
||||||
};
|
};
|
||||||
where = mkOption {
|
where = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
example = "host.name='web' AND user.active=1";
|
example = "host.name='web' AND user.active=1";
|
||||||
description = "Additional criteria for the query.";
|
description = lib.mdDoc "Additional criteria for the query.";
|
||||||
};
|
};
|
||||||
verbose = mkOption {
|
verbose = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
If enabled, produces logs with detailed messages that describes what
|
If enabled, produces logs with detailed messages that describes what
|
||||||
<literal>pam_mysql</literal> is doing. May be useful for debugging.
|
`pam_mysql` is doing. May be useful for debugging.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
disconnectEveryOperation = mkOption {
|
disconnectEveryOperation = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
By default, <literal>pam_mysql</literal> keeps the connection to the MySQL
|
By default, `pam_mysql` keeps the connection to the MySQL
|
||||||
database until the session is closed. If this option is set to true it
|
database until the session is closed. If this option is set to true it
|
||||||
disconnects every time the PAM operation has finished. This option may
|
disconnects every time the PAM operation has finished. This option may
|
||||||
be useful in case the session lasts quite long.
|
be useful in case the session lasts quite long.
|
||||||
|
@ -205,17 +153,17 @@ in
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = "Enables logging of authentication attempts in the MySQL database.";
|
description = lib.mdDoc "Enables logging of authentication attempts in the MySQL database.";
|
||||||
};
|
};
|
||||||
table = mkOption {
|
table = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "logs";
|
example = "logs";
|
||||||
description = "The name of the table to which logs are written.";
|
description = lib.mdDoc "The name of the table to which logs are written.";
|
||||||
};
|
};
|
||||||
msgColumn = mkOption {
|
msgColumn = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "msg";
|
example = "msg";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The name of the column in the log table to which the description
|
The name of the column in the log table to which the description
|
||||||
of the performed operation is stored.
|
of the performed operation is stored.
|
||||||
'';
|
'';
|
||||||
|
@ -223,7 +171,7 @@ in
|
||||||
userColumn = mkOption {
|
userColumn = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "user";
|
example = "user";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The name of the column in the log table to which the name of the
|
The name of the column in the log table to which the name of the
|
||||||
user being authenticated is stored.
|
user being authenticated is stored.
|
||||||
'';
|
'';
|
||||||
|
@ -231,16 +179,16 @@ in
|
||||||
pidColumn = mkOption {
|
pidColumn = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "pid";
|
example = "pid";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The name of the column in the log table to which the pid of the
|
The name of the column in the log table to which the pid of the
|
||||||
process utilising the <literal>pam_mysql's</literal> authentication
|
process utilising the `pam_mysql's` authentication
|
||||||
service is stored.
|
service is stored.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
hostColumn = mkOption {
|
hostColumn = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "host";
|
example = "host";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The name of the column in the log table to which the name of the user
|
The name of the column in the log table to which the name of the user
|
||||||
being authenticated is stored.
|
being authenticated is stored.
|
||||||
'';
|
'';
|
||||||
|
@ -248,17 +196,16 @@ in
|
||||||
rHostColumn = mkOption {
|
rHostColumn = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "rhost";
|
example = "rhost";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The name of the column in the log table to which the name of the remote
|
The name of the column in the log table to which the name of the remote
|
||||||
host that initiates the session is stored. The value is supposed to be
|
host that initiates the session is stored. The value is supposed to be
|
||||||
set by the PAM-aware application with <literal>pam_set_item(PAM_RHOST)
|
set by the PAM-aware application with `pam_set_item(PAM_RHOST)`.
|
||||||
</literal>.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
timeColumn = mkOption {
|
timeColumn = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "timestamp";
|
example = "timestamp";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The name of the column in the log table to which the timestamp of the
|
The name of the column in the log table to which the timestamp of the
|
||||||
log entry is stored.
|
log entry is stored.
|
||||||
'';
|
'';
|
||||||
|
@ -268,11 +215,11 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
nss = mkOption {
|
nss = mkOption {
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Settings for <literal>libnss-mysql</literal>.
|
Settings for `libnss-mysql`.
|
||||||
|
|
||||||
All examples are from the <link xlink:href="https://github.com/saknopper/libnss-mysql/tree/master/sample/minimal">minimal example</link>
|
All examples are from the [minimal example](https://github.com/saknopper/libnss-mysql/tree/master/sample/minimal)
|
||||||
of <literal>libnss-mysql</literal>, but they are modified with NixOS paths for bash.
|
of `libnss-mysql`, but they are modified with NixOS paths for bash.
|
||||||
'';
|
'';
|
||||||
type = types.submodule {
|
type = types.submodule {
|
||||||
options = {
|
options = {
|
||||||
|
@ -285,9 +232,8 @@ in
|
||||||
WHERE username='%1$s' \
|
WHERE username='%1$s' \
|
||||||
LIMIT 1
|
LIMIT 1
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
SQL query for the <link
|
SQL query for the [getpwnam](https://man7.org/linux/man-pages/man3/getpwnam.3.html)
|
||||||
xlink:href="https://man7.org/linux/man-pages/man3/getpwnam.3.html">getpwnam</link>
|
|
||||||
syscall.
|
syscall.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -300,9 +246,8 @@ in
|
||||||
WHERE uid='%1$u' \
|
WHERE uid='%1$u' \
|
||||||
LIMIT 1
|
LIMIT 1
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
SQL query for the <link
|
SQL query for the [getpwuid](https://man7.org/linux/man-pages/man3/getpwuid.3.html)
|
||||||
xlink:href="https://man7.org/linux/man-pages/man3/getpwuid.3.html">getpwuid</link>
|
|
||||||
syscall.
|
syscall.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -315,9 +260,8 @@ in
|
||||||
WHERE username='%1$s' \
|
WHERE username='%1$s' \
|
||||||
LIMIT 1
|
LIMIT 1
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
SQL query for the <link
|
SQL query for the [getspnam](https://man7.org/linux/man-pages/man3/getspnam.3.html)
|
||||||
xlink:href="https://man7.org/linux/man-pages/man3/getspnam.3.html">getspnam</link>
|
|
||||||
syscall.
|
syscall.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -327,9 +271,8 @@ in
|
||||||
example = literalExpression ''
|
example = literalExpression ''
|
||||||
SELECT username,'x',uid,'5000','MySQL User', CONCAT('/home/',username),'/run/sw/current-system/bin/bash' FROM users
|
SELECT username,'x',uid,'5000','MySQL User', CONCAT('/home/',username),'/run/sw/current-system/bin/bash' FROM users
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
SQL query for the <link
|
SQL query for the [getpwent](https://man7.org/linux/man-pages/man3/getpwent.3.html)
|
||||||
xlink:href="https://man7.org/linux/man-pages/man3/getpwent.3.html">getpwent</link>
|
|
||||||
syscall.
|
syscall.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -339,9 +282,8 @@ in
|
||||||
example = literalExpression ''
|
example = literalExpression ''
|
||||||
SELECT username,password,'1','0','99999','0','0','-1','0' FROM users
|
SELECT username,password,'1','0','99999','0','0','-1','0' FROM users
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
SQL query for the <link
|
SQL query for the [getspent](https://man7.org/linux/man-pages/man3/getspent.3.html)
|
||||||
xlink:href="https://man7.org/linux/man-pages/man3/getspent.3.html">getspent</link>
|
|
||||||
syscall.
|
syscall.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -351,9 +293,8 @@ in
|
||||||
example = literalExpression ''
|
example = literalExpression ''
|
||||||
SELECT name,password,gid FROM groups WHERE name='%1$s' LIMIT 1
|
SELECT name,password,gid FROM groups WHERE name='%1$s' LIMIT 1
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
SQL query for the <link
|
SQL query for the [getgrnam](https://man7.org/linux/man-pages/man3/getgrnam.3.html)
|
||||||
xlink:href="https://man7.org/linux/man-pages/man3/getgrnam.3.html">getgrnam</link>
|
|
||||||
syscall.
|
syscall.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -363,9 +304,8 @@ in
|
||||||
example = literalExpression ''
|
example = literalExpression ''
|
||||||
SELECT name,password,gid FROM groups WHERE gid='%1$u' LIMIT 1
|
SELECT name,password,gid FROM groups WHERE gid='%1$u' LIMIT 1
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
SQL query for the <link
|
SQL query for the [getgrgid](https://man7.org/linux/man-pages/man3/getgrgid.3.html)
|
||||||
xlink:href="https://man7.org/linux/man-pages/man3/getgrgid.3.html">getgrgid</link>
|
|
||||||
syscall.
|
syscall.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -375,9 +315,8 @@ in
|
||||||
example = literalExpression ''
|
example = literalExpression ''
|
||||||
SELECT name,password,gid FROM groups
|
SELECT name,password,gid FROM groups
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
SQL query for the <link
|
SQL query for the [getgrent](https://man7.org/linux/man-pages/man3/getgrent.3.html)
|
||||||
xlink:href="https://man7.org/linux/man-pages/man3/getgrent.3.html">getgrent</link>
|
|
||||||
syscall.
|
syscall.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -387,9 +326,8 @@ in
|
||||||
example = literalExpression ''
|
example = literalExpression ''
|
||||||
SELECT username FROM grouplist WHERE gid='%1$u'
|
SELECT username FROM grouplist WHERE gid='%1$u'
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
SQL query for the <link
|
SQL query for the [memsbygid](https://man7.org/linux/man-pages/man3/memsbygid.3.html)
|
||||||
xlink:href="https://man7.org/linux/man-pages/man3/memsbygid.3.html">memsbygid</link>
|
|
||||||
syscall.
|
syscall.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -399,9 +337,8 @@ in
|
||||||
example = literalExpression ''
|
example = literalExpression ''
|
||||||
SELECT gid FROM grouplist WHERE username='%1$s'
|
SELECT gid FROM grouplist WHERE username='%1$s'
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
SQL query for the <link
|
SQL query for the [gidsbymem](https://man7.org/linux/man-pages/man3/gidsbymem.3.html)
|
||||||
xlink:href="https://man7.org/linux/man-pages/man3/gidsbymem.3.html">gidsbymem</link>
|
|
||||||
syscall.
|
syscall.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -35,7 +35,7 @@ in
|
||||||
|
|
||||||
networking.hostFiles = lib.mkOption {
|
networking.hostFiles = lib.mkOption {
|
||||||
type = types.listOf types.path;
|
type = types.listOf types.path;
|
||||||
defaultText = literalDocBook "Hosts from <option>networking.hosts</option> and <option>networking.extraHosts</option>";
|
defaultText = literalMD "Hosts from {option}`networking.hosts` and {option}`networking.extraHosts`";
|
||||||
example = literalExpression ''[ "''${pkgs.my-blocklist-package}/share/my-blocklist/hosts" ]'';
|
example = literalExpression ''[ "''${pkgs.my-blocklist-package}/share/my-blocklist/hosts" ]'';
|
||||||
description = lib.mdDoc ''
|
description = lib.mdDoc ''
|
||||||
Files that should be concatenated together to form {file}`/etc/hosts`.
|
Files that should be concatenated together to form {file}`/etc/hosts`.
|
||||||
|
@ -141,7 +141,7 @@ in
|
||||||
type = types.attrs;
|
type = types.attrs;
|
||||||
internal = true;
|
internal = true;
|
||||||
default = {};
|
default = {};
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Environment variables used for the network proxy.
|
Environment variables used for the network proxy.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -27,9 +27,13 @@ with lib;
|
||||||
fonts.fontconfig.enable = false;
|
fonts.fontconfig.enable = false;
|
||||||
|
|
||||||
nixpkgs.overlays = singleton (const (super: {
|
nixpkgs.overlays = singleton (const (super: {
|
||||||
|
beam = super.beam_nox;
|
||||||
cairo = super.cairo.override { x11Support = false; };
|
cairo = super.cairo.override { x11Support = false; };
|
||||||
dbus = super.dbus.override { x11Support = false; };
|
dbus = super.dbus.override { x11Support = false; };
|
||||||
beam = super.beam_nox;
|
ffmpeg_4 = super.ffmpeg_4.override { sdlSupport = false; vdpauSupport = false; };
|
||||||
|
ffmpeg_5 = super.ffmpeg_5.override { sdlSupport = false; vdpauSupport = false; };
|
||||||
|
gobject-introspection = super.gobject-introspection.override { x11Support = false; };
|
||||||
|
libva = super.libva-minimal;
|
||||||
networkmanager-fortisslvpn = super.networkmanager-fortisslvpn.override { withGnome = false; };
|
networkmanager-fortisslvpn = super.networkmanager-fortisslvpn.override { withGnome = false; };
|
||||||
networkmanager-iodine = super.networkmanager-iodine.override { withGnome = false; };
|
networkmanager-iodine = super.networkmanager-iodine.override { withGnome = false; };
|
||||||
networkmanager-l2tp = super.networkmanager-l2tp.override { withGnome = false; };
|
networkmanager-l2tp = super.networkmanager-l2tp.override { withGnome = false; };
|
||||||
|
@ -37,7 +41,6 @@ with lib;
|
||||||
networkmanager-openvpn = super.networkmanager-openvpn.override { withGnome = false; };
|
networkmanager-openvpn = super.networkmanager-openvpn.override { withGnome = false; };
|
||||||
networkmanager-sstp = super.networkmanager-vpnc.override { withGnome = false; };
|
networkmanager-sstp = super.networkmanager-vpnc.override { withGnome = false; };
|
||||||
networkmanager-vpnc = super.networkmanager-vpnc.override { withGnome = false; };
|
networkmanager-vpnc = super.networkmanager-vpnc.override { withGnome = false; };
|
||||||
gobject-introspection = super.gobject-introspection.override { x11Support = false; };
|
|
||||||
qemu = super.qemu.override { gtkSupport = false; spiceSupport = false; sdlSupport = false; };
|
qemu = super.qemu.override { gtkSupport = false; spiceSupport = false; sdlSupport = false; };
|
||||||
}));
|
}));
|
||||||
};
|
};
|
||||||
|
|
|
@ -190,17 +190,17 @@ in {
|
||||||
|
|
||||||
zeroconf = {
|
zeroconf = {
|
||||||
discovery.enable =
|
discovery.enable =
|
||||||
mkEnableOption "discovery of pulseaudio sinks in the local network";
|
mkEnableOption (lib.mdDoc "discovery of pulseaudio sinks in the local network");
|
||||||
publish.enable =
|
publish.enable =
|
||||||
mkEnableOption "publishing the pulseaudio sink in the local network";
|
mkEnableOption (lib.mdDoc "publishing the pulseaudio sink in the local network");
|
||||||
};
|
};
|
||||||
|
|
||||||
# TODO: enable by default?
|
# TODO: enable by default?
|
||||||
tcp = {
|
tcp = {
|
||||||
enable = mkEnableOption "tcp streaming support";
|
enable = mkEnableOption (lib.mdDoc "tcp streaming support");
|
||||||
|
|
||||||
anonymousClients = {
|
anonymousClients = {
|
||||||
allowAll = mkEnableOption "all anonymous clients to stream to the server";
|
allowAll = mkEnableOption (lib.mdDoc "all anonymous clients to stream to the server");
|
||||||
allowedIpRanges = mkOption {
|
allowedIpRanges = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [];
|
default = [];
|
||||||
|
@ -263,7 +263,7 @@ in {
|
||||||
(drv: drv.override { pulseaudio = overriddenPackage; })
|
(drv: drv.override { pulseaudio = overriddenPackage; })
|
||||||
cfg.extraModules;
|
cfg.extraModules;
|
||||||
modulePaths = builtins.map
|
modulePaths = builtins.map
|
||||||
(drv: "${drv}/${overriddenPackage.pulseDir}/modules")
|
(drv: "${drv}/lib/pulseaudio/modules")
|
||||||
# User-provided extra modules take precedence
|
# User-provided extra modules take precedence
|
||||||
(overriddenModules ++ [ overriddenPackage ]);
|
(overriddenModules ++ [ overriddenPackage ]);
|
||||||
in lib.concatStringsSep ":" modulePaths;
|
in lib.concatStringsSep ":" modulePaths;
|
||||||
|
|
|
@ -27,7 +27,7 @@ in
|
||||||
options = {
|
options = {
|
||||||
qt5 = {
|
qt5 = {
|
||||||
|
|
||||||
enable = mkEnableOption "Qt5 theming configuration";
|
enable = mkEnableOption (lib.mdDoc "Qt5 theming configuration");
|
||||||
|
|
||||||
platformTheme = mkOption {
|
platformTheme = mkOption {
|
||||||
type = types.enum [
|
type = types.enum [
|
||||||
|
|
|
@ -140,9 +140,9 @@ in
|
||||||
example = literalExpression ''"''${pkgs.dash}/bin/dash"'';
|
example = literalExpression ''"''${pkgs.dash}/bin/dash"'';
|
||||||
type = types.path;
|
type = types.path;
|
||||||
visible = false;
|
visible = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The shell executable that is linked system-wide to
|
The shell executable that is linked system-wide to
|
||||||
<literal>/bin/sh</literal>. Please note that NixOS assumes all
|
`/bin/sh`. Please note that NixOS assumes all
|
||||||
over the place that shell to be Bash, so override the default
|
over the place that shell to be Bash, so override the default
|
||||||
setting only if you know exactly what you're doing.
|
setting only if you know exactly what you're doing.
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -73,8 +73,8 @@ let
|
||||||
label = mkOption {
|
label = mkOption {
|
||||||
example = "swap";
|
example = "swap";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Label of the device. Can be used instead of <varname>device</varname>.
|
Label of the device. Can be used instead of {var}`device`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -78,10 +78,11 @@ in
|
||||||
defaultPackages = mkOption {
|
defaultPackages = mkOption {
|
||||||
type = types.listOf types.package;
|
type = types.listOf types.package;
|
||||||
default = defaultPackages;
|
default = defaultPackages;
|
||||||
defaultText = literalDocBook ''
|
defaultText = literalMD ''
|
||||||
these packages, with their <literal>meta.priority</literal> numerically increased
|
these packages, with their `meta.priority` numerically increased
|
||||||
(thus lowering their installation priority):
|
(thus lowering their installation priority):
|
||||||
<programlisting>${defaultPackagesText}</programlisting>
|
|
||||||
|
${defaultPackagesText}
|
||||||
'';
|
'';
|
||||||
example = [];
|
example = [];
|
||||||
description = lib.mdDoc ''
|
description = lib.mdDoc ''
|
||||||
|
@ -131,7 +132,7 @@ in
|
||||||
|
|
||||||
path = mkOption {
|
path = mkOption {
|
||||||
internal = true;
|
internal = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The packages you want in the boot environment.
|
The packages you want in the boot environment.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -17,35 +17,35 @@ let
|
||||||
]);
|
]);
|
||||||
|
|
||||||
passwordDescription = ''
|
passwordDescription = ''
|
||||||
The options <option>hashedPassword</option>,
|
The options {option}`hashedPassword`,
|
||||||
<option>password</option> and <option>passwordFile</option>
|
{option}`password` and {option}`passwordFile`
|
||||||
controls what password is set for the user.
|
controls what password is set for the user.
|
||||||
<option>hashedPassword</option> overrides both
|
{option}`hashedPassword` overrides both
|
||||||
<option>password</option> and <option>passwordFile</option>.
|
{option}`password` and {option}`passwordFile`.
|
||||||
<option>password</option> overrides <option>passwordFile</option>.
|
{option}`password` overrides {option}`passwordFile`.
|
||||||
If none of these three options are set, no password is assigned to
|
If none of these three options are set, no password is assigned to
|
||||||
the user, and the user will not be able to do password logins.
|
the user, and the user will not be able to do password logins.
|
||||||
If the option <option>users.mutableUsers</option> is true, the
|
If the option {option}`users.mutableUsers` is true, the
|
||||||
password defined in one of the three options will only be set when
|
password defined in one of the three options will only be set when
|
||||||
the user is created for the first time. After that, you are free to
|
the user is created for the first time. After that, you are free to
|
||||||
change the password with the ordinary user management commands. If
|
change the password with the ordinary user management commands. If
|
||||||
<option>users.mutableUsers</option> is false, you cannot change
|
{option}`users.mutableUsers` is false, you cannot change
|
||||||
user passwords, they will always be set according to the password
|
user passwords, they will always be set according to the password
|
||||||
options.
|
options.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
hashedPasswordDescription = ''
|
hashedPasswordDescription = ''
|
||||||
To generate a hashed password run <literal>mkpasswd -m sha-512</literal>.
|
To generate a hashed password run `mkpasswd -m sha-512`.
|
||||||
|
|
||||||
If set to an empty string (<literal>""</literal>), this user will
|
If set to an empty string (`""`), this user will
|
||||||
be able to log in without being asked for a password (but not via remote
|
be able to log in without being asked for a password (but not via remote
|
||||||
services such as SSH, or indirectly via <command>su</command> or
|
services such as SSH, or indirectly via {command}`su` or
|
||||||
<command>sudo</command>). This should only be used for e.g. bootable
|
{command}`sudo`). This should only be used for e.g. bootable
|
||||||
live systems. Note: this is different from setting an empty password,
|
live systems. Note: this is different from setting an empty password,
|
||||||
which can be achieved using <option>users.users.<name?>.password</option>.
|
which can be achieved using {option}`users.users.<name?>.password`.
|
||||||
|
|
||||||
If set to <literal>null</literal> (default) this user will not
|
If set to `null` (default) this user will not
|
||||||
be able to log in using a password (i.e. via <command>login</command>
|
be able to log in using a password (i.e. via {command}`login`
|
||||||
command).
|
command).
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -234,7 +234,7 @@ let
|
||||||
hashedPassword = mkOption {
|
hashedPassword = mkOption {
|
||||||
type = with types; nullOr (passwdEntry str);
|
type = with types; nullOr (passwdEntry str);
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies the hashed password for the user.
|
Specifies the hashed password for the user.
|
||||||
${passwordDescription}
|
${passwordDescription}
|
||||||
${hashedPasswordDescription}
|
${hashedPasswordDescription}
|
||||||
|
@ -244,7 +244,7 @@ let
|
||||||
password = mkOption {
|
password = mkOption {
|
||||||
type = with types; nullOr str;
|
type = with types; nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies the (clear text) password for the user.
|
Specifies the (clear text) password for the user.
|
||||||
Warning: do not set confidential information here
|
Warning: do not set confidential information here
|
||||||
because it is world-readable in the Nix store. This option
|
because it is world-readable in the Nix store. This option
|
||||||
|
@ -256,11 +256,11 @@ let
|
||||||
passwordFile = mkOption {
|
passwordFile = mkOption {
|
||||||
type = with types; nullOr str;
|
type = with types; nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The full path to a file that contains the user's password. The password
|
The full path to a file that contains the user's password. The password
|
||||||
file is read on each system activation. The file should contain
|
file is read on each system activation. The file should contain
|
||||||
exactly one line, which should be the password in an encrypted form
|
exactly one line, which should be the password in an encrypted form
|
||||||
that is suitable for the <literal>chpasswd -e</literal> command.
|
that is suitable for the `chpasswd -e` command.
|
||||||
${passwordDescription}
|
${passwordDescription}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -268,13 +268,13 @@ let
|
||||||
initialHashedPassword = mkOption {
|
initialHashedPassword = mkOption {
|
||||||
type = with types; nullOr (passwdEntry str);
|
type = with types; nullOr (passwdEntry str);
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Specifies the initial hashed password for the user, i.e. the
|
Specifies the initial hashed password for the user, i.e. the
|
||||||
hashed password assigned if the user does not already
|
hashed password assigned if the user does not already
|
||||||
exist. If <option>users.mutableUsers</option> is true, the
|
exist. If {option}`users.mutableUsers` is true, the
|
||||||
password can be changed subsequently using the
|
password can be changed subsequently using the
|
||||||
<command>passwd</command> command. Otherwise, it's
|
{command}`passwd` command. Otherwise, it's
|
||||||
equivalent to setting the <option>hashedPassword</option> option.
|
equivalent to setting the {option}`hashedPassword` option.
|
||||||
|
|
||||||
${hashedPasswordDescription}
|
${hashedPasswordDescription}
|
||||||
'';
|
'';
|
||||||
|
@ -458,25 +458,25 @@ in {
|
||||||
users.mutableUsers = mkOption {
|
users.mutableUsers = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
If set to <literal>true</literal>, you are free to add new users and groups to the system
|
If set to `true`, you are free to add new users and groups to the system
|
||||||
with the ordinary <literal>useradd</literal> and
|
with the ordinary `useradd` and
|
||||||
<literal>groupadd</literal> commands. On system activation, the
|
`groupadd` commands. On system activation, the
|
||||||
existing contents of the <literal>/etc/passwd</literal> and
|
existing contents of the `/etc/passwd` and
|
||||||
<literal>/etc/group</literal> files will be merged with the
|
`/etc/group` files will be merged with the
|
||||||
contents generated from the <literal>users.users</literal> and
|
contents generated from the `users.users` and
|
||||||
<literal>users.groups</literal> options.
|
`users.groups` options.
|
||||||
The initial password for a user will be set
|
The initial password for a user will be set
|
||||||
according to <literal>users.users</literal>, but existing passwords
|
according to `users.users`, but existing passwords
|
||||||
will not be changed.
|
will not be changed.
|
||||||
|
|
||||||
<warning><para>
|
::: {.warning}
|
||||||
If set to <literal>false</literal>, the contents of the user and
|
If set to `false`, the contents of the user and
|
||||||
group files will simply be replaced on system activation. This also
|
group files will simply be replaced on system activation. This also
|
||||||
holds for the user passwords; all changed
|
holds for the user passwords; all changed
|
||||||
passwords will be reset according to the
|
passwords will be reset according to the
|
||||||
<literal>users.users</literal> configuration on activation.
|
`users.users` configuration on activation.
|
||||||
</para></warning>
|
:::
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ in
|
||||||
|
|
||||||
options.xdg.portal = {
|
options.xdg.portal = {
|
||||||
enable =
|
enable =
|
||||||
mkEnableOption ''<link xlink:href="https://github.com/flatpak/xdg-desktop-portal">xdg desktop integration</link>'' // {
|
mkEnableOption (lib.mdDoc ''[xdg desktop integration](https://github.com/flatpak/xdg-desktop-portal)'') // {
|
||||||
default = false;
|
default = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -54,11 +54,11 @@ in
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
visible = false;
|
visible = false;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Sets environment variable <literal>GTK_USE_PORTAL</literal> to <literal>1</literal>.
|
Sets environment variable `GTK_USE_PORTAL` to `1`.
|
||||||
This will force GTK-based programs ran outside Flatpak to respect and use XDG Desktop Portals
|
This will force GTK-based programs ran outside Flatpak to respect and use XDG Desktop Portals
|
||||||
for features like file chooser but it is an unsupported hack that can easily break things.
|
for features like file chooser but it is an unsupported hack that can easily break things.
|
||||||
Defaults to <literal>false</literal> to respect its opt-in nature.
|
Defaults to `false` to respect its opt-in nature.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -12,13 +12,13 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
options.xdg.portal.lxqt = {
|
options.xdg.portal.lxqt = {
|
||||||
enable = mkEnableOption ''
|
enable = mkEnableOption (lib.mdDoc ''
|
||||||
the desktop portal for the LXQt desktop environment.
|
the desktop portal for the LXQt desktop environment.
|
||||||
|
|
||||||
This will add the <literal>lxqt.xdg-desktop-portal-lxqt</literal>
|
This will add the `lxqt.xdg-desktop-portal-lxqt`
|
||||||
package (with the extra Qt styles) into the
|
package (with the extra Qt styles) into the
|
||||||
<option>xdg.portal.extraPortals</option> option
|
{option}`xdg.portal.extraPortals` option
|
||||||
'';
|
'');
|
||||||
|
|
||||||
styles = mkOption {
|
styles = mkOption {
|
||||||
type = types.listOf types.package;
|
type = types.listOf types.package;
|
||||||
|
|
|
@ -14,13 +14,13 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
options.xdg.portal.wlr = {
|
options.xdg.portal.wlr = {
|
||||||
enable = mkEnableOption ''
|
enable = mkEnableOption (lib.mdDoc ''
|
||||||
desktop portal for wlroots-based desktops
|
desktop portal for wlroots-based desktops
|
||||||
|
|
||||||
This will add the <literal>xdg-desktop-portal-wlr</literal> package into
|
This will add the `xdg-desktop-portal-wlr` package into
|
||||||
the <option>xdg.portal.extraPortals</option> option, and provide the
|
the {option}`xdg.portal.extraPortals` option, and provide the
|
||||||
configuration file
|
configuration file
|
||||||
'';
|
'');
|
||||||
|
|
||||||
settings = mkOption {
|
settings = mkOption {
|
||||||
description = lib.mdDoc ''
|
description = lib.mdDoc ''
|
||||||
|
|
|
@ -73,10 +73,10 @@ in
|
||||||
default = 50;
|
default = 50;
|
||||||
type = types.int;
|
type = types.int;
|
||||||
description = lib.mdDoc ''
|
description = lib.mdDoc ''
|
||||||
Maximum amount of memory that can be used by the zram swap devices
|
Maximum total amount of memory that can be stored in the zram swap devices
|
||||||
(as a percentage of your total memory). Defaults to 1/2 of your total
|
(as a percentage of your total memory). Defaults to 1/2 of your total
|
||||||
RAM. Run `zramctl` to check how good memory is
|
RAM. Run `zramctl` to check how good memory is compressed.
|
||||||
compressed.
|
This doesn't define how much memory will be used by the zram swap devices.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -84,8 +84,9 @@ in
|
||||||
default = null;
|
default = null;
|
||||||
type = with types; nullOr int;
|
type = with types; nullOr int;
|
||||||
description = lib.mdDoc ''
|
description = lib.mdDoc ''
|
||||||
Maximum total amount of memory (in bytes) that can be used by the zram
|
Maximum total amount of memory (in bytes) that can be stored in the zram
|
||||||
swap devices.
|
swap devices.
|
||||||
|
This doesn't define how much memory will be used by the zram swap devices.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -7,10 +7,10 @@ in
|
||||||
{
|
{
|
||||||
options = {
|
options = {
|
||||||
hardware.brillo = {
|
hardware.brillo = {
|
||||||
enable = mkEnableOption ''
|
enable = mkEnableOption (lib.mdDoc ''
|
||||||
Enable brillo in userspace.
|
Enable brillo in userspace.
|
||||||
This will allow brightness control from users in the video group.
|
This will allow brightness control from users in the video group.
|
||||||
'';
|
'');
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ in
|
||||||
];
|
];
|
||||||
|
|
||||||
options.hardware.ckb-next = {
|
options.hardware.ckb-next = {
|
||||||
enable = mkEnableOption "the Corsair keyboard/mouse driver";
|
enable = mkEnableOption (lib.mdDoc "the Corsair keyboard/mouse driver");
|
||||||
|
|
||||||
gid = mkOption {
|
gid = mkOption {
|
||||||
type = types.nullOr types.int;
|
type = types.nullOr types.int;
|
||||||
|
|
|
@ -7,15 +7,15 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.programs.corectrl = {
|
options.programs.corectrl = {
|
||||||
enable = mkEnableOption ''
|
enable = mkEnableOption (lib.mdDoc ''
|
||||||
A tool to overclock amd graphics cards and processors.
|
A tool to overclock amd graphics cards and processors.
|
||||||
Add your user to the corectrl group to run corectrl without needing to enter your password
|
Add your user to the corectrl group to run corectrl without needing to enter your password
|
||||||
'';
|
'');
|
||||||
|
|
||||||
gpuOverclock = {
|
gpuOverclock = {
|
||||||
enable = mkEnableOption ''
|
enable = mkEnableOption (lib.mdDoc ''
|
||||||
true
|
true
|
||||||
'';
|
'');
|
||||||
ppfeaturemask = mkOption {
|
ppfeaturemask = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "0xfffd7fff";
|
default = "0xfffd7fff";
|
||||||
|
|
|
@ -6,7 +6,7 @@ let
|
||||||
in
|
in
|
||||||
with lib; {
|
with lib; {
|
||||||
options.hardware.cpu.amd.sev = {
|
options.hardware.cpu.amd.sev = {
|
||||||
enable = mkEnableOption "access to the AMD SEV device";
|
enable = mkEnableOption (lib.mdDoc "access to the AMD SEV device");
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
description = lib.mdDoc "Owner to assign to the SEV device.";
|
description = lib.mdDoc "Owner to assign to the SEV device.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
|
|
|
@ -20,7 +20,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
options.hardware.cpu.intel.sgx.provision = {
|
options.hardware.cpu.intel.sgx.provision = {
|
||||||
enable = mkEnableOption "access to the Intel SGX provisioning device";
|
enable = mkEnableOption (lib.mdDoc "access to the Intel SGX provisioning device");
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
description = lib.mdDoc "Owner to assign to the SGX provisioning device.";
|
description = lib.mdDoc "Owner to assign to the SGX provisioning device.";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
|
|
|
@ -14,6 +14,15 @@ let
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
filter = mkOption {
|
||||||
|
type = types.nullOr types.str;
|
||||||
|
default = null;
|
||||||
|
example = "*rpi*.dtb";
|
||||||
|
description = lib.mdDoc ''
|
||||||
|
Only apply to .dtb files matching glob expression.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
dtsFile = mkOption {
|
dtsFile = mkOption {
|
||||||
type = types.nullOr types.path;
|
type = types.nullOr types.path;
|
||||||
description = lib.mdDoc ''
|
description = lib.mdDoc ''
|
||||||
|
@ -150,6 +159,7 @@ in
|
||||||
'';
|
'';
|
||||||
type = types.listOf (types.coercedTo types.path (path: {
|
type = types.listOf (types.coercedTo types.path (path: {
|
||||||
name = baseNameOf path;
|
name = baseNameOf path;
|
||||||
|
filter = null;
|
||||||
dtboFile = path;
|
dtboFile = path;
|
||||||
}) overlayType);
|
}) overlayType);
|
||||||
description = lib.mdDoc ''
|
description = lib.mdDoc ''
|
||||||
|
@ -161,7 +171,7 @@ in
|
||||||
default = null;
|
default = null;
|
||||||
type = types.nullOr types.path;
|
type = types.nullOr types.path;
|
||||||
internal = true;
|
internal = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
A path containing the result of applying `overlays` to `kernelPackage`.
|
A path containing the result of applying `overlays` to `kernelPackage`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -3,7 +3,7 @@ let
|
||||||
cfg = config.hardware.flirc;
|
cfg = config.hardware.flirc;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.hardware.flirc.enable = lib.mkEnableOption "software to configure a Flirc USB device";
|
options.hardware.flirc.enable = lib.mkEnableOption (lib.mdDoc "software to configure a Flirc USB device");
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
environment.systemPackages = [ pkgs.flirc ];
|
environment.systemPackages = [ pkgs.flirc ];
|
||||||
|
|
|
@ -7,7 +7,7 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.hardware.gkraken = {
|
options.hardware.gkraken = {
|
||||||
enable = mkEnableOption "gkraken's udev rules for NZXT AIO liquid coolers";
|
enable = mkEnableOption (lib.mdDoc "gkraken's udev rules for NZXT AIO liquid coolers");
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -28,7 +28,7 @@ let
|
||||||
cfg = config.hardware.gpgSmartcards;
|
cfg = config.hardware.gpgSmartcards;
|
||||||
in {
|
in {
|
||||||
options.hardware.gpgSmartcards = {
|
options.hardware.gpgSmartcards = {
|
||||||
enable = mkEnableOption "udev rules for gnupg smart cards";
|
enable = mkEnableOption (lib.mdDoc "udev rules for gnupg smart cards");
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -8,11 +8,11 @@ in
|
||||||
|
|
||||||
{
|
{
|
||||||
options.hardware.i2c = {
|
options.hardware.i2c = {
|
||||||
enable = mkEnableOption ''
|
enable = mkEnableOption (lib.mdDoc ''
|
||||||
i2c devices support. By default access is granted to users in the "i2c"
|
i2c devices support. By default access is granted to users in the "i2c"
|
||||||
group (will be created if non-existent) and any user with a seat, meaning
|
group (will be created if non-existent) and any user with a seat, meaning
|
||||||
logged on the computer locally.
|
logged on the computer locally.
|
||||||
'';
|
'');
|
||||||
|
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
|
|
|
@ -6,7 +6,7 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.hardware.keyboard.teck = {
|
options.hardware.keyboard.teck = {
|
||||||
enable = mkEnableOption "non-root access to the firmware of TECK keyboards";
|
enable = mkEnableOption (lib.mdDoc "non-root access to the firmware of TECK keyboards");
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -6,12 +6,12 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.hardware.keyboard.uhk = {
|
options.hardware.keyboard.uhk = {
|
||||||
enable = mkEnableOption ''
|
enable = mkEnableOption (lib.mdDoc ''
|
||||||
non-root access to the firmware of UHK keyboards.
|
non-root access to the firmware of UHK keyboards.
|
||||||
You need it when you want to flash a new firmware on the keyboard.
|
You need it when you want to flash a new firmware on the keyboard.
|
||||||
Access to the keyboard is granted to users in the "input" group.
|
Access to the keyboard is granted to users in the "input" group.
|
||||||
You may want to install the uhk-agent package.
|
You may want to install the uhk-agent package.
|
||||||
'';
|
'');
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ in {
|
||||||
];
|
];
|
||||||
|
|
||||||
options.hardware.ksm = {
|
options.hardware.ksm = {
|
||||||
enable = mkEnableOption "Kernel Same-Page Merging";
|
enable = mkEnableOption (lib.mdDoc "Kernel Same-Page Merging");
|
||||||
sleep = mkOption {
|
sleep = mkOption {
|
||||||
type = types.nullOr types.int;
|
type = types.nullOr types.int;
|
||||||
default = null;
|
default = null;
|
||||||
|
|
|
@ -6,7 +6,7 @@ let
|
||||||
cfg = config.hardware.ledger;
|
cfg = config.hardware.ledger;
|
||||||
|
|
||||||
in {
|
in {
|
||||||
options.hardware.ledger.enable = mkEnableOption "udev rules for Ledger devices";
|
options.hardware.ledger.enable = mkEnableOption (lib.mdDoc "udev rules for Ledger devices");
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
services.udev.packages = [ pkgs.ledger-udev-rules ];
|
services.udev.packages = [ pkgs.ledger-udev-rules ];
|
||||||
|
|
|
@ -19,7 +19,7 @@ in
|
||||||
options.hardware.logitech = {
|
options.hardware.logitech = {
|
||||||
|
|
||||||
lcd = {
|
lcd = {
|
||||||
enable = mkEnableOption "Logitech LCD Devices";
|
enable = mkEnableOption (lib.mdDoc "Logitech LCD Devices");
|
||||||
|
|
||||||
startWhenNeeded = mkOption {
|
startWhenNeeded = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
|
@ -41,7 +41,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
wireless = {
|
wireless = {
|
||||||
enable = mkEnableOption "Logitech Wireless Devices";
|
enable = mkEnableOption (lib.mdDoc "Logitech Wireless Devices");
|
||||||
|
|
||||||
enableGraphical = mkOption {
|
enableGraphical = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
|
|
|
@ -71,7 +71,7 @@ in
|
||||||
package = mkOption {
|
package = mkOption {
|
||||||
type = types.package;
|
type = types.package;
|
||||||
internal = true;
|
internal = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The package that provides the OpenGL implementation.
|
The package that provides the OpenGL implementation.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -79,9 +79,9 @@ in
|
||||||
package32 = mkOption {
|
package32 = mkOption {
|
||||||
type = types.package;
|
type = types.package;
|
||||||
internal = true;
|
internal = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The package that provides the 32-bit OpenGL implementation on
|
The package that provides the 32-bit OpenGL implementation on
|
||||||
64-bit systems. Used when <option>driSupport32Bit</option> is
|
64-bit systems. Used when {option}`driSupport32Bit` is
|
||||||
set.
|
set.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -111,11 +111,11 @@ in
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
internal = true;
|
internal = true;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether the <literal>LD_LIBRARY_PATH</literal> environment variable
|
Whether the `LD_LIBRARY_PATH` environment variable
|
||||||
should be set to the locations of driver libraries. Drivers which
|
should be set to the locations of driver libraries. Drivers which
|
||||||
rely on overriding libraries should set this to true. Drivers which
|
rely on overriding libraries should set this to true. Drivers which
|
||||||
support <literal>libglvnd</literal> and other dispatch libraries
|
support `libglvnd` and other dispatch libraries
|
||||||
instead of overriding libraries should not set this.
|
instead of overriding libraries should not set this.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -49,9 +49,9 @@ in
|
||||||
{
|
{
|
||||||
options = {
|
options = {
|
||||||
hardware.openrazer = {
|
hardware.openrazer = {
|
||||||
enable = mkEnableOption ''
|
enable = mkEnableOption (lib.mdDoc ''
|
||||||
OpenRazer drivers and userspace daemon.
|
OpenRazer drivers and userspace daemon.
|
||||||
'';
|
'');
|
||||||
|
|
||||||
verboseLogging = mkOption {
|
verboseLogging = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
|
|
|
@ -48,7 +48,7 @@ in {
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
hardware.raid.HPSmartArray = {
|
hardware.raid.HPSmartArray = {
|
||||||
enable = mkEnableOption "HP Smart Array kernel modules and CLI utility";
|
enable = mkEnableOption (lib.mdDoc "HP Smart Array kernel modules and CLI utility");
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.hardware.saleae-logic = {
|
options.hardware.saleae-logic = {
|
||||||
enable = lib.mkEnableOption "udev rules for Saleae Logic devices";
|
enable = lib.mkEnableOption (lib.mdDoc "udev rules for Saleae Logic devices");
|
||||||
|
|
||||||
package = lib.mkOption {
|
package = lib.mkOption {
|
||||||
type = lib.types.package;
|
type = lib.types.package;
|
||||||
|
|
|
@ -36,7 +36,7 @@ in
|
||||||
meta.maintainers = with lib.maintainers; [ peterhoeg ];
|
meta.maintainers = with lib.maintainers; [ peterhoeg ];
|
||||||
|
|
||||||
options.hardware.sata.timeout = {
|
options.hardware.sata.timeout = {
|
||||||
enable = mkEnableOption "SATA drive timeouts";
|
enable = mkEnableOption (lib.mdDoc "SATA drive timeouts");
|
||||||
|
|
||||||
deciSeconds = mkOption {
|
deciSeconds = mkOption {
|
||||||
example = 70;
|
example = 70;
|
||||||
|
|
|
@ -57,7 +57,7 @@ let
|
||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
hardware.system76 = {
|
hardware.system76 = {
|
||||||
enableAll = mkEnableOption "all recommended configuration for system76 systems";
|
enableAll = mkEnableOption (lib.mdDoc "all recommended configuration for system76 systems");
|
||||||
|
|
||||||
firmware-daemon.enable = mkOption {
|
firmware-daemon.enable = mkOption {
|
||||||
default = cfg.enableAll;
|
default = cfg.enableAll;
|
||||||
|
|
|
@ -8,23 +8,23 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.hardware.tuxedo-keyboard = {
|
options.hardware.tuxedo-keyboard = {
|
||||||
enable = mkEnableOption ''
|
enable = mkEnableOption (lib.mdDoc ''
|
||||||
Enables the tuxedo-keyboard driver.
|
Enables the tuxedo-keyboard driver.
|
||||||
|
|
||||||
To configure the driver, pass the options to the <option>boot.kernelParams</option> configuration.
|
To configure the driver, pass the options to the {option}`boot.kernelParams` configuration.
|
||||||
There are several parameters you can change. It's best to check at the source code description which options are supported.
|
There are several parameters you can change. It's best to check at the source code description which options are supported.
|
||||||
You can find all the supported parameters at: <link xlink:href="https://github.com/tuxedocomputers/tuxedo-keyboard#kernelparam"/>
|
You can find all the supported parameters at: <https://github.com/tuxedocomputers/tuxedo-keyboard#kernelparam>
|
||||||
|
|
||||||
In order to use the <literal>custom</literal> lighting with the maximumg brightness and a color of <literal>0xff0a0a</literal> one would put pass <option>boot.kernelParams</option> like this:
|
In order to use the `custom` lighting with the maximumg brightness and a color of `0xff0a0a` one would put pass {option}`boot.kernelParams` like this:
|
||||||
|
|
||||||
<programlisting>
|
```
|
||||||
boot.kernelParams = [
|
boot.kernelParams = [
|
||||||
"tuxedo_keyboard.mode=0"
|
"tuxedo_keyboard.mode=0"
|
||||||
"tuxedo_keyboard.brightness=255"
|
"tuxedo_keyboard.brightness=255"
|
||||||
"tuxedo_keyboard.color_left=0xff0a0a"
|
"tuxedo_keyboard.color_left=0xff0a0a"
|
||||||
];
|
];
|
||||||
</programlisting>
|
```
|
||||||
'';
|
'');
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable
|
config = mkIf cfg.enable
|
||||||
|
|
|
@ -10,7 +10,7 @@ let
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
options.hardware.ubertooth = {
|
options.hardware.ubertooth = {
|
||||||
enable = mkEnableOption "Enable the Ubertooth software and its udev rules.";
|
enable = mkEnableOption (lib.mdDoc "Enable the Ubertooth software and its udev rules.");
|
||||||
|
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
|
|
|
@ -4,7 +4,7 @@ let
|
||||||
cfg = config.hardware.uinput;
|
cfg = config.hardware.uinput;
|
||||||
in {
|
in {
|
||||||
options.hardware.uinput = {
|
options.hardware.uinput = {
|
||||||
enable = lib.mkEnableOption "uinput support";
|
enable = lib.mkEnableOption (lib.mdDoc "uinput support");
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
|
|
|
@ -12,7 +12,7 @@ in
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
options.hardware.mwProCapture.enable = mkEnableOption "Magewell Pro Capture family kernel module";
|
options.hardware.mwProCapture.enable = mkEnableOption (lib.mdDoc "Magewell Pro Capture family kernel module");
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
{
|
{
|
||||||
options.hardware.video.hidpi.enable = mkEnableOption "Font/DPI configuration optimized for HiDPI displays";
|
options.hardware.video.hidpi.enable = mkEnableOption (lib.mdDoc "Font/DPI configuration optimized for HiDPI displays");
|
||||||
|
|
||||||
config = mkIf config.hardware.video.hidpi.enable {
|
config = mkIf config.hardware.video.hidpi.enable {
|
||||||
console.font = lib.mkDefault "${pkgs.terminus_font}/share/consolefonts/ter-v32n.psf.gz";
|
console.font = lib.mkDefault "${pkgs.terminus_font}/share/consolefonts/ter-v32n.psf.gz";
|
||||||
|
|
|
@ -233,11 +233,8 @@ in
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
assertion = cfg.powerManagement.enable -> (
|
assertion = cfg.powerManagement.enable -> versionAtLeast nvidia_x11.version "430.09";
|
||||||
builtins.pathExists (cfg.package.out + "/bin/nvidia-sleep.sh") &&
|
message = "Required files for driver based power management only exist on versions >= 430.09.";
|
||||||
builtins.pathExists (cfg.package.out + "/lib/systemd/system-sleep/nvidia")
|
|
||||||
);
|
|
||||||
message = "Required files for driver based power management don't exist.";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -260,8 +257,6 @@ in
|
||||||
# - Configure the display manager to run specific `xrandr` commands which will
|
# - Configure the display manager to run specific `xrandr` commands which will
|
||||||
# configure/enable displays connected to the Intel iGPU / AMD APU.
|
# configure/enable displays connected to the Intel iGPU / AMD APU.
|
||||||
|
|
||||||
services.xserver.useGlamor = mkDefault offloadCfg.enable;
|
|
||||||
|
|
||||||
services.xserver.drivers = let
|
services.xserver.drivers = let
|
||||||
in optional primeEnabled {
|
in optional primeEnabled {
|
||||||
name = igpuDriver;
|
name = igpuDriver;
|
||||||
|
|
|
@ -6,7 +6,7 @@ let
|
||||||
cfg = config.services.switcherooControl;
|
cfg = config.services.switcherooControl;
|
||||||
in {
|
in {
|
||||||
options.services.switcherooControl = {
|
options.services.switcherooControl = {
|
||||||
enable = mkEnableOption "switcheroo-control, a D-Bus service to check the availability of dual-GPU";
|
enable = mkEnableOption (lib.mdDoc "switcheroo-control, a D-Bus service to check the availability of dual-GPU");
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -12,7 +12,7 @@ in
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
options.hardware.facetimehd.enable = mkEnableOption "facetimehd kernel module";
|
options.hardware.facetimehd.enable = mkEnableOption (lib.mdDoc "facetimehd kernel module");
|
||||||
|
|
||||||
options.hardware.facetimehd.withCalibration = mkOption {
|
options.hardware.facetimehd.withCalibration = mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
with lib;
|
with lib;
|
||||||
{
|
{
|
||||||
options.hardware.wooting.enable =
|
options.hardware.wooting.enable =
|
||||||
mkEnableOption "Enable support for Wooting keyboards";
|
mkEnableOption (lib.mdDoc "Enable support for Wooting keyboards");
|
||||||
|
|
||||||
config = mkIf config.hardware.wooting.enable {
|
config = mkIf config.hardware.wooting.enable {
|
||||||
environment.systemPackages = [ pkgs.wootility ];
|
environment.systemPackages = [ pkgs.wootility ];
|
||||||
|
|
|
@ -6,7 +6,7 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.hardware.xone = {
|
options.hardware.xone = {
|
||||||
enable = mkEnableOption "the xone driver for Xbox One and Xbobx Series X|S accessories";
|
enable = mkEnableOption (lib.mdDoc "the xone driver for Xbox One and Xbobx Series X|S accessories");
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -6,7 +6,7 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.hardware.xpadneo = {
|
options.hardware.xpadneo = {
|
||||||
enable = mkEnableOption "the xpadneo driver for Xbox One wireless controllers";
|
enable = mkEnableOption (lib.mdDoc "the xpadneo driver for Xbox One wireless controllers");
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -32,22 +32,20 @@ in
|
||||||
type = types.nullOr (types.enum [ "ibus" "fcitx" "fcitx5" "nabi" "uim" "hime" "kime" ]);
|
type = types.nullOr (types.enum [ "ibus" "fcitx" "fcitx5" "nabi" "uim" "hime" "kime" ]);
|
||||||
default = null;
|
default = null;
|
||||||
example = "fcitx";
|
example = "fcitx";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Select the enabled input method. Input methods is a software to input symbols that are not available on standard input devices.
|
Select the enabled input method. Input methods is a software to input symbols that are not available on standard input devices.
|
||||||
|
|
||||||
Input methods are specially used to input Chinese, Japanese and Korean characters.
|
Input methods are specially used to input Chinese, Japanese and Korean characters.
|
||||||
|
|
||||||
Currently the following input methods are available in NixOS:
|
Currently the following input methods are available in NixOS:
|
||||||
|
|
||||||
<itemizedlist>
|
- ibus: The intelligent input bus, extra input engines can be added using `i18n.inputMethod.ibus.engines`.
|
||||||
<listitem><para>ibus: The intelligent input bus, extra input engines can be added using <literal>i18n.inputMethod.ibus.engines</literal>.</para></listitem>
|
- fcitx: A customizable lightweight input method, extra input engines can be added using `i18n.inputMethod.fcitx.engines`.
|
||||||
<listitem><para>fcitx: A customizable lightweight input method, extra input engines can be added using <literal>i18n.inputMethod.fcitx.engines</literal>.</para></listitem>
|
- fcitx5: The next generation of fcitx, addons (including engines, dictionaries, skins) can be added using `i18n.inputMethod.fcitx5.addons`.
|
||||||
<listitem><para>fcitx5: The next generation of fcitx, addons (including engines, dictionaries, skins) can be added using <literal>i18n.inputMethod.fcitx5.addons</literal>.</para></listitem>
|
- nabi: A Korean input method based on XIM. Nabi doesn't support Qt 5.
|
||||||
<listitem><para>nabi: A Korean input method based on XIM. Nabi doesn't support Qt 5.</para></listitem>
|
- uim: The universal input method, is a library with a XIM bridge. uim mainly support Chinese, Japanese and Korean.
|
||||||
<listitem><para>uim: The universal input method, is a library with a XIM bridge. uim mainly support Chinese, Japanese and Korean.</para></listitem>
|
- hime: An extremely easy-to-use input method framework.
|
||||||
<listitem><para>hime: An extremely easy-to-use input method framework.</para></listitem>
|
- kime: Koream IME.
|
||||||
<listitem><para>kime: Koream IME.</para></listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -55,7 +53,7 @@ in
|
||||||
internal = true;
|
internal = true;
|
||||||
type = types.nullOr types.path;
|
type = types.nullOr types.path;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The input method method package.
|
The input method method package.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -20,7 +20,7 @@ in {
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
enableRimeData = mkEnableOption "default rime-data with fcitx5-rime";
|
enableRimeData = mkEnableOption (lib.mdDoc "default rime-data with fcitx5-rime");
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,7 @@ in
|
||||||
firmwarePartitionOffset = mkOption {
|
firmwarePartitionOffset = mkOption {
|
||||||
type = types.int;
|
type = types.int;
|
||||||
default = 8;
|
default = 8;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Gap in front of the /boot/firmware partition, in mebibytes (1024×1024
|
Gap in front of the /boot/firmware partition, in mebibytes (1024×1024
|
||||||
bytes).
|
bytes).
|
||||||
Can be increased to make more space for boards requiring to dd u-boot
|
Can be increased to make more space for boards requiring to dd u-boot
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
x86_64-linux = "/nix/store/3af6g226v4hsv6x7xzh23d6wqyq0nzjp-nix-2.10.3";
|
x86_64-linux = "/nix/store/nmq5zcd93qb1yskx42rs910ff0247nn2-nix-2.11.0";
|
||||||
i686-linux = "/nix/store/43xxh2jip6rpdhylc5z9a5fxx54dw206-nix-2.10.3";
|
i686-linux = "/nix/store/ja6im1sw9a8lzczi10lc0iddffl9kzmn-nix-2.11.0";
|
||||||
aarch64-linux = "/nix/store/6qw3r57nra08ars8j8zyj3fl8lz4cvnd-nix-2.10.3";
|
aarch64-linux = "/nix/store/myr6fcqa9y4y2fb83zz73dck52vcn81z-nix-2.11.0";
|
||||||
x86_64-darwin = "/nix/store/3b7qrm0qjw57fmznrsvm0ai568i89hc2-nix-2.10.3";
|
x86_64-darwin = "/nix/store/2pfjz9b22k9997gh7cb0hjk1qa4lxrvy-nix-2.11.0";
|
||||||
aarch64-darwin = "/nix/store/gp7k17iy1n7hgf97qwnxw28c6v9nhb1i-nix-2.10.3";
|
aarch64-darwin = "/nix/store/lr32i0bdarx1iqsch4sy24jj1jkfw9vf-nix-2.11.0";
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@ with lib;
|
||||||
internal = true;
|
internal = true;
|
||||||
default = [];
|
default = [];
|
||||||
example = [ { assertion = false; message = "you can't enable this for that reason"; } ];
|
example = [ { assertion = false; message = "you can't enable this for that reason"; } ];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
This option allows modules to express conditions that must
|
This option allows modules to express conditions that must
|
||||||
hold for the evaluation of the system configuration to
|
hold for the evaluation of the system configuration to
|
||||||
succeed, along with associated error messages for the user.
|
succeed, along with associated error messages for the user.
|
||||||
|
@ -23,7 +23,7 @@ with lib;
|
||||||
default = [];
|
default = [];
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
example = [ "The `foo' service is deprecated and will go away soon!" ];
|
example = [ "The `foo' service is deprecated and will go away soon!" ];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
This option allows modules to show warnings to users during
|
This option allows modules to show warnings to users during
|
||||||
the evaluation of the system configuration.
|
the evaluation of the system configuration.
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -226,15 +226,14 @@ in
|
||||||
nixos.enable = mkOption {
|
nixos.enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Whether to install NixOS's own documentation.
|
Whether to install NixOS's own documentation.
|
||||||
<itemizedlist>
|
|
||||||
<listitem><para>This includes man pages like
|
- This includes man pages like
|
||||||
<citerefentry><refentrytitle>configuration.nix</refentrytitle><manvolnum>5</manvolnum></citerefentry> if <option>documentation.man.enable</option> is
|
{manpage}`configuration.nix(5)` if {option}`documentation.man.enable` is
|
||||||
set.</para></listitem>
|
set.
|
||||||
<listitem><para>This includes the HTML manual and the <command>nixos-help</command> command if
|
- This includes the HTML manual and the {command}`nixos-help` command if
|
||||||
<option>documentation.doc.enable</option> is set.</para></listitem>
|
{option}`documentation.doc.enable` is set.
|
||||||
</itemizedlist>
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ let
|
||||||
specialArgs.someArg.myModule = { lib, ... }: {
|
specialArgs.someArg.myModule = { lib, ... }: {
|
||||||
options.foobar = lib.mkOption {
|
options.foobar = lib.mkOption {
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
description = "The foobar option was added via specialArgs";
|
description = lib.mdDoc "The foobar option was added via specialArgs";
|
||||||
default = "qux";
|
default = "qux";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -19,7 +19,7 @@ in
|
||||||
|
|
||||||
ids.uids = lib.mkOption {
|
ids.uids = lib.mkOption {
|
||||||
internal = true;
|
internal = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The user IDs used in NixOS.
|
The user IDs used in NixOS.
|
||||||
'';
|
'';
|
||||||
type = types.attrsOf types.int;
|
type = types.attrsOf types.int;
|
||||||
|
@ -27,7 +27,7 @@ in
|
||||||
|
|
||||||
ids.gids = lib.mkOption {
|
ids.gids = lib.mkOption {
|
||||||
internal = true;
|
internal = true;
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
The group IDs used in NixOS.
|
The group IDs used in NixOS.
|
||||||
'';
|
'';
|
||||||
type = types.attrsOf types.int;
|
type = types.attrsOf types.int;
|
||||||
|
|
25
third_party/nixpkgs/nixos/modules/misc/label.nix
vendored
25
third_party/nixpkgs/nixos/modules/misc/label.nix
vendored
|
@ -12,7 +12,7 @@ in
|
||||||
|
|
||||||
nixos.label = mkOption {
|
nixos.label = mkOption {
|
||||||
type = types.strMatching "[a-zA-Z0-9:_\\.-]*";
|
type = types.strMatching "[a-zA-Z0-9:_\\.-]*";
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
NixOS version name to be used in the names of generated
|
NixOS version name to be used in the names of generated
|
||||||
outputs and boot labels.
|
outputs and boot labels.
|
||||||
|
|
||||||
|
@ -20,25 +20,26 @@ in
|
||||||
this is the option for you.
|
this is the option for you.
|
||||||
|
|
||||||
It can only contain letters, numbers and the following symbols:
|
It can only contain letters, numbers and the following symbols:
|
||||||
<literal>:</literal>, <literal>_</literal>, <literal>.</literal> and <literal>-</literal>.
|
`:`, `_`, `.` and `-`.
|
||||||
|
|
||||||
The default is <option>system.nixos.tags</option> separated by
|
The default is {option}`system.nixos.tags` separated by
|
||||||
"-" + "-" + <envar>NIXOS_LABEL_VERSION</envar> environment
|
"-" + "-" + {env}`NIXOS_LABEL_VERSION` environment
|
||||||
variable (defaults to the value of
|
variable (defaults to the value of
|
||||||
<option>system.nixos.version</option>).
|
{option}`system.nixos.version`).
|
||||||
|
|
||||||
Can be overriden by setting <envar>NIXOS_LABEL</envar>.
|
Can be overriden by setting {env}`NIXOS_LABEL`.
|
||||||
|
|
||||||
Useful for not loosing track of configurations built from different
|
Useful for not loosing track of configurations built from different
|
||||||
nixos branches/revisions, e.g.:
|
nixos branches/revisions, e.g.:
|
||||||
|
|
||||||
<screen>
|
```
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
today=`date +%Y%m%d`
|
today=`date +%Y%m%d`
|
||||||
branch=`(cd nixpkgs ; git branch 2>/dev/null | sed -n '/^\* / { s|^\* ||; p; }')`
|
branch=`(cd nixpkgs ; git branch 2>/dev/null | sed -n '/^\* / { s|^\* ||; p; }')`
|
||||||
revision=`(cd nixpkgs ; git rev-parse HEAD)`
|
revision=`(cd nixpkgs ; git rev-parse HEAD)`
|
||||||
export NIXOS_LABEL_VERSION="$today.$branch-''${revision:0:7}"
|
export NIXOS_LABEL_VERSION="$today.$branch-''${revision:0:7}"
|
||||||
nixos-rebuild switch</screen>
|
nixos-rebuild switch
|
||||||
|
```
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -46,19 +47,19 @@ in
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [];
|
default = [];
|
||||||
example = [ "with-xen" ];
|
example = [ "with-xen" ];
|
||||||
description = ''
|
description = lib.mdDoc ''
|
||||||
Strings to prefix to the default
|
Strings to prefix to the default
|
||||||
<option>system.nixos.label</option>.
|
{option}`system.nixos.label`.
|
||||||
|
|
||||||
Useful for not loosing track of configurations built with
|
Useful for not loosing track of configurations built with
|
||||||
different options, e.g.:
|
different options, e.g.:
|
||||||
|
|
||||||
<screen>
|
```
|
||||||
{
|
{
|
||||||
system.nixos.tags = [ "with-xen" ];
|
system.nixos.tags = [ "with-xen" ];
|
||||||
virtualisation.xen.enable = true;
|
virtualisation.xen.enable = true;
|
||||||
}
|
}
|
||||||
</screen>
|
```
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -183,8 +183,8 @@ in
|
||||||
pruneNames = mkOption {
|
pruneNames = mkOption {
|
||||||
type = listOf str;
|
type = listOf str;
|
||||||
default = lib.optionals (!isFindutils) [ ".bzr" ".cache" ".git" ".hg" ".svn" ];
|
default = lib.optionals (!isFindutils) [ ".bzr" ".cache" ".git" ".hg" ".svn" ];
|
||||||
defaultText = literalDocBook ''
|
defaultText = literalMD ''
|
||||||
<literal>[ ".bzr" ".cache" ".git" ".hg" ".svn" ]</literal>, if
|
`[ ".bzr" ".cache" ".git" ".hg" ".svn" ]`, if
|
||||||
supported by the locate implementation (i.e. mlocate or plocate).
|
supported by the locate implementation (i.e. mlocate or plocate).
|
||||||
'';
|
'';
|
||||||
description = lib.mdDoc ''
|
description = lib.mdDoc ''
|
||||||
|
|
|
@ -7,7 +7,7 @@ in
|
||||||
{
|
{
|
||||||
options = {
|
options = {
|
||||||
documentation.man.man-db = {
|
documentation.man.man-db = {
|
||||||
enable = lib.mkEnableOption "man-db as the default man page viewer" // {
|
enable = lib.mkEnableOption (lib.mdDoc "man-db as the default man page viewer") // {
|
||||||
default = config.documentation.man.enable;
|
default = config.documentation.man.enable;
|
||||||
defaultText = lib.literalExpression "config.documentation.man.enable";
|
defaultText = lib.literalExpression "config.documentation.man.enable";
|
||||||
example = false;
|
example = false;
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue