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]
|
||||
trim_trailing_whitespace = unset
|
||||
|
||||
# binaries
|
||||
[*.nib]
|
||||
end_of_line = unset
|
||||
insert_final_newline = unset
|
||||
trim_trailing_whitespace = unset
|
||||
charset = unset
|
||||
|
||||
[eggs.nix]
|
||||
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
|
||||
|
||||
# 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
|
||||
/pkgs/development/compilers/rust @Mic92 @LnL7 @zowoq
|
||||
/pkgs/build-support/rust @zowoq
|
||||
/doc/languages-frameworks/rust.section.md @zowoq
|
||||
|
||||
# C compilers
|
||||
/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":
|
||||
- pkgs/desktops/cinnamon/**/*
|
||||
- nixos/modules/services/x11/desktop-managers/cinnamon.nix
|
||||
- nixos/tests/cinnamon.nix
|
||||
|
||||
"6.topic: emacs":
|
||||
- nixos/modules/services/editors/emacs.nix
|
||||
|
|
|
@ -31,6 +31,10 @@ function Code(elem)
|
|||
tag = 'command'
|
||||
elseif elem.attributes['role'] == 'option' then
|
||||
tag = 'option'
|
||||
elseif elem.attributes['role'] == 'var' then
|
||||
tag = 'varname'
|
||||
elseif elem.attributes['role'] == 'env' then
|
||||
tag = 'envar'
|
||||
end
|
||||
|
||||
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`.
|
||||
|
||||
## 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:
|
||||
|
||||
|
|
|
@ -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"`.
|
||||
|
||||
## 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:
|
||||
|
||||
- `` {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`
|
||||
- `` {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.
|
||||
|
||||
|
|
|
@ -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}
|
||||
|
||||
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.
|
||||
|
||||
|
|
|
@ -734,6 +734,63 @@ work in any of the formats supported by `buildPythonPackage` currently,
|
|||
with the exception of `other` (see `format` in
|
||||
[`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}
|
||||
|
||||
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).
|
||||
- `pythonCatchConflictsHook` to check whether a Python package is not already existing.
|
||||
- `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.
|
||||
- `setuptoolsBuildHook` to build a wheel using `setuptools`.
|
||||
- `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
|
||||
`venv` is created if it does not yet exist. `postVenvCreation` can be used to
|
||||
to run commands only after venv is first created.
|
||||
- `wheelUnpackHook` to move a wheel to the correct folder so it can be installed
|
||||
with the `pipInstallHook`.
|
||||
- `pythonRelaxDepsHook` will relax Python dependencies restrictions for the package.
|
||||
See [example usage](#using-pythonrelaxdepshook).
|
||||
- `unittestCheckHook` will run tests with `python -m unittest discover`. See [example usage](#using-unittestcheckhook).
|
||||
|
||||
### Development mode {#development-mode}
|
||||
|
||||
|
|
|
@ -458,7 +458,7 @@ you of the correct hash.
|
|||
`maturinBuildFlags`.
|
||||
* `cargoCheckHook`: run tests using Cargo. The build type for checks
|
||||
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
|
||||
`checkFlagsArray`. By default, tests are run in parallel. This can
|
||||
be disabled by setting `dontUseCargoParallelTests`.
|
||||
|
|
|
@ -80,7 +80,7 @@ Right: `"A library for decoding PNG images"`
|
|||
|
||||
### `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}
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
||||
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}
|
||||
|
||||
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'';
|
||||
};
|
||||
|
||||
bsdOriginalShortened = {
|
||||
spdxId = "BSD-4-Clause-Shortened";
|
||||
fullName = "BSD 4 Clause Shortened";
|
||||
};
|
||||
|
||||
bsdOriginalUC = {
|
||||
spdxId = "BSD-4-Clause-UC";
|
||||
fullName = "BSD 4-Clause University of California-Specific";
|
||||
|
@ -693,6 +698,11 @@ in mkLicense lset) ({
|
|||
fullName = "SIL Open Font License 1.1";
|
||||
};
|
||||
|
||||
oml = {
|
||||
spdxId = "OML";
|
||||
fullName = "Open Market License";
|
||||
};
|
||||
|
||||
openldap = {
|
||||
spdxId = "OLDAP-2.8";
|
||||
fullName = "Open LDAP Public License v2.8";
|
||||
|
@ -824,6 +834,11 @@ in mkLicense lset) ({
|
|||
fullName = "TCL/TK License";
|
||||
};
|
||||
|
||||
ucd = {
|
||||
fullName = "Unicode Character Database License";
|
||||
url = "https://fedoraproject.org/wiki/Licensing:UCD";
|
||||
};
|
||||
|
||||
ufl = {
|
||||
fullName = "Ubuntu Font License 1.0";
|
||||
url = "https://ubuntu.com/legal/font-licence";
|
||||
|
@ -878,6 +893,11 @@ in mkLicense lset) ({
|
|||
free = false;
|
||||
};
|
||||
|
||||
vol-sl = {
|
||||
fullName = "Volatility Software License, Version 1.0";
|
||||
url = "https://www.volatilityfoundation.org/license/vsl-v1.0";
|
||||
};
|
||||
|
||||
vsl10 = {
|
||||
spdxId = "VSL-1.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
|
||||
"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
|
||||
# freeformType, so that individual arguments can be documented
|
||||
# separately
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Additional arguments passed to each module in addition to ones
|
||||
like <literal>lib</literal>, <literal>config</literal>,
|
||||
and <literal>pkgs</literal>, <literal>modulesPath</literal>.
|
||||
</para>
|
||||
<para>
|
||||
like `lib`, `config`,
|
||||
and `pkgs`, `modulesPath`.
|
||||
|
||||
This option is also available to all submodules. Submodules do not
|
||||
inherit args from their parent module, nor do they provide args 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
|
||||
the submodule is bound to, or a unique generated name if it is
|
||||
not bound to an attribute.
|
||||
</para>
|
||||
<para>
|
||||
|
||||
Some arguments are already passed by default, of which the
|
||||
following <emphasis>cannot</emphasis> be changed with this option:
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
<varname>lib</varname>: The nixpkgs library.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<varname>config</varname>: The results of all options after merging the values from all modules together.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<varname>options</varname>: The options declared in all modules.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<varname>specialArgs</varname>: The <literal>specialArgs</literal> argument passed to <literal>evalModules</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<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>
|
||||
following *cannot* be changed with this option:
|
||||
- {var}`lib`: The nixpkgs library.
|
||||
- {var}`config`: The results of all options after merging the values from all modules together.
|
||||
- {var}`options`: The options declared in all modules.
|
||||
- {var}`specialArgs`: The `specialArgs` argument passed to `evalModules`.
|
||||
- All attributes of {var}`specialArgs`
|
||||
|
||||
Whereas option values can generally depend on other option values
|
||||
thanks to laziness, this does not apply to `imports`, which
|
||||
must be computed statically before anything else.
|
||||
|
||||
For this reason, callers of the module system can provide `specialArgs`
|
||||
which are available during import resolution.
|
||||
|
||||
For NixOS, `specialArgs` includes
|
||||
{var}`modulesPath`, 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
|
||||
`nixpkgs` or NixOS directories.
|
||||
```
|
||||
{ modulesPath, ... }: {
|
||||
imports = [
|
||||
(modulesPath + "/profiles/minimal.nix")
|
||||
];
|
||||
}
|
||||
```
|
||||
|
||||
For NixOS, the default value for this option includes at least this argument:
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
<varname>pkgs</varname>: The nixpkgs package set according to
|
||||
the <option>nixpkgs.pkgs</option> option.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
- {var}`pkgs`: The nixpkgs package set according to
|
||||
the {option}`nixpkgs.pkgs` option.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -248,21 +214,21 @@ rec {
|
|||
type = types.bool;
|
||||
internal = 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 {
|
||||
type = types.nullOr types.optionType;
|
||||
internal = true;
|
||||
default = null;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
If set, merge all definitions that don't have an associated option
|
||||
together using this type. The result then gets combined with the
|
||||
values of all declared options to produce the final <literal>
|
||||
config</literal> value.
|
||||
values of all declared options to produce the final `
|
||||
config` value.
|
||||
|
||||
If this is <literal>null</literal>, definitions without an option
|
||||
will throw an error unless <option>_module.check</option> is
|
||||
If this is `null`, definitions without an option
|
||||
will throw an error unless {option}`_module.check` is
|
||||
turned off.
|
||||
'';
|
||||
};
|
||||
|
@ -270,7 +236,7 @@ rec {
|
|||
_module.specialArgs = mkOption {
|
||||
readOnly = true;
|
||||
internal = true;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Externally provided module arguments that can't be modified from
|
||||
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
|
||||
filterModules = modulesPath: { disabled, modules }:
|
||||
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;
|
||||
keyFilter = filter (attrs: ! elem attrs.key disabledKeys);
|
||||
in map (attrs: attrs.module) (builtins.genericClosure {
|
||||
|
@ -1167,7 +1135,7 @@ rec {
|
|||
{
|
||||
options = setAttrByPath from (mkOption {
|
||||
inherit visible;
|
||||
description = "Alias of <option>${showOption to}</option>.";
|
||||
description = lib.mdDoc "Alias of {option}`${showOption to}`.";
|
||||
apply = x: use (toOf config);
|
||||
} // optionalAttrs (toType != null) {
|
||||
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 {
|
||||
default = false;
|
||||
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;
|
||||
};
|
||||
|
||||
|
@ -134,7 +137,7 @@ rec {
|
|||
let default' = if !isList default then [ default ] else default;
|
||||
in mkOption {
|
||||
type = lib.types.package;
|
||||
description = "The ${name} package to use.";
|
||||
description = lib.mdDoc "The ${name} package to use.";
|
||||
default = attrByPath default'
|
||||
(throw "${concatStringsSep "." default'} cannot be found in pkgs") pkgs;
|
||||
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
|
||||
# choice.
|
||||
else "bfd";
|
||||
extensions = {
|
||||
extensions = rec {
|
||||
sharedLibrary =
|
||||
/**/ if final.isDarwin then ".dylib"
|
||||
else if final.isWindows then ".dll"
|
||||
else ".so";
|
||||
staticLibrary =
|
||||
/**/ if final.isWindows then ".lib"
|
||||
else ".a";
|
||||
library =
|
||||
/**/ if final.isStatic then staticLibrary
|
||||
else sharedLibrary;
|
||||
executable =
|
||||
/**/ if final.isWindows then ".exe"
|
||||
else "";
|
||||
|
@ -93,7 +99,7 @@ rec {
|
|||
genode = "Genode";
|
||||
}.${final.parsed.kernel.name} or null;
|
||||
|
||||
# uname -p
|
||||
# uname -m
|
||||
processor = final.parsed.cpu.name;
|
||||
|
||||
# uname -r
|
||||
|
@ -115,6 +121,8 @@ rec {
|
|||
else if final.isAarch64 then "arm64"
|
||||
else if final.isx86_32 then "i386"
|
||||
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.isMips64 then "mips" # linux kernel does not distinguish mips32/mips64
|
||||
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
|
||||
"aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux"
|
||||
"armv7l-linux" "i686-linux" "m68k-linux" "mipsel-linux" "mips64el-linux"
|
||||
"powerpc64-linux" "powerpc64le-linux" "riscv32-linux"
|
||||
"riscv64-linux" "s390-linux" "s390x-linux" "x86_64-linux"
|
||||
"armv7l-linux" "i686-linux" "m68k-linux" "microblaze-linux"
|
||||
"microblazeel-linux" "mipsel-linux" "mips64el-linux" "powerpc64-linux"
|
||||
"powerpc64le-linux" "riscv32-linux" "riscv64-linux" "s390-linux"
|
||||
"s390x-linux" "x86_64-linux"
|
||||
|
||||
# MMIXware
|
||||
"mmix-mmixware"
|
||||
|
@ -40,9 +41,9 @@ let
|
|||
|
||||
# none
|
||||
"aarch64_be-none" "aarch64-none" "arm-none" "armv6l-none" "avr-none" "i686-none"
|
||||
"msp430-none" "or1k-none" "m68k-none" "powerpc-none" "powerpcle-none"
|
||||
"riscv32-none" "riscv64-none" "rx-none" "s390-none" "s390x-none" "vc4-none"
|
||||
"x86_64-none"
|
||||
"microblaze-none" "microblazeel-none" "msp430-none" "or1k-none" "m68k-none"
|
||||
"powerpc-none" "powerpcle-none" "riscv32-none" "riscv64-none" "rx-none"
|
||||
"s390-none" "s390x-none" "vc4-none" "x86_64-none"
|
||||
|
||||
# OpenBSD
|
||||
"i686-openbsd" "x86_64-openbsd"
|
||||
|
@ -71,6 +72,7 @@ in {
|
|||
x86 = filterDoubles predicates.isx86;
|
||||
i686 = filterDoubles predicates.isi686;
|
||||
x86_64 = filterDoubles predicates.isx86_64;
|
||||
microblaze = filterDoubles predicates.isMicroBlaze;
|
||||
mips = filterDoubles predicates.isMips;
|
||||
mmix = filterDoubles predicates.isMmix;
|
||||
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.gnueabihf; })
|
||||
++ 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;
|
||||
linux = filterDoubles predicates.isLinux;
|
||||
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 = {
|
||||
config = "powerpc64-unknown-linux-gnu";
|
||||
gcc = { abi = "elfv2"; }; # for gcc configuration
|
||||
config = "powerpc64-unknown-linux-gnuabielfv2";
|
||||
};
|
||||
ppc64-musl = {
|
||||
config = "powerpc64-unknown-linux-musl";
|
||||
gcc = { abi = "elfv2"; }; # for gcc configuration
|
||||
gcc = { abi = "elfv2"; };
|
||||
};
|
||||
|
||||
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; }; };
|
||||
isPower = { cpu = { family = "power"; }; };
|
||||
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"; }; };
|
||||
isAarch32 = { cpu = { family = "arm"; bits = 32; }; };
|
||||
isAarch64 = { cpu = { family = "arm"; bits = 64; }; };
|
||||
isAarch = { cpu = { family = "arm"; }; };
|
||||
isMicroBlaze = { cpu = { family = "microblaze"; }; };
|
||||
isMips = { cpu = { family = "mips"; }; };
|
||||
isMips32 = { cpu = { family = "mips"; bits = 32; }; };
|
||||
isMips64 = { cpu = { family = "mips"; bits = 64; }; };
|
||||
|
@ -64,7 +72,7 @@ rec {
|
|||
isNone = { kernel = kernels.none; };
|
||||
|
||||
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 ];
|
||||
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"; };
|
||||
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"; };
|
||||
mipsel = { bits = 32; significantByte = littleEndian; 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.
|
||||
'';
|
||||
}
|
||||
{ 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"; };
|
||||
|
@ -361,6 +369,9 @@ rec {
|
|||
gnuabin32 = { abi = "n32"; };
|
||||
muslabin32 = { abi = "n32"; };
|
||||
|
||||
gnuabielfv2 = { abi = "elfv2"; };
|
||||
gnuabielfv1 = { abi = "elfv1"; };
|
||||
|
||||
musleabi = { float = "soft"; };
|
||||
musleabihf = { float = "hard"; };
|
||||
musl = {};
|
||||
|
@ -464,6 +475,8 @@ rec {
|
|||
if lib.versionAtLeast (parsed.cpu.version or "0") "6"
|
||||
then abis.gnueabihf
|
||||
else abis.gnueabi
|
||||
# Default ppc64 BE to ELFv2
|
||||
else if isPower64 parsed && isBigEndian parsed then abis.gnuabielfv2
|
||||
else abis.gnu
|
||||
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
|
||||
checkConfigOutput '^true$' "$@"
|
||||
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 "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
|
||||
|
|
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" ];
|
||||
testgnu = mseteq gnu (linux /* ++ kfreebsd ++ ... */);
|
||||
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" ];
|
||||
testopenbsd = mseteq openbsd [ "i686-openbsd" "x86_64-openbsd" ];
|
||||
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;
|
||||
name = "Nicholas von Klitzing";
|
||||
};
|
||||
_360ied = {
|
||||
name = "Brian Zhu";
|
||||
email = "therealbarryplayer@gmail.com";
|
||||
github = "360ied";
|
||||
githubId = 19516527;
|
||||
};
|
||||
_13r0ck = {
|
||||
name = "Brock Szuszczewicz";
|
||||
email = "bnr@tuta.io";
|
||||
|
@ -133,6 +139,16 @@
|
|||
githubId = 1714287;
|
||||
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 = {
|
||||
email = "f6442954@gmail.com";
|
||||
github = "6AA4FD";
|
||||
|
@ -309,6 +325,12 @@
|
|||
githubId = 1174858;
|
||||
name = "Maxwell Huang-Hobbs";
|
||||
};
|
||||
adjacentresearch = {
|
||||
email = "nate@adjacentresearch.xyz";
|
||||
github = "0xperp";
|
||||
githubId = 96147421;
|
||||
name = "0xperp";
|
||||
};
|
||||
adnelson = {
|
||||
email = "ithinkican@gmail.com";
|
||||
github = "adnelson";
|
||||
|
@ -478,6 +500,15 @@
|
|||
github = "akho";
|
||||
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 = {
|
||||
email = "mail@akru.me";
|
||||
github = "akru";
|
||||
|
@ -810,6 +841,12 @@
|
|||
githubId = 7112447;
|
||||
name = "Andre S. Ramos";
|
||||
};
|
||||
andrevmatos = {
|
||||
email = "andrevmatos@gmail.com";
|
||||
github = "andrevmatos";
|
||||
githubId = 587021;
|
||||
name = "André V L Matos";
|
||||
};
|
||||
andrew-d = {
|
||||
email = "andrew@du.nham.ca";
|
||||
github = "andrew-d";
|
||||
|
@ -1411,6 +1448,12 @@
|
|||
githubId = 35324;
|
||||
name = "Badi' Abdul-Wahid";
|
||||
};
|
||||
baitinq = {
|
||||
email = "manuelpalenzuelamerino@gmail.com";
|
||||
name = "Baitinq";
|
||||
github = "Baitinq";
|
||||
githubId = 30861839;
|
||||
};
|
||||
balodja = {
|
||||
email = "balodja@gmail.com";
|
||||
github = "balodja";
|
||||
|
@ -2028,6 +2071,12 @@
|
|||
githubId = 1516457;
|
||||
name = "Christian Albrecht";
|
||||
};
|
||||
CactiChameleon9 = {
|
||||
email = "h19xjkkp@duck.com";
|
||||
github = "CactiChameleon9";
|
||||
githubId = 51231053;
|
||||
name = "Daniel";
|
||||
};
|
||||
callahad = {
|
||||
email = "dan.callahan@gmail.com";
|
||||
github = "callahad";
|
||||
|
@ -2598,6 +2647,12 @@
|
|||
githubId = 244239;
|
||||
name = "Mauricio Collares";
|
||||
};
|
||||
CompEng0001 = {
|
||||
email = "sb1501@canterbury.ac.uk";
|
||||
github = "CompEng0001";
|
||||
githubId = 40290417;
|
||||
name = "Seb Blair";
|
||||
};
|
||||
copumpkin = {
|
||||
email = "pumpkingod@gmail.com";
|
||||
github = "copumpkin";
|
||||
|
@ -2913,7 +2968,7 @@
|
|||
danth = {
|
||||
name = "Daniel Thwaites";
|
||||
email = "danthwaites30@btinternet.com";
|
||||
matrix = "@danth:pwak.org";
|
||||
matrix = "@danth:danth.me";
|
||||
github = "danth";
|
||||
githubId = 28959268;
|
||||
keys = [{
|
||||
|
@ -3091,6 +3146,12 @@
|
|||
github = "delan";
|
||||
githubId = 465303;
|
||||
};
|
||||
delehef = {
|
||||
name = "Franklin Delehelle";
|
||||
email = "nix@odena.eu";
|
||||
github = "delehef";
|
||||
githubId = 1153808;
|
||||
};
|
||||
deliciouslytyped = {
|
||||
email = "47436522+deliciouslytyped@users.noreply.github.com";
|
||||
github = "deliciouslytyped";
|
||||
|
@ -4322,6 +4383,12 @@
|
|||
githubId = 415760;
|
||||
name = "Jonas Höglund";
|
||||
};
|
||||
firefly-cpp = {
|
||||
email = "iztok@iztok-jr-fister.eu";
|
||||
github = "firefly-cpp";
|
||||
githubId = 1633361;
|
||||
name = "Iztok Fister Jr.";
|
||||
};
|
||||
fishi0x01 = {
|
||||
email = "fishi0x01@gmail.com";
|
||||
github = "fishi0x01";
|
||||
|
@ -4416,6 +4483,12 @@
|
|||
githubId = 74379;
|
||||
name = "Florian Pester";
|
||||
};
|
||||
fmoda3 = {
|
||||
email = "fmoda3@mac.com";
|
||||
github = "fmoda3";
|
||||
githubId = 1746471;
|
||||
name = "Frank Moda III";
|
||||
};
|
||||
fmthoma = {
|
||||
email = "f.m.thoma@googlemail.com";
|
||||
github = "fmthoma";
|
||||
|
@ -4851,6 +4924,15 @@
|
|||
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 = {
|
||||
name = "Gregory Anders";
|
||||
email = "greg@gpanders.com";
|
||||
|
@ -4860,6 +4942,12 @@
|
|||
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 = {
|
||||
email = "yacine.hmito@gmail.com";
|
||||
github = "yacinehmito";
|
||||
|
@ -5490,6 +5578,12 @@
|
|||
githubId = 1550265;
|
||||
name = "Dominic Steinitz";
|
||||
};
|
||||
ifurther = {
|
||||
email = "55025025+ifurther@users.noreply.github.com";
|
||||
github = "ifurther";
|
||||
githubId = 55025025;
|
||||
name = "Feather Lin";
|
||||
};
|
||||
igsha = {
|
||||
email = "igor.sharonov@gmail.com";
|
||||
github = "igsha";
|
||||
|
@ -5601,6 +5695,16 @@
|
|||
githubId = 510202;
|
||||
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 = {
|
||||
email = "sofi+git@mailbox.org";
|
||||
github = "imsofi";
|
||||
|
@ -5769,6 +5873,16 @@
|
|||
github = "jacg";
|
||||
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 = {
|
||||
email = "jcarr250@gmail.com";
|
||||
github = "jasoncarr0";
|
||||
|
@ -6456,6 +6570,12 @@
|
|||
githubId = 752510;
|
||||
name = "Martin Potier";
|
||||
};
|
||||
jqqqqqqqqqq = {
|
||||
email = "jqqqqqqqqqq@gmail.com";
|
||||
github = "jqqqqqqqqqq";
|
||||
githubId = 12872927;
|
||||
name = "Curtis Jiang";
|
||||
};
|
||||
jqueiroz = {
|
||||
email = "nixos@johnjq.com";
|
||||
github = "jqueiroz";
|
||||
|
@ -6528,6 +6648,12 @@
|
|||
githubId = 705123;
|
||||
name = "Jan Tojnar";
|
||||
};
|
||||
jtrees = {
|
||||
email = "me@jtrees.io";
|
||||
github = "jtrees";
|
||||
githubId = 5802758;
|
||||
name = "Joshua Trees";
|
||||
};
|
||||
juaningan = {
|
||||
email = "juaningan@gmail.com";
|
||||
github = "uningan";
|
||||
|
@ -6979,12 +7105,6 @@
|
|||
fingerprint = "8992 44FC D291 5CA2 0A97 802C 156C 88A5 B0A0 4B2A";
|
||||
}];
|
||||
};
|
||||
kiyengar = {
|
||||
email = "hello@kiyengar.net";
|
||||
github = "karthikiyengar";
|
||||
githubId = 8260207;
|
||||
name = "Karthik Iyengar";
|
||||
};
|
||||
kjeremy = {
|
||||
email = "kjeremy@gmail.com";
|
||||
name = "Jeremy Kolb";
|
||||
|
@ -8034,11 +8154,11 @@
|
|||
name = "Michael Fellinger";
|
||||
};
|
||||
maralorn = {
|
||||
email = "malte.brandy@maralorn.de";
|
||||
email = "mail@maralorn.de";
|
||||
matrix = "@maralorn:maralorn.de";
|
||||
github = "maralorn";
|
||||
githubId = 1651325;
|
||||
name = "Malte Brandy";
|
||||
name = "maralorn";
|
||||
};
|
||||
marcweber = {
|
||||
email = "marco-oweber@gmx.de";
|
||||
|
@ -8587,6 +8707,12 @@
|
|||
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 = {
|
||||
email = "mihn.stn@gmail.com";
|
||||
github = "mihnea-s";
|
||||
|
@ -8935,7 +9061,7 @@
|
|||
name = "Millian Poquet";
|
||||
};
|
||||
mpscholten = {
|
||||
email = "marc@mpscholten.de";
|
||||
email = "marc@digitallyinduced.com";
|
||||
github = "mpscholten";
|
||||
githubId = 2072185;
|
||||
name = "Marc Scholten";
|
||||
|
@ -9646,6 +9772,12 @@
|
|||
github = "numkem";
|
||||
githubId = 332423;
|
||||
};
|
||||
nviets = {
|
||||
email = "nathan.g.viets@gmail.com";
|
||||
github = "nviets";
|
||||
githubId = 16027994;
|
||||
name = "Nathan Viets";
|
||||
};
|
||||
nyanloutre = {
|
||||
email = "paul@nyanlout.re";
|
||||
github = "nyanloutre";
|
||||
|
@ -9686,6 +9818,12 @@
|
|||
githubId = 3359345;
|
||||
name = "obadz";
|
||||
};
|
||||
oberblastmeister = {
|
||||
email = "littlebubu.shu@gmail.com";
|
||||
github = "oberblastmeister";
|
||||
githubId = 61095988;
|
||||
name = "Brian Shu";
|
||||
};
|
||||
obsidian-systems-maintenance = {
|
||||
name = "Obsidian Systems Maintenance";
|
||||
email = "maintainer@obsidian.systems";
|
||||
|
@ -10171,6 +10309,15 @@
|
|||
githubId = 29493551;
|
||||
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 = {
|
||||
email = "simons@cryp.to";
|
||||
github = "peti";
|
||||
|
@ -10942,6 +11089,12 @@
|
|||
githubId = 7226587;
|
||||
name = "Théophane Hufschmitt";
|
||||
};
|
||||
rehno-lindeque = {
|
||||
email = "rehno.lindeque+code@gmail.com";
|
||||
github = "rehno-lindeque";
|
||||
githubId = 337811;
|
||||
name = "Rehno Lindeque";
|
||||
};
|
||||
relrod = {
|
||||
email = "ricky@elrod.me";
|
||||
github = "relrod";
|
||||
|
@ -11518,6 +11671,12 @@
|
|||
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 = {
|
||||
email = "samuel.rose@gmail.com";
|
||||
github = "samrose";
|
||||
|
@ -11636,6 +11795,12 @@
|
|||
githubId = 3958212;
|
||||
name = "Tom Sorlie";
|
||||
};
|
||||
sioodmy = {
|
||||
name = "Antoni Sokołowski";
|
||||
email = "81568712+sioodmy@users.noreply.github.com";
|
||||
github = "sioodmy";
|
||||
githubId = 81568712;
|
||||
};
|
||||
schmitthenner = {
|
||||
email = "development@schmitthenner.eu";
|
||||
github = "fkz";
|
||||
|
@ -13049,6 +13214,12 @@
|
|||
githubId = 3268082;
|
||||
name = "Thibaut Marty";
|
||||
};
|
||||
thyol = {
|
||||
name = "thyol";
|
||||
email = "thyol@pm.me";
|
||||
github = "thyol";
|
||||
githubId = 81481634;
|
||||
};
|
||||
thmzlt = {
|
||||
email = "git@thomazleite.com";
|
||||
github = "thmzlt";
|
||||
|
@ -13500,6 +13671,15 @@
|
|||
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 = {
|
||||
email = "uniquepointer@mailbox.org";
|
||||
matrix = "@uniquepointer:matrix.org";
|
||||
|
@ -13704,6 +13884,15 @@
|
|||
githubId = 245573;
|
||||
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 = {
|
||||
email = "vid@bina.me";
|
||||
github = "vidbina";
|
||||
|
@ -13964,6 +14153,15 @@
|
|||
github = "wentasah";
|
||||
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 = {
|
||||
email = "jakob@schmutz.co.uk";
|
||||
github = "wheelsandmetal";
|
||||
|
@ -15051,4 +15249,39 @@
|
|||
github = "yisuidenghua";
|
||||
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;
|
||||
};
|
||||
|
||||
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 = {
|
||||
members = [
|
||||
mmahut
|
||||
|
@ -107,6 +116,7 @@ with lib.maintainers; {
|
|||
|
||||
cinnamon = {
|
||||
members = [
|
||||
bobby285271
|
||||
mkg20001
|
||||
];
|
||||
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
|
||||
services.xserver.videoDrivers = [ "modesetting" ];
|
||||
services.xserver.useGlamor = true;
|
||||
```
|
||||
|
||||
If you experience screen tearing no matter what, this configuration was
|
||||
|
|
|
@ -133,7 +133,6 @@ services.xserver.displayManager.autoLogin.user = "alice";
|
|||
</para>
|
||||
<programlisting language="bash">
|
||||
services.xserver.videoDrivers = [ "modesetting" ];
|
||||
services.xserver.useGlamor = true;
|
||||
</programlisting>
|
||||
<para>
|
||||
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>.
|
||||
</para>
|
||||
</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>
|
||||
<para>
|
||||
<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>.
|
||||
</para>
|
||||
</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>
|
||||
<para>
|
||||
<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>.
|
||||
</para>
|
||||
</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>
|
||||
<para>
|
||||
<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>.
|
||||
</para>
|
||||
</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>
|
||||
</section>
|
||||
<section xml:id="sec-release-22.11-incompatibilities">
|
||||
<title>Backward Incompatibilities</title>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
Nixpkgs now requires Nix 2.3 or newer.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>isCompatible</literal> predicate checking CPU
|
||||
|
@ -337,6 +395,17 @@
|
|||
instead.
|
||||
</para>
|
||||
</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>
|
||||
<para>
|
||||
PHP 7.4 is no longer supported due to upstream not supporting
|
||||
|
@ -349,6 +418,14 @@
|
|||
<literal>cosigned</literal> binary anymore.
|
||||
</para>
|
||||
</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>
|
||||
<para>
|
||||
riak package removed along with
|
||||
|
@ -387,6 +464,13 @@
|
|||
<literal>"wine64"</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>paperless</literal> module now defaults
|
||||
<literal>PAPERLESS_TIME_ZONE</literal> to your configured
|
||||
system timezone.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
(Neo)Vim can not be configured with
|
||||
|
@ -401,6 +485,12 @@
|
|||
due to upstream dropping support.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>k3s</literal> supports <literal>clusterInit</literal>
|
||||
option, and it is enabled by default, for servers.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
<section xml:id="sec-release-22.11-notable-changes">
|
||||
|
@ -446,6 +536,12 @@
|
|||
guide</link> on how to migrate your Neo4j instance.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>services.matrix-synapse</literal> systemd unit
|
||||
has been hardened.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Matrix Synapse now requires entries in the
|
||||
|
@ -457,6 +553,14 @@
|
|||
and require manual remediation.
|
||||
</para>
|
||||
</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>
|
||||
<para>
|
||||
<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).
|
||||
|
||||
- [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.
|
||||
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.
|
||||
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).
|
||||
|
||||
- [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).
|
||||
|
||||
- [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.
|
||||
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. -->
|
||||
|
||||
## 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
|
||||
by the platform sets generated using `lib.systems.elaborate`. In most cases
|
||||
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`.
|
||||
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
|
||||
version for the entire lifecycle of the 22.11 release.
|
||||
|
||||
- `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.
|
||||
|
||||
- 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 `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.
|
||||
Use `configure.packages` instead.
|
||||
|
||||
- `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. -->
|
||||
|
||||
## 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.
|
||||
|
||||
- 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.
|
||||
|
||||
- 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`.
|
||||
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>"
|
||||
def file(self, text):
|
||||
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):
|
||||
title = f"<refentrytitle>{escape(page)}</refentrytitle>"
|
||||
vol = f"<manvolnum>{escape(section)}</manvolnum>"
|
||||
|
@ -136,6 +140,20 @@ def p_file(md):
|
|||
md.inline.register_rule('file', FILE_PATTERN, parse)
|
||||
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):
|
||||
OPTION_PATTERN = r'\{option\}`(.*?)`'
|
||||
def parse(self, m, state):
|
||||
|
@ -151,7 +169,7 @@ def p_manpage(md):
|
|||
md.inline.rules.append('manpage')
|
||||
|
||||
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):
|
||||
return {
|
||||
'type': 'admonition',
|
||||
|
@ -162,7 +180,7 @@ def p_admonition(md):
|
|||
md.block.rules.append('admonition')
|
||||
|
||||
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!
|
||||
|
|
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
|
||||
zeroPad = n:
|
||||
lib.optionalString (n < 16) "0" +
|
||||
(if n > 255
|
||||
then throw "Can't have more than 255 nets or nodes!"
|
||||
else lib.toHexString n);
|
||||
(if n > 255
|
||||
then throw "Can't have more than 255 nets or nodes!"
|
||||
else lib.toHexString n);
|
||||
in
|
||||
|
||||
rec {
|
||||
qemuNicMac = net: machine: "52:54:00:12:${zeroPad net}:${zeroPad 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}"''
|
||||
];
|
||||
|
||||
qemuSerialDevice = if pkgs.stdenv.hostPlatform.isx86 || pkgs.stdenv.hostPlatform.isRiscV then "ttyS0"
|
||||
else if (with pkgs.stdenv.hostPlatform; isAarch || isPower) then "ttyAMA0"
|
||||
else throw "Unknown QEMU serial device for system '${pkgs.stdenv.hostPlatform.system}'";
|
||||
qemuSerialDevice =
|
||||
if pkgs.stdenv.hostPlatform.isx86 || pkgs.stdenv.hostPlatform.isRiscV then "ttyS0"
|
||||
else if (with pkgs.stdenv.hostPlatform; isAarch || isPower) then "ttyAMA0"
|
||||
else throw "Unknown QEMU serial device for system '${pkgs.stdenv.hostPlatform.system}'";
|
||||
|
||||
qemuBinary = qemuPkg: {
|
||||
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";
|
||||
}.${pkgs.stdenv.hostPlatform.system} or "${qemuPkg}/bin/qemu-kvm";
|
||||
qemuBinary = qemuPkg:
|
||||
let
|
||||
hostStdenv = qemuPkg.stdenv;
|
||||
hostSystem = hostStdenv.system;
|
||||
guestSystem = pkgs.stdenv.hostPlatform.system;
|
||||
|
||||
linuxHostGuestMatrix = {
|
||||
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, ... }: {
|
||||
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 {
|
||||
type = types.path;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Path of the symlink.
|
||||
'';
|
||||
default = name;
|
||||
|
@ -50,12 +50,12 @@ rec {
|
|||
text = mkOption {
|
||||
default = null;
|
||||
type = types.nullOr types.lines;
|
||||
description = "Text of the file.";
|
||||
description = lib.mdDoc "Text of the file.";
|
||||
};
|
||||
|
||||
source = mkOption {
|
||||
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 {
|
||||
default = true;
|
||||
type = types.bool;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
If set to false, this unit will be a symlink to
|
||||
/dev/null. This is primarily useful to prevent specific
|
||||
template instances
|
||||
(e.g. <literal>serial-getty@ttyS0</literal>) from being
|
||||
started. Note that <literal>enable=true</literal> does not
|
||||
(e.g. `serial-getty@ttyS0`) from being
|
||||
started. Note that `enable=true` does not
|
||||
make a unit start by default at boot; if you want that, see
|
||||
<literal>wantedBy</literal>.
|
||||
`wantedBy`.
|
||||
'';
|
||||
};
|
||||
|
||||
requiredBy = mkOption {
|
||||
default = [];
|
||||
type = types.listOf unitNameType;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Units that require (i.e. depend on and need to go down with)
|
||||
this unit. The discussion under <literal>wantedBy</literal>
|
||||
applies here as well: inverse <literal>.requires</literal>
|
||||
this unit. The discussion under `wantedBy`
|
||||
applies here as well: inverse `.requires`
|
||||
symlinks are established.
|
||||
'';
|
||||
};
|
||||
|
@ -62,16 +62,16 @@ in rec {
|
|||
wantedBy = mkOption {
|
||||
default = [];
|
||||
type = types.listOf unitNameType;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
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 <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
|
||||
goes in the <literal>[Install]</literal> section that controls
|
||||
the behaviour of <literal>systemctl enable</literal>. Since
|
||||
goes in the `[Install]` section that controls
|
||||
the behaviour of `systemctl enable`. Since
|
||||
such a process is stateful and thus contrary to the design of
|
||||
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.
|
||||
'';
|
||||
};
|
||||
|
@ -79,7 +79,7 @@ in rec {
|
|||
aliases = mkOption {
|
||||
default = [];
|
||||
type = types.listOf unitNameType;
|
||||
description = "Aliases of that unit.";
|
||||
description = lib.mdDoc "Aliases of that unit.";
|
||||
};
|
||||
|
||||
};
|
||||
|
@ -89,12 +89,12 @@ in rec {
|
|||
text = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = "Text of this systemd unit.";
|
||||
description = lib.mdDoc "Text of this systemd unit.";
|
||||
};
|
||||
|
||||
unit = mkOption {
|
||||
internal = true;
|
||||
description = "The generated unit.";
|
||||
description = lib.mdDoc "The generated unit.";
|
||||
};
|
||||
|
||||
};
|
||||
|
@ -105,19 +105,19 @@ in rec {
|
|||
description = mkOption {
|
||||
default = "";
|
||||
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 {
|
||||
default = [];
|
||||
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 {
|
||||
default = [];
|
||||
type = types.listOf unitNameType;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Start the specified units when this unit is started, and stop
|
||||
this unit when the specified units are stopped or fail.
|
||||
'';
|
||||
|
@ -126,7 +126,7 @@ in rec {
|
|||
wants = mkOption {
|
||||
default = [];
|
||||
type = types.listOf unitNameType;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Start the specified units when this unit is started.
|
||||
'';
|
||||
};
|
||||
|
@ -134,7 +134,7 @@ in rec {
|
|||
after = mkOption {
|
||||
default = [];
|
||||
type = types.listOf unitNameType;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
If the specified units are started at the same time as
|
||||
this unit, delay this unit until they have started.
|
||||
'';
|
||||
|
@ -143,7 +143,7 @@ in rec {
|
|||
before = mkOption {
|
||||
default = [];
|
||||
type = types.listOf unitNameType;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
If the specified units are started at the same time as
|
||||
this unit, delay them until this unit has started.
|
||||
'';
|
||||
|
@ -152,7 +152,7 @@ in rec {
|
|||
bindsTo = mkOption {
|
||||
default = [];
|
||||
type = types.listOf unitNameType;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Like ‘requires’, but in addition, if the specified units
|
||||
unexpectedly disappear, this unit will be stopped as well.
|
||||
'';
|
||||
|
@ -161,7 +161,7 @@ in rec {
|
|||
partOf = mkOption {
|
||||
default = [];
|
||||
type = types.listOf unitNameType;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
If the specified units are stopped or restarted, then this
|
||||
unit is stopped or restarted as well.
|
||||
'';
|
||||
|
@ -170,7 +170,7 @@ in rec {
|
|||
conflicts = mkOption {
|
||||
default = [];
|
||||
type = types.listOf unitNameType;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
If the specified units are started, then this unit is stopped
|
||||
and vice versa.
|
||||
'';
|
||||
|
@ -179,7 +179,7 @@ in rec {
|
|||
requisite = mkOption {
|
||||
default = [];
|
||||
type = types.listOf unitNameType;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Similar to requires. However if the units listed are not started,
|
||||
they will not be started and the transaction will fail.
|
||||
'';
|
||||
|
@ -189,18 +189,17 @@ in rec {
|
|||
default = {};
|
||||
example = { RequiresMountsFor = "/data"; };
|
||||
type = types.attrsOf unitOption;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Each attribute in this set specifies an option in the
|
||||
<literal>[Unit]</literal> section of the unit. See
|
||||
<citerefentry><refentrytitle>systemd.unit</refentrytitle>
|
||||
<manvolnum>5</manvolnum></citerefentry> for details.
|
||||
`[Unit]` section of the unit. See
|
||||
{manpage}`systemd.unit(5)` for details.
|
||||
'';
|
||||
};
|
||||
|
||||
onFailure = mkOption {
|
||||
default = [];
|
||||
type = types.listOf unitNameType;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
A list of one or more units that are activated when
|
||||
this unit enters the "failed" state.
|
||||
'';
|
||||
|
@ -209,7 +208,7 @@ in rec {
|
|||
onSuccess = mkOption {
|
||||
default = [];
|
||||
type = types.listOf unitNameType;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
A list of one or more units that are activated when
|
||||
this unit enters the "inactive" state.
|
||||
'';
|
||||
|
@ -217,7 +216,7 @@ in rec {
|
|||
|
||||
startLimitBurst = mkOption {
|
||||
type = types.int;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Configure unit start rate limiting. Units which are started
|
||||
more than startLimitBurst times within an interval time
|
||||
interval are not permitted to start any more.
|
||||
|
@ -226,7 +225,7 @@ in rec {
|
|||
|
||||
startLimitIntervalSec = mkOption {
|
||||
type = types.int;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Configure unit start rate limiting. Units which are started
|
||||
more than startLimitBurst times within an interval time
|
||||
interval are not permitted to start any more.
|
||||
|
@ -245,7 +244,7 @@ in rec {
|
|||
restartTriggers = mkOption {
|
||||
default = [];
|
||||
type = types.listOf types.unspecified;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
An arbitrary list of items such as derivations. If any item
|
||||
in the list changes between reconfigurations, the service will
|
||||
be restarted.
|
||||
|
@ -255,7 +254,7 @@ in rec {
|
|||
reloadTriggers = mkOption {
|
||||
default = [];
|
||||
type = types.listOf unitOption;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
An arbitrary list of items such as derivations. If any item
|
||||
in the list changes between reconfigurations, the service will
|
||||
be reloaded. If anything but a reload trigger changes in the
|
||||
|
@ -273,16 +272,16 @@ in rec {
|
|||
default = {};
|
||||
type = with types; attrsOf (nullOr (oneOf [ str path package ]));
|
||||
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 {
|
||||
default = [];
|
||||
type = with types; listOf (oneOf [ package str ]);
|
||||
description = ''
|
||||
Packages added to the service's <envar>PATH</envar>
|
||||
environment variable. Both the <filename>bin</filename>
|
||||
and <filename>sbin</filename> subdirectories of each
|
||||
description = lib.mdDoc ''
|
||||
Packages added to the service's {env}`PATH`
|
||||
environment variable. Both the {file}`bin`
|
||||
and {file}`sbin` subdirectories of each
|
||||
package are added.
|
||||
'';
|
||||
};
|
||||
|
@ -293,30 +292,29 @@ in rec {
|
|||
{ RestartSec = 5;
|
||||
};
|
||||
type = types.addCheck (types.attrsOf unitOption) checkService;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Each attribute in this set specifies an option in the
|
||||
<literal>[Service]</literal> section of the unit. See
|
||||
<citerefentry><refentrytitle>systemd.service</refentrytitle>
|
||||
<manvolnum>5</manvolnum></citerefentry> for details.
|
||||
`[Service]` section of the unit. See
|
||||
{manpage}`systemd.service(5)` for details.
|
||||
'';
|
||||
};
|
||||
|
||||
script = mkOption {
|
||||
type = types.lines;
|
||||
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 {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = "Arguments passed to the main process script.";
|
||||
description = lib.mdDoc "Arguments passed to the main process script.";
|
||||
};
|
||||
|
||||
preStart = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Shell commands executed before the service's main process
|
||||
is started.
|
||||
'';
|
||||
|
@ -325,7 +323,7 @@ in rec {
|
|||
postStart = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Shell commands executed after the service's main process
|
||||
is started.
|
||||
'';
|
||||
|
@ -334,7 +332,7 @@ in rec {
|
|||
reload = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Shell commands executed when the service's main process
|
||||
is reloaded.
|
||||
'';
|
||||
|
@ -343,7 +341,7 @@ in rec {
|
|||
preStop = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Shell commands executed to stop the service.
|
||||
'';
|
||||
};
|
||||
|
@ -351,7 +349,7 @@ in rec {
|
|||
postStop = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Shell commands executed after the service's main process
|
||||
has exited.
|
||||
'';
|
||||
|
@ -360,7 +358,7 @@ in rec {
|
|||
jobScripts = mkOption {
|
||||
type = with types; coercedTo path singleton (listOf path);
|
||||
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 = [];
|
||||
};
|
||||
|
||||
|
@ -405,7 +403,7 @@ in rec {
|
|||
restartIfChanged = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Whether the service should be restarted during a NixOS
|
||||
configuration switch if its definition has changed.
|
||||
'';
|
||||
|
@ -414,14 +412,14 @@ in rec {
|
|||
reloadIfChanged = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Whether the service should be reloaded during a NixOS
|
||||
configuration switch if its definition has changed. If
|
||||
enabled, the value of <option>restartIfChanged</option> is
|
||||
enabled, the value of {option}`restartIfChanged` is
|
||||
ignored.
|
||||
|
||||
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
|
||||
is restarted.
|
||||
'';
|
||||
|
@ -430,14 +428,14 @@ in rec {
|
|||
stopIfChanged = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
If set, a changed unit is restarted by calling
|
||||
<command>systemctl stop</command> in the old configuration,
|
||||
then <command>systemctl start</command> in the new one.
|
||||
{command}`systemctl stop` in the old configuration,
|
||||
then {command}`systemctl start` in the new one.
|
||||
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
|
||||
<literal>ExecStop</literal> commands from the new
|
||||
`ExecStop` commands from the new
|
||||
configuration.
|
||||
'';
|
||||
};
|
||||
|
@ -446,13 +444,12 @@ in rec {
|
|||
type = with types; either str (listOf str);
|
||||
default = [];
|
||||
example = "Sun 14:00:00";
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Automatically start this unit at the given date/time, which
|
||||
must be in the format described in
|
||||
<citerefentry><refentrytitle>systemd.time</refentrytitle>
|
||||
<manvolnum>7</manvolnum></citerefentry>. This is equivalent
|
||||
{manpage}`systemd.time(7)`. This is equivalent
|
||||
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 ];
|
||||
};
|
||||
|
@ -474,9 +471,9 @@ in rec {
|
|||
default = [];
|
||||
type = types.listOf types.str;
|
||||
example = [ "0.0.0.0:993" "/run/my-socket" ];
|
||||
description = ''
|
||||
For each item in this list, a <literal>ListenStream</literal>
|
||||
option in the <literal>[Socket]</literal> section will be created.
|
||||
description = lib.mdDoc ''
|
||||
For each item in this list, a `ListenStream`
|
||||
option in the `[Socket]` section will be created.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -484,9 +481,9 @@ in rec {
|
|||
default = [];
|
||||
type = types.listOf types.str;
|
||||
example = [ "0.0.0.0:993" "/run/my-socket" ];
|
||||
description = ''
|
||||
For each item in this list, a <literal>ListenDatagram</literal>
|
||||
option in the <literal>[Socket]</literal> section will be created.
|
||||
description = lib.mdDoc ''
|
||||
For each item in this list, a `ListenDatagram`
|
||||
option in the `[Socket]` section will be created.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -494,11 +491,10 @@ in rec {
|
|||
default = {};
|
||||
example = { ListenStream = "/run/my-socket"; };
|
||||
type = types.attrsOf unitOption;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Each attribute in this set specifies an option in the
|
||||
<literal>[Socket]</literal> section of the unit. See
|
||||
<citerefentry><refentrytitle>systemd.socket</refentrytitle>
|
||||
<manvolnum>5</manvolnum></citerefentry> for details.
|
||||
`[Socket]` section of the unit. See
|
||||
{manpage}`systemd.socket(5)` for details.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
@ -527,13 +523,11 @@ in rec {
|
|||
default = {};
|
||||
example = { OnCalendar = "Sun 14:00:00"; Unit = "foo.service"; };
|
||||
type = types.attrsOf unitOption;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Each attribute in this set specifies an option in the
|
||||
<literal>[Timer]</literal> section of the unit. See
|
||||
<citerefentry><refentrytitle>systemd.timer</refentrytitle>
|
||||
<manvolnum>5</manvolnum></citerefentry> and
|
||||
<citerefentry><refentrytitle>systemd.time</refentrytitle>
|
||||
<manvolnum>7</manvolnum></citerefentry> for details.
|
||||
`[Timer]` section of the unit. See
|
||||
{manpage}`systemd.timer(5)` and
|
||||
{manpage}`systemd.time(7)` for details.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -562,11 +556,10 @@ in rec {
|
|||
default = {};
|
||||
example = { PathChanged = "/some/path"; Unit = "changedpath.service"; };
|
||||
type = types.attrsOf unitOption;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Each attribute in this set specifies an option in the
|
||||
<literal>[Path]</literal> section of the unit. See
|
||||
<citerefentry><refentrytitle>systemd.path</refentrytitle>
|
||||
<manvolnum>5</manvolnum></citerefentry> for details.
|
||||
`[Path]` section of the unit. See
|
||||
{manpage}`systemd.path(5)` for details.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -594,13 +587,13 @@ in rec {
|
|||
what = mkOption {
|
||||
example = "/dev/sda1";
|
||||
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 {
|
||||
example = "/mnt";
|
||||
type = types.str;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Absolute path of a directory of the mount point.
|
||||
Will be created if it doesn't exist. (Mandatory)
|
||||
'';
|
||||
|
@ -610,25 +603,24 @@ in rec {
|
|||
default = "";
|
||||
example = "ext4";
|
||||
type = types.str;
|
||||
description = "File system type.";
|
||||
description = lib.mdDoc "File system type.";
|
||||
};
|
||||
|
||||
options = mkOption {
|
||||
default = "";
|
||||
example = "noatime";
|
||||
type = types.commas;
|
||||
description = "Options used to mount the file system.";
|
||||
description = lib.mdDoc "Options used to mount the file system.";
|
||||
};
|
||||
|
||||
mountConfig = mkOption {
|
||||
default = {};
|
||||
example = { DirectoryMode = "0775"; };
|
||||
type = types.attrsOf unitOption;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Each attribute in this set specifies an option in the
|
||||
<literal>[Mount]</literal> section of the unit. See
|
||||
<citerefentry><refentrytitle>systemd.mount</refentrytitle>
|
||||
<manvolnum>5</manvolnum></citerefentry> for details.
|
||||
`[Mount]` section of the unit. See
|
||||
{manpage}`systemd.mount(5)` for details.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -655,7 +647,7 @@ in rec {
|
|||
where = mkOption {
|
||||
example = "/mnt";
|
||||
type = types.str;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Absolute path of a directory of the mount point.
|
||||
Will be created if it doesn't exist. (Mandatory)
|
||||
'';
|
||||
|
@ -665,11 +657,10 @@ in rec {
|
|||
default = {};
|
||||
example = { DirectoryMode = "0775"; };
|
||||
type = types.attrsOf unitOption;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Each attribute in this set specifies an option in the
|
||||
<literal>[Automount]</literal> section of the unit. See
|
||||
<citerefentry><refentrytitle>systemd.automount</refentrytitle>
|
||||
<manvolnum>5</manvolnum></citerefentry> for details.
|
||||
`[Automount]` section of the unit. See
|
||||
{manpage}`systemd.automount(5)` for details.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -697,11 +688,10 @@ in rec {
|
|||
default = {};
|
||||
example = { MemoryMax = "2G"; };
|
||||
type = types.attrsOf unitOption;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Each attribute in this set specifies an option in the
|
||||
<literal>[Slice]</literal> section of the unit. See
|
||||
<citerefentry><refentrytitle>systemd.slice</refentrytitle>
|
||||
<manvolnum>5</manvolnum></citerefentry> for details.
|
||||
`[Slice]` section of the unit. See
|
||||
{manpage}`systemd.slice(5)` for details.
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
|
@ -426,7 +426,9 @@ class Machine:
|
|||
self.monitor.send(message)
|
||||
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.
|
||||
Throws exceptions on "failed" and "inactive" states as well as
|
||||
after timing out.
|
||||
|
@ -456,7 +458,7 @@ class Machine:
|
|||
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]:
|
||||
status, lines = self.systemctl('--no-pager show "{}"'.format(unit), user)
|
||||
|
@ -710,7 +712,7 @@ class Machine:
|
|||
status, _ = self.execute("nc -z localhost {}".format(port))
|
||||
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)
|
||||
|
||||
def start_job(self, jobname: str, user: Optional[str] = None) -> Tuple[int, str]:
|
||||
|
|
|
@ -23,7 +23,7 @@ in {
|
|||
options.amazonImage = {
|
||||
name = mkOption {
|
||||
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}";
|
||||
};
|
||||
|
||||
|
@ -35,7 +35,7 @@ in {
|
|||
]
|
||||
'';
|
||||
default = [];
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
This option lists files to be copied to fixed locations in the
|
||||
generated image. Glob patterns work.
|
||||
'';
|
||||
|
@ -45,13 +45,13 @@ in {
|
|||
type = with types; either (enum [ "auto" ]) int;
|
||||
default = if config.ec2.hvm then 2048 else 8192;
|
||||
example = 8192;
|
||||
description = "The size in MB of the image";
|
||||
description = lib.mdDoc "The size in MB of the image";
|
||||
};
|
||||
|
||||
format = mkOption {
|
||||
type = types.enum [ "raw" "qcow2" "vpc" ];
|
||||
default = "vpc";
|
||||
description = "The image format to output";
|
||||
description = lib.mdDoc "The image format to output";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -16,20 +16,20 @@ in
|
|||
options.openstackImage = {
|
||||
name = mkOption {
|
||||
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}";
|
||||
};
|
||||
|
||||
sizeMB = mkOption {
|
||||
type = types.int;
|
||||
default = 8192;
|
||||
description = "The size in MB of the image";
|
||||
description = lib.mdDoc "The size in MB of the image";
|
||||
};
|
||||
|
||||
format = mkOption {
|
||||
type = types.enum [ "raw" "qcow2" ];
|
||||
default = "qcow2";
|
||||
description = "The image format to output";
|
||||
description = lib.mdDoc "The image format to output";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -64,8 +64,8 @@ in
|
|||
};
|
||||
|
||||
colors = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
type = with types; listOf (strMatching "[[:xdigit:]]{6}");
|
||||
default = [ ];
|
||||
example = [
|
||||
"002b36" "dc322f" "859900" "b58900"
|
||||
"268bd2" "d33682" "2aa198" "eee8d5"
|
||||
|
|
|
@ -259,7 +259,7 @@ in
|
|||
internal = true;
|
||||
type = with types; listOf path;
|
||||
default = [ ];
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Fontconfig configuration packages.
|
||||
'';
|
||||
};
|
||||
|
|
|
@ -7,7 +7,7 @@ let
|
|||
in
|
||||
{
|
||||
options.networking.iproute2 = {
|
||||
enable = mkEnableOption "copy IP route configuration files";
|
||||
enable = mkEnableOption (lib.mdDoc "copy IP route configuration files");
|
||||
rttablesExtraConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
|
|
|
@ -78,7 +78,7 @@ in {
|
|||
|
||||
options = {
|
||||
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 {
|
||||
type = types.package;
|
||||
|
|
|
@ -59,7 +59,7 @@ in
|
|||
|
||||
users.ldap = {
|
||||
|
||||
enable = mkEnableOption "authentication against an LDAP server";
|
||||
enable = mkEnableOption (lib.mdDoc "authentication against an LDAP server");
|
||||
|
||||
loginPam = mkOption {
|
||||
type = types.bool;
|
||||
|
|
|
@ -77,24 +77,21 @@ in
|
|||
environment.memoryAllocator.provider = mkOption {
|
||||
type = types.enum ([ "libc" ] ++ attrNames providers);
|
||||
default = "libc";
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
The system-wide memory allocator.
|
||||
|
||||
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>
|
||||
<para>
|
||||
- `libc`: the standard allocator provided by libc
|
||||
${concatStringsSep "\n" (mapAttrsToList
|
||||
(name: value: "- `${name}`: ${replaceStrings [ "\n" ] [ " " ] value.description}")
|
||||
providers)}
|
||||
|
||||
::: {.warning}
|
||||
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.
|
||||
</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 = {
|
||||
users.mysql = {
|
||||
enable = mkEnableOption "Authentication against a MySQL/MariaDB database";
|
||||
enable = mkEnableOption (lib.mdDoc "Authentication against a MySQL/MariaDB database");
|
||||
host = mkOption {
|
||||
type = types.str;
|
||||
example = "localhost";
|
||||
description = "The hostname of the MySQL/MariaDB server";
|
||||
description = lib.mdDoc "The hostname of the MySQL/MariaDB server";
|
||||
};
|
||||
database = mkOption {
|
||||
type = types.str;
|
||||
example = "auth";
|
||||
description = "The name of the database containing the users";
|
||||
description = lib.mdDoc "The name of the database containing the users";
|
||||
};
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
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 {
|
||||
type = types.path;
|
||||
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 {
|
||||
description = "Settings for <literal>pam_mysql</literal>";
|
||||
description = lib.mdDoc "Settings for `pam_mysql`";
|
||||
type = types.submodule {
|
||||
options = {
|
||||
table = mkOption {
|
||||
type = types.str;
|
||||
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 {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "users_updates";
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
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 {
|
||||
type = types.str;
|
||||
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 {
|
||||
type = types.str;
|
||||
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 {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "status";
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
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
|
||||
shown below:
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>bit 0 (0x01)</literal>:
|
||||
if flagged, <literal>pam_mysql</literal> deems the account to be expired and
|
||||
returns <literal>PAM_ACCT_EXPIRED</literal>. That is, the account is supposed
|
||||
to no longer be available. Note this doesn't mean that <literal>pam_mysql</literal>
|
||||
rejects further authentication operations.
|
||||
</para>
|
||||
</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>
|
||||
- `bit 0 (0x01)`:
|
||||
if flagged, `pam_mysql` deems the account to be expired and
|
||||
returns `PAM_ACCT_EXPIRED`. That is, the account is supposed
|
||||
to no longer be available. Note this doesn't mean that `pam_mysql`
|
||||
rejects further authentication operations.
|
||||
- `bit 1 (0x02)`:
|
||||
if flagged, `pam_mysql` deems the authentication token
|
||||
(password) to be expired and returns `PAM_NEW_AUTHTOK_REQD`.
|
||||
This ends up requiring that the user enter a new password.
|
||||
'';
|
||||
};
|
||||
passwordCrypt = mkOption {
|
||||
|
@ -101,101 +91,59 @@ in
|
|||
"8" "sha512"
|
||||
"9" "sha256"
|
||||
];
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
The method to encrypt the user's password:
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>0</literal> (or <literal>"plain"</literal>):
|
||||
No encryption. Passwords are stored in plaintext. HIGHLY DISCOURAGED.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>1</literal> (or <literal>"Y"</literal>):
|
||||
Use crypt(3) function.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>2</literal> (or <literal>"mysql"</literal>):
|
||||
Use the MySQL PASSWORD() function. It is possible that the encryption function used
|
||||
by <literal>pam_mysql</literal> is different from that of the MySQL server, as
|
||||
<literal>pam_mysql</literal> uses the function defined in MySQL's C-client API
|
||||
instead of using PASSWORD() SQL function in the query.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<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>
|
||||
- `0` (or `"plain"`):
|
||||
No encryption. Passwords are stored in plaintext. HIGHLY DISCOURAGED.
|
||||
- `1` (or `"Y"`):
|
||||
Use crypt(3) function.
|
||||
- `2` (or `"mysql"`):
|
||||
Use the MySQL PASSWORD() function. It is possible that the encryption function used
|
||||
by `pam_mysql` is different from that of the MySQL server, as
|
||||
`pam_mysql` uses the function defined in MySQL's C-client API
|
||||
instead of using PASSWORD() SQL function in the query.
|
||||
- `3` (or `"md5"`):
|
||||
Use plain hex MD5.
|
||||
- `4` (or `"sha1"`):
|
||||
Use plain hex SHA1.
|
||||
- `5` (or `"drupal7"`):
|
||||
Use Drupal7 salted passwords.
|
||||
- `6` (or `"joomla15"`):
|
||||
Use Joomla15 salted passwords.
|
||||
- `7` (or `"ssha"`):
|
||||
Use ssha hashed passwords.
|
||||
- `8` (or `"sha512"`):
|
||||
Use sha512 hashed passwords.
|
||||
- `9` (or `"sha256"`):
|
||||
Use sha256 hashed passwords.
|
||||
'';
|
||||
};
|
||||
cryptDefault = mkOption {
|
||||
type = types.nullOr (types.enum [ "md5" "sha256" "sha512" "blowfish" ]);
|
||||
default = null;
|
||||
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 {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "host.name='web' AND user.active=1";
|
||||
description = "Additional criteria for the query.";
|
||||
description = lib.mdDoc "Additional criteria for the query.";
|
||||
};
|
||||
verbose = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
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 {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
By default, <literal>pam_mysql</literal> keeps the connection to the MySQL
|
||||
description = lib.mdDoc ''
|
||||
By default, `pam_mysql` keeps the connection to the MySQL
|
||||
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
|
||||
be useful in case the session lasts quite long.
|
||||
|
@ -205,17 +153,17 @@ in
|
|||
enable = mkOption {
|
||||
type = types.bool;
|
||||
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 {
|
||||
type = types.str;
|
||||
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 {
|
||||
type = types.str;
|
||||
example = "msg";
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
The name of the column in the log table to which the description
|
||||
of the performed operation is stored.
|
||||
'';
|
||||
|
@ -223,7 +171,7 @@ in
|
|||
userColumn = mkOption {
|
||||
type = types.str;
|
||||
example = "user";
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
The name of the column in the log table to which the name of the
|
||||
user being authenticated is stored.
|
||||
'';
|
||||
|
@ -231,16 +179,16 @@ in
|
|||
pidColumn = mkOption {
|
||||
type = types.str;
|
||||
example = "pid";
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
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.
|
||||
'';
|
||||
};
|
||||
hostColumn = mkOption {
|
||||
type = types.str;
|
||||
example = "host";
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
The name of the column in the log table to which the name of the user
|
||||
being authenticated is stored.
|
||||
'';
|
||||
|
@ -248,17 +196,16 @@ in
|
|||
rHostColumn = mkOption {
|
||||
type = types.str;
|
||||
example = "rhost";
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
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
|
||||
set by the PAM-aware application with <literal>pam_set_item(PAM_RHOST)
|
||||
</literal>.
|
||||
set by the PAM-aware application with `pam_set_item(PAM_RHOST)`.
|
||||
'';
|
||||
};
|
||||
timeColumn = mkOption {
|
||||
type = types.str;
|
||||
example = "timestamp";
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
The name of the column in the log table to which the timestamp of the
|
||||
log entry is stored.
|
||||
'';
|
||||
|
@ -268,11 +215,11 @@ in
|
|||
};
|
||||
};
|
||||
nss = mkOption {
|
||||
description = ''
|
||||
Settings for <literal>libnss-mysql</literal>.
|
||||
description = lib.mdDoc ''
|
||||
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>
|
||||
of <literal>libnss-mysql</literal>, but they are modified with NixOS paths for bash.
|
||||
All examples are from the [minimal example](https://github.com/saknopper/libnss-mysql/tree/master/sample/minimal)
|
||||
of `libnss-mysql`, but they are modified with NixOS paths for bash.
|
||||
'';
|
||||
type = types.submodule {
|
||||
options = {
|
||||
|
@ -285,9 +232,8 @@ in
|
|||
WHERE username='%1$s' \
|
||||
LIMIT 1
|
||||
'';
|
||||
description = ''
|
||||
SQL query for the <link
|
||||
xlink:href="https://man7.org/linux/man-pages/man3/getpwnam.3.html">getpwnam</link>
|
||||
description = lib.mdDoc ''
|
||||
SQL query for the [getpwnam](https://man7.org/linux/man-pages/man3/getpwnam.3.html)
|
||||
syscall.
|
||||
'';
|
||||
};
|
||||
|
@ -300,9 +246,8 @@ in
|
|||
WHERE uid='%1$u' \
|
||||
LIMIT 1
|
||||
'';
|
||||
description = ''
|
||||
SQL query for the <link
|
||||
xlink:href="https://man7.org/linux/man-pages/man3/getpwuid.3.html">getpwuid</link>
|
||||
description = lib.mdDoc ''
|
||||
SQL query for the [getpwuid](https://man7.org/linux/man-pages/man3/getpwuid.3.html)
|
||||
syscall.
|
||||
'';
|
||||
};
|
||||
|
@ -315,9 +260,8 @@ in
|
|||
WHERE username='%1$s' \
|
||||
LIMIT 1
|
||||
'';
|
||||
description = ''
|
||||
SQL query for the <link
|
||||
xlink:href="https://man7.org/linux/man-pages/man3/getspnam.3.html">getspnam</link>
|
||||
description = lib.mdDoc ''
|
||||
SQL query for the [getspnam](https://man7.org/linux/man-pages/man3/getspnam.3.html)
|
||||
syscall.
|
||||
'';
|
||||
};
|
||||
|
@ -327,9 +271,8 @@ in
|
|||
example = literalExpression ''
|
||||
SELECT username,'x',uid,'5000','MySQL User', CONCAT('/home/',username),'/run/sw/current-system/bin/bash' FROM users
|
||||
'';
|
||||
description = ''
|
||||
SQL query for the <link
|
||||
xlink:href="https://man7.org/linux/man-pages/man3/getpwent.3.html">getpwent</link>
|
||||
description = lib.mdDoc ''
|
||||
SQL query for the [getpwent](https://man7.org/linux/man-pages/man3/getpwent.3.html)
|
||||
syscall.
|
||||
'';
|
||||
};
|
||||
|
@ -339,9 +282,8 @@ in
|
|||
example = literalExpression ''
|
||||
SELECT username,password,'1','0','99999','0','0','-1','0' FROM users
|
||||
'';
|
||||
description = ''
|
||||
SQL query for the <link
|
||||
xlink:href="https://man7.org/linux/man-pages/man3/getspent.3.html">getspent</link>
|
||||
description = lib.mdDoc ''
|
||||
SQL query for the [getspent](https://man7.org/linux/man-pages/man3/getspent.3.html)
|
||||
syscall.
|
||||
'';
|
||||
};
|
||||
|
@ -351,9 +293,8 @@ in
|
|||
example = literalExpression ''
|
||||
SELECT name,password,gid FROM groups WHERE name='%1$s' LIMIT 1
|
||||
'';
|
||||
description = ''
|
||||
SQL query for the <link
|
||||
xlink:href="https://man7.org/linux/man-pages/man3/getgrnam.3.html">getgrnam</link>
|
||||
description = lib.mdDoc ''
|
||||
SQL query for the [getgrnam](https://man7.org/linux/man-pages/man3/getgrnam.3.html)
|
||||
syscall.
|
||||
'';
|
||||
};
|
||||
|
@ -363,9 +304,8 @@ in
|
|||
example = literalExpression ''
|
||||
SELECT name,password,gid FROM groups WHERE gid='%1$u' LIMIT 1
|
||||
'';
|
||||
description = ''
|
||||
SQL query for the <link
|
||||
xlink:href="https://man7.org/linux/man-pages/man3/getgrgid.3.html">getgrgid</link>
|
||||
description = lib.mdDoc ''
|
||||
SQL query for the [getgrgid](https://man7.org/linux/man-pages/man3/getgrgid.3.html)
|
||||
syscall.
|
||||
'';
|
||||
};
|
||||
|
@ -375,9 +315,8 @@ in
|
|||
example = literalExpression ''
|
||||
SELECT name,password,gid FROM groups
|
||||
'';
|
||||
description = ''
|
||||
SQL query for the <link
|
||||
xlink:href="https://man7.org/linux/man-pages/man3/getgrent.3.html">getgrent</link>
|
||||
description = lib.mdDoc ''
|
||||
SQL query for the [getgrent](https://man7.org/linux/man-pages/man3/getgrent.3.html)
|
||||
syscall.
|
||||
'';
|
||||
};
|
||||
|
@ -387,9 +326,8 @@ in
|
|||
example = literalExpression ''
|
||||
SELECT username FROM grouplist WHERE gid='%1$u'
|
||||
'';
|
||||
description = ''
|
||||
SQL query for the <link
|
||||
xlink:href="https://man7.org/linux/man-pages/man3/memsbygid.3.html">memsbygid</link>
|
||||
description = lib.mdDoc ''
|
||||
SQL query for the [memsbygid](https://man7.org/linux/man-pages/man3/memsbygid.3.html)
|
||||
syscall.
|
||||
'';
|
||||
};
|
||||
|
@ -399,9 +337,8 @@ in
|
|||
example = literalExpression ''
|
||||
SELECT gid FROM grouplist WHERE username='%1$s'
|
||||
'';
|
||||
description = ''
|
||||
SQL query for the <link
|
||||
xlink:href="https://man7.org/linux/man-pages/man3/gidsbymem.3.html">gidsbymem</link>
|
||||
description = lib.mdDoc ''
|
||||
SQL query for the [gidsbymem](https://man7.org/linux/man-pages/man3/gidsbymem.3.html)
|
||||
syscall.
|
||||
'';
|
||||
};
|
||||
|
|
|
@ -35,7 +35,7 @@ in
|
|||
|
||||
networking.hostFiles = lib.mkOption {
|
||||
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" ]'';
|
||||
description = lib.mdDoc ''
|
||||
Files that should be concatenated together to form {file}`/etc/hosts`.
|
||||
|
@ -141,7 +141,7 @@ in
|
|||
type = types.attrs;
|
||||
internal = true;
|
||||
default = {};
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Environment variables used for the network proxy.
|
||||
'';
|
||||
};
|
||||
|
|
|
@ -27,9 +27,13 @@ with lib;
|
|||
fonts.fontconfig.enable = false;
|
||||
|
||||
nixpkgs.overlays = singleton (const (super: {
|
||||
beam = super.beam_nox;
|
||||
cairo = super.cairo.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-iodine = super.networkmanager-iodine.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-sstp = 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; };
|
||||
}));
|
||||
};
|
||||
|
|
|
@ -190,17 +190,17 @@ in {
|
|||
|
||||
zeroconf = {
|
||||
discovery.enable =
|
||||
mkEnableOption "discovery of pulseaudio sinks in the local network";
|
||||
mkEnableOption (lib.mdDoc "discovery of pulseaudio sinks in the local network");
|
||||
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?
|
||||
tcp = {
|
||||
enable = mkEnableOption "tcp streaming support";
|
||||
enable = mkEnableOption (lib.mdDoc "tcp streaming support");
|
||||
|
||||
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 {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
|
@ -263,7 +263,7 @@ in {
|
|||
(drv: drv.override { pulseaudio = overriddenPackage; })
|
||||
cfg.extraModules;
|
||||
modulePaths = builtins.map
|
||||
(drv: "${drv}/${overriddenPackage.pulseDir}/modules")
|
||||
(drv: "${drv}/lib/pulseaudio/modules")
|
||||
# User-provided extra modules take precedence
|
||||
(overriddenModules ++ [ overriddenPackage ]);
|
||||
in lib.concatStringsSep ":" modulePaths;
|
||||
|
|
|
@ -27,7 +27,7 @@ in
|
|||
options = {
|
||||
qt5 = {
|
||||
|
||||
enable = mkEnableOption "Qt5 theming configuration";
|
||||
enable = mkEnableOption (lib.mdDoc "Qt5 theming configuration");
|
||||
|
||||
platformTheme = mkOption {
|
||||
type = types.enum [
|
||||
|
|
|
@ -140,9 +140,9 @@ in
|
|||
example = literalExpression ''"''${pkgs.dash}/bin/dash"'';
|
||||
type = types.path;
|
||||
visible = false;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
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
|
||||
setting only if you know exactly what you're doing.
|
||||
'';
|
||||
|
|
|
@ -73,8 +73,8 @@ let
|
|||
label = mkOption {
|
||||
example = "swap";
|
||||
type = types.str;
|
||||
description = ''
|
||||
Label of the device. Can be used instead of <varname>device</varname>.
|
||||
description = lib.mdDoc ''
|
||||
Label of the device. Can be used instead of {var}`device`.
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
|
@ -78,10 +78,11 @@ in
|
|||
defaultPackages = mkOption {
|
||||
type = types.listOf types.package;
|
||||
default = defaultPackages;
|
||||
defaultText = literalDocBook ''
|
||||
these packages, with their <literal>meta.priority</literal> numerically increased
|
||||
defaultText = literalMD ''
|
||||
these packages, with their `meta.priority` numerically increased
|
||||
(thus lowering their installation priority):
|
||||
<programlisting>${defaultPackagesText}</programlisting>
|
||||
|
||||
${defaultPackagesText}
|
||||
'';
|
||||
example = [];
|
||||
description = lib.mdDoc ''
|
||||
|
@ -131,7 +132,7 @@ in
|
|||
|
||||
path = mkOption {
|
||||
internal = true;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
The packages you want in the boot environment.
|
||||
'';
|
||||
};
|
||||
|
|
|
@ -17,35 +17,35 @@ let
|
|||
]);
|
||||
|
||||
passwordDescription = ''
|
||||
The options <option>hashedPassword</option>,
|
||||
<option>password</option> and <option>passwordFile</option>
|
||||
The options {option}`hashedPassword`,
|
||||
{option}`password` and {option}`passwordFile`
|
||||
controls what password is set for the user.
|
||||
<option>hashedPassword</option> overrides both
|
||||
<option>password</option> and <option>passwordFile</option>.
|
||||
<option>password</option> overrides <option>passwordFile</option>.
|
||||
{option}`hashedPassword` overrides both
|
||||
{option}`password` and {option}`passwordFile`.
|
||||
{option}`password` overrides {option}`passwordFile`.
|
||||
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.
|
||||
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
|
||||
the user is created for the first time. After that, you are free to
|
||||
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
|
||||
options.
|
||||
'';
|
||||
|
||||
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
|
||||
services such as SSH, or indirectly via <command>su</command> or
|
||||
<command>sudo</command>). This should only be used for e.g. bootable
|
||||
services such as SSH, or indirectly via {command}`su` or
|
||||
{command}`sudo`). This should only be used for e.g. bootable
|
||||
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
|
||||
be able to log in using a password (i.e. via <command>login</command>
|
||||
If set to `null` (default) this user will not
|
||||
be able to log in using a password (i.e. via {command}`login`
|
||||
command).
|
||||
'';
|
||||
|
||||
|
@ -234,7 +234,7 @@ let
|
|||
hashedPassword = mkOption {
|
||||
type = with types; nullOr (passwdEntry str);
|
||||
default = null;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Specifies the hashed password for the user.
|
||||
${passwordDescription}
|
||||
${hashedPasswordDescription}
|
||||
|
@ -244,7 +244,7 @@ let
|
|||
password = mkOption {
|
||||
type = with types; nullOr str;
|
||||
default = null;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Specifies the (clear text) password for the user.
|
||||
Warning: do not set confidential information here
|
||||
because it is world-readable in the Nix store. This option
|
||||
|
@ -256,11 +256,11 @@ let
|
|||
passwordFile = mkOption {
|
||||
type = with types; nullOr str;
|
||||
default = null;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
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
|
||||
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}
|
||||
'';
|
||||
};
|
||||
|
@ -268,13 +268,13 @@ let
|
|||
initialHashedPassword = mkOption {
|
||||
type = with types; nullOr (passwdEntry str);
|
||||
default = null;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Specifies the initial hashed password for the user, i.e. the
|
||||
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
|
||||
<command>passwd</command> command. Otherwise, it's
|
||||
equivalent to setting the <option>hashedPassword</option> option.
|
||||
{command}`passwd` command. Otherwise, it's
|
||||
equivalent to setting the {option}`hashedPassword` option.
|
||||
|
||||
${hashedPasswordDescription}
|
||||
'';
|
||||
|
@ -458,25 +458,25 @@ in {
|
|||
users.mutableUsers = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
If set to <literal>true</literal>, you are free to add new users and groups to the system
|
||||
with the ordinary <literal>useradd</literal> and
|
||||
<literal>groupadd</literal> commands. On system activation, the
|
||||
existing contents of the <literal>/etc/passwd</literal> and
|
||||
<literal>/etc/group</literal> files will be merged with the
|
||||
contents generated from the <literal>users.users</literal> and
|
||||
<literal>users.groups</literal> options.
|
||||
description = lib.mdDoc ''
|
||||
If set to `true`, you are free to add new users and groups to the system
|
||||
with the ordinary `useradd` and
|
||||
`groupadd` commands. On system activation, the
|
||||
existing contents of the `/etc/passwd` and
|
||||
`/etc/group` files will be merged with the
|
||||
contents generated from the `users.users` and
|
||||
`users.groups` options.
|
||||
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.
|
||||
|
||||
<warning><para>
|
||||
If set to <literal>false</literal>, the contents of the user and
|
||||
::: {.warning}
|
||||
If set to `false`, the contents of the user and
|
||||
group files will simply be replaced on system activation. This also
|
||||
holds for the user passwords; all changed
|
||||
passwords will be reset according to the
|
||||
<literal>users.users</literal> configuration on activation.
|
||||
</para></warning>
|
||||
`users.users` configuration on activation.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ in
|
|||
|
||||
options.xdg.portal = {
|
||||
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;
|
||||
};
|
||||
|
||||
|
@ -54,11 +54,11 @@ in
|
|||
type = types.bool;
|
||||
visible = false;
|
||||
default = false;
|
||||
description = ''
|
||||
Sets environment variable <literal>GTK_USE_PORTAL</literal> to <literal>1</literal>.
|
||||
description = lib.mdDoc ''
|
||||
Sets environment variable `GTK_USE_PORTAL` to `1`.
|
||||
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.
|
||||
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 = {
|
||||
enable = mkEnableOption ''
|
||||
enable = mkEnableOption (lib.mdDoc ''
|
||||
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
|
||||
<option>xdg.portal.extraPortals</option> option
|
||||
'';
|
||||
{option}`xdg.portal.extraPortals` option
|
||||
'');
|
||||
|
||||
styles = mkOption {
|
||||
type = types.listOf types.package;
|
||||
|
|
|
@ -14,13 +14,13 @@ in
|
|||
};
|
||||
|
||||
options.xdg.portal.wlr = {
|
||||
enable = mkEnableOption ''
|
||||
enable = mkEnableOption (lib.mdDoc ''
|
||||
desktop portal for wlroots-based desktops
|
||||
|
||||
This will add the <literal>xdg-desktop-portal-wlr</literal> package into
|
||||
the <option>xdg.portal.extraPortals</option> option, and provide the
|
||||
This will add the `xdg-desktop-portal-wlr` package into
|
||||
the {option}`xdg.portal.extraPortals` option, and provide the
|
||||
configuration file
|
||||
'';
|
||||
'');
|
||||
|
||||
settings = mkOption {
|
||||
description = lib.mdDoc ''
|
||||
|
|
|
@ -73,10 +73,10 @@ in
|
|||
default = 50;
|
||||
type = types.int;
|
||||
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
|
||||
RAM. Run `zramctl` to check how good memory is
|
||||
compressed.
|
||||
RAM. Run `zramctl` to check how good memory is compressed.
|
||||
This doesn't define how much memory will be used by the zram swap devices.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -84,8 +84,9 @@ in
|
|||
default = null;
|
||||
type = with types; nullOr int;
|
||||
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.
|
||||
This doesn't define how much memory will be used by the zram swap devices.
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
|
@ -7,10 +7,10 @@ in
|
|||
{
|
||||
options = {
|
||||
hardware.brillo = {
|
||||
enable = mkEnableOption ''
|
||||
enable = mkEnableOption (lib.mdDoc ''
|
||||
Enable brillo in userspace.
|
||||
This will allow brightness control from users in the video group.
|
||||
'';
|
||||
'');
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ in
|
|||
];
|
||||
|
||||
options.hardware.ckb-next = {
|
||||
enable = mkEnableOption "the Corsair keyboard/mouse driver";
|
||||
enable = mkEnableOption (lib.mdDoc "the Corsair keyboard/mouse driver");
|
||||
|
||||
gid = mkOption {
|
||||
type = types.nullOr types.int;
|
||||
|
|
|
@ -7,15 +7,15 @@ let
|
|||
in
|
||||
{
|
||||
options.programs.corectrl = {
|
||||
enable = mkEnableOption ''
|
||||
enable = mkEnableOption (lib.mdDoc ''
|
||||
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
|
||||
'';
|
||||
'');
|
||||
|
||||
gpuOverclock = {
|
||||
enable = mkEnableOption ''
|
||||
enable = mkEnableOption (lib.mdDoc ''
|
||||
true
|
||||
'';
|
||||
'');
|
||||
ppfeaturemask = mkOption {
|
||||
type = types.str;
|
||||
default = "0xfffd7fff";
|
||||
|
|
|
@ -6,7 +6,7 @@ let
|
|||
in
|
||||
with lib; {
|
||||
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 {
|
||||
description = lib.mdDoc "Owner to assign to the SEV device.";
|
||||
type = types.str;
|
||||
|
|
|
@ -20,7 +20,7 @@ in
|
|||
};
|
||||
|
||||
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 {
|
||||
description = lib.mdDoc "Owner to assign to the SGX provisioning device.";
|
||||
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 {
|
||||
type = types.nullOr types.path;
|
||||
description = lib.mdDoc ''
|
||||
|
@ -150,6 +159,7 @@ in
|
|||
'';
|
||||
type = types.listOf (types.coercedTo types.path (path: {
|
||||
name = baseNameOf path;
|
||||
filter = null;
|
||||
dtboFile = path;
|
||||
}) overlayType);
|
||||
description = lib.mdDoc ''
|
||||
|
@ -161,7 +171,7 @@ in
|
|||
default = null;
|
||||
type = types.nullOr types.path;
|
||||
internal = true;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
A path containing the result of applying `overlays` to `kernelPackage`.
|
||||
'';
|
||||
};
|
||||
|
|
|
@ -3,7 +3,7 @@ let
|
|||
cfg = config.hardware.flirc;
|
||||
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 {
|
||||
environment.systemPackages = [ pkgs.flirc ];
|
||||
|
|
|
@ -7,7 +7,7 @@ let
|
|||
in
|
||||
{
|
||||
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 {
|
||||
|
|
|
@ -28,7 +28,7 @@ let
|
|||
cfg = config.hardware.gpgSmartcards;
|
||||
in {
|
||||
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 {
|
||||
|
|
|
@ -8,11 +8,11 @@ in
|
|||
|
||||
{
|
||||
options.hardware.i2c = {
|
||||
enable = mkEnableOption ''
|
||||
enable = mkEnableOption (lib.mdDoc ''
|
||||
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
|
||||
logged on the computer locally.
|
||||
'';
|
||||
'');
|
||||
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
|
|
|
@ -6,7 +6,7 @@ let
|
|||
in
|
||||
{
|
||||
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 {
|
||||
|
|
|
@ -6,12 +6,12 @@ let
|
|||
in
|
||||
{
|
||||
options.hardware.keyboard.uhk = {
|
||||
enable = mkEnableOption ''
|
||||
enable = mkEnableOption (lib.mdDoc ''
|
||||
non-root access to the firmware of UHK keyboards.
|
||||
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.
|
||||
You may want to install the uhk-agent package.
|
||||
'';
|
||||
'');
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ in {
|
|||
];
|
||||
|
||||
options.hardware.ksm = {
|
||||
enable = mkEnableOption "Kernel Same-Page Merging";
|
||||
enable = mkEnableOption (lib.mdDoc "Kernel Same-Page Merging");
|
||||
sleep = mkOption {
|
||||
type = types.nullOr types.int;
|
||||
default = null;
|
||||
|
|
|
@ -6,7 +6,7 @@ let
|
|||
cfg = config.hardware.ledger;
|
||||
|
||||
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 {
|
||||
services.udev.packages = [ pkgs.ledger-udev-rules ];
|
||||
|
|
|
@ -19,7 +19,7 @@ in
|
|||
options.hardware.logitech = {
|
||||
|
||||
lcd = {
|
||||
enable = mkEnableOption "Logitech LCD Devices";
|
||||
enable = mkEnableOption (lib.mdDoc "Logitech LCD Devices");
|
||||
|
||||
startWhenNeeded = mkOption {
|
||||
type = types.bool;
|
||||
|
@ -41,7 +41,7 @@ in
|
|||
};
|
||||
|
||||
wireless = {
|
||||
enable = mkEnableOption "Logitech Wireless Devices";
|
||||
enable = mkEnableOption (lib.mdDoc "Logitech Wireless Devices");
|
||||
|
||||
enableGraphical = mkOption {
|
||||
type = types.bool;
|
||||
|
|
|
@ -71,7 +71,7 @@ in
|
|||
package = mkOption {
|
||||
type = types.package;
|
||||
internal = true;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
The package that provides the OpenGL implementation.
|
||||
'';
|
||||
};
|
||||
|
@ -79,9 +79,9 @@ in
|
|||
package32 = mkOption {
|
||||
type = types.package;
|
||||
internal = true;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
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.
|
||||
'';
|
||||
};
|
||||
|
@ -111,11 +111,11 @@ in
|
|||
type = types.bool;
|
||||
internal = true;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether the <literal>LD_LIBRARY_PATH</literal> environment variable
|
||||
description = lib.mdDoc ''
|
||||
Whether the `LD_LIBRARY_PATH` environment variable
|
||||
should be set to the locations of driver libraries. 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.
|
||||
'';
|
||||
};
|
||||
|
|
|
@ -49,9 +49,9 @@ in
|
|||
{
|
||||
options = {
|
||||
hardware.openrazer = {
|
||||
enable = mkEnableOption ''
|
||||
enable = mkEnableOption (lib.mdDoc ''
|
||||
OpenRazer drivers and userspace daemon.
|
||||
'';
|
||||
'');
|
||||
|
||||
verboseLogging = mkOption {
|
||||
type = types.bool;
|
||||
|
|
|
@ -48,7 +48,7 @@ in {
|
|||
|
||||
options = {
|
||||
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
|
||||
{
|
||||
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 {
|
||||
type = lib.types.package;
|
||||
|
|
|
@ -36,7 +36,7 @@ in
|
|||
meta.maintainers = with lib.maintainers; [ peterhoeg ];
|
||||
|
||||
options.hardware.sata.timeout = {
|
||||
enable = mkEnableOption "SATA drive timeouts";
|
||||
enable = mkEnableOption (lib.mdDoc "SATA drive timeouts");
|
||||
|
||||
deciSeconds = mkOption {
|
||||
example = 70;
|
||||
|
|
|
@ -57,7 +57,7 @@ let
|
|||
in {
|
||||
options = {
|
||||
hardware.system76 = {
|
||||
enableAll = mkEnableOption "all recommended configuration for system76 systems";
|
||||
enableAll = mkEnableOption (lib.mdDoc "all recommended configuration for system76 systems");
|
||||
|
||||
firmware-daemon.enable = mkOption {
|
||||
default = cfg.enableAll;
|
||||
|
|
|
@ -8,23 +8,23 @@ let
|
|||
in
|
||||
{
|
||||
options.hardware.tuxedo-keyboard = {
|
||||
enable = mkEnableOption ''
|
||||
enable = mkEnableOption (lib.mdDoc ''
|
||||
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.
|
||||
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 = [
|
||||
"tuxedo_keyboard.mode=0"
|
||||
"tuxedo_keyboard.brightness=255"
|
||||
"tuxedo_keyboard.color_left=0xff0a0a"
|
||||
];
|
||||
</programlisting>
|
||||
'';
|
||||
```
|
||||
'');
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable
|
||||
|
|
|
@ -10,7 +10,7 @@ let
|
|||
};
|
||||
in {
|
||||
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 {
|
||||
type = types.str;
|
||||
|
|
|
@ -4,7 +4,7 @@ let
|
|||
cfg = config.hardware.uinput;
|
||||
in {
|
||||
options.hardware.uinput = {
|
||||
enable = lib.mkEnableOption "uinput support";
|
||||
enable = lib.mkEnableOption (lib.mdDoc "uinput support");
|
||||
};
|
||||
|
||||
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 {
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
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 {
|
||||
console.font = lib.mkDefault "${pkgs.terminus_font}/share/consolefonts/ter-v32n.psf.gz";
|
||||
|
|
|
@ -233,11 +233,8 @@ in
|
|||
}
|
||||
|
||||
{
|
||||
assertion = cfg.powerManagement.enable -> (
|
||||
builtins.pathExists (cfg.package.out + "/bin/nvidia-sleep.sh") &&
|
||||
builtins.pathExists (cfg.package.out + "/lib/systemd/system-sleep/nvidia")
|
||||
);
|
||||
message = "Required files for driver based power management don't exist.";
|
||||
assertion = cfg.powerManagement.enable -> versionAtLeast nvidia_x11.version "430.09";
|
||||
message = "Required files for driver based power management only exist on versions >= 430.09.";
|
||||
}
|
||||
|
||||
{
|
||||
|
@ -260,8 +257,6 @@ in
|
|||
# - Configure the display manager to run specific `xrandr` commands which will
|
||||
# configure/enable displays connected to the Intel iGPU / AMD APU.
|
||||
|
||||
services.xserver.useGlamor = mkDefault offloadCfg.enable;
|
||||
|
||||
services.xserver.drivers = let
|
||||
in optional primeEnabled {
|
||||
name = igpuDriver;
|
||||
|
|
|
@ -6,7 +6,7 @@ let
|
|||
cfg = config.services.switcherooControl;
|
||||
in {
|
||||
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 {
|
||||
|
|
|
@ -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 {
|
||||
default = false;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
with lib;
|
||||
{
|
||||
options.hardware.wooting.enable =
|
||||
mkEnableOption "Enable support for Wooting keyboards";
|
||||
mkEnableOption (lib.mdDoc "Enable support for Wooting keyboards");
|
||||
|
||||
config = mkIf config.hardware.wooting.enable {
|
||||
environment.systemPackages = [ pkgs.wootility ];
|
||||
|
|
|
@ -6,7 +6,7 @@ let
|
|||
in
|
||||
{
|
||||
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 {
|
||||
|
|
|
@ -6,7 +6,7 @@ let
|
|||
in
|
||||
{
|
||||
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 {
|
||||
|
|
|
@ -32,22 +32,20 @@ in
|
|||
type = types.nullOr (types.enum [ "ibus" "fcitx" "fcitx5" "nabi" "uim" "hime" "kime" ]);
|
||||
default = null;
|
||||
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.
|
||||
|
||||
Input methods are specially used to input Chinese, Japanese and Korean characters.
|
||||
|
||||
Currently the following input methods are available in NixOS:
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para>ibus: The intelligent input bus, extra input engines can be added using <literal>i18n.inputMethod.ibus.engines</literal>.</para></listitem>
|
||||
<listitem><para>fcitx: A customizable lightweight input method, extra input engines can be added using <literal>i18n.inputMethod.fcitx.engines</literal>.</para></listitem>
|
||||
<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>
|
||||
<listitem><para>nabi: A Korean input method based on XIM. Nabi doesn't support Qt 5.</para></listitem>
|
||||
<listitem><para>uim: The universal input method, is a library with a XIM bridge. uim mainly support Chinese, Japanese and Korean.</para></listitem>
|
||||
<listitem><para>hime: An extremely easy-to-use input method framework.</para></listitem>
|
||||
<listitem><para>kime: Koream IME.</para></listitem>
|
||||
</itemizedlist>
|
||||
- ibus: The intelligent input bus, extra input engines can be added using `i18n.inputMethod.ibus.engines`.
|
||||
- fcitx: A customizable lightweight input method, extra input engines can be added using `i18n.inputMethod.fcitx.engines`.
|
||||
- fcitx5: The next generation of fcitx, addons (including engines, dictionaries, skins) can be added using `i18n.inputMethod.fcitx5.addons`.
|
||||
- nabi: A Korean input method based on XIM. Nabi doesn't support Qt 5.
|
||||
- uim: The universal input method, is a library with a XIM bridge. uim mainly support Chinese, Japanese and Korean.
|
||||
- hime: An extremely easy-to-use input method framework.
|
||||
- kime: Koream IME.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -55,7 +53,7 @@ in
|
|||
internal = true;
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
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 {
|
||||
type = types.int;
|
||||
default = 8;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Gap in front of the /boot/firmware partition, in mebibytes (1024×1024
|
||||
bytes).
|
||||
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";
|
||||
i686-linux = "/nix/store/43xxh2jip6rpdhylc5z9a5fxx54dw206-nix-2.10.3";
|
||||
aarch64-linux = "/nix/store/6qw3r57nra08ars8j8zyj3fl8lz4cvnd-nix-2.10.3";
|
||||
x86_64-darwin = "/nix/store/3b7qrm0qjw57fmznrsvm0ai568i89hc2-nix-2.10.3";
|
||||
aarch64-darwin = "/nix/store/gp7k17iy1n7hgf97qwnxw28c6v9nhb1i-nix-2.10.3";
|
||||
x86_64-linux = "/nix/store/nmq5zcd93qb1yskx42rs910ff0247nn2-nix-2.11.0";
|
||||
i686-linux = "/nix/store/ja6im1sw9a8lzczi10lc0iddffl9kzmn-nix-2.11.0";
|
||||
aarch64-linux = "/nix/store/myr6fcqa9y4y2fb83zz73dck52vcn81z-nix-2.11.0";
|
||||
x86_64-darwin = "/nix/store/2pfjz9b22k9997gh7cb0hjk1qa4lxrvy-nix-2.11.0";
|
||||
aarch64-darwin = "/nix/store/lr32i0bdarx1iqsch4sy24jj1jkfw9vf-nix-2.11.0";
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ with lib;
|
|||
internal = true;
|
||||
default = [];
|
||||
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
|
||||
hold for the evaluation of the system configuration to
|
||||
succeed, along with associated error messages for the user.
|
||||
|
@ -23,7 +23,7 @@ with lib;
|
|||
default = [];
|
||||
type = types.listOf types.str;
|
||||
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
|
||||
the evaluation of the system configuration.
|
||||
'';
|
||||
|
|
|
@ -226,15 +226,14 @@ in
|
|||
nixos.enable = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Whether to install NixOS's own documentation.
|
||||
<itemizedlist>
|
||||
<listitem><para>This includes man pages like
|
||||
<citerefentry><refentrytitle>configuration.nix</refentrytitle><manvolnum>5</manvolnum></citerefentry> if <option>documentation.man.enable</option> is
|
||||
set.</para></listitem>
|
||||
<listitem><para>This includes the HTML manual and the <command>nixos-help</command> command if
|
||||
<option>documentation.doc.enable</option> is set.</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
- This includes man pages like
|
||||
{manpage}`configuration.nix(5)` if {option}`documentation.man.enable` is
|
||||
set.
|
||||
- This includes the HTML manual and the {command}`nixos-help` command if
|
||||
{option}`documentation.doc.enable` is set.
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ let
|
|||
specialArgs.someArg.myModule = { lib, ... }: {
|
||||
options.foobar = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "The foobar option was added via specialArgs";
|
||||
description = lib.mdDoc "The foobar option was added via specialArgs";
|
||||
default = "qux";
|
||||
};
|
||||
};
|
||||
|
|
|
@ -19,7 +19,7 @@ in
|
|||
|
||||
ids.uids = lib.mkOption {
|
||||
internal = true;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
The user IDs used in NixOS.
|
||||
'';
|
||||
type = types.attrsOf types.int;
|
||||
|
@ -27,7 +27,7 @@ in
|
|||
|
||||
ids.gids = lib.mkOption {
|
||||
internal = true;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
The group IDs used in NixOS.
|
||||
'';
|
||||
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 {
|
||||
type = types.strMatching "[a-zA-Z0-9:_\\.-]*";
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
NixOS version name to be used in the names of generated
|
||||
outputs and boot labels.
|
||||
|
||||
|
@ -20,25 +20,26 @@ in
|
|||
this is the option for you.
|
||||
|
||||
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
|
||||
"-" + "-" + <envar>NIXOS_LABEL_VERSION</envar> environment
|
||||
The default is {option}`system.nixos.tags` separated by
|
||||
"-" + "-" + {env}`NIXOS_LABEL_VERSION` environment
|
||||
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
|
||||
nixos branches/revisions, e.g.:
|
||||
|
||||
<screen>
|
||||
```
|
||||
#!/bin/sh
|
||||
today=`date +%Y%m%d`
|
||||
branch=`(cd nixpkgs ; git branch 2>/dev/null | sed -n '/^\* / { s|^\* ||; p; }')`
|
||||
revision=`(cd nixpkgs ; git rev-parse HEAD)`
|
||||
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;
|
||||
default = [];
|
||||
example = [ "with-xen" ];
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Strings to prefix to the default
|
||||
<option>system.nixos.label</option>.
|
||||
{option}`system.nixos.label`.
|
||||
|
||||
Useful for not loosing track of configurations built with
|
||||
different options, e.g.:
|
||||
|
||||
<screen>
|
||||
```
|
||||
{
|
||||
system.nixos.tags = [ "with-xen" ];
|
||||
virtualisation.xen.enable = true;
|
||||
}
|
||||
</screen>
|
||||
```
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
|
@ -183,8 +183,8 @@ in
|
|||
pruneNames = mkOption {
|
||||
type = listOf str;
|
||||
default = lib.optionals (!isFindutils) [ ".bzr" ".cache" ".git" ".hg" ".svn" ];
|
||||
defaultText = literalDocBook ''
|
||||
<literal>[ ".bzr" ".cache" ".git" ".hg" ".svn" ]</literal>, if
|
||||
defaultText = literalMD ''
|
||||
`[ ".bzr" ".cache" ".git" ".hg" ".svn" ]`, if
|
||||
supported by the locate implementation (i.e. mlocate or plocate).
|
||||
'';
|
||||
description = lib.mdDoc ''
|
||||
|
|
|
@ -7,7 +7,7 @@ in
|
|||
{
|
||||
options = {
|
||||
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;
|
||||
defaultText = lib.literalExpression "config.documentation.man.enable";
|
||||
example = false;
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue